MQTTとは
MQTTとは、IoT時代の通信プロトコル
TCP/IPネットワークで利用できる通信プロトコル、「MQTT」(Message Queueing Telemetry Transport :エムキュウティティー)の特長をご紹介します。
「MQTT」が、機械同士が通信を介して情報をやり取りするM2M(Machine-to-Machine)や、家電や自動車など多種多様な「モノ」がインターネットにつながり、お互いに情報をやり取りするIoT(Internet of Things)を実現するのに適したプロトコルと言われるゆえんは、シンプルで軽量なところにあります。
「MQTT」は、あらゆる「マシン」や「モノ」といった多数のデバイスの間で、短いメッセージを頻繁に送受信することを想定して作られているからです。
※http://codezine.jp/article/detail/8000 を参考に当社で作成
IBM社とEurotech社のメンバーにより考案された
「MQTT」は1999年にIBM社とEurotech社のメンバーにより考案されたプロトコルで、最新のバージョンは3.1.1です。現在、コンピュータと通信に関する標準化団体であるOASISによって、「MQTT」の標準化が進められています。
「MQTT」は、シンプル、軽量、省電力
IoT、M2M時代を支えるプロトコル「MQTT」(Message Queueing Telemetry Transport )の「Message Queueing」とは、送信側が送るデータをデータ領域に一旦保持しながら、受信側の処理が完了するのを待たずに次の処理へ移る方式です。
また「Telemetry Transport」とは遠隔測定用の通信を意味し、遠隔にあるセンサーやデバイスなどが収集したデータを、受信側の処理状況を気にせず効率よく送信することができるプロトコルです。
「MQTT」は一方向、1対1の通信のみでなく、双方向、1対多の通信が可能でありながら、プロトコルヘッダが小さくなっています。例えば、HTTPと「MQTT」のヘッダサイズを比べると「HTTP:50バイト~」に対して、「「MQTT」:2バイト~」となります。「MQTT」は、その軽量さから、バッテリーの消費を抑えたいモバイル向けの通信に適しています。
また「MQTT」のトラフィックは、HTTPに比べると10分の1になります。すなわち通信量やCPU負荷、電力消費量などを、従来の10分の1に抑えることができるのです。
パブリッシュ/サブスクライブ型モデルを採用した「MQTT」
IoTやM2Mを実現する「MQTT」(Message Queueing Telemetry Transport :エムキュウティティー)の特長をご紹介しています。
「MQTT」は、パブリッシュ/サブスクライブ(Publish/Subscribe)型のモデルを採用しています。このモデルでは、メッセージの送信側をパブリッシャー、メッセージの受信側をサブスクライバーに分け、「MQTT」サーバーがメッセージの中継を行います。
パブリッシャーはサブスクライバーを意識することなく、サーバーにメッセージの送信ができる一方で、サーバーは、それらのメッセージを一旦預かり、管理し、適切にサブスクライバーに配信する責任を持ちます。
そのほか、次のような特長があります。
-通信環境が不安定な場合など、レベルに応じた通信を可能にする(QoS)
-非同期のパブリッシュ/サブスクライブ型型通信により、“相手が読めるときに読む“方式を実現する
-クライアント(デバイス)障害時などに、“遺言”を送信することが可能
「1つが小さい」「大量の」データを「低遅延」「双方向」で通信できる「MQTT」
「MQTT」の実装は、増加しています。
『日本IBM、大量の端末を業務につなぐM2M向けメッセージ中継ゲートウエイ装置を発表』
http://itpro.nikkeibp.co.jp/article/NEWS/20130613/484847/
■Paho
-IBM社とEurotech社のメンバーにより開発・寄贈
■Mosquitto
-オープンソースの「MQTT」フレームワーク
-Intel超小型コンピュータ「Edison」にも組み込まれている
■HiveMQ
ドイツで開発された「MQTT」ブローカー
■Akane
国内ベンダ開発の「MQTT」ブローカー
■Facebook Messenger での採用
Facebook Messenger に例に取ると、「1個1個が小さい」「大量の」データを「遅延が少なく」「双方向」で通信できることから、「MQTT」は大規模チャットシステムの基盤としても有効であることがわかります。