この例は、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 は、コマンドの戻りコードを返します。
これを次の図に示します :
灰色の部分はリファレンス・アーキテクチャの一部であり、この例では使用しません。
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 のレスポンスを見ることができます。