IRISのインターオペラビリティ機能を使いこなそう(前編)
InterSystems IRISでシンプルに開発するIoTアプリケーション 第5回
この連載では、InterSystems IRIS Data Platform(以下IRIS)を使って車載器から発生するデータを扱うIoTアプリケーションの構築方法を紹介しています。これまでの連載をまだご覧いただいていない方は、是非この機会にお試しください。
はじめに
今回と次回の2回に分けて、インターオペラビリティ機能について詳しく説明し、アプリケーションを完成させます。今回は、
- 車載器データを記録するクラス
- メッセージ(リクエスト、レスポンス)
- ビジネス・オペレーション
- データ変換
- ビジネス・ルール
の作成について説明します。
アプリケーションの全体構成図を再掲します。
図に示したように、MQTTプロトコル経由で車載器のデータをIRISに取り込む部分は既に説明しました。今回と次回で作成するのは次の機能です。
- MQTT経由で入ってきた車載器データを変換する
- 変換されたデータを適切なコンポーネントに配送するためのビジネス・ルール、ビジネス・プロセスを定義する
- 車載器データをデータベースに保存する
- 車載器データから「イベント」を検知し、MQTTブローカにPublishする
それでは早速開発を始めましょう。今回もVisual Studio Codeを使用して開発を行います。準備として、前回の内容を反映したコンテナを起動しておいてください。そのコンテナがない方は、前回の記事の内容を実施してください。
今回説明するクラスは、DriveDemoディレクトリのIRIS-MQTT/projects/srcs/iris以下にあります。説明を読みながら適宜利用してください。なお、ソースファイルなど一式をまだダウンロードしていない方は、GitHubからpullしてください。
クラスの定義
まずは、車載器のデータをすべて記録するクラス(DriveDemo.Data.DriveRecord)の定義です。
Class DriveDemo.Data.DriveRecord Extends(%Persistent, %XML.Adaptor)
{
Property CarId As %String;
Property RelativeTm As %Integer;
Property Longitude As %Float;
Property Latitude As %Float;
Property Azimuth As %Float;
Property Speed As %Float;
Property EngineRPM As %Float;
Property AccelPos As %Float;
Property BrakeSW As %Boolean;
Property AcumDistance As %Float;
Property AcumFuel As %Float;
Property FuelInjection As %Float;
Property aX As %Float;
Property aY As %Float;
Property aZ As %Float;
Index MainIdx On CarId;
}
前回定義したDriveDemo.Data.CarLatestクラスとほぼ同様です。後の項で説明するリクエストメッセージで使用するため、Extends (%Persistent, %XML.Adaptor)と定義しています。%XML.Adaptorクラスは、インスタンスデータをXML形式で表現することを可能にするクラスです。また、IRISでは、このようにクラスの多重継承が可能です。
クラスの定義ができたらコンパイルしてください。
この記事は参考になりましたか?
- InterSystems IRISでシンプルに開発するIoTアプリケーション連載記事一覧
-
- IRISのインターオペラビリティ機能を使いこなそう(後編)~OpenAPIを利用したRES...
- IRISのインターオペラビリティ機能を使いこなそう(前編)
- Visual Studio Codeを使ってIRISのクラスを定義してみよう
- この記事の著者
-
堀田 稔(インターシステムズジャパン)(ホリタ ミノル)
SEマネージャー。1992年大阪大学基礎工学部情報工学科卒。同年日本ディジタルイクイップメント(株)入社。電気通信など様々な業界向けプロジェクトにシステムエンジニアとして携わる。1996年InterSystems Data Platform製品の日本語版開発プロジェクトに従事し、同製品の販売・サポー...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
