3:30 PM - 5:00 PM
[S02P-03] Development of a realtime monitor system for WIN system using the MQTT protocol
はじめに
WINシステムは。多チャンネルの地震波形データを取り扱うための処理システムで、UNIX上で動作する多くのプログラム群から構成されている。地震観測テレメータシステムにおいては、その波形フォーマットを含め、リアルタイムデータ交換のためのシステムとして日本においては広く利用されている。プログラム群の中には、データ交換の際に利用される共有メモリ上のデータをテキストで表示するプログラムshmdumpがあり、これと連携したTcl/Tkで作成された波形表示プログラム群 (shmx、 shmz、 shmck) もパッケージには同梱されている。波形表示プログラムは、Tcl/Tkで記述されているためマルチプラットフォーム対応となっているが、Webプラットフォームには対応していない。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 への配信データフォーマットとしては、smoothie.js でのプロットがシンプルかつダイレクトであるため、WINテキストフォーマットをjson形式に変換して送信を行なった。
実際例
実際に開発されたシステムのスナップショットを示した。ブラウザの負荷は非常に軽く、スマートフォンなどのブラウザでも表示できることを確認した。
今後の展望
今回は、mosquitto を利用したために、データ伝送はアスキー形式のみの対応となっているが、WINパケット(バイナリ)を送信できることがデータ転送サイズ等の面からも効率的である。また、MQTTプロトコルを採用することによりデータ送受信にアクセス制限をかけるなどが可能であり、より柔軟なデータ送受信を実現できる。また、MQTTプロトコルはrecvt/send_raw に変わって利用できる可能性がありその性能評価なども今後実施したい。
WINシステムは。多チャンネルの地震波形データを取り扱うための処理システムで、UNIX上で動作する多くのプログラム群から構成されている。地震観測テレメータシステムにおいては、その波形フォーマットを含め、リアルタイムデータ交換のためのシステムとして日本においては広く利用されている。プログラム群の中には、データ交換の際に利用される共有メモリ上のデータをテキストで表示するプログラムshmdumpがあり、これと連携したTcl/Tkで作成された波形表示プログラム群 (shmx、 shmz、 shmck) もパッケージには同梱されている。波形表示プログラムは、Tcl/Tkで記述されているためマルチプラットフォーム対応となっているが、Webプラットフォームには対応していない。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 への配信データフォーマットとしては、smoothie.js でのプロットがシンプルかつダイレクトであるため、WINテキストフォーマットをjson形式に変換して送信を行なった。
実際例
実際に開発されたシステムのスナップショットを示した。ブラウザの負荷は非常に軽く、スマートフォンなどのブラウザでも表示できることを確認した。
今後の展望
今回は、mosquitto を利用したために、データ伝送はアスキー形式のみの対応となっているが、WINパケット(バイナリ)を送信できることがデータ転送サイズ等の面からも効率的である。また、MQTTプロトコルを採用することによりデータ送受信にアクセス制限をかけるなどが可能であり、より柔軟なデータ送受信を実現できる。また、MQTTプロトコルはrecvt/send_raw に変わって利用できる可能性がありその性能評価なども今後実施したい。