(58)【調査した分野】(Int.Cl.,DB名)
前記マルチキャストトンネルDVRが、前記受信された特定データストリームを、前記共通のローカルネットワークに接続されている他のDVRに再ブロードキャストする、請求項2に記載の方法。
前記マルチキャストトンネルDVRが、前記受信された特定データストリームを、前記特定データストリームを受信するように登録されているDVRに送信する、請求項3に記載の方法。
【発明を実施するための形態】
【0010】
A. パーソナルテレビサービスに遠隔アクセスするためのシステム
図1を参照し、パーソナルテレビサービスに遠隔アクセスするための通信システム(全体が100として表されている)が示されている。1つの方法によると、家庭に設置されているデジタルビデオレコーダー(DVR)110は、パーソナルテレビサービスセンター(以下、サービスセンターと称される)130と通信し、サービスセンターは、番組ガイドデータ、グラフィカルリソース(フォント、写真など)、サービス情報、および、視聴者の興味を満たすためにDVR 110がサービスセンター130とは独立して動作できるようにするその他の形式のデータを提供する。DVRの機能は、特許文献1、特許文献2、特許文献3、特許文献4、特許文献5、および特許文献6に代表的に説明されており、これらの文書はいずれも本出願人によって所有されており、本文書に参照文献として組み込まれている。この通信システムでは、サービスデータとユーザのプライバシーの両方が保護されるように、セキュアな配信アーキテクチャを使用してDVR 110とサービスセンター130との間でデータが転送される。DVR 110は、アンテナ115から放送信号を受信する、または、ケーブルテレビシステムからテレビ信号を受信する。
【0011】
本発明の1つの実施例においては、DVR 110は、一般的に、アナログテレビ信号をデジタル化してそれをデジタルデータストリームに変換するために必要な複数の構成要素と、そのデータストリームのセグメントを記録するように設計されている複数の構成要素と、データストリームのセグメントを保持するように設計されている複数のストレージデバイスと、データストリームのセグメントを取得し、データストリームをアナログ信号に変換し、次いで、その信号をRFキャリア上に変調するように設計されている複数の構成要素であって、信号がRFキャリアによって標準のテレビ受像機120に配信される、複数の構成要素と、DVR 110がネットワーク140と通信するときに使用するインタフェース125と、を有する。
【0012】
DVR 110は、改ざんできない秘密鍵を含んでいるローカルなセキュア暗号チップを含んでいる。DVR 110のセキュア機能は、本出願人によって所有されている特許文献7にさらに記載されており、この文書は本文書に参照文献として組み込まれている。
【0013】
DVR 110は、その内部の電話モデムを使用して着信呼モデムバンク145にダイアルすることによって、サービスセンター130に直接接続することができる。着信呼は、最初に、ID確認のためサービスセンター130にルーティングされる。確認された時点で、その着信呼は許可される。プライベートモデムバンク145は、その呼に応答し、DVR 110が、サービスセンター130におけるデータベースへのアクセスについて許可される。
【0014】
これに代えて、DVR 110は、ネットワーク140を介してサービスセンター130に間接的に接続することができる。DVR 110とネットワーク140との間のインタフェース125は、DVR 110の内部の電話モデム、あるいはケーブルモデムなどの専用ネットワークインタフェースとすることができる。コンピュータネットワーク140は、プライベートネットワークまたはインターネットのいずれかとすることができる。DVR 110は、インターネットサービスプロバイダ(ISP)のローカルアクセス電話番号を呼び出すことによって、コンピュータネットワーク140との接続を開始する。ISPは、ID確認のため、ネットワーク接続要求をサービスセンター130に送る。確認された時点でネットワーク接続が許可され、DVR 110には、サービスセンター130におけるデータベースへのアクセスが許可される。
【0015】
サービスセンター130は、外部情報源から番組スケジュール情報150を受信する。番組スケジュール情報150は、録画するテレビ番組をテレビ視聴者が選択するために使用できる番組ガイドの基礎情報となる。サービスセンター130は、インタフェース135を通じてコンピュータネットワーク140と通信する。
【0016】
テレビの視聴者は、遠隔コンピュータ155または携帯情報端末160を使用して、コンピュータネットワーク140を介したサービスセンター130との通信チャンネルを確立することによって、サービスセンター130における番組データベースに遠隔アクセスすることができる。
【0017】
図2を参照し、サービスセンター130は、番組スケジュール情報を収集、編成、および提供するWebサーバ200と、番組スケジュール情報を格納する番組データベース210と、ユーザおよびデジタルビデオレコーダーに関する情報を格納するユーザデータベース220と、各ユーザのイベントリストを格納するイベントデータベース230と、ユーザデータベースを調べてイベントデータベースからイベントリストを取得するディスパッチプロセス240と、を含んでいる。さらに、サービスセンター130は、Webサーバとデジタルビデオレコーダーとが通信するときに使用するネットワークインタフェースも含んでいることができる。
【0018】
1つの実施例においては、DVR 110は、DVR 110とサービスセンター130との間の通信を制御するマイクロサーバ250と、サービスセンター130によって提供され、かつDVR 110がサービスセンター130にアクセスしたときに更新される番組ガイドを記録するローカル番組ガイドストレージ260と、選択されたテレビ番組をキャプチャする録画セッションを開始するために使用されるデータ構造であるイベントキュー270と、遠隔アクセスのための許可鍵を生成する疑似乱数生成器(PRNG)280と、DVR 110をコンピュータネットワーク140に接続するネットワークインタフェース125と、を含んでいる。イベントキュー270は、DVR 110に組み込まれている録画デバイスに結合されている。
【0019】
遠隔コンピュータ155と携帯情報端末(PDA)160は、いずれもWebブラウザ290を有しており、これらのWebブラウザは、ユーザがWebページを見ることができるようにする一般的なWebブラウザとすることができる。
【0020】
図3は、ユーザデータベース220とイベントデータベース230の構造を図解しているテーブル図である。ユーザデータベース220は、複数のユーザ記録300を含んでいる。各ユーザ記録300は、複数のフィールド、例えば、ユーザID 310、暗号鍵320、DVR ID 330、イベントリストポインタ340を有する。ユーザIDフィールド310は、ユーザデータベース220への鍵として使用される。暗号鍵フィールド320は、自身のDVR 110を遠隔的にプログラムしようとしているユーザから受信された許可鍵を格納するために使用される。DVR ID 330は、DVR 110との通信チャンネルを確立するために必要であるネットワークアドレスおよび接続詳細情報を格納するために使用される。
【0021】
ユーザデータベース220には、ユーザごとに個別のイベントリスト350が維持される。イベントリスト350は、イベントデータベース230に格納されている。各イベントリスト350は、複数のイベント記録360を含んでいる。各イベント記録は、複数のフィールド、例えば、時間フィールド370、チャンネルフィールド380、時間長フィールド390を含んでいる。時間フィールド370は、録画の開始時間を示すために使用され、番組イベントの日付および時刻から成る。チャンネルフィールド380は、DVRが録画すべきチャンネルを指定する。時間長フィールド390は、その番組イベントのコンテンツをDVRが録画すべき時間長を指定するために使用される。さらに、イベント記録は、番組ガイドデータベースにおける記録(またはオブジェクト)のIDも含んでいることができる。DVRは、番組ガイドデータベースから必要な情報を取得する。
【0022】
B. パーソナルテレビサービスに遠隔アクセスするプロセス
図2は、
図1と合わせて、本文書に説明されている手法の機能を集合的に有効にするさまざまなプロセスを示している。
【0023】
サービスセンター130は、外部情報源から番組スケジュール情報150を定期的に受信する。番組スケジュール情報150が到着すると、それに応じて番組データベース210が更新される。
【0024】
DVR 110は、Webサーバ200からWebページを読み取ることによって、あるいはケーブル、衛星、または電話を介して、自身のローカル番組ガイド260を定期的に更新する。Webサーバ200は、DVR 110からの要求に応答して、最初に、更新された番組情報がないか番組データベース210を調べ、次いで、更新された番組スケジュール情報を含んでいるWebページを動的に作成する。
【0025】
2種類の遠隔アクセス、すなわち直接アクセスと間接アクセスが利用可能である。テレビの視聴者は、遠隔コンピュータ155または携帯情報端末160のいずれかにおけるWebブラウザ290を使用することによって、DVR 110を間接的にプログラムすることができる。この状況においては、Webブラウザ290は、Webサーバ200によってホストされている特殊なWebサイトにアクセスするために使用される。Webサーバ200は、
図5に示されているようなグラフィカルユーザインタフェースを使用して、テレビ視聴者に番組ガイドを提示する。テレビの視聴者は、DVR 110によって録画すべき番組を指定するため、番組タイトルおよび時間帯によってテレビ番組を選択する。
【0026】
サービスセンター130は、ディスパッチプロセス240を定期的に実行する。ディスパッチプロセス240は、ユーザデータベース220を調べる。ディスパッチプロセス240は、番組イベントを指定したユーザに遭遇すると、イベントデータベース230からイベントリスト350を取得する。次いで、ディスパッチプロセス240は、DVR 110に属しているマイクロサーバ250との通信チャンネルを確立する。この通信チャンネルは、ディスパッチプロセス240がマイクロサーバ250から特殊なイベント−ディスパッチWebページを取得できるように設計されている。マイクロサーバ250は、イベント−ディスパッチWebページをディスパッチプロセス240に提供する。ディスパッチプロセス240は、そのイベント−ディスパッチWebページを完成させ、それをマイクロサーバ250に戻す。
【0027】
マイクロサーバ250は、イベントについてディスパッチプロセス240をポーリングすることによって、ディスパッチプロセス240にイベント転送を開始させることもできる。
【0028】
マイクロサーバ250は、イベント−ディスパッチWebページに見つかったイベントディレクティブを使用して、DVR 110に組み込まれているイベントキュー270を更新する。イベントキュー270は、テレビ番組イベントをキャプチャする録画セッションを開始するためにDVR 110によって使用されるデータ構造である。
【0029】
トランザクションを認証する目的で、Webサーバ200は、プログラムされるDVR 110に関連付けられているユーザの1つ以上の許可コードを含んでいる。DVR 110は、許可コードを、DVRの不揮発性メモリに維持されているプライベートコピー(private copy)と比較する。許可コードは、時間とともに変化し、システムのセキュリティ要件に従って有効期限が切れるように設定することができる。
【0030】
直接的な遠隔アクセス機能を使用するためには、ユーザは、疑似乱数生成器(PRNG)280によって生成される許可鍵を、最初にDVR 110から取得しなければならない。ユーザは、DVRの位置における自身のテレビを介してDVR 110と直接的に通信する。DVR 110は、許可鍵をユーザに提示する。その後、ユーザは、自身のコンピュータ155または自身のPDA 160を使用して、インターネットを通じてDVR 110にアクセスする。ユーザは、マイクロサーバ250によって管理されているグラフィカルユーザインタフェースを通じて、許可鍵を提示し、DVR 110をプログラムする。また、ユーザは、直接モードにてアクセスした後に番組をDVR 110にダウンロードすることもできる。
【0031】
C. 遠隔プログラミングディレクティブを取得するプロセス
図4は、ユーザから遠隔プログラミングディレクティブを取得するために、Webサーバ200およびマイクロサーバ250によって使用されるプロセスを示しているフローチャートである。両方のプロセスは平行して示されているが、通常の使用では個別のプロセスである。このプロセスは、以下のステップを含んでいる。
【0032】
ステップ400:Webサーバ200またはマイクロサーバ250は、Webサーバ200またはマイクロサーバ250によって管理されている特殊なWebサイトにアクセスするユーザに、最初のWebページにおいて許可要求フォームを提示する。
【0033】
ステップ410:Webサーバ200は、ユーザによって入力された許可パスワードを受信する。マイクロサーバ250は、ユーザからの許可鍵を受信する。
【0034】
ステップ420:Webサーバ200は、ユーザデータベース220を使用して許可パスワードの正当性を確認する。マイクロサーバ250は、自身が格納している鍵によってその許可鍵の正当性を確認する。
【0035】
ステップ430:Webサーバ200は、ユーザデータベース220において許可パスワードの正当性を確認すると、遠隔コンピュータ155または携帯情報端末160の不揮発性メモリにクッキーを書き込む。マイクロサーバ250は、許可鍵の正当性を確認すると、遠隔コンピュータ155または携帯情報端末160の不揮発性メモリにクッキーを書き込む。
【0036】
ステップ440:Webサーバ200またはマイクロサーバ250は、ユーザが識別および認証された後、ユーザに番組ガイドを提示する。
【0037】
ステップ450:Webサーバ200は、ユーザの選択を受信し、ユーザに固有のイベントリスト350を作成する。イベントリスト350は、イベントデータベース230に格納される。マイクロサーバ200は、ユーザの選択を受信し、それらをイベントキュー270に入れる。
【0038】
ステップ440において、Webサーバ200またはマイクロサーバ250は、ユーザに提示された最初のWebサイトに組み込まれているスクリプトに従い、遠隔コンピュータ155または携帯情報端末160上の有効なクッキーを検索する。有効なクッキーが発見されると、ステップ400〜430がプロセスフローから除外される。
【0039】
D. 番組を選択するためのグラフィカルユーザインタフェース
図5は、番組を選択するための例示的なグラフィカルユーザインタフェース(GUI)500の図による表現である。GUI 500は、DVRのフロントパネル上に使用されているのみならず、Webサーバ200によって遠隔ユーザに提示されるWebページにも組み込まれる。GUI 500は、DVR 110に直接実施されているときには、DVR 110に組み込まれている制御プロセスによって直接操作される。コンピュータネットワークを介して遠隔ユーザに提示されるときには、GUI 500はアクティブなサーバのWebページとして具体化される。
図6は、ユーザのWebブラウザに表示される「放送中(Now Showing)」Webページの画面キャプチャである。
【0040】
GUI 500は、複数の列510と複数の行515とを含んでいるテーブル505を有する。列510は、曜日(および特定のカレンダー日付)に対応している。行515は、特定の日の時間に対応している。テーブル505の列510および行515は、実際には、データ選択コントロールによって構成されており、この場合、コントロールのキャプションは、テーブル505におけるそのコントロールの位置に従ってその時間帯にスケジュールされているテレビ番組のタイトルを示すように設定されている。さらに、GUIは、上にスクロールする(520)、および下にスクロールする(525)メカニズムと、前に進む(530)、および後ろに戻る(535)メカニズムと、特定のテレビ番組を選択するメカニズムと、選択されたテレビ番組を含んでいる番組イベントリスト350を作成するメカニズムと、イベントリスト350を編集するメカニズムと、を有する。さらに、このGUIは、ダウンロードを命令するメカニズムと、ダウンロードが進行中であることを示すメカニズムと、進行中のダウンロードを取り消すメカニズムとを含んでいることもできる。
【0041】
コントロールの位置は、テレビ番組イベントの日付および時間に対応する。ユーザは、GUI 500に提示されている選択コントロールを切り替えることができる。GUI 500がWebサーバ200に戻されると、選択されたコントロールの識別子と一緒に番組ガイド260が使用され、ユーザのイベントリスト350が作成される。遠隔プログラミングの場合、次いで、イベントリスト350がイベントデータベース230に格納される。DVR 110をローカルにプログラムする場合、イベントリスト350は、DVRの録画手順を制御するイベントキュー270に直接格納される。
【0042】
E. デジタルビデオレコーダーへのインターネットアクセス
図7は、サービスセンター130、DVR 110、外部のコンテンツサーバ720の間のインターネットを通じたインタラクションを図解している概略構成700のブロック図であり、このインタラクションにおいては、特定のタイプのコンテンツをインターネット接続140を通じて取得し、
図6に示されているような「放送中(Now Showing)」ページにそれらのコンテンツを表示できるようにするための、1つの具体的なスタイルのインターネットアクセスがDVR 110に組み込まれている。明快な例を示す目的で、
図7および本文書内の説明においては、実施形態において使用することのできる特定の要素およびプロトコル(インターネット、Linux、DHCPなど)を言及している。しかしながら、代替の実施形態においては、機能的に類似する別の要素あるいはプロトコルを使用することができる。例えば、ダウンロードは、インターネットではなく、任意の公衆ネットワーク、プライベートネットワーク、または専用ネットワークを通じて行うことができる。別のオペレーティングシステムと、別の動的アドレッシングプロトコルを使用することもできる。
【0043】
「放送中(Now Showing)」ページにおいては、コンテンツ名、すなわちテレビ番組のタイトルのリストは、そのようなコンテンツがGUI 500に取得されていることを示し、レコードのアイコン、または何らかのその変形は、ダウンロードが進行中であることを示している。視聴者は、いつでもコンテンツ(すなわちテレビ番組)を選び、それを再生することができる。
【0044】
ダウンロードは、任意の速度において行うことができる。従って、
図1におけるインタフェース125は、ダウンロードの速度にはまったく依存しない。
図8は、再生バー801を示しているWebページの画面キャプチャであり、再生バー801は、コンテンツが再生速度803より高速でダウンロードされていることを、緑の領域802がそれに対応するように拡大することによって示している。コンテンツが再生速度より高速でダウンロードされていることは、そのような再生バー801とは別のメカニズムを使用して示すことができる。いずれの場合にも、視聴者は、その時点までにダウンロードされた量のコンテンツに対して、すべてのトリックプレイアクションを使用することができる。
【0045】
コンテンツがインターネットを通じてダウンロードされたことは、番組情報を提示するコンテキストを除いて、視聴者には明らかであり、番組情報を提示するコンテキストにおいては、コンテンツがインターネットからであることをさまざまな方法で示すことができる。
【0046】
ダウンロードされたコンテンツへのポインタは、放送番組が格納されるのと類似する方法において、DVR 110のハードドライブ上のローカルコンテンツデータベース740に格納され、従って、あらゆる形態の検索およびプレゼンテーションによってそれらの番組が正しく表示され、番組の操作が提供される。
【0047】
チャンネルまたはネットワーク指向のコンテキストにおいては、ダウンロード可能な番組は、放送番組に類似する方法において提示される。そのような番組の場合には時刻および場所が関与しないため、チャンネルまたはネットワークの「ラインアップ」が適切な方式において提示されるように、これらのコンテキストを修正する必要があるかもしれない。
【0048】
「放送中(Now Showing)」のコンテキストにおける利用可能なコンテンツアイテムが、
図6に示されている程度の数だけある場合、ナビゲーションが不便かもしれない。初期の実施形態には必要ないが、このコンテキストは、多数のアイテムのナビゲーションがより単純になるように修正することができる。
【0049】
いくつかのサーバからのコンテンツを提供するエンティティは、テレビネットワークとして見ることができる。一意の各サーバ名は、チャンネルを示す。この場合、「サーバ」は、ネットワーク上の名前にすぎず、世界の任意の場所の任意の物理サーバにマッピングすることができる。
【0050】
DVR 110は、コンテンツサーバ720にコンタクトすると、特定の番組IDに従ってメディアコンテンツを要求する。この番組IDは、Webサーバ200によって特定のコンテンツにマッピングされ、次いで、そのコンテンツが接続を通じて送られる。コンテンツサーバまたはDVRは、ダウンロード速度を調整することができる。
【0051】
視聴者が複数のダウンロードを要求する場合、DVR 110は、コンテンツを取得するためのいくつかの異なる方法を選択することができ、すなわち、最大の制限下で複数の接続を開始する、または要求をキューに入れる、あるいはその両方を行うことができる。
【0052】
1つの方法においては、
図7の複数の要素は、DVR 110のセキュリティに対処している。ネットワークポートを開くことは、著作権の保護されたコンテンツのセキュリティと、ユーザのプライベートデータの保護とに関して生じうる多数のセキュリティブリーチにつながる。
【0053】
1つの実施例においては、標準的なLinuxのファイアウォールサポートを使用し、通信の両方向において、いくつかの周知のポート(Web(HTTP)ポートまたは発見ポートなど)以外のすべてのポートへのアクセスを自動的に遮断することによって、この保護を達成する。この場合の周知のポートは、外部のコンテンツサーバ720にコンタクトしてメディアコンテンツをダウンロードするために、DVRのアプリケーションソフトウェアによって使用される。
【0054】
DVR 110には、動的アドレッシングクライアントソフトウェア要素(Linux DHCPクライアントなど)が設けられている。DVRの起動時、ネットワークインタフェースが検出された場合、DHCPクライアントは、周知のポートを使用してDVRのネットワークアドレスを動的アドレス源から取得する。例えば、DVR 110のDHCPクライアントは、DHCPプロトコルを使用して、外部のDHCPサーバ750についてポーリングする。サーバが見つからない場合、ネットワーキングは無効にされる。見つかった場合、DVR 110は、DHCP応答から自身のネットワークパラメータを初期化する。
【0055】
そのようなLinuxのファイアウォールサポートにおける1つの問題は、外部のDHCPサーバ750がインターネットアクセス情報を設定する必要があることである。2つのデバイスの間でインターネット接続上のデータを読み取る、またはデータフローをリダイレクトする方法は多数存在することが周知である。1つの可能な方法はエイリアシングであり、この場合、悪意のあるDHCPサーバは、悪意のあるホストがエイリアスサーバアドレスを使用することによってDVRに侵入して攻撃することができるように、インターネットアクセス情報を設定する。
【0056】
この種類の攻撃を無効にするため、1つの実施例においては、コンテンツサーバ720とのすべての通信が認証および暗号化される。コンテンツサーバ720は、DVR 110の公開鍵にアクセスすることができ、DVRは、コンテンツサーバ720の公開鍵のコピーを有する。DVR 110は、サービスセンター130によってダウンロードされる、コンテンツサーバ720に関するメタデータコンテンツ情報を有する。DVR 110は、メタデータを自身のデータベース740に格納しており、データベース740内のデータに基づいて動作する。DVR 110およびコンテンツサーバ720は、証明書の交換を使用して、ワンタイムセッション鍵を生成し、以降のすべての通信はそのセッション鍵を使用して暗号化される。1つの実施例においては、暗号化されたセッション通信のためにBlowfishアルゴリズムが使用される。コンテンツサーバ720の公開鍵は、サービスセンター130から配布され、サービスセンター130は、適切な番組ガイド参照(program guide references)もコンテンツサーバ720に提供する。
【0057】
サービスセンター130は、コンテンツサーバ720の記述を受理する。1つの実施例においては、そのような記述は、サーバのURL、コンテンツの記述、コンテンツのID、「チャンネル」の記述、「ネットワーク」の記述などから成る。これらのデータは、コンテンツサーバ記述(CSD)データベース710にインポートされる。コンテンツサーバ720にアクセスするための一連の公開鍵も提供される。
【0058】
コンテンツサーバ720は、DVR 110からの接続を受け入れるためには、特定のDVRの公開鍵にアクセスできなければならない。この鍵の配布は、オンザフライ方式で実行する、または事前共有型の鍵配布方式を通じて行うことができる。オンザフライ方式での鍵の配布においては、コンテンツサーバ720は、サービスセンター130との認証された接続を確立し、DVRのシリアル番号を提供し、関連付けられている公開鍵を提供するようにサービスセンター130に要求する。サービスセンター130は、DVRのシリアル番号が与えられると、関連付けられている公開鍵を戻す。コンテンツサーバ720は、この公開鍵をキャッシュに格納することができる。各鍵は、コンテンツサーバ720がその鍵を削除しなければならないときを示す有効期限を有する。サービスセンター130は、例えば、鍵配布の調査を目的として、配布された公開鍵すべてのログを維持することができる。
【0059】
サービスセンター130は、非アクティブなDVRの公開鍵を提供することを拒否することができる。さらに、コンテンツサーバ720は、例えば、特定のDVRが非アクティブになった場合に、サービスセンター130からの鍵無効化要求に応答することができる。
【0060】
メディアレコーダー730は、DVR 110のパーソナルテレビサービスアプリケーションソフトウェアのサブシステムである。メディアレコーダー730によって、ダウンロード中のコンテンツの録画と再生を同時に行うことができる。録画されたコンテンツは、DVR 110のコンテンツデータベース740に格納される。メディアレコーダー730は、永続的なネットワーク接続が利用できない場合、起動されない。1つの実施形態においては、メディアレコーダー730は、複数の異なるスレッドを有する。
【0061】
(1)録画キュースレッド:このスレッドは、ネットワークダウンロード要求のキューを管理し、ダウンロードポリシーを実施する。このキューは、最初は、データベースに維持される単純なFIFOキューとすることができる。ダウンロードポリシーが実施されると、録画キューポリシーオブジェクトが維持される。
【0062】
(2)録画取得スレッド:このスレッドは、コンテンツサーバ720との接続を管理する責任を負う。録画取得スレッドは、サーバにコンタクトし、認証プロトコルを実施し、必要なコンテンツを要求し、そのコンテンツのダウンロードを管理する。
【0063】
この方式のバリエーションとして、パーソナルテレビサービスアプリケーションまたはメディアレコーダー730の中の番組オブジェクトが、メディアコンテンツについてポーリングされるべき複数のサーバを示すことができる。サーバは、録画取得スレッドによって、順にポーリングされる。ダウンロードの要求を受理する最初のサーバが使用される。これにより、サーバファームまたはデータセンターに編成されている複数のコンテンツサーバにまたがる負荷バランシング式のコンテンツ要求が提供される。
【0064】
録画取得スレッドは、自身の状態をDVR 110におけるデータベースに定期的に格納する、またはチェックポインティング(checkpointing)を行う。そのようなチェックポインティングを行うことにより、停電あるいはシステムエラーが起きた後、それら停電またはエラーが起きたときにダウンロードが行われていた、マルチメディアコンテンツにおける同じポイントからダウンロードを再開することができる。また、録画取得スレッドは、データベースオブジェクトの状態も管理し、これはダウンロードされているコンテンツのプレゼンテーションおよびナビゲーションに使用される。例えば、録画取得スレッドは、
図6に示されているような「放送中(Now Showing)」コンテキストに正しく表示されるように、録画オブジェクトの状態を管理する。そのようなアクティブなスレッドは、任意の時点において1つ以上存在していることができる。
【0065】
F. DVRとDVRのインタラクション
1つの方法においては、2台のDVRの間でメディアおよびデータベース要素を転送するメカニズムが提供される。
図7を参照し、転送の一例として、例えば、携帯型DVR 760に設けられているような、より少ない量のディスクストレージを使用する転送が示されている。1つの例として、ユーザは、休暇に出かける前に、必要なメディアと、関連付けられている表示されないサービスデータとを携帯型DVR 760に転送しておき、必要なときにメディアを使用できるように携帯型DVR 760を携帯することができる。転送の別の例として、同じ動作を達成するために2つのメディアストリームが正確に同期して再生されるように、一緒にスレーブとして機能する2台のDVR、すなわちDVR 110およびDVR 770を使用しての転送が示されている。
【0066】
2台のDVRを接続する方法は数多くある。1つの実施例においては、転送元DVR 110の出力が転送先DVR 770の入力に結合される。この方法は、機能はするが、メディアストリームの管理および使用において視聴者を満足させるうえで欠かせない、メディアストリームに関するメタデータ情報を転送することができない。
【0067】
DVR 110に格納されているメディアストリームは、メディアコンテンツ自体と、メディアコンテンツに関する記述情報を提供するデータベースオブジェクトとから成る。ネットワーク接続(例:IEEE 802.3)または直接接続(例:IEEE 1394)などのデータ転送方法が使用される場合、メディアコンテンツと記述情報の両方を転送することができ、従って、視聴者の知覚体験の完全性(integrity of the viewer experience)が維持される。
【0068】
コンテンツの所有者は、コンテンツが盗まれうることを懸念する。さらなる方法では、DVR 110とDVR 770との間のデータ転送を暗号化する。これは、数多くの標準的な方法およびカスタムな方法において行うことができる。例えば、Diffie-Hellmanセキュア接続プロトコルを使用してワンタイム鍵を生成し、次いで、この鍵を使用して転送を暗号化することができる。
【0069】
特定の指定されるDVRにのみ転送できるようにすることが望ましい場合、統合セキュリティシステムを使用することができる。各DVRの公開鍵は、鍵の事前共有または鍵の動的な交換のいずれかによって他のDVRに知らされている。転送が開始されると、DVRは、他方のDVRの公開鍵に基づいて暗号化されている署名済み証明書を交換する。両方のDVRが他方のDVRの署名を復号化および確認できる場合、各DVRにおいて他方のDVRのアイデンティティが認証され、ワンタイムセッション鍵の確立に進むことができ、次いで、転送時にこの鍵を使用してデータを暗号化する。
【0070】
そのような場合における鍵の配布は、サービスセンター130を通じて処理することができる。視聴者は、サービスセンター130にコンタクトし、自身が所有する2台のDVR 110および770が、互いの間でのデータ転送について許可されるように要求することができる。サービスセンター130は、各DVRの公開鍵を含んでいる許可オブジェクトを、適切なダウンロードメカニズムを通じて他方のDVRに送る。サービスセンター130は、後から調査する目的で、この操作の記録(各DVRの識別情報を含んでいる)を維持する。例えば、一方のDVRにおいてセキュリティシステムが破られ、他方のDVRの公開鍵が明らかにされた場合、それ以外のDVRを修正してそれらのDVRが転送元DVR 110に許可されているように見えるようにすることが可能である。各DVRは、転送の記録を維持する。この記録は、サービスセンター130にアップロードされる。後からこの情報を処理して、コピー保護違反、許可されていないDVRへのコピーなどを探すことができる。
【0071】
転送が中断された場合、転送先DVR 770は、記述オブジェクトにメディアストリームを「不完全」とマークする。後から、転送を再開することができる。データベースシステムの設計によって、メディアストリームを転送先DVR 770において一意に識別できることが保証されるため、不完全なストリームは発見され、転送がストリームの最後から始まり、従って、すでに格納されたメディアを再転送することが回避される。メディアストリーム全体が格納されると、完全なメディアストリームであることが示されるように記述オブジェクトが更新される。
【0072】
DVRの間でのデジタルデータの転送は、任意の適切な速度において行うことができる。例えば、DVRの間のネットワークが遅いことがあり、その場合には、転送時間長がコンテンツの再生時間長より長くなる。あるいは、ネットワークが高速であることがあり、その場合には、1つのコンテンツアイテムの再生にかかるよりもずっと短い時間で、複数のメディアストリームを転送することができる。転送先DVRにおける視聴者は、最初の部分が利用可能になった時点で、ストリームの進行中のダウンロードと平行してメディアストリームの視聴を開始することができる。
【0073】
転送元DVRまたは転送先DVRが完全なデジタルビデオDVRである必要はない。例えば、ケーブルヘッドエンドにおけるサーバに格納されているメディアストリームを、高い信頼性で転送先DVR 770に転送することができる。これに代えて、転送元DVR 110に格納されているメディアストリームを、ヘッドエンドサーバに転送することができる。
【0074】
例えば、パーソナルコンピュータは、DVRからの暗号チップを含んでいるUSBドングルを使用することができる。パーソナルコンピュータは、コンテンツをパーソナルコンピュータに転送、およびパーソナルコンピュータから転送するためのセキュアメカニズムを確立する。パーソナルコンピュータは、他のDVRからはDVRであるように見え、なぜなら、パーソナルコンピュータは、USBドングルを使用して暗号鍵を認証および生成するためである。次いで、コンテンツを暗号化された形式においてパーソナルコンピュータに格納することができる。コンテンツは、別のパーソナルコンピュータあるいはDVRに電子メール送信することができる。その別のパーソナルコンピュータは、コンテンツを復号化するためのUSBドングルを保持していなければならない。サービスセンター130からパーソナルコンピュータに渡される証明書は、USBドングルにおけるNVRAMに格納され、従って、この証明書は、ドングルとともに移動し、パーソナルコンピュータのハードドライブには格納されない。
【0075】
特定のメディア配信アーキテクチャ(デジタル衛星システムなど)では、ほとんどのメディアコンテンツを暗号化された状態において放送する。メディアコンテンツは、視聴される場合にのみ、スマートカードに基づくローカルな復号化装置を使用して復号化され、従って、コンテンツが盗難から保護される。DVRは、これらの暗号化されたメディアストリームをディスクに保存し、再生時に復号化を開始することが可能である。この方法は、2台のDVRの間でメディアストリームを転送するために使用することができる。DVRは、メディアストリームに関連付けられているコンテンツ保護規則の特定のセット(一回再生、一日後に有効期限終了、など)に正しく従う目的で、メディアストリームに関連付けられているコピー保護情報(ストリームが暗号化されて格納されているかなど)を、メディアストリームを記述するデータベースオブジェクトを使用して維持する。
【0076】
メディアストリームに関連付けられているコンテンツ保護規則も、転送先DVR 770に転送することができる。例えば、DVR 110は、視聴されるまでは復号化されない、コンテンツサーバ720からの映画を格納していることができる。視聴者がこのメディアストリームを転送することを望む場合、このメディアストリームは転送先DVR 770のメディア領域にコピーされ、記述オブジェクトも転送される。この方法においては、メディアストリームにおける元の情報が、転送先DVR 770に正確に複製される。
【0077】
スマートカードは、転送元DVR 110から抜いて、転送先DVR 770に差し込むことができる。メディアコンテンツが視聴されるときには、視聴者は正しく課金され、すべてのコピー保護規則に従う。元のメディアコンテンツと記述情報は、削除する、または削除しないことができる。例えば、「一回のみ視聴(view-once)」方式においては、元のデータが破壊されるのに対し、「ペイパービュー」方式においては、元のデータは破壊されない。
【0078】
上述されているのと同じ手法を使用して、2台以上のDVRの間で、ネットワーク接続またはモデム接続を使用して、セキュア接続、または認証式のセキュア接続を確立することができる。そのような接続を確立すると、制御インタラクションを行うことが可能になる。以下は、さまざまな実施例において提供することのできる制御インタラクションのいくつかの例である。
【0079】
(1)同期された再生。視聴者は、特定のメディアストリームに対してトリックプレイ機能を制御することができる。重要な各イベントも転送先DVR 770に渡され、転送先DVR 770は、同じアクションを自動的に実行する。例えば、提供側は、マルチメディア再生装置として転送元DVR 110を使用してライブプレゼンテーションを提供することができ、遠隔位置における視聴者は、同じ方式において供給される同じプレゼンテーションを同時に観ることができる。これに代えて、何らかの別の手段(電話など)によって通信している2人の視聴者がインタラクションを行うことができ、それと同時に、一方または他方が両方のDVRにおける同じ番組の再生を制御する。この代替方法では、興味のある番組を十分に検討することができる。通信の手段は、ディスプレイに重ねて表示されて参加者がコメントを入力する単純なチャットプログラムとすることができる。そのような方法は、ビジネスのプレゼンテーションと、エンターテインメントとを目的として使用することができる。
【0080】
(2)リンク渡し。転送元DVR 110の視聴者は、特定の番組が転送先DVR 770にリンクされるように指定することができる。これに応答して、転送元DVR 110は、リンクされている番組の録画を転送先DVR 770にスケジュールさせるメッセージを、転送先DVR 770に送る。あるいは、番組のリンクを解除することもできる。リンクまたはリンク解除のメッセージは、DVR 110および770の両方が動作中であると想定すると、番組IDのみを含んでいることができる。転送先DVR 770が動作中ではない場合、リンクのメッセージに追加のメタデータを含めることができる。
【0081】
(3)サウンドエフェクトまたはグラフィックエフェクト。視聴者がアクションを行った(特定のキーシーケンスを押すなど)とき、転送元DVR 110は、サウンドを再生する、またはグラフィックを表示することができる。また、転送元DVR 110は、そのイベントを転送先DVR 770に渡すこともでき、転送先DVR 770は、その同じサウンドまたはグラフィックを再生する、あるいは、行われたアクションに転送先DVR 770において関連付けられている異なるサウンドまたはグラフィックを再生する。例えば、子供がこのようにして番組にサウンドを追加することができ、そのサウンドを、遠隔の転送先DVR 770における友人用に複製することができる。そのような通信は、マルチウェイ(multi-way)とすることができる。
【0082】
別の方法においては、DVRは、別のタイプのデータも転送することができる。例えば、大型の家庭用DVR 110と、より小さい携帯型DVR 760とを考える。ソフトウェア、グラフィック要素、番組ガイドデータなどのデータを、2台のDVRの間で転送することができる。例えば、携帯型DVR 760と家庭用DVR 110とが接続されるたびに、携帯型DVR 760を家庭用DVR 110によって更新する、またはデータを同期させることができる。更新には、ソフトウェアアップデートの転送およびインストール、番組情報の同期、録画スケジュールの同期などを含めることができる。同期はPDAとよく似ており、携帯型DVR 760が、ユーザがすでに番組を見たためその番組を削除するように家庭用DVR 110に伝えることができる。携帯型DVR 760と家庭用DVR 1102とが接続されると、携帯型DVR 760が動作情報を家庭用DVR 110に転送し、家庭用DVR 110は、サービスセンター130にアクセスしたときにその動作情報をサービスセンター130に送ることができる。
【0083】
更新は、自動的に行われるようにすることができる。そのような場合には、2台のDVRが接続されたときに、事前に設定されている一連のアクション(番組ガイドまたはソフトウェアの更新など)が実行され、次いで、メディアストリームも転送することができる。転送先DVR 760が小型の携帯型ユニットである場合、すべてのメディアストリームが収まらないことがある。その場合、視聴者は、どのメディアストリームを転送するかを明示的に選択することができる。これに代えて、転送元DVRにおけるアプリケーションソフトウェアが、プリファレンス情報を使用して、利用可能なメディアのうち視聴者が最も興味のあるメディアを選択し、それらのストリームのみを転送することができる。別の代替方法においては、メディアストリームが最新のストリームから最も古いストリームの順に転送され、それ以上収まらない時点で停止する、または、最も古いストリームから最新のストリームの順に転送される。シーズンパス(チャンネル上の1つの番組のすべての放送分が録画される)は、DVRが「必ず転送する」または「転送しない」マーカーを含んでいることができる。別の基準は、視聴者の好みに基づいて番組が明示的に選択されたかとすることができる。選択基準には、コンテンツの記述オブジェクトに格納されている任意の番組情報(長さ、俳優、評価など)を使用することができる。基準によって、「必ず転送する」などのアクションをトリガーすることができる。
【0084】
G. ネットワークセキュリティの概要
上述されているように、本文書における1つの方法は、DVR 110、760、770の間、またはコンテンツサーバ720とDVR 110、760、770との間で暗号化されたセキュアデータ転送を提供する。この方法では、ユーザは、1台のDVR 110に番組を録画し、次いで、別のDVR 770においてその番組を観ることができる。
【0085】
本文書に説明されている暗号化されたデータ転送システムでは、DVRから、互換性のないシステム、または第一DVRの位置の外部のシステムにビデオを転送することが非常に困難である。従って、ユーザは、行った録画に適切な公正使用権を行使することができるが、この方法では、ユーザが公正使用原則に違反してビデオの「海賊版を作成する」、あるいは友人にプレミアムコンテンツを送ることが非常に困難になる。
【0086】
本文書における方法のさまざまな実施例は、以下の観点を含んでいることができる。
・ 録画が暗号化される。多くの録画は、最初に録画されるときに暗号化される。暗号化されていない録画は、1台のDVRから別のDVRに転送される前に暗号化することができる。これにより、録画データが家庭のネットワークを通じて移動するときに誰かがそれを「スニフィング」して、データのコピーを作成することが困難になる。
・ 暗号化された録画が1台のDVRから別のDVRに転送されるとき、受信側システムは、送信側システムがその録画に関連付けられている暗号鍵/復号鍵も転送しない限りは、その録画を使用することができない。
・ DVRは、録画を転送することのできる別のシステムを、IPブロードキャストメカニズムまたはその他のネットワーク発見プロトコルを介して発見することができる。そのような発見プロトコルにおいては、発見パケットは一般にローカルIPサブネットの外へは出ない。住宅環境においては、ローカルIPサブネットは、家庭のLANを有する。これに加えて、またはこれに代えて、ユーザが別のユーザと録画を共有しようとする懸念がある場合、DVRのアプリケーションソフトウェアは、システムの所有者がインターネット上の別の場所に位置しているシステムのIPアドレスをキーボード入力する、またはそれ以外の手操作による方法で指定できるメカニズムを提供しない。
・ DVRは、受信側システムがその録画を見ることが「許可されている」場合にのみ、録画暗号鍵を別のDVRに送ることができる。例えば、このコンテキストにおいて、「許可されている」は、転送先DVRが同じ家庭内である、または許可されているものとして所有者によって登録されていることを意味する。鍵の転送は、ロバストな公開鍵/秘密鍵システムを使用して実行され、このシステムにおいては、転送される各鍵は、それが送られた先の1つのシステムのみが認識可能である。
・ 許可は、1つの家庭に属していると認識されている特定のシステム、または1人のユーザによって所有されている特定のシステムをリストするデジタル証明書を通じて行われる。証明書は、システムの公開鍵を含んでおり、サービスプロバイダによって「署名」されている。各システムは、データまたは鍵を別のシステムに転送する前に、使用する証明書における署名を確認し、証明書に含まれているアイデンティティに対して自身のアイデンティティも確認する。
【0087】
証明書システムは、ElGamal公開鍵/秘密鍵システムと、Blowfish対称ブロック暗号とに基づくことができる。Blowfish対称ブロック暗号は、「システムのシリアル番号を変更する」、「証明書を別のシステムにコピーする」、あるいは「証明書を改ざんする」などの攻撃を遮断する自己チェック機能を含んでいる。
【0088】
図7および
図9を参照し、ユーザは、サービスセンター130にログオンし、コンテンツを間で共有させることを望む複数のDVRの記録を作成する。ユーザは、任意の適切なユーザインタフェースを使用して、組み入れたいDVRのシリアル番号を入力し、サービスセンター130は、このシリアル番号を自身のデータベースを通じて確認する、または、ユーザが以前に登録したシリアル番号を見つける。さらに、サービスセンター130は、ユーザが登録所有者であるDVRのみを選択肢として表示することによって、それらのDVRのみにユーザを制限することもできる。ユーザは、ユニットを容易に識別できるようにするため、各ユニットに名前(例:居間DVR、寝室など)を関連付けることができる。ユーザは、メディアを共有させる、または転送させることを望むユニットを選択する。
【0089】
サービスセンター130は、ユーザが選択したユーザのユニットを識別するデジタル証明書901を作成する。証明書901は、各ユニットのシリアル番号903、905と、対応する公開鍵904、905とを含んでいる。ユーザが各ユニットに割り当てた名前は、証明書901における名前902によって示されているように、相互参照も行われる。証明書は、上述されているようなUSBドングルを有するパーソナルコンピュータを含めて、ユーザが識別する任意の数のユニットを含んでいることができる。
【0090】
証明書901が無期限に存在しないようにするため、有効期限907が証明書901に含まれている。デジタル署名908は、証明書を受信するユニットが、その証明書が実際にサービスセンター130から発行されたことを確認できるようにするために使用される。
【0091】
サービスセンター130は、証明書901にリストされている各DVR 110、770に、ネットワーク140(インターネット、LAN、あるいはその他のパブリックまたはプライベートネットワークを有することができる)、電話回線、または衛星接続を通じて、証明書を送る。証明書901は、転送先DVR 110、760、770それぞれの公開鍵を使用して暗号化することができる。携帯型DVR 760は、ネットワーク接続または電話回線を介してサービスセンター130に接続し、自身の証明書を受信することができる。これに代えて、携帯型DVR 760は、自身が接続しているDVR 110から自身の証明書を受信することができる。
【0092】
各DVR 110、760、770は、証明書を復号化して証明書901の中のデジタル署名908を確認することによって、証明書を確認する。DVRは、デジタル署名908がサービスセンター130からであることを確認すると、証明書901にリストされているすべてのピアのネットワーク位置を、ピア発見プロトコル(Apple Computer社(カリフォルニア州クパチーノ)のRendezvousなど)を使用して見つける。
【0093】
DVR 110は、ネットワーク内でピア770を発見すると、証明書901からのそのピアの公開鍵を使用して、ピア770との暗号化された接続を確立する。暗号化された接続は、各ピアから1つずつの2つの公開鍵の関数であることにおいて、「弱く」暗号化することができる。各ピアは、他方のピアの公開鍵を使用してメッセージを送る。1つのユニットがコンテンツサーバとして指定されており、この例においては、コンテンツサーバ720がサービスプロバイダによって提供され、遠隔に位置している。
【0094】
コンテンツサーバ720は、強いランダム接続鍵を作成することによって、DVR 110とのより強く暗号化された接続を作成し、DVRの公開鍵を使用してその強い鍵を暗号化する。次いで、コンテンツサーバ720は、暗号化された強い鍵をDVR 110に送る。DVR 110は、強い鍵を復号化する。1つの方法においては、復号化では、ハードウェア復号化要素を使用することができる。この時点で、2つのシステムがセキュア鍵を共有している。
【0095】
ユーザは、特定の録画されたコンテンツをDVR 110に送ることを要求することができる。コンテンツサーバ720は、以前に暗号化された録画をDVR 110に送信するときには、その録画を暗号化するのに使用された録画鍵を自身のデータベースからロードし、強い鍵を使用してその録画鍵を暗号化する。コンテンツサーバ720は、暗号化された録画鍵をDVR 110に送る。
【0096】
DVR 110は、コンテンツサーバ720と共有している強い鍵を使用して録画鍵を復号化し、その録画鍵を格納する。コンテンツサーバ720は、自身がローカルに格納した録画されたコンテンツをDVR 110に送る。録画されたコンテンツは、最初にコンテンツサーバ720によってローカルに格納されたときにすでに暗号化されたものである。コンテンツサーバ720は、録画されたコンテンツを復号化することなく送る。
【0097】
DVR 110は、録画されたコンテンツを、それを復号化することなく自身のストレージデバイスに直接書き込む。DVRは、この録画されたコンテンツを再生するとき、コンテンツをオンザフライ方式で復号化する。本文書に説明されている方法では、録画されたコンテンツの完全性が維持され、なぜなら、転送時にコンテンツは暗号化された状態にあり、暗号化されてDVRに格納されるため、コンテンツの許可されないコピーが防止されるためである。
【0098】
コンテンツサーバ720は、暗号化されていない録画をDVR 110を送る場合、その録画を暗号化するのに使用されるランダム録画鍵を作成し、その録画鍵を強い鍵を使用して暗号化する。コンテンツサーバ720は、暗号化された録画鍵をDVR 110に送る。
【0099】
DVR 110は、自身がコンテンツサーバ720と共有している強い鍵を使用して録画鍵を復号化し、その録画鍵を格納する。コンテンツサーバ720は、自身がローカルに格納した録画されたコンテンツをDVR 110に送る。録画されたコンテンツは、コンテンツサーバ720によって最初にローカルに格納されたときには暗号化されていない。コンテンツサーバ720は、録画されたコンテンツを暗号化して送る。
【0100】
DVR 110は、録画されたコンテンツを、復号化することなく自身のストレージデバイスにそのまま書き込む。DVRは、録画されたコンテンツを再生するとき、コンテンツをオンザフライ方式で復号化する。この方法でも、録画されたコンテンツの完全性が依然として維持され、なぜなら、転送時にコンテンツは暗号化された状態にあり、暗号化されてDVRに格納されるため、コンテンツの許可されないコピーが防止されるためである。
【0101】
図10は、家庭1001におけるローカルネットワーク化されているDVRのセットアップにおけるメディアサーバ1002を示している。
図10の例においては、DVR 1003は寝室1に位置しており、DVR 1004は寝室2に位置しており、DVR 1005は娯楽室に位置している。メディアサーバ1002は居間に存在している。ユーザは、DVR 1003、1004、1005およびメディアサーバ1002がコンテンツの共有を許可されるようにサービスセンター1006に命令する情報を送り、各ユニットを、それぞれが存在している部屋によって関連付ける。サービスセンター1006は、メディアサーバ1002および各DVR 1003、1004、1005のシリアル番号および公開鍵と、有効期限と、サービスセンターのデジタル署名とを含んでいる証明書901を作成する。
【0102】
メディアサーバ1002は、パーソナルコンピュータ、DVR、またはその他のタイプのコンテンツサーバとすることができる。ユーザは、メディアサーバ1002をローカルネットワークにおけるマルチメディアコンテンツのメインの提供元として指定する。
【0103】
サービスセンター1006は、メディアサーバ1002およびDVR 1003、1004、1005にインターネット1007を介して証明書を送る。メディアサーバ1002およびDVR 1003、1004、1005は、証明書の中の情報を使用してそれぞれのピアを発見する。DVR 1103、1004、1005は、メディアサーバ1002がコンテンツを提供する唯一のシステムであることを発見する。メディアサーバ1002は、各DVR 1003、1004、1005との弱く暗号化された接続を確立すると、各DVR 1003、1004、1005のための強いランダム接続鍵を作成する。メディアサーバ1002は、強い鍵のそれぞれを特定のDVRの公開鍵を使用して暗号化し、暗号化された強い鍵を各DVR 1003、1004、1005に送る。DVRは、自身のローカル暗号チップを使用して強い鍵を復号化する。この時点で、メディアサーバ1002は、各DVR 1003、1004、1005とセキュア鍵を共有している。
【0104】
図16〜
図21を参照し、各DVRは、メディアサーバのコンテンツにアクセスすることができる。最初に
図16を参照し、ユーザは、「再生中(Now Playing)」画面1601(形式および内容において
図6の「放送中(Now Showing)」画面に似ている)を表示させ、ユーザがアクセスできるすべてのメディアサーバを確認する。例えば、メディアサーバのラベル1602は、「寝室」と命名されたDVRにユーザがアクセスできることを示している。ユーザが、ラベル1602を使用して所望のサーバを選択すると、そのメディアサーバにおいて利用可能なコンテンツをリストするコンテンツ画面1701(
図17)が表示される。ユーザは、特定の録画されたコンテンツ(ミュージック、写真、ビデオなど)が特定のDVR 1003に送信されるように、コンテンツ画面1701を通じて要求することができる。ユーザは、これを、上述されているように遠隔的に行う、あるいはDVR 1003自体を通じて行うことができる。ユーザは、転送オプション画面1801(
図18)を使用して、選択されたコンテンツを転送するためのオプションを選択する。ユーザは、転送をどこから開始するかを、「開始位置(Start From)」オプション1802を使用して選択することができる。例えば、番組の最初から、ユーザが最後に一時停止した位置から、あるいは、番組における特定の時間において、転送を開始することができる。ユーザは、
図20の画面キャプチャ2001および
図21の画面キャプチャ2101に示されているように、ミュージックコンテンツと写真コンテンツについても同じ方法にて確認して転送することができる。
【0105】
図10を参照しながら上述されているように、メディアサーバ1002は、以前に暗号化された録画をDVR 1003に送ることができる。メディアサーバ1002は、録画を暗号化するのに使用された録画鍵を自身のデータベースからロードし、その録画鍵を強い鍵を使用して暗号化する。メディアサーバ1002は、オプションとして、ローカル暗号鍵を使用して録画鍵を暗号化して自身のデータベースに格納することができる。暗号鍵を平文で格納することは通常は望ましくなく、従って、ローカル鍵による単純な暗号化が最良である。メディアサーバ1002は、暗号化された録画鍵をDVR 1003に送る。
【0106】
DVR 1003は、自身がメディアサーバ1002と共有している強い鍵を使用して録画鍵を復号化し、その録画鍵を格納する。DVR 1003は、オプションとして、録画鍵を格納する前にローカル鍵を使用して暗号化することができる。メディアサーバ1002は、自身がローカルに格納した録画されたコンテンツをDVR 1003に送る。録画されたコンテンツは、メディアサーバ1002によって最初にローカルに格納されたときにすでに暗号化されたものである。メディアサーバ1002は、録画されたコンテンツを復号化することなく送る。
【0107】
DVR 1003は、録画されたコンテンツを、復号化することなく自身のストレージデバイスにそのまま書き込む。DVR 1003は、録画されたコンテンツを再生するとき、コンテンツを録画鍵を使用してオンザフライ方式で復号化する。
図19を参照し、ユーザは、番組情報画面1901を選択し、番組が依然として転送中であるかを確認することができる。ユーザは、(上述されているように)転送が進行中である間に、「再生(Play)」オプション1902を選択することによってその番組を再生する、あるいは、「転送停止(Stop transfer)」オプション1903を使用して転送を停止させることができる。
【0108】
メディアサーバ1002は、暗号化されていない録画をDVR 1003に送る場合、その録画を暗号化するのに使用されるランダム録画鍵を作成し、その録画鍵を強い鍵を使用して暗号化する。メディアサーバ1002は、暗号化された録画鍵をDVR 1003に送る。
【0109】
DVR 1003は、自身がメディアサーバ1002と共有している強い鍵を使用して録画鍵を復号化し、その録画鍵を格納する。DVR 1003は、オプションとして、録画鍵を格納する前にローカル鍵を使用して暗号化することができる。メディアサーバ1002は、自身がローカルに格納した録画されたコンテンツをDVR 1003に送る。録画されたコンテンツは、メディアサーバ1002によって最初にローカルに格納されたときには暗号化されていない。メディアサーバ1002は、録画されたコンテンツを暗号化して送る。
【0110】
DVR 1003は、録画されたコンテンツを、復号化することなく自身のストレージデバイスにそのまま書き込む。DVR 1003は、録画されたコンテンツを再生するとき、コンテンツを録画鍵を使用してオンザフライ方式で復号化する。
【0111】
なお、コンテンツの著作権が懸念される場合、DVR 1003は、そのコンテンツを自身のストレージデバイスに格納する必要はない。DVR 1003は、単にそのコンテンツをただちに再生するかまたは表示する。コンテンツが暗号化されている場合、DVR 1003は、そのコンテンツをオンザフライ方式で復号化する。
【0112】
上述されている方法は、インターネットを通じて機能するように、ローカルネットワークにおいても同様に機能する。
H. 証明書の一貫性の維持
【0113】
図11を再び参照し、強い鍵の作成には、多くのCPUサイクルを要する。1つの方法においては、DVR 1101は、将来的に自身がメディアサーバとして指定されたときに使用するための複数の強い鍵を作成して格納するように要求されることがある。さらに、受信側DVRにおいては、強い鍵の受信時にそれを復号化するために多くのCPUサイクルが必要である。これにより、DVRの全体的なパフォーマンスが大幅に遅くなる。本文書における手法では、DVR 1102がリブートするかまたは再起動されるときに新しい強い鍵を作成するという付加的な大きな負荷から、DVR 1101が解放される。さらに、リブートまたは再起動後に強い鍵を復号化するという大きな負荷から、DVR 1102が解放される。
【0114】
DVR 1101は、最初に強い接続鍵を作成し、それを自身のローカルキャッシュ1103に格納し、その鍵を他方のDVR 1102の公開鍵を使用して暗号化する。DVR 1101は、暗号化された強い鍵をDVR 1102に送る。DVR 1102は、強い鍵を復号化し、その鍵を、暗号化されている強い鍵と、DVR 1101のマシンシリアル番号と一緒に自身のローカルキャッシュ1104に格納する。
【0115】
DVR 1102は、リブートするかまたは再起動される場合、ネットワークにおける自身のステータスを認識していない。DVR 1102は、数秒間ダウンしていたかもしれず、あるいは、別のネットワークから移動されたかもしれない。DVR 1102は、メディアサーバとして指定されているDVR 1101からの強い鍵を要求する。DVR 1101は、自身がそのローカルキャッシュ1103に格納した強い鍵を送る、または、DVR 1102がDVR 1101との強い接続を確立していない場合、新しい強い鍵を作成する。この強い鍵は、DVR 1102の公開鍵を使用して暗号化され、DVR 1102に送られる。
【0116】
DVR 1102は、暗号化された強い鍵を受信すると、DVR 1101からのエントリについてローカルキャッシュ1104を調べ、見つかった場合、ローカルキャッシュ1104の中の暗号化された鍵とのビットごとの比較を行う。2つの鍵が同じである場合、DVR 1102は、ローカルキャッシュ1104に格納されている以前に復号化された鍵を使用する。それ以外の場合、DVR 1102は、新たに送られた鍵を復号化し、暗号化された鍵と、復号化された鍵と、DVR 1101のマシンシリアル番号とを、ローカルキャッシュ1104の中の新しいエントリに格納する。この方式においては、長い復号化ステップは、絶対に必要であるときを除いて回避される。
【0117】
I. インターネットを通じたメディアのダウンロード
図12は、サーバからDVRへのインターネットを通じたメディアのダウンロードを容易にするための、
図9に示されているデジタル証明書の変形を示している。また、
図7を再び参照し、サービスセンター130は、DVR 110、770に配布される証明書901を作成する。DVR 110、770は、サービスのシリアル番号フィールド903における特殊な接頭辞を持つシリアル番号、例えばFFFxxxxxxxxxxxx(「xxxxxxxxxxxx」は、バージョン番号、サービスプロバイダなどの追加情報を提供するために使用される)を使用して、サービスエントリを認識する。表示名902は、そのサービスを示す何らかの名前(「スペシャルビデオ」など)に設定される。鍵フィールド1204、1206には、直接的な公開鍵の代わりに、サーバのアクセスポイントの完全修飾ドメイン名が入力される。
【0118】
証明書901は、サービスサーバの情報と、ピアユニットの情報の両方を含んでいることができる。有効期限907とデジタル署名908は、
図9と同じである。
【0119】
このように、サービスセンター130は、すべての証明書、または一連の証明書におけるフィールドに情報を入れて、同じかまたは異なるサーバに命名することができる。
【0120】
DVR 110は、証明書におけるサービスのシリアル番号を認識し、サーバにアクセス可能であるかを確認するために、鍵フィールド(例:鍵フィールド1204)の中のドメイン名を使用してサーバにピングを送る。新しいDVRが接続されると、サーバはそのDVRの公開鍵を調べ、それを使用してそれ以外の必要な鍵を生成する。DVRは、サーバの鍵を保持している必要はない。サーバは、セッション用の強い鍵を生成し、その強い鍵をDVRの公開鍵によって暗号化する。次いで、サーバは、暗号化された強い鍵をDVRに渡す。
【0121】
通信が確立されると、DVR 110は、コンテンツについてサーバに問い合わせることができる。
【0122】
サーバは、自身において何が利用可能であるかを記述するための適切なメタデータを合成し、それをDVR 110に送る。メタデータは合成されるため、メタデータはDVRごとに一意に作成することができる。例えば、DVRの所有者は、さまざまな種類のサービス(歴史、ドラマ、コメディなど)に対してサインアップすることができる。
【0123】
これに代えて、サーバは、DVR 110にそのプリファレンスベクター(preference vector)をサーバに送るように命令することができ、サーバは、このベクターを使用して適切なメタデータを合成する。DVRのプリファレンスベクターは、ユーザの視聴傾向、例えば、ユーザが何を好き、または好きではないと指定したか、ユーザがシーズンパスサブスクリプションなどのオプションを使用して何を継続的に録画したかを含んでいる。サーバは、プリファレンスベクター情報を格納せず、この情報を使用後に破棄する。これにより、ユーザのプライバシーが保護され、プリファレンスは必ずDVR 110側に維持される。
【0124】
ビデオ、ミュージック、および写真の標準的な転送インタフェースは、上述したように使用される。
図16は、「再生中(Now Playing)」画面1601を示しており、この画面には、DVR自身と、それ以外のアクセス可能なサーバおよびDVRからの利用可能なコンテンツが表示されている(1602)。サービスからのコンテンツのエントリには、証明書からのそれに関連付けられている名前がリストされている。同様に、別のDVRからのコンテンツは、ユーザがそれに関連付けた名前1602(存在する場合)を使用してリストされている。このようにして、ユーザは、コンテンツの提供元を知る。
図17は、コンテンツの提供元の名前1702を表示しているコンテンツ画面1701を示している。
図20および
図21は、ミュージックコンテンツ画面2001と写真コンテンツ画面2101とを示している。
【0125】
図13を参照し、サーバ1301からコンテンツをダウンロードすることを望むDVRは、サーバ1301にピングを送る。サーバ1301は、ピングサービスを実行し、DVRからの要求が入って来るとそれに応答する。これによって、サーバ1301は、ビデオをダウンロードするために「サインアップしている」すべてのDVRの記録1302を維持することができる。記録1302は、例えば、ダウンロード可能なビデオに別のIPアドレスからアクセスしているDVRのクローンが存在することがないように、後から調査することができる。さらに、記録1302は、課金を目的として、ユーザがビデオをダウンロードするために自身のDVR 1303をサインアップさせていた時間長を追跡するために使用することもできる。
【0126】
DVR 1303に転送させるサーバ1301からのエントリをユーザが選択すると、DVR 1303は、サーバ1301にコンタクトし、適切なメディアオブジェクトを要求する。その時点において、サーバ1301は、番組がダウンロードされていることを記録する(1302)ことができ、この記録には、課金システムへのエントリなども含めることができる。
【0127】
この記録は、ユーザ1304がサービスセンターのWebサイト上で問い合わせることができ、従って、ユーザは、自身の課金を容易に調べることができる。
【0128】
図14を参照し、DVR 1401からの接続を一連のサードパーティサーバ1403、1404、1405の1つにリダイレクトするドメイン名リダイレクタ1402を使用することができる。リダイレクションは、負荷、使用されているドメイン名接頭辞などに基づいて行うことができる。これにより、サービスセンターは、要求を別の会社のサーバにリダイレクトすることができる。リダイレクションに伴い、さまざまな実施例における料金または収益の分配を行うことができる。
【0129】
ドメイン名リダイレクタ1402は、各サードパーティサーバ1403、1404、1405の中に存在させることができ、従って、DVR 1401からの要求をサードパーティサーバ自身によってリダイレクトすることができる。DVR 1401は、サードパーティサーバ1403との接続を要求する。サードパーティサーバ1403は、DVR 1401からの要求をサードパーティサーバ1404にリダイレクトすることによって、自身の責務をサードパーティサーバ1404に「デリゲートする」。次いで、DVR 1401は、サードパーティサーバ1404にコンタクトしてコンテンツを要求する。これにより、サードパーティサーバは、過負荷である、または何らかの理由で要求を処理できないことを自身で判断することができる。
【0130】
J. 暗号化パイプラインとしてのDVRの使用
図15を参照し、DVR 1503、1504、1505に提供されるコンテンツは、最初に、コンテンツサーバ1501(サードパーティのコンテンツサーバなど)によって作成することができる。コンテンツサーバ1501は、DVRの暗号化手法あるいはアーキテクチャに関する情報にアクセスできない。DVR 1502は、コンテンツを符号化および暗号化するために使用される。このDVR 1502は、高速ネットワークエンジンを有し、「暗号化パイプライン」として機能する。データは、コンテンツサーバ1501からDVR 1502に送られる。DVR 1502は、データを自身のローカルなストレージデバイスに書き込むときに、(必要な場合には)データを符号化し、暗号化する。次いで、DVR 1502は、ローカルストレージデバイスからデータを復号化せずに読み込み、DVR 1503、1504、1505の中から選択される対象DVRにそのデータをネットワークを通じて送る。
【0131】
別の方法では、サードパーティのコンテンツサーバに、セキュアなコンテンツ送信が提供される。データは、コンテンツサーバの暗号化手法を使用して、コンテンツサーバ1501からDVR 1502に送られる。DVR 1502は、コンテンツサーバの復号化手法を使用してデータを復号化する。次いで、DVR 1502は、データを自身のローカルなストレージデバイスに書き込むときに、(必要な場合には)データを符号化し、(DVRの暗号化手法を使用して)暗号化する。次いで、DVR 1502は、ローカルストレージデバイスからデータを復号化せずに読み込み、DVR 1503、1504、1505の中から選択される対象DVRにそのデータをネットワークを通じて送る。
【0132】
これにより、サードパーティのコンテンツサプライヤは、DVRの暗号チップ、暗号化手法、あるいはアドレッシング方式に関する機密的な情報にアクセスできない。さらに、市販されるまでの時間と、サードパーティのサプライヤをコンテンツサーバネットワークに組み込むコストとが減少する。
K. 電子メールを通じたコンテンツへのアクセス
【0133】
上述されているように、上記のいずれの実施例においても、メディアサーバは、パーソナルコンピュータ、DVR、またはコンテンツを提供できる任意の他のメカニズムとすることができる。本文書において説明されている方法では、DVRは、メディアサーバのクライアントとして、メディアサーバに格納されているマルチメディアコンテンツ(ミュージックコンテンツ、ビデオコンテンツ、写真コンテンツなど)にアクセスすることができる。しかしながら、DVRおよびメディアサーバはインターネットにアクセスすることができるため、コンテンツは、特定のメディアサーバが提供元である必要はなく、物理的に格納されている必要もない。
【0134】
従って、以下を含んでいる特殊ファイルをサーバが処理するようにすることによって、コンテンツをDVRユーザに利用可能にすることができる。
・ 実際のコンテンツ(例:JPEG、MP3、またはMPEGファイルの形式)
・ DVRのコンフィギュレーション設定、例えば、録画スケジュール、データベースの修正、コンテンツのプリファレンスなど。
・ インターネット上のどこかに位置している別のサーバ、または別のサーバに格納されているコンテンツへの「リンク」。
【0135】
そのようなファイルは、電子メールまたはインターネットダウンロードを介してDVRユーザに提供することができる。以下には、電子メールを介してコンテンツをDVRに送る方法を示す2つのサンプルシナリオが説明されている。
【0136】
図22および
図23を参照し、一般的な家庭用DVRセットアップ2201が示されている。メディアサーバ2202のみがインターネット2205にアクセスできるものと想定する。電子メールの作成者2204は、オーサリングソフトウェアによってコンテンツファイルを作成する。このファイルは、例えば、JPEG形式におけるいくつかの画像の実際のバイナリデータを含んでいる(任意のタイプのコンテンツを含んでいることができる)。コンテンツファイルは、メディアサーバ2202を実行している同じコンピュータから電子メールにアクセスするユーザに、添付ファイルとして電子メール送信される。代替実施例においては、電子メール以外のメッセージ通信メカニズムを使用することができる。
【0137】
ユーザは、電子メールを読み、コンテンツに興味がある場合、添付されているコンテンツファイルを選択し、これによりメディアサーバ2202が動作してコンテンツファイルを処理する。メディアサーバ2202は、画像に関する情報を内部データベースに追加し、この内部データベースからは、後からコンテナ(メタデータ)情報およびJPEGデータを生成することができる。
【0138】
ユーザは自身のDVR 2203を操作して自身のテレビ受像機を通じて「ミュージック/写真」機能にアクセスし、これによりDVR 2203がメディアサーバ2202からのコンテナ情報を要求する。この時点で、ユーザは、写真コンテンツ画面2101(
図21)に示されている利用可能なコンテンツの他のコンテナのうち、コンテンツファイルからの画像を有するコンテナにアクセスすることができる。画像の1つを見るためのコマンドをユーザが発行すると、DVR 2203は、メディアサーバ2202に要求を行い、メディアサーバ2202は、自身の内部データベースを調べて適切なJPEGデータをレンダリングし、そのデータをDVR 2203に渡す。DVR 2203は、画像をユーザに表示し、自身のローカルストレージデバイスにはその画像を格納しない。ユーザは、複数の写真ファイルに対して、早送り、一時停止、逆再生、再生(スライドショー)などのトリックプレイ機能を使用することができる。
【0139】
図23には、家庭用DVRセットアップ2301が示されており、このセットアップにおいては、DVR 2303とメディアサーバ2302の両方がインターネット2305にアクセスすることができる。作成者2304は、オーサリングソフトウェアによってコンテンツファイルを作成する。このファイルは、コンテンツサーバ2306に格納されておりかつHTTPを通じて提供される1つ以上のコンテンツファイル(MP3ミュージックファイルなど)にリンクしている。コンテンツファイルは、(理想的には)メディアサーバ2302を実行している同じコンピュータから電子メールにアクセスするユーザに、添付ファイルとして電子メール送信される。
【0140】
ユーザは、電子メールを読み、コンテンツに興味がある場合、添付されているコンテンツファイルを選択し、これによってメディアサーバ2302が動作してコンテンツファイルを処理する。メディアサーバ2302は、コンテンツファイルに関する情報を内部データベースに追加し、この内部データベースからは、後からコンテナ情報を生成することができる。
【0141】
ユーザは自身のDVR 2303を操作して「ミュージック/写真」機能にアクセスし、これにより、DVR 2203がメディアサーバ2302からのコンテナ情報を要求する。この時点で、ユーザは、ミュージックコンテンツ画面2001(
図20)に示されている利用可能なコンテンツの他のコンテナのうち、コンテンツサーバ2306によって提供されるミュージックを有するコンテナにアクセスすることができる。ミュージックファイルの1つを再生するためのコマンドをユーザが発行すると、DVR 2303は、インターネット2305を通じてコンテンツサーバ2306に直接アクセスし、適切なデータを取得する。ユーザは、ミュージックファイルに対して、早送り、一時停止、逆再生、再生などのトリックプレイ機能を使用することができる。ミュージックにおける進行は、接続されているテレビ受像機を通じて、
図8に示されているような再生バーを使用してユーザに表示される。DVR 2303は、著作権保護のためミュージックを自身のストレージデバイスには格納しない。
【0142】
上述されているように、上の2つの例は、DVRが使用するかまたは表示できる任意の種類のコンテンツに対して使用することができる。コンフィギュレーション情報が受信された場合、DVR 2303は、そのコンフィギュレーション情報を自身のローカルストレージデバイスに格納し、そのコンフィギュレーション情報を使用して自身を設定する。ビデオが受信された場合、DVR 2303は、後からユーザによって再生できるように、そのビデオコンテンツを自身のローカルストレージデバイスに格納することができる。ユーザは、ビデオコンテンツに対して、早送り、一時停止、逆再生、再生、スロー再生、コマ送りなどのトリックプレイ機能を使用することができる。
【0143】
DVRユーザは、本方法を使用して、電子メールを介して互いにコンテンツを共有することができる。例えば、1人のユーザが、自身のパーソナルコンピュータに格納されている個人の写真へのリンクを有するコンテンツファイルを、別のユーザに送ることができる。
【0144】
本文書における方法は、サードパーティベンダーがコンテンツを電子メールを介してDVRユーザに販売する場合にも有効に使用できる。例えば、レコード会社は、サンプル曲を含んでいるMP3ファイルへのリンクを有するコンテンツファイルを送ることによって、新しいアルバムを宣伝することができる。
【0145】
サードパーティのパートナーは、本文書における方法を使用して、DVRユーザに電子メールを介して製品を配信することができる。例えば、フィルム処理会社は、DVRユーザによってオンラインで購入されたデジタル写真を含んでいるコンテンツファイルを電子メール送信することができる。
L. IPマルチキャストを使用してのコンテンツの配信
【0146】
DVRがコンテンツを目的としてコンテンツサーバに直接コンタクトする方式には、DVRがオンデマンドにコンテンツを取得できるという利点がある。1つの欠点は、多数のDVRからのコンテンツ要求によって、コンテンツサーバが過負荷になり得ることである。その場合、コンテンツサーバはシステムにおけるボトルネックである。1つの解決策は、要求の負荷を多数のコンテンツサーバの間で分散させることができるように、さらなるコンテンツサーバを追加することである。しかしながら、この解決策は、DVRの数が多くなるにつれて、それに応じて適切に規模を拡大することができない。DVRの数に合わせてネットワークが大きくなると、コンテンツサーバのネットワークを維持することが難しくなり、コストもかかる。
【0147】
実際には、DVRがただちに取得する必要のないコンテンツが大量に存在し、例えば、ソフトウェアアップデート、広告、ファジーマルチメディア録画(fuzzy multimedia recordings)などである。DVRは、そのようなコンテンツがコンテンツサーバからDVRに送出されるのを待つことができる。DVRは、スケジュールされた送信が送られるまで待ち、予期されるコンテンツがコンテンツサーバによって送信されるのをネットワーク上でリスンするのみでよい。サーバとクライアントとの間のこの種類の同期を行うことのできる通信プロトコルが、インターネットプロトコル(IP)マルチキャストである。
【0148】
IPマルチキャストは、帯域幅が節約される方法であり、1つの情報ストリームを多数のクライアントに同時に配信することによってトラフィックが低減する。IPマルチキャストは、従来、ビデオ会議、社内通信(corporate communications)のほか、ソフトウェア、株価情報、ニュースの配信といったアプリケーションにおいて使用されてきた。
【0149】
IPマルチキャストは、任意の競争技術(competing technology)の最小のネットワーク帯域幅を使用しながら、サーバまたはクライアントに追加の負荷をかけずに、サーバのコンテンツトラフィックを複数のクライアントに配信する。高帯域幅アプリケーション(例:MPEGビデオ)では、1つのストリーム用に、利用可能なネットワーク帯域幅のうちの大きな部分が要求されることがある。これらのアプリケーションにおいては、コンテンツを複数の受信者に同時に送るための最も効率的な方法は、IPマルチキャストを使用することによる。IPマルチキャストでは、ルータ、スイッチ、ファイアウォール、その他のネットワーク機器、およびマルチキャストに関与する接続されているデバイスが、マルチキャストに対応していることが要求される(このことはRFC 1458に記載されており、この文書は本文書に参照文献として組み込まれている)。
【0150】
図24は、相互接続されているマルチキャスト対応ネットワークコンポーネントを有するネットワーク2402を示している。ネットワーク2402(例:インターネット、イントラネット)は、相互接続されているルータ2403〜2408から成る。ルータ2403〜2408は、接続されているデバイス(例:ソース2401、ホストデバイス2409〜2411)の間で情報のパケットをルーティングする。IPマルチキャストは、ブロードキャストとは異なり、なぜなら、ブロードキャストにおいては、ソースは、ネットワーク内のすべてのホストに配信されて受信されるパケットを送信するためである。これとは対照的に、1つのソースからのデータが、それを希望するいくつかの受信者にIPマルチキャストを使用して配信される。すなわち、ソース2401は、IPマルチキャストメッセージをネットワーク2402を通じて任意の数の受信者に送ることができる。IPマルチキャストパケットは、ネットワーク2402においてルータ2403〜2408によって複製される。
【0151】
任意の受信者グループが、特定のデータストリームの受信を希望することを表明する。この受信者グループは、物理的または地理的な境界を持たず、従って、ホスト2409〜2411は、インターネット上の任意の場所に位置していることができる。特定のグループに流されるデータの受信を希望するホストは、IGMP (Internet Group Management Protocol)を使用してそのグループに加入しなければならない。IGMPについては、RFC 2236にさらに説明されており、この文書は本文書に参照文献として組み込まれている。ホストは、データストリームを受信するためにはグループのメンバーでなければならない。IGMPは、特定のLAN上で個々のホストをマルチキャストグループに動的に登録するために使用される。ホスト2409〜2411は、IGMPメッセージを自身のローカルルータに送ることによってグループのメンバーシップを識別する。ルータ2403〜2408は、特定のサブネット上でアクティブまたは非アクティブであるグループを識別するために、IGMPメッセージをリスンし、定期的に問い合わせを送出する。
【0152】
M. 複数のDVRへのマルチキャストコンテンツの供給
DVRの人気が高まるにつれて、複数のDVRを所持する家庭がますます増えるであろう。
図25を参照し、1つの家庭にDVR 2502、2503、2504、2505が設置されている。ユーザは、DVR 2502、2503、2504、2505をローカルネットワークに接続している。DVR 2502、2503、2504、2505においては、ローカルネットワークに接続されているDVRを識別するための発見段階が定期的に行われる。DVR 2502、2503、2504、2505は、各DVRがローカルネットワーク内の他のDVRを見つけることのできるブロードキャストプロトコルを通じて、互いの存在を発見する。家庭のローカルネットワーク2508は、接続モデム2509(例:DSLモデム、ケーブルモデム、衛星モデム)を介してインターネット2507に接続されている。DVR 2502、2503、2504、2505は、例えばイーサネット(登録商標)接続、無線接続、および/またはUSB接続を介して家庭のローカルネットワーク2508にアクセスする。
【0153】
本発明のDVRの実施例は、(上述されているように)マルチメディアコンテンツの4つのソースとして、1)テレビ放送(すなわちケーブル、衛星、地上波など)、2)メディアサーバ、3)別のDVR、4)コンテンツサーバ、を有する。DVR 2502、2503、2504、2505は、コンテンツサーバ(例:コンテンツサーバ2506)からのコンテンツをインターネット2507を通じて要求する機能を有する。
【0154】
コンテンツとして、テレビ番組、映画、音楽、写真、広告、ソフトウェアダウンロード、番組ガイド情報のほか、デジタル情報として表現できる任意のコンテンツを、DVR 2502、2503、2504、2505によって要求することができ、コンテンツサーバ2506によって提供することができる。各DVRがコンテンツサーバにコンタクトする場合、接続経路における2つのポイントにおいてボトルネックが生じうる。第1のボトルネックは、家庭のインターネット接続2509において生じうる。各DVRがコンテンツサーバ2506に要求を行うと、コンテンツサーバ2506への要求のトラフィックと、コンテンツサーバ2506からのコンテンツのトラフィックとが、その接続の帯域幅容量を超える。この種類のボトルネックは、家庭のローカルネットワーク2508に接続されているデバイスすべてに影響を及ぼし、なぜなら、インターネットへのアクセスが大きく影響されるためである。
【0155】
第2のボトルネックは、コンテンツサーバ2506自体において生じうる。コンテンツサーバ2506は、多数のDVRからのコンテンツ要求に応じなければならず、すなわち、コンテンツサーバ2506は、要求を行う各DVRにコンテンツを送らなければならない。コンテンツ要求は冗長なことがあり、コンテンツサーバ2506は同じコンテンツの複数のストリームを同時に維持しなければならない。このボトルネックにより、要求しているDVRすべてに対するコンテンツサーバの応答時間およびコンテンツストリームが遅くなる。
【0156】
IPマルチキャストを使用すると、各DVRは、それぞれが受信を希望するコンテンツストリームに関連付けられている特定のグループをサブスクライブすることができる。コンテンツサーバ2506は、1つまたは一連のグループに対するマルチキャスタ(multicastor)となることができる。DVRは、テレビチューナーのチャンネルを変えるのと同じように、自由にグループをサブスクライブまたはアンサブスクライブすることができる。
【0157】
DVRには、DVRのグループのサブスクリプションをスケジュールするための方法が必要である。コンテンツサーバ2506は、自身がコンテンツを提供する各グループの送信時刻のスケジュールおよびコンテンツの説明を作成することができる。DVRは、コンテンツサーバ2506との短い接続の間にスケジュールを取得することができ、スケジュールには、マルチキャストデータストリームの毎日のスケジュールを記載することができる。DVRは、このスケジュールから、自動的、またはユーザ要求の結果として、1つ以上の「受信」、すなわちDVRがマルチキャストグループに加入してマルチキャストデータストリームをキャプチャする時刻をキューに入れることができる。
【0158】
本発明の実施例においては、DVRは、自動的、またはユーザの指示時に、コンテンツサーバ2506にコンタクトして、特定のコンテンツに関連する特定のデータストリームのマルチキャストスケジュールを問い合わせることができる。スケジュールされている送信時刻が通知されると、DVRは、そのストリームの受信を再スケジュールすることができる。
【0159】
図26を参照して、コンテンツサーバ2506は、データストリームの送信時刻のスケジュールを作成し、コンテンツ提供先のグループにそのストリームを割り当てる(2901)。DVR 2601〜2609は、ネットワーク2507を介してコンテンツサーバ2506にスケジュールを問い合わせてスケジュールを受信する(2902)、またはコンテンツサーバ2506によってスケジュールがDVR 2601〜2609に送出される。スケジュールには、特定の時間枠の各データストリームのコンテンツの説明と、特定のコンテンツ説明それぞれの送信時刻とが含まれている。
【0160】
コンテンツサーバ2506は、コンテンツストレージ領域2610からコンテンツを取得し、特定のマルチキャストグループに対して指定されているマルチキャスト送信を通じて、公開されているスケジュールに従ってインターネットを通じてコンテンツを送信する。
【0161】
各DVRは、希望するコンテンツを決定する。DVRは、そのコンテンツのスケジュールされた送信時刻を識別し、自身の録画スケジュールに録画時刻をスケジュールする(2903)。DVRがグループの録画を開始すべきことが録画スケジュールに示されているときには、DVRは、録画に対してリストされている(上述したような)グループに加入する(2904)。DVRは、そのグループ用のマルチキャストストリームを受信し、自身が使用するため、またはユーザが視聴できるように、そのストリームを自身のローカルストレージデバイスに格納する(2905)。
【0162】
これに代えて、各DVRは、送信がスケジュールされたときに送信に関する情報がコンテンツサーバ2506によって提供される常時存在するマルチキャストグループ、をサブスクライブすることができ、これにより、DVRまたはユーザは、そのストリームをキャプチャするか否かに関してリアルタイムで決定することができる。例えば、「突発的な出来事」(例:爆撃)が起こることがあり、ニュースマルチキャストストリームにおいて現場映像をただちに送信することができる。DVRは、ユーザ設定またはユーザプリファレンスに従ってその現場映像を自動的にキャプチャすることができ、あるいは、DVRは、出来事が起きたことと現場映像が入手可能であることとをオンスクリーン表示を通じてただちにユーザに知らせることができる。後者の場合、ユーザは、マルチキャストストリームを受信するようにDVRに命令する。DVRは、そのグループをただちにサブスクライブしてデータストリームを受信する。DVRは、送信されるデータストリームの形式が何であれ、データストリームをDVRの固有の形式に復号化する。次いで、ストリームがユーザに表示される。
【0163】
ネットワーク2507は、インターネット、イントラネット、衛星など任意のネットワークとすることができる。ハイブリッドネットワーク(例:衛星ダウンリンクと、ダイアルアップまたはブロードバンドのバックチャンネル)が使用されるときにも、システムは同様に機能する。マルチキャストストリームは衛星ダウンリンクを通じてブロードキャストされ、DVRの要求はバックチャンネルを通じて送られる。
【0164】
DVRがコンテンツサーバからの特定のデータストリームを要求したとき、その結果としてその送信がただちにスケジュールされなくてもよい。代わりに、その要求を、別のDVRからの要求とともに記録しておくことができる。コンテンツサーバは、これらの保存されている要求を使用して、自動的または手動式に、任意の有用な一連のパラメータに従って任意のタイミングにおいてデータストリームの送信をスケジュールすることができる。
【0165】
例えば、頻繁に要求されるデータストリームは、近いうちに送信されるようにスケジュールすることができ、それに対して、めったに要求されないストリームは、帯域幅コストが下がるまで送信を遅らせることができる。あるいは、ストリームが重要である、または現在の出来事に関連している、またはストリームの作成者がコンテンツプロバイダサービスにより高い料金を支払っているという理由で、データストリームを相対的に早い日時にスケジュールすることができる。
【0166】
データストリームは、リアルタイムのメディアストリーミング速度で送出される必要はなく、受信される必要もない。DVRは、コンテンツをユーザから利用可能にする前に、送信データ全体を自身のディスクドライブまたはローカルメモリにバッファリングすることができる。
【0167】
DVRは、複数のグループをサブスクライブすることができ、複数のマルチキャストストリームを平行して受信することができる。ストリームは、さまざまな帯域幅、あるいはさまざまなコンテンツを有することができる。これにより、DVRは、自身の帯域幅を最も効率的に使用して、複数のニーズに一度に対応することができる。
【0168】
穏当な量の消失パケットを許容することができるように、さまざまな手法を使用してデータ送信を符号化することが可能である。このトレードオフとして、(冗長性のため)送信のサイズが増すが、その状況は非リアルタイムの場合には許容され得る。DVRは、送信全体を正常に受信できなくても、そのデータストリームの次の送信を待機して、そのストリームのキャプチャを再試行することができる。
【0169】
N. 仮想マルチキャストネットワークの作成
IPマルチキャストにおいてネットワーク機器に課される制約が多すぎる場合には、ネットワーク化されたDVRを使用して仮想マルチキャストシステムを実施することができる。
図27および
図30を参照し、DVRマルチキャストトンネリングを使用した仮想マルチキャストシステムが示されている。DVR 2703〜2706は、ブロードキャストを通じて互いを発見し(3001)、「マルチキャストトンネル」となるDVRを選出する(3002)。この例においては、DVR 2703がマルチキャストトンネルとして選出される。
図27に示されているDVR 2703〜2706の間の接続は、概念的なデータルーティングを示すものであり、ローカルネットワークにおける実際の物理的な電気接続を示すものではない。
【0170】
選出されたDVR 2703は、ブロードキャストセンター2701に接続
され、希望するマルチキャストストリームをネットワーク2702を通じて受信するために
、登録
される(3003)。ネットワークにおける他のDVR 2704〜2706は、特定のマルチキャスト送信について、選出されたDVR 2703に登録
される。ブロードキャストセンター2701は、マルチキャストデータストリームを
、インターネット2702を通じて
選出されたDVR 2703に送信する(3004)。選出されたDVR 2703は、マルチキャストデータストリームパケットを受信し(3005)、
そのパケットを、その特定のデータストリームについて登録
されている他のDVR 2704〜2706に、ローカルネットワーク上で再ブロードキャストする(3006)。選出されたDVR 2803は、マルチキャストトンネルDVRとなり、これによってマルチキャストストリームがローカルネットワークに効率的にもたらされる。
【0171】
これに代えて、選出されたDVR 2703
は、パケットを
、ローカルネットワーク上で
他のDVR 2704〜2706に再ブロードキャストする
のみで、他のDVR
が、それらのパケットを保持、無視、または破棄することを決定することができる
ようにしても良い。
【0172】
図27には1セットのDVRが示されているが、DVRの複数のセットとブロードキャストセンターは、本発明の実施例によって容易にカバーされる。上述されているように、DVRは、さまざまな帯域幅およびさまざまなコンテンツを有する複数のマルチキャストストリームを受信することができる。DVRは、
複数のマルチキャスト送信について、1つのブロードキャストセンター
にも複数のブロードキャストセンターに
も登録することができる。
【0173】
マルチキャストストリームには、他の1つ以上のマルチキャストストリームをカプセル化することができる。すなわち、マルチキャストトンネルとして選出されているDVRは、1つ以上のマルチキャストストリームをアンパック(unpack)して、その1つ以上のストリームを別のマルチキャストトンネルに送る、またはローカルにブロードキャストすることができる。カプセル化された1つ以上のマルチキャストストリームは、論理上の容量まで1つ以上のマルチキャストストリームをさらに含んでいることができる。
【0174】
ブロードキャストセンター2701は、何百万ものアクティブなDVRに対応するように規模を拡大する必要がある。これをサポートする目的で、マルチキャストトンネルを開始するために使用されるプロトコルはデリゲーションをサポートしており、すなわち、応答するブロードキャストセンターサーバは、ローカルなマルチキャストトンネルDVRを別のブロードキャストセンターサーバにリダイレクトすることができる。これにより、ブロードキャストセンターサーバ間で負荷バランシングを行うことができ、さらには、ブロードキャストセンターサーバを、そのサーバに地理的に近いDVRに割り当てることができ、より効率的な通信を行うことができる(後からさらに詳しく説明されている)。
【0175】
選出が行われると、DVRには、最初にコンタクトすべきであると推定されるローカルブロードキャストセンターサーバの情報が提供される。この情報は、ユーザが購入後に最初にユニットをオンにしてDVRの初期化セットアッププロセスが行われるとき、またはユーザが手動でセットアッププロセスを開始するときに渡される。DVRは、初期化中に自身のサービスプロバイダにコンタクトし、最新のソフトウェアリリースを取得し、他のセットアップパラメータ(例:課金情報、そのDVRが特定の機能レベルにおいて動作することを許可されているかなど)を決定する。
【0176】
一連のブロードキャストセンターサーバは、1つの場所(またはサーバファーム)に存在する、または地理的に拡散して、閉じたマルチキャストネットワークによって相互に接続することができる。従って、ブロードキャストの1つのパケットストリームは、複数のサーバに拡散する。サーバは、接続を通じてパケットをマルチキャストトンネルDVRに転送し、マルチキャストトンネルDVRがパケットをローカルDVRに再ブロードキャストする。
【0177】
特定のブロードキャストセンターサーバへのマルチキャストトンネルDVRのデリゲーションは、サーバの負荷に基づいて、またはマルチキャストトンネルDVRのネットワーク位置に基づくことができる。さまざまなDVRからのネットワーク接続のトポロジは、ブロードキャストセンターサーバによって記録することができる。各マルチキャストDVRが
、ブロードキャストセンターサーバに登録
されると、これらのサーバは、接続されているDVRのネットワークトポロジを作成する。このトポロジは協力的なものとすることができ、中央のサーバが、すべてのブロードキャストセンターサーバから集められたトポロジデータを集計して、すべてのブロードキャストセンターサーバにトポロジマップを再配布する。このトポロジから、ネットワークホップ(BGP(ボーダーゲートウェイプロトコル)またはTTL(有効期限)値を使用して測定できる)に関して互いに「近い」接続、または地理的に近い接続を推測することが可能である。サーバは、このデータが与えられると、マルチキャストトンネルDVRを近くの接続中のブロードキャストセンターサーバにデリゲートすることが可能である。この結果として、帯域幅の使用効率と応答とを大幅に向上させることができる。
【0178】
トンネルのセットアッププロセス時、接続中のマルチキャストトンネルDVRは「真の」IPアドレスをブロードキャストセンターサーバに供給することができ、これにより、ファイアウォールの後ろを「見る」のに十分なだけDVRのトポロジを詳細化することができる。これにより、トンネルのデリゲーションをずっと的確に行うことができ、従って、ブロードキャストネットワーク全体の効率がさらに向上する。
【0179】
ネットワークにおけるマルチキャストトンネルDVR 2703の動作が何らかの理由で停止した場合、システムの接続プロトコルには、トンネルDVRに障害が発生したことをそのネットワーク内の他のDVR 2704〜2706が発見する方法(例:トンネルDVRに、またはトンネルDVRからキープアライブをときおりピングする)が用意されている。トンネルDVR 2703がダウンしていることに最初に発見したDVRは、再び選出を実施する。新しいトンネルDVRが選出され、新しいトンネルDVRは、ブロードキャストセンターサーバを介したサービスを使用してトンネル化を再開する。
【0180】
マルチキャストサービスでは、スケジュールされた時刻において重要なデータを複数回送信することによって、さらなるレベルの信頼性が提供される。マルチキャストバックボーンのセキュア動作を確保する目的で、接続中のマルチキャストトンネルDVRは、上述されている認証ポリシーを使用して、ブロードキャストセンターサーバに自身を認証させることができる。デリゲーション時、ブロードキャストセンターサーバは、暗号化されたノンス(時刻タグ、暗号化された値など)をDVRに提供する。
【0181】
ノンスは、デリゲーションのターゲットDVRに送信され、そのターゲットDVRは、ノンスが有効であることを確認する(例:ノンスが「古くない」など)(ノンスはDVRサービスからの公開鍵によって適切に復号化することができる)。有効であることが確認されると、マルチキャストパケットをそのトンネルDVRに中継することができる。
【0182】
サブネット内のセキュリティについては、2つの方法を採用することができる。第1の方法は、サブネット上のすべてのマルチキャスト受信者が、DVRサービスプロバイダからのセキュリティ証明書を共有している必要があるようにすることである。第2の方法は、任意のDVRがマルチキャストをサブスクライブできるようにし、保護の必要な送信がサービスによって暗号化されているものと想定することである。一般には、第2の方法の方が良好に機能し、なぜなら、第2の方法では、セキュリティ性が低減することなく管理上およびサポート上の負荷が小さいためである。
【0183】
これら実施例の仮想マルチキャストバックボーンは、グローバルなマルチキャスト対応ネットワークを実際に実施することなく、マルチキャスト対応ネットワークのメリットのほとんどを提供する効果的な方法となり得る。ブロードキャストセンターは、トンネル接続のトポロジを使用することで、負荷を効果的にバランスさせてネットワークが過負荷にならないようにすることができる。
【0184】
O. マルチキャストブロードキャスタ
マルチキャスタは、多くの点においてマルチチャンネルブロードキャスタ(例:衛星システムまたはケーブルシステム事業者)のように機能する。
図28を参照し、マルチキャストブロードキャスタ2801は、希望されているデータストリームが十分に存在しているとき、データストリーム2803の「常時オンの」マルチキャストをインターネット2802を通じて提供する。データストリーム2803のすべてがテレビ番組であるならば、常時オンのストリームは、伝送速度がテレビ番組のリアルタイムデータ速度に匹敵している必要がないことを除き、テレビネットワーク放送に似ている。伝送速度は、需要が満たされるように、またはコストが低減するように必要に応じて増減させることができる。
【0185】
DVR 2804〜2807は、テレビ放送チャンネルに同調するのと同様に、特定の時刻における特定のマルチキャストデータストリーム2803をリスンする。データストリームにおけるコンテンツは、DVRのローカルストレージに格納され、ストリームが受信されるにつれて構築される。マルチキャストデータストリーム2803の伝送速度によっては(すなわち伝送速度が通常の視聴速度に等しいかそれより速い場合)、DVRは、データストリームを受信しながらそのデータストリームをユーザに表示することができる。
【0186】
データストリームの応答時間は、さまざまなストリームを平行してマルチキャストすることによって、ケーブルヘッドエンドが複数のチャンネルをブロードキャストするのと同じ程度まで高めることができる。これらの複数のストリームは、さまざまな種類のデータストリームとすることもできる。例えば、1つのマルチキャストストリームは、定期的なニュース番組やスポーツ番組などの希望されているデータストリームを使用して定期的にスケジュールすることができる。別のマルチキャストストリームは、特定のデータストリームに対するDVRまたはユーザの要求を満たすために使用することができる。さらに別のマルチキャストストリームが、補助的なデータ(例:マルチキャストに利用できるデータストリームに関するメタデータ)を伝えることができる。
【0187】
また、マルチキャスタは、コンテンツのアグリゲータでもある。さまざまなコンテンツ所有者は、契約上の関係を通じて、希望されているデータストリームを利用可能にすることができる。各コンテンツ所有者に対して、コンテンツの送信に対する料金が課される。ダウンロードが行われた場合、回数に基づいてさらなる料金を課すことができる。さらに、DVRはユーザが何を視聴するかを追跡できるため、料金は、コンテンツがユーザによって視聴された回数に基づくことができる。これらの情報すべてが中央の課金サーバに集められ、この課金サーバにおいて、サービスプロバイダは各コンテンツ所有者に対する料金を計算し、コンテンツ所有者に請求することができる。
【0188】
マルチキャスタは、スケジュールされた送信時刻の前に番組のコピーをローカルキャッシュにダウンロードし、スケジュールされた時刻にその番組を送信し、次いでそのコピーを破棄することができる。これに代えて、マルチキャスタは、すべてのDVRが確実にデータを受信するように、データを複数回送信するなどのサービスを提供することができる。
【0189】
マルチキャスタは、一連のDVRからアップロードされた情報を使用して、提供するサービスの側面を調整あるいは変更することができる。あるテレビ番組が頻繁に観られる場合、マルチキャスタは、その番組の他の放映分を利用可能にする、あるいは、過去の特定の放映分を送信することができる。マルチキャストの受信に障害が発生したDVRは、マルチキャスタがインターネットサービスプロバイダと協働してネットワーク障害を解決できるように、その情報をマルチキャスタに報告することができる。
【0190】
マルチキャスタは、マルチチャンネルブロードキャスタと同様に、一般にはコンテンツと実際のマルチキャストサービスの両方に対するセキュリティを提供する。上述されているセキュリティ方式などのメカニズムを使用することにより、サービスに対するDVRの認証およびその逆の認証を行ったり、サービスの実施を制御する、コンテンツがインターネットを通じて渡されるときにコンテンツを適切に暗号化することが可能である。例えば、マルチキャスタサービスへの毎日の接続中に、コンテンツのマルチキャスト化チャンネルそれぞれの翌日の暗号化鍵をDVRにダウンロードして安全に格納しておくことができ、ただし、DVRが認証されてサービスレベルが決定された後に限られる。
【0191】
上記の明細書においては、本発明は、その特定の実施例を参照しながら説明されている。しかしながら、本発明のより広い精神および範囲から逸脱することなく、本発明にさまざまな修正および変更を行うことができることが明らかであろう。従って、本明細書および図面は、本発明の制限ではなく説明を目的としていることを理解されたい。