MQTTプロトコルの概要
- MQTTは、小型デバイスが軽量なネットワーク上でデータをやり取りできるネットワークプロトコル
- 1990年代後半に設計され、限られた電力とネットワーク帯域幅を効率的に使用することが重要だった
- ネットワークの発展に伴い、エッジコンピューティング、ホームオートメーション、モバイルデバイスなど多様な領域でMQTTの価値は依然として高い
- MQTTプロトコルのシンプルさは非常に強力な特徴
アンディ・パイパーのMQTT関連活動
- 2001年にIBMへ入社後、MQTTに初めて触れ、社内で使い始めた
- IBMのSmarter Planetマーケティング活動と連動し、MQTT技術を広める役割を担うことになった
- 2009年から2011年にかけて、ブログを通じてMQTT技術を積極的に紹介し、普及に貢献した
- 当初はIBM社内のブローカーが主に使われていたが、Mosquittoなどのオープンソースブローカーが登場し、さらに広く使われるようになった
- 2011年にIBMがEclipse FoundationへMQTT実装を寄贈する過程に深く関わった
MQTTの成功と成長
- 過去15年間にわたり、MQTT技術の発展と普及に貢献してきた企業がいくつもある
- 現在MQTTは、メイカーコミュニティからDysonのエアフィルター、3Dプリンター制御、製造業まで非常に幅広い分野で使われている
- 私たちが日常的に使う多くのアプリのバックエンドでもMQTTが使われているはず
25周年記念の活動
- MQTT公式アカウントをTwitterからMastodonへ移行(@mqtt@fosstodon.org)
- アンディ・スタンフォード=クラークがHiveMQとインタビューを行い、HiveMQでは関連ポッドキャストを配信中
- MQTTコミュニティの開発者、ユーザー、熱心な支持者たちへ感謝を伝えた
MQTTの未来
- 今後25年以上にわたり、MQTTが継続して使われ、発展していくことを願っている
アンディ・パイパーの個人的な話
- IBM在籍中、MQTTコミュニティ活動に注力した結果、低い業績評価を受けたことがある
- Mosquittoの開発者ロジャー・ライトは、2009年にアンディ・スタンフォード=クラークの発表を聞いて刺激を受け、Mosquittoの開発を始めた
- アンディ・パイパーのMQTT関連YouTube動画のうち、PHPと連携する15年前の動画が今も高い再生数を記録している
GN⁺の見解
- MQTTはIoT時代に非常に重要な役割を果たしており、軽量なプロトコル設計のおかげで、リソースが限られた環境でもうまく動作する
- 既存の複雑なプロトコルと異なり、シンプルで使いやすいのが利点だが、セキュリティ面では注意が必要
- MQTTに類似したプロトコルにはAMQP、CoAPなどがあるが、使いやすさの面ではMQTTが優位にある
- 今後はMQTTのセキュリティと拡張性を改善する取り組みが継続すると見られ、WebSocketなど最新のネットワーク技術との連携も期待される
- IoTサービス開発時にはMQTTプロトコルの導入を積極的に検討する価値があり、さまざまなオープンソースブローカーやクライアントライブラリを活用できる
1件のコメント
Hacker Newsの意見
最初のプロジェクトとして、主要なスキーリゾートの水路システムをSVGマップとMQTTを使って可視化した経験を共有している。このプロジェクトは10年以上維持されており、WebSocketを通じて状態更新が自動的に反映される。
最近のプロジェクトでMQTTを使ったが、プロトコルのオプションが多くて理解しづらく、ドキュメントも不足していると感じた。特にEclipse MosquittoのPythonクライアントで競合状態の問題に遭遇した。
Andy Stanford-Clarkの家が、IoT機器がツイートする以前の時代にニュースになった事例に触れつつ、MQTTプロトコルは衛星リンクで1バイト送信に1ドルかかっていた時代に非常に効率的で実装も簡単だったと説明している。
興味深い事実として、Boost C++ライブラリが
async-mqtt5実装をBoost.MQTTとして取り込むために検討中であることを共有している。ここ数年、MQTTは工場で機械間のデータ共有に多く使われており、以前は石油・ガス業界でSCADAシステムに使われていたと説明している。MQTTがIndustry 4.0の主要な推進力であることを強調している。
MQTTが軽量かつ高効率だという主張には懐疑的で、結局はTCP/IPを使っているだけだと述べている。標準であるため商用機器と接続できる点は良いが、より良いpub/subやメッセージキューの選択肢があると考えている。
IoTの講義でMQTTを使ってきており、WebSocket経由でサポートされている点が便利だと説明している。
MQTTは小規模な趣味のプロジェクトに適しているだけでなく、Facebook Messengerのような大規模プロジェクトにもスケール可能だと説明している。
最近の組み込みシステムのプロジェクトでMQTTを使ってプロセス間メッセージングシステムを実装した経験を共有している。ネットワークにデバイスを接続し、MQTT Explorerでメッセージを記録したり注入したりできた。
最近NATSでMQTT 3.1.1互換モードを使った経験を共有し、設定は比較的簡単でスマートホームの要件によく合っていたと説明している。レイテンシやスループットの負荷テストを試せるのも面白い経験だった。