(57)【要約】通信システムにおいて定義されたデータ定義を使用してデータを処理するためのシステム、方法、およびコンピュータプログラム製品。通信リンクが、第１のデバイスと第２のデバイスとの間に確立される。少なくとも１つ以上のデータパケットが、第１のデバイスと第２のデバイスとの間で交換される。第１のデバイスは、データパケットが第２のデバイスから受信されると、少なくとも１つの第１のデータ定義を使用して、データを１つ以上のデータパケットの１つ以上のペイロードから抽出する。第２のデバイスは、データパケットが第１のデバイスから受信されると、少なくとも１つの第２のデータ定義を使用して、データを１つ以上のデータパケットの１つ以上のペイロードから抽出する。
2019534633.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
通信リンクを第１のデバイスと第２のデバイスとの間に確立することと、
少なくとも１つ以上のデータパケットを前記第１のデバイスと前記第２のデバイスとの間で交換することであって、
前記第１のデバイスは、前記少なくとも１つ以上のデータパケットが前記第２のデバイスから受信されると、少なくとも１つの第１のデータ定義を使用して、データを前記少なくとも１つ以上のデータパケットの１つ以上のペイロードから抽出し、
前記第２のデバイスは、前記少なくとも１つ以上のデータパケットが前記第１のデバイスから受信されると、少なくとも１つの第２のデータ定義を使用して、データを前記少なくとも１つ以上のデータパケットの１つ以上のペイロードから抽出する、ことと
を含み、前記確立することおよび前記交換することのうちの少なくとも１つは、少なくとも１つのコンピューティングシステムの少なくとも１つのプロセッサを使用して実施される、方法。
【請求項２】
前記第１のデバイスに伝送される１つ以上のデータパケットのペイロードは、前記少なくとも１つの第１のデータ定義に従って生成され、
前記第２のデバイスに伝送される１つ以上のデータパケットのペイロードは、前記少なくとも１つの第２のデータ定義に従って生成される、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの第１のデータ定義は、第１のデータ定義識別子と関連付けられ、前記第１のデバイスは、前記第１のデータ定義識別子を使用して、前記少なくとも１つの第１のデータ定義を要求するように構成され、
前記少なくとも１つの第２のデータ定義は、第２のデータ定義識別子と関連付けられ、前記第２のデバイスは、前記第２のデータ定義識別子を使用して、前記少なくとも１つの第２のデータ定義を要求するように構成される、請求項２に記載の方法。
【請求項４】
前記第１のデバイスは、ペアリングデバイスであり、前記第２のデバイスは、通信デバイスである、請求項１に記載の方法。
【請求項５】
前記デバイスは、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継デバイス、中間デバイス、エンドポイントデバイス、無線スピーカ、有線スピーカ、無線受信機、有線受信機、送受信機、基地局、ルータ、モデム、および任意のそれらの組み合わせのうちの少なくとも１つを含む、請求項４に記載の方法。
【請求項６】
前記少なくとも１つの第１のデータ定義は、前記第２のデバイスによる前記１つ以上のデータパケットの１つ以上のペイロード内の前記第１のデータの含有に基づいて、前記第１のデバイスによって受信された前記１つ以上のデータパケットの１つ以上のペイロード内の第１のデータを規定する、請求項１に記載の方法。
【請求項７】
前記少なくとも１つの第２のデータ定義は、前記第１のデバイスによる前記１つ以上のデータパケットの１つ以上のペイロード内の前記第２のデータの含有に基づいて、前記第２のデバイスによって受信された前記１つ以上のデータパケットの１つ以上のペイロード内の第２のデータを規定する、請求項１に記載の方法。
【請求項８】
サーバが、前記第１のデバイスおよび前記第２のデバイスのうちの少なくとも１つに通信可能に結合される、請求項１に記載の方法。
【請求項９】
前記サーバによって、前記少なくとも１つの第１のデータ定義および前記少なくとも１つの第２のデータ定義のうちの少なくとも１つを生成することと、
前記サーバによって、前記少なくとも１つの第１のデータ定義および前記少なくとも１つの第２のデータ定義のうちの少なくとも１つを前記第１のデバイスおよび前記第２のデバイスのうちの少なくとも１つに提供することと
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記第１のデバイスと前記第２のデバイスとの間のデータの交換は、前記少なくとも１つの第１のデータ定義を使用する前記第１のデバイスおよび前記少なくとも１つの第２のデータ定義を使用する前記第２のデバイスに基づく、請求項１に記載の方法。
【請求項１１】
前記第１のデバイスと前記第２のデバイスとの間のデータの交換は、前記少なくとも１つの第１のデータ定義と前記少なくとも１つの第２のデータ定義との間の依存性に基づく、請求項１に記載の方法。
【請求項１２】
複数の第１のデバイスが、複数の第２のデバイスに通信可能に結合され、前記複数の第１のデバイス内の各第１のデバイスは、複数の第１のデータ定義内のその独自の第１のデータ定義を使用し、前記複数の第２のデバイス内の各第２のデバイスは、複数の第２のデータ定義内のその独自の第２のデータ定義を使用する、請求項１に記載の方法。
【請求項１３】
前記第１のデバイスによって、前記少なくとも１つの第１のデータ定義に対応する第１のデータ定義識別子を受信することと、
前記第２のデバイスによって、前記少なくとも１つの第２のデータ定義に対応する第２のデータ定義識別子を受信することと
をさらに含む、請求項１に記載の方法。
【請求項１４】
前記第１のデバイスを使用して、前記対応する受信された第１のデータ定義識別子を使用して、前記少なくとも１つの第１のデータ定義を検証することであって、
前記少なくとも１つの第１のデータ定義の検証に応じて、前記少なくとも１つ以上のデータパケットが前記第２のデバイスから受信されると、前記少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を実施し、
前記少なくとも１つの第１のデータ定義の検証の失敗に応じて、前記少なくとも１つ以上のデータパケットが前記第２のデバイスから受信されると、前記少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を防止する、ことと、
前記第２のデバイスを使用して、前記対応する受信された第２のデータ定義識別子を使用して、前記少なくとも１つの第２のデータ定義を検証することであって、
前記少なくとも１つの第２のデータ定義の検証に応じて、前記少なくとも１つ以上のデータパケットが前記第１のデバイスから受信されると、前記少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を実施し、
前記少なくとも１つの第２のデータ定義の検証の失敗に応じて、前記少なくとも１つ以上のデータパケットが前記第１のデバイスから受信されると、前記少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を防止する、ことと
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記対応する受信された第１のデータ定義識別子を使用して、前記少なくとも１つの第１のデータ定義を検証することであって、
前記少なくとも１つの第１のデータ定義の検証に応じて、前記少なくとも１つの第１のデータ定義を使用して、前記少なくとも１つ以上のデータパケットの１つ以上のペイロードを生成し、
前記少なくとも１つの第１のデータ定義の検証の失敗に応じて、前記少なくとも１つの第１のデータ定義を使用した１つ以上のペイロードの生成を防止する、ことと、
前記対応する受信された第２のデータ定義識別子を使用して、前記少なくとも１つの第２のデータ定義を検証することであって、
前記少なくとも１つの第２のデータ定義の検証に応じて、前記少なくとも１つの第２のデータ定義を使用して、前記少なくとも１つ以上のデータパケットの１つ以上のペイロードを生成し、
前記少なくとも１つの第２のデータ定義の検証の失敗に応じて、前記少なくとも１つの第２のデータ定義を使用した１つ以上のペイロードの生成を防止する、ことと
をさらに含む、請求項１３に記載の方法。
【請求項１６】
システムであって、
少なくとも１つのプログラマブルプロセッサと、
命令を記憶する機械可読媒体であって、前記命令は、前記少なくとも１つのプログラマブルプロセッサによって実行されると、前記少なくとも１つのプログラマブルプロセッサに、
通信リンクを第１のデバイスと第２のデバイスとの間に確立することと、
少なくとも１つ以上のデータパケットを前記第１のデバイスと前記第２のデバイスとの間で交換することであって、
前記第１のデバイスは、前記少なくとも１つ以上のデータパケットが前記第２のデバイスから受信されると、少なくとも１つの第１のデータ定義を使用して、データを前記少なくとも１つ以上のデータパケットの１つ以上のペイロードから抽出し、
前記第２のデバイスは、前記少なくとも１つ以上のデータパケットが前記第１のデバイスから受信されると、少なくとも１つの第２のデータ定義を使用して、データを前記少なくとも１つ以上のデータパケットの１つ以上のペイロードから抽出する、ことと
を含む動作を実施させる、機械可読媒体と
を備える、システム。
【請求項１７】
前記第１のデバイスに伝送される１つ以上のデータパケットのペイロードは、前記少なくとも１つの第１のデータ定義に従って生成され、
前記第２のデバイスに伝送される１つ以上のデータパケットのペイロードは、前記少なくとも１つの第２のデータ定義に従って生成される、請求項１６に記載のシステム。
【請求項１８】
前記少なくとも１つの第１のデータ定義は、第１のデータ定義識別子と関連付けられ、前記第１のデバイスは、前記第１のデータ定義識別子を使用して、前記少なくとも１つの第１のデータ定義を要求するように構成され、
前記少なくとも１つの第２のデータ定義は、第２のデータ定義識別子と関連付けられ、前記第２のデバイスは、前記第２のデータ定義識別子を使用して、前記少なくとも１つの第２のデータ定義を要求するように構成される、請求項１７に記載のシステム。
【請求項１９】
命令を記憶する非一過性機械可読媒体を備えるコンピュータプログラム製品であって、前記命令は、少なくとも１つのプログラマブルプロセッサによって実行されると、前記少なくとも１つのプログラマブルプロセッサに、
通信リンクを第１のデバイスと第２のデバイスとの間に確立することと、
少なくとも１つ以上のデータパケットを前記第１のデバイスと前記第２のデバイスとの間で交換することであって、
前記第１のデバイスは、前記少なくとも１つ以上のデータパケットが前記第２のデバイスから受信されると、少なくとも１つの第１のデータ定義を使用して、データを前記少なくとも１つ以上のデータパケットの１つ以上のペイロードから抽出し、
前記第２のデバイスは、前記少なくとも１つ以上のデータパケットが前記第１のデバイスから受信されると、少なくとも１つの第２のデータ定義を使用して、データを前記少なくとも１つ以上のデータパケットの１つ以上のペイロードから抽出する、ことと
を含む動作を実施させる、コンピュータプログラム。
【請求項２０】
前記第１のデバイスに伝送される１つ以上のデータパケットのペイロードは、前記少なくとも１つの第１のデータ定義に従って生成され、
前記第２のデバイスに伝送される１つ以上のデータパケットのペイロードは、前記少なくとも１つの第２のデータ定義に従って生成される、請求項１９に記載のコンピュータプログラム製品。
【請求項２１】
前記少なくとも１つの第１のデータ定義は、第１のデータ定義識別子と関連付けられ、前記第１のデバイスは、前記第１のデータ定義識別子を使用して、前記少なくとも１つの第１のデータ定義を要求するように構成され、
前記少なくとも１つの第２のデータ定義は、第２のデータ定義識別子と関連付けられ、前記第２のデバイスは、前記第２のデータ定義識別子を使用して、前記少なくとも１つの第２のデータ定義を要求するように構成される、請求項２０に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１６年１０月７日に出願され、“Ｄａｔａ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｓｉｎｇ  Ｄｅｆｉｎｅｄ  Ｄａｔａ  Ｄｅｆｉｎｉｔｉｏｎｓ  Ｉｎ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ”と題された、Ｙａｍａｄａの米国仮特許出願第６２／４０５，３６１号に対する優先権を主張するものであり、その開示の全体を参照により本明細書中に援用するものである。
【０００２】
（技術分野）
本開示は、概して、データ処理に関し、特に、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギー通信および／または任意の他の無線および／または有線通信等の無線通信システムにおけるデータ定義を使用したデータの交換および／または処理に関する。
【背景技術】
【０００３】
現代の電気通信システムは、膨大な数のデバイスにサービス提供しており、これは、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、携帯情報端末、および／または他のデバイスを含むことができる。典型的には、これらのデバイスは、基地局、無線アクセスポイント、サーバ等を含み得る、種々のネットワークを通して、相互に通信する。相互に通信するために、デバイスは、典型的には、例えば、電子メール、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）データ、メッセージ等の情報を含有する、データパケットを送信および／または受信する。データパケットは、制御情報およびユーザデータ、すなわち、ペイロードを含む。制御情報は、ペイロード（例えば、ソースおよび宛先ネットワークアドレス、エラー検出コード、シーケンシング情報等）を送達するためのデータを提供し、パケットヘッダおよびトレーラ内に見出される。
【０００４】
データパケットのペイロードは、データおよび／または命令をデバイスに搬送するために使用されることができる。ある場合には、単一データパケットのペイロードが、伝送されることが所望される全ての情報／データに適合しない場合があり、故に、より多くのデータパケットが、伝送される必要があり得る。他の場合では、データパケットのペイロードが、大量の情報／データを収容し得る。受信側デバイスは、ペイロード内に含有されるデータの抽出が困難であって、それによって、その中に含有されるデータの実装および／または使用を遅延させ得る。したがって、受信側および／または伝送側デバイスに、効率的かつ費用効果的な様式において、データパケットのペイロードを生成し、かつデータをデータパケットの受信されたペイロードから抽出する能力を提供する方法の必要がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
いくつかの実装では、本主題は、複数のデバイス間の通信を提供するためのコンピュータ実装方法に関する。本方法は、通信リンクを第１のデバイスと第２のデバイスとの間に確立することと、１つ以上のデータパケットを第１のデバイスと第２のデバイスとの間で交換することであって、第１のデバイスは、１つ以上のデータパケットが第２のデバイスから受信されると、少なくとも１つの第１のデータ定義を使用して、データを１つ以上のデータパケットの１つ以上のペイロードから抽出し、第２のデバイスは、１つ以上のデータパケットが第１のデバイスから受信されると、少なくとも１つの第２のデータ定義を使用して、データを１つ以上のデータパケットの１つ以上のペイロードから抽出する、こととを含むことができる。確立することおよび交換することのうちの少なくとも１つは、少なくとも１つのコンピューティングシステムの少なくとも１つのプロセッサを使用して実施されることができる。
【０００６】
いくつかの実装では、本主題は、以下の随意の特徴のうちの１つ以上のものを含むことができる。第１のデバイスに伝送される１つ以上のデータパケットのペイロードは、少なくとも１つの第１のデータ定義に従って生成されることができる。第２のデバイスに伝送される１つ以上のデータパケットのペイロードは、少なくとも１つの第２のデータ定義に従って生成されることができる。少なくとも１つの第１のデータ定義は、第１のデータ定義識別子と関連付けられることができる。第１のデバイスは、第１のデータ定義識別子を使用して、少なくとも１つの第１のデータ定義を要求するように構成されることができる。少なくとも１つの第２のデータ定義は、第２のデータ定義識別子と関連付けられることができる。第２のデバイスは、第２のデータ定義識別子を使用して、少なくとも１つの第２のデータ定義を要求するように構成されることができる。
【０００７】
第１のデバイスは、ペアリングデバイスであることができ、第２のデバイスは、通信デバイスであることができる。いくつかの実装では、デバイスは、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継および／または中間デバイス（例えば、それを通してデータパケットが通過するように構成される、デバイス）、エンドポイントデバイス、無線および／または有線スピーカ、無線および／または有線受信機および／または送受信機、基地局（例えば、マクロ、マイクロ、フェムト、ピコ等の基地局）、ルータ、モデム、および／または任意の他のタイプのデバイス、および／または任意のそれらの組み合わせであることができる。
【０００８】
いくつかの実装では、第１のデータ定義は、第２のデバイスによるデータパケットのペイロード内の第１のデータ（そのタイプ、場所等を含む）の含有に基づいて、第１のデバイスによって受信されたデータパケットのペイロード内の第１のデータ（タイプ、場所等を含む）を規定することができる。第２のデータ定義は、第１のデバイスによるデータパケットのペイロード内の第２のデータ（そのタイプ、場所等を含む）の含有に基づいて、第２のデバイスによって受信されたデータパケットのペイロード内の第２のデータ（タイプ、場所等を含む）を規定することができる。
【０００９】
いくつかの実装では、サーバは、第１のデバイスおよび第２のデバイスのうちの少なくとも１つに通信可能に結合されることができる。サーバは、第１のデータ定義および第２のデータ定義のうちの少なくとも１つを生成することができる。サーバは、第１のデータ定義および第２のデータ定義のうちの少なくとも１つを第１のデバイスおよび第２のデバイスのうちの少なくとも１つに提供することができる。
【００１０】
いくつかの実装では、第１のデバイスと第２のデバイスとの間のデータの交換は、第１のデータ定義を使用する第１のデバイスおよび第２のデータ定義を使用する第２のデバイスに依存し得る。代替として、第１のデバイスと第２のデバイスとの間のデータの交換は、第２のデータ定義に依存する第１のデータ定義および／またはその逆に依存し得る。
【００１１】
いくつかの実装では、複数の第１のデバイスは、複数の第２のデバイスに通信可能に結合されることができ、複数の第１のデバイス内の各第１のデバイスは、複数の第１のデータ定義内のその独自の第１のデータ定義を使用することができ、複数の第２のデバイス内の各第２のデバイスは、複数の第２のデータ定義内のその独自の第２のデータ定義を使用することができる。
【００１２】
いくつかの実装では、本方法はさらに、第１のデバイスによって、少なくとも１つの第１のデータ定義に対応する第１のデータ定義識別子を受信することと、第２のデバイスによって、少なくとも１つの第２のデータ定義に対応する第２のデータ定義識別子を受信することとを含むことができる。さらに、本方法はまた、第１のデバイスを使用して、対応する受信された第１のデータ定義識別子を使用して、少なくとも１つの第１のデータ定義を検証することを含むことができる。少なくとも１つの第１のデータ定義の検証に応じて、本方法は、少なくとも１つ以上のデータパケットが第２のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を実施することができる。少なくとも１つの第１のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つ以上のデータパケットが第２のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を防止することができる。加えて、本方法はまた、第２のデバイスを使用して、対応する受信された第２のデータ定義ファイル識別子を使用して、少なくとも１つの第２のデータ定義を検証することを含むことができる。少なくとも１つの第２のデータ定義の検証に応じて、本方法は、少なくとも１つ以上のデータパケットが第１のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を実施することができる。少なくとも１つの第２のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つ以上のデータパケットが第１のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を防止することができる。
【００１３】
いくつかの実装では、本方法はまた、対応する受信された第１のデータ定義識別子を使用して、少なくとも１つの第１のデータ定義を検証することを含むことができる。少なくとも１つの第１のデータ定義の検証に応じて、本方法は、少なくとも１つの第１のデータ定義を使用して、少なくとも１つ以上のデータパケットの１つ以上のペイロードを生成することができる。少なくとも１つの第１のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つの第１のデータ定義を使用した１つ以上のペイロードの生成を防止することができる。本方法はまた、対応する受信された第２のデータ定義識別子を使用して、少なくとも１つの第２のデータ定義を検証することを含むことができる。少なくとも１つの第２のデータ定義の検証に応じて、本方法は、少なくとも１つの第２のデータ定義を使用して、少なくとも１つ以上のデータパケットの１つ以上のペイロードを生成することができる。少なくとも１つの第２のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つの第２のデータ定義を使用した１つ以上のペイロードの生成を防止することができる。
【００１４】
１つ以上のコンピューティングシステムの１つ以上のデータプロセッサによって実行されると、少なくとも１つのデータプロセッサに、本明細書の動作を実施させる、命令を記憶する、非一過性コンピュータプログラム製品（すなわち、物理的に具現化されるコンピュータプログラム製品）もまた、説明される。同様に、１つ以上のデータプロセッサと、１つ以上のデータプロセッサに結合される、メモリとを含み得る、コンピュータシステムもまた、説明される。メモリは、一時的または恒久的に、少なくとも１つのプロセッサに、本明細書に説明される動作のうちの１つ以上のものを実施させる、命令を記憶してもよい。加えて、本方法は、単一コンピューティングシステム内にあるか、または２つ以上のコンピューティングシステム間に分散されるかのいずれかである、１つ以上のデータプロセッサによって実装されることができる。そのようなコンピューティングシステムは、限定ではないが、ネットワーク（例えば、インターネット、無線広域ネットワーク、ローカルエリアネットワーク、広域ネットワーク、有線ネットワーク、または同等物）を経由した、複数のコンピューティングシステムのうちの１つ以上のものの間の直接接続を介した接続を含む、１つ以上の接続を介して、接続されることができ、データおよび／またはコマンドまたは他の命令または同等物を交換することができる。
【００１５】
本明細書に説明される主題の１つ以上の変形例の詳細が、付随の図面および下記の説明に記載される。本明細書に説明される主題の他の特徴および利点は、説明および図面および請求項から明白となるであろう。
【図面の簡単な説明】
【００１６】
本明細書内に組み込まれ、その一部を構成する、付随の図面は、本明細書に開示される主題のある側面を示し、説明とともに、開示される実装と関連付けられた原理のうちのいくつかを説明することに役立つ。
【００１７】
【図１】図１は、本主題のいくつかの実装による、例示的通信システムを図示する。
【００１８】
【図２】図２は、本主題のいくつかの実装による、例示的通信システムを図示する。
【００１９】
【図３】図３は、本主題のいくつかの実装による、例示的通信システムを図示する。
【００２０】
【図４ａ】図４ａは、本主題のいくつかの実装による、図１−３に示されるデバイスのデータ定義ファイルの例示的コンポーネントを図示する。
【００２１】
【図４ｂ】図４ｂは、本主題のいくつかの実装による、図１−３に示されるデバイスのデータ定義ファイルの例示的コンポーネントを図示する。
【００２２】
【図５】図５は、本主題のいくつかの実装による、データ定義ファイルの生成のための例示的開発環境を図示する。
【００２３】
【図６】図６は、本主題のいくつかの実装による、図５に示されるシステムを使用してデータ定義ファイルを生成するための例示的プロセスを図示する。
【００２４】
【図７ａ】図７ａは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセスを図示する。
【００２５】
【図７ｂ】図７ｂは、本主題のいくつかの実装による、データ定義ファイルおよび／またはデータ定義ファイル識別子の交換を含む、２つのデバイス間の通信のための例示的プロセスを図示する。
【００２６】
【図８ａ】図８ａは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセスを図示する。
【００２７】
【図８ｂ】図８ｂは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセスを図示する。
【００２８】
【図９ａ】図９ａは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセスを図示する。
【００２９】
【図９ｂ】図９ｂは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセスを図示する。
【００３０】
【図１０】図１０は、本主題のいくつかの実装による、単一通信デバイスと複数のペアリングデバイスとの間の通信のための例示的システムを図示する。
【００３１】
【図１１】図１１は、本主題のいくつかの実装による、特定のユーザ特有の共有キー（ＵＳＳＫ）に基づいた通信デバイスとペアリングデバイスとの間の通信のための例示的システムを図示する。
【００３２】
【図１２】図１２は、本主題のいくつかの実装による、データパケットのペイロード内の例示的データマッピングを図示する。
【００３３】
【図１３】図１３は、本主題のいくつかの実装による、通信デバイスのプロセッサによる、データパケットのペイロードからのデータの例示的アンパック／抽出を図示する。
【００３４】
【図１４】図１４は、本主題のいくつかの実装による、通信デバイスからペアリングデバイスへのデータの例示的伝送を図示する。
【００３５】
【図１５】図１５は、本主題のいくつかの実装による、デバイス間の通信を提供するためのゲートウェイ（または任意の他の類似デバイス）を使用し得る、例示的システムを図示する。
【００３６】
【図１６】図１６は、本主題のいくつかの実装による、例示的システムを図示する。
【００３７】
【図１７】図１７は、本主題のいくつかの実装による、例示的方法を図示する。
【発明を実施するための形態】
【００３８】
現在利用可能なソリューションの欠点に対処するために、本主題の１つ以上の実装は、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギー通信等の無線通信システムにおいて、データ定義を使用したデータの交換および処理を提供する。
【００３９】
いくつかの実装では、本主題は、１つ以上のデータ定義構造を使用して、無線通信デバイスから受信されたデータパケットまたはデータペイロードを解釈し得る、無線通信システムに関する。いくつかの例示的非限定的実装では、通信システムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギー（「ＢＬＥ」）通信システム、Ｗｉ−Ｆｉシステム、広域ネットワーク（「ＷＡＮ」）、都市規模ネットワーク（「ＭＡＮ」）、ローカルエリアネットワーク（「ＬＡＮ」）、仮想ネットワーク、仮想ローカルエリアネットワーク（「ＶＬＡＮ」）、インターネット、イントラネット、エクストラネット、および／または任意の他の無線および／または有線ネットワークおよび／またはシステムおよび／または任意のそれらの組み合わせのうちの少なくとも１つを含むことができる。本主題システムは、１つ以上のデータ定義構造を使用して、任意のタイプ、サイズ、長さ等を有し、通信システム内の任意のタイプのデバイスから発信され、および／またはそこに着信され得る、１つ以上のデータパケット／ペイロードのコンテンツを処理および／または解釈することができる。サイズ、長さ等は、固定および／または可変であることができる。いくつかの実装では、データ定義構造は、特定のソフトウェアアプリケーションに関連するデータパケット／ペイロードのコンテンツを解釈するために使用されることができるが、ソフトウェアアプリケーションが常駐／起動し得る、通信システム内の具体的デバイスから独立することができる。これは、通信システム内の各デバイスまたは通信システムに追加される新しいデバイスに対し、別個のデータ定義構造を生成する必要なく、通信システム内の複数のデバイス間のデータ定義構造を再使用することを可能にすることができる。いくつかの実装では、データ定義構造は、動作時、動的に編集される、選択される、および／または使用されることができる。本願では、具体的に記載されない限り、用語「データパケット（ｄａｔａ  ｐａｃｋｅｔ、ｄａｔａ  ｐａｃｋｅｔｓ、ｄａｔａ  ｐａｃｋｅｔ（ｓ）」は、１つ以上のデータパケットを意味するために同義的に使用されるであろう。同様に、用語「ペイロード（ｐａｙｌｏａｄ、ｐａｙｌｏａｄｓ、ｐａｙｌｏａｄ（ｓ）」は、１つ以上のペイロード（１つのデータパケットおよび／または複数のデータパケットかどうかにかかわらず）を意味するために同義的に使用されるであろう。
【００４０】
いくつかの実装では、データ定義構造は、具体的ソフトウェアアプリケーションの開発者によって生成されることができ、ソフトウェアアプリケーションに関連するデータパケット／ペイロードを受信する、通信システム内のデバイスに伝送されることができる。いったんデータ定義構造が、デバイスによって受信されると、それは、ソフトウェアアプリケーションに関連するデータパケットをアンパックし、データパケット内に含有される情報を解釈するために使用されることができる。いったん解釈されると、データパケット／ペイロード内に含有される情報および／またはデータは、さらなる処理のために、転送されることができる。
【００４１】
図１は、本主題のいくつかの実装による、例示的通信システム１００を図示する。システム１００は、デバイス１  １０２と、デバイス２  １０４と、サーバ１０６と、データ定義インターフェース１０８とを含むことができる。非限定的例証のみとして、システム１００は、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギー（「ＢＬＥ」）通信システムであることができる。限定ではないが、無線、有線、および／または両方を含む、他のタイプの通信も、使用されることができる。デバイス１０２は、デバイス１０４に通信可能に結合されることができる。デバイス１０２は、ペアリングデバイス、例えば、センサ、パーソナルコンピュータ、携帯電話、スマートフォン、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、および／または任意の他のタイプのデバイスであることができる。
【００４２】
デバイス１０４は、通信デバイス、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、および／または任意の他のタイプのデバイスであることができる。デバイス１０４は、任意の有線および／または無線通信システムを使用して、サーバ１０６に通信可能に結合されることができる。
【００４３】
いくつかの代替実装では、１つ以上のデバイス１０２および／または１０４は、任意のコンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継または中間デバイス（例えば、それを通してデータパケットが通過するように構成される、デバイス）、エンドポイントデバイス、無線および／または有線スピーカ、無線および／または有線受信機および／または送受信機、基地局（例えば、マクロ、マイクロ、フェムト、ピコ等の基地局）、ルータ、モデム、および／または任意の他のタイプのデバイス、および／または任意のそれらの組み合わせであることができる。以下の説明は、「コンピューティングデバイス」および／または「デバイス」を同義的に指し、その全ては、上記の識別されたデバイスの任意および／または全てのものを組み込む。
【００４４】
サーバ１０６もまた、任意の有線および／または無線通信システムを使用して、データ定義インターフェース１０８に通信可能に結合されることができる。データ定義インターフェースは、コンピューティングデバイス上に配置されることができ、これは、データ定義構造を生成するために使用され得る、ユーザインターフェース、例えば、ブラウザを含むことができる。デバイス１０２、１０４、およびサーバ１０６はそれぞれ、少なくとも１つのプロセッサと、プロセッサに結合される少なくとも１つのメモリとを含むことができ、プロセッサは、下記に議論されるように、種々の機能（例えば、データ定義ファイルに基づくデータの抽出、データ定義ファイルの生成、デバイスにデータパケット、データ定義ファイルを伝送させる等）を実施することができる。
【００４５】
非限定的例証的実施例では、説明を容易にするために、通信デバイス１０４は、スマートフォンであることができ、ペアリングデバイス１０２は、温度センサであることができる。理解され得るように、デバイス１０２、１０４は、これらの実施例に限定されず、他のタイプのデバイスも、使用されることができる。デバイスは、任意の無線、有線、および／または任意の他のタイプの接続を介して、通信可能に結合されることができる。センサ１０２は、温度、湿度、日付、時間等を取得し、センサ１０２に供給され得るデータ定義構造に従って、取得される情報をアンパックし（すなわち、ペイロード内に含有される情報を抽出する）、取得される情報を解釈／処理し、ＢＬＥを介して、処理された情報をスマートフォン１０４に提供することができる。スマートフォン１０４は、受信されたデータのその独自の抽出／解釈／処理を実施することができる。
【００４６】
図１に示されるように、デバイス１０２は、データ定義、データ定義ファイル、または構造１（以降、「ＤＤＦ１」）１０３と、通信モジュール１０５（例えば、ＢＬＥ通信モジュール、および／または任意の他の通信モジュール）と、感知モジュール１０７（例えば、センサ）とを含むことができる。いくつかの実装では、モジュール１０７は、テレビ、無線、エンターテインメントシステム、スピーカ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、スマートフォン、無線電話、タブレット、受信機、送信機、送受信機、車両、ドア施錠、セキュリティアクセスポイント（例えば、空港セキュリティゲートウェイ、公共輸送機関改札口等）、および／または任意の他のデバイスおよび／または任意のそれらの組み合わせ等の任意のデバイスまたはデバイスのネットワーク／システム（電子、電気、電気機械、機械、光学等、および／または任意のそれらの組み合わせ）であることができる。感知モジュール１０７は、外部デバイス（例えば、センサ）に結合され、および／または信号をそのような外部デバイスから受信することができる。通信モジュール１０５は、デバイス１０４と通信するために使用され得る、種々のハードウェア、ソフトウェア、および／またはハードウェアおよびソフトウェアの任意の組み合わせを含むことができる。ＤＤＦ１  １０３は、センサ１０７から受信されたデータを含有する、データパケットのペイロードの構造を定義するために使用されることができる。いくつかの例示的実装では、ＤＤＦ１  １０３は、デバイス１０２の製造業者によって事前にロードされることができる。代替の例示的実装では、ＤＤＦ１  １０３は、データ定義インターフェース１０８を介して、データ定義サーバ１１７を使用して、サーバ１０６において作成されることができる。ＤＤＦ１  １０３もまた、サーバ１０６によって、データ定義ファイル記憶装置および／またはデータベース１１９内に記憶されることができる。ＤＤＦ１  １０３は、デバイス１０２、デバイス１０４、および／または両方からの受信要求に応じて、作成されることができる。いくつかの実装では、ＤＤＦ１は、必要に応じて、動的に生成され、デバイス１０２、１０４および／またはサーバ１０６によって受信されることができる。
【００４７】
いくつかの実装では、デバイス２  １０４は、データ定義、データ定義ファイル２、または構造（以降、「ＤＤＦ２」）１０９と、データ解釈モジュール１１１と、通信モジュール１１３（例えば、ＢＬＥ通信モジュールおよび／または任意の他の無線通信モジュール）と、無線通信モジュール１１５とを含むことができる。通信モジュール１１３は、デバイス１０２と通信するために使用され得る、種々のハードウェア、ソフトウェア、および／またはハードウェアおよびソフトウェアの任意の組み合わせを含むことができる。デバイス１０２およびデバイス１０４は、ＢＬＥ通信媒体、無線通信、有線通信、および／または任意の他のタイプの通信を使用して、通信可能に結合されることができる。ＤＤＦ２  １０９は、デバイス１０２から受信されたデータを含有する、データパケットのペイロードをアンパックするために使用されることができる。ＤＤＦ２  １０９は、デバイス１０２と通信するその必要性に基づいて、デバイス１０４のために具体的に作成されることができる。いくつかの例示的実装では、ＤＤＦ２  １０９は、デバイス１０４の製造業者によって事前にロードされることができる（例えば、どのデバイス１０２とデバイス１０４が通信することが意図されているかが把握されているとき）。代替例示的実装では、ＤＤＦ２  １０９は、データ定義インターフェース１０８を介して、データ定義サーバ１１７を使用して、サーバ１０６において作成されることができる。ＤＤＦ２１０９もまた、サーバ１０６によって、データ定義ファイル記憶装置および／またはデータベース１１９内に記憶されることができる。ＤＤＦ２  １０９は、デバイス１０４がデバイス１０２と通信することを意図していることを示し得る、デバイス１０４からの要求の受信に応じて、作成されることができる。サーバの記憶装置１１９は、特定のデバイス１０４が通信することを意図し得る、種々のデバイス１０２についての情報を記憶することができ、したがって、また、それらをデバイス１０４に提供する目的のために、適切なＤＤＦ２を記憶することができる。いくつかの実装では、ＤＤＦ１と同様に、ＤＤＦ２も、必要に応じて、デバイス１０２、１０４、および／またはサーバ１０６によって動的に生成および受信されることができる。
【００４８】
いくつかの実装では、データ定義ファイルは、下記に議論されるように、個別のデバイスによって受信されたデータパケットのペイロードの構造を定義する、情報を含有することができる。非限定的実施例として、情報を温度センサから受信されたデータパケットのペイロードから解釈／抽出するために使用され得る、データ定義ファイルは、データパケットのペイロードの最初の５ビットが、温度のために指定され、ペイロードの以降の１６ビットが、圧力のために指定される等となることを示すことができる。データ定義ファイルはまた、デバイス（例えば、ペアリングデバイス）によって使用され、命令を他のデバイス（例えば、通信デバイス）から受信されたデータパケットのペイロードから抽出することができる。非限定的実施例として、データ定義ファイルは、情報を温度センサによって受信されたデータパケットのペイロードから解釈／抽出するために使用されることができ、最初の１０ビットが、日付および時間を設定するための命令であって、次の１０ビットが、温度センサデバイスを測定モードに切り替えるための命令であること等を示すことができる。データ定義ファイルは、デバイスのデータ解釈モジュール（例えば、ハードウェア、ソフトウェア、および／または任意のそれらの組み合わせ）によって使用され、情報を種々のデバイスから受信されたデータパケットのペイロードから抽出／解釈することができる。データ定義ファイルは、デバイス自体、サーバ、デバイスの製造業者（かつデバイス上に事前にロードされる）、および／または任意の他のエンティティによって生成されることができる。データ定義ファイルは、汎用であって、および／または任意のデバイスまたはデバイスのタイプに関係ないものであることができ、および／または特定のデバイス、特定のタイプのデバイス、種々のデバイスを伴う特定の通信媒体のために具体的に作成されることができ、および／または任意のそれらの組み合わせであることができる。データ定義ファイルは、サーバ、デバイス、および／または両方によって、記憶され、および／またはオンデマンドで利用可能であることができる。データ定義ファイルはまた、所望に応じて更新されることができる。
【００４９】
デバイス１０４が、データパケットをデバイス１０２から受信すると、そのデータ解釈モジュール１１１は、デバイス１０２データパケットペイロード特性に合致し得る、ＤＤＦ２  １０９を使用して、受信されたデータパケット（例えば、センサ１０７からの未加工データ）のペイロードコンテンツを抽出することができる。デバイス１０４の通信モジュール１１３は、データをデバイス１０２および１０４の間で受信および／または伝送する目的のために、通信リンク１１０を介して、デバイス１０２の通信モジュール１０５と通信することができる。したがって、通信モジュール１１３は、データパケットをデバイス１０２から受信することができ、次いで、処理するために、受信されたデータパケットをデータ解釈モジュール１１１に転送することができる。データ解釈モジュール１１１は、ＤＤＦ２  １０９を使用して、受信されたデータパケットを解釈およびアンパックし（すなわち、ペイロード内に含有される情報を抽出する）、受信されたデータパケットのペイロード内に含有されるアンパックされた未加工データをフォーマットすることができる。フォーマットされたデータは、サーバ１０６における記憶のために、通信モジュール１１５を使用して、デバイス１０４からサーバ１０６に伝送されることができる。サーバ１０６は、同様にサーバ１０６に記憶される、ＤＤＦ２  １０９を使用して、デバイス１０４から受信されたフォーマットされたデータ内に含有される情報を解釈することができる。
【００５０】
図２は、本主題のいくつかの実装による、例示的通信システム２００を図示する。システム２００は、システム１００に類似することができ、デバイス１０２と、デバイス１０４と、サーバ１０６と、データ定義インターフェース１０８とを含むことができる。図１に示されるデバイス１０２のコンポーネントに加え、デバイス１０２はまた、デバイス１０４のデータ解釈モジュール１１１に類似する機能を実施するために使用され得る、データ解釈モジュール２１１を含むことができる。いくつかの実装では、一方または両方デバイス１０２、１０４は、１つ以上のデータ解釈モジュールを含むことができる。デバイス１０２のデータ解釈モジュール２１１は、ＤＤＦ１  １０３を使用して、デバイス１０４から受信された情報を解釈および／またはアンパックすることができる。上記に述べられるように、ＤＤＦ１  １０３は、デバイス１０２上に事前にロードされ、および／またはサーバ１０６（および／または任意の他のコンポーネント）によってオンデマンドで生成され、デバイス１０４から受信されたデータを解釈／アンパックするために、デバイス１０２に提供されることができる。
【００５１】
図３は、本主題のいくつかの実装による、例示的通信システム３００を図示する。システム３００は、システム１００および２００に類似することができ、デバイス１０２と、デバイス１０４と、サーバ１０６とを含むことができる。システム２００（図２に示される）と同様に、デバイス１０２および１０４は両方とも、それぞれ、データ解釈モジュール２１１、１１１を含むことができる。図１および２に示されるデバイス１０４のコンポーネントに加え、デバイス１０４はまた、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）プレゼンテーション層３０２を含むことができる。さらに、サーバ１０６は、ＨＴＭＬベースのプレゼンテーション層定義サーバ３０４を含むことができ、これは、ＨＴＭＬベースのプレゼンテーションおよびデータ定義インターフェース３０８に通信可能に結合されることができる。いくつかの実装では、上記のＨＴＭＬコンポーネントは、デバイス１０４上にユーザインターフェースとして提示され得る、ＨＴＭＬ５および／または双方向ＨＴＭＬページを含むことができる。ＨＴＭＬプレゼンテーション層３０２は、ＨＴＭＬフォーマットで提示され得る、テキストの記述、ボタン、グラフ、画像、ビデオ、オーディオ等を含むことができる。ＨＴＭＬベースのプレゼンテーション定義サーバ３０４は、ＨＴＭＬプレゼンテーション層３０２がデバイス１０４上のユーザインターフェース上に表示するための１つ以上のＨＴＭＬファイルをサーブおよび／または伝送することができる（例えば、オンデマンドで）。ＨＴＭＬプレゼンテーション層３０２は、ＨＴＭＬデータをローカルで含み得、および／または表示のために、ＨＴＭＬデータをＨＴＭＬベースのプレゼンテーション定義サーバ３０４から受信し得る（ＨＴＭＬデータをＨＴＭＬプレゼンテーション層３０２内にローカルで記憶する代わりに）、ウェブブラウザであることができる。ＨＴＭＬベースのプレゼンテーション定義サーバ３０４は、ウェブサーバであることができる。ＨＴＭＬベースのプレゼンテーションおよびデータ定義インターフェース３０８は、ＨＴＭＬベースのプレゼンテーション定義サーバ３０４内に記憶され、ＨＴＭＬプレゼンテーション層３０２にオンデマンドで伝送され得る、ＨＴＭＬデータを構築するために使用され得る、インターフェースであることができる。代替として、ＨＴＭＬベースのプレゼンテーションおよびデータ定義インターフェース３０８は、ＨＴＭＬプレゼンテーション層３０２内にローカルで記憶され得る、ＨＴＭＬデータを構築するために使用されることができる。
【００５２】
いくつかの実装では、ＨＴＭＬプレゼンテーション層３０２に基づいて生成される、ユーザインターフェースは、種々のトランザクションを実施し、および／またはデバイス１０４上で動作するためのインターフェースを提供することができる。例えば、ＨＴＭＬプレゼンテーション層３０２は、デバイス１０２および１０４の間の通信を開始し得る、データ同期アイコンまたはボタンを表示することができる。本例示的実装では、図４ａ−ｂに示されるように、ＨＴＭＬプレゼンテーション層３０２は、デバイス１０２の命令定義またはデータ定義と相互作用し、そのペイロードを含む、着信データパケット（すなわち、デバイス１  １０２に伝送されるパケット）を生成し、デバイス１０２が、データ定義ファイル１０３を使用して、その対応するペイロードを含む、発信データパケット（すなわち、デバイス２  １０４に伝送されるパケット）を生成するための要求を伝送することができる。いったん発信データパケットが、デバイス１０４によって受信されると、データ定義ファイル１０９のパケットデータ定義および処理ルールが、適用され、発信データパケットのペイロード内に含有されるデータを抽出／アンパックすることができる。エラーが、通信内に検出されない場合、ＨＴＭＬプレゼンテーション層３０２は、発信データパケットのペイロード内に含有されるようなデバイス１０２から受信されたデータの伝送および表示を実施することができる。いくつかの実装では、デバイス１０４はまた、サーバ１０６に対するゲートウェイ（図３には図示せず）として動作し、デバイス１０２から受信されたデータを提供し、かつその独自の動作を実施する、例えば、相互作用、通信等をそのユーザに提供することができる。理解され得るように、本主題は、データパケット内に含有されるデータの処理から生じる情報を提示する目的のために、上記に説明されるＨＴＭＬベースのコンポーネントの使用に限定されない。任意の他の機構も、データパケット内に含有されるデータの応答（例えば、オーディオ／ビデオ信号の生成、特定の動作モード（例えば、感知、施錠のアクティブ化、セキュリティシステムの解除等）へのデバイスの切替）をトリガするために使用されることができる。任意のインターフェースが、処理された情報を提示する、および／またはそれに作用する目的のために使用されることができる。いくつかの実装では、ＨＴＭＬ定義（および／または任意の他のタイプの定義）が、データパケットの中に組み込まれることができ、それによって、データ定義ファイルは、その中に含有される情報をアンパック／抽出するための種々の命令を含むことができる。
【００５３】
図４ａは、それぞれ、デバイス１０２、１０４のデータ定義ファイル１０３および１０９の例示的コンポーネントを図示する。ＤＤＦ１  １０３は、発信データパケットペイロード４２４を生成するためのデータ定義４１１および処理ルール４１５と、着信データパケットペイロード４２６を処理するためのデータ定義４２１および処理ルール４２３とを含むことができる。図１に示されるように、デバイス１０２は、データ４０３（例えば、センサ出力、および／または任意の他のデバイスによって出力され得る、任意の他のデータ）を取得することができる。データ４０３は、デバイス１０２によって決定されることができ、および／またはデバイス１０２に通信可能に結合される外部デバイスによって提供されることができる。デバイス１０２がセンサである、例示的実装では、センサデータ４０３は、センサ測定値、日付、時間、リアルタイム情報、場所情報、センサ条件情報等を含むことができる。
【００５４】
いくつかの実装では、データ４０３は、データ定義４１１（例えば、データ４０３が解釈／パック／アンパック／等されるべき方法を示す定義）とともに、処理ルール４１５を使用して処理され、デバイス１０４への伝送のために、発信データパケット４２４を生成することができる。パケットの伝送は、任意の無線および／または有線通信リンク（例えば、ＢＬＥ、ＷｉＦｉ等）および／または任意のそれらの組み合わせを介して生じることができる。デバイス１０４は、次いで、そのＤＤＦ２  １０９を使用して、情報をそこからアンパック／抽出することができる。上記の定義およびルールは、サーバ（図４ａには図示せず）および／またはデバイス１０４から受信されることができ、および／またはデバイス１０２の製造業者によって事前にロードされることができる。
【００５５】
いったんパケット４２４が、デバイス１０４によって受信されると、デバイス１０４は、そのデータ定義４２９および処理ルール４３１を使用して、データをパケット４２４からアンパック／抽出し、デバイス１出力４３７を生成することができる。データ定義４２９は、データをパケット４２４から抽出する方法に関する情報を含むことができ、特定のデバイス１０２に特有であることができる。定義４２９およびルール４３１は、サーバ（図４ａには図示せず）から受信されることができ、および／またはデバイス１０４によって生成されることができ、および／またはデバイス１０４の製造業者によって事前にロードされることができる。
【００５６】
いくつかの実装では、ＤＤＦ２  １０９はまた、データ定義４３３を含むことができ、これは、着信データパケット４２６がデバイス１０２に伝送されるためのペイロードを生成するために使用されることができる。着信データパケットペイロード４２６は、デバイス１入力データ４３９を使用して生成されることができる。データ４３９は、非限定的実施例として、時間／日付をデバイス１０２上に設定する、デバイス１０２を測定モードに切り替える等のための命令を含むことができる。データパケット４２６は、無線、有線、および／または任意の他のタイプの通信および／または任意のそれらの組み合わせを使用して、デバイス１０２に伝送されることができる。いったんデータパケット４２６が、デバイス１０２によって受信されると、処理ルール４２３は、データ定義４２１とともに、命令をデータパケット４２６からアンパック／抽出し、入力データ４０９（例えば、センサ入力および／または任意の他のデバイスのための任意の他の入力であり得る）を生成するために使用されることができる。
【００５７】
いくつかの実装では、下記にさらに詳細に説明されるであろうように、作成および／または使用され得る、各データ定義ファイルは、１つ以上の一意のデータ定義ファイル識別子（「ＤＤＦ  ＩＤ」）と関連付けられることができる。データ定義ファイル識別子は、特定のデータ定義ファイルのために規定されることができ、データ定義ファイルが作成された時点で、データ定義ファイルのために生成されることができ、および／またはデバイス１０２、１０４の製造業者によって事前にロードされることができる（および／またはデバイス１０２、１０４と通信し得る、外部デバイスによって提供されることができる）。いくつかの実装では、ＤＤＦ  ＩＤは、デバイスによって使用され（デバイスおよび／またはデバイスと関連付けられたユーザの認証に続いて）、ＤＤＦ  ＩＤと関連付けられた具体的データ定義ファイルを要求することができる。ＤＤＦは、ＤＤＦ  ＩＤを受信するデバイスによって検証されることができ、適切なデータ定義ファイルが、要求側デバイスに提供されることができる。いくつかの実装では、ＤＤＦ  ＩＤはまた、データ定義ファイルを作成し、および／またはデータをデータパケットペイロードからアンパック／抽出するために使用され得る、データ定義および／または処理ルールを選択および／または識別するために使用されることができる。
【００５８】
図４ｂ（図４ａの例示的変形例であり得る）は、それぞれ、デバイス１０２、１０４のデータ定義ファイル１０３および１０９の例示的コンポーネントを図示する。ＤＤＦ１  １０３は、未加工データ定義４１０と、発信パケットペイロード定義４１２と、データコンパイル定義４１４と、処理ルール４１６と、データ属性定義４１８と、着信パケットペイロード定義４２０と、データ／命令変換定義４２２とを含むことができる。図１および４ｂに示されるように、デバイス１０２は、未加工データ４０２およびデータ属性４０６を取得することができ、これは、いくつかの実装では、デバイス１０２が入力を要求し、および／またはセンサがデバイス１０２へのデータおよび属性の伝送を開始すると、事前に定義されることができる。いくつかの実装では、適切なデータ定義ファイルは、未加工データ４０２および／またはデータ属性４０６に基づいて選択されることができる。いくつかの実装では、センサ出力４０３（図４ａに示されるように）は、以下の未加工データ４０２およびデータ属性４０６のうちの少なくとも１つを含むことができる。非限定的実施例として（および理解を容易にするために）、これら（すなわち、未加工データ：データ属性）は、温度：測定の時間；光度：測定の時間および条件、ドア施錠状態：ドア施錠ＩＤ、製造業者、時間；ドア施錠バイオメトリック読取値：ドア施錠ＩＤ、製造業者、時間；および／または任意のその他を含むことができる。理解され得るように、他のタイプの未加工データ：データ属性の組み合わせも、可能性として考えられる。
【００５９】
いくつかの実装では、未加工データ定義４１０は、未加工データヘッダ、構成（例えば、未加工データビット長、含まれる未加工データの数等）についての種々のデータおよび／または情報等を含むことができる。データ属性定義４１８は、未加工データ４０２およびデータ属性４０６、データ属性ビット長等の組み合わせにおいて、データ属性の場所についての種々のデータおよび／または情報を含むことができる。いくつかの実装では、未加工データ４０２および／またはデータ属性４０６は、相互から別個および／または同時に、デバイス１に提供されることができる。いくつかの実装では、データコンパイルコンポーネント４１４は、そのように要求される場合、受信された未加工データおよびデータ属性を組み合わせることができる。
【００６０】
いくつかの実装では、データコンパイルコンポーネント４１４は、発信データパケットペイロード４２４を生成するために、処理ルールコンポーネント４１６への１つ以上の命令（例えば、関数呼出し、トリガ等）を生成することができる。発信データパケットペイロード４２４のコンテンツおよび構成は、発信パケットペイロード定義４１２を使用して規定されることができる。いくつかの実装では、データコンパイルコンポーネント４１４はまた、発信データパケットペイロード４２４を生成する目的のために処理される必要があり得る、全ての必須情報、データ、属性、状態等を集める／コンパイルすることができる。
【００６１】
いくつかの実装では、処理ルールコンポーネント４２２は、着信パケットペイロード定義コンポーネント４２０によって提供されるデータおよび／または情報に基づいて、着信データパケットペイロード４２６を処理することによって、命令４０８を生成することができる。非限定的実施例として、着信データパケットペイロードは、温度測定を開始する、大気圧の測定を開始する、１つ以上のセンサ上のタイマをリセットする等、および／または任意のそれらの組み合わせのために、時間に関連するデータおよび／または情報を含むことができる。着信パケットペイロード定義４２０に基づいて、処理ルールコンポーネント４１６は、センサが解釈および／または実行し得る、１つ以上の命令（例えば、コード）４０８を生成することができる。代替として、処理ルールコンポーネント４２２は、センサが個々に解釈および／または実行し得る、個々の命令４０８を生成することができる。
【００６２】
いくつかの例示的非限定的実装では、着信データパケットペイロード４２６は、ドアを解錠するために合致されるべきユーザのバイオメトリックシグネチャを規定する、暗号化されたバイオメトリック認証認可コードの使用を通して、ドアを解錠するための命令を含むことができる。処理ルールコンポーネント４２２は、着信パケットペイロード定義４２０を使用して、データおよび／または情報（例えば、ドアを解錠するための命令、バイオメトリックシグネチャ、ユーザの識別情報等）を解析し、ドア施錠に対する１つの命令を生成することができ、命令は、解析されたデータおよび／または着信データパケットペイロード４２６から取得される情報の組み合わせを含有する。代替として、別個の命令が、解釈および実行のために、ドア施錠に対して個々に提供されることができる。他の例示的実装では、着信データパケットペイロード４２６は、自動車が、命令４０８の受信に応じて、座席の調節、計器パネル表示、エンターテインメントシステム設定、空調、点火開始等を実施し得るように、自動車運転者識別子を含むことができる。理解され得るように、上記は、着信命令およびその使用の非限定的例証的実施例である。さらに、本主題は、上記の例示的実装に限定されないことを理解されたい。
【００６３】
未加工データ４０２および／またはデータ属性４０６は、デバイス１０２によって決定されることができ、および／またはデバイス１０２に通信可能に結合される外部デバイスによって提供されることができる。デバイス１０２がセンサである、例示的実装では、未加工データ４０２は、センサ未加工データであることができ、センサ測定値、日付、時間等を含むことができる。データ属性４０６は、リアルタイム情報、場所情報、センサ条件情報等を含むことができる。
【００６４】
いくつかの実装では、未加工データ４０２およびデータ属性４０６は、未加工データ４０２が解釈／パック／アンパック／等されるべき方法を定義する情報を含み得る、未加工データ定義４１０と、データ属性４０６が解釈／パック／アンパック／等されるべき方法を定義する情報を含み得る、データ属性定義４１８とともに、データコンパイル４１４に提供されることができる。データコンパイル４１４は、未加工データ定義４１０およびデータ属性定義４１８を使用して、未加工データ４０２、データ属性４０６からの情報をコンパイルし、および／または組み合わせることができる。コンパイルされた情報は、次いで、発信パケットペイロード定義４１２に基づいて、１つ以上の処理ルール４１６を使用して、さらに処理され、定義４１０、４１２、４１８、および処理ルール４１６を使用して形成されるペイロードを含有する、発信データパケット４２４を生成することができる。発信データパケット４２４は、次いで、デバイス１０４に伝送される。パケットの伝送は、任意の無線および／または有線通信リンク（例えば、ＢＬＥ、ＷｉＦｉ等）および／または任意のそれらの組み合わせを介して生じることができる。デバイス１０４は、次いで、そのＤＤＦ２  １０９を使用して、情報をそこからアンパック／抽出することができる。上記の定義およびルールは、サーバ（図４ａには図示せず）および／またはデバイス１０４から受信されることができ、および／またはデバイス１０２の製造業者によって事前にロードされることができる。いくつかの実装では、データ定義ファイルのためのデータ定義ファイル識別子は、デバイス１  １０２が実施するために提供および／または命令され得る、情報／データ／機能性／関数／等に基づいて規定されることができる。例えば、データ属性４０６および／または着信データパケットペイロード４２６は、デバイス１  １０２が使用することになる、具体的データ定義ファイルを識別し得る、適切なＤＤＦ  ＩＤを含むことができる。デバイス１  １０２は、供給されるＤＤＦ  ＩＤを使用して、正しいデータ定義ファイルが、未加工データ４０２／データ属性４０６および／または着信データパケットペイロード４２６として受信し得る入力に適用されることになることを確認することができる。いくつかの実装では（下記にさらに議論されるであろうように）、ＤＤＦ  ＩＤがデバイスが受信済みおよび／またはすでに記憶しているＤＤＦに合致しない、またはデバイスが正しいＤＤＦまたは必要とされ得る任意のＤＤＦを有していない、シナリオでは、デバイスは、別のまたは第２のデバイスおよび／またはサーバに正しいＤＤＦを要求するための要求を伝送することができる。第２のデバイスまたはサーバのいずれも、正しいＤＤＦを有していない場合、ＤＤＦは、動的に生成されることができる（例えば、デバイスによって提供され、および／またはアンパックされる必要があり得るデータパケットペイロードと関連付けられ得る、パラメータに基づいて）。第２のデバイスはまた、第１のデバイスの要求を渡し、および／または必須ＤＤＦを伝送する際、さらに別の（第３の）デバイスおよび／またはサーバとの中間装置としての役割を果たすことができる。いくつ���の実装では、デバイス１および２によって共有され得る、共有キー（下記に議論されるように）は、使用されることになるデータ定義ファイルに関する適切な情報を提供するために使用されることができる。代替として、共有キーは、デバイスによって使用されるべき特定のデータ定義ファイルを規定し得る、ＤＤＦ  ＩＤを組み込むことができる。
【００６５】
いったんパケット４２４が、デバイス１０４によって受信されると、デバイス１０４は、そのパケットデータ定義４２８および処理ルール４３０を使用して、データをパケット４２４からアンパック／抽出し、デバイスデータ１  ４３６を生成することができる。データ定義４２８は、データを受信されたパケット４２４から抽出する方法に関する情報を含有することができ、特定のデバイス１０２に特有であることができる。定義４２８およびルール４３０は、サーバ（図４ａには図示せず）から受信されることができ、および／またはデバイス１０４によって生成されることができ、および／またはデバイス１０４の製造業者によって事前にロードされることができる。
【００６６】
いくつかの実装では、ＤＤＦ２  １０９はまた、デバイス１ペイロード定義４３２を含むことができる。デバイス１ペイロード定義４３２を伴う処理ルール４３４は、着信データパケット４２６がデバイス１０２に伝送されるためのペイロードを生成するために使用されることができる。着信データパケットペイロードは、デバイス１命令４３８に基づいて、準備されることができる。命令は、非限定的実施例として、デバイス１０２に関する新しい時間／日付データを含む、時間／日付を設定する、デバイス１０２を測定モードに切り替える等のための命令を含むことができる。データパケット４２６は、無線、有線、および／または任意の他のタイプの通信、および／または任意のそれらの組み合わせを使用して、デバイス１０２に伝送されることができる。いったんデータパケット４２６が、デバイス１０２によって受信されると、処理ルール４２２は、着信ペイロードパケット定義４２０とともに、命令をデータパケット４２６からアンパック／抽出し、命令４０８を生成するために使用されることができる。
【００６７】
上記と同様に、デバイス２  １０４によって使用されるべき特定のＤＤＦ２を識別する、データ定義ファイル識別子が、デバイス２  １０４に供給されることができる。例えば、発信データパケットペイロード４２４（複数のデータパケットを経由して伝送されることができる）は、適切なＤＤＦ２  ＩＤを含み、デバイス２  １０４が、受信された発信データパケットペイロード４２４を正しく処理することを確実にすることができる。複数のデータパケットが１つのデータペイロードを伝送する場合、ＤＤＦ識別子は、データパケットの１つ以上のまたは全てのもの内に含まれることができ、ＤＤＦ識別子は、ペイロード内の全てのデータパケットを参照し、適切なデータ定義が全てのパケットに適用されることを確実にすることができる。いくつかの実装では、適切なＤＤＦ  ＩＤがデバイスによって受信されることを確実にするために、デバイス１命令４３８は、デバイス１およびデバイス２の両方のためのＤＤＦ識別子を含むことができる。いったんデバイス２によって受信されると、デバイス２のためのＤＤＦ２識別子は、デバイス２内に留まり、デバイス１のためのＤＤＦ１識別子は、着信データパケットペイロード４２６の中に含まれることができる（これはまた、複数のデータパケットにわたって伝送されることができ、それによって、ＤＤＦ１  ＩＤは、データパケットの１つ以上のものまたは全てのものの中に組み込まれることができ、および／または伝送中の全てのパケットを参照することができる）。
【００６８】
いくつかの実装では、正しくないＤＤＦ  ＩＤ（例えば、ＤＤＦ  ＩＤがＤＤＦに合致しない）が、デバイスのうちの１つ以上のもの上に見出される場合（および／またはＤＤＦに合致しないＤＤＦ  ＩＤが、デバイスのうちの１つ以上のものに供給される場合）、デバイスは、相互および／またはサーバ（図４ｂには図示せず）と通信し、適切なＤＤＦを要求することができる。例えば、デバイス１が、ＤＤＦに合致しないＤＤＦ  ＩＤを受信した場合、デバイス１は、デバイス２と通信することができ、これは、順に、適切なＤＤＦ  ＩＤおよび／またはＤＤＦをサーバおよび／またはデバイス１および／またはデバイス２と通信可能に結合され得る任意の他のエンティティから要求することができる（代替として、デバイス１は、サーバ／エンティティと直接通信することができる）。いくつかの実装では、デバイス１および／または２は、両デバイスのためのデータ定義ファイル（すなわち、ＤＤＦ１およびＤＤＦ２）および／または両データ定義ファイルのためのデータ定義ファイル識別子（すなわち、ＤＤＦ１  ＩＤおよびＤＤＦ２  ＩＤ）を記憶することができ、および／または提供されることができる（要求に応じて、および／または自動的に、および／または製造業者によって）。このように、１つのデバイスは、サーバおよび／または別のエンティティを伴わずに、適切なＤＤＦおよび／またはＤＤＦ  ＩＤを他のデバイスから要求することができる。いくつかの実装では、ＤＤＦ  ＩＤ（および／またはＤＤＦ）は、デバイス１および２によって共有され得る、共有キー（下記に議論されるように）内に含まれ、および／またはそれによって参照されることができ、それによって、ＤＤＦ  ＩＤ（および／またはＤＤＦ）は、共有キーとともに、および／または共有キーの共有に続いて、提供されることができる。いくつかの実装では、ＤＤＦおよび／またはＤＤＦ  ＩＤは、１つ以上のデバイスおよび／またはサーバ／エンティティ（１つ以上のデバイスに通信可能に結合される）によって更新されることができる。ＤＤＦおよび／またはＤＤＦ  ＩＤの更新の決定に応じて、更新されたＤＤＦおよび／またはＤＤＦ  ＩＤを受信したデバイス／サーバ／エンティティは、適切な通知を他のデバイス／サーバ／エンティティに伝送し、システム内の全てのコンポーネントが最新情報を有することを確実にすることができる。
【００６９】
図５は、本主題のいくつかの実装による、データ定義ファイルの生成のための例示的開発環境５００を図示する。環境５００は、上記に議論される通信システム（例えば、それぞれ、図１−３に示されるシステム１００、２００、３００）の設計時点で実装されることができる。環境５００は、デバイス１開発環境５０２と、デバイス２開発環境５０４と、インターフェース１０８に通信可能に結合される、サーバ１０６とを含むことができる。環境５０２は、ＤＤＦ１  ５０３（対応するＤＤＦ１  ＩＤを有する）と、ＤＤＦ１開発モジュール５０７と、通信モジュール５０５とを含むことができる。通信モジュール５０５は、データを外部デバイス（例えば、図５に示されるようなセンサデバイス）から受信することができる。モジュール５０５および５０７は、ハードウェア、ソフトウェア、および／または任意のそれらの組み合わせを含むことができる。モジュール５０７は、サーバ１０６から受信された情報に基づいて、ＤＤＦ１  ５０３を生成するために使用されることができる。
【００７０】
環境５０４は、ＤＤＦ２  ５０９（対応するＤＤＦ２  ＩＤを有する）と、ＤＤＦ２開発モジュール５０６と、通信モジュール５１３と、無線通信モジュール５１５とを含むことができる。通信モジュール５０７は、データを通信モジュール５０５から受信することができる。無線通信モジュール５１５は、サーバ１０６に通信可能に結合されることができる。サーバ１０６は、データ定義ファイル、デバイス１０２、１０４についての情報、および／またはデータ定義ファイルを生成するために使用され得る、任意の他の情報を記憶し得る、サーバデータベース５１７を含むことができる。モジュール５０６および５１３は、ハードウェア、ソフトウェア、および／または任意のそれらの組み合わせを含むことができる。モジュール５０６は、サーバ１０６から受信された情報に基づいて、ＤＤＦ２  ５０９を生成するために使用されることができる。いくつかの実装では、サーバ１０６はまた、対応するＤＤＦ１およびＤＤＦ２とともに、ＤＤＦ１  ＩＤおよびＤＤＦ２  ＩＤを記憶および／または提供されることができる。
【００７１】
いくつかの実装では、ＤＤＦ１および／またはＤＤＦ２（個別のＤＤＦ  ＩＤとともに）は、デバイス１０２、デバイス１０４、サーバ１０６（例えば、インターフェース１０８、データベース５１７等を使用して）のうちの少なくとも１つを使用して、および／または任意の他のデバイスを使用して（例えば、それらは、１つ以上のデバイス上に事前にロードされることができる）、生成されることができる。ＤＤＦ１および／またはＤＤＦ２（個別のＤＤＦ  ＩＤとともに）は、個別のデバイス１０２、１０４、および／または両デバイスに伝送され、および／またはその上にインストールされることができる。これは、能力を受信および／または伝送し得る、開発モジュール５０６および／または５０７を使用して、遂行されることができる。加えて、両モジュール５０６、５０７はまた、データ定義および／または処理ルール内のエラーを検出し、かつそのようなエラーを示すレポートを生成および伝送することができる。エラーは、図６に関して下記に議論されるように、確認および／または試験プロシージャを通して補正されることができる。
【００７２】
図６は、本主題のいくつかの実装による、図５に示されるシステム５００を使用してデータ定義ファイルを生成するための例示的プロセス６００を図示する。プロセス６００は、通信システム（例えば、それぞれ、図１−３に示されるシステム１００、２００、３００）の設計時点で実施されることができる。プロセス６００は、図５に示されるように、インターフェース１０８等のブラウザインターフェースおよびサーバ１０６等のサーバ（例えば、クラウドサーバ）を介して、開始されることができる。開発者は、データ定義ファイルを開発するための開発アカウントを開始および／または作成および／または設定することができる。６０２では、通信データ構造／インターフェースが、センサ５０１（および／またはデバイス１の中に組み込まれ、および／またはデバイス１に通信可能に結合され得る、任意の他のデバイス）と通信モジュール５０５との間の通信のために規定されることができる。通信データ構造／インターフェースはまた、通信モジュール５１３とデバイス２との間に規定されることができる。いくつかの実装では、５０５および５１３における通信モジュールは、アドバタイジングパケットのブロードキャスト、バック接続要求の伝送等を含む、低レベル機能（Ｂｌｕｅｔｏｏｔｈ（登録商標）仕様に規定されるもの等）を実行するための内蔵機能性を含むことができる。ある場合には、パケットペイロード構造を規定する、事前に設定された通信プロファイル（例えば、事前に設定されたＢＬＥプロファイル）が、使用されることができる。これらのプロファイルは、典型的には、固定され、相互運用性を確実にするために、改変されることができない。非限定的実施例として、血圧モニタが、標準ＢＬＥプロファイルを使用する場合、スマートフォンアプリケーションは、データを血圧モニタから受信するために使用されるＢＬＥ標準プロファイルのみを把握する必要があり得る。そのようなプロファイルは、血圧モニタが伝送するであろう、全ての情報を網羅するように設計されるが、多くの場合、そのようなＢＬＥプロファイルは、十分ではないであろう。本主題は、そのような標準ＢＬＥプロファイルの使用に対するソリューションを提供する。特に、リアルタイム環境において、コーディング、コードのコンパイル／統合、検証、および試験を簡略化することによって、データペイロード構造を設計および構築する能力を提供する。本主題の別の利点は、より単純、より高速、かつより安価な方法において、コネクティビティ機能開発を可能にすることである。
【００７３】
６０４では、データ定義モジュール５０７および５０６が、開始／設定されることができ、これは、適切な開発ソフトウェアアプリケーションを個別の開発環境５０２および５０４にサーバ１０６から作成および／または提供することを含むことができる。さらに、ＤＤＦ  ＩＤが、生成され、および／または割り当てられ／ＤＤＦと関連付けられることができ（またはその逆）、ＤＤＦに対する変更／改定を追跡する目的のために使用されることができる。そのような開発ソフトウェアアプリケーションは、インターフェース１０８を使用して作成されることができ、これは、それらを、それぞれ、デバイス１および２の開発環境５０２および５０４に伝送することができる。加えて、データ定義ファイル５０３および５０９もまた、生成されることができ、それぞれ、デバイス１および２の開発環境５０４、５０６に伝送されることができる。いったんデータ定義ファイルが、開発環境に伝送されると、開発プロセス６００は、デバイス１および２内で別個に進められることができる。
【００７４】
デバイス１開発環境では、６０６において、デバイス１の開発環境が、確立されることができる。これは、通信モジュール５０５（例えば、ＢＬＥ通信モジュール）および適切な開発ボードの選択を伴い得る。６０８では、接続が、センサデバイス５０１（および／またはデバイス１の中に組み込まれ、および／またはデバイス１に通信可能に結合され得る、任意の他のデバイス）と通信モジュール５０５との間に確立されることができる。６１０では、デバイス１のデータ定義ファイル（すなわち、ＤＤＦ１）が、通信モジュール５０５を使用して、ダウンロードされることができる。ＤＤＦ１は、サーバ１０６からダウンロードされることができる。代替の例示的実施形態では、ＤＤＦ１は、デバイス２からダウンロードされることができる。
【００７５】
デバイス２開発環境では、６１２において、デバイス２の開発環境が、確立されることができる。これは、通信デバイス（例えば、スマートフォン、タブレット、スマートスピーカ、本明細書に開示される任意の他のデバイス等）の選択を伴い得る。６１４では、データ定義ファイル２開発モジュール５０６が、開始／設定されることができる。これは、開発ソフトウェアアプリケーションをサーバ１０６からダウンロードすることを伴い得る。６１６では、デバイス２のデータ定義ファイル（すなわち、ＤＤＦ２）が、通信モジュール５１５を使用して、ダウンロードされることができる。ＤＤＦ２は、サーバ１０６からダウンロードされ、デバイス２上にインストールされることができ、これは、通信モジュール５１５の使用を伴わずに遂行されることができる。いくつかの実装では、認証（例えば、ログイン）が、ＤＤＦ１および／またはＤＤＦ２および／または個別の開発ソフトウェアアプリケーションをダウンロードするために要求され得る。これは、ＤＤＦ１およびＤＤＦ２の非認可アクセスおよび使用を防止することができる。代替の例示的実施形態では、ＤＤＦ１は、どのＤＤＦ１がどのＤＤＦ２と併用されるかを追跡する等のために、デバイス２にサーバ１０６および／またはデバイス１からダウンロードされることができる。
【００７６】
いったんＤＤＦ１およびＤＤＦ２がデバイス１および／または２にダウンロードされると、開発プロセス６００は、６１８−６２４において、確認および試験に進むことができる。６１８では、通信が、それぞれ、デバイス１および２の開発モジュール５０７および５０６の間に確立されることができる。本通信は、それぞれ、デバイス１、２の通信モジュール５０５および５１３（例えば、ＢＬＥ通信モジュールおよび／または任意の他の無線および／または有線モジュール）を使用して確立されることができる。６２０では、通信が、開発環境モジュール５０６とサーバ１０６との間に確立されることができる。これは、通信モジュール５１５（例えば、無線および／または有線通信モジュール）を使用して遂行されることができる。６２２では、いったん適切な開発モジュールとサーバとの間の通信リンクが、確立されると、データ転送および命令コンテンツの確認が、実施されることができる。加えて、種々のシナリオの試験が、通信の完全性および／またはロバスト性を確実にするために起動されることができる。試験は、デバイスが、適切なＤＤＦを使用して、データを適切にパックし、および／またはデータをデータパケットから適切にアンパック／抽出することが可能であることを確実にすることを伴い得る。いったん試験が正常に完了されると、ＤＤＦ１およびＤＤＦ２は、６２４において、ランタイム時（すなわち、生産システムにおいて）、デバイス１および２によって使用されることができる。いくつかの実装では、プロセス６００は、１つのデバイスおよび／またはコンピューティングシステム（例えば、分散型コンピューティングシステム、クラウド等）上でシミュレートされることができる。デバイスおよび／またはコンピューティングシステムは、デバイス１およびデバイス２および／またはデバイス１および２に通信可能に結合されるサーバと別個であることができる。この場合、ＤＤＦ１およびＤＤＦ２は、そのようなデバイスおよび／またはコンピューティングシステムによって生成および／または試験され、次いで、デバイス１および／または２および／またはサーバに供給されることができる。さらに、ＤＤＦと関連付けられたＤＤＦ  ＩＤもまた、生成され、および／またはデバイスに供給されることができる。
【００７７】
図７ａは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセス７００を図示する。プロセス７００は、デバイス１（例えば、ペアリングデバイス）１０２と、デバイス２（例えば、通信デバイス）１０４と、サーバ１０６との間の通信を含むことができる。本プロセスでは、デバイス１０２は、その上に事前にロードされたデータ定義ファイル１  １０３をすでに有していることができ、デバイス１０４は、デバイス１０２と通信することを所望する、新しいデバイスであることができる。図７ａの上部に示されるように、デバイス１０４（および／またはそのユーザ）は、サーバ１０６に、データ定義ファイル２  １０９を提供するように要求することができる。これは、デバイス１０４が適切な証明書をサーバ１０６に提供すること（例えば、デバイス１０４のユーザインターフェース上でのサーバ１０６上に記憶されるユーザのアカウントへのログインのエントリおよび／または任意のそのような証明書の自動的提供（例えば、ログイン証明書の手動エントリを伴わない））に応じて遂行されることができる。証明書の確認に応じて、サーバ１０６は、ＤＤＦ２  １０９をデバイス１０４に伝送することができる。代替として、証明書は、ＤＤＦ２  １０９をサーバから受信するために必要とされなくてもよい。また、上記に述べられるように、ＤＤＦ２  １０９は、デバイス１０４上に事前にロードされることができる。いくつかの実装では、ＤＤＦ１および／またはＤＤＦ２は、データを相互から受信された１つ以上のデータパケットのペイロードから抽出するために、デバイス１および２による使用のために具体的に設計されることができる（例えば、データが複数のデータパケット／ペイロード内で受信される場合）。代替として、ＤＤＦ１および／またはＤＤＦ２は、汎用であることができる。いったんデバイス２が、ＤＤＦ２を受信すると、通信リンクが、図７ａの下部によって示されるように、デバイス１とデバイス２との間に確立されることができる（例えば、ＢＬＥ通信リンク、無線通信リンク、有線通信リンク、および／または任意の他のタイプのリンク）。ＢＬＥ通信環境等のいくつかの実装では、デバイス１０２は、要求されるＤＤＦ２についての情報を含み得る、アドバタイジングデータパケットをブロードキャストするように構成されることができる。ブロードキャストアドバタイジングデータパケット内に含有される情報に基づいて、デバイス１０４は、ＤＤＦ２をサーバ１０６から要求することができる。ある場合には、ＤＤＦ２に関する情報もまた、いったんデバイス１０２および１０４の間の接続が確立されると、データパケットによって提供されることができる。アドバタイジングパケットブロードキャストの例示的実装は、２０１６年１月１１日に出願され、「Ｓｅｌｅｃｔｉｖｅ  Ｐａｉｒｉｎｇ  ｏｆ  Ｗｉｒｅｌｅｓｓ  Ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｓｈａｒｅｄ  Ｋｅｙｓ」と題されたＹａｍａｄａの共同所有同時係属中の米国特許出願第１４／９９２，６４２号（２０１５年７月２１日に出願された米国仮出願第６２／１９４，９３９号の優先権を主張するものである）（本開示は、参照することによってその全体として本明細書に組み込まれる）に議論される。理解され得るように、システム７００およびシステム７００によって実施されるプロセスは、限定ではないが、任意のコンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継または中間デバイス（例えば、それを通してデータパケットが通過するように構成される、デバイス）、エンドポイントデバイス、無線および／または有線スピーカ、無線および／または有線受信機および／または送受信機、基地局（例えば、マクロ、マイクロ、フェムト、ピコ等の基地局）、ルータ、モデム、および／または任意の他のタイプのデバイス、および／または任意のそれらの組み合わせを含む、任意のタイプのデバイスを含み得る、任意の通信環境内に実装されることができる。
【００７８】
いくつかの実装では、デバイス１および／または２および／またはサーバ１０６は、一方または両方または他のデータ定義ファイルを含み、および／または提供されることができる。デバイス／サーバは、そのようなＤＤＦを他のデバイス（例えば、要求に応じて）に提供することができる。例えば、図７ｂに示されるように、デバイス１は、ＤＤＦ１をデバイス２から要求してもよく（例えば、デバイス１は、ＤＤＦ１が供給されていない、生成されていない、破損している等に起因して、ＤＤＦ１を有していない場合がある）、同様に、デバイス２は、ＤＤＦ２をデバイス１から要求してもよい。デバイス１および／またはデバイス２および／またはサーバは、適切なＤＤＦ  ＩＤを使用して、正しいデータ定義ファイルがそれらに供給されたことを決定することができる。ＤＤＦ  ＩＤは、図７ｂに示されるように、各デバイス／サーバに事前に供給されることができ、および／または他のデバイス／サーバから要求されることができる。さらに、本願における議論は、１つのデバイスがデータ定義ファイルを別のデバイスから要求することを図示する（例えば、図８ａに示されるように、例えば、デバイス１がＤＤＦ１をデバイス２から要求し、これは、順に、それをサーバ１０６から要求する）が、本主題のシステム内の１つまたは全てのデバイスは、システム内の他のデバイスのためのデータ定義ファイルおよび／またはデータ定義ファイル識別子を生成／記憶することができ、および／またはそれを提供されることができ、および／または要求することができることを理解されたい。
【００７９】
図８ａは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセス８００を図示する。プロセス８００（プロセス７００に類似する）は、デバイス１（例えば、ペアリングデバイス）１０２と、デバイス２（例えば、通信デバイス）１０４と、サーバ１０６との間の通信を含むことができる。本プロセスでは、デバイス１０２および１０４は、相互に通信することを所望する、新しいデバイスであることができる。図８ａの上部に示されるように、デバイス１０４（および／またはそのユーザ）は、サーバ１０６に、ＤＤＦ１  １０３およびＤＤＦ２  １０９を提供するように要求することができる。これは、デバイス１０４が適切な証明書（例えば、デバイス１０４のユーザインターフェース上でのサーバ１０６上に記憶されるユーザのアカウントにログインするためのエントリ）をサーバ１０６に提供することに応じて遂行されることができる。証明書の確認に応じて、サーバ１０６は、ＤＤＦ１  １０３、ＤＤＦ２  １０９をデバイス１０４に伝送することができる。代替として、証明書は、ＤＤＦ２  １０９をサーバから受信するために必要とされなくてもよい。
【００８０】
いったんデバイス１０４が、ＤＤＦ１およびＤＤＦ２を受信すると、デバイス１０４は、図８ａの中央部分によって示されるように、デバイス１０２との通信を開始し（例えば、無線通信を経由して、および／または任意の他の方法において）、ＤＤＦ１  １０３をデバイス１０２に伝送することができる。いったんデバイス１０２が、ＤＤＦ１  １０３を受信すると、デバイス１０４は、図８ａの下部によって示されるように、ＤＤＦ２  １０９を使用して、デバイス１０２との通信を開始することができる。理解され得るように、システム８００およびシステム８００によって実施されるプロセスは、限定ではないが、任意のコンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継または中間デバイス（例えば、それを通してデータパケットが通過するように構成される、デバイス）、エンドポイントデバイス、無線および／または有線スピーカ、無線および／または有線受信機および／または送受信機、基地局（例えば、マクロ、マイクロ、フェムト、ピコ等の基地局）、ルータ、モデム、および／または任意の他のタイプのデバイス、および／または任意のそれらの組み合わせを含む、任意のタイプのデバイスを含み得る、任意の通信環境内に実装されることができる。
【００８１】
図８ｂは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセス８１０を図示する。プロセス８１０は、本明細書に説明されるプロセスのいずれかと関連して実施されることができる。これは、デバイスによって伝送され得る具体的データ定義識別子に基づいて、データ定義ファイルを交換／受信するために使用されることができる。図８ｂに示されるように、デバイス１  １０２は、デバイス２  １０４に通信可能に結合されることができ、これは、サーバ１０６に通信可能に結合されることができる。理解され得るように、デバイス１  １０２は、直接、サーバ１０６および／またはデバイス１０４のみに結合されることもできる。図８ｂに示されるように、サーバ１０６は、データ定義ファイル１  １０３およびデータ定義ファイル２  １０９のコピーを含むことができる。デバイス１  １０２は、デバイス２  １０４がデータ定義ファイル１  １０３のコピーを取得するための要求を伝送することができる。要求では、デバイス１は、データ定義ファイル１識別子（ＤＤＦ１  ＩＤ）を伝送することができる。要求およびＤＤＦ１  ＩＤの受信に応じて、デバイス２  １０４は、要求をＤＤＦ１  ＩＤとともにサーバ１０６に伝送し、ＤＤＦ１  １０３のコピーを取得することができる。サーバ１０６は、次いで、ＤＤＦ１  １０３をデバイス２  １０４に伝送することができ、これは、順に、それをデバイス１  １０２に伝送することができる。デバイス１  １０２は、ＤＤＦ１  ＩＤを使用して、正しいＤＤＦ１が受信されたことを検証することができる。代替として、デバイス２  １０４は、ＤＤＦ１のコピーを記憶することができ、デバイス１  １０２は、それをデバイス２から直接要求することができる（すなわち、サーバ１０６へのさらなる伝送を伴わずに）。さらに別の代替実装では、デバイス１  １０２は、ＤＤＦ１のための要求をサーバ１０６に直接伝送することができる。同様に、デバイス２  １０４は、デバイス１  １０２および／またはサーバ１０６にデータ定義ファイル（例えば、ＤＤＦ１および／またはＤＤＦ２）のコピーのための要求を伝送することができる。要求は、適切なデータ定義ファイル識別子を含むことができる。さらに、デバイスは、相互にデータ定義ファイルのコピーを伝送することができ、データ定義ファイルの受信に応じて、受信側デバイスは、データ定義ファイル識別子を使用して、データ定義ファイルの正しいコピーが受信されたことを検証することができる。上記のプロセスは、デバイスとサーバおよび／または相互の認証の一部として、および／またはその前におよび／または後に実施されることができる。
【００８２】
図９ａは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセス９００を図示する。プロセス９００（上記に説明されるプロセス７００、８００、８１０に類似する）は、デバイス１（例えば、ペアリングデバイス）１０２と、デバイス２（例えば、通信デバイス）１０４と、サーバ１０６との間の通信を含むことができる。本プロセスでは、デバイス１０２は、ユーザ特有の共有キー（「ＵＳＳＫ」）および／またはグローバル共有キー（「ＧＳＫ」）９０２をＤＤＦ１  １０３および／または適切なＤＤＦ  ＩＤ（例えば、ＤＤＦ１  ＩＤおよび／またはＤＤＦ２  ＩＤ）とともに含むことができる。いくつかの実装では、ＵＳＳＫ／ＧＳＫ９０２は、ＤＤＦ１  ＩＤを含むことができ、および／またはＤＤＦ１  ＩＤは、別個に提供されることができる。いくつかの実装では、図９ａに示される１つ以上のコンポーネントは、通信ネットワークのコンポーネント（例えば、ゲートウェイ、サーバ、他のコンピューティングデバイス等）であることができ、ネットワークに登録される（例えば、ネットワークのコンポーネントについての情報（例えば、アドレス等）を記憶し得る、ネットワークデータベースコンポーネント内に含まれる）ことができる。ＵＳＳＫ／ＧＳＫは、２０１６年１月１１日に出願され、「Ｓｅｌｅｃｔｉｖｅ  Ｐａｉｒｉｎｇ  ｏｆ  Ｗｉｒｅｌｅｓｓ  Ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｓｈａｒｅｄ  Ｋｅｙｓ」と題されたＹａｍａｄａの共同所有同時係属中の米国特許出願第１４／９９２，６４２号（２０１５年７月２１日に出願された米国仮出願第６２／１９４，９３９号の優先権を主張するものである）（本開示は、参照することによってその全体として本明細書に組み込まれる）に議論される。ＵＳＳＫ９０２（またはＧＳＫ）の使用はさらに、２つのデバイス間の通信のセキュリティを確実にすることができる。本プロセスでは、サーバ１０６は、ＵＳＳＫ９０２（またはＧＳＫ）を記憶することができ、デバイス１０４からの適切な要求の受信（例えば、デバイス１０４のユーザのサーバ１０６上に記憶されるユーザのアカウントへのログイン、および／またはデバイス１０４は、ユーザ入力を伴わずに、および／または任意の他の機構を使用して、自動的に／手動で、その情報／証明書をサーバ１０６に提供することができる）に応じて、ＵＳＳＫ９０２をデバイス１０４に提供することができる。代替として、サーバ１０６は、ＵＳＳＫ９０２を記憶する必要がなく、ＵＳＳＫ９０２は、デバイス１０２、１０４のみによって共有されることができる。上記に述べられるように、ＤＤＦ  ＩＤはまた、サーバ１０６を伴わずに、デバイス１０２、１０４によって相互に提供されることができる。
【００８３】
いったんデバイス１０４が、ＵＳＳＫ９０２を受信すると、デバイス１０４およびデバイス１０２は、通信（例えば、ＢＬＥ通信、無線および／または有線通信接続等）を開始および／または確立することが可能であって、および／またはそのように構成されることができる。デバイス１０４は、次いで、ＵＳＳＫ９０２をデバイス１０２に送信することができる。代替として、ＵＳＳＫは、任意の通信を確立することに先立って、送信されることができる。デバイス１０４からのＵＳＳＫ９０２の受信に応じて、デバイス１０２は、そのステルスモードを中断することができ、ＤＤＦ２  １０９要件情報／データをデバイス１０４に伝送することを開始することができる。そのような情報をデバイス１０２から受信後、デバイス１０４は、図９ａの中央部分によって示されるように、サーバ１０６にそれにＤＤＦ２  １０９を提供するための要求を伝送することができる。
【００８４】
サーバ１０６は、ＤＤＦ２  １０９のための要求をデバイス１０４から受信後、ＤＤＦ２  １０９をデバイス１０４に伝送することができる。いったんデバイス１０４が、ＤＤＦ２  １０９を受信すると、図９ａの下部によって示されるように、デバイス１０２と通信することができ、ＤＤＦ１／ＤＤＦ２は、データをデータパケットのペイロードからアンパック／抽出するために使用されることができる。適切なＤＤＦ  ＩＤは、ＤＤＦを要求し、および／または正しいバージョンのＤＤＦが受信および／または伝送されたことを検証するために使用されることができる。
【００８５】
いくつかの代替実装では、サーバは、デバイス１０４を使用してユーザによって提供される証明書が、ＵＳＳＫ９０２およびＤＤＦ２  １０９の両方を提供する必要性を確認する場合、ＵＳＳＫ９０２およびＤＤＦ２  １０９の両方を同時に提供することができる。デバイス１０２および１０４が、ＵＳＳＫ９０２を使用して通信リンクを確立するとすぐに、デバイス１０２および１０４は、ＤＤＦ１およびＤＤＦ２を使用して、データおよび／または命令の交換を開始することができる。
【００８６】
図９ｂは、本主題のいくつかの実装による、２つのデバイス間の通信のための例示的プロセス９１０を図示する。プロセス９１０は、複数のサーバ（例えば、サーバ１０６および９０６）が使用される状況において使用されることができる。プロセス９１０は、サーバ１０６および９０６の間のＵＳＳＫ／ＧＳＫ９０２の伝送を可能にすることができる。伝送は、セキュアであることができ、ユーザが有効識別および／または認証証明書を提供することに応じて開始されることができる。
【００８７】
図９ｂの第１の行に示されるように、デバイス１０２は、ＵＳＳＫ９０２およびＤＤＦ１  １０３を含むことができ、サーバ２  ９０６は、ＵＳＳＫおよびＤＤＦ２  １０９を含むことができる。ＵＳＳＫ９０２は、デバイス１０２、１０４および／またはサーバ１０６、９０６の接続のために使用されることができる。ＤＤＦ１  １０３およびＤＤＦ２  １０９は、（上記の議論による）通信目的のために、デバイス１０２、１０４によって使用されることができる。図９ｂの第２の行によって示されるように、サーバ９０６が、ＵＳＳＫ９０２およびＤＤＦ２  １０９をサーバ１０６に伝送するために認可され得る（例えば、ユーザが適切な証明書および／または認証をサブミットすることによって（例えば、ユーザは、ユーザのオンラインリテールアカウントにログインする必要がある）、および／または証明書／認証情報が、ユーザの入力を伴わずに提供されることができる）。いったんＵＳＳＫ９０２およびＤＤＦ２  １０９が、サーバ１０６に伝送されると、サーバ１０６は、ＵＳＳＫ９０２およびＤＤＦ２  １０９のサーバ９０６からサーバ１０６への認可された伝送によって、ユーザの認証を実施することができる。ユーザは、デバイス１０４を使用することが認証され得る。デバイス１０４は、次いで、図９ｂにおける第３の行によって示されるように、ＵＳＳＫ９０２およびＤＤＦ２  １０９をサーバ１０６から受信する。図９ｂにおける第４の行によって示されるように、デバイス１０４は、次いで、アドバタイジングパケットをＵＳＳＫ９０２とともブロードキャストすることができ、ＤＤＦ１およびＤＤＦ２を使用して、通信のためにデバイス１０２に接続されることができる。上記と同様に、適切なＤＤＦ  ＩＤが、ＤＤＦを図９ｂに示されるサーバおよび／またはデバイスのいずれかから要求し、および／またはＤＤＦの正しいコピーが受信および／または伝送されたことを検証するために使用されることができる。さらに、ＤＤＦ  ＩＤは、ＵＳＳＫを使用して（例えば、ＵＳＳＫ内に含まれ得る）、またはＵＳＳＫを使用せず、伝送されることができる。任意のデータおよび／または命令が、全てのデバイス１０２、１０４およびサーバ１０６、９０６の間で交換されることができる。
【００８８】
図１０は、本主題のいくつかの実装による、単一通信デバイスと複数のペアリングデバイスとの間の通信のための例示的システム１０００を図示する。システム１０００は、複数のデバイス１００２（ａ、ｂ、ｃ、ｄ）と、単一通信デバイス１０４と、サーバ１０６とを含むことができ、その全ては、相互に通信可能に結合されることができる。デバイス１００２は、個別のデータ定義ファイル１  １００３（ａ、ｂ、ｃ、ｄ）を含み、および／または提供されることができる。別個のＤＤＦ１  ＩＤは、ＤＤＦ１  １００３のそれぞれを識別するために使用されることができる。代替として、１つのＤＤＦ１  ＩＤが、ＤＤＦ１  １００３のそれぞれを識別するために使用されることができる。１つ以上のＤＤＦ１  １００３は、デバイスの製造業者によって事前にロードされることができ、および／またはデバイス１００２にサーバ１０６および／またはデバイス１０４から伝送されることができる。ＤＤＦ  ＩＤは、正しいＤＤＦ１  １００３が伝送され、および／またはデバイス／サーバのいずれかによって受信されることを要求および／または検証するために使用されることができる。デバイス１００２とデバイス１０４との間の通信を提供するために、通信デバイス１０４は、個別のデバイス１００２（ａ、ｂ、ｃ、ｄ）に対応するＤＤＦ２（ａ、ｂ、ｃ、ｄ）  １００９（ａ、ｂ、ｃ、ｄ）を記憶することができる。ＤＤＦ２  １００９は、デバイス１０４上に事前にロードされることができ、および／またはデバイス１０４からの要求に応じて、サーバ１０６によって提供されることができる。
【００８９】
いくつかの実装では、デバイス１０４内のデータ解釈モジュール（図１０には図示せず）は、デバイス１０４によって特定のデバイス１００２から受信されたアドバタイジングパケットおよび／またはデータパケットの検出に応じて、適切なＤＤＦ２  １００９を選択することができる。代替として、ＤＤＦ２  ＩＤは、適切なＤＤＦ２  １００９を選択するために使用されることができる。選択されたＤＤＦ２  １００９は、データをそのパケットのペイロードからアンパック／抽出するために使用されることができる（例えば、ＤＤＦ２ａ  １００９ａは、データをデバイス１００２ａから受信された１つ以上のデータパケットのペイロードからアンパック／抽出するために使用されることができる等）。いくつかの実装では、１つのＤＤＦ２  １００９は、データを１つ以上のまたは任意のデバイス１００２から受信されたデータパケットのペイロードからアンパック／抽出するために使用されることができる。いくつかの実装では、デバイス１００２（ａ、ｂ、ｃ、ｄ）は、異なるＵＳＳＫを有することができる。デバイス２は、デバイス１のうちの１つ内に記憶され得る、ＵＳＳＫを伝送することができ、どのデバイス１とデバイス２が通信すべきかを規定することができる。デバイス２は、ＵＳＳＫと関連付けられたＤＤＦ２のうちの１つを使用することができる。
【００９０】
図１１は、本主題のいくつかの実装による、特定のユーザ特有の共有キー（ＵＳＳＫ）に基づく通信デバイスとペアリングデバイスとの間の通信のための例示的システム１１００を図示する。システム１１００は、デバイス１（例えば、ペアリングデバイス）１０２と、デバイス２（例えば、通信デバイス）１０４と、サーバ１０６とを含むことができる。デバイス１０２は、デバイス１０４との通信のための複数のＤＤＦ１  １１０３（ａ、ｂ、ｃ）を含むことができる。これは、デバイス１０２が異なる目的のために使用され、および／または異なる機能および／または異なる通信を実施し得るとき、有用であり得る。システム１１００では、デバイス１０４は、デバイス１０２がデバイス１０４に応答するために使用する、特定のユーザ特有の共有キーに基づいて、特定のＤＤＦ２  １１０９（サーバ１０６から取得されることができ、および／またはデバイス１０４上に事前にロードされることができる）を使用することができる。例えば、デバイス１０２が、ＵＳＳＫａ  １１０２に応答する場合、ＤＤＦ１ａ  １１０３ａおよびＤＤＦ２ａ  １１０９が、２つのデバイス間の通信のために使用されることができる。いくつかの例示的実装では、デバイス２は、デバイス１０２から受信されたデータパケットのタイプに関係なく、データをデバイス１０２から受信されたデータパケットのペイロードからアンパック／抽出するために、１つ以上のＤＤＦ２を使用することができる。
【００９１】
さらに、サーバ１０６は、１つ以上のＤＤＦ２  １１０９を記憶することができ、要求に応じて、それらをデバイス１０４に提供することができる。図１１に示されるように、ＤＤＦ２ｄは、デバイス１０２との通信のためにデバイス１０４によって使用されないため、デバイス１０４に提供されていない。
【００９２】
代替として、ＤＤＦ  ＩＤは、適切なＤＤＦが受信され、および／または個別のデバイスに伝送されることを要求、伝送、および／または検証するために使用されることができる。さらに、ＵＳＳＫの代わりに、および／またはそれに加え、ＤＤＦ  ＩＤが、適切なデバイスによって伝送および／または検出され、ＤＤＦを伝送、受信、および／または検証することができる。
【００９３】
図１２は、本主題のいくつかの実装による、データパケットのペイロード内の例示的データマッピングを図示する。例証を容易にするために、図１２は、血糖値センサの測定に関連するデータのデータマッピングについて議論する。理解され得るように、本主題は、任意の種類のデバイス１０２データに適用可能であることができ、血糖値センサに限定されない。図１２に示されるデータマッピングプロセスは、上記の図４ａ−ｂに関して議論されるものに類似する。血糖値計読取値データ、測定日／時間データ等を含み得る、センサデータ１２０２が、デバイス１０２に提供されることができる。データコンパイルモジュール１２１４は、本データを、未加工データ定義１２１０、データ属性定義１２１８とともに使用して、発信パケットペイロード定義１２１２を使用して発信パケットペイロードを生成するためのデータをコンパイルすることができる。未加工データ定義１２１０は、データパケット１２５０のペイロード内にマッピングされるデータの前に、未加工データが解釈されるであろう方法を規定することができる。発信パケットペイロード定義は、データがデータパケット１２５０のペイロード内にマッピングされるであろう方法を規定することができる。例えば、血糖値計読取値データ１２１３（コンパイルされる）は、データパケット１２５０のペイロード内の場所１２４９、１２５２のビット５７および１０５から開始してマッピングされ、各場所は、１６ビットを有することができる。データ属性定義１２１８は、測定日／時間データ１２１５（コンパイルされる）がデータパケット１２５０のペイロード内でマッピングされるであろう前に、未加工データが解釈されるであろう方法を規定することができる。発信パケットペイロード定義は、データパケット１２５０のペイロード内でデータがマッピングされるであろう方法を規定することができる。例えば、日付／時間は、データパケット１２５０のペイロード内の場所１２５１、１２５３のビット７３および１２１から開始してマッピングされ、各場所は、３２ビットを有することができる。発信パケットペイロード定義は、ペイロード内にあるであろうデータのセットの数を規定することができる（例えば、「Ｎ」であって、Ｎは、ゼロを上回るまたはそれと等しい整数であることができる）。図１２に示されるように、２セットのデータがペイロード内に存在する。
【００９４】
いくつかの例示的実装では、処理ルール１２１６は、デバイス１０２のプロセッサによって使用され、定義１２１０、１２１２、１２１８および供給されたデータ１２０２を使用して、デバイス１０４（図１２には図示せず）への伝送のために、発信パケット１２５０を生成することができる。パケット１２５０は、種々の標準コンポーネント１２４８（例えば、８ビットを有するプリアンブル、３２ビットを有するアクセスアドレス、８ビットを有するヘッダ、８ビットを有するパケットの長さの識別）と、パケットの最後に位置する、巡回冗長性検査（「ＣＲＣ」）１２５４とを含むことができる。これらの標準コンポーネントは、通信リンク（例えば、ＢＬＥ通信リンク、無線通信リンク、有線通信リンク、および／または任意の他のリンクおよび／または任意のそれらの組み合わせ）を経由して、ソース（すなわち、デバイス１０２）からの適切な伝送と、宛先（すなわち、デバイス１０４）におけるデータパケットの受信とを確実にするために使用されることができる。いくつかの実装では、定義１２１０、１２１２、および１２１８が、使用されるため、データパケット１２５０のペイロード（１２４９、１２５１、１２５２、および１２５３内に含有される）は、例えば、図１２に示されるように、具体的固定サイズを有することができ、ペイロードのサイズは、９６ビットである。代替実装では、ペイロードのサイズは、可変であることができる。
【００９５】
図１３は、本主題のいくつかの実装による、デバイス１０４のプロセッサによるデータパケット１２５０のペイロードからのデータの例示的アンパック／抽出を図示する。いったんパケット１２５０（図１２に示される）が、デバイス１０４に到着すると、デバイス１０４のプロセッサは、データをそのペイロードからアンパック／抽出するために使用される、ＤＤＦ２  １０９を使用することができる。ＤＤＦ２  １０９は、パケットペイロード定義１３２８を含むことができる。定義１３２８は、ビット５７−７２および１０５−１２０に対応する場所においてセンサデータがペイロード内に含有されることを規定することができ、日付／時間データは、ビット７３−１０４および１２１−１５２に対応する場所においてペイロード内に含有される。処理ルール１３３０は、定義１３２８とともに、データをデータパケット１２５０のペイロードから抽出し、データ１３３６をデバイス１０４上に提示するために使用されることができる。データは、デバイス１０４のユーザによって所望され得る、任意のフォーマットで提示されることができ、および／または特定のフォーマットが、規定されてもよい（例えば、図１３に示されるように）。データ１３３６は、データの記憶および／または管理のために、サーバ（図１３には図示せず）に伝送されることができる。
【００９６】
図１４は、本主題のいくつかの実装による、デバイス１０４からデバイス１０２へのデータの例示的伝送を図示する。血糖値センサの実施例では、伝送されるデータは、測定を開始する、時計を設定する等のセンサへの命令を含むことができる。理解され得るように、デバイス１０２に伝送されるデータは、命令に限定されず、任意の他のデータであることができる。図１４に戻って参照すると、デバイス１０４は、命令１４３８（例えば、センサをリセットするための命令）を生成および／または取得することができる。命令１４３８は、内部で生成される、ユーザによって打ち込まれる、外部エンティティによって供給される等であることができる。命令１４３８は、サーバ１０６（図１４には図示せず）によって伝送されることができる。デバイス１０４のデータ定義ファイル２  １０９は、デバイス１０２への伝送のための命令１４３８に基づいてデータパケット１４５０を準備するために使用されることができる。
【００９７】
命令１４３８は、処理ルール１４３０に供給されることができ、これは、デバイス１ペイロード定義１４３２（例えば、「センサリセット：０ｘ０００５」）とともに、データを着信パケット１４５０の中にマッピングすることができる。１６ビット（ビット５７から開始）から成り得る、データ１４５０のペイロード１４５１は、上記の命令（すなわち、「０ｘ０００５」）を組み込むことができる。他の標準コンポーネント（図１４に示されるように）は、データパケット１４５０内に含まれ、正しい宛先、すなわち、デバイス１０２へのデータパケット１４５０の伝送を確実にすることができる。
【００９８】
いったんパケット１４５０が、デバイス１０２によって受信されると、データ定義ファイル１  １０３は、データパケット１４５０のペイロード内に含有されるデータ、すなわち、センサをリセットするための命令をアンパック／抽出するために使用されることができる。処理ルール１４１６は、着信パケットペイロード定義１４２０とともに、デバイス１０２のプロセッサによって、受信されたデータパケットのペイロード内のデータをアンパック／抽出するために使用されることができる。ペイロード定義１４２０を使用して、デバイス１０２のプロセッサは、受信されたデータ／命令がセンサをリセットするための命令（例えば、「０ｘ０００５：センサリセット」）に対応することを決定することができる。抽出された命令１４０８は、適切なアクションのために、センサに提供されることができる。
【００９９】
図１２−１４は、データの１つ以上のセットが単一データパケットのペイロード内に設置され得る、シナリオを図示するが、いくつかの例示的実装では、データは、２つ以上のデータパケットに分割されることができる。例えば、これは、データパケットのペイロードの所定のサイズを超えないことを確実にするために行われることができる。代替として、これは、より大きいペイロードデータパケットが伝送／受信のためにより多くの時間を要求し得るため、より都合の良い通信を確実にすることができる。データパケットのペイロード内に含まれる特定のデータの総サイズおよび／または具体的サイズ（デバイス１０２からデバイス１０４に伝送されるかまたはその逆に伝送されるかにかかわらず）は、種々の要因、例えば、伝送されているデータ、デバイス１０２、１０４、ユーザ選好、開発者選好、通信リンク要件等に基づいて、事前に定義されることができる。ペイロードの総サイズおよび図１２−１４に示されるデータの具体的セクションのサイズは、ここでは、例証的目的のためだけに提供され、本主題は、示されるサイズに限定されない。
【０１００】
さらに、処理ルールが、図１２−１４に示されるが、そのような処理ルールは、随意であることができ、ペイロードは、定義のみに基づいて、データをパックされることができる。さらに、理解され得るように、デバイス１０２によって伝送される１つ以上のデータパケットのペイロード内のデータは、デバイス１０２からの伝送の時間に先立って、デバイス１０４への伝送の間、および／またはデバイス１０４による受信の時点でのいずれかにおいて、修正される、組み合わせられる、分離される、削除されること等ができる。いくつかの実装では、ペイロードは、１つ以上のデータパケットからのデータの組み合わせのための命令を含むことができる。
【０１０１】
いくつかの実装では、ＤＤＦは、それらが、作成、伝送、および／または記憶されるとき、暗号化されることができる。これは、セキュリティ理由のために、および／またはＤＤＦのコンテンツの機密性を維持するために、行われることができる。ＤＤＦコンテンツの完全性は、種々のセキュリティ手段、例えば、証明書、チェックサム等を使用して、保護されることができる。
【０１０２】
いくつかの実装では、処理ルールは、通信プロトコルを含むことができ、例えば、プロトコルは、特定の順序で交換され得る、データパケットのタイプおよび／またはデータパケット内のコンテンツのタイプを規定することができる。これは、ＤＤＦおよび／またはＤＤＦ  ＩＤがオンデマンドで交換されるため、デバイス１および２および／または任意の他のデバイスの間の通信におけるセキュリティを向上させることができる。他のタイプのセキュリティ手段も、デバイス１および２、サーバ、および／または任意の他のデバイス間の通信を保護するために実装されることができる。
【０１０３】
図１５は、本主題のいくつかの実装による、デバイス間の通信を提供するためにゲートウェイ（または任意の他の類似デバイス）を使用し得る、例示的システム１５００を図示する。システム１５００は、サーバ１  １５０２と、ネットワーク（例えば、クラウド）１５０１を経由して通信可能に結合される、サーバ２  １５０４（代替として、サーバのみまたは２つを上回るサーバが使用されることができる）と、ゲートウェイデバイス１５０６と、ユーザデバイス１５０８と、１つ以上の外部デバイス１５１０（ａ、ｂ、ｃ）とを含むことができる。いくつかの実装では、システム１５００の１つ以上のまたは全てのコンポーネントは、任意のタイプの有線および／または無線接続を介して、それぞれと通信可能に結合されることができる。例示的実装では、ゲートウェイデバイス１５０６は、Ｅｔｈｅｒｎｅｔ（登録商標）接続および／または無線接続および／または任意の他のタイプの接続を使用して、サーバ１  １５０２と通信可能に結合されることができる。すなわち、ユーザデバイス１５０８は、無線接続（例えば、ＬＴＥ、ＷｉＦｉ等）を使用して、サーバ２  １５０４と通信可能に結合されることができ、ゲートウェイデバイス１５０６およびユーザデバイス１５０８は、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続等の無線接続を使用して、通信可能に結合されることができ、外部デバイス１５１０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続等の無線接続を使用して、ゲートウェイデバイス１５０６および／またはユーザデバイス１５０８の一方または両方に通信可能に結合されることができる。さらなる例示的非限定的実装では、外部デバイス１５１０は、センサ、ドア施錠、識別タグ、テレビ、無線、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継デバイス、中間デバイス、エンドポイントデバイス、無線スピーカ、有線スピーカ、無線受信機、有線受信機、送受信機、基地局、ルータ、モデム、および／または任意の他のデバイスおよび／または任意のそれらの組み合わせのうちの１つ以上のものであることができる。
【０１０４】
いくつかの実装では、ゲートウェイデバイス１５０６は、ユーザデバイス１５０８と外部デバイス１５１０との間の通信を提供する目的のために使用されることができる。ゲートウェイデバイス１５０６は、セキュリティを通信に提供するために使用されることができ、それによって、外部デバイス１５１０および／またはユーザデバイス１５０８へおよび／またはそこから受信および／または伝送されるデータは、上記に議論される１つ以上の実装に従って、適切なＤＤＦおよび／またはＤＤＦ  ＩＤを使用して要求および／または検証されることができる。ゲートウェイデバイス１５０６は、外部デバイス１５１０に関連して任意の場所に位置付けられることができる。いくつかの実装では、ゲートウェイデバイス１５０６は、１つ以上の外部デバイス１５１０とのオンデマンドのおよび／または連続的な通信を維持するために使用されることができる。サーバ１５０２（および／またはサーバ１５０４）は、限定ではないが、外部デバイス１５１０からのデータの収集、種々のタスクを実施するための外部デバイス１５１０への命令の提供等を含む、ゲートウェイデバイス１５０６が外部デバイス１５１０と相互作用する方法を制御することができる。ゲートウェイデバイス１５０６はまた、独立して、サーバ１５０２（および／またはサーバ１５０４）および／または１つ以上の外部デバイス１５１０とタスクを実行することができる。ゲートウェイデバイス１５０６は、コマンドを受け取り、および／またはその状態を表示し得る等のように、ヒューマンインターフェースを含むように構成されることができる。例えば、ゲートウェイデバイス１５０６は、ユーザデバイス１５０８との通信インターフェースを有することができる。さらに、いくつかの非限定的例示的実装では、１つ以上の外部デバイス１５１０は、上記に議論されるペアリングデバイスに類似することができ、ゲートウェイデバイス１５０６およびユーザデバイス１５０８は、上記に議論される通信デバイスに類似することができ、サーバ１５０２／１５０４は、同様に上記に議論される、サーバに類似することができる。さらなる非限定的例示的実装では、ゲートウェイデバイス１５０６は、上記に議論される、通信デバイスに類似することができ、ユーザデバイス１５０８は、ペアリングデバイスに類似することができ、またはその逆も同様である。ゲートウェイデバイス１５０６、外部デバイス１５１０、および／またはユーザデバイス１５０８は、上記に議論される１つ以上の実装に従って、ＤＤＦおよび／またはＤＤＦ  ＩＤを受信および／または伝送することを要求することができる（および／または要求されることができる）。さらに、ゲートウェイデバイス１５０６は、外部デバイス１５１０に関連して任意の場所に位置付けられることができる。
【０１０５】
いくつかの実装では、サーバ２  １５０４は、１つ以上の共有キー（上記に議論されるように）を生成し、記憶し、および／またはゲートウェイデバイス１５０６および／またはユーザデバイス１５０８に提供することができる。共有キーは、ゲートウェイデバイス１５０６、ユーザデバイス１５０８、および／または外部デバイス１５１０のうちの１つ以上のものの間の通信を確立するために使用されることができる。共有キーの使用は、２０１６年１月１１日に出願され、「Ｓｅｌｅｃｔｉｖｅ  Ｐａｉｒｉｎｇ  ｏｆ  Ｗｉｒｅｌｅｓｓ  Ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｓｈａｒｅｄ  Ｋｅｙｓ」と題されたＹａｍａｄａの共同所有同時係属中の米国特許出願第１４／９９２，６４２号（２０１５年７月２１日に出願された米国仮出願第６２／１９４，９３９号の優先権を主張するものである）（本開示は、参照することによってその全体として本明細書に組み込まれる）に議論される。ゲートウェイデバイス１５０６、ユーザデバイス１５０８、および／または１つ以上の外部デバイス１５１０の組み合わせは、アクセス制御、機械間データ収集、デバイス制御、標的通知／アドバタイズメント、クーポン払出、支払、支払許可／確認、デジタル著名／表記等の目的のために使用されることができる。いくつかの実装では、データ、データ定義、データ定義ファイル識別子、共有キー、および／または任意の他のデータは、同時におよび／またはオンデマンドでおよび／または所定のシーケンスにおいて一度に伝送されることができ、および／または暗号化されることができる。いくつかの実装では、外部デバイス１５１０は、プライベート暗号化キーおよび／またはパブリック暗号化キーを生成することができる。パブリック暗号化キーは、ゲートウェイデバイス１５０６および／またはユーザデバイス１５０８と共有されることができる。ゲートウェイデバイス１５０６および／またはユーザデバイス１５０８が、外部デバイス１５１０と通信するとき、その伝送は、外部デバイス１５１０が生成および共有する、パブリック暗号化キーによって暗号化されることができる。外部デバイス１５１０が、ゲートウェイデバイス１５０６および／またはユーザデバイス１５０８へのその伝送を暗号化すると、その個別のパブリック暗号化キーは、ゲートウェイデバイス１５０６および／またはユーザデバイス１５０８が外部デバイス１５１０と共有されるその独自のパブリック暗号化キーを有することを前提として、使用されることができる。
【０１０６】
アクセス制御の例示的実装では、ユーザデバイス１５０８は、サーバ１５０４に、特定の外部デバイス１５１０（例えば、ホテルの部屋内のドア）へのアクセスを提供するように要求することができる。サーバ１５０４は、ユーザデバイス１５０８が、認可されており（例えば、ユーザデバイス１５０８のユーザが、ユーザ／ユーザデバイスの識別を検証し、および／またはユーザデバイスおよび／またはユーザデバイス上のソフトウェアを認証するための適切な証明書を供給した）、および／または外部デバイス１５１０に近接することを検証することができる。いったん認証が完了すると、ゲートウェイデバイス１５０６は、ユーザデバイス１５０８と外部デバイス１５１０との間のアクセスを協調させるために使用されることができる（例えば、ユーザデバイス１５０８が外部デバイス１５１０にアクセスすることを可能にする、具体的共有キーをユーザデバイス１５０８および外部デバイス１５１０の両方に供給することによって）。代替実装では、アクセス制御のために、ゲートウェイデバイス１５０６は、アクセス制御が、正しい共有キーと適切なＤＤＦ  ＩＤに関連付けられたＤＤＦとを有する、ユーザデバイス１５０８および／または外部デバイス１５１０によって達成されることができるため、必要とされない場合がある。サーバ１５０４（および／または１５０２および／または組み合わせられたサーバ１５０２／１５０４）は、ユーザデバイス１５０８が外部デバイス１５１０にアクセスすることを可能にし得る、具体的共有キーをオンデマンドでユーザデバイス１５０８および／または外部デバイス１５１０の両方に供給することができる。サーバ１５０４（および／または１５０２および／または組み合わせられたサーバ１５０２／１５０４）もまた、そのように要求／要請される場合、ＤＤＦを提供することができる。さらに、１つ以上のサーバ１５０２／１５０４はまた、通信が他のサーバと外部デバイス１５１０との間に存在する限り、必要とされない場合がある。
【０１０７】
いくつかの実装では、ゲートウェイデバイス１５０６は、多数の外部デバイス１５１０（例えば、数十、数百、数千、数百万等）と通信するように構成されることができ、動作、デバイスとシステム１５００の他のコンポーネントとのペアリング（必要な場合）を制御し、種々の情報をデバイス１５１０から収集し、および／または本情報をサーバ１５０２および／または１５０４に提供することができる。同様に、システム１５００は、場所追跡（例えば、大規模倉庫内の従業員および／またはアイテム場所の追跡、災害発生後の復興／救済の試みにおける救助隊の場所の追跡）および／または外部デバイス１５１０の追跡の目的のために使用されることができる。
【０１０８】
いくつかの実装では、特定の外部デバイス１５１０（例えば、センサ）を始動および／または設定するために、ユーザデバイス１５０８は、外部デバイス１５１０と通信し、初期設定（例えば、センサ機能診断の実施、アカウント設定、場所登録、データ定義ファイル、データ定義ファイル識別子、共有キーの交換等）を実施することができる。ユーザデバイス１５０８は、ゲートウェイデバイス１５０６と通信し、初期設定（例えば、センサ機能診断の実施、アカウント設定、場所登録、データ定義ファイル、データ定義ファイル識別子、共有キーの交換等）を実施することができる。サーバ１５０２および／または１５０４のうちの１つ以上のものは、適切な接続情報（例えば、ＤＤＦ、ＤＤＦ  ＩＤ、共有キー等）を供給するために使用されることができる。ユーザデバイス１５０８は、１つ以上の外部デバイス１５１０にアクセスすることができ、初期設定を実施することができる。ゲートウェイデバイス１５０６は、次いで、適切な接続情報（例えば、ＤＤＦ、ＤＤＦ  ＩＤ、共有キー等）の提供、そして要求される場合、ペアリングおよび／またはプロビジョニングの完了を含む、１つ以上の外部デバイス１５１０との接続を確立することができる。ユーザデバイス１５０８は、次いで、ゲートウェイデバイス１５０６と外部デバイスとの間の接続が確立されたことの確認を受信することができる。いったんゲートウェイデバイス１５０６と外部デバイス１５１０との間の接続が確立されると、１つ以上のサーバ１５０２および／または１５０４は、ゲートウェイデバイス１５０６および１つ以上のデバイス１５１０の動作を開始する（例えば、温度センサをオンにし、温度測定を開始する）ための命令を伝送することができる。いくつかの実装では、新しいユーザデバイス１５０８は、外部デバイスとの通信を確立し、および／またはデバイス機能診断および／または保守（例えば、これは、新しいユーザデバイス１５０８および／またはそのユーザが認証された後に実施されることができる）を実施するために、ＤＤＦ、ＤＤＦ  ＩＤ、共有キー等をサーバ１５０２および／または１５０４のうちの１つから要求および受信することができる。いくつかの実装では、システム１５００は、図１５に示される構成に限定されない。例えば、複数のゲートウェイデバイス１５０６、複数のユーザデバイス１５０８、複数のサーバ（および／または１つの組み合わせられたサーバ）等が、存在することができる。システム１５００のコンポーネント間の任意のタイプの通信／接続機構が、使用されることができる。
【０１０９】
いくつかの実装では、本主題は、図１６に示されるように、システム１６００内に実装されるように構成されることができる。システム１６００は、プロセッサ１６１０と、メモリ１６２０と、記憶デバイス１６３０と、入力／出力デバイス１６４０とを含むことができる。コンポーネント１６１０、１６２０、１６３０、および１６４０はそれぞれ、システムバス１６５０を使用して相互接続されることができる。プロセッサ１６１０は、システム１６００内での実行のための命令を処理するように構成されることができる。いくつかの実装では、プロセッサ１６１０は、単一スレッド式プロセッサであることができる。代替実装では、プロセッサ１６１０は、マルチスレッド式プロセッサであることができる。プロセッサ１６１０はさらに、入力／出力デバイス１６４０を通した情報の受信または送信を含む、メモリ１６２０内または記憶デバイス１６３０上に記憶される命令を処理するように構成されることができる。メモリ１６２０は、情報をシステム１６００内に記憶することができる。いくつかの実装では、メモリ１６２０は、コンピュータ可読媒体であることができる。代替実装では、メモリ１６２０は、揮発性メモリユニットであることができる。さらにいくつかの実装では、メモリ１６２０は、不揮発性メモリユニットであることができる。記憶デバイス１６３０は、システム１６００のための大容量記憶を提供可能であることができる。いくつかの実装では、記憶デバイス１６３０は、コンピュータ可読媒体であることができる。代替実装では、記憶デバイス１６３０は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイス、不揮発性ソリッドステートメモリ、または任意の他のタイプの記憶デバイスであることができる。入力／出力デバイス１６４０は、システム１６００のための入力／出力動作を提供するように構成されることができる。いくつかの実装では、入力／出力デバイス１６４０は、キーボードおよび／またはポインティングデバイスを含むことができる。代替実装では、入力／出力デバイス１６４０は、グラフィカルユーザインターフェースを表示するために、ディスプレイユニットを含むことができる。
【０１１０】
図１７は、本主題のいくつかの実装による、複数のデバイス間の通信を提供するための例示的方法１７００を図示する。１７０２では、通信リンクが、第１のデバイス（例えば、ペアリングデバイス１０２）と第２のデバイス（例えば、通信デバイス１０４）との間に確立されることができる。１７０４では、少なくとも１つのデータパケットが、第１のデバイスと第２のデバイスとの間で交換されることができる。第１のデバイスは、データパケットが第２のデバイスから受信されると、第１のデータ定義（例えば、ＤＤＦ１  １０３）を使用して、データをデータパケットのペイロードから抽出することができる。第２のデバイスは、データパケットが第１のデバイスから受信されると、第２のデータ定義（例えば、ＤＤＦ２  １０９）を使用して、データをデータパケットのペイロードから抽出することができる。
【０１１１】
いくつかの実装では、本主題は、以下の随意の特徴のうちの１つ以上のものを含むことができる。第１のデバイスに伝送される１つ以上のデータパケットのペイロードは、少なくとも１つの第１のデータ定義に従って生成されることができる。第２のデバイスに伝送される１つ以上のデータパケットのペイロードは、少なくとも１つの第２のデータ定義に従って生成されることができる。少なくとも１つの第１のデータ定義は、第１のデータ定義識別子と関連付けられることができる。第１のデバイスは、第１のデータ定義識別子を使用して、少なくとも１つの第１のデータ定義を要求するように構成されることができる。少なくとも１つの第２のデータ定義は、第２のデータ定義識別子と関連付けられることができる。第２のデバイスは、第２のデータ定義識別子を使用して、少なくとも１つの第２のデータ定義を要求するように構成されることができる。
【０１１２】
第１のデバイスは、ペアリングデバイスであることができ、第２のデバイスは、通信デバイスであることができる。いくつかの実装では、デバイスは、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継および／または中間デバイス（例えば、それを通してデータパケットが通過するように構成される、デバイス）、エンドポイントデバイス、無線および／または有線スピーカ、無線および／または有線受信機および／または送受信機、基地局（例えば、マクロ、マイクロ、フェムト、ピコ等の基地局）、ルータ、モデム、および／または任意の他のタイプのデバイス、および／または任意のそれらの組み合わせであることができる。
【０１１３】
いくつかの実装では、第１のデータ定義は、第２のデバイスによるデータパケットのペイロード内の第１のデータ（そのタイプ、場所等を含む）の含有に基づいて、第１のデバイスによって受信されたデータパケットのペイロード内の第１のデータ（タイプ、場所等を含む）を規定することができる。第２のデータ定義は、第１のデバイスによるデータパケットのペイロード内の第２のデータ（そのタイプ、場所等を含む）の含有に基づいて、第２のデバイスによって受信されたデータパケットのペイロード内の第２のデータ（タイプ、場所等を含む）を規定することができる。
【０１１４】
いくつかの実装では、サーバは、第１のデバイスおよび第２のデバイスのうちの少なくとも１つに通信可能に結合されることができる。サーバは、第１のデータ定義および第２のデータ定義のうちの少なくとも１つを生成することができる。サーバは、第１のデータ定義および第２のデータ定義のうちの少なくとも１つを第１のデバイスおよび第２のデバイスのうちの少なくとも１つに提供することができる。
【０１１５】
いくつかの実装では、第１のデバイスと第２のデバイスとの間のデータの交換は、第１のデータ定義を使用する第１のデバイスおよび第２のデータ定義を使用する第２のデバイスに依存し得る。代替として、第１のデバイスと第２のデバイスとの間のデータの交換は、第２のデータ定義に依存する第１のデータ定義および／またはその逆に依存し得る。
【０１１６】
いくつかの実装では、複数の第１のデバイスは、複数の第２のデバイスに通信可能に結合されることができ、複数の第１のデバイス内の各第１のデバイスは、複数の第１のデータ定義内のその独自の第１のデータ定義を使用することができ、複数の第２のデバイス内の各第２のデバイスは、複数の第２のデータ定義内のその独自の第２のデータ定義を使用することができる。
【０１１７】
いくつかの実装では、本方法はさらに、第１のデバイスによって、少なくとも１つの第１のデータ定義に対応する第１のデータ定義識別子を受信することと、第２のデバイスによって、少なくとも１つの第２のデータ定義に対応する第２のデータ定義識別子を受信することとを含むことができる。さらに、本方法はまた、第１のデバイスを使用して、対応する受信された第１のデータ定義識別子を使用して、少なくとも１つの第１のデータ定義を検証することを含むことができる。少なくとも１つの第１のデータ定義の検証に応じて、本方法は、少なくとも１つ以上のデータパケットが第２のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を実施することができる。少なくとも１つの第１のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つ以上のデータパケットが第２のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を防止することができる。加えて、本方法はまた、第２のデバイスを使用して、対応する受信された第２のデータ定義識別子を使用して、少なくとも１つの第２のデータ定義を検証することを含むことができる。少なくとも１つの第２のデータ定義の検証に応じて、本方法は、少なくとも１つ以上のデータパケットが第１のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を実施することができる。少なくとも１つの第２のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つ以上のデータパケットが第１のデバイスから受信されると、少なくとも１つ以上のデータパケットの１つ以上のペイロードからのデータの抽出を防止することができる。
【０１１８】
いくつかの実装では、本方法はまた、対応する受信された第１のデータ定義識別子を使用して、少なくとも１つの第１のデータ定義を検証することを含むことができる。少なくとも１つの第１のデータ定義の検証に応じて、本方法は、少なくとも１つの第１のデータ定義を使用して、少なくとも１つ以上のデータパケットの１つ以上のペイロードを生成することができる。少なくとも１つの第１のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つの第１のデータ定義を使用した１つ以上のペイロードの生成を防止することができる。本方法はまた、対応する受信された第２のデータ定義識別子を使用して、少なくとも１つの第２のデータ定義を検証することを含むことができる。少なくとも１つの第２のデータ定義の検証に応じて、本方法は、少なくとも１つの第２のデータ定義を使用して、少なくとも１つ以上のデータパケットの１つ以上のペイロードを生成することができる。少なくとも１つの第２のデータ定義の検証の失敗に応じて、本方法は、少なくとも１つの第２のデータ定義を使用した１つ以上のペイロードの生成を防止することができる。
【０１１９】
本明細書に開示されるシステムおよび方法は、例えば、データベース、デジタル電子回路、ファームウェア、ソフトウェア、またはそれらの組み合わせもまた含む、コンピュータ等のデータプロセッサを含む、種々の形態で具現化されることができる。さらに、本開示される実装の上記の特徴および他の側面および原理は、種々の環境内に実装されることができる。そのような環境および関連用途は、開示される実装に従って、種々のプロセスおよび動作を実施するために特別に構築されることができる、またはそれらは、必要な機能性を提供するようにコードによって選択的にアクティブ化または再構成される、汎用コンピュータまたはコンピューティングプラットフォームを含むことができる。本明細書に開示されるプロセスは、本質的に、任意の特定のコンピュータ、ネットワーク、アーキテクチャ、環境、または他の装置に関連せず、ハードウェア、ソフトウェア、および／またはファームウェアの好適な組み合わせによって実装されることができる。例えば、種々の汎用機械は、開示される実装の教示に従って書かれたプログラムと併用されることができる、または要求される方法および技法を実施するための特殊装置またはシステムを構築するためにより都合よくあり得る。
【０１２０】
本明細書に開示されるシステムおよび方法は、データ処理装置、例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータによる実行のために、またはその動作を制御するために、情報担体、例えば、機械可読記憶デバイスまたは伝搬信号内に有形に具現化される、コンピュータプログラム製品、すなわち、コンピュータプログラムとして実装されることができる。コンピュータプログラムは、コンパイルまたは解釈言語を含む、任意の形態のプログラミング言語で書かれることができ、独立型プログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境において使用するために好適な他のユニットとしてを含む、任意の形態で展開されることができる。コンピュータプログラムは、１つの場所における１つのコンピュータまたは複数のコンピュータ上で実行されるように展開される、または複数の場所を横断して分散され、通信ネットワークによって相互接続されることができる。
【０１２１】
本明細書で使用されるように、用語「ユーザ」は、人物またはコンピュータを含む、任意のエンティティを指すことができる。
【０１２２】
第１、第２、および同等物等の序数は、いくつかの状況では、順序に関し得るが、本書で使用されるように、序数は、必ずしも、順序を含意しない。例えば、序数は、単に、１つのアイテムと別のアイテムを区別するために使用されることができる。例えば、第１のイベントと第２のイベントを区別するために、なんらかの経時的順序または固定基準系を含意する必要はない（その結果、説明の１つの段落における第１のイベントは、説明の別の段落における第１のイベントと異なり得る）。
【０１２３】
前述の説明は、本発明の範囲を例証するが、限定するように意図されず、これは、添付の請求項の範囲によって定義される。他の実装も、以下の請求項の範囲内である。
【０１２４】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、コンポーネント、またはコードとも称され得る、これらのコンピュータプログラムは、プログラマブルプロセッサのための機械命令を含み、高レベル手続型および／またはオブジェクト指向プログラミング言語および／またはアセンブリ／機械言語で実装されることができる。本明細書で使用されるように、用語「機械可読媒体」は、機械命令を機械可読信号として受信する、機械可読媒体を含む、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される、例えば、磁気ディスク、光ディスク、メモリ、およびプログラマブル論理デバイス（ＰＬＤ）等の任意のコンピュータプログラム製品、装置、および／またはデバイスを指す。用語「機械可読信号」は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される、任意の信号を指す。機械可読媒体は、そのような機械命令を非一過性に記憶することができ、例えば、非一過性ソリッドステートメモリまたは磁気ハードドライブまたは任意の同等の記憶媒体等であろう。機械可読媒体は、代替として、または加えて、そのような機械命令を一過性様式で記憶することができ、例えば、１つ以上の物理的プロセッサコアと関連付けられたプロセッサキャッシュまたは他のランダムアクセスメモリ等であろう。
【０１２５】
ユーザとの相互作用を提供するために、本明細書に説明される主題は、例えば、情報をユーザに表示するためのブラウン管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）モニタ等のディスプレイデバイスと、ユーザが入力をコンピュータに提供し得る、例えば、マウスまたはトラックボール等のキーボードおよびポインティングデバイスとを有する、コンピュータ上に実装されることができる。他の種類のデバイスも同様に、ユーザとの相互作用を提供するために使用されることができる。例えば、ユーザに提供されるフィードバックは、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック等の任意の形態の感覚フィードバックであることができ、ユーザからの入力は、限定ではないが、音響、発話、または触覚的入力を含む、任意の形態で受信されることができる。
【０１２６】
本明細書に説明される主題は、例えば、１つ以上のデータサーバ等のバックエンドコンポーネントを含む、または例えば、１つ以上のアプリケーションサーバ等のミドルウェアコンポーネントを含むまたは例えば、ユーザが本明細書に説明される主題の実装と相互作用し得る、グラフィカルユーザインターフェースまたはウェブブラウザを有する、１つ以上のクライアントコンピュータ等のフロントエンドコンポーネントを含む、またはそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせである、コンピューティングシステム内に実装されることができる。システムのコンポーネントは、例えば、通信ネットワーク等の任意の形態または媒体のデジタルデータ通信によって相互接続されることができる。通信ネットワークの実施例は、限定ではないが、ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、およびインターネットを含む。
【０１２７】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、概して、排他的ではないが、相互から遠隔であって、典型的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、個別のコンピュータ上で起動し、相互にクライアント−サーバ関係を有する、コンピュータプログラムによって生じる。
【０１２８】
前述の説明に記載される実装は、本明細書に説明される主題と一致する全ての実装を表すわけではない。代わりに、それらは、単に、説明される主題に関連する側面と一致するいくつかの実施例である。いくつかの変形例が、上記に詳細に説明されたが、他の修正または追加も、可能性として考えられる。特に、さらなる特徴および／または変形例が、本明細書に記載されるものに加えて、提供されることができる。例えば、上記に説明される実装は、開示される特徴の種々の組み合わせおよび副次的組み合わせおよび／または上記に開示されるいくつかのさらなる特徴の組み合わせおよび副次的組み合わせを対象とすることができる。加えて、付随の図に描写され、および／または本明細書に説明される、論理フローは、望ましい結果を達成するために、必ずしも、示される特定の順序または順次順序を要求するわけではない。他の実装も、以下の請求項の範囲内であり得る。
【図１】
2019534633.tif 000003
【図２】
2019534633.tif 000004
【図３】
2019534633.tif 000005
【図４ａ】
2019534633.tif 000006
【図４ｂ】
2019534633.tif 000007
【図５】
2019534633.tif 000008
【図６】
2019534633.tif 000009
【図７ａ】
2019534633.tif 000010
【図７ｂ】
2019534633.tif 000011
【図８ａ】
2019534633.tif 000012
【図８ｂ】
2019534633.tif 000013
【図９ａ】
2019534633.tif 000014
【図９ｂ】
2019534633.tif 000015
【図１０】
2019534633.tif 000016
【図１１】
2019534633.tif 000017
【図１２】
2019534633.tif 000018
【図１３】
2019534633.tif 000019
【図１４】
2019534633.tif 000020
【図１５】
2019534633.tif 000021
【図１６】
2019534633.tif 000022
【図１７】
2019534633.tif 000023
【国際調査報告】
2019534633.tif 000024