SHOEISHA iD

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

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

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

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アプリケーション連載記事一覧

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12117 2020/03/31 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング