Thing の購読
購読はイベントを受信してこれに応答するサービスです。購読にはソース (通常はThing) が含まれています。Thing には、操作で応答するイベントの購読を設定できます。たとえば、あるエンティティで「モーターが過熱している」というイベントが発生した場合、それは「モーターをオフにする」という購読をトリガーすることによって、そのイベントを購読できます。Thing は、使用しているThing TemplateおよびThing Shapeから購読を継承できます。
購読は標準のサービスとよく似ていますが、購読はイベントに明示的にリンクしています。これにより、イベントに応答するコードからイベントを切り離すことができます。サービスと同様に、イベントに応答するカスタムビジネスロジックを実装できます。メールサーバー Thing を介して電子メールを送信したり、データベースに書き込んだり、そのプラットフォームで利用可能なサービスを呼び出したりすることによって、モデルの能力を活用できます。購読ではサービスのように明示的な出力は返されません。ただし、購読はスレッドセキュリティコンテキストがアクセスできるモデル内に、その他のサービスを呼び出すことはできます。購読のスレッドセキュリティコンテキストは、発生したイベントと同じスレッドセキュリティコンテキストに設定されます。サービスの実装に使用されているものと同じ JavaScript 編集環境を使用できます。
購読には定義済みの入力があり、これはイベントによって発行されるデータパケットで、イベントデータと呼ばれます。エンティティが定義済みのイベントを購読している場合、イベントデータは購読関数に渡されます。イベントデータはイベントデータシェイプによって定義されます。購読の実装内で、イベントから渡されたデータはスクリプト関数への入力として機能します。たとえば、あるエンティティが Thing プロパティデータ変更イベントを購読している場合、その購読スクリプト関数が呼び出されます。その結果、Thing プロパティ値が、イベントからのその他の関連データとともにイベントデータの一部としてこの関数に渡されます。
多数のエンティティが同じイベントを購読できます。各エンティティはイベントデータが渡された購読への呼び出しを受信します。エンティティは、ソリューションの要件を満たすために必要なあらゆる操作を購読スクリプトから実行できます。
別のサービスから呼び出されるサービスを使用するよりも、この手法の方が有利な点には、以下があります。
イベントを 1 つまたは多数の購読によって購読できること。
イベントがシステムのアクティビティに基づいて呼び出され、ユーザーの操作が不要であること。
イベントが複数の Thing によって購読される場合は、複数のサービスを連携する代わりに、購読を使用できます。
* 
ThingWorx バージョン 8.4.0 以降では、同じ Thing で定義されている同じイベントの複数購読、つまり重複する購読がサポートされています。
* 
イベントトリガーと購読は非同期に実行されます。たとえば、プロパティ更新操作が完了するとただちに、プロパティ更新 API リクエストは応答を受信します。これはデータ変更イベントの完了に応答する後続の購読を待機しません。
複数購読
購読には一意の識別子としてユーザー定義の名前が付けられます。エンティティは、Thing のイベントを複数購読できます。たとえば、あるエンティティで「モーターが過熱している」というイベントが発生した場合、それは「モーターをオフにする」という購読と「作業命令書を作成する」という購読の両方によってそのイベントを購読できます。これにより、メンテナンスでエンジンが点検されます。そのイベントに対して、任意の数のほかの購読を作成することもできます。
Thing Template または Thing Shape によってあるイベントの購読が実装されている場合、その Thing Template または Thing Shape を使用する Thing も同じイベントの購読を作成でき、これらのイベントの発生時に追加の操作を行う次善策は必要ありません。
配分購読
* 
配分購読機能は、ThingWorx 9.4 以降の高可用性専用環境で使用できます。
配分購読を使用すると、イベントによって多数の購読のインスタンスがトリガーされた場合に、すべての ThingWorx ノードに購読の実行を分散できます。たとえば、多数の Thing が同じタイマーまたはスケジューライベントを購読している場合などです。これにより、高可用性環境のすべての ThingWorx ノードにおけるタイマー/スケジューラベースの購読実行の水平スケーラビリティが実現し、リソース使用率とパフォーマンスが向上します。この動作を有効にするには、「購読」タブの「均等」チェックボックスをオンにします。「均等」チェックボックスがオフの場合、タイマーおよびスケジューラの購読は、タイマーまたはスケジューライベントが生成されたノードで実行されます。関連するコンフィギュレーションの詳細については、以下を参照してください。
オンプレミスについては、AKKA の SSL/TLS の設定を参照してください。
Docker 環境については、ThingWorx の Akka TLS 通信の設定を参照してください。
これは役に立ちましたか?