ThingWorx を使用する前に > IoT 向けのプログラミング > モデリング: Thing Shape と Thing Template がある理由
モデリング: Thing Shape と Thing Template がある理由
ThingWorx モデルはオブジェクト指向の性質を持つので、再使用可能な "コンポーネント" を定義し、それらのコンポーネントを使用してモデルに Thing を定義できます。再使用可能なコンポーネントによって定義されている Thing では、このようなコンポーネントに対する変更が自動的に反映されます。その考えとは、1 つの場所で動作を定義するだけで、継承されたすべてのオブジェクトが親オブジェクトの最新の定義に従って動作するようにすることです。このようにすることで、更新が必要な場合に多数の Thing に同じ変更を加える必要がありません。
Thing Shape と Thing Template は継承モデルを簡単に管理するために実装されました。Thing Shape は基本定義コンポーネントです。Thing または Thing Template が Thing Shape の定義を共有する場合、その Thing および Thing Template は Thing Shape を "実装" すると言われます。一般に、各 Thing Shape の動作は一意になるようにします。つまり、各 Thing Shape が独自のサービスと機能のセットを実行するようにします。1 つの Thing Template が複数の Thing Shape を実装できます。Thing は 1 つの Thing Template を使用して定義することが推奨されます。
簡単な例について見てみましょう。1 つのサイトに複数の異なるタイプの装置があります。そのサイトでは各装置がまったく異なる機能を果たします。単純にするため、以下の 3 つのタイプの装置があるとします。
変圧器
ミキサー
エアハンドラ
このサイトには 5 台の変圧器、20 台のエアハンドラ、12 台のミキサーがあります。この 3 つのタイプの装置はそれぞれまったく異なります。しかし、共通点もいくつかあります。各装置は会社の ERP システムによって追跡され、したがって共通のデータ (Thing プロパティ) を持つものとしましょう。さらに、そのエアハンドラと変圧器は、状態基準保全 (CBM) に使用される特別な判定基準に基づいて保全管理システムを更新する必要があります。
この物理モデルを解析してこれを ThingWorx モデルに変換する方法を決定する際には、考慮すべき 3 つの動作グループがあります。
1. ERP アセットの動作
2. 状態基準保全の動作
3. 装置タイプ固有の動作
この例では、ThingWorx モデルの機能を利用するために少なくとも 2 つの Thing Shape を定義します。以下に示します。
1. ERP_Asset Thing Shape - このサイトの各装置がこれを共有するので。このようにすることで、ERP_Asset Thing Shape に対するすべての変更がこのサイトの各装置に自動的に反映されます。
2. CBM_Asset - 複数のアセットタイプがこの機能を必要とするので、これを Thing Shape として定義して Thing を実装することで、すべての変更が継承されるようにします。将来ミキサーの保全が CBM モデルに移った場合、Mixer Thing Template (以下で説明) を介してミキサーにこの Thing Shape を実装することで、すべてのミキサーを更新する必要がなくなります。
以上で、装置タイプごとに、3 つの Thing Template を作成可能になりました。Thing Template は特定の定義の Thing を簡単に作成および管理するために設計されています。この例では 3 つの装置タイプの Thing Template を作成することで、その Thing Template を使用して Thing に一意の名前を指定するだけで、特定のアセットを表す Thing を作成できます。
Transformer Thing Template
Transformer Thing Template は ERP_Asset および CMB_Asset Thing Shape を実装することによって定義されます。変圧器固有のすべてのプロパティ、サービス、イベント、購読も Transformer Thing Template 内で定義します。この後、変圧器ごとに、Transformer Thing Template と一意の名前を使用して ThingWorx モデル内の変圧器を定義します。
または、Transformer Thing Shape を定義することもできます。その場合、Transformer Thing Template は 3 つの Thing Shape (ERP_Asset、CMB_Asset、Transformer Thing Shape) を実装します。このアプローチで問題なく機能しますが、ほかの Thing Template が Transformer Thing Shape を実装しない場合にはこれは必要ありません。
Mixer Thing Template
Mixer Thing Template は ERP_Asset Thing Shape を実装することによって定義されます。ミキサーは CBM 保全モデルを使用しないので、関連する Thing Shape は必要ありません。ミキサー固有のすべてのプロパティ、サービス、イベント、購読も Mixer Thing Template 内で定義します。この後、ミキサーごとに、Mixer Thing Template と一意の名前を使用して ThingWorx モデル内のミキサーを定義します。
AirHandler Thing Template
AirHandler Thing Template は Transformer Thing Template とよく似ています。これは ERP_Asset と CMB_Asset の両方の Thing Shape を実装する必要があります。エアハンドラ固有のすべてのプロパティ、サービス、イベント、購読も AirHandler Thing Template 内で定義します。この後、エアハンドラごとに、AirHandler Thing Template と一意の名前を使用して ThingWorx モデル内のエアハンドラを定義します。
以上ですべてのアセットが定義され、メンテナンスが非常に容易なモデルになります。ERP_Asset に対して変更を加えなければならない場合、1 つの場所で行ってテストできます。展開後は、このサイトの各装置が新しい機能を自動的に継承します。