(58)【調査した分野】(Int.Cl.,DB名)
前記リモートデバイスによって前記制御機能を実行することが認可されているかどうかの判定は、クライアント状態データを使用して処理し、前記クライアント状態データは、
出力用のコンテンツのレーティング制限、
お気に入りチャンネル、
コンテンツサービスの1または複数のレベル、および
コンテンツ出力用の一般的なオペレーションデータ
からなる群から選択されることを特徴とする請求項4に記載の方法。
【発明を実施するための形態】
【0009】
この考察における例では同じ参照番号を利用して同様な構造およびコンポーネントを示している。
【0010】
概要
ユーザインターフェース(UI)の構成について説明する。UIは、クライアントの制御機能を開始するためにこのクライアントによって提供される。UIを様々なデバイス上で実行してクライアントの制御機能を開始することができる。一実施形態においては、UIは、ローカルネットワーク接続(ローカル接続)上でクライアントに対して通信可能に結合されたローカルデバイス上で実行することができる。例えば、クライアントは、従来のテレビジョン番組などのブロードキャストコンテンツの出力を提供し、クライアント上で実行されるアプリケーションやネットワーク上でリモートに実行されるアプリケーションなど追加のタイプのコンテンツとの対話を提供するセットトップボックスとして構成することができる。ローカルデバイスは、ローカル無線周波数(RF)接続上でセットトップボックスに通信可能に結合されるPDA(personal digital assistant携帯型情報端末)、例えば「ポケット」PCとして構成することもできる。PDAはセットトップボックスから得られるUIを実行してコンテンツを記録するなどのセットトップボックスの制御機能を開始する。セットトップボックスは、PDAの解像度、処理能力、サポートされるカラーなど、UIを実行するためのPDAの検出されたハードウェア機能および/またはソフトウェア機能に基づいてUIを構成することができる。したがって、PDAには、PDAのそのハードウェアリソースおよび/またはソフトウェアリソースに対応するUIが提供される。
【0011】
別の実施形態においては、UIは、リモートネットワーク接続(リモート接続)上でクライアントに対して通信可能に結合されたリモートデバイス上で実行することができる。先の例に引き続いて、セットトップボックスは、従来のブロードキャストテレビジョン、ビデオオンデマンド(VOD)、リモートアプリケーション処理など、ヘッドエンドからネットワーク上で受信されるコンテンツの出力を提供する。デスクトップコンピュータなどのリモートデバイスも、ネットワークに通信可能に結合することができる。リモートデバイスはまた、セットトップボックスから取得してセットトップボックスの制御機能を開始するUIを実行する。セットトップボックスは、UIを実行するリモートデバイスの検出されたハードウェア機能および/またはソフトウェア機能に基づいてUIを構成する。したがって、リモートデバイスには、リモートデバイスのハードウェアリソースおよび/またはソフトウェアリソースに対応するUIを提供することもできる。UIの構成のさらなる考察については、
図3および7に関連して見出すことができる。
【0012】
さらなる一実施形態においては、ヘッドエンドは、クライアント状態データを記憶してUIから受信された制御機能を求める要求を処理する。例えば、ヘッドエンドは、ヘッドエンドによってローカルにアクセス可能な、レーティング制限(rating limit)、お気に入りチャンネル、サービスレベルなどのクライアント状態データを含むことができる。ヘッドエンドは、このクライアント状態データを利用してローカルデバイスによってローカルに実行され、またはリモートデバイスによってリモートに実行されるUIが提供する要求を処理することができる。要求が処理された後に、次いでヘッドエンドは、クライアントに制御機能を実施させることができる。ヘッドエンドにおける要求を処理することによって、ヘッドエンドは、クライアントが実施すべき制御機能を処理するための信頼すべき(authoritative)ソースを提供する。これによって、以前のクライアントから新しいクライアントへとクライアント状態データを手動で更新することなく以前のクライアントから新しいクライアントへと変更する機能や、クライアントとの接続を取得することなく制御機能のリモートな開始など、ユーザにとって使用可能な様々な機能の増大がもたらされ得る。ヘッドエンドによるクライアント状態データの使用についてのさらなる考察は、
図6および7に関連して見出すことができる。
【0013】
例示のシステム
図1は、ネットワーク106上でクライアント104に通信可能に結合されたコンテンツプロバイダ102を含む例示の一実施形態における環境100を示す図である。以下の実施形態におけるネットワーク106は、インターネットなどのワイドエリアネットワーク(WAN)の一例であり、ブロードキャストネットワーク、イントラネット、有線または無線の電話ネットワークなど様々な他のネットワークを含むこともできる。
【0014】
クライアント104は、ネットワーク106上でコンテンツプロバイダ102からブロードキャストされたコンテンツを受信するように構成することができる。コンテンツプロバイダ102は、コンテンツプロバイダ102上にローカルに記憶されたコンテンツ108(k)を含んでおり、ここで、kは、1から「K」までの任意の数字とすることができる。コンテンツ108(k)は、テレビジョン番組、ビデオオンデマンド、EPG(electronic program guide電子番組ガイド)、リモートアプリケーション処理の1つまたは複数の結果など様々なデータを含むことができる。コンテンツプロバイダ102は、ネットワーク110上でコンテンツ108(k)をヘッドエンド112に対して提供する。ネットワーク110は、ネットワーク106と同じでも、またそれと異なっていてもよい。次いで、コンテンツ108(k)は、ネットワーク106上でクライアント104にブロードキャストするためのヘッドエンド112上のコンテンツ116(n)としてデータベース114に記憶することができ、ここでnは、1から「N」までの任意の数字とすることができる。換言すれば、データベース114に記憶されるコンテンツ116(n)は、コンテンツプロバイダ102から受信されるコンテンツ108(k)のコピーとすることができる。コンテンツ116(n)は、クライアント104にブロードキャストされる追加のデータを含むこともできる。例えば、データベース114に記憶されるコンテンツ116(n)は、カルーセルファイルシステム(carousel file system)を利用してクライアント104にブロードキャストされるEPGデータを含むこともできる。カルーセルファイルシステムは、ネットワーク106上でクライアント104に対してOOB(out−of−band帯域外)チャンネル上でEPGデータを反復してブロードキャストする。
【0015】
ヘッドエンド112は、ネットワーク106上へとコンテンツ116(n)をフォーマットし配信する配信サーバ118を含むこともできる。ヘッドエンド112からクライアント104に対する配信は、ケーブル、RF、マイクロ波、および衛星を含めていくつかの方法で実現することができる。ヘッドエンド112は、コンテンツプロバイダ102とは別に示されているが、コンテンツプロバイダ102は、ヘッドエンド112を含むこともできる。
【0016】
クライアント104は、デスクトップコンピュータ、移動局、娯楽機器(appliance)、図示するようにディスプレイデバイス122に通信可能に結合されたセットトップボックス120など、ネットワーク106上で情報をやりとりすることができるコンピュータとして構成することができる。クライアント104は、クライアント104を動作させる人および/またはエンティティに関したものでもよい。換言すれば、クライアント104は、ユーザおよび/または機械を含む論理的なクライアントを記述することもできる。1つのクライアント104が図示されているが、複数のクライアントをネットワーク106に対して通信可能に結合することもできる。
【0017】
クライアント104は、ローカルに記憶されたコンテンツ126(m)を有するデータベース124を含むこともでき、ここでmは、1から「M」の任意の数字とすることができる。例えば、クライアント104は、ハードディスクメモリに記憶されるデータベース124を含むPVR(personal video recorder)として構成することもできる。メモリのサイズによって、ユーザはコンテンツを記録することができる。PVRはまた、現在ブロードキャストされているコンテンツを一時停止する機能などの制御機能を提供し、依然として進行中であるが一時停止されたポイントから閲覧者がそのコンテンツを見ることができるようにもする。PVRは、その現在ブロードキャストされているコンテンツをそのディスクメモリに記録し続けながら、その一時停止イベントから開始してディスクメモリからそのコンテンツを再生する。さらに、PVRは、巻戻し、記憶された番組の早送り、スローモーション再生など他の制御機能をサポートすることもできる。
【0018】
クライアント104には、十分な処理機能および記憶機能が装備されてナビゲーションアプリケーション(navigation application)128が記憶され実行される。ナビゲーションアプリケーション128は、クライアント104上で実行されたとき、コンテンツと対話する制御機能を提供する。例えば、この制御機能は、以前に考察したようなPVR制御機能、ならびにチャンネル選択、EPGナビゲーションなどを含むことができる。
【0019】
クライアント104は、構成可能なUI130およびUIモジュール132も含んでいる。構成可能なUI130は、デバイスのユーザがナビゲーションアプリケーション128の1つまたは複数の制御機能を開始することができるようにこのデバイス上で実行するためのインターフェースを提供する。UIモジュール132は、クライアント104上で実行されて構成可能なUI130を実行することになるデバイスの検出されたハードウェアリソースおよび/またはソフトウェアリソースに基づいて構成可能なUI130を構成する。例えば、図示したようなPDAなどのローカルデバイス134は、ローカル接続136上でクライアント104に対して通信可能に結合することができる。UIモジュール132は、実行されたときローカルデバイス134の機能を検出して構成可能なUI130を実行し、次いでそれに応じて構成可能なUI130を構成する。クライアント104は、ネットワーク106上のリモートデバイス138、例えば図示したようなデスクトップコンピュータに通信可能に結合することもできる。UIモジュール132は、クライアント104上で実行されたとき、リモートデバイス138の検出されたハードウェア機能および/またはソフトウェア機能に基づいて構成可能なUI130を構成して構成可能なUI130を実行することもできる。UIモジュール132は、HTMLフォーマットでUIをローカルデバイス134およびリモートデバイス138に対して提供するHTTPサーバなど様々な方法で実装することができる。クライアント104は、UIモジュール132の実行を介して、それぞれのローカルデバイス134およびリモートデバイス138の機能に基づいてローカルデバイス134およびリモートデバイス138上で実行するためにUIを提供してこれらのUIを実行することができる。
【0020】
ヘッドエンド112は、複数のクライアント状態データ142(j)を記憶するためのデータベース140を含んでいてローカルデバイス134およびリモートデバイス138上で実行されるUIによって開始された要求を処理し、ここで、jは、1から「J」の任意の数字とすることができる。例えば、配信サーバ118は、配信サーバ118上で実行されるリモーティングモジュール(remoting module)144を含んでいてクライアント104のナビゲーションアプリケーション128に1つまたは複数の制御機能を実施させる要求を処理することができる。リモーティングモジュール144は、実行されたときこの制御機能を実施することになるクライアント104に対応するクライアント状態データ142(j)を使用してこれらの要求を処理する。クライアント104が、この制御機能を実施することが可能な場合、配信サーバ118は、クライアント104、および特にナビゲーションアプリケーション128にこの制御機能を実施させる。このようにして、ヘッドエンド112は、環境100中のクライアント状態データ142(j)について信頼すべきソースを提供する。
【0021】
セットトップボックス120は、ディスプレイデバイス122とは別に示されているが、このセットトップボックス120を、ディスプレイデバイス122中に構築して一体化されたユニットを形成することができる。さらに、他の実施形態においては、クライアント104は、ブロードキャストを可能にしたコンピュータ、情報アプライアンス、ラップトップコンピュータ、パーソナルビデオレコーダ(PVR)など、ナビゲーションアプリケーション128およびUIモジュール132を実行することが可能な他のコンピュータとして実施することもできる。
【0022】
図2は、
図1の配信サーバ118、クライアント104、ローカルデバイス134およびリモートデバイス138をより詳細に示す例示の一実施形態200を示す図である。クライアント104は、プロセッサ202およびメモリ204を含んでいる。UIモジュール132およびナビゲーションアプリケーション128は、プロセッサ202上で実行されるものとして示され、メモリ204に記憶可能である。構成可能なUI130は、メモリ204に記憶されるものとして示されている。
【0023】
クライアント104は、ネットワーク106上でブロードキャストされる、
図1のコンテンツ116(n)を受信するために利用することができるリモートネットワークインターフェース(リモートインターフェース)206を含むこともできる。例えば、リモートインターフェース206は、ネットワーク106上からブロードキャストコンテンツを受信するチューナとして構成することもでき、またネットワーク106上の2方向の通信に適したトランスミッタ/レシーバ(トランシーバ)として構成することもできるなどとなっている。コンテンツ116(n)は、クライアント104が後で出力するためにデータベース124に記憶することができ、かつ/またはコンテンツ116(n)の即時出力を提供することもできる。データベース124は、メモリ204に含まれるものとして図示されているが、別のストレージデバイスに含めることもできる。例えば、データベース124についてのストレージデバイスはハードディスクドライブとして構成することもでき、メモリ204はRAMとして構成することもでき、メモリ204もこのストレージデバイスもRAMとして構成することもでき、メモリ204もこのストレージデバイスも着脱可能なメモリとして構成することもできるなどとなっている。クライアント104は、ナビゲーションアプリケーション128を実行してデータベース124から
図1のコンテンツ126(m)を検索し、ディスプレイデバイス122上でレンダリングするために出力インターフェース208を介してコンテンツ126(m)を出力する。したがって、この実施形態においては、クライアント104は、ビデオカセットレコーダと類似の方法で
図1のコンテンツ126(m)を記憶し再生するPVRとして動作することが可能である。
【0024】
クライアント104は、入力デバイス210が提供する入力を経由してユーザが制御することができる。この入力は、ローカル接続214上で入力インターフェース212からクライアント104によって受信される。ローカル接続214は、ローカルデバイス134をローカルインターフェース222と通信可能に結合するローカル接続136と同じでもよいし、またはそれと異なっていてもよい。入力インターフェース212、ローカル接続214、および入力デバイス210は、様々な方法で構成することができる。例えば、入力インターフェース212は、リモートコントロールデバイス、ハンドヘルド入力デバイス、無線キーボードなどの他の任意の無線デバイスなどの入力デバイス210から無線通信を受信するための、IR(infrared赤外線)やブルートゥース(Bluetooth)無線ポートなどの無線ポートとして構成することもできる。代替実施形態においては、入力インターフェース212は、RF通信リンク、またはUSB(universal serial busユニバーサルシリアルバス)接続などを含み得る無線接続など他の伝送モードを使用してクライアント104と情報をやりとりすることができる。
【0025】
コンテンツの出力が要求されるときに、ナビゲーションアプリケーション128をプロセッサ202上で実行してネットワーク上の配信サーバ118からストリーミングされるコンテンツからなどのコンテンツ、データベース124上にローカルに記憶されるコンテンツ126(m)などが取得される。ナビゲーションアプリケーション128はまた、
図1のコンテンツプロバイダ102が提供するような元の符号化されたフォーマットへとこのコンテンツを再記憶することもできる。例えば、
図1のコンテンツ116(n)は、圧縮し、次いで配信サーバ118からクライアント104へとストリーミングすることができる。したがって、ナビゲーションアプリケーション128がこのコンテンツを受信するときに、ディスプレイデバイス122によってレンダリングするためにこのコンテンツを伸張(decompress)することができる。
【0026】
クライアント104は、デバイスが実行するUIの使用を介して制御することもできる。例えば、ローカルデバイス134は、プロセッサ216およびメモリ218を含むこともある。ローカルデバイス134は、UIモジュール132および構成可能なUI130の実行を介してクライアント104が提供したUI220を含んでいる。プロセッサ216上で実行されたとき、UI220は、ユーザが、クライアント104上のナビゲーションアプリケーション128の1つまたは複数の制御機能を開始できるようにする。ローカルデバイス134は、ローカルインターフェース222を使用してローカル接続136上でクライアントに対して通信可能に結合される。ローカルデバイス134は、ナビゲーションアプリケーション224を含んでいてローカルデバイス134それ自体の上でコンテンツとの対話を提供することもできる。ナビゲーションアプリケーション224は、例えばブラウザ、メディアプレーヤなどとして構成することができる。
【0027】
リモートデバイス138も、プロセッサ226およびメモリ228を含むことができる。ローカルデバイス134と同様に、リモートデバイス138は、プロセッサ226上で実行されるものとして示されるUI230を含んでおり、メモリ228に記憶可能である。リモートデバイス138は、クライアント104および/またはローカルデバイス134のナビゲーションアプリケーション128、224と同じでも、またはそれらと異なっていてもよいナビゲーションアプリケーション232を含むこともできる。プロセッサ226上で実行されたとき、UI230は、クライアント104上でナビゲーションアプリケーション128の1つまたは複数の制御機能をユーザが開始できるようにする。リモートデバイス138上でUI230と対話することによって、リモートデバイス138のユーザは、ネットワーク106上からクライアント104の制御機能を開始することができる。リモートデバイス138とクライアント104の間の通信を、リモートインターフェース206を使用して提供することもできる。
【0028】
UI220、230によってこれらの制御機能を開始することによって、ユーザは、様々な制御機能を要求することができる。制御機能の例は、ネットワーク106上をクライアント104に向けてストリーミングされる、
図1のコンテンツ116(n)の記録、このコンテンツの出力を早送りし、巻戻しを行い、または一時停止するなどのコンテンツを介したナビゲーションなどを含んでいる。この制御機能は、例えば一時停止、巻戻し、早送り、スローモーション再生などコンテンツの非線形再生(すなわち、コンテンツのタイムシフト再生)を提供することができる。例えば、一時停止中にクライアント104は、このコンテンツをデータベース124に記録し続けることができる。次いで、クライアント104は、ナビゲーションアプリケーション128の実行を介して現在ブロードキャストされているコンテンツ126(m)をデータベース124に記録し続けながら、コンテンツ126(m)が一時停止された時点から開始してデータベース124から
図1のコンテンツ126(m)を再生することができる。
【0029】
図1のヘッドエンド112に含まれる配信サーバ118も、プロセッサ234およびメモリ236を含んでいる。リモーティングモジュール144は、プロセッサ234上で実行され、メモリ236に記憶可能であるものとして示されている。クライアント状態データ142(j)は、メモリ236に記憶されるものとして示されている。データベース114は、メモリ236に含まれるように示されているが、別のストレージデバイスに含めることもできる。例えば、データベース114についてのストレージデバイスは、クライアント104のデータベース124と同様にハードディスクドライブとして構成することもでき、メモリ236はRAMとして構成することもでき、メモリ236もこのストレージデバイスもRAMとして構成することもでき、メモリ236もこのストレージデバイスも着脱可能なメモリとして構成することもできるなどとなっている。したがって、配信サーバ118は、クライアント状態データ142(j)にローカルにアクセスすることができる。
【0030】
配信サーバ118は、プロセッサ234上でリモーティングモジュール144を実行してクライアント104上のナビゲーションアプリケーション128の制御機能を開始する要求を処理する。これらの要求はそれぞれのローカルデバイス134およびリモートデバイス138上で実行されるUI220、230から源を発することもある。リモーティングモジュール144は、プロセッサ234上で実行されたときメモリ236に記憶されるクライアント状態データ142(j)に従ってこの要求を処理する。例えば、複数のクライアント状態データ142(j)を、
図1のヘッドエンド112からコンテンツを受信する複数のクライアントに対応するメモリ236に記憶することができる。特定のクライアントについてのクライアント状態データ142(j)の各集合は、レーティング制限、お気に入りチャンネル、用意されたサービスレベルなどの、特定のクライアントが利用する一般的なオペレーションデータを含むことができる。ヘッドエンド112をクライアント104およびリモートデバイス138に接続するネットワーク106は、ヘッドエンド112がこの情報についての信頼すべきソースになるように十分な帯域幅と信頼性を有することができる。換言すれば、ヘッドエンド112は、クライアント104自体にさえ優る、特定のクライアントのためのクライアント状態データ142(j)についての一次ソースと考えることができる。例えば、配信サーバ118上にクライアント状態データ142(j)を記憶することによって、ユーザは、セットトップボックス間でクライアント状態データを転送することなくセットトップボックスを切り換えることができる。
【0031】
さらに、ローカルアクセスのために配信サーバ118によってクライアント状態データ142(j)を記憶することにより、低リソースのクライアントを利用してコンテンツを出力することができるが、このUIを実行してクライアント104を制御するデバイスに対して高リソース機能を依然として提供することができる。例えば、限られたハードウェアリソースおよび/またはソフトウェアリソースを有するクライアントなどの低リソースクライアントは、ディスプレイデバイス上でレンダリングするためにコンテンツを解読し出力するように構成することができる。この低リソースクライアントは、ハードディスクドライブ上などのコンテンツのローカルストレージを提供することもできる。かなりの処理リソースを有するデスクトップコンピュータなどの機能豊富なリモートデバイスは、この低リソースクライアント上では実行することができないであろうUIを実行することができる。このUIは、例えば、より高解像度(例えば、インチ(2.54cm)当たりにより多くのドット)を有し、出力するためのより多くのカラー数をサポートし、マクロを提供して制御機能を開始する(例えば、特定のテレビジョン番組のすべてのエピソードを記録する)ことなどができる。このようにして、UIは、クライアントのユーザに対して追加の機能を提供することができる。異なる機能を有するデバイスによって出力されるように構成されるUIの例は、
図4および5に関連して見出すことができる。
【0032】
例示のプロシージャ
図3は、クライアント104が、
図2のローカルデバイス134上で実行するためのUIを構成する例示の一実施形態におけるプロシージャ300の流れ図である。ブロック302において、ローカル接続が、ローカルデバイス134とクライアント104との間で開始される。有線接続や無線接続など様々なローカル接続を開始することができる。有線接続の一例がイーサネット(登録商標)(Ethernet(登録商標))接続であり、これを利用してイーサネット(登録商標)ネットワーク上で複数のデバイスを互いにローカルに接続することができる。IrDA(Infrared Data Association:赤外線データ協会)規格、HomeRFワーキンググループが開発したSWAP(Shared Wireless Access Protocol:共有無線アクセスプロトコル)規格、WECA(Wireless Ethernet(登録商標)Compatibility Alliance)が開発したIEEE802.11bおよび802.11g、ブルートゥースなどに準拠した無線接続など様々な無線接続も考慮されている。
【0033】
ブロック304において、クライアント104は、UIモジュール132の実行を介してローカルデバイス134のハードウェア機能および/またはソフトウェア機能を検出する。例えば、クライアント104は、プロセッサ速度、データバス帯域幅、ローカルデバイス134の1つまたは複数のバスのデータスループット速度、ローカルデバイス134上で使用可能なメモリ空間量、含まれるディスプレイデバイスのサポートされた解像度およびカラーパレット、サポートされるフォント、入力デバイス(例えば、タッチスクリーン、カーソル制御デバイス、ボタン、キーボードなど)の使用可能性、オーディオ入力/出力デバイスの使用可能性などのハードウェア機能を検出することができる。クライアント104はまた、サポートされるコンピュータ言語、ローカルデバイス134上でのアプリケーションの使用可能性(例えば、ブラウザ、メディアプレーヤなど)、ローカルデバイス134上に実装されるドライバなど、ローカルデバイス134のソフトウェア機能を検出することもできる。
【0034】
ブロック306において、クライアント104は、この検出に基づいてローカルデバイス134に対して通信するための構成可能なUIを構成する。クライアント104は、例えば、UIモジュール132を実行してローカルデバイス134の検出された機能に基づいて
図2の構成可能なUI130を構成することができる。ファンクションの異なる構成やこのUIのディスプレイ特性などを介して様々な構成を提供することができる。UIの構成についてのさらなる説明は、
図4および5に関連して見出すことができる。次いで、クライアント104は、ローカル接続136上で構成済みのUI308をローカルデバイス134に対して伝達することができる。
【0035】
ブロック310において、ローカルデバイス134は、構成済みのUI308を実行してクライアント104の制御機能を開始する。例えば、ユーザは、PDAのタッチスクリーンなどの入力デバイスを利用して構成済みのUI308のボタンを「押すこと」によって制御機能を開始することができる。次いで、構成済みのUI308は、所望の制御機能を指し示す要求を形成し、ローカル接続136上でクライアント104に直接にこの要求を伝達することができる。したがって、この実施形態においては、この制御機能は、ネットワーク106上でこの要求を伝達することなく、クライアント104に対して直接に提供することができる。要求を処理する工程についての追加の考察は
図6に関連して見出すことができる。
【0036】
図3の実施形態では、クライアント104によるUIの構成について説明したが、UIは、様々な方法で構成することができる。別の実施形態においては、
図2の構成可能なUI130は、デバイス上で受信および/または実行されたときUIの表現および実施形態を構成するソフトウェアを含む自己完結型の構成可能UIとして実装される。例えば、
図2の構成可能なUI130は、ローカルデバイス134で受信することができ、ローカルデバイス上で実行されたとき、ローカルデバイス134のハードウェア機能および/またはソフトウェア機能を検出してUIを実行する。さらなる実施形態においては、UIは、配信サーバによって構成され、この配信サーバの一例については
図7に関連して説明される。
【0037】
例示のユーザインターフェース
UIは、このUIを実行することになるデバイスの機能に基づいて様々な方法で構成することができる。
図4は、ユーザが
図1のディスプレイデバイス122などのディスプレイデバイスに近接して位置するときにクライアントが出力するために構成されるUI300を示す例示の一実施形態を示す図である。以前に述べたように、これらのUIを実行するために利用されるデバイスが異なる機能を有することもあり、またディスプレイデバイスからのユーザの距離も変化し得るので、UIをこれらの異なる機能および距離に対処するように構成することができる。例えば、ディスプレイデバイスに近接して位置するユーザは、このユーザがディスプレイデバイスからさらに遠い距離に位置する場合に比べてさらに多量の細部を認識することができる。さらに、
図2のローカルデバイス134およびリモートデバイス138の入力デバイスが、それぞれ異なる機能を提供することもある。例えば、ローカルデバイスをペンベースのナビゲーションのために構成することができ、マウスおよびキーボードを有するリモートデバイスをデータの多い入力およびナビゲーションのために構成することもできる。したがって、これらの入力デバイスのそれぞれ異なる機能のために構成される、異なるUIを提供することができる。
【0038】
UI400は、ユーザがディスプレイデバイスに近接して位置するときに使用するために構成される。UI400は、ブロードキャストから入手可能な複数のチャンネル404(1)〜404(6)をリストアップしたチャンネルガイド402を含んでいる。UI400はまた、俳優やその番組のプロットの短い記述など、番組に関連した情報を提供することができる複数の番組のうちの1つの詳細な記述406も含んでいる。UI400はまた、メニューバー408を含んでいてマウスなどのカーソル制御デバイスを利用してユーザが機能間でナビゲートできるようにする。図に示したメニューバー408には、現在の番組タイトル410、クローズドキャプションやステレオなどのオーディオ機能412、最近のチャンネル414、お気に入りチャンネル416、構成、フォント選択などについての選択肢などのツール418を含む機能がある。
【0039】
図5は、
図4のUI400よりも、ディスプレイデバイスから遠い距離に位置しているときにクライアントが出力するために構成されるUI500を示す例示の実施形態を示す図である。UI500は、
図5のUI500において提供される機能の一部分を含むこともある。例えば、UI500は、ブロードキャストから入手可能な複数のチャンネル404(1)〜404(4)をリストアップしたチャンネルガイド502を含むこともある。しかし、チャンネルガイド502は、
図4のチャンネルガイド402によりも遠い距離から閲覧され、
図4のUI400を出力するディスプレイデバイスよりも低い解像度を有するディスプレイデバイスによって出力されるように構成される。したがって、チャンネルガイド502は、
図4のチャンネルガイド402よりも少ないチャンネル、および拡大されたフォーマットの番組を含んでいる。
【0040】
さらに、UI500の機能構成が、
図4のUI400とは異なることもある。UI500は、例えば、詳細な記述406を含むこともあるが、
図4におけるUI400中のチャンネルガイド402の上とは対照的にチャンネルガイド502の下に詳細な記述406を配置している。さらに、UI500は、
図4のUI400のメニューバー408を含んでいない。例えば、UI500は、より低い解像度、すなわち
図4のUI400に比べて少ないインチ(2.54cm)当たりのドット数で提供することができ、その結果、UI500は、さらに遠い距離から閲覧することができる。したがって、
図4のUI400は、
図5のUI500には含まれていない機能を含んでいるが、UI500は、さらに遠い距離から閲覧可能である。ファンクションの構成、ファンクションの表示および解像度は、
図4および5のそれぞれUI400とUI500との違いとして説明してきたが、他の様々な違いについても考慮している。例えば、UI500のカラースキームは、UI500が、
図4のUI400で利用されるカラーに比べてコントラストの強いカラーを選択することなどにより、さらに遠い距離から閲覧可能であるように選択することができる。さらに、ファンクションの可視性およびタイプフェースをUIごとに変更して最適化された閲覧経験を提供することもできる。例えば、
図4のUI400を出力するためのディスプレイデバイスでは、
図5のUI500を出力するためのディスプレイデバイスよりも多数のカラー数をサポートすることができる。
【0041】
図6は、
図3の構成済みのUI308をユーザが使用してクライアント104の制御機能を開始する例示の一実施形態におけるプロシージャ600を示す流れ図である。ブロック602において、ローカルデバイス134は、クライアント104の制御機能を開始する要求604を形成し伝達する。例えば、構成済みのUI308は、ローカルデバイス134上で実行されたときこの制御機能を開始する1つまたは複数の技法を提供することができる。無線電話は、例えば、ボイスメニューを含んでいる構成済みのUI308を実行してユーザが使用可能な制御機能のリストを介してナビゲートし、1つまたは複数の制御機能を開始することができるようにする。次いで、ある要求が、所望の制御機能を開始するために形成され、ローカル接続136上などをクライアント104へと伝達される。
【0042】
ブロック606において、クライアント104は、要求604を配信サーバ118に伝達する。一実施形態において、クライアント104は、
図2のUIモジュール132を実行してネットワーク106上で配信サーバ118に転送するために要求604をパッケージングする。別の実施形態においては、要求604は、クライアント104でパッケージすることなくローカルデバイス134によって配信サーバ118に経路指定するためにフォーマット化される。
【0043】
ブロック608において、配信サーバ118は、クライアント状態データ142(j)を使用してこの要求を処理する。リモーティングモジュール144を、例えば、配信サーバ118上で実行してハードドライブやRAIDアレイなどに記憶されるなど、配信サーバ118にとってローカルに使用可能なクライアント状態データ142(j)に従って要求604を処理することができる。要求604は、クライアント104に特有のクライアント状態データ142(j)に従って処理される。
【0044】
要求604は、リモーティングモジュール144が、特定のクライアント104に対応するクライアント状態データ142(j)を配置することができるように一意のクライアント識別子を含むことができる。クライアント状態データ142(j)が配置された後に、リモーティングモジュール144は、実行されたとき、この制御機能の実施がクライアント104上で許容され得るかどうかを判定する。例えば、要求604は、クライアント104上で制御機能を開始してコンテンツ、例えばテレビジョン番組を記録するように構成することができ、配信サーバ118は、クライアント状態データ142(j)の検査を介してクライアント104がこのコンテンツを記録することが可能かどうかを判定することができる。別の例では、要求604は、クライアント104を所望のテレビジョンチャンネルに同調させるように構成され、次いで配信サーバ118は、クライアント104がその特定のテレビジョンチャンネルに加入しているかどうかを判定する。
【0045】
ブロック610において、配信サーバ118は、この制御機能を実施するコマンド612を形成し、クライアント104に伝達する。先の例に続いて、リモーティングモジュール144は、実行されたとき、クライアント104がこの制御機能を実施することが可能であることを決定することができ、したがってクライアント104に伝達するためにコマンド612を形成することができる。クライアント104がこの制御機能を実施することが可能でない場合には、リモーティングモジュール144は、ローカルデバイス134に対して通信するための応答を形成してこの制御機能が許可されないことを示すことができる。別の実施形態においては、クライアント104上で追加のインターフェースを設計して更新のためにヘッドエンドを「聴取する(listen)」ことができる。例えば、UIモジュール132は、クライアント104上で実行されたとき、ネットワーク106に定期的にログオンして、ヘッドエンド112が提供するコマンドを受信および/または要求して1つまたは複数の制御機能を実施することができる。
【0046】
ブロック614において、クライアント104は、この制御機能を実施する。例えば、クライアント104は、配信サーバ118からコマンド612を受信することができる。このコマンドは、様々な暗号技法を利用して暗号化してこのコマンドが攻撃者によってまねされないように保護することができる。ナビゲーションアプリケーション128および/またはUIモジュール132は、実行されたときコマンド612を暗号解読してどの制御機能を実施すべきかを決定する。次いでナビゲーションアプリケーション128は、指示された制御機能を実施することができる。ナビゲーションアプリケーション128は、例えば、特定の時刻における特定のテレビジョン番組を記録し、どのブロードキャストチャンネルが
図2のディスプレイデバイス122に対してクライアント104によって出力されるかを変更し、お気に入りチャンネルに同調させることなどができる。
図3および6に関連して考察された実施形態では、ローカルデバイス134上におけるUIの構成および実行について説明しているが、以下の実施形態においてより詳細に説明するように、リモートデバイス138も同様な機能を提供することができる。
【0047】
図7は、UIが
図2のリモートデバイス138のために構成され、それによって実行されてクライアント104の1つまたは複数の制御機能が開始される例示の一実施形態におけるプロシージャ700を示す流れ図である。ブロック702において、リモートデバイスは、この配信サーバとのリモート接続を開始する。例えば、
図2のリモートデバイス138は、ネットワーク106上で
図2の配信サーバ118とリモート接続を開始することができる。ネットワーク106は、ワイドエリアネットワーク(WAN)、例えばインターネットなど、様々な構成を想定することができる。WANは、ローカルエリアネットワーク(LAN)よりも広い通信構造を含んでいる地理的に分散したネットワークとして考えることもできる。WANは、例えば、私有され、リースされ、またはレンタルされたものでもよいが、ほとんどの場合には公共(例えば、共用されたユーザ)のネットワークの少なくとも一部分を含んでいる。
【0048】
ブロック704において、リモートデバイスは、クライアントの制御機能を開始するために適した、配信サーバからのUIについてのクエリ(query)を形成する。リモートデバイスは、例えば、所望のクライアントを識別する、ネットワーク上で通信するためのクエリを形成することができる。一実施形態においては、クエリは、クライアントのネットワークアドレスを含んでいる。別の実施形態では、配信サーバは、クライアントロケーションのローカルに記憶されたリストを含んでいる。さらなる実施形態においては、配信サーバは、
図2のネットワーク106に照会してクライアントの位置を突き止める。例えば、リモーティングモジュール144は、配信サーバ118上で実行されたとき所望のネットワークリソースの位置を突き止めるためのブラウザとしての役割を果たし、ネットワークリソースは、この場合、
図2のクライアント104を含んでいる。
【0049】
ブロック706において、配信サーバは、クライアントから構成可能なUIを取得する。例えば、配信サーバは、ネットワーク上でクライアントに伝達される追加のクエリを形成することができる。次いで配信サーバは、構成可能なUIを含む、クエリに対する応答を受信することができる。
【0050】
ブロック708において、配信サーバは、リモート接続上でリモートデバイスのハードウェア機能および/またはソフトウェア機能を検出する。以前に説明したようなクライアントと同様に、配信サーバは、UIを実行するリモートデバイスの機能を示すリモートデバイス138の処理速度、使用可能なソフトウェアなどを検出することができる。ブロック710において、配信サーバは、検出された機能に基づいて構成可能なUIを構成してリモートデバイスについて構成されたUIを形成する。配信サーバは、例えば構成可能なUIのファンクションを構成し、使用可能な入力デバイスに基づいてファンクションを選択することなどができる。別の実施形態においては、ユーザがUIを閲覧する際にリモートデバイスから位置づけられる適切な距離に基づいてUIを構成することができる。例えば前述したように、デバイスは、ユーザの手に保持されるPDAとは対称的にリビングルームにおけるテレビジョンなどのように様々な距離から閲覧するように構成することができる。ユーザのこのデバイスからのその適切な距離に基づいてこの構成可能なUIを構成することによって、この構成済みのUIをこのユーザが閲覧するために最適化することができる。
【0051】
ブロック712において、配信サーバは、リモートデバイスの指示およびクライアント加入(affiliation)を含むクライアント状態データを記憶する。配信サーバは、例えば、構成済みのUIを受信したリモートデバイスの識別子と、特定のUIについてのクライアント加入の対応する指示を含むデータを記憶することができる。したがって、配信サーバがリモートデバイスからの要求を受信するときに、配信サーバは、この要求についての宛先、すなわち特定のクライアントを簡単に識別することができる。構成可能なUIの構成をこの実施形態においては配信サーバによって実施されるものとして説明しているが、構成可能なUIは、様々な方法で構成することができる。例えば、構成可能なUIは、
図3に関連して説明されているようにクライアントによって構成することも、構成可能なUI自体によって自動的に構成することもでき、以下同様である。
【0052】
ブロック714において、リモートデバイスは、
図2のプロセッサ226上でUI230を実行することなどによって構成済みのUIを受信し実行する。ブロック716において、ユーザは、UIと対話することによって制御機能を選択する。例えば、キーボード、マウス、マイクロフォンなどの、リモートデバイスの入力デバイスを利用してボイスコマンドなどを受信して開始についての複数の制御機能のうちの1つを選択することができる。ブロック718において、UIは、この制御機能を求める要求を形成し配信サーバに伝達する。したがって、この実施形態においては、リモートデバイス138が開始する要求は、最初にクライアント104を介して伝達されることなくネットワーク106上で配信サーバ118に対して直接に伝達される。
【0053】
判断ブロック720において、クライアントがこの要求された制御機能を実施することが認可されているかどうかについての判定が行われる。前述のように、この判定は、配信サーバが、この制御機能を実施すべきクライアントのクライアント状態データを利用してこの要求を処理することによって行うことができる。クライアントが、この制御機能を実施することが認可されていない場合、プロシージャ700は、クライアントがこの要求された制御機能を実施することが認可されていないことを示す障害メッセージ(failure message)をリモートデバイスに送信することによってブロック722において終了する。
【0054】
クライアントがクライアント状態データに従ってこの制御機能を実施することが認可されている場合には、ブロック724において、配信サーバはこの要求を変換してクライアントに伝達するための、この制御機能を実施するコマンドを形成する。例えば、リモートデバイスが形成したこの制御機能を開始するための要求が、クライアントと互換性がないこともある。したがって、配信サーバでは、クライアントに対応する制御機能を実施させるコマンドへとこの要求を変換することもある。したがって、ブロック726において、クライアントは、このコマンドを受信し、このコマンドに示される制御機能を実施することができる。
【0055】
このようにして、UIの構成および利用についての環境が提供される。一実施形態においては、ヘッドエンドは、前述のような環境におけるクライアント状態データについての信頼すべきソースになるように構成される。さらに、ヘッドエンドは、インターネット上でアクセス可能なウェブブラウザ、標準精細度のテレビジョンに通信可能に結合されたセットトップボックス、高解像度テレビジョンに通信可能に結合されたセットトップボックス、無線電話、PDAなどのデバイスの機能をクライアント加入とハードウェア機能および/またはソフトウェア機能との両方によって認識する能力を有することができる。
【0056】
構造機能および/または方法動作に特有の言語で本発明を説明してきたが、添付の特許請求の範囲で定義される本発明は、必ずしも説明したこれら特定の機能または動作に限定されないことを理解されたい。そうではなくて、これら特定の機能および動作は、特許請求された本発明を実装する例示の形態として開示されている。