SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

InterSystems IRISでシンプルに開発するIoTアプリケーション(AD)

データプラットフォーム「IRIS」を、まずは動かしてみよう!

InterSystems IRISでシンプルに開発するIoTアプリケーション 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

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つクリックしてみると次のような画面が表示されます。その際、右側ペインの「内容」タブを選択してください。

ビジュアルトレース1
ビジュアルトレース1

 この画面の例では、左上の矢印に「EDI.XMLDocument」というメッセージが処理された時刻が表示され、右ペインにその内容が示されています。内容には、車載器の情報の各項目がXMLタグ形式で記録されています。

 メッセージの流れの中ほど(「CarUpdateRequest」と書かれたメッセージ)には、車載器のデータをもとにデータベースを更新する処理が示されています。

 そして、メッセージの流れ右下部分には、このデータで示される運転状況が、上で説明したイベント発生条件に該当しないかを確認する処理の流れが記録されています。次の図のように、この車載器情報でイベントは発生していないことが表示されています。

ビジュアルトレース2
ビジュアルトレース2

 ここで、メッセージの内容には、

<hasEvent>false</hasEvent>

と記録されていることをご確認ください。

 メッセージ一覧画面から分かるように多くのメッセージが記録されており、この中から条件を指定してメッセージを検索する機能もあります。

 では、イベントが発生したデータのメッセージを検索し、確認してみましょう。

 次の図に示すように、メッセージ一覧の画面左側、「基本条件」の「タイプ」で「すべて」を選択し、「追加条件」で「条件の追加」をクリック、ダイアログにおいて、

  • 「条件タイプ」:「ボディ・プロパティ」
  • 「クラス」:「DriveDemo.Response.CheckDriveResponse」
  • 「IF」:hasEvent = 1

をセットし「OK」を押します。一覧に戻ったところで、上にある「検索」をクリックします。

ビジュアルトレース3
ビジュアルトレース3

 そうすると、先ほどと同様、メッセージの一覧が表示されますが、これらは指定した条件にマッチするメッセージです。セッションカラムから数字を1つクリックしてみてください。

 先ほどのように、「CheckDriveResponse」とラベルの付いたメッセージを確認すると今回は、

<hasEvent>true</hasEvent>

となっており、MessageTextタグに平均速度が100km/hを超えていることが表示されています(次図)。また、イベントが発生した場合は、その後にメッセージが送信されていることも分かります。これは、MQTTにイベント発生をPublishしている部分で、このメッセージ送信によってアプリケーションの画面下側にイベントが表示される仕組みになっています。

ビジュアルトレース4
ビジュアルトレース4

まとめ

 今回は「まずは動かしてみよう」をテーマに、IRISで開発したIoTアプリケーションについてご紹介しました。

 車載器のデータをMQTTプロトコルで受信し、車の位置をWeb画面の地図にリアルタイムでプロットしたり、発生したイベントを表示したりする様子をご覧いただきました。

 アプリケーションは複数のDockerコンテナが連携して動作し、簡単なコマンドで皆様のお手元のPCで実行できることを体験していただけたと思います。

 また、このアプリケーションを実現するために、IRISのインターオペラビリティ機能を活用している点を説明しました。一見すると発生したデータを単に表示させているように見えますが、その裏側ではリアルタイムのデータがメッセージ形式で流れ、データベースへの記録やイベントの検出などの処理がトレース可能な形で実行されていることが確認できました。

 次回以降、このアプリケーションを開発する手順について説明しながら、IRISによる開発を体験していただく予定です。

参考リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
InterSystems IRISでシンプルに開発するIoTアプリケーション連載記事一覧

もっと読む

この記事の著者

堀田 稔(インターシステムズジャパン)(ホリタ ミノル)

SEマネージャー。1992年大阪大学基礎工学部情報工学科卒。同年日本ディジタルイクイップメント(株)入社。電気通信など様々な業界向けプロジェクトにシステムエンジニアとして携わる。1996年InterSystems Data Platform製品の日本語版開発プロジェクトに従事し、同製品の販売・サポー...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11720 2019/10/15 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング