MQTTとは
IoT活用におけるセンサデバイスやゲートウェイからインターネットへの通信は、小さいサイズのデータを大量に送信することが想定されます。このような通信形態に合うプロトコルの一つに「MQTT」(MQ Telemetry Transport)があります。
MQTTは、IoTやM2M[1]の実現に適したシンプルで軽量なプロトコルで、Facebook Messengerでも使用されています。
注
[1]: Machine to Machineの略。機械間でネットワークを介して互いにデータをやりとりすること。
MQTTでは、送信元を「Publisher」、受信先を「Subscriber」と呼びます。また、MQTTの通信は、PublisherとSubscriberの間に「MQTTブローカ」と呼ばれるサーバを置き、それを経由しておこないます。
Publisherが送信するデータのことを「メッセージ」と呼びます。Publisherは、トピックという文字列を指定してMQTTブローカへメッセージを送信します(①)。
MQTTブローカには、あらかじめどのトピックをどのSubscriberが受信するかを定義しておきます。
メッセージを受信したMQTTブローカは、受信メッセージのトピックを受信登録しているすべてのSubscriberに向けてメッセージを送信します(②)。
受信対象を指定する際には、トピックに指定した文字列に完全一致するものだけでなく、一部が合致するものも指定することができます。
なお、MQTTブローカは、受信したメッセージを永続的に保持する責任を持ちません。このためメッセージを保管したい場合は、Subscriber以降でデータストアへ格納する処理を実行しなくてはなりません。
MQTTには、次のような特徴があります。
通信量が少ない
基本的にTCP/IP上で動作を前提としており、インターネットとの親和性も高く、HTTP通信と比較すると通信量が少なくなります。通信量が10分の1になると仮定すると、同じ電力でMQTTはHTMLの10倍の通信量を送信可能ということとなります。
IoT活用では、センサデバイスの配置場所により給電が難しい場合もあるため、電力消費の節約は優先度の高い問題になります。
QoSが選択可能
QoSとは、Quality of Serviceの略で、通信品質のことを指します。MQTTでは送信時にQoSを0から2の3段階から指定することができます。
QoS | 説明 |
---|---|
0 | At most once: 送信は1回だけ実行されるが、到着する保証はされない |
1 | At least once: 到着は保証されるが、同一メッセージを複数受信する可能性がある |
2 | Exactly once: 1件のみの受信が保証される |
Publisherの生死を判断できる
PublisherはMQTTブローカと接続したときに「Will(遺言)」情報を追加することができます。意図しない理由でPublisherが接続できなくなった場合、MQTTブローカはWillに定義されたメッセージをSubscriberへ送信します。Subscriberはこのメッセージを受信することで、Publisherが停止していることがわかります。
認証機能を持つ
MQTTブローカに接続する際に認証確認をおこなうことができます。認証方法はMQTTブローカ側の実装によって異なります。
IoT活用において、個人のライフログを取り扱う場合などは、セキュリティ要件の優先度が高くなることが考えられます。
主なMQTTブローカ
主なMQTTブローカとして、次のようなものがあります。SaaS形式で提供されているものが多いのは、ベンダ側もおそらくIoT活用ケースとしてデバイスをインターネットに直接接続することが多いと想定しているからだとおもいます。
名称 | 説明 |
---|---|
Mosquitto | BSDライセンス準拠のオープンソース。主要なLinuxディストリビューションやWindows上で動作する。執筆時点で入手した Intel Edisonには購入した状態でMosquittoがインストールされていた |
Akane | 時雨堂社の有償ソフトウェア、クラスタ構成を取ることができる。Ubuntu/CentOSで動作する |
Sango | AkaneのSaaS版。無料のライトプランもあり |
CloudMQTT | Mosquittoを使ったSaaS。動作環境としてAmazon Web Service(AWS)を使用しており、無料版含む4種類のプランを提供している |
AWS IoT | Amazon社がAWSの新たなサービスとして提供。2015年12月18日正式リリース |
ニフティクラウド MQTT(β) | ニフティクラウドのサービスの1つとして2015年5月11日にリリース。執筆時点では無料プランのみ |
IBM MessageSight | M2Mとモバイル環境向けに特別に設計されたIBM社のメッセージングアライアンス。ハードウェアだけでなく仮想アプライアンス版も提供されている |
IBM Watson IoT Platform | IoT活用を前提としたIBM社提供のSaaS型MQTTブローカ。無料版を含む4種類のプランを提供 |
今回は、これらの中から、アプリケーション開発環境との親和性も高く、無料で使うことができる「IBM Watson IoT Platform」を試してみることにします。
IoTを始めたい方も・本格導入を検討中の方も:おすすめソリューションのご紹介
ビジネスのパフォーマンスを高めようとさまざまな業種・企業で、IoT活用を前提とするプロジェクトが動き始めています。ただし、検討を始めて最初に出てくるのは、こんな要望ではないでしょうか。
「最初は実験的にスタートしたいから、小さく簡単に素早く始めたい」
「実運用に移ったときには10万・100万単位のセンサ/デバイスに対応できるスケーラビリティも確保したい」
これにお応えできるサービス・製品がIBMにあります。ぜひ、下記の資料をご覧ください。(編集部)