Thing Shape
Thing Shape は、物理的なアセットのグループ間で共有される プロパティサービスイベント購読として表される特性のセットを提供します。モデル内のオブジェクト間の関連を表すコンポジションには Thing Shape を使用するのが最も適しています。Thing Shape に含まれているプロパティとビジネスロジックは 1 つ以上の Thing Template によって継承可能なので、プロパティとビジネスロジックの再使用が簡単になります。ThingWorx のモデルでは、Thing Template で 1 つ以上の Thing Shape を実装でき、これは C++ における複数の継承があるクラス定義と類似しています。親オブジェクト定義でオーバーライドを許可するようサービスを明示的に定義している場合、Thing Shape から継承されたサービスでビジネスロジックをオーバーライドできます。
Thing Shape に変更を加えた場合、変更はその Thing Shape を実装する Thing Template と Thing に反映されるので、モデルのメンテナンスが簡素化されます。
同じ ERP システムを使用している製品ラインが複数ある場合、Thing Shape を使用します。ある会社に 2 つの事業部門があり、一方の部門は住宅向けの乗用芝刈り機を製造し、もう一方の部門は商用の農機具を製造しているとします。乗用芝刈り機と農機具に共通のデータや動作はありません。ただし、これらはどちらも追跡可能な ERP アセットです。どちらも同じ CRM システム内に顧客とサービスチケットシステムに関する情報を持っています。これらのインタフェースを物理的なアセットとして 1 回だけ実装するには、Thing Shape にビジネスロジックを挿入します。たとえば、ERP システムから ERP Connector Thing に関連データを取得する方法を実装でき、これは Thing Shape によって表されます。ERP Connector Thing は、ERP システムへのアクセス方法 (IP アドレスなど)、その認証方法 (技術者ユーザーを使用するなど)、リクエスト応答の処理方法について定めたコンフィギュレーションデータを持つことができます。サービスを使用して、リクエスト応答機能を ERP Connector Thing に実装する必要があります。これにより、Thing Shape からリクエストデータを取得する具体的な機能をアプリケーションに定義できるようになります。Thing Shape には、プロパティ (場所や ERP アセット ID など) として表される基本データと、アセットの具体的なデータを取得するサービス (My Open Work Orders を取得、My Work Order History を取得、My Customer Entitlements を取得など) が必要です。乗用芝刈り機と農機具両方の Thing Template がこの Thing Shape から機能を継承し、この Thing Shape 内のカプセル化されたビジネスロジックを介して ERP データにアクセスできます。
拡張機能を使用した Thing Shape の作成
拡張機能を使用して作成された Thing Shape は、ThingWorx Composer で作成されたものと似ています。Thing Shape は、プロパティ、コンフィギュレーションパラメータ、サービスなどが同じである Thing を作成するときに使用するベーステンプレートです。これを Composer で作成するか拡張機能フレームワーク内で作成するかによる違いは、サービスに使用される言語とサービスのコードを表示可能かどうかにあります。
Composer テンプレート:
サービスに JavaScript を使用
ソースコードが表示される
Extension SDK テンプレート:
サービスに Java を使用
ソースコードは表示されない