(58)【調査した分野】(Int.Cl.,DB名)
前記第2のIoTデバイスの前記スキーマが、前記第1のIoTデバイスおよび前記第2のIoTデバイスを含むIoTネットワークのためのスーパーバイザデバイスから取得される請求項1に記載の方法。
前記第1のIoTデバイスと前記第2のIoTデバイスとの間の関連付けが存在することに基づいて前記第1のIoTデバイスの識別子を前記第2のIoTデバイスに送信するステップをさらに含む請求項1に記載の方法。
前記第1のIoTデバイスが、前記第1のIoTデバイスが属するIoTネットワークに前記第2のIoTデバイスが加わることに応答して前記第2のIoTデバイスの前記識別子を受信する請求項1に記載の方法。
前記第1のIoTデバイスの前記スキーマの前記スキーマ要素のそれぞれに関する1つまたは複数のスキーマ要素値を決定するステップをさらに含む請求項1に記載の方法。
前記第1のIoTデバイスと前記第2のIoTデバイスとの間の関連付けが存在することに基づいて前記第2のIoTデバイスと相互作用するステップをさらに含む請求項1に記載の方法。
前記第1のIoTデバイスおよび前記第2のIoTデバイスが、伝送制御プロトコル/インターネットプロトコルTCP/IPを用いて互いに通信する請求項1に記載の方法。
【発明を実施するための形態】
【0012】
本開示の様々な態様が、以下の説明および関連する図面で開示される。代替的な態様が、本開示の範囲を逸脱することなく案出され得る。加えて、本開示のよく知られている要素は、本開示の重要な詳細を曖昧にしないように詳細に示されないかまたは省略される。
【0013】
語「例示的な」および/または「例」は、本明細書においては「例、具体例、または事例としての役割を果たす」ことを表すために使用される。本明細書で「例示的」および/または「例」と記載されたいずれの態様も、必ずしも他の態様よりも好ましいかまたは有利であると解釈されるべきでない。同様に、用語「本開示の態様」は、本開示のすべての態様が検討される特徴、利点、または動作のモードを含むことを必要としない。
【0014】
さらに、多くの態様が、たとえば、コンピューティングデバイスの要素によって実行される一連の行為によって説明される。本明細書において説明される様々な行為が特定の回路(たとえば、特定用途向け集積回路(ASIC))、1つもしくは複数のプロセッサによって実行されるプログラム命令、またはこれら両方の組合せによって実行され得ることは、認められるであろう。加えて、本明細書において説明されるこれらの一連の行為は、実行されると関連するプロセッサに本明細書において説明される機能を実行させるコンピュータ命令の対応する組を記憶する任意の形態のコンピュータ可読ストレージ媒体内に完全に具現化されると考えられ得る。したがって、本開示の様々な態様は、いくつかの異なる形態で具現化されてよく、それらの異なる形態のすべては、特許請求の対象の範囲内にあると考えられた。さらに、本明細書において説明される態様のそれぞれに関して、対応する形態の任意のそのような態様は、たとえば、説明される行為を実行する「ように構成された論理」として本明細書において説明され得る。
【0015】
本明細書において使用されるとき、用語「モノのインターネット(IoT)デバイス」は、アドレス指定可能なインターフェース(たとえば、インターネットプロトコル(IP)アドレス、Bluetooth(登録商標)識別子(ID)、近距離無線通信(NFC: near-field communication) IDなど)を有し、有線またはワイヤレス接続を介して1つまたは複数のその他のデバイスに情報を送信することができる任意のモノ(たとえば、電化製品、センサーなど)を指すために使用される。IoTデバイスは、クイックレスポンス(QR)コード、無線周波数識別(RFID)タグ、NFCタグなどの受動的な通信インターフェースと、モデム、トランシーバ、送信機-受信機などの能動的な通信インターフェースとを有し得る。IoTデバイスは、中央演算処理装置(CPU)、マイクロプロセッサ、ASICなどに埋め込まれるおよび/または中央演算処理装置(CPU)、マイクロプロセッサ、ASICなどによって制御/監視され、ローカルアドホックネットワークまたはインターネットなどのIoTネットワークに接続するように構成され得る特定の1組の属性(たとえば、IoTデバイスがオンであるかまたはオフであるか、開いているかまたは閉じているか、アイドルかまたはアクティブか、タスクの実行のために利用可能かまたは使用中かなどのデバイスの状態またはステータス、冷やすまたは暖める機能、環境を監視または記録する機能、光を発する機能、音を発する機能など)を有することができる。たとえば、IoTデバイスは、デバイスがIoTネットワークと通信するためのアドレス指定可能な通信インターフェースを備えている限り、冷蔵庫、トースター、オーブン、電子レンジ、冷凍庫、食洗機、皿、手工具、洗濯機、衣類乾燥機、ファーネス、エアコン、サーモスタット、テレビ、照明設備、掃除機、スプリンクラー、電気メータ、ガスメータなどを含み得るがこれらに限定されない。IoTデバイスは、セル電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)なども含み得る。したがって、IoTネットワークは、通常、インターネット接続性を持たないデバイス(たとえば、食洗機など)に加えて「レガシーの」インターネットに接続可能なデバイス(たとえば、ラップトップまたはデスクトップコンピュータ、セル電話など)の組合せからなり得る。
【0016】
図1Aは、本開示の一態様によるワイヤレス通信システム100Aの高レベルのシステムアーキテクチャを示す。ワイヤレス通信システム100Aは、テレビ110、空調室外機112、サーモスタット114、冷蔵庫116、ならびに洗濯機および乾燥機118を含む複数のIoTデバイスを含む。
【0017】
図1Aを参照すると、IoTデバイス110〜118は、
図1Aにおいては無線インターフェース108および直接有線接続109として示される物理的な通信インターフェースまたはレイヤを介してアクセスネットワーク(たとえば、アクセスポイント125)と通信するように構成される。無線インターフェース108は、IEEE 802.11などのワイヤレスインターネットプロトコル(IP)に準拠してよい。
図1AはIoTデバイス110〜118が無線インターフェース108を介して通信し、IoTデバイス118が有線接続109を介して通信するところを示すが、各IoTデバイスは、有線もしくは無線接続、またはこれら両方を介して通信してよい。
【0018】
インターネット175は、(
図1Aには便宜上示されていない)いくつかのルーティングエージェントおよび処理エージェントを含む。インターネット175は、異なるデバイス/ネットワーク間で通信するために標準的なインターネットプロトコルスイート(たとえば、伝送制御プロトコル(TCP)およびIP)を用いる相互に接続されたコンピュータおよびコンピュータネットワークの全世界的システムである。TCP/IPは、データがどのようにフォーマットされ、アドレス指定され、送信され、ルーティングされ、送信先で受信されるべきかを規定するエンドツーエンドの接続性を提供する。
【0019】
図1Aにおいて、デスクトップまたはパーソナルコンピュータ(PC)などのコンピュータ120は、(たとえば、イーサネット(登録商標)接続またはWi-Fiもしくは802.11に基づくネットワークを介して)インターネット175に直接接続するものとして示される。コンピュータ120は、モデムまたはルータへの直接接続などのインターネット175への有線接続を有してよく、モデムまたはルータは、一例において、(たとえば、有線接続性とワイヤレス接続性との両方を有するWi-Fiルータの)アクセスポイント125自体に対応してよい。代替的に、有線接続を介してアクセスポイント125およびインターネット175に接続されるのではなく、コンピュータ120は、無線インターフェース108または別のワイヤレスインターフェースを介してアクセスポイント125に接続され、無線インターフェースを介してインターネット175にアクセスしてよい。デスクトップコンピュータとして示されているが、コンピュータ120は、ラップトップコンピュータ、タブレットコンピュータ、PDA、スマートフォンなどであってよい。コンピュータ120は、IoTデバイスであり、および/またはIoTデバイス110〜118のネットワーク/グループなどのIoTネットワーク/グループを管理するための機能を含み得る。
【0020】
アクセスポイント125は、たとえば、FiOSなどの光通信システム、ケーブルモデム、デジタル加入者線(DSL)モデムなどを介してインターネット175に接続されてよい。アクセスポイント125は、標準的なインターネットプロトコル(たとえば、TCP/IP)を用いてIoTデバイス110〜118/120およびインターネット175と通信し得る。
【0021】
図1Aを参照すると、IoTサーバ170は、インターネット175に接続されるものとして示される。IoTサーバ170は、複数の構造的に別々のサーバとして実装されてよく、または代替的に、単一のサーバに対応してよい。一態様において、IoTサーバ170は、(破線によって示されるように)オプションであり、IoTデバイス110〜118/120のグループは、ピアツーピア(P2P)ネットワークであってよい。そのような場合、IoTデバイス110〜118/120は、無線インターフェース108および/または有線接続109を介して互いに直接通信し得る。代替的にまたは追加的に、IoTデバイス110〜118/120の一部またはすべては、無線インターフェース108および有線接続109とは独立した通信インターフェースを用いて構成され得る。たとえば、無線インターフェース108がWiFiインターフェースに対応する場合、IoTデバイス110〜118/120のうちの特定のものは、互いにまたはその他のBluetooth(登録商標)もしくはNFC対応デバイスと直接通信するためのBluetooth(登録商標)またはNFCインターフェースを有してよい。
【0022】
ピアツーピアネットワークにおいては、サービス発見方式が、ノードの存在、それらのノードの能力、およびグループの加入者資格をマルチキャストすることができる。ピアツーピアデバイスは、この情報に基づいて関連付けおよびその後の相互作用を確立し得る。
【0023】
本開示の態様によれば、
図1Bは、複数のIoTデバイスを含む別のワイヤレス通信システム100Bの高レベルのアーキテクチャを示す。概して、
図1Bに示されるワイヤレス通信システム100Bは、上でより詳細に説明された
図1Aに示されたワイヤレス通信システム100Aと同じおよび/または実質的に同様である様々な構成要素(たとえば、無線インターフェース108および/または直接有線接続109を介してアクセスポイント125と通信するように構成されるテレビジョン110、空調室外機112、サーモスタット114、冷蔵庫116、ならびに洗濯機および乾燥機118、インターネット175に直接接続し、および/またはアクセスポイント125を介してインターネットに接続するコンピュータ120、ならびにインターネット175を介してアクセス可能なIoTサーバ170などを含む様々なIoTデバイス)を含み得る。したがって、説明を簡潔および簡単にするために、
図1Bに示されるワイヤレス通信システム100Bの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1Aに示されたワイヤレス通信システム100Aに関連して上で既に与えられている限り、本明細書において省略される得る。
【0024】
図1Bを参照すると、ワイヤレス通信システム100Bは、ワイヤレス通信システム100Bの様々なその他の構成要素を観測、監視、制御、またはその他の方法で管理するために使用され得るスーパーバイザデバイス130を含み得る。たとえば、スーパーバイザデバイス130は、無線インターフェース108および/または直接有線接続109を介してアクセスネットワーク(たとえば、アクセスポイント125)と通信して、ワイヤレス通信システム100B内の様々なIoTデバイス110〜118/120に関連する属性、活動、またはその他の状態を監視または管理することができる。スーパーバイザデバイス130は、インターネット175およびオプションとして(破線として示される)IoTサーバ170への有線またはワイヤレス接続を有してよい。スーパーバイザデバイス130は、様々なIoTデバイス110〜118/120に関連する属性、活動、またはその他の状態をさらに監視または管理するために使用され得る情報をインターネット175および/またはIoTサーバ170から取得し得る。スーパーバイザデバイス130は、スタンドアロンのデバイス、またはコンピュータ120などのIoTデバイス110〜118/120のうちの1つであってよい。スーパーバイザデバイス130は、物理的なデバイス、または物理的なデバイスで実行されるソフトウェアアプリケーションであってよい。スーパーバイザデバイス130は、IoTデバイス110〜118/120に関連する監視された属性、活動、またはその他の状態に関連する情報を出力し、IoTデバイス110〜118/120に関連する属性、活動、またはその他の状態を制御またはそうでなければ管理するための入力された情報を受信することができるユーザインターフェースを含み得る。したがって、スーパーバイザデバイス130は、概して、ワイヤレス通信システム100B内の様々な構成要素を観測、監視、制御、またはそうでなければ管理するために様々な構成要素を含み、様々な有線およびワイヤレス通信インターフェースをサポートし得る。
【0025】
図1Bに示されるワイヤレス通信システム100Bは、ワイヤレス通信システム100Bに結合されるか、またはそうでなければワイヤレス通信システム100Bの一部にされ得る(能動的なIoTデバイス110〜118/120とは対照的な)1つまたは複数の受動的なIoTデバイス105を含み得る。概して、受動的なIoTデバイス105は、バーコード付きデバイス、Bluetooth(登録商標)デバイス、無線周波数(RF)デバイス、RFIDタグ付きデバイス、赤外線(IR)デバイス、NFCタグ付きデバイス、または近距離インターフェースを介して問い合わされるときにそのデバイスの識別子および属性を別のデバイスに提供することができる任意のその他の好適なデバイスを含み得る。能動的なIoTデバイスは、受動的なIoTデバイスの属性の変化を検出し、伝達し、そのような変化に基づき動作し得る。
【0026】
たとえば、受動的なIoTデバイス105は、それぞれがRFIDタグまたはバーコードを有するコーヒーカップおよびオレンジジュースの容器を含んでよい。棚IoTデバイスおよび冷蔵庫IoTデバイス116は、それぞれ、コーヒーカップおよび/またはオレンジジュースの容器の受動的なIoTデバイス105が追加されたかまたは取り除かれたときを検出するためにRFIDタグまたはバーコードを読み取ることができる適切なスキャナまたはリーダを有し得る。棚IoTデバイスがコーヒーカップの受動的なIoTデバイス105が取り除かれたことを検出すること、および冷蔵庫IoTデバイス116がオレンジジュースの容器の受動的なIoTデバイスが取り除かれたことを検出することに応答して、スーパーバイザデバイス130は、棚IoTデバイスおよび冷蔵庫IoTデバイス116で検出された活動に関する1つまたは複数の信号を受信し得る。そのとき、スーパーバイザデバイス130は、ユーザがコーヒーカップからオレンジジュースを飲んでいる、および/またはコーヒーカップからオレンジジュースを飲むのが好きであると推測し得る。
【0027】
以上は受動的なIoTデバイス105を何らかの形態のRFまたはバーコード通信インターフェースを有するものとして説明するが、受動的なIoTデバイス105は、そのような通信能力を持たない1つまたは複数のデバイスまたはその他の物理的なモノを含んでよい。たとえば、特定のIoTデバイスは、受動的なIoTデバイス105を特定するために受動的なIoTデバイス105に関連する形、大きさ、色、および/またはその他の観測可能な特徴を検出することができる適切なスキャナまたはリーダメカニズムを有し得る。このようにして、任意の好適な物理的なモノは、そのモノの識別情報および属性を伝達し、ワイヤレス通信システム100Bの一部になり、スーパーバイザデバイス130により観測、監視、制御、またはそうでなければ管理され得る。さらに、受動的なIoTデバイス105は、
図1Aに示されたワイヤレス通信システム100Aに結合されるか、またはそうでなければ
図1Aに示されたワイヤレス通信システム100Aの一部にされ、実質的に同様の方法で観測、監視、制御、またはそうでなければ管理され得る。
【0028】
本開示の別の態様によれば、
図1Cは、複数のIoTデバイスを含む別のワイヤレス通信システム100Cの高レベルのアーキテクチャを示す。概して、
図1Cに示されるワイヤレス通信システム100Cは、上でより詳細に説明された
図1Aおよび
図1Bにそれぞれ示されたワイヤレス通信システム100Aおよび100Bと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図1Cに示されるワイヤレス通信システム100Cの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1Aおよび
図1Bにそれぞれ示されたワイヤレス通信システム100Aおよび100Bに関連して上で既に与えられている限り、本明細書において省略され得る。
【0029】
図1Cに示される通信システム100Cは、IoTデバイス110〜118とスーパーバイザデバイス130との間の例示的なピアツーピア通信を示す。
図1Cに示されるように、スーパーバイザデバイス130は、IoTスーパーバイザインターフェースを介してIoTデバイス110〜118のそれぞれと通信する。さらに、IoTデバイス110および114、IoTデバイス112、114、および116、ならびにIoTデバイス116および118は、互いに直接通信する。
【0030】
IoTデバイス110〜118は、近隣IoTグループ160を構成する。近隣IoTグループは、ユーザのホームネットワークに接続されたIoTデバイスなどのローカルに接続されたIoTデバイスのグループである。示されていないが、複数の近隣IoTグループが、インターネット175に接続されたIoT SuperAgent 140を介して互いに接続されるおよび/または通信してよい。高いレベルで、スーパーバイザデバイス130がグループ内通信を管理し、一方、IoT SuperAgent 140はグループ間通信を管理することができる。別々のデバイスとして示されているが、スーパーバイザ130およびIoT SuperAgent 140は、同じデバイスであるか、または同じデバイスに存在し得る。これは、スタンドアロンのデバイス、または
図1Aのコンピュータ120などのIoTデバイスであり得る。代替的に、IoT SuperAgent 140は、アクセスポイント125に対応するか、またはアクセスポイント125の機能を含み得る。さらに別の代替として、IoT SuperAgent 140は、IoTサーバ170などのIoTサーバに対応するか、またはIoTサーバの機能を含み得る。IoT SuperAgent 140は、ゲートウェイ機能145を包含してよい。
【0031】
それぞれのIoTデバイス110〜118は、スーパーバイザデバイス130をピアとして扱い、スーパーバイザデバイス130に属性/スキーマの更新を送信してよい。IoTデバイスは、別のIoTデバイスと通信する必要があるとき、スーパーバイザデバイス130にそのIoTデバイスへのポインタを要求し、それから、ピアとして目標のIoTデバイスと通信することができる。IoTデバイス110〜118は、共通メッセージングプロトコル(CMP: common messaging protocol)を用いてピアツーピア通信ネットワークを介して互いに通信する。2つのIoTデバイスは、CMPに対応しており、共通通信トランスポート(common communication transport)を介して接続される限り、互いに通信し得る。プロトコルスタックにおいて、CMPレイヤ154は、アプリケーションレイヤ152の下、ならびにトランスポートレイヤ156および物理レイヤ158の上にある。
【0032】
本開示の別の態様によれば、
図1Dは、複数のIoTデバイスを含む別のワイヤレス通信システム100Dの高レベルのアーキテクチャを示す。概して、
図1Dに示されるワイヤレス通信システム100Dは、上でより詳細に説明された
図1A〜
図1Cにそれぞれ示されたワイヤレス通信システム100A〜Cと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図1Dに示されるワイヤレス通信システム100Dの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1A〜
図1Cにそれぞれ示されたワイヤレス通信システム100A〜Cに関連して上で既に与えられている限り、本明細書において省略され得る。
【0033】
インターネットは、IoTの概念を用いて規制され得る「リソース」である。しかし、インターネットは、規制されるリソース単なる一例であり、任意のリソースが、IoTの概念を用いて規制され得る。規制され得るその他のリソースは、電気、ガス、ストレージ、セキュリティなどを含むがこれらに限定されない。IoTデバイスは、リソースに接続され、それによってリソースを規制してよく、リソースは、インターネットを介して規制され得る。
図1Dは、インターネット175に加えて規制され得る、またはインターネット175を介して規制され得る天然ガス、ガソリン、温水、および電気などのいくつかのリソース180を示す。
【0034】
IoTデバイスは、それらのIoTデバイスのリソースの使用を規制するために互いに通信し得る。たとえば、トースター、コンピュータ、およびヘアドライヤーなどのIoTデバイスが、それらのIoTデバイスの電気(リソース)の使用を規制するためにBluetooth(登録商標)通信インターフェースを介して互いに通信してよい。別の例として、デスクトップコンピュータ、電話、およびタブレットコンピュータなどのIoTデバイスが、インターネット(リソース)へのそれらのIoTデバイスのアクセスを規制するためにWiFi通信インターフェースを介して通信してよい。さらに別の例として、ストーブ、衣類乾燥機、および給湯器などのIoTデバイスが、それらのIoTデバイスのガスの使用を規制するためにWiFi通信インターフェースを介して通信してよい。代替的にまたは追加的に、それぞれのIoTデバイスは、IoTデバイスから受信された情報に基づいてそれらのIoTデバイスのリソースの使用を規制するための論理を有するIoTサーバ170などのIoTサーバに接続され得る。
【0035】
本開示の別の態様によれば、
図1Eは、複数のIoTデバイスを含む別のワイヤレス通信システム100Eの高レベルのアーキテクチャを示す。概して、
図1Eに示されるワイヤレス通信システム100Eは、上でより詳細に説明された
図1A〜
図1Dにそれぞれ示されたワイヤレス通信システム100A〜Dと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図1Eに示されるワイヤレス通信システム100Eの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1A〜
図1Dにそれぞれ示されたワイヤレス通信システム100A〜Dに関連して上で既に与えられている限り、本明細書において省略され得る。
【0036】
通信システム100Eは、2つの近隣IoTグループ160Aおよび160Bを含む。複数の近隣IoTグループが、インターネット175に接続されたIoT SuperAgentを介して互いに接続されるおよび/または通信してよい。高いレベルで、IoT SuperAgentが、グループ間通信を管理する。
図1Eにおいて、近隣IoTグループ160Aは、IoTデバイス116A、122A、および124A、ならびにIoT SuperAgent 140Aを含む。近隣IoTグループ160Bは、IoTデバイス116B、122B、および124B、ならびにIoT SuperAgent 140Bを含む。IoT SuperAgent 140Aおよび140Bは、インターネット175に接続され、インターネット175を介してまたは直接互いに通信し得る。IoT SuperAgent 140Aおよび140Bは、近隣IoTグループ160Aと近隣IoTグループ160Bとの間の通信を容易にする。
図1EはIoT SuperAgent 140Aおよび140Bを介して互いに通信する2つの近隣IoTグループを示すが、任意の数の近隣IoTグループが、IoT SuperAgentを用いて互いに通信してよい。
【0037】
図2Aは、本開示の態様によるIoTデバイス200Aの高レベルの例を示す。外観および/または内部の構成要素がIoTデバイスの間で大きく異なることができるが、ほとんどのIoTデバイスは、ディスプレイおよびユーザ入力のための手段を含み得るある種のユーザインターフェースを有する。ユーザインターフェースのないIoTデバイスは、
図1A〜
図Bおよび
図Dの無線インターフェース108などの有線またはワイヤレスネットワークを介して遠隔で通信され得る。
【0038】
図2Aに示されるように、IoTデバイス200Aに関する例示的な構成において、IoTデバイス200Aの外部ケーシングは、当技術分野で知られているように、コンポーネントの中でもとりわけ、ディスプレイ226、電源ボタン222、ならびに2つの制御ボタン224Aおよび224Bを用いて構成されてよい。ディスプレイ226は、タッチスクリーンディスプレイであってよく、その場合、制御ボタン224Aおよび224Bは、必要でないこともある。IoTデバイス200Aの一部として明示的に示されていないが、IoTデバイス200Aは、Wi-Fiアンテナ、セルラーアンテナ、衛星測位システム(SPS)アンテナ(たとえば、全地球測位システム(GPS)アンテナ)などを含むがこれらに限定されない1つもしくは複数の外部アンテナおよび/または外部ケーシングに組み込まれた1つもしくは複数の組込みアンテナを含み得る。
【0039】
IoTデバイス200AなどのIoTデバイスの内部の構成要素は、異なるハードウェア構成で具現化され得るが、内部のハードウェア構成要素に関する基本的な高レベルの構成は、
図2Aにおいてプラットフォーム202として示される。プラットフォーム202は、
図1A〜
図1Bおよび
図1Dの無線インターフェース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は、示されたディスプレイ226、電源ボタン222、制御ボタン224Aおよび224Bなどの様々なI/Oデバイス、ならびにIoTデバイス200Aに関連するセンサー、アクチュエータ、中継機、バルブ、スイッチなどの任意のその他のデバイスとプロセッサ208が通信することと、それらのデバイスからの制御とを可能にするように構成され得る。
【0040】
したがって、本開示の態様は、本明細書において説明される機能を実行する能力を含むIoTデバイス(たとえば、IoTデバイス200A)を含み得る。当業者によって理解されるであろうように、様々な論理要素は、ディスクリート要素(discrete element)、プロセッサ(たとえば、プロセッサ208)で実行されるソフトウェアモジュール、または本明細書において開示される機能を実現するためのソフトウェアとハードウェアとの任意の組合せで具現化され得る。たとえば、トランシーバ206、プロセッサ208、メモリ212、およびI/Oインターフェース214が、本明細書で開示される様々な機能を協力してロードし、記憶し、実行するためにすべて使用されてよく、したがって、これらの機能を実行するための論理が、様々な要素に分散されてもよい。代替的に、機能は、1つのディスクリート構成要素(discrete component)に組み込まれることもできる。したがって、
図2AのIoTデバイス200Aの特徴は、例示的であるに過ぎないと見なされるべきであり、本開示は、示される特徴または構成に限定されない。
【0041】
図2Bは、本開示の態様による受動的なIoTデバイス200Bの高レベルの例を示す。概して、
図2Bに示される受動的なIoTデバイス200Bは、上でより詳細に説明された
図2Aに示されたIoTデバイス200Aと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図2Bに示される受動的なIoTデバイス200Bの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図2Aに示されたIoTデバイス200Aに関連して上で既に与えられている限り、本明細書において省略され得る。
【0042】
概して、
図2Bに示される受動的なIoTデバイス200Bは、受動的なIoTデバイス200Bがプロセッサ、内部メモリ、または特定のその他の構成要素を持たなくてもよいという点で、
図2Aに示されたIoTデバイス200Aとは異なり得る。その代わりに、一実施形態において、受動的なIoTデバイス200Aは、I/Oインターフェース214、または受動的なIoTデバイス200Bが制御されるIoTネットワーク内で観測されるか、監視されるか、制御されるか、管理されるか、もしくはそうでなければ知られることを可能にするその他の好適なメカニズムのみを含み得る。たとえば、一実施形態において、受動的なIoTデバイス200Bに関連するI/Oインターフェース214は、バーコード、Bluetooth(登録商標)インターフェース、無線周波数(RF)インターフェース、RFIDタグ、IRインターフェース、NFCインターフェース、または近距離インターフェースを介して問い合わされるときに受動的なIoTデバイス200Bに関連する識別子および属性を別のデバイス(たとえば、受動的なIoTデバイス200Bに関連する属性に関する情報を検出するか、記憶するか、伝達するか、そのような情報に基づき動作するか、もしくはそうでなければそのような情報を処理することができるIoTデバイス200Aなどの能動的なIoTデバイス)に提供することができる任意のその他の好適なI/Oインターフェースを含み得る。
【0043】
以上は受動的なIoTデバイス200Bをある形態のRF、バーコード、またはその他のI/Oインターフェース214を有するものとして示すが、受動的なIoTデバイス200Bは、そのようなI/Oインターフェース214を持たないデバイスまたはその他の物理的なモノを含んでよい。たとえば、特定のIoTデバイスは、受動的なIoTデバイス200Bを特定するために受動的なIoTデバイス200Bに関連する形、大きさ、色、および/またはその他の観測可能な特徴を検出することができる適切なスキャナまたはリーダメカニズムを有し得る。このようにして、任意の好適な物理的なモノは、そのモノの識別情報および属性を伝達し、制御されるIoTネットワーク内で観測、監視、制御、またはそうでなければ管理され得る。
図3は、機能を実行するように構成された論理を含む通信デバイス300を示す。通信デバイス300は、IoTデバイス110〜118/120、IoTデバイス200、インターネット175に結合された任意の構成要素(たとえば、IoTサーバ170)などを含むがこれらに限定されない上述の通信デバイスのいずれかに対応し得る。したがって、通信デバイス300は、
図1A〜
図1Eのワイヤレス通信システム100A〜Eを介して1つまたは複数のその他のエンティティと通信する(またはそれらのその他のエンティティとの通信を容易にする)ように構成される任意の電子デバイスに対応し得る。
【0044】
図3は、機能を実行するように構成された論理を含む通信デバイス300を示す。通信デバイス300は、IoTデバイス110〜118/120、IoTデバイス200A、インターネット175に結合された任意の構成要素(たとえば、IoTサーバ170)などを含むがこれらに限定されない上述の通信デバイスのいずれかに対応し得る。したがって、通信デバイス300は、
図1A〜
図1Eのワイヤレス通信システム100A〜Eを介して1つまたは複数のその他のエンティティと通信する(またはそれらのその他のエンティティとの通信を容易にする)ように構成される任意の電子デバイスに対応し得る。
【0045】
図3を参照すると、通信デバイス300は、情報を受信および/または送信するように構成された論理305を含む。一例においては、通信デバイス300がワイヤレス通信デバイス(たとえば、IoTデバイス200Aおよび/または受動的なIoTデバイス200B)に対応する場合、情報を受信および/または送信するように構成された論理305は、ワイヤレストランシーバなどのワイヤレス通信インターフェース(たとえば、Bluetooth(登録商標)、Wi-Fi、Wi-Fi Direct、ロングタームエボリューション(LTE) Directなど)ならびに関連するハードウェア(たとえば、RFアンテナ、モデム、変調器および/または復調器など)を含み得る。別の例において、情報を受信および/または送信するように構成された論理305は、有線通信インターフェース(たとえば、シリアル接続、USBまたはFirewire接続、インターネット175がアクセスされ得るイーサネット(登録商標)接続など)に対応し得る。したがって、通信デバイス300がある種のネットワークに基づくサーバ(たとえば、IoTサーバ170)に対応する場合、情報を受信および/または送信するように構成された論理305は、一例においては、ネットワークに基づくサーバをイーサネット(登録商標)プロトコルによってその他の通信エンティティに接続するイーサネット(登録商標)カードに対応し得る。例として、情報を受信および/または送信するように構成された論理305は、第1のIoTデバイスで第2のIoTデバイスの識別子を受信するように構成された論理と、第1のIoTデバイスによって第2のIoTデバイスの識別子に基づいて第2のIoTデバイスに関するスキーマを得るように構成された論理とを含み得る。さらなる例において、情報を受信および/または送信するように構成された論理305は、通信デバイス300がその通信デバイス300のローカルの環境を監視することができる感知または測定ハードウェア(たとえば、加速度計、温度センサー、光センサー、ローカルのRF信号を監視するためのアンテナなど)を含み得る。情報を受信および/または送信するように構成された論理305は、実行されるときに、情報を受信および/または送信するように構成された論理305の関連するハードウェアがその論理の受信および/もしくは送信機能を実行することを可能にするソフトウェアを含んでもよい。しかし、情報を受信および/または送信するように構成された論理305は、ソフトウェアのみに対応するわけではなく、情報を受信および/または送信するように構成された論理305は、その論理の機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0046】
図3を参照すると、通信デバイス300は、情報を処理するように構成された論理310をさらに含む。一例において、情報を処理するように構成された論理310は、少なくともプロセッサを含み得る。情報を処理するように構成された論理310によって実行され得る処理の種類の例示的な実装は、判定を行うこと、接続を確立すること、異なる情報の選択肢の間で選択を行うこと、データに関連する評価を行うこと、通信デバイス300に結合されたセンサーと相互作用して測定動作を実行すること、情報をある形式から別の形式に(たとえば、.wmvから.aviへなど異なるプロトコルの間で)変換することなどを含むがこれらに限定されない。たとえば、情報を処理するように構成された論理310は、第1のIoTデバイスで第2のIoTデバイスの識別子を受信するように構成された論理と、第1のIoTデバイスによって第2のIoTデバイスの識別子に基づいて第2のIoTデバイスに関するスキーマを得るように構成された論理と、第1のIoTデバイスのスキーマおよび第2のIoTデバイスのスキーマに基づいて第1のIoTデバイスと第2のIoTデバイスとの間の関連付けが存在するか否かを第1のIoTデバイスによって判定するように構成された論理とを含み得る。情報を処理するように構成された論理310に含まれるプロセッサは、汎用プロセッサ、DSP、ASIC、フィールドプログラマブルゲートアレイ(FPGA)もしくはその他のプログラマブルロジックデバイス、ディスクリートゲート(discrete gate)もしくはトランジスタ論理、ディスクリートハードウェア構成要素(discrete hardware component)、または本明細書で説明される機能を実行するように設計されたこれらの任意の組合せに対応し得る。汎用プロセッサはマイクロプロセッサでもよく、別法として、プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、または状態機械でもよい。また、プロセッサは、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意のその他のそのような構成)として実装され得る。情報を処理するように構成された論理310は、実行されるときに、情報を処理するように構成された論理310の関連するハードウェアがその論理の処理機能を実行することを可能にするソフトウェアを含み得る。しかし、情報を処理するように構成された論理310は、ソフトウェアのみに対応するわけではなく、情報を処理するように構成された論理310は、その論理の機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0047】
図3を参照すると、通信デバイス300は、情報を記憶するように構成された論理315をさらに含む。一例において、情報を記憶するように構成された論理315は、少なくとも非一時的メモリおよび関連するハードウェア(たとえば、メモリコントローラなど)を含み得る。たとえば、情報を記憶するように構成された論理315に含まれる非一時的メモリは、RAM、フラッシュメモリ、ROM、消去可能プログラマブルROM(EPROM)、EEPROM、レジスタ、ハードディスク、取り外し可能なディスク、CD-ROM、または当技術分野で知られている任意のその他の形態のストレージ媒体に対応し得る。情報を記憶するように構成された論理315は、実行されるときに、情報を記憶するように構成された論理315の関連するハードウェアがその論理の記憶機能を実行することを可能にするソフトウェアを含み得る。しかし、情報を記憶するように構成された論理315は、ソフトウェアのみに対応するわけではなく、情報を記憶するように構成された論理315は、その論理の機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0048】
図3を参照すると、通信デバイス300は、オプションで、情報を提示するように構成された論理320をさらに含む。一例において、情報を提示するように構成された論理320は、少なくとも出力デバイスおよび関連するハードウェアを含み得る。たとえば、出力デバイスは、映像出力デバイス(たとえば、ディスプレイスクリーン、USB、HDMI(登録商標)などの映像情報を運ぶことができるポート)、音声出力デバイス(たとえば、スピーカ、マイクロホンジャック、USB、HDMI(登録商標)などの音声情報を運ぶことができるポート)、振動デバイス、および/または情報が出力のためにフォーマットされ、もしくは通信デバイス300のユーザもしくはオペレータによって実際に出力され得る任意のその他のデバイスを含み得る。たとえば、通信デバイス300が
図2Aに示されたIoTデバイス200Aおよび/または
図2Bに示された受動的なIoTデバイス200Bに対応する場合、情報を提供するように構成された論理320は、ディスプレイ226を含み得る。さらなる例において、情報を提示するように構成された論理320は、ローカルユーザのいないネットワーク通信デバイス(たとえば、ネットワークスイッチまたはルータ、遠隔のサーバなど)などの特定の通信デバイスに関しては省略され得る。情報を提示するように構成された論理320は、実行されるときに、情報を提示するように構成された論理320の関連するハードウェアがその論理の提示機能を実行することを可能にするソフトウェアを含み得る。しかし、情報を提示するように構成された論理320は、ソフトウェアのみに対応するわけではなく、情報を提示するように構成された論理320は、その論理の機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0049】
図3を参照すると、通信デバイス300は、オプションで、ローカルユーザ入力を受信するように構成された論理325をさらに含む。一例において、ローカルユーザ入力を受信するように構成された論理325は、少なくともユーザ入力デバイスおよび関連するハードウェアを含み得る。たとえば、ユーザ入力デバイスは、ボタン、タッチスクリーンディスプレイ、キーボード、カメラ、音声入力デバイス(たとえば、マイクロホン、もしくはマイクロホンジャックなどの音声情報を運ぶことができるポート)、および/または情報が通信デバイス300のユーザもしくはオペレータから受信され得る任意のその他のデバイスを含み得る。たとえば、通信デバイス300が
図2Aに示されたIoTデバイス200Aおよび/または
図2Bに示された受動的なIoTデバイス200Bに対応する場合、ローカルユーザ入力を受信するように構成された論理325は、ボタン222、224A、および224B、ディスプレイ226(タッチスクリーンの場合)などを含み得る。さらなる例において、ローカルユーザ入力を受信するように構成された論理325は、ローカルユーザのいないネットワーク通信デバイス(たとえば、ネットワークスイッチまたはルータ、遠隔のサーバなど)などの特定の通信デバイスに関しては省略され得る。ローカルユーザ入力を受信するように構成された論理325は、実行されるときに、ローカルユーザ入力を受信するように構成された論理325の関連するハードウェアがその論理の入力受信機能を実行することを可能にするソフトウェアを含み得る。しかし、ローカルユーザ入力を受信するように構成された論理325は、ソフトウェアのみに対応するわけではなく、ローカルユーザ入力を受信するように構成された論理325は、その論理の機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0050】
図3を参照すると、305から325までの構成された論理が
図3の別々のまたは異なるブロックとして示されているが、それぞれの構成された論理がその論理の機能を実行するハードウェアおよび/またはソフトウェアは、部分的に重なり得ることが理解されるであろう。たとえば、305から325までの構成された論理の機能を助けるために使用される任意のソフトウェアは、305から325までの構成された論理が情報を記憶するように構成された論理315によって記憶されたソフトウェアの動作に部分的に基づいてその論理の機能(つまり、この場合、ソフトウェアの実行)をそれぞれ実行するように、情報を記憶するように構成された論理315に関連する非一時的メモリに記憶されてよい。同様に、構成された論理のうちの1つに直接関連付けられるハードウェアが、その他の構成された論理によって時折借用または使用され得る。たとえば、情報を処理するように構成された論理310のプロセッサは、情報を受信および/または送信するように構成された論理305が情報を処理するように構成された論理310に関連するハードウェア(すなわち、プロセッサ)の動作に部分的に基づいてその論理の機能(つまり、この場合、データの送信)を実行するように、情報を受信および/または送信するように構成された論理305によって送信される前にデータを適切な形式にフォーマットしてよい。
【0051】
概して、別途明示的に示されない限り、本開示の全体を通じて使用される語句「〜ように構成された論理」は、少なくとも部分的にハードウェアで実装される態様をもたらすように意図されており、ハードウェアとは独立したソフトウェアのみの実装に当てはまるように意図されていない。また、様々なブロックの構成された論理または「〜ように構成された論理」は、特定の論理ゲートまたは要素に限定されず、概して、(ハードウェアかまたはハードウェアとソフトウェアとの組合せかのどちらかによって)本明細書において説明される機能を実行する能力を指すことが理解されるであろう。したがって、様々なブロックに示される構成された論理または「〜ように構成された論理」は、語「論理」を共有するにもかかわらず、必ずしも論理ゲートまたは論理要素として実装されない。様々なブロックの論理の間のその他の相互作用または協力が、以下でより詳細に説明される態様を考察することにより当業者に明らかになるであろう。
【0052】
様々な実施形態が、
図4に示されるサーバ400などの様々な市販のサーバデバイスのいずれかで実装され得る。一例において、サーバ400は、上述のIoTサーバ170の1つの例示的な構成に対応し得る。
図4において、サーバ400は、不揮発性メモリ402およびディスクドライブ403などの大容量不揮発性メモリに結合されたプロセッサ400を含む。サーバ400は、プロセッサ401に結合されたフロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ406も含み得る。サーバ400は、その他のブロードキャストシステムのコンピュータおよびサーバまたはインターネットに結合されたローカルエリアネットワークなどのネットワーク407とのデータ接続を確立するためにプロセッサ401に結合されたネットワークアクセスポート404も含み得る。
図3に関連して、
図4のサーバ400は、通信デバイス300の1つの例示的な実装を示し、それによって、情報を送信および/または受信するように構成された論理305は、ネットワーク407と通信するためにサーバ400によって使用されるネットワークアクセスポイント404に対応し、情報を処理するように構成された論理310は、プロセッサ401に対応し、情報を記憶するための論理の構成315は、揮発性メモリ402、ディスクドライブ403、および/またはディスクドライブ406の任意の組合せに対応することが理解されるであろう。情報を提示するように構成されたオプションの論理320およびローカルユーザ入力を受信するように構成されたオプションの論理325は、
図4に明示的に示されておらず、サーバ400に含まれてよく、または含まれなくてもよい。したがって、
図4は、
図2AのようなIoTデバイスの実装に加えて、通信デバイス300がサーバとして実装され得ることを示すのに役立つ。
【0053】
IPに基づく技術およびサービスは、より成熟し、コストを押し下げ、IPの可用性を高めた。これは、インターネット接続性をますます多くの種類の日常の電子的なモノに追加されることを可能にした。IoTは、コンピュータおよびコンピュータネットワークだけでなく日常の電子的なモノがインターネットによって読取り可能、認識可能、位置特定可能、アドレス指定可能、および制御可能であることができるという考えに基づく。
【0054】
様々な異種のIoTデバイスおよび/またはネットワークが互いに通信することができることに対するニーズが高まっている。しかし、IoTデバイスは、それらのIoTデバイスの種類、機能、属性、行為、入力、出力、リソース、コマンドなどが大きく異なる。したがって、本開示の態様は、(最小限の構成および統合によって)IoTデバイスの相互作用のすべての側面(facet)を定義する包括的なIoTのユニバーサルスキーマを提供し、異種のIoTデバイスおよび/またはネットワークの間の発見、相互作用、関連付け、および協調を実現できるようにする。
【0055】
ユニバーサルスキーマは、異種のIoTデバイスの間の相互作用を単純化するIoTデバイスのための包括的で単純で拡張可能なユニバーサルスキーマである。ユニバーサルスキーマは、いくつかの特徴を有する。ユニバーサルスキーマは、論理的にシングルトンインスタンスである。ユニバーサルスキーマは、スキーマ要素の包括的なリスト、要素名-値の対のシンタックス(syntax)およびセマンティクス(semantics)、およびデバイスのカテゴリに関する必須の要素を定義する。ユニバーサルスキーマは、適応的であり、拡張可能である。
【0056】
ユニバーサルスキーマは、所与のIoTデバイスのために適用可能であり、使用可能であるスキーマ要素の絶対的な上位集合である。任意の所与のIoTデバイスのためのスキーマに関し、したがって、ユニバーサルスキーマに適用可能な2つの中心的な見地、すなわち、適応性および拡張性が存在する。ユニバーサルスキーマは、スキーマの値が、環境から学習し、その他のIoTデバイスを発見し、その他のIoTデバイスと相互作用することに基づいて発展し得るという点で適応的スキーマである。ユニバーサルスキーマは、構造が既存のIoTスキーマに新しいスキーマ要素を追加することを可能にするという点で拡張可能なスキーマである。
【0057】
所与のIoTデバイスのためのスキーマは、ユニバーサルスキーマのサブセット(subset)であり、IoTデバイスがその他のIoTデバイスと相互作用することを可能にするIoTデバイスの属性を含む。ユニバーサルスキーマのスキーマ要素のIoTデバイスのサブセットは、「マスク」と呼ばれることがあり、特定のIoTデバイスのためのユニバーサルスキーマのインスタンス化である。それは、スキーマ要素のサブセットの名前-値の対の組によって公開される機能である。ユニバーサルスキーマが適応的で拡張可能であるので、同じハードウェアおよび/またはソフトウェアが、時間の経過とともに異なるデバイスの「マスク」を公開してよい。
【0058】
各相手先商標製造会社(OEM)は、スキーマに準拠したIoTデバイスを実装することができる。新しいIoTデバイスまたはIoTデバイスの新しいサブセットに関して、IoTデバイスのマスクが、工場でフラッシュ(flash)され得る。代替的に、IoTデバイスは、その/それらのデバイスのマスクをデータベースから取り出すしてもよい。
【0059】
異種のIoTデバイスのためのユニバーサルスキーマは、「<スキーマ要素> = <スキーマ要素値>」のように表記され得るスキーマ要素および対応するスキーマ要素値を含む。たとえば、スキーマ要素は、IoTデバイスのブランドであってよく、対応するスキーマ要素値は、ブランドの名前であり得、たとえば、「<Brand> = <XYZ>」である。
【0060】
以下は、ユニバーサルスキーマのスキーマ要素の例である。
・ 属性: グローバル一意識別子(GUID)、銘柄(Make)、モデル、型、バージョンなど
・ 入力: ボルト数、アンペア数、ガロン、英国熱量単位(BTU)など
・ 出力: ワット数、温度、面積の単位、容量の単位、速度など
・ 能力/制御/行為/コマンド: 開始、停止、シャットダウン、省電力モード、スタンバイ、リセット、イントロデュース(Introduce)など
・ 通信方法: Bluetooth(登録商標)、WiFi、赤外線、近距離無線通信(NFC)、短波ラジオなど
・ ステータス: その他のIoTデバイスおよび/またはネットワークによって問い合わせ/加入されている
・ 関連付け: それぞれのエントリが関係の種類および関連付けのランクを指定する関連付けエントリのリスト
・ 認可トークン(authorization token)
・ 環境: 様々な環境パラメータ、たとえば、動作温度、電圧の範囲などの拡張可能なリスト
【0061】
スキーマ要素値は、適応性を提供する。スキーマ要素値は、自己学習およびその他のIoTデバイスとの通信に基づいてIoTデバイスのコンテキスト、環境などに適応し得る。結果として、スキーマ要素値は、動的な性質を獲得し、それによって、スキーマ要素値は、上述の要因に基づいて発展し得る。たとえば、冷蔵庫IoTデバイスに関する「関連付けのリスト」スキーマ要素値は、新しいIoTデバイスが冷蔵庫の共有されたリソースのエコシステム(ecosystem)に入ることまたはそこから出て行くことに基づいて拡大または縮小してもよい。別の例として、電球IoTデバイスに関する「ステータス」は、環境光の増加およびより低い明るさ(luminosity)の設定に移る対応する必要性に基づいて「明るさ: 110ルーメン」から「明るさ: 80ルーメン」に変わり得る。
【0062】
スキーマ要素は、拡張性を提供する。スキーマ要素は増強されてよく、つまり、新しいスキーマ要素が定義され、任意の所与のIoTデバイスに関して関連付けられてもよく、そのことは、それによってユニバーサルスキーマを増強する。拡張性は、新しいスキーマ要素の適応性に先立つものであるが、既存のスキーマ要素の適応性は、拡張性とは無関係である。言い換えると、拡張性は、適応性の候補になる新しいスキーマ要素を導入する。
【0063】
拡張性は、IoTデバイスのハードウェアおよび/またはソフトウェアをアップグレードすることと、既存のスキーマ要素の組を増強することによって実現され得る。しかし、機能FがIoTデバイスに存在するが、その機能を公開/導入するスキーマ要素がIoTデバイスのスキーマで定義されないシナリオが存在し得る。そのような場合、機能FがIoTデバイスによって利用可能/使用可能/アドバータイズ可能になるために、そのIoTデバイスのスキーマ要素の組が、機能Fに関連する新しいスキーマ要素を導入するように増強される必要がある。この新しく「拡張された」スキーマ要素は、ヌル/初期化されていない値から始まってよく、それから、スキーマ要素値を決定するためにそのIoTデバイスのコンテキスト/環境に「適応する」ことができる。
【0064】
図5は、互いにおよび/または遠隔のサーバと通信することができるIoTデバイスを含む例示的なIoTネットワークを示す。例示的なIoTネットワーク510は、(電子レンジとして示される)IoTデバイス512、(スマートフォンとして示される)IoTデバイス514、および(ロボット掃除機として示される)IoTデバイス516を含む。例示的なIoTネットワーク520は、(プログラミング可能なサーモスタットとして示される)IoTデバイス522、(スマートフォンとして示される)IoTデバイス524、および(ロボット掃除機として示される)IoTデバイス526を含む。理解されるであろうように、これらは、IoTネットワークおよびIoTデバイスの例であるに過ぎず、本開示は、これらの例に限定されない。
【0065】
IoTネットワーク510および520内のIoTデバイスは、サーバ550と通信し得る。サーバ550は、
図1AのIoTサーバ170などのアプリケーションサーバまたは
図1Aのコンピュータ120などのコンピュータであり得る。IoTネットワーク510および520は、異なる位置の異なるユーザに属する異なるIoTネットワークであり得る。その場合、サーバ550は、いくつかのそのような異なるIoTネットワークと通信するアプリケーションサーバであってよい。代替的に、IoTネットワーク510および520は、同じユーザによって運用される、同じユーザに属する、および/または同じユーザに関連するIoTネットワークであってよい。その場合、サーバ550は、ユーザに関連するそれらのIoTネットワークのみと通信するパーソナルコンピュータであってよい。
【0066】
サーバ550は、IoTのユニバーサルスキーマ552を記憶する。各IoTデバイス512、514、516、522、524、および526は、IoTのユニバーサルスキーマ552のサブセットである独自のスキーマまたは「マスク」を有する。この下位スキーマ/マスクは、IoTデバイスの語彙(vocabulary)を提供する。
【0067】
各IoTデバイスは、GUIDを割り振られ得る。GUIDは、IoTのユニバーサルスキーマ552の中のIoTデバイスのスキーマ/マスクへのポインタとして使用され得る。そのようにして、IoTデバイスのためのスキーマが、サーバ550に記憶され得、IoTデバイスが、GUIDを用いてIoTのユニバーサルスキーマ552から対応するスキーマ/マスクを取得し得る。代替的に、IoTデバイスのためのユニバーサルスキーマ全体が、IoTデバイス自体に記憶/キャッシュされ得る。これは、IoTデバイスがサーバ550に接続することなく特定のIoTデバイスのスキーマにアクセスすることを可能にする。
【0068】
図5に示される例においては、IoTデバイス516およびIoTデバイス522が、互いに通信することを望む。したがって、IoTデバイス516およびIoTデバイス522は、それぞれ「I am GUID-A」メッセージおよび「I am GUID-B」メッセージとして示されるそれらのIoTデバイスのそれぞれのGUIDを交換する。IoTデバイス516は、IoTデバイス522のGUIDを得ると、IoTデバイス522のためのスキーマを取り出すためにGUIDを用いてサーバ550に問い合わせをすることができる。同様に、IoTデバイス522は、IoTデバイス516のGUIDを得ると、IoTデバイス516のためのスキーマを取り出すためにGUIDを用いてサーバ550に問い合わせをすることができる。IoTデバイス516および522は、互いのそれぞれのスキーマを得ると、それらのIoTデバイスのそれぞれのスキーマで定義されたように互いに相互作用することができる。
【0069】
図6は、異種のIoTデバイスのための
図5のIoTのユニバーサルスキーマ552などのユニバーサルスキーマを提供するための例示的なフローを示す。
図6に示されるフローは、
図1A〜
図1DのIoTデバイス110〜118、
図1EのIoTデバイス116A〜124Aもしくは116B〜124B、
図2AのIoTデバイス200A、
図3の通信デバイス300、または
図5のIoTデバイス512〜516もしくは522〜526のいずれかなどのIoTデバイスによって実行され得る。
【0070】
610において、IoTデバイスが、複数のスキーマ要素を含むスキーマを受信する。受信されるスキーマは、ユニバーサルスキーマのサブセットまたはマスクであってよい。IoTデバイスは、
図1AのIoTサーバ170などのIoTサーバから、
図1Bのスーパーバイザデバイス130などのスーパーバイザデバイスから、(スキーマをIoTデバイスのメモリに記憶することによって)OEMから、インターネットを介して遠隔のサーバから、別のIoTデバイスから、または同様のものからスキーマを受信してもよい。
【0071】
620において、IoTデバイスが、複数のスキーマ要素のそれぞれに関する1つまたは複数のスキーマ要素値を受信または決定する。スキーマ要素値は、スキーマと同じまたは同様の方法で、つまり、IoTサーバ、スーパーバイザデバイス、OEM、遠隔のサーバ、別のIoTデバイスなどから受信され得る。加えて、スキーマ要素値の少なくとも一部は、動的に決定または更新され得る。たとえば、特定のスキーマ要素値は、IoTデバイスのコンテキスト、環境などに基づいて決定または更新され得る。
【0072】
630において、IoTデバイスが、GUIDなどの識別子を遠隔のIoTデバイスに送信する。640において、IoTデバイスが、GUIDなどの識別子を遠隔のIoTデバイスから受信する。
【0073】
650において、IoTデバイスが、任意で、遠隔のIoTデバイスのためのスキーマ/マスクを取得するためにサーバ550などの遠隔のサーバに遠隔のIoTデバイスのGUIDを送信し得る。代替的に、各IoTデバイスが、自らのスキーマを記憶し、そのスキーマを要求元のIoTデバイスに提供してよい。たとえば、IoTデバイスが、そのIoTデバイスのスキーマをそのIoTデバイスのGUIDとともに、またはそのIoTデバイスのGUIDとは別の送信で送信し得る。
【0074】
660において、IoTデバイスが、遠隔のサーバか、内部メモリか、または遠隔のIoTデバイスかのいずれかから遠隔のIoTデバイスのためのスキーマを受信する。上述のように、スキーマは、遠隔のIoTデバイスの語彙を提供し、IoTデバイスが互いに相互作用することを可能にする。
【0075】
遠隔のIoTデバイスは、同様にプロセスを実行して第1のIoTデバイスのスキーマを得る。IoTデバイスは、それらのIoTデバイスの間の関連付けが存在するか否かを判定することができ、存在する場合、670において、取得されたスキーマ/関連付けに基づいて互いに相互作用することができる。
【0076】
互いに相互作用することができるために、IoTデバイスは、始めに、関連付けを形成する必要がある。関連付けのリスト、関連付けのランク、および/またはIoTデバイスの間の相互依存性が、IoTデバイスの間の関連付けの信頼度を確かめ、確立するために利用され得る。関連付けが形成される例示的なシナリオは、新しいIoTデバイスが関連するIoTデバイスの既存の組に導入される場合、またはIoTデバイスが関連付けおよび関連付けの度合いを動的に再生成もしくは再評価する(たとえば、強くする、弱くするなど)場合を含む。IoTデバイスのスキーマは、関連付けを確立するために利用され得る。
【0077】
IoTデバイスの間の自己形成関連付け(self-forming association)が、同じ/同様の構成を有するIoTデバイスのスキーマ/マスクに基づいて確立され得る。たとえば、IoTデバイスは、同じまたは後方互換性のある銘柄/モデル/バージョン、能力、コマンド、行為、認可トークンなどを有してよい。移行性(transitivity)の関係から生じる関連性の重なりが存在し得る。たとえば、IoTデバイスIoT_NewSprinklerは、工場でフラッシュされた最初のマスクからそのIoTデバイスの関連付けのリストにIoT_WaterPumpを有してもよく、IoTデバイスIoT_WaterPumpは、プロビジョニング(provisioning)からそのIoTデバイスの関連付けにIoTPoolFilterを有してもよい。これは、IoT_NewSprinklerがIoT_PoolFilterとの関連付けを確立し得ることを示唆する。
【0078】
上で与えられたユニバーサルスキーマの例示的なスキーマ要素のリストでは、「Association」スキーマ要素が、3つのタプル、<Source IoT Device OR IoT Group>、<Destination IoT Device OR IoT Group>、および<Association Basis>を含み得る。Association Basisは、Source IoT DeviceまたはIoT GroupとDestination IoT DeviceまたはIoT Groupとの間の関係の共通性、依存性、または基礎を特定する。関連付けは、さらに、Session and State of Association、Degree of Association、Uses(たとえば、IoT Washer Uses IoT Water Heater)、およびIsUsedBy(たとえば、IoT Refrigerator isUsedBy IoT Water Dispenser)によってさらに制限され得る。
【0079】
自己形成関連付け機能は、時間的、空間的(たとえば、ジオロケーションの)、およびIoTデバイスのスキーマ要素に基づいてよい。
図7は、2つのIoTデバイス、IoTデバイスA 710およびIoTデバイスB 720から入力を受信する例示的な関連付け機能700を示す。関連付け機能700は、2つ以上のIoTデバイス、ここでは、IoTデバイスA 710およびB 720のスキーマに基づいて関連付けのランクおよび関係の種類を導出するためのアルゴリズムである。
【0080】
図7において、関連付け機能700は、IoTデバイスA 710からの時間および位置スキーマ要素値、IoTデバイスB 720からのイベント要素値、ならびに(オプションで)命令的/オーバーライド入力730を受信する。これらの受信されたスキーマ要素/値に基づいて、関連付け機能700は、IoTデバイスA 710とIoTデバイスB 720との間の関連付け740を出力することができる。関連付け機能700は、関連付けのランクのフィードバック750をそれ自体に与えることもできる。
【0081】
また、(関連付けのランクのフィードバック750と呼ばれる)関連付けの度合いは、IoTデバイスA 710とIoTデバイスB 720との間の関連付けを決定するための入力のうちの1つである。関連付けの度合いの初期値は、ゼロから始まり得る。フィードバック経路は、時間の経過とともに、または環境の変化、コンテキスト、イベントなどによって関連付けの度合いが再評価されることを可能にする。結果として、導出される関連付けの度合いは、増幅または減衰させられ得る。関連付けの度合いは、IoTデバイスのスキーマの一部である。
【0082】
命令的入力730は、関連付け機能700への補助的な入力である。命令的入力730は、IoTのエコシステムの正当な権限のある所有者または任意のより高いランクのIoTデバイスから来てよく、関連付けの入力に取って代わるか、関連付けの入力をオーバーライドするか、関連付けの入力を無効にするか、もしくは関連付けの入力を承認し、および/または関連付け機能700の結果に影響を与えるか、もしくは関連付け機能700の結果を覆し得る。
【0083】
図8は、異種のIoTデバイスがそれらのデバイスのそれぞれのスキーマのパターンに基づいて互いの関連付けを形成する例示的なIoTネットワーク800を示す。
図8の例において、洗濯機として示される新しく導入されるIoTデバイス810は、「I am <GUID-A>」メッセージをブロードキャストすることによって自らをIoTネットワーク800のその他のIoTデバイスに導入する。
【0084】
それぞれ食洗機、電子レンジ、およびロボット掃除機として示される1組の関連するIoTデバイス820、830、および840が、新しいIoTデバイス810からの導入「I am <GUID-A>」の空間的および時間的パターンを検出する。IoTデバイス820、830、および840は、
図5に示されたように、
図5のサーバ550などの遠隔のサーバからIoTデバイス810のためのスキーマを取り出し得る。
【0085】
IoTデバイス820として示されるIoTデバイスのサブセットは、入力、行為、能力、環境などの、そのIoTデバイス820のスキーマおよび新しいIoTデバイス810のスキーマの1組のIoTのスキーマ要素値の重なりを検出し得る。そして、IoTデバイス820は、
図5に示される導入と同様の導入「I am <GUID-B>」を新しいIoTデバイス810に送信し得る。それに応答して、IoTデバイス810は、
図5に示されるように、サーバ550からIoTデバイス820のためのスキーマを取り出し得る。
【0086】
代替的に、IoTネットワーク800のそれぞれのIoTデバイスが、「I am <GUID>」メッセージを交換してもよく、そのIoTデバイス自体とその他のIoTデバイスとの間の重なり合うIoTのスキーマ要素/値を検出し得る。
【0087】
図8の例において、IoTデバイス810および820は、入力、環境、および時間の要素を発見し得る。たとえば:
・ Dishwasher Action: LoadCycleStart; Input: Water, Electricity; Environment: Temperature 80F; Time: 07:45
・ Clothes Washer Action: LoadCycleStart; Input: Water, Electricity; Environment: Temperature 70F, 5 Amps, 110 Volts; Time: 07:47
入力、環境、および時間の重なり合うスキーマ要素値に基づいて、IoTデバイス810もしくは820、またはIoTデバイス810とIoTデバイス820との両方が、それらのIoTデバイスの間の関連付けを特定することができる。
【0088】
図7の関連付け機能700などの自己形成関連付け機能が、関連するIoTデバイスが新しいIoTデバイスとの信頼性の間隔(confidence interval)または「結合性(associativity)」の度合いを確立することを可能にする。動的なまたは予め構成された閾値およびセキュリティポリシーに基づいて、この「結合性」は、それぞれのIoTデバイスによって受け入れられるかまたは否定され得る。
【0089】
たとえば、新しく購入されたコーヒーメーカーが、ユーザの時計、スマートフォン、靴、自動車、家庭用防犯システム、サーモスタット、冷蔵庫、給湯器などに「I am <GUID>」のブロードキャストを創出し得る。関連付けのパターンを特定するIoTデバイスは、新しいIoTデバイスに「結合性」メッセージを返すことによって関連付けを受け入れるまたは承認してよい。
【0090】
図9Aは、IoTデバイス間の関連付けを決定するための例示的なフローを示す。
図9Aに示されるフローは、
図8のIoTデバイス810などの新しいIoTデバイスによって実行され得る。910において、新しいIoTデバイスが、IoTネットワークを初めて検出する。920において、検出することに応答して、新しいIoTデバイスが、
図6の630と同様に、そのIoTデバイスのGUIDをIoTネットワークの任意のその他のIoTデバイスに送信する。
【0091】
930において、新しいIoTデバイスが、
図6の640と同様に、少なくとも第2のIoTデバイスからGUIDを受信する。上で検討されたように、第2のIoTデバイスは、その第2のIoTデバイス自体と新しいIoTデバイスとの間の関連付けを既に決定していてよく、それに応じてその第2のIoTデバイスのGUIDを送信しているか、または第2のIoTデバイスは関連付けを決定せずに直ちにその第2のIoTデバイスのGUIDを送信してよい。
【0092】
940において、新しいIoTデバイスが、
図6の650および660と同様に、第2のIoTデバイスのGUIDを用いて少なくとも1つの第2のIoTデバイスのためのスキーマを取得する。新しいIoTデバイスは、
図5のサーバ550などの遠隔のサーバ、第2のIoTデバイス、(フラッシュメモリカードなどの)取り外し可能なメモリ媒体などからスキーマを取得し得る。
【0093】
950において、新しいIoTデバイスが、自らのスキーマと第2のIoTデバイスのスキーマとを比較することによってそのIoTデバイス自体と少なくとも1つの第2のIoTデバイスとの間の関連付けを決定する。新しいIoTデバイスは、第2のIoTデバイスのスキーマのパターンに重なるその新しいIoTデバイスのスキーマのパターンを特定することによって関連付けを決定し得る。IoTデバイス間の関連付けが存在してもよく、もしくは存在しなくてもよく、および/または新しいIoTデバイスが、オプションで、任意の特定された関連付けに信頼のレベルを割り振ってもよい。たとえば、2つのIoTデバイスが共通して有する属性が多いほど、関連付けの信頼のレベルが高くなり得る。
【0094】
そして、IoTデバイスが、
図6の670と同様に、決定された関連付けに基づいて互いに相互作用し得る。
【0095】
図9Bは、
図8のIoTデバイス820などの、IoTネットワークに既に接続されたIoTデバイスで実行されるIoTデバイス間の関連付けを決定するための例示的なフローを示す。960において、IoTデバイスが、
図8のIoTデバイス810などの新しいIoTデバイスのGUIDを受信する。970において、IoTデバイスが、新しいIoTデバイスのスキーマを取得する。IoTデバイスは、
図5のサーバ550などの遠隔のサーバ、新しいIoTデバイス、(フラッシュメモリカードなどの)取り外し可能なメモリ媒体などからスキーマを取得し得る。
【0096】
980において、IoTデバイスが、自らのスキーマおよび新しいIoTデバイスのスキーマに基づいてそのIoTデバイス自体と新しいIoTデバイスとの間の関連付けを決定する。IoTデバイスは、新しいIoTデバイスのスキーマのパターンに重なるそのIoTデバイスのスキーマのパターンを特定することによって関連付けを決定し得る。IoTデバイス間の関連付けが存在してもよく、もしくは存在しなくてもよく、および/またはIoTデバイスが、オプションで、任意の特定された関連付けに信頼のレベルを割り振ってもよい。たとえば、2つのIoTデバイスが共通して有する属性が多いほど、関連付けの信頼のレベルが高くなる。
【0097】
990において、IoTデバイスが、オプションで、そのIoTデバイスのGUIDを新しいIoTデバイスに送信する。IoTデバイスの間の関連付けが存在する場合、IoTデバイスは、そのIoTデバイスのGUIDを新しいIoTデバイスに送信し得る。関連付けが存在しない場合、IoTデバイスは、そのIoTデバイスのGUIDを新しいIoTデバイスに送信することを控えてよい。代替的に、IoTデバイスは、関連付けが存在するか否かを判定する前にそのIoTデバイスのGUIDを新しいIoTデバイスに送信してよい。
【0098】
任意の特定された関連付けの信頼のレベルを決定するIoTデバイスは、関連するIoTデバイス、および/またはIoTネットワークのサーバもしくは管理者に信頼のレベルを送信してよい。サーバまたは管理者は、遠隔の第3者サーバ、ローカルユーザサーバ、IoTネットワークの管理者として働くローカルユーザデバイスなどであってよい。
【0099】
当業者は、情報および信号が様々な異なる技術および技法のうちのいずれかを使用して表され得ることを理解するであろう。たとえば、上の説明を通して言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁気的粒子、光場もしくは光学的粒子、またはこれらの任意の組合せによって表され得る。
【0100】
さらに、当業者は、本明細書において開示された態様に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムのステップが、電子的なハードウェア、コンピュータソフトウェア、またはそれら両方の組合せとして実装され得ることを理解するであろう。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能の観点で上で説明された。そのような機能がハードウェアとして実装されるかまたはソフトウェアとして実装されるかは、システム全体に課された特定の用途および設計の制約による。当業者は、説明された機能をそれぞれの特定の用途のために様々な方法で実装し得るが、そのような実装の判断は、本開示の範囲からの逸脱をもたらすものと解釈されるべきでない。
【0101】
本明細書において開示された態様に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくはその他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェア構成要素、または本明細書において説明された機能を実行するように設計されたこれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであってよいが、別法として、プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってよい。また、プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意のその他のそのような構成として実装され得る。
【0102】
本明細書において開示された態様と関連して説明された方法、シーケンス、および/またはアルゴリズムは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはこれら2つの組合せで具現化され得る。ソフトウェアモジュールは、RAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、取り外し可能なディスク、CD-ROM、または当技術分野で知られている任意のその他の形態のストレージ媒体に存在し得る。例示的なストレージ媒体は、プロセッサがストレージ媒体から情報を読むことができ、ストレージ媒体に情報を書き込むことができるようにプロセッサに結合される。別法として、ストレージ媒体は、プロセッサに一体化され得る。プロセッサおよびストレージ媒体は、ASIC内に存在し得る。ASICは、IoTデバイスに存在し得る。別法として、プロセッサおよびストレージ媒体は、ユーザ端末内の別個の構成要素として存在し得る。
【0103】
1つまたは複数の例示的な態様において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶または送信され得る。コンピュータ可読媒体は、ある場所から別の場所へとコンピュータプログラムを転送することを容易にする任意の媒体を含むコンピュータストレージ媒体と通信媒体との両方を含む。ストレージ媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを運ぶかもしくは記憶するために使用可能であり、コンピュータによってアクセス可能である任意のその他の媒体を含み得る。また、当然、任意の接続がコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を用いてウェブサイト、サーバ、またはその他の遠隔のソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書において使用されるとき、ディスク(disk)およびディスク(disc)は、CD、レーザディスク(laser disc)、光ディスク(optical disc)、DVD、フロッピー(登録商標)ディスク(floppy disk)、およびブルーレイディスク(Blu-ray(登録商標) disc)を含み、ディスク(disk)が、通常、磁気的にデータを再生する一方、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記のものの組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【0104】
上述の開示は本開示の説明的な態様を示すが、添付の特許請求の範囲で定義された本開示の範囲を逸脱することなしに本明細書において種々の変更および修正がなされ得ることに留意されたい。本明細書において説明された本開示の態様による方法の請求項の機能、ステップ、および/または行為は、必ずしもいずれかの特定の順序で実行されない。さらに、本開示の要素が単数形で説明されるか、または特許請求の範囲に記載され得るが、単数への限定が明示的に述べられない限り、複数も想定される。