Skip to content

MQTTによるファイル転送

IoTアプリケーションの世界では、多様なデータ伝送のニーズが高まっており、デバイスはクラウドとの間でさまざまな種類のデータを迅速かつ確実に転送する必要があります。IoTがより多くの産業分野で活用されるにつれて、多様なユースケースが登場しています。センサーのリアルタイム構造化データや制御コマンドに加え、音声・動画ファイル、画像、診断ログなどのオフラインファイルデータがIoT分野でますます重要な役割を果たしています。

EMQXは、標準のMQTTプロトコルに基づくファイル転送機能を提供し、効率的かつ信頼性の高いデータ転送を実現します。

従来手法の限界

ファイル転送の分野では、FTPやHTTPといった技術が確立されています。ユーザーはMQTTとこれらの技術を組み合わせて利用することができ、ファイルの内容転送にはHTTP/FTPを、イベントやファイルの位置情報の転送にはMQTTを使用することが一般的です。

このハイブリッド方式は理論上、それぞれの技術の利点を最大限に活かし、ファイル転送の効率と柔軟性を高めます。しかし、IoT環境では以下のような課題に直面することがあります。

  • 全体的なフロー制御の困難さ:低帯域幅かつ複雑で信頼性の低いネットワーク環境で稼働するIoTデバイスでは、複数の接続が同時にクラウドへデータを送信する際に、全体のデータフロー管理や優先順位付けが難しくなります。特にHTTP/FTPによる大容量ファイル転送は長時間帯域を占有し、重要なMQTTメッセージの送信を妨げる恐れがあります。
  • 複数技術スタックの共存:IoTデバイスはリソースが限られていることが多く、追加の技術スタックを組み込むための空き容量や処理能力を持たない場合があります。MQTTはHTTP/FTPより軽量で適応性が高いため、これらの制約を回避してビジネス開発を完遂できます。
  • 追加の開発および管理コスト:既存のMQTTチャネルは包括的なデバイス認証・認可システムを備えています。FTPやHTTPなど新たな技術を導入すると、これらのセキュリティや管理システムを再構築する必要があり、開発・管理コストが増大します。
  • パフォーマンスの制約:HTTP/FTPは大量の接続をサポートするIoTアプリケーションには適していません。さらに、弱いネットワーク環境下での頻繁な再接続や再送信はHTTP/FTPファイル転送の欠点を増幅し、アプリケーション開発や運用に大きな負荷をもたらします。

EMQXにおけるMQTTファイル転送

MQTT標準にはファイル転送の標準的な手法は定義されていません。EMQXはMQTTプロトコルを拡張し、クライアントデバイスが効率的かつ安全にファイル転送を行えるよう支援します。MQTT上に構築されたシンプルなアプリケーションレベルのプロトコルを定義・実装し、クライアントデバイスが容易にファイル転送を扱えるようにしています。

特徴

MQTTベースのファイル転送は、100%のファイル完全性を保証する信頼性の確保、ファイル管理や長期保存への対応、多様なアプリケーションのファイル読み込みインターフェースへの適応など、いくつかの課題に直面します。

これらに対応するため、EMQXのファイル転送は以下の機能を備えています。

  • 他の業務処理と同じMQTT接続を利用可能で、既存のクライアント管理システムを最大限活用できること。

  • チャンク転送をサポートし、軽量クライアントでも大容量ファイルを扱え、MQTTのサイズ制限(256MB)を超えるファイルも転送可能であること。

  • 再開可能な転送をサポートし、クライアントがファイル転送を一時停止して優先度の高いデータを送信したり、ネットワーク障害から復旧したりできること。

  • QoS 1レベルの送信による信頼性保証、チェックサムや再送機構を備えファイル転送の完全性を確保すること。

  • 柔軟なストレージ層の設定が可能で、アップロードされたファイルをローカルディレクトリやS3互換のオブジェクトストレージに保存できること。

利点

MQTTは軽量かつ柔軟なメッセージングプロトコルであり、企業にとってより便利で効率的なファイル転送ソリューションを提供します。構造化データとファイル型データの伝送を統合することで、IoTビジネスアプリケーションの実現範囲が拡大します。

統一されたMQTTデータチャネルによりシステム構成が簡素化され、アプリケーションの複雑さや保守コストを削減できます。EMQXのMQTTファイル転送機能を活用することで、企業はより便利で多様なIoTアプリケーションを開発可能です。

プロトコル面では、EMQXのファイル転送は標準MQTTに基づいており、転送全体が指定されたMQTTトピックとペイロードで実行されるため、既存のクライアントやアプリケーションの変更は不要です。詳細な転送プロトコルについては、File Transfer Client Developmentをご参照ください。

次のステップ

EMQXにおけるMQTTファイル転送の詳細はこちら:

EMQXでのファイル転送機能の使い方: