(58)【調査した分野】(Int.Cl.,DB名)
前記合意されたセマンティックタグを前記関連する情報に割り当てるステップが、前記合意されたセマンティックタグを前記IoTデバイスの遠隔で公開されたプロパティに割り当てるステップを含む請求項1に記載の方法。
人が読める情報を用いて通信するように構成されるモノのインターネット(IoT)デバイスからプログラムのインターフェースにデータをマッピングするための装置であって、
コンピューティングデバイスにおいて、前記IoTデバイスの存在の人が読める指示を観測するための手段であって、前記IoTデバイスが、関連する情報を含む、手段と、
前記IoTデバイスの前記存在の前記人が読める指示を観測することに応じて、セマンティックタグをマッピングデータベースに要求するための手段であって、前記マッピングデータベースは合意されたセマンティックタグを前記関連する情報に割り当てる、手段と、
前記マッピングデータベースが合意された前記セマンティックタグを前記関連する情報に割り当てることに応じて、前記IoTデバイスのためのユーザインターフェースを、前記IoTデバイスから取り出し、プログラムのインターフェースにマッピングする、手段と、
前記合意されたセマンティックタグが前記IoTデバイスを制御するために使用されることを可能にするための手段と、
を含む、装置。
前記IoTデバイスの存在の前記人が読める指示を、ユーザインタフェース、アプリケーションレイヤインタフェース、または、プレゼンテーションレイヤインターフェースのうち少なくとも1つにおいて観測するための手段をさらに含む、請求項7に記載の装置。
前記観測するための手段は、前記IoTデバイスの存在の人が読める指示を観測するように構成された論理であって、前記IoTデバイスが、関連する情報を含む、論理であり、
前記割り当てる手段は、前記IoTデバイスの前記存在の前記人が読める指示を観測することに応じて、セマンティックタグをマッピングデータベースに要求するように構成された論理であって、前記マッピングデータベースは合意されたセマンティックタグを前記関連する情報に割り当てる、論理であり、
前記可能にするための手段は、前記合意されたセマンティックタグが前記IoTデバイスを制御するために使用されることを可能にするように構成された論理である、
請求項7に記載の装置。
【発明を実施するための形態】
【0020】
1つまたは複数の実装においては、モノのインターネットデバイスによってブロードキャストされるユーザが読めるテキストが、セマンティックタグ、またはモノのインターネット環境内で意味を持つその他のセマンティックデータにマッピングされる。1つまたは複数の実装においては、ピアツーピア(P2P)サービスモジュールは、関連するIoTデバイスがコンピュータによって理解されるように意図されていない方法でそれらのデバイスの存在をブロードキャストすることを可能にする。その代わりに、ブロードキャストは、たとえば、テキスト、画像、動画、音声、感触などの人が読める通信の形態でユーザに対して表示され、ユーザによって理解され、IoTデバイスのユーザにとって意味があるように意図される。つまり、コンピュータは、メッセージコード、またはメッセージがマシンツーマシンおよび/もしくはプログラムの通信(programmatic communication)において通常利用する種類の識別情報をブロードキャストが持たないので、何がIoTデバイスによってブロードキャストされているのか理解し得ない。
【0021】
本明細書において使用されるとき、用語「セマンティックタグ」は、コンピューティングデバイスによって容易に解析され、理解され得る任意の種類の情報である。概して、セマンティックタグは、通信に関係するものの間で合意される。例として、文字列「CYCLE_DONE」が、洗濯機がその洗濯機のサイクルを終了したことを示すセマンティックタグに関して予め合意される可能性がある。したがって、家庭用電化製品は、特定のバイト列「CYCLE_DONE」を有するメッセージに応答するように予めプログラミングされ得る。しかし、文字列「Your washing machine has finished its cycle」は、予め定義されておらず、予め合意されていないので、人間だけが理解できる英語テキストである。概して、コンピューティングデバイスは、文字列「Your washing machine has finished its cycle」を有するメッセージに応答するようにプログラミングされない。本明細書において説明されるテクノロジーの実装は、人が読める文字列を予め定義されたかまたは予め合意されたセマンティックタグに翻訳する。
【0022】
本明細書において使用されるとき、「モノのインターネットデバイス」(または「IoTデバイス」)という用語は、アドレス指定可能なインターフェース(たとえば、インターネットプロトコル(IP)アドレス、Bluetooth(登録商標)識別子(ID)、近距離無線通信(NFC: near-field communication)IDなど)を有し、有線またはワイヤレスの接続を介して1つまたは複数のその他のデバイスに情報を送信することができる任意のモノ(たとえば、電化製品、センサなど)を指し得る。IoTデバイスは、クイックレスポンス(QR)コード、無線周波数識別(RFID)タグ、NFCタグなどの受動的な通信インターフェース、またはモデム、トランシーバ、送信機-受信機などの能動的な通信インターフェースを有する可能性がある。
【0023】
IoTデバイスは、中央演算処理装置(CPU)、マイクロプロセッサ、ASICなどに埋め込まれ、および/または中央演算処理装置(CPU)、マイクロプロセッサ、ASICなどによって制御/監視され、ローカルアドホックネットワークまたはインターネットなどのIoTネットワークに接続するように構成され得る特定の1組の属性および/またはプロパティ(たとえば、IoTデバイスがオンであるかまたはオフであるか、開いているかまたは閉じているか、アイドルかまたはアクティブか、タスクの実行のために利用可能かまたは使用中かなどのデバイスの状態またはステータス、冷やすまたは暖める機能、環境を監視または記録する機能、光を発する機能、音を発する機能など)を有する可能性がある。たとえば、IoTデバイスは、デバイスがIoTネットワークと通信するためのアドレス指定可能な通信インターフェースを備えている限り、冷蔵庫、トースター、オーブン、電子レンジ、冷凍庫、食洗機、皿、手工具、洗濯機、衣類乾燥機、炉、エアコン、サーモスタット、テレビ、照明設備、掃除機、スプリンクラー、電気メータ、ガスメータなどを含み得るがこれらに限定されない。
【0024】
IoTデバイスは、セル電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)なども含み得る。したがって、IoTネットワークは、通常、インターネット接続性を持たないデバイス(たとえば、食洗機など)に加えて「レガシーの」インターネットに接続可能なデバイス(たとえば、ラップトップコンピュータまたはデスクトップコンピュータ、セル電話など)の組合せからなる可能性がある。
【0025】
図1Aは、本明細書において説明されるテクノロジーの1つまたは複数の実装によるワイヤレス通信システム100Aの高レベルのシステムアーキテクチャを示す。ワイヤレス通信システム100Aは、テレビ110、空調室外機112、サーモスタット114、冷蔵庫116、ならびに洗濯機および乾燥機118を含む複数のIoTデバイスを含む。
【0026】
図1Aを参照すると、IoTデバイス110〜118は、
図1Aにおいては無線インターフェース108および直接有線接続109として示される物理的な通信インターフェースまたはレイヤを介してアクセスネットワーク(たとえば、アクセスポイント125)と通信するように構成される。無線インターフェース108は、IEEE 802.11などのワイヤレスインターネットプロトコル(IP)に準拠する可能性がある。
図1AはIoTデバイス110〜118が無線インターフェース108を介して通信し、IoTデバイス118が有線接続109を介して通信するところを示すが、各IoTデバイスは、有線もしくはワイヤレスの接続、またはこれら両方を介して通信する可能性がある。
【0027】
インターネット175は、(
図1Aには便宜上示されていない)いくつかのルーティングエージェントおよび処理エージェントを含む。インターネット175は、異なるデバイス/ネットワーク間で通信するために標準的なインターネットプロトコルスイート(たとえば、伝送制御プロトコル(TCP)およびIP)を用いる相互に接続されたコンピュータおよびコンピュータネットワークの全世界的システムである。TCP/IPは、データがどのようにフォーマットされ、アドレス指定され、送信され、ルーティングされ、送信先で受信されるべきかを指定するエンドツーエンドの接続性を提供する。
【0028】
図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ネットワーク/グループを管理するための機能を含む可能性がある。
【0029】
アクセスポイント125は、たとえば、FiOSなどの光通信システム、ケーブルモデム、デジタル加入者線(DSL)モデムなどを介してインターネット175に接続される可能性がある。アクセスポイント125は、標準的なインターネットプロトコル(たとえば、TCP/IP)を用いてIoTデバイス110〜120およびインターネット175と通信し得る。
【0030】
図1Aを参照すると、IoTサーバ170は、インターネット175に接続されるものとして示される。IoTサーバ170は、複数の構造的に別々のサーバとして実装される可能性があり、または代替的に、単一のサーバに対応する可能性がある。一態様において、IoTサーバ170は、(破線によって示されるように)任意であり、IoTデバイス110〜120のグループは、ピアツーピア(P2P)ネットワークの可能性がある。そのような場合、IoTデバイス110〜120は、無線インターフェース108および/または有線接続109を介して互いに直接通信し得る。代替的にまたは追加的に、IoTデバイス110〜120の一部またはすべては、無線インターフェース108および有線接続109とは独立した通信インターフェースを用いて構成される可能性がある。たとえば、無線インターフェース108がWi-Fiインターフェースに対応する場合、IoTデバイス110〜120のうちのいくつかは、互いにまたはその他のBluetooth(登録商標)対応デバイスもしくはNFC対応デバイスと直接通信するためのBluetooth(登録商標)インターフェースまたはNFCインターフェースを有する可能性がある。
【0031】
ピアツーピアネットワークにおいては、サービス発見方式が、ノードの存在、それらのノードの能力、およびグループの加入者資格をマルチキャストする可能性がある。ピアツーピアデバイスは、この情報に基づいて関連付けおよびその後のインタラクションを確立し得る。
【0032】
本開示の一態様によれば、
図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に関連して上で既に与えられている限り、本明細書において省略される可能性がある。
【0033】
図1Bを参照すると、ワイヤレス通信システム100Bは、スーパーバイザデバイス130を含む可能性があり、スーパーバイザデバイス130は、代替的にIoTマネージャ130またはIoTマネージャデバイス130と呼ばれる可能性がある。したがって、以下の説明が「スーパーバイザデバイス」130という用語を使用する場合、当業者は、IoTマネージャ、グループの所有者、または同様の用語へのすべての言及が、スーパーバイザデバイス130、または同じもしくは実質的に同様の機能を提供する別の物理的もしくは論理的な構成要素を指す可能性があることを理解するであろう。
【0034】
一実装形態において、スーパーバイザデバイス130は、概して、ワイヤレス通信システム100Bの様々なその他の構成要素を観測、監視、制御、または場合によっては管理し得る。たとえば、スーパーバイザデバイス130は、無線インターフェース108および/または直接有線接続109を介してアクセスネットワーク(たとえば、アクセスポイント125)と通信して、ワイヤレス通信システム100B内の様々なIoTデバイス110〜120に関連する属性、活動、またはその他の状態を監視または管理することができる。スーパーバイザデバイス130は、インターネット175および任意で(破線として示される)IoTサーバ170への有線またはワイヤレスの接続を有する可能性がある。スーパーバイザデバイス130は、様々なIoTデバイス110〜120に関連する属性、活動、またはその他の状態をさらに監視または管理するために使用され得る情報をインターネット175および/またはIoTサーバ170から取得し得る。
【0035】
スーパーバイザデバイス130は、スタンドアロンのデバイス、またはコンピュータ120などのIoTデバイス110〜120のうちの1つである可能性がある。スーパーバイザデバイス130は、物理的なデバイス、または物理的なデバイスで実行されるソフトウェアアプリケーションである可能性がある。スーパーバイザデバイス130は、IoTデバイス110〜120に関連する監視された属性、活動、またはその他の状態に関連する情報を出力し、IoTデバイス110〜120に関連する属性、活動、またはその他の状態を制御または場合によっては管理するための入力された情報を受信することができるユーザインターフェースを含み得る。したがって、スーパーバイザデバイス130は、概して、ワイヤレス通信システム100B内の様々な構成要素を観測、監視、制御、または場合によっては管理するために様々な構成要素を含み、様々な有線およびワイヤレスの通信インターフェースをサポートする可能性がある。
【0036】
図1Bに示されるワイヤレス通信システム100Bは、ワイヤレス通信システム100Bに結合されるか、または場合によってはワイヤレス通信システム100Bの一部にされる可能性がある(能動的なIoTデバイス110〜120とは対照的な)1つまたは複数の受動的なIoTデバイス105を含む可能性がある。概して、受動的なIoTデバイス105は、バーコード付きデバイス、Bluetooth(登録商標)デバイス、無線周波数(RF)デバイス、RFIDタグ付きデバイス、赤外線(IR)デバイス、NFCタグ付きデバイス、または近距離インターフェースを介して問い合わされるときにそのデバイスの識別子および属性を別のデバイスに提供することができる任意のその他の好適なデバイスを含み得る。能動的なIoTデバイスは、受動的なIoTデバイスの属性の変化を検出する可能性、記憶する可能性、伝達する可能性、そのような変化に基づいて動作する可能性などがある。
【0037】
たとえば、受動的なIoTデバイス105は、それぞれがRFIDタグまたはバーコードを有するコーヒーカップおよびオレンジジュースの容器を含む可能性がある。棚IoTデバイスおよび冷蔵庫IoTデバイス116は、それぞれ、コーヒーカップおよび/またはオレンジジュースの容器の受動的なIoTデバイス105が追加されたかまたは取り除かれた時点を検出するためにRFIDタグまたはバーコードを読み取ることができる適切なスキャナまたはリーダを有する可能性がある。棚IoTデバイスがコーヒーカップの受動的なIoTデバイス105が取り除かれたことを検出し、かつ冷蔵庫IoTデバイス116がオレンジジュースの容器の受動的なIoTデバイスが取り除かれたことを検出すると、スーパーバイザデバイス130は、棚IoTデバイスおよび冷蔵庫IoTデバイス116で検出された活動に関する1つまたは複数の信号を受信し得る。次いで、スーパーバイザデバイス130は、ユーザがコーヒーカップでオレンジジュースを飲んでいる、および/またはコーヒーカップでオレンジジュースを飲むのが好きであると推測する可能性がある。
【0038】
以上は受動的なIoTデバイス105を何らかの形態のRFまたはバーコード通信インターフェースを有するものとして説明しているが、受動的なIoTデバイス105は、そのような通信能力を持たない1つまたは複数のデバイスまたはその他の物理的なモノを含む可能性がある。たとえば、特定のIoTデバイスは、受動的なIoTデバイス105を特定するために受動的なIoTデバイス105に関連する形、大きさ、色、および/またはその他の観測可能な特徴を検出することができる適切なスキャナまたはリーダのメカニズムを有する可能性がある。このようにして、任意の好適な物理的なモノは、そのモノの識別情報および属性を伝達し、ワイヤレス通信システム100Bの一部になり、スーパーバイザデバイス130により観測、管理、制御、または場合によっては管理され得る。さらに、受動的なIoTデバイス105は、
図1Aのワイヤレス通信システム100Aに結合されるか、または場合によっては
図1Aのワイヤレス通信システム100Aの一部にされ、実質的に同様の方法で観測、監視、制御、または場合によっては管理され得る。
【0039】
本開示の別の態様によれば、
図1Cは、複数のIoTデバイスを含む別のワイヤレス通信システム100Cの高レベルのアーキテクチャを示す。概して、
図1Cに示されるワイヤレス通信システム100Cは、上でより詳細に説明された
図1Aおよび
図1Bにそれぞれ示されたワイヤレス通信システム100Aおよび100Bと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図1Cに示されるワイヤレス通信システム100Cの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1Aおよび
図1Bにそれぞれ示されたワイヤレス通信システム100Aおよび100Bに関連して上で既に与えられている限り、本明細書において省略される可能性がある。
【0040】
図1Cに示される通信システム100Cは、IoTデバイス110〜118とスーパーバイザデバイス130との間の例示的なピアツーピア通信を示す。
図1Cに示されるように、スーパーバイザデバイス130は、IoTスーパーバイザインターフェースを介してIoTデバイス110〜118のそれぞれと通信する。さらに、IoTデバイス110および114、IoTデバイス112、114、および116、ならびにIoTデバイス116および118は、互いに直接通信する。
【0041】
IoTデバイス110〜118は、IoTグループ160を構成する。IoTデバイスグループ160は、ユーザのホームネットワークに接続されたIoTデバイスなどのローカルに接続されたIoTデバイスのグループである。示されていないが、複数のIoTデバイスグループが、インターネット175に接続されたIoT SuperAgent 140を介して互いに接続されるおよび/または通信する可能性がある。高いレベルで、スーパーバイザデバイス130がグループ内通信を管理し、一方、IoT SuperAgent 140はグループ間通信を管理することができる。別々のデバイスとして示されているが、スーパーバイザ130およびIoT SuperAgent 140は、同じデバイス(たとえば、
図1Aのコンピュータ120のようなスタンドアロンのデバイスまたはIoTデバイス)であるか、または同じデバイス(たとえば、
図1Aのコンピュータ120のようなスタンドアロンのデバイスまたはIoTデバイス)に存在する可能性がある。代替的に、IoT SuperAgent 140は、アクセスポイント125に対応するか、またはアクセスポイント125の機能を含む可能性がある。さらに別の代替として、IoT SuperAgent 140は、IoTサーバ170などのIoTサーバに対応するか、またはIoTサーバの機能を含む可能性がある。IoT SuperAgent 140は、ゲートウェイ機能145を包含する(encapsulate)可能性がある。
【0042】
それぞれの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の上にある。
【0043】
本開示の別の態様によれば、
図1Dは、複数のIoTデバイスを含む別のワイヤレス通信システム100Dの高レベルのアーキテクチャを示す。概して、
図1Dに示されるワイヤレス通信システム100Dは、上でより詳細に説明された
図1A〜
図1Cにそれぞれ示されたワイヤレス通信システム100A〜Cと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図1Dに示されるワイヤレス通信システム100Dの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1A〜
図1Cにそれぞれ示されたワイヤレス通信システム100A〜Cに関連して上で既に与えられている限り、本明細書において省略される可能性がある。
【0044】
インターネット175は、IoTの概念を用いて規制され得る「リソース」である。しかし、インターネット175は、規制されるリソースの単なる一例であり、任意のリソースが、IoTの概念を用いて規制され得る。規制され得るその他のリソースは、電気、ガス、ストレージ、セキュリティなどを含むがこれらに限定されない。IoTデバイスは、リソースに接続され、それによってリソースを規制する可能性があり、またはリソースは、インターネット175を介して規制される可能性がある。
図1Dは、天然ガス、ガソリン、温水、および電気などのいくつかのリソース180を示し、リソース180は、インターネット175に加えておよび/またはインターネット175を介して規制され得る。
【0045】
IoTデバイスは、それらのリソース180の使用を規制するために互いに通信し得る。たとえば、トースター、コンピュータ、およびヘアドライヤーなどのIoTデバイスが、それらの電気(リソース180)の使用を規制するためにBluetooth(登録商標)通信インターフェースを介して互いに通信する可能性がある。別の例として、デスクトップコンピュータ、電話、およびタブレットコンピュータなどのIoTデバイスが、インターネット175(リソース180)へのそれらのアクセスを規制するためにWi-Fi通信インターフェースを介して通信する可能性がある。さらに別の例として、ストーブ、衣類乾燥機、および給湯器などのIoTデバイスが、それらのガスの使用を規制するためにWi-Fi通信インターフェースを介して通信する可能性がある。代替的にまたは追加的に、それぞれのIoTデバイスは、IoTデバイスから受信された情報に基づいてそれらのリソース180の使用を規制するための論理を有するIoTサーバ170などのIoTサーバに接続される可能性がある。
【0046】
本開示の別の態様によれば、
図1Eは、複数のIoTデバイスを含む別のワイヤレス通信システム100Eの高レベルのアーキテクチャを示す。概して、
図1Eに示されるワイヤレス通信システム100Eは、上でより詳細に説明された
図1A〜
図1Dにそれぞれ示されたワイヤレス通信システム100A〜Dと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図1Eに示されるワイヤレス通信システム100Eの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図1A〜
図1Dにそれぞれ示されたワイヤレス通信システム100A〜Dに関連して上で既に与えられている限り、本明細書において省略される可能性がある。
【0047】
通信システム100Eは、2つのIoTデバイスグループ160Aおよび160Bを含む。複数のIoTデバイスグループが、インターネット175に接続されたIoT SuperAgentを介して互いに接続されるおよび/または通信する可能性がある。高いレベルで、IoT SuperAgentは、IoTデバイスグループの間のグループ間通信を管理し得る。たとえば、
図1Eにおいては、IoTデバイスグループ160Aが、IoTデバイス116A、122A、および124A、ならびにIoT SuperAgent 140Aを含み、一方、IoTデバイスグループ160Bは、IoTデバイス116B、122B、および124B、ならびにIoT SuperAgent 140Bを含む。したがって、IoT SuperAgent 140Aおよび140Bは、IoTデバイスグループ160AとIoTデバイスグループ160Bとの間の通信を容易にするために、インターネット175に接続して、インターネット175を介して互いに通信し、および/または互いに直接通信し得る。さらに、
図1EはIoT SuperAgent 140Aおよび140Bを介して互いに通信する2つのIoTデバイスグループ160Aおよび160Bを示すが、当業者は、任意の数のIoTデバイスグループがIoT SuperAgentを用いて互いに好適に通信する可能性があることを理解するであろう。
【0048】
図2Aは、本開示の態様によるIoTデバイス200Aの高レベルの例を示す。外観および/または内部の構成要素がIoTデバイスの間で大きく異なる可能性があるが、ほとんどのIoTデバイスは、ディスプレイおよびユーザ入力のための手段を含み得るある種のユーザインターフェースを有する。ユーザインターフェースのないIoTデバイスは、
図1A〜
図1Bの無線インターフェース108などの有線またはワイヤレスのネットワークを介して遠隔で通信され得る。
【0049】
図2Aに示されるように、IoTデバイス200Aに関する例示的な構成において、IoTデバイス200Aの外部ケーシングは、当技術分野で知られているように、構成要素の中でもとりわけ、ディスプレイ226、電源ボタン222、ならびに2つの制御ボタン224Aおよび224Bを用いて構成される可能性がある。ディスプレイ226は、タッチスクリーンディスプレイである可能性があり、その場合、制御ボタン224Aおよび224Bは、必要でない可能性がある。IoTデバイス200Aの一部として明示的に示されていないが、IoTデバイス200Aは、Wi-Fiアンテナ、セルラーアンテナ、衛星測位システム(SPS)アンテナ(たとえば、全地球測位システム(GPS)アンテナ)などを含むがこれらに限定されない1つもしくは複数の外部アンテナおよび/または外部ケーシングに組み込まれた1つもしくは複数の組み込みアンテナを含む可能性がある。
【0050】
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は、示されたディスプレイ226、電源ボタン222、制御ボタン224Aおよび224Bなどの様々なI/Oデバイス、ならびにIoTデバイス200Aに関連するセンサ、アクチュエータ、中継機、バルブ、スイッチなどの任意のその他のデバイスとプロセッサ208が通信することと、それらのデバイスからの制御とを可能にするように構成され得る。
【0051】
したがって、本開示の態様は、本明細書において説明される機能を実行する能力を含むIoTデバイス(たとえば、IoTデバイス200A)を含み得る。当業者によって理解されるように、様々な論理要素は、ディスクリート要素(discrete element)、プロセッサ(たとえば、プロセッサ208)で実行されるソフトウェアモジュール、または本明細書において開示される機能を実現するためのソフトウェアとハードウェアとの任意の組合せで具現化され得る。たとえば、トランシーバ206、プロセッサ208、メモリ212、およびI/Oインターフェース214が、本明細書で開示される様々な機能を協力してロードし、記憶し、実行するためにすべて使用される可能性があり、したがって、これらの機能を実行するための論理が、様々な要素に分散される可能性がある。代替的に、機能は、1つのディスクリート構成要素(discrete component)に組み込まれる可能性がある。したがって、
図2AのIoTデバイス200Aの特徴は、例示的であるに過ぎないと見なされるべきであり、本開示は、示される特徴または構成に限定されない。
【0052】
図2Bは、本開示の態様による受動的なIoTデバイス200Bの高レベルの例を示す。概して、
図2Bに示される受動的なIoTデバイス200Bは、上でより詳細に説明された
図2Aに示されたIoTデバイス200Aと同じおよび/または実質的に同様である様々な構成要素を含み得る。したがって、説明を簡潔および簡単にするために、
図2Bに示される受動的なIoTデバイス200Bの特定の構成要素に関連する様々な詳細は、同じまたは同様の詳細が
図2Aに示されたIoTデバイス200Aに関連して上で既に与えられている限り、本明細書において省略される可能性がある。
【0053】
概して、
図2Bに示される受動的なIoTデバイス200Bは、受動的なIoTデバイス200Bがプロセッサ、内部メモリ、または特定のその他の構成要素を持たない可能性があるという点で、
図2Aに示されたIoTデバイス200Aとは異なる可能性がある。その代わりに、一実装形態において、受動的なIoTデバイス200Bは、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インターフェースを含み得る。
【0054】
以上は受動的なIoTデバイス200Bをある形態のRF、バーコード、またはその他のI/Oインターフェース214を有するものとして説明しているが、受動的なIoTデバイス200Bは、そのようなI/Oインターフェース214を持たないデバイスまたはその他の物理的なモノを含む可能性がある。たとえば、特定のIoTデバイスは、受動的なIoTデバイス200Bを特定するために受動的なIoTデバイス200Bに関連する形、大きさ、色、および/またはその他の観測可能な特徴を検出することができる適切なスキャナまたはリーダのメカニズムを有する可能性がある。このようにして、任意の好適な物理的なモノは、その識別情報および属性を伝達し、制御されるIoTネットワーク内で観測、監視、制御、または場合によっては管理され得る。
【0055】
図3は、機能を実行するように構成された論理を含む通信デバイス300を示す。通信デバイス300は、IoTデバイス110〜120、IoTデバイス200A、インターネット175に結合された任意の構成要素(たとえば、IoTサーバ170)などを含むがこれらに限定されない上述の通信デバイスのいずれかに対応する可能性がある。したがって、通信デバイス300は、
図1A〜
図1Bのワイヤレス通信システム100A〜Bを介して1つまたは複数のその他のエンティティと通信する(またはそれらのその他のエンティティとの通信を容易にする)ように構成される任意の電子デバイスに対応する可能性がある。
【0056】
図3を参照すると、通信デバイス300は、情報を受信および/または送信するように構成された論理305を含む。一例においては、通信デバイス300がワイヤレス通信デバイス(たとえば、IoTデバイス200Aおよび/または受動的なIoTデバイス200B)に対応する場合、情報を受信および/または送信するように構成された論理305は、ワイヤレストランシーバなどのワイヤレス通信インターフェース(たとえば、Bluetooth(登録商標)、Wi-Fi、Wi-Fi Direct、ロングタームエボリューション(LTE)Directなど)ならびに関連するハードウェア(たとえば、RFアンテナ、モデム、変調器および/または復調器など)を含み得る。
【0057】
別の例において、情報を受信および/または送信するように構成された論理305は、有線通信インターフェース(たとえば、シリアル接続、USB接続またはFirewire接続、インターネット175にアクセスし得るようにするイーサネット(登録商標)接続など)に対応する可能性がある。したがって、通信デバイス300がある種のネットワークに基づくサーバ(たとえば、アプリケーション170)に対応する場合、情報を受信および/または送信するように構成された論理305は、一例においては、ネットワークに基づくサーバをイーサネット(登録商標)プロトコルによってその他の通信エンティティに接続するイーサネット(登録商標)カードに対応する可能性がある。
【0058】
さらなる例において、情報を受信および/または送信するように構成された論理305は、通信デバイス300がそのローカルの環境を監視することができるようにする感知または測定のハードウェア(たとえば、加速度計、温度センサ、光センサ、ローカルのRF信号を監視するためのアンテナなど)を含む可能性がある。情報を受信および/または送信するように構成された論理305は、実行されるときに、情報を受信および/または送信するように構成された論理305の関連するハードウェアがその受信機能および/または送信機能を実行することを可能にするソフトウェアを含む可能性もある。しかし、情報を受信および/または送信するように構成された論理305は、ソフトウェアのみには対応せず、その機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0059】
図3を参照すると、通信デバイス300は、情報を処理するように構成された論理310をさらに含む。一例において、情報を処理するように構成された論理310は、少なくともプロセッサを含み得る。情報を処理するように構成された論理310によって実行され得る処理の種類の例示的な実装は、判定を行うこと、接続を確立すること、異なる情報の選択肢の間で選択を行うこと、データに関連する評価を行うこと、通信デバイス300に結合されたセンサとインタラクションして測定動作を実行すること、情報をある形式から別の形式に(たとえば、.wmvから.aviになど、異なるプロトコルの間で)変換することなどを含むがこれらに限定されない。
【0060】
たとえば、情報を処理するように構成された論理310に含まれるプロセッサは、汎用プロセッサ、DSP、ASIC、フィールドプログラマブルゲートアレイ(FPGA)もしくはその他のプログラマブルロジックデバイス、ディスクリートゲート(discrete gate)もしくはトランジスタ論理、ディスクリートハードウェア構成要素(discrete hardware component)、または本明細書で説明される機能を実行するように設計されたこれらの任意の組合せに対応する可能性がある。汎用プロセッサはマイクロプロセッサである可能性があるが、代替として、プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、または状態機械である可能性がある。また、プロセッサは、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意のその他のそのような構成)として実装され得る。
【0061】
情報を処理するように構成された論理310は、実行されるときに、情報を処理するように構成された論理310の関連するハードウェアがその処理機能を実行することを可能にするソフトウェアを含む可能性もある。しかし、情報を処理するように構成された論理310は、ソフトウェアのみには対応せず、その機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0062】
図3を参照すると、通信デバイス300は、情報を記憶するように構成された論理315をさらに含む。一例において、情報を記憶するように構成された論理315は、少なくとも非一時的メモリおよび関連するハードウェア(たとえば、メモリコントローラなど)を含み得る。たとえば、情報を記憶するように構成された論理315に含まれる非一時的メモリは、RAM、フラッシュメモリ、ROM、消去可能プログラマブルROM(EPROM)、EEPROM、レジスタ、ハードディスク、取り外し可能なディスク、CD-ROM、または当技術分野で知られている任意のその他の形態のストレージ媒体に対応する可能性がある。情報を記憶するように構成された論理315は、実行されるときに、情報を記憶するように構成された論理315の関連するハードウェアがその記憶機能を実行することを可能にするソフトウェアを含む可能性もある。しかし、情報を記憶するように構成された論理315は、ソフトウェアのみには対応せず、その機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0063】
図3を参照すると、通信デバイス300は、任意で、情報を提示するように構成された論理320をさらに含む。一例において、情報を提示するように構成された論理320は、少なくとも出力デバイスおよび関連するハードウェアを含み得る。たとえば、出力デバイスは、映像出力デバイス(たとえば、ディスプレイスクリーン、USB、HDMI(登録商標)などの映像情報を運ぶことができるポートなど)、音声出力デバイス(たとえば、スピーカ、マイクロホンジャック、USB、HDMI(登録商標)などの音声情報を運ぶことができるポートなど)、振動デバイス、および/または情報が出力のためにフォーマットされるか、もしくは通信デバイス300のユーザもしくはオペレータによって実際に出力され得るようにする任意のその他のデバイスを含む可能性がある。たとえば、通信デバイス300が
図2Aに示されたIoTデバイス200Aおよび/または
図2Bに示された受動的なIoTデバイス200Bに対応する場合、情報を提供するように構成された論理320は、ディスプレイ226を含み得る。
【0064】
さらなる例において、情報を提示するように構成された論理320は、ローカルユーザのいないネットワーク通信デバイス(たとえば、ネットワークスイッチまたはルータ、遠隔のサーバなど)などの特定の通信デバイスに関しては省略される可能性がある。情報を提示するように構成された論理320は、実行されるときに、情報を提示するように構成された論理320の関連するハードウェアがその提示機能を実行することを可能にするソフトウェアを含む可能性もある。しかし、情報を提示するように構成された論理320は、ソフトウェアのみには対応せず、その機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0065】
図3を参照すると、通信デバイス300は、任意で、ローカルユーザ入力を受信するように構成された論理325をさらに含む。一例において、ローカルユーザ入力を受信するように構成された論理325は、少なくともユーザ入力デバイスおよび関連するハードウェアを含み得る。たとえば、ユーザ入力デバイスは、ボタン、タッチスクリーンディスプレイ、キーボード、カメラ、音声入力デバイス(たとえば、マイクロホン、もしくはマイクロホンジャックなどの音声情報を運ぶことができるポートなど)、および/または情報が通信デバイス300のユーザもしくはオペレータから受信され得るようにする任意のその他のデバイスを含む可能性がある。たとえば、通信デバイス300が
図2Aに示されたIoTデバイス200Aおよび/または
図2Bに示された受動的なIoTデバイス200Bに対応する場合、ローカルユーザ入力を受信するように構成された論理325は、ボタン222、224A、および224B、ディスプレイ226(タッチスクリーンの場合)などを含み得る。
【0066】
さらなる例において、ローカルユーザ入力を受信するように構成された論理325は、ローカルユーザのいないネットワーク通信デバイス(たとえば、ネットワークスイッチまたはルータ、遠隔のサーバなど)などの特定の通信デバイスに関しては省略される可能性がある。ローカルユーザ入力を受信するように構成された論理325は、実行されるときに、ローカルユーザ入力を受信するように構成された論理325の関連するハードウェアがその入力受信機能を実行することを可能にするソフトウェアを含む可能性もある。しかし、ローカルユーザ入力を受信するように構成された論理325は、ソフトウェアのみには対応せず、その機能を実現するために少なくとも部分的にハードウェアに依拠する。
【0067】
図3を参照すると、305から325までの構成された論理が
図3の別々のまたは異なるブロックとして示されているが、それぞれの構成された論理がその機能を実行するようにするハードウェアおよび/またはソフトウェアは、部分的に重なる可能性があることが理解されるであろう。たとえば、305から325までの構成された論理の機能を助けるために使用される任意のソフトウェアは、305から325までの構成された論理が、情報を記憶するように構成された論理315によって記憶されたソフトウェアの動作に部分的に基づいてその機能(つまり、この場合、ソフトウェアの実行)をそれぞれ実行するように、情報を記憶するように構成された論理315に関連する非一時的メモリに記憶される可能性がある。
【0068】
同様に、構成された論理のうちの1つに直接関連付けられるハードウェアが、その他の構成された論理によって時折借用または使用され得る。たとえば、情報を処理するように構成された論理310のプロセッサは、情報を受信および/または送信するように構成された論理305が、情報を処理するように構成された論理310に関連するハードウェア(すなわち、プロセッサ)の動作に部分的に基づいてその機能(つまり、この場合、データの送信)を実行するように、情報を受信および/または送信するように構成された論理305によって送信される前にデータを適切な形式にフォーマットする可能性がある。
【0069】
概して、別途明示的に示されない限り、本開示の全体を通じて使用される「〜ように構成された論理」という語句は、少なくとも部分的にハードウェアで実装される態様をもたらすように意図されており、ハードウェアとは独立したソフトウェアのみの実装に当てはまるように意図されていない。また、様々なブロックの構成された論理または「〜ように構成された論理」は、特定の論理ゲートまたは論理要素に限定されず、概して、(ハードウェアかまたはハードウェアとソフトウェアとの組合せかのどちらかによって)本明細書において説明される機能を実行する能力を指すことが理解されるであろう。したがって、様々なブロックに示される構成された論理または「〜ように構成された論理」は、「論理」という語を共有するにもかかわらず、必ずしも論理ゲートまたは論理要素として実装されない。様々なブロックの論理の間のその他のインタラクションまたは協力が、以下でより詳細に説明される態様を考察することにより当業者に明らかになるであろう。
【0070】
様々な実装形態が、
図4に示されるサーバ400などの様々な市販のサーバデバイスのいずれかで実装され得る。一例において、サーバ400は、上述のIoTサーバ170の1つの例示的な構成に対応する可能性がある。
図4において、サーバ400は、揮発性メモリ402およびディスクドライブ403などの大容量不揮発性メモリに結合されたプロセッサ401を含む。サーバ400は、プロセッサ401に結合されたフロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ406も含む可能性がある。サーバ400は、その他のブロードキャストシステムのコンピュータおよびサーバまたはインターネットに結合されたローカルエリアネットワークなどのネットワーク407とのデータ接続を確立するためにプロセッサ401に結合されたネットワークアクセスポート404も含む可能性がある。
【0071】
図3に関連して、
図4のサーバ400は、通信デバイス300の1つの例示的な実装を示し、それによって、情報を送信および/または受信するように構成された論理305は、ネットワーク407と通信するためにサーバ400によって使用されるネットワークアクセスポイント404に対応し、情報を処理するように構成された論理310は、プロセッサ401に対応し、情報を記憶するための論理の構成315は、揮発性メモリ402、ディスクドライブ403、および/またはディスクドライブ406の任意の組合せに対応することが理解されるであろう。情報を提示するように構成された任意の論理320およびローカルユーザ入力を受信するように構成された任意の論理325は、
図4に明示的に示されておらず、サーバ400に含まれる可能性があり、または含まれない可能性がある。したがって、
図4は、
図2AのようなIoTデバイスの実装に加えて、通信デバイス300がサーバとして実装され得ることを示すのに役立つ。
【0072】
IoTネットワークまたは環境においては、強化された機能が、2つ以上のIoTデバイスが互いに物理的にごく近くにあるかどうかに関する知識に基づいて特定の使用事例において得られる可能性がある。本明細書において使用されるとき、物理的にごく近くとは、IoTデバイスが互いに同じ部屋の中にあるか、または同じ部屋の中で互いに数フィート離れているか、またはさらにはそれぞれのIoTデバイスの間に壁が介在するようにして異なる部屋の中で互いに数フィート離れていることに対応する可能性がある。
【0073】
図5は、本明細書において説明されるテクノロジーの実装によるIoT環境500の例を示す。
図5において、IoT環境500は、会議室505、複数の事務室510〜535、およびキッチン540を有する事務所空間である。事務所空間内で、IoTデバイス1(たとえば、ビデオプロジェクタ)およびIoTデバイス2(たとえば、セル電話またはタブレットコンピュータなどのハンドセットデバイス)が、会議室505に位置付けられ、IoTデバイス3(たとえば、セル電話またはタブレットコンピュータなどのハンドセットデバイス)が、事務室510内に位置付けられる。また、IoTデバイス4(たとえば、サーモスタット)、IoTデバイス5(たとえば、ミキサ)、IoTデバイス6(たとえば、冷蔵庫)、およびIoTデバイス7(たとえば、従業員の昼休みにその従業員によって操作されるセル電話またはタブレットコンピュータなどのハンドセットデバイス)が、キッチン540内に位置付けられる。空調ユニット545も、会議室505内に位置付けられる。理解されるように、
図5のIoT環境500は事務所を対象とするが、IoT環境の多くのその他の構成もあり得る(たとえば、住宅、商店、車両、スタジアムなど)。
【0074】
通常、多くのデバイスが、グラフィカルユーザインターフェース(GUI)かまたはプログラムのインターフェースかのどちらかを公開する。GUIのみを公開するデバイスは、プログラムするのが非常に難しい。各IoTデバイスは、独自の属性および/またはプロパティを有する傾向がある。例示するために、(
図1に示された)コンピュータ120のユーザがコンピュータ120を用いて空調ユニット545の温度を制御したいと仮定する。空調ユニット545の種類、モデル、製造業者などによって、空調ユニット545の温度制御プロパティは変わる。コンピュータ120は、空調ユニット545の各モデルに関する異なるプロパティを知らない可能性がある。
【0075】
本明細書において説明される1つまたは複数の実装においては、空調ユニット545のあり得るモデルのプロパティおよび行為が、空調ユニット545の公開されたグラフィカルユーザインターフェース(GUI)からプログラムのインターフェース(たとえば、およびアプリケーションプログラムインターフェース(API))にマッピングされる。このようにして、空調ユニット545は、製造業者、モデルなどが何であれ、コンピュータ120によって制御され得る。1つまたは複数の実装において、マッピングは、
図4に示されたサーバ400において実行される。代替的な実装において、マッピングは、コンピュータ120において実行される。
【0076】
図6は、本明細書において説明される1つまたは複数の実装によるIoTデバイスを制御するためのメッセージフロー600を示す図である。示される実装は、コンピュータ602、ピアツーピア(P2P)サービスモジュール604、IoTデバイス608、およびセマンティックマッパ610を含む。メッセージフロー600は、IoTデバイス608の(上述の)遠隔で公開された汎用的なプロパティにセマンティックタグを割り当てることに関連して本明細書において説明される。
【0077】
1つまたは複数の実装において、コンピュータ602は、
図1に示されたコンピュータ120と同様である。したがって、コンピュータ602は、パーソナルコンピュータ(PC)、PDA、スマートフォン、タブレットなどである可能性がある。
【0078】
1つまたは複数の実装において、P2Pサービスモジュール604は、関連するIoTデバイスがコンピュータ602によって理解されるように意図されていない方法でそれらのデバイスの存在をブロードキャストすることを可能にするユーザインターフェースサービスである。その代わりに、ブロードキャストは、たとえば、テキスト、画像、動画、音声、感触などの人が読める通信の形態でユーザに対して表示され、ユーザによって理解され、IoTデバイス608のユーザにとって意味があるように意図される。つまり、コンピュータ602は、メッセージコード、またはメッセージがマシンツーマシンおよび/もしくはプログラムの通信において通常利用する種類の識別情報をブロードキャストが持たないので、何がIoTデバイス608によってブロードキャストされているのか理解しない。1つまたは複数の実装において、P2Pサービスモジュール604は、ハイパーテキストマークアップ言語(HTML)またはその他のユーザインターフェーステクノロジーを用いるユーザインターフェースである。
【0079】
P2Pサービスモジュールとして示されるが、実装はそのように限定されない。たとえば、その他の好適なテクノロジーは、ハブ-スポークモジュール、クライアント-サーバモジュール、または2つのシステムの間で通信することができる任意のその他のモジュールを含む。
【0080】
1つまたは複数の実装において、P2Pサービス604は、IoTデバイス608のユーザインターフェースを調べ、IoTデバイス608に関連するプロパティおよび行為を構築するようにプログラミングされる。1つのプロパティは、IoTデバイス608のつまみ(たとえば、オーブンの温度つまみおよび/またはタイマつまみ、洗濯機または食洗機のサイクルつまみなど)である可能性がある。1つの行為は、IoTデバイス608の所与のプロパティに関連する行為を選択するために使用されるボタン(たとえば、ラジオボタン)またはスイッチである可能性がある。
【0081】
たとえば、IoTデバイス608が洗濯機である実装においては、ユーザがどの洗濯サイクルを使用すべきか、たとえば、パーマネントプレス、コットンなどを選択するプロパティが存在する。この例示的な実装において、ユーザは、ユーザが洗濯機のサイクルを選択し得るスイッチ、ラジオボタンなどをコンピュータ602上で提示される。そのとき、ボタンまたはスイッチに関連する行為は、「すぐに開始」である可能性がある。P2Pサービス604は、ユーザがアクセスするためにコンピュータ602上のプロパティ(すなわち、つまみ)および行為(すなわち、「すぐに開始」)をどのようにして実行すべきかをコンピュータ602に知らせる情報を含む。情報は、どの種類のウィジェットを描画すべきか、どのようにしてウィジェットにラベルを付けるべきか、ウィジェットはどの色であるべきかなどを含み得る。この情報は、セマンティックマッパ610がIoTデバイス608などのIoTデバイスのプロパティに関する有効な値の正規化されたバージョンを提供することを可能にする。正規化されたバージョンは、セマンティックタグである可能性がある。
【0082】
1つまたは複数の実装において、IoTデバイス608は、
図1に示されたIoTデバイスなどの任意の好適なIoTデバイスである可能性がある。これらは、テレビ110、空調室外機112および/または545、サーモスタット114、冷蔵庫116、ならびに洗濯機および乾燥機118を含むがこれらに限定されない。
【0083】
1つまたは複数の実装において、セマンティックマッパ610は、1つまたは複数のIoTデバイス608のためのユーザインターフェースをアプリケーションプログラミングインターフェース(API)などのプログラムのインターフェースにマッピングする。これは、セマンティックマッパ610にセマンティックタグをIoTデバイス608の遠隔で公開された汎用的なプロパティに割り当てさせることによって実現される。遠隔で公開された汎用的なプロパティは、IoTデバイス608のプロパティを設定しおよび/または得るための汎用的なプログラムのインターフェースである可能性がある。加えて、セマンティックマッパ610は、IoTデバイス608に関するプロパティの有効な値の正規化されたバージョンをコンピュータ602に提供する。
【0084】
コンピュータ602とは分かれているものとして示されているが、セマンティックマッパ610は、コンピュータ120のローカルにあるかまたは外部のサーバ上のクラウド内にあるかのどちらかであるマッピングデータベースである可能性がある。1つまたは複数の実装において、セマンティックマッパ610は、セマンティックマッパ610がIoTデバイス608とインタラクションするように制御され得るようにIoTデバイスのプロパティをプログラムのインターフェース(たとえば、API)にマッピングすることができるコンピュータ120、サーバ170、ソフトウェアライブラリ(図示せず)、またはその他の好適なエンティティである可能性がある。
【0085】
1つまたは複数の実装を示すために、IoTデバイス608が空調ユニットであり、アプリケーションライタがIoTデバイス608の温度を自動的に変えるアプリケーションをコンピュータ602上で記述したと仮定する。また、セマンティックマッパ610が、空調ユニットの温度設定を制御するためのプロパティに関する予め合意されたセマンティックタグが「org.alljoyn.cpsSemanticTags.acTempControl」であるというドキュメントを出版(publish)したと仮定する。コンピュータ602上のアプリケーションは、セマンティックマッパ610に空調ユニットの名前を送信し、「org.alljoyn.cpsSemanticTags.acTempControl」に関するマッピングを要求する。セマンティックマッパ610からの応答は、コンピュータ602上のアプリケーションに温度プロパティの正規化されたバージョンを知らせる。たとえば、セマンティックマッパ610は、「thermometerstand」と呼ばれるプロパティを使用するようにコンピュータ602上のアプリケーションに知らせる。これ以降、コンピュータ602上のアプリケーションは、標準的な方法で、ただし、ユーザに対してユーザインターフェースを表示する必要なしにIoTデバイス608上のユーザインターフェースとインタラクションする。ユーザは、コンピュータ602上でユーザインターフェースを見ることができる。
【0086】
図6のメッセージフロー600に戻ると、時点618において、IoTデバイス608が、そのIoTデバイス608の存在が好適な発見プロトコルを介して発見され得るようにするなど、任意の知られている方法でそのIoTデバイス608の存在を告知する。1つまたは複数の実装において、IoTデバイス608は、テキスト、画像、動画、音声、感触などの人が読める通信を用いてそのIoTデバイス608の存在をブロードキャストする。ブロードキャストは、コンピュータ602によって理解されるように意図されていない。その代わりに、ブロードキャストは、ユーザに対して表示され、ユーザによって理解され、IoTデバイス608のユーザにとって意味があるように意図される。つまり、コンピュータ602は、メッセージコード、またはメッセージが通常のマシンツーマシンおよび/もしくはプログラムの通信において有する種類の識別情報をブロードキャストが持たないので、何がIoTデバイス608によってブロードキャストされているのか理解しない。
【0087】
示された例において、IoTデバイス608は、IoTデバイス608のモデルがAcme1234モデルであるとき、「About announcement -- Model = Acme1234」テキストメッセージをブロードキャストする。
【0088】
時点620において、コンピュータ602が、IoTネットワークを介して告知を取得する。1つまたは複数の実装において、コンピュータ602は、「About announcement -- Model = Acme1234」テキストメッセージを用いる告知のブロードキャストを取得する。
【0089】
時点622において、コンピュータ602が、IoTデバイス608に関連する温度プロパティに関するセマンティックタグをセマンティックマッパ610に要求する。1つまたは複数の実装において、コンピュータ620は、IoTネットワークを介して「findProperty(semanticTag"acTempControl"model = Acme1234」テキストメッセージをセマンティックマッパ610に送信することによってIoTデバイス608に関連する温度プロパティに関するセマンティックタグを要求する。
【0090】
時点624において、セマンティックマッパ610が、Acme1234空調ユニットに関する温度プロパティが「thermometerstand」と呼ばれると応答する。1つまたは複数の実装においては、温度プロパティの要求に応答して、セマンティックマッパ610が、「findProperty returns to use the property with the name 'thermometerstand'」テキストメッセージをコンピュータ602上のアプリケーションに返す。セマンティックマッパ610は、データベース内でマッピングを探し、IoTネットワークを介して応答し得る。
【0091】
時点626において、コンピュータ602上のアプリケーションが、任意の好適なネットワークプロトコルを用いてIoTデバイス608のためのプログラムのインターフェースを取り出す。1つまたは複数の実装において、コンピュータ602は、「getTheControlPanel」テキストメッセージをIoTデバイス608に送信することによってIoTデバイス608のためのプログラムのインターフェースを取り出す。
【0092】
時点628において、コンピュータ602上のアプリケーションが、たとえば、ネットワークプロトコルのメッセージを解析することによってIoTデバイス608上の温度プロパティを突き止める。1つまたは複数の実装において、コンピュータ602上のアプリケーションは、「find the property called 'thermometerstand'」テキストメッセージを用いてIoTデバイス608上の温度プロパティを突き止める。
【0093】
時点630において、コンピュータ602上のアプリケーションが、たとえば、任意の好適なネットワークプロトコルを用いてIoTデバイス608上で温度を設定する。1つまたは複数の実装において、コンピュータ602上のアプリケーションは、「set the property」テキストメッセージをIoTデバイス608に送信することによってIoTデバイス608上で温度を設定する。
【0094】
図7は、本明細書において説明されるテクノロジーの1つまたは複数の実装によるセマンティックマッピングアーキテクチャ700の高レベルの図である。示されたアーキテクチャ700は、コンピュータ602、ピアツーピア(P2P)サービスモジュール604、IoTデバイス608、およびセマンティックマッパ610を含む。示された実装において、コンピュータ602、ピアツーピア(P2P)サービスモジュール604、IoTデバイス608、およびセマンティックマッパ610は、同じデバイス内にあるように見える。しかし、実装は、そのように限定されない。たとえば、コンピュータ602は、1つのデバイス上に置かれる可能性があり、ピアツーピア(P2P)サービスモジュール604およびIoTデバイス608は、別のデバイス上に置かれる可能性があり、セマンティックマッパ610は、コンピュータ602と一緒に置かれるかまたは第3のデバイス上に置かれる可能性がある。
【0095】
1つまたは複数の実装において、コンピュータ602は、電話、タブレットコンピュータ、「ファブレット(電話+タブレット)」コンピュータ、スマートフォン、ラップトップコンピュータなどの任意のコンピューティングデバイスである可能性がある。示されたコンピュータ602は、メッセージフロー600を実施するためにピアツーピア(P2P)サービスモジュール604、IoTデバイス608、およびセマンティックマッパ610と通信することができる。
【0096】
1つまたは複数の実装において、ピアツーピア(P2P)サービスモジュール604は、オフザシェルフP2Pモジュールである可能性がある。示されたピアツーピア(P2P)サービスモジュール604は、IoTデバイス608、セマンティックマッパ610、およびコンピュータ602と通信することができる。
【0097】
1つまたは複数の実装において、セマンティックマッパ610は、任意の好適なテーブルフォーマットで実装され得る。
【0098】
図8は、本明細書において説明されるテクノロジーの実装による、モノのインターネット(IoT)デバイスから1つまたは複数のインターフェースへのマッピングデータを実装するのに好適なアーキテクチャ800の高レベルのブロック図である。示された実装において、1つまたは複数のコンピューティングデバイスである可能性があるアーキテクチャ800は、IoTデバイスの存在の人が読める指示(802)を観測する。IoTデバイスは、関連する情報を含む可能性がある。
【0099】
IoTデバイスの存在の人が読める指示(802)は、ユーザインターフェース804、アプリケーションレイヤインターフェース806、および/またはプレゼンテーションレイヤインターフェースもしくはインフラストラクチャ808によって観測される可能性がある。
【0100】
IoTデバイスの存在の人が読める指示(802)を観測することに応じて、アーキテクチャ800は、合意されたセマンティックタグを関連する情報に割り当てる可能性があり、予め合意されたセマンティックタグがIoTデバイスを制御するために使用されることを可能にする。
【0101】
1つまたは複数の実装において、予め合意されたセマンティックタグは、ディスプレイ810上で提示される可能性がある。たとえば、文字列「CYCLE_DONE」が、洗濯機がその洗濯機のサイクルを終えたことを示す予め合意されたセマンティックタグである場合、1つまたは複数の家庭用電化製品(たとえば、洗濯機、食洗機、乾燥機など)が、特定のバイト列「CYCLE_DONE」を有するメッセージを表示するように予めプログラミングされ得る。
【0102】
様々な態様が、人が読めるメッセージからモノのインターネット(IoT)デバイスのためのマシンツーマシンインターフェースへのセマンティックマッピングの例示的な実装に関する特定の例を示すための以降の説明および関連する図面において開示される。代替的な実装は、本開示を読むと当業者に明らかになり、本開示の範囲または精神から逸脱することなく構築され、実施され得る。加えて、よく知られている要素は、本明細書において開示される態様および実装の関連する詳細を曖昧にしないように詳細に説明されないか、または省略される可能性がある。
【0103】
語「例示的な」は、本明細書においては「例、具体例、または事例としての役割を果たす」ことを表すために使用される。本明細書において「例示的」と記載されたいずれの実装も、必ずしもその他の実装よりも好ましいまたは有利であると解釈されるべきではない。同様に、用語「実装」は、すべての実装が検討された特徴、利点、または動作のモードを含むことを必要としない。
【0104】
本明細書において使用される用語は、特定の実装を説明するに過ぎず、本明細書において開示されたいずれの実装も限定すると考えられるべきでない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、文脈がそうでないことをはっきりと示さない限り複数形も含むように意図される。用語「含む(comprises)」、「含む(comprising)」、「含む(includes)」、および/または「含む(including)」は、本明細書において使用されるとき、言及された特徴、完全体(integer)、ステップ、操作、要素、および/または構成要素の存在を指定するが、1つまたは複数のその他の特徴、完全体、ステップ、操作、要素、構成要素、および/またはこれらのグループの存在または追加を除外しないことがさらに理解されるであろう。
【0105】
さらに、多くの態様が、たとえば、コンピューティングデバイスの要素によって実行される一連の行為によって説明される。本明細書において説明される様々な行為が特定の回路(たとえば、特定用途向け集積回路(ASIC))、1つもしくは複数のプロセッサによって実行されるプログラム命令、またはこれら両方の組合せによって実行され得ることは、認められるであろう。加えて、本明細書において説明されるこれらの一連の行為は、実行されると関連するプロセッサに本明細書において説明される機能を実行させるコンピュータ命令の対応する組を記憶する任意の形態のコンピュータ可読ストレージ媒体内に完全に具現化されると考えられ得る。したがって、本開示の様々な態様は、いくつかの異なる形態で具現化される可能性があり、それらの異なる形態のすべては、特許請求の対象の範囲内にあると考えられた。さらに、本明細書において説明される態様のそれぞれに関して、対応する形態の任意のそのような態様は、たとえば、説明される行為を実行する「ように構成された論理」として本明細書において説明される可能性がある。
【0106】
当業者は、情報および信号が様々な異なる技術および技法のうちのいずれかを使用して表され得ることを理解するであろう。たとえば、上の説明を通して言及される可能性があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁気的粒子、光場もしくは光学的粒子、またはこれらの任意の組合せによって表され得る。
【0107】
さらに、当業者は、本明細書において開示された態様に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムのステップが、電子的なハードウェア、コンピュータソフトウェア、またはそれら両方の組合せとして実装される可能性があることを理解するであろう。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能の観点で上で説明された。そのような機能がハードウェアとして実装されるかまたはソフトウェアとして実装されるかは、システム全体に課された特定の用途および設計の制約による。当業者は、説明された機能をそれぞれの特定の用途のために様々な方法で実装し得るが、そのような実装の判断は、本開示の範囲から逸脱すると解釈されるべきでない。
【0108】
本明細書において開示された態様に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくはその他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェア構成要素、または本明細書において説明された機能を実行するように設計されたこれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサの可能性があるが、代替として、プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、または状態機械の可能性がある。また、プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意のその他のそのような構成として実装され得る。
【0109】
本明細書において開示された態様と関連して説明された方法、シーケンス、および/またはアルゴリズムは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはこの2つの組合せで具現化される可能性がある。ソフトウェアモジュールは、RAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意のその他の形態のストレージ媒体に存在する可能性がある。例示的なストレージ媒体は、プロセッサがストレージ媒体から情報を読むことができ、ストレージ媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、ストレージ媒体は、プロセッサに一体化される可能性がある。プロセッサおよびストレージ媒体は、ASIC内に存在する可能性がある。ASICは、IoTデバイス内に存在する可能性がある。代替として、プロセッサおよびストレージ媒体は、ユーザ端末内のディスクリート構成要素として存在する可能性がある。
【0110】
1つまたは複数の例示的な態様において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶または送信され得る。コンピュータ可読媒体は、ある場所から別の場所へとコンピュータプログラムを転送することを容易にする任意の媒体を含むコンピュータストレージ媒体と通信媒体との両方を含む。ストレージ媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体である可能性がある。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを運ぶかもしくは記憶するために使用可能であり、コンピュータによってアクセス可能である任意のその他の媒体を含み得る。また、当然、任意の接続がコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を用いてウェブサイト、サーバ、またはその他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書において使用されるとき、ディスク(disk)およびディスク(disc)は、CD、レーザディスク(laser disc)、光ディスク(optical disc)、DVD、フロッピー(登録商標)ディスク(floppy disk)、およびブルーレイディスク(Blu-ray(登録商標) disc)を含み、ディスク(disk)が、通常、磁気的におよび/またはレーザを用いて光学的にデータを再生する。上記のものの組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【0111】
上述の開示は本開示の説明的な態様を示すが、添付の特許請求の範囲で定義された本開示の範囲を逸脱することなしに本明細書において種々の変更および修正がなされ得ることに留意されたい。本明細書において説明された本開示の態様による方法の請求項の機能、ステップ、および/または動作は、必ずしもいずれかの特定の順序で実行されない。さらに、本開示の要素が単数形で説明されるか、または特許請求の範囲に記載される可能性があるが、単数形への限定が明示的に述べられない限り、複数も想定される。