明細書に記載のシステム。したがって、1つまたは複数のテレビジョン入力をテレビジョンネットワークに効果的に統合するPVRシステムの開発が望まれる。ネットワーク化パーソナルビデオ録画PVRシステムは、ネットワークを介して複数のクライアントを1つまたは複数のPVRメディアサーバに結合するものである。PVRメディアサーバは複数のテレビジョン信号を受信し、それぞれのテレビジョン信号を調整するためのテレビジョンチューナを含む。一実施形態では、PVRメディアサーバは、単一のPVRメディアサーバ内に配置された複数のチューナを備える。他の実施形態では、チューナは複数のPVRメディアサーバ内に配置される。記憶媒体は、PVR機能を実施するためにテレビジョン信号をバッファリングする。テレビジョンチューナにクライアントが割り当てられ、クライアントは割り当てられたチューナで受信されたテレビジョン番組を表示する。ネットワークは、バッファリングされたテレビジョン信号をクライアントに転送する。一実施形態では、PVRメディアサーバは少なくとも1つのテレビジョン番組をクライアント用に録画する。番組を録画するために、システムはクライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中にテレビジョン信号を記憶媒体に格納する。システムは、また、テレビジョン番組を録画するために使用可能なチューナを割り当てる際に生じる競合も解決する。一実施形態では、システムは、チューナの1つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは、テレビジョン信号を受信するためにそのチューナを割り当てる。使用可能でない場合、システムは潜在的に使用可能なチューナがあるかどうかを判別し、そのチューナに割り当てられたクライアントに対して、クライアントがテレビジョン番組の録画キャンセルを希望するかどうかを判別するために照会する。クライアントがキャンセルしない場合、システムは、テレビジョン番組の録画用にテレビジョン信号を受信するチューナを割り当てる。PVRメディアサーバは、メディアストリームに対して少なくとも2つの独立したバッファ位置を生成する。PVRメディアサーバは、少なくとも1つのメディアストリームを受信するための少なくとも1つの入力と、少なくとも一部のメディアストリームを格納するための記憶媒体とを含む。PVRメディアサーバは、メディアストリームを表示することが可能な複数のクライアントに例えば、ネットワークを介して結合される。PVRメディアサーバは、第1の位置を使用して第1のクライアント用のメディアストリーム内の場所を識別し、第2の位置を使用して第2のクライアント用のメディアストリーム内の場所を識別する。位置は互いに独立している。メディアストリームは、第1の位置に基づいて第1のクライアントへ、および第2の位置に基づいて第2のクライアントへ、ネットワークを介して配信される。PVRシステムは、複数のソースからのテレビジョン番組情報を集約する。PVRシステムは、少なくとも1つのPVRメディアサーバを含む。ネットワークは、複数のクライアントをPVRメディアサーバに結合する。PVRメディアサーバは、複数のチューナでテレビジョン信号を調整する。テレビジョン信号は、記憶媒体にバッファリングされる。テレビジョン番組情報を集約するために、クライアントは、ネットワーク上のそれぞれのPVRメディアサーバに対してテレビジョン番組のリストの要求を生成する。これに応答して、PVRメディアサーバは、それぞれのPVRメディアサーバを介して使用可能なテレビジョン番組のリストを伝送する。要求元のクライアントは、PVRシステム内で使用可能なテレビジョン番組情報のリストを集約する。一実施形態では、PVRシステムは、複数のPVRメディアサーバ、複数のテレビジョンチューナ、および/または複数のテレビジョンサービスプロバイダをまたがって、テレビジョン番組のリストを集約する。テレビジョン番組情報は、ライブテレビジョン、または以前に記憶媒体に格納されたテレビジョン番組の、いずれかを識別することができる。PVRシステムは、テレビジョン番組を集約して、情報をチャネル別、時間帯別、テレビジョンショーのジャンル別、テレビジョンショーの連続番組episode別、およびテレビジョンショーに登場する俳優別に情報を表示することができる。PVRシステムは、複数のクライアントに関するリソースを管理する。システムは、少なくとも1つのPVRメディアサーバを含む。PVRメディアサーバは、テレビジョン信号を調整するためのチューナと、テレビジョン信号をバッファリングするための記憶媒体とを含む。クライアントは、ネットワークを介してPVRメディアサーバに結合される。クライアントは、PVRシステムサービスに関する要求を生成する。一実施形態では、クライアントは、テレビジョン番組を録画する旨およびバッファリングされたライブテレビジョンを視聴する旨の要求を生成する。システムは、要求に応答して、クライアントにサービスを配信するためにPVRシステムのリソースを適宜クライアントに割り振る。例えば、クライアントがバッファリングされたライブテレビジョンを視聴したい場合、システムは、クライアントにチューナを割り当て、クライアント側でテレビジョン信号を再生するために、テレビジョン信号内のある場所を識別するためのバッファ位置を生成し、そのバッファ位置を使用してテレビジョン信号を配信する。クライアントがテレビジョン番組を録画したい場合、システムは、クライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中に記憶媒体にテレビジョン信号を格納する。一実施形態では、システムはシステムリソースに関する競合を解決するよう試みる。例えば、クライアントが選択したチャンネルでバッファリングされたライブテレビジョンを視聴する旨要求した場合、システムはチューナのうちの1つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは選択したチャンネルでテレビジョン信号を受信するためのチューナを割り当てる。使用可能でない場合、システムは、チューナの現在のチャンネルを選択されたチャンネルに変更するようにクライアントが希望するかどうかを判別するために、潜在的に使用可能なチューナに割り当てられたクライアントに照会することによって、ならびに、現在のチャンネルの変更をどのクライアントもキャンセルしない場合、選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てることによって、どのチューナが潜在的に使用可能であるかを判別する。他の実施形態では、システムは、テレビジョン番組を録画するために、チューナのうちの1つがテレビジョン信号を受信するために使用可能であるかどうかを判別することによって、割り当てリソースの競合を解決するように試みる。使用可能である場合、システムはテレビジョン信号を受信するためにチューナを割り当てる。使用可能でない場合、システムは、どのチューナが潜在的に使用可能であるかを判別し、クライアントがテレビジョン番組の録画のキャンセルを希望するかどうかを判別するために潜在的に使用可能なチューナに割り当てられたクライアントに照会し、テレビジョン番組の録画をキャンセルするクライアントがいない場合、テレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てる。例えば、本発明は以下の項目を提供する。項目1システム200であって、テレビジョン信号を表示するための複数のクライアントクライアント1~クライアントnと、複数のテレビジョン信号を受信するために結合された、少なくとも1つのPVRメディアサーバPVRメディアサーバ1~PVRメディアサーバ3であって、上記PVRメディアサーバPVRメディアサーバ1が、上記クライアントクライアント1~クライアントnのうちの少なくとも2台をテレビジョンチューナチューナ1~チューナnのうちの1つまたは複数に割り当てるように、上記テレビジョン信号のそれぞれを調整するための複数のテレビジョンチューナチューナ1~チューナnと、上記テレビジョン信号をバッファリングするために上記テレビジョンチューナチューナ1~チューナnに結合された記憶媒体220、230、または240とを備える少なくとも1つのPVRメディアサーバと、上記クライアントクライアント1~クライアントnを上記PVRメディアサーバPVRメディアサーバ1~PVRメディアサーバ3に結合するため、および上記バッファリングされたテレビジョン信号を上記クライアントクライアント1~クライアントnに転送するためのネットワーク210とを備えるシステム200。項目2上記少なくとも1つのPVRメディアサーバPVRメディアサーバ1~PVRメディアサーバ3が、複数のチューナチューナ1~チューナnを備える単一のPVRメディアサーバPVRメディアサーバ1を備える、項目1に記載のシステム200。項目3上記少なくとも1つのPVRメディアサーバが、複数のPVRメディアサーバPVRメディアサーバ1~PVRメディアサーバ3に配置された複数のチューナチューナ1~チューナnを備える、項目1に記載のシステム200。項目4さらに、上記記憶媒体220、230、または240が、上記テレビジョン番組を録画するように少なくとも1つのテレビジョン信号を格納するためのものである、項目1に記載のシステム200。項目5さらに、上記システム200が、チューナチューナ1~チューナnを上記クライアントクライアント1~クライアントnに割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体220、230、または240上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体220、230、または240に格納するためのものである、項目4に記載のシステム200。項目6さらに、上記システム200が、上記テレビジョン信号に使用可能なチューナチューナ1~チューナnを割り当てるために競合を解決するためのものである、項目4に記載のシステム200。項目7さらに、上記チューナチューナ1~チューナnのうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、使用可能である場合、上記テレビジョン信号を受信するために上記チューナチューナ1~チューナnを割り当てるためのものであり、使用可能でない場合、どのチューナチューナ1~チューナnが潜在的に使用可能であるかを判別するため、クライアントクライアント1~クライアントnが上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナチューナ1~チューナnに割り当てられた上記クライアントクライアント1~クライアントnに照会するため、および上記テレビジョン番組の録画をキャンセルするクライアントクライアント1~クライアントnがない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナチューナ1~チューナnを割り当てるためのものである、項目6に記載のシステム200。項目8さらに、第1のクライアントクライアント1に関して上記バッファリングされたテレビジョン信号のうちの選択された1つのうちのある場所を識別するために第1の位置を生成するため、および第2のクライアントクライアント2に関して上記選択されたバッファリングされたテレビジョン信号のうちのある場所を識別するために第2の位置を生成するためのものであり、上記第2の位置は上記第1の位置から独立している、項目4に記載のシステム200。項目9パーソナルビデオ録画PVRメディアサーバPVRメディアサーバ1であって、複数のテレビジョン信号を受信するための入力と、上記テレビジョン信号のそれぞれを調整するための複数のチューナチューナ1~チューナnと、上記テレビジョン信号をバッファリングするための記憶媒体220と、ネットワーク210を介して複数のクライアントクライアント1~クライアントnをPVRメディアサーバPVRメディアサーバ1に結合するためのネットワークインタフェースとを備え、上記PVRメディアサーバPVRメディアサーバ1が、上記PVRシステムの少なくとも1つのサービスに関して少なくとも2台のクライアントクライアント1~クライアントnのそれぞれから少なくとも1つの要求を受信するため、および上記サービスを上記クライアントクライアント1~クライアントnに送達するために上記PVRシステムPVRメディアサーバ1のリソースを上記クライアントクライアント1~クライアントnに適宜割り振るためのものであるPVRメディアサーバPVRメディアサーバ1。項目10さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、さらに、上記PVRメディアサーバPVRメディアサーバ1が、上記テレビジョン番組を録画するためのチューナを割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体220上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体220に格納するためのものである、項目9に記載のPVRメディアサーバPVRメディアサーバ1。項目11さらに、上記入力が、バッファリングされたライブテレビジョンを視聴するための要求を受信するためのものであり、さらに、上記PVRメディアサーバPVRメディアサーバ1が、上記バッファリングされたライブテレビジョンを視聴するためのチューナを割り当てるため、クライアントクライアント1~クライアントnで上記テレビジョン信号を再生するために上記テレビジョン信号内のある場所を識別するためのバッファ位置を生成するため、および上記バッファ位置を使用して上記テレビジョン信号を送達するように、上記テレビジョン信号を上記クライアントクライアント1~クライアントnに転送するためのものである、項目9に記載のPVRメディアサーバPVRメディアサーバ1。項目12さらに、上記入力が、特定のテレビジョンサービスプロバイダからテレビジョン信号を受信するための要求を受信するステップを含む、少なくとも1つの要求を受信するためものであり、さらに、上記PVRメディアサーバPVRメディアサーバ1が、上記テレビジョンサービスプロバイダからテレビジョン信号を受信するために結合された1つまたは複数のチューナチューナ1~チューナnを識別するため、および識別された上記チューナチューナ1~チューナnからのチューナチューナ1を上記クライアントクライアント1~クライアントnに割り当てるためのものである、項目9に記載のPVRメディアサーバPVRメディアサーバ1。項目13さらに、上記PVRメディアサーバPVRメディアサーバ1が、上記クライアントクライアント1~クライアントnへのリソースの割り当てにおける競合を解決するためのものである、項目9に記載のPVRメディアサーバPVRメディアサーバ1。項目14さらに、上記入力が、バッファリングされたライブテレビジョンを選択されたチャンネルで視聴するための要求を受信するためのものであり、さらに、上記PVRメディアサーバPVRメディアサーバ1が、上記チューナチューナ1~チューナnのうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、使用可能である場合、上記選択されたチャンネルで上記テレビジョン信号を受信するために上記チューナチューナ1を割り当てるためのものであり、使用可能でない場合、どのチューナチューナ1~チューナnが潜在的に使用可能であるかを判別するため、クライアントクライアント1~クライアントnが上記チューナチューナ1~チューナnの現在のチャンネルを上記選択されたチャンネルに変更したいかどうかを判別するために潜在的に使用可能な上記チューナチューナ1~チューナnに割り当てられた上記クライアントクライアント1~クライアントnに照会するため、および上記現在のチャンネルの変更をキャンセルするクライアントクライアント1~クライアントnがない場合、上記選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナチューナ1~チューナnを割り当てるためのものである、項目13に記載のPVRメディアサーバPVRメディアサーバ1。項目15さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、さらに、上記PVRメディアサーバPVRメディアサーバ1が、上記チューナチューナ1~チューナnのうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、使用可能である場合、上記テレビジョン信号を受信するために上記チューナチューナ1~チューナnを割り当てるためのものであり、使用可能でない場合、どのチューナチューナ1~チューナnが潜在的に使用可能であるかを判別するため、クライアントクライアント1~クライアントnが上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナチューナ1~チューナnに割り当てられた上記クライアントクライアント1~クライアントnに照会するため、および上記テレビジョン番組の録画をキャンセルするクライアントクライアント1~クライアントnがない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナチューナ1~チューナnを割り当てるためのものである、項目13に記載のPVRメディアサーバPVRメディアサーバ1。項目16さらに、上記PVRメディアサーバPVRメディアサーバ1が、クライアントクライアント1~クライアントnに割り当てられていないチューナチューナ1~チューナnに対して完全にフリーのチューナ状態を割り当てるため、クライアントクライアント1~クライアントnに割り当てられているが現在はスケジューリングされた録画を実行していないチューナチューナ1~チューナnに対しておそらくフリーのチューナ状態を割り当てるため、および現在スケジューリングされた録画を実行しているチューナチューナ1~チューナnに対してビジーのチューナ状態を割り当てるためのものである、項目13に記載のPVRメディアサーバPVRメディアサーバ1。図1は、本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。この実施形態では、ホームエンターテイメントシステムがn台のクライアントおよびm台のパーソナルビデオ録画PVRメディアサーバを含むすなわち、nおよびmは1より大きいかまたは1に等しい任意の整数値である。本明細書で使用するクライアントとは、メディアを再生する任意のデバイスのことである。例えば、クライアントがビデオおよびライブテレビジョンを再生するためのテレビジョンを有することができる。本明細書で使用するサーバとは、メディアを格納または獲得する任意のデバイスを意味する。PVRメディアサーバとは、テレビジョン信号を獲得し、クライアントが視聴するためにテレビジョン信号をバッファリングするデバイスを含む、ビデオをネットワークに配信する任意のデバイスを意味する。例えば、PVRメディアサーバは、特にコストを最低限に抑えるように設計されたストレージを備えたデバイスを備えることができるか、またはPVRメディアサーバはパーソナルコンピュータを備えることができる。図1に示すように、テレビジョン信号を含む様々なタイプのメディアが各PVRメディアサーバに入力される。PVRメディアサーバは、クライアントがアクセスするためのオーディオおよびビデオを含むメディアを格納することができる。さらに、PVRメディアサーバは、ライブテレビジョンをバッファリングする。各クライアント例えば、クライアント1、クライアント2、およびクライアントnは、ネットワーク110を介してPVRメディアサーバ上に格納またはバッファリングされたメディアにアクセスすることができる。ネットワーク110は、無線ネットワークを含む任意のタイプのネットワークを有することができる。例えば、ネットワーク110は、IEEE802.3、カテゴリ5のイーサネット登録商標10/100、HPNA、HomePlug、IEEE802.11x、IEEE1394、およびUSB1.1/2.0などの規格に従って実施されるネットワークを有することができる。図1に示すネットワーク化システム100は、住宅内で実施することができる。例えば、各クライアントは、格納されたビデオおよびテレビジョンを視聴するためのテレビジョンで構成することができる。こうしたホームシステムの一例では、居間に配置されたクライアントテレビジョンと、寝室に配置された1つまたは複数のクライアントテレビジョンと、台所に配置されたクライアントテレビジョンを含むことができる。一般に、システム100は、いずれかのPVRメディアサーバを介して格納または獲得されたメディア例えば、ビデオを任意のクライアントが再生できるようにする。PVRメディアサーバは、様々なソースからテレビジョン信号を獲得するように構成できる。例えば、PVRメディアサーバ1は衛星テレビジョンシステムからテレビジョン信号を獲得し、一方、PVRメディアサーバ2は、ケーブルテレビジョンシステムからテレビジョン信号を獲得することができる。PVRメディアサーバは、永続ストレージ例えば、ハードディスクドライブと少なくとも1つのテレビジョンチューナとを含む。それ故、システム100は、任意のPVRメディアサーバ上に格納された任意のチューナまたはメディアからのメディアに、任意のクライアントがアクセスできるようにする。図2は、本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。図1のシステム100と同様に、システム200は、少なくとも2台のテレビジョンを含むn台のクライアントを含む。このシステム例では、3台のPVRメディアサーバPVRメディアサーバ1、PVRメディアサーバ2、およびPVRメディアサーバ3がある。クライアントはネットワーク210を介してメディア例えば、ビデオにアクセスする。各PVRメディアサーバは、ストレージ220、230、および240と、n台のチューナすなわち、nは1より大きいかまたは1に等しい任意の整数を表すとを含む。PVRメディアサーバはテレビジョン信号を受信する。この例では、PVRメディアサーバ1およびPVRメディアサーバ2はテレビジョンサービスプロバイダ1から信号を受信し、PVRメディアサーバ3はテレビジョンサービスプロバイダ2からテレビジョン信号を受信する。この構成の下では、任意のクライアントすなわち、クライアント1、クライアント2、およびクライアントnが、任意のチューナすなわち、PVRメディアサーバ1、PVRメディアサーバ2、およびPVRメディアサーバ3からのn台のチューナのうちの任意の1台によって復調された出力ビデオ信号を受信することができる。図3は、ネットワーク化PVRシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。あらゆるチューナが連続するリングバッファを有する。一実施形態では、リングバッファのサイズはフレキシブルであり、構成可能である。例えば、リングバッファは60分のテレビジョンを格納することができる。次に各クライアントは、システム内で使用可能なあらゆるリングバッファおよび格納済みビデオに関する独立したバッファ位置を有する。図3は、n台のチューナを備えたネットワーク化PVRシステムの一例を示す。n台のチューナは、1台または複数台のPVRメディアサーバと共に実施可能である。図3に示すように、各チューナの出力が対応するバッファ例えば、リングバッファに入力される。各クライアント、すなわちクライアント1~nは、各チューナ-バッファのペアについて関連するバッファ位置を有する。具体的には、図3に示すように、クライアント1はチューナ1、チューナ2、およびチューナnに関するバッファ位置を有する。同様に、クライアントnもチューナ1~nに関する独立したバッファ位置を有する。一般に、バッファ位置は、ビデオ内のある位置またはチューナバッファ内のある位置を指すポインタを有することができる。図3での各チューナバッファ位置はタイムラインとして示され、ここで開始および終了ラインセグメントはバッファの長さを表し、中央ラインセグメントはクライアントの現在のバッファ位置を表す。ネットワーク化PVRシステムにおけるバッファは、1つの書き込みタップおよび複数の読み取りタップを含む。図4は、ネットワーク化PVRシステムにおけるバッファに関する一実施形態を示すブロック図である。チューナ410は、バッファ420に格納するためのデータ例えば、MPEG符号化ビデオを出力する。一実施形態では、バッファはハードディスクドライブを有する。チューナ410は、ファイルシステムを使用してハードディスクドライブに書き込むことができる。他の実施形態では、チューナ410はハードディスクドライブ上で直接書き込み操作を実行することができる。バッファは複数の読み取りタップを有する。図4に示された例では、バッファはn個の読み取りタップを有するすなわち、nは1より大きいかまたは1に等しい任意の整数を表す。各読み取りタップは独立したバッファ位置をサポートする。例えば、読み取りタップ1はチューナバッファ位置1をサポートし、読み取りタップ2はチューナバッファ位置2をサポートし、読み取りタップnはチューナバッファ位置nをサポートする。ソフトウェアの一実施形態では、ソフトウェアは1ファイル上で複数の読み取り操作を実行し、複数のタップを生成する。一実施形態では、システムは読み取りおよび書き込みバッファタップの相対的な位置で境界条件を設定する。1つの境界条件では、読み取りタップが書き込みタップよりもバッファ長さを超えて遅れないことを要求する。例えば、クライアントは、バッファ済みテレビジョン番組を第1のバッファ位置すなわち、読み取りタップを使用して視聴することができる。この例では、クライアントはテレビジョン番組の視聴を一時停止することができる。この場合、第1のバッファ位置は一定であるすなわち、第1のバッファ位置は進行しない。しかし、テレビジョン信号が受信されるにつれて書き込み位置は進行する。それ故、書き込みバッファ位置と読み取りバッファ位置との間の距離は増加する。読み取りバッファ位置と書き込みバッファ位置との間の距離がバッファの長さを超えた場合、イベントが生成される。イベントへの応答は、読み取りバッファ位置の進行とすることができる。また他のシナリオでは、読み取りバッファ位置が対応する書き込みバッファ位置まで前進した場合、読み取りバッファ位置が書き込みバッファ位置の場所になるすなわち、読み取りバッファ位置は書き込みバッファ位置を越えて進行しない。例えば、クライアントは現在の書き込み位置までバッファテレビジョン番組を早送りすることができる。図5は、ネットワーク化PVRシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。最初にユーザは、ライブTVを視聴するため、またはPVRメディアサーバからメディアを選択するために、クライアントテレビジョン上に表示されたメニューオプションを受信する図5、ブロック520。クライアントはライブテレビジョンの視聴を選択しないと、PVRメディアサーバに格納されたメディアを選択する図5、ブロック520および530。次に、以下で論じるように、クライアントはシステムを介してバッファ位置を設定する。ユーザがライブテレビジョンの視聴を選択すると、クライアントはテレビジョンサービスプロバイダを選択する図5、ブロック510。クライアントが使用できるテレビジョンサービスプロバイダが1つだけの場合、システムはブロック510の機能を省略する。一実施形態では、サービスプロバイダの選択はセットアップモード時に構成することができる。例えば、居間のテレビジョンは、衛星システムからテレビジョン信号を常時受信するように構成することができる。システムは、クライアント用のチューナを選択する図5、ブロック540。一実施形態では、システムは使用可能なチューナをクライアントテレビジョンに自動的に割り振る。ユーザは、クライアントで番組を視聴する図5、ブロック580。ユーザが番組を変更したい場合、クライアントは、クライアントで表示される電子番組ガイドから番組を選択する図5、ブロック555および550。ユーザが番組を変更したくない場合、ユーザは潜在的にバッファ位置を設定する。ユーザが既存のバッファ位置を有し、番組を既存のバッファ位置に設定したい場合、ユーザはメニューを介して既存のバッファ位置を選択する図5、ブロック570および572。クライアントが既存のバッファ位置を有していない場合、システムはファイル/メディアの先頭にバッファ位置を設定する図5、ブロック570および574。ユーザは、バッファ位置を既存のバッファ位置に変更したい場合がある図5、ブロック560。ユーザが番組を既存のバッファ位置に設定したい場合、ユーザはシステムを介してバッファ位置を変更するブロック565、図6を参照。例えば、ユーザはすでに進行中の番組を選択する場合がある。このシナリオの場合、ユーザは番組を最初から視聴したい場合がある。これを実施する場合、ユーザは番組の最初から開始するために新しいバッファ位置を選択する。次に、ユーザはクライアントで番組を視聴する図5、ブロック580。一実施形態では、PVRメディアサーバは、電子番組ガイドEPGと呼ばれる番組データをEPGコンテンツプロバイダから獲得する。EPGデータセットは、対応するテレビジョンサービスプロバイダから入手可能なチャンネルおよび時間を含む番組のリストを提供する。通常、EPGデータはサービスごとにEPGコンテンツプロバイダから提供される。PVRメディアサーバは、EPGコンテンツプロバイダに接触して更新された番組データを獲得する。PVRシステムは、EPGデータを利用して番組のスケジューリングならびにクライアントへの番組メニューの提供を行う。それ故、この実施形態では、PVRシステムスケジューラはEPGデータセットに特有のものである。しかし、家庭用メディアネットワーク化システムは、異なるEPGコンテンツプロバイダを利用する、したがって異なるEPGデータセットを使用して動作するサーバを含むことができる。この実施形態では、ユーザは基礎となるEPGデータセットに基づいてチャンネル選択メニューを視聴するだけである。それ故、クライアントで提示されるメニューは基礎となるPVRメディアサーバに依存する。一実施形態では、PVRシステムは、クライアントがテレビジョンチューナの概念を理解する必要なしにテレビ番組を選択できるようにするものである。例えば、2台のクライアントが同じチューナから信号を受信している場合がある。このシナリオでは、クライアントのうちの一方が、他方のクライアントが現在のプログラムを視聴できることに影響を与えずに、異なる番組を視聴するためにチャンネルを変更したい場合がある。PVRシステムは、ユーザが追加の番組を選択できるようにするメニューを提供する。一実施形態では、番組メニューは特定のテレビジョンサービスプロバイダおよび対応するEPGコンテンツプロバイダに基づく。一実施形態では、ユーザはテレビジョンサービスプロバイダ-EPGコンテンツデータセット内の番組を選択する。クライアントは、好ましいテレビジョンサービスプロバイダを自動的に選択するようにシステムをセットアップすることができる。ユーザが新しいチューナを必要とする操作を実行する場合、ユーザは以前に選択されたEPGコンテンツプロバイダから番組を選択する。ユーザが新しい番組を選択した後、システムはユーザにチューナを割り振る。このシナリオでは、ユーザはチューナの概念を理解する必要がない。代わりに、クライアントは番組を選択するか、またはチューナの使用権を獲得するためにイベントを取り消すのみである。チューナがユーザへの割り振りに使用できない場合、システムは所定の競合管理手順を介して競合を解決する。ネットワーク化PVRシステムで発生する一定の競合を解決するための一実施形態について、以下でより詳細に説明する。ネットワーク化PVRシステムは、ユーザが異なるクライアントからバッファ位置を選択できるようにする。例えば、第1のクライアント例えば、居間のテレビジョンで番組を視聴しているユーザが別の部屋に行って、第2のクライアント例えば、台所のテレビジョンから第1のクライアントでの視聴が終わったその番組を選択する場合がある。このシナリオでは、ユーザは居間のクライアントで再生されている番組を、その後台所のクライアントで視聴するために一時停止することができる。図6は、本発明のネットワーク化PVRシステムを使用するための一実施形態を示すフローチャートである。このシナリオでは、ユーザはクライアントから視聴するための番組を選択する図6、ブロック610。その後ユーザは、その番組を異なるクライアントから選択したい場合がある。これを実施するために、ユーザは、選択された番組にチャンネルが合わされた他のクライアントを決定するために、PVRシステムに照会する図6、ブロック620。他のクライアントのチャンネルが選択された番組に合わされた場合、システムはその番組にチャンネルが合わされたクライアントのリストを表示する図6、ブロック630および640。上記のシナリオでは、ユーザは、居間で一時停止された番組を選択するように、台所のクライアントからPVRシステムに照会する場合がある。一実施形態では、ユーザは、選択された番組を誰が視聴しているかを決定するためにあるクライアントからメニュー項目を引き出す。これに応答して、PVRシステムは、選択された番組を現在再生しているクライアントの場所のメニューを表示する。上記の例の場合、PVRシステムは、選択された番組が現在居間で再生されていることを識別するために居間のクライアントを表示する。別の方法として、選択された番組にチャンネルが合わされているクライアントが他にない場合、バッファ位置はプログラムの先頭に設定される図6、ブロック630および655。ユーザが他のクライアントのバッファ位置を選択したい場合、PVRシステムは、ユーザのクライアントのバッファ位置として使用するために選択されたクライアントからバッファ位置をコピーする図6、ブロック650および660。上記の例の場合、台所のクライアントにいるユーザは、一時停止された番組の位置で選択された番組をピックアップするために、居間のクライアントのバッファ位置を選択する。別の方法として、ユーザは選択された番組を番組の先頭から視聴したい場合がある図6、ブロック650および655。一実施形態では、PVRシステムは、2台のクライアントで同時に再生するために2つのバッファ位置を同期させることができる。例えば、ユーザは、家の中でより広い領域にわたって音楽を流すために、2台の異なるクライアントで音楽ビデオを再生したい場合がある。一実施形態では、PVRシステムはテレビジョンチューナに状態を割り当てる。この実施形態では、テレビジョンチューナは、ビジーbusy、おそらくフリーmaybefree、および完全にフリーtotallyfreeの状態のうちの1つを含む。ビジー状態とは、現在サーバがチューナを使用して番組を録画中であることを示す。おそらくフリー状態は、クライアントがチューナを使用して番組を視聴中である可能性があることを示す。例えば、ユーザは、クライアントでプログラムを視聴するように選択する場合がある。その後、PVRシステムは、ユーザがまだその番組を視聴しているかどうかを実際には知らない例えば、ユーザがモニタの電源をオフにしたばかりの可能性があるため。このシナリオでは、チューナはおそらくフリーと指定される。チューナが完全にフリーと指定された場合、チューナはスケジューラによって割り振られておらず、クライアントはチューナを使用して番組を視聴していなかったことになる。以下で詳細に説明するように、チューナの状態を使用してチューナが割り振られる。一実施形態では、PVRシステムはスケジューラを利用する。一般に、スケジューラはシステムにとってしなければならないことのリストとしての役割を果たす。例えば、スケジューラは、システムユーザが選択した番組を録画するためのプロセスを実行する。番組は録画するために個々に選択するか、または予約申し込みに基づいて録画するためにスケジューリングすることができる。スケジューラは、番組を録画するためのリソースを割り振るために競合管理の問題を解決する。一実施形態では、PVRシステムは予約申し込みをサポートする。一般に、予約申し込みでは、システムは選択された番組の放送を繰り返し録画する。予約申し込みを使用すれば、ユーザは予約申し込みをする番組を選択するだけで、その番組のすべての放送が録画される。一実施形態では、PVRメディアサーバのスケジューラが予約申し込みを実行するためのイベントを識別する。例えば、ユーザは、テレビジョンショーRealityTelevisionの予約申し込みを選択することができる。PVRメディアサーバのスケジューラは、EPGデータセットからテレビジョンショーRealityTelevisionのすべての固有の連続番組を決定する。スケジューラはイベントを録画するために、識別されたそれぞれの固有の連続番組について1イベントのイベントを生成する。一実施形態では、予約申し込みは単一のPVRメディアサーバ内でスケジューリングされる。しかし、他の実施形態では、予約申し込みを他のPVRメディアサーバに送るpushことができる。例えば、第1のPVRメディアサーバのスケジューラが予約申し込みに関連するイベントを含むことができる。第1のPVRメディアサーバがその予約申し込みの1つまたは複数のイベントで競合する場合、予約申し込み全体のイベントを第2のPVRメディアサーバに割り当てることができる。この場合、第2のPVRメディアサーバのスケジューラが例えば、第1のPVRメディアサーバ用のスケジューラと同じ方法で予約申し込みを実行する。例えば、第1のPVRメディアサーバのスケジューラからのイベントを第2のPVRメディアサーバのスケジューラに転送することができる。さらに、第2のPVRメディアサーバのスケジューラは、その予約申し込みに関する今後のイベントのスケジューリングタスクも想定することができる。また、あるPVRメディアサーバがネットワークから除去された場合、複数のPVRメディアサーバ間で予約申し込みを送ることができる。図7は、本発明のネットワーク化PVRシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。第1に、ユーザはメニューを介して録画する番組を個々に、または予約申し込みによって選択する図7、ブロック710。これに応答して、システムはイベントの時間帯中に使用可能なチューナを選択する図7、ブロック720。さらに、システムは、スケジューリングされた番組に対して記憶媒体上の記憶域を割り振る図7、ブロック730。システム内でイベントの再スケジューリングが発生すると、使用可能なチューナおよび使用可能な記憶域の両方を割り振るためにプロセスが繰り返される図7、ブロック740、720、および730。一実施形態では、電子番組ガイドデータがPVRメディアサーバにダウンロードされた場合、再スケジューリングイベントが発生する。再スケジューリングイベントは、ユーザがスケジューラから項目を削除した場合にも発生する。例えば、ユーザは、番組を録画するために、前の予約申し込みから別の番組を以前にキャンセルしたイベントを削除する場合がある。このシナリオでは、ユーザが競合する番組をキャンセルしたため、システムは前の予約申し込みを再スケジューリングする。スケジューリングされたイベントをセットアップする時間例えば、スケジューリングされたイベントの時間より前の時間に達すると、システムはスケジューリングされたイベントの録画を開始するためのプロセスを始動する図7、ブロック750および760。チューナリソースの競合解決を含む、スケジューリングされたイベントの録画に関する一実施形態について、図8の説明と共に以下で詳細に説明する。イベントがキャンセルされると、システムはチューナを解放し、キャンセルされたイベントに関する記憶媒体上のスペースを割り振り解除する図7、ブロック770および775。またスケジューラは、その時間帯を埋めるために何らかの新しい割り振りの決定を実行する図7、ブロック785。一実施形態では、システムはユーザがイベントをキャンセルする代わりに再スケジューリングもできるようにする。別の方法として、イベントがキャンセルされない場合、スケジューリングされたイベントが録画される図7、ブロック770および780。一実施形態では、PVRシステムはチューナを使用するすべてのクライアントに対して等しい所有権を割り当てる。例えば、3台のクライアントが同じチューナを使用することが可能であるすなわち、3台のクライアントすべてが、潜在的には番組の異なる部分であるが同じ番組を視聴している。1台のクライアントがチューナのチャンネルを変更すると、チューナは新しいチャンネルにセットされ、その結果3台のクライアントすべてのチャンネルが新しい番組に合わされる。PVRシステムは、ネットワーク化PVRシステム内で生じる可能性のあるいくつかの競合を解決するすなわち、競合管理と呼ばれる。ネットワーク化PVRシステム内で生じる競合の一部には、新しい番組を録画する不適切な記憶域、スケジューリングされた番組を録画するには不十分な数のチューナ、スケジューリングされたイベントを録画する場合のチャンネル変更要求を含む一貫性のない入力、およびイベントを録画するには不十分な数のチューナが含まれる。一実施形態では、スケジューリングされたイベントを録画するのに十分な記憶域がPVRメディアサーバにない場合、システムは録画に先立って自動的にコンテンツを削除する。コンテンツ削除の優先順位を割り当てるための一実施形態について、以下でより詳細に説明する。図8は、番組を録画するための一実施形態を示すフローチャートである。スケジューリングされたイベントの時間の直前に、PVRシステムはチューナが使用可能かどうかを判別する図8、ブロック810および820。チューナが使用可能なすなわち、チューナが完全にフリーと指定された場合、チューナは番組を録画するように割り当てられる図8、ブロック820および880。PVRメディアサーバ上で完全にフリーと指定されたチューナがない場合、システムは、チューナを備えた何らかの他のPVRメディアサーバがあるかどうかを判別する図8、ブロック822。ある場合は、他のPVRメディアサーバが選択され、システムは選択されたPVRメディアサーバが使用可能なチューナを有するかどうかを判別する図8、ブロック825および820。このプロセスは、ネットワーク上のすべてのPVRメディアサーバに対して反復される。使用可能なチューナがないすなわち、ネットワーク上のすべてのチューナがビジーまたはおそらくフリーとして指定されている場合、システムは、クライアントがスケジュールされたイベントをキャンセルしたいかどうかを判別するために、チューナに割り振られたかまたは潜在的に割り振られたクライアントに照会する図8、ブロック830。例えば、一実施形態では、クライアントに照会するために、PVRシステムは各クライアントにメニュー画面を表示して、システムがスケジューリングされたイベントを進行すべきかどうかを尋ねる。チューナに割り振られたすべてのクライアントがこの照会を受け取る。例えば、スクリーン画面でシステムは時間Yに番組Xを録画するようにチャンネルを変更する必要がありますが、よろしいですかと尋ねる場合がある。この照会に対してすべてのクライアントがはいと応答した場合、システムはスケジューリングされたイベントの録画に進む。所定の時間内にこの照会に回答しなかったクライアントがあった場合も、システムはスケジューリングされたイベントの録画に進む。PVRシステムは、クライアントから回答を取り出す図8、ブロック840。クライアントのいずれか1つがイベントをキャンセルした場合、システムは、スケジューリングされたイベントを記録するために割り振るチューナを備えた追加のPVRメディアサーバがあるかどうかを判別する図8、ブロック850および860。追加のPVRメディアサーバがない場合、スケジューリングされたイベントはキャンセルされる図8、ブロック860および870。別の方法として、システム内に追加のPVRメディアサーバがある場合、使用可能なチューナを割り振るためのプロセスが反復される図8、ブロック860、820、830、840、および850。チューナを割り当てるためのこのプロセスは、システム内のすべてのPVRメディアサーバについて反復される。図8のプロセスは、スケジューリングされた複数のイベントに対して同時にチューナを割り振るために使用することができる。例えば、3つの番組を、あるインスタンスで適時に録画するようにスケジューリングすることができる。このプロセスは各番組について反復される。例えば、クライアントが第1のスケジューリングされた番組をキャンセルした場合、その番組は、システム内に他の使用可能なPVRメディアサーバがあればこれに送られる。その後、すべての関連するクライアントが第2の番組のスケジューリングに関する別の照会を受け取る。ここでも、いずれかのクライアントが第2の番組をキャンセルした場合、第2の番組のスケジューリングは潜在的に他のPVRメディアサーバに移行される。一実施形態では、PVRネットワークシステムはユーザに対してチューナをロックするための機能を有する。例えば、ユーザが数時間にわたるTVショー例えば、野球の試合、アカデミー賞などを視聴している場合、ユーザは、以前にスケジューリングされたイベントにチャンネルを変更するための複数の要求を受け取りたくない可能性がある。一実施形態では、ユーザはチャンネルを変更するための照会を迂回するように、システム内のオプションを選択する可能性がある。実行可能になった場合、システムは、ユーザの番組中にチューナリソースの競合を解決するためにチューナを再割り振りするための照会を表示しない。一実施形態では、ネットワーク化PVRシステムが高度な競合管理を含む。一般に、高度な競合管理は、スケジューリングされたイベントをキャンセルするためにユーザに照会する以外の手段を使用して、ユーザが競合を解決するのを補助する。例えば、高度な競合管理は、同一のテレビジョン連続番組の代替のプレゼンテーションを自動的に探し出し、競合が生じない場合はシステムがその番組を録画するためのオプションをユーザに提示することができる。それ故、ユーザが2つのショーを同時に録画しようとすると、システムは4チャンネルで午後9時に録画するように設定したお気に入りのショーの連続番組が、7チャンネルの午後11時に録画するように設定されていますという旨のメッセージを戻すことができる。ユーザは、スケジューリングされたイベントを現在録画しているチューナのチャンネルを変更するよう試みることができる。このシナリオでは、システムはスケジューリングされたイベントをキャンセルするようにユーザに指示する。またユーザは、システム内で使用可能なチューナが他にない場合に、番組を録画するよう試みることもできる。このシナリオでは、ユーザはネットワーク全体からキャンセルするためのイベントのリストを受け取る。例えば、システムは3台のチューナを有している場合がある。第1のチューナは第1のスケジューリングされたイベントを録画し、第2のチューナは第2のスケジューリングされたイベントを録画し、第3のチューナは少なくとも1台のクライアントが使用するために割り振ることができる。ユーザが別の番組を録画しようと試みると、システムは3台のチューナに現在割り振られている3つの番組を表示する。依然として新しい番組を録画したい場合、ユーザはこれに応答して、表示されたイベントのうちの1つをキャンセルする。一実施形態では、PVRシステムは削除マネージャを含む。一般に、削除マネージャは、PVRメディアサーバに格納されたコンテンツを削除する優先順位を決定する。一実施形態では、削除マネージャは日付ベースの削除システムを利用する。日付ベースの削除システムでは、第1の録画された番組が削除用にスケジューリングされた第1の番組でもある。所定の時間が経過すると、その番組が削除可能であることをユーザに伝えるために、メニュー上の項目にタグが付けられる。追加のアイコンを使用して、潜在的な番組削除に関してユーザに伝えることもできる。例えば、別のアイコンを使用してその項目が削除可能であることをユーザに伝えることが可能であり、異なるアイコンを使用してその番組が削除されない予定であることをユーザに伝えることも可能である。一実施形態では、削除マネージャは、先soonerまたは後laterフラグに基づく優先順位システムを使用する。このシステムでは、ユーザはコンテンツに先または後に削除するマークを付ける。削除マネージャはコンテンツを分析して、先のマークが付けられた項目を後のマークが付けられた項目よりも先に削除する。このシステムは、前述の日付ベースの削除システムと共に使用することができる。他の実施形態では、ユーザは範囲例えば、1~5に従った削除の優先順位でコンテンツをランク付けする。クライアントデバイスの集約ネットワーク化PVRシステムは、ピアツーピアアーキテクチャを利用する。メディアプラットフォーム上のすべてのクライアントデバイスが、複数のクライアントデバイスおよび複数のPVRメディアサーバを含む、他のデバイスと通信できる機能を有する。このアーキテクチャでは、デバイスがテレビジョン信号を含むネットワーク上で入手可能なすべてのメディアを取得すること、およびそのデバイス上で表示するためにメディアを集約することが可能である。クライアントデバイスまたはサーバデバイスを含むデバイスは、いつでもホームネットワークに入ることおよび/またはホームネットワークから出ること、ならびに依然としてすべての機能を維持することが可能である。それ故、あるデバイスの電源がオフになった場合、そのデバイスがホームネットワーク上でもはや使用可能でないことを他のデバイスが自動的に認識する。新しいデバイスが追加されるかまたはポータブルデバイスがネットワークに加わった場合、他のノードはその新しいデバイスを自動的に認識する。他のノードは、追加されたデバイス上のサービスを利用することができる。新しいPVRメディアサーバも、少なくとも1つの他のPVRメディアサーバが現在ネットワーク上にある限りは、新しいデバイスを自動的に認識することができる。図9は、本発明の一実施形態に従ったテレビジョン信号のクライアントデバイス集約を示す図である。この例では、3台のPVRメディアサーバ910、920、および930がホームネットワーク940に結合される。図9に示すように、各PVRメディアサーバは少なくとも1台のチューナを有する。例えば、PVRメディアサーバ930は3台のチューナ932、934、および936を有する。さらに、PVRメディアサーバは様々なメディアアイテムを格納することができる例えば、ビデオ、オーディオ、写真など。またこの例では、クライアントデバイス950はホームメディアネットワーク940上に常駐する。クライアントデバイス950はテレビジョンを備えることができる。発見プロセスが完了すると、クライアントデバイス950はホームネットワーク940上で入手可能な番組を決定する。その結果、クライアントデバイス950は、クライアントデバイス950で使用するためにすべてのチューナからの番組を集約する。図9に示すように、クライアントデバイス950はPVRメディアサーバ910、920、および930を介して入手可能なすべての番組を集約する。ネットワーク化PVRシステムは、すべての番組を固有として識別する機能を提供する。例えば、コメディのジャンルに分類されたすべての番組がそのようなものと認識され、システムはそれに応じて表示する。同じ名前の2人以上の俳優が存在する場合がある。ネットワーク化PVRシステムは、システムが固有の番組を区別できるようにする分散型データベースを利用する。それ故、2つの異なるテレビジョンサービスプロバイダにわたって1つの番組が提供されている場合、クライアントデバイスを集約する際に、クライアントデバイスは単一の番組のみを認識する。図9の例では、映画アメリカ最高の映画はPVRメディアサーバ920およびPVRメディアサーバ910の両方を介して提供される。クライアントの番組集約の際、クライアントデバイス950は、PVRメディアサーバ910および920の両方を介して提供される映画アメリカ最高の映画を同じ番組として認識する。それ故、クライアントデバイス350は、映画アメリカ最高の映画を単一の番組としてのみ認識する。基礎となるプロトコルは、クライアントデバイスがホームネットワーク上のデバイスからの番組を集約できないようにするだけのものである。プロトコルそのものは、分散型システムをサポートするための要件を有していない。ネットワーク化PVRシステムのこの実施形態では、集約論理は非分散型プロトコルを使用して分散型システムを作成する。集約論理は、複数のプロトコルを使用してホームネットワーク上でデバイスを統合する。図10は、ネットワークを介した番組のクライアント集約に関する一実施形態を示すフローチャートである。最初にクライアントデバイスは、ホームネットワーク上のデバイス例えば、PVRメディアサーバを発見する図10、ブロック1010。ホームネットワーク上のデバイスを発見するための一実施形態について、以下でより詳細に説明する。クライアントデバイスは、発見プロセスで習得した情報に基づいて、開発されたデバイスに関する状態情報を構築する図10、ブロック420。クライアントデバイスは、メディアアイテムに関する要求を受け取る図10、ブロック430。集約論理は、集約論理の上で動作するソフトウェア構成要素から要求を受け取る。例えば、クライアントデバイスは、ユーザインタフェースを動作させるテレビジョンを備えることができる。ユーザはリモートコントロールデバイスを使用して、ホームネットワーク上で入手可能な、ライブであるかまたは事前に録画されたかのいずれかの、すべてのテレビ番組のリストを要求することができる。この例では、ユーザインタフェース上のアプリケーション論理が番組に関する要求を変換し、この要求を集約論理に転送する。クライアントデバイスの集約論理は、選択された番組を提供するすべてのPVRメディアサーバから番組の情報を獲得する。例えば、クライアントが特定のジャンル例えば、コメディにテレビジョン番組を要求した場合、クライアントデバイスはすべてのPVRメディアサーバから入手可能なそのジャンルに分類されたすべての番組を獲得する。この動作は、図10に示されているブロック1040、1050、1060、1070、および1080。より詳細に説明すると、特定のPVRメディアサーバを選択するための識別子すなわち、n=0が設定される図10、ブロック440。クライアントデバイスは、発見プロセス中に獲得した状態情報を使用して、選択されたPVRメディアサーバ例えば、PVRメディアサーバ[0]に接続する図10、ブロック1050。より詳細に説明すると、クライアントデバイスは番組に関する要求を選択されたPVRメディアサーバによってサポートされるプロトコルに変換し、この要求をPVRメディアサーバに転送する。一実施形態では、クライアントデバイスは選択されたPVRメディアサーバ上のサービスを呼び出して番組を取得する図10、ブロック1060。一実施形態では、クライアントデバイスは、PVRメディアサーバ上のコンテンツ管理サービスを呼び出して、入手可能なプログラムのリストを獲得する。ホームネットワーク上で入手可能なPVRメディアサーバが他にもある場合、クライアントデバイスは新しいPVRメディアサーバを識別して番組を獲得する図10、ブロック1070および1080。クライアントデバイスがすべての使用可能なPVRメディアサーバから番組のリストを獲得すると、プロセスは完了する。図11は、ネットワーク化PVRシステムデバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。ソフトウェア構成要素500は、最高位にアプリケーションソフトウェア502を含む。アプリケーションソフトウェア502は、基礎となるデバイスの機能を実施する。例えば、アプリケーションソフトウェア502は、DVDプレーヤの機能を実施することができる。図11に示すように、アプリケーションソフトウェア502の下に集約論理520がある。前述のように、集約論理520は、クライアントデバイスがホームネットワーク上のメディアアイテムおよびテレビジョン番組を集約できるようにするものである。ソフトウェア構成要素500は、ユーザインタフェースUIレンダリング論理510も含む。UIレンダリング構成要素510は、シーン情報をクライアントデバイス上での表示に好適な表示情報に変換する。UIレンダリング構成要素510は、表示データもレンダリングする。例えば、基礎となるクライアントデバイスがテレビジョンディスプレイ例えば、CRTを含む場合、UIレンダリングエンジン510はシーン情報からグラフィックスデータを生成し、このグラフィックスデータをテレビジョンディスプレイ上でレンダリングする。図11に示すように、クライアントデバイスは1つまたは複数のネットワークプロトコルおよびリモートプロシージャコールRPCメカニズムを組み込む。例えば、図11は、ネットワークプロトコルA1125、ネットワークプロトコルB1130、およびネットワークプロトコルn1135をサポートするクライアントデバイスを示す。この例では、クライアントデバイスソフトウェア500はRPCメカニズムA1140、RPCメカニズムB1145、およびRPCメカニズムn1150をサポートする。クライアントデバイスソフトウェア500は1つまたは複数のサービスをサポートする。図11に示すように、インタフェースを介してサービスの1つまたは複数の方法にアクセス可能である。一般に、方法は呼び出されると、基礎となるサービスに特有の機能を提供する。この例では、クライアントデバイスソフトウェア500はサービスA555、サービスB560、およびサービスn565を含む。各サービスは1つまたは複数の方法すなわち、方法1~方法nに関連付けられる。一実施形態では、ネットワーク化PVRシステムは複数の基礎となるプロトコルをサポートする。一般に、プロトコルは、コマンド、RPCメカニズム、およびサービスへのインタフェースを定義する。一実施形態では、ネットワーク化PVRシステムは、業界定義のUPnPプロトコルをサポートする。一般に、UPnPプロトコルは、IPネットワークを介した発見、RPCメカニズム、およびサービスを活動化するためのインタフェースを定義する。UPnPサービスには、コンテンツディレクトリサービス、接続マネージャサービス、オーディオ/ビデオA/Vトランスポートサービス、およびA/Vコントロールサービスが含まれる。一実施形態では、ネットワーク化PVRシステムは独自所有プロトコルすなわち、非業界標準プロトコルもサポートする。この実施形態では、独自所有プロトコルはネットワーク発見プロセス、RPCメカニズム、およびサービスへのインタフェースを定義する。サービスには、コンテンツマネージャ、メディアプレーヤサービス、およびPVRコントロールインタフェースが含まれる。コンテンツマネージャサービスによって、クライアントデバイスはデータベースにインタフェースすることができる。より詳細に説明すると、クライアントデバイスはコンテンツマネージャサービスを使用して、他のネットワークデバイス上のデータベースから情報例えば、メディアを識別するためのURL、メタデータなどを抽出することができる。それ故、コンテンツマネージャサービスは、ネットワーク化PVRシステムのデバイスにデータベースを照会するための手段を提供する。メディアプレーヤサービスは、再生機能を可能にするインタフェースを定義する例えば、メディアストリームの始動およびコントロール。PVRコントロールインタフェースは、非格納オブジェクト上でのメディアのストリーミングを可能にする。さらに、PVRコントロールインタフェースは、ユーザが現在の番組の録画ならびに今後の番組の録画スケジューリングをできるようにする。一実施形態では、独自所有プロトコルでの発見プロセスが非同期ベースのメッセージングを実施する。発見プロトコルは、パケットベースのメッセージングをサポートする任意のネットワーク上、または直列化ネットワーク上で動作する。一実施形態では、発見プロトコルは、announceコマンド、discoveryコマンド、およびbye-byeコマンドを含む。announceコマンドは、デバイスがその存在をホームメディアネットワーク上に告知するために使用される。discoveryコマンドは、告知の要求であるすなわち、何らかのクライアントデバイスがホームネットワーク上にあるかどうかを照会する。bye-byeコマンドは、クライアントデバイスがネットワークから離れることを告知するために、クライアントデバイスによって使用される。一実施形態では、2種類の告知と2種類のbye-byeコマンドとがあり、1つはデバイス用、1つはサービス用である。一時実施形態では、独自所有プロトコルによってサポートされるRPCメカニズムはパケットベースのプロトコルを使用する。サービスは、ホームネットワーク上のデバイスが適切な引数でRPCベースのパケットを構築できるようにするための、方法および識別番号を含む。一般に、RPCメカニズムは、デバイスがネットワーク上の他のデバイスをコントロールできるようにするものである。プロトコルは、要求および応答を介して達成される。RPCパケットはヘッダを含む。一実施形態では、ヘッダは、バージョン情報、コマンドクラス特定サービスへのマップ、コマンドデバイスが要求している方法、または方法からの応答、識別要求の識別、または要求に対応する応答の識別、および長さを含む。RPCプロトコルフォーマットは、ヘッダの次にデータすなわち、要求に関する引数および応答に関する戻り値を指定する。図12は、ネットワーク化PVRシステムに関するホームネットワークの一例を示すブロック図である。この例では、ホームネットワークはPVRメディアサーバ1250、DVDプレーヤ1240、およびPVRメディアサーバ1230を含む。テレビジョンを含むクライアントデバイス1210はホームネットワーク620に入り、サポートしているプロトコルを使用して3つのデバイス例えば、PVRメディアサーバ1250、DVDプレーヤ1240、およびPVRメディアサーバ1230を発見する。図12に示すように、クライアントデバイス1210は、ホームネットワーク1220上で発見されたそれぞれのデバイスに関する状態情報を格納する。より詳細に説明すると、クライアントデバイス1210は、デバイス1PVRメディアサーバ1230についての、サポートしているネットワークプロトコルすなわち、ネットワークプロトコルAならびにデバイスによってサポートされるサービスすなわち、サービスAおよびサービスCのリストを格納する。ネットワークプロトコルは、PVRメディアサーバ1230上でリモートプロシージャコールを実行するためのRPCメカニズムも指定する。同様に、デバイス2すなわち、DVDプレーヤ1240についての状態情報は、デバイス2がネットワークプロトコルAをサポートし、サービスAおよびサービスBを実施することを示す。デバイス3、すなわちPVRメディアサーバ1250は、ネットワークプロトコルCをサポートし、サービスAおよびサービスBを実施する。図12に示すように、各サービス例えば、サービスA、サービスB、およびサービスCはインタフェースをサポートする。インタフェースは、サービス内の方法またはコマンドにアクセスするための手段を提供するための仕様を定義する。したがって、クライアントデバイス1210は、それぞれのインタフェースを介してPVRメディアサーバ1250上のサービスサービスAまたはサービスBを利用する。PVRメディアサーバ1230、DVDプレーヤ1240、およびPVR-サーバ1250は、すべてサービスAを実施することに留意されたい。サービスAに対する各インタフェースは同一であり、サービスへの均一のアクセス可能性を許可する。しかし、各デバイスでのサービスAの実施は異なる場合がある。一実施形態では、ネットワーク化PVRシステムの実施によってセキュリティが提供される。この実施形態では、announcementコマンドがオープンエンドであるため、プロトコルは通信に関する最低限の仕様のみを定義する。したがって、告知プロトコルは、TCPおよびsecuresocketlayerSSLを含む、複数のネットワーク仕様をサポートすることができる。プロトコルは、TCP/IPネットワーク上での実施をサポートする。さらに、プロトコルは、TCP/IPネットワーク上で動作するSSLもサポートする。SSLは、認証を含む、ネットワーク上での2当事者間のセキュアな通信を可能にする。独自所有プロトコルは、部分的なセキュリティを使用する実施も可能にする。この実施形態では、サービスはセキュアな通信を必要とするいくつかの方法と、セキュアな通信を必要としない他の方法とを含むことができる。それ故、いくつかの方法では、SSL技術を利用して、ホームネットワーク上の2つのデバイス間でのセキュアな通信を実現する。発見図13は、ネットワーク化PVRシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。新しいデバイスすなわち、現在ネットワークに接続されていないデバイスがホームメディアネットワークに接続される図13、ブロック1310。ネットワーク上で通信するために、新しいデバイスはネットワークアドレスを取得する図13、ブロック1320。例えば、IPネットワークでは、クライアントはIPアドレスを必要とする。基礎となるネットワークがTCP/IPをサポートする場合、クライアントデバイスはDHCPサーバがあるかどうかを判別する。DHCPサーバがある場合、これが新しいデバイスにIPアドレスを割り当てる。DHCPサーバがないすなわち、新しいデバイスにIPアドレスを割り当てる際にDHCPサーバが使用できない場合、新しいデバイスはプールからIPアドレスを選択し、ホームネットワーク上の任意の他のデバイスがそのIPアドレスを有するかどうかを判別する。そのIPアドレスを有する他のデバイスがネットワーク上にない場合、クライアントデバイスはこのIPアドレスを使用する。この自動IPアドレス指定のプロセスによって、単一サブネット内でホームネットワーク上の通信が可能になる。新しいデバイスは、ネットワークを介してannouncementコマンドを伝送する図13、ブロック1330。announcementコマンドのフォーマットは、デバイスがサポートするプロトコルに準じる。新しいデバイスは、ネットワークを介してannouncementコマンドをブロードキャストまたはマルチキャストすることができる。例えば、IPネットワークでは、新しいデバイスは、ホームネットワークがゲートウェイを含む場合、サブネットを拡張するためにannouncementをマルチキャストすることができる。マルチキャストフォーマットを使用して、特定のIPアドレスを指定する例えば、新しいデバイスに関連するかまたはこれに適合する、ネットワーク上のデバイスにのみ、announcementを伝送する。本明細書で使用する適合デバイスとは、クライアントデバイスとの通信に関与できるデバイスのことである。新しいデバイスのannouncementコマンドに応答して、新しいデバイスは状態情報を構築する。一般に、状態情報は、ネットワーク上で使用可能なデバイスに関する詳細を提供する。状態情報には、それらのデバイスによってサポートされるプロトコルおよびサービスが含まれる。ネットワーク上の適合デバイスがannouncementコマンドを受け取ると、それらの適合デバイスはannouncementコマンドに封入された情報をローカルキャッシュに追加することができる。ネットワーク上に適合デバイスがない場合、または新しいデバイスがネットワーク上のサービスの利用を望まない場合、プロセスは終了する。例えば、新しいデバイスがテレビジョンである場合、適合デバイスは、ビデオ例えば、DVD、MPEGなどを格納しており、ライブまたは事前に録画されたテレビジョンを提供する、PVRメディアサーバを含む。ネットワーク上に他の適合デバイスがある場合、それらのデバイスは新しいデバイスに1つまたは複数のサービスを公表する図13、ブロック1350。ネットワーク上のサービスを発見するために、新しいデバイスはdiscoveryコマンドを伝送し、応答を待つ。この例では、ライブテレビジョンを提供するPVRメディアサーバが、新しいデバイスがPVRメディアサーバによって提供される番組例えば、テレビジョンサービスプロバイダによって提供される番組を集約できるようにするためのインタフェースを公表する。要求例えば、新しいデバイスアプリケーション論理に応答して、新しいデバイスはサポートプロトコルを介して適合デバイスに接続する図13、ブロック760。より詳細に説明すると、デバイスは状態情報を使用して該当するデバイス用のプロトコルを変換する。例えば、適合デバイスが業界標準プロトコルをサポートする場合、新しいデバイスはそのデバイスと通信するための業界標準プロトコルを選択する。新しいデバイスは、適合デバイス上のサービスを利用する図13、ブロック1370。ホームネットワークに入るPVRメディアサーバは、発見プロセスの一例である。この例では、PVRメディアサーバはネットワークアドレスを取得した後、ネットワークを介してannouncementコマンドを伝送する。PVRメディアサーバはサポートしているサービス例えば、コンテンツマネージャ、メディアプレーヤサービス、およびPVRコントロールインタフェースを告知し、それらのサービスにアクセスできるようにするためにネットワーククライアントへのインタフェースを公表する。デバイスはネットワークに入ると、サーバからの告知を待つ。クライアントはPVRメディアサーバを識別すると、announcementコマンドでサーバが指定したプロトコルを介してPVRメディアサーバに接続する。このプロセスにより、クライアントデバイスは、PVRメディアサーバ上のメディアおよび番組をナビゲートすることができる。クライアントデバイスは、サポートプロトコルを使用して再生デバイス例えば、テレビジョンそれ自体または他の再生デバイスに接続し、PVRメディアサーバ上で入手可能な番組からユーザが選択した番組を再生するように、再生デバイスに指示する。ネットワーク化PVRデータモデルネットワーク化PVRシステムは、データモデルと共に動作する。基礎となるデータベースのフォーマットおよび配置構成は、ネットワーク化PVRシステムによって定義されるものではない。データモデルでは、オブジェクト例えば、メディアアイテムがデータベース内に固有の識別を有する。オブジェクトは関連するタイプ例えば、チャンネル、時間帯、連続番組、およびショーも有する。データモデルは、オブジェクトおよびタイプ間での構造および階層を定義するための関係を定義する。図14は、ネットワーク化PVRシステムの要素に関するデータモデルの一実施形態を示すブロック図である。この実施形態では、多くのサービスプロバイダが単一のMSOパッケージにマッピングされる。一般に、MSOパッケージはテレビジョン番組に関するデータ例えば、時間、チャンネル、コンテンツなどを定義する。データはMSOパッケージをチャンネルにマッピングするために抽出される。チャンネルデータオブジェクトは、使用可能なすべてのチャンネルを定義する。図14に示すように、各チャンネルが複数の時間帯にマッピングする。連続番組データオブジェクトは、1つまたは複数の時間帯にマッピングされる。連続番組データオブジェクトは、ある番組の個々の連続番組それぞれを識別する。次に、連続番組データオブジェクトは1つまたは複数の連続番組を1つのショーにマッピングする。俳優データオブジェクトは、俳優を識別するために各連続番組にマッピングされる。また、ジャンルデータオブジェクトを使用して、ショーがジャンル別に分類される例えば、コメディ、ドラマ、アクション、スポーツなど。一実施形態では、ネットワーク化PVRシステム用のデータベースは、リレーショナルデータベース例えば、キー値ペアデータベースまたは標準照会言語SQLデータベースを備える。この実施形態では、データベースはリレーショナルデータベースに格納するためにオブジェクトをマッピングする。ネットワーク化PVRシステムの一実施形態ではリレーショナルデータベースを利用するが、本発明の精神または範囲を逸脱することなく他のデータベースを使用することができる。図15は、ネットワーク化PVRシステムでのデータストアへのアクセスの一実施形態を示すブロック図である。クライアントデバイス1510はホームネットワーク1520に接続される。図15に示すように、デバイス1530およびデバイス1540もホームネットワーク1520に結合される。デバイス1540は、図15でデータベースBとラベル表示された永続データストアを含む。同様に、デバイス1530は永続データストア、データベースAを含む。デバイス1530および1540は、永続データストア内の情報にアクセスできるサービスをサポートする。一実施形態では、コンテンツマネージャサービスが使用される。より詳細に説明すると、コンテンツマネージャサービスAの第1の実施はデータベースAへのアクセスをサポートし、コンテンツマネージャサービスBの第2の実施はデータベースBへのアクセスをサポートする。クライアントデバイス1510は、データベースAおよびデータベースBから情報を取得することができる。データベースBを照会するために、クライアントデバイス1510は、前述のような形でデバイス1540への接続を取得する。クライアントデバイス1510は、コンテンツマネージャサービスBのインタフェースを介して方法を呼び出す。例えば、クライアントデバイス1510は、ネットワーク化PVRシステムによって認識されるすべてのジャンルのリストを取得したい場合がある。この情報はデータベースBに格納されている可能性がある。クライアントデバイス1510は、コンテンツマネージャサービスBのインタフェースに指定されたデータモデルパラメータを使用して、要求を生成する。前述の例では、クライアントデバイス1510はタイプジャンルのすべてのオブジェクトを識別するために、コンテンツマネージャサービスBへの要求を生成する。この要求に応答して、クライアントマネージャサービスBは、ジャンルのデータモデル概念をデータベースBに適合する照会に変換する。例えば、データベースBがSQLをサポートしている場合、コンテンツマネージャサービスBは、タイプジャンルのテーブル内のすべての記録を取得するために、データベースBへのSQL要求を生成する。コンテンツマネージャサービスの実施は、ネットワーク化PVRシステムデータモデルから基礎となるデータベース実施への変換を実行する。図15に示された例では、コンテンツマネージャサービスAはデータベースAへの第1の変換をサポートし、コンテンツマネージャサービスBはデータベースBに格納されたデータに関する要求の第2の変換をサポートする。したがって、クライアントデバイス1510は、両方のコンテンツマネージャサービス上のインタフェースによって定義されたものと同じ要求を使用して、異なるデータベース実施例えば、データベースAおよびデータベースBにアクセスする。一実施形態では、ネットワーク化PVRシステムはデータベースを使用して実施される。一般に、データベースは、オブジェクトと、それらのオブジェクトに関連付けられた属性と、それらのオブジェクト間の関連とを格納する。例えば、データベースは、メディアスペース内で入手可能なテレビジョン番組の識別を格納する。データベースは各オブジェクトに関する1つまたは複数の属性を関連付けるために、複数の属性を格納する。一実施形態では、オブジェクトは含む。それ故、あるトラックを1つまたは複数のアルバム、1人または複数のアーティスト、1つまたは複数のジャンル、および1つまたは複数のプレイリストに関連付けることができる。属性には、タイトル、作成日、および複数の関連するメディアファイルが含まれる。それ故、トラックは、関連するアルバムアート、歌詞などを有することができる。ネットワーク化PVRシステムデータベースは、オーディオトラックを非常に多様な形で分類することができる。例えば、ユーザは、ユーザが音楽を2つの異なるタイプのジャンル例えば、ロックおよびブルースと関連付けているために、トラックまたはアルバムすなわち、トラックの集まりを複数のジャンルに分類したい場合がある。また、ある音楽トラックは、2人のアーティスト間のコラボレーションの結果である場合がある。このトラックを適切に分類するために、ネットワーク化PVRシステムのユーザは、トラックを2人の異なるアーティストに関連付けることができる。上記の例で示すように、ネットワーク化PVRシステムは、音楽の分類および編成に柔軟性を提供する。ネットワーク化PVRシステムは、各分類または項目を別個のオブジェクトとして扱う。例えば、音楽アプリケーションの場合、プレイリスト、ジャンル、アーティスト、アルバム、およびトラックは、すべて個々のオブジェクトとして扱われる。項目の編成および分類に対して独立したオブジェクトをサポートするこの機能では、音楽の編成および分類に柔軟性を提供する。例えば、ユーザは、第1のプレイリスト全体が第2のプレイリストに含まれるような、ネストされたプレイリストを作成することができる。従来技術の音楽システムでは、プレイリストをトラックごとに処理するのみである。こうした従来技術のシステムでは、プレイリストはトラックのみで構成される。ネットワーク化PVRシステムでは、プレイリストはどのようなオブジェクトを含むこともできる。それ故、プレイリストは1つまたは複数のアーティスト、ジャンル、アルバム、または他のプレイリストから作成することができる。音楽の編成および再生でオブジェクトを使用することによって、同じ名前のアーティストを異なる者として扱うこともできる。従来技術のデジタル音楽システムは、アーティストを識別するためにメタデータを格納する。ユーザがこれら従来技術のシステムを使用してメタデータ上で検索を実行する場合、システムが同じ名前のアーティストを区別する方法はない。ネットワーク化PVRシステムでは、各アーティストは1つのオブジェクトとして扱われる。それ故、同じ名前の2人のアーティストは2つの別個のオブジェクトであり、2人の別々のアーティストとして操作することができる。ネットワーク化PVRシステムは、分散型反復器iteratorを利用する。データベースへの照会に対する応答によって、大量のデータが生成される可能性がある。一実施形態では、ネットワーク化PVRシステムプロトコルは、データの一部を伝送し、送信されたデータを識別するためのポインタを維持することをサポートする。一実施形態では、プロトコルは反復器を使用する。ネットワーク化PVRシステムが反復器を使用することで、システムは1つのデバイスから他のデバイスへ転送されたデータの一部例えば、リストを追跡することができる。反復器は、データの転送中にデータベース内の項目が変更された場合、反復器が動的に変化するように実施される。一般に、反復器は、アレイ内の位置を指定する。リストはデータベースからの結果である。例えば、データベースに対する照会への応答によって、オーディオトラックのリストを生成することができる。そのため、例示的な照会の一部として抽出されたオーディオトラックを削除することができる。他のシナリオでは、照会によって指定されたオーディオトラックをデータベースに追加することができる。ネットワーク化PVRシステムが独自所有プロトコルおよびTCP/IPネットワークを使用して実施された場合、システムはデータベース情報に関する要求に状態を関連付ける。この状態情報が反復器情報を維持するために利用される。以上、本発明について特定の例示的実施形態に関して説明してきたが、当業者であれば、本発明の精神および範囲を逸脱することなく、様々な修正および変更が可能であることを理解されよう。