(57)【特許請求の範囲】
【請求項１】
コンテンツを配信する配信サーバにより実行される方法であって、前記方法は、
前記配信サーバが、リモートデバイスからクエリを受信するステップであって、前記クエリは、クライアントコンピューティングデバイスに配信された前記コンテンツのやり取りのために、前記クライアントコンピューティングデバイスの制御機能の実行に適したユーザインターフェースに対するクエリである、前記受信するステップと、
前記配信サーバが、前記クエリに応答して、前記クライアントコンピューティングデバイスから前記ユーザインターフェースを取得するステップと、
前記配信サーバが、前記リモートデバイスのハードウェア機能および／またはソフトウェア機能を検出するステップと、
前記配信サーバが、前記取得したユーザインターフェースを、前記検出したハードウェア機能および／またはソフトウェア機能に基づいて、前記リモートデバイス用に再構成するステップと、
前記配信サーバが、前記再構成したユーザインターフェースを、前記リモートデバイスに送信するステップと、
前記配信サーバが、前記リモートデバイスから、前記再構成したユーザインターフェースを介して前記制御機能の実行のための要求を受信するステップと、
前記配信サーバが、前記要求に応答して、クライアント状態データを使用して、前記リモートデバイスによって前記制御機能を実行することが認可されているかどうかを判定するステップと、
前記リモートデバイスによって前記制御機能を実行することが認可されていると判定した場合、前記配信サーバが、前記リモートデバイスのために前記制御機能を実行するためのコマンドを形成するステップと
を含むことを特徴とする方法。
【請求項２】
前記判定するステップにおいて、前記クライアント状態データが、
出力用コンテンツのレーティング制限、
コンテンツサービスの１または複数のレベル、および
コンテンツ出力用の一般的なオペレーションデータ
からなる群から選択されることを特徴とする請求項１に記載の方法。
【請求項３】
実行されたとき、請求項１に記載の方法を実行するコンピュータ実行可能命令を含むことを特徴とする１または複数のコンピュータ可読記録媒体。
【請求項４】
リモートデバイスにより実行される方法であって、前記方法は、
前記リモートデバイスが、コンテンツを配信する配信サーバに、クエリを送信するステップであって、前記クエリは、クライアントコンピューティングデバイスに配信された前記コンテンツのやり取りのために、前記クライアントコンピューティングデバイスの制御機能の実行に適したユーザインターフェースに対するクエリである、前記送信するステップと、
前記リモートデバイスが、前記ユーザインターフェースを前記配信サーバから受信するステップであって、前記ユーザインターフェースは、前記配信サーバにより、前記クライアントコンピューティングデバイスから取得され、かつ検出した、前記リモートデバイスのハードウェア機能および／またはソフトウェア機能に基づいて、前記リモートデバイス用に再構成されたものである、受信するステップと、
前記リモートデバイスが、前記再構成したユーザインターフェースを介して前記制御機能の実行のための要求を、前記配信サーバに送信するステップと、
前記リモートデバイスによって前記制御機能を実行することが認可されていると前記配信サーバが判定した場合、前記リモートデバイスは、前記制御機能を実行するためのコマンドを前記配信サーバから受信するステップと
を含むことを特徴とする方法。
【請求項５】
前記検出したハードウェア機能およびソフトウェア機能は、
デバイスドライバ、
利用可能な出力デバイス、
処理速度、
利用可能なメモリの量、
前記コンピューティングデバイスに含まれた表示デバイスの解像度、および
前記コンピューティングデバイスの表示デバイスにおける色の表示用に利用可能なカラーパレット
からなる群から選択されることを特徴とする請求項４に記載の方法。
【請求項６】
前記リモートデバイスによって前記制御機能を実行することが認可されているかどうかの判定は、クライアント状態データを使用して処理し、前記クライアント状態データは、
出力用のコンテンツのレーティング制限、
お気に入りチャンネル、
コンテンツサービスの１または複数のレベル、および
コンテンツ出力用の一般的なオペレーションデータ
からなる群から選択されることを特徴とする請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にユーザインターフェースの分野に関し、詳細にはユーザインターフェースの構成に関する。
【背景技術】
【０００２】
セットトップボックス、無線電話、コンピュータなどのクライアントのユーザは、常に増大する様々なコンテンツに絶えずさらされている。セットトップボックスのユーザは、例えば、テレビで表示するためのブロードキャストネットワークから得られる従来のテレビジョン番組、ならびにペイパービュー式映画、ＶＯＤ（ｖｉｄｅｏ  ｏｎ  ｄｅｍａｎｄビデオオンデマンド）、双方向ビデオゲームなどを閲覧することができる。同様に、無線電話のユーザは、従来の電話呼を送受信することができ、また同様に電子メールを読み、約束をスケジュールし、デジタル音楽を再生することなどができる。
【０００３】
先の例で示されるように、クライアントによって提供される機能も、引き続き増大し、常に増大する様々なコンテンツに対処するようになってきている。例えば、ユーザは、コンピュータ上、ならびにセットトップボックス、携帯型情報端末、および無線電話上で電子メールを受信することができる。クライアントを通信可能に結合するクライアントおよびネットワークの機能は改善されてきているが、アプリケーションがこれらのクライアントおよびネットワークの機能および制限に対処できないために、様々なアプリケーションが、依然として実装されていない。換言すれば、ハードウェア機能および／またはソフトウェア機能の特定の組合せを有するクライアントなど、特定のタイプのクライアント上で使用するために構成できるアプリケーションは、その特定の組合せをもたない別のタイプのクライアント上では有用性が制限されることもある。データエントリの多いアプリケーションは、例えば従来のテレビジョン環境で実装されるときには、ユーザが使用可能な入力デバイスの制限により、また従来のテレビジョンの解像度が限られているために制限されることもある。例えば、従来のリモートコントロールが、テレビジョンチャンネルを直接に入力し、４方向のナビゲーションを提供し、電源およびボリュームを操作するボタンを有することもある。テキストエントリや多数のオプションリストを介した探索などのファンクションは、キーボードを使用する際には簡単に実施できるが、従来のリモートコントロールを使用する際には、厄介になることもある。
【０００４】
さらに、標準精細度のテレビジョン上で使用可能な限られた解像度が、特定の任意の時刻にユーザに対して表示することができるデータの有効な解像度を制限することもある。例えば、従来のＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  Ｃｏｍｍｉｔｔｅｅ：全国テレビジョン方式委員会）上での読取り可能テキストの表示における制限が、任意の時刻におけるテレビジョン上に表示することができるテキスト量を制限することもある。さらに、ディスプレイを閲覧する距離が、ディスプレイの有効な解像度を制限することもある。例えば、ユーザがそのテレビジョンから典型的な距離に位置しているときにディスプレイを閲覧することができるように標準精細度のテレビジョン上に電子番組ガイドを表示するために、電子番組ガイドのテキストは、所望の距離から読むことができるように拡大することができる。したがって、たとえそのユーザにキーボードが提供されるとしても、テレビジョン体験では、そのユーザがコンピュータを使用してアプリケーションと対話するときにもたらされる機能を提供できないことはないかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、デバイスの機能および制限に対処してユーザの対話を改善するユーザインターフェースが引き続き求められている。
【課題を解決するための手段】
【０００６】
ユーザインターフェースの構成について説明する。ユーザインターフェースは、クライアントの制御機能（ｃｏｎｔｒｏｌ  ｆｕｎｃｔｉｏｎ（ｓ））を開始するためにデバイスに対してクライアントによって提供される。ユーザインターフェースは、例えば、デバイス上で実行されてクライアントの制御機能を開始させる。例えば、ユーザインターフェースは、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋローカルエリアネットワーク）などのローカルネットワーク接続上でクライアントに通信可能に結合されたローカルデバイス上で実行することができる。ユーザインターフェースはまた、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋワイドエリアネットワーク）などのリモートネットワーク接続上でクライアントに通信可能に結合されたリモートデバイス上で実行することもできる。ローカルデバイスおよびリモートデバイスは、コンテンツを記録するなどのクライアントの制御機能を開始するためにクライアントから取得される各ユーザインターフェースを実行する。ユーザインターフェースは、ユーザインターフェースを実行するそれぞれのローカルデバイスおよびリモートデバイスの、検出されたハードウェア機能および／またはソフトウェア機能に基づいて構成することができる。ハードウェア機能およびソフトウェア機能は、解像度、処理能力、メモリリソース、使用可能なアプリケーションなどを含むことができる。したがって、ローカルデバイスおよびリモートデバイスにはそれぞれ、特定のデバイスのハードウェアリソースおよび／またはソフトウェアリソースに対応するクライアントの制御機能を開始するための各ユーザインターフェースを提供することができる。
【０００７】
一実施形態においては、一方法は、デバイスからのクエリ（ｑｕｅｒｙ）を受信する工程を含んでいる。クエリは、クライアントからのＵＩ（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅユーザインターフェース）についてのものである。ＵＩは、デバイスによって実行されたとき、クライアントによる制御機能の実行を求める要求を形成するように構成される。要求の処理は、制御機能のクライアントによる実行が許可されるかどうかを判定する。この処理は、クライアント状態データを使用することによりヘッドエンド（ｈｅａｄ  ｅｎｄ）において実施される。ＵＩを実行するデバイスのハードウェア機能および／またはソフトウェア機能が検出される。ＵＩは、デバイスのそのハードウェア機能および／またはソフトウェア機能に基づいて構成される。
【図面の簡単な説明】
【０００８】
【図１】ネットワーク上でクライアントに通信可能に結合されるコンテンツプロバイダを含む例示の実施形態における環境を示す図である。
【図２】図１の配信サーバ、クライアント、ローカルデバイス、およびリモートデバイスをより詳細に示す例示の一実施形態を示す図である。
【図３】クライアントが、図２のローカルデバイス上で実行するためのユーザインターフェースを構成する、例示の実施形態における一プロシージャの流れ図である。
【図４】ユーザが、図１のディスプレイデバイスなどのディスプレイデバイスに近接して位置するときにクライアントによって出力するために構成されるユーザインターフェースを示す例示の一実施形態を示す図である。
【図５】ユーザが、そのディスプレイデバイスから図４のユーザインターフェースよりも遠い距離に位置するときにクライアントによって出力するために構成されるユーザインターフェースを示す例示の一実施形態を示す図である。
【図６】図３の構成済みのユーザインターフェースをユーザが使用してクライアントの制御機能を開始する例示の一実施形態における一プロシージャを示す流れ図である。
【図７】ユーザインターフェースを図２のリモートデバイスのために構成しリモートデバイスによって実行してクライアントの１つまたは複数の制御機能を開始する例示の一実施形態における一プロシージャを示す流れ図である。
【発明を実施するための形態】
【０００９】
この考察における例では同じ参照番号を利用して同様な構造およびコンポーネントを示している。
【００１０】
概要
ユーザインターフェース（ＵＩ）の構成について説明する。ＵＩは、クライアントの制御機能を開始するためにこのクライアントによって提供される。ＵＩを様々なデバイス上で実行してクライアントの制御機能を開始することができる。一実施形態においては、ＵＩは、ローカルネットワーク接続（ローカル接続）上でクライアントに対して通信可能に結合されたローカルデバイス上で実行することができる。例えば、クライアントは、従来のテレビジョン番組などのブロードキャストコンテンツの出力を提供し、クライアント上で実行されるアプリケーションやネットワーク上でリモートに実行されるアプリケーションなど追加のタイプのコンテンツとの対話を提供するセットトップボックスとして構成することができる。ローカルデバイスは、ローカル無線周波数（ＲＦ）接続上でセットトップボックスに通信可能に結合されるＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ携帯型情報端末）、例えば「ポケット」ＰＣとして構成することもできる。ＰＤＡはセットトップボックスから得られるＵＩを実行してコンテンツを記録するなどのセットトップボックスの制御機能を開始する。セットトップボックスは、ＰＤＡの解像度、処理能力、サポートされるカラーなど、ＵＩを実行するためのＰＤＡの検出されたハードウェア機能および／またはソフトウェア機能に基づいてＵＩを構成することができる。したがって、ＰＤＡには、ＰＤＡのそのハードウェアリソースおよび／またはソフトウェアリソースに対応するＵＩが提供される。
【００１１】
別の実施形態においては、ＵＩは、リモートネットワーク接続（リモート接続）上でクライアントに対して通信可能に結合されたリモートデバイス上で実行することができる。先の例に引き続いて、セットトップボックスは、従来のブロードキャストテレビジョン、ビデオオンデマンド（ＶＯＤ）、リモートアプリケーション処理など、ヘッドエンドからネットワーク上で受信されるコンテンツの出力を提供する。デスクトップコンピュータなどのリモートデバイスも、ネットワークに通信可能に結合することができる。リモートデバイスはまた、セットトップボックスから取得してセットトップボックスの制御機能を開始するＵＩを実行する。セットトップボックスは、ＵＩを実行するリモートデバイスの検出されたハードウェア機能および／またはソフトウェア機能に基づいてＵＩを構成する。したがって、リモートデバイスには、リモートデバイスのハードウェアリソースおよび／またはソフトウェアリソースに対応するＵＩを提供することもできる。ＵＩの構成のさらなる考察については、図３および７に関連して見出すことができる。
【００１２】
さらなる一実施形態においては、ヘッドエンドは、クライアント状態データを記憶してＵＩから受信された制御機能を求める要求を処理する。例えば、ヘッドエンドは、ヘッドエンドによってローカルにアクセス可能な、レーティング制限（ｒａｔｉｎｇ  ｌｉｍｉｔ）、お気に入りチャンネル、サービスレベルなどのクライアント状態データを含むことができる。ヘッドエンドは、このクライアント状態データを利用してローカルデバイスによってローカルに実行され、またはリモートデバイスによってリモートに実行されるＵＩが提供する要求を処理することができる。要求が処理された後に、次いでヘッドエンドは、クライアントに制御機能を実施させることができる。ヘッドエンドにおける要求を処理することによって、ヘッドエンドは、クライアントが実施すべき制御機能を処理するための信頼すべき（ａｕｔｈｏｒｉｔａｔｉｖｅ）ソースを提供する。これによって、以前のクライアントから新しいクライアントへとクライアント状態データを手動で更新することなく以前のクライアントから新しいクライアントへと変更する機能や、クライアントとの接続を取得することなく制御機能のリモートな開始など、ユーザにとって使用可能な様々な機能の増大がもたらされ得る。ヘッドエンドによるクライアント状態データの使用についてのさらなる考察は、図６および７に関連して見出すことができる。
【００１３】
例示のシステム
図１は、ネットワーク１０６上でクライアント１０４に通信可能に結合されたコンテンツプロバイダ１０２を含む例示の一実施形態における環境１００を示す図である。以下の実施形態におけるネットワーク１０６は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）の一例であり、ブロードキャストネットワーク、イントラネット、有線または無線の電話ネットワークなど様々な他のネットワークを含むこともできる。
【００１４】
クライアント１０４は、ネットワーク１０６上でコンテンツプロバイダ１０２からブロードキャストされたコンテンツを受信するように構成することができる。コンテンツプロバイダ１０２は、コンテンツプロバイダ１０２上にローカルに記憶されたコンテンツ１０８（ｋ）を含んでおり、ここで、ｋは、１から「Ｋ」までの任意の数字とすることができる。コンテンツ１０８（ｋ）は、テレビジョン番組、ビデオオンデマンド、ＥＰＧ（ｅｌｅｃｔｒｏｎｉｃ  ｐｒｏｇｒａｍ  ｇｕｉｄｅ電子番組ガイド）、リモートアプリケーション処理の１つまたは複数の結果など様々なデータを含むことができる。コンテンツプロバイダ１０２は、ネットワーク１１０上でコンテンツ１０８（ｋ）をヘッドエンド１１２に対して提供する。ネットワーク１１０は、ネットワーク１０６と同じでも、またそれと異なっていてもよい。次いで、コンテンツ１０８（ｋ）は、ネットワーク１０６上でクライアント１０４にブロードキャストするためのヘッドエンド１１２上のコンテンツ１１６（ｎ）としてデータベース１１４に記憶することができ、ここでｎは、１から「Ｎ」までの任意の数字とすることができる。換言すれば、データベース１１４に記憶されるコンテンツ１１６（ｎ）は、コンテンツプロバイダ１０２から受信されるコンテンツ１０８（ｋ）のコピーとすることができる。コンテンツ１１６（ｎ）は、クライアント１０４にブロードキャストされる追加のデータを含むこともできる。例えば、データベース１１４に記憶されるコンテンツ１１６（ｎ）は、カルーセルファイルシステム（ｃａｒｏｕｓｅｌ  ｆｉｌｅ  ｓｙｓｔｅｍ）を利用してクライアント１０４にブロードキャストされるＥＰＧデータを含むこともできる。カルーセルファイルシステムは、ネットワーク１０６上でクライアント１０４に対してＯＯＢ（ｏｕｔ−ｏｆ−ｂａｎｄ帯域外）チャンネル上でＥＰＧデータを反復してブロードキャストする。
【００１５】
ヘッドエンド１１２は、ネットワーク１０６上へとコンテンツ１１６（ｎ）をフォーマットし配信する配信サーバ１１８を含むこともできる。ヘッドエンド１１２からクライアント１０４に対する配信は、ケーブル、ＲＦ、マイクロ波、および衛星を含めていくつかの方法で実現することができる。ヘッドエンド１１２は、コンテンツプロバイダ１０２とは別に示されているが、コンテンツプロバイダ１０２は、ヘッドエンド１１２を含むこともできる。
【００１６】
クライアント１０４は、デスクトップコンピュータ、移動局、娯楽機器（ａｐｐｌｉａｎｃｅ）、図示するようにディスプレイデバイス１２２に通信可能に結合されたセットトップボックス１２０など、ネットワーク１０６上で情報をやりとりすることができるコンピュータとして構成することができる。クライアント１０４は、クライアント１０４を動作させる人および／またはエンティティに関したものでもよい。換言すれば、クライアント１０４は、ユーザおよび／または機械を含む論理的なクライアントを記述することもできる。１つのクライアント１０４が図示されているが、複数のクライアントをネットワーク１０６に対して通信可能に結合することもできる。
【００１７】
クライアント１０４は、ローカルに記憶されたコンテンツ１２６（ｍ）を有するデータベース１２４を含むこともでき、ここでｍは、１から「Ｍ」の任意の数字とすることができる。例えば、クライアント１０４は、ハードディスクメモリに記憶されるデータベース１２４を含むＰＶＲ（ｐｅｒｓｏｎａｌ  ｖｉｄｅｏ  ｒｅｃｏｒｄｅｒ）として構成することもできる。メモリのサイズによって、ユーザはコンテンツを記録することができる。ＰＶＲはまた、現在ブロードキャストされているコンテンツを一時停止する機能などの制御機能を提供し、依然として進行中であるが一時停止されたポイントから閲覧者がそのコンテンツを見ることができるようにもする。ＰＶＲは、その現在ブロードキャストされているコンテンツをそのディスクメモリに記録し続けながら、その一時停止イベントから開始してディスクメモリからそのコンテンツを再生する。さらに、ＰＶＲは、巻戻し、記憶された番組の早送り、スローモーション再生など他の制御機能をサポートすることもできる。
【００１８】
クライアント１０４には、十分な処理機能および記憶機能が装備されてナビゲーションアプリケーション（ｎａｖｉｇａｔｉｏｎ  ａｐｐｌｉｃａｔｉｏｎ）１２８が記憶され実行される。ナビゲーションアプリケーション１２８は、クライアント１０４上で実行されたとき、コンテンツと対話する制御機能を提供する。例えば、この制御機能は、以前に考察したようなＰＶＲ制御機能、ならびにチャンネル選択、ＥＰＧナビゲーションなどを含むことができる。
【００１９】
クライアント１０４は、構成可能なＵＩ１３０およびＵＩモジュール１３２も含んでいる。構成可能なＵＩ１３０は、デバイスのユーザがナビゲーションアプリケーション１２８の１つまたは複数の制御機能を開始することができるようにこのデバイス上で実行するためのインターフェースを提供する。ＵＩモジュール１３２は、クライアント１０４上で実行されて構成可能なＵＩ１３０を実行することになるデバイスの検出されたハードウェアリソースおよび／またはソフトウェアリソースに基づいて構成可能なＵＩ１３０を構成する。例えば、図示したようなＰＤＡなどのローカルデバイス１３４は、ローカル接続１３６上でクライアント１０４に対して通信可能に結合することができる。ＵＩモジュール１３２は、実行されたときローカルデバイス１３４の機能を検出して構成可能なＵＩ１３０を実行し、次いでそれに応じて構成可能なＵＩ１３０を構成する。クライアント１０４は、ネットワーク１０６上のリモートデバイス１３８、例えば図示したようなデスクトップコンピュータに通信可能に結合することもできる。ＵＩモジュール１３２は、クライアント１０４上で実行されたとき、リモートデバイス１３８の検出されたハードウェア機能および／またはソフトウェア機能に基づいて構成可能なＵＩ１３０を構成して構成可能なＵＩ１３０を実行することもできる。ＵＩモジュール１３２は、ＨＴＭＬフォーマットでＵＩをローカルデバイス１３４およびリモートデバイス１３８に対して提供するＨＴＴＰサーバなど様々な方法で実装することができる。クライアント１０４は、ＵＩモジュール１３２の実行を介して、それぞれのローカルデバイス１３４およびリモートデバイス１３８の機能に基づいてローカルデバイス１３４およびリモートデバイス１３８上で実行するためにＵＩを提供してこれらのＵＩを実行することができる。
【００２０】
ヘッドエンド１１２は、複数のクライアント状態データ１４２（ｊ）を記憶するためのデータベース１４０を含んでいてローカルデバイス１３４およびリモートデバイス１３８上で実行されるＵＩによって開始された要求を処理し、ここで、ｊは、１から「Ｊ」の任意の数字とすることができる。例えば、配信サーバ１１８は、配信サーバ１１８上で実行されるリモーティングモジュール（ｒｅｍｏｔｉｎｇ  ｍｏｄｕｌｅ）１４４を含んでいてクライアント１０４のナビゲーションアプリケーション１２８に１つまたは複数の制御機能を実施させる要求を処理することができる。リモーティングモジュール１４４は、実行されたときこの制御機能を実施することになるクライアント１０４に対応するクライアント状態データ１４２（ｊ）を使用してこれらの要求を処理する。クライアント１０４が、この制御機能を実施することが可能な場合、配信サーバ１１８は、クライアント１０４、および特にナビゲーションアプリケーション１２８にこの制御機能を実施させる。このようにして、ヘッドエンド１１２は、環境１００中のクライアント状態データ１４２（ｊ）について信頼すべきソースを提供する。
【００２１】
セットトップボックス１２０は、ディスプレイデバイス１２２とは別に示されているが、このセットトップボックス１２０を、ディスプレイデバイス１２２中に構築して一体化されたユニットを形成することができる。さらに、他の実施形態においては、クライアント１０４は、ブロードキャストを可能にしたコンピュータ、情報アプライアンス、ラップトップコンピュータ、パーソナルビデオレコーダ（ＰＶＲ）など、ナビゲーションアプリケーション１２８およびＵＩモジュール１３２を実行することが可能な他のコンピュータとして実施することもできる。
【００２２】
図２は、図１の配信サーバ１１８、クライアント１０４、ローカルデバイス１３４およびリモートデバイス１３８をより詳細に示す例示の一実施形態２００を示す図である。クライアント１０４は、プロセッサ２０２およびメモリ２０４を含んでいる。ＵＩモジュール１３２およびナビゲーションアプリケーション１２８は、プロセッサ２０２上で実行されるものとして示され、メモリ２０４に記憶可能である。構成可能なＵＩ１３０は、メモリ２０４に記憶されるものとして示されている。
【００２３】
クライアント１０４は、ネットワーク１０６上でブロードキャストされる、図１のコンテンツ１１６（ｎ）を受信するために利用することができるリモートネットワークインターフェース（リモートインターフェース）２０６を含むこともできる。例えば、リモートインターフェース２０６は、ネットワーク１０６上からブロードキャストコンテンツを受信するチューナとして構成することもでき、またネットワーク１０６上の２方向の通信に適したトランスミッタ／レシーバ（トランシーバ）として構成することもできるなどとなっている。コンテンツ１１６（ｎ）は、クライアント１０４が後で出力するためにデータベース１２４に記憶することができ、かつ／またはコンテンツ１１６（ｎ）の即時出力を提供することもできる。データベース１２４は、メモリ２０４に含まれるものとして図示されているが、別のストレージデバイスに含めることもできる。例えば、データベース１２４についてのストレージデバイスはハードディスクドライブとして構成することもでき、メモリ２０４はＲＡＭとして構成することもでき、メモリ２０４もこのストレージデバイスもＲＡＭとして構成することもでき、メモリ２０４もこのストレージデバイスも着脱可能なメモリとして構成することもできるなどとなっている。クライアント１０４は、ナビゲーションアプリケーション１２８を実行してデータベース１２４から図１のコンテンツ１２６（ｍ）を検索し、ディスプレイデバイス１２２上でレンダリングするために出力インターフェース２０８を介してコンテンツ１２６（ｍ）を出力する。したがって、この実施形態においては、クライアント１０４は、ビデオカセットレコーダと類似の方法で図１のコンテンツ１２６（ｍ）を記憶し再生するＰＶＲとして動作することが可能である。
【００２４】
クライアント１０４は、入力デバイス２１０が提供する入力を経由してユーザが制御することができる。この入力は、ローカル接続２１４上で入力インターフェース２１２からクライアント１０４によって受信される。ローカル接続２１４は、ローカルデバイス１３４をローカルインターフェース２２２と通信可能に結合するローカル接続１３６と同じでもよいし、またはそれと異なっていてもよい。入力インターフェース２１２、ローカル接続２１４、および入力デバイス２１０は、様々な方法で構成することができる。例えば、入力インターフェース２１２は、リモートコントロールデバイス、ハンドヘルド入力デバイス、無線キーボードなどの他の任意の無線デバイスなどの入力デバイス２１０から無線通信を受信するための、ＩＲ（ｉｎｆｒａｒｅｄ赤外線）やブルートゥース（Ｂｌｕｅｔｏｏｔｈ）無線ポートなどの無線ポートとして構成することもできる。代替実施形態においては、入力インターフェース２１２は、ＲＦ通信リンク、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓユニバーサルシリアルバス）接続などを含み得る無線接続など他の伝送モードを使用してクライアント１０４と情報をやりとりすることができる。
【００２５】
コンテンツの出力が要求されるときに、ナビゲーションアプリケーション１２８をプロセッサ２０２上で実行してネットワーク上の配信サーバ１１８からストリーミングされるコンテンツからなどのコンテンツ、データベース１２４上にローカルに記憶されるコンテンツ１２６（ｍ）などが取得される。ナビゲーションアプリケーション１２８はまた、図１のコンテンツプロバイダ１０２が提供するような元の符号化されたフォーマットへとこのコンテンツを再記憶することもできる。例えば、図１のコンテンツ１１６（ｎ）は、圧縮し、次いで配信サーバ１１８からクライアント１０４へとストリーミングすることができる。したがって、ナビゲーションアプリケーション１２８がこのコンテンツを受信するときに、ディスプレイデバイス１２２によってレンダリングするためにこのコンテンツを伸張（ｄｅｃｏｍｐｒｅｓｓ）することができる。
【００２６】
クライアント１０４は、デバイスが実行するＵＩの使用を介して制御することもできる。例えば、ローカルデバイス１３４は、プロセッサ２１６およびメモリ２１８を含むこともある。ローカルデバイス１３４は、ＵＩモジュール１３２および構成可能なＵＩ１３０の実行を介してクライアント１０４が提供したＵＩ２２０を含んでいる。プロセッサ２１６上で実行されたとき、ＵＩ２２０は、ユーザが、クライアント１０４上のナビゲーションアプリケーション１２８の１つまたは複数の制御機能を開始できるようにする。ローカルデバイス１３４は、ローカルインターフェース２２２を使用してローカル接続１３６上でクライアントに対して通信可能に結合される。ローカルデバイス１３４は、ナビゲーションアプリケーション２２４を含んでいてローカルデバイス１３４それ自体の上でコンテンツとの対話を提供することもできる。ナビゲーションアプリケーション２２４は、例えばブラウザ、メディアプレーヤなどとして構成することができる。
【００２７】
リモートデバイス１３８も、プロセッサ２２６およびメモリ２２８を含むことができる。ローカルデバイス１３４と同様に、リモートデバイス１３８は、プロセッサ２２６上で実行されるものとして示されるＵＩ２３０を含んでおり、メモリ２２８に記憶可能である。リモートデバイス１３８は、クライアント１０４および／またはローカルデバイス１３４のナビゲーションアプリケーション１２８、２２４と同じでも、またはそれらと異なっていてもよいナビゲーションアプリケーション２３２を含むこともできる。プロセッサ２２６上で実行されたとき、ＵＩ２３０は、クライアント１０４上でナビゲーションアプリケーション１２８の１つまたは複数の制御機能をユーザが開始できるようにする。リモートデバイス１３８上でＵＩ２３０と対話することによって、リモートデバイス１３８のユーザは、ネットワーク１０６上からクライアント１０４の制御機能を開始することができる。リモートデバイス１３８とクライアント１０４の間の通信を、リモートインターフェース２０６を使用して提供することもできる。
【００２８】
ＵＩ２２０、２３０によってこれらの制御機能を開始することによって、ユーザは、様々な制御機能を要求することができる。制御機能の例は、ネットワーク１０６上をクライアント１０４に向けてストリーミングされる、図１のコンテンツ１１６（ｎ）の記録、このコンテンツの出力を早送りし、巻戻しを行い、または一時停止するなどのコンテンツを介したナビゲーションなどを含んでいる。この制御機能は、例えば一時停止、巻戻し、早送り、スローモーション再生などコンテンツの非線形再生（すなわち、コンテンツのタイムシフト再生）を提供することができる。例えば、一時停止中にクライアント１０４は、このコンテンツをデータベース１２４に記録し続けることができる。次いで、クライアント１０４は、ナビゲーションアプリケーション１２８の実行を介して現在ブロードキャストされているコンテンツ１２６（ｍ）をデータベース１２４に記録し続けながら、コンテンツ１２６（ｍ）が一時停止された時点から開始してデータベース１２４から図１のコンテンツ１２６（ｍ）を再生することができる。
【００２９】
図１のヘッドエンド１１２に含まれる配信サーバ１１８も、プロセッサ２３４およびメモリ２３６を含んでいる。リモーティングモジュール１４４は、プロセッサ２３４上で実行され、メモリ２３６に記憶可能であるものとして示されている。クライアント状態データ１４２（ｊ）は、メモリ２３６に記憶されるものとして示されている。データベース１１４は、メモリ２３６に含まれるように示されているが、別のストレージデバイスに含めることもできる。例えば、データベース１１４についてのストレージデバイスは、クライアント１０４のデータベース１２４と同様にハードディスクドライブとして構成することもでき、メモリ２３６はＲＡＭとして構成することもでき、メモリ２３６もこのストレージデバイスもＲＡＭとして構成することもでき、メモリ２３６もこのストレージデバイスも着脱可能なメモリとして構成することもできるなどとなっている。したがって、配信サーバ１１８は、クライアント状態データ１４２（ｊ）にローカルにアクセスすることができる。
【００３０】
配信サーバ１１８は、プロセッサ２３４上でリモーティングモジュール１４４を実行してクライアント１０４上のナビゲーションアプリケーション１２８の制御機能を開始する要求を処理する。これらの要求はそれぞれのローカルデバイス１３４およびリモートデバイス１３８上で実行されるＵＩ２２０、２３０から源を発することもある。リモーティングモジュール１４４は、プロセッサ２３４上で実行されたときメモリ２３６に記憶されるクライアント状態データ１４２（ｊ）に従ってこの要求を処理する。例えば、複数のクライアント状態データ１４２（ｊ）を、図１のヘッドエンド１１２からコンテンツを受信する複数のクライアントに対応するメモリ２３６に記憶することができる。特定のクライアントについてのクライアント状態データ１４２（ｊ）の各集合は、レーティング制限、お気に入りチャンネル、用意されたサービスレベルなどの、特定のクライアントが利用する一般的なオペレーションデータを含むことができる。ヘッドエンド１１２をクライアント１０４およびリモートデバイス１３８に接続するネットワーク１０６は、ヘッドエンド１１２がこの情報についての信頼すべきソースになるように十分な帯域幅と信頼性を有することができる。換言すれば、ヘッドエンド１１２は、クライアント１０４自体にさえ優る、特定のクライアントのためのクライアント状態データ１４２（ｊ）についての一次ソースと考えることができる。例えば、配信サーバ１１８上にクライアント状態データ１４２（ｊ）を記憶することによって、ユーザは、セットトップボックス間でクライアント状態データを転送することなくセットトップボックスを切り換えることができる。
【００３１】
さらに、ローカルアクセスのために配信サーバ１１８によってクライアント状態データ１４２（ｊ）を記憶することにより、低リソースのクライアントを利用してコンテンツを出力することができるが、このＵＩを実行してクライアント１０４を制御するデバイスに対して高リソース機能を依然として提供することができる。例えば、限られたハードウェアリソースおよび／またはソフトウェアリソースを有するクライアントなどの低リソースクライアントは、ディスプレイデバイス上でレンダリングするためにコンテンツを解読し出力するように構成することができる。この低リソースクライアントは、ハードディスクドライブ上などのコンテンツのローカルストレージを提供することもできる。かなりの処理リソースを有するデスクトップコンピュータなどの機能豊富なリモートデバイスは、この低リソースクライアント上では実行することができないであろうＵＩを実行することができる。このＵＩは、例えば、より高解像度（例えば、インチ（２．５４ｃｍ）当たりにより多くのドット）を有し、出力するためのより多くのカラー数をサポートし、マクロを提供して制御機能を開始する（例えば、特定のテレビジョン番組のすべてのエピソードを記録する）ことなどができる。このようにして、ＵＩは、クライアントのユーザに対して追加の機能を提供することができる。異なる機能を有するデバイスによって出力されるように構成されるＵＩの例は、図４および５に関連して見出すことができる。
【００３２】
例示のプロシージャ
図３は、クライアント１０４が、図２のローカルデバイス１３４上で実行するためのＵＩを構成する例示の一実施形態におけるプロシージャ３００の流れ図である。ブロック３０２において、ローカル接続が、ローカルデバイス１３４とクライアント１０４との間で開始される。有線接続や無線接続など様々なローカル接続を開始することができる。有線接続の一例がイーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））接続であり、これを利用してイーサネット（登録商標）ネットワーク上で複数のデバイスを互いにローカルに接続することができる。ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ：赤外線データ協会）規格、ＨｏｍｅＲＦワーキンググループが開発したＳＷＡＰ（Ｓｈａｒｅｄ  Ｗｉｒｅｌｅｓｓ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ：共有無線アクセスプロトコル）規格、ＷＥＣＡ（Ｗｉｒｅｌｅｓｓ  Ｅｔｈｅｒｎｅｔ（登録商標）Ｃｏｍｐａｔｉｂｉｌｉｔｙ  Ａｌｌｉａｎｃｅ）が開発したＩＥＥＥ８０２．１１ｂおよび８０２．１１ｇ、ブルートゥースなどに準拠した無線接続など様々な無線接続も考慮されている。
【００３３】
ブロック３０４において、クライアント１０４は、ＵＩモジュール１３２の実行を介してローカルデバイス１３４のハードウェア機能および／またはソフトウェア機能を検出する。例えば、クライアント１０４は、プロセッサ速度、データバス帯域幅、ローカルデバイス１３４の１つまたは複数のバスのデータスループット速度、ローカルデバイス１３４上で使用可能なメモリ空間量、含まれるディスプレイデバイスのサポートされた解像度およびカラーパレット、サポートされるフォント、入力デバイス（例えば、タッチスクリーン、カーソル制御デバイス、ボタン、キーボードなど）の使用可能性、オーディオ入力／出力デバイスの使用可能性などのハードウェア機能を検出することができる。クライアント１０４はまた、サポートされるコンピュータ言語、ローカルデバイス１３４上でのアプリケーションの使用可能性（例えば、ブラウザ、メディアプレーヤなど）、ローカルデバイス１３４上に実装されるドライバなど、ローカルデバイス１３４のソフトウェア機能を検出することもできる。
【００３４】
ブロック３０６において、クライアント１０４は、この検出に基づいてローカルデバイス１３４に対して通信するための構成可能なＵＩを構成する。クライアント１０４は、例えば、ＵＩモジュール１３２を実行してローカルデバイス１３４の検出された機能に基づいて図２の構成可能なＵＩ１３０を構成することができる。ファンクションの異なる構成やこのＵＩのディスプレイ特性などを介して様々な構成を提供することができる。ＵＩの構成についてのさらなる説明は、図４および５に関連して見出すことができる。次いで、クライアント１０４は、ローカル接続１３６上で構成済みのＵＩ３０８をローカルデバイス１３４に対して伝達することができる。
【００３５】
ブロック３１０において、ローカルデバイス１３４は、構成済みのＵＩ３０８を実行してクライアント１０４の制御機能を開始する。例えば、ユーザは、ＰＤＡのタッチスクリーンなどの入力デバイスを利用して構成済みのＵＩ３０８のボタンを「押すこと」によって制御機能を開始することができる。次いで、構成済みのＵＩ３０８は、所望の制御機能を指し示す要求を形成し、ローカル接続１３６上でクライアント１０４に直接にこの要求を伝達することができる。したがって、この実施形態においては、この制御機能は、ネットワーク１０６上でこの要求を伝達することなく、クライアント１０４に対して直接に提供することができる。要求を処理する工程についての追加の考察は図６に関連して見出すことができる。
【００３６】
図３の実施形態では、クライアント１０４によるＵＩの構成について説明したが、ＵＩは、様々な方法で構成することができる。別の実施形態においては、図２の構成可能なＵＩ１３０は、デバイス上で受信および／または実行されたときＵＩの表現および実施形態を構成するソフトウェアを含む自己完結型の構成可能ＵＩとして実装される。例えば、図２の構成可能なＵＩ１３０は、ローカルデバイス１３４で受信することができ、ローカルデバイス上で実行されたとき、ローカルデバイス１３４のハードウェア機能および／またはソフトウェア機能を検出してＵＩを実行する。さらなる実施形態においては、ＵＩは、配信サーバによって構成され、この配信サーバの一例については図７に関連して説明される。
【００３７】
例示のユーザインターフェース
ＵＩは、このＵＩを実行することになるデバイスの機能に基づいて様々な方法で構成することができる。図４は、ユーザが図１のディスプレイデバイス１２２などのディスプレイデバイスに近接して位置するときにクライアントが出力するために構成されるＵＩ３００を示す例示の一実施形態を示す図である。以前に述べたように、これらのＵＩを実行するために利用されるデバイスが異なる機能を有することもあり、またディスプレイデバイスからのユーザの距離も変化し得るので、ＵＩをこれらの異なる機能および距離に対処するように構成することができる。例えば、ディスプレイデバイスに近接して位置するユーザは、このユーザがディスプレイデバイスからさらに遠い距離に位置する場合に比べてさらに多量の細部を認識することができる。さらに、図２のローカルデバイス１３４およびリモートデバイス１３８の入力デバイスが、それぞれ異なる機能を提供することもある。例えば、ローカルデバイスをペンベースのナビゲーションのために構成することができ、マウスおよびキーボードを有するリモートデバイスをデータの多い入力およびナビゲーションのために構成することもできる。したがって、これらの入力デバイスのそれぞれ異なる機能のために構成される、異なるＵＩを提供することができる。
【００３８】
ＵＩ４００は、ユーザがディスプレイデバイスに近接して位置するときに使用するために構成される。ＵＩ４００は、ブロードキャストから入手可能な複数のチャンネル４０４（１）〜４０４（６）をリストアップしたチャンネルガイド４０２を含んでいる。ＵＩ４００はまた、俳優やその番組のプロットの短い記述など、番組に関連した情報を提供することができる複数の番組のうちの１つの詳細な記述４０６も含んでいる。ＵＩ４００はまた、メニューバー４０８を含んでいてマウスなどのカーソル制御デバイスを利用してユーザが機能間でナビゲートできるようにする。図に示したメニューバー４０８には、現在の番組タイトル４１０、クローズドキャプションやステレオなどのオーディオ機能４１２、最近のチャンネル４１４、お気に入りチャンネル４１６、構成、フォント選択などについての選択肢などのツール４１８を含む機能がある。
【００３９】
図５は、図４のＵＩ４００よりも、ディスプレイデバイスから遠い距離に位置しているときにクライアントが出力するために構成されるＵＩ５００を示す例示の実施形態を示す図である。ＵＩ５００は、図５のＵＩ５００において提供される機能の一部分を含むこともある。例えば、ＵＩ５００は、ブロードキャストから入手可能な複数のチャンネル４０４（１）〜４０４（４）をリストアップしたチャンネルガイド５０２を含むこともある。しかし、チャンネルガイド５０２は、図４のチャンネルガイド４０２によりも遠い距離から閲覧され、図４のＵＩ４００を出力するディスプレイデバイスよりも低い解像度を有するディスプレイデバイスによって出力されるように構成される。したがって、チャンネルガイド５０２は、図４のチャンネルガイド４０２よりも少ないチャンネル、および拡大されたフォーマットの番組を含んでいる。
【００４０】
さらに、ＵＩ５００の機能構成が、図４のＵＩ４００とは異なることもある。ＵＩ５００は、例えば、詳細な記述４０６を含むこともあるが、図４におけるＵＩ４００中のチャンネルガイド４０２の上とは対照的にチャンネルガイド５０２の下に詳細な記述４０６を配置している。さらに、ＵＩ５００は、図４のＵＩ４００のメニューバー４０８を含んでいない。例えば、ＵＩ５００は、より低い解像度、すなわち図４のＵＩ４００に比べて少ないインチ（２．５４ｃｍ）当たりのドット数で提供することができ、その結果、ＵＩ５００は、さらに遠い距離から閲覧することができる。したがって、図４のＵＩ４００は、図５のＵＩ５００には含まれていない機能を含んでいるが、ＵＩ５００は、さらに遠い距離から閲覧可能である。ファンクションの構成、ファンクションの表示および解像度は、図４および５のそれぞれＵＩ４００とＵＩ５００との違いとして説明してきたが、他の様々な違いについても考慮している。例えば、ＵＩ５００のカラースキームは、ＵＩ５００が、図４のＵＩ４００で利用されるカラーに比べてコントラストの強いカラーを選択することなどにより、さらに遠い距離から閲覧可能であるように選択することができる。さらに、ファンクションの可視性およびタイプフェースをＵＩごとに変更して最適化された閲覧経験を提供することもできる。例えば、図４のＵＩ４００を出力するためのディスプレイデバイスでは、図５のＵＩ５００を出力するためのディスプレイデバイスよりも多数のカラー数をサポートすることができる。
【００４１】
図６は、図３の構成済みのＵＩ３０８をユーザが使用してクライアント１０４の制御機能を開始する例示の一実施形態におけるプロシージャ６００を示す流れ図である。ブロック６０２において、ローカルデバイス１３４は、クライアント１０４の制御機能を開始する要求６０４を形成し伝達する。例えば、構成済みのＵＩ３０８は、ローカルデバイス１３４上で実行されたときこの制御機能を開始する１つまたは複数の技法を提供することができる。無線電話は、例えば、ボイスメニューを含んでいる構成済みのＵＩ３０８を実行してユーザが使用可能な制御機能のリストを介してナビゲートし、１つまたは複数の制御機能を開始することができるようにする。次いで、ある要求が、所望の制御機能を開始するために形成され、ローカル接続１３６上などをクライアント１０４へと伝達される。
【００４２】
ブロック６０６において、クライアント１０４は、要求６０４を配信サーバ１１８に伝達する。一実施形態において、クライアント１０４は、図２のＵＩモジュール１３２を実行してネットワーク１０６上で配信サーバ１１８に転送するために要求６０４をパッケージングする。別の実施形態においては、要求６０４は、クライアント１０４でパッケージすることなくローカルデバイス１３４によって配信サーバ１１８に経路指定するためにフォーマット化される。
【００４３】
ブロック６０８において、配信サーバ１１８は、クライアント状態データ１４２（ｊ）を使用してこの要求を処理する。リモーティングモジュール１４４を、例えば、配信サーバ１１８上で実行してハードドライブやＲＡＩＤアレイなどに記憶されるなど、配信サーバ１１８にとってローカルに使用可能なクライアント状態データ１４２（ｊ）に従って要求６０４を処理することができる。要求６０４は、クライアント１０４に特有のクライアント状態データ１４２（ｊ）に従って処理される。
【００４４】
要求６０４は、リモーティングモジュール１４４が、特定のクライアント１０４に対応するクライアント状態データ１４２（ｊ）を配置することができるように一意のクライアント識別子を含むことができる。クライアント状態データ１４２（ｊ）が配置された後に、リモーティングモジュール１４４は、実行されたとき、この制御機能の実施がクライアント１０４上で許容され得るかどうかを判定する。例えば、要求６０４は、クライアント１０４上で制御機能を開始してコンテンツ、例えばテレビジョン番組を記録するように構成することができ、配信サーバ１１８は、クライアント状態データ１４２（ｊ）の検査を介してクライアント１０４がこのコンテンツを記録することが可能かどうかを判定することができる。別の例では、要求６０４は、クライアント１０４を所望のテレビジョンチャンネルに同調させるように構成され、次いで配信サーバ１１８は、クライアント１０４がその特定のテレビジョンチャンネルに加入しているかどうかを判定する。
【００４５】
ブロック６１０において、配信サーバ１１８は、この制御機能を実施するコマンド６１２を形成し、クライアント１０４に伝達する。先の例に続いて、リモーティングモジュール１４４は、実行されたとき、クライアント１０４がこの制御機能を実施することが可能であることを決定することができ、したがってクライアント１０４に伝達するためにコマンド６１２を形成することができる。クライアント１０４がこの制御機能を実施することが可能でない場合には、リモーティングモジュール１４４は、ローカルデバイス１３４に対して通信するための応答を形成してこの制御機能が許可されないことを示すことができる。別の実施形態においては、クライアント１０４上で追加のインターフェースを設計して更新のためにヘッドエンドを「聴取する（ｌｉｓｔｅｎ）」ことができる。例えば、ＵＩモジュール１３２は、クライアント１０４上で実行されたとき、ネットワーク１０６に定期的にログオンして、ヘッドエンド１１２が提供するコマンドを受信および／または要求して１つまたは複数の制御機能を実施することができる。
【００４６】
ブロック６１４において、クライアント１０４は、この制御機能を実施する。例えば、クライアント１０４は、配信サーバ１１８からコマンド６１２を受信することができる。このコマンドは、様々な暗号技法を利用して暗号化してこのコマンドが攻撃者によってまねされないように保護することができる。ナビゲーションアプリケーション１２８および／またはＵＩモジュール１３２は、実行されたときコマンド６１２を暗号解読してどの制御機能を実施すべきかを決定する。次いでナビゲーションアプリケーション１２８は、指示された制御機能を実施することができる。ナビゲーションアプリケーション１２８は、例えば、特定の時刻における特定のテレビジョン番組を記録し、どのブロードキャストチャンネルが図２のディスプレイデバイス１２２に対してクライアント１０４によって出力されるかを変更し、お気に入りチャンネルに同調させることなどができる。図３および６に関連して考察された実施形態では、ローカルデバイス１３４上におけるＵＩの構成および実行について説明しているが、以下の実施形態においてより詳細に説明するように、リモートデバイス１３８も同様な機能を提供することができる。
【００４７】
図７は、ＵＩが図２のリモートデバイス１３８のために構成され、それによって実行されてクライアント１０４の１つまたは複数の制御機能が開始される例示の一実施形態におけるプロシージャ７００を示す流れ図である。ブロック７０２において、リモートデバイスは、この配信サーバとのリモート接続を開始する。例えば、図２のリモートデバイス１３８は、ネットワーク１０６上で図２の配信サーバ１１８とリモート接続を開始することができる。ネットワーク１０６は、ワイドエリアネットワーク（ＷＡＮ）、例えばインターネットなど、様々な構成を想定することができる。ＷＡＮは、ローカルエリアネットワーク（ＬＡＮ）よりも広い通信構造を含んでいる地理的に分散したネットワークとして考えることもできる。ＷＡＮは、例えば、私有され、リースされ、またはレンタルされたものでもよいが、ほとんどの場合には公共（例えば、共用されたユーザ）のネットワークの少なくとも一部分を含んでいる。
【００４８】
ブロック７０４において、リモートデバイスは、クライアントの制御機能を開始するために適した、配信サーバからのＵＩについてのクエリ（ｑｕｅｒｙ）を形成する。リモートデバイスは、例えば、所望のクライアントを識別する、ネットワーク上で通信するためのクエリを形成することができる。一実施形態においては、クエリは、クライアントのネットワークアドレスを含んでいる。別の実施形態では、配信サーバは、クライアントロケーションのローカルに記憶されたリストを含んでいる。さらなる実施形態においては、配信サーバは、図２のネットワーク１０６に照会してクライアントの位置を突き止める。例えば、リモーティングモジュール１４４は、配信サーバ１１８上で実行されたとき所望のネットワークリソースの位置を突き止めるためのブラウザとしての役割を果たし、ネットワークリソースは、この場合、図２のクライアント１０４を含んでいる。
【００４９】
ブロック７０６において、配信サーバは、クライアントから構成可能なＵＩを取得する。例えば、配信サーバは、ネットワーク上でクライアントに伝達される追加のクエリを形成することができる。次いで配信サーバは、構成可能なＵＩを含む、クエリに対する応答を受信することができる。
【００５０】
ブロック７０８において、配信サーバは、リモート接続上でリモートデバイスのハードウェア機能および／またはソフトウェア機能を検出する。以前に説明したようなクライアントと同様に、配信サーバは、ＵＩを実行するリモートデバイスの機能を示すリモートデバイス１３８の処理速度、使用可能なソフトウェアなどを検出することができる。ブロック７１０において、配信サーバは、検出された機能に基づいて構成可能なＵＩを構成してリモートデバイスについて構成されたＵＩを形成する。配信サーバは、例えば構成可能なＵＩのファンクションを構成し、使用可能な入力デバイスに基づいてファンクションを選択することなどができる。別の実施形態においては、ユーザがＵＩを閲覧する際にリモートデバイスから位置づけられる適切な距離に基づいてＵＩを構成することができる。例えば前述したように、デバイスは、ユーザの手に保持されるＰＤＡとは対称的にリビングルームにおけるテレビジョンなどのように様々な距離から閲覧するように構成することができる。ユーザのこのデバイスからのその適切な距離に基づいてこの構成可能なＵＩを構成することによって、この構成済みのＵＩをこのユーザが閲覧するために最適化することができる。
【００５１】
ブロック７１２において、配信サーバは、リモートデバイスの指示およびクライアント加入（ａｆｆｉｌｉａｔｉｏｎ）を含むクライアント状態データを記憶する。配信サーバは、例えば、構成済みのＵＩを受信したリモートデバイスの識別子と、特定のＵＩについてのクライアント加入の対応する指示を含むデータを記憶することができる。したがって、配信サーバがリモートデバイスからの要求を受信するときに、配信サーバは、この要求についての宛先、すなわち特定のクライアントを簡単に識別することができる。構成可能なＵＩの構成をこの実施形態においては配信サーバによって実施されるものとして説明しているが、構成可能なＵＩは、様々な方法で構成することができる。例えば、構成可能なＵＩは、図３に関連して説明されているようにクライアントによって構成することも、構成可能なＵＩ自体によって自動的に構成することもでき、以下同様である。
【００５２】
ブロック７１４において、リモートデバイスは、図２のプロセッサ２２６上でＵＩ２３０を実行することなどによって構成済みのＵＩを受信し実行する。ブロック７１６において、ユーザは、ＵＩと対話することによって制御機能を選択する。例えば、キーボード、マウス、マイクロフォンなどの、リモートデバイスの入力デバイスを利用してボイスコマンドなどを受信して開始についての複数の制御機能のうちの１つを選択することができる。ブロック７１８において、ＵＩは、この制御機能を求める要求を形成し配信サーバに伝達する。したがって、この実施形態においては、リモートデバイス１３８が開始する要求は、最初にクライアント１０４を介して伝達されることなくネットワーク１０６上で配信サーバ１１８に対して直接に伝達される。
【００５３】
判断ブロック７２０において、クライアントがこの要求された制御機能を実施することが認可されているかどうかについての判定が行われる。前述のように、この判定は、配信サーバが、この制御機能を実施すべきクライアントのクライアント状態データを利用してこの要求を処理することによって行うことができる。クライアントが、この制御機能を実施することが認可されていない場合、プロシージャ７００は、クライアントがこの要求された制御機能を実施することが認可されていないことを示す障害メッセージ（ｆａｉｌｕｒｅ  ｍｅｓｓａｇｅ）をリモートデバイスに送信することによってブロック７２２において終了する。
【００５４】
クライアントがクライアント状態データに従ってこの制御機能を実施することが認可されている場合には、ブロック７２４において、配信サーバはこの要求を変換してクライアントに伝達するための、この制御機能を実施するコマンドを形成する。例えば、リモートデバイスが形成したこの制御機能を開始するための要求が、クライアントと互換性がないこともある。したがって、配信サーバでは、クライアントに対応する制御機能を実施させるコマンドへとこの要求を変換することもある。したがって、ブロック７２６において、クライアントは、このコマンドを受信し、このコマンドに示される制御機能を実施することができる。
【００５５】
このようにして、ＵＩの構成および利用についての環境が提供される。一実施形態においては、ヘッドエンドは、前述のような環境におけるクライアント状態データについての信頼すべきソースになるように構成される。さらに、ヘッドエンドは、インターネット上でアクセス可能なウェブブラウザ、標準精細度のテレビジョンに通信可能に結合されたセットトップボックス、高解像度テレビジョンに通信可能に結合されたセットトップボックス、無線電話、ＰＤＡなどのデバイスの機能をクライアント加入とハードウェア機能および／またはソフトウェア機能との両方によって認識する能力を有することができる。
【００５６】
構造機能および／または方法動作に特有の言語で本発明を説明してきたが、添付の特許請求の範囲で定義される本発明は、必ずしも説明したこれら特定の機能または動作に限定されないことを理解されたい。そうではなくて、これら特定の機能および動作は、特許請求された本発明を実装する例示の形態として開示されている。
【符号の説明】
【００５７】
１０２  １つ（または複数）のコンテンツプロバイダ
１０４  クライアント
１０６  ネットワーク
１０８（ｋ）  コンテンツ
１１２  ヘッドエンド
１１６（ｎ）  コンテンツ
１１８  配信サーバ
１２２  ディスプレイデバイス
１２６（ｍ）  コンテンツ
１２８  ナビゲーションアプリケーション
１３０  構成可能なＵＩ
１３２  ＵＩモジュール
１３４  ローカルデバイス
１３８  リモートデバイス
１４２（ｊ）  クライアント状態データ
１４４  リモーティングモジュール
２０２  プロセッサ
２０４  メモリ
２０６  リモートインターフェース
２０８  出力インターフェース
２１０  入力デバイス
２１２  入力インターフェース
２１６  プロセッサ
２１８  メモリ
２２２  ローカルインターフェース
２２４  ナビゲーションアプリケーション
２２６  プロセッサ
２２８  メモリ
２３２  ナビゲーションアプリケーション
２３４  プロセッサ
２３６  メモリ
【図１】
0005650143.tif 000002
【図２】
0005650143.tif 000003
【図３】
0005650143.tif 000004
【図４】
0005650143.tif 000005
【図５】
0005650143.tif 000006
【図６】
0005650143.tif 000007
【図７】
0005650143.tif 000008