(57)【要約】【課題】サーバベースまたはピアツーピアネットワーク環境において電子デバイスを制御するためのシステムを提供すること。【解決手段】ハンドヘルドコントローラなどの統一インターフェイスを介して様々なデバイスタイプを制御するための手段を提供するデバイス制御システムにおいて、同期プロトコルは、ピアツーピアネットワーク環境においてそのような複数のコントローラ間の同期を確実にし、そのようなコントローラ（５０６）間でカスタム構成を転送するための手段を提供し、そのようなコントローラをピアツーピアネットワーク環境からサーバベースのネットワーク環境へ、またその逆の方向へ移行させるための手段を提供する。【選択図】図１
2010225167.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の電子デバイスを遠隔操作するように構成されたコントローラをスタンドアロンモードからクライアントサーバモードに移行させる方法であって、該コントローラは、スタンドアロンモードのコントローラによって維持される制御構成に従って１つ以上の電子デバイスを遠隔制御し、
該方法は、
サーバを発見することと、
該コントローラによって維持される制御構成に関連するデータを該サーバに伝送することと、
その後、該サーバによって維持される制御構成に従って１つ以上の電子デバイスを制御することと
を包含する、方法。
【請求項２】
前記伝送することが、前記サーバとの前回の同期以後に発生した１つ以上のイベントに関連するデータを該サーバに伝送することを包含する、請求項１に記載の方法。
【請求項３】
前記伝送することが、ユーザ入力に応答して前記コントローラによって維持される制御構成に関連するデータを前記サーバに伝送することを包含する、請求項１に記載の方法。
【請求項４】
前記サーバを発見することが、
クエリーメッセージを伝送することと、
該クエリーメッセージに対する応答を受け取るために一定時間待機することと
を包含する、請求項１に記載の方法。
【請求項５】
１つ以上の電子デバイスを遠隔操作する装置であって、
該装置は、
ネットワークを介して通信を行うように構成されたネットワークインターフェイスと、
ユーザ入力を受け取るように構成されたユーザインターフェイスと、
該ネットワークインターフェイスおよび該ユーザインターフェイスに結合され、該ユーザ入力に応答してコマンドを実行するように構成された制御論理と
を備え、
該制御論理は、該ネットワークに通信可能に結合されたサーバを発見し、該装置によって維持される制御構成に関連するデータを該サーバに伝送し、その後、該装置によって維持される該制御構成に従う代わりに、該サーバによって維持される制御構成に従って該１つ以上の電子デバイスを制御するようにさらに構成されている、装置。
【請求項６】
前記ネットワークインターフェイスがトランシーバを備える、請求項５に記載の装置。
【請求項７】
前記トランシーバが、ＩＥＥＥ  ８０２．３イーサネット（登録商標）プロトコルに準拠する通信を行うように構成されている、請求項６に記載の装置。
【請求項８】
前記トランシーバが、ブルートゥースプロトコルに準拠する無線通信を行うように構成されている、請求項６に記載の装置。
【請求項９】
前記トランシーバが、ＩＥＥＥ  ８０２．１１プロトコルに準拠する無線通信を行うように構成されている、請求項６に記載の装置。
【請求項１０】
前記制御論理が、前記サーバとの前回の同期以後に発生した１つ以上のイベントに関連するデータを該サーバに伝送するように構成されている、請求項５に記載の装置。
【請求項１１】
前記制御論理が、ユーザ入力に応答して前記装置によって維持される制御構成に関連するデータを前記サーバに伝送するように構成されている、請求項５に記載の装置。
【請求項１２】
前記制御論理が、前記ネットワークインターフェイスを介してクエリーメッセージを伝送することと、該クエリーメッセージに対する応答を受け取るために一定時間待機することとによって、前記サーバを発見するように構成されている、請求項５に記載の装置。
【請求項１３】
システムであって、
電子デバイスと、
ネットワークを介して該電子デバイスに通信可能に結合されたコントローラであって、該コントローラは、該ネットワークを介して該電子デバイスを遠隔制御するように構成されている、コントローラと、
該ネットワークを介して該電子デバイスおよび該コントローラに通信可能に結合されたサーバと
を備え、
該コントローラは、該サーバを発見し、該コントローラによって維持される制御構成に関連するデータを該サーバに伝送し、その後、該コントローラによって維持される該制御構成に従う代わりに、該サーバによって維持される制御構成に従って該電子デバイスを制御するようにさらに構成されている、システム。
【請求項１４】
前記ネットワークが無線ローカルエリアネットワークを含む、請求項１３に記載のシステム。
【請求項１５】
前記コントローラが、ＩＥＥＥ  ８０２．１１リンクを介して前記ネットワークに通信可能に結合されている、請求項１３に記載のシステム。
【請求項１６】
前記コントローラが、携帯情報端末またはウェブパッドのうちの１つを備える、請求項１３に記載のシステム。
【請求項１７】
前記電子デバイスが、コンピュータ、コンピュータ周辺機器、テレビ、ビデオカセットレコーダ、デジタル多用途ディスクプレーヤー、パーソナルビデオレコーダ、コンパクトディスクプレーヤー、ステレオレシーバ、電子サーモスタット、ＵＰｎＰデジタルメディアレンダラおよび／またはサーバ、ランプ、またはビデオカメラのうちの１つを備える、請求項１３に記載のシステム。
【請求項１８】
前記コントローラが、前記サーバとの前回の同期以後に発生した１つ以上のイベントに関連するデータを該サーバに伝送するように構成されている、請求項１３に記載のシステム。
【請求項１９】
前記コントローラが、ユーザ入力に応答して該コントローラによって維持される制御構成に関連するデータを前記サーバに伝送するように構成されている、請求項１３に記載のシステム。
【請求項２０】
前記コントローラが、前記ネットワークを介してクエリーメッセージを伝送することと、該クエリーメッセージに対する応答を受け取るために一定時間待機することとによって、前記サーバを発見するように成されている、請求項１３に記載のシステム。
【請求項２１】
１つ以上の電子デバイスを遠隔操作するように構成されたコントローラをクライアントサーバモードから移行させる方法であって、該コントローラは、サーバによって維持される制御構成に従って該１つ以上の電子デバイスをスタンドアロンモードに遠隔制御し、
該方法は、
該サーバによって維持される該制御構成に関連するデータを該サーバから受け取ることと、
その後、該コントローラによって維持される制御構成に従って該１つ以上の電子デバイスを制御することと
を包含する、方法。
【請求項２２】
前記サーバから受け取った前記データのコピーを第２のコントローラに伝送することをさらに含む、請求項２１に記載の方法。
【請求項２３】
１つ以上の電子デバイスを遠隔操作する装置であって、
該装置は、
ネットワークを介して通信を行うように構成されたネットワークインターフェイスと、
ユーザ入力を受け取るように構成されたユーザインターフェイスと、
該ネットワークインターフェイスおよび該ユーザインターフェイスに結合され、該ユーザ入力に応答してコマンドを実行するように構成された制御論理と
を備え、
該制御論理は、該サーバによって維持される制御構成に関連するデータを該ネットワークに通信可能に結合されたサーバから受け取り、その後、該サーバによって維持される該制御構成に従う代わりに、該装置によって維持される制御構成に従って該１つ以上の電子デバイスを制御するようにさらに構成されている、装置。
【請求項２４】
前記制御論理が、前記サーバから受け取った前記データのコピーを、前記ネットワークに通信可能に結合された第２の装置に伝送するようにさらに構成されている、請求項２３に記載の装置。
【請求項２５】
システムであって、
電子デバイスと、
ネットワークを介して該電子デバイスに通信可能に結合されたコントローラであって、該ネットワークを介して該電子デバイスを遠隔制御するように構成されたコントローラと、
該ネットワークを介して該電子デバイスおよび該コントローラに通信可能に結合されたサーバと
を備え、
該コントローラは、該サーバによって維持される制御構成に関連するデータを該サーバから受け取り、その後、該サーバによって維持される該制御構成に従う代わりに、該コントローラによって維持される制御構成に従って該電子デバイスを制御するようにさらに構成されている、システム。
【請求項２６】
前記コントローラが、前記サーバから受け取った前記データのコピーを、前記ネットワークに通信可能に結合された第２のコントローラに伝送するようさらに構成されている、請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してデバイス制御を対象とするものである。特に、本発明は、サーバベースまたはピアツーピアネットワーク環境において電子デバイスを制御するためのシステム、方法および装置に関する。
【背景技術】
【０００２】
家庭およびオフィス環境において利用される遠隔操作可能な電子デバイスの数および種類が増加の一途をたどっている。そのようなデバイスは、赤外線（ＩＲ）またはシリアルコマンドコードを実装する、ハンドヘルドリモートによる制御に適合されるレガシーコンシューマ電子デバイスや、ＵＰｎＰＴＭプロトコルに準拠するデバイスなどの、有線または無線のネットワークを介する制御に適合される電子デバイスを含む。
【０００３】
従来型のデバイス制御ソリューションは、単一のハンドヘルドコントローラなどの統一インターフェイスを介して前述のデバイスタイプを制御するための手段を提供しない。さらに、従来型のデバイス制御ソリューションは、ピアツーピアネットワーク環境においてそのような複数のコントローラ間の同期を確実にするための手段、そのようなコントローラ間でカスタム構成を転送するための手段、およびそのようなコントローラをピアツーピアネットワーク環境からサーバベースのネットワーク環境へ、またその逆の方向へ移行させるための手段を提供しない。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書で開示する発明は、ハンドヘルドコントローラなどの統一インターフェイスを介して様々なデバイスタイプを制御するための手段を提供するデバイス制御システムにおいて使用される。本発明に従って、同期プロトコルは、ピアツーピアネットワーク環境においてそのような複数のコントローラ間の同期を確実にし、そのようなコントローラ間でカスタム構成を転送するための手段を提供し、そのようなコントローラをピアツーピアネットワーク環境からサーバベースのネットワーク環境へ、移行させるための手段を提供する。
【０００５】
特に、本発明の実施形態は、第１のコントローラを第２のコントローラと同期させるための方法を提供し、前記第１および第２のコントローラはそれぞれ１つ以上の電子デバイスを遠隔制御するように適合される。前記方法は、前記第２のコントローラを発見するステップと、前記第１および第２のコントローラを同期させるための第１コントローラ同期データを生成するステップと、前記第１コントローラ同期データに関連するメッセージを前記第２のコントローラへ伝送するステップとを含む。第１コントローラ同期データは、１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作を変更するコマンドの実行に応じて、前記第１のコントローラの制御構成を変更するコマンドの実行に応じて、または、前記１つ以上の電子デバイスのうち少なくとも１つの構成、ステータスおよび／または操作において検出された変更に応じて生成され得る。
【０００６】
本発明の別の実施形態において、１つ以上の電子デバイスを遠隔制御するための装置が提供される。前記装置は、ネットワーク上での通信に適合するネットワークインターフェイスと、ユーザ入力を受け取るように適合されるユーザインターフェイスと、前記ネットワークインターフェイスおよび前記ユーザインターフェイスに連結され、前記ユーザ入力に応じてコマンドを実行するよう適合された制御論理とを含む。前記制御論理は、前記ネットワークに通信可能なように連結された前記１つ以上の電子デバイスを制御するための第２の装置を発見し、前記装置を前記第２の装置と同期するための同期データを生成し、前記ネットワークインターフェイスを介して前記同期データに関連するメッセージを前記第２の装置へ伝送するようさらに適合される。同期データは、前記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作を変更するコマンドの実行に応じて、前記装置の制御構成を変更するコマンドの実行に応じて、または、前記１つ以上の電子デバイスのうち少なくとも１つの構成、ステータスおよび／または操作において検出された変更に応じて生成され得る。
【０００７】
本発明のさらなる実施形態において、デバイス制御のためのシステムが提供される。前記システムは、電子デバイスと、無線ネットワークなどのネットワークを介して、前記電子デバイスおよび互いに通信可能なように連結された第１および第２のコントローラとを含む。第１および第２のコントローラのそれぞれは、前記ネットワークを介して前記電子デバイスを遠隔制御するように適合される。前記第１のコントローラは、前記第２のコントローラを発見し、前記第１および第２のコントローラを同期するための第１コントローラ同期データを生成し、前記ネットワーク上で前記第１コントローラ同期データに関連するメッセージを前記第２のコントローラへ伝送するようにさらに適合される。第１コントローラ同期データは、前記電子デバイスの構成、ステータスおよび／または操作を変更するコマンドの実行に応じて、前記第１のコントローラの制御構成を変更するコマンドの実行に応じて、または、前記電子デバイスの構成、ステータスおよび／または操作において検出された変更に応じて生成され得る。
【０００８】
本発明のさらなる実施形態において、第１のコントローラを第２のコントローラと同期させるための方法が提供され、前記第１および第２のコントローラのそれぞれは、１つ以上の電子デバイスを遠隔操作するように適合される。前記方法は、前記第２のコントローラを発見するステップと、前回の同期以後に発生した１つ以上の第１のコントローライベントに関連する第１のデータを前記第２のコントローラへ伝送するステップと、前記前回の同期以後に発生した１つ以上の第２のコントローライベントに関連する第２のデータを前記第２のコントローラから受け取るステップとを含む。前記方法はまた、前記第１および第２のデータに基づくイベントのログを更新するステップを含んでもよく、当該ステップは、第１のコントローライベントに関連するデータを第２のコントローライベントに関連するデータと比較するステップと、前記第１のコントローライベントに関連するデータが前記第２のコントローライベントに関連するデータと矛盾する場合、前記第１のコントローライベントに関わるタイムスタンプが前記第２のコントローライベントに関わるタイムスタンプより早い場合に限り、イベントのログを更新するステップとをさらに含んでもよい。前記方法は、前記第１のコントローラの制御構成を、前記第２のデータに基づいて前記第２のコントローラの制御構成と一致させるために変更するステップをさらに含むことができる。
【０００９】
別の実施形態において、１つ以上の電子デバイスを遠隔操作するための装置が提供される。前記装置は、ネットワーク上での通信に適合するネットワークインターフェイスと、ユーザ入力を受け取るように適合されるユーザインターフェイスと、前記ネットワークインターフェイスおよび前記ユーザインターフェイスに連結され、前記ユーザ入力に応じてコマンドを実行するよう適合された制御論理とを含む。前記制御論理は、前記ネットワークに通信可能なように連結された前記１つ以上の電子デバイスを制御するための第２の装置を発見し、前回の同期以後に発生した１つ以上の第１のコントローライベントに関連する第１のデータを前記第２の装置へ伝送し、前回の同期以後に発生した１つ以上の第２のコントローライベントに関連する第２のデータを前記第２の装置から受け取るようさらに適合される。前記制御論理は、前記第１および第２のデータに基づきメモリ内に格納されたイベントのログを更新するようさらに適合されてもよく、当該ステップは、第１のコントローライベントに関連するデータを第２のコントローライベントに関連するデータと比較するステップと、前記第１のコントローライベントに関連するデータが前記第２のコントローライベントに関連するデータと矛盾する場合、前記第１のコントローライベントに関わるタイムスタンプが前記第２のコントローライベントに関わるタイムスタンプより早い場合に限り、イベントのログを更新するステップとをさらに含んでもよい。また前記制御論理は、前記装置の制御構成を、前記第２のデータに基づいて前記第２の装置の制御構成と一致させるために変更するようさらに適合され得る。
【００１０】
さらなる実施形態において、デバイス制御のためのシステムが提供される。前記システムは、電子デバイスと、無線ネットワークなどのネットワークを介して、前記電子デバイスおよび互いに通信可能なように連結された第１および第２のコントローラとを含む。第１および第２のコントローラのそれぞれは、前記ネットワークを介して前記電子デバイスを遠隔制御するように適合される。前記第１のコントローラは、前記第２のコントローラを発見し、前回の同期以後に発生した１つ以上の第１のコントローライベントに関連する第１のデータを前記第２のコントローラへ伝送し、前回の同期以後に発生した１つ以上の第２のコントローライベントに関連する第２のデータを前記第２のコントローラから受け取るようさらに適合される。前記第１のコントローラは、前記第１および第２のデータに基づくイベントのログを更新するようさらに適合されてもよく、当該ステップは、第１のコントローライベントに関連するデータを第２のコントローライベントに関連するデータと比較するステップと、前記第１のコントローライベントに関連するデータが前記第２のコントローライベントに関連するデータと矛盾する場合、前記第１のコントローライベントに関わるタイムスタンプが前記第２のコントローライベントに関わるタイムスタンプより早い場合に限り、イベントのログを更新するステップとをさらに含んでもよい。また前記第１のコントローラは、前記第１のコントローラの制御構成を、前記第２のデータに基づいて前記第２のコントローラの制御構成と一致させるために変更するようさらに適合され得る。
【００１１】
さらなる実施形態において、１つ以上の電子デバイスを遠隔操作するよう適合されるコントローラを、スタンドアロンモードからクライアントサーバモードへ移行させるための方法が提供される。初めに、前記コントローラはスタンドアロンモードのコントローラにより維持される制御構成に従って１つ以上の電子デバイスを遠隔操作する。前記方法は、サーバを発見するステップと、前記コントローラにより維持される制御構成に関連するデータを前記サーバへ伝送するステップと、その後前記サーバにより維持される制御構成に従って１つ以上の電子デバイスを制御するステップとを含む。
【００１２】
別の実施形態において、１つ以上の電子デバイスを遠隔操作するための装置が提供される。前記装置は、ネットワーク上での通信に適合するネットワークインターフェイスと、ユーザ入力を受け取るように適合されるユーザインターフェイスと、前記ネットワークインターフェイスおよび前記ユーザインターフェイスに連結され、前記ユーザ入力に応じてコマンドを実行するよう適合された制御論理とを含む。前記制御論理は、前記ネットワークに通信可能なように連結されたサーバを発見し、前記装置により維持される制御構成に関連するデータを前記サーバへ伝送し、その後、前記装置により維持される前記制御構成に従う代わりに前記サーバにより維持される制御構成に従って前記１つ以上の電子デバイスを制御するようさらに適合される。
【００１３】
さらなる実施形態において、デバイス制御システムが提供される。前記システムは、電子デバイスと、無線ネットワークなどのネットワークを介して前記電子デバイスに通信可能なように連結されたコントローラと、前記ネットワークを介して前記電子デバイスを遠隔操作するよう適合される前記コントローラと、前記ネットワークを介して前記電子デバイスおよび前記コントローラに通信可能なように連結されたサーバとを含む。前記コントローラは、前記サーバを発見し、前記コントローラにより維持される制御構成に関連するデータを前記サーバへ伝送し、その後、前記コントローラにより維持される前記制御構成に従う代わりに前記サーバにより維持される制御構成に従って前記電子デバイスを制御するようさらに適合される。
【００１４】
さらなる実施形態において、１つ以上の電子デバイスを遠隔操作するよう適合されるコントローラを、クライアントサーバモードからスタンドアロンモードへ移行させるための方法が提供される。初めに、前記コントローラはサーバにより維持される制御構成に従って１つ以上の電子デバイスを遠隔操作する。前記方法は、前記サーバにより維持される前記制御構成に関連するデータを前記サーバから受け取るステップと、その後、前記コントローラにより維持される制御構成に従って１つ以上の電子デバイスを制御するステップとを含む。
【００１５】
別の実施形態において、１つ以上の電子デバイスを遠隔操作するための装置が提供される。前記装置は、ネットワーク上での通信に適合するネットワークインターフェイスと、ユーザ入力を受け取るように適合されるユーザインターフェイスと、前記ネットワークインターフェイスおよび前記ユーザインターフェイスに連結され、前記ユーザ入力に応じてコマンドを実行するよう適合された制御論理とを含む。前記制御論理は、前記サーバにより維持される制御構成に関連するデータを前記ネットワークに通信可能なように連結されたサーバから受け取り、その後、前記サーバにより維持される制御構成に従うかわりに前記装置により維持される制御構成に従って１つ以上の電子デバイスを制御するようさらに適合される。
【００１６】
さらなる実施形態において、デバイス制御システムが提供される。前記システムは、電子デバイスと、無線ネットワークなどのネットワークを介して前記電子デバイスに通信可能なように連結されたコントローラと、前記ネットワークを介して前記電子デバイスを遠隔操作するよう適合される前記コントローラと、前記ネットワークを介して前記電子デバイスおよび前記コントローラに通信可能なように連結されたサーバとを含む。前記コントローラは、前記サーバにより維持される制御構成に関連するデータを前記サーバから受け取り、その後、前記サーバにより維持される前記制御構成に従う代わりに前記コントローラにより維持される制御構成に従って前記電子デバイスを制御するようさらに適合される。
【００１７】
本発明の様々な実施形態の構造および操作や、本発明のさらなる特徴および利点を、付随する図面を参照し以下に詳しく説明する。本発明は、本明細書に記載される特定の実施形態に限定されるものではないことを述べておく。そのような実施形態は、例示のみを目的として本明細書に提示されるものである。本明細書に含まれる教示に基づき、当業者にはさらなる実施形態が明白であろう。
【００１８】
付随する図面は、ここに組み込まれ本明細書の一部を形成するものであり、本発明を図示し、記述と併せてさらに本発明の原理を説明し、当業者が本発明を作成し使用できるようにする役割を果たす。
【００１９】
本発明の特徴および利点は、図面と併せて以下に説明する詳細な説明からより明らかになり、類似の参照文字は全体を通して対応する要素を特定するものである。図面中において、類似の参照番号は概して、同一の、機能的に同様の、および／または構造的に同様の要素を示す。要素が最初に現れる図面は、対応する参照番号の左端の桁により示される。
例えば、本発明は以下の項目を提供する。
（項目１）
第１のコントローラを第２のコントローラと同期させるための方法であって、
該第１および第２のコントローラはそれぞれ１つ以上の電子デバイスを遠隔制御するように適合され、該方法は、
該第２のコントローラを発見することと、
該第１および第２のコントローラを同期させるための第１コントローラ同期データを生成することと、
該第１コントローラ同期データに関連するメッセージを該第２のコントローラへ伝送することと
を包含する、方法。
（項目２）
上記第２のコントローラを発見することが、
クエリーメッセージを伝送することと、
該クエリーメッセージに対する応答を受け取るために一定時間待機することと
を包含する、項目１に記載の方法。
（項目３）
上記第１コントローラ同期データを生成することが、コマンドの実行に応答して該第１コントローラ同期データを生成することを包含する、項目１に記載の方法。
（項目４）
上記コマンドの実行に応答して上記第１コントローラ同期データを生成することが、
上記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作を変更するコマンドの実行に応答して該第１コントローラ同期データを生成することを包含する、項目３に記載の方法。
（項目５）
上記コマンドの実行に応答して上記第１コントローラ同期データを生成することが、
上記第１のコントローラの制御構成を変更するコマンドの実行に応答して該第１コントローラ同期データを生成することを包含する、項目３に記載の方法。
（項目６）
上記第１コントローラ同期データを生成することが、上記１つ以上の電子デバイスのうち少なくとも１つの構成、ステータスおよび／または操作において検出された変更に応答して該第１コントローラ同期データを生成することを包含する、項目１に記載の方法。
（項目７）
第２コントローラ同期データに関連するメッセージを上記第２のコントローラから受け取ることと、
該メッセージを受け取ることに応答してログを更新することと
をさらに包含する、項目１に記載の方法。
（項目８）
第２コントローラ同期データに関連するメッセージを上記第２のコントローラから受け取ることと、
上記第１のコントローラの制御構成を、該メッセージを受け取ることに応答して、該第２のコントローラの制御構成と一致させるために変更することと
をさらに包含する、項目１に記載の方法。
（項目９）
１つ以上の電子デバイスを遠隔制御するための装置であって、該装置は、
ネットワーク上での通信に適合するネットワークインターフェイスと、
ユーザ入力を受け取るように適合されるユーザインターフェイスと、
該ネットワークインターフェイスおよび該ユーザインターフェイスに連結され、該ユーザ入力に応答してコマンドを実行するよう適合された制御論理と
を備え、該制御論理は、該ネットワークに通信可能なように連結された該１つ以上の電子デバイスを制御するための第２の装置を発見し、該装置を該第２の装置と同期するための同期データを生成し、該ネットワークインターフェイスを介して該同期データに関連するメッセージを該第２の装置へ伝送するようさらに適合される、装置。
（項目１０）
上記ネットワークインターフェイスがトランシーバを備える、項目９に記載の装置。
（項目１１）
上記トランシーバがＩＥＥＥ  ８０２．３イーサネット（登録商標）プロトコルに準拠する通信に適合される、項目１０に記載の装置。
（項目１２）
上記トランシーバがブルートゥースプロトコルに準拠する無線通信に適合される、項目１０に記載の装置。
（項目１３）
上記トランシーバがＩＥＥＥ  ８０２．１１プロトコルに準拠する無線通信に適合される、項目１０に記載の装置。
（項目１４）
上記制御論理が、上記ネットワークインターフェイスを介してクエリーメッセージを伝送することと、該クエリーメッセージに対する応答を受け取るために一定時間待機することとによって、上記第２の装置を発見するよう適合される、項目９に記載の装置。
（項目１５）
上記制御論理が、コマンドの実行に応答して上記同期データを生成するよう適合される、項目９に記載の装置。
（項目１６）
上記制御論理が、上記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作を変更するコマンドの実行に応答して上記同期データを生成するよう適合される、項目１５に記載の装置。
（項目１７）
上記制御論理が、上記装置の制御構成を変更するコマンドの実行に応答して上記同期データを生成するよう適合される、項目１５に記載の装置。
（項目１８）
上記制御論理が、上記１つ以上の電子デバイスのうち少なくとも１つの構成、ステータスおよび／または操作において検出された変更に応じて上記同期データを生成するよう適合される、項目９に記載の装置。
（項目１９）
上記装置がメモリをさらに備え、上記制御論理が、第２装置同期データに関連するメッセージを上記第２の装置から受け取り、該メッセージの受け取りに応答して該メモリ内に格納されたログを更新するようさらに適合される、項目９に記載の装置。
（項目２０）
上記制御論理が、上記ネットワークインターフェイスを介して第２装置同期データに関連するメッセージを上記第２の装置から受け取り、上記装置の制御構成を、該メッセージの受け取りに応答して該第２の装置の制御構成に一致させるために変更するようさらに適合される、項目９に記載の装置。
（項目２１）
システムであって、
電子デバイスと、
ネットワークを介して該電子デバイスおよび互いに通信可能なように連結された第１および第２のコントローラであって、該第１および第２のコントローラのそれぞれは、該ネットワークを介して該電子デバイスを遠隔制御するように適合される、第１および第２のコントローラと
を備え、該第１のコントローラは、該第２のコントローラを発見し、該第１および第２のコントローラを同期するための第１コントローラ同期データを生成し、該第１コントローラ同期データに関連するメッセージを該ネットワーク上で該第２のコントローラへ伝送するようさらに適合される、システム。
（項目２２）
上記ネットワークが無線ローカルエリアネットワークを含む、項目２１に記載のシステム。
（項目２３）
上記第１および第２のコントローラが、それぞれのＩＥＥＥ  ８０２．１１リンクを介してそれぞれ通信可能なように上記ネットワークに連結される、項目２１に記載のシステム。
（項目２４）
上記第１および第２のコントローラが、それぞれ携帯情報端末またはウェブパッドのうちの１つを備える、項目２１に記載のシステム。
（項目２５）
上記電子デバイスが、コンピュータ、コンピュータ周辺機器、テレビ、ビデオカセットレコーダ、デジタル多用途ディスクプレーヤー、パーソナルビデオレコーダ、コンパクトディスクプレーヤー、ステレオレシーバ、電子サーモスタット、ＵＰｎＰデジタルメディアレンダラおよび／またはサーバ、ランプ、またはビデオカメラのうちの１つを備える、項目２１に記載のシステム。
（項目２６）
上記第１のコントローラが、上記ネットワーク上でクエリーメッセージを送信し、該クエリーメッセージに対する応答を受け取るために一定時間待機することにより、上記第２のコントローラを発見するよう適合される、項目２１に記載のシステム。
（項目２７）
上記第１のコントローラが、コマンドの実行に応答して上記第１コントローラ同期データを生成するよう適合される、項目２１に記載のシステム。
（項目２８）
上記第１のコントローラが、上記電子デバイスの構成、ステータスおよび／または操作を変更するコマンドの実行に応答して上記第１コントローラ同期データを生成するよう適合される、項目２７に記載のシステム。
（項目２９）
上記第１のコントローラが、該第１のコントローラの制御構成を変更するコマンドの実行に応答して上記第１コントローラ同期データを生成するよう適合される、項目２７に記載のシステム。
（項目３０）
上記第１のコントローラが、上記電子デバイスの構成、ステータスおよび／または操作において検出された変更に応じて上記第１コントローラ同期データを生成するよう適合される、項目２１に記載のシステム。
（項目３１）
上記第１のコントローラが、第２コントローラ同期データに関連するメッセージを上記ネットワーク上で上記第２のコントローラから受け取り、該メッセージの受け取りに応答してログを更新するようさらに適合される、項目２１に記載のシステム。
（項目３２）
上記第１のコントローラが、第２コントローラ同期データに関連するメッセージを上記ネットワーク上で上記第２のコントローラから受け取り、上記第１のコントローラの制御構成を、該メッセージの受け取りに応答して、該第２のコントローラの制御構成と一致させるために変更するようさらに適合される、項目２１に記載のシステム。
（項目３３）
第１のコントローラを第２のコントローラと同期させるための方法であって、該第１および第２のコントローラのそれぞれは１つ以上の電子デバイスを遠隔操作するように適合され、該方法は、
該第２のコントローラを発見することと、
前回の同期以後に発生した１つ以上の第１のコントローライベントに関連する第１のデータを該第２のコントローラへ伝送することと、
該前回の同期以後に発生した１つ以上の第２のコントローライベントに関連する第２のデータを該第２のコントローラから受け取ることと
を包含する、方法。
（項目３４）
上記第２のコントローラを発見することが、
クエリーメッセージを伝送することと、
該クエリーメッセージに対する応答を受け取るために一定時間待機することと
を包含する、項目３３に記載の方法。
（項目３５）
上記１つ以上の第１のコントローライベントのうちの少なくとも１つがコマンドの実行に関連する、項目３３に記載の方法。
（項目３６）
上記１つ以上の第１のコントローライベントのうちの上記少なくとも１つが、上記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作を変更するコマンドの実行に関連する、項目３５に記載の方法。
（項目３７）
上記１つ以上の第１のコントローライベントのうちの上記少なくとも１つが、該第１のコントローラの制御構成を変更するコマンドの実行に関連する、項目３５に記載の方法。
（項目３８）
上記１つ以上の第１のコントローライベントのうちの少なくとも１つが、上記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作において検出された変更に関連する、項目３３に記載の方法。
（項目３９）
上記第１および第２のデータに基づいてイベントのログを更新することをさらに包含する、項目３３に記載の方法。
（項目４０）
上記第１および第２のデータに基づいてイベントのログを更新することが、
第１のコントローライベントに関連するデータを第２のコントローライベントに関連するデータと比較することと、
該第１のコントローライベントに関連する該データが該第２のコントローライベントに関連する該データと矛盾する場合、該第１のコントローライベントに関わるタイムスタンプが該第２のコントローライベントに関わるタイムスタンプより早い場合に限り、イベントの該ログを更新することと
をさらに包含する、項目３９に記載の方法。
（項目４１）
上記第１のコントローラの制御構成を、上記第２のデータに基づいて上記第２のコントローラの制御構成と一致させるために変更することをさらに包含する、項目３３に記載の方法。
（項目４２）
上記第１のコントローラの制御構成を変更することが、
該第１のコントローラの制御構成の該変更を確認するようユーザに指示することを包含する、項目４１に記載の方法。
（項目４３）
１つ以上の電子デバイスを遠隔制御するための装置であって、
ネットワーク上での通信に適合するネットワークインターフェイスと、
ユーザ入力を受け取るように適合されるユーザインターフェイスと、
該ネットワークインターフェイスおよび該ユーザインターフェイスに連結され、該ユーザ入力に応じてコマンドを実行するよう適合された制御論理と、
を備え、該制御論理は、該ネットワークに通信可能なように連結された該１つ以上の電子デバイスを制御するための第２の装置を発見し、前回の同期以後に発生した１つ以上の第１のコントローライベントに関連する第１のデータを該第２の装置へ伝送し、該前回の同期以後に発生した１つ以上の第２のコントローライベントに関連する第２のデータを該第２の装置から受け取るようさらに適合される、装置。
（項目４４）
上記ネットワークインターフェイスがトランシーバを備える、項目４３に記載の装置。
（項目４５）
上記トランシーバがＩＥＥＥ  ８０２．３イーサネット（登録商標）プロトコルに準拠する通信に適合される、項目４４に記載の装置。
（項目４６）
上記トランシーバがブルートゥースプロトコルに準拠する無線通信に適合される、項目４４に記載の装置。
（項目４７）
上記トランシーバがＩＥＥＥ  ８０２．１１プロトコルに準拠する無線通信に適合される、項目４４に記載の装置。
（項目４８）
上記制御論理が、上記ネットワークインターフェイスを介してクエリーメッセージを伝送することと、該クエリーメッセージに対する応答を受け取るために一定時間待機することとによって、上記第２の装置を発見するよう適合される、項目４３に記載の装置。
（項目４９）
上記１つ以上の第１のコントローライベントのうちの少なくとも１つがコマンドの実行に関連する、項目４３に記載の装置。
（項目５０）
上記１つ以上の第１のコントローライベントのうちの上記少なくとも１つが、上記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作を変更するコマンドの実行に関連する、項目４９に記載の装置。
（項目５１）
上記１つ以上の第１のコントローライベントのうちの上記少なくとも１つが、上記装置の制御構成を変更するコマンドの実行に関連する、項目４９に記載の装置。
（項目５２）
上記１つ以上の第１のコントローライベントのうちの少なくとも１つが、上記１つ以上の電子デバイスのうちの１つの構成、ステータスおよび／または操作において検出された変更に関連する、項目４３に記載の装置。
（項目５３）
上記装置がメモリをさらに備え、上記制御論理が、上記第１および第２のデータに基づいて、該メモリ内に格納されたイベントのログを更新するようさらに適合される、項目４３に記載の装置。
（項目５４）
上記制御論理が、第１のコントローライベントに関連するデータを第２のコントローライベントに関連するデータと比較し、該第１のコントローライベントに関連する該データが該第２のコントローライベントに関連する該データと矛盾する場合、該第１のコントローライベントに関わるタイムスタンプが該第２のコントローライベントに関わるタイムスタンプより早い場合に限り、イベントの上記ログを更新するよう適合される、項目５３に記載の装置。
（項目５５）
上記制御論理が、上記装置の制御構成を、上記第２のデータに基づいて上記第２の装置の制御構成と一致させるために変更するようさらに適合される、項目４３に記載の装置。
（項目５６）
上記制御論理が、上記ユーザインターフェイスを介して上記装置の上記制御構成の上記変更を確認するようユーザに指示するよう適合される、項目５５に記載の装置。
（項目５７）
システムであって、
電子デバイスと、
ネットワークを介して該電子デバイスおよび互いに通信可能なように連結された第１および第２のコントローラであって、該第１および第２のコントローラのそれぞれは、該ネットワークを介して該電子デバイスを遠隔制御するように適合される、第１および第２のコントローラと
を備え、該第１のコントローラは、該第２のコントローラを発見し、前回の同期以後に発生した１つ以上の第１のコントローライベントに関連する第１のデータを該第２のコントローラへ伝送し、該前回の同期以後に発生した１つ以上の第２のコントローライベントに関連する第２のデータを該第２のコントローラから受け取るようさらに適合される、システム。
（項目５８）
上記ネットワークが無線ローカルエリアネットワークを含む、項目５７に記載のシステム。
（項目５９）
上記第１および第２のコントローラが、それぞれのＩＥＥＥ  ８０２．１１リンクを介してそれぞれ通信可能なように上記ネットワークに連結される、項目５７に記載のシステム。
（項目６０）
上記第１および第２のコントローラが、それぞれ携帯情報端末またはウェブパッドのうちの１つを備える、項目５７に記載のシステム。
（項目６１）
上記電子デバイスが、コンピュータ、コンピュータ周辺機器、テレビ、ビデオカセットレコーダ、デジタル多用途ディスクプレーヤー、パーソナルビデオレコーダ、コンパクトディスクプレーヤー、ステレオレシーバ、電子サーモスタット、ＵＰｎＰデジタルメディアレンダラおよび／またはサーバ、ランプ、またはビデオカメラのうちの１つを備える、項目５７に記載のシステム。
（項目６２）
上記第１のコントローラが、上記ネットワーク上でクエリーメッセージを伝送し、該クエリーメッセージに対する応答を受け取るために一定時間待機することにより、上記第２のコントローラを発見するよう適合される、項目５７に記載のシステム。
（項目６３）
上記１つ以上の第１のコントローライベントのうちの少なくとも１つがコマンドの実行に関連する、項目５７に記載のシステム。
（項目６４）
上記１つ以上の第１のコントローライベントのうちの上記少なくとも１つが、上記電子デバイスの構成、ステータスおよび／または操作を変更するコマンドの実行に関連する、項目６３に記載のシステム。
（項目６５）
上記１つ以上の第１のコントローライベントのうちの上記少なくとも１つが、上記第１のコントローラの制御構成を変更するコマンドの実行に関連する、項目６３に記載のシステム。
（項目６６）
上記１つ以上の第１のコントローライベントのうちの少なくとも１つが、上記電子デバイスの構成、ステータスおよび／または操作において検出された変更に関連する、項目５７に記載のシステム。
（項目６７）
上記第１のコントローラが、上記第１および第２のデータに基づいてイベントのログを更新するようさらに適合される、項目５７に記載のシステム。
（項目６８）
上記第１のコントローラが、第１のコントローライベントに関連するデータを第２のコントローライベントに関連するデータと比較し、該第１のコントローライベントに関連する該データが該第２のコントローライベントに関連する該データと矛盾する場合、該第１のコントローライベントに関わるタイムスタンプが該第２のコントローライベントに関わるタイムスタンプより早い場合に限り、イベントの上記ログを更新するよう適合される、項目６７に記載のシステム。
（項目６９）
上記第１のコントローラが、上記第１のコントローラの制御構成を、上記第２のデータに基づいて上記第２のコントローラの制御構成と一致させるために変更するようさらに適合される、項目５７に記載のシステム。
（項目７０）
上記第１のコントローラが、上記第１のコントローラの上記制御構成の上記変更を確認するようユーザに指示するよう適合される、項目６９に記載のシステム。
（項目７１）
１つ以上の電子デバイスを遠隔操作するよう適合されるコントローラを、スタンドアロンモードからクライアントサーバモードへ移行させるための方法であって、該コントローラはスタンドアロンモードのコントローラにより維持される制御構成に従って１つ以上の電子デバイスを遠隔制御し、該方法は、
サーバを発見することと、
該コントローラにより維持される制御構成に関連するデータを該サーバへ伝送することと、
その後該サーバにより維持される制御構成に従って１つ以上の電子デバイスを制御することと
を包含する、方法。
（項目７２）
上記伝送することが、上記サーバとの前回の同期以後に発生した１つ以上のイベントに関連するデータを該サーバへ伝送することを包含する、項目７１に記載の方法。
（項目７３）
上記伝送することが、ユーザ入力に応答して上記コントローラにより維持される制御構成に関連するデータを上記サーバへ伝送することを包含する、項目７１に記載の方法。
（項目７４）
上記サーバを発見することが、
クエリーメッセージを伝送することと、
該クエリーメッセージに対する応答を受け取るために一定時間待機することと
を包含する、項目７１に記載の方法。
（項目７５）
１つ以上の電子デバイスを遠隔操作するための装置であって、
ネットワーク上での通信に適合するネットワークインターフェイスと、
ユーザ入力を受け取るように適合されるユーザインターフェイスと、
該ネットワークインターフェイスおよび該ユーザインターフェイスに連結され、該ユーザ入力に応答してコマンドを実行するよう適合された制御論理と
を備え、該制御論理は、該ネットワークに通信可能なように連結されたサーバを発見し、該装置により維持される制御構成に関連するデータを該サーバへ伝送し、その後、該装置により維持される該制御構成に従う代わりに該サーバにより維持される制御構成に従って該１つ以上の電子デバイスを制御するようさらに適合される、装置。
（項目７６）
上記ネットワークインターフェイスがトランシーバを備える、項目７５に記載の装置。
（項目７７）
上記トランシーバがＩＥＥＥ  ８０２．３イーサネット（登録商標）プロトコルに準拠する通信に適合される、項目７６に記載の装置。
（項目７８）
上記トランシーバがブルートゥースプロトコルに準拠する無線通信に適合される、項目７６に記載の装置。
（項目７９）
上記トランシーバがＩＥＥＥ  ８０２．１１プロトコルに準拠する無線通信に適合される、項目７６に記載の装置。
（項目８０）
上記制御論理が、上記サーバとの前回の同期以後に発生した１つ以上のイベントに関連するデータを該サーバへ伝送するよう適合される、項目７５に記載の装置。
（項目８１）
上記制御論理が、ユーザ入力に応答して上記装置により維持される制御構成に関連するデータを上記サーバへ伝送するよう適合される、項目７５に記載の装置。
（項目８２）
上記制御論理が、上記ネットワークインターフェイスを介してクエリーメッセージを伝送することと、該クエリーメッセージに対する応答を受け取るために一定時間待機することとによって、上記サーバを発見するよう適合される、項目７５に記載の装置。
（項目８３）
システムであって、
電子デバイスと、
ネットワークを介して該電子デバイスに通信可能なように連結されたコントローラであって、該コントローラは該ネットワークを介して該電子デバイスを遠隔制御するように適合される、コントローラと、
該ネットワークを介して該電子デバイスおよび該コントローラを通信可能なように連結されたサーバと、
を備え、該コントローラは、該サーバを発見し、該コントローラにより維持される制御構成に関連するデータを該サーバへ伝送し、その後、該コントローラにより維持される該制御構成に従う代わりに該サーバにより維持される制御構成に従って該電子デバイスを制御するようさらに適合される、システム。
（項目８４）
上記ネットワークが無線ローカルエリアネットワークを含む、項目８３に記載のシステム。
（項目８５）
上記コントローラが、ＩＥＥＥ  ８０２．１１リンクを介して上記ネットワークに通信可能なように連結される、項目８３に記載のシステム。
（項目８６）
上記コントローラが携帯情報端末またはウェブパッドのうちの１つを備える、項目８３に記載のシステム。
（項目８７）
上記電子デバイスが、コンピュータ、コンピュータ周辺機器、テレビ、ビデオカセットレコーダ、デジタル多用途ディスクプレーヤー、パーソナルビデオレコーダ、コンパクトディスクプレーヤー、ステレオレシーバ、電子サーモスタット、ＵＰｎＰデジタルメディアレンダラおよび／またはサーバ、ランプ、またはビデオカメラのうちの１つを備える、項目８３に記載のシステム。
（項目８８）
上記コントローラが、上記サーバとの前回の同期以後に発生した１つ以上のイベントに関連するデータを該サーバへ伝送するよう適合される、項目８３に記載のシステム。
（項目８９）
上記コントローラが、ユーザ入力に応答して該コントローラにより維持される制御構成に関連するデータを上記サーバに伝送するよう適合される、項目８３に記載のシステム。
（項目９０）
上記コントローラが、上記ネットワーク上でクエリーメッセージを伝送することと、該クエリーメッセージに対する応答を受け取るために一定時間待機することとによって、上記サーバを発見するよう適合される、項目８３に記載のシステム。
（項目９１）
１つ以上の電子デバイスを遠隔操作するよう適合されるコントローラを、クライアントサーバモードから移行させるための方法であって、該コントローラはサーバにより維持される制御構成に従って該１つ以上の電子デバイスをスタンドアロンモードへ遠隔制御し、該方法は、
該サーバにより維持される該制御構成に関連するデータを該サーバから受け取ることと、
その後、該コントローラにより維持される制御構成に従って該１つ以上の電子デバイスを制御することと
を包含する、方法。
（項目９２）
上記サーバから受け取った上記データのコピーを第２のコントローラへ伝送することをさらに含む、項目９１に記載の方法。
（項目９３）
１つ以上の電子デバイスを遠隔操作するための装置であって、
ネットワーク上での通信に適合するネットワークインターフェイスと、
ユーザ入力を受け取るように適合されるユーザインターフェイスと、
該ネットワークインターフェイスおよび該ユーザインターフェイスに連結され、該ユーザ入力に応答してコマンドを実行するよう適合された制御論理と
を備え、該制御論理は、該サーバにより維持される制御構成に関連するデータを該ネットワークに通信可能なように連結されたサーバから受け取り、その後、該サーバにより維持される該制御構成に従う代わりに該装置により維持される制御構成に従って該１つ以上の電子デバイスを制御するようさらに適合される、装置。
（項目９４）
上記制御論理が、上記サーバから受け取った上記データのコピーを、上記ネットワークに通信可能なように連結された第２の装置へ伝送するようさらに適合される、項目９３に記載の装置。
（項目９５）
システムであって、
電子デバイスと、
ネットワークを介して該電子デバイスに通信可能なように連結されたコントローラであって、該ネットワークを介して該電子デバイスを遠隔制御するように適合された、コントローラと、
該ネットワークを介して該電子デバイスおよび該コントローラに通信可能なように連結されたサーバと、
を備え、該コントローラは、該サーバにより維持される制御構成に関連するデータを該サーバから受け取り、その後、該サーバにより維持される該制御構成に従うかわりに該コントローラにより維持される制御構成に従って該電子デバイスを制御するようさらに適合される、システム。
（項目９６）
上記コントローラが、上記サーバから受け取った上記データのコピーを、上記ネットワークに通信可能なように連結された第２のコントローラへ伝送するようさらに適合される、項目９５に記載のシステム。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施形態に従う、デバイス制御システムの要素を表している。
【図２】図２は、本発明の実施形態に従う、デバイス制御システムの特定の実装を図示する。
【図３】図３は、本発明の実施形態に従う、コントローラ実装例を表している。
【図４】図４は、本発明の実施形態に従う、コントローラにより格納され得る様々なソフトウェアライブラリの概念提示である。
【図５】図５は、本発明の実施形態に従う、デバイス制御システムにおいてコントローラを同期するための方法の流れ図を示す。
【図６】図６は、本発明の実施形態に従う、デバイス制御システムにおいてその他のコントローラを発見するための方法の流れ図を示す。
【図７】図７は、本発明の実施形態に従う、コントローラを同期するための同期プロトコルの流れ図を示す。
【発明を実施するための形態】
【００２１】
（Ａ．本発明の実施形態によるデバイス制御システム）
図１は、本発明の実施形態に従うデバイス制御システム例１００を表している。デバイス制御システム例１００は、例示目的のみのために示され、本発明を限定するものではないことを理解すべきである。デバイス制御システム例１００のその他の実装は、本明細書に含まれる教示に基づいて当業者には明らかであり、本発明はそのようなその他の実装を対象とする。
【００２２】
図１に示すように、デバイス制御システム例１００は、複数のコントローラ１０２ａ乃至１０２ｎおよび１つ以上の電子デバイス１０４ａ乃至１０４ｎを含み、それらはそれぞれネットワーク１０６に通信可能なように連結されている。一実施形態において、ネットワーク１０６は、家庭内においてデバイスを通信可能なように接続するための家庭用ネットワークを備える。そのような実施形態に従って、ネットワーク１０６は例えば、家庭用電話回線ネットワーク、家庭用電力線ネットワーク、イーサネット（登録商標）ネットワーク、無線ネットワーク、または上記任意の組み合わせを備えることができる。しかしながら、本発明は家庭用ネットワークに限定されるものではなく、ネットワーク１０６は、ローカルエリアネットワーク（ＬＡＮ）またはインターネットなどのワイドエリアネットワーク（ＷＡＮ）を含むがこれらに限定されない、いかなる種類の家庭用または家庭用でないネットワークを備えてもよい。
【００２３】
電子デバイス１０４ａ乃至１０４ｎのそれぞれは、家庭および／またはオフィス環境において使用できる、多岐にわたる遠隔操作可能な電子デバイスのうちの１つを備えることができる。例えば、電子デバイス１０４ａ乃至１０４ｎのそれぞれは、コンピュータ、コンピュータ周辺機器、テレビ（ＴＶ）、ビデオカセットレコーダ（ＶＣＲ）、デジタル多用途ディスク（ＤＶＤ）プレーヤー、パーソナルビデオレコーダ（ＰＶＲ）、コンパクトディスク（ＣＤ）プレーヤー、ステレオレシーバ、電子サーモスタット、ＵＰｎＰＴＭデジタルメディアレンダラおよび／またはサーバ、ランプ、またはビデオカメラのうち１つを備えることができる。しかしながら、これらの例は限定を意図するものではなく、その他の電子デバイスも本発明の範囲と精神内である。
【００２４】
コントローラ１０２ａ乃至１０２ｎのそれぞれは、電子デバイス１０４ａ乃至１０４ｎのうち１つ以上を遠隔操作するよう適合される。特に、また本明細書でさらに詳しく論じるように、コントローラ１０２ａ乃至１０２ｎのそれぞれは、様々な電子デバイスを制御するためのユーザ設定可能な汎用インターフェイスを提供し、それらはそれぞれ異なるメーカーおよび／またはモデルタイプを有してよく、リモートデバイス制御のために異なる通信プロトコルをサポートしてよい。
【００２５】
本発明の実施形態に従って、コントローラ１０２ａ乃至１０２ｎのそれぞれは１つ以上の電子デバイス１０４ａ乃至１０４ｎを制御するためのスタンドアロンインターフェイスを備える。代替の実施形態において、コントローラ１０２ａ乃至１０２ｎのそれぞれは、電子デバイス制御機能を行うため、ネットワーク１０６を介して通信可能なようにコントローラおよび電子デバイスと連結された、任意の制御サーバ１０８と連動して動作する。リモートコマンドおよび家庭用または家庭用でない環境におけるデバイスおよびアプリケーションの制御を提供する制御サーバ、コントローラおよびネットワークの詳細な例は、２００２年６月２７日に出願された、共同所有の同時継続米国特許出願第１０／１８０，５００号、発明の名称「Ｍｅｔｈｏｄ，Ｓｙｓｔｅｍ，ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍ  Ｐｒｏｄｕｃｔ  ｆｏｒ  Ｍａｎａｇｉｎｇ  Ｃｏｎｔｒｏｌｌｅｄ  Ｒｅｓｉｄｅｎｔｉａｌ  ｏｒ  Ｎｏｎ−ｒｅｓｉｄｅｎｔｉａｌ  Ｅｎｖｉｒｏｎｍｅｎｔｓ」にも見られ、参照することによりその全体が本明細書に組み込まれる。
【００２６】
図２は、本発明の実施形態に従う、デバイス制御システム２００の特定の実装を表している。デバイス制御システム２００の様々な要素は、Ｋｒｚｙｚａｎｏｗｓｋｉらにより２００３年３月１４日に出願された、共同所有の同時継続米国特許出願第１０／３８７，５９０号、発明の名称「Ｌｅｇａｃｙ  Ｄｅｖｉｃｅ  Ｂｒｉｄｇｅ  ｆｏｒ  Ｒｅｓｉｄｅｎｔｉａｌ  ｏｒ  Ｎｏｎ−Ｒｅｓｉｄｅｎｔｉａｌ  Ｎｅｔｗｏｒｋｓ」でさらに詳しく説明されており、参照することにより、完全に説明したかのようにその全体が本明細書に組み込まれる。
【００２７】
図２に示すように、デバイス制御システム２００は、ネットワーク２０２と通信可能なように連結された複数の電子デバイスを含み、その実施形態は無線ＬＡＮを備える。携帯情報端末（ＰＤＡ）２０６、タブレットＰＣ２０８、ＰＣベースのコンピュータシステム２１０、およびネットワークレディのビデオカメラ２２２などの電子デバイスは、ＴＣＰ／ＩＰなどのパケットベースの通信プロトコルによる通信に適合される。ＴＶ２１２、ＶＣＲおよび／またはＤＶＤプレーヤー２１４、ステレオレシーバ２１６、電子サーモスタット２１８、ならびにランプ２２０および関連する照明システム制御インターフェイス２２６を含むレガシーコンシューマ電子デバイスはそのように適合されていないため、通信目的のためには赤外線（ＩＲ）またはシリアル通信プロトコルに依存しなければならない。レガシーデバイスブリッジ２２４ａおよび２２４ｂは、パケットベースの通信プロトコルを使用するデバイスと、ＩＲまたはシリアル通信プロトコルに排他的に依存するデバイスとの間の通信を容易にする、プロトコル変換機能を行う。
【００２８】
図２において、ＰＤＡ２０６、タブレットＰＣ２０８、またはＰＣベースのコンピュータシステム２１０のそれぞれは、ネットワーク２０２に連結されたその他の電子デバイスのうち１つ以上を遠隔操作するためのコントローラを備えることができる。さらに、本発明の実施形態に従って、ネットワーク２０２に連結されたその他の電子デバイスのうち１つ以上でスタンドアロン制御を提供するために、複数のＰＤＡ２０６、タブレットＰＣ２０８、またはＰＣベースのコンピュータシステム２１０を使用することができる。あるいは、これらのコントローラは、リモートデバイス制御機能を行うため、任意の制御サーバ２０４と連動して動作することができる。
【００２９】
（Ｂ．本発明の実施形態によるコントローラ実装）
図３は、本発明の実施形態に従う、コントローラ１０２ａ乃至１０２ｎ（本明細書では、総称的にコントローラ１０２とも称する）のうちの１つの実装例を図示する。図３に表されている実装例は例示目的のみのために提供され、本発明を限定するものではないことを理解すべきである。コントローラ１０２のその他の実装は、本明細書に含まれる教示に基づいて当業者には明らかであり、本発明はそのようなその他の実装を対象とする。
【００３０】
図３に示すように、コントローラ１０２は、ユーザ入力を受け取りユーザへ情報を提供するためのユーザインターフェイス３０８、ネットワークへのアクセスを提供するためのネットワークインターフェイス３０６、および情報をＣＥデバイスへ伝送し、任意でそこからの情報を受け取るための任意のコンシューマ電子（ＣＥ）デバイスインターフェイス３０４を含む。ある実施形態において、ユーザインターフェイス３０８はタッチパネルディスプレイを介してユーザ入力を受け取るグラフィカルユーザインターフェイス（ＧＵＩ）を備え、ネットワークインターフェイス３０６はＩＥＥＥ８０２．１１ｂ、ブルートゥース、またはイーサネット（登録商標）プロトコルなどの通信プロトコルによるネットワーク通信に適合するプラグインまたはビルトイントランシーバを備え、任意のＣＥデバイスインターフェイス３０４は片方向ＩＲ送信機、あるいは双方向ＩＲトランシーバを備える。
【００３１】
図３に示すように、コントローラ１０２は、ユーザインターフェイス３０８、ネットワークインターフェイス３０６、およびＣＥデバイスインターフェイス３０４と通信可能なように連結した制御論理３０２をさらに含む。制御論理３０２は、本明細書でさらに詳しく説明するように、本発明の機能を実行するよう適合され、ピアツーピアモードで動作中に１つ以上のその他のコントローラで同期プロトコルを行うステップ、およびピアツーピアモードからクライアントサーバモードへの動作の移行に関する機能を行うステップを含むがこれらに限定されない。本明細書で提供される教示に基づいて当業者により理解されるように、制御論理３０２は、１つ以上の汎用プロセッサ、特定用途向け集積回路、または前述の組み合わせを使用して容易に実装され得る。
【００３２】
コントローラ１０２は、通信可能なように制御論理と連結されたメモリ３１０を含んでもよい。ある実施形態において、メモリ３１０は、読み出し専用メモリ（ＲＯＭ）などのスタティックメモリ、ランダムアクセスメモリ（ＲＡＭ）などのダイナミックメモリ、ハードディスクドライブ、または前述の任意の組み合わせを備えることができる。本発明の実施形態に従って、メモリ３１０は、各実行のためのアプリケーションおよびデータを含み、制御論理３０２により処理を行う複数のソフトウェアライブラリを格納する。
【００３３】
本発明のある実施形態において、コントローラ１０２は、本発明はそのように限定されるものではないが、ＰＤＡ、タブレットコンピュータ、ウェブパッド、またはパーソナルコンピュータのうちの１つを備える。
【００３４】
図４は、本発明の実施形態に従う、メモリ３１０に格納され得る様々なソフトウェアコンポーネントまたはライブラリの概念提示である。図４に示すように、そのようなコンポーネントは、オペレーティングシステムファームウェア４０２、ユーザインターフェイスファームウェア４０４、デバイス制御データベース４０４、デバイス構成データベース４０８、システム構成データベース４１０、ユーザ選択データベース４１２、コントローラ同期ソフトウェア４１４、およびイベントログ４１６を含む。これらの各コンポーネントについて、以下で論じる。
【００３５】
オペレーティングシステムファームウェア４０２は、実行時、起動できるその他のコントローラアプリケーション上にプラットフォームを提供し、コントローラ入力／出力（Ｉ／Ｏ）およびファイル管理に関連する機能などの基本機能を行う。ユーザインターフェイス４０４は、実行時、ユーザインターフェイス３０８の様々なプログラム可能な側面の実装および管理を提供する。
【００３６】
デバイス制御データベース４０６は、様々な電子デバイスを遠隔操作するための所定のコマンドおよびコードのセットを、そのようなデバイス固有の制御挙動に関するメタデータと同様に、格納する。本発明のある実施形態において、コントローラ１０２は、デバイス制御データベース４０６に格納するため、ネットワーク１０６を介してデバイスコマンドコードおよびメタデータをダウンロードすることができる。そのような機能性の詳しい説明は、Ｋｒｚｙｚａｎｏｗｓｋｉらにより２００３年９月２６日に出願された、米国暫定特許出願第６０／５０５，８５１号、発明の名称「Ｄｅｖｉｃｅ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ，Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ」において提供され、参照することにより、完全に説明したかのようにその全体が本明細書に組み込まれる。そのようなコマンドコードおよびメタデータは、例えばＣＤ‐ＲＯＭに格納されたライブラリから得られる、上述のようにネットワーク１０６を介してダウンロードされる、もしくはエンドユーザとの指示された対話を通じて、または経験によって「学習する」ことができる（例えば、先行するユーザ制御方法の分析）。
【００３７】
ソフトウェアライブラリ４０８、４１０および４１２は、概して、コントローラ１０２の動作のユーザカスタマイズまたは個別の側面およびデバイス制御システム１００全体に関する情報を格納するデータベースを備える。特に、デバイス構成データベース４０８は、デバイス状況およびその他の動作情報を含む、デバイス制御システム１００の一部として実際に認識されたデバイスに関するデータを含む。
【００３８】
システム構成データベース４１０は、ユーザ認可、位置管理、およびデバイス発見等、システム管理の様々な側面に関するデータを含む。ユーザ認可設定は、システムユーザがデバイスを制御する、または特定の位置に観念する制御デバイスを制御するのを、選択的に許可するまたは禁止するために使用することができる。位置管理データは、デバイス制御システム１００内の１つ以上の部屋または制御区域に対するデバイスの定義および割り当てに関連する。デバイス発見データは、コントローラ１０２のネットワーク１０６上にあるデバイスの存在を検出する能力およびそれに関する維持状況情報に関するデータである。例えば、本発明の実施形態によるコントローラ１０２は、ネットワーク１０６上に現れるデバイスを自動的に発見しそれについて状況情報を得るため、ＵｐｎＰＴＭプロトコルまたは専用プロトコルを使用することができる。
【００３９】
ユーザ選択データベース４１２は、コントローラ１０２およびデバイス制御システム１００内の制御されるデバイスの動作に関する様々なユーザ特定選択に関するデータを含む。ユーザ選択は、例えばテレビ鑑賞用のお気に入りチャンネルまたは特定のグラフィカルユーザインターフェイス（ＧＵＩ）、またはコントローラ１０２の「スキン」を含むことができる。
【００４０】
本明細書でさらに詳しく説明するように、コントローラ同期ソフトウェア４１４およびイベントログ４１６はコントローラ１０２により使用され、コントローラ１０２とデバイス制御システム１００内のその他１つ以上のコントローラとの間で、そのようなコントローラがスタンドアロンまたはピアツーピアモードで動作している場合に、確実に同期するプロトコルを行う。さらに、また本明細書においても詳しく説明するように、これらのコンポーネントは、コントローラ１０２をピアツーピアネットワーク環境からサーバベースのネットワーク環境へ移行させるための手段に加え、コントローラ１０２とその他のコントローラとの間のカスタム構成情報を転送するための手段をさらに提供することができる。
【００４１】
（Ｃ．本発明の実施形態によるピアツーピアモードにおけるコントローラ同期）
上述したように、デバイス制御システム１００において、複数のコントローラ１０２ａ乃至１０２ｎは、１つ以上の同じ電子デバイスを制御するため、複数のユーザにより動作され得る。これらのコントローラがスタンドアロンモードで動作している場合、コントローラを調整する必要が生じる。複数のコントローラの動作を調整するためのいかなる手段もなければ、各コントローラは自立的におよび互いに無関係に動作するため、結果として制御カオスが起こるであろう。
【００４２】
例えば、デバイス制御システム１００が家庭において実装されると仮定する。２階の部屋に位置する第１のユーザは、つけたままになっていると思われる、地階にあるテレビを消したい。コントローラ１０２ａを使用して、第１のユーザはネットワーク１０６を介して地階のテレビに「電源オン／オフ」信号を送信する。しかしながら、第１のユーザが地階のＴＶについて思い違いをしていた場合、ことによると第２のユーザがコントローラ１０２ｂを使用して既に消したかもしれず、第１のユーザにより送信された「電源オン／オフ」信号は、意図したものと反対の効果を有する操作によりＴＶをつけるという結果になるであろう。
【００４３】
したがって、デバイス制御システム１００において、コントローラ１０２ａ乃至１０２ｎのそれぞれは、家庭またはオフィスなどの共通制御領域にある１つ以上の電子デバイスの、調整された効果的な動作を確実にするために、その他のコントローラと通信を行うように適合される。結果として、各コントローラは、その他のユーザにより動作されるいくつかのコントローラを含むシステムにおいて機能することができる。特定の実施形態において、各コントローラは、ある一定の制御環境において動作するその他のコントローラとの直接のネットワーク接続性を有し、そのようなその他のコントローラと同期する。
【００４４】
この同期を行うため、コントローラ１０２ａ乃至１０２ｎのそれぞれはタイムスタンプされたイベントのログ４１６を維持する（図４参照）。各イベントはいくつかのシステム状況のうち、追加、変更、または削除の記録を備える。ある実施形態において、システム状況全体は様々なサブカテゴリに分類される。これらのサブカテゴリは、
（１）ユーザ設定：ユーザの追加または削除、パスワードの変更、ＴＶ鑑賞のためのお気に入りチャンネルの認識、特定のコントローラＧＵＩ（または「スキン」）の選択等を含むがこれらに限定されない、ユーザ定義のパラメータに関する状況情報；
（２）デバイスモジュール：デバイステンプレートへの追加、削除、または変更、デバイスドライバ、もしくはデバイスコードデータベースを含むがこれらに限定されない、特定のデバイスのための制御パラメータに関する状況情報（本明細書で使用する場合、「デバイステンプレート」という用語はデバイス挙動に関するパラメータのことを指し、「デバイスドライバ」という用語は特定のデバイスと通信を行うために必要なソフトウェアのことを指し、上述したように、デバイスコードデータベースは、ＩＲまたはシリアルコードなどのデバイスのための制御コードマッピングを含む）；および、
（３）構成：デバイス部屋割り、部屋定義、デバイス構成および接続性への追加、削除または変更を含むがこれらに限定されない、カスタマイズされたシステムまたはデバイス構成パラメータに関する状況情報
を含むことができる。各イベントがイベントログ４１６へ入力されると、イベントが発生した時刻を示すタイムスタンプと関連付けられる。
【００４５】
状態変化は、本発明によるシステムがその経過を記録し同期目的のために伝播するイベントのことをいう。デバイスの場合、そのような状態変化は、状態変数、制御コード、およびガイドデバイス制御のためのスクリプトへの変化を伴うことができる。状態変数は、入力選択（例えば、レシーバはＤＶＤプレーヤーからの入力を受け入れるように設定されてよい）、オン／オフ状態（例えば、ＴＶはオンであってよい）、またはチューナー選択（例えば、ＴＶはチャンネル３に設定されてよい）を含むことができる。制御コードは、コンシューマ電子デバイスの遠隔操作のためのＩＲ制御コードなどの、構成されたデバイスを制御するために使用されるコードである。これらは一般に静的であるが、そのようなコードは、そのデバイスが初めてシステムに導入された時刻にコントローラへ伝播されなくてはならず、コントローラが制御コードの特定のセットを再学習するよう要求される時もあってよい。ガイドデバイス制御のためのスクリプトは、デバイス機能を定義し、状態変数の経過を記録し、制御コードを適切な制御モジュールに回送する（例えば、ＩＲコードを特定のレガシーデバイスブリッジへ伝送する）ための、ＸＭＬスクリプトのようなスクリプトのことをいう。
【００４６】
状態変化は、経験を定義するスクリプトへの変化をさらに伴うことができる。例えば、本発明のある実施形態において、経験（ＤＶＤを観る、またはＣＤを聴く等）内の制御は、セットアッププロセスの間に発生する質問および返答プロトコル中のユーザ応答に基づいて、基本テンプレートから生成されたスクリプト、またはマクロにより定義される。例えば、ＤＶＤを観るという状況において、マクロ「オン」は「ＴＶをオンにする」「ＤＶＤプレーヤーをオンにする」「レシーバをオンにする」「レシーバをＤＶＤ入力にセットする」および「ＴＶをビデオ２入力にセットする」であると定義されるかもしれない。これらの各コマンドは、マクロの呼び出しに応じて適切なデバイススクリプトへ伝送される。
【００４７】
状態変化は、タイマー、時限アクション、トリガー、およびトリガーアクションへの変化も含むことができる。タイマーすなわちアラームは、特定のスクリプトの実行に関連する時刻（例えば、午後１１：００にＴＶを消す）のことをいう。関連するスクリプトすなわち時限アクションは、アラーム時刻が実時間と等しくなったときに実行される。トリガーは、状態変数変化の、特定のスクリプトの実行との関連付け（例えば、ＴＶがついたら必ず明かりを消す）のことをいう。関連するスクリプト、すなわちトリガーアクションは、モニターされている状態変数が変化したときに実行される。本発明によるシステムにおいて、タイマー、トリガー、および関連するスクリプトはユーザプログラム可能な機能である。このような機能性の詳しい説明は、Ｋｒｚｙｚａｎｏｗｓｋｉらにより同封にて出願する、共同所有の米国特許出願番号未定［代理人整理番号２１００．００３０００４］、発明の名称「Ｍｅｔｈｏｄ，Ｓｙｓｔｅｍ，ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍ  Ｐｒｏｄｕｃｔ  ｆｏｒ  Ａｕｔｏｍａｔｉｃａｌｌｙ  Ｍａｎａｇｉｎｇ  Ｃｏｍｐｏｎｅｎｔｓ  ｗｉｔｈｉｎ  ａ  Ｃｏｎｔｒｏｌｌｅｄ  Ｅｎｖｉｒｏｎｍｅｎｔ」において提供され、参照することにより、完全に説明したかのようにその全体が本明細書に組み込まれる。
【００４８】
状態変化は、ユーザ、部屋、および部屋内のデバイスの定義、部屋およびデバイスへのユーザのアクセス権、ならびにユーザインターフェイスを定義するビットマップおよびスクリーンレイアウト（時に「スキン」と称される）の収集等、様々な構成パラメータへの変化をさらに含むことができる。
【００４９】
図５は、本発明の実施形態に従う、デバイス制御システムにおいてコントローラを同期するための方法の流れ図５００を示す。しかしながら本発明は、流れ図５００により提供される説明に限定されるものではない。むしろ、本明細書において提供される教示に基づいて、当業者にはその他の機能を示すフローが本発明の範囲と精神内であることが明らかであろう。流れ図５００について、図１に関連して上述したシステム例１００を引き続き参照し、説明する。しかしながら、本発明はこの実施形態に限定されるものではない。
【００５０】
最初のステップ５０２において、ユーザはコントローラ１０２ａの電源を入れる。電源が入ったことを受けて、コントローラ１０２ａは最初の発見プロトコル５０４を行い、これによりコントローラ１０２ａはデバイス制御システム１００内にその他のアクティブコントローラがあるか否かを判断する。この発見プロトコルを実装する少なくとも１つの方式については、本明細書において別途提供する。
【００５１】
利用可能なその他のコントローラがある場合、コントローラ１０２ａは次いでその利用可能なコントローラの１つとの同期プロトコル５０６を行う。同期ステップ５０６は、コントローラ１０２ａが、状態情報を受け取るかデバイス制御システム１００内の別のコントローラと交換することによって、イベントログを含むその内部に格納された状態を更新するプロセスである。同期ステップ５０６を行うためのプロトコルついては、本明細書において別途提供する。事実上、１つを超えるその他のコントローラが利用可能であっても、同期ステップ５０６を行うためにその他のコントローラのうちのいずれが選択されるかということは問題にならないはずである。したがって、その他のコントローラは恣意的に選択され得る。あるいは、その他のコントローラはその他の基準で選択されてもよい。例えば、その他のコントローラは、その他のコントローラと通信を行うための予測応答時間などの、ネットワーク接続性に関連する、あるパラメータに基づいて選択され得る。
【００５２】
同期５０６の後、コントローラ１０２ａは、その他のコントローラがもしあるならば、そのいずれが現在システムにおいて利用可能であるかを判断するため、ステップ５２４においてコントローラ１０２ａのパワーダウンが発生する時などまで、定期的に発見ステップ５０８を行う。本発明の実施形態に従って、コントローラ１０２ａ乃至１０２ｎのそれぞれは知られているピア（すなわち、その他のコントローラ）すべてのメモリ内においてテーブルを維持する。各ピアについて、コントローラは、現在の接続性情報や、当該ピアとの前回の同期の時刻を格納する。例えば、現在の接続性情報は、ＩＰアドレス、前回の発見時刻、および最新の発見試行が、このデバイスが利用可能であると判断したか否かの指示等、ピアのためのネットワークアドレスを含むことができる。
【００５３】
図５に示すように、定期的な発見試行５０８の間において、コントローラ１０２ａが１つ以上の状態変化５１０を生成することができる、コントローラ１０２ａが１つ以上の状態変化を別のコントローラ５１４から受け取ることができる、コントローラ１０２ａが別のコントローラ５１６のための同期要求を受け取ることができる、またはコントローラ１０２ａがパワーダウン５２２され得る、という少なくとも４つのその他のイベントが発生し得る。
【００５４】
コントローラ１０２ａは、コントローラの内部構成を変化させるため、または遠隔制御される電子デバイス１０４ａ乃至１０４ｎの構成を変化させるために、ユーザがコントローラを使用した結果として、１つ以上の状態変化５１０を生成することができる。またコントローラは、その構成または遠隔制御される電子デバイスの構成を、特定のイベントの発生またはある一定の所定の日時への到達に応じて等、自動的に変化させるようプログラムされ得る。いずれかの場合において、ステップ５１２に示すように、イベントログ４１６は更新され、状態変化情報はデバイス制御システム５１２内の利用可能なすべてのコントローラに伝送される。ある実施形態において、状態変化情報の伝送はイベントログ４１６からの入力の伝送を含む。このステップの結果として、状態変化発生後まもなく、その他の利用可能なコントローラの状態はコントローラ１０２ａと同期される。
【００５５】
コントローラ１０２ａは、デバイス制御システム１００内にあるその他のアクティブコントローラから状態変化情報５１４を受け取ることもできる。この状態変化情報は、いずれかの別のコントローラまたは共通制御の電子デバイスに適用された構成変化と関連してよい。いずれかの場合において、コントローラ１０２ａは、ステップ５１６に示すように、そのような受け取った情報に基づいてそのイベントログ４１６を更新するであろう。ある実施形態において、状態変化情報の受信は、別のコントローラのイベントログからの入力の受信を含む。
【００５６】
コントローラ１０２ａは、最近電源を入れられたアクティブコントローラ等、デバイス制御システム１００内にある別のアクティブコントローラから同期要求５１８を受け取ることもできる。この場合、ステップ５２０に示すように、コントローラ１０２ａはその他のコントローラとの同期プロトコルを行うであろうし、この実装については本明細書においてさらに詳しく説明する。
【００５７】
コントローラ１０２ａは、また、いつでもパワーダウン５２２され得る。パワーダウンは、ユーザ、長時間の非活動を受けてパワーダウンするためのコードなどの内部制御論理、もしくはシステムワイドなパワーダウンまたはリセットコマンドを発行できるネットワーク付属デバイスなどの別のデバイスによって開始され得る。いずれの場合にも、これはコントローラ１０２ａが電源オフ状態５２４を入力し、それによって同期プロトコル５００を終了するという結果を引き起こすであろう。
【００５８】
図６は、図５を参照して上述した発見ステップ５０４および５０８を行うための１つの方法を示す流れ図６００を示す。この方法は、ほんの一例として提供され、限定的なものではない。この方法は、ステップ６０２において開始される。ステップ６０４において、コントローラ１０２ａはネットワーク１０６を介してクエリーメッセージを１つ以上のその他のコントローラへ伝送する。ある実施形態において、コントローラ１０２ａはネットワーク全体にわたってクエリーメッセージを送信する。ステップ６０６において、コントローラ１０２ａは、アクティブであり通信可能なようにネットワーク１０６と連結されたその他のコントローラから応答を受け取るために一定時間待機する。ステップ６０８において、コントローラ６０８は、もしあるとすればステップ６０６の間に、コントローラアベイラビリティに関する内部格納されたデータを受け取った応答に基づいて更新する。本発明のある実施形態において、コントローラ１０２ａは、知られているすべてのピアの内部格納されたテーブルにおいてアベイラビリティデータを更新することにより、このステップを行う。ステップ６１０において、発見プロトコルは終了される。
【００５９】
図７は、図５中のステップ５０４および５２０を参照して上記で言及した同期プロトコルを行うための１つの方法を示す流れ図７００を示す。本明細書において説明したものなどの同期プロトコルは、電源が切られているか、そうでなければ状態変化情報が伝送された際にネットワーク１０６から切断されているために、そのような状態変化情報を受け取れないコントローラを処理するのに必要である。本明細書で提供される教示に基づいて当業者により理解されるように、プロトコル７００に従って同期する能力は、部分的に、同期クロックを有する各コントローラに依存する。コントローラ間にクロックスキューがある限り、これは接続性において補正され得る。
【００６０】
第１のコントローラ１０２ａおよび第２のコントローラ１０２ｂを参照して流れ図７００の方法を説明するが、コントローラ１０２ａは同期を要求したものである。上述したように、ある実施形態において、コントローラ１０２ａはパワーアップ後まもなく同期を要求する。
【００６１】
同期は、ステップ７０２において開始される。ステップ７０４において、第１のコントローラ１０２ａは、コントローラ１０２ｂとの前回の同期以後に発生した１つ以上のイベントまたは状態変化に関わる情報を第２のコントローラ１０２ｂへ伝送する。ある実施形態において、このステップは、コントローラ１０２ｂとの前回の同期以後、コントローラ１０２ａによって記録されていたイベントすべてのログの伝送を伴う。ステップ７０６において、第１のコントローラ１０２ａは、第２のコントローラ１０２ｂから、コントローラ１０２ａとの前回の同期以後に発生した１つ以上のイベントに関する情報を受け取る。ある実施形態において、このステップは、コントローラ１０２ａとの前回の同期以後、コントローラ１０２ｂによって記録されていたイベントすべてのログの受け取りを伴う。電源を切られたコントローラは報告すべきいかなる状態変化も有さないため、上記コントローラ間のダイアログはほとんどの場合に一方向であることが予測される。
【００６２】
ある実施形態において、コントローラ間で交換されるイベントログは、各コントローラによってログからの上書き動作を省略することにより、最適化される。例えば、ログがあるＴＶがつけられたことを示す第１の入力および同じＴＶが消されたことを示す第２の入力を含む場合、前者の入力は不要であり、よってログから削除される。
【００６３】
ステップ７０８において、コントローラ１０２ａは、コントローラ１０２ｂからいずれかのイベントを受け取ったか否かを判断する。イベントを受け取っていない場合、ステップ７２２において同期プロトコルが終了する。しかしながら、１つ以上のイベントを受け取った場合、ステップ７１０に示すように、コントローラ１０２ａは受け取ったイベントを調べる。コントローラ１０２ａは次いで、受け取ったイベントが以前に記録されたイベントと矛盾するか否かを判断する。コントローラ１０２ａだけがパワーダウンされ、コントローラ１０２ｂはシステム状態の観点で完全にカレントである状況においては、矛盾は生じず受け取ったすべての入力が受け入れられることが予測される。
【００６４】
しかしながら、両方のコントローラが新しい状態変化を生成したか、あるいは同期できなかった場合、矛盾が生じることがある。例えば、コントローラ１０２ａは、コントローラ１０２ｂがパワーダウンされている間、特定のデバイスへの特定のユーザアクセスを承諾するために使用されたかもしれない。コントローラ１０２ａが次いでパワーダウンされ、コントローラ１０２ｂがパワーアップして、同じデバイスにアクセスし制御するために、同じまたは別のユーザに使用されたかもしれない。そのような事情はコントローラ１０２ａと１０２ｂとの間に矛盾を生じさせるであろう。このような矛盾が発生している場合、より最近のタイムスタンプに関連付けられたイベントが優勢となる。したがって、例えばコントローラ１０２ａが、あるＴＶの状態が９：４２：３０に「オン」になるよう設定されたことを示す新しいログ入力を含み、コントローラ１０２ｂが、同じＴＶの状態が９：５９：１０に「オフ」になるよう設定されたことを示す新しい入力ログを含む場合、コントローラ１０２ａはコントローラ１０２ｂからの状態変更を受け入れるであろうが、コントローラ１０２ｂはコントローラ１０２ａからの変更を拒否し、相互に矛盾のない状態となるであろう。
【００６５】
この機能性はステップ７１２において図示されており、コントローラ１０２ａは受け取ったイベントが以前に記録されたイベントと矛盾するか否かを判断する。矛盾していない場合、コントローラ１０２ａはステップ７１６に示すように受け取ったイベントを受け入れ、状態変更情報をそのイベントログ４１６へ入力する。矛盾が確認された場合、コントローラ１０２ａは、ステップ７１４に示すように、以前に記録されたイベントが受け取ったイベントより後のタイムスタンプに関連付けられているか否かを判断する。そうである場合、コントローラ１０２ａはステップ７１６に示すように受け取ったイベントを受け入れる。そうでない場合、コントローラ１０２ｂはステップ７１８に示すように受け取ったイベントを受け入れない。
【００６６】
本発明の実施形態に従って、図７１６に示すような状態変更情報の受け入れは、様々なユーザ設定、デバイスモジュール、またはコントローラ／デバイス／システム構成の追加、削除、または変更のアプリケーションも含む。ある実施形態において、コントローラ１０２ａのユーザは、そのようないかなる追加、削除または変更もそれらが適用される前に確認するよう指示され得る。
【００６７】
受け取ったイベントがステップ７１６で受け入れられるかステップ７１８で拒否されるかのいずれかであると、コントローラ１０２ａは、ステップ７２０に示すように、受け取った分析すべきイベントがそれ以上あるか否かを判断する。ある場合、プロトコルはステップ７１０において次に受け取ったイベントの分析を続ける。そうでない場合、ステップ７２２に示すように同期プロトコルは終了する。
【００６８】
前述のプロトコルに関して、コントローラ１０２ａは、前回の同期時刻の記録を有さない、またはコントローラ１０２ｂから受け取ったイベントのそれぞれに関連付けられたタイムスタンプより早い前回の同期時刻を有する新たに導入されたユニットを含んでよいことに留意されたい。ある実施形態において、この状況は、受け取ったイベントログを完全に無視することによって、またその代わりに完全な構成状態をコントローラ１０２ｂからコントローラ１０２ａへ単に伝播させることによって、処理される。
【００６９】
上述の同期プロトコルによって、デバイス制御システム１００のコントローラ１０２ａ乃至１０２ｎのそれぞれは、デバイス状態情報を更新し、そのそれぞれのユーザに、共通制御領域にある様々な電子デバイス１０４ａ乃至１０４ｎの現在の状態を通知することができる。
【００７０】
さらに、本発明の同期方法は、コントローラにデバイス制御データベース情報を更新させるために使用されてもよい。例えば、あるユーザが新しいコントローラを追加したい、または古いコントローラを新しいものと取り替えたい場合、新しいコントローラは制御環境において電子デバイスを制御するよう容易に構成され得る。具体的には、現存するコントローラのデータベースは、本発明の実施形態に従って同期操作を実装することにより、無線ネットワークなどのネットワーク上で新しいコントローラへ転送され得る。
【００７１】
本発明の実施形態に従って、同期プロトコルは、実行可能コードを含むデバイス制御ライブラリなどのデバイス制御ライブラリを、あるコントローラから別のコントローラへ伝播させるために使用してもよい。そのような機能性は、特にＪａｖａ（登録商標）ベースのシステムにおいて有効となり得る。
【００７２】
（Ｄ．本発明の実施形態によるピアツーピアからクライアントサーバモードへの移行）
本発明の実施形態に従って、コントローラ１０２をスタンドアロンモードから、他のそのようなコントローラなどのコントローラがクライアントまたはユーザインターフェイスとしての役割を果たすクライアントサーバ環境へ、または必須の操作可能なファームウェアおよびデータベースを格納するセントラルサーバ１０８へ移行させることができる。
【００７３】
セントラルサーバ１０８がネットワーク１０６に追加される場合、コントローラ１０２のデータベースは、コントローラ１０２（現在のクライアント）上の更新されたデータを制御サーバ１０８の対応するデータベースに追加できるようにするセントラルサーバ１０８と同期され得る。クライアントサーバモードの動作において、コントローラ１０２ａ乃至１０２ｎは制御サーバ１０８のためのユーザインターフェイスとして作用する。例えば、コントローラ１０２ａ乃至１０２ｎのそれぞれは、ユーザの制御要求を実行するために制御サーバ１０８へ転送し、制御サーバ１０８からＧＵＩ情報を得る。
【００７４】
前項で論じた発見プロセスの一部として、コントローラ１０２はネットワーク１０６上において制御サーバ１０８の存在を発見することができる。これは、インフラストラクチャがピアツーピア環境からクライアントサーバ環境に移行したことを示すものである。このモードにおいて、コントローラ１０２は、主として制御サーバ１０８に格納されているすべてのユーザおよびデバイス構成情報、デバイス制御モジュール、ならびに状態変数とのユーザインターフェイス端末として機能する。
【００７５】
コントローラ１０２は、制御サーバ１０８を初めて検出した場合、その構成データのすべてまたは一部を制御サーバ１０８へ送信するか否かを判断しなければならない。これは、前項で説明した同期プロトコルと同様のプロトコルを使用して遂行できる。コントローラ１０２と制御サーバ１０８があらかじめ同期していた場合、コントローラ１０２はその同期時刻以降に記録されたイベントのみを送信する。コントローラ１０２と制御サーバ１０８が同期されていない場合、コントローラ１０２はその全体構成を制御サーバ１０８に送信する。このプロセスは、一方向性であり、コントローラ１０２へ制御サーバ１０８はいかなる更新も送信しない。同期完了後、コントローラ１０２はその構成を取り消し、クライアントサーバモードに切り替え、任意の情報を求めて、または任意のコマンドを伝送するために、制御サーバ１０８に接触するであろう。
【００７６】
上述した実施形態において、スタンドアロンモードからクライアントサーバ環境への移行は、ネットワーク１０６上で制御サーバ１０８の存在が検出されると自動的に開始される。しかしながら、代替の実施形態において、移行の開始は、自動的とは対照的にユーザプロンプトである。そのような実施形態は、ネットワーク上で制御サーバが検出された場合であってもユーザがピアツーピア動作を保持したがる状況に適応する。結果として、ネットワーク上に制御サーバがあっても、ピアツーピア環境が存在することができる。移行プロセスのユーザプロンプト制御は、コントローラまたはネットワーク１０６に通信可能なように連結されたその他のデバイスへの１つ以上のコマンド入力を含んでもよい。ある実施形態において、ユーザはシステムに、ユーザがサーバベースのシステムに切り替えることを決定するまで制御サーバを単に無効にするか無視するよう指示する。
【００７７】
代替の実施形態において、ピアツーピア動作を維持するため、ユーザは自動的に開始されたピアツーピアからサーバベースの環境への移行プロセスを終了する能力を提供される。
【００７８】
本発明のさらなる実施形態に従って、１つ以上のコントローラ１０２を上述した環境などのクライアントサーバ環境からピアツーピアまたはスタンドアロンモードへ移行することもできる。そのような実施形態において、セントラルサーバ１０８は、セントラルサーバ１０８がネットワーク１０６から離れる、またはコントローラに利用できないようにレンダリングされる前に、状態変更データを同期目的のためのコントローラのうち少なくとも１つへダウンロードするよう構成される。状態変更を受け取るコントローラは、その他すべてのコントローラに状態変更データを転送するため、次いで本明細書に別途記載のプロトコルなどのピアツーピア同期プロトコルに従事するよう構成される。そのようなシステムを実装するため、各コントローラは、ダウンロードデータを受け取り使用するための適切なメモリを含む十分な容量を有することが推測される。
【００７９】
（Ｅ．結論）
本発明の様々な実施形態について説明したが、それらは例示目的のみのために提示したものであり、限定目的でないことを理解すべきである。当業者には、添付の特許請求の範囲において定義されるような本発明の精神と範囲から逸脱することなく、形式上および詳細における様々な変更を行い得ることが理解されるであろう。したがって、本発明の幅と範囲は上述の例となる実施形態のいずれによっても限定されるべきでなく、以下の特許請求の範囲および同等のものによってのみ定義されるべきである。
【図１】
2010225167.tif 000003
【図２】
2010225167.tif 000004
【図３】
2010225167.tif 000005
【図４】
2010225167.tif 000006
【図５】
2010225167.tif 000007
【図６】
2010225167.tif 000008
【図７】
2010225167.tif 000009