(57)【要約】【課題】ネットワーク化パーソナル・ビデオ録画（「ＰＶＲ」）システムを提供すること。【解決手段】このシステムは、ネットワークを介して複数のクライアントを１つまたは複数のＰＶＲメディア・サーバに結合する。１つまたは複数のＰＶＲメディア・サーバは、テレビジョン信号を調整するためのテレビジョン・チューナを含む。記憶媒体は、ＰＶＲ機能を実施するためにテレビジョン信号をバッファリングする。例えば、ＰＶＲメディア・サーバはテレビジョン番組をクライアント用に録画する。クライアントはテレビジョン・チューナに割り当てられ、クライアントは割り当てられたチューナで受信したテレビジョン番組を表示する。ネットワークはバッファリングされたテレビジョン信号をクライアントに転送する。【選択図】図３
2014143758.tif 000002
【特許請求の範囲】
【請求項１】
明細書に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ録画の分野に関し、特にネットワーク化パーソナル・ビデオ録画システムに関する。
【背景技術】
【０００２】
通常、パーソナル・ビデオ・レコーダ（「ＰＶＲ」）には、ハード・ディスク・ドライブなどのストレージ・デバイスとテレビジョン入力が含まれる。ビデオ・カセット・レコーダと同様に、ＰＶＲシステムはユーザがテレビジョン番組を録画できるようにするものである。より詳細に説明すると、ＰＶＲシステムは、テレビジョン信号のデジタル表現をユーザが後で再生するためにストレージ・デバイスに格納する。ＰＶＲシステムは、また、ライブ・テレビジョンもバッファリングする。この用途では、テレビジョン信号はストレージ・デバイスに格納され、ユーザが視聴するためにテレビジョンに出力される。テレビジョンをバッファリングする機能により、ユーザは表面上ライブのテレビジョンを操作することができる。例えば、ユーザは、ライブのテレビジョン信号を一時停止、巻き戻し、および限られた範囲内で早送りすることができる。多数の機能および特徴により、ＰＶＲシステムはかなり普及してきている。しかし、これらのＰＶＲシステムは、通常、後に単一のテレビジョンで表示するために単一のテレビジョン信号で動作する。
【発明の概要】
【課題を解決するための手段】
【０００３】
したがって、１つまたは複数のテレビジョン入力をテレビジョン・ネットワークに効果的に統合するＰＶＲシステムの開発が望まれる。
ネットワーク化パーソナル・ビデオ録画（「ＰＶＲ」）システムは、ネットワークを介して複数のクライアントを１つまたは複数のＰＶＲメディア・サーバに結合するものである。ＰＶＲメディア・サーバは複数のテレビジョン信号を受信し、それぞれのテレビジョン信号を調整するためのテレビジョン・チューナを含む。一実施形態では、ＰＶＲメディア・サーバは、単一のＰＶＲメディア・サーバ内に配置された複数のチューナを備える。他の実施形態では、チューナは複数のＰＶＲメディア・サーバ内に配置される。記憶媒体は、ＰＶＲ機能を実施するためにテレビジョン信号をバッファリングする。テレビジョン・チューナにクライアントが割り当てられ、クライアントは割り当てられたチューナで受信されたテレビジョン番組を表示する。ネットワークは、バッファリングされたテレビジョン信号をクライアントに転送する。
一実施形態では、ＰＶＲメディア・サーバは少なくとも１つのテレビジョン番組をクライアント用に録画する。番組を録画するために、システムはクライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中にテレビジョン信号を記憶媒体に格納する。システムは、また、テレビジョン番組を録画するために使用可能なチューナを割り当てる際に生じる競合も解決する。一実施形態では、システムは、チューナの１つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは、テレビジョン信号を受信するためにそのチューナを割り当てる。使用可能でない場合、システムは潜在的に使用可能なチューナがあるかどうかを判別し、そのチューナに割り当てられたクライアントに対して、クライアントがテレビジョン番組の録画キャンセルを希望するかどうかを判別するために照会する。クライアントがキャンセルしない場合、システムは、テレビジョン番組の録画用にテレビジョン信号を受信するチューナを割り当てる。
【０００４】
ＰＶＲメディア・サーバは、メディア・ストリームに対して少なくとも２つの独立したバッファ位置を生成する。ＰＶＲメディア・サーバは、少なくとも１つのメディア・ストリームを受信するための少なくとも１つの入力と、少なくとも一部のメディア・ストリームを格納するための記憶媒体とを含む。ＰＶＲメディア・サーバは、メディア・ストリームを表示することが可能な複数のクライアントに（例えば、ネットワークを介して）結合される。ＰＶＲメディア・サーバは、第１の位置を使用して第１のクライアント用のメディア・ストリーム内の場所を識別し、第２の位置を使用して第２のクライアント用のメディア・ストリーム内の場所を識別する。位置は互いに独立している。メディア・ストリームは、第１の位置に基づいて第１のクライアントへ、および第２の位置に基づいて第２のクライアントへ、ネットワークを介して配信される。
ＰＶＲシステムは、複数のソースからのテレビジョン番組情報を集約する。ＰＶＲシステムは、少なくとも１つのＰＶＲメディア・サーバを含む。ネットワークは、複数のクライアントをＰＶＲメディア・サーバに結合する。ＰＶＲメディア・サーバは、複数のチューナでテレビジョン信号を調整する。テレビジョン信号は、記憶媒体にバッファリングされる。テレビジョン番組情報を集約するために、クライアントは、ネットワーク上のそれぞれのＰＶＲメディア・サーバに対してテレビジョン番組のリストの要求を生成する。これに応答して、ＰＶＲメディア・サーバは、それぞれのＰＶＲメディア・サーバを介して使用可能なテレビジョン番組のリストを伝送する。要求元のクライアントは、ＰＶＲシステム内で使用可能なテレビジョン番組情報のリストを集約する。
【０００５】
一実施形態では、ＰＶＲシステムは、複数のＰＶＲメディア・サーバ、複数のテレビジョン・チューナ、および／または複数のテレビジョン・サービス・プロバイダをまたがって、テレビジョン番組のリストを集約する。テレビジョン番組情報は、ライブ・テレビジョン、または以前に記憶媒体に格納されたテレビジョン番組の、いずれかを識別することができる。ＰＶＲシステムは、テレビジョン番組を集約して、情報をチャネル別、時間帯別、テレビジョン・ショーのジャンル別、テレビジョン・ショーの連続番組（ｅｐｉｓｏｄｅ）別、およびテレビジョン・ショーに登場する俳優別に情報を表示することができる。
ＰＶＲシステムは、複数のクライアントに関するリソースを管理する。システムは、少なくとも１つのＰＶＲメディア・サーバを含む。ＰＶＲメディア・サーバは、テレビジョン信号を調整するためのチューナと、テレビジョン信号をバッファリングするための記憶媒体とを含む。クライアントは、ネットワークを介してＰＶＲメディア・サーバに結合される。クライアントは、ＰＶＲシステム・サービスに関する要求を生成する。一実施形態では、クライアントは、テレビジョン番組を録画する旨およびバッファリングされたライブ・テレビジョンを視聴する旨の要求を生成する。システムは、要求に応答して、クライアントにサービスを配信するためにＰＶＲシステムのリソースを適宜クライアントに割り振る。例えば、クライアントがバッファリングされたライブ・テレビジョンを視聴したい場合、システムは、クライアントにチューナを割り当て、クライアント側でテレビジョン信号を再生するために、テレビジョン信号内のある場所を識別するためのバッファ位置を生成し、そのバッファ位置を使用してテレビジョン信号を配信する。クライアントがテレビジョン番組を録画したい場合、システムは、クライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中に記憶媒体にテレビジョン信号を格納する。
【０００６】
一実施形態では、システムはシステム・リソースに関する競合を解決するよう試みる。例えば、クライアントが選択したチャンネルでバッファリングされたライブ・テレビジョンを視聴する旨要求した場合、システムはチューナのうちの１つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは選択したチャンネルでテレビジョン信号を受信するためのチューナを割り当てる。使用可能でない場合、システムは、チューナの現在のチャンネルを選択されたチャンネルに変更するようにクライアントが希望するかどうかを判別するために、潜在的に使用可能なチューナに割り当てられたクライアントに照会することによって、ならびに、現在のチャンネルの変更をどのクライアントもキャンセルしない場合、選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てることによって、どのチューナが潜在的に使用可能であるかを判別する。他の実施形態では、システムは、テレビジョン番組を録画するために、チューナのうちの１つがテレビジョン信号を受信するために使用可能であるかどうかを判別することによって、割り当てリソースの競合を解決するように試みる。使用可能である場合、システムはテレビジョン信号を受信するためにチューナを割り当てる。使用可能でない場合、システムは、どのチューナが潜在的に使用可能であるかを判別し、クライアントがテレビジョン番組の録画のキャンセルを希望するかどうかを判別するために潜在的に使用可能なチューナに割り当てられたクライアントに照会し、テレビジョン番組の録画をキャンセルするクライアントがいない場合、テレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てる。
例えば、本発明は以下の項目を提供する。
（項目１）
システム（２００）であって、
テレビジョン信号を表示するための複数のクライアント（クライアント１〜クライアントｎ）と、
複数のテレビジョン信号を受信するために結合された、少なくとも１つのＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１〜ＰＶＲメディア・サーバ３）であって、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、
上記クライアント（クライアント１〜クライアントｎ）のうちの少なくとも２台をテレビジョン・チューナ（チューナ１〜チューナｎ）のうちの１つまたは複数に割り当てるように、上記テレビジョン信号のそれぞれを調整するための複数のテレビジョン・チューナ（チューナ１〜チューナｎ）と、
上記テレビジョン信号をバッファリングするために上記テレビジョン・チューナ（チューナ１〜チューナｎ）に結合された記憶媒体（２２０、２３０、または２４０）とを備える少なくとも１つのＰＶＲメディア・サーバと、
上記クライアント（クライアント１〜クライアントｎ）を上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１〜ＰＶＲメディア・サーバ３）に結合するため、および上記バッファリングされたテレビジョン信号を上記クライアント（クライアント１〜クライアントｎ）に転送するためのネットワーク（２１０）とを備えるシステム（２００）。
（項目２）
上記少なくとも１つのＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１〜ＰＶＲメディア・サーバ３）が、複数のチューナ（チューナ１〜チューナｎ）を備える単一のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）を備える、項目１に記載のシステム（２００）。
（項目３）
上記少なくとも１つのＰＶＲメディア・サーバが、複数のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１〜ＰＶＲメディア・サーバ３）に配置された複数のチューナ（チューナ１〜チューナｎ）を備える、項目１に記載のシステム（２００）。
（項目４）
さらに、上記記憶媒体（２２０、２３０、または２４０）が、上記テレビジョン番組を録画するように少なくとも１つのテレビジョン信号を格納するためのものである、項目１に記載のシステム（２００）。
（項目５）
さらに、上記システム（２００）が、チューナ（チューナ１〜チューナｎ）を上記クライアント（クライアント１〜クライアントｎ）に割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体（２２０、２３０、または２４０）上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体（２２０、２３０、または２４０）に格納するためのものである、項目４に記載のシステム（２００）。
（項目６）
さらに、上記システム（２００）が、上記テレビジョン信号に使用可能なチューナ（チューナ１〜チューナｎ）を割り当てるために競合を解決するためのものである、項目４に記載のシステム（２００）。
（項目７）
さらに、上記チューナ（チューナ１〜チューナｎ）のうちの１つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記テレビジョン信号を受信するために上記チューナ（チューナ１〜チューナｎ）を割り当てるためのものであり、
使用可能でない場合、
どのチューナ（チューナ１〜チューナｎ）が潜在的に使用可能であるかを判別するため、クライアント（クライアント１〜クライアントｎ）が上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナ（チューナ１〜チューナｎ）に割り当てられた上記クライアント（クライアント１〜クライアントｎ）に照会するため、および上記テレビジョン番組の録画をキャンセルするクライアント（クライアント１〜クライアントｎ）がない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナ（チューナ１〜チューナｎ）を割り当てるためのものである、項目６に記載のシステム（２００）。
（項目８）
さらに、第１のクライアント（クライアント１）に関して上記バッファリングされたテレビジョン信号のうちの選択された１つのうちのある場所を識別するために第１の位置を生成するため、および第２のクライアント（クライアント２）に関して上記選択されたバッファリングされたテレビジョン信号のうちのある場所を識別するために第２の位置を生成するためのものであり、上記第２の位置は上記第１の位置から独立している、項目４に記載のシステム（２００）。
（項目９）
パーソナル・ビデオ録画（「ＰＶＲ」）メディア・サーバ（ＰＶＲメディア・サーバ１）であって、
複数のテレビジョン信号を受信するための入力と、
上記テレビジョン信号のそれぞれを調整するための複数のチューナ（チューナ１〜チューナｎ）と、
上記テレビジョン信号をバッファリングするための記憶媒体（２２０）と、
ネットワーク（２１０）を介して複数のクライアント（クライアント１〜クライアントｎ）をＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）に結合するためのネットワーク・インタフェースとを備え、
上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記ＰＶＲシステムの少なくとも１つのサービスに関して少なくとも２台のクライアント（クライアント１〜クライアントｎ）のそれぞれから少なくとも１つの要求を受信するため、および上記サービスを上記クライアント（クライアント１〜クライアントｎ）に送達するために上記ＰＶＲシステム（ＰＶＲメディア・サーバ１）のリソースを上記クライアント（クライアント１〜クライアントｎ）に適宜割り振るためのものであるＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１０）
さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記テレビジョン番組を録画するためのチューナを割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体（２２０）上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体（２２０）に格納するためのものである、項目９に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１１）
さらに、上記入力が、バッファリングされたライブ・テレビジョンを視聴するための要求を受信するためのものであり、
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記バッファリングされたライブ・テレビジョンを視聴するためのチューナを割り当てるため、クライアント（クライアント１〜クライアントｎ）で上記テレビジョン信号を再生するために上記テレビジョン信号内のある場所を識別するためのバッファ位置を生成するため、および上記バッファ位置を使用して上記テレビジョン信号を送達するように、上記テレビジョン信号を上記クライアント（クライアント１〜クライアントｎ）に転送するためのものである、項目９に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１２）
さらに、上記入力が、特定のテレビジョン・サービス・プロバイダからテレビジョン信号を受信するための要求を受信するステップを含む、少なくとも１つの要求を受信するためものであり、
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記テレビジョン・サービス・プロバイダからテレビジョン信号を受信するために結合された１つまたは複数のチューナ（チューナ１〜チューナｎ）を識別するため、および識別された上記チューナ（チューナ１〜チューナｎ）からのチューナ（チューナ１）を上記クライアント（クライアント１〜クライアントｎ）に割り当てるためのものである、項目９に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１３）
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記クライアント（クライアント１〜クライアントｎ）へのリソースの割り当てにおける競合を解決するためのものである、項目９に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１４）
さらに、上記入力が、バッファリングされたライブ・テレビジョンを選択されたチャンネルで視聴するための要求を受信するためのものであり、
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記チューナ（チューナ１〜チューナｎ）のうちの１つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記選択されたチャンネルで上記テレビジョン信号を受信するために上記チューナ（チューナ１）を割り当てるためのものであり、
使用可能でない場合、
どのチューナ（チューナ１〜チューナｎ）が潜在的に使用可能であるかを判別するため、クライアント（クライアント１〜クライアントｎ）が上記チューナ（チューナ１〜チューナｎ）の現在のチャンネルを上記選択されたチャンネルに変更したいかどうかを判別するために潜在的に使用可能な上記チューナ（チューナ１〜チューナｎ）に割り当てられた上記クライアント（クライアント１〜クライアントｎ）に照会するため、および上記現在のチャンネルの変更をキャンセルするクライアント（クライアント１〜クライアントｎ）がない場合、上記選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナ（チューナ１〜チューナｎ）を割り当てるためのものである、項目１３に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１５）
さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、上記チューナ（チューナ１〜チューナｎ）のうちの１つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記テレビジョン信号を受信するために上記チューナ（チューナ１〜チューナｎ）を割り当てるためのものであり、
使用可能でない場合、
どのチューナ（チューナ１〜チューナｎ）が潜在的に使用可能であるかを判別するため、クライアント（クライアント１〜クライアントｎ）が上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナ（チューナ１〜チューナｎ）に割り当てられた上記クライアント（クライアント１〜クライアントｎ）に照会するため、および上記テレビジョン番組の録画をキャンセルするクライアント（クライアント１〜クライアントｎ）がない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナ（チューナ１〜チューナｎ）を割り当てるためのものである、項目１３に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
（項目１６）
さらに、上記ＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）が、クライアント（クライアント１〜クライアントｎ）に割り当てられていないチューナ（チューナ１〜チューナｎ）に対して完全にフリーのチューナ状態を割り当てるため、クライアント（クライアント１〜クライアントｎ）に割り当てられているが現在はスケジューリングされた録画を実行していないチューナ（チューナ１〜チューナｎ）に対しておそらくフリーのチューナ状態を割り当てるため、および現在スケジューリングされた録画を実行しているチューナ（チューナ１〜チューナｎ）に対してビジーのチューナ状態を割り当てるためのものである、項目１３に記載のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１）。
【図面の簡単な説明】
【０００７】
【図１】本発明のネットワーク化ＰＶＲシステムに関する一実施形態を示すブロック図である。
【図２】本発明のネットワーク化ＰＶＲシステムに関する一実施形態を示すブロック図である。
【図３】ネットワーク化ＰＶＲシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。
【図４】ネットワーク化ＰＶＲシステムにおけるバッファに関する一実施形態を示すブロック図である。
【図５】ネットワーク化ＰＶＲシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。
【図６】本発明のネットワーク化ＰＶＲシステムを使用するための一実施形態を示すフローチャートである。
【図７】本発明のネットワーク化ＰＶＲシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。
【図８】番組を録画するための一実施形態を示すフローチャートである。
【図９】本発明の一実施形態に従ったメディアのクライアント・デバイス集約を示す図である。
【図１０】ネットワークを介したクライアント・メディア集約に関する一実施形態を示すフローチャートである。
【図１１】ネットワーク化ＰＶＲシステム・デバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。
【図１２】ネットワーク化ＰＶＲシステムに関するホーム・ネットワークの一例を示すブロック図である。
【図１３】ネットワーク化ＰＶＲシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。
【図１４】ネットワーク化ＰＶＲシステムの要素に関するデータ・モデルの一実施形態を示すブロック図である。
【図１５】ネットワーク化ＰＶＲシステムを介したデータ・ストアへのアクセスの一実施形態を示すブロック図である。
【発明を実施するための形態】
【０００８】
図１は、本発明のネットワーク化ＰＶＲシステムに関する一実施形態を示すブロック図である。この実施形態では、ホーム・エンターテイメント・システムが「ｎ」台のクライアントおよび「ｍ」台のパーソナル・ビデオ録画（「ＰＶＲ」）メディア・サーバを含む（すなわち、「ｎ」および「ｍ」は１より大きいかまたは１に等しい任意の整数値である）。本明細書で使用するクライアントとは、メディアを再生する任意のデバイスのことである。例えば、クライアントがビデオおよびライブ・テレビジョンを再生するためのテレビジョンを有することができる。本明細書で使用するサーバとは、メディアを格納または獲得する任意のデバイスを意味する。ＰＶＲメディア・サーバとは、テレビジョン信号を獲得し、クライアントが視聴するためにテレビジョン信号をバッファリングするデバイスを含む、ビデオをネットワークに配信する任意のデバイスを意味する。例えば、ＰＶＲメディア・サーバは、特にコストを最低限に抑えるように設計されたストレージを備えたデバイスを備えることができるか、またはＰＶＲメディア・サーバはパーソナル・コンピュータを備えることができる。
図１に示すように、テレビジョン信号を含む様々なタイプのメディアが各ＰＶＲメディア・サーバに入力される。ＰＶＲメディア・サーバは、クライアントがアクセスするためのオーディオおよびビデオを含むメディアを格納することができる。さらに、ＰＶＲメディア・サーバは、ライブ・テレビジョンをバッファリングする。各クライアント（例えば、クライアント１、クライアント２、およびクライアントｎ）は、ネットワーク１１０を介してＰＶＲメディア・サーバ上に格納またはバッファリングされたメディアにアクセスすることができる。ネットワーク１１０は、無線ネットワークを含む任意のタイプのネットワークを有することができる。例えば、ネットワーク１１０は、ＩＥＥＥ  ８０２．３、カテゴリ５のイーサネット（登録商標）１０／１００、ＨＰＮＡ、Ｈｏｍｅ  Ｐｌｕｇ、ＩＥＥＥ  ８０２．１１ｘ、ＩＥＥＥ  １３９４、およびＵＳＢ  １．１／２．０などの規格に従って実施されるネットワークを有することができる。
図１に示すネットワーク化システム１００は、住宅内で実施することができる。例えば、各クライアントは、格納されたビデオおよびテレビジョンを視聴するためのテレビジョンで構成することができる。こうしたホーム・システムの一例では、居間に配置されたクライアント・テレビジョンと、寝室に配置された１つまたは複数のクライアント・テレビジョンと、台所に配置されたクライアント・テレビジョンを含むことができる。一般に、システム１００は、いずれかのＰＶＲメディア・サーバを介して格納または獲得されたメディア（例えば、ビデオ）を任意のクライアントが再生できるようにする。ＰＶＲメディア・サーバは、様々なソースからテレビジョン信号を獲得するように構成できる。例えば、ＰＶＲメディア・サーバ１は衛星テレビジョン・システムからテレビジョン信号を獲得し、一方、ＰＶＲメディア・サーバ２は、ケーブル・テレビジョン・システムからテレビジョン信号を獲得することができる。ＰＶＲメディア・サーバは、永続ストレージ（例えば、ハード・ディスク・ドライブ）と少なくとも１つのテレビジョン・チューナとを含む。それ故、システム１００は、任意のＰＶＲメディア・サーバ上に格納された任意のチューナまたはメディアからのメディアに、任意のクライアントがアクセスできるようにする。
【０００９】
図２は、本発明のネットワーク化ＰＶＲシステムに関する一実施形態を示すブロック図である。図１のシステム１００と同様に、システム２００は、少なくとも２台のテレビジョンを含む「ｎ」台のクライアントを含む。このシステム例では、３台のＰＶＲメディア・サーバ（ＰＶＲメディア・サーバ１、ＰＶＲメディア・サーバ２、およびＰＶＲメディア・サーバ３）がある。クライアントはネットワーク２１０を介してメディア（例えば、ビデオ）にアクセスする。各ＰＶＲメディア・サーバは、ストレージ（２２０、２３０、および２４０）と、「ｎ」台のチューナ（すなわち、「ｎ」は１より大きいかまたは１に等しい任意の整数を表す）とを含む。ＰＶＲメディア・サーバはテレビジョン信号を受信する。この例では、ＰＶＲメディア・サーバ１およびＰＶＲメディア・サーバ２はテレビジョン・サービス・プロバイダ１から信号を受信し、ＰＶＲメディア・サーバ３はテレビジョン・サービス・プロバイダ２からテレビジョン信号を受信する。この構成の下では、任意のクライアント（すなわち、クライアント１、クライアント２、およびクライアントｎ）が、任意のチューナ（すなわち、ＰＶＲメディア・サーバ１、ＰＶＲメディア・サーバ２、およびＰＶＲメディア・サーバ３からの「ｎ」台のチューナのうちの任意の１台）によって復調された出力ビデオ信号を受信することができる。
【００１０】
図３は、ネットワーク化ＰＶＲシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。あらゆるチューナが連続するリング・バッファを有する。一実施形態では、リング・バッファのサイズはフレキシブルであり、構成可能である。例えば、リング・バッファは６０分のテレビジョンを格納することができる。次に各クライアントは、システム内で使用可能なあらゆるリング・バッファおよび格納済みビデオに関する独立したバッファ位置を有する。図３は、「ｎ」台のチューナを備えたネットワーク化ＰＶＲシステムの一例を示す。「ｎ」台のチューナは、１台または複数台のＰＶＲメディア・サーバと共に実施可能である。図３に示すように、各チューナの出力が対応するバッファ（例えば、リング・バッファ）に入力される。各クライアント、すなわちクライアント１〜ｎは、各チューナ−バッファのペアについて関連するバッファ位置を有する。具体的には、図３に示すように、クライアント１はチューナ１、チューナ２、およびチューナｎに関するバッファ位置を有する。同様に、クライアントｎもチューナ１〜ｎに関する独立したバッファ位置を有する。一般に、バッファ位置は、ビデオ内のある位置またはチューナ・バッファ内のある位置を指すポインタを有することができる。図３での各チューナ・バッファ位置はタイムラインとして示され、ここで開始および終了ライン・セグメントはバッファの長さを表し、中央ライン・セグメントはクライアントの現在のバッファ位置を表す。
ネットワーク化ＰＶＲシステムにおけるバッファは、１つの書き込みタップおよび複数の読み取りタップを含む。図４は、ネットワーク化ＰＶＲシステムにおけるバッファに関する一実施形態を示すブロック図である。チューナ４１０は、バッファ４２０に格納するためのデータ（例えば、ＭＰＥＧ符号化ビデオ）を出力する。一実施形態では、バッファはハード・ディスク・ドライブを有する。チューナ４１０は、ファイル・システムを使用してハード・ディスク・ドライブに書き込むことができる。他の実施形態では、チューナ４１０はハード・ディスク・ドライブ上で直接書き込み操作を実行することができる。バッファは複数の読み取りタップを有する。図４に示された例では、バッファは「ｎ」個の読み取りタップを有する（すなわち、「ｎ」は１より大きいかまたは１に等しい任意の整数を表す）。各読み取りタップは独立したバッファ位置をサポートする。例えば、読み取りタップ１はチューナ・バッファ位置１をサポートし、読み取りタップ２はチューナ・バッファ位置２をサポートし、読み取りタップｎはチューナ・バッファ位置ｎをサポートする。ソフトウェアの一実施形態では、ソフトウェアは１ファイル上で複数の読み取り操作を実行し、複数のタップを生成する。
一実施形態では、システムは読み取りおよび書き込みバッファ・タップの相対的な位置で境界条件を設定する。１つの境界条件では、読み取りタップが書き込みタップよりもバッファ長さを超えて遅れないことを要求する。例えば、クライアントは、バッファ済みテレビジョン番組を第１のバッファ位置（すなわち、読み取りタップ）を使用して視聴することができる。この例では、クライアントはテレビジョン番組の視聴を一時停止することができる。この場合、第１のバッファ位置は一定である（すなわち、第１のバッファ位置は進行しない）。しかし、テレビジョン信号が受信されるにつれて書き込み位置は進行する。それ故、書き込みバッファ位置と読み取りバッファ位置との間の距離は増加する。読み取りバッファ位置と書き込みバッファ位置との間の距離がバッファの長さを超えた場合、イベントが生成される。イベントへの応答は、読み取りバッファ位置の進行とすることができる。また他のシナリオでは、読み取りバッファ位置が対応する書き込みバッファ位置まで前進した場合、読み取りバッファ位置が書き込みバッファ位置の場所になる（すなわち、読み取りバッファ位置は書き込みバッファ位置を越えて進行しない）。例えば、クライアントは現在の書き込み位置までバッファ・テレビジョン番組を早送りすることができる。
【００１１】
図５は、ネットワーク化ＰＶＲシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。最初にユーザは、ライブＴＶを視聴するため、またはＰＶＲメディア・サーバからメディアを選択するために、クライアント・テレビジョン上に表示されたメニュー・オプションを受信する（図５、ブロック５２０）。クライアントはライブ・テレビジョンの視聴を選択しないと、ＰＶＲメディア・サーバに格納されたメディアを選択する（図５、ブロック５２０および５３０）。次に、以下で論じるように、クライアントはシステムを介してバッファ位置を設定する。ユーザがライブ・テレビジョンの視聴を選択すると、クライアントはテレビジョン・サービス・プロバイダを選択する（図５、ブロック５１０）。クライアントが使用できるテレビジョン・サービス・プロバイダが１つだけの場合、システムはブロック５１０の機能を省略する。一実施形態では、サービス・プロバイダの選択はセットアップ・モード時に構成することができる。例えば、居間のテレビジョンは、衛星システムからテレビジョン信号を常時受信するように構成することができる。システムは、クライアント用のチューナを選択する（図５、ブロック５４０）。一実施形態では、システムは使用可能なチューナをクライアント・テレビジョンに自動的に割り振る。
ユーザは、クライアントで番組を視聴する（図５、ブロック５８０）。ユーザが番組を変更したい場合、クライアントは、クライアントで表示される電子番組ガイドから番組を選択する（図５、ブロック５５５および５５０）。ユーザが番組を変更したくない場合、ユーザは潜在的にバッファ位置を設定する。ユーザが既存のバッファ位置を有し、番組を既存のバッファ位置に設定したい場合、ユーザはメニューを介して既存のバッファ位置を選択する（図５、ブロック５７０および５７２）。クライアントが既存のバッファ位置を有していない場合、システムはファイル／メディアの先頭にバッファ位置を設定する（図５、ブロック５７０および５７４）。ユーザは、バッファ位置を既存のバッファ位置に変更したい場合がある（図５、ブロック５６０）。ユーザが番組を既存のバッファ位置に設定したい場合、ユーザはシステムを介してバッファ位置を変更する（ブロック５６５、図６を参照）。例えば、ユーザはすでに進行中の番組を選択する場合がある。このシナリオの場合、ユーザは番組を最初から視聴したい場合がある。これを実施する場合、ユーザは番組の最初から開始するために新しいバッファ位置を選択する。次に、ユーザはクライアントで番組を視聴する（図５、ブロック５８０）。
【００１２】
一実施形態では、ＰＶＲメディア・サーバは、電子番組ガイド（「ＥＰＧ」）と呼ばれる番組データをＥＰＧコンテンツ・プロバイダから獲得する。ＥＰＧデータ・セットは、対応するテレビジョン・サービス・プロバイダから入手可能なチャンネルおよび時間を含む番組のリストを提供する。通常、ＥＰＧデータはサービスごとにＥＰＧコンテンツ・プロバイダから提供される。ＰＶＲメディア・サーバは、ＥＰＧコンテンツ・プロバイダに接触して更新された番組データを獲得する。ＰＶＲシステムは、ＥＰＧデータを利用して番組のスケジューリングならびにクライアントへの番組メニューの提供を行う。それ故、この実施形態では、ＰＶＲシステム・スケジューラはＥＰＧデータ・セットに特有のものである。しかし、家庭用メディア・ネットワーク化システムは、異なるＥＰＧコンテンツ・プロバイダを利用する、したがって異なるＥＰＧデータ・セットを使用して動作するサーバを含むことができる。この実施形態では、ユーザは基礎となるＥＰＧデータ・セットに基づいてチャンネル選択メニューを視聴するだけである。それ故、クライアントで提示されるメニューは基礎となるＰＶＲメディア・サーバに依存する。
一実施形態では、ＰＶＲシステムは、クライアントがテレビジョン・チューナの概念を理解する必要なしにテレビ番組を選択できるようにするものである。例えば、２台のクライアントが同じチューナから信号を受信している場合がある。このシナリオでは、クライアントのうちの一方が、他方のクライアントが現在のプログラムを視聴できることに影響を与えずに、異なる番組を視聴するためにチャンネルを変更したい場合がある。ＰＶＲシステムは、ユーザが追加の番組を選択できるようにするメニューを提供する。一実施形態では、番組メニューは特定のテレビジョン・サービス・プロバイダおよび対応するＥＰＧコンテンツ・プロバイダに基づく。
一実施形態では、ユーザはテレビジョン・サービス・プロバイダ−ＥＰＧコンテンツ・データ・セット内の番組を選択する。クライアントは、好ましいテレビジョン・サービス・プロバイダを自動的に選択するようにシステムをセットアップすることができる。ユーザが新しいチューナを必要とする操作を実行する場合、ユーザは以前に選択されたＥＰＧコンテンツ・プロバイダから番組を選択する。ユーザが新しい番組を選択した後、システムはユーザにチューナを割り振る。このシナリオでは、ユーザはチューナの概念を理解する必要がない。代わりに、クライアントは番組を選択するか、またはチューナの使用権を獲得するためにイベントを取り消すのみである。チューナがユーザへの割り振りに使用できない場合、システムは所定の「競合管理」手順を介して競合を解決する。ネットワーク化ＰＶＲシステムで発生する一定の競合を解決するための一実施形態について、以下でより詳細に説明する。
【００１３】
ネットワーク化ＰＶＲシステムは、ユーザが異なるクライアントからバッファ位置を選択できるようにする。例えば、第１のクライアント（例えば、居間のテレビジョン）で番組を視聴しているユーザが別の部屋に行って、第２のクライアント（例えば、台所のテレビジョン）から第１のクライアントでの視聴が終わったその番組を選択する場合がある。このシナリオでは、ユーザは居間のクライアントで再生されている番組を、その後台所のクライアントで視聴するために一時停止することができる。図６は、本発明のネットワーク化ＰＶＲシステムを使用するための一実施形態を示すフローチャートである。このシナリオでは、ユーザはクライアントから視聴するための番組を選択する（図６、ブロック６１０）。その後ユーザは、その番組を異なるクライアントから選択したい場合がある。これを実施するために、ユーザは、選択された番組にチャンネルが合わされた他のクライアントを決定するために、ＰＶＲシステムに照会する（図６、ブロック６２０）。他のクライアントのチャンネルが選択された番組に合わされた場合、システムはその番組にチャンネルが合わされたクライアントのリストを表示する（図６、ブロック６３０および６４０）。上記のシナリオでは、ユーザは、居間で一時停止された番組を選択するように、台所のクライアントからＰＶＲシステムに照会する場合がある。一実施形態では、ユーザは、「選択された番組を誰が視聴しているか」を決定するためにあるクライアントからメニュー項目を引き出す。これに応答して、ＰＶＲシステムは、選択された番組を現在再生しているクライアントの場所のメニューを表示する。上記の例の場合、ＰＶＲシステムは、選択された番組が現在居間で再生されていることを識別するために「居間のクライアント」を表示する。別の方法として、選択された番組にチャンネルが合わされているクライアントが他にない場合、バッファ位置はプログラムの先頭に設定される（図６、ブロック６３０および６５５）。
ユーザが他のクライアントのバッファ位置を選択したい場合、ＰＶＲシステムは、ユーザのクライアントのバッファ位置として使用するために選択されたクライアントからバッファ位置をコピーする（図６、ブロック６５０および６６０）。上記の例の場合、台所のクライアントにいるユーザは、一時停止された番組の位置で選択された番組をピックアップするために、居間のクライアントのバッファ位置を選択する。別の方法として、ユーザは選択された番組を番組の先頭から視聴したい場合がある（図６、ブロック６５０および６５５）。一実施形態では、ＰＶＲシステムは、２台のクライアントで同時に再生するために２つのバッファ位置を同期させることができる。例えば、ユーザは、家の中でより広い領域にわたって音楽を流すために、２台の異なるクライアントで音楽ビデオを再生したい場合がある。
【００１４】
一実施形態では、ＰＶＲシステムはテレビジョン・チューナに状態を割り当てる。この実施形態では、テレビジョン・チューナは、ビジー（ｂｕｓｙ）、おそらくフリー（ｍａｙｂｅ  ｆｒｅｅ）、および完全にフリー（ｔｏｔａｌｌｙ  ｆｒｅｅ）の状態のうちの１つを含む。ビジー状態とは、現在サーバがチューナを使用して番組を録画中であることを示す。おそらくフリー状態は、クライアントがチューナを使用して番組を視聴中である可能性があることを示す。例えば、ユーザは、クライアントでプログラムを視聴するように選択する場合がある。その後、ＰＶＲシステムは、ユーザがまだその番組を視聴しているかどうかを実際には知らない（例えば、ユーザがモニタの電源をオフにしたばかりの可能性があるため）。このシナリオでは、チューナは「おそらくフリー」と指定される。チューナが「完全にフリー」と指定された場合、チューナはスケジューラによって割り振られておらず、クライアントはチューナを使用して番組を視聴していなかったことになる。以下で詳細に説明するように、チューナの状態を使用してチューナが割り振られる。
一実施形態では、ＰＶＲシステムはスケジューラを利用する。一般に、スケジューラはシステムにとって「しなければならないことのリスト」としての役割を果たす。例えば、スケジューラは、システム・ユーザが選択した番組を録画するためのプロセスを実行する。番組は録画するために個々に選択するか、または予約申し込みに基づいて録画するためにスケジューリングすることができる。スケジューラは、番組を録画するためのリソースを割り振るために競合管理の問題を解決する。
【００１５】
一実施形態では、ＰＶＲシステムは「予約申し込み」をサポートする。一般に、予約申し込みでは、システムは選択された番組の放送を繰り返し録画する。予約申し込みを使用すれば、ユーザは予約申し込みをする番組を選択するだけで、その番組のすべての放送が録画される。一実施形態では、ＰＶＲメディア・サーバのスケジューラが予約申し込みを実行するためのイベントを識別する。例えば、ユーザは、テレビジョン・ショー「Ｒｅａｌｉｔｙ  Ｔｅｌｅｖｉｓｉｏｎ」の予約申し込みを選択することができる。ＰＶＲメディア・サーバのスケジューラは、ＥＰＧデータ・セットからテレビジョン・ショー「Ｒｅａｌｉｔｙ  Ｔｅｌｅｖｉｓｉｏｎ」のすべての固有の連続番組を決定する。スケジューラはイベントを録画するために、識別されたそれぞれの固有の連続番組について１イベントのイベントを生成する。一実施形態では、予約申し込みは単一のＰＶＲメディア・サーバ内でスケジューリングされる。しかし、他の実施形態では、予約申し込みを他のＰＶＲメディア・サーバに送る（ｐｕｓｈ）ことができる。例えば、第１のＰＶＲメディア・サーバのスケジューラが予約申し込みに関連するイベントを含むことができる。第１のＰＶＲメディア・サーバがその予約申し込みの１つまたは複数のイベントで競合する場合、予約申し込み全体のイベントを第２のＰＶＲメディア・サーバに割り当てることができる。この場合、第２のＰＶＲメディア・サーバのスケジューラが（例えば、第１のＰＶＲメディア・サーバ用のスケジューラと同じ方法で）予約申し込みを実行する。例えば、第１のＰＶＲメディア・サーバのスケジューラからのイベントを第２のＰＶＲメディア・サーバのスケジューラに転送することができる。さらに、第２のＰＶＲメディア・サーバのスケジューラは、その予約申し込みに関する今後のイベントのスケジューリング・タスクも想定することができる。また、あるＰＶＲメディア・サーバがネットワークから除去された場合、複数のＰＶＲメディア・サーバ間で予約申し込みを送ることができる。
図７は、本発明のネットワーク化ＰＶＲシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。第１に、ユーザはメニューを介して録画する番組を個々に、または予約申し込みによって選択する（図７、ブロック７１０）。これに応答して、システムはイベントの時間帯中に使用可能なチューナを選択する（図７、ブロック７２０）。さらに、システムは、スケジューリングされた番組に対して記憶媒体上の記憶域を割り振る（図７、ブロック７３０）。システム内でイベントの「再スケジューリング」が発生すると、使用可能なチューナおよび使用可能な記憶域の両方を割り振るためにプロセスが繰り返される（図７、ブロック７４０、７２０、および７３０）。一実施形態では、電子番組ガイドデータがＰＶＲメディア・サーバにダウンロードされた場合、「再スケジューリング」イベントが発生する。再スケジューリング・イベントは、ユーザがスケジューラから項目を削除した場合にも発生する。例えば、ユーザは、番組を録画するために、前の予約申し込みから別の番組を以前にキャンセルしたイベントを削除する場合がある。このシナリオでは、ユーザが競合する番組をキャンセルしたため、システムは前の予約申し込みを再スケジューリングする。
スケジューリングされたイベントをセットアップする時間（例えば、スケジューリングされたイベントの時間より前の時間）に達すると、システムはスケジューリングされたイベントの録画を開始するためのプロセスを始動する（図７、ブロック７５０および７６０）。チューナ・リソースの競合解決を含む、スケジューリングされたイベントの録画に関する一実施形態について、図８の説明と共に以下で詳細に説明する。イベントがキャンセルされると、システムはチューナを解放し、キャンセルされたイベントに関する記憶媒体上のスペースを割り振り解除する（図７、ブロック７７０および７７５）。またスケジューラは、その時間帯を埋めるために何らかの新しい割り振りの決定を実行する（図７、ブロック７８５）。一実施形態では、システムはユーザがイベントをキャンセルする代わりに再スケジューリングもできるようにする。別の方法として、イベントがキャンセルされない場合、スケジューリングされたイベントが録画される（図７、ブロック７７０および７８０）。
【００１６】
一実施形態では、ＰＶＲシステムはチューナを使用するすべてのクライアントに対して等しい所有権を割り当てる。例えば、３台のクライアントが同じチューナを使用することが可能である（すなわち、３台のクライアントすべてが、潜在的には番組の異なる部分であるが同じ番組を視聴している）。１台のクライアントがチューナのチャンネルを変更すると、チューナは新しいチャンネルにセットされ、その結果３台のクライアントすべてのチャンネルが新しい番組に合わされる。
ＰＶＲシステムは、ネットワーク化ＰＶＲシステム内で生じる可能性のあるいくつかの競合を解決する（すなわち、「競合管理」と呼ばれる）。ネットワーク化ＰＶＲシステム内で生じる競合の一部には、新しい番組を録画する不適切な記憶域、スケジューリングされた番組を録画するには不十分な数のチューナ、スケジューリングされたイベントを録画する場合のチャンネル変更要求を含む一貫性のない入力、およびイベントを録画するには不十分な数のチューナが含まれる。
一実施形態では、スケジューリングされたイベントを録画するのに十分な記憶域がＰＶＲメディア・サーバにない場合、システムは録画に先立って自動的にコンテンツを削除する。コンテンツ削除の優先順位を割り当てるための一実施形態について、以下でより詳細に説明する。
図８は、番組を録画するための一実施形態を示すフローチャートである。スケジューリングされたイベントの時間の直前に、ＰＶＲシステムはチューナが使用可能かどうかを判別する（図８、ブロック８１０および８２０）。チューナが使用可能な（すなわち、チューナが「完全にフリー」と指定された）場合、チューナは番組を録画するように割り当てられる（図８、ブロック８２０および８８０）。ＰＶＲメディア・サーバ上で「完全にフリー」と指定されたチューナがない場合、システムは、チューナを備えた何らかの他のＰＶＲメディア・サーバがあるかどうかを判別する（図８、ブロック８２２）。ある場合は、他のＰＶＲメディア・サーバが選択され、システムは選択されたＰＶＲメディア・サーバが使用可能なチューナを有するかどうかを判別する（図８、ブロック８２５および８２０）。このプロセスは、ネットワーク上のすべてのＰＶＲメディア・サーバに対して反復される。
【００１７】
使用可能なチューナがない（すなわち、ネットワーク上のすべてのチューナが「ビジー」または「おそらくフリー」として指定されている）場合、システムは、クライアントがスケジュールされたイベントをキャンセルしたいかどうかを判別するために、チューナに割り振られたかまたは潜在的に割り振られたクライアントに照会する（図８、ブロック８３０）。例えば、一実施形態では、クライアントに照会するために、ＰＶＲシステムは各クライアントにメニュー画面を表示して、システムがスケジューリングされたイベントを進行すべきかどうかを尋ねる。チューナに割り振られたすべてのクライアントがこの照会を受け取る。例えば、スクリーン画面で「システムは時間Ｙに番組Ｘを録画するようにチャンネルを変更する必要がありますが、よろしいですか？」と尋ねる場合がある。この照会に対してすべてのクライアントが「はい」と応答した場合、システムはスケジューリングされたイベントの録画に進む。所定の時間内にこの照会に回答しなかったクライアントがあった場合も、システムはスケジューリングされたイベントの録画に進む。
ＰＶＲシステムは、クライアントから回答を取り出す（図８、ブロック８４０）。クライアントのいずれか１つがイベントをキャンセルした場合、システムは、スケジューリングされたイベントを記録するために割り振るチューナを備えた追加のＰＶＲメディア・サーバがあるかどうかを判別する（図８、ブロック８５０および８６０）。追加のＰＶＲメディア・サーバがない場合、スケジューリングされたイベントはキャンセルされる（図８、ブロック８６０および８７０）。別の方法として、システム内に追加のＰＶＲメディア・サーバがある場合、使用可能なチューナを割り振るためのプロセスが反復される（図８、ブロック８６０、８２０、８３０、８４０、および８５０）。チューナを割り当てるためのこのプロセスは、システム内のすべてのＰＶＲメディア・サーバについて反復される。
【００１８】
図８のプロセスは、スケジューリングされた複数のイベントに対して同時にチューナを割り振るために使用することができる。例えば、３つの番組を、あるインスタンスで適時に録画するようにスケジューリングすることができる。このプロセスは各番組について反復される。例えば、クライアントが第１のスケジューリングされた番組をキャンセルした場合、その番組は、システム内に他の使用可能なＰＶＲメディア・サーバがあればこれに送られる。その後、すべての関連するクライアントが第２の番組のスケジューリングに関する別の照会を受け取る。ここでも、いずれかのクライアントが第２の番組をキャンセルした場合、第２の番組のスケジューリングは潜在的に他のＰＶＲメディア・サーバに移行される。
一実施形態では、ＰＶＲネットワーク・システムはユーザに対して「チューナをロックする」ための機能を有する。例えば、ユーザが数時間にわたるＴＶショー（例えば、野球の試合、アカデミー賞など）を視聴している場合、ユーザは、以前にスケジューリングされたイベントにチャンネルを変更するための複数の要求を受け取りたくない可能性がある。一実施形態では、ユーザはチャンネルを変更するための照会を迂回するように、システム内のオプションを選択する可能性がある。実行可能になった場合、システムは、ユーザの番組中にチューナ・リソースの競合を解決するためにチューナを再割り振りするための照会を表示しない。
一実施形態では、ネットワーク化ＰＶＲシステムが高度な競合管理を含む。一般に、高度な競合管理は、スケジューリングされたイベントをキャンセルするためにユーザに照会する以外の手段を使用して、ユーザが競合を解決するのを補助する。例えば、高度な競合管理は、同一のテレビジョン連続番組の代替のプレゼンテーションを自動的に探し出し、競合が生じない場合はシステムがその番組を録画するためのオプションをユーザに提示することができる。それ故、ユーザが２つのショーを同時に録画しようとすると、システムは「４チャンネルで午後９時に録画するように設定した「お気に入りのショー」の連続番組が、７チャンネルの午後１１時に録画するように設定されています」という旨のメッセージを戻すことができる。
ユーザは、スケジューリングされたイベントを現在録画しているチューナのチャンネルを変更するよう試みることができる。このシナリオでは、システムはスケジューリングされたイベントをキャンセルするようにユーザに指示する。またユーザは、システム内で使用可能なチューナが他にない場合に、番組を録画するよう試みることもできる。このシナリオでは、ユーザはネットワーク全体からキャンセルするためのイベントのリストを受け取る。例えば、システムは３台のチューナを有している場合がある。第１のチューナは第１のスケジューリングされたイベントを録画し、第２のチューナは第２のスケジューリングされたイベントを録画し、第３のチューナは少なくとも１台のクライアントが使用するために割り振ることができる。ユーザが別の番組を録画しようと試みると、システムは３台のチューナに現在割り振られている３つの番組を表示する。依然として新しい番組を録画したい場合、ユーザはこれに応答して、表示されたイベントのうちの１つをキャンセルする。
【００１９】
一実施形態では、ＰＶＲシステムは「削除マネージャ」を含む。一般に、削除マネージャは、ＰＶＲメディア・サーバに格納されたコンテンツを削除する優先順位を決定する。一実施形態では、削除マネージャは日付ベースの削除システムを利用する。日付ベースの削除システムでは、第１の録画された番組が削除用にスケジューリングされた第１の番組でもある。所定の時間が経過すると、その番組が削除可能であることをユーザに伝えるために、メニュー上の項目にタグが付けられる。追加のアイコンを使用して、潜在的な番組削除に関してユーザに伝えることもできる。例えば、別のアイコンを使用してその項目が削除可能であることをユーザに伝えることが可能であり、異なるアイコンを使用してその番組が削除されない予定であることをユーザに伝えることも可能である。
一実施形態では、削除マネージャは、「先（ｓｏｏｎｅｒ）」または「後（ｌａｔｅｒ）」フラグに基づく優先順位システムを使用する。このシステムでは、ユーザはコンテンツに「先」または「後」に削除するマークを付ける。削除マネージャはコンテンツを分析して、「先」のマークが付けられた項目を「後」のマークが付けられた項目よりも先に削除する。このシステムは、前述の日付ベースの削除システムと共に使用することができる。他の実施形態では、ユーザは範囲（例えば、１〜５）に従った削除の優先順位でコンテンツをランク付けする。
【００２０】
クライアント・デバイスの集約
ネットワーク化ＰＶＲシステムは、「ピアツーピア」アーキテクチャを利用する。メディア・プラットフォーム上のすべてのクライアント・デバイスが、複数のクライアント・デバイスおよび複数のＰＶＲメディア・サーバを含む、他のデバイスと通信できる機能を有する。このアーキテクチャでは、デバイスがテレビジョン信号を含むネットワーク上で入手可能なすべてのメディアを取得すること、およびそのデバイス上で表示するためにメディアを集約することが可能である。
クライアント・デバイスまたはサーバ・デバイスを含むデバイスは、いつでもホーム・ネットワークに入ることおよび／またはホーム・ネットワークから出ること、ならびに依然としてすべての機能を維持することが可能である。それ故、あるデバイスの電源がオフになった場合、そのデバイスがホーム・ネットワーク上でもはや使用可能でないことを他のデバイスが自動的に認識する。新しいデバイスが追加されるかまたはポータブル・デバイスがネットワークに加わった場合、他のノードはその新しいデバイスを自動的に認識する。他のノードは、追加されたデバイス上のサービスを利用することができる。新しいＰＶＲメディア・サーバも、少なくとも１つの他のＰＶＲメディア・サーバが現在ネットワーク上にある限りは、新しいデバイスを自動的に認識することができる。
図９は、本発明の一実施形態に従ったテレビジョン信号のクライアント・デバイス集約を示す図である。この例では、３台のＰＶＲメディア・サーバ（９１０、９２０、および９３０）がホーム・ネットワーク９４０に結合される。図９に示すように、各ＰＶＲメディア・サーバは少なくとも１台のチューナを有する。例えば、ＰＶＲメディア・サーバ９３０は３台のチューナ（９３２、９３４、および９３６）を有する。さらに、ＰＶＲメディア・サーバは様々なメディア・アイテムを格納することができる（例えば、ビデオ、オーディオ、写真など）。またこの例では、クライアント・デバイス９５０はホーム・メディア・ネットワーク９４０上に常駐する。クライアント・デバイス９５０はテレビジョンを備えることができる。
発見プロセスが完了すると、クライアント・デバイス９５０はホーム・ネットワーク９４０上で入手可能な番組を決定する。その結果、クライアント・デバイス９５０は、クライアント・デバイス９５０で使用するためにすべてのチューナからの番組を集約する。図９に示すように、クライアント・デバイス９５０はＰＶＲメディア・サーバ９１０、９２０、および９３０を介して入手可能なすべての番組を集約する。
【００２１】
ネットワーク化ＰＶＲシステムは、すべての番組を固有として識別する機能を提供する。例えば、「コメディ」のジャンルに分類されたすべての番組がそのようなものと認識され、システムはそれに応じて表示する。同じ名前の２人以上の俳優が存在する場合がある。ネットワーク化ＰＶＲシステムは、システムが固有の番組を区別できるようにする分散型データベースを利用する。それ故、２つの異なるテレビジョン・サービス・プロバイダにわたって１つの番組が提供されている場合、クライアント・デバイスを集約する際に、クライアント・デバイスは単一の番組のみを認識する。図９の例では、映画「アメリカ最高の映画」はＰＶＲメディア・サーバ９２０およびＰＶＲメディア・サーバ９１０の両方を介して提供される。クライアントの番組集約の際、クライアント・デバイス９５０は、ＰＶＲメディア・サーバ９１０および９２０の両方を介して提供される映画「アメリカ最高の映画」を同じ番組として認識する。それ故、クライアント・デバイス３５０は、映画「アメリカ最高の映画」を単一の番組としてのみ認識する。
基礎となるプロトコルは、クライアント・デバイスがホーム・ネットワーク上のデバイスからの番組を集約できないようにするだけのものである。プロトコルそのものは、分散型システムをサポートするための要件を有していない。ネットワーク化ＰＶＲシステムのこの実施形態では、集約論理は非分散型プロトコルを使用して分散型システムを作成する。集約論理は、複数のプロトコルを使用してホーム・ネットワーク上でデバイスを統合する。
図１０は、ネットワークを介した番組のクライアント集約に関する一実施形態を示すフローチャートである。最初にクライアント・デバイスは、ホーム・ネットワーク上のデバイス（例えば、ＰＶＲメディア・サーバ）を発見する（図１０、ブロック１０１０）。ホーム・ネットワーク上のデバイスを発見するための一実施形態について、以下でより詳細に説明する。クライアント・デバイスは、発見プロセスで習得した情報に基づいて、開発されたデバイスに関する状態情報を構築する（図１０、ブロック４２０）。クライアント・デバイスは、メディア・アイテムに関する要求を受け取る（図１０、ブロック４３０）。集約論理は、集約論理の上で動作するソフトウェア構成要素から要求を受け取る。例えば、クライアント・デバイスは、ユーザ・インタフェースを動作させるテレビジョンを備えることができる。ユーザはリモート・コントロール・デバイスを使用して、ホーム・ネットワーク上で入手可能な、ライブであるかまたは事前に録画されたかのいずれかの、すべてのテレビ番組のリストを要求することができる。この例では、ユーザ・インタフェース上のアプリケーション論理が番組に関する要求を変換し、この要求を集約論理に転送する。
クライアント・デバイスの集約論理は、選択された番組を提供するすべてのＰＶＲメディア・サーバから番組の情報を獲得する。例えば、クライアントが特定のジャンル（例えば、コメディ）にテレビジョン番組を要求した場合、クライアント・デバイスはすべてのＰＶＲメディア・サーバから入手可能なそのジャンルに分類されたすべての番組を獲得する。この動作は、図１０に示されている（ブロック１０４０、１０５０、１０６０、１０７０、および１０８０）。より詳細に説明すると、特定のＰＶＲメディア・サーバを選択するための識別子（すなわち、ｎ＝０）が設定される（図１０、ブロック４４０）。クライアント・デバイスは、発見プロセス中に獲得した状態情報を使用して、選択されたＰＶＲメディア・サーバ（例えば、ＰＶＲメディア・サーバ［０］）に接続する（図１０、ブロック１０５０）。より詳細に説明すると、クライアント・デバイスは番組に関する要求を選択されたＰＶＲメディア・サーバによってサポートされるプロトコルに変換し、この要求をＰＶＲメディア・サーバに転送する。一実施形態では、クライアント・デバイスは選択されたＰＶＲメディア・サーバ上のサービスを呼び出して番組を取得する（図１０、ブロック１０６０）。一実施形態では、クライアント・デバイスは、ＰＶＲメディア・サーバ上のコンテンツ管理サービスを呼び出して、入手可能なプログラムのリストを獲得する。ホーム・ネットワーク上で入手可能なＰＶＲメディア・サーバが他にもある場合、クライアント・デバイスは新しいＰＶＲメディア・サーバを識別して番組を獲得する（図１０、ブロック１０７０および１０８０）。クライアント・デバイスがすべての使用可能なＰＶＲメディア・サーバから番組のリストを獲得すると、プロセスは完了する。
【００２２】
図１１は、ネットワーク化ＰＶＲシステム・デバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。ソフトウェア構成要素５００は、最高位にアプリケーション・ソフトウェア５０２を含む。アプリケーション・ソフトウェア５０２は、基礎となるデバイスの機能を実施する。例えば、アプリケーション・ソフトウェア５０２は、ＤＶＤプレーヤの機能を実施することができる。図１１に示すように、アプリケーション・ソフトウェア５０２の下に集約論理５２０がある。前述のように、集約論理５２０は、クライアント・デバイスがホーム・ネットワーク上のメディア・アイテムおよびテレビジョン番組を集約できるようにするものである。
ソフトウェア構成要素５００は、ユーザ・インタフェース（「ＵＩ」）レンダリング論理５１０も含む。ＵＩレンダリング構成要素５１０は、シーン情報をクライアント・デバイス上での表示に好適な表示情報に変換する。ＵＩレンダリング構成要素５１０は、表示データもレンダリングする。例えば、基礎となるクライアント・デバイスがテレビジョン・ディスプレイ（例えば、ＣＲＴ）を含む場合、ＵＩレンダリング・エンジン５１０はシーン情報からグラフィックス・データを生成し、このグラフィックス・データをテレビジョン・ディスプレイ上でレンダリングする。
図１１に示すように、クライアント・デバイスは１つまたは複数のネットワーク・プロトコルおよびリモート・プロシージャ・コール（「ＲＰＣ」）メカニズムを組み込む。例えば、図１１は、ネットワーク・プロトコルＡ（１１２５）、ネットワーク・プロトコルＢ（１１３０）、およびネットワーク・プロトコルｎ（１１３５）をサポートするクライアント・デバイスを示す。この例では、クライアント・デバイス・ソフトウェア５００はＲＰＣメカニズムＡ（１１４０）、ＲＰＣメカニズムＢ（１１４５）、およびＲＰＣメカニズムｎ（１１５０）をサポートする。
クライアント・デバイス・ソフトウェア５００は１つまたは複数のサービスをサポートする。図１１に示すように、インタフェースを介してサービスの１つまたは複数の方法にアクセス可能である。一般に、方法は呼び出されると、基礎となるサービスに特有の機能を提供する。この例では、クライアント・デバイス・ソフトウェア５００はサービスＡ（５５５）、サービスＢ（５６０）、およびサービスｎ（５６５）を含む。各サービスは１つまたは複数の方法（すなわち、方法（１）〜方法（ｎ））に関連付けられる。
【００２３】
一実施形態では、ネットワーク化ＰＶＲシステムは複数の基礎となるプロトコルをサポートする。一般に、プロトコルは、コマンド、ＲＰＣメカニズム、およびサービスへのインタフェースを定義する。一実施形態では、ネットワーク化ＰＶＲシステムは、業界定義のＵＰｎＰプロトコルをサポートする。一般に、ＵＰｎＰプロトコルは、ＩＰネットワークを介した発見、ＲＰＣメカニズム、およびサービスを活動化するためのインタフェースを定義する。ＵＰｎＰサービスには、コンテンツ・ディレクトリ・サービス、接続マネージャ・サービス、オーディオ／ビデオ（「Ａ／Ｖ」）トランスポート・サービス、およびＡ／Ｖコントロール・サービスが含まれる。  一実施形態では、ネットワーク化ＰＶＲシステムは独自所有プロトコル（すなわち、非業界標準プロトコル）もサポートする。この実施形態では、独自所有プロトコルはネットワーク発見プロセス、ＲＰＣメカニズム、およびサービスへのインタフェースを定義する。サービスには、コンテンツ・マネージャ、メディア・プレーヤ・サービス、およびＰＶＲコントロール・インタフェースが含まれる。コンテンツ・マネージャ・サービスによって、クライアント・デバイスはデータベースにインタフェースすることができる。より詳細に説明すると、クライアント・デバイスはコンテンツ・マネージャ・サービスを使用して、他のネットワーク・デバイス上のデータベースから情報（例えば、メディアを識別するためのＵＲＬ、メタデータなど）を抽出することができる。それ故、コンテンツ・マネージャ・サービスは、ネットワーク化ＰＶＲシステムのデバイスにデータベースを照会するための手段を提供する。メディア・プレーヤ・サービスは、再生機能を可能にするインタフェースを定義する（例えば、メディア・ストリームの始動およびコントロール）。ＰＶＲコントロール・インタフェースは、非格納オブジェクト上でのメディアのストリーミングを可能にする。さらに、ＰＶＲコントロール・インタフェースは、ユーザが現在の番組の録画ならびに今後の番組の録画スケジューリングをできるようにする。  一実施形態では、独自所有プロトコルでの発見プロセスが非同期ベースのメッセージングを実施する。発見プロトコルは、パケット・ベースのメッセージングをサポートする任意のネットワーク上、または直列化ネットワーク上で動作する。一実施形態では、発見プロトコルは、「ａｎｎｏｕｎｃｅ」コマンド、「ｄｉｓｃｏｖｅｒｙ」コマンド、および「ｂｙｅ−ｂｙｅ」コマンドを含む。ａｎｎｏｕｎｃｅコマンドは、デバイスがその存在をホーム・メディア・ネットワーク上に告知するために使用される。ｄｉｓｃｏｖｅｒｙコマンドは、告知の要求である（すなわち、何らかのクライアント・デバイスがホーム・ネットワーク上にあるかどうかを照会する）。「ｂｙｅ−ｂｙｅ」コマンドは、クライアント・デバイスがネットワークから離れることを告知するために、クライアント・デバイスによって使用される。一実施形態では、２種類の告知と２種類の「ｂｙｅ−ｂｙｅ」コマンドとがあり、１つはデバイス用、１つはサービス用である。
【００２４】
一時実施形態では、独自所有プロトコルによってサポートされるＲＰＣメカニズムはパケット・ベースのプロトコルを使用する。サービスは、ホーム・ネットワーク上のデバイスが適切な引数でＲＰＣベースのパケットを構築できるようにするための、方法および識別番号を含む。一般に、ＲＰＣメカニズムは、デバイスがネットワーク上の他のデバイスをコントロールできるようにするものである。プロトコルは、要求および応答を介して達成される。ＲＰＣパケットはヘッダを含む。一実施形態では、ヘッダは、バージョン情報、コマンド・クラス（特定サービスへのマップ）、コマンド（デバイスが要求している方法、または方法からの応答）、識別（要求の識別、または要求に対応する応答の識別）、および長さを含む。ＲＰＣプロトコル・フォーマットは、ヘッダの次にデータ（すなわち、要求に関する引数および応答に関する戻り値）を指定する。
図１２は、ネットワーク化ＰＶＲシステムに関するホーム・ネットワークの一例を示すブロック図である。この例では、ホーム・ネットワークはＰＶＲメディア・サーバ１２５０、ＤＶＤプレーヤ１２４０、およびＰＶＲメディア・サーバ１２３０を含む。テレビジョンを含むクライアント・デバイス（１２１０）はホーム・ネットワーク６２０に入り、サポートしているプロトコルを使用して３つのデバイス（例えば、ＰＶＲメディア・サーバ１２５０、ＤＶＤプレーヤ１２４０、およびＰＶＲメディア・サーバ１２３０）を発見する。図１２に示すように、クライアント・デバイス１２１０は、ホーム・ネットワーク１２２０上で発見されたそれぞれのデバイスに関する状態情報を格納する。より詳細に説明すると、クライアント・デバイス１２１０は、デバイス１（ＰＶＲメディア・サーバ１２３０）についての、サポートしているネットワーク・プロトコル（すなわち、ネットワーク・プロトコルＡ）ならびにデバイスによってサポートされるサービス（すなわち、サービスＡおよびサービスＣ）のリストを格納する。ネットワーク・プロトコルは、ＰＶＲメディア・サーバ１２３０上でリモート・プロシージャ・コールを実行するためのＲＰＣメカニズムも指定する。同様に、デバイス２（すなわち、ＤＶＤプレーヤ１２４０）についての状態情報は、デバイス２がネットワーク・プロトコルＡをサポートし、サービスＡおよびサービスＢを実施することを示す。デバイス３、すなわちＰＶＲメディア・サーバ１２５０は、ネットワーク・プロトコルＣをサポートし、サービスＡおよびサービスＢを実施する。
図１２に示すように、各サービス（例えば、サービスＡ、サービスＢ、およびサービスＣ）はインタフェースをサポートする。インタフェースは、サービス内の方法またはコマンドにアクセスするための手段を提供するための仕様を定義する。したがって、クライアント・デバイス１２１０は、それぞれのインタフェースを介してＰＶＲメディア・サーバ１２５０上のサービス（サービスＡまたはサービスＢ）を利用する。ＰＶＲメディア・サーバ１２３０、ＤＶＤプレーヤ１２４０、およびＰＶＲ−サーバ１２５０は、すべてサービスＡを実施することに留意されたい。サービスＡに対する各インタフェースは同一であり、サービスへの均一のアクセス可能性を許可する。しかし、各デバイスでのサービスＡの実施は異なる場合がある。
【００２５】
一実施形態では、ネットワーク化ＰＶＲシステムの実施によってセキュリティが提供される。この実施形態では、ａｎｎｏｕｎｃｅｍｅｎｔコマンドがオープン・エンドであるため、プロトコルは通信に関する最低限の仕様のみを定義する。したがって、告知プロトコルは、ＴＣＰおよびｓｅｃｕｒｅ  ｓｏｃｋｅｔ  ｌａｙｅｒ（「ＳＳＬ」）を含む、複数のネットワーク仕様をサポートすることができる。プロトコルは、ＴＣＰ／ＩＰネットワーク上での実施をサポートする。さらに、プロトコルは、ＴＣＰ／ＩＰネットワーク上で動作するＳＳＬもサポートする。ＳＳＬは、認証を含む、ネットワーク上での２当事者間のセキュアな通信を可能にする。
独自所有プロトコルは、部分的なセキュリティを使用する実施も可能にする。この実施形態では、サービスはセキュアな通信を必要とするいくつかの方法と、セキュアな通信を必要としない他の方法とを含むことができる。それ故、いくつかの方法では、ＳＳＬ技術を利用して、ホーム・ネットワーク上の２つのデバイス間でのセキュアな通信を実現する。
【００２６】
発見
図１３は、ネットワーク化ＰＶＲシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。新しいデバイス（すなわち、現在ネットワークに接続されていないデバイス）がホーム・メディア・ネットワークに接続される（図１３、ブロック１３１０）。ネットワーク上で通信するために、新しいデバイスはネットワーク・アドレスを取得する（図１３、ブロック１３２０）。例えば、ＩＰネットワークでは、クライアントはＩＰアドレスを必要とする。基礎となるネットワークがＴＣＰ／ＩＰをサポートする場合、クライアント・デバイスはＤＨＣＰサーバがあるかどうかを判別する。ＤＨＣＰサーバがある場合、これが新しいデバイスにＩＰアドレスを割り当てる。ＤＨＣＰサーバがない（すなわち、新しいデバイスにＩＰアドレスを割り当てる際にＤＨＣＰサーバが使用できない）場合、新しいデバイスはプールからＩＰアドレスを選択し、ホーム・ネットワーク上の任意の他のデバイスがそのＩＰアドレスを有するかどうかを判別する。そのＩＰアドレスを有する他のデバイスがネットワーク上にない場合、クライアント・デバイスはこのＩＰアドレスを使用する。この自動ＩＰアドレス指定のプロセスによって、単一サブネット内でホーム・ネットワーク上の通信が可能になる。  新しいデバイスは、ネットワークを介して「ａｎｎｏｕｎｃｅｍｅｎｔ」コマンドを伝送する（図１３、ブロック１３３０）。ａｎｎｏｕｎｃｅｍｅｎｔコマンドのフォーマットは、デバイスがサポートするプロトコルに準じる。新しいデバイスは、ネットワークを介してａｎｎｏｕｎｃｅｍｅｎｔコマンドをブロードキャストまたはマルチキャストすることができる。例えば、ＩＰネットワークでは、新しいデバイスは、ホーム・ネットワークがゲートウェイを含む場合、サブネットを拡張するためにａｎｎｏｕｎｃｅｍｅｎｔをマルチキャストすることができる。マルチキャスト・フォーマットを使用して、特定のＩＰアドレスを指定する（例えば、新しいデバイスに関連するかまたはこれに適合する、ネットワーク上のデバイスにのみ、ａｎｎｏｕｎｃｅｍｅｎｔを伝送する）。本明細書で使用する適合デバイスとは、クライアント・デバイスとの通信に関与できるデバイスのことである。
新しいデバイスのａｎｎｏｕｎｃｅｍｅｎｔコマンドに応答して、新しいデバイスは状態情報を構築する。一般に、状態情報は、ネットワーク上で使用可能なデバイスに関する詳細を提供する。状態情報には、それらのデバイスによってサポートされるプロトコルおよびサービスが含まれる。ネットワーク上の適合デバイスがａｎｎｏｕｎｃｅｍｅｎｔコマンドを受け取ると、それらの適合デバイスはａｎｎｏｕｎｃｅｍｅｎｔコマンドに封入された情報をローカル・キャッシュに追加することができる。  ネットワーク上に適合デバイスがない場合、または新しいデバイスがネットワーク上のサービスの利用を望まない場合、プロセスは終了する。例えば、新しいデバイスがテレビジョンである場合、適合デバイスは、ビデオ（例えば、ＤＶＤ、ＭＰＥＧなど）を格納しており、ライブまたは事前に録画されたテレビジョンを提供する、ＰＶＲメディア・サーバを含む。ネットワーク上に他の適合デバイスがある場合、それらのデバイスは新しいデバイスに１つまたは複数のサービスを公表する（図１３、ブロック１３５０）。ネットワーク上のサービスを発見するために、新しいデバイスはｄｉｓｃｏｖｅｒｙコマンドを伝送し、応答を待つ。この例では、ライブ・テレビジョンを提供するＰＶＲメディア・サーバが、新しいデバイスがＰＶＲメディア・サーバによって提供される番組（例えば、テレビジョン・サービス・プロバイダによって提供される番組）を集約できるようにするためのインタフェースを公表する。
【００２７】
要求（例えば、新しいデバイス・アプリケーション論理）に応答して、新しいデバイスはサポート・プロトコルを介して適合デバイスに接続する（図１３、ブロック７６０）。より詳細に説明すると、デバイスは状態情報を使用して該当するデバイス用のプロトコルを変換する。例えば、適合デバイスが業界標準プロトコルをサポートする場合、新しいデバイスはそのデバイスと通信するための業界標準プロトコルを選択する。新しいデバイスは、適合デバイス上のサービスを利用する（図１３、ブロック１３７０）。
ホーム・ネットワークに入るＰＶＲメディア・サーバは、発見プロセスの一例である。この例では、ＰＶＲメディア・サーバはネットワーク・アドレスを取得した後、ネットワークを介してａｎｎｏｕｎｃｅｍｅｎｔコマンドを伝送する。ＰＶＲメディア・サーバはサポートしているサービス（例えば、コンテンツ・マネージャ、メディア・プレーヤ・サービス、およびＰＶＲコントロール・インタフェース）を告知し、それらのサービスにアクセスできるようにするためにネットワーク・クライアントへのインタフェースを公表する。デバイスはネットワークに入ると、サーバからの告知を待つ。クライアントはＰＶＲメディア・サーバを識別すると、ａｎｎｏｕｎｃｅｍｅｎｔコマンドでサーバが指定したプロトコルを介してＰＶＲメディア・サーバに接続する。このプロセスにより、クライアント・デバイスは、ＰＶＲメディア・サーバ上のメディアおよび番組をナビゲートすることができる。クライアント・デバイスは、サポート・プロトコルを使用して再生デバイス（例えば、テレビジョン）それ自体または他の再生デバイスに接続し、ＰＶＲメディア・サーバ上で入手可能な番組からユーザが選択した番組を再生するように、再生デバイスに指示する。
【００２８】
ネットワーク化ＰＶＲデータ・モデル
ネットワーク化ＰＶＲシステムは、データ・モデルと共に動作する。基礎となるデータベースのフォーマットおよび配置構成は、ネットワーク化ＰＶＲシステムによって定義されるものではない。データ・モデルでは、オブジェクト（例えば、メディア・アイテム）がデータベース内に固有の識別を有する。オブジェクトは関連する「タイプ」（例えば、チャンネル、時間帯、連続番組、およびショー）も有する。データ・モデルは、オブジェクトおよびタイプ間での構造および階層を定義するための関係を定義する。
図１４は、ネットワーク化ＰＶＲシステムの要素に関するデータ・モデルの一実施形態を示すブロック図である。この実施形態では、多くのサービス・プロバイダが単一のＭＳＯパッケージにマッピングされる。一般に、ＭＳＯパッケージはテレビジョン番組に関するデータ（例えば、時間、チャンネル、コンテンツなど）を定義する。データはＭＳＯパッケージをチャンネルにマッピングするために抽出される。チャンネル・データ・オブジェクトは、使用可能なすべてのチャンネルを定義する。図１４に示すように、各チャンネルが複数の時間帯にマッピングする。連続番組データ・オブジェクトは、１つまたは複数の時間帯にマッピングされる。連続番組データ・オブジェクトは、ある番組の個々の連続番組それぞれを識別する。次に、連続番組データ・オブジェクトは１つまたは複数の連続番組を１つのショーにマッピングする。俳優データ・オブジェクトは、俳優を識別するために各連続番組にマッピングされる。また、ジャンル・データ・オブジェクトを使用して、ショーがジャンル別に分類される（例えば、コメディ、ドラマ、アクション、スポーツなど）。
一実施形態では、ネットワーク化ＰＶＲシステム用のデータベースは、リレーショナル・データベース（例えば、キー値ペア・データベースまたは標準照会言語（「ＳＱＬ」）データベース）を備える。この実施形態では、データベースはリレーショナル・データベースに格納するためにオブジェクトをマッピングする。ネットワーク化ＰＶＲシステムの一実施形態ではリレーショナル・データベースを利用するが、本発明の精神または範囲を逸脱することなく他のデータベースを使用することができる。
【００２９】
図１５は、ネットワーク化ＰＶＲシステムでのデータ・ストアへのアクセスの一実施形態を示すブロック図である。クライアント・デバイス１５１０はホーム・ネットワーク１５２０に接続される。図１５に示すように、デバイス１５３０およびデバイス１５４０もホーム・ネットワーク１５２０に結合される。デバイス１５４０は、図１５でデータベースＢとラベル表示された永続データ・ストアを含む。同様に、デバイス１５３０は永続データ・ストア、データベースＡを含む。デバイス１５３０および１５４０は、永続データ・ストア内の情報にアクセスできるサービスをサポートする。一実施形態では、コンテンツ・マネージャ・サービスが使用される。より詳細に説明すると、コンテンツ・マネージャ・サービスＡの第１の実施はデータベースＡへのアクセスをサポートし、コンテンツ・マネージャ・サービスＢの第２の実施はデータベースＢへのアクセスをサポートする。
クライアント・デバイス１５１０は、データベースＡおよびデータベースＢから情報を取得することができる。データベースＢを照会するために、クライアント・デバイス１５１０は、前述のような形でデバイス１５４０への接続を取得する。クライアント・デバイス１５１０は、コンテンツ・マネージャ・サービスＢのインタフェースを介して方法を呼び出す。例えば、クライアント・デバイス１５１０は、ネットワーク化ＰＶＲシステムによって認識されるすべてのジャンルのリストを取得したい場合がある。この情報はデータベースＢに格納されている可能性がある。クライアント・デバイス１５１０は、コンテンツ・マネージャ・サービスＢのインタフェースに指定されたデータ・モデル・パラメータを使用して、要求を生成する。前述の例では、クライアント・デバイス１５１０はタイプ「ジャンル」のすべてのオブジェクトを識別するために、コンテンツ・マネージャ・サービスＢへの要求を生成する。この要求に応答して、クライアント・マネージャ・サービスＢは、「ジャンル」のデータ・モデル概念をデータベースＢに適合する照会に変換する。例えば、データベースＢがＳＱＬをサポートしている場合、コンテンツ・マネージャ・サービスＢは、タイプ「ジャンル」のテーブル内のすべての記録を取得するために、データベースＢへのＳＱＬ要求を生成する。
コンテンツ・マネージャ・サービスの実施は、ネットワーク化ＰＶＲシステム・データ・モデルから基礎となるデータベース実施への変換を実行する。図１５に示された例では、コンテンツ・マネージャ・サービスＡはデータベースＡへの第１の変換をサポートし、コンテンツ・マネージャ・サービスＢはデータベースＢに格納されたデータに関する要求の第２の変換をサポートする。したがって、クライアント・デバイス１５１０は、両方のコンテンツ・マネージャ・サービス上のインタフェースによって定義されたものと同じ要求を使用して、異なるデータベース実施（例えば、データベースＡおよびデータベースＢ）にアクセスする。
【００３０】
一実施形態では、ネットワーク化ＰＶＲシステムはデータベースを使用して実施される。一般に、データベースは、オブジェクトと、それらのオブジェクトに関連付けられた属性と、それらのオブジェクト間の関連とを格納する。例えば、データベースは、メディア・スペース内で入手可能なテレビジョン番組の識別を格納する。データベースは各オブジェクトに関する１つまたは複数の属性を関連付けるために、複数の属性を格納する。一実施形態では、オブジェクトは含む。それ故、あるトラックを１つまたは複数のアルバム、１人または複数のアーティスト、１つまたは複数のジャンル、および１つまたは複数のプレイリストに関連付けることができる。属性には、タイトル、作成日、および複数の関連するメディア・ファイルが含まれる。それ故、トラックは、関連するアルバム・アート、歌詞などを有することができる。
ネットワーク化ＰＶＲシステム・データベースは、オーディオ・トラックを非常に多様な形で分類することができる。例えば、ユーザは、ユーザが音楽を２つの異なるタイプのジャンル（例えば、ロックおよびブルース）と関連付けているために、トラックまたはアルバム（すなわち、トラックの集まり）を複数のジャンルに分類したい場合がある。また、ある音楽トラックは、２人のアーティスト間のコラボレーションの結果である場合がある。このトラックを適切に分類するために、ネットワーク化ＰＶＲシステムのユーザは、トラックを２人の異なるアーティストに関連付けることができる。上記の例で示すように、ネットワーク化ＰＶＲシステムは、音楽の分類および編成に柔軟性を提供する。
ネットワーク化ＰＶＲシステムは、各分類または項目を別個のオブジェクトとして扱う。例えば、音楽アプリケーションの場合、プレイリスト、ジャンル、アーティスト、アルバム、およびトラックは、すべて個々のオブジェクトとして扱われる。項目の編成および分類に対して独立したオブジェクトをサポートするこの機能では、音楽の編成および分類に柔軟性を提供する。例えば、ユーザは、第１のプレイリスト全体が第２のプレイリストに含まれるような、ネストされたプレイリストを作成することができる。従来技術の音楽システムでは、プレイリストをトラックごとに処理するのみである。こうした従来技術のシステムでは、プレイリストはトラックのみで構成される。ネットワーク化ＰＶＲシステムでは、プレイリストはどのような「オブジェクト」を含むこともできる。それ故、プレイリストは１つまたは複数のアーティスト、ジャンル、アルバム、または他のプレイリストから作成することができる。
【００３１】
音楽の編成および再生でオブジェクトを使用することによって、同じ名前のアーティストを異なる者として扱うこともできる。従来技術のデジタル音楽システムは、アーティストを識別するためにメタデータを格納する。ユーザがこれら従来技術のシステムを使用してメタデータ上で検索を実行する場合、システムが同じ名前のアーティストを区別する方法はない。ネットワーク化ＰＶＲシステムでは、各アーティストは１つのオブジェクトとして扱われる。それ故、同じ名前の２人のアーティストは２つの別個のオブジェクトであり、２人の別々のアーティストとして操作することができる。  ネットワーク化ＰＶＲシステムは、分散型反復器（ｉｔｅｒａｔｏｒ）を利用する。データベースへの照会に対する応答によって、大量のデータが生成される可能性がある。一実施形態では、ネットワーク化ＰＶＲシステム・プロトコルは、データの一部を伝送し、送信されたデータを識別するためのポインタを維持することをサポートする。一実施形態では、プロトコルは反復器を使用する。ネットワーク化ＰＶＲシステムが反復器を使用することで、システムは１つのデバイスから他のデバイスへ転送されたデータの一部（例えば、リスト）を追跡することができる。反復器は、データの転送中にデータベース内の項目が変更された場合、反復器が動的に変化するように実施される。一般に、反復器は、アレイ内の位置を指定する。リストはデータベースからの結果である。例えば、データベースに対する照会への応答によって、オーディオ・トラックのリストを生成することができる。そのため、例示的な照会の一部として抽出されたオーディオ・トラックを削除することができる。他のシナリオでは、照会によって指定されたオーディオ・トラックをデータベースに追加することができる。
ネットワーク化ＰＶＲシステムが独自所有プロトコルおよびＴＣＰ／ＩＰネットワークを使用して実施された場合、システムはデータベース情報に関する要求に状態を関連付ける。この状態情報が反復器情報を維持するために利用される。  以上、本発明について特定の例示的実施形態に関して説明してきたが、当業者であれば、本発明の精神および範囲を逸脱することなく、様々な修正および変更が可能であることを理解されよう。
【図１】
2014143758.tif 000003
【図２】
2014143758.tif 000004
【図３】
2014143758.tif 000005
【図４】
2014143758.tif 000006
【図５】
2014143758.tif 000007
【図６】
2014143758.tif 000008
【図７】
2014143758.tif 000009
【図８】
2014143758.tif 000010
【図９】
2014143758.tif 000011
【図１０】
2014143758.tif 000012
【図１１】
2014143758.tif 000013
【図１２】
2014143758.tif 000014
【図１３】
2014143758.tif 000015
【図１４】
2014143758.tif 000016
【図１５】
2014143758.tif 000017
【外国語明細書】
2014143758000001.pdf