この例は、Cepheus-Broker が Orion から IoT Agent (デバイスのプロトコルアダプタ)にクエリとコマンドを転送する方法を示しています。

以下の状況を考えてみましょう : - 複数のルームに温度センサのセット - 開閉する窓のシャッターを制御するフラップセンサのセット - フロアのセット上の複数のルーム

特定のルームまたはすべてのルームの温度をクエリします。
特定の窓シャッターのステータスをクエリします。
窓のシャッターの開閉を更新します。

この例では、IoT Agent と Orion をシミュレートするためモックを使用します。

アーキテクチャ

この例では、Orion は Cepheus-Broker を通じて IoT Agent にクエリ・リクエストを送信して、ルームの現在の温度を知ることができます。IoT Agent は Cepheus-Broker を通じてすべての温度を返送します。Orion は Cepheus-Broker を介して IoT Agent にクエリ・リクエストを送信し、シャッターの現在の状態を確認します。IoT Agent は、常に Cepheus-Broker を通じてステータスを返信します。Orion は Cepheus-Broker を介して IoT Agent にシャッターのクローズ・コマンドを送信します。IoT Agent は、コマンドの戻りコードを返します。

example6

これを次の図に示します :

example6

灰色の部分はリファレンス・アーキテクチャの一部であり、この例では使用しません。

CEPの設定

この例では、Cepheus-CEP は使用しません。

セットアップをテスト

最初の端末で、mock-orion を起動します。マシン上のデフォルトの port :8082です。

cd doc/examples/mocks/mock-orion
mvn spring-boot:run

2番目の端末で、Cepheus-Broker を起動します :

cd cepheus-broker
mvn spring-boot:run

デフォルトの設定では、マシン上の port :8081で起動する必要があります。

次に、3番目の端末で、mock-iotagent を起動します :

cd doc/examples/mocks/mock-iotagent
mvn spring-boot:run

デフォルトの設定では、マシン上の port :8083で起動する必要があります。

今度は別のターミナルで、run.sh スクリプトを起動します :

cd scripts/6_QueryAndCommand
sh run.sh

このスクリプトは Admin API によってモックを管理し、登録とクエリを送信します。

mock-iotagent は、ルームとシャッターのコンテキスト・エンティティの登録リクエストを Cepheus-Broker に送信します。
Cepheus-Broker は登録を mock-orion に転送します。
mock-orion は、すべてのルームの温度を Cepheus-Broker にリクエストします。
Cepheus-Broker は、クエリ・リクエストを mock-iotagent に転送します。
mock-iotagent はクエリー・レスポンスを Cepheus-Broker に送信します。
Cepheus-Broker は、値を出力する mock-orion に応答を転送します。

シャッター状態も同様です。

mock-orion は、Shutter21 のシャッターの状態の更新リクエストを Cepheus-Broker に送信します。
Cepheus-Broker は、mock-iotagent に更新リクエストを転送します。
mock-iotagent は Cepheus-Broker にok を返します。
Cepheus-Brokerはレスポンスを出力する mock-orion にレスポンスを転送します。

mock-orion のログで mock-iotagent のレスポンスを見ることができます。