Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

MQTT パススルー・ビジネス・サービスおよびオペレーションの構成と使用

この章では、組み込みの MQTT パススルー・ビジネス・サービスおよびパススルー・ビジネス・オペレーションの動作について説明します。

パススルー・ビジネス・サービスの追加と構成

ビジネス・サービスをプロダクションに追加するには、管理ポータルを使用して相互運用対応ネームスペースで以下の操作を行います。

  1. MQTT ブローカでユーザ名/パスワード認証を使用している場合、まず、その情報で認証情報を定義する必要があります (管理ポータルの [相互運用性][構成][認証情報])。TLS 認証を使用している場合は、インターシステムズの "TLS ガイド" を参照してください。

  2. EnsLib.MQTT.Service.PassthroughOpens in a new tab ビジネス・サービス・クラスのインスタンスをプロダクションに追加します。

  3. 入力を受信できるようにビジネス・サービスを構成します。

    • [基本の設定] 内の [ターゲット構成名] プロパティを設定します。このプロパティは多くのビジネス・サービスに共通で、ビジネス・サービスがそのメッセージをどこに送信するのかを指定します。ターゲットには、1 つ以上のビジネス・プロセスおよびビジネス・オペレーションを指定できます。

    • オプションで [CleanSession] プロパティを設定します。[CleanSession] にチェックが付けられている場合、ブローカは接続から次の接続までの間、サブスクリプションについての情報を保持しません。接続が一時的に切断されている間に発行されたメッセージを受信する場合は、[CleanSession] プロパティにはチェックを付けないでください。

    • [ClientID] プロパティを設定します。これはブローカに対するクライアントを指定します。ASCII でエンコードされ、長さが 1 ~ 23 文字である必要があります。ブローカへの接続を切断してから再接続する場合、ClientID が同じであればその ID 情報を保持し、切断中に送信されたメッセージを返します ([CleanSession] にチェックが付いていない場合)。[ClientID] フィールドを空のままにすると、クライアントによって一意の ClientID が割り当てられます。複数のプロダクションで同じビジネス・サービスを実行している場合、それぞれが異なる ClientID を持つようにしてください。そうでない場合、ブローカはそれらを 1 つのクライアントとして扱い、それらのうちの 1 つにしかメッセージを返しません。

    • [ConnectTimeout] プロパティを設定します。これは、ビジネス・サービスがブローカからの応答確認を待機する秒数を設定します。

    • ログイン認証情報を使用している場合、[CredentialsName] プロパティを手順 1 で定義した認証情報名に設定します。

    • [KeepAlive] プロパティを、クライアントからブローカへのメッセージの最大間隔 (秒数) に設定します。

    • オプションで、[LWTTopic] および [LWTMessage] プロパティを設定します。これらは、接続の Last Will and Testament (遺言) メッセージを設定します。接続が予期せずに失われたことをブローカが検出すると、これは指定したトピックとメッセージを使用してメッセージを発行します。

    • [QOS] プロパティを設定します。これによって、ブローカとの接続におけるサービス品質が設定されます。値が 0 の場合、ビジネス・サービスはブローカからの確認応答を待機しないことを意味し、値が 1 の場合、ビジネス・サービスはブローカがメッセージを受信したという確認応答を待機することを意味します。

    • [Retained] プロパティにはチェックを付けないでください。これはメッセージを発行するためにのみ使用され、メッセージの購読には使用されません。メッセージの発行時にこのプロパティを設定すると、ブローカにこのメッセージを保持し、これを新しいサブスクライバに返すよう指示します。

    • TLS セキュリティを使用している場合は、[SSLConfigName] を TLS 構成の名前に設定します。

    • [QOS] を 1 に設定した場合、[タイムアウト] プロパティを、ビジネス・サービスが確認応答を待機する秒数に設定します。

    • [トピック] プロパティを、購読するトピックに設定します。トピックは通常、サブトピックのレベルが / (スラッシュ) で区切られた階層文字列です。サブスクリプションでは、トピックにワイルドカードを含めることができます。

      • + (プラス記号) — そのレベルのすべての文字列に一致します。例えば、"/temperatures/+/highest" は、トピック "temperatures/Paris/highest" や "temperatures/Bangkok/highest" に一致しますが、"temperatures/Paris/highest/today" には一致しません。プラス記号は、同じレベル内の他の文字と組み合わせることはできません。

      • # (シャープ記号) — 最後のレベルのみで、任意の文字列および任意のサブトピックに一致します。例えば、"temperatures/Paris/#" は、"temperatures/Paris/highest"、"temperatures/Paris/highest/today"、"temperatures/Paris/lowest/record/thiscentury" のトピックすべてに一致します。

    • ビジネス・サービスで行われる MQTT アクションをトレースする場合は、[トレース] プロパティにチェックを付け、[TraceLevel] プロパティを設定します。MQTT トレース・メッセージは、ビジネス・サービスのプロダクション・ログに書き込まれます。[TraceLevel] では以下の値を扱うことができます。

      • 0 — MQTTCLIENTTRACEMAXIMUM、最大レベルのトレース。

      • 1 — MQTTCLIENTTRACEMEDIUM、中レベルのトレース。

      • 2 — MQTTCLIENTTRACEMINIMUM、最小レベルのトレース。

      • 3 — MQTTCLIENTTRACEPROTOCOL、プロトコル・レベルのトレース。

      • 4 — MQTTCLIENTTRACEERROR、エラーのみのトレース。

      • 5 — MQTTCLIENTTRACESEVERE、サーバ・エラーのみのトレース。

      • 6 — MQTTCLIENTTRACEFATAL、致命的なエラーのみのトレース。

    • [URL] プロパティを、ブローカの URL とポート番号で設定します。 “tcp” または “ssl” の後にドメイン名とポートを “:” で区切って続けます (例 : “tcp://MQTTBroker.example.com:1883”)。通常、TLS 対応のエンド・ポイントは 8883 のポートを使用して構成されますが、これは必須ではありません。

  4. [基本設定] でビジネス・サービスを有効にします。

  5. プロダクションを実行します。

Note:

TLS の使用時は、証明書ファイルへの相対パスではなく、絶対パスを使用する必要があります。詳細は、"セキュリティ管理ガイド" の “TLS 構成の作成または編集” を参照してください。

パススルー・ビジネス・オペレーションの追加と構成

ビジネス・オペレーションをプロダクションに追加するには、管理ポータルを使用して相互運用対応ネームスペースで以下の操作を行います。

  1. MQTT ブローカでユーザ名/パスワード認証を使用している場合、まず、その情報で認証情報を定義する必要があります (管理ポータルの [Interoperability][構成する][認証情報])。TLS 認証を使用している場合は、"セキュリティ管理ガイド" の “TLS ガイド” を参照してください。

  2. EnsLib.MQTT.Operation.PassthroughOpens in a new tab ビジネス・オペレーション・クラスのインスタンスをプロダクションに追加します。

  3. メッセージを発行できるようにビジネス・オペレーションを構成します。

    • オプションで [CleanSession] プロパティを設定します。[CleanSession] プロパティにチェックが付けられている場合、ブローカは接続から次の接続までの間、セッションについての情報を保持しません。

    • [ClientID] プロパティを設定します。これはブローカに対するクライアントを指定します。ASCII でエンコードされ、長さが 1 ~ 23 文字である必要があります。ブローカへの接続を切断してから再接続する場合、ClientID が同じであれば、ブローカはその ID 情報を保持します。[ClientID] フィールドを空のままにすると、クライアントによって一意のクライアント ID が割り当てられます。

    • [ConnectTimeout] プロパティを設定します。これは、ビジネス・サービスがブローカからの応答確認を待機する秒数を設定します。

    • ログイン認証情報を使用している場合、[CredentialsName] プロパティを手順 1 で定義した認証情報名に設定します。

    • [KeepAlive] プロパティを、クライアントからブローカへのメッセージの最大間隔 (秒数) に設定します。

    • オプションで、[LWTTopic] および [LWTMessage] プロパティを設定します。これらは、接続の Last Will and Testament (遺言) メッセージを設定します。接続が予期せずに失われたことをブローカが検出すると、これは指定したトピックとメッセージを使用してメッセージを発行します。

    • [QOS] プロパティを設定します。これによって、ブローカとの接続におけるサービス品質が設定されます。値が 0 の場合、ビジネス・オペレーションはブローカからの確認応答を待機しないことを意味し、値が 1 の場合、ビジネス・オペレーションはブローカがメッセージを受信したという確認応答を待機することを意味します。

    • 保持するメッセージを発行する場合、[Retained] プロパティにチェックを付けます。各サブスクリプションで保持されるメッセージは 1 つのみです。これは、最初のサブスクライバに送信されるメッセージです。その他のメッセージは、サブスクリプションが開始された後で発行される場合にのみ、サブスクライバに送信されます。

    • TLS セキュリティを使用している場合は、[SSLConfigName] を TLS 構成の名前に設定します。

    • [QOS] を 1 に設定した場合、[タイムアウト] プロパティを、ビジネス・サービスが確認応答を待機する秒数に設定します。

    • [トピック] プロパティを設定します。これにより、メッセージの発行に使用するデフォルトのトピックが指定されます。トピックは通常、サブトピックのレベルが / (スラッシュ) で区切られた階層文字列です。オペレーションは、その入力パラメータで指定されたトピックを使用します。入力パラメータにトピックが含まれていない場合、デフォルトのトピックが使用されます。メッセージの発行時、トピックにワイルドカードを含めることはできません。

    • ビジネス・サービスやビジネス・オペレーションで行われる MQTT アクションをトレースする場合は、[トレース] プロパティを選択して、[TraceLevel] プロパティを設定します。MQTT トレース・メッセージは、プロダクション・ログに書き込まれます。[TraceLevel] では以下の値を扱うことができます。

      • 0 — MQTTCLIENTTRACEMAXIMUM、最大レベルのトレース。

      • 1 — MQTTCLIENTTRACEMEDIUM、中レベルのトレース。

      • 2 — MQTTCLIENTTRACEMINIMUM、最小レベルのトレース。

      • 3 — MQTTCLIENTTRACEPROTOCOL、プロトコル・レベルのトレース。

      • 4 — MQTTCLIENTTRACEERROR、エラーのみのトレース。

      • 5 — MQTTCLIENTTRACESEVERE、サーバ・エラーのみのトレース。

      • 6 — MQTTCLIENTTRACEFATAL、致命的なエラーのみのトレース。

    • [URL] プロパティを、ブローカの URL とポート番号で設定します。 “tcp” または “ssl” の後にドメイン名とポートを “:” で区切って続けます (例 : “tcp://MQTTBroker.example.com:1883”)。通常、TLS 対応のエンド・ポイントは 8883 のポートを使用して構成されますが、これは必須ではありません。

  4. [基本の設定] でビジネス・オペレーションを有効にします。

  5. プロダクションを実行します。

Note:

TLS の使用時は、証明書ファイルへの相対パスではなく、絶対パスを使用する必要があります。詳細は、"セキュリティ管理ガイド" の “TLS 構成の作成または編集” を参照してください。

MQTT メッセージの形式

パススルー・ビジネス・サービスが EnsLib.MQTT.MessageOpens in a new tab メッセージを送信し、パススルー・ビジネス・オペレーションが EnsLib.MQTT.MessageOpens in a new tab メッセージを受信します。EnsLib.MQTT.MessageOpens in a new tab クラスは、Ens.StringContainerOpens in a new tab クラスに [トピック] プロパティを追加して拡張されたものです。MQTT トピックは、[トピック] プロパティに格納され、MQTT メッセージは、文字列コンテナ値に格納されます。

FeedbackOpens in a new tab