本開示は、2つ以上のユーザデバイスの間で増分的により多くの量の情報を共有することに関する。一実施形態では、第1のユーザデバイスが、第1のユーザデバイスに近接する第2のユーザデバイスを検出し、第1のプライバシーレベルを有する第1のログデータを第2のユーザデバイスから受信する。この場合、第1のログデータは、第1の期間にわたる第2のユーザデバイスのログデータを含む。第1のユーザデバイスは、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話したかどうかを第1のログデータに基づいて判定し、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話したことに基づいて第2のユーザデバイスに第1の信頼レベルを割り当て、第2のプライバシーレベルを有する第2のログデータを第2のユーザデバイスから受信する。第2のログデータは、第2の期間にわたる第2のユーザデバイスのログデータを含み、第2のプライバシーレベルは第1のプライバシーレベルよりも高い。第1のデバイスは、第1のユーザデバイスと第2のユーザデバイスが第2の期間の間に対話したかどうかを受信された第2のログデータに基づいて判定し、第1のユーザデバイスと第2のユーザデバイスが第2の期間の間に対話したことに基づいて第2のユーザデバイスに第2の信頼レベルを割り当てる。
これらの態様およびその他の態様は、増分的により多くの量の情報を共有する例示的な実施形態に関する特定の例を示すために以下の説明および関連する図面において開示される。代替的実施形態は、この開示を読むと当業者には明らかであり、本開示の範囲または趣旨を逸脱することなく構築され、実践され得る。加えて、本明細書で開示する態様および実施形態の関連する詳細を不明瞭にしないように、よく知られている要素は詳細には説明されず、または省略され得る。
「例示的」という言葉は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」として説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「実施形態」という用語は、すべての実施形態が、論じられた特徴、利点または動作モードを含むことを要求しない。
本明細書で使用される用語は、特定の実施形態のみを説明しており、本明細書で開示されるいずれかの実施形態を限定すると解釈されるべきではない。本明細書で使用される単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用すると、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
さらに、多くの態様について、たとえばコンピューティングデバイスの要素によって実施されるべき、動作のシーケンスに関して説明する。本明細書で説明する様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実施され得ることは認識されよう。さらに、本明細書で説明されるこれらの一連の動作は、実行されると、関連するプロセッサに本明細書において説明される機能を実行させることになる対応する1組のコンピュータ命令を記憶した、任意の形のコンピュータ可読記憶媒体内で完全に具現されるものと見なされ得る。したがって、本開示の様々な態様は、特許請求される主題の範囲内にすべて入ることが企図されているいくつかの異なる形で具現され得る。さらに、本明細書で説明される実施形態ごとに、任意のそのような実施形態の対応する形は、本明細書において、たとえば、説明される動作を実行する「ように構成された論理」として説明される場合がある。
本明細書で使用する「モノのインターネットデバイス」(すなわち「IoTデバイス」)という用語は、アドレス指定可能なインターフェース(たとえば、インターネットプロトコル(IP)アドレス、Bluetooth(登録商標)識別子(ID)、近距離無線通信(NFC:near-field communication)IDなど)を有し、有線またはワイヤレス接続を通じて1つまたは複数の他のデバイスに情報を送信することができる任意の物(たとえば、電化製品、センサーなど)を指すことができる。IoTデバイスは、クイックレスポンス(QR)コード、無線周波数識別(RFID)タグ、NFCタグなどの受動通信インターフェース、または、モデム、トランシーバ、送信機-受信機などの能動通信インターフェースを有し得る。IoTデバイスは、中央処理装置(CPU)、マイクロプロセッサ、ASICなどの中に組み込まれること、および/あるいは、それらによって制御/監視されることが可能であり、ローカルアドホックネットワークまたはインターネットなどのIoTネットワークに接続するように構成された特定の属性セット(たとえば、IoTデバイスがオンであるか、もしくはオフであるか、開いているか、もしくは閉じているか、アイドルであるか、もしくはアクティブであるか、タスク実行のために利用可能であるか、もしくはビジーであるかなど、冷房機能であるか、もしくは暖房機能であるか、環境監視機能であるか、もしくは環境記録機能であるか、発光機能であるか、音響放射機能であるかなど、デバイスの状態またはステータス)を有し得る。たとえば、IoTデバイスは、これらのデバイスがIoTネットワークと通信するためのアドレス指定可能通信インターフェースを備える限り、冷蔵庫、トースター、オーブン、電子レンジ、冷凍庫、皿洗い機、パラボラアンテナ(dishes)、手工具、洗濯機、衣類乾燥機、加熱炉、空調機、温度自動調整器、テレビジョン、照明設備、掃除機、スプリンクラー、電気メータ、ガスメータなどを含み得るが、これらに限定されない。IoTデバイスはまた、セルフォン、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)などを含み得る。したがって、IoTネットワークは、通常はインターネット接続性を有しないデバイス(たとえば、皿洗い機など)に加えて、「レガシー」インターネットアクセス可能デバイス(たとえば、ラップトップコンピュータまたはデスクトップコンピュータ、セルフォンなど)の組合せから構成され得る。
図1Aは、本開示の一態様によるワイヤレス通信システム100Aのハイレベルシステムアーキテクチャを示す。ワイヤレス通信システム100Aは、テレビジョン110と、屋外空調機112と、温度自動調整器114と、冷蔵庫116と、洗濯機および乾燥機118とを含む、複数のIoTデバイスを含む。
図1Aを参照すると、IoTデバイス110〜118は、図1Aにエアインターフェース108および直接有線接続109として示す物理通信インターフェースまたは物理通信レイヤを介してアクセスネットワーク(たとえば、アクセスポイント125)と通信するように構成される。エアインターフェース108は、IEEE 802.11など、ワイヤレスインターネットプロトコル(IP)に準拠し得る。図1Aは、エアインターフェース108を介して通信するIoTデバイス110〜118と、直接有線接続109を介して通信するIoTデバイス118とを示すが、各IoTデバイスは、有線接続もしくはワイヤレス接続、または両方を介して通信することができる。
インターネット175は、いくつかのルーティングエージェントおよび処理エージェント(便宜上、図1Aには示されていない)を含む。インターネット175は、標準インターネットプロトコルスイート(たとえば、伝送制御プロトコル(TCP)およびIP)を使用して、異種のデバイス/ネットワークの間で通信する、相互接続されたコンピュータならびにコンピュータネットワークのグローバルシステムである。TCP/IPは、データが、宛先において、どのようにフォーマッティング、アドレス指定、送信、経路指定、および受信されるべきかを指定するエンドツーエンド接続性を提供する。
図1Aでは、デスクトップコンピュータまたはパーソナルコンピュータ(PC)などのコンピュータ120は、(たとえば、Ethernet(登録商標)接続またはWi-Fiもしくは802.11ベースのネットワークを介して)インターネット175と直接接続するとして示される。コンピュータ120は、(たとえば、有線接続性とワイヤレス接続性の両方を有するWiFiルータ用の)アクセスポイント125自体などに相当してよいモデムまたはルータとの直接接続など、インターネット175との有線接続を有し得る。代替的に、有線接続を介して、アクセスポイント125およびインターネット175に接続されるのではなく、コンピュータ120は、エアインターフェース108または別のワイヤレスインターフェースを介してアクセスポイント125に接続されてよく、エアインターフェース108を介してインターネット175にアクセスしてよい。デスクトップコンピュータとして例示されているが、コンピュータ120は、ラップトップコンピュータ、タブレットコンピュータ、PDA、スマートフォンなどであり得る。コンピュータ120は、IoTデバイスであり得、かつ/またはIoTデバイス110〜118のネットワーク/グループなど、IoTネットワーク/グループを管理するための機能を含み得る。
アクセスポイント125は、たとえば、FiOS、ケーブルモデム、デジタル加入者線(DSL)モデムなど、光通信システムを介して、インターネット175に接続され得る。アクセスポイント125は、標準インターネットプロトコル(たとえば、TCP/IP)を使用して、IoTデバイス110〜120およびインターネット175と通信することができる。
図1Aを参照すると、IoTサーバ170は、インターネット175に接続されるように示されている。IoTサーバ170は、複数の構造的に別々の複数のサーバとして実装され得るか、または代替的には、単一のサーバに対応し得る。一態様では、IoTサーバ170は、(点線によって示されるように)オプションであり、IoTデバイス110〜120のグループは、ピアツーピア(P2P)ネットワークであり得る。そのような場合、IoTデバイス110〜120は、エアインターフェース108および/または直接有線接続109を介して互いに直接通信することができる。代替的に、または追加として、IoTデバイス110〜120の一部またはすべては、エアインターフェース108および直接有線接続109に依存しない通信インターフェースで構成され得る。たとえば、エアインターフェース108がWiFiインターフェースに対応する場合、IoTデバイス110〜120のうちの1つもしくは複数は、互いに、または他のBluetooth(登録商標)対応デバイスもしくはNFC対応デバイスと直接通信するためのBluetooth(登録商標)インターフェースあるいはNFCインターフェースを有し得る。
ピアツーピアネットワークでは、サービス発見方式は、ノードの存在、その能力、およびグループメンバーシップをマルチキャストすることができる。ピアツーピアデバイスは、この情報に基づいて、関連性および後続の相互作用を確立することができる。
本開示の一態様によれば、図1Bは、複数のIoTデバイスを含む別のワイヤレス通信システム100Bのハイレベルアーキテクチャを示す。一般に、図1Bに示すワイヤレス通信システム100Bは、上でより詳細に説明した、図1Aに示すワイヤレス通信システム100Aと同じ、ならびに/または実質的に同様の様々な構成要素(たとえば、エアインターフェース108および/もしくは直接有線接続109を介してアクセスポイント125と通信するように構成された、テレビジョン110と、屋外空調機112と、温度自動調整器114と、冷蔵庫116と、洗濯機および乾燥機118とを含む様々なIoTデバイス、インターネット175に直接接続する、かつ/あるいはアクセスポイント125を通してインターネット175に接続するコンピュータ120、ならびにインターネット175を介してアクセス可能なIoTサーバ170など)を含み得る。したがって、説明を簡潔かつ簡単にするために、同じまたは同様の詳細が図1Aに示したワイヤレス通信システム100Aに関して上ですでに提供されている限り、図1Bに示すワイヤレス通信システム100B内のいくつかの構成要素に関する様々な詳細は本明細書で省略される場合がある。
図1Bを参照すると、ワイヤレス通信システム100Bは、代替的に、IoTマネージャ130またはIoTマネージャデバイス130と呼ばれる場合もあるスーパーバイザデバイス130を含み得る。したがって、以下の説明が「スーパーバイザデバイス」130という用語を使用する場合、IoTマネージャ、グループ所有者、または同様の用語に対するいずれの参照もスーパーバイザデバイス130、あるいは同じもしくは実質的に同様の機能を提供する別の物理的構成要素または論理的構成要素を指す場合があることを当業者は諒解されよう。
一実施形態では、スーパーバイザデバイス130は、一般に、ワイヤレス通信システム100B内の様々な他の構成要素を観測、監視、制御、あるいは管理することができる。たとえば、スーパーバイザデバイス130は、エアインターフェース108および/または直接有線接続109を介してアクセスネットワーク(たとえば、アクセスポイント125)と通信して、ワイヤレス通信システム100B内の様々なIoTデバイス110〜120に関連付けられた属性、活動、もしくは他の状態を監視または管理することができる。スーパーバイザデバイス130は、インターネット175に対して、および、オプションで、(点線として示される)IoTサーバ170に対して、有線接続またはワイヤレス接続を有し得る。スーパーバイザデバイス130は、様々なIoTデバイス110〜120に関連付けられた属性、活動、もしくは他の状態をさらに監視または管理するために使用され得る情報をインターネット175および/あるいはIoTサーバ170から取得することができる。スーパーバイザデバイス130は、独立型デバイスであってよく、または、コンピュータ120など、IoTデバイス110〜120のうちの1つであってもよい。スーパーバイザデバイス130は、物理デバイスであってよく、または物理デバイス上で実行するソフトウェアアプリケーションであってもよい。スーパーバイザデバイス130は、IoTデバイス110〜120に関連付けられた、監視される属性、活動、または他の状態に関する情報を出力して、それらに関連付けられた属性、活動、または他の状態を制御あるいは管理するための入力情報を受信することができるユーザインターフェースを含み得る。したがって、スーパーバイザデバイス130は、一般に、様々な構成要素を含むことが可能であり、ワイヤレス通信システム100B内の様々な構成要素を観測、監視、制御、あるいは管理するために様々な有線通信インターフェースおよびワイヤレス通信インターフェースをサポートし得る。
図1Bに示すワイヤレス通信システム100Bは、ワイヤレス通信システム100Bに結合され得るか、あるいはワイヤレス通信システム100Bの一部であり得る(能動IoTデバイス110〜120と対照的な)1つまたは複数の受動IoTデバイス105を含み得る。一般に、受動IoTデバイス105は、短距離インターフェースを介して問い合わされたとき、その識別子と属性とを別のデバイスに提供することができる、バーコード付きデバイス、Bluetooth(登録商標)デバイス、無線周波数(RF)デバイス、RFIDタグ付きデバイス、赤外線(IR)デバイス、NFCタグ付きデバイス、または任意の他の適切なデバイスを含み得る。能動IoTデバイスは、受動IoTデバイスの属性の変化を検出すること、記憶すること、通信すること、それらの変化に作用することなどが可能である。
たとえば、受動IoTデバイス105は、各々、RFIDタグまたはバーコードを有するコーヒーカップとオレンジジュースの容器とを含み得る。キャビネットIoTデバイスおよび冷蔵庫IoTデバイス116は、各々、RFIDタグもしくはバーコードを読み取って、コーヒーカップおよび/またはオレンジジュースの容器の受動IoTデバイス105がいつ追加あるいは除去されたかを検出することができる適切なスキャナまたはリーダーを有し得る。キャビネットIoTデバイスがコーヒーカップの受動IoTデバイス105の除去を検出し、冷蔵庫IoTデバイス116がオレンジジュースの容器の受動IoTデバイスの除去を検出すると、スーパーバイザデバイス130は、キャビネットIoTデバイスおよび冷蔵庫IoTデバイス116において検出された活動に関する1つまたは複数の信号を受信することができる。スーパーバイザデバイス130は、次いで、ユーザがコーヒーカップからオレンジジュースを飲んでいる、およびまたはコーヒーカップからオレンジジュースを飲みたいことを推定することができる。
上記は何らかの形のRFIDタグ通信インターフェースまたはバーコード通信インターフェースを有するとして受動IoTデバイス105を説明しているが、受動IoTデバイス105は、そのような通信能力を有しない、1つもしくは複数のデバイスまたは他の物理的対象物を含み得る。たとえば、あるIoTデバイスは、受動IoTデバイス105を識別するために、受動IoTデバイス105に関連付けられた形状、サイズ、色、および/もしくは他の観測可能な特徴を検出することができる適切なスキャナ機構またはリーダー機構を有し得る。このようにして、任意の適切な物理的対象物はその識別情報および属性を通信して、ワイヤレス通信システム100Bの一部になることができ、スーパーバイザデバイス130を用いて観測、監視、制御、あるいは管理され得る。さらに、受動IoTデバイス105は、図1Aのワイヤレス通信システム100Aに結合され得るか、あるいはその一部であり得、実質的に同様の形で、観測、監視、制御、または管理され得る。
本開示の別の態様によれば、図1Cは、複数のIoTデバイスを含む別のワイヤレス通信システム100Cのハイレベルアーキテクチャを示す。一般に、図1Cに示すワイヤレス通信システム100Cは、上でより詳細に説明した、図1Aおよび図1Bにそれぞれ示したワイヤレス通信システム100Aならびに100Bと同じ、かつ/または実質的に同様の様々な構成要素を含み得る。したがって、説明を簡潔かつ簡単にするために、同じまたは類似の詳細が、それぞれ、図1Aおよび図1Bに示したワイヤレス通信システム100Aならびに100Bに関して上ですでに提供されている限り、図1Cに示すワイヤレス通信システム100C内のいくつかの構成要素に関する様々な詳細は本明細書で省略される場合がある。
図1Cに示す通信システム100Cは、IoTデバイス110〜118とスーパーバイザデバイス130との間の例示的なピアツーピア通信を示す。図1Cに示すように、スーパーバイザデバイス130は、IoTスーパーバイザインターフェースを介してIoTデバイス110〜118の各々と通信する。さらに、IoTデバイス110および114、IoTデバイス112、114、および116、ならびにIoTデバイス116および118は、互いに直接通信する。
IoTデバイス110〜118はIoTグループ160を構成する。IoTデバイスグループ160は、ユーザのホームネットワークに接続されたIoTデバイスなど、ローカルに接続されたIoTデバイスのグループである。示さないが、複数のIoTデバイスグループは、インターネット175に接続されたIoT SuperAgent140を介して互いに接続されること、および/または通信することが可能である。ハイレベルで、スーパーバイザデバイス130はグループ内通信を管理するのに対して、IoT SuperAgent140はグループ間通信を管理することができる。別個のデバイスとして示すが、スーパーバイザデバイス130およびIoT SuperAgent140は、同じデバイス(たとえば、図1Aのコンピュータ120など、独立型デバイスもしくはIoTデバイス)であり得るか、またはその中に存在し得る。代替的に、IoT SuperAgent140は、アクセスポイント125の機能に対応し得るか、またはその機能を含み得る。さらに別の代替として、IoT SuperAgent140は、IoTサーバ170などのIoTサーバの機能に対応し得るか、またはその機能を含み得る。IoT SuperAgent140は、ゲートウェイ機能145をカプセル化することができる。
各IoTデバイス110〜118は、スーパーバイザデバイス130をピアとして扱って、属性/スキーマ更新をスーパーバイザデバイス130に送信することができる。IoTデバイスが別のIoTデバイスと通信する必要があるとき、IoTデバイスは、スーパーバイザデバイス130にそのIoTデバイスに対するポインタを要求し、次いで、ピアとしてターゲットIoTデバイスと通信することができる。IoTデバイス110〜118は、共通メッセージングプロトコル(CMP)を使用して、ピアツーピア通信ネットワークを介して互いに通信する。2つのIoTデバイスがCMP対応であり、共通通信トランスポートを介して接続される限り、それらのIoTデバイスは互いに通信することができる。プロトコルスタック内で、CMPレイヤ154は、アプリケーションレイヤ152の下にあり、トランスポートレイヤ156および物理レイヤ158の上にある。
本開示の別の態様によれば、図1Dは、複数のIoTデバイスを含む別のワイヤレス通信システム100Dのハイレベルアーキテクチャを示す。一般に、図1Dに示すワイヤレス通信システム100Dは、それぞれ、上でより詳細に説明した、図1A〜図1Cに示したワイヤレス通信システム100A〜100Cと同じ、かつ/または実質的に類似した様々構成要素を含み得る。したがって、説明を簡潔かつ簡単にするために、同じまたは類似の詳細がそれぞれ図1A〜図1Cに示したワイヤレス通信システム100A〜100Cに関して上ですでに提供されている限り、図1Dに示すワイヤレス通信システム100D内のいくつかの構成要素に関する様々な詳細は本明細書で省略される場合がある。
インターネット175は、IoTの概念を使用して調整され得る「リソース」である。しかしながら、インターネット175は、調整されるリソースのほんの一例であり、任意のリソースがIoTの概念を使用して調整され得る。調整され得る他のリソースは、電気、ガス、ストレージ、セキュリティなどを含むが、これらに限定されない。IoTデバイスは、リソースに接続され得、それによって、リソースを調整するか、またはリソースはインターネット175を介して調整され得る。図1Dは、天然ガス、ガソリン、湯、および電気など、いくつかのリソース180を示し、リソース180は、インターネット175に加えて調整され得るか、またはインターネット175を介して調整され得る。
IoTデバイスは、互いに通信して、リソース180の使用を調整することができる。たとえば、トースター、コンピュータ、およびヘアドライヤなどのIoTデバイスは、Bluetooth(登録商標)通信インターフェースを介して互いに通信して、その電気(リソース180)使用を調整することができる。別の例として、デスクトップコンピュータ、電話、およびタブレットコンピュータなどのIoTデバイスは、Wi-Fi通信インターフェースを介して通信して、インターネット175(リソース180)に対するそのアクセスを調整することができる。さらに別の例として、ストーブ、衣類乾燥機、および湯沸かし器などのIoTデバイスは、Wi-Fi通信インターフェースを介して通信して、そのガス使用を調整することができる。代替的に、または追加として、各IoTデバイスは、IoTデバイスから受信された情報に基づいて、そのリソース180の使用を調整するための論理を有する、IoTサーバ170などのIoTサーバに接続され得る。
本開示の別の態様によれば、図1Eは、複数のIoTデバイスを含む別のワイヤレス通信システム100Eのハイレベルアーキテクチャを示す。一般に、図1Eに示すワイヤレス通信システム100Eは、上でより詳細に説明した、それぞれ、図1A〜図1Dに示したワイヤレス通信システム100A〜100Dと同じ、かつ/または実質的に類似した様々構成要素を含み得る。したがって、説明を簡潔かつ簡単にするために、同じまたは類似の詳細がそれぞれ図1A〜図1Dに示したワイヤレス通信システム100A〜100Dに関して上ですでに提供されている限り、図1Eに示すワイヤレス通信システム100E内のいくつかの構成要素に関する様々な詳細は本明細書で省略される場合がある。
通信システム100Eは、2つのIoTデバイスグループ160Aおよび160Bを含む。複数のIoTデバイスグループは、インターネット175に接続されたIoT SuperAgentを介して互いに接続されること、および/または互いに通信することが可能である。ハイレベルで、IoT SuperAgentは、IoTデバイスグループ内のグループ間通信を管理することができる。たとえば、図1Eで、IoTデバイスグループ160Aは、IoTデバイス116A、122A、および124Aと、IoT SuperAgent140Aとを含むのに対して、IoTデバイスグループ160Bは、IoTデバイス116B、122B、および124Bと、IoT SuperAgent140Bとを含む。したがって、IoT SuperAgent140Aおよび140Bは、インターネット175と接続して、インターネット175を介して互いと通信すること、ならびに/またはIoTデバイスグループ160Aおよび160B間の通信を促すために互いと直接通信することができる。さらに、図1Eは、IoT SuperAgent140Aおよび140Bを介して互いと通信する2つのIoTデバイスグループ160Aおよび160Bを示すが、任意の数のIoTデバイスグループが、IoT SuperAgentを使用して互いと好適に通信することができることを当業者は諒解されよう。
図2Aは、本開示の態様によるIoTデバイス200Aのハイレベルな例を示す。外観および/または内部構成要素はIoTデバイス間でかなり異なる場合があるが、大部分のIoTデバイスは、ディスプレイとユーザ入力のための手段とを含み得る、ある種のユーザインターフェースを有することになる。ユーザインターフェースがないIoTデバイスは、図1A〜図1Bにおけるエアインターフェース108など、有線ネットワークまたはワイヤレスネットワークを介してリモートで通信され得る。
図2Aに示すように、IoTデバイス200Aに関する例示的な構成では、IoTデバイス200Aの外部ケーシングは、当技術分野で知られているように、構成要素の中でも、ディスプレイ226と、電源ボタン222と、2つの制御ボタン224Aおよび224Bとで構成され得る。ディスプレイ226は、タッチスクリーンディスプレイであり得、その場合、制御ボタン224Aおよび224Bは必要でない場合がある。IoTデバイス200Aの一部として明示的に示されてはいないが、IoTデバイス200Aは、限定はしないが、Wi-Fiアンテナ、セルラーアンテナ、衛星位置システム(SPS)アンテナ(たとえば、全地球測位システム(GPS)アンテナ)などを含む、1つまたは複数の外部アンテナおよび/または外部ケーシングに内蔵される1つのまたは複数の内蔵アンテナを含むことができる。
IoTデバイス200AなどのIoTデバイスの内部構成要素は異なるハードウェア構成によって具体化され得るが、内部ハードウェア構成要素のための基本的なハイレベル構成は図2Aにプラットフォーム202として示されている。プラットフォーム202は、図1A〜図1Bのエアインターフェース108ならびに/または有線インターフェースなど、ネットワークインターフェースを介して送信されたソフトウェアアプリケーション、データ、および/またはコマンドを受信ならびに実行することができる。プラットフォーム202は、ローカルに記憶されたアプリケーションを独立して実行してもよい。プラットフォーム202は、一般に、プロセッサ208と呼ばれることになる、マイクロコントローラ、マイクロプロセッサ、特定用途向け集積回路、デジタル信号プロセッサ(DSP)、プログラマブル論理回路、または他のデータ処理デバイスなど、1つもしくは複数のプロセッサ208に動作可能に結合された有線通信および/あるいはワイヤレス通信のために構成された1つもしくは複数のトランシーバ206(たとえば、Wi-Fiトランシーバ、Bluetooth(登録商標)トランシーバ、セルラートランシーバ、衛星トランシーバ、GPS受信機またはSPS受信機など)を含み得る。プロセッサ208は、IoTデバイス内のメモリ212内でアプリケーションプログラミング命令を実行することができる。メモリ212は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気消去可能プログラマブルROM(EEPROM)、フラッシュカード、またはコンピュータプラットフォームに共通の任意のメモリのうちの1つもしくは複数を含み得る。1つもしくは複数の入出力(I/O)インターフェース214は、プロセッサ208が、示すようなディスプレイ226、電源ボタン222、制御ボタン224Aおよび224Bなどの様々なI/Oデバイス、ならびにIoTデバイス200Aに関連付けられたセンサー、アクチュエータ、リレー、バルブ、スイッチなどの任意の他のデバイスと通信すること、ならびにそれらから制御することを可能にするように構成され得る。
プラットフォーム202は、プロセッサ206に結合されるかまたは組み込まれた情報共有モジュール216をさらに含んでもよい。代替的に、情報共有モジュール216は、メモリ212に記憶され、プロセッサ206によって実行可能なモジュールであってもよい。IoTデバイス200Aが、本明細書において説明するように、別のユーザデバイスと増分的により多くの量の情報を共有するように構成される場合、情報共有モジュール216は、別のIoTデバイス200Aなどの近接する第2のユーザデバイスから第1のプライバシーレベルを有する第1のログデータを受信するように構成されてもよい。第1のログデータは、第1の期間にわたる第2のユーザデバイスのログデータを含んでもよい。情報共有モジュール216は、IoTデバイス200Aと第2のユーザデバイスが第1の期間の間に対話したかどうかを第1のログデータに基づいて判定し、IoTデバイス200Aと第2のユーザデバイスが第1の期間の間に対話したことに基づいて第2のユーザデバイスに第1の信頼レベルを割り当て、第2のプライバシーレベルを有する第2のログデータを第2のユーザデバイスから受信する。第2のログデータは、第2の期間にわたる第2のユーザデバイスのログデータを含んでもよく、第2のプライバシーレベルは第1のプライバシーレベルよりも高くてもよい。以下においてさらに説明するように、情報共有モジュール216は、IoTデバイス200Aと第2のユーザデバイスが第2の期間の間に対話したかどうかを、受信された第2のログデータに基づいて判定し、IoTデバイス200Aと第2のユーザデバイスが第2の期間の間に対話したことに基づいて第2のユーザデバイスに第2の信頼レベルを割り当てるようにさらに構成されてもよい。
したがって、本開示の一態様は、本明細書に記載された機能を実行する能力を含むIoTデバイス(たとえば、IoTデバイス200A)を含むことができる。当業者によって諒解されるように、様々な論理要素は、本明細書で開示する機能を実現するように個別の要素、プロセッサ(たとえば、プロセッサ208)上で実行されるソフトウェアモジュール、またはソフトウェアとハードウェアとの任意の組合せにおいて具現されてもよい。たとえば、トランシーバ206、プロセッサ208、メモリ212、情報共有モジュール216、およびI/Oインターフェース214をすべて協調的に使用して、本明細書で開示する様々な機能をロードし、記憶し、実行してもよく、したがって、これらの機能を実行するための論理は様々な要素に分散されてもよい。代替的に、機能は、1つの離散構成要素に組み込むことが可能である。したがって、図2AにおけるIoTデバイス200Aの特徴は、単に例示にすぎないものと見なされ、本開示は、示された特徴または構成に限定されない。
図2Bは、本開示の態様による受動IoTデバイス200Bのハイレベルな例を示す。一般に、図2Bに示す受動IoTデバイス200Bは、上でより詳細に説明した、図2Aに示したIoTデバイス200Aと同じ、かつ/または実質的に類似した様々構成要素を含み得る。したがって、説明を簡潔かつ簡単にするために、同じまたは類似の詳細が図2Aに示したIoTデバイス200Aに関して上ですでに提供されている限り、図2Bに示す受動IoTデバイス200B内のいくつかの構成要素に関する様々な詳細は本明細書で省略される場合がある。
図2Bに示す受動IoTデバイス200Bは、プロセッサ、内部メモリ、またはある種の他の構成要素を有しない場合があるという点で、一般に、図2Aに示すIoTデバイス200Aとは異なる場合がある。代わりに、一実施形態では、受動IoTデバイス200Bは、受動IoTデバイス200Bが、制御されたIoTネットワーク内で観測されること、監視されること、制御されること、管理されること、あるいは知られることを可能にする、I/Oインターフェース214または他の適切な機構だけを含み得る。たとえば、一実施形態では、受動IoTデバイス200Bに関連付けられたI/Oインターフェース214は、短距離インターフェースを介して問い合わされたとき、受動IoTデバイス200Bに関連付けられた識別子および属性を別のデバイス(たとえば、受動IoTデバイス200Bに関連付けられた属性に関する情報を検出すること、記憶すること、通信すること、その情報に作用すること、あるいはその情報を処理することができる、IoTデバイス200Aなどの能動IoTデバイス)に提供することができる、バーコード、Bluetooth(登録商標)インターフェース、無線周波数(RF)インターフェース、RFIDタグ、IRインターフェース、NFCインターフェース、または任意の他の適切なI/Oインターフェースを含み得る。
上記は何らかの形のRF、バーコード、または他のI/Oインターフェース214を有するとして受動IoTデバイス200Bを説明しているが、受動IoTデバイス200Bは、そのようなI/Oインターフェース214を有しないデバイスまたは他の物理的対象物を含み得る。たとえば、あるIoTデバイスは、受動IoTデバイス200Bを識別するために、受動IoTデバイス200Bに関連付けられた形状、サイズ、色、および/もしくは他の観測可能な特徴を検出することができる適切なスキャナ機構またはリーダー機構を有し得る。このようにして、任意の適切な物理的対象物は、その識別および属性を通信することができ、制御されたIoTネットワーク内で観測、監視、制御、あるいは管理され得る。
図3は、機能を実行するように構成される論理を含む通信デバイス300を示す。通信デバイス300は、限定はしないが、IoTデバイス110〜120、IoTデバイス200A、インターネット175に結合された任意の構成要素(たとえば、IoTサーバ170)などを含む、上記の通信デバイスのうちのいずれかに対応し得る。したがって、通信デバイス300は、図1A〜図1Bのワイヤレス通信システム100A〜100Bを介して1つもしくは複数の他のエンティティと通信する(または通信を容易にする)ように構成された任意の電子デバイスに対応し得る。
図3を参照すると、通信デバイス300は、情報を受信および/または送信するように構成される論理305を含む。一例では、通信デバイス300がワイヤレス通信デバイス(たとえば、IoTデバイス200Aおよび/または受動IoTデバイス200B)に対応する場合には、情報を受信および/または送信するように構成される論理305は、ワイヤレストランシーバおよび関連ハードウェア(たとえば、RFアンテナ、モデム、変調器および/または復調器など)のようなワイヤレス通信インターフェース(たとえば、Bluetooth(登録商標)、Wi-Fi、Wi-Fi Direct、Long-Term Evolution (LTE) Directなど)を含むことができる。別の例では、情報を受信および/または送信するように構成された論理305は、有線通信インターフェース(たとえば、インターネット175にアクセスする手段となり得るシリアル接続、USBまたはFirewire接続、Ethernet(登録商標)接続など)に対応することができる。したがって、通信デバイス300が、何らかのタイプのネットワークベースのサーバ(たとえば、アプリケーション170)に対応する場合には、情報を受信および/または送信するように構成された論理305は、一例では、Ethernet(登録商標)プロトコルによってネットワークベースのサーバを他の通信エンティティに接続するEthernet(登録商標)カードに対応し得る。さらなる例では、情報を受信および/または送信するように構成された論理305は、通信デバイス300がそのローカル環境を監視する手段となり得る感知または測定ハードウェア(たとえば、加速度計、温度センサー、光センサー、ローカルRF信号を監視するためのアンテナなど)を含むことができる。情報を受信および/または送信するように構成された論理305は、実行されるときに、情報を受信および/または送信するように構成された論理305の関連ハードウェアがその受信機能および/または送信機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を受信および/または送信するように構成された論理305は、ソフトウェアだけに対応するのではなく、情報を受信および/または送信するように構成された論理305は、その機能性を達成するためのハードウェアに少なくとも部分的に依拠する。
図3を参照すると、通信デバイス300は、情報を処理するように構成される論理310をさらに含む。一例では、情報を処理するように構成される論理310は、少なくともプロセッサを含むことができる。情報を処理するように構成された論理310によって実施され得るタイプの処理の例示的な実装形態は、判断を行うこと、接続を確立すること、異なる情報オプション間で選択を行うこと、データに関係する評価を実施すること、測定動作を実施するために通信デバイス300に結合されたセンサーと対話すること、情報をあるフォーマットから別のフォーマットに(たとえば、.wmvから.aviへなど、異なるプロトコル間で)変換することなどを含むが、これらに限定されない。たとえば、情報を処理するように構成された論理310中に含まれるプロセッサは、汎用プロセッサ、DSP、ASIC、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書において説明される機能を実行するように設計されたそれらの任意の組合せに対応し得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実現され得る。情報を処理するように構成された論理310は、実行されるとき、情報を処理するように構成された論理310の関連ハードウェアがその処理機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を処理するように構成された論理310は、ソフトウェアだけに対応するのではなく、情報を処理するように構成された論理310は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。
一実施形態では、情報を処理するように構成される論理310は、本明細書において説明するような情報共有モジュール216などの情報共有モジュールをさらに含んでもよく、あるいはそのような情報共有モジュールにさらに結合されてもよく、あるいはそのような情報共有モジュールをさらに実行してもよい。詳細には、通信デバイス300が、本明細書において説明するように、別のユーザデバイスと増分的により多くの量の情報を共有するように構成される場合、情報を処理するように構成される論理310は、情報共有モジュールとともに、別の通信デバイス300などの近接する第2のユーザデバイスから第1のプライバシーレベルを有する第1のログデータを受信するように構成されてもよい。第1のログデータは、第1の期間にわたる第2のユーザデバイスのログデータを含んでもよい。情報を処理するように構成される論理310は、情報共有モジュールとともに、通信デバイス300と第2のユーザデバイスが第1の期間の間に対話したかどうかを第1のログデータに基づいて判定し、通信デバイス300と第2のユーザデバイスが第1の期間の間に対話したことに基づいて第2のユーザデバイスに第1の信頼レベルを割り当て、第2のプライバシーレベルを有する第2のログデータを第2のユーザデバイスから受信するようにさらに構成されてもよい。第2のログデータは、第2の期間にわたる第2のユーザデバイスのログデータを含んでもよく、第2のプライバシーレベルは第1のプライバシーレベルより高くてもよい。情報を処理するように構成される論理310は、情報共有モジュールとともに、以下においてさらに説明するように、通信デバイス300と第2のユーザデバイスが第2の期間の間に対話したかどうかを受信された第2のログデータに基づいて判定し、通信デバイス300と第2のユーザデバイスが第2の期間の間に対話したことに基づいて第2のユーザデバイスに第2の信頼レベルを割り当てるようにさらに構成されてもよい。
図3を参照すると、通信デバイス300は、情報を記憶するように構成される論理315をさらに含む。一例では、情報を記憶するように構成される論理315は、少なくとも非一時的メモリおよび関連ハードウェア(たとえば、メモリコントローラなど)を含むことができる。たとえば、情報を記憶するように構成される論理315に含まれる非一時的メモリは、RAM、フラッシュメモリ、ROM、消去可能プログラマブルROM(EPROM)、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当該技術分野において知られている任意の他の形の記憶媒体に対応することができる。情報を記憶するように構成される論理315は、実行されるときに、情報を記憶するように構成される論理315の関連ハードウェアがその記憶機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を記憶するように構成される論理315は、ソフトウェアだけに対応するのではなく、情報を記憶するように構成される論理315は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。さらに、情報共有モジュールが情報を処理するように構成される論理310によって実行可能である場合、情報を記憶するように構成される論理315は情報共有モジュールを記憶してもよい。
図3を参照すると、通信デバイス300は、情報を提示するように構成された論理320をさらにオプションで含む。一例では、情報を提示するように構成される論理320は、少なくとも出力デバイスおよび関連ハードウェアを含むことができる。たとえば、出力デバイスは、ビデオ出力デバイス(たとえば、ディスプレイスクリーン、USB、HDMI(登録商標)のようなビデオ情報を搬送することができるポートなど)、オーディオ出力デバイス(たとえば、スピーカ、マイクロフォンジャック、USB、HDMI(登録商標)のようなオーディオ情報を搬送することができるポートなど)、振動デバイス、および/または、情報がそれによって出力のためにフォーマットされ得る、または通信デバイス300のユーザもしくは操作者によって実際に出力され得る任意の他のデバイスを含むことができる。たとえば、通信デバイス300が、図2Aに示したIoTデバイス200Aおよび/または図2Bに示した受動IoTデバイス200Bに対応する場合、情報を提示するように構成された論理320は、ディスプレイ226を含み得る。さらなる一例では、情報を提示するように構成される論理320は、ローカルユーザを有しないネットワーク通信デバイス(たとえば、ネットワークスイッチ、またはルータ、リモートサーバなど)のようないくつかの通信デバイスでは省くことができる。情報を提示するように構成された論理320は、実行されるとき、情報を提示するように構成された論理320の関連ハードウェアがその提示機能を実施できるようにするソフトウェアも含むことができる。しかしながら、情報を提示するように構成された論理320は、ソフトウェアだけに対応するのではなく、情報を提示するように構成された論理320は、その機能性を達成するためにハードウェアに少なくとも部分的に依拠する。
図3を参照すると、通信デバイス300は、ローカルユーザ入力を受信するように構成された論理325をさらにオプションで含む。一例では、ローカルユーザ入力を受信するように構成される論理325は、少なくともユーザ入力デバイスおよび関連ハードウェアを含むことができる。たとえば、ユーザ入力デバイスは、ボタン、タッチスクリーンディスプレイ、キーボード、カメラ、オーディオ入力デバイス(たとえば、マイクロフォン、もしくはマイクロフォンジャックなど、オーディオ情報を搬送することができるポートなど)、および/または情報がそれによって通信デバイス300のユーザもしくはオペレータから受信され得る任意の他のデバイスを含み得る。たとえば、通信デバイス300が図2Aに示すようなIoTデバイス200Aおよび/または図2Bに示すような受動IoTデバイス200Bに対応する場合、ローカルユーザ入力を受信するように構成された論理325は、ボタン222、224Aおよび224B、ディスプレイ226(タッチスクリーンの場合)などを含み得る。さらなる例では、ローカルユーザ入力を受信するように構成された論理325は、(たとえば、ネットワークスイッチまたはルータ、リモートサーバなど)ローカルユーザを有さないネットワーク通信デバイスのようないくつかの通信デバイスでは省略されることがある。ローカルユーザ入力を受信するように構成された論理325は、実行されるとき、ローカルユーザ入力を受信するように構成された論理325の関連ハードウェアがその入力受信機能を実施できるようにするソフトウェアも含むことができる。しかしながら、ローカルユーザ入力を受信するように構成された論理325は、ソフトウェアだけに対応するのではなく、ローカルユーザ入力を受信するように構成された論理325は、その機能性を達成するためにハードウェアに少なくとも部分的に依拠する。
図3を参照すると、305〜325の構成された論理は、図3では別個のまたは相異なるブロックとして示されているが、それぞれの構成された論理がその機能を実行するためのハードウェアおよび/またはソフトウェアは、部分的に重複できることは理解されよう。たとえば、305〜325の構成された論理の機能を容易にするために使用される任意のソフトウェアを、情報を記憶するように構成された論理315に関連する非一時的メモリに記憶することができ、それにより、305〜325の構成された論理は各々、その機能(すなわち、この場合、ソフトウェア実行)を、情報を記憶するように構成された論理315によって記憶されたソフトウェアの動作に部分的に基づいて実行する。同様に、構成された論理のうちの1つに直接関連付けられるハードウェアは、時々、他の構成された論理によって借用または使用され得る。たとえば、情報を処理するように構成された論理310のプロセッサは、データを、情報を受信および/または送信するように構成された論理305によって送信される前に、適切な形式にフォーマットすることができ、それにより、情報を受信および/または送信するように構成された論理305は、その機能(すなわち、この場合、データの送信)を、情報を処理するように構成された論理310に関連付けられたハードウェア(すなわち、プロセッサ)の動作に部分的に基づいて実行する。
概して、別段に明示的に記載されていない限り、本開示全体にわたって使用される「ように構成された論理」という句は、ハードウェアにより少なくとも部分的に実施される態様を呼び出すものとし、ハードウェアから独立したソフトウェアだけの実施形態に位置づけるものではない。様々なブロックにおける構成された論理または「ように構成された論理」は、特定の論理ゲートまたは論理要素に限定されるのではなく、概して、本明細書に記載した機能性を、(ハードウェアまたはハードウェアとソフトウェアの組合せのいずれかを介して)実施するための能力を指すことが諒解されよう。したがって、様々なブロックに示す構成された論理または「ように構成された論理」は、「論理」という言葉を共有するにもかかわらず、必ずしも論理ゲートまたは論理要素として実装されるとは限らない。様々なブロックの論理間の他のやりとりまたは協働が、以下でより詳細に説明する態様の検討から、当業者には明らかになるであろう。
様々な実施形態は、図4に示すサーバ400などの、様々な市販のサーバデバイスのいずれにおいても実装され得る。一例では、サーバ400は、上記で説明したIoTサーバ170の1つの例示的な構成に相当し得る。図4では、サーバ400は、揮発性メモリ402と、ディスクドライブ403などの大容量の不揮発性メモリとに結合されたプロセッサ401を含む。サーバ400は、プロセッサ401に結合された、フロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)ドライブまたはDVDディスクドライブ406を含むことも可能である。サーバ400は、他のブロードキャストシステムコンピュータおよびサーバに、またはインターネットに結合されたローカルエリアネットワークなどのネットワーク407とのデータ接続を確立するための、プロセッサ401に結合されたネットワークアクセスポート404を含むことも可能である。図3の文脈において、図4のサーバ400は、通信デバイス300の1つの例示的な実装形態を示すが、情報を送信および/または受信するように構成された論理305は、ネットワーク407と通信するためにサーバ400によって使用されるネットワークアクセスポート404に相当し、情報を処理するように構成された論理310は、プロセッサ401に相当し、情報を記憶するように構成された論理315は、揮発性メモリ402、ディスク(disk)ドライブ403、および/またはディスク(disc)ドライブ406のうちの任意の組合せに相当することが諒解されよう。情報を提示するように構成されたオプションの論理320およびローカルユーザ入力を受信するように構成されたオプションの論理325は、図4には明示的に示さず、その中に含まれる場合もあれば、含まれない場合もある。したがって、図4は、通信デバイス300が、図2Aに示すようなIoTデバイスの実装形態に加えてサーバとして実装され得ることを説明するのを助ける。
概して、電話、タブレットコンピュータ、ラップトップコンピュータおよびデスクトップコンピュータ、特定の車両などのユーザ機器(UE)は、互いに(たとえば、Bluetooth(登録商標)、ローカルWi-Fiなどによって)ローカルに接続するかまたは(たとえば、セルラーネットワーク、インターネットなどを介して)リモートに接続するように構成されてもよい。さらに、いくつかのUEは、デバイスが1対1の接続を確立するかまたは互いに直接通信するためにいくつかのデバイスを含むグループに同時に接続するのを可能にする特定のワイヤレスネットワーキング技法(たとえば、Wi-Fi、Bluetooth(登録商標)、Wi-Fi Directなど)を使用する近接度ベースのピアツーピア(P2P)通信をサポートしてもよい。そのために、図5は、発見可能なP2Pサービスをサポートすることができる例示的なワイヤレス通信ネットワークまたはWAN500を示す。たとえば、一実施形態では、ワイヤレス通信ネットワーク500は、様々な基地局510と他のネットワークエンティティとを含むLTEネットワークまたは別の適切なWANを備えてもよい。簡単のために、図5には、3つの基地局510a、510bおよび510c、1つのネットワークコントローラ530、ならびに1つのダイナミックホストコンフィギュレーションプロトコル(DHCP)サーバ540のみを示す。基地局510は、デバイス520と通信するエンティティであってもよく、Node B、evolved Node B(eNB)、アクセスポイントなどとも呼ばれることがある。各基地局510は、特定の地理的エリアに対して通信カバレージを実現し得、カバレージエリア内に位置するデバイス520のための通信をサポートし得る。ネットワーク容量を向上させるために、基地局510の全体的なカバレージエリアが複数の(たとえば、3つの)より小さいエリアに区分されてもよく、各々のより小さいエリアがそれぞれの基地局510によってサービスされてもよい。3GPPでは、「セル」という用語は、この用語が使用される状況に応じて、このカバレッジエリアにサービスしている基地局510および/または基地局サブシステム510のカバレッジエリアを指し得る。3GPP2では、「セクタ」または「セルセクタ」という用語は、このカバレッジエリアにサービスしている基地局510および/または基地局サブシステム510のカバレッジエリアを指し得る。明確にするために、本明細書の説明では3GPPの「セル」の概念が使用されることがある。
基地局510は、マクロセル、ピコセル、フェムトセル、および/または他のセルタイプの通信カバレッジを可能にすることができる。マクロセルは、比較的大きい地理的エリア(たとえば、半径数キロメートル)をカバーすることができ、サービスに加入しているデバイス520による無制限アクセスを可能にし得る。ピコセルは、比較的小さい地理的エリアをカバーすることができ、サービスに加入しているデバイス520による無制限アクセスを可能にし得る。フェムトセルは、比較的小さい地理的エリア(たとえば、家庭)をカバーすることができ、フェムトセルとの関連付けを有するデバイス520(たとえば、限定加入者グループ(CSG)中のデバイス)による限定アクセスを可能にし得る。図5に示す例では、ワイヤレスネットワーク500は、マクロセルのためのマクロ基地局510a、510b、および510cを含む。ワイヤレスネットワーク500は、ピコセルのためのピコ基地局510および/またはフェムトセルのためのホーム基地局510(図5には示されていない)も含み得る。
ネットワークコントローラ530は、基地局510のセットに結合することができ、これらの基地局510の調整および制御を行うことができる。ネットワークコントローラ530は、バックホールを介して基地局と通信することができる単一のネットワークエンティティまたはネットワークエンティティの集合であってもよい。また、基地局は、たとえば、直接またはワイヤレスバックホールまたはワイヤラインバックホールを介して間接的に、互いに通信し得る。DHCPサーバ540は、以下に説明するように、P2P通信をサポートすることができる。DHCPサーバ540は、ワイヤレスネットワーク500の一部であっても、またはインターネット接続共有(ICS)を介して実行されるワイヤレスネットワーク500の外部のサーバであっても、またはそれらの任意の適切な組合せであってもよい。DHCPサーバ540は、(図5に示されるように)別個のエンティティであってよく、または、基地局510、ネットワークコントローラ530、もしくは他の何らかのエンティティの一部であってもよい。いずれの場合も、DHCPサーバ540は、ピアツーピアの通信を望むデバイス520によって到達可能であり得る。
デバイス520はワイヤレスネットワーク500全体にわたって分散され得、各デバイス520は固定されてもまたは移動可能であってもよい。デバイス520はまた、ノード、ユーザ機器(UE)、局、移動局、端末、アクセス端末、加入者ユニットなどと呼ばれ得る。デバイス520は、セルラー電話、携帯情報端末(PDA)、ワイヤレスモデム、ワイヤレス通信デバイス、ハンドヘルドデバイス、ラップトップコンピュータ、コードレス電話、ワイヤレスローカルループ(WLL)局、スマートフォン、ネットブック、スマートブック、タブレットなどであってよい。デバイス520は、ワイヤレスネットワーク500内の基地局510と通信してもよく、さらに他のデバイス520とピアツーピア通信してもよい。たとえば、図5に示すように、デバイス520aとデバイス520bがピアツーピア通信してもよく、デバイス520cとデバイス520dがピアツーピア通信してもよく、デバイス520eとデバイス520fがピアツーピア通信してもよく、デバイス520gとデバイス520hとデバイス520iがピアツーピア通信し、一方、残りのデバイス520が基地局510と通信してもよい。さらに図5に示すように、デバイス520a、520d、520f、および520hは、たとえば、P2P通信を行っていないときに基地局510と通信するか、または場合によってはP2P通信と同時に基地局510と通信してもよい。
本明細書の説明では、WAN通信は、たとえば別のデバイス520などのリモートエンティティと通話するための、ワイヤレスネットワーク500におけるデバイス520と基地局510との間の通信を指し得る。WANデバイスは、WAN通信に関心を持っているか、WAN通信に関与しているデバイス520である。P2P通信は、基地局510を介さない、2つ以上のデバイス520間の直接通信を指す。P2Pデバイスは、P2P通信に関心を持っているかまたはP2P通信に関与しているデバイス520、たとえば、P2Pデバイスの近傍内の別のデバイス520に関するトラフィックデータを有するデバイス520である。2つのデバイスは、たとえば、各デバイス520が他のデバイス520を検出できる場合、互いに近傍に位置すると見なされてもよい。概して、デバイス520は、別のデバイス520と、P2P通信の場合は直接通信してもよく、WAN通信の場合は少なくとも1つの基地局510を介して通信してもよい。
一実施形態では、P2Pデバイス520間の直接通信はP2Pグループとして構成されてもよい。より詳細には、P2Pグループは概して、P2P通信に関心を持っているか、またはP2P通信に関与している2つ以上のデバイス520のグループを指し、P2Pリンクは、P2Pグループ用の通信リンクを指す。さらに、一実施形態では、P2Pグループは、P2Pグループオーナー(またはP2Pサーバ)と指定される1つのデバイス520と、P2PグループオーナーによってサービスされるP2Pクライアントと指定される1つまたは複数のデバイス520とを含んでもよい。P2Pグループオーナーは、WANとのシグナリングの交換、P2PグループオーナーとP2Pクライアントとの間のデータ送信の調整などのような、いくつかの管理機能を実行することができる。たとえば、図5に示すように、第1のP2Pグループは、基地局510aの対象となるデバイス520aおよび520bを含み、第2のP2Pグループは、基地局510bの対象となるデバイス520cおよび520dを含み、第3のP2Pグループは、異なる基地局510bおよび510cの対象となるデバイス520eおよび520fを含み、第4のP2Pグループは、基地局510cの対象となるデバイス520g、520h、および520iを含む。デバイス520a、520d、520f、および520hは、そのそれぞれのP2PグループにおけるP2Pグループオーナーであってもよく、デバイス520b、520c、520e、520g、および520iは、そのそれぞれのP2PグループにおけるP2Pクライアントであってもよい。図5の他のデバイス520は、WAN通信に関与していてもよい。
実施形態では、P2P通信は、P2Pグループ内でのみ行われ、かつ、P2Pグループに関連するP2PグループオーナーとP2Pクライアントとの間でのみ行われる。たとえば、同じP2Pグループ内の2つのP2Pクライアント(たとえば、デバイス520gおよび520i)が情報を交換することを望む場合、P2Pクライアントの一方がP2Pグループオーナー(たとえば、デバイス520h)に情報を送ってもよく、次いでP2Pグループオーナーが送信を他のP2Pクライアントに中継してもよい。一実施形態では、特定のデバイス520は、複数のP2Pグループに属してもよく、各P2Pグループ内でP2PグループオーナーまたはP2Pクライアントのいずれかとして振る舞ってもよい。さらに、一実施形態では、特定のP2Pクライアントは、1つのP2Pグループのみに属するかまたは複数のP2Pグループに属し、任意の特定の瞬間に複数のP2PグループのいずれかにおけるP2Pデバイス520と通信してもよい。概して、通信は、ダウンリンクおよびアップリンク上での送信を通じて促進され得る。WAN通信では、ダウンリンク(または順方向リンク)は基地局510からデバイス520への通信リンクを指し、アップリンク(または逆方向リンク)はデバイス520から基地局510への通信リンクを指す。P2P通信では、P2PダウンリンクはP2PグループオーナーからP2Pクライアントへの通信リンクを指し、P2PアップリンクはP2PクライアントからP2Pグループオーナーへの通信リンクを指す。いくつかの実施形態では、2つ以上のデバイスが、WAN技法を使用してP2P通信するのではなく、Wi-Fi、Bluetooth(登録商標)、またはWi-Fi Directなどの技法を使用してより小さいP2Pグループを形成してワイヤレスローカルエリアネットワーク(WLAN)上でP2P通信してもよい。たとえば、Wi-Fi、Bluetooth(登録商標)、Wi-Fi Direct、またはその他のWLAN技法を使用するP2P通信では、2つ以上のモバイルフォン、ゲームコンソール、ラップトップコンピュータ、またはその他の適切な通信エンティティ間のP2P通信を可能にすることができる。
図6は、本開示の一態様による、様々なデバイス610、630、640が通信するのに利用することができる近接度ベースの分散バスを確立するために発見可能なP2Pサービスを使用し得る例示的な環境600を示す。たとえば、一実施形態では、ネットワーク化コンピューティング環境におけるアプリケーション間通信を有効化するのに使用されるソフトウェアバスを含んでもよい分散バス625を介したプロセス間通信プロトコル(IPC)フレームワークを使用して単一のプラットフォーム上でのアプリケーション同士などの間の通信を容易にすることができ、この場合、ネットワーク化コンピューティング環境におけるアプリケーション間通信では、各アプリケーションが分散バス625に登録して他のアプリケーションにサービスを提供し、他のアプリケーションが登録されているアプリケーションに関する情報を分散バス625に問い合わせる。そのようなプロトコルは、信号メッセージ(たとえば、通知)がポイントツーポイントメッセージであってもまたはブロードキャストメッセージであってもよく、メソッド呼出しメッセージ(たとえば、RPC)が同期メッセージであってもまたは非同期メッセージであってもよく、分散バス625(たとえば、「デーモン」バスプロセス)が様々なデバイス610、630、640間のメッセージルーティングに対処することができる、非同期通知およびリモートプロシージャ呼出し(RPC)を可能にすることができる。
一実施形態では、分散バス625は、様々なトランスポートプロトコル(たとえば、Bluetooth(登録商標)、TCP/IP、Wi-Fi、CDMA、GPRS、UMTSなど)によってサポートされてもよい。たとえば、一態様によれば、第1のデバイス610は、分散バスノード612と1つまたは複数のローカルエンドポイント614とを含んでもよく、分散バスノード612は、第1のデバイス610に関連するローカルエンドポイント614と第2のデバイス630および第3のデバイス640に関連するローカルエンドポイント634および644との間の、分散バス625を通じた(たとえば、第2のデバイス630および第3のデバイス640上の分散バスノード632および642を介した)通信を容易にすることができる。図7を参照しながら以下にさらに詳細に説明するように、分散バス625は、対称的マルチデバイスネットワークトポロジーをサポートしてもよく、デバイスドロップアウトの存在下でロバストな動作を可能にしてもよい。したがって、仮想分散バス625は、概して任意の下位トランスポートプロトコル(たとえば、Bluetooth(登録商標)、TCP/IP、Wi-Fiなど)とは無関係であってもよく、非セキュア(たとえば、オープン)からセキュア(たとえば、認証または暗号化)まで様々なセキュリティオプションを実現することができ、セキュリティオプションは、第1のデバイス610、第2のデバイス630、および第3のデバイス640間の自発的な接続を容易にしつつ、様々なデバイス610、630、640が互いの範囲に入るかまたは互いに近接したときに介入せずに使用され得る。
図7は、本開示の一態様による、第1のデバイス(「デバイスA」)710および第2のデバイス(「デバイスB」)730が通信するのに利用することができる近接度ベースの分散バスを確立するために発見可能なP2Pサービスを使用し得る例示的なメッセージシーケンス700を示す。概して、デバイスAは、デバイスBとの通信を要求してもよく、デバイスAは、そのような通信を容易にするのを助けることができるバスノード712に加えて通信の要求を出し得るローカルエンドポイント714(たとえば、ローカルアプリケーション、サービスなど)を含んでもよい。さらに、デバイスB 730は、ローカルエンドポイント714が、デバイスA 710上のローカルエンドポイント714とデバイスB 730上のローカルエンドポイント734との間の通信を容易にするのを助けることができるバスノード732に加えて通信を試み得るローカルエンドポイント734を含んでもよい。
一実施形態では、メッセージシーケンスステップ754において、バスノード712および732は適切な発見機構を実行してもよい。たとえば、Bluetooth(登録商標)、TCP/IP、UNIX(登録商標)などによってサポートされる接続を発見するための機構が使用されてもよい。メッセージシーケンスステップ756において、デバイスA 710上のローカルエンドポイント714は、バスノード712を通じて利用可能なエンティティ、サービス、エンドポイントなどに接続することを要求してもよい。一実施形態では、この要求は、ローカルエンドポイント714とバスノード712との間の要求応答プロセスを含んでもよい。メッセージシーケンスステップ758において、分散メッセージバスが、バスノード712をバスノード732に接続し、それによってデバイスA 710とデバイスB 730との間のP2P接続を確立するように形成されてもよい。一実施形態では、バスノード712とバスノード732との間に分散バスを形成するための通信は、近接度ベースのP2Pプロトコル(たとえば、接続された製品間の相互運用性を実現するように設計されたAllJoyn(登録商標)ソフトウェアフレームワークおよび近位ネットワークを動的に作成し近位P2P通信を容易にするための様々な製造業者によるソフトウェアアプリケーション)を使用して容易にされてもよい。代替として、一実施形態では、サーバ(図示せず)はバスノード712とバスノード732との間の接続を容易にしてもよい。さらに、一実施形態では、バスノード712とバスノード732との間に接続を形成する前に適切な認証機構が使用されてもよい(たとえば、クライアントが認証コマンドを送って認証対話を開始することができるSASL認証)。さらに、メッセージシーケンスステップ758の間、バスノード712および732は、利用可能な他のエンドポイント(たとえば、図6のデバイスC 640上のローカルエンドポイント644)に関する情報を交換してもよい。そのような実施形態では、バスノードが維持する各ローカルエンドポイントが他のバスノードに通知されてもよく、この通知は、一意のエンドポイント名、トランスポートタイプ、接続パラメータ、または他の適切な情報を含んでもよい。
一実施形態では、メッセージシーケンスステップ760において、バスノード712およびバスノード732は、それぞれローカルエンドポイント734および714に関連する得られた情報を使用して、様々なバスノードを通じて利用可能な得られた実エンドポイントを表すことのできる仮想エンドポイントを作成してもよい。一実施形態では、バスノード712上のメッセージルーティングでは、実エンドポイントおよび仮想エンドポイントを使用してメッセージを送信してもよい。さらに、リモートデバイス(たとえば、デバイスA 710)上に存在するあらゆるエンドポイントに1つのローカル仮想エンドポイントがあってもよい。さらに、そのような仮想エンドポイントは、分散バス(たとえば、バスノード712とバスノード732との間の接続)を介して送られたメッセージを多重化しならびに/あるいは多重化解除してもよい。一態様では、仮想エンドポイントは、実エンドポイントと同様にローカルバスノード712または732からメッセージを受信してもよく、分散バスを介してメッセージを転送してもよい。したがって、仮想エンドポイントは、エンドポイント多重化分散バス接続からローカルバスノード712および732へメッセージを転送してもよい。さらに、一実施形態では、リモートデバイス上の仮想エンドポイントに対応する仮想エンドポイントは、任意の時点で特定のトランスポートタイプの所望のトポロジーに対処するように再接続されてもよい。そのような態様では、UNIX(登録商標)ベースの仮想エンドポイントは、ローカルと見なされることがあり、したがって、再接続の候補とは見なされないことがある。さらに、TCPベースの仮想エンドポイントは、1つのホップルーティングに関して最適化されてもよい(たとえば、各バスノード712および732は互いに直接接続されてもよい)。さらに、Bluetooth(登録商標)ベースの仮想エンドポイントは、Bluetooth(登録商標)ベースのマスタがローカルマスタノードと同じバスノードであってもよい単一ピコネット(たとえば、1つのマスタおよびn個のスレーブ)に関して最適化されてもよい。
メッセージシーケンスステップ762において、バスノード712とバスノード732は、762においてバス状態情報を交換してバスインスタンス同士をマージし、分散バスを介した通信を可能にしてもよい。たとえば、一実施形態では、バス状態情報は、周知の一意のエンドポイント名マッピング、整合規則、ルーティンググループ、または他の適切な情報を含んでもよい。一実施形態では、状態情報は、分散バスベースのローカル名と通信するローカルエンドポイント714および734とのインターフェースを使用してバスノード712インスタンスとバスノード732インスタンスとの間で伝達されてもよい。別の態様では、バスノード712およびバスノード732の各々は、分散バスへのフィードバックを可能にする役割を果たすローカルバスコントローラを維持してもよく、バスコントローラは、グローバルメソッド、引数、信号、およびその他の情報を分散バスに関連する規格に変換してもよい。メッセージシーケンスステップ764において、バスノード712およびバスノード732は、上述のようなバスノードノード接続の間に導入されるあらゆる変化に関してそれぞれのローカルエンドポイント714および734に通知する信号を伝達(たとえば、ブロードキャスト)してもよい。一実施形態では、新しいおよび/または削除されたグローバル名および/または変換後の名前が、名前オーナー変更後信号によって示されてもよい。さらに、(たとえば、名前衝突に起因して)ローカルに失われることがあるグローバル名が名前喪失信号によって示されてもよい。さらに、名前衝突に起因して転送されるグローバル名が名前オーナー変更後信号によって示されてもよく、バスノード712およびバスノード732が切り離された場合および/またはときに消える一意の名前が名前オーナー変更後信号によって示されてもよい。
上記に使用されたように、周知の名前を使用してローカルエンドポイント714および734を一意に記述してもよい。一実施形態では、デバイスA 710とデバイスB 730との間で通信が行われるとき、異なる周知の名前タイプが使用されてもよい。たとえば、バスノード712が直接接続されるデバイスA 710に関連するバスノード712上にのみデバイスローカル名が存在してもよい。別の例では、すべての既知のバスノード712および732上にグローバル名が存在してもよく、すべてのバスセグメント上に存在してもよい名前のオーナーは1人だけである。言い換えれば、バスノード712とバスノード732が連結され、衝突が起こると、オーナーのうちの1人がグローバル名を失うことがある。さらに別の例では、クライアントが仮想バスに関連する他のバスノードに接続されるときに変換後の名前が使用されてもよい。そのような態様では、変換後の名前はアペンデッドエンドを含んでもよい(たとえば、グローバルに一意の識別子「1234」を有する分散バスに接続された周知の名前「org.foo」を有するローカルエンドポイント714は「G1234.org.foo」と見なされてもよい)。
メッセージシーケンスステップ766において、バスノード712およびバスノード732は、エンドポイントバストポロジーの変更について他のバスノードに通知するための信号を伝達(たとえば、ブロードキャスト)してもよい。その後、ローカルエンドポイント714からのトラフィックは、仮想エンドポイントを通過してデバイスB 730上の意図されるローカルエンドポイント734に達してもよい。さらに、動作中に、ローカルエンドポイント714とローカルエンドポイント734との間の通信はルーティンググループを使用してもよい。一態様では、ルーティンググループは、エンドポイントが信号、メソッド呼出し、またはエンドポイントのサブセットからの他の適切な情報を受信するのを可能にしてもよい。したがって、ルーティング名は、バスノード712または732に接続されたアプリケーションによって決定されてもよい。たとえば、P2Pアプリケーションは、アプリケーションに組み込まれた一意で周知のルーティンググループ名を使用してもよい。さらに、バスノード712および732は、ローカルエンドポイント714および734のルーティンググループへの登録および/または登録解除をサポートしてもよい。一実施形態では、ルーティンググループは、現在のバスインスタンスよりも後のインスタンスまで持続しなくてもよい。別の態様では、アプリケーションは、分散バスに接続するたびにアプリケーションの好ましいルーティンググループの登録をしてもよい。さらに、グループはオープンであっても(たとえば、任意のエンドポイントが参加してよい)またはクローズドであっても(たとえば、グループの作成者がグループを修正してもよい)よい。さらに、バスノード712または732は、他のリモートバスノードにルーティンググループエンドポイントの追加、削除、またはその他の変更を通知するための信号を送ってもよい。そのような実施形態では、バスノード712または732は、グループにメンバーが追加されならびに/あるいはグループからメンバーが削除されたときはいつでも他のグループメンバーにルーティンググループ変更信号を送ってもよい。さらに、バスノード712または732は、最初にルーティンググループから削除されることなく分散バスから切り離されるエンドポイントにルーティンググループ変更信号を送ってもよい。
IoTは、接続されたデバイス同士が新しい方法で対話することを可能にする。たとえば、IoTデバイスは、他のIoTデバイスとの対話(たとえば、電子メール、電話、テキストメッセージ、近接度検出など)を追跡し、そのような対話に基づいて他のIoTデバイスに関係識別子を割り当ててもよい。第1のIoTデバイスは、第1のIoTデバイスが第2のIoTデバイスに割り当てた関係識別子に基づいて第1のIoTデバイス自体または他の何らかのリソース(たとえば、別のIoTデバイス、電気、水道、ガスなどのユーティリティ)への第2のIoTデバイスのアクセスを許可してもよい。
しかし、IoTデバイスだけでは、関係識別子を割り当てるかまたはリソースへのアクセスを許可するのに十分な情報を有さず、サーバアクセスが禁止されているか、場合によっては不可能である状況がある。したがって、IoTデバイスは、関係識別子を割り当てるかまたはリソースへのアクセスを許可するために別のIoTデバイスと情報を共有する場合があるが、別のデバイスと情報を共有するには、誰を信頼すべきかを決定する必要がある。この問題の解決策を探ろうとすると堂々巡りに陥る。
本開示は、図2Aの情報共有モジュール216において実現される場合がある、増分的により多くの量の情報を共有するための機構を実現することによってこの問題に対処する。図2AにおけるIoTデバイス200AなどのIoTデバイスは、そのIoTデバイスのMACアドレス、近接アクセスポイントの識別子、時刻などの、そのIoTデバイスの環境に関する情報を収集し記憶する。第2のIoTデバイスが、AllJoyn(商標)ネットワークなどの、第1のIoTデバイスが接続されたP2Pネットワークに接続すると、各デバイスは互いを検出する。しきい値回数の最初の検出の後で、各IoTデバイスは、その関係または信頼レベルを高めたいと判定する場合があり、したがって、各IoTデバイスに関するより多くの情報を互いに共有する場合がある。各デバイスは最初、特定のロケーションにおける接続されたアクセスポイントに関する各デバイスの履歴など、低プライバシーレベルを有する限られた高レベル情報を共有する場合がある。
たとえば、第1の信頼レベルでは、各IoTデバイスは、建物全体に関する近接データへの各デバイスのアクセスなど、低プライバシーレベルを有する情報を共有する場合がある。詳細には、各IoTデバイスは、事前遭遇のしきい値回数よりも多い回数にわたって遭遇したP2Pネットワーク上のデバイスのすべてを含むその建物内のアクセスポイントとの接続に関する各IoTデバイスの履歴を共有してもよい。しかし、各IoTデバイスは、建物の外部のアクセスポイントとの各IoTデバイスの対話などの、より高いプライバシーレベルを有する情報を共有しない。
各IoTデバイスが共有されたデータ(たとえば、特定の建物内のアクセスポイント接続の履歴)を分析した後、新しい段階の関係を発見する場合がある。これによって、各IoTデバイスは、その第2の関係判定の結果に基づいて、デバイスが接続されたすべてのアクセスポイントなどの、より高いプライバシーレベルを有するずっと多くの情報を互いに共有することができる。したがって、この例では、データ共有の3つの段階がある。1)P2Pネットワーク、2)特定の建物内のアクセスポイント接続、および3)ロケーションとは無関係なすべてのアクセスポイント接続。各IoTデバイスが段階間を移動するにつれて、より多くの情報が共有されるが、共有はIoTデバイスのより限定されたグループ内で行われる。
次に、本開示のこれらの態様およびその他の態様についてより詳細に説明する。本開示は、「アクション」および「認証情報」という用語に新しい定義を付与する。従来、「アクション」は、判定された許可に基づいて許容される行動であり、「認証情報」は、アクションのセットを許可する情報のセットである。
従来のセキュリティ方法は連続的ではなく離散的である。たとえば、ユーザは、インターネットを介して銀行口座にアクセスするとき、勘定残高を見ることや支払いをすることなどの特定のアクションを実行することができる。ユーザは、銀行を呼び出しファックスを送信するとき、電信送金を行うことができる。したがって、ユーザは、インターネットを介してユーザの口座にアクセスするために、認証情報のあるセットを使用し、電信送金を行うために、認証情報の別のセットを使用する。したがって、勘定残高を見ることおよび電信送金を行うことという2種類のアクションがあり、2種類の認証情報がある。しかし、アクションおよび認証情報は、各々が異なるドメインに存在するので1対1に対応する。
対照的に、本開示は、複数のレベルの信頼アクションおよび関係するアクションを生じさせる複数のレベルの認証情報を提供する。本開示の方法は、判定される許可が累積的であるので増分的である。本開示では、追加の情報を共有することは、信頼レベルを高くする判定に基づいて許容される場合がある「アクション」のうちの1つであり、共有された情報は、次の信頼レベルに関する認証情報になる。したがって、アクションと認証情報の間に再帰的関係がある。
図8A〜図8Dは、本開示の一態様による第1のユーザの視点からの、増分的により高いプライバシーレベルを有する増分的により多くの量の情報を共有するための例示的なストーリー展開を示す図である。図8Aでは、810において、第1のユーザ(「トム」)が、図2Aにおける情報共有モジュール216を具現化するアプリケーションなどの、IoTデバイスに対して開示される態様を実施するアプリケーションをインストールする。820において、トムと第2のユーザ(「ジャック」)が同じ建物(「建物A」)に入る。トムとジャックのIoTデバイスは、トムとジャックが建物の周りを移動するときに建物A内の1つまたは複数のアクセスポイントに接続してもよい。
図8Bでは、830において、トムとジャックが建物A内のエレベータに乗る。トムとジャックのIoTデバイスは、AllJoyn(商標)ネットワークなどのP2Pネットワークを介して接続され、この遭遇をログする。P2Pネットワークは、トムのIoTデバイスによってホストされてもあるいはジャックのIoTデバイスによってホストされてもよい。次いで、840において、第3のユーザ(「マリー」)がエレベータ内でトムとジャックに遭遇する。マリーのIoTデバイスは、トムとジャックのIoTデバイスが接続されているのと同じP2Pネットワークに接続されてもよく、3つのIoTデバイスがこの遭遇をログしてもよい。
図8Cでは、850において、トムとジャックが同じ階(たとえば、3階)でエレベータから降り、860において、マリーはエレベータ内に残る。各ユーザのIoTデバイスは対話(すなわち、マリーのIoTデバイスはP2Pネットワークに接続されていないが、トムとジャックのIoTデバイスは接続されていること)をログする。
図8Dでは、870において、トムとジャックとマリーの全員がトムに家に向かう。各ユーザのIoTデバイスの各々が同じP2Pネットワークに接続されてもよく、P2Pネットワークは、各ユーザのIoTデバイスのうちの1つまたはトムの家にあるデバイスの一方によってホストされてもよい。トムのIoTデバイスは、マリーのIoTデバイスとの対話よりも多くの対話をジャックのIoTデバイスとの間に有する(たとえば、ジャックはトムと同じ階でエレベータから降りる)ので、トムのIoTデバイスは、本明細書において説明するように、ジャックのIoTデバイスとより多くの情報を共有し、ジャックのIoTデバイスにより高度のアクセスを許可している。したがって、880において、ジャックはトムのステレオへのアクセスを許可されるが、マリーは許可されない。
本開示では、本明細書において開示する態様を実現するのに使用できる「イベント」の3つのクラスを提案する。第1のIoTデバイスは自己認識すると見なされる。さらに、第1のIoTデバイスは、P2Pネットワークを介して第2のIoTデバイスから「イベント」を受信することができる。イベントの3つのクラスがある。1)イベントはないが、各IoTデバイスは、それ自体のロケーションIDを認識している(「自己知識」と呼ばれる)。2)時間パラメータ、デバイスIDパラメータ、およびロケーションIDパラメータを含むイベント、ならびに3)クラス2)によるイベントとコンテンツ(コンテンツは必要ではないが常に有用である)。
イベントに作用する3つの方法がある。第1の方法はクライアントモデルであり、すべてのイベントハンドリングが第1のIoTデバイスにおいて行われる。この場合、関係モデリングには、クラス2)以上のイベントが必要である。第2の方法はクライアント-サーバモデルであり、イベントは、第1のIoTデバイスにおいて対処されサーバに転送される。この場合、関係モデリングは、サーバにおいて行われ、クラス1)以上のイベントを必要とする。第3の方法はハイブリッドモデルであり、イベントは、第1のIoTデバイスおよび第2のIoTデバイスにおいて対処される。この場合、イベントはデバイス間で共有され、関係モデリングは各IoTデバイスにおいて独立に行われる。この場合、クラス1)以上のイベントが必要である。
イベント共有のハイブリッドモデルにはいくつかの利点がある。このハイブリッドモデルは、既存のP2P機能を最大限に活用するのを可能にする。たとえば、クライアント-サーバモデルとは異なり、情報をリモートサーバに安全に転送することに関して不安はない。また、各デバイスがそのロケーションデータ(たとえば、アクセスポイントMACアドレス、GPSなど)を各P2P対話において共有する必要があるクライアント専用モデルの場合とは異なり、過度の情報共有は行われない。さらに、ハイブリッドモデルは、第1のユーザのみがアプリケーションをインストールし、単に必要に応じて友人を招待するのを可能にする。これによって、ウィルス成分が生じる。これに対して、クライアント専用モデルおよびクライアント-サーバモデルでは、すべてのユーザがアプリケーションをインストールする必要がある。
上述のように、IoTデバイスは、それが対話する別のIoTデバイスに増分的により高い関係ステータスまたは信頼レベルを割り当て、より高い信頼レベルに基づいて増分的により多くの量の情報を共有することができる。以下ではこのアルゴリズムについての詳細な概要を示す。第1のIoTデバイスと第2のIoTデバイスは、互いを検出したときに、質問し合うことができる。
1. 今日対話しますか?
2. 対話する場合、
a. 現在の情報に基づいて第2のデバイスに関係ステータス/信頼レベルを割り当てる。
b. 関係ステータス/信頼レベルに基づくとともにこの関係が構築されたロケーションに基づいて他のIoTデバイスと自己知識を共有する。
c. 前回の反復に基づいて事前に選択された範疇の自己知識を共有する。
3. 2に進む。
図示のように、通信が反復的に行われ、動的な関係ステータスまたは信頼レベルが得られ、さらなる情報共有およびセキュリティ(たとえば、リソース共有)をこの動的な関係ステータスまたは信頼レベルに基づいて実現することができる。
図9A〜図9Cは、上記のアルゴリズムの一例を示し、この場合、情報共有モジュール216を有する第1のIoTデバイス(「デバイスA」)が、同じく情報共有モジュール216を有する第2のIoTデバイス(「デバイスB」)に増分的により高い信頼レベルを割り当て、このより高い信頼レベルに基づいて増分的により多くの量の情報を共有する。図9Aでは、デバイスAがデバイスBに、両デバイスがAllJoyn(商標)ネットワークなどのP2Pネットワークを介して対話するかどうかを尋ねる。デバイスBは、「はい」と応答する。この対話は、デバイスAとデバイスBの両方が同じP2Pネットワークに接続されているとの単なる判定であってもよい。この判定に基づいて、デバイスAとデバイスBは、自己知識に基づいて他方のデバイスに初期関係ステータス(または信頼レベル)を割り当てる。
図9Bでは、デバイスAとデバイスBは、割り当てられた関係ステータスによって第1の(低)プライバシーレベルを有するログデータのログ共有が可能になるか否かを判定する。ログ共有が可能になる場合、両デバイスは、P2P対話が生じたロケーションを判定し、それらのロケーションに関するログを共有する。共有されるロケーションは、建物、職場、家庭などの共有される場所、GPS座標などの共有される座標、共有されるアクセスポイント、共有されるセルラーネットワーク基地局などであってもよい。共有されるログは、両デバイスが共有されるロケーションにおいて接続されたアクセスポイントのログであってもよい。デバイスAとデバイスBは、ログに基づいて、互いに関するより高い関係ステータスを導出してもよい。両デバイスは、両デバイスが同じアクセスポイントに接続されていたか否か、同じ時間に接続されていたか否か、同じ周波数で接続されていたか否かなどを判定するためにログデータを分析してもよい。
図9Cでは、デバイスAは、新たに割り当てられた関係ステータスによって第2の(より高い)プライバシーレベルを有するログデータのさらなるログ共有が可能になるか否かを判定する。デバイスBは、2つのデバイスが十分に高い関係ステータスを有しており、したがって、さらなる情報を共有することができると応答する。したがって、デバイスAとデバイスBは、さらなるロケーション、すなわち、デバイスAとデバイスBのP2P対話が生じたロケーション以外のロケーションに関するログを共有する。デバイスAとデバイスBは、ログに基づいて、互いに関するより高い関係ステータスを導出してもよい。前述のように、両デバイスは、両デバイスが同じアクセスポイントに接続されていたか否か、同じ時間に接続されていたか否か、同じ周波数で接続されていたか否かなどを判定するためにログデータを分析してもよい。
図9Cに示す動作は、いくつかの出口条件が満たされるまで繰り返すことが可能である。出口条件は、最高の信頼レベルが割り当てられていること、関連するすべてのデータが共有されていること、ユーザが共有することを許可するすべてのログデータが共有されていることなどであってもよい。代替または追加として、両IoTデバイスは、もはやP2Pネットワークを介して接続されていない状態になるまで反復してもよい。その場合、両IoTデバイスは、ある期間の間共有されるログデータを維持することができる。そのようにして、両IoTデバイスは、その期間内に再接続される場合、ログデータを再交換する必要がなく、その代わりに停止した場所から継続することができる。
次いで、反復プロセスの間に割り当てられた最高の信頼レベルが記憶され、将来IoTデバイスと対話する際に使用される。しかし、両IoTデバイスがあるしきい値時間の間に再び対話することがなかった場合、信頼レベルをより低い信頼レベルに低下させてもよい。このようにして、IoTデバイス間の対話が継続しなかった場合、経時的に信頼レベルが低下する。
2つのデバイス間でログデータを反復的に転送することに関してバッテリー管理およびネットワークリソース利用問題が生じる場合もある。これに対処するために、対話する両デバイスは、両デバイスによって交渉されるかあるいはユーザ選好として設定される場合がある、有限量のログデータ、たとえば、1日分、3日分、1週間分などのログデータを送信してもよい。
図10は、本開示の一態様による、例示的なオブジェクトモデルを示す。このオブジェクトモデルは、図2Aにおける情報共有モジュール216などの情報共有モジュールにおいて具体化されてもよい。デバイスマネージャオブジェクト1010は、アクセスおよび管理を容易にするために複数のデバイスオブジェクト1020をデバイスアレイに記憶してもよい。デバイスオブジェクト1020は、検出された各デバイスに関する情報を記憶してもよい。デバイスオブジェクト1020は、一致した共有されるデータ、共有されるデータに関する統計、ならびに関係オブジェクト1030を記憶することができる。関係オブジェクト1030は、現在の関係レベル、関係レベルに直接関係する場合もあるいは直接関係しない場合もある共有レベル、ならびに関係を現在のレベルよりも1つ上または下に増分または減分するのに必要なしきい値を表すことのできる関係しきい値を記憶することができる。
以下に、図10に示すオブジェクトモデルを使用した関係の確立に関するさらなる詳細を示す。他のデバイスとの関係を確立し維持する際の主要な構成要素は、デバイスマネージャクラス1010である。このクラスは、アプリケーションが互いに近接するデバイスおよびその関係を追跡するのを可能にする(クラスデバイス1020の)デバイスのアレイを含む。デバイスオブジェクト1020は、3つの範疇の構成要素、一致データ、統計、および関係を有することができる。
一致データ構成要素または一致データオブジェクトは、データタイプ(たとえば、ロケーション、通知など)ごとに別個のクラスを使用して、データの種類ごとに対応するクラスのアレイを維持することによって、一致データを追跡する。一致データオブジェクトは、統計を算出するのに使用される。
統計構成要素または統計オブジェクトは、現在の関係レベルまたは信頼レベルを算出するのに使用されるコインシデンス平均を追跡する。統計が変化するにつれて、関係レベルは上がるかまたは下がる場合があり、あるいはそのままである場合もある。
関係構成要素または関係オブジェクトは、共有レベル、関係しきい値、および現在の関係/信頼レベル構成要素/オブジェクトを追跡する。共有レベル/プライバシーレベル構成要素は、あるデバイスが別のデバイスとどんなレベルのデータを共有することを望んでいるかを判定する。このことは、現在の関係構成要素に基づいて決定される。最初に、すべてのデバイスが関係の最低レベルとともに共有の最低レベルに設定される。図9A〜図9Cを参照して上記において説明したように、関係レベル/信頼レベルが高くなるにつれて、並行して共有レベル/プライバシーレベルが高くなる。デバイスは、別のデバイスと接触を確立したときに、現在の共有レベル/プライバシーレベルに基づいて適切なデータを自動的に共有することができる。デバイスは、特定のタイプのデータを受信したときに、そのタイプのデータを比較するためにログオブジェクトをチェックすることができる。ログオブジェクトは、一致データ構成要素を更新して、サイクルを完了することができる。
関係しきい値は、デバイスを特定の関係範疇に分類し、関係/トラストの次のレベルにアップグレードするのにどれだけ多くの一致データが必要とされるかを意味する、コインシデンスのレベルを表す。関係しきい値には、個人的な選好に基づいてユーザによって修正される場合があるデフォルト値を与えることができる。これらの値は、デバイスマネージャ1010によって管理することが可能であり、デバイスマネージャ1010は、終了/起動時にデータを保存/ロードすることができ、それによって、アプリケーションを終了した後、既存の関係が保存される。
以下に、交換されたデータをロギングし処理する方法について説明する。関係/信頼のレベルを判定するのに使用することのできるいくつかのデータタイプがある。ユーザ自身のデバイス用にロギングされるデータおよび他のデバイスから受信されたデータは、たとえば、関係/<デバイスID>ディレクトリの下でのデバイスのファイルシステムにロギングすることが可能である。ファイル名は、データタイプとその後に続く日付であってもよい。ログを処理しデータの重複を判定し、それに応じて関係を更新した後、無関係なファイルを除去することができる。
ログオブジェクトは、データタイプの各々が継承し関連する方法で実施するベースクラスを表す。関係のレベルに対応するログオブジェクトがデータタイプごとに存在してもよい。この構造は、ログベースクラスから構築することによって新しいデータを容易に追加するのを可能にする。新しいデータタイプは、関係レベル/信頼レベルのより精巧な判定を可能にする場合がある。
ベースクラスは、3つの主要な関数を含む。
1. findUncheckedLogs(): ベースクラスおよび呼において実施される関数、
2. compareLogs(): オブジェクトによって実施されるベースクラスにおける抽象関数、
3. getDataOvarlap(): 一致するデータを与えるためのベースクラスにおける抽象関数。
ベースクラスは、既知のデバイスのすべてのディレクトリをループし、まだ処理されていないログを見つけるfindUncheckedLogs関数を含んでもよい。次いで、そのようなログファイル上でcompareLogs関数を呼び出すことができる。この関数は、特定のログタイプを比較して比較すべきフィールドを検査するための適切な方法を有する。重複するデータは、対応するデータタイプのオブジェクトのアレイに保存することが可能である。データタイプの各々がプロトタイプオブジェクトを有してもよい。
プロトタイプオブジェクトは、以下の変数を含んでもよい(すべての変数の後にセッターおよびゲッターが続く)。「mDate」、タイムスタンプ、「mCount」、同じ日付または特定の時間フレーム内にこのデータが生じる時間の長さ、および「information」、現在のログタイプの関連するデータ。たとえば、ロケーションタイプは、WiFiアクセスポイント、BSSID、SSID、GPS座標などであってもよい。別の例として、通知タイプはAppName、AppIdなどであってもよい。このプロセスに基づいて、関係を高める/低めることができる。
messageHandlerClassは、すべての外部デバイスからの着信メッセージに対処する関数であるのでフローを制御する際の重要なクラスである。このクラスは、新しいデバイスを検出したとき、新しいデバイスがログを共有したときなどに最初に通知を受けるクラスでもある。新しいデバイスがハンドシェイクを完了すると、メッセージハンドラが通知を受け、最初に既存のデバイスリストに新しいデバイスを追加し、基本レベルのデータを新しいデバイスと共有することによって、関係を構築するプロセスを開始する。これに応じて対応するデータが到着すると、メッセージハンドラは、データ保存および比較をトリガする。メッセージハンドラは次いで、最近の活動に基づいて関係/信頼レベルを更新し、共有レベル/プライバシーレベルも同様に更新する。したがって、次に両デバイスが対話するときには、必要に応じて、新しいレベルのデータを共有することができる。時限間隔(たとえば、1日1度)において、現在の関係/信頼および共有/プライバシーレベルに基づいてすべての関連するデータを既知の各デバイスと共有することができる。
関係/信頼レベルと共有/プライバシーレベルが同等ではない場合があることに留意されたい。本明細書において説明するように、信頼レベルは、第1のデバイスが第2のデバイスに対して有する信頼のレベル、したがって、第1のデバイスが第2のデバイスに許可するアクセスのレベルを指定し、一方、プライバシーレベルは、デバイス間で共有されてもよいデータのタイプおよび/または量を指定する。いくつかの実施形態では、所与の信頼レベルは、同等のプライバシーレベルを有するデータへのアクセスを可能にしてもよいが、このことは必要ではない。
図11は、本明細書において説明するように、2つ以上のユーザデバイス間で増分的により多くの量の情報を共有するための例示的なフローを示す図である。これらのユーザデバイスは、上述のように、情報共有モジュール216を有するIoTデバイスであってもよい。1105において、第1のユーザデバイスは、第1のユーザデバイスに近接する第2のユーザデバイスを検出する。第1のユーザデバイスは、第2のユーザデバイスを検出し、第2のユーザデバイスとAllJoyn(商標)ネットワークなどのP2Pネットワークを介して通信する。
1110において、第1のユーザデバイスは、第2のユーザデバイスの判定可能な特性に基づいて第2のユーザデバイスに初期信頼レベルを割り当てる。第1のユーザデバイスは、P2Pネットワークを介して第2のユーザデバイスと通信することによって判定可能な特性を判定してもよい。このことは、図9Aを参照して上記において説明した「自己知識」に基づく初期信頼レベルの割当てに相当してもよい。
1115において、第1のユーザデバイスは、初期信頼レベルにおいて第2のユーザデバイスとのログ共有が許可されるか否かを判定する。ログ共有が可能ではない場合、フローは1105に戻り、第1のユーザは後で再び第2のユーザデバイスを検出してもよい。初期信頼レベルにおいてログ共有が許可される場合、1120において、第1のユーザデバイスは、初期プライバシーレベルを有する初期ログデータを第2のユーザデバイスに送信し、第1のプライバシーレベルを有する第1のログデータを第2のユーザデバイスから受信する。第1のログデータは、第1の期間にわたる第2のユーザデバイスのログデータであってもよい。同様に、初期ログデータは、第1の期間にわたる第1のユーザデバイスのログデータであってもよい。ブロック1115および1120はそれぞれ、図9Bの第1および第3の動作に相当してもよい。
一例として、第1のログデータは、第1の期間にわたる第2のユーザデバイスの第1のロケーションデータを含んでもよい。第1のロケーションデータは、第1の期間の間に第2のユーザデバイスが接続されたアクセスポイントのリストを含んでもよい。この場合、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話したかどうかを判定することは、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間互いに近接していたかどうかを第1のロケーションデータに基づいて判定することを含んでもよい。第1のユーザデバイスと第2のユーザデバイスが第1の期間の間互いに近接していたかどうかを判定することは、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間近接していた回数を判定することを含んでもよい。
1125において、第1のユーザデバイスは、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話したか否かを受信された第1のログデータに基づいて判定する。第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話したかどうかを判定することは、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話したかどうかを、初期ログデータと受信された第1のログデータを比較することによって判定することを含んでもよい。
第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話しなかった場合、フローは1105に戻り、第1のユーザデバイスは後で再び第2のユーザデバイスを検出してもよい。第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に対話した場合、1130において、第1のユーザデバイスは第2のユーザデバイスに第1の信頼レベルを割り当てる。第1の信頼レベルは、初期信頼レベルよりも高い信頼レベルである。ブロック1125および1130は、図9Bの第4の動作に相当してもよい。
1135において、第1のユーザデバイスは、第1の信頼レベルにおいて第1のユーザデバイスが第2のユーザデバイスにさらなるログデータを送信することが許可されるか否かを判定する。このさらなるログデータは、初期ログデータよりも高いプライバシーレベルを有する。第1の信頼レベルにおいて第1のユーザデバイスが第2のユーザデバイスにさらなるログデータを送信することが許可されない場合、フローは1105に戻り、第1のユーザは後で再び第2のユーザデバイスを検出してもよい。第1の信頼レベルにおいて第1のユーザデバイスが第2のユーザデバイスにさらなるログデータを送信することが許可される場合、1140において、第1のユーザデバイスは第2のユーザデバイスにさらなるログデータを送信し、第2のプライバシーレベルを有する第2のログデータを第2のユーザデバイスから受信する。さらなるログデータおよび第2のログデータは、それぞれ、第2の期間にわたる、第1および第2のユーザデバイスのログデータであってもよい。さらなるログデータおよび第2のログデータはそれぞれ、初期ログデータおよび第1のログデータよりも高いプライバシーレベルを有してもよい。ブロック1135および1140は、図9Cの第1、第2、および第3の動作に相当してもよい。
一例として、第2のログデータは、第2の期間にわたる第2のユーザデバイスの第2のロケーションデータを含んでもよい。第2のロケーションデータは、第2の期間の間の第2のユーザデバイスの地理的座標を含んでもよい。
1145において、第1のユーザデバイスは、第1のユーザデバイスと第2のユーザデバイスが第2の期間の間に対話したかどうかを受信された第2のログデータに基づいて判定する。第1のユーザデバイスと第2のユーザデバイスが第2の期間の間に対話しなかった場合、フローは1105に戻り、第1のユーザデバイスは後で再び第2のユーザデバイスを検出してもよい。第1のユーザデバイスと第2のユーザデバイスが第2の期間の間に対話した場合、1150において、第1のユーザデバイスは第2のユーザデバイスに第2の信頼レベルを割り当てる。第2の信頼レベルは、第1の信頼レベルよりも高い信頼レベルである。必ずしもそうである必要はないが、第1の期間と第2の期間は、同じ期間であってもよい。ブロック1145および1150は、図9Cの第4の動作に相当してもよい。
一例として、第2のユーザデバイスに第1の信頼レベルを割り当てることは、第1のユーザデバイスと第2のユーザデバイスが第1の期間の間に第1のしきい値回数だけ対話したと判定することに基づいてもよい。同様に、第2のユーザデバイスに第2の信頼レベルを割り当てることは、第1のユーザデバイスと第2のユーザデバイスが第2の期間の間に第2のしきい値回数だけ対話したと判定することに基づいてもよい。この場合、第2のしきい値は第1のしきい値よりも大きい場合がある。
図11には示されていないが、第1のユーザデバイスは、第1のユーザデバイスに近接する第3のユーザデバイスを検出する。第1のユーザデバイスは、第3のユーザデバイスから第3のログデータを受信してもよく、その場合、第3のログデータは、第3の期間にわたる第3のユーザデバイスのログデータであってもよい。第1のユーザデバイスは、第1のユーザデバイスと第3のユーザデバイスが第3の期間の間に対話したかどうかを受信された第3のログデータに基づいて判定する。第1のユーザデバイスは、第1のユーザデバイスと第3のユーザデバイスが第3の期間の間に対話したことに基づいて第3のユーザデバイスに第1の信頼レベルを割り当ててもよい。
第1のユーザデバイスは、第3のユーザデバイスから第4のログデータを受信してもよく、その場合、第4のログデータは、第4の期間にわたる第3のユーザデバイスのログデータであってもよく、第4のログデータは、第3のログデータよりも高いプライバシーレベルを有する。第1のユーザデバイスは、第1のユーザデバイスと第3のユーザデバイスが第2の期間の間に対話したかどうかを受信された第4のログデータに基づいて判定する。第1のユーザデバイスは、第1のユーザデバイスと第3のユーザデバイスが第4の期間の間に対話したことに基づいて第3のユーザデバイスに第2の信頼レベルを割り当ててもよい。
図12は、相互に関係する一連の機能モジュールとして表された、例示的なユーザデバイス装置1200を示す。検出するためのモジュール1202は、少なくともいくつかの態様では、たとえば、本明細書において説明したようにトランシーバ206などの通信デバイスに相当してもよい。送信/受信するためのモジュール1204は、少なくともいくつかの態様では、たとえば、本明細書において説明するように、情報共有モジュール216などの情報共有モジュールと連係する、トランシーバ206のような通信デバイスまたはプロセッサ208のような処理システムに相当してもよい。判定するためのモジュール1206は、少なくともいくつかの態様では、たとえば、本明細書において説明するように、情報共有モジュール216などの情報共有モジュールと連係する、プロセッサ208などの処理システムに相当してもよい。割り当てるためのモジュール1208は、少なくともいくつかの態様では、たとえば、本明細書において説明するように、情報共有モジュール216などの情報共有モジュールと連係する、プロセッサ208などの処理システムに相当してもよい送信/受信するためのモジュール1210は、少なくともいくつかの態様では、たとえば、本明細書において説明するように、情報共有モジュール216などの情報共有モジュールと連係する、トランシーバ206のような通信デバイスまたはプロセッサ208のような処理システムに相当してもよい。判定するためのモジュール1212は、少なくともいくつかの態様では、たとえば、本明細書において説明するように、情報共有モジュール216などの情報共有モジュールと連係する、プロセッサ208などの処理システムに相当してもよい。割り当てるためのモジュール1214は、少なくともいくつかの態様では、たとえば、本明細書において説明するように、情報共有モジュール216などの情報共有モジュールと連係する、プロセッサ208などの処理システムに相当してもよい。
図12のモジュールの機能は、本明細書の教示と矛盾しない様々な方法で実装されてもよい。いくつかの設計では、これらのモジュールの機能は、1つまたは複数の電気構成要素として実装されてもよい。いくつかの設計では、これらのブロックの機能は、1つまたは複数のプロセッサ構成要素を含む処理システムとして実装されてもよい。いくつかの設計では、これらのモジュールの機能は、たとえば、1つまたは複数の集積回路(たとえば、ASIC)の少なくとも一部分を使用して実装されてもよい。本明細書で説明するように、集積回路は、プロセッサ、ソフトウェア、他の関連の構成要素、またはそれらの何らかの組合せを含んでもよい。したがって、異なるモジュールの機能は、たとえば、集積回路の異なるサブセットとして実装されてもよく、あるいは1組のソフトウェアモジュールの異なるサブセットとして実装されてもよく、あるいはその組合せとして実装されてもよい。また、(たとえば、集積回路の、および/またはソフトウェアモジュールのセットの)所与のサブセットが、2つ以上のモジュールに関する機能の少なくとも一部分を実現する場合があることが諒解されよう。
加えて、図12によって表される構成要素および機能ならびに本明細書で説明する他の構成要素および機能は、任意の適切な手段を使用して実装されてもよい。そのような手段はまた、少なくとも部分的に、本明細書で教示する対応する構造を使用して実装されてもよい。たとえば、図12の「ためのモジュール」構成要素とともに上記で説明した構成要素はまた、同様に指定された「ための手段」機能に相当してもよい。したがって、いくつかの態様では、そのような手段のうちの1つまたは複数は、プロセッサ構成要素、集積回路、または本明細書で教示する他の適切な構造のうちの1つまたは複数を使用して実装されてもよい。
情報および信号が多種多様な異なる技術および技法のいずれかを使用して表すことができることを、当業者は理解されよう。たとえば上記説明全体を通して参照することができるデータ、命令、指令、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁界または粒子、光学場または粒子、あるいはそれらの任意の組合せによって表すことができる。
さらに、本明細書で開示する態様に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、一般的にそれらの機能性に関してこれまで説明されてきた。そのような機能性がハードウェアとして実現されるか、またはソフトウェアとして実現されるかは、具体的な適用例および全体的なシステムに課される設計制約によって決まる。当業者は、説明される機能を具体的な応用形態ごとに様々な方法で実現することができるが、そのような実現の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
本明細書に開示する態様と関連して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途用集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジックデバイス、個別のゲートもしくはトランジスタロジック、個別のハードウェア部品、または本明細書に記載した機能を行うように設計されたこれらの任意の組合せを用いて、実装または実行され得る。汎用プロセッサを、マイクロプロセッサとすることができるが、代替案では、プロセッサを、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装され得る。
本明細書において開示する態様に関連して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接具現され得る。ソフトウェアモジュールは、RAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読取り、そこに情報を書込みできるようにプロセッサに結合される。代替案では、記憶媒体は、プロセッサに一体とされ得る。プロセッサおよび記憶媒体は、ASIC内に存在し得る。ASICはIoTデバイス内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別の構成要素として存在し得る。
1つまたは複数の例示的な態様では、述べられる機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで、実施され得る。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、または、コンピュータ可読媒体を介して送信される場合がある。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできるすべての使用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク(disc)ストレージ、磁気ディスク(disk)ストレージもしくは他の磁気ストレージデバイス、あるいは命令もしくはデータ構造の形で所望のプログラムコードを担持しまたは記憶するのに使用でき、コンピュータによってアクセスできる任意の他の媒体を含むことができる。また、任意の接続は、適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースからソフトウェアが送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、CD、レーザディスク(disc)、光ディスク(disc)、DVD、フロッピーディスク(disk)およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。前述の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
上記の開示は本開示の例示的な態様を示すが、添付の特許請求の範囲によって規定される本開示の範囲から逸脱することなく、本明細書で様々な変更および修正が行われ得ることに留意されたい。本明細書で説明した本開示の態様による方法クレームの機能、ステップおよび/または動作は、特定の順序で実施される必要はない。さらに、本開示の要素は、単数形で記載または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形が考えられる。