ユーザプリファレンスおよび/またはデバイス構成情報を設定するための方法および装置が開示される。第1のユーザデバイスが、ローカルワイヤレスネットワークを検出し、第2のユーザデバイスから、第2のユーザデバイスの構成情報および/またはプリファレンス情報を受信し、第2のユーザデバイスは第1のユーザデバイスに類似の機能を有し、また、第2のユーザデバイスは、第2のユーザデバイスから受信された構成情報および/またはプリファレンス情報の少なくともサブセットで第1のユーザデバイスの構成情報および/またはプリファレンス情報を更新し、第1のユーザデバイスの構成情報および/またはプリファレンス情報は第1のユーザデバイスに記憶される。
例示的な実施形態に関する具体例を示すために、次の説明および関連する図面においてこれらおよび他の態様が開示される。代替的な実施形態は、本開示を読むと当業者には明らかであり、本開示の範囲または趣旨から逸脱することなく、構築および実践することができる。加えて、本明細書において開示される態様および実施形態の関連する詳細を不明瞭にしないように、よく知られている要素は詳細には記載されないか、または省略される場合がある。
「例示的」という言葉は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」として説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「実施形態」という用語は、すべての実施形態が、論じられた特徴、利点または動作モードを含むことを要求しない。
本明細書で使用される用語は、特定の実施形態のみを説明するものであり、本明細書で開示される実施形態を限定するものと解釈すべきではない。本明細書で使用される単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用すると、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
さらに、多くの態様について、たとえばコンピューティングデバイスの要素によって実施されるべき、動作のシーケンスに関して説明する。本明細書で説明する様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実施され得ることは認識されよう。さらに、本明細書で説明されるこれらの一連の動作は、実行されると、関連するプロセッサに本明細書において説明される機能を実行させることになる対応する1組のコンピュータ命令を記憶した、任意の形のコンピュータ可読記憶媒体内で完全に具現されるものと見なされ得る。したがって、本開示の様々な態様は、特許請求される主題の範囲内にすべて入ることが企図されているいくつかの異なる形で具現され得る。さらに、本明細書で説明される実施形態ごとに、任意のそのような実施形態の対応する形は、本明細書において、たとえば、説明される動作を実行する「ように構成された論理」として説明される場合がある。
本明細書において使用する「モノのインターネットデバイス」(または「IoTデバイス」)という用語は、アドレス指定可能なインターフェース(たとえば、インターネットプロトコル(IP)アドレス、Bluetooth(登録商標)識別子(ID)、近距離無線通信(NFC)IDなど)を有し、有線接続またはワイヤレス接続を介して1つまたは複数の他のデバイスに情報を送信することができる任意の物(たとえば、電化製品、センサなど)を指す場合がある。IoTデバイスは、クイックレスポンス(QR)コード、無線周波数識別(RFID)タグ、NFCタグなどのパッシブ通信インターフェース、または、モデム、トランシーバ、送信機受信機などのアクティブ通信インターフェースを有する場合がある。IoTデバイスは、中央処理装置(CPU)、マイクロプロセッサ、ASICなどの中に組み込まれ、かつ/または、それらによって制御/監視され得るし、ローカルアドホックネットワークまたはインターネットなどのIoTネットワークに接続するために構成された属性の特定のセット(たとえば、IoTデバイスがオンであるかオフであるか、開いているか閉じているか、アイドルであるかアクティブであるか、タスク実行に利用可能であるかビジーであるかなど、冷房機能であるか暖房機能であるか、環境監視機能であるか環境記録機能であるか、発光機能であるか、音響放射機能であるかなどの、デバイスの状態またはステータス)を有することができる。たとえば、IoTデバイスには、これらのデバイスがIoTネットワークと通信するためのアドレス指定可能通信インターフェースを備えている限り、限定はしないが、冷蔵庫、トースター、オーブン、電子レンジ、冷凍庫、皿洗い機、パラボラアンテナ、手工具、洗濯機、衣類乾燥機、加熱炉、空調機、自動温度調節器、テレビジョン、照明設備、電気掃除機、スプリンクラー、電気メータ、ガスメータなどが含まれ得る。IoTデバイスには、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)なども含まれ得る。したがって、IoTネットワークは、通常、インターネット接続性をもたないデバイス(たとえば、皿洗い機など)に加えて、「レガシー」インターネットアクセス可能デバイス(たとえば、ラップトップコンピュータまたはデスクトップコンピュータ、携帯電話など)の組合せから構成される場合がある。
図1Aは、本開示の一態様によるワイヤレス通信システム100Aのハイレベルシステムアーキテクチャを示す。ワイヤレス通信システム100Aは、テレビジョン110と、屋外空調機112と、自動温度調節器114と、冷蔵庫116と、洗濯機および乾燥機118とを含む、複数のIoTデバイスを含んでいる。
図1Aを参照すると、IoTデバイス110〜118は、図1Aにエアインターフェース108および直接有線接続109として示されている物理通信インターフェースまたはレイヤを介してアクセスネットワーク(たとえば、アクセスポイント125)と通信するように構成される。エアインターフェース108は、IEEE802.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スーパーエージェント140を介して互いに接続され得るし、かつ/または通信することができる。ハイレベルで、スーパーバイザデバイス130はグループ内通信を管理し、IoTスーパーエージェント140はグループ間通信を管理することができる。別々のデバイスとして図示されているが、スーパーバイザデバイス130およびIoTスーパーエージェント140は、同じデバイス(たとえば、図1Aのコンピュータ120などのスタンドアロンデバイスもしくはIoTデバイス)であり得るか、またはその中に存在する場合がある。代替として、IoTスーパーエージェント140は、アクセスポイント125の機能に対応するか、またはその機能を含む場合がある。さらに別の代替として、IoTスーパーエージェント140は、IoTサーバ170などのIoTサーバの機能に対応するか、またはその機能を含む場合がある。IoTスーパーエージェント140は、ゲートウェイ機能145をカプセル化することができる。
各IoTデバイス110〜118は、スーパーバイザデバイス130をピアとして扱い、属性/スキーマ更新をスーパーバイザデバイス130に送信することができる。IoTデバイスが別のIoTデバイスと通信する必要があるとき、IoTデバイスは、そのIoTデバイスに対するポインタをスーパーバイザデバイス130に要求し、次いで、ピアとして対象の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スーパーエージェントを介して互いに接続され得るし、かつ/または互いに通信することができる。ハイレベルで、IoTスーパーエージェントは、IoTデバイスグループの間のグループ間通信を管理することができる。たとえば、図1Eでは、IoTデバイスグループ160Aは、IoTデバイス116A、122A、および124Aと、IoTスーパーエージェント140Aとを含み、IoTデバイスグループ160Bは、IoTデバイス116B、122B、および124Bと、IoTスーパーエージェント140Bとを含む。そのため、IoTスーパーエージェント140Aおよび140Bは、インターネット175と接続し、インターネット175を介して互いに通信し、かつ/またはIoTデバイスグループ160Aと160Bとの間の通信を容易にするために互いに直接通信することができる。さらに、図1Eは、IoTスーパーエージェント140Aおよび140Bを介して互いに通信する2つのIoTデバイスグループ160Aおよび160Bを示すが、任意の数のIoTデバイスグループが、IoTスーパーエージェントを使用して互いに適切に通信できることを当業者なら諒解されよう。
図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は、ローカルに記憶されたアプリケーションを単独で実行することもできる。プラットフォーム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は、プリファレンス/構成モジュール216を含むことができ、そのモジュールは、メモリ212に記憶し、プロセッサ208によって実行可能とすることができるか、またはプロセッサ208に結合されるか、もしくは組み込まれるハードウェア構成要素とすることができる。
したがって、本開示の一態様は、本明細書に記載された機能を実行する能力を含むIoTデバイス(たとえば、IoTデバイス200A)を含むことができる。当業者によって理解されるように、様々な論理要素は、本明細書で開示する機能を達成するために、個別の要素、プロセッサ(たとえば、プロセッサ208)上で実行されるソフトウェアモジュール、またはソフトウェアとハードウェアとの任意の組合せで具現され得る。たとえば、トランシーバ206、プロセッサ208、メモリ212、I/Oインターフェース214、および/またはプリファレンス/構成モジュール216をすべて協調的に用いて、本明細書で開示する様々な機能をロード、記憶および実行することができ、したがって、これらの機能を実行するための論理は様々な要素に分散させることができる。代替的には、機能はプリファレンス/構成モジュール216などの1つの個別構成要素に組み込むことができる。したがって、図2AのIoTデバイス200Aの特徴は単に例示であると見されるべきであり、本開示は、図示される特徴または構成に限定されない。
たとえば、IoTデバイス200Aが、本明細書において説明されるように、ユーザプリファレンスおよび/またはデバイス構成情報を設定するように構成されるとき、送受信機206がローカルワイヤレスネットワークを検出すると、プリファレンス/構成モジュール216は(プリファレンス/構成モジュール216がメモリ212に記憶される実行可能モジュールである場合には、プロセッサ208とともに)、第2のユーザデバイスから(送受信機206を介して)、第2のユーザデバイスの構成情報および/またはプリファレンス情報を受信することであって、第2のユーザデバイスは、IoTデバイス200Aに類似の機能を有する、受信することと、第2のユーザデバイスから受信された構成情報および/またはプリファレンス情報の少なくともサブセットでIoTデバイス200Aの構成情報および/またはプリファレンス情報を更新することとを行うように構成することができ、IoTデバイス200Aの構成情報および/またはプリファレンス情報は、IoTデバイス200Aにおいて、たとえば、メモリ212内に記憶される。
図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ネットワーク内で観測、監視、制御、または場合によっては管理することができる。
さらに、パッシブIoTデバイス200Bにおいて利用可能な処理のレベルに応じて、パッシブIoTデバイス200Bは、オプションで、プリファレンス/構成モジュール216を含むことができる。プリファレンス/構成モジュール216は、起動されるときに、本明細書において説明される機能を実行するように構成されるスタンドアロン回路とすることができる。たとえば、プリファレンス/構成モジュール216は、電圧を印加されるときに、第2のユーザデバイスから(送受信機206を介して)第2のユーザデバイスの構成情報および/またはプリファレンス情報を受信し、第2のユーザデバイスから受信された構成情報および/またはプリファレンス情報の少なくともサブセットでパッシブIoTデバイス200Bの構成情報および/またはプリファレンス情報を更新するRFIDタグにおいて具現することができる。
図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が、何らかのタイプのネットワークベースのサーバ(たとえば、IoTサーバ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は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。
図3を参照すると、通信デバイス300は、情報を記憶するように構成される論理315をさらに含む。一例では、情報を記憶するように構成される論理315は、少なくとも非一時的メモリおよび関連ハードウェア(たとえば、メモリコントローラなど)を含むことができる。たとえば、情報を記憶するように構成される論理315に含まれる非一時的メモリは、RAM、フラッシュメモリ、ROM、消去可能プログラマブルROM(EPROM)、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当該技術分野において知られている任意の他の形の記憶媒体に対応することができる。情報を記憶するように構成される論理315は、実行されるときに、情報を記憶するように構成される論理315の関連ハードウェアがその記憶機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を記憶するように構成される論理315は、ソフトウェアだけに対応するのではなく、情報を記憶するように構成される論理315は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。
通信デバイス300が、本明細書において説明されるように、ユーザプリファレンスおよび/またはデバイス構成情報を設定するように構成される場合、情報を受信および/または送信するように構成される論理305は、ローカルワイヤレスネットワークを検出し、第2のユーザデバイスから、第2のユーザデバイスの構成情報および/またはプリファレンス情報を受信するように構成することができ、第2のユーザデバイスは通信デバイス300に類似の機能を有する。情報を処理するように構成される論理310は、第2のユーザデバイスから受信された構成情報および/またはプリファレンス情報の少なくともサブセットを用いて通信デバイス300の構成情報および/またはプリファレンス情報を更新するように構成することができる。情報を記憶するように構成される論理315は、通信デバイス300の構成情報および/またはプリファレンス情報を記憶するように構成することができる。
図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は、上記で説明したスーパーバイザデバイス130または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デバイスの実装形態に加えてサーバとして実装され得ることを説明するのを助ける。
図4を参照すると、サーバ400は、本明細書において論じられるように、第1のユーザデバイスがユーザプリファレンスおよび/またはデバイス構成情報を設定するのを容易にするように構成することができる。そのような実施形態では、サーバ400は、プリファレンス/構成モジュール416を含むことができ、そのモジュールは、たとえば、メモリ403に記憶し、プロセッサ401によって実行可能とすることができるか、またはプロセッサ401に結合されるか、もしくは組み込まれるハードウェア構成要素とすることができる。動作時に、サーバ400が、第1のユーザデバイスがローカルワイヤレスネットワークに参加したことを検出すると、サーバ400(具体的には、プロセッサ401およびネットワークアクセスポート404とともにプリファレンス/構成モジュール416)が、第2のユーザデバイスの構成情報および/またはプリファレンス情報を第1のユーザデバイスに送ることができ、第2のユーザデバイスは第1のユーザデバイスに類似の機能を有する。その後、第1のユーザデバイスは、第2のユーザデバイスから受信された構成情報および/またはプリファレンス情報の少なくともサブセットで第1のユーザデバイスの構成情報および/またはプリファレンス情報を更新することができる。第1のユーザデバイスおよび第2のユーザデバイスの構成情報および/またはプリファレンス情報は、サーバ400および第1のユーザデバイスの両方において記憶することができる。
概して、電話、タブレットコンピュータ、ラップトップコンピュータおよびデスクトップコンピュータ、特定の車両などのユーザ機器(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個のスレーブ)に関して最適化されてもよい。
バスノード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デバイスがユーザを取り囲むことになる。ますます多くのデバイスがネットワークアウェアになると、デバイスを構成することに関する問題が、より深刻になる。1つの課題は、デバイスをアップグレードまたは追加し、古いデバイスから新たなデバイスにエンドユーザの1組のパーソナルプリファレンスを転送するときに、シームレスな体験を生み出すことである。たとえば、ユーザが、視聴体験を室内にいる人に合わせることができる新しいスマートTVを購入することができる。ユーザが古いスマートTVを最初に買ったとき、ユーザは、たとえば、ユーザがどのタイプの番組および映画を視聴したいかに関するユーザのプリファレンスによって、スマートTVをプログラムしなければならなかった。また、スマートTVは、ユーザのこれらのプリファレンスまたは他のプリファレンスを経時的に学習している場合もある。しかしながら、ユーザが新しいスマートTVを設置するとき、ユーザは、自分のパーソナルプリファレンスを再プログラムしなければならず、および/またはスマートTVはこれらのプリファレンスを再び学習しなければならない。
したがって、本開示は、ユーザプリファレンスサービスを提供し(そのサービスは、図2Aのプリファレンス/構成モジュール216において具現することができ)、そのサービスによれば、新たなIoTデバイスが、ユーザのホームネットワークのようなローカルワイヤレスネットワークに追加されるとき、ユーザプリファレンスおよび/またはデバイス構成情報を受信できるようになる。開示されるサービスによれば、ユーザは、ユーザプリファレンスおよび/またはデバイス構成のワンタイムセットアップを実行できるようになる。代替的には、ユーザプリファレンスおよび/またはデバイス構成情報は、経時的に動的に学習される場合がある。ユーザのネットワークに新たなデバイスが追加されるとき、そのデバイスは、ユーザプリファレンスおよび/またはデバイス構成情報を受信し、組み込むことができ、それにより、ユーザが新たなデバイスを構成するのを不要にする。
たとえば、あるユーザは、自分が74度の温度を好み、一方、自宅内の別のユーザが78度の温度を好むことを指定することができる。ユーザが新たなスマートサーモスタットを最初に設置するとき、そのデバイスは、そのデバイスが動作し始めることができるユーザプリファレンスに関する何らかの予備知識を有し、そのデバイスが含む場合がある任意の学習アルゴリズムをジャンプスタートする。非学習サーモスタットである場合であっても、これらの温度プリファレンスを理解することができる場合には、自宅内のユーザの中央値に温度を調整できるようにすることによって、よりスマートに見えることができる。別の例として、上記のスマートTVの例を参照すると、スマートTVは、4人の視聴者を検出することができ、その視聴者を性別(男性または女性)、年齢層および関心によって分類し、ネットワークに参加するときに受信したユーザプリファレンスに基づいて、プロファイルを自動的に作成することができる。
この機能を成し遂げるために、ユーザプリファレンスサービスは、ユーザのプリファレンスおよび/またはデバイス構成情報を表すユーザ入力された、および/または学習された鍵のテーブルを含む信号を発行することができる。これは、テーブル内の鍵の意味に関する相互運用性問題を提起するが、これは本開示の範囲を越えており、相互運用性を確保するためにコンソーシアム/提携によって規定されることになる。各プリファレンス/構成値は、IoTデバイスがプリファレンス/構成を受信するのを許されるか否かを確認できるようにするために、公開または非公開を表示することができる。
ユーザプリファレンスサービスは、プリファレンス/構成値をテーブルに「あらかじめ入れる」のを助けるために、新たなIoTデバイスを監視する学習アルゴリズムも提供することができる。たとえば、ユーザが主にアクション映画を視聴する場合には、「アクション」のジャンルを含むように、「movie_interest」入力を更新することができる。同様に、ユーザが、自分のスマートフォンが常にユーザの周囲温度を認識していることを好む場合がある。その核心において、このデータ公開は、「私の好みはこのとおりです。それについて手伝ってもらいたい」とデバイスに伝え、デバイスが、「そのような好みであるなら、あなたの好みに合わせて変更するのを手伝いましょう」と伝えることができるようにすることである。
図8A〜図8Cは、動作時のユーザプリファレンスサービスの種々の例を示す。図8A〜図8Cに示される種々のIoTデバイスは、図5〜図7を参照しながら先に説明されたような、P2Pプロトコルを用いて互いに通信することができる。
図8Aは、タブレットコンピュータとして示されるコントローラIoTデバイス802と通信するスマートサーモスタット804を含む例示的なホームネットワークを示す。コントローラIoTデバイス802はタブレットコンピュータとして示されるが、本開示はそれには限定されず、コントローラIoTデバイス802は、図1Bに示されるスマートフォン、コンピュータ120、スーパーバイザ130もしくはIoTサーバ170、図2AのIoTデバイス200Aまたは図4のサーバ400のような、本明細書において説明される機能を可能にする任意のIoTデバイスとすることができる。本明細書において説明される機能を実施するために、コントローラIoTデバイス802は、図4のプリファレンス/構成モジュール416を含むことができる。
コントローラIoTデバイス802は、ユーザのホームネットワークにアタッチされる種々のIoTデバイスのためのユーザのプリファレンスおよび/またはデバイス構成情報を記憶することができる。ユーザは、これらのプリファレンス/構成によってコントローラIoTデバイス802をプログラムしている場合があり、コントローラIoTデバイス802は、その後、適切なIoTデバイスにプリファレンス/構成を公開している場合がある。代替的には、コントローラIoTデバイス802は、IoTデバイスがユーザによってプログラムされた後に、および/またはIoTデバイスがユーザの1つまたは複数のプリファレンスを学習した後に、IoTデバイス自体からプリファレンス/構成を受信している場合がある。後者の場合、IoTデバイスは、新たなプリファレンス/構成を学習するにつれて、コントローラIoTデバイス802を更新し続けることができる。
図8Aを参照すると、スマートサーモスタット804は、コントローラIoTデバイス802からユーザの温度プリファレンスを受信し、それに応じて、温度を調整することができる。たとえば、現在の温度が78度である場合には、スマートサーモスタット804内のアルゴリズムが、その情報を用いて、部屋が73度のユーザの好みの温度まで冷却を開始するように温度を調整する。スマートサーモスタット804は、この機能を実施するプリファレンス/構成モジュール216を含むことができる。
図8Bは、図8Aに示されるコントローラIoTデバイス802と通信するスマートテレビ806を含む例示的なホームネットワークを示す。図8Bに示されるように、スマートテレビ806は、ユーザの好みのチャネルが8チャネルであるなどの、いくつかのユーザプリファレンスを学習している場合がある。コントローラIoTデバイス802と通信した後に、スマートテレビ806は、ユーザの好みの映画ジャンルが「アクション」であることを発見する場合がある。スマートテレビ806は、ローカルに記憶されたユーザプリファレンスのリストにこのユーザ規定プリファレンスを追加することができる。すなわち、スマートテレビ806は、経時的に学習しているユーザプリファレンスを、ユーザが明確に規定するユーザプリファレンスで増強することができる。スマートテレビ806は、この機能を実施するプリファレンス/構成モジュール216を含むことができる。
図8Cは、別のスマートテレビ808と通信する図8Bに示されるスマートテレビ806を含む例示的なホームネットワークを示す。図8Cの例では、スマートテレビ808は、ユーザのホームネットワークに最近になって追加された。スマートテレビ808は、以下の機能を実施するプリファレンス/構成モジュール216を含むことができる。ユーザのホームネットワークを検出すると、スマートテレビ808は、スマートテレビ806のような類似のIoTデバイスから、ユーザプリファレンスおよび/またはデバイス構成情報を要求することができる。スマートテレビ808は、図5〜図7を参照しながら先に説明されたように、P2Pプロトコルを用いて、ユーザのホームネットワーク上のすべてのIoTデバイスに要求をブロードキャストすることができる。代替的には、スマートテレビ806は、ユーザのホームネットワークに類似のIoTデバイスが参加したことを検出することができ、自らが有する場合がある任意の公開ユーザプリファレンスおよび/またはデバイス構成情報をスマートテレビ808に送ることができる。スマートテレビ806は、たとえば、スマートテレビ808から導入メッセージまたは「関連(about)」メッセージを受信することによって、スマートテレビ808を検出することができる。
いずれにしても、新たなスマートテレビ808は、スマートテレビ806からユーザプリファレンスおよび/またはデバイス構成情報を受信し、受信されたユーザプリファレンスおよび/またはデバイス構成情報で、任意の類似のユーザプリファレンスおよび/またはデバイス構成情報を更新するか、または追加する。このようにして、ユーザは自分のプリファレンスおよび/またはデバイス構成情報でスマートテレビ808をプログラムする必要はなく、スマートテレビ808も、類似のIoTデバイス、ここでは、スマートテレビ806によってすでに学習されているユーザプリファレンスおよび/またはデバイス構成情報を学習する必要はない。
図9は、第1のユーザデバイス902のユーザプリファレンス情報および/またはデバイス構成情報を設定するための例示的なフローを示す。第1のユーザデバイス902は、図2AのIoTデバイス200Aのような任意のIoTデバイスとすることができる。図9に示されるように、第1のユーザデバイス902はデバイス904と通信することができる。デバイス904は、第1のユーザデバイス902に類似のIoTデバイス200Aのような第2のユーザデバイスとすることができる(たとえば、第1のユーザデバイス902およびデバイス904はいずれもスマートTVとすることができる)か、またはデバイス904は、スーパーバイザデバイス130、サーバ400またはコントローラIoTデバイス802のような、コントローラIoTデバイスとすることができる。プリファレンス/構成モジュール216は、プロセッサ、メモリおよび送受信機のような第1のユーザデバイス902の他の構成要素とともに、図9を参照しながら説明される、第1のユーザデバイス902の機能を実施することができる。デバイス904が第1のユーザデバイス902に類似の第2のユーザデバイスに対応する場合、プリファレンス/構成モジュール216は、再び、プロセッサ、メモリおよび送受信機のようなデバイス904の他の構成要素とともに、図9を参照しながら説明される、デバイス904の機能を実施することができる。代替的には、デバイス904がコントローラIoTデバイスである場合には、プリファレンス/構成モジュール416は、プロセッサ、メモリおよび送受信機のようなデバイス904の他の構成要素とともに、図9を参照しながら説明される、デバイス904の機能を実施することができる。
ユーザプリファレンス情報および/またはデバイス構成情報は、最初に第2のユーザデバイスにローカルに記憶される場合があるか、またはコントローラIoTデバイスに記憶される場合がある。第1のユーザデバイス902およびデバイス904はいずれも、ローカルワイヤレスネットワークの同じユーザに属することができる。
910において、デバイス904はオプションで、ユーザプリファレンス情報および/またはデバイス構成情報を更新する。デバイス904が第2のユーザデバイスである場合、デバイス904は、学習アルゴリズムに基づいて、ユーザプリファレンス情報および/またはデバイス構成情報を更新することができる。代替的には、デバイス904がコントローラIoTデバイスである場合、デバイス904は、第2のユーザデバイスからユーザプリファレンス情報および/またはデバイス構成情報を受信した後に、デバイス904のメモリにおいて、ユーザプリファレンス情報および/またはデバイス構成情報を記憶/更新することができる。
デバイス構成情報は、第2のユーザデバイス904のユーザによって入力されなかった構成情報を含むことができる。たとえば、第2のユーザデバイス904は、ユーザとの対話の履歴に基づいて、構成情報を更新することができる。別の例として、ユーザによって入力されなかった構成情報は、ユーザとの対話の履歴に基づいて第2のユーザデバイス904が学習したユーザのプリファレンスを含むことができる。さらに別の例では、ユーザによって入力されなかった構成情報は、第2のユーザデバイス904がスマートサーモスタットである場合に製造業者によって設定された最適温度のような、ユーザのプリファレンスでない第2のユーザデバイス904の1つまたは複数の構成を含むことができる。別の例として、ユーザによって入力されなかった構成情報は、再び第2のユーザデバイス904がスマートサーモスタットである場合に、複数のユーザの好ましい温度の平均である温度のような、複数のユーザとの対話の履歴に基づいて第2のユーザデバイス904が学習した第2のユーザデバイス904の1つまたは複数の構成を含むことができる。また、第2のユーザデバイス904は、第2のユーザデバイス904のユーザとの対話の履歴に基づいてユーザプリファレンス情報を更新することもできる。
一実施形態では、第2のユーザデバイスの構成情報および/またはプリファレンス情報は、第2のユーザデバイスのすべての構成情報および/またはプリファレンス情報を含むことができる。代替的には、第2のユーザデバイスの構成情報および/またはプリファレンス情報は、第2のユーザデバイス上にインストールされた1つまたは複数のアプリケーションの構成情報および/またはプリファレンス情報を含むことができる。
920において、第1のユーザデバイス902は、ローカルワイヤレスネットワークを検出する。その検出は、ローカルワイヤレスネットワークの初期検出とすることができる。
930において、デバイス904はオプションで、第1のユーザデバイス902がローカルワイヤレスネットワークに参加したことを検出する。代替的には、940において、第1のユーザデバイス902はオプションで、ユーザプリファレンス情報および/またはデバイス構成情報を要求する。第1のユーザデバイス902は、ローカルワイヤレスネットワーク上の各デバイスに、またはデバイス904がコントローラIoTデバイスである場合にはデバイス904に、要求をブロードキャストすることができる。ブロック930および940はオプションであるが、そのうちの一方は、フローが950に進むために実行される必要がある。
950において、デバイス904、具体的には、デバイス904のプリファレンス/構成モジュールは、第1のユーザデバイス902および第2のユーザデバイスの能力および/または構成情報に基づいて、第1のユーザデバイス902が第2のユーザデバイスに類似であると判断する。デバイス904は、第2のユーザデバイスの能力および/または構成情報を表す値と重なり合う第1のユーザデバイス902の能力および/または構成情報を表す値に基づいて、第2のユーザデバイスが第1のユーザデバイス902に類似の機能を有すると判断することができる。
960において、950における判断に応答して、デバイス904は、第2のユーザデバイスのデバイス構成情報および/またはユーザプリファレンス情報を第1のユーザデバイス902に送る。代替的には、第1のユーザデバイス902が940においてデバイス904に要求を送る場合(デバイス904がコントローラIoTデバイスである場合)、デバイス904は、950において、ローカルワイヤレスネットワーク上のどのユーザデバイス、たとえば、第2のユーザデバイスが第1のユーザデバイス902に類似の機能を有するかを判断することができ、デバイス904が第1のユーザデバイス902自体にデバイス構成情報および/またはユーザプリファレンス情報を送る代わりに、960において、そのユーザデバイスに、デバイス構成情報および/またはユーザプリファレンス情報を第1のユーザデバイス902に送るように指示することができる。
970において、第1のユーザデバイス902は、デバイス904から、または代替的には、第2のユーザデバイスから、デバイス構成情報および/またはユーザプリファレンス情報を受信する。
980において、第1のユーザデバイス902は、デバイス904から受信されたデバイス構成情報および/またはユーザプリファレンス情報の少なくともサブセットで、第1のユーザデバイス902のデバイス構成情報および/またはユーザプリファレンス情報を更新する。第1のユーザデバイス902のデバイス構成情報および/またはユーザプリファレンス情報は、第1のユーザデバイス902に記憶することができる。その更新は、第1のユーザデバイス902の初期構成とすることができる。
図10は、相互に関係する一連の機能モジュールとして表された、例示的なユーザデバイス装置1000を示す。ユーザデバイス装置1000は、図2AのIoTデバイス200Aのような、ユーザデバイスに対応することができる。検出するためのモジュール1002は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、送受信機206などの通信デバイスに対応することができる。要求するためのモジュール1004は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、送受信機206などの通信システムに対応することができる。受信するためのモジュール1006は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、送受信機206のような通信デバイスに、またはプリファレンス/構成モジュール216と協働するプロセッサ208のような処理システムに対応することができる。更新するためのモジュール1008は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、プリファレンス/構成モジュール216と協働するプロセッサ208のような処理システムに対応することができる。
図11は、相互に関係する一連の機能モジュールとして表された、例示的なユーザデバイス/コントローラデバイス装置1100を示す。ユーザデバイス/コントローラデバイス装置1100は、図2AのIoTデバイス200Aのようなユーザデバイスに、または図9を参照しながら先に論じられた第2のユーザデバイスに対応することができる。代替的には、ユーザデバイス/コントローラデバイス装置1100は、図8A〜図8CのコントローラIoTデバイス802のような、コントローラIoTデバイスに対応することができる。図11を参照すると、更新するためのモジュール1102は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、メモリ212またはメモリ403のような記憶デバイスと協働するプロセッサ208またはプロセッサ401のような処理システムに対応することができる。検出するためのモジュール1104は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、送受信機206またはネットワークアクセスポート404のような通信システムに対応することができる。判断するためのモジュール1106は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、プリファレンス/構成モジュール216と協働するプロセッサ208、またはプリファレンス/構成モジュール416と協働するプロセッサ401のような、処理システムに対応することができる。送るためのモジュール1108は、少なくともいくつかの態様では、たとえば、本明細書において論じられたように、プリファレンス/構成モジュール216と協働するプロセッサ208、またはプリファレンス/構成モジュール416と協働するプロセッサ401のような処理システム、または送受信機206もしくはネットワークアクセスポート404のような通信システムに対応することができる。
図10〜図11のモジュールの機能は、本明細書の教示と矛盾しない様々な方法で実装される場合がある。いくつかの設計では、これらのモジュールの機能は、1つまたは複数の電気構成要素として実装される場合がある。いくつかの設計では、これらのブロックの機能は、1つまたは複数のプロセッサ構成要素を含む処理システムとして実装される場合がある。いくつかの設計では、これらのモジュールの機能は、たとえば、1つまたは複数の集積回路(たとえば、ASIC)の少なくとも一部分を使用して実装される場合がある。本明細書において説明されたように、集積回路は、プロセッサ、ソフトウェア、他の関連する構成要素、またはそれらの何らかの組合せを含む場合がある。したがって、様々なモジュールの機能は、たとえば、集積回路の様々なサブセットとして、ソフトウェアモジュールのセットの様々なサブセットとして、またはそれらの組合せとして実装される場合がある。また、(たとえば、集積回路の、および/またはソフトウェアモジュールのセットの)所与のサブセットは、2つ以上のモジュールに関する機能の少なくとも一部分を提供できることを諒解されたい。
加えて、図10〜図11によって表される構成要素および機能、ならびに本明細書に記載された他の構成要素および機能は、任意の適切な手段を使用して実装される場合がある。そのような手段も、少なくとも部分的に、本明細書において教示された対応する構造を使用して実装される場合がある。たとえば、図10〜図11の「ためのモジュール」構成要素とともに上述された構成要素も、同様に指定された「ための手段」機能に相当する場合がある。したがって、いくつかの態様では、そのような手段のうちの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)は、データをレーザで光学的に再生する。前述の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
上記の開示は本開示の例示的な態様を示すが、添付の特許請求の範囲によって規定される本開示の範囲から逸脱することなく、本明細書で様々な変更および修正が行われ得ることに留意されたい。本明細書で説明した本開示の態様による方法クレームの機能、ステップおよび/または動作は、特定の順序で実施される必要はない。さらに、本開示の要素は、単数形で記載または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形が考えられる。