(57)【特許請求の範囲】
【請求項１】
第１のコンピュータネットワーク内で動作している仮想デバイスを使用して第２のコンピュータネットワーク内で動作する低電力デバイスの代わりにサービスを行うコンピュータ実行方法であって、
前記仮想デバイスにより、前記低電力デバイスからデバイスデータレポートおよびデバイスディスクリプタを受信することと、
前記仮想デバイスにより、前記受信されたデバイスデータレポートおよび前記受信されたデバイスディスクリプタを前記仮想デバイスに結合されているコンピュータ可読メモリ内に格納することと、
前記仮想デバイスにより、低電力デバイス出力予測のサービス要求を第３のコンピュータネットワーク内で動作する要求側デバイスから受信することと、
前記仮想デバイスにより、前記低電力デバイスが前記低電力デバイス出力予測のサービス要求に応答するのに利用不可能であることを前記受信されたデバイスディスクリプタが示していると判定することと、
前記仮想デバイスにより、前記受信されたデバイスデータレポートに基づき前記低電力デバイス出力予測のサービス要求への応答をするために低電力デバイス出力予測情報を生成することとを含むコンピュータ実行方法。
【請求項２】
前記仮想デバイスにより、前記受信された低電力デバイス出力予測のサービス要求に応答して応答メッセージを前記要求側デバイスに送信することをさらに含む請求項１に記載の方法。
【請求項３】
前記低電力デバイス出力予測のサービス要求は、過去の低電力デバイスデータおよび／または予測される将来の低電力デバイスデータの生成の１つまたは複数に対する要求を含む請求項２に記載の方法。
【請求項４】
前記低電力デバイス出力予測のサービス要求は、低電力デバイスデータのグラフィック表示の生成に対する要求を含む請求項２に記載の方法。
【請求項５】
前記低電力デバイスに関連付けられている前記デバイスディスクリプタは、低電力デバイスタイプ値、前記低電力デバイス上で利用可能な少なくとも１つのサービスを示す表示情報、前記低電力デバイスが臨界電力状態にあることを示す表示情報、および／または前記低電力デバイスが電源オフ状態にあることを示す表示情報のうちの１つまたは複数を含む請求項１に記載の方法。
【請求項６】
前記要求側デバイスは、携帯電話、パーソナルコンピュータ、ナビゲーションコンピュータ、およびビデオゲームシステムのうちの１つまたは複数である請求項１に記載の方法。
【請求項７】
前記仮想デバイスは、仮想マシン内で作動するオペレーティングシステムで実行される請求項１に記載の方法。
【請求項８】
前記仮想デバイスは、オブジェクト指向クラスのインスタンスである請求項１に記載の方法。
【請求項９】
仮想デバイスを使用して低電力デバイスの代わりに要求側デバイスからのデータ要求を実行するコンピュータ実行方法であって、前記仮想デバイスはコンピュータ上で動作し、
前記仮想デバイスにより、前記データ要求を前記要求側デバイスから受信することであって、前記受信されたデータ要求が、前記低電力デバイスからのアプリケーションデータの要求を含む、ことと、
前記仮想デバイスにより、前記仮想デバイスが前記低電力デバイスの代わりに前記受信されたデータ要求に応答するように構成されていると判定することと、
前記仮想デバイスにより、前記仮想デバイスに結合されているデータベースに低電力デバイスデータがいつ受信されたかを問い合わせることと、
前記仮想デバイスにより、前記問い合わせの結果に基づいて、前記データベースから前記低電力デバイスデータを取り出すことと、
前記仮想デバイスにより、前記取り出された低電力デバイスデータに基づきデータ応答を生成することと、
前記仮想デバイスにより、前記データ応答を前記要求側デバイスに送信することとを含むコンピュータ実行方法。
【請求項１０】
前記受信されたデータ要求は、処理要求をさらに含み、前記生成されたデータ応答は、前記処理要求にさらに基づく請求項９に記載の方法。
【請求項１１】
処理命令は、過去の低電力デバイスデータおよび／または予測される将来の低電力デバイスデータに対する要求の１つまたは複数を含む請求項９に記載の方法。
【請求項１２】
処理命令は、低電力デバイスデータのグラフィック表示の要求を含む請求項９に記載の方法。
【請求項１３】
前記仮想デバイスは、仮想マシン内で作動するオペレーティングシステムで実行される請求項９に記載の方法。
【請求項１４】
前記仮想デバイスは、オブジェクト指向クラスのインスタンスである請求項９に記載の方法。
【請求項１５】
前記要求側デバイスは、携帯電話、パーソナルコンピュータ、ナビゲーションコンピュータ、およびビデオゲームシステムのうちの１つまたは複数である請求項９に記載の方法。
【請求項１６】
仮想デバイスコンピューティングシステムであって、
第２のコンピュータネットワーク内で動作する１つまたは複数の低電力デバイスの代わりに要求側デバイスから低電力デバイス出力予測のサービス要求を受信するように構成され、前記低電力デバイス出力予測のサービス要求を１つまたは複数の仮想デバイスに送信するように構成されている、第１のコンピュータネットワーク内で動作する、仮想デバイスコーディネータと、
前記第１のコンピュータネットワークに結合され、前記１つまたは複数の低電力デバイスに関連付けられている前記低電力デバイス出力予測のサービス要求への応答をするために生成される低電力デバイス出力予測情報を生成するためのデバイスデータレポートを格納するように構成されているコンピュータ可読メモリとを備える仮想デバイスコンピューティングシステム。
【請求項１７】
前記仮想デバイスコーディネータは、第１のオペレーティングシステムで動作するように構成され、前記１つまたは複数の仮想デバイスは、第２のオペレーティングシステムで動作するように構成される請求項１６に記載のシステム。
【請求項１８】
前記第１のオペレーティングシステムおよび前記第２のオペレーティングシステムは、第１のコンピュータ上で作動する仮想マシン環境内で実行するように適合される請求項１７に記載のシステム。
【請求項１９】
前記第１のオペレーティングシステムは、第１のコンピュータ上で実行するように適合され、前記第２のオペレーティングシステムは、第２のコンピュータ上で実行するように適合される請求項１８に記載のシステム。
【請求項２０】
第１のコンピュータネットワーク内で動作する仮想デバイスを使用して第２のコンピュータネットワーク内で動作する低電力デバイスの代わりにサービスを行うためのコンピュータ可読媒体であって、
前記低電力デバイスからデバイスデータレポートおよびデバイスディスクリプタを受信することと、
前記受信されたデバイスデータレポートおよび前記受信されたデバイスディスクリプタを前記仮想デバイスに結合されているコンピュータ可読メモリ内に格納することと、
第３のコンピュータネットワーク内で動作する要求側デバイスから低電力デバイス出力予測のサービス要求を受信することと、
前記低電力デバイスが前記低電力デバイス出力予測のサービス要求に応答するのに利用不可能であることを前記受信されたデバイスディスクリプタが示していると判定することと、
前記デバイスデータレポートに基づき前記低電力デバイス出力予測のサービス要求への応答をするために低電力デバイス出力予測情報を生成することとを
含む方法をコンピュータに実行させるためのコンピュータ実行可能命令を保持するコンピュータ可読媒体。
【請求項２１】
前記仮想デバイスにより、前記受信された低電力デバイス出力予測のサービス要求に応答して応答メッセージを前記要求側デバイスに送信することをさらに含む前記方法をコンピュータに実行させるためのコンピュータ実行可能命令を保持する請求項２０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれている、２００９年７月２１日に出願された米国特許出願第１２／５０６，３９１号、名称「Ｐｅｒｆｏｒｍｉｎｇ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｂｅｈａｌｆ  ｏｆ  Ｌｏｗ−Ｐｏｗｅｒ  Ｄｅｖｉｃｅｓ」の利益を主張するものである。
【０００２】
本出願は、２００９年７月２１日に出願した米国特許出願第１２／５０６，３８３号、名称「Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｆｏｒ  Ｌｏｗ−Ｐｏｗｅｒ  Ｎｅｔｗｏｒｋｓ」に関するものである。
【０００３】
本開示は、一般に、デバイスおよびネットワークの仮想化に関するものであり、より具体的には、ネットワーク内で動作している低電力（「ＬＰ」）デバイスに拡張機能を付与することに関するものである。
【背景技術】
【０００４】
ＬＰデバイスは、典型的には、家庭または商業環境にセンサーおよび制御機能を提供することを設計されている。これらのデバイスは、一般に、デバイス同士の無線ネットワークを介した通信により、ホームオートメーション、セキュリティ、およびモニタリングなどの機能を提供する。
【発明の概要】
【０００５】
本開示では、第１のコンピュータネットワーク内で動作する仮想デバイスを使用して第２のコンピュータネットワーク内で動作する低電力デバイスの代わりにサービスを行うコンピュータ実行方法の概要を説明する。いくつかの例示的な方法は、低電力デバイスからデバイスデータレポートおよびデバイスディスクリプタを仮想デバイスによって受信することと、受信されたデバイスデータレポートおよび受信されたデバイスディスクリプタを仮想デバイスに結合されたコンピュータ可読メモリ内に仮想デバイスによって格納することとを含むことができる。仮想デバイスは、第３のコンピュータネットワーク内で動作する要求側デバイスから低電力デバイス出力予測のサービス要求を受信し、低電力デバイス出力予測のサービス要求への応答に対して低電力デバイスが利用不可能であることを受信されたデバイスディスクリプタが示していると判定する。仮想デバイスは、受信されたデバイスデータレポートに基づき低電力デバイス出力予測のサービス要求への応答をするために低電力デバイス出力予測情報を生成する。
【０００６】
本開示では、コンピュータ上で動作する仮想デバイスを使用して低電力デバイスの代わりに要求側デバイスからのデータ要求を処理するコンピュータ実行方法の概要も説明する。いくつかの例示的な方法は、要求側デバイスからデータ要求を仮想デバイスによって受信することを含みうる。受信されたデータ要求は、低電力デバイスへのアプリケーションデータの要求を含むことができる。仮想デバイスは、受信されたデータ要求に低電力デバイスの代わりに応答するように仮想デバイスが構成されていると判定し、仮想デバイスに結合されているデータベースに低電力デバイスデータがいつ受信されたかを問い合わせ、その問い合わせの結果に基づいて、データベースから低電力デバイスデータを取り出す。仮想デバイスは、取り出された低電力デバイスデータに基づきデータ応答を生成し、そのデータ応答を要求側デバイスに送信する。
【０００７】
本開示では、仮想デバイスコンピューティングシステムの概要も説明する。いくつかの例示的な仮想デバイスコンピューティングシステムは、第１のコンピュータネットワーク内で動作する仮想デバイスコーディネータ（ｖｉｒｔｕａｌ  ｄｅｖｉｃｅ  ｃｏｏｒｄｉｎａｔｏｒ）および第１のコンピュータネットワークに結合されているコンピュータ可読メモリを含むことができる。仮想デバイスコーディネータは、第２のコンピュータネットワーク内で動作する１つまたは複数の低電力デバイスの代わりに要求側デバイスから低電力デバイス出力予測のサービス要求を受信するように構成され、低電力デバイス出力予測のサービス要求を１つまたは複数の仮想デバイスに送信するように構成される。コンピュータ可読メモリは、１つまたは複数の低電力デバイスに関連付けられている低電力デバイス出力予測のサービス要求への応答をするために生成される低電力デバイス出力予測情報を生成するためのデバイスデータレポートを格納するように構成される。
【０００８】
本開示では、第１のコンピュータネットワーク内で動作する仮想デバイスを使用して第２のコンピュータネットワーク内で動作する低電力デバイスの代わりにサービスを行うためのコンピュータ可読媒体の概要も説明する。いくつかの例示的なコンピュータ可読媒体は、低電力デバイスからデバイスデータレポートおよびデバイスディスクリプタを受信することと、受信されたデバイスデータレポートおよび受信されたデバイスディスクリプタを仮想デバイスに結合されたコンピュータ可読メモリ内に格納することとを含む方法をコンピュータに実行させるためのコンピュータ実行可能命令を保持するコンピュータ可読媒体を含むことができる。低電力デバイス出力予測のサービス要求は、第３のコンピュータネットワーク内で動作する要求側デバイスから受信される。受信されたデバイスディスクリプタは、低電力デバイス出力予測のサービス要求への応答に対して低電力デバイスが利用不可能であることを示していると判定され、デバイスデータレポートに基づく低電力デバイス出力予測のサービス要求への応答をするために低電力デバイス出力予測情報が生成される。
【０００９】
前述の概要は、例示的なものにすぎず、いっさい制限することを意図されていない。上述の例示的な態様、実施形態、および特徴に加えて、図面を参照し、以下の詳細な説明を参照することによってさらなる態様、実施形態、および特徴も明らかになるであろう。
【００１０】
本開示の前記の特徴および他の特徴は、付属の図面を参照することで、以下の説明および付属の請求項からより完全に明らかになるであろう。これらの図面は本開示による複数の実施形態のみを示し、したがって本開示の範囲を制限するものであると考えるべきでないことを理解したうえで、付属の図面を用いてさらに具体的に、詳細に本開示を説明する。
【図面の簡単な説明】
【００１１】
【図１】仮想ネットワーキングシステムの一例を示すシステム図である。
【図２】仮想ネットワーキングシステムの一例を示すシステム図である。
【図３】ＬＰデバイスコンピューティングシステムから仮想デバイスコンピューティングシステムに受け渡されるデバイスディスクリプタファイルの一例を示す図である。
【図４】ＬＰデバイスコンピューティングシステムから仮想デバイスコンピューティングシステムに受け渡されるパワーディスクリプタファイルの一例を示す図である。
【図５】ＬＰネットワークに対し仮想デバイスネットワークを作成するためのプロセスの一例を示すシステム図である。
【図６】ＬＰデバイスによって提供される情報に基づき仮想デバイスおよびアプリケーションを作成するための例示的なプロセスを示すシーケンス図である。
【図７】コンピューティングデバイスからの要求に基づき仮想デバイスを動的に作成するための例示的なプロセスを示すシーケンス図である。
【図８】複数の仮想デバイスによって提供される情報に基づき仮想デバイスセットを作成するための例示的なプロセスを示すシーケンス図である。
【図９】ＬＰデバイスから仮想デバイスを分離するための例示的なプロセスを示すシーケンス図である。
【図１０】仮想ネットワーキングシステムの代替的構成の一例を示すシステム図である。
【図１１】仮想ネットワーキングシステムの代替的構成の一例を示すシステム図である。
【図１２】仮想デバイスを使用してＬＰデバイスに対する要求を処理する、電力がＬＰデバイスによってほぼ一定に維持される場合の例示的なプロセスを示すシーケンス図である。
【図１３】仮想デバイスを使用してＬＰデバイスに対する要求を処理する、ＬＰデバイスに定期的に電力が供給される場合の例示的なプロセスを示すシーケンス図である。
【図１４】仮想デバイスを使用してＬＰデバイスに対する要求を処理する、ＬＰデバイスの充電レベルが臨界レベルにある場合の例示的なプロセスを示すシーケンス図である。
【図１５】仮想デバイスを使用して温度予測を生成するための、関連するＬＰデバイスが通信に利用可能でない場合の例示的なプロセスを示すシーケンス図である。
【図１６】仮想デバイスを使用して温度予測を生成するための、関連するＬＰデバイスが通信に利用可能である場合の例示的なプロセスを示すシーケンス図である。
【図１７】すべて本開示の少なくともいくつかの実施形態により配置されている、仮想ネットワーキングシステムの一実装を例示するコンピュータアーキテクチャまたはシステムを示すブロック図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明では、詳細な説明の一部をなす、添付図面が参照される。図面中の類似の記号は、典型的には、文脈上別のものを示していない限り類似のコンポーネントを示す。詳細な説明、図面、および請求項で説明されている例示的な実施形態は、制限することを意図されていない。他の実施形態も利用することができ、また本明細書に提示されている発明対象の精神または範囲から逸脱することなく、他の変更を加えることができる。本明細書で一般的に説明され、また図に例示されているような本開示の態様は、さまざまな異なる構成による配置、置換、組合せ、設計が可能であり、すべて明示的に考察され、本開示の一部をなすことが容易に理解されよう。
【００１３】
統一モデリング言語（「ＵＭＬ」）は、方法およびシステムのモデル化および／または記述に使用することができ、その機能および内部オペレーションの理解を深めるとともに、標準化された表記を使用して外部コンポーネント、システム、および人間とのインターフェースを記述するための基盤を提供する。本明細書で使用されるときに、限定はしないが、ユースケース図、クラス図、およびアクティビティ図を含む、ＵＭＬダイアグラムは、本発明の実施形態を記述する際の補助として働くことが意図されているが、その実装を特定のハードウェアまたはソフトウェアの実施形態に制約するものではない。
【００１４】
本開示は、とりわけ、仮想デバイスコンピューティングシステムの実装を介した低電力（「ＬＰ」）デバイスネットワークの仮想化に関係する方法、装置、コンピュータプログラム、およびシステムに関するものである。本明細書で使用されるような「コンピューティングシステム」という用語は、一般に、（複数可）デバイス内の、または（複数可）デバイス間の通信を円滑に進めるために、ネットワークまたは他の通信媒体またはプロトコルを介して結合もしくは相互接続されている、物理的であろうと仮想的であろうと、１つまたは複数のコンピューティングデバイスを指すものとすることができる。
【００１５】
簡潔に言うと、本開示の複数の実施形態は、デバイス仮想化を通じて関連するＬＰデバイスコンピューティングシステムの機能をサポートし、エミュレートし、および／または補完するように構成されている仮想デバイスコンピューティングシステムを含みうるということである。デバイス仮想化は、一般に、ＬＰデバイスの機能をサポートし、エミュレートし、補完するために１つまたは複数のソフトウェアモジュールを使用することを指すものとすることができる。特定のデバイスに関連付けられているソフトウェアモジュールは、「仮想デバイス」と総称することができる。
【００１６】
図１は、本開示の少なくともいくつかの実施形態による、仮想ネットワーキングシステム１０の一例を示すシステム図である。図１において、仮想デバイスコンピューティングシステム１１０は、ＬＰデバイスコンピューティングシステム１００と通信してＬＰデバイス１０２に関する記述情報を受信するように構成することができる。仮想デバイスコンピューティングシステム１１０は、ＬＰデバイスコンピューティングシステム１００と相互にやり取りするように適合された仮想デバイスコーディネータ１１９を備えることができる。ＬＰデバイス１０２から受信された記述情報に基づき、仮想デバイスコーディネータ１１９は、仮想デバイス１１２を、ＬＰデバイス１０２の機能をサポートし、エミュレートし、補完するように作成または構成することができる。仮想デバイス１１２は、仮想デバイス１１２が、例えば、ＬＰデバイス１０２に関係するデータを格納することができるデータベース１５３に結合されうる。仮想デバイスコンピューティングシステム１１０および／または仮想デバイスコーディネータ１１９は、ＬＰデバイスコンピューティングシステム１００の外部で動作しているコンピューティングデバイス１３０との通信を円滑にすることができるネットワーク１２０に結合することもできる。したがって、ネットワーク１２０を通じて、コンピューティングデバイス１３０は、仮想デバイスコーディネータ１１９との通信を介し仮想デバイス１１２との相互のやり取りを通じてＬＰデバイス１０２に関して、要求を送信し、情報を受信することができる。
【００１７】
図１のＬＰデバイス１０２などのＬＰデバイスは、無線パーソナルエリアネットワーク（ＰＡＮ）上で（例えば、低電力デジタル無線を介して）通信するように構成されうるデバイス、システム、装置、またはアプライアンスとすることができる。ＬＰデバイスは、家庭および商業環境にセンサーおよび制御機能を提供するように適合されうる。ＬＰデバイスの例として、限定はしないが、照明制御モジュール、温度センサーモジュール、温度制御ユニット、エネルギーモニター、水感知センサー、煙および火災検知器、モーション検出器、ビデオ監視ユニット、および高度遠隔制御装置が挙げられる。
【００１８】
ＬＰデバイスは、消費電力が比較的少ないことおよび伝送遅延時間が比較的短いことなどの特徴により、他の無線ネットワーキング技術から区別できる。消費電力の点では、ＬＰデバイスは電池量に依存しうる。そこで、ＬＰデバイスは、最低電力で動作し、アクティブ状態でない場合には「スリープ」モードに入るようにすることで、電池寿命を最大化するように構成されうる。消費電力をさらに制限し、個別のデバイスのコストを低減するために、ＬＰデバイス規格においてＬＰデバイスがサポートすることができる帯域幅におおよその上限を設定することがある。例えば、「ＺｉｇＢｅｅ」規格では、帯域幅を約２５０ｋｂｐｓに制限している。伝送遅延時間に関して、ＬＰデバイス間でメッセージを伝送するのに要する時間が極力短縮されるようにＬＰデバイスを設計することができる。帯域幅に対する制限が設けられ、伝送遅延時間を最短にする目標が設定された場合、ＬＰデバイスは、それらのＬＰデバイスが転送することができるデータの量に関して制約される可能性がある。その結果、ＬＰデバイス間で通信するために使用されるメッセージのサイズは、Ｗｉ−ＦｉおよびＷｉＭａｘなどの他の無線技術に比べて小さなものとなる可能性がある。
【００１９】
なおも図１を参照すると、ＬＰデバイスコンピューティングシステム１００内のＬＰデバイス１０２は、仮想デバイスコーディネータ１１９と通信してＬＰデバイスの動作に関連する情報の送受信を行うように適合されうる。仮想デバイスコーディネータ１１９は、ＬＰデバイスコンピューティングシステム１００から受信された情報（例えば、ディスクリプタファイル）に基づき仮想デバイスコンピューティングシステム１１０を作成し、管理するように構成されているハードウェアとソフトウェアとの組合せとすることができる。いくつかの実施形態では、仮想デバイスコーディネータ１１９は、仮想デバイスコーディネータソフトウェア、コンピュータ可読メモリ、１つまたは複数のネットワーク接続、１つまたは複数の処理ユニット、および／またはデータベースのうちの１つまたは複数を備えることができる。仮想デバイスコーディネータ１１９に割り付けられているコンピューティングリソースは、仮想デバイスコーディネータ１１９によって独占的に使用されるか、またはこれらのリソースをマルチプロセスコンピューティング環境内で共有することができる。いくつかの実施形態では、仮想デバイス１１２は、仮想デバイスコンピューティングシステム１１０に含まれ、仮想デバイスコーディネータ１１９と同じコンピュータ上で実行されうる。他の実施形態では、仮想デバイス１１２および仮想デバイスコーディネータの実行は、２つまたはそれ以上のコンピュータにまたがって分割することができる。
【００２０】
いくつかの実施形態では、仮想デバイスコーディネータ１１９は、ＬＰデバイスコンピューティングシステム１００から受信されたディスクリプタファイルを使用してＬＰデバイス１０２で利用可能な機能をサポートし、エミュレートし、および／または補完する１つまたは複数のソフトウェアモジュールを作成することができる。個別のＬＰデバイスに関連付けられているソフトウェアモジュールは、「仮想デバイス」と総称することができる。したがって、例えば、ＬＰデバイス１０２が温度センサーである場合、仮想デバイス１１２は仮想温度センサーであることができる。仮想デバイス１１２は、ＬＰデバイスアーキテクチャによって生じるハードウェア面の制限を超える高度な機能を提供しうるハードウェア環境において動作するように設計されうる。例えば、仮想デバイス１１２は、ＬＰデバイス１０２に比べてかなり大きなストレージ領域（例えば、図１のデータベース１５３）にアクセスすることができ、また仮想デバイス１１２を実質的に連続的に動作させることが可能な電源を有するものとしてよい。それに加えて、仮想デバイス１１２は、ＬＰデバイス１０２上ではうまく使用することができないプロトコルによって実装されるセキュリティ、認証、変換、構成、および管理に対するソフトウェアおよびハードウェア規格を用いるように適合されうる。
【００２１】
なおも図１を参照すると、ＬＰデバイス１０２は、例えば、温度センサーモジュールであることができる。そのようなデバイスは、規則正しい時間間隔で温度測定結果を決定し、ＬＰデバイスコンピューティングシステム１００を介してそれらの測定結果を他のＬＰデバイス（図１に示されていない）に伝達するように構成されうる。過去の温度測定結果の記録を保持するなどの他の機能は、ＬＰデバイス１０２から利用できない場合がある。このような機能を提供するために、仮想デバイスコーディネータ１１９を、ＬＰデバイス１０２の動作特性を決定するように構成することができ、また仮想デバイスコーディネータ１１９は、それらの特性をサポートし、エミュレートし、および／または補完するように仮想デバイス１１２を構成することができる。仮想デバイス１１２は、例えば、仮想デバイス１１２に結合されうるデータベース１５３内にＬＰデバイス１０２からの測定結果を記録するように構成することができる。そこで、ＬＰデバイスコンピューティングシステム１００の外部にあるコンピューティングデバイス１３０は、仮想デバイスコンピューティングシステム１１０と（例えば仮想デバイスコーディネータ１１９を介して）通信して温度センサーモジュール１０２による過去の温度測定結果の記録を受信するように適合させることができる。以下でさらに詳しく説明するように、仮想デバイスコンピューティングシステム１１０は、仮想デバイスコーディネータ１１９による調整を受ける、複数の仮想デバイス（図１に示されていない）の間の相互のやり取りおよび通信を円滑に進められるように構成されうることは理解されるであろう。
【００２２】
図２は、本開示の少なくともいくつかの実施形態による、仮想ネットワーキングシステム２０の一例を示すシステム図である。図２の仮想ネットワーキングシステム２０は、複数ＬＰデバイスの機能をサポートし、エミュレートし、および／または補完することができる複数の仮想デバイスを備える。図２において、仮想ネットワーキングシステム２０は、１つまたは複数のＬＰデバイス１０２、１０４、１０６、および１０８（それぞれ、「Ｌ１」、「Ｌ２」、「Ｌ３」、および「Ｌ４」のラベルが付けられている）ならびにＬＰデバイスコーディネータ１０９（「ＬＣ」のラベルが付けられている）を備えるＬＰデバイスコンピューティングシステム１００を含むことができる。仮想ネットワーキングシステム２０は、１つまたは複数の仮想デバイス１１２、１１４、１１６、および１１８（それぞれ、「Ｖ１」、「Ｖ２」、「Ｖ３」、および「Ｖ４」のラベルが付けられている）ならびに仮想デバイスコーディネータ１１９（「ＶＣ」のラベルが付けられている）を備える仮想デバイスコンピューティングシステム１１０も含むことができる。ＬＰデバイス１０２、１０４、１０６、および１０８は、ＬＰデバイス通信専用に設計されているネットワークプロトコルを含む、当技術分野で一般的に知られている無線プロトコルを使用してＬＰデバイスコンピューティングシステム１００において互いに通信するように構成されうる。例えば、ＺｉｇＢｅｅネットワークでは、ＬＰデバイスは、ＩＥＥＥ  ８０２．１５．４無線プロトコルを使用して通信することができる。いくつかのネットワーク構成において、ＬＰデバイスコーディネータ１０９は、知られているネットワーク情報を保持し、ＬＰデバイス１０２、１０４、１０６、および１０８の間の通信を円滑にするように構成されうる。いくつかの実施形態では、ＬＰデバイスコーディネータ１０９の機能をＬＰデバイスに含めることができる。ＺｉｇＢｅｅネットワークでは、例えば、どのＬＰデバイスもＬＰデバイスコーディネータとして動作することができる。そこで、いくつかの実施形態では、ＬＰデバイスコーディネータ１０９は、ＬＰデバイスでもある。
【００２３】
図２の例では、ＬＰデバイス１０２は、ＬＰネットワークインターフェース１４４を介してＬＰデバイスコンピューティングシステム１００と通信するセンサーアプリケーション１４２を備えるＬＰ温度センサーデバイス１４０であることができる。ＬＰネットワークインターフェース１４４を通じて、ＬＰデバイス１０２は、温度センサーアプリケーション１４２がＬＰデバイス１０２上で実行中であることを示す、ディスクリプタファイルをＬＰデバイス１０４、１０６、１０８、および１０９に送信するように構成されうる。ディスクリプタファイルは、２つのコンピューティングシステム１００、１１０の間の通信リンク１６０を通じてＬＰデバイスコンピューティングシステム１００から仮想デバイスコンピューティングシステム１１０にさらに中継されうる。ディスクリプタファイルに含まれる情報に基づき、仮想デバイスコーディネータ１１９は、ＬＰデバイス１０２で利用可能な機能をサポートし、エミュレートし、補完するように仮想デバイス１１２を構成することができる。
【００２４】
なおも図２を参照すると、仮想デバイス１１２は、仮想温度センサーデバイス１５０を介してＬＰデバイス１０２をサポートし、エミュレートし、および／または補完するように構成されうる。仮想温度センサーデバイス１５０は、ＬＰデバイス１０２上で作動されているセンサーアプリケーション１４２に関連付けられている仮想デバイス上で実行されている仮想センサーアプリケーション１５４を含みうる。仮想センサーアプリケーション１５４は、限定はしないが、ＬＰデバイス１０２の状態情報を記録すること、温度データの過去の分析および将来予想を行うこと、さらには温度データの操作および変換を含む、さまざまな機能を行うように構成されうる。仮想温度センサーデバイス１１２に関連付けられているデータベース１５３は、仮想センサーアプリケーション１５４によって収集され、生成された情報を格納するように構成されうる。仮想温度センサーデバイス１５０は、ＴＣＰ／ＩＰ接続を介して他のデバイスに接続するためのＴＣＰ／ＩＰインターフェース１５１も備えることができる。例えば、データは、ネットワーク１２０を介したコンピューティングデバイス１３０へのＴＣＰ／ＩＰであってもよいネットワーク接続１８０（以下でさらに詳しく説明する）上の通信により伝達することができる。同様に、仮想温度センサーデバイス１５０は、ＬＰデバイスコンピューティングシステム１００と直接的に相互にやり取りするためのＬＰネットワークインターフェース１５２を備えることができる。
【００２５】
いくつかの実施形態では、仮想デバイス１１２、１１４、１１６、および１１８は、１つまたは複数の物理的コンピューティングデバイス上に、または１つまたは複数の物理的コンピューティングデバイスによって実装されうる。他の実施形態では、単一の物理的コンピューティングデバイス上に複数の仮想デバイスが実装される。そのため、仮想マシンは、例えば、プロセッサ、１つまたは複数のハードドライブ、および／またはネットワーク接続を含むハードウェアアーキテクチャを共有することができる。さらに、コンピューティングデバイス上への仮想デバイス１１２、１１４、１１６、および１１８のいくつか、または全部の実装は、その機能要件に基づいてなされるものとしてよい。例えば、複数の種類の仮想デバイス（例えば、一方の種類は大きな記憶域を必要とするが、他方の種類は少量のデータを格納する）を有する仮想ネットワークでは、これらの異なる種類の仮想デバイスの実行を、特定の物理的コンピュータ上でのメモリ使用量をほぼ最大化したグループ内の複数の物理的コンピュータにまたがって分割することができる。
【００２６】
いくつかの実施形態では、仮想デバイス１１２、１１４、１１６、および１１８は、１つのコンピュータ上で動作している仮想マシン内で実行されうる。仮想マシンは、例えば、フル機能のオペレーティングシステムをサポートすることができる完全なシステムプラットフォームを提供することができる。それぞれのハードウェアの仮想マシンをホストするために、ＶＭｗａｒｅ、Ｍｉｃｒｏｓｏｆｔ  Ｖｉｒｔｕａｌ  ＰＣ、およびＰａｒａｌｌｅｌｓなどの商用ソフトウェアを使用することができる。仮想マシンの利点は、複数のオペレーティングシステム環境を単一のコンピュータ上に、それらのオペレーティングシステム環境同士を厳格に隔離して、存在させることができるという点にある。したがって、一実施形態では、複数の仮想デバイスを、単一のコンピュータ上の複数の仮想マシンで作動させることが可能になる。これにより、仮想マシンは、例えば、コンピュータの利用可能なメモリおよびそのネットワーク接続を、競合することなく共有することが可能になる。他の実施形態では、仮想マシンを複数のコンピュータに分散させることで複数の仮想コンピューティングシステム構成をサポートすることができる。したがって、仮想コンピューティングシステム１１０のコンピューティングリソースは、その関連するＬＰデバイスコンピューティングシステム１００のリソースに合わせてスケーリングすることができる。
【００２７】
いくつかの実施形態では、仮想デバイスとＬＰデバイスとの間に一対一対応関係がありうる。例えば、図２を参照すると、仮想デバイス１１２、１１４、１１６、および１１８をそれぞれＬＰデバイス１０２、１０４、１０６、および１０８に関連付けることができる。それに加えて、仮想デバイスコーディネータ１１９は、ＬＰデバイスコーディネータ１０９にも関連付けることができる。他の実施形態では、１つの仮想デバイスで、複数のＬＰデバイスにおいて利用可能な機能をサポートし、エミュレートし、および／または補完することができる。ＬＰデバイスの個数と仮想デバイスの個数との間の対応関係は、ＬＰコンピューティングシステムの複雑度、仮想デバイスに利用可能な計算リソース、または仮想ネットワークを管理する管理者の選好などの要因に基づき選択されうる。複数のＬＰデバイスが単一の仮想デバイスに関連付けられている場合、ＬＰデバイスによって与えられる識別子を使用してＬＰデバイスを識別するように仮想デバイスを適合させることができる。
【００２８】
なおも図２を参照すると、仮想デバイスコンピューティングシステム１１０は、少なくとも１つのネットワーク接続を通じてＬＰデバイスコンピューティングシステム１００に結合されうることがわかる。図２に示されているように、ＬＰデバイスコーディネータ１０９と仮想デバイスコーディネータ１１９との間に単一のネットワーク接続１６０がありうる。他の実施形態（例えば、図３および４に示されている）では、ＬＰデバイスコンピューティングシステム１００と仮想デバイスコンピューティングシステム１１０との間の接続は、ＬＰデバイス１０２、１０４、１０６、１０８、ＬＰデバイスコーディネータ１０９、仮想デバイス１１２、１１４、１１６、１１８、および仮想デバイスコーディネータ１１９の任意の組合せの間のものとすることができる。いくつかの実施形態では、ネットワーク接続１６０は、ＬＰデバイスによって使用されているのと同じネットワーキングプロトコルを使用して実装することができる。例えば、ＬＰデバイスがＩＥＥＥ  ８０２．１５．４−２００６の低速無線パーソナルエリアネットワークで動作する場合、ネットワーク接続１６０はＩＥＥＥ  ８０２．１５．４−２００６規格をポートする。データを仮想デバイスコンピューティングシステム１１０と互換性のある形式にフォーマットするために、変換機能を仮想デバイスコーディネータ１１９内に、または仮想デバイス１１２、１１４、１１６、および１１８のところで実装することができる。ロバストなインターフェースを構築するために、さまざまなＬＰパケット形式を扱うための変換機能を提供することができる。例えば、インターフェース１５２は、ＺｉｇＢｅｅ、ＷｉｒｅｌｅｓｓＨＡＲＴ、およびＭｉＷｉなどのＬＰデバイス仕様に準拠してフォーマットされたデータを処理するための機能を有することができる。
【００２９】
図２において、コンピューティングデバイス１３０は、ネットワーク１２０を介して仮想デバイスコーディネータ１１９との通信を行うように示されている。ネットワーク１２０は、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、直接接続もしくは一連の接続、ケーブルテレビのインフラストラクチャ、携帯電話ネットワーク、または他のネットワーク、仮想ネットワーキングシステム１０のデバイス、モジュール、および他のコンポーネントの間の通信を円滑にすることができる伝送路もしくは媒体を含む、当技術分野で一般的に知られているネットワークもしくはシステムとすることができる。ネットワーク１２０は、有線、無線、またはこれらの組合せとすることができる。有線接続は、イーサネット（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ＲＪ−１１、または当技術分野で一般的に知られている他の有線接続を使用して実装されうる。無線接続は、Ｗｉ−Ｆｉ、ＷｉＭＡＸ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線、セルラーネットワーク、衛星、または当技術分野で一般的に知られている他の無線接続方法を使用して実装されうる。ネットワーク１２０は、クライアントサーバー、トークンリング、ピアツーピア方式、または当技術分野で知られている他のネットワークトポロジーで実装されうる。それに加えて、いくつかのネットワークは、単独で動作するか、または互いに通信し合って動作することで、ネットワーク１２０内の通信を円滑に進めることができる。さまざまなデバイスおよび他のネットワークとネットワーク１２０との通信を円滑にするために、ＥＤＧＥ、３Ｇ、および／またはＩＥＥＥ８０２．１１規格の通信プロトコルなどの、さまざまなネットワーキング標準プロトコルを採用することができる。
【００３０】
仮想デバイスコンピューティングシステム１１０に関連付けられているネットワーク接続は、利用可能なコンピューティングリソースおよびネットワーキングリソース、さらにはＬＰデバイスコンピューティングシステム１００内のデバイスを動作ニーズに応じて、幾通りもの構成が可能である。特定の仮想デバイスに関連付けられているＬＰデバイスから情報が必要な場合、仮想デバイスは、デバイスコーディネータ１０９、１１９を通じて要求を送信することができる。例えば、仮想デバイス１１２は、要求を仮想デバイスコーディネータ１１９に送信することによってＬＰデバイス１０２にデータを要求することができる。仮想デバイスコーディネータ１１９は、ＬＰデバイスコーディネータ１０９に要求を送信するように構成され、次いで、このＬＰデバイスコーディネータ１０９が要求をＬＰデバイス１０２に中継することができる。ＬＰデバイス１０２は、通信路を逆方向に経由して仮想デバイス１１２に応答することができる。
【００３１】
ネットワーク１２０を通じてデータを送受信することが一般に可能な任意のデバイス１３０は、仮想デバイスコンピューティングシステム１１０と通信するように構成されうる。例えば、図２を参照すると、コンピューティングデバイス１３０は、ネットワーク１２０およびネットワーク接続１８０を介して仮想デバイスコーディネータ１１９と通信するように構成されうる。コンピューティングデバイス１３０は、一般的に、仮想デバイスコンピューティングシステム１１０と通信し、ＬＰコンピューティングシステム１００および仮想コンピューティングシステム１１０の両方の外部（つまり、そのうちのいずれにも含まれない）で動作することができるデバイスとすることができる。好適なデバイスの例として、限定はしないが、携帯情報端末（ＰＤＡ）、携帯電話（スマートフォンを含む）、パーソナルコンピュータ（ＰＣ）、およびビデオゲームシステムが挙げられる。
【００３２】
ＬＰデバイス１０２、１０４、１０６、および１０８は、ブロードキャストまたはユニキャストアドレスを使ってＬＰデバイスコーディネータ１０９（以下でさらに詳しく説明する）からデバイス発見要求を発行することによって発見することができる。同様に、サービス発見要求（以下でさらに詳しく説明されている）をＬＰデバイスコーディネータ１０９からＬＰデバイス１０２、１０４、１０６、および１０８のうちの１つまたは複数に送信して、デバイス上でどのようなサービスが利用可能であるかを判定することができる。ＬＰデバイスは、１つまたは複数のディスクリプタファイルをその要求を発行したデバイスに送信することによってデバイスもしくはサービス発見要求に応答することができる。それに加えて、異なる種類のディスクリプタファイルもありえ、それぞれの種類のディスクリプタファイルはＬＰデバイスに関する異なる情報を提供する。例えば、ＺｉｇＢｅｅでは、ノードディスクリプタ、ノード、パワーディスクリプタ、シンプルディスクリプタ、コンプレックスディスクリプタの５つのディスクリプタファイルタイプのうちの１つでデバイスを記述することができる。
【００３３】
図３は、本開示の少なくともいくつかの実施形態により、ＬＰデバイスコンピューティングシステム１００から仮想デバイスコンピューティングシステム１１０に受け渡されるデバイスディスクリプタファイル６００の一例を示す図である。ＬＰデバイスは、デバイス発見要求に応答してデバイスディスクリプタファイル６００を送信することができる。図３に示されているファイル６００の形式は、ＺｉｇＢｅｅプロトコルで使用されている形式と類似しているけれども、どのようなファイル形式でも使用できる。図３の例では、ファイル６００に関連付けられているＬＰデバイスは、ＬＰランプデバイス（図示せず）である。例示的なデバイスディスクリプタ６００は、ＬＰデバイスの性質を示すデバイス識別子６０２を含みうる（つまり、ＬＰデバイスはオン、オフすることができるライトである）。プロファイル識別子６０４は、ＬＰランプデバイスがホームオートメーションデバイスとして分類されることを示しうる。プロファイル識別子６０４は、例えば、ＬＰデバイスと情報を交換する方法を決定するために使用することができる。クラスタ値６０６により、ＬＰデバイスに送信することができるコマンドタイプおよびコンピューティングデバイスでアクセスすることができるデバイスの属性を識別することができる。クラスタ値は、低電力デバイスのグループを参照するために使用することもできる。例えば、複数のランプが同じクラスタに属している場合、個別のデバイスではなくクラスタとの相互のやり取りを通じてこれらのランプをすべてオフにすることができる。図３の例では、ＬＰランプデバイスは、「オン」または「オフ」コマンドを受信することができる。クラスタ識別子６０６は、どのような応答がランプから予期されるかを決定するために使用することもできる。エンドポイントフィールド６０８を採用して、ＬＰランプデバイスに対し一意的識別子を付与することができる。いくつかの実施形態では、他の形態の記述情報も、デバイスディスクリプタ６００の一部としてＬＰデバイスから送信されることに留意されたい。例えば、ＬＰデバイスは、製造者、モデル名、およびシリアル番号などの情報を共有するように構成されうる。それに加えて、図３に関して説明されているフィールド６０２、６０４、６０６、および／または６０８のうちの１つまたは複数が、ＬＰランプデバイスによって送信されるデバイスディスクリプタファイル６００内に存在しない場合もある。
【００３４】
図４は、本開示の少なくともいくつかの実施形態により、ＬＰデバイスコンピューティングシステム１００から仮想デバイスコンピューティングシステム１１０に受け渡されるパワーディスクリプタファイル７００の一例を示す図である。図４のパワーディスクリプタファイル７００は、図３のデバイスディスクリプタファイル６００に対応している。ＬＰデバイスは、デバイス発見要求に応答してパワーディスクリプタファイル７００を送信することができる。パワーディスクリプタファイル７００は、例えば、（この例において）ＬＰランプデバイスに電力を供給するために使用される現在の電源は充電式電池Ａであること、また充電式電池ＢもＬＰランプデバイスに電力を供給するために利用可能であることを示す利用可能な電源フィールド７０４および現在の電源フィールド７０６を含むことができる。それに加えて、電源レベルフィールド７０８は、充電式電池Ａが完全充電状態であることを示しうる。現在のパワーモードフィールド７０２は、ＬＰデバイスが動作するように現在どのように構成されているかを示すことができる。この例では、ＬＰデバイスは、定期的に給電されるように構成することができる。それに加えて、図４に関して説明されているフィールド７０２、７０４、７０６、および／または７０８のうちの１つまたは複数が、ＬＰランプデバイスによって送信されるパワーディスクリプタファイル７００内に存在しない場合もある。
【００３５】
図５は、本開示の少なくともいくつかの実施形態による、ＬＰネットワークに対する仮想デバイスネットワークを作成するプロセスの一例を示すシステム図である。図５の例では、ＬＰデバイスコンピューティングシステム１００内に４つのＬＰデバイス１０２、１０４、１０６、および１０８（それぞれ、「Ｌ１」、「Ｌ２」、「Ｌ３」、および「Ｌ４」のラベルが付けられている）（例えば、１つの温度センサー、１つの煙検知器、および２つのランプ）がある。例示的なデバイスタイプは、キー５０６で与えられている。ＬＰデバイスコンピューティングシステム１００内のＬＰデバイス、１０２、１０４、１０６、および１０８を調整するように適合されうるＬＰコーディネータデバイス１０９もある。初期オペレーション５００では、仮想デバイスコンピューティングシステム１１０内の仮想デバイスコーディネータ５１９は、サービス発見要求をＬＰデバイスコーディネータ１０９に送信することによって仮想ネットワーク作成プロセスを開始するように適合されうる。ステップ５０１で、ＬＰデバイスコーディネータ１０９は、サービス発見要求をＬＰデバイスコンピューティングシステム１００内のＬＰデバイス、１０２、１０４、１０６、および１０８に送信するように適合されうる。ＬＰデバイス１０２、１０４、１０６、および１０８は、１つまたは複数のディスクリプタファイルをＬＰデバイスコーディネータ１０９に送信するように構成することによって返答することができる。現在利用不可能な状態のデバイスに対して、ＬＰデバイスコーディネータ１０９は、最後に把握された構成を使用して利用不可能なデバイスに対するディスクリプタファイルを生成することがある。これは、例えば、発見要求が発行された時点においてデバイスの電源がオフにされたときに発生しうる。ステップ５０２で、ＬＰデバイスコーディネータ１０９は、ディスクリプタファイルを仮想デバイスコーディネータ５１９に送信するように構成されうる。ディスクリプタファイルが仮想デバイスコーディネータ５１９によって受信された後、ファイルに含まれている情報を解析して、例えば、ＬＰコンピューティングシステム１００内にＬＰデバイスがいくつ存在しているか、それらのデバイスに対してどのようなアプリケーションが存在しているか、およびこれらのデバイスの電力特性を判定することができる。この情報に基づき、ステップ５０３、５０４、および５０５において仮想デバイスが作成されうる。例えば、ステップ５０３で、ＬＰコンピューティングシステム１００で動作するＬＰ温度センサーデバイス１０２に関して提供された情報に基づき仮想デバイスＶ１  ５１２を作成するように仮装デバイスコーディネータを構成しうる。同様に、ステップ５０４で、ＬＰ煙検知デバイス１０６に関して収集された情報に基づき仮想デバイスＶ２  ５１４が作成されうる。
【００３６】
図５の例では、複数のＬＰデバイスを、サポートし、エミュレートし、および／または補完するように仮想デバイスを作成し、構成しうる。例えば、ステップ５０５で、ＬＰコンピューティングシステム１００で動作する２つのランプ１０４、１０８に関して提供された情報に基づき仮想デバイスＶ３  ５１６を作成することができる。したがって、この例では、仮想デバイスコーディネータ５１９は、単一の仮想デバイス５１６が両方のＬＰデバイス１０４、１０８を効率よくサポートできると判定することができる。例えば、同じコマンドを受け付け、動作させるのに最小の電力があればよいように両方のランプ１０４、１０８を構成することができる。そこで、効率のために、２つのアプリケーションを作成し、メッセージ生成機能を共有することができる。デバイスディスクリプタファイル６００（例えば、図３を参照）のエンドポイントフィールド７０８において与えられる一意的識別子を使用して、単一の仮想デバイス５１６上で作動されている異なるＬＰデバイス１０４、１０８に関連付けられている２つのアプリケーションを区別することができる。
【００３７】
図６は、本開示の少なくともいくつかの実施形態による、ＬＰデバイスによって提供される情報に基づき仮想デバイスおよびアプリケーションを作成するための例示的なプロセスを示すシーケンス図である。仮想デバイスコーディネータ１１９は、ＬＰデバイスコンピューティングシステム１００内のＬＰデバイスの特徴を記述することができるディスクリプタファイルの要求をＬＰデバイスコーディネータ１０９に送信するように構成されうる。ＬＰデバイスコーディネータ１０９は、デバイスディスクリプタ要求および／またはパワーディスクリプタ要求をＬＰ温度センサーデバイス１０２に送信するように構成されうる。それに応答して、ＬＰ温度センサーデバイス１０２は、デバイスおよびパワーディスクリプタファイルをＬＰデバイスコーディネータ１０９に送信し、次いで、ＬＰデバイスコーディネータ１０９は、それらのファイルを仮想デバイスコーディネータ１１９に中継することができる。受信された情報に基づき、仮想デバイスコーディネータ１１９は、仮想温度センサーデバイス１１２が作成されるべきと判定することができる。仮想デバイスコーディネータ１１９は、仮想温度センサーデバイスが現在存在していないと判定し、次いで、そのようなデバイスを作成することができる。適宜、仮想デバイスコーディネータ１１９は、ＬＰ温度センサーデバイス１０２に対する関連付けを示すため、仮想温度センサーデバイス上で実行されている１つまたは複数のソフトウェアモジュールに一意的識別子を割り当てることができる。
【００３８】
いくつかの実施形態では、仮想デバイスは、ＬＰデバイスデータに対する要求に基づき作成することができる。そのため、仮想デバイスは、「必要に応じて」作成され、したがって、仮想デバイスをホストする（複数可）コンピュータ上のリソースを潜在的に節約することにつながっている。
【００３９】
図７は、本開示の少なくともいくつかの実施形態による、コンピューティングデバイスからの要求に基づき仮想デバイスを動的に作成するための例示的なプロセスを示すシーケンス図である。図７において、仮想デバイスコーディネータ１１９は、ＬＰデバイスコンピューティングシステム１００の外部に配置することができるコンピューティングデバイス１３０から温度センサーデータの要求を受信する。仮想デバイスコーディネータ１１９は、要求の宛先がＬＰ温度センサーデバイス１０２であることを判定するように構成されうる。この判定は、例えば、コンピューティングデバイス１３０からのセンサー要求内の宛先値を調べることによって行うことができる。仮想デバイスコーディネータ１１９は、仮想デバイスコンピューティングシステム１１０を評価して、温度センサー要求を処理することができる仮想デバイスがあるかどうかを判定するように適合されうる。このようなデバイスが存在していない場合、仮想デバイスコーディネータ１１９は、ＬＰ温度センサーデバイス１０２に、直接的に、またはＬＰコーディネータ１０９（図示せず、図２を参照）を通じて接触し、適切なＬＰデバイス１０２からデバイスディスクリプタデータを取り出すことができる。デバイスディスクリプタデータは、仮想温度センサーデバイス１１２を作成するために仮想デバイスコーディネータ１１９によって使用されうる。仮想デバイスコーディネータ１１９は、ＬＰ温度センサーデバイス１０２をサポートし、エミュレートし、および／または補完するように構成されている仮想温度センサーデバイス１１２を作成するように構成されうるか、あるいは、仮想デバイスコーディネータ１１９は、仮想デバイスによって一般的に要求される最低限の機能を備えうる汎用仮想デバイスを作成するように構成されうる。図７の例では、仮想温度センサーデバイス１１２を作成することができる。仮想温度センサーデバイス１１２を、ＬＰ温度センサーデバイス１０２をサポートするように構成するために、仮想温度センサーデバイスは、ＬＰ温度センサーデバイス１０２と通信してディスクリプタファイルを受信し、ＬＰ温度センサーデバイス１０２の機能特性を判定するように適合されうる。これらのディスクリプタファイルに基づき、仮想温度センサーデバイス１１２は、ＬＰアプリケーションをサポートし、エミュレートし、または補完するようにその構成要素であるソフトウェアモジュールのうちの１つまたは複数を構成することができる。仮想デバイスコーディネータ１１９は、センサーデータ要求を、作成された仮想温度センサーデバイス１１２に転送するように構成されうる。
【００４０】
いくつかの実施形態では、仮想デバイスが作成された後、その仮想デバイスはその関連付けられている（複数可）ＬＰデバイスおよびＬＰデバイスコーディネータと通信し続けて、関連付けられているＬＰデバイスの動作状態に関する情報を保持することができる。例えば、仮想デバイスは、仮想デバイスコーディネータまたは関連する（複数可）ＬＰデバイスのいずれかにディスクリプタファイルを繰り返し要求するように構成することができる。この情報は、例えば、デバイスがオンであるか、もしくはオフであるか、デバイスが臨界電力で現在作動中かどうか、またはデバイス完全充電状態であるかどうかを示しうる。この情報は、仮想デバイスによって、ＬＰデバイスに関連付けられている動作状態を保持するために使用されうる。例えば、仮想デバイスが温度データに対する要求を受信したときに、仮想デバイスは、ＬＰ温度センサーデバイスの動作状態をチェックすることができる。仮想デバイスは、ＬＰデバイスが現在電源オフ状態であると判定した場合、仮想デバイス上に格納されているデータで要求に応答することができる。
【００４１】
いくつかの実施形態では、それぞれの仮想デバイスにＬＰデバイスの動作状態情報を保持させる代わりに、ＬＰデバイスコンピューティングシステム内の１つまたは複数のＬＰデバイスの動作状態を保持するように仮想デバイスコーディネータを構成することができる。情報は、例えば、ＬＰデバイスコーディネータとの通信を通じて、またはＬＰデバイスコンピューティングシステム内の１つまたは複数のＬＰデバイスとの直接通信を通じて、収集することができる。仮想デバイスコンピューティングシステム内の仮想デバイスは、仮想デバイスコーディネータから動作状態情報を取り出すように構成されうる。
【００４２】
いくつかの実施形態では、仮想デバイスは、ＬＰデバイスの分類をサポートするように構成されうる。そのため、同様に分類されたＬＰデバイスは、同じ仮想デバイスによってサポートされうる。分類は、ディスクリプタファイル中のＬＰデバイスによって提供されるディスクリプタ情報に基づき、ＬＰコンピューティングシステム内のそれぞれのＬＰデバイスについて決定することができる。分類は、１つまたは複数のデバイス特性に基づき作成されうる。いくつかの実施形態では、１つの製造者からのデバイスは単一の仮想デバイスに関連付けされうる。他の実施形態では、分類は、デバイス上で利用可能な機能を示すものとしてよい。この種類の分類の例として、限定はしないが、ホームオートメーション機能、通信機能、モバイルサービス機能、工業管理機能（ｉｎｄｕｓｔｒｉａｌ  ｍａｎａｇｅｍｅｎｔ  ｆｕｎｃｔｉｏｎａｌｉｔｙ）、マルチメディア制御機能、照明制御機能、エネルギー制御機能、および温度制御機能が挙げられる。例えば、図３を再び参照すると、デバイスディスクリプタファイル７００を使用することで、デバイスディスクリプタファイル７００内のプロファイル識別子値７０４に基づき、ＬＰデバイス１０２を、ホームオートメーション機能を提供するものとして分類することができることがわかる。デバイスは、例えば、電力使用などの動作特性や、デバイスクラスター内に含まれることによって分類することもできる。
【００４３】
図８は、本開示の少なくともいくつかの実施形態による、複数の仮想デバイスによって提供される情報に基づき仮想デバイスセットを作成するための例示的なプロセスを示すシーケンス図である。図８の例において、仮想デバイスコーディネータ１１９は、ＬＰデバイスコーディネータ１０９にファイルディスクリプタを要求するように構成されうる。いくつかの実施形態では、要求を、対応するＬＰデバイスに直接送信することができる。図８の例では、ＬＰデバイスコーディネータ１０９は、ＬＰランプデバイス１５０４、ＬＰライトスイッチデバイス１５０６、および／またはＬＰオーバーヘッドライトデバイス１５０８に一連の発見要求を発行するように構成されうる。それぞれのＬＰデバイス１５０４、１５０６、または１５０８は、１つまたは複数のディスクリプタファイルをＬＰデバイスコーディネータ１０９に送信することによって応答するように構成されうる。ＬＰデバイスコーディネータ１０９がＬＰデバイス１５０４、１５０６、または１５０８から応答を受信すると、この応答は、仮想デバイスコーディネータ１１９に送信されうる。仮想デバイスコーディネータ１１９は、それぞれのディスクリプタファイルを受信すると、ファイル内の情報を分析して、分類を決定することができる。この場合、３つすべてのデバイス１５０４、１５０６、および１５０８が、仮想デバイスコーディネータ１１９によって、照明デバイスとして分類されうる。それぞれのＬＰデバイスコーディネータ１５０４、１５０６、および／または１５０８は、仮想照明デバイス１５１０に関連付けられうる。
【００４４】
いくつかの実施形態では、仮想コンピューティングシステム１１０は、時間がたつうちに、例えば、ＬＰデバイスが無反応であると判定された場合、ＬＰデバイスを仮想デバイスから分離することができる。
【００４５】
図９は、本開示の少なくともいくつかの実施形態による、仮想デバイスをＬＰデバイスから分離するための例示的なプロセスを示すシーケンス図である。図９の例において、仮想デバイスコーディネータ１１９は、最初に仮想ＨＶＡＣデバイス１６０２をＬＰ空調デバイス１６０４に関連付けることができる。時間が経過すると、仮想デバイス１６０２は、ＬＰ空調デバイス１６０４にステータスレポートを要求するものとしてよい。仮想デバイス１６０２が、ＬＰ空調デバイス１６０４から返答を受信しない場合、タイムアウトが発生し、ＬＰ空調デバイス１６０４が電源オフにされているように見えることを示すフラグを立てることを仮想デバイス１６０２に促しうる。タイマーが起動され、タイマーが閾値を超えたと判定されたときに、仮想デバイス１６０２は、ＬＰ空調デバイス１６０４からの分離を要求することができる。仮想ＨＶＡＣデバイス１６０２は、その閾値を所望の値に設定しうることに留意されたい。いくつかの実施形態では、閾値は、デバイスの電力特性に基づき設定されうる。例えば、連続的に電源をオンにされることが予想されるＬＰデバイスは数秒の閾値を有し、ときおり給電されるＬＰデバイスは数時間の閾値を有するものとしてよい。仮想ＬＰデバイス１６０２が、空調ＬＰデバイス１６０４から分離された後、仮想デバイス１６０２のリソースを新規ＬＰデバイスに再割り当てすることができる。図９の例では、仮想デバイス１６０２と空調ＬＰデバイス１６０４との分離の後、仮想デバイスコーディネータ１１９は、仮想ＨＶＡＣデバイス１６０２をＬＰヒーターデバイス１６０６に関連付けることができる。
【００４６】
図１０は、本開示の少なくともいくつかの実施形態による、仮想ネットワーキングシステムの代替的構成の一例を示すシステム図である。図１０に例示されているように、いくつかの実施形態では、仮想ネットワーキングシステム３０は、仮想デバイスコンピューティングシステム３１０内のそれぞれの仮想デバイスへの直接ネットワーク接続を提供にするように構成されうる。図１０の例では、仮想デバイス１１２、１１４、１１６、および１１８ならびに仮想デバイスコーディネータ１１９をそれぞれネットワーク１２０に直接接続することができることがわかる。コンピューティングデバイス１３０は、ネットワーク１２０を介して、仮想デバイスコンピューティングシステム３１０内の任意の仮想デバイス１１２、１１４、１１６、または１１８に、対応するデバイスに関連付けられているアドレスによって直接接続するように適合されうる。例えば、それぞれの仮想デバイスは、ユニフォームリソースロケータ（ＵＲＬ）またはＩＰアドレスによってアドレス指定されうる。
【００４７】
図１１は、本開示の少なくともいくつかの実施形態による、仮想ネットワーキングシステムの代替的構成の一例を示すシステム図である。図１１に例示されているように、いくつかの実施形態では、仮想ネットワーキングシステム４０は、仮想デバイスが関連付けられているＬＰデバイスに直接接続するように構成されている仮想デバイスコンピューティングシステムを備えることができる。図１１では、仮想デバイスコンピューティングシステム４１０内の仮想デバイス１１２、１１４、１１６、および１１８は、ＬＰデバイスコンピューティングシステム４００内の関連付けられているＬＰデバイス１０２、１０４、１０６、および１０８に直接結合されうる。したがって、仮想デバイス１１２、１１４、１１６、および１１８は、ＬＰデバイスコーディネータ１０９および仮想デバイスコーディネータ１１９を使用せずに、関連付けられているＬＰデバイス１０２、１０４、１０６、および１０８に直接通信するように構成されうる。しかし、それでも、仮想デバイスコーディネータ１１９は、仮想デバイス作成、仮想デバイス構成、および仮想コンピューティングシステム４１０のメンテナンスなどのサービスを提供することができることは理解されよう。
【００４８】
図１２は、本開示の少なくともいくつかの実施形態による、仮想デバイスを使用してＬＰデバイスに対する要求を処理する、電力がＬＰデバイスによってほぼ一定に維持される場合の例示的なプロセスを示すシーケンス図である。この点で、仮想デバイスコンピューティングシステム１１０は、コンピューティングデバイス（例えば、図２のコンピューティングデバイス１３０）とＬＰデバイスコンピューティングシステム１００との間の通信のための媒介として働きうる。図１２の例において、コンピューティングデバイス１３０は、仮想デバイスコーディネータ１１９に温度センサーデータの要求を送信するように構成されうる。仮想デバイスコーディネータ１１９は、センサーデータ要求の意図された宛先を判定するように構成されうる。いくつかの実施形態では、仮想デバイスコーディネータ１１９は、センサーデータ要求に関連付けられている宛先アドレスを評価するように構成されうる。この宛先アドレスは、例えば、ユニフォームリソースロケータ（ＵＲＬ）またはＩＰアドレスとしてよい。仮想デバイスコーディネータ１１９が、ＬＰ温度センサーデバイス１０２が意図された宛先であると判定した後、センサーデータ要求は、要求されたＬＰデバイス１０２に関連付けられている仮想温度センサーデバイス１１２に転送されうる。仮想温度センサーデバイス１０２は、ＬＰデバイス１０２に関連付けられているパワーディスクリプタ情報をチェックすることができる。仮想温度センサーデバイス１１２が、例えば、基礎的ＬＰデバイス１０２がほぼ一定の電力下で動作していると判定した場合、温度センサーデータの要求が、ＬＰデバイス１０２に送信されうる。ＬＰデバイス１０２は、仮想温度センサーデバイス１００を介してコンピューティングデバイス１３０に返答することができる。
【００４９】
図１３は、本開示の少なくともいくつかの実施形態による、仮想デバイス１１２を使用してＬＰデバイスに対する要求を処理する、ＬＰデバイスが周期的に給電される場合の例示的なプロセスを示すシーケンス図である。図１３では、仮想温度センサーデバイス１１２は、ＬＰ温度センサーデバイス１０２（図１３には示されていない）の電力特性を調べるように適合されうる。これらの電力特性は、例えば、仮想温度センサーデバイス１１２によってすでに受信されている１つまたは複数のディスクリプタファイルに含まれる情報に基づき、判定されている可能性がある。図１３では、仮想温度センサーデバイス１１２は、ＬＰデバイス１０２が周期的に給電されていると判定するように構成されうる。仮想温度センサーデバイス１１２は、仮想温度センサーデバイス１１２に結合されているデータベース（図示せず）に問い合わせて、いつデバイス１１２がＬＰデバイス１０２からデータを最終受信したかを調べることができる。データが十分に最近のものであるとわかったら、仮想温度センサーデバイス１１２は、ＬＰ温度センサーデバイス１０２の代わりにコンピューティングデバイス１３０に応答することができる。仮想温度センサーデバイス１１２は、データが十分に最近のものでなかったと判定した場合、図１２の例のようにＬＰデバイス１０２にデータを要求し、応答することができる。
【００５０】
図１４は、本開示の少なくともいくつかの実施形態による、仮想デバイス１１２を使用してＬＰデバイス１０２に対する要求を処理する、ＬＰデバイス１０２の充電レベルが臨界レベルである場合の例示的なプロセスを示すシーケンス図である。ＬＰデバイス１０２の充電レベルに関する情報が、例えば、仮想デバイス１１２からアクセス可能なデバイスディスクリプタファイルで提供されうる。図１４の例では、仮想温度センサーデバイス１１２は、データが更新されたのがいつかに関わりなく、データベース（図示せず）からの情報で応答するように構成されうる。ＬＰデバイス１０２が電源オフ状態にあると仮想温度センサーデバイス１１２が判定したときに、同様の応答が生成されうる。いくつかの実施形態では、仮想温度センサーデバイス１００は、情報が古く、場合によっては不正確である可能性のあることを示す情報を、要求側コンピューティングデバイス１３０に送信するように構成されうる。
【００５１】
いくつかの実施形態では、仮想デバイスコンピューティングシステム１１０は、１つまたは複数の仮想デバイス１１２、１１４、１１６、１１８、および／または１１９がＬＰデバイス１０２、１０４、１０６、１０８、および／または１０９の代わりにサービスを行うことを許容することによって、基礎的ＬＰデバイスコンピューティングシステム１００の機能を強化するように適合されうる。例えば、コンピューティングデバイス１３０は、サービス要求を通信するために、仮想デバイスと直接的に、または仮想デバイスコーディネータ１１９を通じて、相互にやり取りするように構成されうる。サービス要求は、仮想デバイス上のサービスを要求するために必要な情報を含むものとしてよい。例えば、サービス要求は、低電力アプリケーションデータに対する要求および処理要求を含むことができる。処理要求の例として、限定はしないが、過去の低電力デバイスデータの要求、予測される将来のＬＰデバイスデータの要求、および低電力デバイスデータのグラフィック表示の要求が挙げられる。例えば、予測される将来のＬＰデバイスデータは、限定することなく、最近傍補間、線形補間、多項式補間、またはスプライン補間などの技術を使用して生成することができる。仮想デバイスがサービス要求を受信した後、仮想デバイスは要求された低電力デバイスに関連付けられているディスクリプタファイルを評価して、低電力デバイスが要求サービスを提供できるかどうかを判定することができる。要求された低電力デバイスが、要求されたサービスを行うことができない場合、仮想デバイスが、場合によってはすでに低電力デバイスによって生成されているデータを使用して、サービスをローカルで行うことができる。
【００５２】
図１５は、本開示の少なくともいくつかの実施形態による、仮想デバイス１１２を使用して温度予測を生成する、関連付けられているＬＰデバイスが通信に利用できない場合の例示的なプロセスを示すシーケンス図である。この例示的なプロセスでは、コンピューティングデバイス１３０は、ＬＰ温度センサーデバイス１０２（図１５には示されていない）から温度予測を取り出すことを試みることができる。コンピューティングデバイス１３０は、温度予測のサービス要求を仮想デバイスコーディネータ１１９に送信するように適合されうる。仮想デバイスコーディネータ１１９は、サービス要求内に符号化されている宛先情報を分析して、ＬＰ温度センサーデバイス１０２が意図された宛先であることを判定するように構成されうる。仮想デバイスコーディネータ１１９は、要求をＬＰ温度センサーデバイス１０２に関連付けられている仮想デバイス、つまり仮想温度センサーデバイス１１２に転送するようにも構成されうる。他の実施形態では、コンピューティングデバイスは、仮想温度センサーデバイス１１２に直接的に交信するように構成することができ、したがって仮想デバイスコーディネータ１１９をバイパスすることができることに留意されたい。
【００５３】
なおも図１５を参照すると、仮想温度センサーデバイス１１２は、図１５でサービス要求を受信した後、その要求を処理することができる。温度センサーデバイス１１２は、予測データが要求されていることを判定するように構成されうる。いくつかの実施形態では、この判定は、受信されたメッセージ内に符号化された処理要求を判定することで行える。この処理要求は、例えば、要求側デバイスのためにデータをどのようにフォーマットするかを仮想デバイス１１２に通知するための情報を含みうる。処理要求の例として、限定はしないが、過去の低電力デバイスデータ、予測される他の低電力デバイスデータの要求、および／または低電力デバイスデータのグラフィック表示の要求が挙げられる。仮想デバイス１１２は、ＬＰ温度センサーデバイス１０２の機能を評価して、デバイス１０２がコンピューティングデバイス１３０のセンサーデータ要求に応答することができるかどうかを判定するように適合されうる。図１５の例では、仮想温度センサーデバイス１１２は、ＬＰ温度センサーデバイス１０２が将来の温度状態を予測するように構成されていないと判定することができる。そこで、仮想温度センサーデバイス１１２は、要求された温度予測を内部的に生成するか、または要求された予測が利用不可能であるという表示情報（indication）で応答することができる。
【００５４】
なおも図１５を参照すると、温度予測の精度を高めるために、ＬＰ温度センサーデバイス１０２が現在給電されており、通信に利用可能である（つまり、「アクティブ」である）場合に、ＬＰ温度センサーデバイス１０２から現在の温度データを収集するように仮想温度センサーデバイス１１２を構成することができる。仮想温度センサーデバイス１１２は、ＬＰデバイス１０２によって与えられるディスクリプタファイルから導出された電力プロファイルを評価することによって、ＬＰ温度センサーデバイス１０２がアクティブであるかどうかを判定するように構成することができる。ＬＰデバイス１０２が現在通信に利用不可能であることを電力プロファイルが示している場合、ＬＰデバイス１０２に問い合わせを発行しなくてもよい。利用不可能であることは、例えば、ＬＰデバイスが現在給電されていないことを電力プロファイルが示している場合に、示されうる。同様に、ＬＰデバイス１０２が臨界電力で作動していることを電力プロファイルが示している場合、仮想温度センサーデバイス１１２は、ＬＰ電池リソースが節約されるようにＬＰデバイス１０２に問い合わせを行わなくてもよい。図１５の例では、仮想温度センサーデバイス１１２は、ＬＰデバイス１０２が利用不可能であると判定し、予測は、仮想温度センサーデバイス１１２からアクセス可能なデータベースに格納されている過去のデータのみを使用して生成される。温度予測が生成された後、仮想温度センサーデバイス１１２は、温度予測情報をコンピューティングデバイス１３０に、元の温度予測要求への返答として送信することができる。
【００５５】
温度予測が生成されている間、ＬＰデバイス１０２が利用可能である場合、仮想温度センサーデバイス１１２は、ＬＰ温度センサーデバイス１０２から現在の温度データを収集し、そのデータを温度予測に含めることができる。
【００５６】
図１６は、本開示の少なくともいくつかの実施形態による、仮想デバイス１１２を使用して温度予測を生成する、関連付けられているＬＰデバイスが通信に利用できる場合の例示的なプロセスを示すシーケンス図である。図１６の例では、仮想温度センサーデバイス１１２は、ＬＰデバイス１０２に関連付けられている電力プロファイルを評価し、ＬＰデバイス１０２が利用可能であると判定する。利用可能であることは、例えば、ＬＰデバイス１０２が常に電源オンであることが電力プロファイルに示されている場合に、示されうる。仮想温度センサーデバイス１１２は、センサーデータの要求をＬＰデバイス１０２に送信することができ、また関連付けられている応答を受信することができる。要求および応答は、直接的に、または１つまたは複数の中間にある仮想もしくはＬＰデバイスを通じて送信することができることに留意されたい。図１６の例と同様に、過去の温度データを、仮想温度センサーデバイス１１２からアクセス可能なデータベースから収集することができる。過去の温度センサーデータと現在の温度センサーデータの両方を使用することで、予測を生成することができる。予測情報は、元の温度予測要求への応答としてコンピューティングデバイス１３０に送信されうる。
【００５７】
図１７は、本開示の少なくともいくつかの実施形態による、仮想ネットワーキングシステム１０の一実装を例示するコンピュータアーキテクチャまたはシステム１８００を示すブロック図である。システムバス１８０２は、中央演算処理装置（ＣＰＵ）１８０４、ＲＡＭ  １８０６、基本入出力システム（ＢＩＯＳ）１８０８、および他のコンポーネント間でデータを転送するように構成されうる。ＣＰＵ  １８０４は、キャッシュメモリコンポーネント１８２４を備えることができる。ＲＡＭ  １８０６は、仮想デバイスプロセス１８４０を含むことができる。仮想デバイスプロセス１８４０は、１つまたは複数のＬＰデバイスの機能をサポートし、エミュレートし、および／または補完するように構成されうる。コンピュータシステム１８００は、ハードディスクドライブ（ＨＤＤ）、光学式ストレージドライブ（例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＷ）、フラッシュメモリ、テープデバイス、または他のストレージデバイス（図示せず）にアクセスするための１つまたは複数の外部ストレージポート１８１７を備えることができる。関連する（複数可）ストレージデバイスは、外部ストレージポート１８１７を通じて接続もしくは結合され、この外部ストレージポート１８１７は、ディスクコントローラ１８２２を介してシステムバス１８０２に接続もしくは結合されうる。キーボードおよびポインティングデバイス（例えば、マウス、タッチパッド）（図示せず）は、（複数可）キーボード／マウスポート１８１２に接続もしくは結合され、他のＩ／Ｏデバイスは、追加の（複数可）Ｉ／Ｏポート１８１３に接続もしくは結合され、これらのポートはＩ／Ｏコントローラ１８１０を通じてシステムバス１８０２に接続もしくは結合されうる。シリアルポート、パラレルポート、ファイヤワイヤアダプタ、またはバイオメトリックデバイス（図示せず）などの追加のポートまたはデバイスは、Ｉ／Ｏコントローラ１８１０を通じて利用することができる。表示デバイス（図示せず）は、表示デバイスポート１８１４に接続もしくは結合され、このポートは、ビデオコントローラ１８１５を通じてシステムバス１８０２に接続もしくは結合されうる。限定はしないが、イーサネット（登録商標）デバイスまたはネットワーキング能力を有する他のデバイスを含む、ネットワークデバイス（図示せず）は、ネットワークポート１８２０に接続もしくは結合され、このポートは、ネットワークコントローラ１８１６を通じてシステムバス１８０２に接続もしくは結合されうる。コンピュータシステム１８００は、無線コントローラ１８２６に接続もしくは結合されたアンテナ１８２８を使用して、限定はしないが、無線ルーターを含む、無線オペレーション（図示せず）用に構成されうるネットワークデバイスに無線で接続もしくは結合することができ、無線コントローラ１８２６はシステムバス１８０２に接続もしくは結合され、アンテナはネットワークデバイスに信号を送信し、ネットワークデバイスから信号を受信するように構成されうる。コンピュータシステム１８００は、１つまたは複数のＵＳＢポート１８２３を備えうる。限定はしないが、プリンタ、スキャナ、キーボード、マウス、デジタルカメラ、ストレージデバイス、ＰＤＡ、携帯電話、バイオメトリックデバイス、ウェブカム、およびＩ／Ｏアダプタを含む、ＵＳＢデバイス（図示せず）は、ＵＳＢポート１８２３に接続もしくは結合され、このポートは、ＵＳＢコントローラ１８１１を通じてシステムバス１８０２に接続もしくは結合されうる。携帯電話、ＰＤＡ、および他の携帯型デバイスなどの他のデバイスも、無線Ｉ／Ｏコントローラ１８３０に接続もしくは結合されている無線Ｉ／Ｏアンテナ１８３２を介して無線で接続することができる。無線Ｉ／Ｏ技術の例として、限定はしないが、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線（ＩＲ）、無線周波（ＲＦ）が挙げられる。マイクロホン、スピーカー、またはヘッドホンなどのオーディオデバイスは、システムバス１８０２に接続もしくは結合されうるサウンドコントローラ１８３４に接続もしくは結合されうるサウンドポート１８３８に接続もしくは結合することができる。拡張スロット１８１８は、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）スロット、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）拡張スロット、ＰＣＩ  Ｅｘｐｒｅｓｓ拡張スロット、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）スロット、または当技術分野で一般的に知られている他のスロットからなり、追加のカードをコンピュータシステム１８００内に装着することができる。これらのスロットは、ネットワークカード、ビデオカード、サウンドカード、モデム、およびコンピュータとともに一般的に使用される他の周辺デバイスを接続もしくは結合するために使用することができる。コンピュータシステム１８００は、限定はしないが、外部電源に接続もしくは結合されている電力供給源、および内部もしくは外部電池を含む、電源（図示せず）も備える。これらのデバイスの詳細な説明は、便宜のみのために省かれており、制限として解釈すべきではない。
【００５８】
本開示の実施形態は、ハードウェアとソフトウェアとの特定の組合せで実装されうる。コンピュータ実装装置として実装される場合、実施形態は、上で説明されているステップおよび機能のすべてを実行するための手段を使用して実装される。
【００５９】
本開示の実施形態は、例えば、コンピュータ使用可能媒体を有する製造品（例えば、１つまたは複数のコンピュータプログラム製品）に含めることができる。媒体は、例えば、本開示の実施形態の機構を提供し、円滑に行えるようにするためのコンピュータ可読プログラムコード手段をその中に具現化したものである。製造品は、コンピュータシステムの一部として含めるか、または別売とすることができる。
【００６０】
システムの態様のハードウェア実装とソフトウェア実装との間の区別は、ほとんど残っておらず、ハードウェアを使用するのかそれともソフトウェアを使用するのかは一般的に（しかし、いくつかの背景状況においてハードウェアとソフトウェアの選択は重大なことである場合があるという点で常にというわけではない）コストと効率のトレードオフの関係を表す設計上の選択で決まる。本明細書で説明されているプロセスおよび／またはシステムおよび／または他の技術を成し遂げるための手段はさまざまなものがあり（例えば、ハードウェア、ソフトウェア、および／またはファームウェア）、また好ましい手段は、プロセスおよび／またはシステムおよび／または他の技術が展開される背景状況に応じて変わる。例えば、実装者が、速度と精度が最重要であると判断した場合、実装者は、主にハードウェアおよび／またはファームウェアの手段を選び、柔軟性が最重要であると判断した場合、実装者は、主にソフトウェアによる実装を選ぶか、またはさらにここでもまた、その代わりに、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアの何らかの組合せを選ぶことができる。
【００６１】
前記の詳細な説明では、ブロック図、流れ図、および／または実施例を使用することで、デバイスおよび／またはプロセスのさまざまな実施形態を記述した。このようなブロック図、流れ図、および／または実施例が、１つまたは複数の機能および／または操作を含んでいる限り、当業者であれば、そのようなブロック図、流れ図、または実施例内のそれぞれの機能および／または操作は、各種のハードウェア、ソフトウェア、ファームウェア、またはこれらの実質的に任意の組合せによって、個別におよび／またはまとめて実装することができることを理解されよう。一実施形態では、本明細書で説明されている発明対象のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の集積形態を介して実装されうる。しかし、当業者であれば、本明細書で開示されている実施形態のいくつかの態様は、全部または一部、１つまたは複数のコンピュータ上で作動される１つまたは複数のコンピュータプログラムとして（例えば、１つまたは複数のコンピュータシステム上で作動される１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で作動される１つまたは複数のプログラムとして（例えば、１つまたは複数のマイクロプロセッサ上で作動される１つまたは複数のプログラムとして）、ファームウェアとして、またはこれらの実質的に任意の組合せとして、集積回路内に等価な構成で実装されうること、またソフトウェアおよび／またはファームウェア用に回路を設計し、および／またはコードを書くことは、本開示に照らして十分に当業者の技能の範囲内にあることを理解されよう。それに加えて、当業者であれば、本明細書で説明されている発明対象のメカニズムは、さまざまな形態のプログラム製品として配給することができること、また本明細書で説明されている発明対象の例示的な一実施形態は、配給を実際に実行するために使用される特定の種類の信号伝送媒体に関係なく適用されることを理解するであろう。信号伝送媒体の例としては、限定はしないが、フレキシブルディスク、ハードディスクドライブ（ＨＤＤ）、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリなどの記憶型媒体、およびデジタルおよび／またはアナログ通信媒体などの送信型媒体（例えば、光ファイバーケーブル、導波管、有線通信リンク、無線通信リンクなど）が挙げられる。
【００６２】
当業者であれば、本明細書に記載されている様式でデバイスおよび／またはプロセスを記述することがこの分野では一般的であり、これ以降、エンジニアリング技術を用いて、このような説明されているデバイスおよびプロセスをデータ処理システム内に組み込むことを理解されよう。つまり、本明細書で説明されているデバイスおよび／またはプロセスの少なくとも一部は、妥当な回数の実験を行ってデータ処理システム内に組み込むことができる。当業者であれば、典型的なデータ処理システムは、一般的に、システムユニットハウジング、ビデオ表示デバイス、揮発性および不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタルシグナルプロセッサなどのプロセッサ、オペレーティングシステム、ドライバ、グラフィカルユーザーインターフェース、およびアプリケーションプログラムなどの計算実行体、タッチパッドまたは表示画面などの１つまたは複数の対話操作デバイス、および／またはフィードバックループおよび制御モーターを含む制御システム（例えば、位置および／または速度を感知するためのフィードバック、コンポーネントおよび／または量の移動および／または調節用の制御モーター）のうちの１つまたは複数を含むことを理解されよう。典型的なデータ処理システムは、典型的にはデータ計算／通信および／またはネットワーク計算／通信システムに見られるものなどの好適な市販のコンポーネントを使用して実装できる。
【００６３】
本明細書で説明した主題は、それぞれ異なる他の構成要素内に含まれた、またはそれに結び付けられたそれぞれ異なる構成要素を示すことがある。このような示されているアーキテクチャは単なる例であること、また実際に、同じ機能を達成する他の多くのアーキテクチャを実装できることは理解されたい。概念的な考え方として、同じ機能を達成するようにコンポーネントを配置することは、所望の機能が達成されるように実際に「関連付けられる」。したがって、特定の機能を達成するように組み合わされた本明細書の２つのコンポーネントは、アーキテクチャまたは中間コンポーネントに関係なく所望の機能が達成されるように互いに「関連付けられている」ものとみなせる。同様に、そのように関連付けられている２つのコンポーネントは、さらに、所望の機能を達成するように互いに「動作可能なように接続される」か、または「動作可能なように結合される」とみなせ、またそのように関連付けることができる２つのコンポーネントは、さらに、所望の機能を達成するように互いに「動作可能なように結合可能である」とみなせる。動作可能なように結合可能であることの特定の例としては、限定はしないが、物理的に嵌合可能である、および／または物理的に相互にやり取りするコンポーネント、および／または無線で相互にやり取りすることが可能である、および／または無線で相互にやり取りするコンポーネント、および／または論理的に相互にやり取りする、および／または論理的に相互にやり取り可能なコンポーネントが挙げられる。
【００６４】
本明細書における実質的に複数形および／または単数形の語の使用に関して、当業者であれば、背景状況および／または用途に応じて適切に、複数形を単数形に、および／または単数形を複数形に変えることができる。さまざまな単数形／複数形の置き換えは、本明細書ではわかりやすくするために明示的に述べる場合がある。
【００６５】
当業者であれば、一般に、本明細書で使用されている、また特に付属の請求項（例えば、付属の請求項の本文）で使用されている言い回しは、「オープンな（ｏｐｅｎ）」言い回し（例えば、「含むこと」という言い回しは、「限定はしないが、含むこと」と解釈すべきであり、「有する」という言い回しは、「少なくとも有する」と解釈すべきであり、「含む」という言い回しは、「限定はしないが、含む」と解釈すべきである、など）として一般的に意図されていることを理解されよう。さらに、当業者であれば、導入される請求項記述の特定の数が意図されている場合、そのような意図は、請求項内で明示的に記載され、そのような記述がない場合は、そのような意図は存在しないことを理解されたい。例えば、理解の助けとして、付属の請求項に、導入句「少なくとも１つの」および「１つまたは複数の」を使用し請求項記述を導入することができる。しかし、英語原文において、このような語句を使用したとしても、不定冠詞「ａ」または「ａｎ」による請求項記述の導入によって、たとえその請求項が導入句「１つまたは複数の」または「少なくとも１つの」、および「ａ」または「ａｎ」などの不定冠詞を含むとしても、そのような導入される請求項記述を含む特定の請求項がそのような記述を１つしか含まない発明に制限されることを意味すると解釈すべきではなく（例えば、「ａ」および／または「ａｎ」は、典型的には、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）、請求項記述を導入するために使用される定冠詞の使用についても同じことが成り立つ。それに加えて、特定の数の導入される請求項記述が明示的に記載されるとしても、当業者であれば、そのような記述は、典型的には、少なくとも記載されている数を意味するものと解釈すべきであることを理解するであろう（例えば、他に修飾子を付けない「２つの記述」という飾りのない記述は、典型的には、少なくとも２つの記述、または２つ以上の記述を意味する）。さらに、「Ａ、Ｂ、およびＣなどのうちの少なくとも１つ」に類似の慣例的言い回しが使用される場合、一般的に、このような構文は、当業者がこの慣例的言い回しを理解するという意味で意図されたものである（例えば、「Ａ、Ｂ、およびＣのうちの少なくとも１つを有するシステム」は、限定はしないが、Ａだけ、Ｂだけ、Ｃだけ、ＡおよびＢを一緒に、ＡおよびＣを一緒に、ＢおよびＣを一緒に、および／またはＡ、Ｂ、およびＣを一緒に、などを有するシステムを含む）。さらに、当業者であれば、説明中であろうと、請求項中であろうと、図面中であろうと２つ以上の代替語を示す実質的に任意の離接語および／または語句は、複数の語のうちの１つ、複数の語いずれか、または両方の語を含む可能性を考えるものと理解されるべきであることを理解するであろう。例えば、語句「ＡまたはＢ」は、「Ａ」または「Ｂ」または「ＡおよびＢ」の可能性を含むと理解される。
【００６６】
本明細書ではさまざまな態様および実施形態が開示されているが、他の態様および実施形態も当業者には明らかであろう。本明細書で開示されているさまざまな態様および実施形態は、例示することを目的としており、制限することを意図しておらず、真の範囲および精神は以下の請求項によって示される。
【図１】
0005356597.tif 000002
【図２】
0005356597.tif 000003
【図３】
0005356597.tif 000004
【図４】
0005356597.tif 000005
【図５】
0005356597.tif 000006
【図６】
0005356597.tif 000007
【図７】
0005356597.tif 000008
【図８】
0005356597.tif 000009
【図９】
0005356597.tif 000010
【図１０】
0005356597.tif 000011
【図１１】
0005356597.tif 000012
【図１２】
0005356597.tif 000013
【図１３】
0005356597.tif 000014
【図１４】
0005356597.tif 000015
【図１５】
0005356597.tif 000016
【図１６】
0005356597.tif 000017
【図１７】
0005356597.tif 000018