本開示は、モノのインターネット(IoT)デバイスをそのIoTデバイスの画像によって識別することに関する。ユーザデバイスが、IoTデバイスの周りの環境の少なくとも一部を含むIoTデバイスの画像をキャプチャし、画像をユーザデバイスからIoTデバイスに送信し、IoTデバイスが、IoTデバイスを識別する情報に画像を関連付ける。IoTデバイスは、ユーザデバイスからIoTデバイスの画像を受信し、IoTデバイスの画像を記憶し、IoTデバイスの画像をIoTデバイスを識別する情報に関連付ける。
これらの態様およびその他の態様が、物理的なIoTデバイスを識別する例示的な実施形態に関する特定の例を示すために以下の説明および関連する図面において開示される。代替的実施形態は、この開示を読むと当業者には明らかであり、本開示の範囲または趣旨を逸脱することなく構築され、実践され得る。加えて、本明細書で開示する態様および実施形態の関連する詳細を不明瞭にしないように、よく知られている要素は詳細には説明されず、または省略され得る。
「例示的」という言葉は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」として説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「実施形態」という用語は、すべての実施形態が、論じられた特徴、利点または動作モードを含むことを要求しない。
本明細書で使用される用語は、特定の実施形態のみを説明しており、本明細書で開示されるいずれかの実施形態を限定すると解釈されるべきではない。本明細書で使用される単数形「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は、場合によってはカメラ210を含んでもよく、カメラ210は、IoTデバイス200Aに内蔵されたカメラデバイスおよび/またはユーザがカメラデバイスを操作するのを可能にするように構成されたカメラアプリケーションであってもよい。
したがって、本開示の一態様は、本明細書に記載された機能を実行する能力を含むIoTデバイス(たとえば、IoTデバイス200A)を含むことができる。当業者によって諒解されるように、様々な論理要素は、本明細書で開示する機能を実現するように個別の要素、プロセッサ(たとえば、プロセッサ208)上で実行されるソフトウェアモジュール、またはソフトウェアとハードウェアとの任意の組合せにおいて具現されてもよい。たとえば、トランシーバ206、プロセッサ208、メモリ212、およびI/Oインターフェース214をすべて協調的に使用して、本明細書で開示する様々な機能をロードし、記憶し、実行してもよく、したがって、これらの機能を実行するための論理は様々な要素に分散されてもよい。代替的には、機能は1つの個別の構成要素に組み込むことができる。したがって、図2AにおけるIoTデバイス200Aの特徴は、単に例示にすぎないものと見なされ、本開示は、示された特徴または構成に限定されない。
たとえば、IoTデバイス200Aが本明細書で説明するようにIoTデバイスをそのIoTデバイスの画像によって識別するように構成される場合、カメラ210(存在する場合)は、IoTデバイスの画像をキャプチャするように構成されてもよく、トランシーバ206は、画像をIoTデバイス200Aから他のIoTデバイスに送信するように構成されてもよい。代替的に、IoTデバイス200Aがカメラ210を備えていない場合、トランシーバ206は、カメラを備える別のデバイスからIoTデバイスの画像を受信するように構成されてもよい。別の例として、IoTデバイス200AがIoTデバイス200Aの画像によって識別されるように構成される場合、トランシーバ206は、別のユーザデバイスからIoTデバイス200Aの画像を受信するように構成されてもよく、メモリ212は、IoTデバイス200Aの画像を記憶するように構成されてもよく、プロセッサ208および/またはメモリ212は、IoTデバイス200Aの画像を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ネットワーク内で観測、監視、制御、あるいは管理され得る。
一態様では、IoTデバイス200Bは、本明細書で説明するように、IoTデバイス200Bの画像によって識別されるように構成されてもよい。その場合、トランシーバ206は、IoTデバイス200Bの画像をIoTデバイス200Aなどの別のユーザデバイスから受信するように構成されてもよく、メモリ(図示せず)が、IoTデバイス200Bの画像を記憶するように構成されてもよく、プロセッサおよび/またはメモリ(図示せず)が、IoTデバイス200Bの画像をIoTデバイス200Bを識別する情報に関連付けるように構成されてもよい。
図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は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。
図3を参照すると、通信デバイス300は、情報を記憶するように構成される論理315をさらに含む。一例では、情報を記憶するように構成される論理315は、少なくとも非一時的メモリおよび関連ハードウェア(たとえば、メモリコントローラなど)を含むことができる。たとえば、情報を記憶するように構成される論理315に含まれる非一時的メモリは、RAM、フラッシュメモリ、ROM、消去可能プログラマブルROM(EPROM)、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当該技術分野において知られている任意の他の形の記憶媒体に対応することができる。情報を記憶するように構成される論理315は、実行されるときに、情報を記憶するように構成される論理315の関連ハードウェアがその記憶機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を記憶するように構成される論理315は、ソフトウェアだけに対応するのではなく、情報を記憶するように構成される論理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は、最初にルーティンググループから削除されることなく分散バスから切り離されるエンドポイントにルーティンググループ変更信号を送ってもよい。
本開示の一態様によれば、図8は、Wi-Fiネットワークを介して使用される発見可能なP2Pサービスがヘッドレスデバイス(たとえば、モニタ、キーボード、およびマウスなしで動作するように構成され、ネットワーク接続を介して制御することが可能なコンピュータシステムまたはデバイス)のリモートオンボードを可能にする場合がある例示的なシステムアーキテクチャ800を示す。図8に示すように、システムアーキテクチャ800は、パーソナルアクセスポイント(AP)の関連付けおよび認証を行い、それによってWi-Fiネットワークに参加することを試みるオンボード対象デバイス810を含んでもよく、オンボード対象デバイス810は、まだWi-Fiネットワークにアクセスするように構成されていない新しいデバイスまたは以前にWi-Fiネットワークにアクセスするように構成されたが、その後(たとえば、デバイスを工場デフォルト設定にリセットすること、または場合によってはデバイスに関連する構成状態を変更してWi-Fiネットワークに関連する構成状態を変更することなどのために)オフボードされたデバイスに相当してもよい。さらに、システムアーキテクチャ800は、Wi-Fiネットワーク上で構成され検証されており、発見可能なP2Pサービスを使用してオンボード対象デバイス810をWi-Fiネットワークにリモートでオンボードするオンボード実行デバイス820を含んでもよい。
一実施形態では、オンボード対象デバイス810およびオンボード実行デバイス820は、リモートオンボードを容易にする場合がある発見可能なP2Pサービスを実現するそれぞれのP2Pプラットフォーム814(たとえば、上述のAllJoyn(商標)ソフトウェアフレームワーク)と通信するそれぞれのオンボードアプリケーション812、822を実行してもよい。したがって、オンボード対象デバイス810とオンボード実行デバイス820は、上記でさらに詳細に説明した機構を使用して互いに通信し、図6および図7に関連して上記で説明したローカルエンドポイントに相当する場合があるそれぞれのオンボードアプリケーション812、822間の通信を可能にすることがある分散バス825を形成してもよい。さらに、一実施形態では、オンボード対象デバイス810とオンボード実行デバイス820は、オンボード対象デバイス810とオンボード実行デバイス820との間のメッセージルーティングに対処するためにホスト「デーモン」バスプロセスを実行するそれぞれのオペレーティングシステム816、826を実行してもよい。たとえば、一実施形態では、それぞれのオンボードアプリケーション812、822はオンボード対象デバイス810およびオンボード実行デバイス820上で実行されるそれぞれのホストデーモンと通信してもよく、それぞれのホストデーモンは、分散バス825のローカルセグメントを実施し、分散バス825を介したメッセージフローを調整してもよい。この構成では、本明細書でさらに詳細に説明するように、オンボードアプリケーション812は、Wi-Fiネットワークにアクセスするためにオンボード対象デバイス810を構成し検証するための特定のプロセスを容易にするオンボードサービス818のリモートメソッド呼出しを行うことができる。このようにして、オンボードアプリケーション812は、オンボードサービス818がローカルオブジェクトである場合と同様にオンボードサービス818と通信することができ、パラメータが、送信元においてマーシャリングされ、ローカルホストデーモンによってローカルバスセグメントから送出され、次いでネットワークリンクを介して透過的にオンボード実行デバイス820上のローカルホストデーモンに送信される。オンボード実行デバイス820上で実行されるデーモンは次いで、宛先がローカルオンボードアプリケーション822であると判定し、パラメータをアンマーシャリングさせ、ローカルオンボードアプリケーション822上でリモートメソッドを呼び出させてもよい。
したがって、デーモンは概して、1つまたは複数のバックグラウンドプロセスにおいて実行されてもよく、オンボードアプリケーション812、822およびオンボードサービス818は、別個のプロセスにおいて実行されてもよく、それによって、オンボードアプリケーション812、822およびオンボードサービス818は、それぞれのローカルホストデーモンを表す「バス接続」を有し、オンボードアプリケーション812、822とオンボードサービス818との間のメッセージルーティングに対処してもよい。代替的に、いくつかの場合には、オンボード対象デバイス810は、シンクライアント、埋め込みデバイス、または制約された動作環境(たとえば、制限されたサイズ、メモリ、プロセッサ速度、電力、周辺装置、ユーザインターフェースなど)を有する別のデバイスであってもよい。したがって、オンボード対象デバイス810が制限された機能を有する場合、P2Pプラットフォーム814を使用する各アプリケーションまたはサービスにローカルバス接続をバンドリングすると、(たとえば、実質的なバス接続には実質的なネットワーク接続、メモリなどが必要になる場合があるので)性能が影響を受けることがある。これらの場合に、オンボードアプリケーション812および/またはオンボードサービス818内にローカルバス接続を有するのではなく、その代わりに、オンボードアプリケーション812がシンクライアントアプリケーションプログラムインターフェースを使用してもよく、かつP2Pプラットフォーム814が、オンボードアプリケーション812を実行するホストデーモンをオンボード対象デバイス810上で利用するシンクライアントプロセスを使用してもよい。しかし、いずれの場合も、Wi-Fiネットワークにアクセスすることを目的としてオンボード対象デバイス810を構成し検証するためにオンボード対象デバイス810とオンボード実行デバイス820との間で生じる呼の流れおよび挙動は、オンボードアプリケーション812がホストデーモンと通信するのにローカルバス接続を実現するか、それともホストデーモンと直接通信するかにかかわらず実質的に同じであってもよい。
上記では、発見可能なP2Pサービスを使用してWi-Fiネットワーク上でのオンボード対象デバイス810のリモートオンボードを可能にする場合があるシステムアーキテクチャ800の概要について述べたが、発見可能なP2Pサービスを介してWi-Fiネットワーク上でのリモートオンボードを可能にするのに使用される場合がある特定の機構に関係する様々な態様について次に説明する。
より詳細には、デバイスに電力が投入されると、そのデバイスは一般に、それに関連する構成状態に応じて「オンボード」モードまたは「接続」モードに入る。オンボードモードと接続モードのいずれのモードでも、デバイスは他のピアデバイスがそのデバイスに接続するのを待ち、ネットワーク構成証明書および構成情報を提供する場合がある。さらに、オンボードモードでは、デバイスは、Wi-Fiアクセスポイント(AP)になり、Wi-Fiクライアントがデバイスに接続するのを待つ場合がある。たとえば、一実施形態では、オンボードモードのデバイスは、ワイヤレスクライアントアンテナがアクセスポイントとクライアントの両方として働いてもよいソフトウェア対応アクセスポイント(ソフトAP)モードを開始してもよい(たとえば、デバイス上のソフトウェアは、近傍の他のワイヤレスデバイスが使用できるワイヤレスホットスポットまたはポータブルホットスポットを作成してもよく、それによって、セルラー電話またはクライアントアンテナおよびデータ接続を有する他のデバイスは、場合によってはデータ接続を有さないこともある近傍の他のワイヤレスデバイスにサービスするためのアクセスポイントとして働くこともできる)。代替的に、接続モードでは、デバイスは、デバイスがすでに構成されている対象であるワイヤレスネットワークに接続してもよい。オンボードモードと接続モードのいずれのモードでも、デバイスは一般に、他のピアデバイスがそのデバイスに接続するのを待ち、適切なネットワーク構成および証明書情報を提供する場合がある。
したがって、本明細書でさらに詳細に説明するように、図9Aは、発見可能なP2Pサービスを使用してWi-Fiネットワーク上でのヘッドレスデバイスのリモートオンボードを可能にする場合がある例示的なメッセージシーケンス900Aを示す。たとえば、一実施形態では、図9Aに示すメッセージシーケンス900Aが、パーソナルWi-Fiネットワークへの参加を試みるオンボード対象デバイス910とオンボード対象デバイス910をパーソナルWi-Fiネットワークにリモートでオンボードする場合があるオンボード実行デバイス920との間で生じることがある。特に、オンボード対象デバイス910および/またはオンボード実行デバイス920は、P2Pクライアントを実行するアプリケーションを実行する場合があるスマートデバイスに対応してもよく、オンボード対象デバイス910は、ソフトAP(または「オンボード」モード)において起動し、発見可能なP2Pサービスに関連するコアデーモンのブロードキャスト探索を実行してもよい。オンボード実行デバイス920が利用可能な場合、クイックレスポンス(QR)コードをスキャンしてオンボード対象デバイス910に対応するソフトAPに関連する情報を取得してもよい。代替的に、オンボード実行デバイス920は、ソフトAP(またはオンボード)モードにおいてデバイスをスキャンし、エンドユーザ925に、プロンプトによってスキャンにおいて見つかったあらゆるデバイスを含むリストからソフトAPサービスセット識別子(SSID)を選択するように促してもよい。たとえば、オンボード対象デバイス910に関連するソフトAP SSIDは、オンボード対象デバイス910によって送信されたブロードキャスト探索を発見したことに応答して見つけられてもよい。後者の場合、QRコード(登録商標)が利用不可能であったか、あるいは場合によってはQRコード(登録商標)からソフトAP情報を取得できなかった場合、メッセージシーケンス900Aは、エンドユーザ925からソフトAP選択を受信することをさらに含んでもよく、さらに、オンボード実行デバイス920上で実行されるアプリケーションは、ユーザにプロンプトによってオンボード対象デバイス910に対応するソフトAPに関連するパスフレーズを供給するように促してもよい。次いで、オンボード実行デバイス920は、オンボード対象デバイス910に対応するソフトAPに接続してもよく、オンボード対象デバイス910は、オンボード実行デバイス920上で実行されるコアP2Pデーモンに接続してもよい。
オンボード対象デバイス910は次いで、公示信号を送信してもよく、この信号はオンボード実行デバイス920において検出されてもよい。一実施形態では、オンボード実行デバイス920は、適切なオンボードインターフェースを有する場合、オンボード対象デバイス910とのセッションを確立し、セッションに関連するサービスを受けてもよい。サービスの実施中、共有される証拠を使用して共有対称鍵が生成される場合がある鍵交換アルゴリズムに基づいてセキュアな接続が確立されてもよい。たとえば、オンボード対象デバイス910とオンボード実行デバイス920が初めて互いに関わり合うことを試みる場合、共有される証拠は周知の証拠(たとえば、相手先商標製品製造プロセス中に工場設定の一部として構成されてもよいオンボードインターフェース用のデフォルトのパスコード)であってもよい。その後、適切なサービスメソッドを呼び出して周知の証拠またはデフォルトの証拠を直ちに共有される証拠(たとえば、エンドユーザ925によって確立されるカスタムパスワード)に変更してもよい。オンボード実行デバイス920は次いで、セキュアな接続を適切に確立したことに応答して、適切なサービスメソッドを呼び出してパーソナルWi-Fiネットワークに関連する構成情報をオンボード対象デバイス910に転送してもよい。たとえば、一実施形態では、オンボード実行デバイス920からオンボード対象デバイス910へ転送される構成情報は、SSID、パスフレーズもしくは他の認証証明、および/またはパーソナルWi-Fiネットワーク上のパーソナルアクセスポイントに関連する認証タイプを含んでもよい。一実施形態では、オンボード対象デバイス910は次いで、パーソナルAP構成情報が受信され適切に設定されたかどうかを示すステータス信号をオンボード実行デバイス920に返してもよく、オンボード実行デバイス920は次いで、オンボード対象デバイス910にパーソナルAPに接続するように命令してもよい。一実施形態では、オンボード対象デバイス910は次いで、首尾よくパーソナルAPに参加したことに応答して、適切なサービスメソッドを呼び出してオンボードモードを終了してもよい。さらに、オンボード対象デバイス910が接続モードで動作する(すなわち、すでに「オンボード」されている)ときに同じ機構を使用することができる。たとえば、オンボード対象デバイス910は、オンボード実行デバイス920と同じWi-Fiネットワークに接続され、そのネットワーク上で実行されるP2Pサービスを発見して利用してもよく、それによって、オンボード実行デバイス920は、オンボード対象デバイス910に関連するネットワーク構成をリモートで修正し、それによってオンボード対象デバイス910に異なるネットワークにシフトさせてもよい。さらに、オンボード対象デバイス910が高速チャネル切替えをサポートする場合、オンボード実行デバイス920は、オンボード対象デバイス910がパーソナルAPに対する接続の試みを完了したときに接続結果信号を受信してもよく、接続結果信号は、ソフトAPリンク上で送信され、接続の試みによる結果(たとえば、検証済み、アクセス不能、サポートされないプロトコル、無認可、エラーなど)を示すのに適切な値を含んでもよい。
本開示の一態様によれば、図9Bは、発見可能なP2Pサービスを使用してWi-Fiネットワーク上でのヘッドレスデバイスのリモートオンボードを可能にする場合がある別の例示的なメッセージシーケンス900Bを示す。特に、いくつかのデバイスは、Wi-Fiスキャンをプログラムによってアプリケーションプログラムインターフェース(API)を介して開始するためのサポートを有さないオペレーティングシステムまたはその他のプラットフォームを実行することがあり、その場合、図9Aに示すいくつかの動作はサポートされないことがある。たとえば、適切に構成されたAPIを使用してプログラムによってアンドロイドオペレーティングシステム上でWi-Fiスキャンを開始することができ、一方、Wi-Fiスキャンをプログラムによって開始することは、iOSなどの他のオペレーティングシステム上ではサポートされない場合がある。したがって、例示的な一使用事例では、アンドロイドオペレーティングシステムを実行するオンボード実行デバイス920は図9Aに示すメッセージシーケンスを使用してもよく、一方、iOSオペレーティングシステムを実行するオンボード実行デバイス920は、図9Bに示すメッセージシーケンスを使用してもよい。概して、メッセージシーケンス900Aとメッセージシーケンス900Bは実質的に同様であってもよい。しかし、メッセージシーケンス900Bは、エンドユーザ925にスキャンリストからソフトAP SSIDを選択させてソフトAPパスフレーズを供給させるのではなく、(たとえば、プログラムによって開始されたWi-Fiスキャンでは適切なソフトAP SSIDを取得できないので)Wi-Fi設定画面またはWi-Fiネットワークを選択するためにオンボード実行デバイス920が使用する他のユーザインターフェースに関する対話を用意してもよい。さらに、オンボード実行デバイス920は、ソフトAPに関連する名称プレフィックスおよびパスフレーズを提案し、エンドユーザ925が適切なWi-Fi設定画面からソフトAPを選択するよう導く機能を含んでもよい。エンドユーザ925は次いで、選択を行ってもよく、選択された項目がオンボード実行デバイス920上のアプリケーションに供給されてもよい。一実施形態では、メッセージシーケンス900Bは次いで、オンボード実行デバイス920がオンボード対象デバイス910とのセッションを確立し、適切なオンボードインターフェースが利用可能な場合にはセッションに関連するサービスを受けるまで、オンボード実行デバイス920とオンボード対象デバイス910にメッセージシーケンス900Aに関して上記で説明したのと同様に通信させてもよい。
一実施形態では、メッセージシーケンス900Aがエンドユーザ925に、プログラムによって開始されるWi-Fiスキャンではオンボード実行デバイス920上で取得することができないWi-FiスキャンリストからパーソナルAPを選択させる時点で、メッセージシーケンス900Bは、オンボード実行デバイス920が被オンボード支援Wi-Fiスキャンを使用してWi-Fiスキャンリストを取得する場合がある追加の通信フローを含んでもよい。たとえば、一実施形態では、オンボード実行デバイス920は、オンボード対象デバイス910にオンボード対象デバイス910に近接するすべてのWi-Fiアクセスポイントをスキャンするよう命令する適切なサービスメソッドを呼び出してもよく、オンボード対象デバイス910はその後、SSIDおよび任意の関連する認証タイプのアレイを含むWi-Fiスキャンリストをオンボード実行デバイス920に返し、それによって被オンボード支援Wi-Fiスキャンを完了してもよい。一実施形態では、メッセージシーケンス900Bは次いで、エンドユーザ925にメッセージシーケンス900Aと同様にプロンプトによってパーソナルAPを選択するよう促してもよく、図9Aに関して上記で説明したのと実質的に同様な以後の通信フローを含んでもよい。
図10は、本開示の一態様による、オンボード実行デバイスが、発見可能なP2Pサービスを使用してオンボード対象デバイスをWi-Fiネットワーク上にリモートでオンボードするためにオンボード実行デバイスが実行する場合がある例示的な方法1000を示し、この場合、オンボード対象デバイスはヘッドレスデバイスに対応してもよい。特に、オンボード実行デバイスは最初、ブロック1005においてオンボード対象デバイスがパーソナルWi-Fiネットワークへの参加を試みることに対応するソフトAP情報を取得してもよい。たとえば、一実施形態において、ブロック1005では、オンボード実行デバイス上のカメラによってORコードをスキャンすることを含んでもよく、その場合、ソフトAP情報がスキャンされたORコードから取得されることがあり、あるいはブロック1005では代替的に、プロンプトによってユーザにソフトAP情報を入力するよう促してもよく、その場合、ソフトAP情報がユーザから取得されることがある。いずれの場合も、オンボード実行デバイスは、ソフトAP情報を取得したことに応答して、次いで、ブロック1010において(たとえば、クライアントとしての)オンボード対象デバイスに対応するソフトAPに接続することを試みてもよい。オンボード実行デバイスは次いで、ブロック1015において、試みられた接続が成功したかどうかを判定してもよく、ブロック1060において、オンボード実行デバイスがオンボード対象デバイスに対応するソフトAPに接続できなかったことに応答してエラーメッセージが生成されてもよい。場合によっては、オンボード実行デバイスは、試みられた接続が成功したと判定したことに応答して、次いで、ブロック1020においてオンボードサービスを探索して見つかったオンボードサービスに接続してもよい。さらに、一実施形態では、オンボード実行デバイスは、ソフトAPおよびオンボードサービスに首尾よく接続したことに応答して、ブロック1020においてパーソナルAP情報によってオンボード対象デバイスを構成してもよい。たとえば、一実施形態では、オンボード実行デバイスは、ブロック1020において、SSID、認証証明(たとえば、パスフレーズ)、および/またはパーソナルAPに関連する認証タイプをオンボード対象デバイスに転送してオンボード対象デバイスを構成してもよく、オンボード実行デバイスは次いで、ブロック1030においてオンボード対象デバイスにパーソナルAPに接続するよう命令してもよい。
一実施形態では、オンボード実行デバイスは次いで、ブロック1035においてパーソナルAPに接続することを試みているオンボード対象デバイスが首尾よく検証されたかどうかを判定してもよい。たとえば、オンボード対象デバイスは概して、ブロック1025において転送されたパーソナルAP構成および検証情報を適切に受信したことに応答して検証プロセスを実行してもよい。したがって、ブロック1035においてオンボード対象デバイスが(たとえば、無効な認証証明を供給するか、またはさもなければ有効な構成情報を供給できなかったので)首尾よく検証されなかったことに応答して、ブロック1060においてエラーメッセージが返されてもよい。代替的に、オンボード対象デバイスが首尾よく検証された場合、オンボード実行デバイスは次いで、ブロック1040においてパーソナルAP上でオンボード対象デバイスを見つけることを試み、次いで、ブロック1045においてパーソナルAP上でオンボード対象デバイスが見つかったかどうかを判定してもよい。パーソナルAP上でオンボード対象デバイスを見つけることができなかったと判定したことに応答して、ブロック1060においてその旨を示すエラーメッセージが生成されてもよい。場合によっては、オンボード実行デバイスは、ブロック1045においてパーソナルAP上でオンボード対象デバイスが見つかったと判定したことに応答して、オンボード対象デバイスがWi-Fiネットワークに首尾よくオンボードされたと判定してもよく、ブロック1060においてオンボードプロセスが終了してもよい。
図11は、本開示の一態様による、発見可能なP2Pサービスを使用してWi-Fiネットワークにリモートでオンボードするためにオンボード対象デバイスが実行する場合がある例示的な方法1100を示す。たとえば、一実施形態では、方法1100は概して、オンボード実行デバイスが、パーソナルWi-Fiネットワークに参加するためにオンボード対象デバイスが使用できる構成および証明情報によってオンボード対象デバイスをプロビジョニングすることを試みる図10に示す方法1000の間にならびに/あるいは方法1000に関連して実行されてもよく、このことは、オンボード対象デバイスがブロック1105においてオンボードモードを開始するとき(たとえば、オフボードモードの間、工場設定へのリセット後、Wi-Fiネットワークとの接続が消失した後)に行われる場合がある。さらに、方法1100は、ソフトAPが利用可能である間に実行されてもよく、ソフトAPが利用可能であるかどうかは、オンボード対象デバイスに関連する構成状態に依存する場合がある。たとえば、一実施形態では、オンボード対象デバイスが、パーソナルAPが構成されない構成状態を有するとき、パーソナルAPが構成されているが検証されていないとき、パーソナルAPが構成されているがエラーが生じているとき、および/またはパーソナルAPが構成されており、オンボード対象デバイスがパーソナルAPへの接続を再試行しているとき(たとえば、オンボード対象デバイスは、構成されパーソナルAPに対して検証されているが、遅延を伴いながら構成可能な回数だけ接続を試みても成功しなかった場合、オンボード対象デバイスが再構成されるのを可能にするためにソフトAPが有効化される再試行状態に遷移することがあり、次いで、タイマーが満了した後に構成および検証済み状態に戻ってパーソナルAPとの接続を再試行する場合がある)にソフトAPが利用可能になる場合がある。
一実施形態では、パーソナルAPは概して、方法1100が開始するときには構成されない場合があり、それによって、オンボード対象デバイスは最初、ブロック1110においてパーソナルAP構成情報を受信してもよい。たとえば、一実施形態では、ブロック1110は、オンボード対象デバイスが名称(たとえば、SSID)、認証証明(たとえば、パスフレーズ)、および/またはパーソナルAPに関連する認証タイプをオンボード実行デバイスから受信することを含んでもよい。認証タイプが「任意」に等しいとき、オンボード対象デバイスは、パーソナルAPに接続するためにオンボード対象デバイス上でサポートされている1つまたは複数の考えられる認証タイプを試してもよい。いずれの場合も、オンボード対象デバイスは次いで、ブロック1115において受信されたパーソナルAP情報を使用してパーソナルAPに接続することを試み、ブロック1120において試みられた接続が成功したかどうかを判定してもよい。パーソナルAPとの接続が失敗したことに応答して、ブロック1140においてエラーメッセージが生成されてもよい。場合によっては、オンボード対象デバイスは、パーソナルAPに首尾よく接続したことに応答して、ブロック1125において、上記でさらに詳しく説明した機構と同様の機構を使用してパーソナルAPによる検証を試みてもよい。オンボード対象デバイスは、ブロック1130において試みられた検証が失敗したと判定したことに応答して、次に、ブロック1125において検証プロセスの再試行を特定の回数だけ試み、その後、ブロック1125において使用されたパスフレーズおよび/または認証タイプは有効ではないと宣言してもよい。たとえば、ブロック1125において検証プロセスが最大回数Nだけ再試行されてもよく、あるいは失敗の理由が既知である場合、代替的にオンボード対象デバイスは最大回数の再試行を実行しなくてもよい。いずれの場合も、首尾よく検証されなかったことに応答して、ブロック1140において適切なエラーメッセージが生成されてもよく、あるいはパーソナルAPに対して首尾よく検証されたことに応答して、ブロック1135においてオンボードプロセスが適切に完了されてもよい。
IoTデバイスがますます普及するにつれて、ユーザはさらに多くのIoTデバイスと相互作用するようになる。このことに起因して、ユーザは、IoTデバイスに物理的にアクセスする必要があるという通知を受信したときに、そのデバイスの名称および/または種類を知っている場合でも、どの物理的なIoTデバイスにアクセスする必要があるかをうまく識別できないことがある。たとえば、部屋には同じ種類のビデオプロジェクタが3つある場合がある。ユーザは、「プロジェクタ2」の電球を交換する必要があるという通知を受信することがある。各プロジェクタが「プロジェクタ1」、「プロジェクタ2」、および「プロジェクタ3」という名称である場合、たとえば、ユーザは、どのプロジェクタが「プロジェクタ2」であるかを容易に識別できない場合がある。プロジェクタにラベルが付いている場合でも、ラベルがすぐには見つからない場合があり、あるいははしごを使用しない限り見えないことがある。
別の例として、ユーザがホームセキュリティセンサーなどの特定のIoTデバイスをどこに設置したかを忘れた場合がある。センサーが、新しい電池が必要であることをユーザに通知した場合、ユーザは、どのセンサーが通知を送信しているかだけでなく、センサーがどこにあるかもうまく識別できないことがある。
ユーザが特定のIoTデバイスおよびその位置を迅速に識別するのを助けるために、IoTデバイスのオンボードまたは構成を行っているユーザは、オンボードプロセスの間またはその後にそのIoTデバイスの写真を撮りその画像をIoTデバイスに送信してもよい。IoTデバイスは、画像を記憶することができ、通知および/またはIoTデバイスのAbout情報を送信するとき、画像を送信することもできる。IoTデバイスの、その環境内の写真を見ることは、ユーザが迅速にIoTデバイスおよびその位置を識別する助けになる。
たとえば、図8〜図11に関して上記で説明したオンボードプロセスの間に、ユーザは、スマートフォン、タブレットコンピュータ、またはカメラを有する何らかの他のデバイスを使用してIoTデバイスをオンボードする場合、オンボードプロセスの間に、オンボード実行デバイスのカメラによって被オンボードIoTデバイスの写真を撮り、単にその画像を被オンボードIoTデバイスに送信することができる。オンボード実行デバイスがカメラを有さないか、またはユーザがオンボード実行デバイスのカメラでは写真を撮らない場合、ユーザは、別のカメラデバイスによって被オンボードIoTデバイスの写真を撮り、その画像をオンボード実行デバイスに送信することができ、オンボード実行デバイスは次いで、画像を被オンボードIoTデバイスに送信することができる。IoTデバイスがそれ自体をオンボードする場合、ユーザは異なるカメラデバイスによってIoTデバイスの写真を撮ることができ、次いでその画像を被オンボードIoTデバイスに直接送信してもよい。
同様に、ユーザが構成プロセスの間に写真を撮る場合、構成の間に、構成実行側デバイスのカメラ(構成側デバイスがカメラを有する場合)によってIoTデバイスの写真を撮り、単にその画像をIoTデバイスに送信してもよい。構成実行側デバイスがカメラを有さないか、またはユーザが構成実行側デバイスのカメラでは写真を撮らない場合、ユーザは、別のカメラデバイスによってIoTデバイスの写真を撮り、その画像を構成実行側デバイスに送信することができ、構成実行側デバイスは次いで、画像をIoTデバイスに送信することができる。ユーザがIoTデバイスのユーザインターフェースを使用してそのIoTデバイスを構成することができる場合、ユーザは異なるカメラデバイスによってIoTデバイスの写真を撮ることができ、次いでその画像をIoTデバイスに直接送信してもよい。
ユーザは、IoTデバイスをその最終位置に設置するかまたは位置させた後にそのIoTデバイスの写真を撮るべきである。このようにして、IoTデバイスの画像はそのIoTデバイスの環境内の画像を示し、このことはユーザがそのIoTデバイスを迅速に識別する助けになる。
オンボード実行デバイスまたは構成実行側デバイスは、オンボードプロセスまたは構成プロセスの間にプロンプトによってユーザにIoTデバイスの写真を撮るよう促してもよい。代替的に、IoTデバイスは、オンボード実行デバイスまたは構成実行側デバイスに、ユーザに写真を撮るよう通知するように命令するメッセージをオンボード実行デバイスまたは構成実行側デバイスに送信してもよい。このプロンプトは、オンボード実行デバイスまたは構成実行側デバイスのユーザインターフェース上に表示されてもよい。プロンプトは、IoTデバイスのその最終位置での写真を撮るよう指示するものであってもよく、ユーザがオンボード実行デバイスまたは構成実行側デバイスのカメラアプリケーションに切り替えるのを可能にしてもよい。
代替的に、オンボード実行デバイスまたは構成実行側デバイスがカメラを有さない場合、プロンプトは、ユーザがオンボード実行デバイスまたは構成実行側デバイスのローカルメモリからIoTデバイスの画像を選択するのを可能にしてもよい。ユーザは次いで、別のカメラデバイスによってIoTデバイスの写真を撮り、その画像をオンボード実行デバイスまたは構成実行側デバイスに送信することができ、あるいはこのことをすでに行っている場合もある。プロンプトは、ユーザに、将来の識別が容易になるようにIoTデバイスの周囲の環境の少なくとも一部を写真に含めるよう指示してもよい。
単一のプロンプトに関して説明したが、オンボード実行デバイスまたは構成実行側デバイスが前述のプロセスを実行するときに複数のプロンプトがユーザに対して表示されてもよい。
IoTデバイスが後で別の位置に移動させられる場合、ユーザはこの新しい位置でIoTデバイスの別の写真を撮ることができる。ユーザは、オンボードアプリケーションまたは構成アプリケーションを起動し、IoTデバイスに新しい写真を関連付けることができる。オンボードアプリケーションまたは構成アプリケーションは、ユーザがオンボード実行デバイスまたは構成実行側デバイスのカメラによって新しい写真を撮るか、またはオンボード実行デバイスまたは構成実行側デバイスのローカルメモリから画像を選択するのを可能にしてもよい。
IoTデバイスは、たとえば、そのGPS座標の変化ならびに/あるいは加速度がしきい値を超えたことおよび/またはしきい値時間よりも長い時間の加速を検出することによってそのIoTデバイスが移動させられたことを認識してもよい。その場合、IoTデバイスは、ユーザにそのIoTデバイスが移動したことを(たとえば、ユーザのスマートフォンにメッセージを送信することによって)直接またはオンボード実行デバイスもしくは構成実行側デバイスを介して通知することができる。それに応答して、ユーザは、上述のように新しい写真によってIoTデバイスの再構成または再オンボードを実行することができ、あるいはオンボード実行デバイスまたは構成実行側デバイスはオンボードアプリケーションまたは構成アプリケーションを起動し、プロンプトによってユーザにIoTデバイスの新しい写真を撮るよう促してもよい。
図12は、本開示の一実施形態による、オンボード対象デバイス1210をオンボード対象デバイス1210の画像によって識別するための例示的なフローを示す。オンボード対象デバイス1210は、図2AにおけるIoTデバイス200Aまたは図2BにおけるIoTデバイス200Bなどの任意のIoTデバイスであってもよく、あるいは図8のオンボード対象デバイス810などの任意のオンボード対象デバイスであってもよい。図12に示すフローは、オンボードプロセス中に生じるように示されている。しかし、図12から明らかなように、図12に示すフローは、オンボードプロセスではなく構成プロセスの間に実行することが可能である。
1230において、エンドユーザ1225はオンボード対象デバイス1210をその最終位置に配置する。「最終」という用語は、オンボード対象デバイス1210を2度と動かすことができないという意味ではなく、むしろその位置が、エンドユーザ1225がオンボード対象デバイス1210をオンボード/構成の後で配置することを望む位置であることを示す。たとえば、ビデオプロジェクタの「最終」位置は、特定の部屋の天井に取り付けられた位置であってもよい。
1235において、エンドユーザ1225はオンボード対象デバイス1210をその最終位置に配置した後でオンボード対象デバイス1210の写真を撮る。オンボード対象デバイス1210の画像は、オンボード対象デバイス1210が位置する環境の少なくとも一部を含むべきである。エンドユーザ1225は、オンボード実行デバイス1220上のカメラアプリケーションまたは別のデバイス上のカメラアプリケーションを使用して写真を撮ってもよく、その場合、エンドユーザ1225は画像をオンボード実行デバイス1220に転送する。
1240において、オンボード実行デバイス1220は、図8〜図11を参照しながら上記で説明したようにオンボード対象デバイス1210をオンボードする。オンボード実行デバイス1220は、図2BにおけるIoTデバイス200BなどのIoTデバイスであってもよく、あるいは図8のオンボード実行デバイス820などの任意のオンボード実行デバイスであってもよい。たとえば、オンボード実行デバイス1220は、ユーザのスマートフォン、タブレットコンピュータ、ラップトップコンピュータなどであってもよい。
1245において、オンボード実行デバイス1220は、オンボード対象デバイス1210の画像を受信して記憶する。上記で説明したように、オンボード実行デバイス1220は、ユーザがオンボード実行デバイス1220のカメラアプリケーションによってオンボード対象デバイス1210の写真を撮ったときにオンボード対象デバイス1210の画像を受信し記憶してもよい。代替的に、オンボード実行デバイス1220は、カメラを有する別のデバイスから画像を受信し、画像をローカルメモリに記憶してもよい。別個のブロックとして図示されているが、ブロック1245はブロック1240のオンボードプロセスの間に実行されてもよい。
1250において、オンボード対象デバイス1210は、それ自体の画像を受信して記憶する。
後のある時点において、水平破線で示すように、場合によっては、エンドユーザ1225または別のユーザがオンボード対象デバイス1210にAbout情報を要求する(ブロック1255)。1260において、オンボード実行デバイス1220は、場合によってはAbout情報についての要求をオンボード対象デバイス1210に送信する。図12は、オンボード実行デバイス1220がAbout情報についての要求を送信している状態を示すが、エンドユーザ1225は、オンボード対象デバイス1210と通信することのできる任意のデバイスを使用して要求を送信してもよい。
1265において、オンボード対象デバイス1210は、要求を受信し、それ自体の画像を含むAbout情報をオンボード実行デバイス1220に送信する。1270において、オンボード実行デバイス1220は、オンボード対象デバイス1210の画像を含むAbout情報を表示する。
図12は、オンボード実行デバイス1220がエンドユーザ1225からの要求に応答してAbout情報および画像を表示することを示すが、オンボード実行デバイス1220はその代わりに、オンボード対象デバイス1210から通知を受信したときにAbout情報および画像を表示してもよい。したがって、ブロック1255および1260は省略可能であり、ブロック1265における送信は、About情報と画像とを含む通知の送信であってもよい。
図13は、IoTデバイスをそのIoTデバイスの画像によって識別するための例示的なフローを示す。図13に示すフローは、図2AにおけるIoTデバイス200Aまたは図12におけるオンボード実行デバイス1220などの、画像をキャプチャまたは受信することのできる任意のユーザデバイスによって実行されてもよい。1310において、ユーザデバイスは、図12の1245を参照しながら上記で説明したように、そのIoTデバイスの画像をキャプチャする。上記で説明したように、IoTデバイスの画像は、そのIoTデバイスの周りの環境の少なくとも一部を含んでもよい。1320において、ユーザデバイスは、図12の1245を参照しながら上記で説明したように、画像をユーザデバイスからIoTデバイスに送信する。IoTデバイスは、図12の1250を参照しながら上記で説明したように、そのIoTデバイスを識別する情報に画像を関連付ける。
図14は、IoTデバイスをそのIoTデバイスの画像によって識別するための例示的なフローを示す。図14に示すフローは、図2A/2BにおけるIoTデバイス200A/200Bまたは図12におけるオンボード対象デバイス1210などの、画像を受信し記憶することのできる任意のIoTデバイスによって実行されてもよい。1410において、IoTデバイスは、図12の1250を参照しながら上記で説明したように、図2AにおけるIoTデバイス200Aまたは図12におけるオンボード実行デバイス1220などの別のユーザデバイスからIoTデバイスの画像を受信する。上記で説明したように、IoTデバイスの画像は、そのIoTデバイスの周りの環境の少なくとも一部を含んでもよい。1420において、IoTデバイスは、図12の1250を参照しながら上記で説明したように、そのIoTデバイスの画像を記憶する。1430において、IoTデバイスは、図12の1250を参照しながら上記で説明したように、IoTデバイスの画像をそのIoTデバイスを識別する情報に関連付ける。
図15は、一連の相互に関係する機能モジュールとして表された例示的なユーザデバイス装置1500を示す。キャプチャするためのモジュール1502は、少なくともいくつかの態様では、たとえば、本明細書において説明したように図2Aにおけるカメラ210またはトランシーバ206などのカメラまたはトランシーバに相当してもよい。送信するためのモジュール1504は、少なくともいくつかの態様では、たとえば、本明細書において説明したように図2Aにおけるトランシーバ206などのトランシーバに相当してもよい。
図16は、一連の相互に関係する機能モジュールとして表された例示的なIoTデバイス装置1600を示す。受信するためのモジュール1602は、少なくともいくつかの態様では、たとえば、本明細書において説明したように図2A/2Bにおけるトランシーバ206などのトランシーバに相当してもよい。記憶するためのモジュール1604は、少なくともいくつかの態様では、たとえば、本明細書において説明したように図2Aにおけるメモリ212などのメモリに相当してもよい。関連付けるためのモジュール1606は、少なくともいくつかの態様では、たとえば、本明細書において説明したように図2Aにおけるメモリ212および/またはプロセッサ208などのメモリまたはプロセッサに相当してもよい。
図15および図16のモジュールの機能は、本明細書の教示と矛盾しない様々な方法で実装されてもよい。いくつかの設計では、これらのモジュールの機能は、1つまたは複数の電気構成要素として実装されてもよい。いくつかの設計では、これらのブロックの機能は、1つまたは複数のプロセッサ構成要素を含む処理システムとして実装されてもよい。いくつかの設計では、これらのモジュールの機能は、たとえば、1つまたは複数の集積回路(たとえば、ASIC)の少なくとも一部分を使用して実装されてもよい。本明細書で説明するように、集積回路は、プロセッサ、ソフトウェア、他の関連の構成要素、またはそれらの何らかの組合せを含んでもよい。したがって、異なるモジュールの機能は、たとえば、集積回路の異なるサブセットとして実装されてもよく、あるいは1組のソフトウェアモジュールの異なるサブセットとして実装されてもよく、あるいはその組合せとして実装されてもよい。また、(たとえば、集積回路の、および/またはソフトウェアモジュールのセットの)所与のサブセットが、2つ以上のモジュールに関する機能の少なくとも一部分を実現する場合があることが諒解されよう。
加えて、図15〜図16によって表される構成要素および機能ならびに本明細書で説明する他の構成要素および機能は、任意の適切な手段を使用して実装されてもよい。そのような手段はまた、少なくとも部分的に、本明細書で教示する対応する構造を使用して実装されてもよい。たとえば、図15〜図16の「ためのモジュール」構成要素とともに上記で説明した構成要素はまた、同様に指定された「ための手段」機能に相当してもよい。したがって、いくつかの態様では、そのような手段のうちの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)は、データをレーザで光学的に再生する。前述の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
上記の開示は本開示の例示的な態様を示すが、添付の特許請求の範囲によって規定される本開示の範囲から逸脱することなく、本明細書で様々な変更および修正が行われ得ることに留意されたい。本明細書で説明した本開示の態様による方法クレームの機能、ステップおよび/または動作は、特定の順序で実施される必要はない。さらに、本開示の要素は、単数形で記載または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形が考えられる。