Dr.Sum Data Funnelで使える通信方式
Dr.Sum Data Funnelでは通信方式にMQTTを使います。
この記事ではMQTTとはどういった通信方式なのかを簡単に解説したあと、Data Funnelで実際にMQTTを扱う方法について紹介します。
MQTTとは
MQTTとは、Message Queueing Telemetry Transportを略したものです。軽量省電力で、短いメッセージを頻繁に送受信することを想定して策定されたプロトコルです。パブリッシュ/サブスクライブ(Publish/Subscribe)型のモデルを採用しており、「Publisher」「Broker」「Subscriber」がそれぞれの役目を果たします。
……という説明で「なるほど理解した」となる方は、この記事を読んでないはずですね。
もうちょっと詳しく見ましょう。
MQTTの特長「軽量」「省電力」で「短いメッセージを頻繁に送受信する」は、IoTデバイスがデータを送受信する際に適切です。
- パブリッシュ/サブスクライブ(Publish/Subscribe)型のモデル
「サブスクライブ」という単語は、日本ではここ数年で一気に認知度が向上した単語ですね。「サブスク」と略されることが多く、日本での理解は一般には「月額定額課金」みたいなところですが、本来は「購読」という意味合いです。一方で、パブリッシュは「出版」ですね。そのため、「Publish/Subscribe(PubSub)型のモデル」は、日本語では「出版-購読型のモデル」と言われることもあるようです。
Publish/Subscribe型のモデルでは、「Publisher」「Broker」「Subscriber」がそれぞれ役割を果たします。なお、「Broker」というのは、日本語としてはあまり意味の良いイメージがありませんが、本来は「仲介人/仲介者」を指します。
PubSubモデル
ここは、日本語の「出版-購読型モデル」のほうで考えると、わかりやすいと思います。
出版-購読型モデル
出版社が毎日大量の雑誌をストアに登録(Publish)して、購読者はストアから、自分が購読登録しておいた雑誌を、各々の適切なタイミングでダウンロード(Subscribe)します。
MQTTトピック
上述した電子書籍ストアの例では、自分が購読登録しておいた雑誌だけをダウンロードします。この場合は当然雑誌名を指定してダウンロードしますよね(内部的にはIDかもしれませんが)。
では、MQTTの場合はどうやってMQTTメッセージを特定するのでしょうか。
MQTTの場合は、トピック(Topic)という仕組みが用意されています。
トピックはPublisherがBrokerに送信時にメッセージに含みます。
MQTTはトピックでメッセージを区別する
Dr.Sum Data Funnelでの実装
ここまで見てきたMQTTの特徴を踏まえて、Data Funnelでのシステム構成を見てみましょう。
ピンク字の箇所が、Dr.SumおよびData Funnelで提供するアプリケーションです。
Publisherはこの場合は各IoTデバイスが担当します。場合によっては、IoTデバイスを統括するコントローラーのようなものが担うこともあるかもしれません。
そして、PublisherはData Funnelが提供するMessage Brokerにメッセージを送信します。ここはそのままです。
Subscriberの役目を担うのはData Funnel(Server)です。
Data FunnelではメッセージをSubscribeしたあと、適切なデータ加工を施しながらDr.Sumに投入することができます。その際の設定を行なうツールがData Funnel Clientです。
Data Funnelで行える加工の概要については以下記事をご参照ください。
Data Funnelで使う方法
Data FunnelでメッセージをSubscribeする点にフォーカスして、設定方法を確認しましょう。
と言っても難しい点はいっさいありません。
MQTTではメッセージを特定するためにトピックを使いましたね。
SubscriberたるData Funnelでもやはりトピックを指定します。
なお、[トリガー間隔]という設定値がすぐ下にあります。
これはData FunnelがMessage BrokerにSubscribeしにいく間隔を示しています。
IoTデバイスがMQTTに対応していない場合は?
さて、これでMQTTプロトコルおよびData FunnelでのMQTTの利用方法については概要を掴めたのではないかと思います。Data FunnelはMQTTの利用を前提として構成され、また動作します。
それでは、データを取得分析したいIoTデバイスがMQTTでのデータ送信に対応していない場合は、Data Funnelは使えないツールになってしまうのでしょうか。
もちろん、答えはいいえです。
Data Funnelでは、MQTTが利用できない場合にも、他に2種類のプロトコルでのデータ受信に対応できるアプリケーションが付属します。
Data Funnel HTTP Agent
名前のとおり、HTTPプロトコルでデータ受信できます。
HTTP AgentはWebサーバーとして動作し、HTTPで受け付けたデータをMQTTに変換して、Message BrokerにPublishする役割を担います。
Data Funnel OPC UA Agent
HTTPに比べたら遙かに耳慣れないと思いますが、OPU UAというのは、産業オートメーションなどの業界で、安全で信頼性あるデータ交換を行うために策定されたオープンな国際標準規格です。
HTTP Agentと同様に、OPC UA AgentはOPU UAで取得したデータをMQTTに変換して、Message BrokerにPublishする役割を担います。
先ほどのシステム構成図に2つのアプリケーションを加えると、このように図示できます。
HTTP AgentもOPU UA Agentも、MQTTでの仲介をすることで、「Publish/Subscribe(PubSub)型のモデル」においては両方ともPublisherとして振る舞うことに注意してください。
また、OPU UA AgentはOPU UAサーバーからデータを取得するため、その設定を行なうためのOPU UA Clientが存在します。
おわりに
いかがだったでしょうか。
Data Funnelは構成図を見せられると知らない用語がたくさん載っているので頭が理解を拒んでしまう側面があるかなと思いますが、このように一つひとつ見ていくとそれほど難しいシステムではないことが理解いただけたのではないでしょうか。
皆様もFunnelを活用して、ぜひ快適なデータ分析ライフをお過ごしください。