ビジネス・サービスをプロダクションに追加
設定もようやく最終段階になります。先ほど作成したビジネス・サービスをプロダクションに追加します。
管理ポータルのホーム画面から、[Interoperability]→[構成]→[プロダクション]と選択し、プロダクションの管理画面に移動します。そこで、先ほどと同様、「サービス」と書かれた横の+マークをクリックします。
ダイアログで、次の図のように、サービスクラスに 「JBH.Com.Intersystems.Drivedemo.MqttBS」を選択、サービス名に「MQTTIn」と入力、「有効にする」にチェックを入れ[OK]を押します。
また、同様に「プロセス」と書かれた横の+マークをクリックし、次の図のとおり、ビジネス・プロセス・クラスに「EnsLib.MsgRouter.VDoc.RoutingEngine」を選択し、ビジネス・プロセス名に「RoutingEngine」と入力して、「ルールの自動作成」にチェック。新規ルールパッケージに「DriveDemo」と入力し、「有効にする」にチェックを入れて[OK]を押します。警告が出ますが、ここではOKを押してください。ビジネス・プロセスについては次回以降で解説します。
最後にMQTTInの設定を行います。ターゲット構成名に「RoutingProcess」を選択して、Docスキーマ・カテゴリに「mqtt_schema_driverecord」を選択し、MQTTBrokerに「tcp://mqttbroker:1883」と入力。MQTTClientNameに「IRISClient」と入力し、MQTTTopicRootに「DriveDemo/#」と入力して、[適用]をクリックします(次図)。
ここで、MQTTBroker、MQTTClientName、MQTTTopicRootは、Javaのプログラムに渡される項目であることに注意してください。
そして、設定を有効にするために、画面上部中程の[停止する]を押してから[開始する]を押して、プロダクションを再起動してください(次図)。
以上で、MQTTプロトコルでデータを受信するプロダクションの設定が完了しました。
実行
ここまで設定・作成したアプリケーションを実行してみましょう。
前回と同様、DataGeneratorディレクトリに移動し、車載器データを生成するプログラムを動かします。
>cd DataGenerator Linux, Mac OSの場合 >./run.sh Windowsの場合 >run.bat
管理ポータルのホームから[Interoperatility]→[表示]→[メッセージ]とクリックすると、メッセージの一覧が表示されます。そのうちの一つを確認してみてください。次の図のようなメッセージが流れていることが分かります。
今回作成したのは、MQTTプロトコルで受信したデータをXMLのメッセージとしてJavaビジネス・サービスがメッセージに変換し、それを仮に作成したRoutingProcess(ビジネス・プロセス)に送信するところまでですが、その様子が表示されています。
まとめ
今回は、IoTで利用されるMQTTプロトコルをIRISから利用する手順をご紹介しました。IRISのインターオペラビリティ機能を使用するために、プロダクションと呼ばれる実行環境を作成し、そこにビジネス・サービスやビジネス・プロセスといったコンポーネントを追加することで、機能を実装していく流れを説明しました。
また、MQTT Brokerとの接続のためにJavaのプログラムを書き、それをビジネス・サービスに組み込む方法をご紹介しました。
次回は、Visual Studio Codeを使ってIRISにクラスを定義する方法を紹介する予定です。
参考
インターシステムズでは、開発者の皆様にIRISを知っていただくために、いろいろな機能を紹介する短い動画を作成しています(日本語字幕付き)。
インターオペラビリティ機能は以下のページで説明されています。ぜひご覧ください。