IRIS内で実行されていること
アプリケーションが動くところを見て、とても面白いと思っていただけたでしょうか? しかし、そう思った方も、IRISが一体何をどう処理しているのだろうという疑問を持たれるのではないでしょうか。
この連載を通して、その疑問に答え、IRISによるアプリケーション開発を体験していただく訳ですが、今回はポイントとなる部分をいくつか紹介したいと思います。
IRIS管理ポータル
IRISには、さまざまなツールが付属しています。その一つが、ここで紹介する管理ポータルと呼ばれるWebベースのツールです。
Webブラウザから「http://localhost:52003/csp/sys/UtilHome.csp」を開いてください。ユーザ名とパスワードを聞かれるので、ここでは、それぞれ「SuperUser」「driveuser」と入力してください。
そうすると次のような画面が表示されます。
管理ポータルは、IRISの設定を行ったり、状態のモニターを行ったりするツールです。この連載でも度々使用するので、管理ポータルのアクセス方法はぜひ覚えておいてください。
インターオペラビリティ
IRISにはインターオペラビリティ(interoperability:相互運用性)の機能が内包されています。
複数のシステムが連携して動作する仕組みにおいて、あるシステムで発生したデータを、どのように変換・収集し、一貫性のあるデータベースを構築するか、またそのようなデータを他のシステムに変換・送信するかは非常に重要な機能です。そのような機能を一般にインターオペラビリティと呼びます。IRISは、さまざまなデータ形式やネットワークプロトコルに対応するアダプタを装備し、また、処理されるデータをメッセージとしてトレースする機能を持つなど、インターオペラビリティを必要とするアプリケーションの開発を強力にサポートします。
今回取り上げている車載器のデータをMQTTで受信する仕組みも、IRISのインターオペラビリティ機能を活用しています。ここでは、その一端をご覧いただきたいと思います。
管理ポータルで、[Interoperability]-[表示]-[メッセージ]の順にクリックしてください。そうすると、次のような画面が表示されます。
ここには、MQTTで受信した車載器のデータをメッセージとして処理した記録が一覧表示されています。例えば、セッションと書かれたカラムの数字を1つクリックしてみると次のような画面が表示されます。その際、右側ペインの「内容」タブを選択してください。
この画面の例では、左上の矢印に「EDI.XMLDocument」というメッセージが処理された時刻が表示され、右ペインにその内容が示されています。内容には、車載器の情報の各項目がXMLタグ形式で記録されています。
メッセージの流れの中ほど(「CarUpdateRequest」と書かれたメッセージ)には、車載器のデータをもとにデータベースを更新する処理が示されています。
そして、メッセージの流れ右下部分には、このデータで示される運転状況が、上で説明したイベント発生条件に該当しないかを確認する処理の流れが記録されています。次の図のように、この車載器情報でイベントは発生していないことが表示されています。
ここで、メッセージの内容には、
<hasEvent>false</hasEvent>
と記録されていることをご確認ください。
メッセージ一覧画面から分かるように多くのメッセージが記録されており、この中から条件を指定してメッセージを検索する機能もあります。
では、イベントが発生したデータのメッセージを検索し、確認してみましょう。
次の図に示すように、メッセージ一覧の画面左側、「基本条件」の「タイプ」で「すべて」を選択し、「追加条件」で「条件の追加」をクリック、ダイアログにおいて、
- 「条件タイプ」:「ボディ・プロパティ」
- 「クラス」:「DriveDemo.Response.CheckDriveResponse」
- 「IF」:hasEvent = 1
をセットし「OK」を押します。一覧に戻ったところで、上にある「検索」をクリックします。
そうすると、先ほどと同様、メッセージの一覧が表示されますが、これらは指定した条件にマッチするメッセージです。セッションカラムから数字を1つクリックしてみてください。
先ほどのように、「CheckDriveResponse」とラベルの付いたメッセージを確認すると今回は、
<hasEvent>true</hasEvent>
となっており、MessageTextタグに平均速度が100km/hを超えていることが表示されています(次図)。また、イベントが発生した場合は、その後にメッセージが送信されていることも分かります。これは、MQTTにイベント発生をPublishしている部分で、このメッセージ送信によってアプリケーションの画面下側にイベントが表示される仕組みになっています。
まとめ
今回は「まずは動かしてみよう」をテーマに、IRISで開発したIoTアプリケーションについてご紹介しました。
車載器のデータをMQTTプロトコルで受信し、車の位置をWeb画面の地図にリアルタイムでプロットしたり、発生したイベントを表示したりする様子をご覧いただきました。
アプリケーションは複数のDockerコンテナが連携して動作し、簡単なコマンドで皆様のお手元のPCで実行できることを体験していただけたと思います。
また、このアプリケーションを実現するために、IRISのインターオペラビリティ機能を活用している点を説明しました。一見すると発生したデータを単に表示させているように見えますが、その裏側ではリアルタイムのデータがメッセージ形式で流れ、データベースへの記録やイベントの検出などの処理がトレース可能な形で実行されていることが確認できました。
次回以降、このアプリケーションを開発する手順について説明しながら、IRISによる開発を体験していただく予定です。