MQTTとは

更新日

投稿日

MQTT

 

MQTTを使おうとしたとき、利用できるようになるまで苦労した経験がありました。そのため今回は、MQTTの概要を解説します。

 

1.  MQTT:Message Queuing Telemetry Transportとは

Webページを見るならHTTP、ファイル転送するならFTP、といったように、目的に応じていくつかの通信プロトコルがありますが、MQTT(Message Queue Telemetry Transport)は、通信プロトコルの一種です。非同期で軽量のメッセージをやり取りするためのプロトコルです。

 

メッセージのサブスクライバー(購読者)は、メッセージのパブリッシャー(発行元)が提供する MQTT トピックをあらかじめ講読しておきます。MQTT トピックに何か変化があると、サブスクライバーは PUBLISH コマンドを受け取ってそれを知ることができます。MQTT は、発行/購読型のメッセージ処理を実現するための軽量なプロトコルとして設計されています。MQTT トピックの講読やメッセージの送信の仲介役となるのがブローカーです。publish/subscribeモデルという仕組みに基づいてつくられた軽量なメッセージプロトコルです。ネットワークが不安定な場所や、性能が低いデバイスでも動くように軽量化されているのが特徴で、TCP/IP ネットワークをベースに作られています。

 

MQTTではデータの送受信をPublisher(送信者)、Subscriber(受信者)の2つの役割にわけて行います。

・Publisher(送信者)はMQTTブローカーにデータを送信します。
・Subscriber(受信者)はMQTTブローカーにデータを受信しに行きます。

この仕組みによって、非同期通信を実現しています。さらにPublisher(送信者)とSubscriber(受信者)は互いに相手が誰なのかを知らないので、Publisher/Subscriberを増やすのも簡単というわけです。

 

MQTTとは、以上をまとめると、次の2点になります。

【MQTT:Message Queuing Telemetry Transport】

(1)データの送信者とデータの受信者とBroker(中継役)という3つシンプルなの役職のつながりでデータのやり取りができます。

(2)通信するためにtopicと呼ばれる合言葉のようなものを設定する。データの送信者とデータの受信者が同じtopic(合言葉)を設定していれば、messageと呼ばれるデータをPublisherからSubscriberに送信することができます。

 

2.  MQTT:Message Queuing Telemetry Transportの仕組み

 

MQTTでひとつのメッセージを送信する際、まずはPublisherがBrokerにメッセージを送ります。そして、BrokerがSubscriber達にメッセージを配信します。

 

・Publisher(パブリッシャー)「メッセージを送信する処理を行なうプログラム」等のこと

・Subscriber(サブスクライバー)「メッセージを受信するプログラム」等のこと

・Broker(ブローカー)Publisherからメッセージを受け取り、Subscriberに送信するサーバー等のこと

 

MQTTでは、PublisherがPublishしたメッセージを、BrokerがSubscriber達に配信します。Subscriberはひとつだけかもしれないし、100かもしれません。とにかく、複数のSubscriberにメッセージを配信することができます。でも、Publisher側で何か処理が変わる、ということはありません。例え2万のSubscriberがいても、それによってPublisherに負荷がかかるようなこともないのです。(Brokerには負荷がかかります)

 

3.  MQTT:Message Queuing Telemetry Transportの特徴

 

Message Queuing Telemetry Transportの略称ですが、その名前にもかかわらずメッセージキューの機能はもっていません。

 

【Message Queuing Telemetry Transportの特長】

 

 ・軽量である
   最小ヘッダーサイズが2byteと小さい。
   制約が厳しいデバイスや帯域幅が限られたネットワーク上でも実装できる。

 

・プロトコルがシンプル
   HTTPなどに比べるとパフォーマンスが高い。

 

・非同期メッセージング
   スケーラビリティの面で優れる。

 

 ・データ長に幅がある
   最大253MBまで可能。IoTではデータ長の短縮が課題で、このサイズは十分。

 

 ・Publish/Subscribeシステム
   柔軟性の高いメッセージ配布が...

MQTT

 

MQTTを使おうとしたとき、利用できるようになるまで苦労した経験がありました。そのため今回は、MQTTの概要を解説します。

 

1.  MQTT:Message Queuing Telemetry Transportとは

Webページを見るならHTTP、ファイル転送するならFTP、といったように、目的に応じていくつかの通信プロトコルがありますが、MQTT(Message Queue Telemetry Transport)は、通信プロトコルの一種です。非同期で軽量のメッセージをやり取りするためのプロトコルです。

 

メッセージのサブスクライバー(購読者)は、メッセージのパブリッシャー(発行元)が提供する MQTT トピックをあらかじめ講読しておきます。MQTT トピックに何か変化があると、サブスクライバーは PUBLISH コマンドを受け取ってそれを知ることができます。MQTT は、発行/購読型のメッセージ処理を実現するための軽量なプロトコルとして設計されています。MQTT トピックの講読やメッセージの送信の仲介役となるのがブローカーです。publish/subscribeモデルという仕組みに基づいてつくられた軽量なメッセージプロトコルです。ネットワークが不安定な場所や、性能が低いデバイスでも動くように軽量化されているのが特徴で、TCP/IP ネットワークをベースに作られています。

 

MQTTではデータの送受信をPublisher(送信者)、Subscriber(受信者)の2つの役割にわけて行います。

・Publisher(送信者)はMQTTブローカーにデータを送信します。
・Subscriber(受信者)はMQTTブローカーにデータを受信しに行きます。

この仕組みによって、非同期通信を実現しています。さらにPublisher(送信者)とSubscriber(受信者)は互いに相手が誰なのかを知らないので、Publisher/Subscriberを増やすのも簡単というわけです。

 

MQTTとは、以上をまとめると、次の2点になります。

【MQTT:Message Queuing Telemetry Transport】

(1)データの送信者とデータの受信者とBroker(中継役)という3つシンプルなの役職のつながりでデータのやり取りができます。

(2)通信するためにtopicと呼ばれる合言葉のようなものを設定する。データの送信者とデータの受信者が同じtopic(合言葉)を設定していれば、messageと呼ばれるデータをPublisherからSubscriberに送信することができます。

 

2.  MQTT:Message Queuing Telemetry Transportの仕組み

 

MQTTでひとつのメッセージを送信する際、まずはPublisherがBrokerにメッセージを送ります。そして、BrokerがSubscriber達にメッセージを配信します。

 

・Publisher(パブリッシャー)「メッセージを送信する処理を行なうプログラム」等のこと

・Subscriber(サブスクライバー)「メッセージを受信するプログラム」等のこと

・Broker(ブローカー)Publisherからメッセージを受け取り、Subscriberに送信するサーバー等のこと

 

MQTTでは、PublisherがPublishしたメッセージを、BrokerがSubscriber達に配信します。Subscriberはひとつだけかもしれないし、100かもしれません。とにかく、複数のSubscriberにメッセージを配信することができます。でも、Publisher側で何か処理が変わる、ということはありません。例え2万のSubscriberがいても、それによってPublisherに負荷がかかるようなこともないのです。(Brokerには負荷がかかります)

 

3.  MQTT:Message Queuing Telemetry Transportの特徴

 

Message Queuing Telemetry Transportの略称ですが、その名前にもかかわらずメッセージキューの機能はもっていません。

 

【Message Queuing Telemetry Transportの特長】

 

 ・軽量である
   最小ヘッダーサイズが2byteと小さい。
   制約が厳しいデバイスや帯域幅が限られたネットワーク上でも実装できる。

 

・プロトコルがシンプル
   HTTPなどに比べるとパフォーマンスが高い。

 

・非同期メッセージング
   スケーラビリティの面で優れる。

 

 ・データ長に幅がある
   最大253MBまで可能。IoTではデータ長の短縮が課題で、このサイズは十分。

 

 ・Publish/Subscribeシステム
   柔軟性の高いメッセージ配布が可能。

 

4. MQTTの事例:パイプラインの監視

 

 油田パイプラインの状態(油圧や油温など)を計測するセンサーと衛星の間の通信で使われました。 4000台のセンサーを使用中、さらに8000台を追加する必要があり、ネットワークコストを下げる目的で使われました。衛星が通信範囲の外に出てしまうと、データの送受信に失敗する可能性が高くなるので、HTTPのような安定した接続を必要とするプロトコルでは対応できませんでした。MQTTは非同期プロトコルなので、接続失敗によって送信に失敗しても、再接続したときにデータを届けることができるのでした。

 

センサーデータというものは常時計測、送信されています。リアルタイムに見せたい情報ほど何度も通信を行う必要があるため、MQTTの軽さは大きなアドバンテージとなるわけです。MQTTの通信が重宝される理由を深く知ることは、重要です。

 

 

   続きを読むには・・・


この記事の著者

大岡 明

改善技術(トヨタ生産方式(TPS)/IE)とIT,先端技術(IoT,IoH,xR,AI)の現場活用を現場実践指導、社内研修で支援しています。

改善技術(トヨタ生産方式(TPS)/IE)とIT,先端技術(IoT,IoH,xR,AI)の現場活用を現場実践指導、社内研修で支援しています。


「情報マネジメント一般」の他のキーワード解説記事

もっと見る
効果検証のための回帰不連続デザイン分析 データ分析講座(その214)

  効果検証をする方法は色々あります。前回(第213話|データによる効果検証とネクストアクション)で上げたのが以下の3つです。 AB...

  効果検証をする方法は色々あります。前回(第213話|データによる効果検証とネクストアクション)で上げたのが以下の3つです。 AB...


データの活かしどころを具体化することの重要性 データ分析講座(その49)

  ◆ データ活用の成否に企業規模は関係ないが、成功確率に差がある理由  数年前に統計学やビッグデータというキーワードが注目され、今では機械...

  ◆ データ活用の成否に企業規模は関係ないが、成功確率に差がある理由  数年前に統計学やビッグデータというキーワードが注目され、今では機械...


情報の蓄積 「果報は練って待て!」

1. 起業時した友人からのアドバイス  筆者の友人に、機械装置関連のものづくり企業を約35年間続けている中小企業経営者がいます。過去には、バブル崩壊やリ...

1. 起業時した友人からのアドバイス  筆者の友人に、機械装置関連のものづくり企業を約35年間続けている中小企業経営者がいます。過去には、バブル崩壊やリ...


「情報マネジメント一般」の活用事例

もっと見る
ソフトウェア特許とは(その2)

4.ソフトウェア特許のとり方    前回のその1に続いて解説します。    ソフトウェア特許の取得方法にはノウハウがあります。特許のことを知らない...

4.ソフトウェア特許のとり方    前回のその1に続いて解説します。    ソフトウェア特許の取得方法にはノウハウがあります。特許のことを知らない...


‐販路開拓に関する問題 第1回‐  製品・技術開発力強化策の事例(その17)

 前回の事例その16に続いて解説します。開発が完了したから販売先を探す。そのような考え方で開発に従事することは根本的に間違っている事は既に述べました。開発...

 前回の事例その16に続いて解説します。開発が完了したから販売先を探す。そのような考え方で開発に従事することは根本的に間違っている事は既に述べました。開発...


ソーシャルメディアデータの解析事例:異分野研究から得られる共通した目的とは

 2020年、コロナウィルス感染の問題が大きくなり始めた頃、少人数の開催ということで、ソーシャルメディアデータ解析を専門にされている先生の講演会を聞く...

 2020年、コロナウィルス感染の問題が大きくなり始めた頃、少人数の開催ということで、ソーシャルメディアデータ解析を専門にされている先生の講演会を聞く...