例: Thing、Thing Template、または Thing Shape の使用
どのような場合に Thing Template を使用するか?
例: 会社がスマートコネクテッド製品である自動車を借りる場合、あなたは GenericThing Thing Template をベーステンプレートとして使用して Vehicle Thing Template を作成できます。Vehicle Thing Template に基づいて、Car および Truck Thing Template を作成します。Car テンプレートに基づいて、Electric Car Thing Template および Internal Combustion Car Thing Template を作成します。Truck Thing Template に基づいて、Tanker Truck Thing Template および Refrigerated Truck Thing Template を作成します。これらの Thing Template を実装する個々の Thing を作成します。このシナリオを以下の図に示します。
どのような場合に Thing Shape を使用するか?
Thing Template は 0 個、1 個、または複数の Thing Shape を実装できます。
会社は (Truck Thing Template に基づいた) 冷蔵トラックおよび (Vending Machine Thing Template に基づいた) 冷蔵自動販売機を所有しています。これら 2 つのエンティティには、動作温度、容量、消費電力、熱出力などの共通のプロパティがあります。この動作を 2 回定義する代わりに、Refrigerated Unit Thing Shape 内でこれを定義すると効率的です。この Thing Shape を両方のエンティティで再使用できます。
Thing、Thing Template、および Thing Shape はどのように連携するか?
Thing Template、Thing Shape、および Thing がどのように連携するかを以下の図に示します。次の点に注意してください。
VehicleTemplate Thing Template はシステム Thing Template RemoteThing をベーステンプレートとして実装し、AssetShape および EngineShape Thing Shape を継承します。この結果、VehicleTemplateRemoteThing Thing Template、AssetShape および EngineShape Thing Shape のすべてのプロパティおよびサービスを持ちます。
PassengerCarTemplateTruckTemplate、および BusTemplate Thing Template はベーステンプレートとして VehicleTemplate Thing Template を実装します。この結果、これらは VehicleTemplate Thing Template のすべてのプロパティおよびサービスを継承します。
TruckTemplate および BusTemplate Thing Template は TrackerShape Thing Shape を継承します。これらは VehicleTemplate Thing Template のプロパティに加えて、TrackerShape Thing Shape のプロパティを持ちます。
Thing C1C2、...、Cn はベーステンプレートとして PassengerCarTemplate を実装します。
Thing T1T2、...、Tn はベーステンプレートとして TruckTemplate を実装します。
Thing B1B2、...、Bn はベーステンプレートとして BusTemplate を実装します。