2:00 PM - 5:30 PM
[S02P-08] Development of real-time monitoring system for WIN using MQTT protocol
はじめに
WINシステムは,多チャンネルの地震波形データを取り扱うための処理システムで,UNIX上で動作する多くのプログラム群から構成されている.地震観測テレメータシステムにおいては,その波形フォーマットを含め,リアルタイムデータ交換のためのシステムとして広く利用されている. プログラム群の中には,データ交換の際に利用される共有メモリ上のデータをテキストで表示するプログラムshmdumpがあり、これと連携したTcl/Tkで作成された波形表示プログラム群 (shmx, shmz, shmck) がある。波形表示プログラムは、Tcl/Tkで記述されているためマルチプラットフォーム対応となっている。Webによるリアルタイム表示システムは存在しているものの、1秒ごとに波形表示用のファイルを作成して、それらをJavaScriptのプロットライブラリによって表示するシステムなどは開発されている。今回M2MやIoTにおいてよく利用されているMQTTプロトコルを用いたWINシステム用リアルタイム表示システムを開発したので報告する。
MQTTとは Message Queueing Telemetry Transport (MQTT) は、機械同士が通信を介して情報をやり取りする M2M (Machine-to-Machine) や家電や自動車など多種多様なモノがインターネットにつながりお互いに情報をやりとりする IoT (Internt of Things) においてよく利用されているプロトコルであり、シンプル、軽量、省電力という特徴を持っている。今回はその実装アプリでありmosquitto を用いたが、MQTTでは、パブリッシュ/サブスクライブ型モデルを採用しており、1対1はもとより多対多のやり取りが可能なプロトコルである。
リアルタイム波形モニタリングシステム
地震データのやり取りは、MQTTプロトコルを採用し、リアルタイムの波形表示については、http://smoothiecharts.org にあるJavaScript ライブラリの smoothie.js を採用した。さらに、mosquitto broker への配信データフォーマットとしては、WINテキストフォーマットをjson形式に変換して送信することとした。json形式への変換は、smoothie.js でのプロットがシンプルになることによる。
実際例 実際に開発されたシステムのスナップショットを図に示した。ブラウザの負荷は非常に軽く、スマートフォンなどのブラウザでも表示できることを確認している。
今後の展望 今回は、mosquitto を利用したために、データ伝送はアスキー形式のみの対応となっているが、WINパケット(バイナリ)を送信できることがデータ転送サイズ等の面からも効率的である。また、MQTTプロトコルを採用することによりデータ送受信にアクセス制限をかけるなどが可能であり、より柔軟なデータ送受信を実現できる。また、MQTTプロトコルはrecvt/send_raw に変わって利用できる可能性があり、その性能評価なども実施していく予定である。
WINシステムは,多チャンネルの地震波形データを取り扱うための処理システムで,UNIX上で動作する多くのプログラム群から構成されている.地震観測テレメータシステムにおいては,その波形フォーマットを含め,リアルタイムデータ交換のためのシステムとして広く利用されている. プログラム群の中には,データ交換の際に利用される共有メモリ上のデータをテキストで表示するプログラムshmdumpがあり、これと連携したTcl/Tkで作成された波形表示プログラム群 (shmx, shmz, shmck) がある。波形表示プログラムは、Tcl/Tkで記述されているためマルチプラットフォーム対応となっている。Webによるリアルタイム表示システムは存在しているものの、1秒ごとに波形表示用のファイルを作成して、それらをJavaScriptのプロットライブラリによって表示するシステムなどは開発されている。今回M2MやIoTにおいてよく利用されているMQTTプロトコルを用いたWINシステム用リアルタイム表示システムを開発したので報告する。
MQTTとは Message Queueing Telemetry Transport (MQTT) は、機械同士が通信を介して情報をやり取りする M2M (Machine-to-Machine) や家電や自動車など多種多様なモノがインターネットにつながりお互いに情報をやりとりする IoT (Internt of Things) においてよく利用されているプロトコルであり、シンプル、軽量、省電力という特徴を持っている。今回はその実装アプリでありmosquitto を用いたが、MQTTでは、パブリッシュ/サブスクライブ型モデルを採用しており、1対1はもとより多対多のやり取りが可能なプロトコルである。
リアルタイム波形モニタリングシステム
地震データのやり取りは、MQTTプロトコルを採用し、リアルタイムの波形表示については、http://smoothiecharts.org にあるJavaScript ライブラリの smoothie.js を採用した。さらに、mosquitto broker への配信データフォーマットとしては、WINテキストフォーマットをjson形式に変換して送信することとした。json形式への変換は、smoothie.js でのプロットがシンプルになることによる。
実際例 実際に開発されたシステムのスナップショットを図に示した。ブラウザの負荷は非常に軽く、スマートフォンなどのブラウザでも表示できることを確認している。
今後の展望 今回は、mosquitto を利用したために、データ伝送はアスキー形式のみの対応となっているが、WINパケット(バイナリ)を送信できることがデータ転送サイズ等の面からも効率的である。また、MQTTプロトコルを採用することによりデータ送受信にアクセス制限をかけるなどが可能であり、より柔軟なデータ送受信を実現できる。また、MQTTプロトコルはrecvt/send_raw に変わって利用できる可能性があり、その性能評価なども実施していく予定である。