IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴィタネット・ジャパン株式会社の特許一覧

特開2023-80186定義されたデータ定義を使用したデータ処理
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023080186
(43)【公開日】2023-06-08
(54)【発明の名称】定義されたデータ定義を使用したデータ処理
(51)【国際特許分類】
   H04L 69/08 20220101AFI20230601BHJP
【FI】
H04L69/08
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023064081
(22)【出願日】2023-04-11
(62)【分割の表示】P 2019518429の分割
【原出願日】2017-10-06
(31)【優先権主張番号】62/405,361
(32)【優先日】2016-10-07
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518017532
【氏名又は名称】ヴィタネット・ジャパン株式会社
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100107489
【弁理士】
【氏名又は名称】大塩 竹志
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】山田 健雄
(57)【要約】
【課題】通信システムにおいて定義されたデータ定義を使用してデータを処理するためのシステム、方法、およびコンピュータプログラム製品の提供。
【解決手段】通信リンクが、第1のデバイスと第2のデバイスとの間に確立される。少なくとも1つ以上のデータパケットが、第1のデバイスと第2のデバイスとの間で交換される。第1のデバイスは、データパケットが第2のデバイスから受信されると、少なくとも1つの第1のデータ定義を使用して、データを1つ以上のデータパケットの1つ以上のペイロードから抽出する。第2のデバイスは、データパケットが第1のデバイスから受信されると、少なくとも1つの第2のデータ定義を使用して、データを1つ以上のデータパケットの1つ以上のペイロードから抽出する。
【選択図】なし
【特許請求の範囲】
【請求項1】
本明細書に記載の発明。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2016年10月7日に出願され、“Data Processing Using Defined Data Definitions In Wireless Communications”と題された、Yamadaの米国仮特許出願第62/405,361号に対する優先権を主張するものであり、その開示の全体を参照により本明細書中に援用するものである。
【0002】
(技術分野)
本開示は、概して、データ処理に関し、特に、Bluetooth(登録商標)低エネルギー通信および/または任意の他の無線および/または有線通信等の無線通信システムにおけるデータ定義を使用したデータの交換および/または処理に関する。
【背景技術】
【0003】
現代の電気通信システムは、膨大な数のデバイスにサービス提供しており、これは、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、携帯情報端末、および/または他のデバイスを含むことができる。典型的には、これらのデバイスは、基地局、無線アクセスポイント、サーバ等を含み得る、種々のネットワークを通して、相互に通信する。相互に通信するために、デバイスは、典型的には、例えば、電子メール、ハイパーテキスト転送プロトコル(「HTTP」)データ、メッセージ等の情報を含有する、データパケットを送信および/または受信する。データパケットは、制御情報およびユーザデータ、すなわち、ペイロードを含む。制御情報は、ペイロード(例えば、ソースおよび宛先ネットワークアドレス、エラー検出コード、シーケンシング情報等)を送達するためのデータを提供し、パケットヘッダおよびトレーラ内に見出される。
【0004】
データパケットのペイロードは、データおよび/または命令をデバイスに搬送するために使用されることができる。ある場合には、単一データパケットのペイロードが、伝送されることが所望される全ての情報/データに適合しない場合があり、故に、より多くのデータパケットが、伝送される必要があり得る。他の場合では、データパケットのペイロードが、大量の情報/データを収容し得る。受信側デバイスは、ペイロード内に含有されるデータの抽出が困難であって、それによって、その中に含有されるデータの実装および/または使用を遅延させ得る。したがって、受信側および/または伝送側デバイスに、効率的かつ費用効果的な様式において、データパケットのペイロードを生成し、かつデータをデータパケットの受信されたペイロードから抽出する能力を提供する方法の必要がある。
【発明の概要】
【課題を解決するための手段】
【0005】
いくつかの実装では、本主題は、複数のデバイス間の通信を提供するためのコンピュータ実装方法に関する。本方法は、通信リンクを第1のデバイスと第2のデバイスとの間に確立することと、1つ以上のデータパケットを第1のデバイスと第2のデバイスとの間で交換することであって、第1のデバイスは、1つ以上のデータパケットが第2のデバイスから受信されると、少なくとも1つの第1のデータ定義を使用して、データを1つ以上のデータパケットの1つ以上のペイロードから抽出し、第2のデバイスは、1つ以上のデータパケットが第1のデバイスから受信されると、少なくとも1つの第2のデータ定義を使用して、データを1つ以上のデータパケットの1つ以上のペイロードから抽出する、こととを含むことができる。確立することおよび交換することのうちの少なくとも1つは、少なくとも1つのコンピューティングシステムの少なくとも1つのプロセッサを使用して実施されることができる。
【0006】
いくつかの実装では、本主題は、以下の随意の特徴のうちの1つ以上のものを含むことができる。第1のデバイスに伝送される1つ以上のデータパケットのペイロードは、少なくとも1つの第1のデータ定義に従って生成されることができる。第2のデバイスに伝送される1つ以上のデータパケットのペイロードは、少なくとも1つの第2のデータ定義に従って生成されることができる。少なくとも1つの第1のデータ定義は、第1のデータ定義識別子と関連付けられることができる。第1のデバイスは、第1のデータ定義識別子を使用して、少なくとも1つの第1のデータ定義を要求するように構成されることができる。少なくとも1つの第2のデータ定義は、第2のデータ定義識別子と関連付けられることができる。第2のデバイスは、第2のデータ定義識別子を使用して、少なくとも1つの第2のデータ定義を要求するように構成されることができる。
【0007】
第1のデバイスは、ペアリングデバイスであることができ、第2のデバイスは、通信デバイスであることができる。いくつかの実装では、デバイスは、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継および/または中間デバイス(例えば、それを通してデータパケットが通過するように構成される、デバイス)、エンドポイントデバイス、無線および/または有線スピーカ、無線および/または有線受信機および/または送受信機、基地局(例えば、マクロ、マイクロ、フェムト、ピコ等の基地局)、ルータ、モデム、および/または任意の他のタイプのデバイス、および/または任意のそれらの組み合わせであることができる。
【0008】
いくつかの実装では、第1のデータ定義は、第2のデバイスによるデータパケットのペイロード内の第1のデータ(そのタイプ、場所等を含む)の含有に基づいて、第1のデバイスによって受信されたデータパケットのペイロード内の第1のデータ(タイプ、場所等を含む)を規定することができる。第2のデータ定義は、第1のデバイスによるデータパケットのペイロード内の第2のデータ(そのタイプ、場所等を含む)の含有に基づいて、第2のデバイスによって受信されたデータパケットのペイロード内の第2のデータ(タイプ、場所等を含む)を規定することができる。
【0009】
いくつかの実装では、サーバは、第1のデバイスおよび第2のデバイスのうちの少なくとも1つに通信可能に結合されることができる。サーバは、第1のデータ定義および第2のデータ定義のうちの少なくとも1つを生成することができる。サーバは、第1のデータ定義および第2のデータ定義のうちの少なくとも1つを第1のデバイスおよび第2のデバイスのうちの少なくとも1つに提供することができる。
【0010】
いくつかの実装では、第1のデバイスと第2のデバイスとの間のデータの交換は、第1のデータ定義を使用する第1のデバイスおよび第2のデータ定義を使用する第2のデバイスに依存し得る。代替として、第1のデバイスと第2のデバイスとの間のデータの交換は、第2のデータ定義に依存する第1のデータ定義および/またはその逆に依存し得る。
【0011】
いくつかの実装では、複数の第1のデバイスは、複数の第2のデバイスに通信可能に結合されることができ、複数の第1のデバイス内の各第1のデバイスは、複数の第1のデータ定義内のその独自の第1のデータ定義を使用することができ、複数の第2のデバイス内の各第2のデバイスは、複数の第2のデータ定義内のその独自の第2のデータ定義を使用することができる。
【0012】
いくつかの実装では、本方法はさらに、第1のデバイスによって、少なくとも1つの第1のデータ定義に対応する第1のデータ定義識別子を受信することと、第2のデバイスによって、少なくとも1つの第2のデータ定義に対応する第2のデータ定義識別子を受信することとを含むことができる。さらに、本方法はまた、第1のデバイスを使用して、対応する受信された第1のデータ定義識別子を使用して、少なくとも1つの第1のデータ定義を検証することを含むことができる。少なくとも1つの第1のデータ定義の検証に応じて、本方法は、少なくとも1つ以上のデータパケットが第2のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を実施することができる。少なくとも1つの第1のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つ以上のデータパケットが第2のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を防止することができる。加えて、本方法はまた、第2のデバイスを使用して、対応する受信された第2のデータ定義ファイル識別子を使用して、少なくとも1つの第2のデータ定義を検証することを含むことができる。少なくとも1つの第2のデータ定義の検証に応じて、本方法は、少なくとも1つ以上のデータパケットが第1のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を実施することができる。少なくとも1つの第2のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つ以上のデータパケットが第1のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を防止することができる。
【0013】
いくつかの実装では、本方法はまた、対応する受信された第1のデータ定義識別子を使用して、少なくとも1つの第1のデータ定義を検証することを含むことができる。少なくとも1つの第1のデータ定義の検証に応じて、本方法は、少なくとも1つの第1のデータ定義を使用して、少なくとも1つ以上のデータパケットの1つ以上のペイロードを生成することができる。少なくとも1つの第1のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つの第1のデータ定義を使用した1つ以上のペイロードの生成を防止することができる。本方法はまた、対応する受信された第2のデータ定義識別子を使用して、少なくとも1つの第2のデータ定義を検証することを含むことができる。少なくとも1つの第2のデータ定義の検証に応じて、本方法は、少なくとも1つの第2のデータ定義を使用して、少なくとも1つ以上のデータパケットの1つ以上のペイロードを生成することができる。少なくとも1つの第2のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つの第2のデータ定義を使用した1つ以上のペイロードの生成を防止することができる。
【0014】
1つ以上のコンピューティングシステムの1つ以上のデータプロセッサによって実行されると、少なくとも1つのデータプロセッサに、本明細書の動作を実施させる、命令を記憶する、非一過性コンピュータプログラム製品(すなわち、物理的に具現化されるコンピュータプログラム製品)もまた、説明される。同様に、1つ以上のデータプロセッサと、1つ以上のデータプロセッサに結合される、メモリとを含み得る、コンピュータシステムもまた、説明される。メモリは、一時的または恒久的に、少なくとも1つのプロセッサに、本明細書に説明される動作のうちの1つ以上のものを実施させる、命令を記憶してもよい。加えて、本方法は、単一コンピューティングシステム内にあるか、または2つ以上のコンピューティングシステム間に分散されるかのいずれかである、1つ以上のデータプロセッサによって実装されることができる。そのようなコンピューティングシステムは、限定ではないが、ネットワーク(例えば、インターネット、無線広域ネットワーク、ローカルエリアネットワーク、広域ネットワーク、有線ネットワーク、または同等物)を経由した、複数のコンピューティングシステムのうちの1つ以上のものの間の直接接続を介した接続を含む、1つ以上の接続を介して、接続されることができ、データおよび/またはコマンドまたは他の命令または同等物を交換することができる。
【0015】
本明細書に説明される主題の1つ以上の変形例の詳細が、付随の図面および下記の説明に記載される。本明細書に説明される主題の他の特徴および利点は、説明および図面および請求項から明白となるであろう。
本発明は、例えば、以下を提供する。
(項目1)
コンピュータ実装方法であって、
通信リンクを第1のデバイスと第2のデバイスとの間に確立することと、
少なくとも1つ以上のデータパケットを前記第1のデバイスと前記第2のデバイスとの間で交換することであって、
前記第1のデバイスは、前記少なくとも1つ以上のデータパケットが前記第2のデバイスから受信されると、少なくとも1つの第1のデータ定義を使用して、データを前記少なくとも1つ以上のデータパケットの1つ以上のペイロードから抽出し、
前記第2のデバイスは、前記少なくとも1つ以上のデータパケットが前記第1のデバイスから受信されると、少なくとも1つの第2のデータ定義を使用して、データを前記少なくとも1つ以上のデータパケットの1つ以上のペイロードから抽出する、ことと
を含み、前記確立することおよび前記交換することのうちの少なくとも1つは、少なくとも1つのコンピューティングシステムの少なくとも1つのプロセッサを使用して実施される、方法。
(項目2)
前記第1のデバイスに伝送される1つ以上のデータパケットのペイロードは、前記少なくとも1つの第1のデータ定義に従って生成され、
前記第2のデバイスに伝送される1つ以上のデータパケットのペイロードは、前記少なくとも1つの第2のデータ定義に従って生成される、項目1に記載の方法。
(項目3)
前記少なくとも1つの第1のデータ定義は、第1のデータ定義識別子と関連付けられ、前記第1のデバイスは、前記第1のデータ定義識別子を使用して、前記少なくとも1つの第1のデータ定義を要求するように構成され、
前記少なくとも1つの第2のデータ定義は、第2のデータ定義識別子と関連付けられ、前記第2のデバイスは、前記第2のデータ定義識別子を使用して、前記少なくとも1つの第2のデータ定義を要求するように構成される、項目2に記載の方法。
(項目4)
前記第1のデバイスは、ペアリングデバイスであり、前記第2のデバイスは、通信デバイスである、項目1に記載の方法。
(項目5)
前記デバイスは、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継デバイス、中間デバイス、エンドポイントデバイス、無線スピーカ、有線スピーカ、無線受信機、有線受信機、送受信機、基地局、ルータ、モデム、および任意のそれらの組み合わせのうちの少なくとも1つを含む、項目4に記載の方法。
(項目6)
前記少なくとも1つの第1のデータ定義は、前記第2のデバイスによる前記1つ以上のデータパケットの1つ以上のペイロード内の前記第1のデータの含有に基づいて、前記第1のデバイスによって受信された前記1つ以上のデータパケットの1つ以上のペイロード内の第1のデータを規定する、項目1に記載の方法。
(項目7)
前記少なくとも1つの第2のデータ定義は、前記第1のデバイスによる前記1つ以上のデータパケットの1つ以上のペイロード内の前記第2のデータの含有に基づいて、前記第2のデバイスによって受信された前記1つ以上のデータパケットの1つ以上のペイロード内の第2のデータを規定する、項目1に記載の方法。
(項目8)
サーバが、前記第1のデバイスおよび前記第2のデバイスのうちの少なくとも1つに通信可能に結合される、項目1に記載の方法。
(項目9)
前記サーバによって、前記少なくとも1つの第1のデータ定義および前記少なくとも1つの第2のデータ定義のうちの少なくとも1つを生成することと、
前記サーバによって、前記少なくとも1つの第1のデータ定義および前記少なくとも1つの第2のデータ定義のうちの少なくとも1つを前記第1のデバイスおよび前記第2のデバイスのうちの少なくとも1つに提供することと
をさらに含む、項目7に記載の方法。
(項目10)
前記第1のデバイスと前記第2のデバイスとの間のデータの交換は、前記少なくとも1つの第1のデータ定義を使用する前記第1のデバイスおよび前記少なくとも1つの第2のデータ定義を使用する前記第2のデバイスに基づく、項目1に記載の方法。
(項目11)
前記第1のデバイスと前記第2のデバイスとの間のデータの交換は、前記少なくとも1つの第1のデータ定義と前記少なくとも1つの第2のデータ定義との間の依存性に基づく、項目1に記載の方法。
(項目12)
複数の第1のデバイスが、複数の第2のデバイスに通信可能に結合され、前記複数の第1のデバイス内の各第1のデバイスは、複数の第1のデータ定義内のその独自の第1のデータ定義を使用し、前記複数の第2のデバイス内の各第2のデバイスは、複数の第2のデータ定義内のその独自の第2のデータ定義を使用する、項目1に記載の方法。
(項目13)
前記第1のデバイスによって、前記少なくとも1つの第1のデータ定義に対応する第1のデータ定義識別子を受信することと、
前記第2のデバイスによって、前記少なくとも1つの第2のデータ定義に対応する第2のデータ定義識別子を受信することと
をさらに含む、項目1に記載の方法。
(項目14)
前記第1のデバイスを使用して、前記対応する受信された第1のデータ定義識別子を使用して、前記少なくとも1つの第1のデータ定義を検証することであって、
前記少なくとも1つの第1のデータ定義の検証に応じて、前記少なくとも1つ以上のデータパケットが前記第2のデバイスから受信されると、前記少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を実施し、
前記少なくとも1つの第1のデータ定義の検証の失敗に応じて、前記少なくとも1つ以上のデータパケットが前記第2のデバイスから受信されると、前記少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を防止する、ことと、
前記第2のデバイスを使用して、前記対応する受信された第2のデータ定義識別子を使用して、前記少なくとも1つの第2のデータ定義を検証することであって、
前記少なくとも1つの第2のデータ定義の検証に応じて、前記少なくとも1つ以上のデータパケットが前記第1のデバイスから受信されると、前記少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を実施し、
前記少なくとも1つの第2のデータ定義の検証の失敗に応じて、前記少なくとも1つ以上のデータパケットが前記第1のデバイスから受信されると、前記少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を防止する、ことと
をさらに含む、項目13に記載の方法。
(項目15)
前記対応する受信された第1のデータ定義識別子を使用して、前記少なくとも1つの第1のデータ定義を検証することであって、
前記少なくとも1つの第1のデータ定義の検証に応じて、前記少なくとも1つの第1のデータ定義を使用して、前記少なくとも1つ以上のデータパケットの1つ以上のペイロードを生成し、
前記少なくとも1つの第1のデータ定義の検証の失敗に応じて、前記少なくとも1つの第1のデータ定義を使用した1つ以上のペイロードの生成を防止する、ことと、
前記対応する受信された第2のデータ定義識別子を使用して、前記少なくとも1つの第2のデータ定義を検証することであって、
前記少なくとも1つの第2のデータ定義の検証に応じて、前記少なくとも1つの第2のデータ定義を使用して、前記少なくとも1つ以上のデータパケットの1つ以上のペイロードを生成し、
前記少なくとも1つの第2のデータ定義の検証の失敗に応じて、前記少なくとも1つの第2のデータ定義を使用した1つ以上のペイロードの生成を防止する、ことと
をさらに含む、項目13に記載の方法。
(項目16)
システムであって、
少なくとも1つのプログラマブルプロセッサと、
命令を記憶する機械可読媒体であって、前記命令は、前記少なくとも1つのプログラマブルプロセッサによって実行されると、前記少なくとも1つのプログラマブルプロセッサに、
通信リンクを第1のデバイスと第2のデバイスとの間に確立することと、
少なくとも1つ以上のデータパケットを前記第1のデバイスと前記第2のデバイスとの間で交換することであって、
前記第1のデバイスは、前記少なくとも1つ以上のデータパケットが前記第2のデバイスから受信されると、少なくとも1つの第1のデータ定義を使用して、データを前記少なくとも1つ以上のデータパケットの1つ以上のペイロードから抽出し、
前記第2のデバイスは、前記少なくとも1つ以上のデータパケットが前記第1のデバイスから受信されると、少なくとも1つの第2のデータ定義を使用して、データを前記少なくとも1つ以上のデータパケットの1つ以上のペイロードから抽出する、ことと
を含む動作を実施させる、機械可読媒体と
を備える、システム。
(項目17)
前記第1のデバイスに伝送される1つ以上のデータパケットのペイロードは、前記少なくとも1つの第1のデータ定義に従って生成され、
前記第2のデバイスに伝送される1つ以上のデータパケットのペイロードは、前記少なくとも1つの第2のデータ定義に従って生成される、項目16に記載のシステム。
(項目18)
前記少なくとも1つの第1のデータ定義は、第1のデータ定義識別子と関連付けられ、前記第1のデバイスは、前記第1のデータ定義識別子を使用して、前記少なくとも1つの第1のデータ定義を要求するように構成され、
前記少なくとも1つの第2のデータ定義は、第2のデータ定義識別子と関連付けられ、前記第2のデバイスは、前記第2のデータ定義識別子を使用して、前記少なくとも1つの第2のデータ定義を要求するように構成される、項目17に記載のシステム。
(項目19)
命令を記憶する非一過性機械可読媒体を備えるコンピュータプログラム製品であって、前記命令は、少なくとも1つのプログラマブルプロセッサによって実行されると、前記少なくとも1つのプログラマブルプロセッサに、
通信リンクを第1のデバイスと第2のデバイスとの間に確立することと、
少なくとも1つ以上のデータパケットを前記第1のデバイスと前記第2のデバイスとの間で交換することであって、
前記第1のデバイスは、前記少なくとも1つ以上のデータパケットが前記第2のデバイスから受信されると、少なくとも1つの第1のデータ定義を使用して、データを前記少なくとも1つ以上のデータパケットの1つ以上のペイロードから抽出し、
前記第2のデバイスは、前記少なくとも1つ以上のデータパケットが前記第1のデバイスから受信されると、少なくとも1つの第2のデータ定義を使用して、データを前記少なくとも1つ以上のデータパケットの1つ以上のペイロードから抽出する、ことと
を含む動作を実施させる、コンピュータプログラム。
(項目20)
前記第1のデバイスに伝送される1つ以上のデータパケットのペイロードは、前記少なくとも1つの第1のデータ定義に従って生成され、
前記第2のデバイスに伝送される1つ以上のデータパケットのペイロードは、前記少なくとも1つの第2のデータ定義に従って生成される、項目19に記載のコンピュータプログラム製品。
(項目21)
前記少なくとも1つの第1のデータ定義は、第1のデータ定義識別子と関連付けられ、前記第1のデバイスは、前記第1のデータ定義識別子を使用して、前記少なくとも1つの第1のデータ定義を要求するように構成され、
前記少なくとも1つの第2のデータ定義は、第2のデータ定義識別子と関連付けられ、前記第2のデバイスは、前記第2のデータ定義識別子を使用して、前記少なくとも1つの第2のデータ定義を要求するように構成される、項目20に記載のコンピュータプログラム製品。
【図面の簡単な説明】
【0016】
本明細書内に組み込まれ、その一部を構成する、付随の図面は、本明細書に開示される主題のある側面を示し、説明とともに、開示される実装と関連付けられた原理のうちのいくつかを説明することに役立つ。
【0017】
図1図1は、本主題のいくつかの実装による、例示的通信システムを図示する。
【0018】
図2図2は、本主題のいくつかの実装による、例示的通信システムを図示する。
【0019】
図3図3は、本主題のいくつかの実装による、例示的通信システムを図示する。
【0020】
図4a図4aは、本主題のいくつかの実装による、図1-3に示されるデバイスのデータ定義ファイルの例示的コンポーネントを図示する。
【0021】
図4b図4bは、本主題のいくつかの実装による、図1-3に示されるデバイスのデータ定義ファイルの例示的コンポーネントを図示する。
【0022】
図5図5は、本主題のいくつかの実装による、データ定義ファイルの生成のための例示的開発環境を図示する。
【0023】
図6図6は、本主題のいくつかの実装による、図5に示されるシステムを使用してデータ定義ファイルを生成するための例示的プロセスを図示する。
【0024】
図7a図7aは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセスを図示する。
【0025】
図7b図7bは、本主題のいくつかの実装による、データ定義ファイルおよび/またはデータ定義ファイル識別子の交換を含む、2つのデバイス間の通信のための例示的プロセスを図示する。
【0026】
図8a図8aは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセスを図示する。
【0027】
図8b図8bは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセスを図示する。
【0028】
図9a図9aは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセスを図示する。
【0029】
図9b図9bは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセスを図示する。
【0030】
図10図10は、本主題のいくつかの実装による、単一通信デバイスと複数のペアリングデバイスとの間の通信のための例示的システムを図示する。
【0031】
図11図11は、本主題のいくつかの実装による、特定のユーザ特有の共有キー(USSK)に基づいた通信デバイスとペアリングデバイスとの間の通信のための例示的システムを図示する。
【0032】
図12図12は、本主題のいくつかの実装による、データパケットのペイロード内の例示的データマッピングを図示する。
【0033】
図13図13は、本主題のいくつかの実装による、通信デバイスのプロセッサによる、データパケットのペイロードからのデータの例示的アンパック/抽出を図示する。
【0034】
図14図14は、本主題のいくつかの実装による、通信デバイスからペアリングデバイスへのデータの例示的伝送を図示する。
【0035】
図15図15は、本主題のいくつかの実装による、デバイス間の通信を提供するためのゲートウェイ(または任意の他の類似デバイス)を使用し得る、例示的システムを図示する。
【0036】
図16図16は、本主題のいくつかの実装による、例示的システムを図示する。
【0037】
図17図17は、本主題のいくつかの実装による、例示的方法を図示する。
【発明を実施するための形態】
【0038】
現在利用可能なソリューションの欠点に対処するために、本主題の1つ以上の実装は、Bluetooth(登録商標)低エネルギー通信等の無線通信システムにおいて、データ定義を使用したデータの交換および処理を提供する。
【0039】
いくつかの実装では、本主題は、1つ以上のデータ定義構造を使用して、無線通信デバイスから受信されたデータパケットまたはデータペイロードを解釈し得る、無線通信システムに関する。いくつかの例示的非限定的実装では、通信システムは、Bluetooth(登録商標)低エネルギー(「BLE」)通信システム、Wi-Fiシステム、広域ネットワーク(「WAN」)、都市規模ネットワーク(「MAN」)、ローカルエリアネットワーク(「LAN」)、仮想ネットワーク、仮想ローカルエリアネットワーク(「VLAN」)、インターネット、イントラネット、エクストラネット、および/または任意の他の無線および/または有線ネットワークおよび/またはシステムおよび/または任意のそれらの組み合わせのうちの少なくとも1つを含むことができる。本主題システムは、1つ以上のデータ定義構造を使用して、任意のタイプ、サイズ、長さ等を有し、通信システム内の任意のタイプのデバイスから発信され、および/またはそこに着信され得る、1つ以上のデータパケット/ペイロードのコンテンツを処理および/または解釈することができる。サイズ、長さ等は、固定および/または可変であることができる。いくつかの実装では、データ定義構造は、特定のソフトウェアアプリケーションに関連するデータパケット/ペイロードのコンテンツを解釈するために使用されることができるが、ソフトウェアアプリケーションが常駐/起動し得る、通信システム内の具体的デバイスから独立することができる。これは、通信システム内の各デバイスまたは通信システムに追加される新しいデバイスに対し、別個のデータ定義構造を生成する必要なく、通信システム内の複数のデバイス間のデータ定義構造を再使用することを可能にすることができる。いくつかの実装では、データ定義構造は、動作時、動的に編集される、選択される、および/または使用されることができる。本願では、具体的に記載されない限り、用語「データパケット(data packet、data packets、data packet(s)」は、1つ以上のデータパケットを意味するために同義的に使用されるであろう。同様に、用語「ペイロード(payload、payloads、payload(s)」は、1つ以上のペイロード(1つのデータパケットおよび/または複数のデータパケットかどうかにかかわらず)を意味するために同義的に使用されるであろう。
【0040】
いくつかの実装では、データ定義構造は、具体的ソフトウェアアプリケーションの開発者によって生成されることができ、ソフトウェアアプリケーションに関連するデータパケット/ペイロードを受信する、通信システム内のデバイスに伝送されることができる。いったんデータ定義構造が、デバイスによって受信されると、それは、ソフトウェアアプリケーションに関連するデータパケットをアンパックし、データパケット内に含有される情報を解釈するために使用されることができる。いったん解釈されると、データパケット/ペイロード内に含有される情報および/またはデータは、さらなる処理のために、転送されることができる。
【0041】
図1は、本主題のいくつかの実装による、例示的通信システム100を図示する。システム100は、デバイス1 102と、デバイス2 104と、サーバ106と、データ定義インターフェース108とを含むことができる。非限定的例証のみとして、システム100は、Bluetooth(登録商標)低エネルギー(「BLE」)通信システムであることができる。限定ではないが、無線、有線、および/または両方を含む、他のタイプの通信も、使用されることができる。デバイス102は、デバイス104に通信可能に結合されることができる。デバイス102は、ペアリングデバイス、例えば、センサ、パーソナルコンピュータ、携帯電話、スマートフォン、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、および/または任意の他のタイプのデバイスであることができる。
【0042】
デバイス104は、通信デバイス、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、および/または任意の他のタイプのデバイスであることができる。デバイス104は、任意の有線および/または無線通信システムを使用して、サーバ106に通信可能に結合されることができる。
【0043】
いくつかの代替実装では、1つ以上のデバイス102および/または104は、任意のコンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継または中間デバイス(例えば、それを通してデータパケットが通過するように構成される、デバイス)、エンドポイントデバイス、無線および/または有線スピーカ、無線および/または有線受信機および/または送受信機、基地局(例えば、マクロ、マイクロ、フェムト、ピコ等の基地局)、ルータ、モデム、および/または任意の他のタイプのデバイス、および/または任意のそれらの組み合わせであることができる。以下の説明は、「コンピューティングデバイス」および/または「デバイス」を同義的に指し、その全ては、上記の識別されたデバイスの任意および/または全てのものを組み込む。
【0044】
サーバ106もまた、任意の有線および/または無線通信システムを使用して、データ定義インターフェース108に通信可能に結合されることができる。データ定義インターフェースは、コンピューティングデバイス上に配置されることができ、これは、データ定義構造を生成するために使用され得る、ユーザインターフェース、例えば、ブラウザを含むことができる。デバイス102、104、およびサーバ106はそれぞれ、少なくとも1つのプロセッサと、プロセッサに結合される少なくとも1つのメモリとを含むことができ、プロセッサは、下記に議論されるように、種々の機能(例えば、データ定義ファイルに基づくデータの抽出、データ定義ファイルの生成、デバイスにデータパケット、データ定義ファイルを伝送させる等)を実施することができる。
【0045】
非限定的例証的実施例では、説明を容易にするために、通信デバイス104は、スマートフォンであることができ、ペアリングデバイス102は、温度センサであることができる。理解され得るように、デバイス102、104は、これらの実施例に限定されず、他のタイプのデバイスも、使用されることができる。デバイスは、任意の無線、有線、および/または任意の他のタイプの接続を介して、通信可能に結合されることができる。センサ102は、温度、湿度、日付、時間等を取得し、センサ102に供給され得るデータ定義構造に従って、取得される情報をアンパックし(すなわち、ペイロード内に含有される情報を抽出する)、取得される情報を解釈/処理し、BLEを介して、処理された情報をスマートフォン104に提供することができる。スマートフォン104は、受信されたデータのその独自の抽出/解釈/処理を実施することができる。
【0046】
図1に示されるように、デバイス102は、データ定義、データ定義ファイル、または構造1(以降、「DDF1」)103と、通信モジュール105(例えば、BLE通信モジュール、および/または任意の他の通信モジュール)と、感知モジュール107(例えば、センサ)とを含むことができる。いくつかの実装では、モジュール107は、テレビ、無線、エンターテインメントシステム、スピーカ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、スマートフォン、無線電話、タブレット、受信機、送信機、送受信機、車両、ドア施錠、セキュリティアクセスポイント(例えば、空港セキュリティゲートウェイ、公共輸送機関改札口等)、および/または任意の他のデバイスおよび/または任意のそれらの組み合わせ等の任意のデバイスまたはデバイスのネットワーク/システム(電子、電気、電気機械、機械、光学等、および/または任意のそれらの組み合わせ)であることができる。感知モジュール107は、外部デバイス(例えば、センサ)に結合され、および/または信号をそのような外部デバイスから受信することができる。通信モジュール105は、デバイス104と通信するために使用され得る、種々のハードウェア、ソフトウェア、および/またはハードウェアおよびソフトウェアの任意の組み合わせを含むことができる。DDF1 103は、センサ107から受信されたデータを含有する、データパケットのペイロードの構造を定義するために使用されることができる。いくつかの例示的実装では、DDF1 103は、デバイス102の製造業者によって事前にロードされることができる。代替の例示的実装では、DDF1 103は、データ定義インターフェース108を介して、データ定義サーバ117を使用して、サーバ106において作成されることができる。DDF1 103もまた、サーバ106によって、データ定義ファイル記憶装置および/またはデータベース119内に記憶されることができる。DDF1 103は、デバイス102、デバイス104、および/または両方からの受信要求に応じて、作成されることができる。いくつかの実装では、DDF1は、必要に応じて、動的に生成され、デバイス102、104および/またはサーバ106によって受信されることができる。
【0047】
いくつかの実装では、デバイス2 104は、データ定義、データ定義ファイル2、または構造(以降、「DDF2」)109と、データ解釈モジュール111と、通信モジュール113(例えば、BLE通信モジュールおよび/または任意の他の無線通信モジュール)と、無線通信モジュール115とを含むことができる。通信モジュール113は、デバイス102と通信するために使用され得る、種々のハードウェア、ソフトウェア、および/またはハードウェアおよびソフトウェアの任意の組み合わせを含むことができる。デバイス102およびデバイス104は、BLE通信媒体、無線通信、有線通信、および/または任意の他のタイプの通信を使用して、通信可能に結合されることができる。DDF2 109は、デバイス102から受信されたデータを含有する、データパケットのペイロードをアンパックするために使用されることができる。DDF2 109は、デバイス102と通信するその必要性に基づいて、デバイス104のために具体的に作成されることができる。いくつかの例示的実装では、DDF2 109は、デバイス104の製造業者によって事前にロードされることができる(例えば、どのデバイス102とデバイス104が通信することが意図されているかが把握されているとき)。代替例示的実装では、DDF2 109は、データ定義インターフェース108を介して、データ定義サーバ117を使用して、サーバ106において作成されることができる。DDF2109もまた、サーバ106によって、データ定義ファイル記憶装置および/またはデータベース119内に記憶されることができる。DDF2 109は、デバイス104がデバイス102と通信することを意図していることを示し得る、デバイス104からの要求の受信に応じて、作成されることができる。サーバの記憶装置119は、特定のデバイス104が通信することを意図し得る、種々のデバイス102についての情報を記憶することができ、したがって、また、それらをデバイス104に提供する目的のために、適切なDDF2を記憶することができる。いくつかの実装では、DDF1と同様に、DDF2も、必要に応じて、デバイス102、104、および/またはサーバ106によって動的に生成および受信されることができる。
【0048】
いくつかの実装では、データ定義ファイルは、下記に議論されるように、個別のデバイスによって受信されたデータパケットのペイロードの構造を定義する、情報を含有することができる。非限定的実施例として、情報を温度センサから受信されたデータパケットのペイロードから解釈/抽出するために使用され得る、データ定義ファイルは、データパケットのペイロードの最初の5ビットが、温度のために指定され、ペイロードの以降の16ビットが、圧力のために指定される等となることを示すことができる。データ定義ファイルはまた、デバイス(例えば、ペアリングデバイス)によって使用され、命令を他のデバイス(例えば、通信デバイス)から受信されたデータパケットのペイロードから抽出することができる。非限定的実施例として、データ定義ファイルは、情報を温度センサによって受信されたデータパケットのペイロードから解釈/抽出するために使用されることができ、最初の10ビットが、日付および時間を設定するための命令であって、次の10ビットが、温度センサデバイスを測定モードに切り替えるための命令であること等を示すことができる。データ定義ファイルは、デバイスのデータ解釈モジュール(例えば、ハードウェア、ソフトウェア、および/または任意のそれらの組み合わせ)によって使用され、情報を種々のデバイスから受信されたデータパケットのペイロードから抽出/解釈することができる。データ定義ファイルは、デバイス自体、サーバ、デバイスの製造業者(かつデバイス上に事前にロードされる)、および/または任意の他のエンティティによって生成されることができる。データ定義ファイルは、汎用であって、および/または任意のデバイスまたはデバイスのタイプに関係ないものであることができ、および/または特定のデバイス、特定のタイプのデバイス、種々のデバイスを伴う特定の通信媒体のために具体的に作成されることができ、および/または任意のそれらの組み合わせであることができる。データ定義ファイルは、サーバ、デバイス、および/または両方によって、記憶され、および/またはオンデマンドで利用可能であることができる。データ定義ファイルはまた、所望に応じて更新されることができる。
【0049】
デバイス104が、データパケットをデバイス102から受信すると、そのデータ解釈モジュール111は、デバイス102データパケットペイロード特性に合致し得る、DDF2 109を使用して、受信されたデータパケット(例えば、センサ107からの未加工データ)のペイロードコンテンツを抽出することができる。デバイス104の通信モジュール113は、データをデバイス102および104の間で受信および/または伝送する目的のために、通信リンク110を介して、デバイス102の通信モジュール105と通信することができる。したがって、通信モジュール113は、データパケットをデバイス102から受信することができ、次いで、処理するために、受信されたデータパケットをデータ解釈モジュール111に転送することができる。データ解釈モジュール111は、DDF2 109を使用して、受信されたデータパケットを解釈およびアンパックし(すなわち、ペイロード内に含有される情報を抽出する)、受信されたデータパケットのペイロード内に含有されるアンパックされた未加工データをフォーマットすることができる。フォーマットされたデータは、サーバ106における記憶のために、通信モジュール115を使用して、デバイス104からサーバ106に伝送されることができる。サーバ106は、同様にサーバ106に記憶される、DDF2 109を使用して、デバイス104から受信されたフォーマットされたデータ内に含有される情報を解釈することができる。
【0050】
図2は、本主題のいくつかの実装による、例示的通信システム200を図示する。システム200は、システム100に類似することができ、デバイス102と、デバイス104と、サーバ106と、データ定義インターフェース108とを含むことができる。図1に示されるデバイス102のコンポーネントに加え、デバイス102はまた、デバイス104のデータ解釈モジュール111に類似する機能を実施するために使用され得る、データ解釈モジュール211を含むことができる。いくつかの実装では、一方または両方デバイス102、104は、1つ以上のデータ解釈モジュールを含むことができる。デバイス102のデータ解釈モジュール211は、DDF1 103を使用して、デバイス104から受信された情報を解釈および/またはアンパックすることができる。上記に述べられるように、DDF1 103は、デバイス102上に事前にロードされ、および/またはサーバ106(および/または任意の他のコンポーネント)によってオンデマンドで生成され、デバイス104から受信されたデータを解釈/アンパックするために、デバイス102に提供されることができる。
【0051】
図3は、本主題のいくつかの実装による、例示的通信システム300を図示する。システム300は、システム100および200に類似することができ、デバイス102と、デバイス104と、サーバ106とを含むことができる。システム200(図2に示される)と同様に、デバイス102および104は両方とも、それぞれ、データ解釈モジュール211、111を含むことができる。図1および2に示されるデバイス104のコンポーネントに加え、デバイス104はまた、ハイパーテキストマークアップ言語(「HTML」)プレゼンテーション層302を含むことができる。さらに、サーバ106は、HTMLベースのプレゼンテーション層定義サーバ304を含むことができ、これは、HTMLベースのプレゼンテーションおよびデータ定義インターフェース308に通信可能に結合されることができる。いくつかの実装では、上記のHTMLコンポーネントは、デバイス104上にユーザインターフェースとして提示され得る、HTML5および/または双方向HTMLページを含むことができる。HTMLプレゼンテーション層302は、HTMLフォーマットで提示され得る、テキストの記述、ボタン、グラフ、画像、ビデオ、オーディオ等を含むことができる。HTMLベースのプレゼンテーション定義サーバ304は、HTMLプレゼンテーション層302がデバイス104上のユーザインターフェース上に表示するための1つ以上のHTMLファイルをサーブおよび/または伝送することができる(例えば、オンデマンドで)。HTMLプレゼンテーション層302は、HTMLデータをローカルで含み得、および/または表示のために、HTMLデータをHTMLベースのプレゼンテーション定義サーバ304から受信し得る(HTMLデータをHTMLプレゼンテーション層302内にローカルで記憶する代わりに)、ウェブブラウザであることができる。HTMLベースのプレゼンテーション定義サーバ304は、ウェブサーバであることができる。HTMLベースのプレゼンテーションおよびデータ定義インターフェース308は、HTMLベースのプレゼンテーション定義サーバ304内に記憶され、HTMLプレゼンテーション層302にオンデマンドで伝送され得る、HTMLデータを構築するために使用され得る、インターフェースであることができる。代替として、HTMLベースのプレゼンテーションおよびデータ定義インターフェース308は、HTMLプレゼンテーション層302内にローカルで記憶され得る、HTMLデータを構築するために使用されることができる。
【0052】
いくつかの実装では、HTMLプレゼンテーション層302に基づいて生成される、ユーザインターフェースは、種々のトランザクションを実施し、および/またはデバイス104上で動作するためのインターフェースを提供することができる。例えば、HTMLプレゼンテーション層302は、デバイス102および104の間の通信を開始し得る、データ同期アイコンまたはボタンを表示することができる。本例示的実装では、図4a-bに示されるように、HTMLプレゼンテーション層302は、デバイス102の命令定義またはデータ定義と相互作用し、そのペイロードを含む、着信データパケット(すなわち、デバイス1 102に伝送されるパケット)を生成し、デバイス102が、データ定義ファイル103を使用して、その対応するペイロードを含む、発信データパケット(すなわち、デバイス2 104に伝送されるパケット)を生成するための要求を伝送することができる。いったん発信データパケットが、デバイス104によって受信されると、データ定義ファイル109のパケットデータ定義および処理ルールが、適用され、発信データパケットのペイロード内に含有されるデータを抽出/アンパックすることができる。エラーが、通信内に検出されない場合、HTMLプレゼンテーション層302は、発信データパケットのペイロード内に含有されるようなデバイス102から受信されたデータの伝送および表示を実施することができる。いくつかの実装では、デバイス104はまた、サーバ106に対するゲートウェイ(図3には図示せず)として動作し、デバイス102から受信されたデータを提供し、かつその独自の動作を実施する、例えば、相互作用、通信等をそのユーザに提供することができる。理解され得るように、本主題は、データパケット内に含有されるデータの処理から生じる情報を提示する目的のために、上記に説明されるHTMLベースのコンポーネントの使用に限定されない。任意の他の機構も、データパケット内に含有されるデータの応答(例えば、オーディオ/ビデオ信号の生成、特定の動作モード(例えば、感知、施錠のアクティブ化、セキュリティシステムの解除等)へのデバイスの切替)をトリガするために使用されることができる。任意のインターフェースが、処理された情報を提示する、および/またはそれに作用する目的のために使用されることができる。いくつかの実装では、HTML定義(および/または任意の他のタイプの定義)が、データパケットの中に組み込まれることができ、それによって、データ定義ファイルは、その中に含有される情報をアンパック/抽出するための種々の命令を含むことができる。
【0053】
図4aは、それぞれ、デバイス102、104のデータ定義ファイル103および109の例示的コンポーネントを図示する。DDF1 103は、発信データパケットペイロード424を生成するためのデータ定義411および処理ルール415と、着信データパケットペイロード426を処理するためのデータ定義421および処理ルール423とを含むことができる。図1に示されるように、デバイス102は、データ403(例えば、センサ出力、および/または任意の他のデバイスによって出力され得る、任意の他のデータ)を取得することができる。データ403は、デバイス102によって決定されることができ、および/またはデバイス102に通信可能に結合される外部デバイスによって提供されることができる。デバイス102がセンサである、例示的実装では、センサデータ403は、センサ測定値、日付、時間、リアルタイム情報、場所情報、センサ条件情報等を含むことができる。
【0054】
いくつかの実装では、データ403は、データ定義411(例えば、データ403が解釈/パック/アンパック/等されるべき方法を示す定義)とともに、処理ルール415を使用して処理され、デバイス104への伝送のために、発信データパケット424を生成することができる。パケットの伝送は、任意の無線および/または有線通信リンク(例えば、BLE、WiFi等)および/または任意のそれらの組み合わせを介して生じることができる。デバイス104は、次いで、そのDDF2 109を使用して、情報をそこからアンパック/抽出することができる。上記の定義およびルールは、サーバ(図4aには図示せず)および/またはデバイス104から受信されることができ、および/またはデバイス102の製造業者によって事前にロードされることができる。
【0055】
いったんパケット424が、デバイス104によって受信されると、デバイス104は、そのデータ定義429および処理ルール431を使用して、データをパケット424からアンパック/抽出し、デバイス1出力437を生成することができる。データ定義429は、データをパケット424から抽出する方法に関する情報を含むことができ、特定のデバイス102に特有であることができる。定義429およびルール431は、サーバ(図4aには図示せず)から受信されることができ、および/またはデバイス104によって生成されることができ、および/またはデバイス104の製造業者によって事前にロードされることができる。
【0056】
いくつかの実装では、DDF2 109はまた、データ定義433を含むことができ、これは、着信データパケット426がデバイス102に伝送されるためのペイロードを生成するために使用されることができる。着信データパケットペイロード426は、デバイス1入力データ439を使用して生成されることができる。データ439は、非限定的実施例として、時間/日付をデバイス102上に設定する、デバイス102を測定モードに切り替える等のための命令を含むことができる。データパケット426は、無線、有線、および/または任意の他のタイプの通信および/または任意のそれらの組み合わせを使用して、デバイス102に伝送されることができる。いったんデータパケット426が、デバイス102によって受信されると、処理ルール423は、データ定義421とともに、命令をデータパケット426からアンパック/抽出し、入力データ409(例えば、センサ入力および/または任意の他のデバイスのための任意の他の入力であり得る)を生成するために使用されることができる。
【0057】
いくつかの実装では、下記にさらに詳細に説明されるであろうように、作成および/または使用され得る、各データ定義ファイルは、1つ以上の一意のデータ定義ファイル識別子(「DDF ID」)と関連付けられることができる。データ定義ファイル識別子は、特定のデータ定義ファイルのために規定されることができ、データ定義ファイルが作成された時点で、データ定義ファイルのために生成されることができ、および/またはデバイス102、104の製造業者によって事前にロードされることができる(および/またはデバイス102、104と通信し得る、外部デバイスによって提供されることができる)。いくつかの実装では、DDF IDは、デバイスによって使用され(デバイスおよび/またはデバイスと関連付けられたユーザの認証に続いて)、DDF IDと関連付けられた具体的データ定義ファイルを要求することができる。DDFは、DDF IDを受信するデバイスによって検証されることができ、適切なデータ定義ファイルが、要求側デバイスに提供されることができる。いくつかの実装では、DDF IDはまた、データ定義ファイルを作成し、および/またはデータをデータパケットペイロードからアンパック/抽出するために使用され得る、データ定義および/または処理ルールを選択および/または識別するために使用されることができる。
【0058】
図4b(図4aの例示的変形例であり得る)は、それぞれ、デバイス102、104のデータ定義ファイル103および109の例示的コンポーネントを図示する。DDF1 103は、未加工データ定義410と、発信パケットペイロード定義412と、データコンパイル定義414と、処理ルール416と、データ属性定義418と、着信パケットペイロード定義420と、データ/命令変換定義422とを含むことができる。図1および4bに示されるように、デバイス102は、未加工データ402およびデータ属性406を取得することができ、これは、いくつかの実装では、デバイス102が入力を要求し、および/またはセンサがデバイス102へのデータおよび属性の伝送を開始すると、事前に定義されることができる。いくつかの実装では、適切なデータ定義ファイルは、未加工データ402および/またはデータ属性406に基づいて選択されることができる。いくつかの実装では、センサ出力403(図4aに示されるように)は、以下の未加工データ402およびデータ属性406のうちの少なくとも1つを含むことができる。非限定的実施例として(および理解を容易にするために)、これら(すなわち、未加工データ:データ属性)は、温度:測定の時間;光度:測定の時間および条件、ドア施錠状態:ドア施錠ID、製造業者、時間;ドア施錠バイオメトリック読取値:ドア施錠ID、製造業者、時間;および/または任意のその他を含むことができる。理解され得るように、他のタイプの未加工データ:データ属性の組み合わせも、可能性として考えられる。
【0059】
いくつかの実装では、未加工データ定義410は、未加工データヘッダ、構成(例えば、未加工データビット長、含まれる未加工データの数等)についての種々のデータおよび/または情報等を含むことができる。データ属性定義418は、未加工データ402およびデータ属性406、データ属性ビット長等の組み合わせにおいて、データ属性の場所についての種々のデータおよび/または情報を含むことができる。いくつかの実装では、未加工データ402および/またはデータ属性406は、相互から別個および/または同時に、デバイス1に提供されることができる。いくつかの実装では、データコンパイルコンポーネント414は、そのように要求される場合、受信された未加工データおよびデータ属性を組み合わせることができる。
【0060】
いくつかの実装では、データコンパイルコンポーネント414は、発信データパケットペイロード424を生成するために、処理ルールコンポーネント416への1つ以上の命令(例えば、関数呼出し、トリガ等)を生成することができる。発信データパケットペイロード424のコンテンツおよび構成は、発信パケットペイロード定義412を使用して規定されることができる。いくつかの実装では、データコンパイルコンポーネント414はまた、発信データパケットペイロード424を生成する目的のために処理される必要があり得る、全ての必須情報、データ、属性、状態等を集める/コンパイルすることができる。
【0061】
いくつかの実装では、処理ルールコンポーネント422は、着信パケットペイロード定義コンポーネント420によって提供されるデータおよび/または情報に基づいて、着信データパケットペイロード426を処理することによって、命令408を生成することができる。非限定的実施例として、着信データパケットペイロードは、温度測定を開始する、大気圧の測定を開始する、1つ以上のセンサ上のタイマをリセットする等、および/または任意のそれらの組み合わせのために、時間に関連するデータおよび/または情報を含むことができる。着信パケットペイロード定義420に基づいて、処理ルールコンポーネント416は、センサが解釈および/または実行し得る、1つ以上の命令(例えば、コード)408を生成することができる。代替として、処理ルールコンポーネント422は、センサが個々に解釈および/または実行し得る、個々の命令408を生成することができる。
【0062】
いくつかの例示的非限定的実装では、着信データパケットペイロード426は、ドアを解錠するために合致されるべきユーザのバイオメトリックシグネチャを規定する、暗号化されたバイオメトリック認証認可コードの使用を通して、ドアを解錠するための命令を含むことができる。処理ルールコンポーネント422は、着信パケットペイロード定義420を使用して、データおよび/または情報(例えば、ドアを解錠するための命令、バイオメトリックシグネチャ、ユーザの識別情報等)を解析し、ドア施錠に対する1つの命令を生成することができ、命令は、解析されたデータおよび/または着信データパケットペイロード426から取得される情報の組み合わせを含有する。代替として、別個の命令が、解釈および実行のために、ドア施錠に対して個々に提供されることができる。他の例示的実装では、着信データパケットペイロード426は、自動車が、命令408の受信に応じて、座席の調節、計器パネル表示、エンターテインメントシステム設定、空調、点火開始等を実施し得るように、自動車運転者識別子を含むことができる。理解され得るように、上記は、着信命令およびその使用の非限定的例証的実施例である。さらに、本主題は、上記の例示的実装に限定されないことを理解されたい。
【0063】
未加工データ402および/またはデータ属性406は、デバイス102によって決定されることができ、および/またはデバイス102に通信可能に結合される外部デバイスによって提供されることができる。デバイス102がセンサである、例示的実装では、未加工データ402は、センサ未加工データであることができ、センサ測定値、日付、時間等を含むことができる。データ属性406は、リアルタイム情報、場所情報、センサ条件情報等を含むことができる。
【0064】
いくつかの実装では、未加工データ402およびデータ属性406は、未加工データ402が解釈/パック/アンパック/等されるべき方法を定義する情報を含み得る、未加工データ定義410と、データ属性406が解釈/パック/アンパック/等されるべき方法を定義する情報を含み得る、データ属性定義418とともに、データコンパイル414に提供されることができる。データコンパイル414は、未加工データ定義410およびデータ属性定義418を使用して、未加工データ402、データ属性406からの情報をコンパイルし、および/または組み合わせることができる。コンパイルされた情報は、次いで、発信パケットペイロード定義412に基づいて、1つ以上の処理ルール416を使用して、さらに処理され、定義410、412、418、および処理ルール416を使用して形成されるペイロードを含有する、発信データパケット424を生成することができる。発信データパケット424は、次いで、デバイス104に伝送される。パケットの伝送は、任意の無線および/または有線通信リンク(例えば、BLE、WiFi等)および/または任意のそれらの組み合わせを介して生じることができる。デバイス104は、次いで、そのDDF2 109を使用して、情報をそこからアンパック/抽出することができる。上記の定義およびルールは、サーバ(図4aには図示せず)および/またはデバイス104から受信されることができ、および/またはデバイス102の製造業者によって事前にロードされることができる。いくつかの実装では、データ定義ファイルのためのデータ定義ファイル識別子は、デバイス1 102が実施するために提供および/または命令され得る、情報/データ/機能性/関数/等に基づいて規定されることができる。例えば、データ属性406および/または着信データパケットペイロード426は、デバイス1 102が使用することになる、具体的データ定義ファイルを識別し得る、適切なDDF IDを含むことができる。デバイス1 102は、供給されるDDF IDを使用して、正しいデータ定義ファイルが、未加工データ402/データ属性406および/または着信データパケットペイロード426として受信し得る入力に適用されることになることを確認することができる。いくつかの実装では(下記にさらに議論されるであろうように)、DDF IDがデバイスが受信済みおよび/またはすでに記憶しているDDFに合致しない、またはデバイスが正しいDDFまたは必要とされ得る任意のDDFを有していない、シナリオでは、デバイスは、別のまたは第2のデバイスおよび/またはサーバに正しいDDFを要求するための要求を伝送することができる。第2のデバイスまたはサーバのいずれも、正しいDDFを有していない場合、DDFは、動的に生成されることができる(例えば、デバイスによって提供され、および/またはアンパックされる必要があり得るデータパケットペイロードと関連付けられ得る、パラメータに基づいて)。第2のデバイスはまた、第1のデバイスの要求を渡し、および/または必須DDFを伝送する際、さらに別の(第3の)デバイスおよび/またはサーバとの中間装置としての役割を果たすことができる。いくつかの実装では、デバイス1および2によって共有され得る、共有キー(下記に議論されるように)は、使用されることになるデータ定義ファイルに関する適切な情報を提供するために使用されることができる。代替として、共有キーは、デバイスによって使用されるべき特定のデータ定義ファイルを規定し得る、DDF IDを組み込むことができる。
【0065】
いったんパケット424が、デバイス104によって受信されると、デバイス104は、そのパケットデータ定義428および処理ルール430を使用して、データをパケット424からアンパック/抽出し、デバイスデータ1 436を生成することができる。データ定義428は、データを受信されたパケット424から抽出する方法に関する情報を含有することができ、特定のデバイス102に特有であることができる。定義428およびルール430は、サーバ(図4aには図示せず)から受信されることができ、および/またはデバイス104によって生成されることができ、および/またはデバイス104の製造業者によって事前にロードされることができる。
【0066】
いくつかの実装では、DDF2 109はまた、デバイス1ペイロード定義432を含むことができる。デバイス1ペイロード定義432を伴う処理ルール434は、着信データパケット426がデバイス102に伝送されるためのペイロードを生成するために使用されることができる。着信データパケットペイロードは、デバイス1命令438に基づいて、準備されることができる。命令は、非限定的実施例として、デバイス102に関する新しい時間/日付データを含む、時間/日付を設定する、デバイス102を測定モードに切り替える等のための命令を含むことができる。データパケット426は、無線、有線、および/または任意の他のタイプの通信、および/または任意のそれらの組み合わせを使用して、デバイス102に伝送されることができる。いったんデータパケット426が、デバイス102によって受信されると、処理ルール422は、着信ペイロードパケット定義420とともに、命令をデータパケット426からアンパック/抽出し、命令408を生成するために使用されることができる。
【0067】
上記と同様に、デバイス2 104によって使用されるべき特定のDDF2を識別する、データ定義ファイル識別子が、デバイス2 104に供給されることができる。例えば、発信データパケットペイロード424(複数のデータパケットを経由して伝送されることができる)は、適切なDDF2 IDを含み、デバイス2 104が、受信された発信データパケットペイロード424を正しく処理することを確実にすることができる。複数のデータパケットが1つのデータペイロードを伝送する場合、DDF識別子は、データパケットの1つ以上のまたは全てのもの内に含まれることができ、DDF識別子は、ペイロード内の全てのデータパケットを参照し、適切なデータ定義が全てのパケットに適用されることを確実にすることができる。いくつかの実装では、適切なDDF IDがデバイスによって受信されることを確実にするために、デバイス1命令438は、デバイス1およびデバイス2の両方のためのDDF識別子を含むことができる。いったんデバイス2によって受信されると、デバイス2のためのDDF2識別子は、デバイス2内に留まり、デバイス1のためのDDF1識別子は、着信データパケットペイロード426の中に含まれることができる(これはまた、複数のデータパケットにわたって伝送されることができ、それによって、DDF1 IDは、データパケットの1つ以上のものまたは全てのものの中に組み込まれることができ、および/または伝送中の全てのパケットを参照することができる)。
【0068】
いくつかの実装では、正しくないDDF ID(例えば、DDF IDがDDFに合致しない)が、デバイスのうちの1つ以上のもの上に見出される場合(および/またはDDFに合致しないDDF IDが、デバイスのうちの1つ以上のものに供給される場合)、デバイスは、相互および/またはサーバ(図4bには図示せず)と通信し、適切なDDFを要求することができる。例えば、デバイス1が、DDFに合致しないDDF IDを受信した場合、デバイス1は、デバイス2と通信することができ、これは、順に、適切なDDF IDおよび/またはDDFをサーバおよび/またはデバイス1および/またはデバイス2と通信可能に結合され得る任意の他のエンティティから要求することができる(代替として、デバイス1は、サーバ/エンティティと直接通信することができる)。いくつかの実装では、デバイス1および/または2は、両デバイスのためのデータ定義ファイル(すなわち、DDF1およびDDF2)および/または両データ定義ファイルのためのデータ定義ファイル識別子(すなわち、DDF1 IDおよびDDF2 ID)を記憶することができ、および/または提供されることができる(要求に応じて、および/または自動的に、および/または製造業者によって)。このように、1つのデバイスは、サーバおよび/または別のエンティティを伴わずに、適切なDDFおよび/またはDDF IDを他のデバイスから要求することができる。いくつかの実装では、DDF ID(および/またはDDF)は、デバイス1および2によって共有され得る、共有キー(下記に議論されるように)内に含まれ、および/またはそれによって参照されることができ、それによって、DDF ID(および/またはDDF)は、共有キーとともに、および/または共有キーの共有に続いて、提供されることができる。いくつかの実装では、DDFおよび/またはDDF IDは、1つ以上のデバイスおよび/またはサーバ/エンティティ(1つ以上のデバイスに通信可能に結合される)によって更新されることができる。DDFおよび/またはDDF IDの更新の決定に応じて、更新されたDDFおよび/またはDDF IDを受信したデバイス/サーバ/エンティティは、適切な通知を他のデバイス/サーバ/エンティティに伝送し、システム内の全てのコンポーネントが最新情報を有することを確実にすることができる。
【0069】
図5は、本主題のいくつかの実装による、データ定義ファイルの生成のための例示的開発環境500を図示する。環境500は、上記に議論される通信システム(例えば、それぞれ、図1-3に示されるシステム100、200、300)の設計時点で実装されることができる。環境500は、デバイス1開発環境502と、デバイス2開発環境504と、インターフェース108に通信可能に結合される、サーバ106とを含むことができる。環境502は、DDF1 503(対応するDDF1 IDを有する)と、DDF1開発モジュール507と、通信モジュール505とを含むことができる。通信モジュール505は、データを外部デバイス(例えば、図5に示されるようなセンサデバイス)から受信することができる。モジュール505および507は、ハードウェア、ソフトウェア、および/または任意のそれらの組み合わせを含むことができる。モジュール507は、サーバ106から受信された情報に基づいて、DDF1 503を生成するために使用されることができる。
【0070】
環境504は、DDF2 509(対応するDDF2 IDを有する)と、DDF2開発モジュール506と、通信モジュール513と、無線通信モジュール515とを含むことができる。通信モジュール507は、データを通信モジュール505から受信することができる。無線通信モジュール515は、サーバ106に通信可能に結合されることができる。サーバ106は、データ定義ファイル、デバイス102、104についての情報、および/またはデータ定義ファイルを生成するために使用され得る、任意の他の情報を記憶し得る、サーバデータベース517を含むことができる。モジュール506および513は、ハードウェア、ソフトウェア、および/または任意のそれらの組み合わせを含むことができる。モジュール506は、サーバ106から受信された情報に基づいて、DDF2 509を生成するために使用されることができる。いくつかの実装では、サーバ106はまた、対応するDDF1およびDDF2とともに、DDF1 IDおよびDDF2 IDを記憶および/または提供されることができる。
【0071】
いくつかの実装では、DDF1および/またはDDF2(個別のDDF IDとともに)は、デバイス102、デバイス104、サーバ106(例えば、インターフェース108、データベース517等を使用して)のうちの少なくとも1つを使用して、および/または任意の他のデバイスを使用して(例えば、それらは、1つ以上のデバイス上に事前にロードされることができる)、生成されることができる。DDF1および/またはDDF2(個別のDDF IDとともに)は、個別のデバイス102、104、および/または両デバイスに伝送され、および/またはその上にインストールされることができる。これは、能力を受信および/または伝送し得る、開発モジュール506および/または507を使用して、遂行されることができる。加えて、両モジュール506、507はまた、データ定義および/または処理ルール内のエラーを検出し、かつそのようなエラーを示すレポートを生成および伝送することができる。エラーは、図6に関して下記に議論されるように、確認および/または試験プロシージャを通して補正されることができる。
【0072】
図6は、本主題のいくつかの実装による、図5に示されるシステム500を使用してデータ定義ファイルを生成するための例示的プロセス600を図示する。プロセス600は、通信システム(例えば、それぞれ、図1-3に示されるシステム100、200、300)の設計時点で実施されることができる。プロセス600は、図5に示されるように、インターフェース108等のブラウザインターフェースおよびサーバ106等のサーバ(例えば、クラウドサーバ)を介して、開始されることができる。開発者は、データ定義ファイルを開発するための開発アカウントを開始および/または作成および/または設定することができる。602では、通信データ構造/インターフェースが、センサ501(および/またはデバイス1の中に組み込まれ、および/またはデバイス1に通信可能に結合され得る、任意の他のデバイス)と通信モジュール505との間の通信のために規定されることができる。通信データ構造/インターフェースはまた、通信モジュール513とデバイス2との間に規定されることができる。いくつかの実装では、505および513における通信モジュールは、アドバタイジングパケットのブロードキャスト、バック接続要求の伝送等を含む、低レベル機能(Bluetooth(登録商標)仕様に規定されるもの等)を実行するための内蔵機能性を含むことができる。ある場合には、パケットペイロード構造を規定する、事前に設定された通信プロファイル(例えば、事前に設定されたBLEプロファイル)が、使用されることができる。これらのプロファイルは、典型的には、固定され、相互運用性を確実にするために、改変されることができない。非限定的実施例として、血圧モニタが、標準BLEプロファイルを使用する場合、スマートフォンアプリケーションは、データを血圧モニタから受信するために使用されるBLE標準プロファイルのみを把握する必要があり得る。そのようなプロファイルは、血圧モニタが伝送するであろう、全ての情報を網羅するように設計されるが、多くの場合、そのようなBLEプロファイルは、十分ではないであろう。本主題は、そのような標準BLEプロファイルの使用に対するソリューションを提供する。特に、リアルタイム環境において、コーディング、コードのコンパイル/統合、検証、および試験を簡略化することによって、データペイロード構造を設計および構築する能力を提供する。本主題の別の利点は、より単純、より高速、かつより安価な方法において、コネクティビティ機能開発を可能にすることである。
【0073】
604では、データ定義モジュール507および506が、開始/設定されることができ、これは、適切な開発ソフトウェアアプリケーションを個別の開発環境502および504にサーバ106から作成および/または提供することを含むことができる。さらに、DDF IDが、生成され、および/または割り当てられ/DDFと関連付けられることができ(またはその逆)、DDFに対する変更/改定を追跡する目的のために使用されることができる。そのような開発ソフトウェアアプリケーションは、インターフェース108を使用して作成されることができ、これは、それらを、それぞれ、デバイス1および2の開発環境502および504に伝送することができる。加えて、データ定義ファイル503および509もまた、生成されることができ、それぞれ、デバイス1および2の開発環境504、506に伝送されることができる。いったんデータ定義ファイルが、開発環境に伝送されると、開発プロセス600は、デバイス1および2内で別個に進められることができる。
【0074】
デバイス1開発環境では、606において、デバイス1の開発環境が、確立されることができる。これは、通信モジュール505(例えば、BLE通信モジュール)および適切な開発ボードの選択を伴い得る。608では、接続が、センサデバイス501(および/またはデバイス1の中に組み込まれ、および/またはデバイス1に通信可能に結合され得る、任意の他のデバイス)と通信モジュール505との間に確立されることができる。610では、デバイス1のデータ定義ファイル(すなわち、DDF1)が、通信モジュール505を使用して、ダウンロードされることができる。DDF1は、サーバ106からダウンロードされることができる。代替の例示的実施形態では、DDF1は、デバイス2からダウンロードされることができる。
【0075】
デバイス2開発環境では、612において、デバイス2の開発環境が、確立されることができる。これは、通信デバイス(例えば、スマートフォン、タブレット、スマートスピーカ、本明細書に開示される任意の他のデバイス等)の選択を伴い得る。614では、データ定義ファイル2開発モジュール506が、開始/設定されることができる。これは、開発ソフトウェアアプリケーションをサーバ106からダウンロードすることを伴い得る。616では、デバイス2のデータ定義ファイル(すなわち、DDF2)が、通信モジュール515を使用して、ダウンロードされることができる。DDF2は、サーバ106からダウンロードされ、デバイス2上にインストールされることができ、これは、通信モジュール515の使用を伴わずに遂行されることができる。いくつかの実装では、認証(例えば、ログイン)が、DDF1および/またはDDF2および/または個別の開発ソフトウェアアプリケーションをダウンロードするために要求され得る。これは、DDF1およびDDF2の非認可アクセスおよび使用を防止することができる。代替の例示的実施形態では、DDF1は、どのDDF1がどのDDF2と併用されるかを追跡する等のために、デバイス2にサーバ106および/またはデバイス1からダウンロードされることができる。
【0076】
いったんDDF1およびDDF2がデバイス1および/または2にダウンロードされると、開発プロセス600は、618-624において、確認および試験に進むことができる。618では、通信が、それぞれ、デバイス1および2の開発モジュール507および506の間に確立されることができる。本通信は、それぞれ、デバイス1、2の通信モジュール505および513(例えば、BLE通信モジュールおよび/または任意の他の無線および/または有線モジュール)を使用して確立されることができる。620では、通信が、開発環境モジュール506とサーバ106との間に確立されることができる。これは、通信モジュール515(例えば、無線および/または有線通信モジュール)を使用して遂行されることができる。622では、いったん適切な開発モジュールとサーバとの間の通信リンクが、確立されると、データ転送および命令コンテンツの確認が、実施されることができる。加えて、種々のシナリオの試験が、通信の完全性および/またはロバスト性を確実にするために起動されることができる。試験は、デバイスが、適切なDDFを使用して、データを適切にパックし、および/またはデータをデータパケットから適切にアンパック/抽出することが可能であることを確実にすることを伴い得る。いったん試験が正常に完了されると、DDF1およびDDF2は、624において、ランタイム時(すなわち、生産システムにおいて)、デバイス1および2によって使用されることができる。いくつかの実装では、プロセス600は、1つのデバイスおよび/またはコンピューティングシステム(例えば、分散型コンピューティングシステム、クラウド等)上でシミュレートされることができる。デバイスおよび/またはコンピューティングシステムは、デバイス1およびデバイス2および/またはデバイス1および2に通信可能に結合されるサーバと別個であることができる。この場合、DDF1およびDDF2は、そのようなデバイスおよび/またはコンピューティングシステムによって生成および/または試験され、次いで、デバイス1および/または2および/またはサーバに供給されることができる。さらに、DDFと関連付けられたDDF IDもまた、生成され、および/またはデバイスに供給されることができる。
【0077】
図7aは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセス700を図示する。プロセス700は、デバイス1(例えば、ペアリングデバイス)102と、デバイス2(例えば、通信デバイス)104と、サーバ106との間の通信を含むことができる。本プロセスでは、デバイス102は、その上に事前にロードされたデータ定義ファイル1 103をすでに有していることができ、デバイス104は、デバイス102と通信することを所望する、新しいデバイスであることができる。図7aの上部に示されるように、デバイス104(および/またはそのユーザ)は、サーバ106に、データ定義ファイル2 109を提供するように要求することができる。これは、デバイス104が適切な証明書をサーバ106に提供すること(例えば、デバイス104のユーザインターフェース上でのサーバ106上に記憶されるユーザのアカウントへのログインのエントリおよび/または任意のそのような証明書の自動的提供(例えば、ログイン証明書の手動エントリを伴わない))に応じて遂行されることができる。証明書の確認に応じて、サーバ106は、DDF2 109をデバイス104に伝送することができる。代替として、証明書は、DDF2 109をサーバから受信するために必要とされなくてもよい。また、上記に述べられるように、DDF2 109は、デバイス104上に事前にロードされることができる。いくつかの実装では、DDF1および/またはDDF2は、データを相互から受信された1つ以上のデータパケットのペイロードから抽出するために、デバイス1および2による使用のために具体的に設計されることができる(例えば、データが複数のデータパケット/ペイロード内で受信される場合)。代替として、DDF1および/またはDDF2は、汎用であることができる。いったんデバイス2が、DDF2を受信すると、通信リンクが、図7aの下部によって示されるように、デバイス1とデバイス2との間に確立されることができる(例えば、BLE通信リンク、無線通信リンク、有線通信リンク、および/または任意の他のタイプのリンク)。BLE通信環境等のいくつかの実装では、デバイス102は、要求されるDDF2についての情報を含み得る、アドバタイジングデータパケットをブロードキャストするように構成されることができる。ブロードキャストアドバタイジングデータパケット内に含有される情報に基づいて、デバイス104は、DDF2をサーバ106から要求することができる。ある場合には、DDF2に関する情報もまた、いったんデバイス102および104の間の接続が確立されると、データパケットによって提供されることができる。アドバタイジングパケットブロードキャストの例示的実装は、2016年1月11日に出願され、「Selective Pairing of Wireless Devices Using Shared Keys」と題されたYamadaの共同所有同時係属中の米国特許出願第14/992,642号(2015年7月21日に出願された米国仮出願第62/194,939号の優先権を主張するものである)(本開示は、参照することによってその全体として本明細書に組み込まれる)に議論される。理解され得るように、システム700およびシステム700によって実施されるプロセスは、限定ではないが、任意のコンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継または中間デバイス(例えば、それを通してデータパケットが通過するように構成される、デバイス)、エンドポイントデバイス、無線および/または有線スピーカ、無線および/または有線受信機および/または送受信機、基地局(例えば、マクロ、マイクロ、フェムト、ピコ等の基地局)、ルータ、モデム、および/または任意の他のタイプのデバイス、および/または任意のそれらの組み合わせを含む、任意のタイプのデバイスを含み得る、任意の通信環境内に実装されることができる。
【0078】
いくつかの実装では、デバイス1および/または2および/またはサーバ106は、一方または両方または他のデータ定義ファイルを含み、および/または提供されることができる。デバイス/サーバは、そのようなDDFを他のデバイス(例えば、要求に応じて)に提供することができる。例えば、図7bに示されるように、デバイス1は、DDF1をデバイス2から要求してもよく(例えば、デバイス1は、DDF1が供給されていない、生成されていない、破損している等に起因して、DDF1を有していない場合がある)、同様に、デバイス2は、DDF2をデバイス1から要求してもよい。デバイス1および/またはデバイス2および/またはサーバは、適切なDDF IDを使用して、正しいデータ定義ファイルがそれらに供給されたことを決定することができる。DDF IDは、図7bに示されるように、各デバイス/サーバに事前に供給されることができ、および/または他のデバイス/サーバから要求されることができる。さらに、本願における議論は、1つのデバイスがデータ定義ファイルを別のデバイスから要求することを図示する(例えば、図8aに示されるように、例えば、デバイス1がDDF1をデバイス2から要求し、これは、順に、それをサーバ106から要求する)が、本主題のシステム内の1つまたは全てのデバイスは、システム内の他のデバイスのためのデータ定義ファイルおよび/またはデータ定義ファイル識別子を生成/記憶することができ、および/またはそれを提供されることができ、および/または要求することができることを理解されたい。
【0079】
図8aは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセス800を図示する。プロセス800(プロセス700に類似する)は、デバイス1(例えば、ペアリングデバイス)102と、デバイス2(例えば、通信デバイス)104と、サーバ106との間の通信を含むことができる。本プロセスでは、デバイス102および104は、相互に通信することを所望する、新しいデバイスであることができる。図8aの上部に示されるように、デバイス104(および/またはそのユーザ)は、サーバ106に、DDF1 103およびDDF2 109を提供するように要求することができる。これは、デバイス104が適切な証明書(例えば、デバイス104のユーザインターフェース上でのサーバ106上に記憶されるユーザのアカウントにログインするためのエントリ)をサーバ106に提供することに応じて遂行されることができる。証明書の確認に応じて、サーバ106は、DDF1 103、DDF2 109をデバイス104に伝送することができる。代替として、証明書は、DDF2 109をサーバから受信するために必要とされなくてもよい。
【0080】
いったんデバイス104が、DDF1およびDDF2を受信すると、デバイス104は、図8aの中央部分によって示されるように、デバイス102との通信を開始し(例えば、無線通信を経由して、および/または任意の他の方法において)、DDF1 103をデバイス102に伝送することができる。いったんデバイス102が、DDF1 103を受信すると、デバイス104は、図8aの下部によって示されるように、DDF2 109を使用して、デバイス102との通信を開始することができる。理解され得るように、システム800およびシステム800によって実施されるプロセスは、限定ではないが、任意のコンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継または中間デバイス(例えば、それを通してデータパケットが通過するように構成される、デバイス)、エンドポイントデバイス、無線および/または有線スピーカ、無線および/または有線受信機および/または送受信機、基地局(例えば、マクロ、マイクロ、フェムト、ピコ等の基地局)、ルータ、モデム、および/または任意の他のタイプのデバイス、および/または任意のそれらの組み合わせを含む、任意のタイプのデバイスを含み得る、任意の通信環境内に実装されることができる。
【0081】
図8bは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセス810を図示する。プロセス810は、本明細書に説明されるプロセスのいずれかと関連して実施されることができる。これは、デバイスによって伝送され得る具体的データ定義識別子に基づいて、データ定義ファイルを交換/受信するために使用されることができる。図8bに示されるように、デバイス1 102は、デバイス2 104に通信可能に結合されることができ、これは、サーバ106に通信可能に結合されることができる。理解され得るように、デバイス1 102は、直接、サーバ106および/またはデバイス104のみに結合されることもできる。図8bに示されるように、サーバ106は、データ定義ファイル1 103およびデータ定義ファイル2 109のコピーを含むことができる。デバイス1 102は、デバイス2 104がデータ定義ファイル1 103のコピーを取得するための要求を伝送することができる。要求では、デバイス1は、データ定義ファイル1識別子(DDF1 ID)を伝送することができる。要求およびDDF1 IDの受信に応じて、デバイス2 104は、要求をDDF1 IDとともにサーバ106に伝送し、DDF1 103のコピーを取得することができる。サーバ106は、次いで、DDF1 103をデバイス2 104に伝送することができ、これは、順に、それをデバイス1 102に伝送することができる。デバイス1 102は、DDF1 IDを使用して、正しいDDF1が受信されたことを検証することができる。代替として、デバイス2 104は、DDF1のコピーを記憶することができ、デバイス1 102は、それをデバイス2から直接要求することができる(すなわち、サーバ106へのさらなる伝送を伴わずに)。さらに別の代替実装では、デバイス1 102は、DDF1のための要求をサーバ106に直接伝送することができる。同様に、デバイス2 104は、デバイス1 102および/またはサーバ106にデータ定義ファイル(例えば、DDF1および/またはDDF2)のコピーのための要求を伝送することができる。要求は、適切なデータ定義ファイル識別子を含むことができる。さらに、デバイスは、相互にデータ定義ファイルのコピーを伝送することができ、データ定義ファイルの受信に応じて、受信側デバイスは、データ定義ファイル識別子を使用して、データ定義ファイルの正しいコピーが受信されたことを検証することができる。上記のプロセスは、デバイスとサーバおよび/または相互の認証の一部として、および/またはその前におよび/または後に実施されることができる。
【0082】
図9aは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセス900を図示する。プロセス900(上記に説明されるプロセス700、800、810に類似する)は、デバイス1(例えば、ペアリングデバイス)102と、デバイス2(例えば、通信デバイス)104と、サーバ106との間の通信を含むことができる。本プロセスでは、デバイス102は、ユーザ特有の共有キー(「USSK」)および/またはグローバル共有キー(「GSK」)902をDDF1 103および/または適切なDDF ID(例えば、DDF1 IDおよび/またはDDF2 ID)とともに含むことができる。いくつかの実装では、USSK/GSK902は、DDF1 IDを含むことができ、および/またはDDF1 IDは、別個に提供されることができる。いくつかの実装では、図9aに示される1つ以上のコンポーネントは、通信ネットワークのコンポーネント(例えば、ゲートウェイ、サーバ、他のコンピューティングデバイス等)であることができ、ネットワークに登録される(例えば、ネットワークのコンポーネントについての情報(例えば、アドレス等)を記憶し得る、ネットワークデータベースコンポーネント内に含まれる)ことができる。USSK/GSKは、2016年1月11日に出願され、「Selective Pairing of Wireless Devices Using Shared Keys」と題されたYamadaの共同所有同時係属中の米国特許出願第14/992,642号(2015年7月21日に出願された米国仮出願第62/194,939号の優先権を主張するものである)(本開示は、参照することによってその全体として本明細書に組み込まれる)に議論される。USSK902(またはGSK)の使用はさらに、2つのデバイス間の通信のセキュリティを確実にすることができる。本プロセスでは、サーバ106は、USSK902(またはGSK)を記憶することができ、デバイス104からの適切な要求の受信(例えば、デバイス104のユーザのサーバ106上に記憶されるユーザのアカウントへのログイン、および/またはデバイス104は、ユーザ入力を伴わずに、および/または任意の他の機構を使用して、自動的に/手動で、その情報/証明書をサーバ106に提供することができる)に応じて、USSK902をデバイス104に提供することができる。代替として、サーバ106は、USSK902を記憶する必要がなく、USSK902は、デバイス102、104のみによって共有されることができる。上記に述べられるように、DDF IDはまた、サーバ106を伴わずに、デバイス102、104によって相互に提供されることができる。
【0083】
いったんデバイス104が、USSK902を受信すると、デバイス104およびデバイス102は、通信(例えば、BLE通信、無線および/または有線通信接続等)を開始および/または確立することが可能であって、および/またはそのように構成されることができる。デバイス104は、次いで、USSK902をデバイス102に送信することができる。代替として、USSKは、任意の通信を確立することに先立って、送信されることができる。デバイス104からのUSSK902の受信に応じて、デバイス102は、そのステルスモードを中断することができ、DDF2 109要件情報/データをデバイス104に伝送することを開始することができる。そのような情報をデバイス102から受信後、デバイス104は、図9aの中央部分によって示されるように、サーバ106にそれにDDF2 109を提供するための要求を伝送することができる。
【0084】
サーバ106は、DDF2 109のための要求をデバイス104から受信後、DDF2 109をデバイス104に伝送することができる。いったんデバイス104が、DDF2 109を受信すると、図9aの下部によって示されるように、デバイス102と通信することができ、DDF1/DDF2は、データをデータパケットのペイロードからアンパック/抽出するために使用されることができる。適切なDDF IDは、DDFを要求し、および/または正しいバージョンのDDFが受信および/または伝送されたことを検証するために使用されることができる。
【0085】
いくつかの代替実装では、サーバは、デバイス104を使用してユーザによって提供される証明書が、USSK902およびDDF2 109の両方を提供する必要性を確認する場合、USSK902およびDDF2 109の両方を同時に提供することができる。デバイス102および104が、USSK902を使用して通信リンクを確立するとすぐに、デバイス102および104は、DDF1およびDDF2を使用して、データおよび/または命令の交換を開始することができる。
【0086】
図9bは、本主題のいくつかの実装による、2つのデバイス間の通信のための例示的プロセス910を図示する。プロセス910は、複数のサーバ(例えば、サーバ106および906)が使用される状況において使用されることができる。プロセス910は、サーバ106および906の間のUSSK/GSK902の伝送を可能にすることができる。伝送は、セキュアであることができ、ユーザが有効識別および/または認証証明書を提供することに応じて開始されることができる。
【0087】
図9bの第1の行に示されるように、デバイス102は、USSK902およびDDF1 103を含むことができ、サーバ2 906は、USSKおよびDDF2 109を含むことができる。USSK902は、デバイス102、104および/またはサーバ106、906の接続のために使用されることができる。DDF1 103およびDDF2 109は、(上記の議論による)通信目的のために、デバイス102、104によって使用されることができる。図9bの第2の行によって示されるように、サーバ906が、USSK902およびDDF2 109をサーバ106に伝送するために認可され得る(例えば、ユーザが適切な証明書および/または認証をサブミットすることによって(例えば、ユーザは、ユーザのオンラインリテールアカウントにログインする必要がある)、および/または証明書/認証情報が、ユーザの入力を伴わずに提供されることができる)。いったんUSSK902およびDDF2 109が、サーバ106に伝送されると、サーバ106は、USSK902およびDDF2 109のサーバ906からサーバ106への認可された伝送によって、ユーザの認証を実施することができる。ユーザは、デバイス104を使用することが認証され得る。デバイス104は、次いで、図9bにおける第3の行によって示されるように、USSK902およびDDF2 109をサーバ106から受信する。図9bにおける第4の行によって示されるように、デバイス104は、次いで、アドバタイジングパケットをUSSK902とともブロードキャストすることができ、DDF1およびDDF2を使用して、通信のためにデバイス102に接続されることができる。上記と同様に、適切なDDF IDが、DDFを図9bに示されるサーバおよび/またはデバイスのいずれかから要求し、および/またはDDFの正しいコピーが受信および/または伝送されたことを検証するために使用されることができる。さらに、DDF IDは、USSKを使用して(例えば、USSK内に含まれ得る)、またはUSSKを使用せず、伝送されることができる。任意のデータおよび/または命令が、全てのデバイス102、104およびサーバ106、906の間で交換されることができる。
【0088】
図10は、本主題のいくつかの実装による、単一通信デバイスと複数のペアリングデバイスとの間の通信のための例示的システム1000を図示する。システム1000は、複数のデバイス1002(a、b、c、d)と、単一通信デバイス104と、サーバ106とを含むことができ、その全ては、相互に通信可能に結合されることができる。デバイス1002は、個別のデータ定義ファイル1 1003(a、b、c、d)を含み、および/または提供されることができる。別個のDDF1 IDは、DDF1 1003のそれぞれを識別するために使用されることができる。代替として、1つのDDF1 IDが、DDF1 1003のそれぞれを識別するために使用されることができる。1つ以上のDDF1 1003は、デバイスの製造業者によって事前にロードされることができ、および/またはデバイス1002にサーバ106および/またはデバイス104から伝送されることができる。DDF IDは、正しいDDF1 1003が伝送され、および/またはデバイス/サーバのいずれかによって受信されることを要求および/または検証するために使用されることができる。デバイス1002とデバイス104との間の通信を提供するために、通信デバイス104は、個別のデバイス1002(a、b、c、d)に対応するDDF2(a、b、c、d) 1009(a、b、c、d)を記憶することができる。DDF2 1009は、デバイス104上に事前にロードされることができ、および/またはデバイス104からの要求に応じて、サーバ106によって提供されることができる。
【0089】
いくつかの実装では、デバイス104内のデータ解釈モジュール(図10には図示せず)は、デバイス104によって特定のデバイス1002から受信されたアドバタイジングパケットおよび/またはデータパケットの検出に応じて、適切なDDF2 1009を選択することができる。代替として、DDF2 IDは、適切なDDF2 1009を選択するために使用されることができる。選択されたDDF2 1009は、データをそのパケットのペイロードからアンパック/抽出するために使用されることができる(例えば、DDF2a 1009aは、データをデバイス1002aから受信された1つ以上のデータパケットのペイロードからアンパック/抽出するために使用されることができる等)。いくつかの実装では、1つのDDF2 1009は、データを1つ以上のまたは任意のデバイス1002から受信されたデータパケットのペイロードからアンパック/抽出するために使用されることができる。いくつかの実装では、デバイス1002(a、b、c、d)は、異なるUSSKを有することができる。デバイス2は、デバイス1のうちの1つ内に記憶され得る、USSKを伝送することができ、どのデバイス1とデバイス2が通信すべきかを規定することができる。デバイス2は、USSKと関連付けられたDDF2のうちの1つを使用することができる。
【0090】
図11は、本主題のいくつかの実装による、特定のユーザ特有の共有キー(USSK)に基づく通信デバイスとペアリングデバイスとの間の通信のための例示的システム1100を図示する。システム1100は、デバイス1(例えば、ペアリングデバイス)102と、デバイス2(例えば、通信デバイス)104と、サーバ106とを含むことができる。デバイス102は、デバイス104との通信のための複数のDDF1 1103(a、b、c)を含むことができる。これは、デバイス102が異なる目的のために使用され、および/または異なる機能および/または異なる通信を実施し得るとき、有用であり得る。システム1100では、デバイス104は、デバイス102がデバイス104に応答するために使用する、特定のユーザ特有の共有キーに基づいて、特定のDDF2 1109(サーバ106から取得されることができ、および/またはデバイス104上に事前にロードされることができる)を使用することができる。例えば、デバイス102が、USSKa 1102に応答する場合、DDF1a 1103aおよびDDF2a 1109が、2つのデバイス間の通信のために使用されることができる。いくつかの例示的実装では、デバイス2は、デバイス102から受信されたデータパケットのタイプに関係なく、データをデバイス102から受信されたデータパケットのペイロードからアンパック/抽出するために、1つ以上のDDF2を使用することができる。
【0091】
さらに、サーバ106は、1つ以上のDDF2 1109を記憶することができ、要求に応じて、それらをデバイス104に提供することができる。図11に示されるように、DDF2dは、デバイス102との通信のためにデバイス104によって使用されないため、デバイス104に提供されていない。
【0092】
代替として、DDF IDは、適切なDDFが受信され、および/または個別のデバイスに伝送されることを要求、伝送、および/または検証するために使用されることができる。さらに、USSKの代わりに、および/またはそれに加え、DDF IDが、適切なデバイスによって伝送および/または検出され、DDFを伝送、受信、および/または検証することができる。
【0093】
図12は、本主題のいくつかの実装による、データパケットのペイロード内の例示的データマッピングを図示する。例証を容易にするために、図12は、血糖値センサの測定に関連するデータのデータマッピングについて議論する。理解され得るように、本主題は、任意の種類のデバイス102データに適用可能であることができ、血糖値センサに限定されない。図12に示されるデータマッピングプロセスは、上記の図4a-bに関して議論されるものに類似する。血糖値計読取値データ、測定日/時間データ等を含み得る、センサデータ1202が、デバイス102に提供されることができる。データコンパイルモジュール1214は、本データを、未加工データ定義1210、データ属性定義1218とともに使用して、発信パケットペイロード定義1212を使用して発信パケットペイロードを生成するためのデータをコンパイルすることができる。未加工データ定義1210は、データパケット1250のペイロード内にマッピングされるデータの前に、未加工データが解釈されるであろう方法を規定することができる。発信パケットペイロード定義は、データがデータパケット1250のペイロード内にマッピングされるであろう方法を規定することができる。例えば、血糖値計読取値データ1213(コンパイルされる)は、データパケット1250のペイロード内の場所1249、1252のビット57および105から開始してマッピングされ、各場所は、16ビットを有することができる。データ属性定義1218は、測定日/時間データ1215(コンパイルされる)がデータパケット1250のペイロード内でマッピングされるであろう前に、未加工データが解釈されるであろう方法を規定することができる。発信パケットペイロード定義は、データパケット1250のペイロード内でデータがマッピングされるであろう方法を規定することができる。例えば、日付/時間は、データパケット1250のペイロード内の場所1251、1253のビット73および121から開始してマッピングされ、各場所は、32ビットを有することができる。発信パケットペイロード定義は、ペイロード内にあるであろうデータのセットの数を規定することができる(例えば、「N」であって、Nは、ゼロを上回るまたはそれと等しい整数であることができる)。図12に示されるように、2セットのデータがペイロード内に存在する。
【0094】
いくつかの例示的実装では、処理ルール1216は、デバイス102のプロセッサによって使用され、定義1210、1212、1218および供給されたデータ1202を使用して、デバイス104(図12には図示せず)への伝送のために、発信パケット1250を生成することができる。パケット1250は、種々の標準コンポーネント1248(例えば、8ビットを有するプリアンブル、32ビットを有するアクセスアドレス、8ビットを有するヘッダ、8ビットを有するパケットの長さの識別)と、パケットの最後に位置する、巡回冗長性検査(「CRC」)1254とを含むことができる。これらの標準コンポーネントは、通信リンク(例えば、BLE通信リンク、無線通信リンク、有線通信リンク、および/または任意の他のリンクおよび/または任意のそれらの組み合わせ)を経由して、ソース(すなわち、デバイス102)からの適切な伝送と、宛先(すなわち、デバイス104)におけるデータパケットの受信とを確実にするために使用されることができる。いくつかの実装では、定義1210、1212、および1218が、使用されるため、データパケット1250のペイロード(1249、1251、1252、および1253内に含有される)は、例えば、図12に示されるように、具体的固定サイズを有することができ、ペイロードのサイズは、96ビットである。代替実装では、ペイロードのサイズは、可変であることができる。
【0095】
図13は、本主題のいくつかの実装による、デバイス104のプロセッサによるデータパケット1250のペイロードからのデータの例示的アンパック/抽出を図示する。いったんパケット1250(図12に示される)が、デバイス104に到着すると、デバイス104のプロセッサは、データをそのペイロードからアンパック/抽出するために使用される、DDF2 109を使用することができる。DDF2 109は、パケットペイロード定義1328を含むことができる。定義1328は、ビット57-72および105-120に対応する場所においてセンサデータがペイロード内に含有されることを規定することができ、日付/時間データは、ビット73-104および121-152に対応する場所においてペイロード内に含有される。処理ルール1330は、定義1328とともに、データをデータパケット1250のペイロードから抽出し、データ1336をデバイス104上に提示するために使用されることができる。データは、デバイス104のユーザによって所望され得る、任意のフォーマットで提示されることができ、および/または特定のフォーマットが、規定されてもよい(例えば、図13に示されるように)。データ1336は、データの記憶および/または管理のために、サーバ(図13には図示せず)に伝送されることができる。
【0096】
図14は、本主題のいくつかの実装による、デバイス104からデバイス102へのデータの例示的伝送を図示する。血糖値センサの実施例では、伝送されるデータは、測定を開始する、時計を設定する等のセンサへの命令を含むことができる。理解され得るように、デバイス102に伝送されるデータは、命令に限定されず、任意の他のデータであることができる。図14に戻って参照すると、デバイス104は、命令1438(例えば、センサをリセットするための命令)を生成および/または取得することができる。命令1438は、内部で生成される、ユーザによって打ち込まれる、外部エンティティによって供給される等であることができる。命令1438は、サーバ106(図14には図示せず)によって伝送されることができる。デバイス104のデータ定義ファイル2 109は、デバイス102への伝送のための命令1438に基づいてデータパケット1450を準備するために使用されることができる。
【0097】
命令1438は、処理ルール1430に供給されることができ、これは、デバイス1ペイロード定義1432(例えば、「センサリセット:0x0005」)とともに、データを着信パケット1450の中にマッピングすることができる。16ビット(ビット57から開始)から成り得る、データ1450のペイロード1451は、上記の命令(すなわち、「0x0005」)を組み込むことができる。他の標準コンポーネント(図14に示されるように)は、データパケット1450内に含まれ、正しい宛先、すなわち、デバイス102へのデータパケット1450の伝送を確実にすることができる。
【0098】
いったんパケット1450が、デバイス102によって受信されると、データ定義ファイル1 103は、データパケット1450のペイロード内に含有されるデータ、すなわち、センサをリセットするための命令をアンパック/抽出するために使用されることができる。処理ルール1416は、着信パケットペイロード定義1420とともに、デバイス102のプロセッサによって、受信されたデータパケットのペイロード内のデータをアンパック/抽出するために使用されることができる。ペイロード定義1420を使用して、デバイス102のプロセッサは、受信されたデータ/命令がセンサをリセットするための命令(例えば、「0x0005:センサリセット」)に対応することを決定することができる。抽出された命令1408は、適切なアクションのために、センサに提供されることができる。
【0099】
図12-14は、データの1つ以上のセットが単一データパケットのペイロード内に設置され得る、シナリオを図示するが、いくつかの例示的実装では、データは、2つ以上のデータパケットに分割されることができる。例えば、これは、データパケットのペイロードの所定のサイズを超えないことを確実にするために行われることができる。代替として、これは、より大きいペイロードデータパケットが伝送/受信のためにより多くの時間を要求し得るため、より都合の良い通信を確実にすることができる。データパケットのペイロード内に含まれる特定のデータの総サイズおよび/または具体的サイズ(デバイス102からデバイス104に伝送されるかまたはその逆に伝送されるかにかかわらず)は、種々の要因、例えば、伝送されているデータ、デバイス102、104、ユーザ選好、開発者選好、通信リンク要件等に基づいて、事前に定義されることができる。ペイロードの総サイズおよび図12-14に示されるデータの具体的セクションのサイズは、ここでは、例証的目的のためだけに提供され、本主題は、示されるサイズに限定されない。
【0100】
さらに、処理ルールが、図12-14に示されるが、そのような処理ルールは、随意であることができ、ペイロードは、定義のみに基づいて、データをパックされることができる。さらに、理解され得るように、デバイス102によって伝送される1つ以上のデータパケットのペイロード内のデータは、デバイス102からの伝送の時間に先立って、デバイス104への伝送の間、および/またはデバイス104による受信の時点でのいずれかにおいて、修正される、組み合わせられる、分離される、削除されること等ができる。いくつかの実装では、ペイロードは、1つ以上のデータパケットからのデータの組み合わせのための命令を含むことができる。
【0101】
いくつかの実装では、DDFは、それらが、作成、伝送、および/または記憶されるとき、暗号化されることができる。これは、セキュリティ理由のために、および/またはDDFのコンテンツの機密性を維持するために、行われることができる。DDFコンテンツの完全性は、種々のセキュリティ手段、例えば、証明書、チェックサム等を使用して、保護されることができる。
【0102】
いくつかの実装では、処理ルールは、通信プロトコルを含むことができ、例えば、プロトコルは、特定の順序で交換され得る、データパケットのタイプおよび/またはデータパケット内のコンテンツのタイプを規定することができる。これは、DDFおよび/またはDDF IDがオンデマンドで交換されるため、デバイス1および2および/または任意の他のデバイスの間の通信におけるセキュリティを向上させることができる。他のタイプのセキュリティ手段も、デバイス1および2、サーバ、および/または任意の他のデバイス間の通信を保護するために実装されることができる。
【0103】
図15は、本主題のいくつかの実装による、デバイス間の通信を提供するためにゲートウェイ(または任意の他の類似デバイス)を使用し得る、例示的システム1500を図示する。システム1500は、サーバ1 1502と、ネットワーク(例えば、クラウド)1501を経由して通信可能に結合される、サーバ2 1504(代替として、サーバのみまたは2つを上回るサーバが使用されることができる)と、ゲートウェイデバイス1506と、ユーザデバイス1508と、1つ以上の外部デバイス1510(a、b、c)とを含むことができる。いくつかの実装では、システム1500の1つ以上のまたは全てのコンポーネントは、任意のタイプの有線および/または無線接続を介して、それぞれと通信可能に結合されることができる。例示的実装では、ゲートウェイデバイス1506は、Ethernet(登録商標)接続および/または無線接続および/または任意の他のタイプの接続を使用して、サーバ1 1502と通信可能に結合されることができる。すなわち、ユーザデバイス1508は、無線接続(例えば、LTE、WiFi等)を使用して、サーバ2 1504と通信可能に結合されることができ、ゲートウェイデバイス1506およびユーザデバイス1508は、Bluetooth(登録商標)接続等の無線接続を使用して、通信可能に結合されることができ、外部デバイス1510は、Bluetooth(登録商標)接続等の無線接続を使用して、ゲートウェイデバイス1506および/またはユーザデバイス1508の一方または両方に通信可能に結合されることができる。さらなる例示的非限定的実装では、外部デバイス1510は、センサ、ドア施錠、識別タグ、テレビ、無線、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継デバイス、中間デバイス、エンドポイントデバイス、無線スピーカ、有線スピーカ、無線受信機、有線受信機、送受信機、基地局、ルータ、モデム、および/または任意の他のデバイスおよび/または任意のそれらの組み合わせのうちの1つ以上のものであることができる。
【0104】
いくつかの実装では、ゲートウェイデバイス1506は、ユーザデバイス1508と外部デバイス1510との間の通信を提供する目的のために使用されることができる。ゲートウェイデバイス1506は、セキュリティを通信に提供するために使用されることができ、それによって、外部デバイス1510および/またはユーザデバイス1508へおよび/またはそこから受信および/または伝送されるデータは、上記に議論される1つ以上の実装に従って、適切なDDFおよび/またはDDF IDを使用して要求および/または検証されることができる。ゲートウェイデバイス1506は、外部デバイス1510に関連して任意の場所に位置付けられることができる。いくつかの実装では、ゲートウェイデバイス1506は、1つ以上の外部デバイス1510とのオンデマンドのおよび/または連続的な通信を維持するために使用されることができる。サーバ1502(および/またはサーバ1504)は、限定ではないが、外部デバイス1510からのデータの収集、種々のタスクを実施するための外部デバイス1510への命令の提供等を含む、ゲートウェイデバイス1506が外部デバイス1510と相互作用する方法を制御することができる。ゲートウェイデバイス1506はまた、独立して、サーバ1502(および/またはサーバ1504)および/または1つ以上の外部デバイス1510とタスクを実行することができる。ゲートウェイデバイス1506は、コマンドを受け取り、および/またはその状態を表示し得る等のように、ヒューマンインターフェースを含むように構成されることができる。例えば、ゲートウェイデバイス1506は、ユーザデバイス1508との通信インターフェースを有することができる。さらに、いくつかの非限定的例示的実装では、1つ以上の外部デバイス1510は、上記に議論されるペアリングデバイスに類似することができ、ゲートウェイデバイス1506およびユーザデバイス1508は、上記に議論される通信デバイスに類似することができ、サーバ1502/1504は、同様に上記に議論される、サーバに類似することができる。さらなる非限定的例示的実装では、ゲートウェイデバイス1506は、上記に議論される、通信デバイスに類似することができ、ユーザデバイス1508は、ペアリングデバイスに類似することができ、またはその逆も同様である。ゲートウェイデバイス1506、外部デバイス1510、および/またはユーザデバイス1508は、上記に議論される1つ以上の実装に従って、DDFおよび/またはDDF IDを受信および/または伝送することを要求することができる(および/または要求されることができる)。さらに、ゲートウェイデバイス1506は、外部デバイス1510に関連して任意の場所に位置付けられることができる。
【0105】
いくつかの実装では、サーバ2 1504は、1つ以上の共有キー(上記に議論されるように)を生成し、記憶し、および/またはゲートウェイデバイス1506および/またはユーザデバイス1508に提供することができる。共有キーは、ゲートウェイデバイス1506、ユーザデバイス1508、および/または外部デバイス1510のうちの1つ以上のものの間の通信を確立するために使用されることができる。共有キーの使用は、2016年1月11日に出願され、「Selective Pairing of Wireless Devices Using Shared Keys」と題されたYamadaの共同所有同時係属中の米国特許出願第14/992,642号(2015年7月21日に出願された米国仮出願第62/194,939号の優先権を主張するものである)(本開示は、参照することによってその全体として本明細書に組み込まれる)に議論される。ゲートウェイデバイス1506、ユーザデバイス1508、および/または1つ以上の外部デバイス1510の組み合わせは、アクセス制御、機械間データ収集、デバイス制御、標的通知/アドバタイズメント、クーポン払出、支払、支払許可/確認、デジタル著名/表記等の目的のために使用されることができる。いくつかの実装では、データ、データ定義、データ定義ファイル識別子、共有キー、および/または任意の他のデータは、同時におよび/またはオンデマンドでおよび/または所定のシーケンスにおいて一度に伝送されることができ、および/または暗号化されることができる。いくつかの実装では、外部デバイス1510は、プライベート暗号化キーおよび/またはパブリック暗号化キーを生成することができる。パブリック暗号化キーは、ゲートウェイデバイス1506および/またはユーザデバイス1508と共有されることができる。ゲートウェイデバイス1506および/またはユーザデバイス1508が、外部デバイス1510と通信するとき、その伝送は、外部デバイス1510が生成および共有する、パブリック暗号化キーによって暗号化されることができる。外部デバイス1510が、ゲートウェイデバイス1506および/またはユーザデバイス1508へのその伝送を暗号化すると、その個別のパブリック暗号化キーは、ゲートウェイデバイス1506および/またはユーザデバイス1508が外部デバイス1510と共有されるその独自のパブリック暗号化キーを有することを前提として、使用されることができる。
【0106】
アクセス制御の例示的実装では、ユーザデバイス1508は、サーバ1504に、特定の外部デバイス1510(例えば、ホテルの部屋内のドア)へのアクセスを提供するように要求することができる。サーバ1504は、ユーザデバイス1508が、認可されており(例えば、ユーザデバイス1508のユーザが、ユーザ/ユーザデバイスの識別を検証し、および/またはユーザデバイスおよび/またはユーザデバイス上のソフトウェアを認証するための適切な証明書を供給した)、および/または外部デバイス1510に近接することを検証することができる。いったん認証が完了すると、ゲートウェイデバイス1506は、ユーザデバイス1508と外部デバイス1510との間のアクセスを協調させるために使用されることができる(例えば、ユーザデバイス1508が外部デバイス1510にアクセスすることを可能にする、具体的共有キーをユーザデバイス1508および外部デバイス1510の両方に供給することによって)。代替実装では、アクセス制御のために、ゲートウェイデバイス1506は、アクセス制御が、正しい共有キーと適切なDDF IDに関連付けられたDDFとを有する、ユーザデバイス1508および/または外部デバイス1510によって達成されることができるため、必要とされない場合がある。サーバ1504(および/または1502および/または組み合わせられたサーバ1502/1504)は、ユーザデバイス1508が外部デバイス1510にアクセスすることを可能にし得る、具体的共有キーをオンデマンドでユーザデバイス1508および/または外部デバイス1510の両方に供給することができる。サーバ1504(および/または1502および/または組み合わせられたサーバ1502/1504)もまた、そのように要求/要請される場合、DDFを提供することができる。さらに、1つ以上のサーバ1502/1504はまた、通信が他のサーバと外部デバイス1510との間に存在する限り、必要とされない場合がある。
【0107】
いくつかの実装では、ゲートウェイデバイス1506は、多数の外部デバイス1510(例えば、数十、数百、数千、数百万等)と通信するように構成されることができ、動作、デバイスとシステム1500の他のコンポーネントとのペアリング(必要な場合)を制御し、種々の情報をデバイス1510から収集し、および/または本情報をサーバ1502および/または1504に提供することができる。同様に、システム1500は、場所追跡(例えば、大規模倉庫内の従業員および/またはアイテム場所の追跡、災害発生後の復興/救済の試みにおける救助隊の場所の追跡)および/または外部デバイス1510の追跡の目的のために使用されることができる。
【0108】
いくつかの実装では、特定の外部デバイス1510(例えば、センサ)を始動および/または設定するために、ユーザデバイス1508は、外部デバイス1510と通信し、初期設定(例えば、センサ機能診断の実施、アカウント設定、場所登録、データ定義ファイル、データ定義ファイル識別子、共有キーの交換等)を実施することができる。ユーザデバイス1508は、ゲートウェイデバイス1506と通信し、初期設定(例えば、センサ機能診断の実施、アカウント設定、場所登録、データ定義ファイル、データ定義ファイル識別子、共有キーの交換等)を実施することができる。サーバ1502および/または1504のうちの1つ以上のものは、適切な接続情報(例えば、DDF、DDF ID、共有キー等)を供給するために使用されることができる。ユーザデバイス1508は、1つ以上の外部デバイス1510にアクセスすることができ、初期設定を実施することができる。ゲートウェイデバイス1506は、次いで、適切な接続情報(例えば、DDF、DDF ID、共有キー等)の提供、そして要求される場合、ペアリングおよび/またはプロビジョニングの完了を含む、1つ以上の外部デバイス1510との接続を確立することができる。ユーザデバイス1508は、次いで、ゲートウェイデバイス1506と外部デバイスとの間の接続が確立されたことの確認を受信することができる。いったんゲートウェイデバイス1506と外部デバイス1510との間の接続が確立されると、1つ以上のサーバ1502および/または1504は、ゲートウェイデバイス1506および1つ以上のデバイス1510の動作を開始する(例えば、温度センサをオンにし、温度測定を開始する)ための命令を伝送することができる。いくつかの実装では、新しいユーザデバイス1508は、外部デバイスとの通信を確立し、および/またはデバイス機能診断および/または保守(例えば、これは、新しいユーザデバイス1508および/またはそのユーザが認証された後に実施されることができる)を実施するために、DDF、DDF ID、共有キー等をサーバ1502および/または1504のうちの1つから要求および受信することができる。いくつかの実装では、システム1500は、図15に示される構成に限定されない。例えば、複数のゲートウェイデバイス1506、複数のユーザデバイス1508、複数のサーバ(および/または1つの組み合わせられたサーバ)等が、存在することができる。システム1500のコンポーネント間の任意のタイプの通信/接続機構が、使用されることができる。
【0109】
いくつかの実装では、本主題は、図16に示されるように、システム1600内に実装されるように構成されることができる。システム1600は、プロセッサ1610と、メモリ1620と、記憶デバイス1630と、入力/出力デバイス1640とを含むことができる。コンポーネント1610、1620、1630、および1640はそれぞれ、システムバス1650を使用して相互接続されることができる。プロセッサ1610は、システム1600内での実行のための命令を処理するように構成されることができる。いくつかの実装では、プロセッサ1610は、単一スレッド式プロセッサであることができる。代替実装では、プロセッサ1610は、マルチスレッド式プロセッサであることができる。プロセッサ1610はさらに、入力/出力デバイス1640を通した情報の受信または送信を含む、メモリ1620内または記憶デバイス1630上に記憶される命令を処理するように構成されることができる。メモリ1620は、情報をシステム1600内に記憶することができる。いくつかの実装では、メモリ1620は、コンピュータ可読媒体であることができる。代替実装では、メモリ1620は、揮発性メモリユニットであることができる。さらにいくつかの実装では、メモリ1620は、不揮発性メモリユニットであることができる。記憶デバイス1630は、システム1600のための大容量記憶を提供可能であることができる。いくつかの実装では、記憶デバイス1630は、コンピュータ可読媒体であることができる。代替実装では、記憶デバイス1630は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイス、不揮発性ソリッドステートメモリ、または任意の他のタイプの記憶デバイスであることができる。入力/出力デバイス1640は、システム1600のための入力/出力動作を提供するように構成されることができる。いくつかの実装では、入力/出力デバイス1640は、キーボードおよび/またはポインティングデバイスを含むことができる。代替実装では、入力/出力デバイス1640は、グラフィカルユーザインターフェースを表示するために、ディスプレイユニットを含むことができる。
【0110】
図17は、本主題のいくつかの実装による、複数のデバイス間の通信を提供するための例示的方法1700を図示する。1702では、通信リンクが、第1のデバイス(例えば、ペアリングデバイス102)と第2のデバイス(例えば、通信デバイス104)との間に確立されることができる。1704では、少なくとも1つのデータパケットが、第1のデバイスと第2のデバイスとの間で交換されることができる。第1のデバイスは、データパケットが第2のデバイスから受信されると、第1のデータ定義(例えば、DDF1 103)を使用して、データをデータパケットのペイロードから抽出することができる。第2のデバイスは、データパケットが第1のデバイスから受信されると、第2のデータ定義(例えば、DDF2 109)を使用して、データをデータパケットのペイロードから抽出することができる。
【0111】
いくつかの実装では、本主題は、以下の随意の特徴のうちの1つ以上のものを含むことができる。第1のデバイスに伝送される1つ以上のデータパケットのペイロードは、少なくとも1つの第1のデータ定義に従って生成されることができる。第2のデバイスに伝送される1つ以上のデータパケットのペイロードは、少なくとも1つの第2のデータ定義に従って生成されることができる。少なくとも1つの第1のデータ定義は、第1のデータ定義識別子と関連付けられることができる。第1のデバイスは、第1のデータ定義識別子を使用して、少なくとも1つの第1のデータ定義を要求するように構成されることができる。少なくとも1つの第2のデータ定義は、第2のデータ定義識別子と関連付けられることができる。第2のデバイスは、第2のデータ定義識別子を使用して、少なくとも1つの第2のデータ定義を要求するように構成されることができる。
【0112】
第1のデバイスは、ペアリングデバイスであることができ、第2のデバイスは、通信デバイスであることができる。いくつかの実装では、デバイスは、コンピューティングデバイス、電話、無線電話、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、ゲートウェイ、ネットワーキング要素、デバイスのネットワーク、中継および/または中間デバイス(例えば、それを通してデータパケットが通過するように構成される、デバイス)、エンドポイントデバイス、無線および/または有線スピーカ、無線および/または有線受信機および/または送受信機、基地局(例えば、マクロ、マイクロ、フェムト、ピコ等の基地局)、ルータ、モデム、および/または任意の他のタイプのデバイス、および/または任意のそれらの組み合わせであることができる。
【0113】
いくつかの実装では、第1のデータ定義は、第2のデバイスによるデータパケットのペイロード内の第1のデータ(そのタイプ、場所等を含む)の含有に基づいて、第1のデバイスによって受信されたデータパケットのペイロード内の第1のデータ(タイプ、場所等を含む)を規定することができる。第2のデータ定義は、第1のデバイスによるデータパケットのペイロード内の第2のデータ(そのタイプ、場所等を含む)の含有に基づいて、第2のデバイスによって受信されたデータパケットのペイロード内の第2のデータ(タイプ、場所等を含む)を規定することができる。
【0114】
いくつかの実装では、サーバは、第1のデバイスおよび第2のデバイスのうちの少なくとも1つに通信可能に結合されることができる。サーバは、第1のデータ定義および第2のデータ定義のうちの少なくとも1つを生成することができる。サーバは、第1のデータ定義および第2のデータ定義のうちの少なくとも1つを第1のデバイスおよび第2のデバイスのうちの少なくとも1つに提供することができる。
【0115】
いくつかの実装では、第1のデバイスと第2のデバイスとの間のデータの交換は、第1のデータ定義を使用する第1のデバイスおよび第2のデータ定義を使用する第2のデバイスに依存し得る。代替として、第1のデバイスと第2のデバイスとの間のデータの交換は、第2のデータ定義に依存する第1のデータ定義および/またはその逆に依存し得る。
【0116】
いくつかの実装では、複数の第1のデバイスは、複数の第2のデバイスに通信可能に結合されることができ、複数の第1のデバイス内の各第1のデバイスは、複数の第1のデータ定義内のその独自の第1のデータ定義を使用することができ、複数の第2のデバイス内の各第2のデバイスは、複数の第2のデータ定義内のその独自の第2のデータ定義を使用することができる。
【0117】
いくつかの実装では、本方法はさらに、第1のデバイスによって、少なくとも1つの第1のデータ定義に対応する第1のデータ定義識別子を受信することと、第2のデバイスによって、少なくとも1つの第2のデータ定義に対応する第2のデータ定義識別子を受信することとを含むことができる。さらに、本方法はまた、第1のデバイスを使用して、対応する受信された第1のデータ定義識別子を使用して、少なくとも1つの第1のデータ定義を検証することを含むことができる。少なくとも1つの第1のデータ定義の検証に応じて、本方法は、少なくとも1つ以上のデータパケットが第2のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を実施することができる。少なくとも1つの第1のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つ以上のデータパケットが第2のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を防止することができる。加えて、本方法はまた、第2のデバイスを使用して、対応する受信された第2のデータ定義識別子を使用して、少なくとも1つの第2のデータ定義を検証することを含むことができる。少なくとも1つの第2のデータ定義の検証に応じて、本方法は、少なくとも1つ以上のデータパケットが第1のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を実施することができる。少なくとも1つの第2のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つ以上のデータパケットが第1のデバイスから受信されると、少なくとも1つ以上のデータパケットの1つ以上のペイロードからのデータの抽出を防止することができる。
【0118】
いくつかの実装では、本方法はまた、対応する受信された第1のデータ定義識別子を使用して、少なくとも1つの第1のデータ定義を検証することを含むことができる。少なくとも1つの第1のデータ定義の検証に応じて、本方法は、少なくとも1つの第1のデータ定義を使用して、少なくとも1つ以上のデータパケットの1つ以上のペイロードを生成することができる。少なくとも1つの第1のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つの第1のデータ定義を使用した1つ以上のペイロードの生成を防止することができる。本方法はまた、対応する受信された第2のデータ定義識別子を使用して、少なくとも1つの第2のデータ定義を検証することを含むことができる。少なくとも1つの第2のデータ定義の検証に応じて、本方法は、少なくとも1つの第2のデータ定義を使用して、少なくとも1つ以上のデータパケットの1つ以上のペイロードを生成することができる。少なくとも1つの第2のデータ定義の検証の失敗に応じて、本方法は、少なくとも1つの第2のデータ定義を使用した1つ以上のペイロードの生成を防止することができる。
【0119】
本明細書に開示されるシステムおよび方法は、例えば、データベース、デジタル電子回路、ファームウェア、ソフトウェア、またはそれらの組み合わせもまた含む、コンピュータ等のデータプロセッサを含む、種々の形態で具現化されることができる。さらに、本開示される実装の上記の特徴および他の側面および原理は、種々の環境内に実装されることができる。そのような環境および関連用途は、開示される実装に従って、種々のプロセスおよび動作を実施するために特別に構築されることができる、またはそれらは、必要な機能性を提供するようにコードによって選択的にアクティブ化または再構成される、汎用コンピュータまたはコンピューティングプラットフォームを含むことができる。本明細書に開示されるプロセスは、本質的に、任意の特定のコンピュータ、ネットワーク、アーキテクチャ、環境、または他の装置に関連せず、ハードウェア、ソフトウェア、および/またはファームウェアの好適な組み合わせによって実装されることができる。例えば、種々の汎用機械は、開示される実装の教示に従って書かれたプログラムと併用されることができる、または要求される方法および技法を実施するための特殊装置またはシステムを構築するためにより都合よくあり得る。
【0120】
本明細書に開示されるシステムおよび方法は、データ処理装置、例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータによる実行のために、またはその動作を制御するために、情報担体、例えば、機械可読記憶デバイスまたは伝搬信号内に有形に具現化される、コンピュータプログラム製品、すなわち、コンピュータプログラムとして実装されることができる。コンピュータプログラムは、コンパイルまたは解釈言語を含む、任意の形態のプログラミング言語で書かれることができ、独立型プログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境において使用するために好適な他のユニットとしてを含む、任意の形態で展開されることができる。コンピュータプログラムは、1つの場所における1つのコンピュータまたは複数のコンピュータ上で実行されるように展開される、または複数の場所を横断して分散され、通信ネットワークによって相互接続されることができる。
【0121】
本明細書で使用されるように、用語「ユーザ」は、人物またはコンピュータを含む、任意のエンティティを指すことができる。
【0122】
第1、第2、および同等物等の序数は、いくつかの状況では、順序に関し得るが、本書で使用されるように、序数は、必ずしも、順序を含意しない。例えば、序数は、単に、1つのアイテムと別のアイテムを区別するために使用されることができる。例えば、第1のイベントと第2のイベントを区別するために、なんらかの経時的順序または固定基準系を含意する必要はない(その結果、説明の1つの段落における第1のイベントは、説明の別の段落における第1のイベントと異なり得る)。
【0123】
前述の説明は、本発明の範囲を例証するが、限定するように意図されず、これは、添付の請求項の範囲によって定義される。他の実装も、以下の請求項の範囲内である。
【0124】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、コンポーネント、またはコードとも称され得る、これらのコンピュータプログラムは、プログラマブルプロセッサのための機械命令を含み、高レベル手続型および/またはオブジェクト指向プログラミング言語および/またはアセンブリ/機械言語で実装されることができる。本明細書で使用されるように、用語「機械可読媒体」は、機械命令を機械可読信号として受信する、機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される、例えば、磁気ディスク、光ディスク、メモリ、およびプログラマブル論理デバイス(PLD)等の任意のコンピュータプログラム製品、装置、および/またはデバイスを指す。用語「機械可読信号」は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される、任意の信号を指す。機械可読媒体は、そのような機械命令を非一過性に記憶することができ、例えば、非一過性ソリッドステートメモリまたは磁気ハードドライブまたは任意の同等の記憶媒体等であろう。機械可読媒体は、代替として、または加えて、そのような機械命令を一過性様式で記憶することができ、例えば、1つ以上の物理的プロセッサコアと関連付けられたプロセッサキャッシュまたは他のランダムアクセスメモリ等であろう。
【0125】
ユーザとの相互作用を提供するために、本明細書に説明される主題は、例えば、情報をユーザに表示するためのブラウン管(CRT)または液晶ディスプレイ(LCD)モニタ等のディスプレイデバイスと、ユーザが入力をコンピュータに提供し得る、例えば、マウスまたはトラックボール等のキーボードおよびポインティングデバイスとを有する、コンピュータ上に実装されることができる。他の種類のデバイスも同様に、ユーザとの相互作用を提供するために使用されることができる。例えば、ユーザに提供されるフィードバックは、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック等の任意の形態の感覚フィードバックであることができ、ユーザからの入力は、限定ではないが、音響、発話、または触覚的入力を含む、任意の形態で受信されることができる。
【0126】
本明細書に説明される主題は、例えば、1つ以上のデータサーバ等のバックエンドコンポーネントを含む、または例えば、1つ以上のアプリケーションサーバ等のミドルウェアコンポーネントを含むまたは例えば、ユーザが本明細書に説明される主題の実装と相互作用し得る、グラフィカルユーザインターフェースまたはウェブブラウザを有する、1つ以上のクライアントコンピュータ等のフロントエンドコンポーネントを含む、またはそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせである、コンピューティングシステム内に実装されることができる。システムのコンポーネントは、例えば、通信ネットワーク等の任意の形態または媒体のデジタルデータ通信によって相互接続されることができる。通信ネットワークの実施例は、限定ではないが、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットを含む。
【0127】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、概して、排他的ではないが、相互から遠隔であって、典型的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、個別のコンピュータ上で起動し、相互にクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。
【0128】
前述の説明に記載される実装は、本明細書に説明される主題と一致する全ての実装を表すわけではない。代わりに、それらは、単に、説明される主題に関連する側面と一致するいくつかの実施例である。いくつかの変形例が、上記に詳細に説明されたが、他の修正または追加も、可能性として考えられる。特に、さらなる特徴および/または変形例が、本明細書に記載されるものに加えて、提供されることができる。例えば、上記に説明される実装は、開示される特徴の種々の組み合わせおよび副次的組み合わせおよび/または上記に開示されるいくつかのさらなる特徴の組み合わせおよび副次的組み合わせを対象とすることができる。加えて、付随の図に描写され、および/または本明細書に説明される、論理フローは、望ましい結果を達成するために、必ずしも、示される特定の順序または順次順序を要求するわけではない。他の実装も、以下の請求項の範囲内であり得る。
図1
図2
図3
図4a
図4b
図5
図6
図7a
図7b
図8a
図8b
図9a
図9b
図10
図11
図12
図13
図14
図15
図16
図17
【外国語明細書】