はじめに
近年、「IoT」や「スマートホーム」の発展とともに、MQTTという通信プロトコルに再度注目が集まっています。
今回は、このMQTTの仕組みをご紹介いたします。
MQTTとは
MQTTは、Message Queuing Telemetry Transport の略称で、1999年にIBMの技術者により、考案された通信プロトコルです。
2014年には、OASISにより正式な標準規格とされました。
よくHTTPと比較されるのですが、MQTTはHTTPよりも軽量で、消費電力が少なく、非同期な双方向通信が可能な特徴があります。
また、限られた帯域幅でも動作するため、特にリソースが限られているIoT(モノのインターネット)やM2M(機械間通信)に最適とされています。
シンプルな設計と高い互換性により、さまざまなデバイスとシステム間でのシームレスなデータ交換が可能なため、その利用範囲は広がりを見せています。
MQTTの通信構成
MQTTは、publish/subscribe型のメッセージングモデルを採用しています。
publish/subscribeモデルでは、メッセージの送信側をpublisher(発行元)、メッセージの受信側をsubscriber(購読者)と呼び、brokerと呼ばれるMQTTサーバーが間に入ってメッセージを扱います。publisherとsubscriberは直接繋がらないのが特徴です。
この通信では、クライアント(publisher/subscriber)はEメールのようなアドレスを持たず、「topic」を通じてMQTTサーバーを中継してやりとりされます。
MQTTとHTTPの比較
MQTT | HTTP | |
---|---|---|
同期有無 | 非同期 | 同期 |
送受信対象 | 多対多 | 1対1 |
データ量 | 軽い(小さい) | 重い(大きい) |
通信不安定な時 | 再接続時に再度送受信が可能 | 送受信できない |
MQTTは通信のオーバーヘッドが小さく、トラフィックがHTTPと比べて10分の1程度であるため、実質的な処理能力も約10倍となります。
また、最小のヘッダサイズは2byteと軽量なため、バッテリー消費も10分の1以下に抑えることができます。
通信方法も異なります。
HTTPは同期プロトコルのため、クライアントがリクエストを送信し、サーバーがそれに応答する1対1の通信を行います。
一方、MQTTは非同期プロトコルで双方向やグループでの通信が可能です。ネットワークが不安定な場合でも再度送受信でき、必ずしもsubscriberがリアルタイムで待機する必要もありません。
そのため、M2MやIoTでは、HTTPよりもMQTTが最適とされています。
MQTTを利用するメリット
MQTTは、データ量を抑えた多数のメッセージ通信に適しています。
特に、センサー遠隔監視では、機器は正常に動作していることを知らせるために定期的に短いデータを送信し、外部から監視が可能です。
この軽量でシンプルなデータ通信は、主にIoT分野で活用されており、Google、Microsoft、AWSなど、大手クラウドベンダーもMQTTをサポートしています。
メリット1:不安定なネットワークや、性能が低いデバイスでも有効
通信が切れることを想定した機能に有効で、モバイルネットワークやWi-Fiなどのネットワークが不安定で通信接続ができない場合、そのタイミングではデータは送受信されませんが、再接続時にデータの送受信が可能です。
メリット2:狭い帯域幅でも利用しやすい
軽量なメッセージプロトコルのため、狭い帯域幅でも利用が可能です。
メリット3:通信量やCPU負荷、電力消費量を大幅に削減
MQTTはヘッダーが最小2byteと軽量です。特にデータ量の少ないメッセージを頻繁に送受信する際に、CPU負荷や消費電力を抑えることができます。
MQTTの実用例
MQTTは、その特徴を生かし、自動車、製造、テレコミュニケーション、油田、ガスなどの幅広い産業で使用されています。
実用例1:油田パイプライン監視
油田パイプラインセンサーでは、衛星に接続するためにMQTTが使われています。
このセンサーには通信速度やデータ容量に厳しい条件はありませんが、衛星が通信範囲外になる可能性があるため、通信が失敗しても柔軟に対応できるプロトコルが必要でした。そのため、安定した接続基盤を提供するHTTPではなく、MQTTが採用されました。
実用例2:スマートシティ
MQTTはスマートシティのシステムで採用され、効率的なデータ通信を実現しています。
例えば、街中のIoTセンサーから得られる環境情報から、空気の質や騒音データを継続的に収集し、都市環境の改善に活用しています。
街路灯の自動調光やゴミ収集の最適化など、エネルギー効率の向上や運用コストの削減にも役立てています。
実用例3:スマート農家
MQTTはスマート農業の分野で活用されています。温度、湿度、二酸化炭素濃度、土壌水分量などの環境データをセンサーで測定し、作物に必要な環境を効率的に維持します。
ハウス栽培では収集したデータに基づき、換気装置や加湿装置、灌漑システムを自動制御することで生産性を向上させます。
また、篤農家のデータと比較することで、より高精度な栽培管理が可能となり、ノウハウの共有や技術の向上にも寄与します。
実用例4:車載システムのデータ通信
自動車業界では、MQTTがコネクテッドカーや車載システムのデータ通信に利用されています。
車両の位置情報、エンジンの状態、燃料消費量などのデータをリアルタイムで送信し、遠隔診断や予防保全に活用されています。
また、車載インフォテインメントシステムにおいても、MQTTを使用してニュースや天気情報などのコンテンツを効率的に配信しています。
最後に
今回は、MQTTをご紹介させていただきました。
もともとは1999年に考案されたプロトコルながら、時代の流れで再度注目を浴びているという背景もあり、新しい技術に目をやるだけでなく、用途や目的に応じて、適切なIT技術の選択が重要と感じました。
さまざまなIT技術に対する知識を増やし、選択の幅を広げてまいります。