IoTの未来を開く:2023年のMQTT技術動向7選
目次
はじめに
Message Queuing Telemetry Transport(MQTT)は、モノのインターネット(IoT)の標準メッセージングプロトコルです。MQTTは、非常に軽量なパブリッシュ・サブスクライブ・メッセージング・モデルに従い、スケーラブルで信頼性が高く、効率的な方法でIoTデバイスを接続します。
1999年にIBMによってMQTTが発明されてから20年以上、2012年に最も人気のあるオープンソースのMQTTブローカーの1つであるEMQXをGitHubで発表してから10年が経ちます。
2023年に向けて、そしてこれからの時代に向けて、IoTにおけるMQTTの利用は、新興技術の進展に後押しされて、驚異的かつ多様に拡大していることから、MQTT技術に関する7つの発展的トレンドを予想することができます。
MQTTオーバーQUIC
Quick UDP Internet Connections (QUIC)は、Googleが開発したUDP上で動作する新しいトランスポート・プロトコルで、新規接続確立に伴う待ち時間の短縮、データ転送速度の向上、TCPの制限への対処を目的としています。
HTTPプロトコルの最新バージョンであるHTTP/3は、トランスポート層としてQUICを採用しています。HTTP/3は、QUICの採用により、HTTP/2よりも遅延が少なく、Webアプリケーションの読み込み体験が向上しています。
MQTT over QUICは、2017年のMQTT 5.0仕様の最初のリリース以来、MQTTプロトコルで最も革新的な進歩です。多重化、接続確立と移行の高速化により、MQTT規格の次世代となる可能性を持っています。
MQTT 5.0プロトコル仕様では、3種類のトランスポートを定義しています:TCP、TLS、およびWebSocketです。MQTT over TLS/SSLは、セキュリティがIoTアプリケーションの最優先事項であるため、MQTTクライアントとブローカー間の通信を保護するために、実運用で広く使用されています。しかし、低速で待ち時間が長く、新しいMQTT接続を確立するために、3.5RTTに相当する7回のハンドシェイク、すなわち3つのTCPと4つのTLSが必要です。
MQTT over QUICは、1RTTの接続確立と0RTTの再接続待ち時間で、MQTT over TLSと比較して確かに速く、待ち時間も少ない。QUICスタックは、劣悪なネットワーク環境でも接続を維持したり、クライアントからサーバーへのレイテンシーを低くする必要があるシナリオなど、さまざまなユースケースに合わせてカスタマイズすることが可能です。信頼性の低いセルラーネットワークを持つコネクテッドカーや、低遅延の産業用IoTアプリケーションに恩恵をもたらすでしょう。MQTT over QUICの採用は、今後のIoT、産業用IoT(IIoT)、車両用インターネット(IoV)において重要な役割を果たすと期待されています。
オープンソースのMQTTブローカーとして人気のEMQXは、最新バージョン5.0でMQTT over QUICのサポートを導入しました。そして、HTTP/3と同様に、MQTTプロトコルの次のバージョンであるMQTT 5.1または6.0は、近い将来、QUICを主要なトランスポート層として使用する予定です。
MQTT サーバーレス
クラウドコンピューティングにおけるサーバーレスのトレンドは、アプリケーションの設計、開発、デプロイ、運用方法における画期的なパラダイムシフトを意味します。このパラダイムにより、開発者はインフラを管理する代わりにアプリケーションのビジネスロジックに集中することができ、俊敏性、拡張性、費用対効果の向上が実現します。
サーバーレスMQTTブローカーは、2023年の最先端のアーキテクチャ・イノベーションとして登場します。従来のIoTアーキテクチャでは、クラウド上でMQTTホストサービスを作成したり、オンプレミスで展開したりするのに数分から数時間かかるのに対し、サーバーレスMQTTでは、数クリックでMQTTサービスを迅速に展開することができます。さらに、サーバーレスMQTTの真の価値提案は、その展開速度ではなく、比類のない柔軟性にある。
この柔軟性は、ユーザーの需要に応じたリソースのシームレスなスケーリングと、この弾力的なアーキテクチャに沿った従量制の価格モデルという2つの重要な側面で現れています。その結果、サーバーレスMQTTは、MQTTの幅広い採用を促進し、運用コストを削減し、多様な業界におけるイノベーションとコラボレーションを促進する態勢を整えています。IoTや産業用IoTの開発者には、無料のサーバーレスMQTTブローカーが提供されるようになるかもしれませんね。
2023年3月、EMQX Cloudは世界初のサーバーレスMQTTサービスを開始し、わずか5秒という非常に早い導入時間だけでなく、サーバーレスMQTTの特徴である優れた柔軟性もユーザーに提供します。
MQTT マルチテナンシー
マルチテナンシーアーキテクチャは、サーバーレスMQTTブローカーの重要な側面です。異なるユーザーやテナントからのIoTデバイスは、データやビジネスロジックを他のテナントから隔離したまま、同じ大規模なMQTTクラスタに接続できます。
SaaSアプリケーションでは、一般的にマルチテナンシーアーキテクチャを採用しており、1つのアプリケーションが複数の顧客やテナントにサービスを提供しています。SaaSでマルチテナントを実装するには、通常、次のような2つの異なる方法があります:
テナントアイソレーション:各テナントに個別のアプリケーションインスタンスを提供し、サーバーや仮想マシン上で動作させる。
データベースの分離:複数のテナントが1つのアプリケーションインスタンスを共有することができますが、データの分離を確実にするため、テナントごとにデータベーススキーマが用意されています。
MQTTブローカーのマルチテナンシーアーキテクチャでは、各デバイスとテナントに、独立した隔離されたネームスペースが与えられます。このネームスペースには、固有のトピックプレフィックスと、各ユーザーがアクセス、公開、または購読できるトピックを定義するアクセス制御リスト (ACL) が含まれます。
マルチテナントをサポートするMQTTブローカーは、管理のオーバーヘッドを削減し、複雑なシナリオや大規模なIoTアプリケーションに対してより柔軟な対応を可能にします。例えば、大組織の部署やアプリケーションが、同じMQTTクラスタを異なるテナントとして使用することができます。
MQTT Sparkplug 3.0
MQTT Sparkplug 3.0は、Eclipse Foundationが設計したオープンスタンダード仕様であるMQTT Sparkplugの最新バージョンです。MQTTメッセージングプロトコルを使用して、センサー、アクチュエーター、PLC(Programmable Logic Controller)、ゲートウェイなどの産業用デバイスを接続する方法を定義しています。
MQTT Sparkplug 3.0は2022年11月にリリースされ、いくつかの主要な新機能と改良が施されています:
MQTT 5のサポート:MQTT Sparkplug 3.0では、MQTT 5プロトコルのサポートが追加され、共有サブスクリプション、メッセージの有効期限、フロー制御など、いくつかの新機能が含まれます。
データ伝送の最適化:MQTT Sparkplug 3.0では、よりコンパクトなデータエンコーディングと圧縮アルゴリズムの使用など、データ伝送の最適化が行われています。
拡張されたデータモデル:MQTT Sparkplug 3.0では、拡張データモデルが導入され、より詳細なデバイス情報を通信できるようになり、設定データやデバイスメタデータなどの追加情報も通信できるようになりました。
セキュリティが改善されました:MQTT Sparkplug 3.0では、相互のTLS認証のサポートやアクセス制御メカニズムの改善など、セキュリティに関するいくつかの改良が行われています。
デバイス管理の簡素化:MQTT Sparkplug 3.0では、デバイスの自動登録と検出、デバイス設定の簡素化、診断の改善など、デバイス管理に関するいくつかの改良が加えられています。
MQTT Sparkplugは、異種産業機器との接続・通信を簡素化し、効率的な産業データの取得・処理・分析を実現することを目的としています。新バージョンのリリースにより、MQTT Sparkplug 3.0は産業用IoTでより広く採用される可能性を持っています。
MQTT 統一名前空間
Unified Namespaceは、産業用IoTおよびインダストリー4.0向けのMQTTブローカーをベースに構築されたソリューションアーキテクチャーです。MQTTトピックの統一ネームスペースと、メッセージや構造化データの一元的なリポジトリを提供します。
Unified Namespaceは、産業用デバイス、センサー、およびSCADA、MES、ERPなどのアプリケーションを、中央のMQTTブローカーを使用してスター型トポロジーで接続します。Unified Namespaceは、イベント駆動型アーキテクチャにより、産業用IoTアプリケーションの開発を劇的に簡素化します。
従来のIIoTシステムでは、一般的にOTとITのシステムは分離しており、それぞれのデータ、プロトコル、ツールで独立して運用されてきました。Unified Namespaceを採用することで、OTとITのシステムがより効率的にデータを交換できるようになり、最終的にIoT時代のOTとITが統一されることが可能になります。
MQTTのジオディストリビューション
MQTT Geo-Distributionは、異なる地域やクラウドに配置されたMQTTブローカーを1つのクラスタとして連携させることができる革新的なアーキテクチャです。Geo-Distribution を使用すると、MQTT メッセージを異なる地域の MQTT ブローカー間で自動的に同期させ、配信することができます。
2023年、MQTT Geo-Distributionを実現するために、2つのアプローチが予想されます:
- シングルクラスター、マルチリージョン:単一のMQTTクラスタで、ブローカーが異なるリージョンで動作している場合。
- マルチクラスター、マルチクラウド:異なるクラウドにある複数のMQTTクラスタをCluster Linkingで接続したもの。
2つのアプローチを組み合わせることで、地理的に分散したMQTTブローカー間で信頼性の高いIoTメッセージングインフラストラクチャを構築することができるのです。MQTT Geo-Distributionを採用することで、組織はマルチクラウドにまたがるグローバルMQTTアクセスネットワークを構築でき、最も近いネットワークエンドポイントからローカルに接続されたデバイスやアプリケーションは、物理的位置に関係なく相互に通信することができます。
MQTTストリーム
MQTT Streamsは、MQTTプロトコルの拡張機能として期待されており、MQTTブローカー内でリアルタイムに大容量・高頻度のデータストリームを処理できるようになります。この機能は、もともと軽量のパブリッシュ/サブスクライブ・メッセージング用に設計された従来のMQTTブローカーの機能を強化するものである。MQTT Streamsでは、クライアントは、Apache Kafkaの動作と同様に、MQTTメッセージをストリームとして生成および消費することができます。これにより、イベント駆動型処理に不可欠な履歴メッセージの再生が可能になり、究極のデータ一貫性、監査、コンプライアンスを確保することができます。
IoTデバイスのセンサーから生成される膨大な量のデータからリアルタイムのビジネス価値を引き出すには、ストリーム処理が不可欠です。従来は、IoTデータのストリーム処理のために、MQTTブローカーとKafka、Hadoop、Flink、Sparkを統合する、時代遅れの複雑なビッグデータスタックが必要でした。
しかし、ストリーム処理を内蔵したMQTT Streamsは、IoTデータ処理スタックを合理化し、データ処理の効率と応答時間を向上させ、IoT向けの統一されたメッセージングおよびストリーミングプラットフォームを提供します。メッセージ重複排除、メッセージ再生、メッセージ期限切れなどの機能をサポートすることで、MQTT Streamsは高スループット、低遅延、耐障害性を実現し、MQTTベースのIoTアプリケーションでリアルタイムデータストリームを扱うための強力なツールになります。
結論
全体として、MQTT技術におけるこれら7つのトレンドは、新興技術の進歩とIoTの進展におけるその役割を反映しています。20年以上にわたって進化してきた標準的なメッセージングプロトコルとして、MQTTの重要性は高まり続けている。様々な業界でIoTの利用が進む中、MQTTプロトコルは、より高速で低遅延な接続、MQTTサービスのより迅速な展開、複雑なシナリオや大規模なIoTアプリケーションに対する柔軟性の向上、様々な産業機器の接続に関するサポートの強化など、新しい課題や需要に応えるべく進化している。これらの発展により、MQTTは2023年以降、IoTの神経系となり、IIoTとIoVにおいてさらに重要なプレーヤーとなることでしょう。