CodeZine(コードジン)

特集ページ一覧

IRISのインターオペラビリティ機能を使いこなそう(前編)

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

 この連載では、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では、このようにクラスの多重継承が可能です。

 クラスの定義ができたらコンパイルしてください。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

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

バックナンバー

連載:InterSystems IRISでシンプルに開発するIoTアプリケーション
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5