JP2017117445A - IoT通信のためのネットワーク認識アプリケーションに依存した適応的プロトコル選択 - Google Patents

IoT通信のためのネットワーク認識アプリケーションに依存した適応的プロトコル選択 Download PDF

Info

Publication number
JP2017117445A
JP2017117445A JP2016225920A JP2016225920A JP2017117445A JP 2017117445 A JP2017117445 A JP 2017117445A JP 2016225920 A JP2016225920 A JP 2016225920A JP 2016225920 A JP2016225920 A JP 2016225920A JP 2017117445 A JP2017117445 A JP 2017117445A
Authority
JP
Japan
Prior art keywords
message
application layer
layer communication
protocol
communication protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016225920A
Other languages
English (en)
Other versions
JP6404301B2 (ja
Inventor
ブレイディー ジョン
Brady John
ブレイディー ジョン
ギビーン ウェイル
Guibene Wael
ギビーン ウェイル
ノーラン キース
Nolan Keith
ノーラン キース
ノーラン マイケル
Nolan Michael
ノーラン マイケル
ケリー マーク
Kelly Mark
ケリー マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2017117445A publication Critical patent/JP2017117445A/ja
Application granted granted Critical
Publication of JP6404301B2 publication Critical patent/JP6404301B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】 有利なアプリケーション層通信プロトコルを選択する。
【解決手段】
いくつかの例で開示されるのは、送信アプリケーションの一つ以上の通信特徴、及び送信デバイスと受信デバイスとの間のネットワーク接続の一つ以上の特徴に基づいてアプリケーション層通信プロトコルの自動選択を行う方法、システム及びデバイスである。使用するプロトコルの選択は、メッセージ単位ベースでなされる、様々な間隔で定期的に(例えば、所定の時間周期ごと)なされる、アプリケーションの開始時に一度だけなされる等、でよい。アプリケーション層通信プロトコルを動的に選択することで、アプリケーションは、その時のアプリケーションの通信特徴及びネットワーク接続の特徴を考慮した特定のプロトコルの優位性を利用することができる。
【選択図】 図2

Description

本特許文書の開示の一部は、著作権保護の対象となる資料を含んでいる。著作権の所有者は、米国特許商標庁の包袋又は記録に記されている通りに、特許文書又は特許公開の任意の者による複製に対しては異議はないが、それ以外の全てのいかなる著作権を有する。次の通知は、下記に記載され、本文書の一部を形成する図面中のソフトウェア及びデータに適用される:Copyright Intel, Inc., All Rights Reserved.
実施形態は、ネットワーク通信に関連する。いくつかの実施形態は、アプリケーション層通信プロトコルの適応選択に関する。追加的な実施形態は、モノのインターネット(IoT)環境でのアプリケーション層通信プロトコルの適応選択に関する。
通信プロトコルは、通信システムでの二つ以上のエンティティが情報を交換することのできる規則を定める。通信プロトコルは、メッセージフォーマット、アドレスフォーマット、アドレス変換、ルーティング、送信エラーの検出、アクノリッジメント、タイムアウト、リトライ、フロー制御、シーケンス制御等のための規則を定めることができる。
通信プロトコルは階層化されることができ、各層はエンドトゥーエンド通信に必要なタスクのサブセットを遂行するようになっている。例えば、インターネットエンジニアリングタスクフォース(IETF)は、インタネットプロトコルスイートと呼ばれる、インターネットにわたる通信のための一式の階層を定めており、多くの異なる階層化されたプロトコルを抱えている。オープンシステムインターコネクト(OSI)モデルを含む、他の階層モデルも存在する。
図面は、必ずしも縮尺通りではなく、図面において、異なる図での似たような番号は類似するコンポーネントを説明してよい。異なる末尾文字を有する似たような番号は、類似するコンポーネントの異なるインスタンスを表すことができる。図面は、概して、限定ではなく、例として、本文書で論じられる様々な実施形態を示す。
図1は、本開示のいくつかの例に従う、ネットワークの概略図である。 図2は、本開示のいくつかの例に従う、メッセージに対して、アプリケーション層通信プロトコルを動的に選択する方法のフローチャートを示す。 図3は、本開示のいくつかの例に従う、アプリケーション層通信プロトコルを動的に選択する方法のフローチャートを示す。 図4は、一つ以上の実施形態が実装されることのできるマシンの例を示すブロック図である。
通信プロトコルを利用する新興技術の一つのにモノのインターネット(IoT)がある。IoTは、電子機器、ソフトウェア及びセンサ内に組み込まれた物理的なオブジェクト又は「モノ」のネットワークであり、これらのオブジェクトが、それらの間で、及び他のコンピューティングデバイスとの間でデータを収集し、交換することを可能にする。標準化団体が、デバイス発見、デバイス間通信、サービス発見及びセキュリティのためのプロシージャ並びにIoTネットワークを形成し、維持するのに使用される他のプロシージャを規定する規格を形づくる処理を始めている。団体の例としては、オープンインターコネクトコンソーシアム(OIC)、インターネットプロトコルフォースマートオブジェクト(IPSO)アライアンス及びインダストリアルインターネットコンソーシアムがある。
例において、OIC規格は、OIC動作に必要な一連の機能を規定する。OICフレームワークは、その大部分が、オープンシステムインターコネクトモデルのセッション層、プレゼンテーション層及びアプリケーション層及びIPモデルのアプリケーション層で動作する。この規格は、プロトコルスタックの下位の階層(例えば、OSIモデル物理、データリンク、ネットワーク及びトランスポート通信プロトコル)のための既存のネットワーク技術を利用する。OICフレームワークは、識別(Identification)、アドレッシング、発見、リソースモデル、デバイス管理、セキュリティ、メッセージング及びCRUDNを提供する。CRUDNは、作成(Create)、取り出し(Retrieve)、更新(Update)、削除(Delete)及び通知(Notify)を意味し、これらは、OICリソースを操作するのに定められた動作を規定する。この規格は、IoTネットワークで用いる、多くの受け入れ可能なアプリケーション層通信プロトコルを規定する。例としては、コンストレインドアプリケーションプロトコル(CoAP)及びハイパーテキストトランスファープロトコル(HTTP)がある。
まとめると、IoT環境は、CoAP、HTTP、MQテレメトリートランスポート(MQTT)、MQTTフォーセンサネットワーク(MQTT−SN)、アドバンストメッセージキューイングプロトコル(AMQP)、エクステンシブルメッセージングアンドプレゼンスプロトコル(XMPP)、リアルタイムトランスポートプロトコル(RTP)、OPCユニファイドアーキテクチャ(OPC UA)等の数多くのアプリケーション層通信プロトコルをサポートする可能性が高い。現在、適切なアプリケーション層通信プロトコルを選択は、開発時のIoTアプリケーションの開発者に委ねられている。選択されるプロトコルは、予測ネットワーク環境を含む、把握された使用事例に基づいて典型的には選択される。しかし、全てのデバイスが設計時に把握された使用事例に使用されるわけではなく、さらに重要なことは、全てのネットワーク環境が開発者により予測されたネットワーク環境に合致するわけではないことである。あるアプリケーション層通信プロトコル及びメッセージングパターンの組み合わせだと、他のそのような組み合わせと比較して、ある実世界ネットワーク環境において、レイテンシ、信頼度及びバンド幅利用の観点からより高いパフォーマンスを提供することができる。ゆえに、汎用的な(one-size-fits-all)アプリケーション層通信プロトコルの選択では、最適ではない結果につながる可能性がある。
いくつかの例で開示されるのは、送信アプリケーションの一つ以上の通信特徴、及び送信デバイスと受信デバイスとの間のネットワーク接続の一つ以上の特徴に基づいてアプリケーション層通信プロトコルの自動選択を行う方法、システム及びデバイスである。使用するプロトコルの選択は、メッセージ単位ベースでなされる、様々な間隔で定期的に(例えば、所定の時間周期ごと)なされる、アプリケーションの開始時に一度だけなされる等、でよい。アプリケーション層通信プロトコルを動的に選択することで、アプリケーションは、その時のアプリケーションの通信特徴及びネットワーク接続の特徴を考慮した特定のプロトコルの優位性を利用することができる。
アプリケーション層通信プロトコルを適応的に選択することで、動的アプリケーション要件及びネットワーク条件の両方に対応することのできる分散ネットワークデバイスが可能となる。さらに、これは、生成されるネットワークトラフィック及び、搬送する情報コストを大いに低減することになる。一つの実装例においては、適応的アプリケーション層通信プロトコル選択を使用することによって、試験では、MQTT、CoAP及びOPC UAでの0〜10Kbyteのデータ送信に基づいて、ゲートウェイからバックホール通信への送信時間が、ロングタームエボリューション(LTE)ネットワークでは80%、3Gセルラーネットワークでは45%低減できることが示されている。この試験で使用された選択アルゴリズムは、各メッセージサイズに対して送信時間を最小にするプロトコルを選択している。このアルゴリズムは、1kbのペイロードサイズに対してはCoAP(又は、同様に、OPC UA)を、1〜8kbのペイロードサイズに対してはOPC UAを、及び8〜10kbのペイロードサイズに対してはMQTT(又は、同様に、OPC UA)を選択する。
ここで開示されているプロトコル選択技術の追加的な恩恵の一つとしては、新たに追加されたプロトコルを旧アプリケーションで利用することができることである。ゆえに、新たなテクノロジーを活用して、旧アプリケーションを支援することになる。
さて、図1を参照すると、本開示のいくつかの例に従う、ネットワーク環境1000の概略が示されている。ネットワーク環境1000は、様々な例において、IoTネットワーク環境であってよい。デバイス1010は、ネットワーク1030でリモートデバイス1020と通信する。種々の例におけるデバイス1010は、IoTデバイス、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、サーバコンピュータ又は他のコンピューティングデバイスであってよい。デバイス1010は有線又は無線の手段を通じてネットワーク130に接続されていることができる。例えば、デバイス1010は、WiFi(米国電気電子学会(IEEE)802.11標準ファミリに従って動作するように構成されたネットワーク)、セルラー(例えば、3G、4G及び5Gネットワーク)、イーサネット(登録商標)等を利用してよい。デバイス1010はクライアントデバイス、サーバデバイス又はその両方の役割を果たしてよい。
デバイス1010は、一つ以上のアプリケーション1040をサポートすることができる。アプリケーション1040は、センサアプリケーション、サーモスタットアプリケーション、照明アプリケーション等のIoTアプリケーションであってよい。他の例においては、アプリケーション1040は、インターネットブラウザ、電子メールアプリケーション、文書処理アプリケーション、表計算アプリケーション等のエンドユーザアプリケーションであってよい。アプリケーション1040は、ネットワーク1030を介して、アプリケーション層通信プロトコル等の一つ以上の通信プロトコルを使用するリモートデバイス1020を含む、一つ以上の他のリモートデバイスとデータを送受信する。リモートデバイス1020は、デバイス1010と同一のもの又は異なるものであってよく、クライアントデバイス、サーバデバイス又はその両方の役割を有してよい。リモートデバイス1020は、いくつかの例においては、IoTデバイス、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、サーバコンピュータ又は他のコンピューティングデバイスであってよい。
デバイス1010は、一つ以上のアプリケーション層通信プロトコルを実装することのできる一つ以上のアプリケーション層通信プロトコルモジュール1050を含むことができる。例としては、CoAP、MQTT、OPC UA、HTTP等が含まれる。いくつかの例においては、アプリケーション層通信プロトコルモジュール1050はアプリケーション1040内部で実装されることができる。アプリケーション層通信プロトコルモジュール1050は、それぞれ、メッセージングプロトコルを実装する。アプリケーション1040から送信されるメッセージは、アプリケーション層通信プロトコルモジュール1050の一つにより受信される。アプリケーション層通信プロトコルモジュール150は、所望のアプリケーション層通信プロトコルに対応し、その対応するプロトコルに従ってメッセージを構築し、それを下位層通信プロトコルモジュール1060に送信する。
デバイス1010は、アプリケーション層よりも下位にある通信プロトコルスタックの層を実装することのできる下位層通信プロトコルモジュール1060を含むことができる。実装される層の例としては、物理、データリンク、ネットワーク、トランスポート、セッション、インターネット及びプレゼンテーションプロトコルのうちの一つ以上が含まれてよい。実装されるプロトコルの例としては、イーサネット(登録商標)、インターネットプロトコル、トランスミッションコントロールプロトコル(TCP)、802.11規格のためのプロトコル(例えば、PHY、ミディアムアクセスコントロール、ロジカルリンクコントロール等)等の一つ以上が含まれる。下位層通信プロトコルモジュール1060は、アプリケーション層通信プロトコルモジュール1050からメッセージを受信することができ、下位層通信プロトコルモジュール1060によって実装される様々なプロトコルに従って、一つ以上のメッセージにデータをカプセル化することができ、メッセージをネットワーク1030を介して、一つ以上のリモートデバイス(例えば、リモートデバイス1020)に送信する。同様に、リモートデバイス1020からの到来メッセージに対しては、下位層通信プロトコルモジュール1060は、下位層通信プロトコルモジュール1060が実装するプロトコルに適切なように到来メッセージを処理し、アプリケーション層メッセージを、メッセージのアプリケーション層に対応するアプリケーション層通信プロトコルモジュール1050にわたすことができる。処理の例としては、フロー制御パラメータ、ルーティング、アクノリッジメントの処理及び送信等が含まれてよい。
デバイス1010は、選択モジュール1070を含むことができる。選択モジュールは、利用可能なアプリケーション層通信プロトコルから適切なアプリケーション層通信プロトコルを動的に選択することができる。発見モジュール1080は、リモートデバイス1020によりサポートされているアプリケーション層通信プロトコルを発見するプロトコル発見に従事することができる。いくつかの例においては、発見モジュール1080は、(アプリケーション層通信プロトコルモジュール1050によりフォーマットされた)HTTPのGETリクエストメッセージを送信し、このメッセージをリモートデバイス1020に送信するため、下位層通信プロトコルモジュール1060にこのメッセージを渡すことでこれを行うことができる。リモートデバイス1020からデバイス1010への応答は、利用可能なアプリケーション層通信プロトコルのリストであることができる。リモートデバイス1020のサポートされているアプリケーション層通信プロトコルは、リモートデバイス1020の固有識別子によりインデックス化されて、データストア1120に記憶されることができる。プロトコル発見は定期的に行われて、リモートデバイス1020についてサポートされているプロトコルのリストが最新のものであることを保証することができる。例えば、プロトコル発見は、定期的(例えば、最後のプロトコル発見から所定の期間が経過した後)、各通信セッションの後、一度だけ、デバイス1010によってリモートデバイス1020に各メッセージが送られる前に等で行われることができる。いくつかの例においては、サポートされているプロトコルの定期的なリフレッシュによって、新たなプロトコルが利用可能になると、それらを使用することができる。
発見モジュール1080は、どの通信プロトコルがデバイス1010によってサポートされているかを決定する。これは、アプリケーション1040又はアプリケーション層通信プロトコルモジュール1050とのプロセス間通信によってなされることができる。他の例においては、これは、情報をデータストア1120から読み出すことによって達成することができる。アプリケーション層通信プロトコルモジュール1050又はアプリケーション1040は、サポートされているアプリケーション層通信プロトコルをデータストア1120のレジストリに記録することができる。
発見モジュール1080は、アプリケーション1040と通信して、アプリケーション1040の一つ以上の通信特徴を決定してもよい。これは、アプリケーション1040の一つからのメッセージの受信、アプリケーション1040のインストール、選択モジュール1070のインストール等の一つ以上によりなされてよい。いくつかの例においては、一度、アプリケーション1040の通信特徴が決定されたら、データストア1120に記憶され、その後に続くメッセージに用いられる。アプリケーション1040の通信特徴は、一度記憶されたら、定期的に更新されることができる(例えば、最後の更新から所定の期間が経過した後)。
通信特徴の例としては、片道レイテンシ耐性、往復レイテンシ耐性(例えば、ラウンドトリップタイム)、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、メッセージが少なくとも一回搬送されることが必要か否かについて、及びメッセージは一度だけ搬送される可能性があるか否かについて、のうち一つ以上が含まれる。これらの特徴は、クオリティーオブサービス(QoS)特徴と称されることができる。
ネットワーク分析モジュール1100は、デバイス1010と通信の受信者(例えば、リモートデバイス1020等のリモートデバイス)との間のネットワーク接続の一つ以上の特徴を決定することができる。ネットワーク特徴の例としては、片道レイテンシ、往復レイテンシ(例えば、ラウンドトリップタイム)、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率、可用性等が含まれる。ネットワークの特徴は、一つ以上のテストパケットをネットワークを介して送信することにより、又はリモートデバイス1020に受信又は送信された過去のトラフィックの分析により、決定されてよい。例えば、インターネットコントロールメッセージプロトコル(ICMP)エコーリクエストパケットを送信する(例えば、リモートデバイスにピング(ping)する)ことで、デバイス1010は、RTT、誤り率、パケット損失等を決定することができる。いくつかの例においては、ジッタ等の特徴は、経時的に接続レイテンシにおける変動性を分析することより決定されることができる。これらのネットワーク接続の特性はデータストア1120に記憶されることができる経時的な測定を用いて計算された、ジッタ等の特性については、レイテンシ等の履歴値がデータストア1120に記憶されることができ、特徴が定期的に発見モジュール1080によって計算されることができる。
データストア1120は一つ以上のストレージデバイスを含み、一つ以上の関係データベースにより管理されることができる。データベースは、関係データベースに対して発行される一つ以上のコマンドを用いて、検索される、又は項目が追加、削除若しくは移動されることができる。コマンドは、構造化照会言語(SQL)等の一つ以上のプログラミング言語に従ってフォーマット化される。データストア1120は、一つ以上のアプリケーション(例えば、アプリケーション1040)の通信特徴、デバイスと一つ以上のリモートデバイスとの間の経時的なネットワーク接続の特徴等を記憶することができる。例えば、データストアは、ネットワーク接続による特定のリモートデバイスへ送信された各メッセージについてのプロトコル、レイテンシ、アプリケーションレイテンシ耐性、アクノリジッメントが必要とされたか否か、ペイロードサイズ及び送信時間等の過去の送信の通信パラメータを記憶する履歴データベーステーブルを記憶することができる。異なるリモートデバイスとの各通信セッションは、別々のテーブルに記憶されることができる。履歴データベースの例としては、
Figure 2017117445
のようであってよい。
履歴データベースのフィールドは、上記特徴を備えた過去のメッセージに由来している。例えば、送信前の測定ネットワークレイテンシが35msで、CoAPで送信された3kBのメッセージは、実送信時間が40msであった。アプリケーションは、38msのレイテンシ耐性が必要とされるメッセージを送信し、アクノリッジメントを必要としなかった。履歴データベースは、デバイス上での複数のアプリケーション1040からの実世界のメッセージを捉えていることに留意されたい。これにより、デバイス上の各アプリケーションは、メッセージを送信したアプリケーションにかかわらず、特定の宛先のデバイスに送信された全ての過去のメッセージから得た情報により利益を得ることができる。
履歴データベースのテーブルは特定の宛先のデバイスに特有なものとして説明されているが、他の例においては、履歴データベースは全ての宛先に共通であってよい。これは、より完全なデータを得る利益がある一方で、ネットワーク条件が、各異なるデバイスについて、異なるネットワーク経路間で実質的に変化し得るため、正確性がより低下する可能性がある。
さらに追加的な例においては、履歴データベースは、同一のテーブルでの類似するネットワーク位置を有する異なるリモートデータベースについての履歴データを集約することができる。例えば、同一ドメイン、同一のサブネット、ローカルネットワーク等での二つの異なるデバイスについては、まとめて記憶された履歴データとすることができる。これにより、適切なアプリケーション層通信プロトコルの選択を決定する付加的なデータが提供されるが、同時に異なるデバイス間で起きるネットワーク条件間での変動を最小限にする工程が取り入れられる。二つのデバイスは、デバイスとのネットワーク接続の特徴が同一のテーブルに記憶されるのに、十分な程度類似しているか否かについては、例えば、リモートデバイスのIPアドレスの比較に基づいて、決定されることができる。
制御モジュール1090は、一つ以上のネットワーク接続の特徴と、メッセージを送信する一つ以上のアプリケーションの通信特徴を利用して、履歴データベースを用いた適切なアプリケーションメッセージングプロトコルを選択することができる。種々の例においては、選択モジュール1070は、最も速い送信時間を有し、アプリケーションの最低通信特徴も満たすメッセージングプロトコルを選択することができる。
例えば、選択モジュール1070は、履歴データベースを用いて、現在のメッセージに対して最適なアプリケーション層通信プロトコルを選択する。選択モジュール1070は、まず、メッセージを送信し、現在の測定ネットワークレイテンシ(又は、測定レイテンシの所定の閾値以内)に合致し、ペイロードサイズ(又は、ペイロードサイズの所定の閾値以内)に合致する、アプリケーションの最低アプリケーション特徴を満たすテーブルの行を選択する。そして、選択モジュール1070は、履歴で最も短い送信時間を生成した行を選択する。選択された行でのプロトコルの列でのプロトコルが、このメッセージについて使用されるアプリケーション層通信プロトコルとして選択される。
様々な例において、この適応的プロトコル選択は、アプリケーション1040に対して透過的に実装されることができる。例えば、アプリケーション1040は、アプリケーション層通信プロトコルモジュール1050を介した様々なプロトコル(例えば、HTTP)を用いてメッセージを送信するように設計されてよい。装置上の選択モジュール1070は、このメッセージを送信前に傍受して(intercept)、理想的なプロトコルを選択し、メッセージ内容を除去し、アプリケーション層通信プロトコルモジュール1050を介して選択されたプロトコルを用いて、メッセージを再パッケージする。選択モジュール1070は、リモートデバイスから応答又は他のメッセージを受信すると、選択されたプロトコルからの到来メッセージをアプリケーション固有の(native)プロトコルにも変換することができる。選択モジュール1070は、データストア1120の各メッセージのオリジナルのプロトコルを追跡して、任意の応答をそのオリジナルのプロトコルに再変換する。他の例においては、アプリケーション1040は、メッセージ内容を、適切なプロトコルをその後に選択する選択モジュール1070に直接送信し、アプリケーション層通信プロトコルモジュール1050を用いてメッセージを形成し、下位層通信プロトコルモジュール1060を用いてメッセージを送信することができる。
他の例においては、ここで開示された方法は、アプリケーションそのもの内で実装されてよく、その実装を支援することのできる様々なサービスが定められてよい。例えば、選択モジュール1070は、アプリケーションに一つ以上のライブラリ機能を提供して、適切なアプリケーション層通信プロトコルの選択を支援してよい。
ここで図2を参照すると、本開示のいくつかの例に従う、メッセージに対して、アプリケーション層通信プロトコルを動的に選択する方法2000のフローチャートが示されている。この処理は、一度、アプリケーション1040(例えば、ソースアプリケーション)がメッセージを送信したら、メッセージ単位ベースで行われることができる。動作2010では、デバイス(例えば、図1の発見モジュール1080)は通信しているリモートデバイスでサポートされているアプリケーション層通信プロトコルを発見することができる。いくつかの例においては、これは、キャッシュ又はデータストア1120等のデータベースに保存されているデータを読み出すことによって達成されることができる。サポートされているアプリケーション層通信プロトコルが既に決定され、記憶されていてもよい。データストア1120にデータが記憶されていなければ、サポートされているアプリケーション層通信プロトコルは、HTTP等の利用可能なアプリケーション層通信プロトコルを用いて、リモートデバイスの利用可能なメッセージブローカ(例えば、リモートデバイスで利用可能なアプリケーション層通信プロトコルモジュール)に要求することによって決定されることができる。これらの例においては、HTTP GETを用いたリプレゼンテーショナルステートトランスファー(RESTful)クエリが、リモートデバイスの既知のURLに利用されることができ、利用可能なアプリケーション層通信プロトコルを得る。その情報は、その後に、データストア(例えば、図1のデータストア1120)に保存されることができる。その情報は一つ以上のデータベースコマンドを用いて保存されることができる。例えば、データベースがSQLiteデータベースである場合は、テーブルに行を挿入する一つ以上のコマンドがリモートデバイスによりインデックス化される。
動作2020では、デバイスは適切なアプリケーション層通信プロトコルを選択する。この動作は、後述の図3でさらに説明する。一度、アプリケーション層通信プロトコルが選択されると、動作2030では、選択されたアプリケーション層通信プロトコルによって特定されるメッセージのフォーマット及び構成の規則に従ってメッセージが構成される。これは、アプリケーション層通信プロトコルモジュール1050の一つによって行われることができる。いくつかの例においては、この動作は、メッセージを送信するアプリケーションから現在のメッセージペイロードを取得することを含む。そのメッセージペイロードは、アプリケーションを通じて直接的に取得されることができる。例えば、アプリケーション1040が、関数パラメータがメッセージである、選択モジュール1070により提供される選択機能を呼び出すことができる。選択モジュール1070は、その後、選択されたアプリケーション層通信プロトコルに対応する適切なアプリケーション層通信プロトコルモジュールへのメッセージを送付(route)することができる。他の例においては、アプリケーション1040は、選択されたアプリケーション層のプロトコルそのものにメッセージを送付してよい。この例においては、選択モジュールは、単に選択のみを行い、アプリケーション400に任せて、適切にメッセージを送付する。さらに、他の例においては、メッセージはアプリケーションにより選択された異なるアプリケーション層通信プロトコルで既に符号化されたメッセージから抽出されてものであってよい(例えば、選択モジュールの動作がエンドアプリケーションに透過である場合)。メッセージペイロードは、構成され、フォーマットされることができ、必要なヘッダが付け加えられることができる。フォーマットの例としては、Comma Separated Values(CSV)、JavaScript(登録商標) Object Notation(JSON)及びExtensible Markup Language(XML)が含まれる。
動作2040では、メッセージがリモートデバイスに発送される。いくつかの例においては、これは、メッセージを下位レベルの通信プロトコルを通過させることを組み込む。例えば、図1の下位層通信プロトコルモジュール1060によって実装されるように、TCP/IPヘッダを付加し、最終的にはそれを物理的媒体上に(例えば、有線で、無線送信を介して等)送信する。例えば、図4のネットワークインタフェースデバイス4020を用いる。いくつかの例においては、これは、リモートデバイスへの接続を開始することを必要としてよい(例えば、TCPセッション、アプリケーション層接続等)。一度、メッセージが送信されると、履歴データベースは送信の通信パラメータで更新されることができる。例えば、選択プロトコル、メッセージ送信時間、アプリケーションの通信特徴、ペイロードサイズ、デバイスとリモートデバイスとの間のネットワーク接続の特徴のタプリを記憶する行が追加されることができる。例えば、行は、SQLite命令文の使用を通じて挿入されることができる。いくつかの例においては、履歴データベースは図1のデータストア1120であることができる。
ここで、図3を参照すると、本開示のいくつかの例に従う、アプリケーション層通信プロトコルを動的に選択する方法3000のフローチャートが示されている。動作3010では、デバイスは、デバイスと通信の受信者(例えば、リモートデバイス)との間のネットワーク接続の一つ以上の特徴を検出することができる。例えば、これは、図1のネットワーク分析モジュール1100によってなされることができる。これらの特徴は、片道レイテンシ、往復レイテンシ(例えば、ラウンドトリップタイム)、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率、可用性を含むことができる。いくつかの例においては、これは、RTTをテストするため、リモートデバイスへのICMPエコーリクエストを発行する「ピング(ping)」コマンドを発行することによってなされることができる。一つ以上のネットワーク特徴が図1のデータストア1120等のローカルデータベースに記憶されることができる。例えば、行又は列はSQLite命令文の使用を通じてテーブルに挿入されることができる。
動作3020では、デバイス(例えば、図1の発見モジュール1080)は、メッセージを送信しているアプリケーションの一つ以上の通信特徴を決定することができる。いくつかの例においては、これは、ローカルデータベース(例えば、データストア1120)又はキャッシュへの問い合わせ(例えば、SQLiteクエリコマンド)による、以前に記憶されたアプリケーションの通信特徴の取り出し(アプリケーションとの以前の通信を通じて以前に記憶された、又はアプリケーションがデータベースに特徴を置いておく(place)ことができる)を組み込む。ローカルデータベースがアプリケーションの通信特徴についての情報を含んでいない場合は、デバイスは、アプリケーションプログラミングインタフェース(API)を通じてアプリケーションに問い合わせをすることができる。例えば、選択モジュール1070が、選択モジュール1070及びアプリケーション1040の両方によって実装されたAPIを用いてアプリケーション1040に問い合わせをすることができる。他の例においては、アプリケーションがインストールされるときに、この情報がレジストリ又は他の中央ストア(データストア1120又はいくつかの他のデータストレージロケーション)に書き込まれてよい。さらに、追加的な例においては、通信特徴はアプリケーションのメッセージング履歴の観察に基づいて決定されてよい。例えば、レイテンシ要件はアプリケーション送信リトライ要求の観察し、そして、以前のメッセージが時間通りに到着しなかったと推察することを通じて決定されることができ、レイテンシ要件は、その時の目的地までのネットワークレイテンシよりも小さい。同様に、アクノリッジメント要件も、アプリケーションによって送信/受信されたアクノリッジメントとして観察されることができる。ペイロードサイズは、アプリケーションによって送信されたメッセージのサイズに基づいて決定されることができる。
一度、アプリケーションの通信特徴が決定されると、それらはデータベース(例えば、データストア1120)に記憶されることができる。通信特徴の例としては、片道レイテンシ耐性、往復レイテンシ耐性(例えば、ラウンドトリップタイム)、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、メッセージが少なくとも一回搬送されることが必要か否かについて、及びメッセージは一度だけ搬送される可能性があるか否かについて、のうち一つ以上が含まれる。
動作3030では、システム(例えば、制御モジュール1090)は、履歴データベースに問い合わせて、最適なアプリケーション層通信プロトコルを決定することができる。例えば、選択モジュール1070は、履歴データベースに問い合わせて、現在のメッセージに対して、最適なアプリケーションプロトコルを選択することができる。選択モジュール1070は、現在の測定ネットワークレイテンシ(又は、測定レイテンシの所定の閾値以内)に合致し、ペイロードサイズ(又は、ペイロードサイズの所定の閾値以内)に合致する、アプリケーションの最低アプリケーション特徴を満たすテーブルの行を選択する。そして、選択モジュール1070は、履歴で最も短い送信時間を生成した行を選択する。そして、データベースのプロトコルの列でのアプリケーション層通信プロトコルが、最適なアプリケーション層通信プロトコルとして選択される。
いくつかの例においては、デバイスにより選択され、履歴データベースから、アプリケーションの通信特徴に合致する複数の行が所定の閾値よりも低い場合は、アプリケーション層通信プロトコルを適切に選択するには十分な履歴情報がない可能性がある。この状況では、アプリケーションの通信特徴に合致するプロトコルはランダムで選択されることができる。
この処理が異なる時間で反復されるときには、選択されるアプリケーション層の通信プロトコルが異なっていることができると理解される。例えば、アプリケーションにより送信された一つのメッセージは第一選択アプリケーション層通信プロトコルを用いて送信されることができるが、異なる時間で送信される他のメッセージは、ネットワーク接続の特徴の新たな測定結果として、又はアプリケーションの通信特徴の変更結果として、他の異なるアプリケーション層通信プロトコルを用いて送信されることができる。
いくつかの例においては、リモートデバイスでサポートされているプロトコルが新たなプロトコルを組み込むように変更される可能性がある。ゆえに、新たなプロトコルより以前に書きこまれているアプリケーションが、アプリケーションのコードの変更なしで動的にこの新たなプロトコルの恩恵を受けることができる。
本発明のプロトコル選択の潜在的な使用事例として、IoT環境を前述したが、他の非IoTの使用事例、例えば、非IoT環境でのデバイスでも利用されることができる。さらに、アプリケーション層通信プロトコルの適応的選択を前述したが、本開示の恩恵により、当業者であれば、プロトコルスタックの他の階層も適応的に選択されることができると理解するものである。
図4は、ここで述べられた一つ以上の技術(例えば、手法)が行われる例示のマシン4000のブロック図を示す。別の実施形態においては、マシン4000は、スタンドアロンデバイスとして動作してもよく、他のマシンに接続(例えば、ネットワーク接続)されていてもよい。ネットワーク配置においては、マシン4000は、サーバ−クライアントネットワーク環境において、サーバマシン、クライアントマシン又はその両方の性質で動作することができる。例においては、マシン4000は、ピアトゥーピア(P2P)(又は他の分散)ネットワーク環境でのピアマシンとして活動することができる。マシン4000は、IoTデバイス、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、スマートフォン、ウェブアプライアンス、ネットワークルータ、スイッチ若しくはブリッジ、又はその他の、マシンにより取られるべき活動を特定する(順次的又は別のやり方の)命令(instructions)を実行することができるマシンでよい。マシン4000は、図1のデバイス1010を実装することができる。さらに、単一のマシンだけが示されているが、文言「マシン」は、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成等、ここで述べられた一つ以上の手法を行う命令セット(又は複数のセット)を個々に又は連携して実行する任意のマシン群を含むと捉えられるべきでもある。
ここで説明されたように、例は、ロジック又は多くのコンポーネント、モジュール若しくは機構を含んでよい、又はそれら上で動作してよい。モジュールは、特定された動作を行うことのできる有形のエンティティ(例えば、ハードウェア)であり、あるやり方で構成又は配置されていることができる。例においては、回路がモジュールとして、特定のやり方で(例えば、内部に、又は他の回路等の外部エンティティに関して)配置されていることができる。例においては、一つ以上のコンピュータシステム(例えば、スタンドアロン、クラインアント又はサーバコンピュータシステム)又は一つ以上のハードウェアプロセッサの全体又は一部が、特定の動作を行うように動作するモジュールとして、ファームウェア又はソフトウェアによって構成されてよい。例において、ソフトウェアはマシン読み取り可能媒体上に存することができる。例において、ソフトウェアは、モジュールの基礎をなすハードウェアによって実行されると、ハードウェアに特定の動作を行わせる。
したがって、文言「モジュール」は、物理的に構成され、具体的に構成され(例えば、ハードワイヤード)、又は仮に(例えば、一時的)構成され(例えば、プログラムされ)て、特定のやり方で動作する、又はここで説明された任意の動作の一部又は全部を行う、エンティティである有形のエンティティを包含すると理解される。モジュールが仮に構成された例を考慮すると、モジュールの各々が時間の任意の瞬間にインスタンス化されている必要はない。例えば、モジュールがソフトウェアを使用して構成された汎用ハードウェアプロセッサ(コンピュータプロセッサ)を含む場合に、汎用ハードウェアプロセッサは、異なる時間ではそれぞれ異なるモジュールとして構成されることができる。ソフトウェアは、ゆえに、ハードウェアプロセッサを構成してよく、例えば、時間のあるインスタンスでは特定のモジュールを構成し、時間の異なるインスタンスでは異なるモジュールを構成することができる。
マシン4000(例えば、コンピュータシステム)は、ハードウェアプロセッサ4002(例えば、セントラルプロセッシングユニット(CPU)、グラフィクスプロセッシングユニット(GPU)、ハードウェアプロセッサコア又はそれらの任意の組み合わせ)、メインメモリ4004及びスタティックメモリ4006を含むことができ、それらのいくつか又は全てはインターリンク4008(例えば、バス)を介して互いに通信することができる。マシン4000は、さらに、ディスプレイユニット4010、英数字入力デバイス4012(例えば、キーボード)及びユーザインタフェース(UI)ナビゲーションデバイス4014(例えば、マウス)をさらに含むことができる。例において、ディスプレイユニット4010、英数字入力デバイス4012及びUIナビゲーションデバイス4014は、タッチスクリーンディスプレイであることができる。マシン4000は、追加的に、ストレージデバイス4016(例えば、ドライブユニット)、信号生成デバイス4018(例えば、スピーカ)、ネットワークインタフェースデバイス4020及びグローバルポジショニングシステム(GPS)センサ、コンパス、加速度計又は他のセンサ等の一つ以上のセンサ4021を含むことができる。マシン4000は、一つ以上の周辺デバイス(例えば、プリンタ、カードリーダ等)と通信する又はこれを制御する、シリアル(例えば、ユニバーサルシリアルバス(USB))、パラレル、又は他の有線若しくは無線(例えば、赤外線(IR)、近距離通信(NFC)等)接続の出力コントローラ4028を含むことができる。
ストレージデバイス4016は、ここで説明された任意の一つ以上の技術又は機能を具体化する又それらにより利用されるデータ構造又は命令4024(例えば、ソフトウェア)の一つ以上のセットが記憶されたマシン読み取り可能媒体4022を含むことができる。命令4024は、メインメモリ4004内、スタティックメモリ4006内、又はマシン4000により実行中のハードウェアプロセッサ内に、完全に又は少なくとも部分的に存することもできる。例において、ハードウェアプロセッサ4002、メインメモリ4004、スタティックメモリ4006又はストレージデバイス4016の一つ又は任意の組み合わせがマシン読み取り可能媒体を構成してもよい。
マシン読み取り可能媒体4022は、単一媒体として示されているが、文言「マシン読み取り可能媒体」は、一つ以上の命令4024を記憶するように構成された単一媒体又は複数媒体(例えば、集約若しくは分散データベース、及び/又はこれに関連づけられたキャッシュとサーバ)を含むことができる。
文言「マシン読み取り可能媒体」は、マシン4000による実行のための命令であって、本開示の任意の一つ以上の技術をマシン4000に行わせる命令を記憶する、符号化する若しくは搬送することのできる、又はそのような命令に使用される若しくはそれに関連付けられたデータ構造を記憶する、符号化する若しくは搬送することのできる任意の媒体を含むことができる。非限定的にマシン読み取り可能媒体の例としては、ソリッドステートメモリ並びに、光学及び磁気媒体を含むことができる。マシン読み取り可能媒体の具体的な例としては、半導体メモリデバイス(例えば、電気的プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM))及びフラッシュメモリ等の不揮発性メモリ、内部ハードディスク及びリムーバブルディスク等の磁気ディスク、ランダムアクセスメモリ(RAM)、ソリッドステートドライブ(SSD)並びにCD−ROM及びDVD−ROMディスクが含まれてよい。いくつかの例においては、マシン読み取り可能媒体は、非一時的なマシン読み取り可能媒体を含んでよい。いくつかの例においては、マシン読み取り可能媒体は一時的な伝搬信号ではないマシン読み取り可能媒体を含んでよい。
命令4024は、さらに、ネットワークインタフェースデバイス4020を介して送信媒体を用いて通信ネットワーク4026(例えば、コンピュータネットワーク)を介して送受信されることができる。マシン4000は、多数の転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、トランスミッションコントロールプロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)等)の任意の一つを利用して一つ以上の他のマシンと通信することができる。通信ネットワークの例としては、とりわけ、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、セルラーネットワーク)、基本電話(POTS)ネットワーク、無線データネットワーク(例えば、WiFiとして知られる米国電気電子学会(IEEE)802.11標準ファミリ、WiMaxとして知られるIEEE802.16標準ファミリ)、IEEE802.15.4標準ファミリ、ロングタームエボリューション(LTE)標準ファミリ、ユニバーサルモバイルテレコミュニケーションズシステム(UMTS)標準ファミリ、ピアトゥーピア(P2P)ネットワークが含まれてよい。例において、ネットワークインタフェースデバイス4020は、一つ以上の物理的ジャック(例えば、イーサネット(登録商標)、同軸又は電話ジャック)又は、一つ以上のアンテナを含むことができ、通信ネットワーク4026に接続する。例において、ネットワークインタフェースデバイス4020は、複数のアンテナを含むことができ、単入力多出力(SIMO)、多入力多出力(MIMO)及び多入力単出力(MISO)技術の少なくとも一つを用いて無線通信する。いくつかの例においては、ネットワークインタフェースデバイス4020は、マルチユーザMIMO技術を用いて無線通信することができる。
その他の事項及び例
例1は、リモートデバイスと通信する方法であって、その方法は、コンピュータプロセッサ及びネットワークインタフェースを使用する工程と、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見する工程と、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択する工程と、選択アプリケーション層通信プロトコルに従って、メッセージを構築する工程と、選択アプリケーション層通信プロトコル及びネットワークインタフェースを使用して、コンピュータネットワークを介して、メッセージをリモートデバイスに送信する工程と、を含む方法である。
例2では、例1の主題が任意で、リモートデバイスへの送信のための第二メッセージをソースアプリケーションから受信する工程と、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴の新たな計測結果及びメッセージのソースアプリケーションの通信特徴に基づいて、メッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択し、第二選択アプリケーション層通信プロトコルに従って、第二メッセージを構築する工程と、コンピュータネットワークを介して、メッセージをリモートデバイスに送信する工程と、を含み、メッセージを構築し、送信するのに使用される選択アプリケーション層通信プロトコルは、第二メッセージを構築するのに使用される第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである。
例3では、例1から例2の一つ以上の主題が任意で、選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、ことを含む。
例4では、例1から例3の一つ以上の主題が任意で、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見する工程は、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、リモートデバイスから利用可能なメッセージブローカを要求する工程を含む、ことを含む。
例5では、例1から例4の一つ以上の主題が任意で、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択する工程は、コンピュータネットワークの特徴を検出する工程と、ソースアプリケーションの通信特徴を決定する工程と、コンピュータネットワークの特徴及びソースアプリケーションの通信特徴に一致するデータベースの行を選択する工程と、最も送信時間の短い選択行に対応するアプリケーション層通信プロトコルを選択する工程と、を含む、ことを含む。
例6では、例5の主題が任意で、コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、ことを含む。
例7では、例5から例6の一つ以上の主題が任意で、通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、メッセージが少なくとも一回搬送されることが必要か否かについて、及びメッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、ことを含む。
例8では、例5から例7の一つ以上の主題が任意で、送信されたメッセージの通信パラメータに基づいてデータベースを更新する工程を含む。
例9は、プロセッサと、ネットワークインタフェースと、プロセッサにより実行されると、プロセッサに、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見させ、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択させ、選択アプリケーション層通信プロトコルに従って、メッセージを構築させ、選択アプリケーション層通信プロトコル及びネットワークインタフェースを使用して、コンピュータネットワークを介して、メッセージをリモートデバイスに送信させる、命令を含む非一時的なマシン読み取り可能媒体と、を含むデバイスである。
例10では、例9の主題が任意で、命令は、プロセッサに、リモートデバイスへの送信のための第二メッセージをソースアプリケーションから受信させ、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴の新たな計測結果及びメッセージのソースアプリケーションの通信特徴に基づいて、メッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択させ、第二選択アプリケーション層通信プロトコルに従って、第二メッセージを構築させ、コンピュータネットワークを介して、メッセージをリモートデバイスに送信させる、命令を含み、メッセージを構築し、送信するのに使用される選択アプリケーション層通信プロトコルは、第二メッセージを構築するのに使用される第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである、ことを含む。
例11では、例9から例10の一つ以上の主題が任意で、選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、ことを含む。
例12では、例9から例11の一つ以上の主題が任意で、プロセッサに、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見させる命令は、プロセッサに、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、リモートデバイスから利用可能なメッセージブローカを要求させる命令を含む、ことを含む。
例13では、例9から例12の一つ以上の主題が任意で、プロセッサに、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択させる命令は、プロセッサに、コンピュータネットワークの特徴を検出させ、ソースアプリケーションの通信特徴を決定させ、コンピュータネットワークの特徴及びソースアプリケーションの通信特徴に一致するデータベースの行を選択させ、最も送信時間の短い選択行に対応するアプリケーション層通信プロトコルを選択させる、命令を含む、ことを含む。
例14では、例13の主題が任意で、コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、ことを含む。
例15では、例13から例14の一つ以上の主題が任意で、通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、メッセージが少なくとも一回搬送されることが必要か否かについて、及びメッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、ことを含む。
例16では、例13から例15の一つ以上の主題が任意で、命令は、プロセッサに、送信されたメッセージの通信パラメータに基づいてデータベースを更新させる命令を含む、ことを含む。
例17は、マシンにより実行されると、マシンに、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見させ、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択させ、選択アプリケーション層通信プロトコルに従って、メッセージを構築させ、選択アプリケーション層通信プロトコルを使用して、コンピュータネットワークを介して、メッセージをリモートデバイスに送信させる、命令を含む、非一時的なマシン読み取り可能媒体。
例18では、例17の主題が任意で、命令は、プロセッサに、リモートデバイスへの送信のための第二メッセージをソースアプリケーションから受信させ、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴の新たな計測結果及びメッセージのソースアプリケーションの通信特徴に基づいて、メッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択させ、第二選択アプリケーション層通信プロトコルに従って、第二メッセージを構築させ、コンピュータネットワークを介して、メッセージをリモートデバイスに送信させる、命令を含み、メッセージを構築し、送信するのに使用される選択アプリケーション層通信プロトコルは、第二メッセージを構築するのに使用される第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである、ことを含む。
例19では、例17から例18の一つ以上の主題が任意で、選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、ことを含む。
例20では、例17から例19の一つ以上の主題が任意で、プロセッサに、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見させる命令は、プロセッサに、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、リモートデバイスから利用可能なメッセージブローカを要求させる命令を含む、ことを含む。
例21では、例17から例20の一つ以上の主題が任意で、プロセッサに、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択させる命令は、プロセッサに、コンピュータネットワークの特徴を検出させ、ソースアプリケーションの通信特徴を決定させ、コンピュータネットワークの特徴及びソースアプリケーションの通信特徴に一致するデータベースの行を選択させ、最も送信時間の短い選択行に対応するアプリケーション層通信プロトコルを選択させる、命令を含む、ことを含む。
例22では、例21の主題が任意で、コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、ことを含む。
例23では、例21から例22の一つ以上の主題が任意で、通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、メッセージが少なくとも一回搬送されることが必要か否かについて、及びメッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、ことを含む。
例24では、例21から例23の一つ以上の主題が任意で、命令は、プロセッサに、送信されたメッセージの通信パラメータに基づいてデータベースを更新させる命令を含む、ことを含む。
例25は、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見する手段と、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択する手段と、選択アプリケーション層通信プロトコルに従って、メッセージを構築する手段と、選択アプリケーション層通信プロトコルを使用して、コンピュータネットワークを介して、メッセージをリモートデバイスに送信する手段と、を含むデバイスである。
例26では、例25の主題が任意で、リモートデバイスへの送信のための第二メッセージをソースアプリケーションから受信する手段と、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴の新たな計測結果及びメッセージのソースアプリケーションの通信特徴に基づいて、メッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択する手段と、第二選択アプリケーション層通信プロトコルに従って、第二メッセージを構築する手段と、コンピュータネットワークを介して、メッセージをリモートデバイスに送信する手段と、を含み、メッセージを構築し、送信するのに使用される選択アプリケーション層通信プロトコルは、第二メッセージを構築するのに使用される第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである。
例27では、例25から例26の一つ以上の主題が任意で、選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、ことを含む。
例28では、例25から例27の一つ以上の主題が任意で、リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見する手段は、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、リモートデバイスから利用可能なメッセージブローカを要求する手段を含む、ことを含む。
例29では、例25から例28の一つ以上の主題が任意で、リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、ソースアプリケーションから受信したメッセージに対して、サポートされているアプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択する手段は、コンピュータネットワークの特徴を検出する手段と、ソースアプリケーションの通信特徴を決定する手段と、コンピュータネットワークの特徴及びソースアプリケーションの通信特徴に一致するデータベースの行を選択する手段と、最も送信時間の短い選択行に対応するアプリケーション層通信プロトコルを選択する手段と、を含む、ことを含む。
例30では、例29の主題が任意で、コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、ことを含む。
例31では、例29から例30の一つ以上の主題が任意で、通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、メッセージが少なくとも一回搬送されることが必要か否かについて、及びメッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、ことを含む。
例32では、例29から例31の一つ以上の主題が任意で、送信されたメッセージの通信パラメータに基づいてデータベースを更新する手段を含む。

Claims (25)

  1. リモートデバイスと通信する方法であって、当該方法は、
    コンピュータプロセッサ及びネットワークインタフェースを使用する工程と、
    前記リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見する工程と、
    前記リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、該ソースアプリケーションから受信した該メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択する工程と、
    前記選択アプリケーション層通信プロトコルに従って、メッセージを構築する工程と、
    前記選択アプリケーション層通信プロトコル及び前記ネットワークインタフェースを使用して、前記コンピュータネットワークを介して、前記メッセージを前記リモートデバイスに送信する工程と、
    を含む方法。
  2. 前記リモートデバイスへの送信のための第二メッセージを前記ソースアプリケーションから受信する工程と、
    前記リモートデバイスと通信するのに使用される前記コンピュータネットワークの特徴の新たな計測結果及び前記メッセージのソースアプリケーションの通信特徴に基づいて、前記メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択し、
    前記第二選択アプリケーション層通信プロトコルに従って、第二メッセージを構築する工程と、
    前記コンピュータネットワークを介して、前記メッセージを前記リモートデバイスに送信する工程と、を含み、
    前記メッセージを構築し、送信するのに使用される前記選択アプリケーション層通信プロトコルは、前記第二メッセージを構築するのに使用される前記第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである、請求項1に記載の方法。
  3. 前記選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、請求項1に記載の方法。
  4. 前記リモートデバイスのサポートされている前記アプリケーション層通信プロトコルのセットを発見する工程は、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、前記リモートデバイスから利用可能なメッセージブローカを要求する工程を含む、請求項1に記載の方法。
  5. 前記リモートデバイスと通信するのに使用される前記コンピュータネットワークの特徴及び前記メッセージのソースアプリケーションの通信特徴に基づいて、前記ソースアプリケーションから受信した前記メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、前記選択アプリケーション層通信プロトコルとして選択する工程は、
    前記コンピュータネットワークの特徴を検出する工程と、
    前記ソースアプリケーションの通信特徴を決定する工程と、
    前記コンピュータネットワークの特徴及び前記ソースアプリケーションの通信特徴に一致するデータベースの行を選択する工程と、
    最も送信時間の短い選択行に対応する前記アプリケーション層通信プロトコルを選択する工程と、を含む、請求項1に記載の方法。
  6. 前記コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、請求項5に記載の方法。
  7. 前記通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、前記メッセージが少なくとも一回搬送されることが必要か否かについて、及び前記メッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、請求項5に記載の方法。
  8. 送信された前記メッセージの通信パラメータに基づいて前記データベースを更新する工程を含む、請求項5に記載の方法。
  9. プロセッサと、
    ネットワークインタフェースと、
    前記プロセッサにより実行されると、前記プロセッサに、
    リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見させ、
    前記リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、該ソースアプリケーションから受信した該メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択させ、
    前記選択アプリケーション層通信プロトコルに従って、メッセージを構築させ、
    前記選択アプリケーション層通信プロトコル及び前記ネットワークインタフェースを使用して、前記コンピュータネットワークを介して、前記メッセージを前記リモートデバイスに送信させる、
    命令を含む非一時的なマシン読み取り可能媒体と、
    を含むデバイス。
  10. 前記命令は、前記プロセッサに、
    前記リモートデバイスへの送信のための第二メッセージを前記ソースアプリケーションから受信させ、
    前記リモートデバイスと通信するのに使用される前記コンピュータネットワークの特徴の新たな計測結果及び前記メッセージのソースアプリケーションの通信特徴に基づいて、前記メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択させ、
    前記第二選択アプリケーション層通信プロトコルに従って、第二メッセージを構築させ、
    前記コンピュータネットワークを介して、前記メッセージを前記リモートデバイスに送信させる、
    命令を含み、
    前記メッセージを構築し、送信するのに使用される前記選択アプリケーション層通信プロトコルは、前記第二メッセージを構築するのに使用される前記第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである、請求項9に記載のデバイス。
  11. 前記選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、請求項9に記載のデバイス。
  12. 前記プロセッサに、前記リモートデバイスのサポートされている前記アプリケーション層通信プロトコルのセットを発見させる前記命令は、前記プロセッサに、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、前記リモートデバイスから利用可能なメッセージブローカを要求させる命令を含む、請求項9に記載のデバイス。
  13. 前記プロセッサに、前記リモートデバイスと通信するのに使用される前記コンピュータネットワークの特徴及び前記メッセージのソースアプリケーションの通信特徴に基づいて、前記ソースアプリケーションから受信した前記メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、前記選択アプリケーション層通信プロトコルとして選択させる前記命令は、前記プロセッサに、
    前記コンピュータネットワークの特徴を検出させ、
    前記ソースアプリケーションの通信特徴を決定させ、
    前記コンピュータネットワークの特徴及び前記ソースアプリケーションの通信特徴に一致するデータベースの行を選択させ、
    最も送信時間の短い選択行に対応する前記アプリケーション層通信プロトコルを選択させる、
    命令を含む、請求項9に記載のデバイス。
  14. 前記コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、請求項13に記載のデバイス。
  15. 前記通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、前記メッセージが少なくとも一回搬送されることが必要か否かについて、及び前記メッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、請求項13に記載のデバイス。
  16. 前記命令は、前記プロセッサに、送信された前記メッセージの通信パラメータに基づいて前記データベースを更新させる命令を含む、請求項13に記載のデバイス。
  17. プロセッサにより実行されると、該プロセッサに、
    リモートデバイスのサポートされているアプリケーション層通信プロトコルのセットを発見させ、
    前記リモートデバイスと通信するのに使用されるコンピュータネットワークの特徴及びメッセージのソースアプリケーションの通信特徴に基づいて、該ソースアプリケーションから受信した該メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、選択アプリケーション層通信プロトコルとして選択させ、
    前記選択アプリケーション層通信プロトコルに従って、メッセージを構築させ、
    前記選択アプリケーション層通信プロトコルを使用して、前記コンピュータネットワークを介して、前記メッセージを前記リモートデバイスに送信させる、
    プログラム。
  18. 前記プロセッサに、
    前記リモートデバイスへの送信のための第二メッセージを前記ソースアプリケーションから受信させ、
    前記リモートデバイスと通信するのに使用される前記コンピュータネットワークの特徴の新たな計測結果及び前記メッセージのソースアプリケーションの通信特徴に基づいて、前記メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、第二選択アプリケーション層通信プロトコルとして選択させ、
    前記第二選択アプリケーション層通信プロトコルに従って、前記第二メッセージを構築させ、
    前記コンピュータネットワークを介して、前記メッセージを前記リモートデバイスに送信させる、
    ことを含み、
    前記メッセージを構築し、送信するのに使用される前記選択アプリケーション層通信プロトコルは、前記第二メッセージを構築するのに使用される前記第二選択アプリケーション層通信プロトコルとは異なるアプリケーション層通信プロトコルである、請求項17に記載のプログラム。
  19. 前記選択アプリケーション層通信プロトコルは、ハイパーテキストトランスファープロトコル(HTTP)、コンストレインドアプリケーションプロトコル(CoAP)、MQテレメトリートランスポート(MQTT)プロトコル及びOPCユニファイドアーキテクチャ(UA)プロトコルのうちの一つである、請求項17に記載のプログラム。
  20. 前記プロセッサに、前記リモートデバイスのサポートされている前記アプリケーション層通信プロトコルのセットを発見させることは、前記プロセッサに、ハイパーテキストトランスファープロトコル(HTTP)GETリクエストを使用して、前記リモートデバイスから利用可能なメッセージブローカを要求させることを含む、請求項17に記載のプログラム。
  21. 前記プロセッサに、前記リモートデバイスと通信するのに使用される前記コンピュータネットワークの特徴及び前記メッセージのソースアプリケーションの通信特徴に基づいて、前記ソースアプリケーションから受信した前記メッセージに対して、サポートされている前記アプリケーション層通信プロトコルのセットのうち一つを、前記選択アプリケーション層通信プロトコルとして選択させることは、前記プロセッサに、
    前記コンピュータネットワークの特徴を検出させ、
    前記ソースアプリケーションの通信特徴を決定させ、
    前記コンピュータネットワークの特徴及び前記ソースアプリケーションの通信特徴に一致するデータベースの行を選択させ、
    最も送信時間の短い選択行に対応する前記アプリケーション層通信プロトコルを選択させる、
    ことを含む、請求項17に記載のプログラム。
  22. 前記コンピュータネットワークの特徴は、片道レイテンシ、往復レイテンシ、パケット損失、ジッタ、バンド幅、符号誤り率、誤り率及び可用性のうちの一つである、請求項21に記載のプログラム。
  23. 前記通信特徴は、片道レイテンシ耐性、往復レイテンシ耐性、パケット損失耐性、ジッタ耐性、バンド幅要件、アクノリッジメントが必要とされるか否かについて、符号誤り率耐性、誤り率耐性、可用性、前記メッセージが少なくとも一回搬送されることが必要か否かについて、及び前記メッセージは一度だけ搬送される可能性があるか否かについて、のうち一つである、請求項21に記載のプログラム。
  24. 前記プロセッサに、送信された前記メッセージの通信パラメータに基づいて前記データベースを更新させることを含む、請求項21に記載のプログラム。
  25. 請求項17から24のいずれか一項に記載のプログラムを含む、非一時的なマシン読み取り可能媒体。
JP2016225920A 2015-12-22 2016-11-21 IoT通信のためのネットワーク認識アプリケーションに依存した適応的プロトコル選択 Active JP6404301B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/978,316 2015-12-22
US14/978,316 US11032219B2 (en) 2015-12-22 2015-12-22 Network aware application dependent adaptive protocol selection for IoT communications

Publications (2)

Publication Number Publication Date
JP2017117445A true JP2017117445A (ja) 2017-06-29
JP6404301B2 JP6404301B2 (ja) 2018-10-10

Family

ID=59066882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016225920A Active JP6404301B2 (ja) 2015-12-22 2016-11-21 IoT通信のためのネットワーク認識アプリケーションに依存した適応的プロトコル選択

Country Status (5)

Country Link
US (1) US11032219B2 (ja)
EP (1) EP3395046B1 (ja)
JP (1) JP6404301B2 (ja)
SG (1) SG10201609771RA (ja)
WO (1) WO2017112116A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020067049A1 (ja) * 2018-09-28 2020-04-02 ダイキン工業株式会社 情報送信装置および機器管理システム
WO2021177243A1 (ja) 2020-03-02 2021-09-10 ダイキン工業株式会社 通信装置、プログラム、通信方法、情報処理方法、情報処理装置、及び通信システム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300678B1 (en) 2015-08-03 2016-03-29 Truepic Llc Systems and methods for authenticating photographic image data
US11032219B2 (en) 2015-12-22 2021-06-08 Intel Corporation Network aware application dependent adaptive protocol selection for IoT communications
US9923807B2 (en) * 2016-02-19 2018-03-20 At&T Intellectual Property I, L.P. Intelligent signaling routing for machine-to-machine communications
US20180063879A1 (en) * 2016-08-29 2018-03-01 Electronics And Telecommunications Research Institute Apparatus and method for interoperation between internet-of-things devices
WO2018071367A1 (en) * 2016-10-10 2018-04-19 Stephen Rosa Method and system for countering ransomware
US11323519B2 (en) * 2017-04-19 2022-05-03 Microsoft Technology Licensing, Llc Internet of things pub-sub data publisher
US11025627B2 (en) * 2017-07-10 2021-06-01 Intel Corporation Scalable and secure resource isolation and sharing for IoT networks
US10375050B2 (en) 2017-10-10 2019-08-06 Truepic Inc. Methods for authenticating photographic image data
KR102411691B1 (ko) 2018-01-03 2022-06-22 삼성전자주식회사 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법
CN108462754B (zh) * 2018-03-28 2019-12-24 西安西电电气研究院有限责任公司 一种工业互联网架构及实现方法
CN110417713B (zh) * 2018-04-28 2021-12-24 广东亿迅科技有限公司 一种基于物联网的设备数据传输方法及装置
EP3811592A1 (en) * 2018-06-25 2021-04-28 Telefonaktiebolaget LM Ericsson (publ) Communication protocol discover method in constrained application protocol (coap)
US10360668B1 (en) 2018-08-13 2019-07-23 Truepic Inc. Methods for requesting and authenticating photographic image data
US10361866B1 (en) 2018-08-13 2019-07-23 Truepic Inc. Proof of image authentication on a blockchain
US11328329B1 (en) * 2018-11-16 2022-05-10 Level 3 Communications, Llc Telecommunications infrastructure system and method
CN112019363B (zh) * 2019-05-30 2021-12-14 华为技术有限公司 确定业务传输需求的方法、设备及系统
EP3767922B1 (en) * 2019-07-17 2023-11-08 ABB Schweiz AG Method of channel mapping in an industrial process control system
CN110708352B (zh) * 2019-09-02 2022-01-28 上海商米科技集团股份有限公司 物联网设备的数据备份的方法及物联网设备
US11037284B1 (en) 2020-01-14 2021-06-15 Truepic Inc. Systems and methods for detecting image recapture
CN112929425B (zh) * 2021-01-26 2022-09-13 深圳优美创新科技有限公司 手表通信连接方法、装置、电子设备及存储介质
CN113938858B (zh) * 2021-12-17 2022-04-12 高新兴智联科技有限公司 一种v2x协议栈的通讯方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102507A (ja) * 2002-09-06 2004-04-02 Murata Mach Ltd ネットワーク装置
JP2007150697A (ja) * 2005-11-28 2007-06-14 Ricoh Co Ltd 通信装置、通信制御方法、通信制御プログラム及び記録媒体
US20120042060A1 (en) * 2010-08-12 2012-02-16 Steve Jackowski Systems and methods for quality of service of ica published applications

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122118B2 (en) 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US20060002425A1 (en) 2004-06-30 2006-01-05 Mane Pravin D Determining available bandwidth in a network
US7979492B2 (en) 2004-11-16 2011-07-12 International Business Machines Corporation Time decayed dynamic e-mail address
US8082304B2 (en) * 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
JP4677270B2 (ja) 2005-04-08 2011-04-27 キヤノン株式会社 通信装置及び制御方法
US7797406B2 (en) * 2006-07-27 2010-09-14 Cisco Technology, Inc. Applying quality of service to application messages in network elements based on roles and status
US8064391B2 (en) * 2006-08-22 2011-11-22 Embarq Holdings Company, Llc System and method for monitoring and optimizing network performance to a wireless device
CN1968276B (zh) 2006-11-24 2010-04-07 清华大学 面向服务的体系结构环境下服务之间数据传输的动态优化方法
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
SG171753A1 (en) 2009-05-18 2011-07-28 Ericsson Telefon Ab L M Method for implementing ims functionality in a set top box
CN102148863A (zh) 2011-01-27 2011-08-10 华为技术有限公司 一种m2m业务消息传递的方法及装置
GB201109312D0 (en) 2011-06-03 2011-07-20 Vodafone Ip Licensing Ltd Machine to machine communications
KR102024182B1 (ko) * 2011-11-18 2019-09-24 톰슨 라이센싱 엔드-유저 디바이스들의 원격 관리를 위한 발행/구독 브로커를 포함하는 시스템 및 각각의 엔드-유저 디바이스
WO2014039387A1 (en) * 2012-09-04 2014-03-13 Interdigital Patent Holdings, Inc. Method and apparatus for using multiple universal resource identifiers in m2m communications
KR102046287B1 (ko) 2013-05-06 2019-11-18 콘비다 와이어리스, 엘엘씨 사물 인터넷 적응화 서비스들
WO2015040350A1 (en) 2013-09-18 2015-03-26 Toshiba Research Europe Limited Method and system for establishing a network connection
US9009230B1 (en) * 2014-09-10 2015-04-14 Citrix Systems, Inc. Machine-to-machine instant messaging
IN2015DE03210A (ja) 2015-10-06 2015-10-23 Hcl Technologies Ltd
US11032219B2 (en) 2015-12-22 2021-06-08 Intel Corporation Network aware application dependent adaptive protocol selection for IoT communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102507A (ja) * 2002-09-06 2004-04-02 Murata Mach Ltd ネットワーク装置
JP2007150697A (ja) * 2005-11-28 2007-06-14 Ricoh Co Ltd 通信装置、通信制御方法、通信制御プログラム及び記録媒体
US20120042060A1 (en) * 2010-08-12 2012-02-16 Steve Jackowski Systems and methods for quality of service of ica published applications

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020067049A1 (ja) * 2018-09-28 2020-04-02 ダイキン工業株式会社 情報送信装置および機器管理システム
US11381889B2 (en) 2018-09-28 2022-07-05 Daikin Industries, Ltd. Information transmission apparatus and appliance management system for optimizing transmission efficiency without decreasing number of items of transmission data or transmission frequency
WO2021177243A1 (ja) 2020-03-02 2021-09-10 ダイキン工業株式会社 通信装置、プログラム、通信方法、情報処理方法、情報処理装置、及び通信システム
US11778040B2 (en) 2020-03-02 2023-10-03 Daikin Industries, Ltd. Communication apparatus, program, communication method, information processing method, information processing apparatus, and communication system

Also Published As

Publication number Publication date
US20170180277A1 (en) 2017-06-22
EP3395046A1 (en) 2018-10-31
SG10201609771RA (en) 2017-07-28
US11032219B2 (en) 2021-06-08
EP3395046B1 (en) 2020-03-04
JP6404301B2 (ja) 2018-10-10
EP3395046A4 (en) 2019-06-12
WO2017112116A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
JP6404301B2 (ja) IoT通信のためのネットワーク認識アプリケーションに依存した適応的プロトコル選択
US10959089B2 (en) Data management microservice in a microservice domain
CN105453047B (zh) 提供物联网(iot)适配服务的系统和方法
US20130198266A1 (en) Facilitating communication between web-enabled devices
Martí et al. Performance evaluation of CoAP and MQTT_SN in an IoT environment
US20170279874A1 (en) Translation of messages using sensor-specific and unified protocols
US20180063879A1 (en) Apparatus and method for interoperation between internet-of-things devices
Oryema et al. Design and implementation of an interoperable messaging system for IoT healthcare services
JP6865593B2 (ja) 不均一ネットワークにまたがるコンテンツ配送
JP6885736B2 (ja) 不均一ネットワークにまたがる統合されたデータ・ネットワーキング
JP7246379B2 (ja) 通信ネットワークにおけるサービス層メッセージテンプレート
US10536560B2 (en) System and method for implementing augmented object members for remote procedure call
Han et al. Extending the devices profile for web services standard using a REST proxy
Mangas et al. WOTPY: A framework for web of things applications
US9203704B2 (en) Discovering a server device, by a non-DLNA device, within a home network
Bhattacharyya et al. Constrained application protocol (CoAP) option for no server response
US20220210053A1 (en) Methods, apparatuses and computer program products for generating transmission path objects based on data object transmissions in a network service cloud
WO2018132557A1 (en) Dynamic protocol switching
US9819741B1 (en) Device for sensor simulation using constrained application protocol
US11172050B1 (en) Self-configuring adapter
Rodrigues et al. A Vision of Internet of Things in Industry 4.0 with ESP8266
WO2020009797A1 (en) Efficient resource representation exchange between service layers
Pierleoni et al. A cross-protocol proxy for sensor networks based on CoAP
WO2015165034A1 (zh) 加载网页的方法和装置
US11303613B1 (en) Data access and firewall tunneling using a custom socket factory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180912

R150 Certificate of patent or registration of utility model

Ref document number: 6404301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250