IoTデバイス設定を構成するためのプロトコル


9

MQTTは、エンドデバイスとホストサービス間でアプリケーションデータを交換する場合、IoTで広く使用されています。パブリッシュサブスクライブモデルを使用すると、ハンドシェイクやネゴシエーションなどが不要になります(少なくともMQTTプロトコルレイヤーの上)。それは主にデータを簡単に消費者に配布できるデータプロデューサーに向けられています。

ただし、エンドデバイスで設定を構成する中央サーバーに関しては、モデルが非常に適しているかどうかはわかりません。サーバーはコマンドをデバイスに送信して応答を待ちます(たとえば、特定の設定を読み取り、応答を待ちます)。これは、MQTTのパブリッシュ/サブスクライブモデルにはあま​​り適していません。

コマンドの送受信とリモートデバイスの構成を目的とした既存のプロトコルがあるかどうか疑問に思っていましたか?


1
MQTTがクライアントがコントロールチャネルをサブスクライブすることを許可していないことを確認しますか?私はここが答えを探し始める場所だと思いますが、答えを要約するのに十分な速さではありませんen.wikipedia.org/wiki/Representational_state_transfer
Sean Houlihane

1
忘れないでください。エンドポイントはチャネルを開始するエンドポイントである必要があるため、電力消費を制御します。
Sean Houlihane 2017

1
@SeanHoulihane確かにMQTTを使用してコマンドや設定を送受信することは可能ですが、私が見るところ、理想的には「セッションベース」のプロトコルが必要です。つまり、セッションを作成し、コマンドを送信します同じセッションで応答を受信するため、応答を元のコマンドに簡単にリンクできます。MQTTはメッセージベースであるため、メッセージを相互にリンクすることは何もありません。その部分を処理するのはユーザー次第です。その目的に使用できるすぐに利用できるプロトコルがあるかどうか疑問に思っていました。
Amr Bekhit 2017

1
en.wikipedia.org/wiki/OMA_LWM2M正確な方法はわかりませんが、クラウドはPUTまたはPOST呼び出しを実行してクライアントでコールバックをトリガーできるようです。
Sean Houlihane 2017

MQTTv5には、以前のメッセージへの応答としてメッセージをマークするヘッダーフィールドがあります。
hardillb

回答:


6

CoAPの仕事のように聞こえます:

HTTPと同様に、CoAPは非常に成功したRESTモデルに基づいています。サーバーはURLの下でリソースを利用可能にし、クライアントはGET、PUT、POST、DELETEなどのメソッドを使用してこれらのリソースにアクセスします。

開発者の観点から見ると、CoAPはHTTPに非常によく似ています。センサーから値を取得することは、Web APIから値を取得することと大差ありません。

明らかに非常に低いオーバーヘッドで実装できます:

CoAPは、10 KiBのRAMと100 KiBのコードスペースのマイクロコントローラーで動作するように設計されています

CoAPはRFC 7252で指定されおり、さまざまな実装があります(Cなど)。

これは、Web APIのHTTPで使用されるRESTに非常に強く影響を受けているため、これらに精通している場合は、CoAPをすぐに利用できます。そうでない場合は、このプレゼンテーションがコンテキストに役立つことがあります。アイデアは、各HTTPメソッドは、例えば、セマンティックな意味を持っていることであるGET何かを変更しなくてデバイスから情報を要求しPOSTPUTそしてDELETEデータを変異させます。

あなたが言うように、パブリッシュ/サブスクライブモデルは、デバイスが中央システムの調整(各デバイスのクライアントとして機能)に対する「サーバー」として機能する状況では機能しません。代わりに、HTTPのオーバーヘッドが多すぎることを除いて、HTTPに類似したモデルが理想的です。


0

コマンドの送受信とリモートデバイスの構成を目的とした既存のプロトコルがあるかどうか疑問に思っていましたか?

はい、IoTにおけるデバイス管理のためのより良いプロトコルがあります。それはLwM2Mです-MQTT以上のCOAP、MQTT、HTTPよりもはるかに効率的です。

LwM2Mには、明確に定義されたデータとデバイス管理モデルが付属しており、すぐに使用できるさまざまな標準オブジェクト(IPSOスマートオブジェクト)、接続監視、リモートデバイスアクション、構造化FOTAおよびSOTA更新を提供しますが、MQTTではこれらの機能は完全にベンダーおよびプラットフォーム固有。MQTTでは、ファームウェアの更新やその他の管理機能を最初から作成する必要があります。対照的に、LwM2Mはその基本的な機能の1つとしてファームウェアのアップグレードを提供するため、通信用の新しいビルディングブロックを発明する必要はありません。

ここでは、MQTTとLwM2Mの比較、およびクラッシュコース全体を示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.