(57)【要約】      （修正有）【課題】高いＱｏＳを維持しつつ大量のディジタルコンテンツをインターネットで配信することを可能にする、複数の、動的コンテンツパッケージング及び負荷平衡化のためのシステム及び方法を提供する。【解決手段】コンテンツオブジェクトは、構成要素パッケージのグループに分割される。これらのグループは、そのコンテンツが後に取り出される（すなわち、プルされる）時に、隣接するネットワークピアのクラスタに分散され（すなわち、プッシュされ）、ＱｏＳ（サービス品質）を高める。トラッキングファイル（そのようなパッケージのグループを格納するネットワークピアのリストを維持する）及びトラッキングインデックス（トラッキングファイルを格納するネットワークピアのリストを維持する）が、生成されるとともに更新され、所望のコンテンツオブジェクトの「オンデマンドの」（及び持続される）取出を容易にする。【選択図】図２
2014116949.tif 000002
【特許請求の範囲】
【請求項１】
構成要素パッケージのセットに分割されたリニアコンテンツオブジェクトの構成要素パッケージのコピーの配信を変更するディジタルコンテンツ配信システムにおける方法であって、前記ディジタルコンテンツ配信システムが、格納されている前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの１つ以上の構成要素パッケージのコピーを有する複数のネットワークノードを備える、方法において、
前記リニアコンテンツオブジェクトの再生を求める前記複数のネットワークノードのプル元ネットワークノードによる要求に応答して、前記プル元ネットワークノードでの前記リニアコンテンツオブジェクトの順序付き再生のために前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットを取り出すステップと、
前記プル元ネットワークノードを含む通信を観察するステップと、
前記プル元ネットワークノードを含む通信を観察するステップに応答して、前記ディジタルコンテンツ配信システムの前記複数のネットワークノード内の前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの１つ以上の構成要素パッケージのコピーの配信を変更するステップと、を備える方法。
【請求項２】
前記プル元ネットワークノードを含む通信を観察するステップが、
前記プル元ネットワークノードへの構成要素パッケージの取り出しの時間を測定するサブステップを備え、
前記プル元ネットワークノードを含む通信を観察するステップに応答して、前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの１つ以上の構成要素パッケージのコピーの配信を変更するステップが、
前記プル元ネットワークノードへの構成要素パッケージの取り出しの前記時間がしきい値を超える場合、前記ディジタルコンテンツ配信システムの複数のネットワークノードのさらなるネットワークノードに、前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのさらなるコピーを配信するサブステップを備える、請求項１に記載の方法。
【請求項３】
前記プル元ネットワークノードを含む通信を観察するステップが、
前記プル元ネットワークノードへの構成要素パッケージの取り出しの時間を測定するサブステップを備え、
前記プル元ネットワークノードを含む通信を観察するステップに応答して、前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの１つ以上の構成要素パッケージのコピーの配信を変更するステップが、
前記プル元ネットワークノードへの構成要素パッケージの取り出しの前記時間がしきい値を超える場合、前記プル元ネットワークノードに前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのコピーを格納するサブステップを備える、請求項１に記載の方法。
【請求項４】
前記プル元ネットワークノードを含む通信を観察するステップに応答して、前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのコピーの配信を変更するステップが、
前記ネットワークノードへの構成要素パッケージの取り出しの前記時間が前記しきい値よりも小さいか又は前記しきい値と等しい場合、前記プル元ネットワークノードで再生後に前記プル元ネットワークノードから前記リニアコンテンツオブジェクトの前記１つ以上の構成要素パッケージのコピーを廃棄するサブステップをさらに備える、請求項３に記載の方法。
【請求項５】
前記プル元ネットワークノードを含む通信を観察するステップが、
前記プル元ネットワークノードへの構成要素パッケージの取り出しの時間を測定するサブステップを備え、
前記プル元ネットワークノードを含む通信を観察するステップに応答して、前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのコピーの配信を変更するステップが、
前記プル元ネットワークノードへの前記パッケージの取り出しの前記時間がしきい値を超える場合、前記プル元ネットワークノードに前記リニアコンテンツオブジェクトの構成要素パッケージのコピーを格納するサブステップを備える、請求項１に記載の方法。
【請求項６】
前記プル元ネットワークノードを含む通信を観察するステップに応答して、前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのコピーの配信を変更するステップが、
前記プル元ネットワークノードへの前記パッケージの取り出しの前記時間が前記しきい値よりも小さいか又は前記しきい値と等しい場合、前記プル元ネットワークノードで再生後に前記プル元ネットワークノードから前記リニアコンテンツオブジェクトの構成要素パッケージのコピーを廃棄するサブステップをさらに備える、請求項５に記載の方法。
【請求項７】
前記リニアコンテンツオブジェクトの再生を要求する前記複数のネットワークノードのさらなるプル元ネットワークノードと、
前記さらなるプル元ネットワークノードを含む通信を観察するステップと、
前記さらなるプル元ネットワークノードを含む通信を観察するステップに応答して、前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの１つ以上の構成要素パッケージの要求の頻度に関する情報を導き出すステップと、
前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージの要求の頻度に関する前記導き出された情報に応答して、前記ディジタルコンテンツ配信システムの前記複数のネットワークノード内の前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの前記１つ以上の構成要素パッケージのコピーの配信を変更するステップと、
をさらに備える請求項１に記載の方法。
【請求項８】
前記リニアコンテンツオブジェクトの再生を要求する前記複数のネットワークノードのさらなるプル元ネットワークノードと、
前記さらなるプル元ネットワークノードを含む通信を観察するステップと、
前記さらなるプル元ネットワークノードを含む通信を観察するサブステップに応答して、前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの個々の構成要素パッケージの要求の頻度に関する情報を導き出すステップと、
前記リニアコンテンツオブジェクトの個々の構成要素パッケージの要求の頻度に関する前記導き出された情報に応答して、前記ディジタルコンテンツ配信システムの前記複数のネットワークノード内の前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの前記個々の構成要素パッケージのコピーの配信を変更するステップと、
をさらに備える請求項１に記載の方法。
【請求項９】
ディジタルコンテンツ配信システムにおいて使用するネットワークノードであって、前記ディジタルコンテンツ配信システムが、格納されている前記リニアコンテンツオブジェクトの構成要素パッケージのセットの１つ以上の構成要素パッケージのコピーを有する複数のネットワークノードを備えるネットワークノードにおいて、
前記リニアコンテンツオブジェクトの再生を求める前記複数のネットワークノードの前記ネットワークノードによる要求に応答して、前記ネットワークノードでの前記リニアコンテンツオブジェクトの順序付き再生のために前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットを取り出すように構成されるコンテンツプラーと、
前記ネットワークノードを含む通信を観察するように構成されるネットワークモニタと、
前記ネットワークモニタが前記ネットワークノードを含む通信を観察するステップに応答して、前記ディジタルコンテンツ配信システムの前記複数のネットワークノード内の前記リニアコンテンツオブジェクトの構成要素パッケージの前記セットの１つ以上の構成要素パッケージのコピーの配信を変更するように構成されるコントローラと、を備えるネットワークノード。
【請求項１０】
前記ネットワークモニタが、
前記ネットワークノードへの構成要素パッケージの取り出しの時間を測定するようにさらに構成され、
前記コントローラが、
前記ネットワークノードへの構成要素パッケージの取り出しの前記時間がしきい値を超える場合、前記ディジタルコンテンツ配信システムのさらなるネットワークノードに、前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのさらなるコピーを配信するようにさらに構成される、請求項９に記載のネットワークノード。
【請求項１１】
前記ネットワークモニタが、
前記ネットワークノードへの構成要素パッケージの取り出しの時間を測定するようにさらに構成され、
前記コントローラが、
前記ネットワークノードへの構成要素パッケージの取り出しの前記時間がしきい値を超える場合、前記ネットワークノードに前記リニアコンテンツオブジェクトの１つ以上の構成要素パッケージのコピーを格納するようにさらに構成される、請求項９に記載のネットワークノード。
【請求項１２】
前記コントローラが、
前記ネットワークノードへの構成要素パッケージの取り出しの前記時間が前記しきい値よりも小さいか又は前記しきい値と等しい場合、前記ネットワークノードで再生後に前記ネットワークノードから前記リニアコンテンツオブジェクトの前記１つ以上の構成要素パッケージのコピーを廃棄するようにさらに構成される、請求項１１に記載のネットワークノード。
【請求項１３】
前記ネットワークモニタが、
前記ネットワークノードへのパッケージの取り出しの時間を測定するようにさらに構成され、
前記コントローラが、
前記ネットワークノードへの前記パッケージの取り出しの前記時間がしきい値を超える場合、前記ネットワークノードに前記リニアコンテンツオブジェクトの構成要素パッケージのコピーを格納するようにさらに構成される、請求項９に記載のネットワークノード。
【請求項１４】
前記コントローラが、
前記ネットワークノードへの前記パッケージの取り出しの前記時間が前記しきい値よりも小さいか又は前記しきい値と等しい場合、前記ネットワークノードで再生後に前記ネットワークノードから前記リニアコンテンツオブジェクトの構成要素パッケージのコピーを廃棄するようにさらに構成される、請求項１３に記載のネットワークノード。
【請求項１５】
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配するステップと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２のグループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出すステップと、
（ｃ）前記第３ネットワークノードを含む通信を観察するステップ（前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む）と、
（ｄ）前記第３ネットワークノードを含む通信の前記観察によって確かめられた情報に応答して、
（ｉ）前記第３ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第３ネットワークノードの属性の第１の集合を更新するタスクと、
（ｉｉ）前記第１コンテンツオブジェクトの１つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード問で前記第１コンテンツオブジェクトを再分配するタスクと、のうちの１つ以上を実行するステップと、を含み、
（ｅ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、前記第１コンテンツオブジェクトの再生に関するその要求に先立って、前記第１コンテンツオブジェクトを前記第３ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質（ＮＱｏＳ）を提供する、方法。
【請求項１６】
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
（ａ）第１のリニアコンテンツオブジェクトを構成要素パッケージの第１のグループ及び第２のグループに分割し（パッケージの前記第１のグループはパッケージの前記第２のグループよりも前の順序で発生する）、パッケージの前記第１のグループを第１のネットワークノードに配信し、パッケージの前記第２のグループを第２のネットワークノードに配信するコンテンツプッシャーと、
（ｂ）前記第１のコンテンツオブジェクトの再生を求める第３のネットワークノードによる要求に応答して、パッケージの前記第１及び第２のグループを検索し、前記第１のネットワークノード上の前記第１のグループ及び前記第２のネットワークノード上の前記第２のグループの各々の位置を識別し、前記第３のネットワークノードでの前記第１のコンテンツオブジェクトの順序付き再生のために前記第１のグループ及び前記第２のグループを取り出すコンテンツプラーと、
（ｃ）前記第３のネットワークノードを含む通信を観察するネットワークモニタ（そのような通信は、挙動アプリケーション固有のネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む）と、
（ｄ）前記ネットワークモニタにより確認された情報に応答して、
（ｉ）前記第３のネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第３のネットワークノードの属性の第１のセットを更新するタスクと、
（ｉｉ）前記第１のコンテンツオブジェクトの１つ以上のパッケージのコピーの個数及び位置を変更することにより前記ネットワークノード間で前記第１のコンテンツオブジェクトを再配信するタスク、のうちの１つ以上を実行する動的フィードバックコントローラと、を備え、
（ｅ）これにより、前記ディジタルコンテンツ配信システムは、前記第３のネットワークノードが、前記第１のコンテンツオブジェクトの再生を求めるその要求に先立って、前記第１のコンテンツオブジェクトを前記第３のネットワークノードに所定の時間間隔以内に配信する前記システムの能力を識別できるようにすることにより、ネットワークサービス品質（ＮＱｏＳ）を提供する、ディジタルコンテンツ配信システム。
【請求項１７】
請求項１又は１５に記載の方法を実行するための命令を格納する非一時的コンピュータ可読媒体を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
[01]本発明は、全般的にはディジタルコンテンツを配信する分散ネットワークに関する。より具体的には、「ビデオオンデマンド（video on demand）」を含むさまざまなコンテンツ配信アプリケーションに関するサービス品質を最適化する、動的なコンテンツパッケージング及び負荷平衡化のシステム及び方法を開示する。
【背景技術】
【０００２】
[02]コンピュータネットワークは、進歩するにつれて、アプリケーションをそのネットワーク上で動作状態にし、ネットワークリソース（処理能力、データストレージ、及びネットワーク帯域幅を含む）のさらなる需要を生じさせた。これらのネットワークリソースの共有を可能にすることに加えて、インターネットなどのより大きくより多様なネットワークは、さまざまなアプリケーションを生み出した。これらのアプリケーションは、それらが使用可能なネットワークリソースに課す異なる需要を処理するために異なるアーキテクチャ的手法を必要とする。
【０００３】
[03]実質的にすべてのインターネットアプリケーションは、純粋に集中化された手法（サーバが大量のネットワークリソースを提供し、比較的「データ処理能力のない」クライアントがほとんど最小限のリソースを要求する）から純粋に分散化された「ピアツーピア」（Ｐ２Ｐ）手法（すべてのノードが、「データ処理能力のある」クライアント兼サーバであり、同等にネットワークリソースを共有する）までの範囲の、ある形のクライアント−サーバアーキテクチャを使用する。確かに、ほとんどのアプリケーションは、この２つの極端な手法の間のどこかに含まれるアーキテクチャを使用する。
【０００４】
[04]しかしながら、インターネット自体は、高分散式のネットワークに進化してきた。このネットワークでは、相互接続されたルータの膨大なアレイが、実質的にすべてのネットワークノードの間で情報をかなり迅速に転送することを可能にする。その結果、多くのアプリケーション（集中アーキテクチャによく適すると思われるものであっても）が、インターネットの固有の分散アーキテクチャを単純に活用して、そうでなければ高い、ネットワークリソースに対する需要を軽減する。
【０００５】
[05]例えば、ウェブブラウジングなどのアプリケーションは、第１の例であり、集中化された手法を必要とすると思われる。ウェブサーバは、すべてのコンテンツを供給し、要求を行う任意のウェブクライアントに、要求時にそのコンテンツの任意の部分を分配しなければならない。しかし、コンテンツをより小さいパケットに分割しＩＰベースのプロトコルを活用することによって、多数の比較的小さいファイルを多数の異なるルートにまたがって複数のクライアントにかなり迅速に転送することができる。ウェブサーバは、多数の要求を処理するために十分な「集中化された」帯域幅を依然として提供しなければならないが、インターネット自体の分散された性質は、解決策の多くを提供する。さらに、複数の戦略的に配置されたウェブサーバにまたがるコンテンツの複製、要求元クライアントに「より近い」「エッジサーバ」での頻繁に要求されるコンテンツのキャッシングなど、他の分散機構を使用して「負荷の平衡をとる」ことができる。
【０００６】
[06]「インスタントメッセージング」（ＩＭ）及び音楽ファイル共有などの他の人気のあるアプリケーションは、その性質によってより分散式であり、大きいＰ２Ｐコミュニティを生成してきた。大量のネットワークリソースがそのエンドユーザクライアントから「離れた」中央サーバによって提供される集中化アーキテクチャと異なって、Ｐ２Ｐアーキテクチャは、ネットワークリソースを、まさにそのネットワークリソースを消費するクライアントの間で分散させる。これは、ネットワークリソースが、処理（例えば、ＳＥＴＩプロジェクト）、データストレージ（例えば、音楽ファイル共有）、又はネットワーク帯域幅（例えば、ＩＭ）を含むか否かによらない。
【０００７】
[07]しかし、オーディオ及びビデオのリアルタイム配信、具体的には「ビデオオンデマンド」（ＶＯＤ）など、所定のアプリケーションは、これまでに、主にその集中化された性質及び膨大なネットワークリソース要件に起因して、純粋に分散式のＰ２Ｐアーキテクチャ的解決策を許さなかった。例えば、ＶＯＤは、その性質によって、インスタントメッセージング又は音楽ファイル共有よりもウェブブラウジングに似た集中化アプリケーションである。大量のコンテンツ（例えば、映画及びテレビジョン放送）を、要求時に、要求を行う任意のクライアントに配信しなければならない。
【０００８】
[08]ＶＯＤは、累積的な基礎（多数のクライアントが異なるコンテンツを同時に要求するので）だけではなく、個々の要求に関してもネットワークリソースを大量に要求する。例えば、任意のクライアントへの「オンデマンド」の単一の映画の配信は、かなりの量のネットワーク帯域幅を必要とする。さらに、そのような配信は、安定し、なおかつ信頼できるものでなければならない。そのような配信は、迅速に開始され、経時的なオーディオ品質及び／又はビデオ品質の劣化なしに継続されなければならない。短く言うと、そのような配信は、十分に高い「サービス品質」（ＱｏＳ）を維持しなければならない。
【０００９】
[09]特にＶＯＤがネットワークストレージ及び帯域幅に課す大量の要求に起因して、既存の解決策は、高コストのエンタープライズレベルの専用サーバに頼ってきた。エンタープライズレベルの専用サーバは、多数のユーザにメディアコンテンツを配信するのを可能にするのに十分な大量のストレージ容量及びネットワーク帯域幅を有する。そのような解決策は、大量のネットワーク帯域幅需要を軽減するために、比較的複雑なストリーミングプロトコル及びマルチキャストプロトコルをも使用してきた。したがって、これらの解決策は、実際のところ比較的集中化されており、すなわち、大量のコンテンツを１点（中央サーバ）から複数の点（クライアント）に配信することを可能にすることを試みる。複数のサーバの負荷を平衡化するために複数のサーバを「分散させる」（すなわち、複製する）ことができる。しかし、これらのサーバのそれぞれは、大量のコンテンツを維持する必要があり、これらのサーバの間でこのコンテンツを同期化するために、大量の追加ネットワーク帯域幅を浪費する。これらの既存の解決策は、単純に、良好にスケーリングされない。なぜなら、これらの解決策が、インターネットの固有のネットワーク帯域幅制限を、軽減するのではなく悪化させる傾向にあるからである。
【００１０】
[10]図１は、インターネットの既存のグローバル物理インフラストラクチャ（すなわち、相互接続されたルータ及びクライアント／サーバコンピュータ）のある態様を示す。例えば、通常のエンドユーザクライアントノード１０は、ローカルインターネットサービスプロバイダ（ローカルＩＳＰ）２０を介してしばしば相互接続されている。ローカルＩＳＰ２０は、地域インターネットサービスプロバイダ（ＲＥＧ  ＩＳＰ）３０及び互いへの相対的に高速な接続を有する。ＲＥＧ  ＩＳＰ３０は、大きいバックボーン（ＢＢ）ルータ４０及び互いへの高速（及びより安定した／信頼できる）接続を有する。ＢＢルータ４０は、通常は光ファイバ及び他の極端に高速な接続を介して相互接続され、相対的に安定し信頼できるインターネットのコアを形成する。図１には、ノードが、ＢＢルータ４０若しくはより大きいＲＥＧ  ＩＳＰ  ３０のルータに「より近く」又はより直接に接続することによって、より高速でより安定し／信頼できる接続性（より高いコストにおいてではあるが）を入手できることも示されている。
【００１１】
[11]したがって、既存の専用ＶＯＤサーバ１００は、相対的に高速のＲＥＧ  ＩＳＰ  ３０及びＢＢルータ４０に接続されて図示されている。これは、多数のエンドユーザクライアントノード１０からの要求にサービスするためのより多くより安定し／信頼できるネットワーク帯域幅容量を提供する。しかし、上でほのめかしたように、数百台のそのような専用ＶＯＤサーバ１００を用いても、異なるコンテンツに関する多数の同時要求にサービスするのに必要な大量のネットワーク帯域幅需要を処理しようとするのに、複雑なストリーミングプロトコル及びマルチキャストプロトコルが依然として必要である。
【００１２】
[12]例えば、所与の地理的区域内の多数のクライアントが、「プライムタイム」中に同一の人気のある映画を要求する場合がある。しかし、そのような要求のそれぞれは、わずかに異なる時刻に発生する可能性が高く、全体的なネットワーク帯域幅を減らすのにこれらの「共通の」要求を活用することが、極端に難しくなる。ＶＯＤアプリケーションのこのオンデマンドの性質は、ネットワーク帯域幅の問題を指数関数的に悪化させるだけではなく、一貫して高いレベルのＱｏＳを維持することも、極端に難しくなる。
【００１３】
[13]一部のクライアントが、ＲＥＧ  ＩＳＰ  ３０及びＢＢルータ４０のより近くに配置される可能性があるが、多数の他のクライアントは、相対的に低速で安定性／信頼性のより低い接続を有し、したがって、より低い有効ＱｏＳを経験する。これは、既存ＶＯＤアーキテクチャが、実際のトラフィックを監視し管理することによってではなく、インターネットの物理インフラストラクチャに固有のかなりのネットワーク帯域幅の差を考慮に入れていない複雑なストリーミングプロトコル及びマルチキャストプロトコルを使用することによって、より高いＱｏＳを提供しようとするという事実から生じる。
【００１４】
[14]さらに、上で注記したように、より多くの専用ＶＯＤサーバ１００の追加は、これらの追加サーバの間でコンテンツを同期化するために生成されるかなりの追加ネットワーク帯域幅に起因して、しばしば非効率的である。専用ＶＯＤサーバ１００の追加を継続することは、禁止的に高価ではない場合があるが、最終的にデータベース同期化トラフィックによってインターネットを氾濫させる可能性もある。
【００１５】
[15]したがって、ＶＯＤは、高いＱｏＳを維持しながら大量のディジタルコンテンツへのアクセスをインターネットで提供するという問題の最良の例を提供する。この問題をＶＯＤアプリケーションに照らした観点におきかえるために、ＶＯＤクライアントが任意の所与の時にオンデマンドでアクセスを望む可能性がある約５００００本の「人気のある」映画（より人気の低い映画、テレビジョン放送及び再放送／アーカイブ、並びに非商用及び他の潜在的に望ましいコンテンツの無数の寄せ集めに加えて）を検討されたい。２時間の映画が、約４ＧＢのストレージを必要とする（例えば、ＭＰＥＧ２圧縮を用いる４８０ｐ標準品位解像度で、又はより新しいＭＰＥＧ４圧縮技法を使用する７２０ｐ高品位解像度で）と仮定すると、これらの５００００本の映画の単一のコピーは、約２００ＴＢのストレージ容量を必要とするはずである（現在のデータストレージの下落率をもってしても高価な提案である）。現在のブロードバンドユーザの人数の推定値は、既に数億人（６０億人の世界人口に対して測定）であり、近い期間の迅速な増加が見込まれている。最大の光ファイババックボーン（米国内だけでおおむね４ダース又は５ダース）の近くに戦略的に配置された数百台の専用サーバを用いても、各サーバは、１０万人ではないとしても１万人のユーザからのオンデマンド要求をサポートしなければならないはずである。ピーク時間中に、そのようなユーザのかなりのパーセンテージ（例えば、数千人のユーザ）が、異なるコンテンツ（又はわずかに異なる時刻に同一のコンテンツ）を要求する可能性がある。これは、数千本のオーディオ／ビデオストリームを必要とし、そのそれぞれが、約２０ＭＢ／分（すなわち、Ｔ１回線の速度の２倍）の一貫した信頼できるスループットを維持しなければならない。
【００１６】
[16]短く言うと、ＶＯＤアプリケーションは、厄介な技術的課題を提示する。この課題によって、既存ＶＯＤ「解決策」がかなりのレベルの商業的成功をまだ達成していない理由を説明することができる。実際に、多くの商業的努力は、この技術的問題の解決よりもこの問題をより御しやすいと思われるものにするために、ＶＯＤアプリケーションの性質を定義し直すことに焦点を合わせてきたと思われる。一部の解決策は、単純にＱｏＳを無視し、他の解決策は、使用可能なコンテンツの領域を大幅に削り、さらに他の解決策は、真のオンデマンド機能性ではなく「タイムスロット」を提供する。
【００１７】
[17]それでも、高いＱｏＳを維持しながらインターネットを介して大量のディジタルコンテンツへのアクセスを提供することは、手に負えない問題ではない。しかし、これは、ＶＯＤなどのアプリケーションに対する集中化された解決策が単純に良好にはスケーリングされないという認識と、ＩＰ４などのＩＰベースのプロトコルが、固有にはＱｏＳを提供しないという認識とを必要とする。必要なものは、インテリジェントな方法である。この方法は、インターネットの固有に分散式のアーキテクチャを活用することによって、ＶＯＤなどのアプリケーションの「ネットワークベースの」ＱｏＳを提供するためにネットワークトラフィックを監視し、管理する。それを行うためには、真のオンデマンド機能性がインターネットの既存インフラストラクチャ内で実現されなければならない場合に、莫大な量のストレージリソース及びネットワーク帯域幅リソースを、それらを消費するエンドユーザクライアントの「より近く」に分散させなければならない。
【００１８】
[18]また、ケーブルテレビジョンネットワークは、両方向でＩＰプロトコルを使用するのではなく、コンテンツが搬送波周波数上でディジタル信号を変調する（例えば、ＱＡＭ６４変調を使用する）ことによってクライアントに配信され、戻り経路（例えば要求に関する）が「Ｒｅａｌ  Ｔｉｍｅ  Ｓｔｒｅａｍｉｎｇ  Ｐｒｏｔｏｃｏｌ」（ＲＴＳＰ）などのプロトコルを使用する。しかしながら、インターネットなどのＩＰベースのネットワークに関するものと同一の問題の多くが、ケーブルテレビジョンネットワークにも同等にあてはまることに留意されたい。ＣＡＴＶネットワークは、インターネットと同一の、制限されたネットワーク帯域幅の問題及びスケーラビリティの問題に固有に直面する。いずれにせよ、ＣＡＴＶネットワークは、既存ネットワークインフラストラクチャの広範囲の変更がなければ、分散式の解決策を許すことがより難しい。
【発明の概要】
【課題を解決するための手段】
【００１９】
[19]本発明は、高いＱｏＳを維持しながらもインターネットを介する大量のリニアディジタルコンテンツの配信を可能にするように設計された、複数の動的なコンテンツパッケージング及び負荷平衡化のシステム及び方法に関する。本発明のさまざまな実施形態を、ＶＯＤアプリケーションに照らして開示するが、その基礎になる概念は、他のコンテンツ配信のシステム及びアプリケーションのホストに、特にディジタルコンテンツがそのようなコンテンツの最終的なユーザの「より近く」にあることから利益を得るホストに適用可能である。
【００２０】
[20]一実施形態で、ディジタルコンテンツの諸部分が、選択されたネットワークピアに分散され、そのようなコンテンツが後に取り出される時のＱｏＳを高める。更なる一実施形態では、ディジタルコンテンツのそのような諸部分の位置のインデックスが、生成され、維持され、その後、そのようなコンテンツの取出中にＱｏＳをさらに高めるのに利用される。もう１つの実施形態では、ネットワークピアの間の通信が、高いＱｏＳを維持しながらそのようなディジタルコンテンツを分散させ、取り出すプロセスを容易にするために監視される。
【００２１】
[21]図２に、ネットワークプラットフォームとしてインターネットを利用する、本発明の概念的ＶＯＤシステム実施形態を示す。図１に関して上で注記したように、インターネットの既存グローバル物理インフラストラクチャは、相互接続されたＢＢルータ４０のコア、並びにＲＥＧ  ＩＳＰ  ３０、ローカルＩＳＰ  ２０、及びエンドユーザクライアントノード１０を含む。専用ＶＯＤサーバを展開するのではなく、本発明のこの実施形態は、「ＶＯＤピア」１５（例えば、セットトップボックス、ＰＣ、ゲーム機、携帯電話機、及びさまざまな他のクライアントデバイス）をエンドユーザクライアント位置（例えば、家庭並びに他の宛先）に展開する。この形で、ＶＯＤ機能性を実施するのに必要なネットワークリソース（ストレージ、ネットワーク帯域幅、及び処理を含む）が、コンテンツにオンデマンドでアクセスし、これを見るために、そのネットワークリソースを消費するＶＯＤピア１５の間で真に分散される。
【００２２】
[22]図２にも示されるように、相対的に少数の「ＶＯＤサポートサーバ」５５が、必ずしもエンドユーザＶＯＤピア１５へのコンテンツの分散及び配信の主要な機能のためではなく、補助的な目的（初期化及びクラッシュ回復、ソフトウェア更新、フォールバック通信、及びオプションの登録）のために設けられることに留意されたい。一実施形態（下でより詳細に述べる）では、４つ又は５つのＶＯＤサポートサーバ５５が、グローバルインターネット全体を通じてＶＯＤピア１５に「最も信頼性の高い」機能を与えるのに十分である。
【００２３】
[23]十分な台数のＶＯＤピア１５が展開されるまで、ＶＯＤサポートサーバ５５を、特定の区域内のＶＯＤピア１５のグループをシミュレートするための「シード」サーバとして使用することもできる。そのようなＶＯＤピア１５が展開された時に、これらの「シード」サーバは、徐々に不必要になり、他の場所に再展開するか、他の目的に利用することができる。
【００２４】
[24]パブリケーションサーバ１６も、オンデマンドでＶＯＤピア１５から使用可能にされるコンテンツを公開する（すなわち、供給する）ことを望む任意の実体によって提供される。一実施形態で、これらのサーバは、ＶＯＤシステム内での分配のためにコンテンツを準備するように設計されたＶＯＤパブリッシングソフトウェア（図示せず）を実行するパーソナルコンピュータを含む。
【００２５】
[25]ＶＯＤピア１５は、映画、テレビジョン番組エピソード、ＮＦＬフットボールゲームなどの再放送されるスポーツイベント、及び個人のホームビデオクリップさえ含むさまざまなディジタルメディア「コンテンツオブジェクト」をオンデマンドで表示する機能性を含む。下で述べるように、１つ以上のコンテンツオブジェクトのネットワークへの公開は、「イベント」を構成する。
【００２６】
[26]本発明のＶＯＤシステムの一実施形態で、ＶＯＤピア１５は、コンテンツオブジェクトへの実質的に即時のアクセスを与えられる。どのシステムも、すべての潜在的なコンテンツオブジェクトへの即時アクセスを保証することはできないが、さまざまなＱｏＳレベルが、確立され得る。一実施形態で、ほとんどのコンテンツオブジェクト（例えば、約５００００本の最も人気のある映画を含む）に、ほぼ即時に（Ｔ０）アクセスでき、例えば、ユーザの要求から平均して短い秒数（例えば、１／２秒から１２秒までの範囲）以内に開始される。一部のコンテンツオブジェクトは、特定のＶＯＤピア１５からそれほどたやすく入手可能ではない（例えば、そのようなコンテンツオブジェクトへの「近接」に起因して）場合があり、数分又はそれ以上（Ｔ１）にわたって、例えば、３０秒から５分までの範囲内に開始されない場合がある。さらに他のコンテンツオブジェクトは、要求された時にシステム上で使用可能ですらない（Ｔ２）場合があるが、そのような要求は、「プリオーダ（ｐｒｅ−ｏｒｄｅｒ）」を起動することができる。プリオーダは、要求するユーザのＶＯＤピア１５に配信され、そこで格納される前に２４時間もの遅延をもたらす。
【００２７】
[27]一実施形態で、ＶＯＤピア１５は、１０ＧＢのストレージを有するクライアントデバイスである。このストレージの一部分（通常は約４ＧＢ）は、要求されたコンテンツオブジェクトの再生に割り振られ、残りの６ＧＢは、他の「近くの」ＶＯＤピア１５の間でコンテンツオブジェクトを「共有する」のに使用可能である。上で注記したように、ＶＯＤアプリケーションは、大量のストレージ容量を必要とするが、これは、さまざまなＶＯＤピア１５の間でコンテンツオブジェクトのストレージを分散させることによって軽減できるネットワークリソース制約である。
【００２８】
[28]したがって、コンテンツオブジェクトは、即時の配信のために最適化される構成要素「パッケージ」にフォーマットされる。下で述べるように、１つの目標は、コンテンツオブジェクトへのアクセスを「要求する」可能性が最も高いＶＯＤピア１５のできる限り「近く」にそのようなコンテンツオブジェクトの「供給」を配置することである。パッケージのサイズ及び位置は、アクセス時間を最小にするために動的に調整される。例えば、一実施形態で、平均パッケージサイズは、ビデオの約３０秒分であり、より小さいパッケージ（例えば、１０秒分）が、コンテンツオブジェクトのより早期の部分のために予約され（すなわち、ユーザが、後続パッケージが取り出されている間に映画を開始することを可能にするために）、より大きいパッケージ（例えば、２分分）が、残りの部分のために利用される。パッケージのサイズ、位置、及びコピーの個数さえをも、例えば実際に測定された配信時間、要求のパターン、及び他の要因に応じて、動的に調整することができる。
【００２９】
[29]数百テラバイトのストレージを集中化された専用サーバに展開するのではなく、そのようなストレージは、数万台又は数十万台（おそらくは数百万台）のＶＯＤピア１５の間で効率的に分散される。パッケージをＶＯＤピア１５の間でインテリジェントに分散させることによって、コンテンツオブジェクトに関する要求を、多数の異なる近くのＶＯＤピア１５からの複数のパッケージに同時にアクセスすることによって、相対的に迅速に満足することができる。
【００３０】
[30]あるノードから別のノードへコンテンツオブジェクトを「ストリーミングする」（例えば、標準的なストリーミングプロトコル及びマルチキャストプロトコルを利用して）ではなく、個々のパッケージは、標準的なＩＰベースの転送プロトコルを介して多数の異なるＶＯＤピア１５から同時にアクセスされる。したがって、ストリーミングプロトコル内でＱｏＳを実施しようとするのではなく、さまざまなネットワークトラフィック統計（例えば、アクセス時間）を監視するのにＶＯＤピア１５上の分散ソフトウェアを利用することによって、ＱｏＳをネットワーク自体の中に効果的に組み込むことができる。ネットワークトラフィック統計は、ＶＯＤピア１５要求の前にコンテンツオブジェクトのパッケージを分散させることとそのような要求に応答してこれらのパッケージにアクセスすることとの両方に使用できる。
【００３１】
[31]下でより詳細に述べるように、ＱｏＳは、効果的にネットワーク自体に組み込まれ、ＶＯＤピアのこのネットワークの固有の一体の構成要素になる。この「ネットワークベースのＱｏＳ」又は「ＮＱｏＳ」は、ＶＯＤアプリケーション及び他のアプリケーションをその上で構築できる基礎になる。
【００３２】
[32]ネットワークへのコンテンツオブジェクトの「パブリケーション」の際にそのコンテンツオブジェクトのパッケージを「プッシュする」（すなわち、それらをＶＯＤピア１５の間で分散させる）ことによって、そのようなパッケージを、その後に、任意のＶＯＤピア１５の要求時に「プルする」（すなわち、そのようなＶＯＤピア１５から取り出す）ことができるようになる。複数の方法が、この「プッシュ−プル」概念を実施するのに使用され、後にパッケージをオンデマンドでプルする可能性が最も高いＶＯＤピア１５の「近傍」内でそれらのパッケージをプッシュできるようにする。
【００３３】
[33]コンテンツが要求を待っている「エッジサーバ」に格納される従来技術のＶＯＤシステムと異なって、本発明のコンテンツオブジェクトは、どのコンテンツが（及び何個のコピーが）どのＶＯＤピア１５から使用可能にされるべきかを予測することを試みることによって、ＶＯＤピア１５の間でプッシュされる。次に、ＶＯＤピア１５は、どのコンテンツオブジェクトが使用可能でありそのコンテンツオブジェクトがどこに配置されているかに関する情報に基づいて、そのようなコンテンツをプルする要求を行うことができる。例えば、ユーザインターフェースは、十分な情報を有し、所望の映画が「即座に」使用可能であるか否か又はある遅延を必要とする可能性があるか否かを特定のユーザに示す。
【００３４】
[34]このプッシュ−プル機構を容易にする１つのそのような概念が、互いと相対的に高いＱｏＳを共有する相対的に「近い」ＶＯＤピア１５のネットワーク「クラスタ」又はグループの概念である。例えば、インターネットの物理インフラストラクチャの多くは、常に変化してはいるが、公に入手可能な情報から入手することができる。そのような情報を、ＩＰアドレス及び標準的なＩＰロケーションサービスから入手される地理的情報と共に利用して、ＶＯＤピア１５のそのようなクラスタを初期に確立することができる。これらのクラスタ内のＶＯＤピア１５の間での情報の転送は、パケット消失の確率がより低い、より制限的でないボトルネックを与える（例えば、より長いパスと比較して）。特定のクラスタ内のＶＯＤピア１５は、クラスタにまたがるＶＯＤピア１５と比較して、「より近い」すなわち、互いからのより小さい「インターネット距離」内にあると考えることができる。
【００３５】
[35]各ＶＯＤピア１５上で分散「クラスタコントローラ」ソフトウェアを提供することによって、さまざまなネットワークトラフィック統計を経時的に動的に監視することができる。例えば、接続性の既知の帯域幅及び他の態様（例えば、ノード間のホップ数）に加えて、ｐｉｎｇ時間を周期的に測定することができ、長い時間間隔にわたる接続の信頼性も周期的に測定することができる。そのような情報を分散された形で（例えば、少数の隣接物だけについて知っているＶＯＤピア１５を用いて）維持することによって、この情報を、実質的にすべてのＶＯＤピア１５に伝搬させることができる。クラスタコントローラは、実質的に、コンテンツ平衡化分散サーバである。
【００３６】
[36]さらに、「信頼」のレベルを規定することもでき、その接続性が経時的により高い信頼性を示すＶＯＤピア１５を、「より信頼性の高い」ものとして指定することができるようになっている。次に、ＶＯＤピア１５は、等しいかより低い「信頼レベル」を有する隣接するノードだけではなく、少数のより信頼性の高いＶＯＤピア１５とも通信することができる。
【００３７】
[37]これらの信頼レベルは、クラスタメンバシップの維持並びに「インタークラスタ（ｉｎｔｅｒ−Ｃｌｕｓｔｅｒ）」及び「スーパークラスタ（ｓｕｐｅｒ−Ｃｌｕｓｔｅｒ）」（すなわち、より大きいスーパーセットクラスタ）通信の管理など、より高いレベルの管理機能の責任を負う、クラスタ内の相対的により信頼性の高いＶＯＤピア１５を指定するのに利用することができる。より信頼性の高いＶＯＤピア１５は、例えば、他のノードが使用可能でない時に、これに頼ることができる。そのようなより信頼性の高いＶＯＤピア１５内のクラスタコントローラは、それ自体のクラスタを越える問題を処理するという点で、仮想「スーパークラスタコントローラ」と考えることができる。
【００３８】
[38]ＶＯＤピア１５は、デフォルトで（又はクラッシュ時に）非常に信頼性の高いノード（例えば、ＶＯＤサポートサーバ５５）に連絡することだけを知っているものとすることができ、その後、特定のクラスタに参加するために、わずかにより信頼性の低いＶＯＤピア１５に向けられる（おそらくは最も適当なクラスタを決定するためにアクセス時間をテストした後に）ものとすることができる。ＶＯＤピア１５のさまざまなクラスタを確立し、維持した後に、これらのクラスタを、ＶＯＤピア１５の間でのパッケージのプッシュと、そのようなＶＯＤピア１５からのパッケージのプルとの両方に利用することができる。
【００３９】
[39]例えば、パブリケーションサーバ１６に、特定のクラスタ内の相対的に信頼性の高いＶＯＤピア１５に連絡するように指示することができる（例えば、既知のＶＯＤサポートサーバ５５によって）。公開されるコンテンツオブジェクトに関する情報には、そのジャンル又はカテゴリ（例えば、コメディ、スポーツなど）、パブリッシャの名前（例えば、Ｄｉｓｎｅｙなどの主要なパブリッシャの、おそらく人気を示す）、タイムゾーン、タイムサイクル（例えば、それが要求される可能性が最も高い可能性がある時）、及び全体的な人気だけではなくある地理的領域内での人気をも示す他の情報を含めることができる。
【００４０】
[40]第１の例では、パブリケーションサーバ１６は、この情報を利用して、公開用コンテンツオブジェクトを準備することができる。パブリケーションサーバ１６は、このコンテンツオブジェクトを、特定のサイズのパッケージにフォーマットすることができ、事前定義のルールに基づく特定の時間間隔の間に使用可能にすることができる。或いは、多数のクラスタの間で若しくは特定の地理的領域内のクラスタの間で伝搬されることを可能にすることができる。
【００４１】
[41]特定のクラスタ内の相対的に信頼性の高いクラスタコントローラは、やはりこの情報に基づいて、クラスタ内の特定のＶＯＤピア１５にこのコンテンツオブジェクトのパッケージのある個数のコピーをプッシュ又は伝搬させるようにパブリケーションサーバ１６に指示することができる。例えば、クラスタコントローラは、特定のジャンルのコンテンツオブジェクトが、そのクラスタ又は地理的領域内で人気がより低いことを知る（包括的に又は経時的に測定された要求からのいずれかで）ことができ、したがって、そのコンテンツオブジェクトのパッケージのより少数のコピーをそのクラスタ内のＶＯＤピア１５の間で伝搬させることができる。この分散は、動的情報が収集される時に経時的に変更することができる。パッケージは、特定のコンテンツオブジェクトの要求の頻度の変化に基づいて（例えば、より多くのコメディが要求される時に）より多くの回数（又はより少ない回数）だけ複製される。
【００４２】
[42]所定の情報並びに動的に監視される情報を利用して、特定のコンテンツオブジェクトのパッケージのコピーの適当な位置、サイズ、及び個数を「予測する」ことによって、コンテンツオブジェクトを、それを要求する可能性がより高く、それらに相対的に迅速にアクセスできる可能性がより高いＶＯＤピア１５にプッシュすることができる。パブリケーションサーバ１６及びクラスタコントローラは、この情報を利用して、そのクラスタ内のＶＯＤピア１５がパッケージを要求する場合のアクセス時間を最適化するために、そのクラスタ内でそのようなパッケージを分散させる。この形で、コンテンツオブジェクトは、後に要求される時の配信時間及び総合的ＱｏＳを最適化するために、さまざまなネットワーククラスタの間で分散される。
【００４３】
[43]さらに、コンテンツオブジェクトが公開されている間に、クラスタコントローラは、クラスタ内及びクラスタ間でのコンテンツオブジェクトのパッケージの位置を示す、「トラッキングインデックス」及び関連する「トラッキングファイル」をも生成し、伝搬させる。経時的に、このトラッキングインデックス及び関連するトラッキングファイルを、パッケージの人気が高まるか下がる時に（例えば、特定のクラスタ内の要求パターンに基づいて）更新することができる。人気のより低いコンテンツオブジェクトは、経時的にネットワークから消滅する場合さえあり、その後に要求された場合に再公開される必要がある。一実施形態では、「プライベート」パブリッシャからのコンテンツオブジェクトだけが、ネットワークから完全に消滅することを許可され、商業パブリッシャからのコンテンツオブジェクトは、少なくとも最小個数の複製されたコピーがネットワーク上のどこかに格納されたままであることを保証するために、監視される。
【００４４】
[44]さまざまなネットワーククラスタにまたがってＶＯＤピア１５の間でパッケージをプッシュすることによってコンテンツオブジェクトを公開し（また、そのようなパッケージの位置を識別するトラッキングインデックス及び関連するトラッキングファイルを生成し、分散させ）、動的ネットワークトラフィックを監視し、それに従って信頼レベル、パッケージのサイズ及び位置（並びに他の属性）を変更した後に、これらのコンテンツオブジェクトは、今や、ＶＯＤピア１５によって、それ自体のシステム上での表示のためにプル又は要求することができる。隣接するＶＯＤピア１５に最初の要求を行う際に、そのような要求は、その要求されたコンテンツオブジェクトの関連するトラッキングインデックス又はトラッキングファイルにアクセスできる十分に信頼性の高いＶＯＤピア１５に達するまで伝搬される。
【００４５】
[45]パブリケーションプロセス及びプッシュプロセスの場合と同様に、分散クラスタコントローラは、プルプロセスにも多く用いられる。トラッキングインデックスを突き止めた（ｌｏｃａｔｉｎｇ）時に、クラスタコントローラは、そのコンテンツオブジェクトのパッケージのグループの位置を含む最も適当な（すなわち、「最も近い」）トラッキングファイルを識別し、次に、パッケージのこれらのグループに関する「サブ要求」を監視し、管理する責任を負う。一実施形態で、要求元のＶＯＤピア１５は、トラッキングファイルを利用し、コンテンツオブジェクトのパッケージを「共有」ストレージ空間に格納している近くのＶＯＤピア１５に直接にそのようなパッケージのグループを順番に要求する。
【００４６】
[46]プッシュプロセス中とプルプロセス中との両方に、トラッキングインデックス及び関連するトラッキングファイルは、動的に更新され、関連するＶＯＤピア１５の間で伝搬され、各パッケージ又はパッケージのグループを入手するのに必要なアクセス時間を減らす。優先順位は、コンテンツオブジェクト内のより早期のパッケージに与えられる。というのは、これらが、より早く要求されるからである。例えば、転送の成功確率を最大にするために、特殊なアルゴリズムが使用される。より後のパッケージに関して問題が発生した場合には、そのようなパッケージが「遅くなる」前に、より長い回復時間が使用可能である。これは、より多くの機会をもたらし、例えば、より信頼性の高いＶＯＤピア１５に（又は、例えば緊急の場合に、ＶＯＤサポートサーバ５５にさえ）連絡する。
【００４７】
[47]他のアルゴリズムは、より「高価な」ネットワークリソースを利用するコストを、障害の確率及び結果に対して平衡化する。例えば、より高価なＶＯＤサポートサーバ５５は、早期のパッケージ及び／又は緊急時にのみ使用されるものとすることができる。
【００４８】
[48]複数のサブ要求を並列に行うことができ、さまざまなネットワークパスが監視され、事前にテストされるので、ＶＯＤピア１５は、任意のコンテンツオブジェクトをオンデマンドで要求する時であっても、確実に高いＱｏＳとすることができる。さらに、より多くのＶＯＤクライアントが追加のコンテンツオブジェクトを要求する時に、そのようなコンテンツオブジェクトのパッケージは、後続要求のＱｏＳを最大にするために、さまざまなクラスタにまたがって適当なＶＯＤピア１５に既に事前に分散され（すなわちプッシュされ）ている。ネットワーク条件、要求パターン、又は他の測定可能な要因が経時的に変化した場合には、オンデマンド要求に先立ってパッケージのサイズ、位置、及び個数の調整が行われ、高いＱｏＳを提供する非常に拡張性のあるＶＯＤシステムがもたらされる。
【図面の簡単な説明】
【００４９】
【図１】[49]コンテンツをそのエンドユーザクライアントに対して集中化された形で格納し、配信する専用エッジサーバに頼る従来技術のＩＰベースのＶＯＤトポロジを示す図である。
【図２】[50]ＱｏＳを最適化するために、動的負荷平衡化技法を利用してネットワークトラフィックを監視し、これに応答して、これに従ってコンテンツオブジェクトパッケージのサイズ、個数、及び位置（他の属性の中でも）を変更し、追跡する、コンテンツオブジェクトがエンドユーザクライアントの間で分散Ｐ２Ｐの基礎で格納され、配信される本発明のＩＰベースのＶＯＤトポロジの実施形態を示す図である。
【図３】[51]例えばより高速の及び／又はより高く信頼できるコンテンツ配信が必要になるなど、問題が発生した場合に、より高い信頼レベルのＶＯＤピアへのアクセスを有する、類似する信頼レベル及び相対的に高いＱｏＳを互いの間で共有するＶＯＤピアのクラスタ又はグループの実施形態を示す図である。
【図４】[52]コンテンツオブジェクトのパッケージのグループが選択されたＶＯＤピアに動的にプッシュされ、高いＱｏＳを維持しながらこれらのグループをその後にクラスタ内の任意のＶＯＤピアによってオンデマンドのビューイングのためにプルできるようになっている、ＶＯＤピアの通常のクラスタの実施形態を示す図である。
【図５】[53]一意識別子、ネット近接情報、及び現在の信頼レベルなどのさまざまな動的記述子を含むＶＯＤピアに関係する静的情報と動的情報との両方を追跡するのに使用されるノードＩＤデータ構造の実施形態を示す図である。
【図６】[54]ネットワーク上で公開されるイベントを一意に識別するのに使用されるコンテンツ参照ＩＤ（ＣＲＩＤ）データ構造の実施形態を示す図である。
【図７】[55]特定のクラスタ内で公開されるコンテンツオブジェクトパッケージのグループの位置を追跡するのに使用されるトラッキングファイルデータ構造の実施形態を示す図である。
【図８】[56]関連するトラッキングファイルのコピーを有するＶＯＤピアを突き止めるのに使用されるトラッキングインデックスデータ構造の実施形態を示す図である。
【図９】[57]ＶＯＤピアの間で通信を確立する初期対称ハンドシェーキングプロトコルの実施形態を示す図である。
【図１０ａ】[58]新しいコンテンツオブジェクトをネットワーク上にアナウンスし、その後に公開する（すなわち、プッシュする）動的通信プロセスの実施形態を示す図である。
【図１０ｂ】[58]新しいコンテンツオブジェクトをネットワーク上にアナウンスし、その後に公開する（すなわち、プッシュする）動的通信プロセスの実施形態を示す図である。
【図１１】[59]本発明のＶＯＤシステムの「インスタントプレイ」機能を容易にするために、コンテンツオブジェクトを可変長パッケージにスライスすることと、それらを異なる個数のＶＯＤピアの間で分散させることとの実施形態を示す図である。
【図１２】[60]ネットワーク内のＶＯＤピアのクラスタ内とクラスタ間との両方でのＶＯＤピアの間の信頼レベルの実施形態を示す図である。
【図１３ａ】[61]ＶＯＤピアでのビューイングのために選択されたコンテンツオブジェクトをダウンロードする（すなわち、プルする）のにその後に使用される、関連するトラッキングインデックス及びトラッキングファイルを突き止める動的通信プロセスの実施形態を示す図である。
【図１３ｂ】[61]ＶＯＤピアでのビューイングのために選択されたコンテンツオブジェクトをダウンロードする（すなわち、プルする）のにその後に使用される、関連するトラッキングインデックス及びトラッキングファイルを突き止める動的通信プロセスの実施形態を示す図である。
【図１４】[62]コンテンツオブジェクトのビューイングを要求したＶＯＤピアにコンテンツオブジェクトパッケージを供給する複数のＶＯＤピアの実施形態を示す図である。
【図１５】[63]ネットワークベースのＱｏＳ（ＮＱｏＳ）を提供するために、ネットワークトラフィック及び挙動をＶＯＤピアの間で監視し、その結果としてあるＶＯＤピア及びネットワークの特性（信頼レベル及びコンテンツオブジェクトパッケージ分散など）を変更する動的通信プロセスの実施形態を示す図である。
【図１６ａ】[64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するＶＯＤピアのクラスタのパターンの実施形態を示す図である。
【図１６ｂ】[64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するＶＯＤピアのクラスタのパターンの実施形態を示す図である。
【図１６ｃ】[64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するＶＯＤピアのクラスタのパターンの実施形態を示す図である。
【図１６ｄ】[64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するＶＯＤピアのクラスタのパターンの実施形態を示す図である。
【図１７】[65]宣伝コンテンツを他のコンテンツオブジェクトの中及び間に挿入するシステムのブロック図実施形態を示す図である。
【発明を実施するための形態】
【００５０】
Ｉ．主要な概念
Ａ．クラスタ及び信頼レベル
【００５１】
[66]上で注記したように、インターネットの既存物理インフラストラクチャの所定の態様は、公に入手可能な情報から入手することができる。そのような情報を、図３に示された一実施形態で利用して、クラスタとして知られるＶＯＤピアのグループを作成することができる。標準的なＩＰアドレスロケーションサービスを、ＩＰ範囲及び他の既知の物理インフラストラクチャ情報と組み合わせて利用して、ＶＯＤピアのＩＰアドレスを、「クラスタ識別子」すなわちクラスタＩＤに効果的に変換することができる。このクラスタＩＤも、図３に示されており、クラスタの階層を識別するように働く。この実施形態では、これらのクラスタは、動的に作成され、変更される。
【００５２】
[67]これらのクラスタは、当初に、既知の物理インフラストラクチャ情報から作成され、包括的な及び実際のデータ転送の監視並びに関連するテストの実行から導出されるネットワークトラフィック統計に基づいて動的に更新されるので、ＶＯＤピアのグループ以上のものを表す。具体的に言うと、クラスタは、互いの間で特定のＱｏＳを概略的に共有するＶＯＤピアのグループを識別するように働く。
【００５３】
[68]下でより詳細に述べるように、ＶＯＤピアは、特定の時間間隔内に互いの間である量のデータを一貫して確実に（経時的に）転送できる場合に、互いから特定のインターネット距離以内にあると考えることができる。互いに相対的に「近い」これらのＶＯＤピアが、クラスタを形成する。
【００５４】
[69]ＶＯＤピアのこれらのクラスタを識別するとともにデータ転送に利用することによって、ネットワークは、別のクラスタ内の「相対的に高帯域幅の」ＶＯＤピアからよりもはるかに迅速かつ確実に、同一クラスタ内の「相対的に低帯域幅の」ＶＯＤピアから要求元ＶＯＤピアに情報を分散させることを可能にすることができる。言い換えると、「ローカル」イントラクラスタ（ｉｎｔｒａ−Ｃｌｕｓｔｅｒ）の性能及び信頼性は、後続のオンデマンド要求に関するＱｏＳの優れた予測量になる。というのは、クラスタ情報が、コンテンツオブジェクトの公開中に、コンテンツオブジェクトパッケージが格納される（プッシュされる）適当なＶＯＤピアを識別するのに利用されるからである。
【００５５】
[70]実用的な問題として、相対的に少数のＶＯＤピアだけが、大量のデータを長距離にわたって迅速かつ確実に転送する「グローバル」能力を示す高性能高信頼性バックボーンルータの「近く」にある可能性がある。しかしながら、大量のＶＯＤピアの間で相対的に高いＱｏＳを維持しながらＶＯＤ機能性を達成するためには、互いの間で迅速かつ確実にデータを交換できる相対的に「近い」ＶＯＤピアのクラスタによって共有される「ローカル」ＱｏＳを識別し、活用することが重要になる。
【００５６】
[71]あるＶＯＤピアが、より迅速かつ確実に、より大量のデータをある他のＶＯＤピアに転送する能力を経時的に示すと、そのＶＯＤピアの信頼レベルが高められる。その信頼レベルは、そのクラスタ内のＶＯＤピアの間で相対的に高いＱｏＳを維持する能力を反映することができる。この「ローカル」ＱｏＳの維持に加えて、より高い信頼レベルは、最終的に、より「グローバルな」ＱｏＳを表す。より「グローバルな」ＱｏＳは、インタークラスタ（例えば、交差しないクラスタ）及びスーパークラスタ（例えば、スーパーセットクラスタ）通信を管理するＶＯＤピアの能力を示す。
【００５７】
[72]そのような通信は、インターネットの遠隔部分へのデータ転送だけではなく、クラスタにまたがるＶＯＤピアの性能及び信頼性の管理及び監視、並びにクラスタメンバシップの変更及び「ローカル」クラスタ境界にまたがる信頼レベルの調整をも含む場合がある。さらに、下でより詳細に述べるように、これらの「非常に信頼性の高い」ＶＯＤピアは、コンテンツオブジェクトのパブリケーション及びネットワークを介するそのパッケージのプッシュ、並びにコンテンツオブジェクトの表示のためのＶＯＤピアのオンデマンド要求を満足するためのそのようなパッケージの取出すなわちプルの、所定の高水準機能的態様を管理するのにも用いられる。
【００５８】
[73]クラスタ３２０などのクラスタ内のＶＯＤピアは、類似する信頼レベルを有するある隣接するＶＯＤピア並びにより高い（及びおそらくはより低い）信頼レベルを有するいくつかのＶＯＤピアについて知らされる。これは、情報をクラスタ内の（及び時々クラスタを越えて）相対的に非常に信頼性の高いＶＯＤピアに分散された形で「上に」伝搬させ、その後、クラスタ全体を通じてより低い信頼レベルのＶＯＤピアに「下に」戻って伝搬させることを可能にする。
【００５９】
[74]個々のＶＯＤピア又は他のコンピュータ（例えば、ＶＯＤサポートサーバ）が、特定のクラスタを構成する特定のＶＯＤピアについて知る必要はない（そのような情報は、分散された形で照会を伝搬させることによって生成することができるが）。あるいは、クラスタは、分散された形で生成され、ある相対的に非常に信頼性の高いＶＯＤピアが、他の類似して非常に信頼性の高いＶＯＤピアについて知らされる。経時的に、より信頼性の低いＶＯＤピアがネットワークに参加する時に、それらのＶＯＤピアは、特定のクラスタに割り当てられ、少数のより非常に信頼性の高いＶＯＤピア並びにそれら自体の信頼レベルを有するＶＯＤピア（このすべてが同一クラスタ内にある）について知らされる。
【００６０】
[75]図３を参照すると、相対的に少数の専用ＶＯＤサポートサーバが、インターネット全体を通じて戦略的グローバル位置に位置決めされ、最高の信頼レベル３０１（例えば、１から１６までのスケール上の１）を割り当てられる。一実施形態で、これらの専用ＶＯＤサポートサーバは、高帯域幅光ファイバインターネットバックボーンルータに非常に「近く」、非常に迅速に互いの間で通信する（及びデータを転送する）ことが可能である。上で注記したように、これらのＶＯＤサポートサーバは、ＶＯＤアプリケーション機能性（コンテンツオブジェクトの格納及び取出など）に直接に利用される必要があるのではなく、単に、ＶＯＤピアがネットワークに追加される時のそれらのＶＯＤピアの初期化を含む、所定の補助的機能の実行を援助するものとすることができる。
【００６１】
[76]一実施形態で、ＶＯＤピアがネットワークに追加される時に、そのＶＯＤピアは、これらのＶＯＤサポートサーバのうちで、特定クラスタへのそのＶＯＤピアの割当を含むある初期化サービスを提供できる１つ以上のＶＯＤサポートサーバについて固有に知っている。「クラスタコントローラ」として知られる各ＶＯＤピア内の分散ソフトウェアは、この初期化プロセスに参加するだけではなく、ＶＯＤピアの代わりにイントラクラスタサービス（及び、いくつかの事例で、ＶＯＤピアの信頼レベルが十分に高い場合に、インタークラスタサービス）をも管理する。
【００６２】
[77]各ＶＯＤピアのクラスタコントローラによって分散された形で提供される（下でより詳細に述べる）これらのサービスは、主要なＶＯＤ機能性を含む。すなわち、コンテンツオブジェクトのパブリケーション及びプッシュ、各コンテンツオブジェクトのパッケージのグループの位置を維持するためのトラッキングインデックス及びトラッキングファイルの生成及び伝搬、要求元ＶＯＤピアでのコンテンツオブジェクトのオンデマンド表示のためのこれらのコンテンツオブジェクトパッケージのプル、並びにＮＱｏＳを維持するためのネットワークトラフィックの動的監視（これは、ＶＯＤピアの信頼レベルと、特定のクラスタ内のＶＯＤピアのメンバシップと、コンテンツオブジェクトのパッケージのグループのサイズ及び位置並びに関連するトラッキングインデックス及びトラッキングファイルの内容及び位置との動的な更新を伴う）などである。
【００６３】
[78]一実施形態で、同一のクラスタコントローラソフトウェアが、すべてのＶＯＤピアに存在する。このソフトウェアは、特定のクラスタ内の各ＶＯＤピアの信頼レベルを維持する責任を負う。例えば、特定のＶＯＤピアの信頼性が所定の閾値未満に低下しつつあることを検出した（ネットワークトラフィックの動的監視を介して）時に、クラスタコントローラは、そのＶＯＤピアの信頼レベルをそれ相応に下げることができる。もちろん、信頼レベルを、類似する形で高めることができる。
【００６４】
[79]十分に高い信頼レベルでは、このクラスタコントローラソフトウェアの諸部分は、インタークラスタ通信とスーパークラスタ通信との両方を含む、クラスタにまたがるＶＯＤピアの信頼レベルを維持する責任をも負う。例えば、あるＶＯＤピアの信頼レベルを単純に上げるか下げることに加えて、この仮想スーパークラスタコントローラ機能性には、あるクラスタから別のクラスタにＶＯＤピアのメンバシップを変更することをも含めることができる。あるＶＯＤピアの信頼レベルが経時的に上がる時に、そのＶＯＤピアは、以前のクラスタ（例えばクラスタ３２０）だけではなく他のクラスタをも含む、より大きいスーパークラスタ（例えば、スーパークラスタ３１０）の一部になることができる。
【００６５】
[80]一実施形態では、１６個の信頼レベルが、クラスタコントローラによって維持される。この実施形態では、最高のすなわち「最も信頼性の高い」信頼レベルが、信頼レベル１  ３０１と考えられ、このレベルは、専用ＶＯＤサポートサーバ用に予約される。ＶＯＤピアのネットワークが経時的に増大する時に、信頼レベル２〜５  ３０２が、ＶＯＤピアの総数のうちの相対的に少ない数を表すはずである。言い換えると、相対的に少ない数を超える「最も信頼性の高い」ノードが存在することは、絶対にないはずである。
【００６６】
[81]その一方で、信頼レベル６〜９  ３０３は、大量のＶＯＤピアを表す。経時的に、ＶＯＤピアは、その性能及び信頼性の動的に監視される変化に従って、これらの信頼レベルの間で定期的に上下に移動する可能性がある。信頼レベル１０〜１６（いずれも図示されていないが、ネットワーク全体にわたって分布するさまざまな信頼レベル３０５に含まれる）は、相対的に少数の「信頼できない」又は「異常に低帯域幅の」ＶＯＤピアを表す。それでも、信頼レベル１６は、３０分の持続時間にわたる平均ネットワーク負荷時間中に１００ｋｂｐｓなど、ＶＯＤピアの許容できる配信確率の「フロア」を表すことができる。
【００６７】
[82]例えば、信頼レベル１２  ３０４は、一実施形態で、ＶＯＤピアが、当初にネットワークに接続される（又は、例えばハードウェア障害の後に、再接続される）時に割り当てられる「デフォルト」信頼レベルと考えることができる。そのクラスタコントローラが、ネットワークトラフィックを経時的に動的に監視することによって統計情報を入手する時に、その信頼レベルが、ＱｏＳに対するそのＶＯＤピアの影響をより正確に反映するために、その統計情報に従って調整される。実際には、ネットワーク接続性の持続時間自体が、ＶＯＤピアの信頼レベルの判定に寄与する信頼性要因である。
【００６８】
[83]一実施形態では、信頼レベルは、それ自体がさまざまな「信頼レベル要因」を組み合わせることから判定される、４つの主要な「信頼レベルパラメータ」を反映する。この４つの信頼レベルパラメータは、さまざまな領域にまたがるＱｏＳに対するＶＯＤピアの影響を表し、
（１）ＶＯＤピアの「ローカル」クラスタ、
（２）そのより大きい「地域」クラスタ、
（３）国又は大陸など、より「遠隔の」より大きい領域、及び
（４）帯域幅及び相互接続性が制限される、コアインターネットの相対的に遠隔の部分
を含む。
【００６９】
[84]下でより詳細に述べる信頼レベル要因は、ネットワークトラフィックを動的に監視することから導出されるさまざまな統計を含む。これらの信頼レベル要因が、各信頼レベルパラメータによって表される領域に関して組み合わされて、その領域内のＱｏＳを反映する信頼レベルパラメータが生成される。次に、これらの信頼レベルパラメータが、ローカルＱｏＳだけではなく、ＶＯＤピアをインタークラスタ責任及びスーパークラスタ責任について信頼できる度合をも反映する「グローバル」信頼レベルを生成するために組み合わされる。一実施形態で、この信頼レベルは、信頼レベルパラメータの加重平均によって判定される。
【００７０】
[85]もちろん、信頼レベル要因を経時的に補足し、置換し、微調整し、信頼レベルパラメータ領域にまたがってさまざまなＱｏＳレベルをより正確に表すことを試みてることができる。一実施形態で、これらの信頼レベル要因は、
（ｉ）ロード時間（例えば、夕方早くの「プライムタイム」時間中のより高いトラフィックを反映する）、
（ｉｉ）高負荷時間中の相対的にローカルなピアへの「高速」サービス配信の確率、
（ｉｉｉ）次の５００時間の間にオンラインのままである確率、
（ｉｖ）「非常に遠隔の」ＶＯＤピアへの「高速」サービス配信の確率（インターネットを介するよい接続性を反映する）、
（ｖ）所与のＩＳＰへの最高速度、及び
（ｖｉ）所与のＩＳＰからの最高速度
を含む、経時的に動的に測定できる無数の属性を含む。
Ｂ．トラッキングファイル及びトラッキングインデックス
【００７１】
[86]コンテンツオブジェクトがＶＯＤピア全体に分散され、オンデマンドで取り出される、本発明の主要なプッシュプロセス及びプルプロセスを述べる前に、まず、主要なデータ構造の一部を説明することが役に立つ。主要なデータ構造は、これらのＶＯＤピアの間で分散されるコンテンツオブジェクトのパッケージのグループの位置を「追跡する（ｔｒａｃｋ）」のに使用される。一実施形態で、これらのデータ構造は、新たに公開されるコンテンツオブジェクトのパッケージのグループがさまざまなＶＯＤピアにプッシュされるパブリケーションプロセス中に作成され、更新され、その後、取出プロセス中に、コンテンツオブジェクトに関するＶＯＤピアのオンデマンド要求を満足するのに利用される。これらのデータ構造は、後続要求の相対的に高いＱｏＳを維持するために、クラスタコントローラによるネットワークトラフィックの動的監視に応答して、経時的に更新もされる。
【００７２】
[87]コンテンツオブジェクトが分割されるパッケージのさまざまなグループの位置を追跡するのに、２つの主要なデータ構造が使用される。すなわち、（１）トラッキングファイル及び（２）トラッキングインデックスである。これらのデータ構造を調査する前に、コンテンツオブジェクトを、１つ以上のコンテンツオブジェクトを公開することというイベントと区別することが重要である。例えば、ある映画が、１つのコンテンツオブジェクトを構成することができ、その予告編が、もう１つの別々のコンテンツオブジェクトを構成することができる。予告編のパブリケーションを、イベントとすることができ、映画のパブリケーションを、別々のイベントとすることができる。さらに、固定された地理的区域（例えば、ニューヨーク及びカリフォルニア）での映画の「早期封切り」のパブリケーションが、同一パブリッシャによるものであれ異なるパブリッシャによるものであれ、同一のコンテンツオブジェクト（映画）のより後の全世界のパブリケーションと区別可能な、別々のイベントを構成することもできる。
【００７３】
[88]したがって、これらのデータ構造は、コンテンツオブジェクトのパッケージのグループの位置の追跡を援助するが、その存在は、１つ以上のコンテンツオブジェクトを公開することを含むイベントに基づく。一実施形態では、複数のコンテンツオブジェクトを単一のイベントで公開することができるが、もう１つの実施形態では、各コンテンツオブジェクトのパブリケーションが別々のイベントを構成することができることに留意されたい。
【００７４】
[89]さらに、これらのデータ構造自体を、これらのデータ構造の全体が必ずしも任意の単一の位置に存在する必要がないという点で、「分散させる」ことができることに留意されたい。これらのデータ構造は、例えば、個々のクラスタ内に「サブセット版」が存在するように階層化することができる。スーパークラスタは、そのスーパークラスタ内に含まれる追加クラスタを含む追加エントリを有する「スーパーセット版」を含むことができる。これらのデータ構造は、「隣接する」ＶＯＤピアだけを含むエントリを含むように、より従来に近い方法で分散させることもでき、これは、エントリのより大きいセット（例えば、クラスタ全体を含む）を入手するための要求を伝えることが必要である。
【００７５】
[90]第１の主要なデータ構造であるトラッキングファイルは、特定のクラスタ内で公開されたコンテンツオブジェクトのパッケージのグループの位置を追跡するのに使用される。一実施形態で、各「葉」クラスタ（すなわち、さらにサブクラスタに分割されることのないクラスタ）内の別々のトラッキングファイルは、コンテンツオブジェクトがそのクラスタ内で公開されるイベントのそれぞれを追跡する。上で注記したように、スーパーセットクラスタは、その「サブクラスタ」のそれぞれのエントリを含む「スーパーセット」トラッキングファイルを含むことができる。
【００７６】
[91]１つのクラスタの中であっても、トラッキングファイルをさらに「分散させる」ことができる。言い換えると、トラッキングファイルは、コンテンツオブジェクトがそのクラスタ内で公開されるイベントのそれぞれのエントリを含むことができるが、下でさらに述べるように、あるＶＯＤピアにあるトラッキングファイルのコピーが、その代わりに、そのＶＯＤピアが含まれたイベントのエントリだけを含むことができる。
【００７７】
[92]どの場合でも、トラッキングファイルは、コンテンツオブジェクトのパッケージのグループを、パッケージのその特定のグループのコピーが格納されているＶＯＤピア（例えば、これらのＶＯＤピアのＩＰアドレス）に相互に関連させる。例えば、上で注記したように、映画などのコンテンツオブジェクトを、平均してそれぞれ約３０秒の変化するサイズの１０００個の異なるパッケージに分割することができ、この映画の早期の部分は、相対的により小さい、おそらくは１０秒だけのパッケージを含み、他のパッケージは、２分もの大きさとすることができる。トラッキングファイルは、そのコンテンツオブジェクトの最初の６つのパッケージのグループのエントリを含むことができ、このグループは、クラスタ内の８つの異なるＶＯＤピアに相互に関連するものとすることができ、これらのＶＯＤピアのそれぞれは、一緒にその映画の最初の分を表す６つのパッケージのグループのコピーを含む（コンテンツオブジェクトの人気に応じて、冗長性並びに高いＱｏＳのために）。
【００７８】
[93]追加のエントリが、そのコンテンツオブジェクトのパッケージの残りのグループ及びおそらくはそのクラスタ内で公開された他のコンテンツオブジェクトのパッケージのグループを説明することができる。例えば、下でより詳細に述べるように、イベントが、コンテンツオブジェクトのパブリケーションをもたらす時に、ある「マスタ」ＶＯＤピアが、そのコンテンツオブジェクトのパッケージのグループの伝搬を管理するために選択される。これらの「マスタ」ＶＯＤピア（そのコンテンツオブジェクトのパッケージのグループのいずれかを格納してもしなくてもよい）に加えて、他のＶＯＤピアが、そのコンテンツオブジェクトのパッケージのあるグループを格納するために選択される。
【００７９】
[94]一実施形態で、そのコンテンツオブジェクトのパブリケーションに用いられるＶＯＤピア（例えば、「マスタ」ＶＯＤピア並びにそのコンテンツオブジェクトのパッケージのグループを格納するＶＯＤピア）のそれぞれは、そのコンテンツオブジェクトのパッケージの各グループを、パッケージのそのグループが格納されているそのクラスタ内のすべてのＶＯＤピアに相互に関連させるエントリを有するトラッキングファイルを有する。これによって、そのトラッキングファイルのコピーのどれであっても、要求のさらなる伝搬を伴わずにそのコンテンツオブジェクト全体を突き止めるのに使用できるようになる。
【００８０】
[95]一実施形態で、トラッキングファイルは、１つ以上の「マスタ」ＶＯＤピア自体がコンテンツオブジェクトのパッケージのグループを格納するか否かにかかわりなく、その１つ以上の「マスタ」ＶＯＤピアを識別する情報をも含む。他の実施形態では、上で注記したように、トラッキングファイルを、さらに「分散させる」ことができる（例えば、パッケージの関連するグループを格納する「隣接する」ＶＯＤピアだけのエントリを含めるために、コンテンツオブジェクトのパッケージのグループのすべてを格納するＶＯＤピアを突き止める要求のさらなる伝搬が必要になる）。
【００８１】
[96]あるＶＯＤピアが、別のイベント（例えば、ネットワークに公開される異なるコンテンツオブジェクトのパッケージのグループの格納）にも用いられる場合に、別々のトラッキングファイルを、上で説明したように生成することができる。もう１つの実施形態では、その別のコンテンツオブジェクトのパッケージのグループに関する追加エントリを有する、同一のトラッキングファイルを利用することができる。どの場合でも、下でより詳細に述べるように、イベントにまたがって（例えば、２つの異なるコンテンツオブジェクトにまたがって）パッケージのグループを識別する、ある手段が設けられるはずである。
【００８２】
[97]一実施形態では、特定のコンテンツオブジェクトのパッケージのグループの効率的なルックアップを容易にするために、暗号ハッシュアルゴリズムが使用される。コンテンツオブジェクトの各パッケージは、比較的少ないメモリ（例えば、ファイルポインタ、ハンドルなどのための）を利用する小さいブロック内でパッケージを検証できるようにする（例えば、ターゲットＶＯＤピアに複製されるか配信される時に）ために、共通のハッシュ値を割り当てられる。このハッシュベースのデータ構造は、
（ｉ）コンテンツオブジェクトの全パッケージの総データサイズ、コンテンツオブジェクトが分割されたパッケージの個数、及びパッケージへの分割の前のオリジナルのコンテンツオブジェクトデータストリームへのオフセットを含むヘッダと、
（ｉｉ）各パッケージの共通のハッシュ値の検証を可能にする、各パッケージの内部ハッシュツリーのルートハッシュ値を含むパッケージ間ハッシュテーブルツリーと、
（ｉｉｉ）そのようなパッケージが格納されるデータへのオフセットのルックアップを可能にする、パッケージ内ハッシュツリーテーブルと、
（ｉｖ）データ自体（すなわち、各パッケージの内容）
とを含む。このデータ保全性検査インフラストラクチャを公開鍵インフラストラクチャと組み合わせることによって、経時的な粒度を伴って所望のＶＯＤピアへのパッケージの複製及び配信に関するコンテンツオブジェクト妥当性を制御する（例えば、許可し、又は取り消す）ことが可能になる。
【００８３】
[98]したがって、トラッキングファイルは、コンテンツオブジェクトが公開され、各クラスタ内の選択されたＶＯＤピアにプッシュされる時に、生成され、変更される。しかし、コンテンツオブジェクトをオンデマンドで要求するＶＯＤピアにこれらのパッケージを取り出すかプルするのにこれらのトラッキングファイルを利用するためには、まず、これらのトラッキングファイルを突き止めなければならない。
【００８４】
[99]一実施形態で、トラッキングインデックスは、関連するトラッキングファイルを突き止める代替手段を容易にするために、トラッキングファイルが作成される時に生成され、更新される。したがって、下でより詳細に述べるように、特定のコンテンツオブジェクトに関するオンデマンド要求は、検索をもたらすことができ、この検索では、関連するトラッキングファイルを直接に突き止めることができるかトラッキングインデックスを介して間接的に突き止めることができる。通常、そのような検索は、トラッキングインデックスが突き止められるまで「上に」（すなわち、より高い信頼レベルを有するＶＯＤピアに）伝搬し、このトラッキングインデックスは、関連するトラッキングファイルのコピーを有するさまざまな「候補」ＶＯＤピアを識別する。次に、要求が、そのような候補ＶＯＤピアのうちで十分に「近い」ＶＯＤピアが突き止められるまで「下に」伝搬し、その後には、パッケージのグループを突き止め、要求元ＶＯＤピアに配信することができる。
【００８５】
[100]したがって、トラッキングインデックスは、イベントを、そのイベントに関して公開されたコンテンツオブジェクトに関連するトラッキングファイルのコピーを有するＶＯＤピアの位置に相互に関連させる。一実施形態で、トラッキングインデックス自体は、階層化されたファイルであり、より多数のエントリが、より高い信頼レベルを有するＶＯＤピア（例えば、スーパークラスタを包含するＶＯＤピア）に存在する。
【００８６】
[101]トラッキングインデックスの各エントリは、「コンテンツ参照ＩＤ」すなわち「ＣＲＩＤ」を含む。ＣＲＩＤは、それに従って１つ以上のコンテンツオブジェクトが公開された関連するイベントを一意に識別する（及び／又は関連するコンテンツオブジェクト若しくはその構成要素を区別する）ように働く。一実施形態で、各イベントのエントリは、トラッキングインデックスの複数の行を占めることができる。
【００８７】
[102]例えば、各エントリの第１行には、「コアＣＲＩＤ」（下で述べる）を含めることができる。コアＣＲＩＤは、コンテンツオブジェクトの特定の版（例えば、Ｄｉｓｎｅｙによって公開された映画「Ａｌａｄｄｉｎ」）を、特定の「葉」クラスタ内の各ＶＯＤピア（又は、一実施形態では、各「マスタ」ＶＯＤピアのみ）のＩＰアドレスに相互に関連させる。特定の「葉」クラスタは、そのコンテンツオブジェクトに関連するトラッキングファイルのコピーを格納する。後続行には、同一のコアＣＲＩＤと、別の「葉」クラスタ内の類似するＶＯＤピアのＩＰアドレスが含まれるはずである。
【００８８】
[103]したがって、スーパークラスタを含むより高い信頼レベルのＶＯＤピアは、トラッキングインデックスを格納することができる。トラッキングインデックスは、イベントがそこで公開された各サブクラスタに相互に関連する複数の行を有する。関連するトラッキングファイルのコピーを格納するＶＯＤピアを識別するこれらのコアＣＲＩＤ行に加えて、追加の行が、コアＣＲＩＤ自体の構成要素と共に、これから下で説明するＣＲＩＤの他の構成要素を含むはずである。
【００８９】
[104]一実施形態で、コアＣＲＩＤは、一緒にコンテンツオブジェクトの版を一意に識別する２つのフィールドからなる。第１のフィールドは、イベントに関連するパブリッシャを一意に識別する「パブリッシャＩＤ」である。第２のフィールドは、そのパブリッシャについて、公開されるコンテンツオブジェクトを一意に識別する「イベントセレクタ」である。例えば、Ｄｉｓｎｅｙが、ネットワーク上で映画「Ａｌａｄｄｉｎ」を公開する場合に、イベントセレクタは、Ａｌａｄｄｉｎのその版を一意に識別するはずである。このレベルの粒度は、例えば、ユーザがオンデマンドで表示されるコンテンツオブジェクトを選択できるレベルに相互に関連するものとすることができる。
【００９０】
[105]しかし、ＣＲＩＤの他の構成要素は、そのコンテンツオブジェクトがそれに従って公開されたイベントをさらに識別するように働く。例えば、ＤｉｓｎｅｙのＡｌａｄｄｉｎの「予告編」を見ることを望むユーザに対処するために、他のフィールドが、同一のコアＣＲＩＤを共通して共有しながらも、映画を予告編から区別することができる。実施形態に応じて、映画及び予告編のパブリケーションは、単一のイベント又は複数の別々のイベントを構成することができる。
【００９１】
[106]一実施形態で、ＣＲＩＤは、コアＣＲＩＤに加えて、イベントをさらに記述する３つの他の「記述子」を含む。第１の記述子は、パブリケーションがそこから発する区域を識別する「パブリケーションゾーン」フィールド（例えば、都市又は郵便番号）並びにコンテンツオブジェクトを公開できる場所を示す「パブリケーション権利」フィールドを含む「主記述子」（例えば、郵便番号の範囲）である。このパブリケーション権利フィールドは、もちろん、不連続な区域（例えば、ロサンゼルス及びニューヨーク）を包含する複数のエントリを含むことができる。
【００９２】
[107]第２の記述子は、特定のイベントの人気を予測する（例えば、公開されたコンテンツオブジェクトのより多くのコピーを一部又はすべてのクラスタにプッシュすることによって）システムの能力を容易にする、パブリッシャに関する情報を提供する「パブリッシャ記述子」である。パブリッシャ記述子は、例えばより小さくより人気の低いパブリッシャからＤｉｓｎｅｙを区別できる「パブリッシャ優先順位」フィールドと、そのパブリッシャによって公開されたコンテンツを全般的に分類することを試みる（例えば、プライベートコンテンツ、生放送、コマーシャル映画、ポルノグラフィなど）「パブリッシャカテゴリ」フィールドとを含む。
【００９３】
[108]最後に、「終了記述子」は、関連するコンテンツオブジェクトを含むイベントを区別し、補足情報を提供するように働く単一のフィールドを含む。例えば、このフィールドの値は、映画（「００」）をそのメタデータ（「０１」、題名、カテゴリ、封切り日などの映画に関する情報を含むテキスト並びにテキスト形式、グラフィック形式、ビデオ形式、又は他の形式の他の関連情報に関する）、又は「追加資産」（「０２」、予告編、ストーリーボード、監督の注釈などに関する）から区別することができる。
【００９４】
[109]実施形態に応じて、これらの関連する資産を、単一のコンテンツオブジェクトの一部又は別々のコンテンツオブジェクトと考えることができ、これらの関連する資産を、単一のイベントとして又は別々のイベントとして公開することができる。したがって、ＣＲＩＤは、別々の関連するイベントを区別するように、或いは単純に関連するコンテンツオブジェクト（若しくはその構成要素）を異なるレベルの粒度で識別するように働くことができる。
【００９５】
[110]一実施形態で、トラッキングインデックスは、相対的に高い信頼レベルの（例えば、スーパークラスタに関連する）ＶＯＤピアのみによって維持される。下でより詳細に説明するように、コンテンツオブジェクトが公開される時に、そのイベントは、トラッキングインデックス（そのイベント及び他のイベントに関する）を維持する十分に非常に信頼性の高いＶＯＤピアへの「上への」並びにそのトラッキングインデックスのコピーをやはり維持する他の同様に非常に信頼性の高い（例えば、他のスーパークラスタを管理する）ＶＯＤピアへの「横への」要求の伝搬を起動する。
【００９６】
[111]上で注記したように、このトラッキングインデックスは、他のより信頼性の低い（例えば、「より低いレベルの」スーパークラスタを管理する）ＶＯＤピアも、より少数のエントリ（そのサブクラスタだけを反映する）を有する、そのトラッキングインデックスのコピーを維持することができるという点で、階層化することができる。さらに、このトラッキングインデックスは、そのサブクラスタ内で公開されたコンテンツオブジェクトに関するエントリだけ及びおそらくは関連するトラッキングファイルを有する「隣接する」ＶＯＤピアのＩＰアドレスだけを含むことができるという点で、さらに「分散させる」こともできる。
【００９７】
[112]例えば、トラッキングインデックス及びトラッキングファイルの検索（例えば、ＶＯＤピアがコンテンツオブジェクトを表示するためにオンデマンド要求を行う時）を含むさまざまな機能に関するネットワーク通信を容易にするために、ビットストリング「Ｉｄｅｎｔｉｔｉｅｓ（アイデンティティ）」が、ネットワーク上のノード（例えば、ＶＯＤピア、パブリケーションノード、又はＶＯＤサポートサーバのＩＰアドレス）並びにコンテンツオブジェクトを識別するのに使用される。例えば、関連するトラッキングファイルを有するさまざまなＶＯＤピアへの参照を用いてトラッキングインデックスを突き止める時に、十分に「近い」トラッキングファイルを突き止めることが、さらに望ましい（また、時々、十分に高いＱｏＳを維持するために必要である）。或いは、パッケージのグループが、「遠」すぎるＶＯＤピアから入手され、指定されたＱｏＳを維持するのに十分にタイムリーな形で受信されない可能性がある。
【００９８】
[113]例えば、２つのＶＯＤピアノードの間でこれらのビットストリングＩｄｅｎｔｉｔｉｅｓを利用することによって、この２つのＶＯＤピアの間で期待できるＱｏＳを本質的に表す仮想インターネット距離関数を計算することができる。一実施形態で、Ｉｄｅｎｔｉｔｉｅｓは、第１の例で、ＩＰアドレス及び標準的なＩＰロケーションサービスから入手される地理的情報と共に、既知のインターネットインフラストラクチャ情報に基づいて割り当てることができる。
【００９９】
[114]２つのＶＯＤピアの間のインターネット距離を計算するために、まずそれらのＶＯＤピアのＩｄｅｎｔｉｔｉｅｓのＸＯＲをとり、その結果を２進数と解釈することができる。次に、この数を、クラスタＩＤ、信頼値、及び下でより詳細に述べる他の統計結果などのネットワークトラフィックの動的監視から以前に判定された情報に基づいて、調整することができる。結果のインターネット距離は、比較的迅速に計算することができるが、このより大きいリストから（例えば、トラッキングインデックスから）候補ＶＯＤピアを選択し、適当な要求（例えば、要求されたコンテンツオブジェクトのパッケージのグループを突き止めるのに使用されるトラッキングファイルに関する）を伝搬させるのに使用することができる。
Ｃ．コンテンツオブジェクトのパブリケーション及びプッシュ
【０１００】
[115]上で注記したように、コンテンツオブジェクトは、ＶＯＤピアのネットワーク上に存在できる前に、まず、図２のパブリケーションサーバ１６などの公開するノードによって公開されなければならない。各公開するサーバは、ＶＯＤピアに存在する分散クラスタコントローラと共にパブリケーションプロセスを実施するＶＯＤパブリッシングソフトウェアを含む。上で注記したように、このプロセスは、公開されるコンテンツオブジェクトの、パッケージのグループへの分割と、パッケージのこれらのグループのある個数のコピーの、ネットワーク全体を通じたさまざまなＶＯＤピアへの伝搬（関連するトラッキングファイル及びトラッキングインデックスの生成及び更新と共に）とをもたらす。
【０１０１】
[116]公開するサーバが、ネットワーク内のどこにでも存在することができる（例えば、そのパブリケーションゾーンをコロラド州内とすることができる）ため、コンテンツオブジェクトが公開される区域の「近く」にはない場合がある（例えば、公開権利がニューヨーク及びロサンゼルスを含む場合がある）ことに留意されたい。一実施形態で、パブリケーションサーバは、まず、ＣＲＩＤ（上で説明した）を生成する。ＣＲＩＤは、主記述子、パブリッシャ記述子、及び終了記述子を含む、パブリッシャ及び公開されるコンテンツオブジェクトに関する関連情報を含む。
【０１０２】
[117]次に、パブリケーションサーバは、パブリケーション権利に含まれる区域（例えば、ニューヨーク及びロサンゼルス）に相対的に「近い」（例えば、インターネット距離において）「パブリケーションアナウンサ」を見つけようとする。最初のパブリケーションアナウンサは、イベント（ＣＲＩＤの転送を含む）を他のパブリケーションアナウンサに「アナウンスする」。他のパブリケーションアナウンサは、所定の「マスタ」ＶＯＤピアを選択してパブリケーションプロセスを管理するようにし、公開されるコンテンツオブジェクトのパッケージのコピーを選択されたＶＯＤピアに最終的に分散させるようにする。
【０１０３】
[118]例えば、パブリケーションサーバは、デフォルトで、少数のＶＯＤサポートサーバを知っており、これらのうちの１つに連絡することができる。このＶＯＤサポートサーバは、この「アナウンスメント」（ＣＲＩＤを含む）を、ニューヨークにある既知の相対的に非常に信頼性の高いＶＯＤピアに転送することができる。そのニューヨークベースのＶＯＤピア（初期パブリケーションアナウンサ）は、そのアナウンスメントをロサンゼルスにある既知の同様に非常に信頼性の高いＶＯＤピア（副パブリケーションアナウンサ）に転送することができる。
【０１０４】
[119]パブリケーションアナウンサ（この例では２つ）のそれぞれは、パブリケーションプロセスを管理する１つ以上の「マスタ」ＶＯＤピア（「パブリケーションマスタ」）を選択する。これらのパブリケーションアナウンサのそれぞれのクラスタコントローラは、既に所定の一般的なネットワークトラフィック情報（例えば、ネットワーク「負荷」）並びに潜在的な候補ＶＯＤピアに関する情報（例えば、そのクラスタＩＤ、信頼レベルなど）を有する場合がある。これらの候補ＶＯＤピアに照会して、追加情報（例えば、コンテンツオブジェクトのパッケージのグループを格納するのに使用できる「空き」ハードディスク空間の量）を入手することもできる。
【０１０５】
[120]この情報を利用して、各パブリケーションアナウンサ内のクラスタコントローラは、それぞれ、パブリケーションプロセスを管理する１つ以上のパブリケーションマスタを選択する（また、アナウンスメントを転送する）。通常、これらのパブリケーションマスタは、相対的に高い信頼レベル（例えば、１６個のレベルのうちのレベル４）を有するが、信頼レベルは、クラスタによって変化する場合がある。例えば、そのめいめいのクラスタの推定されたサイズの相違に起因して、いくつかのパブリケーションマスタが信頼レベル３を有するが、他のパブリケーションマスタが信頼レベル４を有する場合がある。そのような情報は、類似する高い信頼レベルを有する既知のＶＯＤピアの個数並びに固有に既知のインターネットインフラストラクチャ情報（例えば、すべてのＶＯＤピアに既知の）に基づいてパブリケーションアナウンサによって推定することができる。
【０１０６】
[121]各パブリケーションマスタは、ＣＲＩＤを受信した時に、その特定のドメイン（例えば、クラスタ、サブクラスタなど）内のパブリケーションを管理する責任を負う。当初に、各パブリケーションマスタは、ＣＲＩＤから入手可能なさまざまな情報並びに経時的なネットワークトラフィックの動的監視から以前に入手された情報に基づいて、公開されるコンテンツオブジェクトの人気を「予測する」。例えば、ある挙動の仮定（例えば、類似する題名及びカテゴリに関するこのクラスタ内の以前の要求並びに累積的要求に基づく）を、所定の事実に基づく情報（例えば、パブリッシャ、コンテンツオブジェクトが公開された日付、並びにＣＲＩＤから入手可能な他の情報に基づく）と同様に、要因とすることができる。
【０１０７】
[122]この「予測された」人気に基づいて、各パブリケーションマスタ内のクラスタコントローラは、「関心要求」をパブリケーションサーバに（或いは、もう１つの実施形態では、パブリケーションアナウンサを介してパブリケーションサーバに間接的に）通信する。これらのさまざまな関心要求を蓄積した時に、パブリケーションサーバは、公開されるコンテンツオブジェクトを分割しなければならないパッケージの適当なサイズ及び個数を判定する。
【０１０８】
[123]一実施形態で、パブリケーションマスタは、パブリケーションプロセスの残りの間にパッケージのグループが分散される時にそれらのグループを最終的に格納するＶＯＤピアの位置を追跡するトラッキングファイルを作成する。さらに、これらのパブリケーションマスタは、ＣＲＩＤをそのＣＲＩＤに関連するトラッキングファイルのコピーを格納するＶＯＤピアに相互に関連させるトラッキングインデックスをも作成する。
【０１０９】
[124]一実施形態で、各パブリケーションマスタは、「コレクション」要求を用いてそのパブリケーションアナウンサに連絡する。それに応答して、パブリケーションアナウンサは、互いと通信し、パブリケーションサーバと連絡してさらなる分散のためにトラッキングインデックス並びにコンテンツオブジェクトのパッケージを「集める」「コレクタ」を指定する。次に、コレクタが、トラッキングインデックス及びパッケージを他のパブリケーションアナウンサに分散させる。このプロセスは、通常、パブリケーションアナウンサの数が少ないことに起因して、最適化をほとんど必要としないが、ネットワークトラフィックを最小にするために必要な場合には、分散技法を使用することができる。
【０１１０】
[125]パブリケーションアナウンサは、そのパブリケーションマスタのために、パッケージの最初のグループ（すなわち、単一ＶＯＤピア上のグループとしての格納のため）を判定し、パッケージのこれらのグループをパブリケーションマスタに分配する。例えば、一実施形態では、パッケージの４つのグループだけが、通常のクラスタ内で十分なＱｏＳを実現するために必要である場合がある。このグループ化は、もちろん、特定のクラスタ内のクラスタコントローラによって経時的に動的に調整することができる。例えば、所与のコンテンツオブジェクトの人気が経時的に下がる（例えば、追跡されたオンデマンド要求パターンに基づいて）場合に、パッケージのグループを組み合わせることができ、コピーを減らす（例えば、経時的に他のコンテンツオブジェクトのパッケージのグループによって上書きする）ことができる。同様に、人気が高まる場合に、パッケージのグループをさらに分割することができ、より多くのコピーを生成し、分散させることができる。
【０１１１】
[126]各パブリケーションマスタは、その判定された関心のレベルに基づいて、パッケージのそのグループのコピーを他のＶＯＤピア（通常は同一の又はより低い信頼レベルの）へ「下に」プッシュする（さらに伝搬させる）。さらに、パブリケーションマスタは、ＣＲＩＤをパッケージのこのグループのコピーを格納するために選択されるＶＯＤピアに相互に関連させるトラッキングファイルを生成及び／又は更新する。
【０１１２】
[127]このプッシュプロセスの残りを、比較的集中化することができるが、効率的な通信を容易にするために必要なだけ分散させることができることに留意されたい。例えば、各パブリケーションマスタ内のクラスタコントローラは、分散されるパッケージのそのグループのコピーの個数を、その以前に判定された関心要求並びに他の情報（例えば、パッケージのグループがコンテンツオブジェクトの「早期に」発生する場合にはより多くのコピー）に基づいて判定することができる。パブリケーションマスタは、ＶＯＤピアに直接に連絡して、どのＶＯＤピアがパッケージのグループを格納するための余分の容量を有するかを判定し、その後、パッケージのそのグループを、更新されたトラッキングファイルと共にそのようなＶＯＤピアのそれぞれに直接に転送することができる。或いは、もう１つの実施形態で、パブリケーションマスタは、標準的な分散伝搬技法を使用して（パッケージのグループの配信とおそらくはトラッキングファイルとの両方に）、それぞれがその「隣接」ＶＯＤピアと通信する選択された少数の「隣接」ＶＯＤピアだけと通信することができる。
【０１１３】
[128]しかし、最終的に、パッケージの各グループの１つ以上のコピーが、各「葉」クラスタ（パブリケーション権利によって定義される区域内の）内のＶＯＤピア全体を通じて分散される（プッシュされる）。さらに、トラッキングファイル（クラスタごとにその全体が複製されるか、分散された形で階層化される）が、一実施形態では各パブリケーションマスタ上に並びに公開されたコンテンツオブジェクトのパッケージの１つ以上のグループを格納する各ＶＯＤピア上に格納される。トラッキングインデックスは、パブリケーションアナウンサ上で維持され、おそらくはパブリケーションマスタ上でも維持される。
【０１１４】
[129]パブリケーションノードは、パブリケーションプロセスが完了したならば、オフにすることができる。一実施形態で、２４時間が、最初のパブリケーションについて許容されるが、通常のイベントは、２０分だけを必要とする可能性がある。
【０１１５】
[130]パブリケーションイベントに関連する情報（例えば、ＣＲＩＤ内に含まれるメタデータ）も、ネットワーク全体を通じて分散させることができ、例えば公開されたコンテンツオブジェクトの可用性を反映するために各ＶＯＤピアがそのユーザインターフェースを更新することを可能にする。標準的な分散伝搬技法を使用することができる。しかし、実施形態に応じて、異なる情報を異なるＶＯＤピアから使用可能にすることができる。
【０１１６】
[131]例えば、パブリケーション権利によって定義される区域の外のＶＯＤピアは、イベントを知らされないものとすることができる（そのようなＶＯＤピアのユーザが、そのようなコンテンツオブジェクトにアクセスする権利を有しないので）。もう１つの実施形態で、それらのＶＯＤピアは、おそらくはコンテンツオブジェクトに対する権利を獲得する機構（例えば、「ペイパービュー」）を用いて、そのユーザインターフェース内でその事実を知らされるものとすることができる。
【０１１７】
[132]他のＶＯＤピアが、十分な権利を有するが、プッシュされるコンテンツオブジェクトを、相対的に高いＱｏＳを維持しながら受信するのに十分にそのコンテンツオブジェクトに「近く」ない場合がある。その事実を、ユーザインターフェース内で（例えば、テキスト、色、又は他のビジュアル、若しくは他の識別子を使用して）反映することもできる。例えば、ほとんど即時に入手可能なコンテンツオブジェクト（Ｔ０  例えば、ユーザの要求から１／２秒から１２秒までの範囲の、平均してわずかな秒数以内）を、「緑」でカラーコーディングすることができる。パッケージのそのグループを格納するＶＯＤピアに十分に「近い」インターネット距離内にあるのではない他のコンテンツオブジェクトは、それほどたやすく入手可能ではない場合があり（Ｔ１  １分以上、例えば３０秒から５分の範囲内にわたって開始されない場合がある）、「黄色」でカラーコーディングすることができる。さらに別のコンテンツオブジェクトは、要求された時にネットワーク上で使用可能ですらない場合がある（Ｔ２）が、そのメタデータを検索目的に使用可能にすることができ、おそらくは「赤」でカラーコーディングされる。そのような要求は、要求するユーザのＶＯＤピアに配信され、そこで格納される前に２４時間もの遅延をもたらす「プリオーダー」を起動することができる。
【０１１８】
[133]宣伝など、他の補助的なタイプのコンテンツオブジェクトをも、類似する形でＶＯＤピアにプッシュできることに留意されたい。そのような宣伝（テキスト形式、グラフィック形式、ビデオ形式、又は他の形式の）を、変化する度合の粒度でコンテンツオブジェクトに関係付けることができる。例えば、宣伝を、個々のコンテンツオブジェクトに関係付けることができ、或いはコンテンツオブジェクトの特定のカテゴリ（例えば、Ｇレーティングの映画）にターゲティングすることができる。或いは、特定の地理的区域にさえターゲッティングすることができる。一実施形態で、そのようなターゲティング情報を、ＣＲＩＤ内に含まれる情報（例えば、トラッキングインデックス内）と「照合する」ことができる。関連する宣伝は、そのようなターゲティングされたコンテンツオブジェクトを要求するＶＯＤピアに（或いは、もう１つの実施形態では、例えば周知の協力的フィルタリング技法を使用して、類似する又は「関係付けられた」コンテンツオブジェクトを要求するＶＯＤピアに）配信される。
Ｄ．コンテンツオブジェクトのプル
【０１１９】
[134]さまざまなコンテンツオブジェクトをネットワーク全体のクラスタ内のＶＯＤピアにプッシュし、関連するＶＯＤピアのユーザインターフェースを更新した後に、すべてのユーザが、そのＶＯＤピアのユーザインターフェースを介してコンテンツオブジェクトをオンデマンドで選択することができる。図４に、ＶＯＤピアの通常のクラスタ４５０の実施形態を示す。この実施形態では、コンテンツオブジェクトが公開され、そのコンテンツオブジェクトの２０個のパッケージの４つのグループが選択されたＶＯＤピアに動的にプッシュされ、これらのグループをその後にクラスタ内の任意のＶＯＤピアによって高いＱｏＳを維持しながらオンデマンドで見るためにプッシュできるようになっている。
【０１２０】
[135]ＶＯＤピア４６０など、クラスタ４５０内のＶＯＤピアの多くは、もちろん、そのコンテンツオブジェクトのパッケージのグループのいずれをも格納していない。ＶＯＤピア４７０などの他のＶＯＤピアは、公開されたコンテンツオブジェクトの最初の４つのパッケージ１〜４（例えば、最初の分）を含む最初のグループ「Ａ」４１０のコピーを格納している。同様に、他のＶＯＤピアは、交番する形でコンテンツオブジェクトの次の１２個の多少より大きいパッケージ５〜１６を含むグループ「Ｂ」４２０及び／又はグループ「Ｃ」４３０のコピーを格納している（この交番する形は、上で注記したように、連続するパッケージを複数のＶＯＤピアから並列にプルできるので、より高帯域幅の取出を可能にする）。
【０１２１】
[136]ＶＯＤピアが、同一のコンテンツオブジェクトのパッケージの複数のグループを格納することができるが、パッケージをグループ化することの利益の１つが、より高速の（並列）取出のために複数のＶＯＤピアにまたがってそれらを分散させることが可能になることであることに留意されたい。したがって、クラスタ４５０内の他のＶＯＤピアは、残りの４つのより大きいパッケージ１７〜２０を含む最後のグループ「Ｄ」４４０のコピーを格納する可能性が高い。
【０１２２】
[137]上で注記したように、グループ「Ａ」４１０のパッケージ１〜４など、コンテンツオブジェクトのより早期のパッケージのサイズは、通常、より後のパッケージより小さい。これは、これらのパッケージをより迅速にプルすることの重要性（例えば、映画を即座に開始するため）に起因している。一実施形態で、これらの最初のパッケージのより多数のコピーも格納され、より高速のアクセス時間並びにより高い冗長性をもたらす。映画が再生され始め、パッケージがバッファリングされていると、要求されたコンテンツオブジェクトの後続パッケージの取り出し（プル）に、より長い時間が使用可能である。したがって、相対的により長い取出時間が許容される。
【０１２３】
[138]やはり上で注記したように、コンテンツオブジェクトのパッケージの適当なサイズ指定及びグループ化並びに特定のクラスタ内のＶＯＤピア全体を通じて格納されるそのようなパッケージのコピーの個数は、さまざまな情報に基づく。この情報は、ＣＲＩＤからの静的情報並びにネットワークトラフィックを監視すること及び要求パターンを経時的に追跡することによって入手される動的情報を含む。そのような情報は、コンテンツオブジェクト（全般並びに特定のクラスタ内）の予測された人気並びに現在のネットワーク輻輳、相対アクセス時間、及び他の関連するネットワークトラフィック統計を反映するものとすることができる。
【０１２４】
[139]要求元ＶＯＤピア４７５が、おそらくはコンテンツオブジェクトの最初の部分を再生しながら、現在バッファリングされているグループ「Ａ」４１０及び「Ｂ」４２０を有し、グループ「Ｃ」４３０及び「Ｄ」４４０を待っているものとして図示されている。ＶＯＤピア４７５内のクラスタコントローラ（又は、プルプロセス内で援助するパブリケーションマスタ）が、例えば、グループ「Ｃ」４３０が遅延され、間に合って到着することができない（例えば、グループ「Ｂ」４２０のパッケージ５の再生が始まる前に）ことを検出する場合には、代替配置が必要になる可能性がある。
【０１２５】
[140]一実施形態では、複数の要求が、ちょうどそのような場合に冗長性を提供するためにパッケージのグループごとに行われる。もう１つの実施形態では、問題が検出されたならば、パッケージの所望のグループの他のコピーを格納する代替ＶＯＤピアへの要求を行うことができる。もう１つの実施形態では、問題が、そのような代替ＶＯＤピアからの配信を可能にするのに十分な時間のうちに検出されない場合に、「緊急」要求を、より高い信頼レベルのＶＯＤピアに対して行うことができ、その後、別のクラスタからの代替ＶＯＤピアが、その要求をより迅速に満足できる場合（例えば、より非常に信頼性の高いＶＯＤピアのより迅速な応答時間に起因する）がある。
【０１２６】
[141]ここで、プルプロセス自体に用いられるステップに移ると、ＶＯＤピアのユーザは、ユーザインターフェースを介して、オンデマンドで使用可能なコンテンツオブジェクトのリストから、取出のために特定のコンテンツオブジェクトを選択することができる。要求元のＶＯＤピアは、一実施形態で、まずハッシュ値の一致について、その要求されたコンテンツオブジェクトに関連するＣＲＩＤをそれ自体のトラッキングファイルに対して検査することによって、そのようなコンテンツオブジェクトに関する要求を開始する。不成功の場合には（通常は不成功である）、要求（ＣＲＩＤを含む）が、既知の「隣接」ＶＯＤピアに伝搬され、次に、次に高い信頼レベルを有するＶＯＤピアに「上に」伝搬され、最終的に、すべての公開されたＣＲＩＤに関する一致を有するトラッキングインデックスを確かに有する（一実施形態で）「高レベル」（例えば、１６個の信頼レベルのうちの信頼レベル２）ＶＯＤピアに伝搬される。
【０１２７】
[142]この要求が、そのようなＶＯＤピアに伝搬される際に、この要求が、ＣＲＩＤによって識別されるコンテンツオブジェクトのパッケージの１つ以上のグループを格納しているＶＯＤピアによってたまたま受信される場合において、そのＣＲＩＤが、トラッキングファイル内のハッシュ値と一致するときがある。その「幸運な」情況では、トラッキングファイルは、１つ以上のパブリケーションマスタを識別し、このパブリケーションマスタが、一実施形態で、より効率的なプルプロセスに利用される。
【０１２８】
[143]より一般的な場合に、要求は、パブリケーションマスタ（「ハッシュ」一致を有する関連するトラッキングファイルのコピーをも有する）又は一致するＣＲＩＤに基づいて１つ以上のパブリケーションマスタを識別するトラッキングインデックスのコピーを有するＶＯＤピアのいずれかに達するまで、「上に」伝搬し続ける。所望のコンテンツオブジェクトが、要求元ＶＯＤピアと同一のクラスタ内に存在しない場合には「ボトムアップ」検索とそれに続く「トップダウン」検索とが、「最も近い」トラッキングファイルを突き止めるために必要になる場合がある。十分に高い信頼レベルに達する場合のみにおいて、トラッキングインデックス又はトラッキングファイルが見つかる（「ボトムアップ」）。その点で、トラッキングファイルの階層化された性質は、要求元ＶＯＤピアに「相対的に近い」（同一クラスタ内ではないが）ＶＯＤピアを識別するトラッキングファイルを突き止めるための「トップダウン」検索を必要とする場合がある。
【０１２９】
[144]どの場合でも、この実施形態では、１つ以上のパブリケーションマスタが、最終的に識別され、「最も近い」パブリケーションマスタが、例えばさまざまな候補に関してインターネット距離関数を利用することによって、判定される。もう１つの実施形態では、すべてのパブリケーションマスタが、少なくともコンテンツオブジェクトの最初の部分（例えば、最初の１５秒）を表すパッケージのグループを格納し、このグループが、比較的即時の初期再生を可能にするために取り出される（パッケージの後続グループを散り出す追加の時間を与える）。
【０１３０】
[145]「最も近い」パブリケーションマスタが判定されたならば、そのクラスタコントローラが、トラッキングファイルを利用して、そのトラッキングファイルによって識別される関連するＶＯＤピアへの、パッケージのさまざまなグループに関する要求を開始する。そのような要求は、並列に行うことができ、或いは、コンテンツオブジェクトの直線的進行に基づいて優先順位を付けることができる（例えば、パッケージのより早期のグループを最初に要求する）。標準的な分散伝搬技法を使用して、これらの要求を「隣接する」ＶＯＤピアにオフロードすることができる。
【０１３１】
[146]もう１つの実施形態では、トラッキングファイルを識別した、要求元ＶＯＤピアは、パブリケーションマスタをプロキシとして使用するのではなく、単純に、そのトラッキングファイルのコピーを要求し（おそらくは再生を開始するためにパッケージの最初のグループを受信した後に）、それ自体でパッケージのさまざまなグループを要求することができる。この場合に、要求元ＶＯＤピアは、トラッキングファイル内で識別されるＶＯＤピアに直接にパッケージのさまざまなグループを要求することができ、或いは、「隣接する」ＶＯＤピアにこれらの要求をオフロードするために分散伝搬技法を利用することができる。
【０１３２】
[147]要求元ＶＯＤピアと同一のクラスタ内のさまざまなＶＯＤピア（要求されたコンテンツオブジェクトのパッケージのグループを格納する）へのインターネット距離は、ＱｏＳ要件を満足するために事前に判定されている（ネットワークトラフィックの以前の動的監視に基づいて）ので、パッケージのグループが、指定されたＱｏＳを維持するのに要求元ＶＯＤピアに時間内に到着する可能性が非常に高い。要求元ＶＯＤピアは、その「空き」ストレージ空間を使用して、パッケージのグループをバッファリングし、これらをユーザに表示する。上で注記したように、一実施形態では、所定の量のストレージ容量（例えば、４ＧＢ）が、プルプロセスのこのバッファリング／再生態様専用であり、残りの容量（例えば、６ＧＢ）は、他の要求元ＶＯＤピア用のコンテンツオブジェクトのパッケージのグループの共有ストレージに利用される。
【０１３３】
[148]問題が「途中で」発生する場合に（例えば、トラッキングファイル内で指定されたＶＯＤピアのうちの１つでのソフトウェア又はハードウェアの障害に起因して）、そのような問題は、パブリケーションマスタ（例えば、所定の時間以内に応答を受信しない時、又は遅すぎる応答を受信する時）又は要求元ＶＯＤピア（例えば、受信されたパッケージの「バッファ」が期待される閾値未満に減る時）のいずれかによって検出することができる。どちらの場合でも、パブリケーションマスタは、通知され、通常はパッケージのグループの複数のコピーが同一クラスタ内に格納される。そのため、パブリケーションマスタは、１つ以上の他の冗長ＶＯＤピアへの要求を開始することができる（当然、そのような要求がまだ行われていない場合に）。「緊急」の場合に、パッケージのある指定されたグループのより高速の再ルーティングのために要求を別のクラスタにルーティングするために、相対的に高い信頼レベルを有するＶＯＤピア（おそらくは、ＶＯＤサポートサーバさえ）に連絡することができる。問題が、十分に前に検出されるならば、要求元ＶＯＤピアが、問題が発生したことを知りさえしない場合がある。
【０１３４】
[149]上で注記したように、いくつかの場合には、所望のコンテンツオブジェクトが、即時に入手可能でないだけではなく、ネットワーク上のどこからも入手可能ではない。この事実によれば、ユーザインターフェース内で反映することができる（例えば、検索に対する「見つかりません」結果として）。一実施形態では、コンテンツオブジェクトの自動化された（又は手動の）検索をもたらすことができる「プリオーダー」を要求することという可能なオプションを伴う。ネットワークへのその後続パブリケーションのイベントの際に、要求元ユーザは、所望のコンテンツオブジェクトが使用可能になった後に、通知を受けることができる（要求元ＶＯＤピアでその全体が、又はそのクラスタ内の他のＶＯＤピアにプッシュされてのいずれであれ）  。
Ｅ．ネットワークベースのＱｏＳ（ＮＱｏＳ）及びネットワークトラフィックの動的監視
【０１３５】
[150]経時的に、このプッシュプロセスは、新しいイベントが発生し、コンテンツオブジェクトがネットワークに追加される時に繰り返される。プルプロセスは、ユーザが使用可能コンテンツオブジェクトを表示するオンデマンド要求を開始する時に発生する（おそらくは、はるかにより高い頻度で）。しかし、プッシュプロセスとプルプロセスとの両方の基礎をなしているのは、高い度合の予測性を伴って相対的に高いＱｏＳレベルを維持するために継続的に又は少なくとも周期的な基礎で実行されるネットワークトラフィックの動的監視である。
【０１３６】
[151]上でほのめかしたように、オンデマンド要求を行うＶＯＤピアが経験するＱｏＳは、多くの面で、事前に決定することができる。ネットワークトラフィックを動的に監視することによって（標準的な分散伝搬技法を使用して分散された基礎で）、隣接するＶＯＤピア（例えば、１クラスタ内の）からある所定の時間以内にあるサイズのファイルを受信するＶＯＤピアの能力を任意の要求の前に決定できるという点で、ＱｏＳをネットワークに効果的に組み込むことができる。
【０１３７】
[152]次に、この動的ネットワーク監視の結果を使用して、ＱｏＳレベルを高めることができる（例えば、信頼レベルを変更し、コンテンツオブジェクトのパッケージを再展開することによって）。高められるＱｏＳレベルは、１クラスタ内並びにインタークラスタ境界及びスーパークラスタ境界にまたがって（クラスタ及びスーパークラスタのメンバシップを再定義することを含む）の両方である。次に、後続のプルプロセス中（公開するサーバがネットワークに新しいコンテンツオブジェクトを追加する時）並びにプッシュプロセス中（個々のＶＯＤピアがコンテンツオブジェクトを表示するオンデマンド要求を行う時）に、この結果のＮＱｏＳを知らせ、これに頼ることができる。
【０１３８】
[153]ＶＯＤピアの信頼レベルは、ＮＱｏＳをネットワーク全体に知らせる１つの方法である。もう１つの方法は、経時的に知られるようになる隣接するＶＯＤピア（変化する信頼レベルの）による、また、クラスタＩＤを介する、ＶＯＤピアのクラスタメンバシップである。さらに、コンテンツオブジェクトのパッケージが展開される時に（例えば、プッシュプロセス中並びにオンデマンド要求に対する応答での）、ＶＯＤピアは、さまざまなＱｏＳレベルでの（例えば、比較的即時に、又は１分以上の遅延を伴って）そのようなコンテンツオブジェクトの可用性について知らされる。
【０１３９】
[154]各ＶＯＤピア内のクラスタコントローラは、一実施形態では継続的な基礎で、例えば他のＶＯＤピア（そのクラスタの中と外との両方）のクラスタコントローラ並びに標準的な分散伝搬技法を使用して既知のネットワークノード（例えば、周知のＩＳＰ）と通信することによって、所定の通信は、もちろん、周期的とするか、他のイベントによって起動することができる。
【０１４０】
[155]上で注記したように、一実施形態では、ＶＯＤピアが初期化される（又は、例えばソフトウェア障害若しくはハードウェア障害の後など、再初期化される）時に、特定のクラスタ内でのそのＶＯＤピアのメンバシップは、ＩＰアドレス及び標準的なＩＰロケーションサービスから入手される地理的情報と共に、インターネットの物理インフラストラクチャに関する公に入手可能な情報に基づいて判定される。その点で、ＶＯＤピアは、少数の相対的に非常に信頼性の高いＶＯＤピア（おそらくは１つ以上のＶＯＤサポートサーバさえ）並びに類似する「デフォルト」信頼レベルのいくつかの隣接するＶＯＤピアについて知らされる。
【０１４１】
[156]その時以降、各ＶＯＤピアのクラスタコントローラは、あるテストを実行して、ネットワークトラフィックパターンの変化を監視し、検出する（例えば、隣接するＶＯＤピアの間のパスが、ネットワーク輻輳に起因して又はＶＯＤピア及び他のインターネットノードの障害に起因して、経時的により高く又はより低く信頼できるようになる時）。さらに、このクラスタコントローラは、コンテンツオブジェクトのパッケージの展開の変化をも監視し、検出する（例えば、新しいコンテンツオブジェクトがさまざまな位置にプッシュされる時、又はオンデマンド要求が、特定のコンテンツオブジェクト及びそのカテゴリについて行われる時）。
【０１４２】
[157]ＶＯＤピアの間の全般的なネットワークトラフィックフローのそのような変化の結果並びにコンテンツオブジェクトのパッケージの展開を経時的に追跡し、蓄積することによって、クラスタコントローラは、そのような結果を利用して、一実施形態で、上で述べた信頼レベル要因を変更することができる。これらの信頼レベル要因の変更は、さまざまなＶＯＤピアの信頼レベルに対する経時的な変更をもたらす。その結果は、クラスタ境界及びスーパークラスタ境界にまたがって波紋のように伝わる。
【０１４３】
[158]例えば、１つの一般的なテストを、通常は高いレベルの安定し信頼できる帯域幅を示すはずのインターネットバックボーンルータの近くの周知のサーバへの周期的な「ｐｉｎｇ」とすることができる。クラスタコントローラは、１時間おきにＹａｈｏｏ又はＶＯＤサポートサーバにｐｉｎｇを打つことができる。もう１つのｐｉｎｇテストを、そのクラスタ内の少数の既知の隣接するＶＯＤピアに対して、又は「遠隔」クラスタ内のＶＯＤピアに対してさえ実行することができる。そのようなｐｉｎｇテストの結果（例えば、長い、短い、及び平均的なｐｉｎｇ時間並びに時折のｐｉｎｇ「障害」）を、経時的に蓄積して、信頼性のレベル並びに「ネットワーク負荷」に起因する差（例えば、夕方早くの「プライムタイム」時間中のより長いｐｉｎｇ時間）を判定することができる。
【０１４４】
[159]他のテストでは、さまざまなインターネット距離の位置へのさまざまなサイズの実際のファイル転送を用いることができる。あるサイズのファイルを隣接物のうちの１つ以上に、ある時間間隔内に転送するＶＯＤピアの能力は、明らかに重要である。というのは、この能力が、プルプロセスの諸態様に直接に関係するからである。プルプロセスは、そのＶＯＤピアがその「共有」ハードディスク空間に格納しようとしているパッケージのグループを含むコンテンツオブジェクトに関するオンデマンド要求に応答して実行する必要がある可能性がある。
【０１４５】
[160]次に、これらのテストの結果が、経時的に蓄積される。一実施形態では、高負荷時間中の比較的ローカルなＶＯＤピアへの「高速」配信の確率又はＶＯＤピアが次の５００時間にわたってオンラインのままになる確率など、ＶＯＤピアの信頼レベル要因を維持するのに使用される。上で注記したように、これらの信頼レベル要因は（例えばイントラクラスタ、スーパークラスタなど、さまざまな地域領域についてパラメータ化された後に）、各ＶＯＤピアの信頼レベルを判定し、経時的に変更するのに利用される。
【０１４６】
[161]一実施形態で、信頼レベルのこれらの変更は、コンテンツオブジェクトのパッケージのグループの再展開をももたらすことができる。例えば、あるＶＯＤピアの信頼レベルが、ある閾値未満に下がった場合に、そのＶＯＤピアに格納されたパッケージの１つ以上のグループを隣接するＶＯＤピアに移動し、関連するトラッキングファイルをそれに従って更新すると決定することができる。
【０１４７】
[162]スーパークラスタレベルにおいて、クラスタコントローラは、一実施形態で、そのテストをクラスタ境界及びスーパークラスタ境界にまたがって拡張する。その結果、これらのクラスタコントローラは、あるＶＯＤピアをそのクラスタに追加することによって、或いはおそらくは２つのより小さいクラスタを一緒に単一のクラスタに組み合わせることによっても、クラスタのサイズを拡大することができる。これらのクラスタコントローラは、クラスタにまたがってＶＯＤピアの信頼レベルをも変更することができ、例えば、クラスタ境界にまたがるファイル転送でより高い信頼性を経時的に示したＶＯＤピアの信頼レベルを高める。
【０１４８】
[163]ネットワークトラフィックパターンの動的変化を時的に検出するために「包括的」テストを実行すること並びに信頼レベル及びクラスタメンバシップに影響する（及びおそらくはコンテンツオブジェクトのパッケージのグループを再展開する）のにそのようなテストの結果を使用することに加えて、各ＶＯＤピア内のクラスタコントローラは、コンテンツオブジェクトのパッケージの展開を含む「実際の」ネットワークトラフィックをも監視し、追跡する。例えば、上で注記したように、クラスタコントローラは、新しいコンテンツオブジェクトがネットワークに追加される時に、どのＶＯＤピアがパッケージのあるグループ及び関連するトラッキングファイルを格納しなければならないかを判定するために、プッシュプロセス中にこれらの更新された信頼レベル及びクラスタＩＤ（並びに「空き」ハードディスク容量）に頼る。オンデマンド要求が行われ、パッケージのグループが要求元ＶＯＤピアへの配信のためにさまざまなＶＯＤピアからプルされる時に、この動的ネットワークトラフィックも監視される。
【０１４９】
[164]例えば、異常に多数の要求がある特定のコンテンツオブジェクトについて行われたと判定される場合に、特定のクラスタ内のＱｏＳのレベルを維持するために、そのコンテンツオブジェクトのより多くのコピーが必要になる場合がある。一実施形態で、パブリケーションマスタ内のクラスタコントローラは、そのコンテンツオブジェクトのパッケージのグループの追加コピーをクラスタ内の他のＶＯＤピアに格納させ、関連するトラッキングファイルを更新させ、これらのＶＯＤピアの間で伝搬させることができる。その結果、より少数のそのような要求に出会う時に、パッケージのグループの既存コピーを、上書き「可能」と指定することができ、それと同時に、既存トラッキングファイルが、それに従って更新される。
【０１５０】
[165]より微細な「調整」は、例えば、パッケージの改訂されたグループ化をもたらすこともできる。コンテンツオブジェクトの人気が下がる時に、そのパッケージの複数のグループを、単一のグループに合併することができる。逆に、コンテンツオブジェクトの人気が上がる時に、パッケージのグループを、追加のグループにさらに分割することができる。さらに、あるＶＯＤピアが、実質的に「弱いリンク」である（それらが、プルプロセス中に通常のＱｏＳレベルを維持しないという点で）と判定される場合に、上で述べたように、それらのＶＯＤピアの信頼レベルを下げ、そこに格納されたパッケージのグループを再展開することができる。
【０１５１】
[166]一実施形態で、コンテンツオブジェクトの特定のカテゴリ（例えば、コメディ）の、あるクラスタ内での人気など、累積的情報も、実際のオンデマンド要求の監視から生じるものとすることができる。そのような情報は、例えば、新しいコメディコンテンツオブジェクトのパブリケーションに関連する後続プッシュプロセス中に使用することができる。そのコンテンツオブジェクトのパッケージの、そうでない場合にそうなる可能性がある個数より多くのコピーを、そのクラスタ内でプッシュすることができる。
【０１５２】
[167]比較的ローカルな情報でさえ、帯域幅を、したがってＱｏＳを高めるのに使用することができる。例えば、図４に関して上で示したように、パッケージの２つのグループを、複数の隣接するＶＯＤピアの間で「インターリーブする」ことができる。したがって、１つおきのパッケージ（例えば、Ｐ１、Ｐ３、Ｐ５）を一方のＶＯＤピアに格納することができ、他方のパッケージ（例えば、Ｐ２、Ｐ４、Ｐ６）は、隣接するＶＯＤピアに格納される。これは、要求元ＶＯＤピアへの高められた帯域幅をもたらすことができる。したがって、少なくともその特定のコンテンツオブジェクトに関して、クラスタ内のＱｏＳを効果的に高めることができる。
【０１５３】
[168]上で述べたもの以外の、ネットワークノード及びネットワークトラフィックの多数の他の属性を、経時的に動的に監視し、追跡することができる。手動で又は自動化された形のどちらで実施されるものであれ、フィードバックループは、ＱｏＳに対するそのような属性の影響に基づいて、そのような属性を微調整することを可能にすることができる。いくつかの場合に、監視活動自体によって強要される追加のネットワークトラフィックが、所定の属性を追跡することによって達成される利益よりまさる場合がある。しかし、経時的に、システムは、ある形のホメオスタシスに達することができる。この状態では、属性の相対的に最適の組が、総合的なＮＱｏＳを最大にするために動的に監視され、追跡される。
ＩＩ．実施態様の詳細
【０１５４】
[169]上で述べた主要な概念をどのように実施できるかをよりよく理解するために、本発明のＶＯＤシステムでのコンテンツオブジェクトの公開、取出、及びアクセスの監視に用いられる動的プロセスの説明と共に、主なデータ構造を下で説明し、ＶＯＤピアによって使用される通信プロトコルも説明する。
【０１５５】
[170]例えば、すべてのＶＯＤピアは、ＶＯＤピアが、一般に互いを識別し、互いにアクセスし、より具体的には相対的に信頼性の高い隣接するＶＯＤピアを識別するためにその相対的な近接及び信頼性を判定することを可能にする、一意の「ノードＩＤ」を含む。そのような「信頼される隣接物」は、ＮＱｏＳを維持しながら、分散された形でコンテンツオブジェクトにアクセスするために頼ることができる。
【０１５６】
[171]各ＶＯＤピアが、ノードＩＤを介して一意に識別されるのと同様に、各コンテンツオブジェクト、又はより具体的にはコンテンツオブジェクトを公開する各イベントは、「ＣＲＩＤ」（コンテンツ参照ＩＤ、上で述べた）を介して一意に識別される。ＣＲＩＤは、そのコンテンツオブジェクトへのアクセスに対する地理的制約及び他の制約と、そのコンテンツオブジェクトを記述し、ユーザがそのコンテンツオブジェクトをブラウズし、検索することを可能にするメタデータと、をパブリッシャが指定できるようにする。
【０１５７】
[172]上で注記したように、コンテンツオブジェクトが公開され（すなわち、イベントが発生し）、その構成要素パッケージがＶＯＤピアの間で分散される時に、さまざまなトラッキングファイルが、分散された形で生成されて、そのコンテンツオブジェクトを表すＣＲＩＤを、そのような構成要素パッケージの特定のグループを格納するＶＯＤピアに関連付ける。これらのトラッキングファイルは、例えばユーザのビューイング挙動又はネットワーク特性の変化に起因してコピーが上書きされるか追加コピーが生成される時に、各コンテンツオブジェクトの構成要素パッケージのさまざまなコピーの現在位置を反映するように更新もされる。これらのトラッキングファイルのデータ構造の実施形態を、それに対応するトラッキングインデックスデータ構造と共に下で述べる。
【０１５８】
[173]トラッキングファイルが生成され、コンテンツオブジェクトの構成要素パッケージの位置を維持するようにするのと同様に、対応するトラッキングインデックスも生成され、これらのトラッキングファイルのコピーを格納するＶＯＤピアの位置を維持する（集中化された形又は分散された形のいずれであれ）。例えば、ユーザが、特定のコンテンツオブジェクトへのアクセスを要求する時に、そのコンテンツオブジェクトを表すＣＲＩＤが、要求元ＶＯＤピアに相対的に近接するＶＯＤピアに格納されたトラッキングファイルを検索する（直接に又はトラッキングインデックスを介して間接的にのいずれかで）のに使用される。
【０１５９】
[174]これらの主要なデータ構造に加えて、主要な動的ネットワークプロセスがどのように実施されるかを示すために、ＶＯＤピアが互いの間で通信する形をも述べる。例えば、ネットワーク上でコンテンツオブジェクトを公開するために、所定の通信プロトコルが使用され、ネットワーク全体を通じたさまざまなＶＯＤピアの間で、イベントをアナウンスし、次に、構成要素パッケージ並びに対応するトラッキングファイル及びトラッキングインデックスを生成し、分配する（すなわち、プッシュする）。
【０１６０】
[175]ユーザが、コンテンツオブジェクトへのアクセスを要求する（例えば、映画を観るために）時に、他のプロトコルが、使用され、そのコンテンツオブジェクトの構成要素パッケージの検索及びダウンロード（すなわち、プル）を行うようにする。プロトコルは、トラッキングインデックス及びトラッキングファイルを検索することと、その後に、コンテンツオブジェクトの「オンデマンド」の比較的即座の継続的なビューイングを可能にするのに十分にタイムリーな形で異なる「フィーダ」ＶＯＤピアから構成要素パッケージのダウンロードを開始することとを含む。
【０１６１】
[176]さらに、これらの通信プロトコルは、システムのアーキテクチャ的構成要素と結合されて、ＶＯＤピアの間の相対アクセス時間、実際のユーザ挙動（例えば、特定の時間間隔中の１つ以上の地理的区域でのあるコンテンツオブジェクトを見る需要の増加）、及び他のネットワーク特性（例えば、ネットワーク障害）を含む、ネットワークのさまざまな態様を監視することによって、ＮＱｏＳを維持する。そのような要因を動的に監視することによって、ユーザに、特定のコンテンツオブジェクトへのアクセスを要求する前であっても、システムの状態について通告することができる。
【０１６２】
[177]例えば、あるユーザが、コンテンツをブラウズしているか検索している時に、ユーザインターフェースは、一特定のコンテンツオブジェクトが実質的に即時に入手可能であるが、別のコンテンツオブジェクトが一晩のダウンロードを必要とする可能性があるという事実を反映することができる（例えば、めいめいの映画の題名を色付きの「緑」又は「赤」のテキストで表示することによって）。これが可能なのは、現在のシステム状態が、そのような監視の結果として既知であり、分散された形でＶＯＤピアの間で通信され得るからである。さらに、別のユーザ（例えば、異なるクラスタ内の）が、異なる表示に出会う場合がある。この表示は、おそらくは両方のコンテンツオブジェクトが即時に入手可能である（例えば、そのようなコンテンツオブジェクトの所定の構成要素パッケージのコピーの相対的近接、又は関連する隣接するＶＯＤピアの間のより迅速なネットワーク応答時間、又は上記及び他の要因の組合せに起因して）ことを示す。
【０１６３】
[178]これらの通信プロトコルを実施するために、そのうちの多数が複数の異なる通信シナリオに用いられる、メッセージの基本的な組が使用される。例えば、ある基本メッセージは、通信が、コンテンツオブジェクトの公開、所望のコンテンツオブジェクトを見るためのトラッキングファイルの検索、ネットワーク挙動の監視、又はある他の目的のいずれを含む場合であっても、２つのＶＯＤピアがさらなるそのような通信を確立するために初期「ハンドシェーク」を実行する時に、必ず使用される。他の「拡張」メッセージは、下でより詳細に述べるように、ある特定の目的に使用される。
Ａ．ノードデータ構造及びコンテンツデータ構造
１．ノードＩＤ
【０１６４】
[179]図５に移ると、「ノードＩＤ」データ構造５００の一実施形態が示されている。例示を簡単にするために、値が英数字の形でリストされていることに留意されたい。「位置」５０５は、連続するデータのバイトを表す。ノードＩＤ  ５０１全体自体は、連続するバイトのストリングとして複数の行に示されており、その各構成要素が、後続行で分解されている。もちろん、実際のデータストレージ効率を、標準的な圧縮技法を含む、よりコンパクトな標準形式の表現を使用することによって高めることができる。
【０１６５】
[180]ノードＩＤ  ５０１は、一意のＶＯＤピアを表し、一意識別子並びに他の静的構成要素及び動的構成要素など、そのＶＯＤピアのさまざまな属性を含む。ノードＩＤ  ５０１のこれらの構成要素は、２つのカテゴリすなわち、変化するとしても頻繁に変化する可能性の低いＶＯＤピアの属性を含む「固定」部分５１０と、ネットワークの状態又はユーザ挙動が経時的に変化する時に動的に変化する可能性があるネットワーク間連続性を含む１組の「記述子」５５０とに分類することができる。
【０１６６】
[181]ノードＩＤ  ５０１の固定構成要素５１０の中に、一意の「ボックスＩＤ」５１２がある。この図示の実施形態では、ボックスＩＤ  ５１２は、この物理ＶＯＤピアハードウェアデバイスを他のすべてのハードウェアデバイスから区別する一意の９バイト識別子である。単一の一意識別子であるほかに、ボックスＩＤ  ５１２の構成要素は、さらに、ハードウェアの製造業者、モデル、及びバージョン（図示せず）を識別することができる。さらに、一意であることによって、ボックスＩＤ  ５１２は、例えば、他の属性が変化し得る間に、ある属性（ノードＩＤ  ５０１の一部でない属性であっても）をこのＶＯＤピアに関連付けられたままにすることを可能にすることができる。これは、セキュリティ、ファームウェアアップグレード、モバイル応用例、及びさまざまな他の状況で有用である可能性がある。
【０１６７】
[182]もう１つの固定構成要素が、ボックスが配置される「国」５１４である。一実施形態で、この値は、２バイトフィールドとして図示されているが、例えばボックスが最初に電源を入れられる時に判定される、ボックスが展開される国を表すことができる。この値は、デフォルトでは固定されたままにすることができる（例えば、後続の「電源投入」イベント時に）が、例えば、ボックスが別の位置に移送される場合に、変更可能とすることができる。
【０１６８】
[183]もう１つの固定構成要素が、ボックスが配置される「地域」５１６である。一実施形態で、この地域５１６は、国５１４内の一意の地域を表す３バイト識別子である。さまざまな標準組織が、特定の国内の地域識別子の標準規格を開発してきた。例えば、米国内では、個々の州の識別子を使用することができる（国勢調査地域、例えばカリフォルニア、オレゴン、及びワシントンの「Ｐａｃｉｆｉｃ」など、のより大きい地域を使用することもできるが）。他の国は、カナダの州及び準州（例えば、アルバータのＡＢ）など、州以外の異なる指定を有する場合がある。一実施形態で、異なる標準規格が、異なる国にまたがって使用されるが、地域５１６は国５１４内に含まれ、市５２０（下で述べる）は地域５１６内に含まれる。
【０１６９】
[184]もう１つの固定構成要素が、ボックスがそれを介してインターネットアクセスを入手する「ＩＳＰ」５１８すなわちインターネットサービスプロバイダである。一実施形態で、ＩＳＰ  ５１８は、使用されている現在のＩＳＰを表す４バイト識別子である。ユーザは、所与の位置でＩＳＰを頻繁に変更する可能性が低いが、別の位置へのボックスの移動（一時的に又は他の形での）は、おそらくはＩＳＰ  ５１８の変更をもたらす場合がある。この情報は、例えば、潜在的により高速の又はより信頼性の高い接続（例えば、共通のＩＳＰ又は複数の明確に接続されたＩＳＰに起因して）を共有するＶＯＤピアのグループを識別するのに利用することができる。
【０１７０】
[185]上で注記したように、市５２０は、もう１つの固定構成要素であり、一実施形態で、地域５１６（国５１４内にある）内の１区域を識別する３バイト値である。市は、比較的一般的なので、市５２０は、通常は地域５１６内で一意であるが、他のフィールドが、この区域をさらに区別するように働く場合がある（例えば、下で述べる郵便番号５２２及び／又は経度／緯度５２４）。これらの地理的フィールド（国５１４、地域５１６、市５２０、郵便番号５２２、及び経度／緯度５２４）を、ＩＳＰ  ５１８と共に、さまざまな目的に使用できることに留意されたい。上で注記したように、これらは、より高速の又はより信頼性の高い接続を共有できる（したがって同一クラスタの一部とすることができる）ＶＯＤピアのグループの識別を容易にする。さらに、そのようなフィールドを使用して、特定のコンテンツオブジェクトへのアクセスを制限する（例えば、米国内の特定の州に制約する）か、特定の地理的区域内のＶＯＤピアの間でのコンテンツオブジェクトの変更された分散をもたらし得る挙動使用パターンを識別する（例えば、特定の地理的区域でより流行しているコメディ）ことができる。監視される実質的にすべてのネットワーク特性、挙動特性、又は他の特性を、この地理情報と共に利用して、コンテンツオブジェクト（又はパッケージの個々のグループ）のコピーの再展開、信頼レベル又はクラスタメンバシップの調整などを決定することができる。
【０１７１】
[186]上で言及したように、郵便番号５２２（一実施形態では５バイト識別子として図示）は、さらに、ボックスが現在展開されている地理的区域を識別するように働く。標準郵便番号をこの目的に利用することができ、特定の国について必要な場合には、異なる標準規格が使用される。
【０１７２】
[187]やはり上で言及したように、経度／緯度５２４（一実施形態では１６バイト識別子として図示）は、さらに、ボックスが現在展開されている地理的区域をさらに高い限定性を伴って識別する。これらの地理的フィールドは、特定の地理的区域をより正確に識別するのに一緒に利用することができ、或いは、別個の目的に個別に利用することができる（例えば、非常に特定のコンテンツアクセス制限を実施するために）。上で注記したように、正味の近接は、これらの地理的識別子の一部又はすべてに異なる度合で頼る標準的なＩＰロケーションデータベースを使用することによって、さまざまな精度のレベルで判定することができる。
【０１７３】
[188]最後の固定構成要素であるノードタイプ５２６は、この実施形態では、ＶＯＤピアの異なるカテゴリの間で区別する単一バイト識別子として図示されている。例えば、パブリッシャを、専用ＶＯＤサポートサーバ並びに「普通の」ＶＯＤピアから区別することができる。これらの区別は、必ずしも相互に排他的である必要はないが、例えば、ＶＯＤピアのあるカテゴリを迅速に含め、又は除外するのに有用であることがわかる可能性がある。例えば、ソフトウェアアップグレードの開始又はネットワーク「緊急時」の場合の所定のフォールバックサービスの提供など、所定の機能を、ＶＯＤサポートサーバなど、ＶＯＤピアの特定のカテゴリに制限することができる。そのような場合に、ノードタイプ５２６に頼って、その判断基準を満足するＶＯＤピアを迅速に識別することができる。
【０１７４】
[189]記述子５５０に移ると、ＩＰアドレス５５２は、一実施形態で、標準的なルーティング可能ＩＰアドレスを表す１２バイトフィールドとして図示されている。ＩＰアドレス５５２は、静的又は動的のいずれかとすることができ、もちろん、相対的に頻繁に変更することができる。それでも、個々のセッション又は相対的に短い時間間隔の間に、メッセージの交換及び他の形の通信（下でより詳細に述べる）のためにＶＯＤピアを識別する便利な手段として、これに頼ることができる。
【０１７５】
[190]他の記述子５５０は、より頻繁に変更される可能性さえある。というのは、これらが、ネットワークインフラストラクチャ、帯域幅、及び信頼性の動的変化を反映するからである。例えば、信頼レベル５５４は、ＶＯＤピアの相対的な信頼性の尺度を示す。一実施形態で２バイト値として実施される信頼レベル５５４は、動的に経時的に監視される帯域幅及び信頼性などの特性を反映するさまざまな信頼レベル要因（上で述べた）に基づいて、１６個の異なるレベルの「信頼」を区別することができる。信頼レベル５５４は、クラスタメンバシップ及びアクセス可能な隣接するＶＯＤピアを判定し、コンテンツオブジェクト及びその構成要素パッケージの分散及びアクセスの処理に影響するなど、さまざまな目的に使用することができる。
【０１７６】
[191]２つの追加の記述子５５０が、ローカルノードアクセシビリティ５５６及びグローバルノードアクセシビリティ５５８（それぞれが、一実施形態では単一バイト値）である。この２つのフィールドは、それぞれローカル（ルータ）ポート及びグローバル（クラスタ）ポート（例えば、ＶＯＤピアボックスが展開されている家庭内のインターネットルータ上の）が開かれているのか閉じられているのかを示す。例えば、ローカルポートが閉じられている（例えば、ローカルノードアクセシビリティ５５６が「０」の値を有する）場合に、ＶＯＤピアは、ファイヤウォール／ＮＡＴルータに起因して直接にアクセス可能ではなく、ＶＯＤネットワーク通信を確立するために特殊な間接通信技法（例えば、ＶＯＤサポートサーバ又は隣接する「ローカル」ＶＯＤピアを介して間接的に連絡する）を必要とする可能性がある。ローカルポートが閉じられていない場合には、そのような通信に関して、現在のルーティング可能なＩＰアドレス５５２に頼ることができる。グローバルポートが閉じられている（すなわち、グローバルノードアクセシビリティ５５８が「０」の値を有する）場合には、ＶＯＤピアは、その「ローカル」クラスタの外側で直接にアクセス可能ではなく、やはり特殊な間接通信技法を必要とする可能性がある（例えば、ＩＳＰがクラスタ全体との接続性を失った時、これは、発生するとしても非常に希である可能性が高い）。これらのフィールドの両方が、他のＶＯＤピアが特定のＶＯＤピアと通信するのに必要である可能性がある通信の形を判定する（ターゲットＶＯＤピアのノードＩＤ  ５０１内のこれらのフィールドの値に基づいて）ための相対的に迅速な機構を提供する。
【０１７７】
[192]最後に、残りの記述子すなわち「ネット測定値」５６０は、一実施形態では、ある動的に監視される要因の現在の結果を反映する２バイトフィールドとして実施される。上で述べたように（下でより詳細に述べるように）、各ＶＯＤピアのクラスタコントローラは（一実施形態で）、ネットワークトラフィック全般並びにコンテンツオブジェクト及びその構成要素パッケージの展開及び使用に関連する「挙動」トラフィックのパターンの変化を監視し、検出するためにさまざまなテストを実行する。これらの値は、そのようなテストの結果を反映する。例えば、クラスタコントローラは、インターネットバックボーンルータに近い周知の安定したサーバ（例えば、ＶＯＤサポートサーバ）への周期的な１時間ごとの「ｐｉｎｇ」の経時的な平均値を維持することができる。そのような平均値は、ネット測定値５６０値に反映される信頼性の１つの尺度として使用することができる。
２．ＣＲＩＤ
【０１７８】
[193]上で述べたように、各ＶＯＤピアがノードＩＤによって一意に識別されるのと同様に、コンテンツオブジェクトを公開する各イベントは、コンテンツ参照ＩＤすなわちＣＲＩＤ  ６００によって一意に識別される。このＣＲＩＤ  ６００のデータ構造を、図６に示す。一実施形態で、ＣＲＩＤ  ６００は、例えば、トラッキングファイル内で使用され、公開されたコンテンツオブジェクトを、そのコンテンツオブジェクトの構成要素パッケージのコピーを格納するあるＶＯＤピアに関連付けるようにする。ＣＲＩＤ  ６００は、トラッキングインデックス内でも使用され、公開されたコンテンツオブジェクトを、そのようなトラッキングファイルのコピーを格納するあるＶＯＤピアに関連付けるようにする。
【０１７９】
[194]図５に示されたノードＩＤデータ構造５００と同様に、ＣＲＩＤデータ構造６００では、例示を簡単にするために英数字の形で値をリストするが、「位置」６０５は、連続するデータのバイトを表す（これは、もちろん、標準的な圧縮技法及び他のデータ表現技法を利用してより効率的に表すことができる）。ここでも、ＣＲＩＤ  ６０１全体が、連続するバイトのストリングとして複数の行に示されており、次に、その各構成要素が、後続行で分解されている。
【０１８０】
[195]ＣＲＩＤ  ６０１は、一意の公開されたイベントを表し、例えば、ある映画を別の映画から区別するだけではなく、異なるパブリッシャからのその映画の特定の版をも区別し、同一パブリッシャからのその映画の異なる形さえ（例えば、予告編、又はおそらくは標準アスペクト比版に対してワイドスクリーン版さえ、或いは他の変形の中で字幕又は異なる第１言語を有する版）区別することができる。ＣＲＩＤ  ６０１の構成要素も、２つのカテゴリすなわち、パブリッシャ並びにイベントを一意に識別する「コア」ＣＲＩＤ  ６１０と、アクセス制約並びにパブリッシャ及び公開されたコンテンツオブジェクトに関するメタデータを含む１組の「記述子」６２０とに分類することができる。
【０１８１】
[196]一実施形態で、コアＣＲＩＤ  ６１０は、２つのフィールドすなわち、イベントのパブリッシャを一意に識別する「パブリッシャＩＤ」６１２（一実施形態では１０バイト値として図示）と、そのパブリッシャからのイベントを一意に識別する「イベントセレクタ」６１４（一実施形態では６バイト値として図示）とを含む。もう１つの実施形態では、イベントセレクタ６１４自体を、パブリッシャにまたがってさえ一意とすることができる。このコアＣＲＩＤ  ６１０は、ネットワーク上で公開されるイベントごとの相対的にコンパクトな一意識別子を提供する。
【０１８２】
[197]コアＣＲＩＤ  ６１０に加えて、１組の記述子６２０が、イベントに関するさらなる情報を提供する。図６に示された一実施形態では、３つの記述子すなわち、イベントに関連するアクセス制限の概要を示す「主記述子」６２５と、イベントのパブリッシャに関連する属性をさらに提供する「パブリッシャ記述子」６３５と、そのイベントに関連して公開されたコンテンツオブジェクトに関する所定の属性を提供する「終了記述子」６４５とが示されている。
【０１８３】
[198]図示の実施形態では、主記述子６２５は、２つのフィールドすなわち、パブリケーションがそこから発する区域を識別する「パブリケーションゾーン」６２６（例えば、５バイトの郵便番号）と、公開されたコンテンツオブジェクトにアクセスできる場合を示す「パブリケーション権利」６２８（例えば、郵便番号の１０バイトの範囲）とを含む。他の実施形態では、複数の郵便番号の範囲、或いは１つ以上の連続する若しくは不連続な地理的区域を指定する他の手段を使用することができる。さらに、ユーザのプロファイル、挙動、又は実質的にすべての他の静的属性若しくは動的属性に基づくアクセス制約など、地理的制限以外の追加の制限を利用することができる。
【０１８４】
[199]図６に示されたこの実施形態では、パブリッシャ記述子６３５は、２つのフィールドを含む。そのうちの第１のフィールドが、パブリッシャの異なるタイプだけではなく各そのようなタイプ内の優先順位付けされた順序をも反映する単一バイトとして示された「パブリッシャ優先順位」６３６である。例えば、ほとんどの映画パブリッシャに、「２」のデフォルトレベルを割り当てることができ、「トップパブリッシャ」（例えば平均需要に基づく、最も人気のある映画の）に、「１」の値を割り当てることができる。また、より低い優先順位値を、「より低い優先順位の」映画パブリッシャだけではなく、完全に異なるタイプ又はクラスのパブリッシャに割り当てることができ、例えば、ストリーミングコンテンツのパブリッシャに「９」の値を割り当てることができる。一実施形態で、「プライベート」パブリッシャに、「０」の値を割り当てて（例えば、低くも高くもないが一意と考えられる）、パブリッシャカテゴリを相対的に迅速に区別する単純な手段を可能にすることすらできる。もう１つの実施形態では、これらの異なるタイプの優先順位付けを組み合わせることができる。パブリッシャ記述子６３５には、所与のパブリッシャに通常関連するコンテンツオブジェクトの主要なジャンルを識別するのに使用できる「パブリッシャカテゴリ」６３８（図６では２バイトフィールドとして図示）をも含めることができる。代替実施形態（図示せず）では、「イベントカテゴリ」フィールドを使用して（例えば、別々の「イベント記述子」内で）、パブリッシャを分類するのではなく、コンテンツオブジェクトジャンルをより別個の（例えば、「映画ごとの」）基礎で区別することができる。そのような情報は、下でより詳細に述べるように、別々の集中化された「メタデータＤＢ」にも（又はこれに排他的に）格納し、ＣＲＩＤ  ６０１（又はコアＣＲＩＤ  ６１０）を介して関連付けることができる。
【０１８５】
[200]最後に、「終了記述子」６４５は、一実施形態で、コンテンツオブジェクトの異なる形又はタイプの間で区別する単一のフィールドすなわち「コンテンツオブジェクトタイプ」６４６（例えば、２バイト値）を伴って図示されている。例えば、映画を、その予告編から、又は現在のＤＶＤの多くで通常見られる他のタイプの「エクストラ」コンテンツから区別することができる。上で注記したように、アスペクト比（例えば、ワイドスクリーン）又は異なる第１言語も、区別する要因とすることができる。さらに、完全に異なるタイプのコンテンツ（例えば、ドキュメンタリ、トレーニングビデオ、教育ビデオ、ユーザ生成のストリーミングクリップなど）をコンテンツオブジェクトの区別可能なカテゴリの源とすることもできる。上で注記したように、追加の「イベント関連」情報を、「イベント記述子」内に含めるか、及び／又はネットワーク上のＶＯＤピアからアクセス可能な集中化された「メタデータＤＢ」内で別々に維持することができる。
３．トラッキングファイル
【０１８６】
[201]図７に移ると、トラッキングファイルデータ構造７００の一部の実施形態が示されている。このトラッキングファイルデータ構造７００は、公開されたコンテンツオブジェクト（すなわちイベント）のパッケージの特定のグループを格納する所定のＶＯＤピアの位置を維持し、そのようなＶＯＤピア位置をそのイベントを表す対応するＣＲＩＤに関連付ける。一実施形態では、別々のトラッキングファイル７００が、イベントを表すＣＲＩＤごとに生成されるが、他の実施形態（図示せず）では、１つのトラッキングファイルに複数のＣＲＩＤ（イベント）を含めることができる。各エントリは、特定のＣＲＩＤについて、そのＣＲＩＤに関連するコンテンツオブジェクトの構成要素パッケージを格納するさまざまなＶＯＤピアを識別することができる。
【０１８７】
[202]上で注記したように、トラッキングファイル７００は、分散された形で生成され、維持される。したがって、特定のＶＯＤピアに格納されたトラッキングファイル７００のコピーは、公開されたコンテンツオブジェクト（対応するＣＲＩＤによって表される）のパッケージのグループを格納するＶＯＤピアのサブセット（例えば、「葉」クラスタ内の隣接するＶＯＤピア）だけに関するエントリを含むことができる。トラッキングファイル７００の他のバージョン（例えば、より信頼性の高いＶＯＤピアに格納される）は、構成要素パッケージのそのようなグループを格納するＶＯＤピアのより大きいドメインを表すことができる。構成要素パッケージのグループは、例えば、「サブセット」葉クラスタ内のＶＯＤピアに加えて、より大きい「スーパーセット」クラスタ内のＶＯＤピアを含む。図７に示された一実施形態では、あるコンテンツオブジェクトの構成要素パッケージのすべてが、各トラッキングファイル内で説明される。その結果、特定のコンテンツオブジェクトへのアクセスを入手するために、複数のトラッキングファイルを突き止める必要がなくなる。
【０１８８】
[203]表形式で図示されているが、トラッキングファイル７００内のデータを、圧縮されたハッシュテーブル、リンクリスト、並びに他の標準的な低水準のデータ構造及びフォーマットを含むより効率的なフォーマットで表すことができる。一実施形態で、トラッキングファイル７００の最初のフィールドは、別々のＶＯＤピアに格納されている構成要素パッケージのグループ（「パッケージグループ」）の個数を識別する。例えば、あるコンテンツオブジェクトを、１００個の別々の構成要素パッケージ（一実施形態では固定サイズの、他の実施形態では異なるサイズの）に分割し、なおかつ４つの別個のパッケージグループ（例えば、最初の１０個のパッケージを含む「パッケージグループ１」、それぞれ２０個のパッケージの後続グループを含む「パッケージグループ２」及び「パッケージグループ３」、並びに残りの５０個のパッケージを含む「パッケージグループ４」）にグループ化することができる。
【０１８９】
[204]図７に示された実施形態では、このフィールド７１０に、トラッキングファイル７００を識別するＣＲＩＤに関連するコンテンツオブジェクトが３つの別個のパッケージグループを含み、そのコピーが個々のＶＯＤピアに格納されることを示す「３」が含まれる。フィールド７１０に続くのが、そのようなＶＯＤピアごとの、そのＶＯＤピアのノードＩＤ（又は、一実施形態では、単純にＩＰアドレス）とそれに続くそのＶＯＤピアが各パッケージグループのコピーを含むかどうかの表示とを含むエントリである。例えば、フィールド７１０に続くのは、「ノード１」のＩＰアドレス７２０と、それに続く、ノード１がそのパッケージグループのコピーを格納するかどうかを示す３つのパッケージグループごとの値７２５である。これらのパッケージグループのうちの１つ以上を格納する残りのＶＯＤピアごとに、後続エントリが続く（「最終」エントリ７３０まで）。そのようなＶＯＤピアの個数は、別々のフィールド又はリンクリスト内のｎｕｌｌ値など、さまざまな手段（図示せず）によって指定することができる。
【０１９０】
[205]上で注記したように、照会するＶＯＤピアは、当初に、所望の公開されたコンテンツオブジェクト（イベント）に対応するＣＲＩＤに基づく隣接するＶＯＤピアの検索を実行し、その所望のＣＲＩＤに関連するトラッキングファイルのコピーを格納するＶＯＤピアを直接に突き止めることに失敗する場合がある。下でより詳細に説明するように、そのような検索は、まず、そのようなトラッキングファイルのコピーを格納する１つ以上のＶＯＤピアを間接的に参照する「トラッキングインデックス」を含むＶＯＤピアをもたらす場合がある。さらに、関連するトラッキングファイルを見つけた時であっても、そのトラッキングファイル内で参照されるＶＯＤピアのうちの１つ以上がダウンロード要求を完了できない（例えば、デバイス障害、ネットワーク障害、過負荷帯域幅、又はなんらかの他の問題に起因して）場合に、追加の検索が必要になる場合がある。
４．トラッキングインデックス
【０１９１】
[206]上で注記したように、トラッキングインデックスが、関連するトラッキングファイルが突き止められる前に識別される場合には、そのトラッキングインデックスが、利用され、１つ以上の関連するトラッキングファイルを突き止める。このトラッキングファイルは、要求元ＶＯＤピアがダウンロードし見ることを望む公開されたコンテンツオブジェクト（イベント）に対応するＣＲＩＤに基づく。やはり上で注記したように、トラッキングインデックス及び対応するトラッキングファイルは、イベントが最初に発生する時（すなわち、関連するコンテンツオブジェクトが最初に公開される時）に生成される。これらのファイルは、分散された形で、例えば、クラスタにまたがって、「スーパーセット」から下に「サブセット」クラスタへ生成されるが、（効率のために）必ずしも各「葉」クラスタのレベルまで下に生成されるのではない。構成要素パッケージ（及びそのグループ）を含むコンテンツオブジェクトの展開での変更が行われる時に、対応する変更が、これらのファイルでも必要とされる場合がある（類似する分散された形で達成される）。そのような変更は、さまざまな異なるネットワーク関連の原因及び挙動の原因に由来する場合がある。例えば、そのような変更は、デバイス障害、ネットワーク障害、ネットワーク帯域幅の測定された変化、並びに全般的な又は特定のクラスタ内の特定のコンテンツオブジェクトに関する需要の増加及び／又は減少に由来する可能性がある。
【０１９２】
[207]トラッキングインデックスデータ構造８００の一実施形態を、図８に示す。上で述べたトラッキングファイル７００に似て、表フォーマットが使用されている。表フォーマットは、圧縮されたハッシュテーブル、リンクリスト、並びに他の標準的な低水準のデータ構造及びフォーマットを含むより効率的なフォーマットで表すこともできるデータを有する。上で注記したように、別々のトラッキングインデックスを、ＣＲＩＤ（イベント）ごとに生成することができる。或いは、図８に示されているように、単一のトラッキングインデックスに、そのようなＣＲＩＤごとに（例えば、特定のクラスタ内で公開されたイベントごとに）エントリを含めることができる。
【０１９３】
[208]図８では、各行が、特定のイベントを表し、「イベントＡ」を表す行８１０から開始する。各後続の行は、別のイベントを表す（「イベントＮ」を表す「最終」行８２０まで）。イベントごとに、最初のフィールドは、そのイベントに対応するＣＲＩＤ  ８１５を識別する。このフィールドは、もちろん、例えば別々のトラッキングインデックスがＣＲＩＤごとに生成される場合には不要であり、その場合には、ＣＲＩＤを、その別々のトラッキングインデックスファイルを突き止めるのに使用することができる（例えば、ハッシュテーブルを介して）。各ＣＲＩＤエントリは、そのＣＲＩＤに対応するトラッキングファイルのコピーを格納するＶＯＤピアのＩＰアドレス（又はノードＩＤ）のリストを含む。最初にリストされるＶＯＤピアのＩＰアドレスは、列８１８によって示されており、これに、列８１９までの後続ＶＯＤピアのＩＰアドレスが続き、列８１９は、「最終」ＶＯＤピアのＩＰアドレスを表す。
【０１９４】
[209]特定のＣＲＩＤ（イベント）に対応するトラッキングファイルのコピーを格納するＶＯＤピアの個数が、ＣＲＩＤごとに変化する場合があることに留意されたい。また、特定のＶＯＤピアが、おそらくは複数のＣＲＩＤに関連するトラッキングファイルのコピー（別々のトラッキングファイルとして格納されるか、複数のＣＲＩＤエントリを有する単一のトラッキングファイルとして格納される）を格納する場合がある。さらに、上で注記したように、一実施形態で、あるトラッキングインデックス内の異なるＣＲＩＤエントリの個数は、より信頼性の高いＶＯＤピアに格納されるトラッキングインデックスでより多くなる可能性がある（例えば、さまざまな「サブセット」クラスタ内の追加のＶＯＤピアを識別する）。
Ｂ．ノード間通信
【０１９５】
[210]ＶＯＤピアのノードＩＤ、コンテンツオブジェクトが公開されるイベントのコンテンツ参照ＩＤ（ＣＲＩＤ）、並びにそのようなコンテンツオブジェクトの構成要素パッケージのグループの分散位置を維持するために生成されるトラッキングインデックス及びトラッキングファイルを含む、所定の重要なデータ構造を説明した。これから、ＶＯＤピアが互いと（並びにＶＯＤサポートサーバと）それよって通信する通信プロトコル及び他の手段に注意を向ける。
１．初期ハンドシェーク
【０１９６】
[211]一実施形態で、２つのＶＯＤピアが互いと直接に通信する（例えば、アプリケーションレベルリレーとして働く介在物なしでＴＣＰを介して）時には必ず、一方が「イニシエータ」として働き、他方が「レスポンダ」として働く。その後、初期接続が確立されたならば、残りの通信アーキテクチャの多くを対称とすることができる。
【０１９７】
[212]ＴＣＰストリーム接続のこの確立（ＴＣＰ接続は、オーバーレイネットワークとして使用される）は、別個のフェーズに分割される。初期フェーズすなわち「フェーズＡ」は、初期ＴＣＰ接続を確立するのに使用されるＩＰアドレス及びポートを発見するのに必要な予備活動を含む。これに「フェーズＢ」が続き、フェーズＢでは、生ＴＣＰ接続が、通常は公開された標準規格に従って確立される。
【０１９８】
[213]例えば、「正常な」場合に、正確に３つのＴＣＰプロトコルデータ単位（ＰＤＵ又はパケット）が、接続をセットアップするために交換される。最初の交換されるパケットは、「ＳＹＮ」フラグをセットされ、第２のパケットは、「ＳＹＮ」フラグと「ＡＣＫ」フラグとの両方をセットされ、第３のパケットは、「ＡＣＫ」フラグだけをセットされる。この実施形態では、第１及び第３のパケットを送信するＶＯＤピアが、「イニシエータ」と考えられ、第２パケットを送信するＶＯＤピアは、「レスポンダ」と考えられる。
【０１９９】
[214]「フェーズＢ」の完了時に、図９に示された対称ハンドシェーキングフェーズを開始することができる。初期ハンドシェークフェーズすなわち「フェーズＨ１」９３０では、イニシエータすなわち「ノードＡ」９１０及びレスポンダすなわち「ノードＢ」９２０のそれぞれが、ＶＯＤピアとのＴＣＰ接続を確立した（意図された通りに）、又は別のタイプのインターネットベースの実体とのＴＣＰ接続を誤って確立したのいずれであるかを判定することを試みる。したがって、この初期ハンドシェークフェーズであるフェーズＨ１  ９３０は、対称フェーズである。各ＶＯＤピアは、単一オクテット（バイト）を送信し、タイマをセットし、タイマが満了する前に他方のＶＯＤピアからのもう１つのオクテット（バイト）を読み取ることを試みる。一実施形態で、ノードＡ  ９１０すなわちイニシエータは、ＡＳＣＩＩ「６」（０ｘ３６）を含むメッセージ「Ｈ１ｉ」を送信する。ノードＢ  ９２０すなわちレスポンダは、ＡＳＣＩＩ「９」（０ｘ３９）を含むメッセージ「Ｈ１ｒ」を送信する。いずれかの側が、他方の側からのオクテットの受信を待っている間にタイムアウトする場合（或いは、期待されない値を受信する場合）に、その側は、接続をクローズする。他方のＶＯＤピアとの着信ストリーム又は発信ストリームの同期化は、不要である。これらの送信ストリーム及び受信ストリームのシャットダウンは、実際には、暗黙である（例えば、アプリケーションが「ｃｌｏｓｅ（．．．）」又は類似するＡＰＩ要素を使用して、それ自体を接続からデタッチする時）。そうではなく、すべてが計画通りに進む（すなわち、期待されたオクテットが間に合って受信される）場合には、このプロセスは、次のフェーズすなわち「フェーズＨ２」９４０に進む。
【０２００】
[215]フェーズＨ２  ９４０は、ＶＯＤピアのそれぞれが、他方のＶＯＤピアに、それが合法的なＶＯＤピア（システムの「クラック」を試みているノードではなく）と実際に通信していると確信させることを試みるという点で、やはり対称である。一実施形態で、「Ｈ２Ｘ」メッセージが、このセキュア検証を実行するのに使用されるが、より単純な「Ｈ２Ｂ」メッセージを、開発目的及びデバック目的（例えば、デバッグ中の通信の暗号化を防ぐため）に使用可能にすることができる（及びおそらくは必要になる）。この開発／デバッグシナリオでは、フェーズＨ２  ９４０は、ノードＡ  ９１０とノードＢ  ９２０との両方が、一実施形態で単一オクテット（例えば、ドット又はピリオドのＡＳＣＩＩコード）からなる「Ｈ２Ｂ」メッセージを交換することを含む。
【０２０１】
[216]通常の製品シナリオでは、ノードＡ  ９１０とノードＢ  ９２０との両方が、セキュア検証を実現するために「Ｈ２Ｘ」メッセージを交換する。これらの「Ｈ２Ｘ」メッセージは、一実施形態で、メッセージの終りを突き止めるために迅速に簡単に解析可能になるように符号化される（例えば、２オクテットと６２オクテットとの間であり、最後のオクテットが、ピリオドのＡＳＣＩＩコードを符号化される唯一のオクテットである）。これらは、通常、セキュリティオプションのネゴシエーションに関するさまざまなパラメータと混合された、よい種を与えられた擬似ランダムデータを含む。一実施形態で、両側がフェーズＨ２  ９４０メッセージとして「Ｈ２Ｘ」メッセージを送信する時に、追加のフェーズすなわち「Ｈ３」９５０が、初期セキュリティセットアップのハンドシェーキングを完了するのに必要である。
【０２０２】
[217]その一方で、開発／デバッグシナリオにおいて、一方の側が「Ｈ２Ｘ」メッセージを送信し、他方の側が「Ｈ２Ｂ」メッセージを送信する場合に、ハンドシェークフェーズＨ２  ９４０は、接続にさらなるセキュリティを追加するためにフェーズＨ３  ９５０を必要とせずに完了する。ハンドシェークが完了した後に、「Ｈ２Ｂ」メッセージを受信した側は、「Ｈ２Ｂ」メッセージを送信した側が、このプロトコルの古いバージョン又は製品以前のバージョンを使用しているか、デバッグモードで動作しているか、或いはこのシステムの「クラック」を試みている可能性があることを感知し、この接続に不安を感じる可能性がある。したがって、「Ｈ２Ｂ」メッセージを受信した側は、サービスを一切提供せずに単純に切断を開始してもよい（例えば、下で説明する、「ＤｉｓｃＷｉｔｈＲｅａｓｏｎ」メッセージを適当なペイロードと共に送信することによって）。あるＶＯＤピアが、なんらかの理由でフェーズＨ３  ９５０をサポートしない場合には、そのフェーズＨ２  ９４０は、単純に、「Ｈ２Ｂ」メッセージを送信することと、その後に、最後のＡＳＣＩＩ「ピリオド」に出会うまで入力ストリームから６２個までのオクテットを読み取ることからなるものとすることができる。
【０２０３】
[218]フェーズＨ３  ９５０交換の最初のメッセージは、一実施形態で、少なくとも、「Ｈ２Ｘ」メッセージともう１つの値（例えば暗号鍵）との両方に事前定義の順序で関数的に依存するある値を含む。各側は、まず、受信した「Ｈ２Ｘ」メッセージが、それが送信した「Ｈ２Ｘ」メッセージと異なることを検証する（及び、送信したものと同一のメッセージを受信した場合（システムを「クラックする」可能な試みのインジケータ）には、接続を断つ）こともできる。検証が達成されるまで、おそらくはノードＩＤの交換を含めて（このハンドシェークフェーズに続く「通常の」ノードＩＤ交換の前であっても）、複数のメッセージを追加セキュリティのために交換することができる。
【０２０４】
[219]これらのハンドシェークフェーズの結果として、最大サイズの「Ｈ２Ｘ」メッセージ（例えば、６２オクテット／バイト）を格納できる比較的小さいバッファを利用することと、ターミネータ値（例えば、ＡＳＣＩＩピリオド）が見つかるかバッファが満杯になるまで入力ストリームからそのバッファに単純に読み取ることとによって、「Ｈ２Ｂ」メッセージ及び「Ｈ２Ｘ」メッセージを受信することができる。最初のオクテットがターミネータ値である場合には、そのメッセージは「Ｈ２Ｂ」メッセージである。そうでない場合には、そのメッセージは「Ｈ２Ｘ」メッセージである。
２．メッセージ符号化
【０２０５】
[220]図９に示された初期ハンドシェークが完了した後に、さまざまな他の「基本」メッセージ及び「拡張」メッセージを、情況に応じて交換することができる。例えば、一実施形態で、ＶＯＤピアは、最初に、ノードＩＤ（一実施形態では単なるＩＰアドレスであるが、他の実施形態ではボックスＩＤ又はノードＩＤ全体である）及び信頼レベルを交換する。他のシナリオは、ＶＯＤピアの最初の「ブートストラップ」プロセス又は後続のスタートアップ／ブートプロセス、更新及び他の管理サービス、プッシュ関連プロセス（アナウンスメント及びパブリケーションなど）、プル関連プロセス（ファイル検索及びダウンロードなど）、動的監視のテスト及びデータ交換、並びに下でより詳細に述べる他のシナリオを含む。
【０２０６】
[221]一実施形態で、メッセージは、６バイトヘッダから開始して符号化される。ストリングは、２バイト長を使用して値符号化される。追加の２バイトが、使用されるプロトコルバージョンのために割り当てられ、別の２バイトが、それぞれペイロードサイズ及びペイロードタイプのために割り当てられる。空のペイロードは、この実施形態では許容される。ペイロードタイプの例は、次を含む。
・  ０１  検索インデックス（ペイロードは必ずＣＲＩＤである）
・  ０２  要求トラッキング（ペイロードは必ずＣＲＩＤである）
・  ０３  要求コンテンツパッケージ（ペイロードはＣＲＩＤ及びパッケージ番号である）
・  ６６  ソケット接続が残っていない
【０２０７】
[222]一実施形態では、メッセージペイロードを、同一のタイプ（各要素が固定サイズを有するか、異なる要素が異なるサイズを有する）又は異なるタイプを有するｎ個の要素からなるものとすることができる。ペイロードが、すべてが既知の固定サイズの同一のタイプを有する複数の要素からなる時に、下に示すように、最初の２バイトが、要素数を定義し、その後に、各要素を構成する固定された個数のバイトが続く。
・例  このペイロードは、すべてが既知の固定サイズの同一のタイプを有する３つの要素（ａ、ｂ、及びｃ）からなる。
【表１】
2014116949.tif 000003
【０２０８】
[223]ペイロードが、すべてが同一のタイプを有するが異なるサイズのｎ個の要素からなる時には、下に示すように、最初の２バイトが、要素数を定義し、その後に、要素ごとにその要素のサイズを定義する２バイトと、その要素を構成するバイトとが続く。
・例  このペイロードは、すべてが同一のタイプを有するが異なるサイズ（それぞれ３バイト、４バイト、及び５バイト）の３つの要素（ａ、ｂ、及びｃ）からなる。
【表２】
2014116949.tif 000004
【０２０９】
[224]ペイロードが、異なるタイプのｎ個の要素からなる時には、要素タイプ及びサイズのさまざまな組合せが可能であり、下に示すように、各タイプの要素（同一の固定サイズ又は異なるサイズのいずれかを有する）が一緒に指定される。
・例  このペイロードは、さまざまな個数の３つのタイプの要素からなる。第１及び第２のタイプの要素（タイプＡ及びタイプＢ）は、固定サイズを有する。第３のタイプの要素（タイプＣ）は、可変サイズの要素を有する。
【表３】
2014116949.tif 000005
３．基本メッセージ
【０２１０】
[225]次は、本発明の主要なプッシュ、プル、及びネットワーク監視機能性（これらは、下で述べる「拡張メッセージ」によって呼び出される）などの特定の目的に必ずしも制約されないさまざまな一般的な目的にＶＯＤピアによって使用される「基本メッセージ」の実施形態の説明である。そのような一般的な目的は、下で述べるように、接続を確立し検証する初期ハンドシェーキングメッセージ及びログインメッセージ、「アイドル」時間の表示、並びに要求取消及び既存接続の切断を含む。
【０２１１】
[226]一実施形態で、「基本メッセージ」は次を含む。
【０２１２】
[227]初期ハンドシェーキング
【表４】
2014116949.tif 000006
【０２１３】
[228]第２ハンドシェーク
【表５】
2014116949.tif 000007
【０２１４】
[229]Ｌｏｇｉｎ（ＬＳＴＲ）  別のノードに接続する（イニシエータのノードＩＤを含む）
【表６】
2014116949.tif 000008
【０２１５】
[230]Ｌｏｇｉｎ（ＡＣＫ）  ハンドシェーキング検証の確認（Ｌｏｇｉｎを受け入れた後に送信される）
レスポンダのノードＩＤを含む
後続の切断は、ハンドシェークフェーズでのエラーではなく、「ハンドシェークされた」接続の期待されない切断と考えられる
【表７】
2014116949.tif 000009
【０２１６】
[231]Ｉｄｌｅ  実質的なメッセージが不要である時であってもメッセージを送信する必要がある場合がある
【表８】
2014116949.tif 000010
【０２１７】
[232]ＣａｎｃｅｌＲｅｑｕｅｓｔ  要求を取り消す
【表９】
2014116949.tif 000011
【０２１８】
[233]ＲｅｑｕｅｓｔＣｌｏｓｅｄ  この応答は、通常、要求が最終的に応答されるか取り消される時に必ず返される
【表１０】
2014116949.tif 000012
【０２１９】
[234]ＷＴＤｉｓｃＲｅｑｕｅｓｔ  ソケットをクローズする前に接続の正しいシャットダウンを保証する
正しいシャットダウンが開始される前に、「ＷＴＤｉｓｃＲｓｐＧｒａｎｔｅｄ」メッセージが、これに応答して送信される
【表１１】
2014116949.tif 000013
【０２２０】
[235]ＷＴＤｉｓｃＲｓｐＧｒａｎｔｅｄ  正しいシャットダウンを開始するための、ＷＴＤｉｓｃＲｅｑｕｅｓｔメッセージに対する応答
「ＷＴＤｉｓｃＲｅｑｕｅｓｔ」メッセージの送信側は、このメッセージを受信した後に、ソケットをクローズするために正しいシャットダウンを開始する
【表１２】
2014116949.tif 000014
【０２２１】
[236]ＷＴＤｉｓｃＲｓｐＤｏＮｏｔ  接続に関する意見の相違の場合に送信される
【表１３】
2014116949.tif 000015
【０２２２】
[237]Ｄｉｓｃｏｎｎｅｃｔｉｎｇ  まず「尋ねる」ことなく切断する代替の形
「ＷＴＤｉｓｃＲｅｑｕｅｓｔ」メッセージ及び「ＷＴＤｉｓｃＲｓｐＧｒａｎｔｅｄ」メッセージを交換する（実質的に、ソケットをクローズするために「許可を求める」）のではなく、このメッセージを送信し、一方的にソケットをクローズするためにシャットダウンを実行することができる
【表１４】
2014116949.tif 000016
【０２２３】
[238]ＤｉｓｃＷｉｔｈＲｅａｓｏｎ  「Ｄｉｓｃｏｎｎｅｃｔ」と同一であるが、ペイロードは、切断の理由を含む
ペイロードに、平文又は符号化された形で切断の理由を含めることができる
【表１５】
2014116949.tif 000017
４．拡張メッセージ
【０２２４】
[239]上で注記したように、「拡張メッセージ」は、本発明の主要なプッシュ、プル、及びネットワーク監視機能性に関する、より実質的なメッセージを含む。一実施形態で、これらの拡張メッセージは、次を含む。
【０２２５】
[240]Ａｌｉｖｅ＿Ｌｉｓｔ＿Ｒｅｑ  別のＶＯＤピアと「アライブリスト」を共有するために送信される
イニシエータの「アライブリスト」を含む
【表１６】
2014116949.tif 000018
【０２２６】
[241]Ａｌｉｖｅ＿Ｌｉｓｔ＿Ｒｅｓｐ  Ａｌｉｖｅ＿Ｌｉｓｔ＿Ｒｅｑに対する応答
レスポンダの「アライブリスト」を含む
【表１７】
2014116949.tif 000019
【０２２７】
[242]Ｂｕｄｄｙ＿Ｄｏｗｎｌｏａｄ＿Ｒｅｑｕｅｓｔ  「バディ」になることに合意したＶＯＤピアへのメッセージ
ペイロードは、ＣＲＩＤ、ダウンロードされるパッケージグループ、及びパッケージグループがそこからダウンロードされるＶＯＤピアのノードＩＤを含む
【表１８】
2014116949.tif 000020
【０２２８】
[243]Ｂｕｄｄｙ＿Ｄｏｗｎｌｏａｄ＿Ｒｅｓｐｏｎｓｅ  Ｂｕｄｄｙ＿Ｄｏｗｎｌｏａｄ＿Ｒｅｑｕｅｓｔメッセージに対する１つ以上の応答として送信される
ペイロードは、現在ダウンロードの準備ができているパッケージグループを含む
空のペイロードは、現在「バディ」として働くことが不可能であることを示す（例えば、断たれた接続又は低速の接続などに起因して）
【表１９】
2014116949.tif 000021
【０２２９】
[244]Ｂｕｄｄｙ＿Ｆｕｎｃｔｉｏｎ＿Ｒｅｑｕｅｓｔ  ＶＯＤピアへの、「バディ」として働くことの要求
受信側に、優先順位付きのダウンロード接続を準備する（及び、現在のダウンロード接続が断たれることを期待する）ように通知する
ペイロードは、現在ダウンロードしているＶＯＤピアのＣＲＩＤ及びノードＩＤを含む
【表２０】
2014116949.tif 000022
【０２３０】
[245]Ｂｕｄｄｙ＿Ｆｕｎｃｔｉｏｎ＿Ｒｅｓｐｏｎｓｅ  Ｂｕｄｄｙ＿Ｆｕｎｃｔｉｏｎ＿Ｒｅｑｕｅｓｔメッセージに対する応答
ＶＯＤピアが代替ダウンロードに「バディ」を使用する準備ができていることを確認する
空のペイロードは、ＶＯＤピアが「バディ」からダウンロード要求を受け入れる準備ができていることを示す
【表２１】
2014116949.tif 000023
【０２３１】
[246]Ｂｕｄｄｙ＿Ｒｅｑｕｅｓｔ  ダウンロードを援助する「バディ」を必要とするＶＯＤピアによって送信される
ペイロードは、イベントのＣＲＩＤと、パッケージグループが最初にそこからダウンロードされたＶＯＤピアのノードＩＤとを含む
【表２２】
2014116949.tif 000024
【０２３２】
[247]Ｂｕｄｄｙ＿Ｒｅｓｐｏｎｓｅ  Ｂｕｄｄｙ＿Ｒｅｑｕｅｓｔメッセージに応答して送信される
ペイロードは、ＶＯＤピアがその下で「バディ」として働くことができる条件を識別して、リクエスタが、この「バディ」機能を使用すること望むかどうかを判定できるようにする
空のペイロードは、ＶＯＤピアが現在は「バディ」として働くことができないことを示す
【表２３】
2014116949.tif 000025
【０２３３】
[248]Ｃｌｕｓｔｅｒ＿Ｄｏｗｎｌｏａｄ＿Ｃｏｍｐｌｅｔｅ  「供給クラスタ」の一部であるＶＯＤピアが指定されたパッケージグループのすべてのダウンロードを完了した後に、そのＶＯＤピアから送信される
ペイロードは、イベントのＣＲＩＤを含む
空のペイロードは、ダウンロードが失敗し、パッケージグループが要求元ＶＯＤピアに格納されていないことを示す
【表２４】
2014116949.tif 000026
【０２３４】
[249]Ｃｌｕｓｔｅｒ＿Ｄｏｗｎｌｏａｄ＿Ｓｔａｒｔ  クラスタ内でイベントを公開する責任を負うＶＯＤピアから送信される（受信するＶＯＤピアに、指定されたＶＯＤピアのノードＩＤから指定されたパッケージグループをダウンロードするように指示する）
【表２５】
2014116949.tif 000027
【０２３５】
[250]Ｃｏｎｔｅｎｔ＿Ｒｅｔｒｉｅｖａｌ＿Ｒｅａｄｙ  供給クラスタの一部であるＶＯＤピアから送信され、パッケージグループを要求元ＶＯＤピアにダウンロードする準備ができていることを示す
【表２６】
2014116949.tif 000028
【０２３６】
[251]Ｃｏｎｔｅｎｔ＿Ｒｅｔｒｉｅｖａｌ＿Ｈｅｌｐ＿Ｄｏｗｎｌｏａｄｅｄ  代替「フィーダ」ノードとして助けるように求められたＶＯＤピアから送信され、指定されたパッケージグループのダウンロードの準備ができていることを示す
【表２７】
2014116949.tif 000029
【０２３７】
[252]Ｃｏｎｔｅｎｔ＿Ｒｅｔｒｉｅｖａｌ＿Ｈｅｌｐ＿Ｒｅｑｕｅｓｔ  パッケージグループのダウンロードを助けるように求める、ＶＯＤピアからの要求
要求元ＶＯＤピアへのよい接続を有するＶＯＤピアだけに送信される。助けは、オリジナルの「フィーダ」ノードへの劣悪な接続又は失われた接続に起因して要求される
ペイロードは、イベントのＣＲＩＤ、パッケージグループが現在そこからダウンロードされつつあるＶＯＤピアのノードＩＤ、及び要求元ＶＯＤピアがダウンロードの援助を必要とするパッケージグループのＩＤからなる
Ｂｕｄｄｙ＿Ｒｅｑｕｅｓｔメッセージに似ているが、このメッセージは、既存接続を置換するのではなく、完全に新しい接続を要求する。
【表２８】
2014116949.tif 000030
【０２３８】
[253]Ｃｏｎｔｅｎｔ＿Ｒｅｔｒｉｅｖａｌ＿Ｈｅｌｐ＿Ｒｅｓｐｏｎｓｅ  要求されたパッケージグループの一部又はすべてをダウンロードすることを確認する、Ｃｏｎｔｅｎｔ＿Ｒｅｔｒｉｅｖａｌ＿Ｈｅｌｐ＿Ｒｅｑｕｅｓｔに対する応答
ペイロードは、イベントのＣＲＩＤ及びダウンロードが合意されたパッケージグループのＩＤからなる
【表２９】
2014116949.tif 000031
【０２３９】
[254]Ｆｅｅｄ＿Ｃｌｕｓｔｅｒ＿Ｓｔａｒｔ  他のＶＯＤピアが「供給クラスタ」コンテンツプッシュに参加するのを待っているＶＯＤピアから送信される
ペイロードは、イベントのＣＲＩＤ及びコンテンツがそこからダウンロードされる公開するサーバのノードＩＤからなる
【表３０】
2014116949.tif 000032
【０２４０】
[255]Ｆｅｅｄ＿Ｃｌｕｓｔｅｒ＿Ｒｅｓｐｏｎｓｅ  「供給クラスタ」に参加することを確認する、Ｆｅｅｄ＿Ｃｌｕｓｔｅｒ＿Ｓｔａｒｔメッセージに対する応答
ペイロードは、コンテンツがそこからダウンロードされる公開用サーバのノードＩＤからなる
【表３１】
2014116949.tif 000033
【０２４１】
[256]Ｆｉｌｅ＿Ｃｈｅｃｋ＿Ｒｅｑｕｅｓｔ  別のＶＯＤピアに１つ以上のダウンロード接続を求める要求
ペイロードは、イベントのＣＲＩＤ及び所望のパッケージグループのＩＤからなる
【表３２】
2014116949.tif 000034
【０２４２】
[257]Ｆｉｌｅ＿Ｃｈｅｃｋ＿Ｒｅｓｐｏｎｓｅ  Ｆｉｌｅ＿Ｃｈｅｃｋ＿Ｒｅｑｕｅｓｔに応答して、ＶＯＤピアの状況を返す
すなわち、そのＶＯＤピアが受け入れることのできるダウンロード接続の個数、又は、そのＶＯＤピアが接続を受け入れることができるようになる前に必要な時間の長さ
ペイロードは、使用可能な接続の個数からなる（使用可能な接続がない場合には、接続が使用可能になるまでの推定時間をも含む）。空のペイロードは、要求を満足できないことを示す。
【表３３】
2014116949.tif 000035
【０２４３】
[258]Ｇｌｏｂａｌ＿Ｍｅｓｓａｇｅ＿Ｒｅｑｕｅｓｔ  別のＶＯＤピアに「グローバルメッセージ」のすべてを要求する
【表３４】
2014116949.tif 000036
【０２４４】
[259]Ｇｌｏｂａｌ＿Ｍｅｓｓａｇｅ＿Ｒｅｓｐｏｎｓｅ  すべてのグローバルメッセージを返す、Ｇｌｏｂａｌ＿Ｍｅｓｓａｇｅ＿Ｒｅｑｕｅｓｔに対する応答（グローバルメッセージがない場合には、ペイロードは空である）
【表３５】
2014116949.tif 000037
【０２４５】
[260]Ｉｎｄｅｘ＿Ｆｉｌｅ＿Ｋｅｅｐｉｎｇ  このＶＯＤピアが新しい／更新されたトラッキングインデックスを有することを、別のＶＯＤピアに通知する
【表３６】
2014116949.tif 000038
【０２４６】
[261]Ｉｎｄｅｘ＿Ｆｉｌｅ＿Ｋｅｅｐｉｎｇ＿Ｒｅｓｐｏｎｓｅ  新しい／更新されたトラッキングインデックスの知識を肯定応答する、Ｉｎｄｅｘ＿Ｆｉｌｅ＿Ｋｅｅｐｉｎｇ要求に対する応答
【表３７】
2014116949.tif 000039
【０２４７】
[262]Ｉｎｄｅｘ＿Ｒｅｑｕｅｓｔ  別のＶＯＤピアにトラッキングインデックスを求める要求
ペイロードは、所望のトラッキングインデックスに関連するイベントのＣＲＩＤからなる
【表３８】
2014116949.tif 000040
【０２４８】
[263]Ｉｎｄｅｘ＿Ｒｅｓｐｏｎｓｅ  要求されたトラッキングインデックスを返す、Ｉｎｄｅｘ＿Ｒｅｑｕｅｓｔに対する応答
ペイロードは、要求されたトラッキングインデックスからなる（存在しない場合には空である）
【表３９】
2014116949.tif 000041
【０２４９】
[264]Ｐｅｅｒ＿Ｃａｓｔｉｎｇ＿Ｃｌｉｅｎｔ  別のＶＯＤピアに、そのＶＯＤピアが「ピアキャスティング」シナリオでクライアントとして働かなければならないことを知らせる
ペイロードは、サーバとして働かなければならないＶＯＤピアのノードＩＤからなる
【表４０】
2014116949.tif 000042
【０２５０】
[265]Ｐｅｅｒ＿Ｃａｓｔｉｎｇ＿Ｃｌｉｅｎｔ＿Ｒｅｓｐｏｎｓｅ  Ｐｅｅｒ＿Ｃａｓｔｉｎｇ＿Ｃｌｉｅｎｔメッセージに対する応答
空のペイロードは、ピアキャスティングサーバが連絡を受け、「ピアキャスティング」シナリオが受け入れられたことを示す
【表４１】
2014116949.tif 000043
【０２５１】
[266]Ｐｅｅｒ＿Ｃａｓｔｉｎｇ＿Ｄｏｗｎｌｏａｄ＿Ｓｅｔｕｐ  「ピアキャスティング」シナリオで「クライアント」から「サーバ」に送信され、接続を正しくセットアップできることを確認する
【表４２】
2014116949.tif 000044
【０２５２】
[267]Ｐｅｅｒ＿Ｃａｓｔｉｎｇ＿Ｄｏｗｎｌｏａｄ＿Ｓｅｔｕｐ＿ＲｅｓｐｏｎｓｅＰｅｅｒ＿Ｃａｓｔｉｎｇ＿Ｄｏｗｎｌｏａｄ＿Ｓｅｔｕｐメッセージに対する応答
【表４３】
2014116949.tif 000045
【０２５３】
[268]Ｐｕｂｌｉｓｈｅｄ＿Ｌｉｓｔ＿Ｒｅｑｕｅｓｔ  パブリッシャが新しいイベント（すなわち、新たに公開されたコンテンツオブジェクト）をアナウンスすることを望むことを示す、パブリッシャからＶＯＤサポートサーバへのメッセージ
ペイロードは、公開されたコンテンツオブジェクトに関連するイベントのＣＲＩＤからなる
【表４４】
2014116949.tif 000046
【０２５４】
[269]Ｐｕｂｌｉｓｈｅｄ＿Ｌｉｓｔ＿Ｒｅｓｐｏｎｓｅ  ＶＯＤサポートサーバからパブリッシャへの、Ｐｕｂｌｉｓｈｅｄ＿Ｌｉｓｔ＿Ｒｅｑｕｅｓｔに応答するメッセージ
ペイロードは、パブリッシャが新しいイベントのアナウンスを連絡しなければならないノードＩＤのリストを含む
空のペイロードは、ＶＯＤサポートサーバが、信頼レベル「２」（又はそれ未満）のＶＯＤピアがそのイベントの公開されたコンテンツオブジェクトにアクセスできてはならないと決定したことを示す
【表４５】
2014116949.tif 000047
【０２５５】
[270]Ｐｕｂｌｉｓｈｅｄ＿Ａｎｎｏｕｎｃｅｍｅｎｔ  新しいイベント（公開され、ダウンロードに使用可能なコンテンツオブジェクト）の、別のＶＯＤピアへのアナウンスメント
ペイロードは、新しいイベントのＣＲＩＤからなる
【表４６】
2014116949.tif 000048
【０２５６】
[271]Ｐｕｂｌｉｓｈｅｄ＿Ａｎｎｏｕｎｃｅｍｅｎｔ＿Ｒｅｓｐｏｎｓｅ  Ｐｕｂｌｉｓｈｅｄ＿Ａｎｎｏｕｎｃｅｍｅｎｔの受信を肯定応答する応答
ペイロードは、新しいイベントのＣＲＩＤからなる
【表４７】
2014116949.tif 000049
【０２５７】
[272]Ｐｕｂｌｉｓｈｉｎｇ＿Ｃｏｍｐｌｅｔｅ  イベントに関連するコンテンツオブジェクト全体が特定のクラスタにダウンロードされた時に公開するサーバに送信される
【表４８】
2014116949.tif 000050
【０２５８】
[273]Ｑｕｅ＿Ｒｅｑｕｅｓｔ  使用可能なダウンロードスロットを有しないＶＯＤピアに送信される（要求されたパッケージグループに関する情報を含む）
空のペイロードは、そのＶＯＤピアに関するすべての保留中のキューを取り消す
【表４９】
2014116949.tif 000051
【０２５９】
[274]Ｑｕｅ＿Ｒｅｓｐｏｎｓｅ  Ｑｕｅ＿Ｒｅｑｕｅｓｔに対する応答
【表５０】
2014116949.tif 000052
【０２６０】
[275]Ｒｅｓｃｕｅ＿Ｐｒｅｐａｒａｔｉｏｎ  より信頼性の低いＶＯＤピアとのリクエスタの接続が障害を発生した場合に助けを要求できることを警告する、信頼レベル「２」を有するＶＯＤピアへのメッセージ
【表５１】
2014116949.tif 000053
【０２６１】
[276]Ｒｅｓｃｕｅ＿Ｐｒｅｐａｒａｔｉｏｎ＿Ｒｅｓｐｏｎｓｅ  Ｒｅｓｃｕｅ＿Ｐｒｅｐａｒａｔｉｏｎメッセージを肯定応答する応答
【表５２】
2014116949.tif 000054
【０２６２】
[277]Ｔｒａｃｋｉｎｇ＿Ｆｉｌｅ＿Ｒｅｑｕｅｓｔ  別のＶＯＤピアにトラッキングファイルを要求する
ペイロードは、所望のトラッキングファイルに関連するイベントのＣＲＩＤからなる
【表５３】
2014116949.tif 000055
【０２６３】
[278]Ｔｒａｃｋｉｎｇ＿Ｆｉｌｅ＿Ｒｅｓｐｏｎｓｅ  Ｔｒａｃｋｉｎｇ＿Ｆｉｌｅ＿Ｒｅｑｕｅｓｔに対する応答
ペイロードは、要求されたトラッキングファイルからなる
【表５４】
2014116949.tif 000056
Ｃ．動的通信プロセス
【０２６４】
[279]ＶＯＤピアの間の通信について一実施形態で使用される、ある基本メッセージ及び拡張メッセージを述べた。これから、そのようなメッセージを使用することによって実施される高水準の機能性に注意を向ける。そのような機能性は、ＶＯＤピアの最初のスタートアップ（及びリスタート）、プッシュプロセス（新しいコンテンツオブジェクトのアナウンスメント及びパブリケーションを含む）、プルプロセス（トラッキングインデックス及びトラッキングファイルの検索並びにコンテンツオブジェクトパッケージのダウンロードを含む）、並びにネットワーク、挙動、及びシステムの他の属性の動的監視（信頼レベル、クラスタメンバシップ、及びコンテンツオブジェクトパッケージのコピーの分散に対する変更など、そのような動的監視の結果を含む）など、本発明の主要な動的プロセスを含む。
１．ノードのスタートアップ
【０２６５】
[280]一実施形態で、ＶＯＤピアは、最初にネットワークに加わる時に、ある初期ハウスキーピングタスクを実行する。当初に、ＶＯＤピアは、そのデフォルトノードＩＤ並びに既知のＶＯＤサポートサーバのノードＩＤに頼って、他のネットワークデバイスと通信する。そのような情報は、ＶＯＤピアデバイスが製造される時に格納される。例えば、その一意のボックスＩＤフィールドは、デバイスが製造される時に事前に決定されるが、他のフィールドは、ユーザによって書き込まれ（ＶＯＤピアのユーザインターフェースを介して）、及び／又はＶＯＤサポートサーバ（又は他のＶＯＤピア）との通信によって入手される必要がある。
【０２６６】
[281]ＶＯＤピアの内部ソフトウェアは、当初に、ネットワーク接続がデフォルトで存在したかどうかを（例えば、ローカルＤＨＣＰサーバを介して）判定し、そうでない場合には、そのような接続を確立するネットワークセットアップルーチンを呼び出す。さらに、一実施形態では、直接のインターネット接続性は不要である。例えば、あるＶＯＤピアが、インターネットへのアクセスを有するＶＯＤピアとの直接接続（又は、さらなる間接的な接続若しくはおそらく「プロキシ」接続）を有する。その場合に、後者のＶＯＤピアは、直接インターネットアクセスを有しないＶＯＤピアへ及びそれからのメッセージを中継して、完全な又は部分的なネットワーク機能性及びＶＯＤ機能性を使用可能にする責任を負う。次のステップは、直接インターネット接続性を仮定して説明されるが、これらを、間接的に又は「プロキシ」ＶＯＤピアを介して実行することができる。
【０２６７】
[282]ネットワーク接続性及びインターネットアクセスをセットアップした時に、ＶＯＤサーバは、次に、その内部メモリ（例えば、ＲＯＭ）にアクセスして、既知のＶＯＤサポートサーバの１つのノードＩＤを入手し、そのＶＯＤサポートサーバとの通信に進んで、接続を確立し、これらの初期ハウスキーピングタスクを実行する。そのようなタスクには、ソフトウェア更新（最新のＶＯＤピアクライアントソフトウェア又はファームウェアを入手するため）及び時間同期化（一実施形態では、その後に周期的な基礎で維持することができる）を含むことができる。また、他の初期プロファイル情報と一緒に残りのノードＩＤフィールドを満たし、及び／又は更新するのに必要なデータを入手するように働く「作成プロセス」を含めることができる。
【０２６８】
[283]例えば、一実施形態で、ＶＯＤピアのボックスＩＤを、ＶＯＤサポートサーバによって利用して、新しいソフトウェア更新又はファームウェア更新について検査することができる。ボックスＩＤの検証時に、ＶＯＤサポートサーバは、ＶＯＤピアのデバイスモデル及びバージョン番号について指定された更新ソフトウェアを含むＣＲＩＤを返して応答することができる。次に、ＶＯＤピアは、その更新ソフトウェアをダウンロードし、クライアント側更新プロセス又はインストールプロセスを呼び出すことができる。言い換えると、そのような更新ソフトウェアは、ネットワーク上のもう１つのコンテンツオブジェクトにすぎないと考えることができるが、この場合に、ＣＲＩＤの「コンテンツオブジェクトタイプ」は、インストールを要求した更新ソフトウェアとして（例えば、ＶＯＤビューイングについて指定された映画ではなく）そのコンテンツオブジェクトを識別する。
【０２６９】
[284]さらに、ＶＯＤサポートサーバは、標準的なＩＰロケーションデータベースにアクセスして（初期化されつつあるＶＯＤピアの代わりに）、ある地理的情報（上で述べたノードＩＤのＩＳＰフィールド、国フィールド、地域フィールド、及び他の関連するフィールドなど）を入手することができる。そのような情報は、ＶＯＤピアに渡され、ＶＯＤピアは、それ自体の内部メモリを更新する。
【０２７０】
[285]ＶＯＤピアの完全なノードＩＤを生成するために、追加のノードＩＤフィールド（例えば、ＩＰアドレス）からのデータを、ＶＯＤピアから直接に入手することができ、他のデータを、追加の「テスト」通信を介して間接的に判定することができる。例えば、ＶＯＤピアの「ローカルノードアクセシビリティ」フィールド値及び「グローバルノードアクセシビリティ」フィールド値は、そのＶＯＤピアへの直接アクセスが通常はファイヤウォール／ＮＡＴルータによってブロックされるかどうか、又はより広いクラスタ（例えば、ＩＰアドレスのより広い組）がアクセス可能であるかどうかを判定するために、あるメッセージを交換することによって（例えば、一実施形態で、特定のＩＰアドレスにｐｉｎｇを打ち、肯定応答を待つことによって）セットすることができる。「ネット測定値」フィールドなどの追加フィールドは、１組の標準的なネットワーク測定（例えば、ｐｉｎｇテスト及びｔｒａｃｅｒｏｕｔｅテスト）を実行することによって、又は、単純にある値をデフォルトとし、そのような値の現在の状態を維持するために後続のテストに頼ることによって、決定することができる。他のフィールド（例えば、信頼レベル）は、この実施形態ではデフォルトによってセットされ、経時的に、追加のネットワーク測定値がＶＯＤピアのクラスタコントローラを介して入手される時に維持される。
【０２７１】
[286]さらに、一実施形態では、ユーザ登録プロセスが、ユーザを登録し、任意選択でネットワークに関するユーザのパミッションを認証し、検証するために実行される。例えば、所定のユーザに、所定のコンテンツオブジェクト及び／又はネットワーク機能性への制約された又はフィルタリングされたアクセスを与えることができる。そのような制約は、この初期登録プロセスを介してスタートアップ時に実施する（及び、その後に、経時的に及び／又は後続リスタート時に検証する）ことができる。この登録プロセス中に、ＶＯＤサポートサーバは、ＶＯＤピア自体に格納された（製造の時に及び／又はソフトウェア更新若しくはファームウェア更新を介して）ユーザインターフェースソフトウェアを介して、あるユーザプロファイル及び関連情報を入手し、そのような情報をネットワーク上の中央からアクセス可能なデータベースに格納することができる。
【０２７２】
[287]一実施形態で、ＶＯＤピアが初めてスタートアップしつつある又はリスタートしつつある（例えば、デバイス障害、ネットワーク障害、停電などに起因して）のいずれであれ、そのＶＯＤピアは、例えば更新された「アライブリスト」（「生きている（アライブ）」すなわち最近アクティブであることがわかっている既知の隣接するＶＯＤピアを判定するため）を含むある情報をＶＯＤサポートサーバ（及び／又はおそらくは間接的に他のＶＯＤピア）と交換する。最初のスタートアップ時に、ＶＯＤピアは、ＶＯＤサポートサーバ（例えば、標準的なＩＰロケーションデータベースから入手される情報に基づく、そのＶＯＤピアと同一のＩＰ範囲内のＶＯＤサポートサーバ）などの非常に信頼性の高いＶＯＤピアを含む「高水準」アライブリストを入手する。さらに、これより信頼性の低いがそれでも相対的に非常に信頼性の高い（例えば、「クラスタレベル」）ＶＯＤピアのノードＩＤを、この（又は別々の）アライブリストに含めることができる。
【０２７３】
[288]アライブリストの後続の交換（例えば、下でより詳細に述べる、周期的なネットワーク監視プロセス中に実行される）は、一実施形態で、ＶＯＤピアの信頼レベルによって決定されるレートで実行される。この実施形態では、より信頼性の低いＶＯＤピアは、より信頼性の高いＶＯＤピアより頻繁に「更新される」（すなわち、その隣接物とアライブリストを交換する）。例えば、デフォルト信頼レベルを有するＶＯＤピアを、１分ごとに更新することができ、ＶＯＤサポートサーバ又は２の信頼レベルを有するＶＯＤピアを、１時間に１回だけ更新することができる。下でより詳細に述べるように、信頼レベル（他の要因と共に）を利用して、他のネットワーク監視テストの頻度をも決定することができる。
【０２７４】
[289]ＶＯＤピアがそのメンバである１つ以上のスーパーセットクラスタに固有の情報など、追加のメタデータを、ＶＯＤピアの最初の又は後続のスタートアップ時に交換することもできる。例えば、更新されたトラッキングインデックス又はトラッキングファイルを交換することができる。これは、もちろん、その後に周期的な基礎で及び／又はそのようなファイルに対する変更によって起動されて交換することもできる。
２．コンテンツオブジェクトのパブリケーション及びプッシュ
【０２７５】
[290]上で注記したように、新しいコンテンツオブジェクトがネットワーク上に公開される（すなわち、イベントが発生する）時には、２つの主要な機能すなわち（１）コンテンツオブジェクトのパブリケーションの「アナウンスメント」と、それに続く（２）コンテンツオブジェクト自体の実際の「パブリケーション」（すなわち、さまざまなＶＯＤピアへのコンテンツオブジェクトパッケージの分散プッシュ）が実行される。
【０２７６】
[291]やはり上で述べたように、一実施形態では、初期パブリケーションサーバが、イベントのＣＲＩＤを生成し、そのイベントをさらにアナウンスするためにパブリケーションアナウンサ（例えば、コンテンツオブジェクトを公開しなければならない区域により近い信頼性の高いＶＯＤピア）を探す。パブリケーションアナウンサのそれぞれは、コンテンツオブジェクトを公開するプロセスを管理する、１つ以上のパブリケーションマスタ（相対的に非常に信頼性の高いＶＯＤピア）を選択する。
【０２７７】
[292]パブリケーションマスタは、コンテンツオブジェクトの人気の「予測される」レベルを判定し（下でより詳細に述べるように）、関心要求をパブリケーションサーバに発行し（直接に又はパブリケーションアナウンサを介して間接的に）、パブリケーションサーバは、この関心要求を使用して、コンテンツオブジェクトがそれに分割されなければならないパッケージの適当なサイズ及び個数を判定する。パブリケーションマスタは、トラッキングインデックス（トラッキングファイルを格納するＶＯＤピアとＣＲＩＤとを相互に関連させる）及びトラッキングファイル（コンテンツオブジェクトのパッケージのグループがプッシュされ、格納されるＶＯＤピアとＣＲＩＤとを相互に関連させる）をも生成し、更新する。
【０２７８】
[293]一実施形態で、パブリケーションマスタは、次に、コレクション要求をパブリケーションアナウンサに発行し、パブリケーションアナウンサは、パブリケーションサーバからトラッキングインデックス及びパッケージのグループを入手するコレクタを（それ自体の間で）指定する。各パブリケーションマスタは、パッケージのグループがさらにプッシュされ、格納される候補ＶＯＤピアを識別し（例えば、特定のクラスタ内又はサブクラスタ内のＶＯＤピアの間で）、そのようなパッケージをこれらのＶＯＤピアにダウンロードする責任を負う。
【０２７９】
[294]したがって、一実施形態で、パブリケーションサーバは、イベントを１つ以上のパブリケーションアナウンサ（そのイベントを１つ以上のパブリケーションマスタにさらにアナウンスする）に「アナウンス」する。これらのアナウンスメントを実施する通信プロトコル１０００を図１０ａに示すが、図１０ａには、パブリケーションサーバ１００５がイベントを１つ以上のパブリケーションアナウンサにアナウンスするプロセス（上で述べたさまざまな拡張メッセージを利用する）が示されている。
【０２８０】
[295]この実施形態では、パブリケーションサーバ１００５は、まず、ＶＯＤサポートサーバ１０１０に連絡して、非常に信頼性の高い（例えば、信頼レベル「２」）パブリケーションアナウンサのリストを入手する。最初の通信１０３２で、パブリケーションサーバは、ｐｕｂｌｉｓｈｅｄ＿ｌｉｓｔ＿ｒｅｑｕｅｓｔメッセージ（イベントＣＲＩＤを含む）をＶＯＤサポートサーバ１０１０に送信する。ＶＯＤサポートサーバ１０１０は、通信１０３３でｐｕｂｌｉｓｈｅｄ＿ｌｉｓｔ＿ｒｅｓｐｏｎｓｅメッセージ（候補パブリケーションアナウンサのノードＩＤを含む）によって応答する。
【０２８１】
[296]その応答メッセージで入手されたノードＩＤを利用して、パブリケーションサーバは、次に、この２つの有望なパブリケーションアナウンサ（それぞれが信頼レベル「２」のＶＯＤピアである「ノードＦ」１０１５及び「ノードＡ」１０２０）に連絡し、これらのそれぞれに、それぞれ通信１０３６及び１０３８でｐｕｂｌｉｓｈｅｄ＿ａｎｎｏｕｎｃｅｍｅｎｔメッセージ（やはりイベントＣＲＩＤを含む）を送信する。この例では、ノードＦ  １０１５は、ＣＲＩＤで識別されるコンテンツオブジェクトがそのクラスタに存在してはならない（例えば、その地理的区域がＣＲＩＤのパブリケーション権利フィールドに基づいて除外されるので）と判定し、したがって、通信１０３６のｐｕｂｌｉｓｈｅｄ＿ａｎｎｏｕｎｃｅｍｅｎｔに応答しない。
【０２８２】
[297]他の実施形態では、もちろん、否定的応答メッセージ又は他の肯定応答メッセージを利用して、例えば、応答の欠如の他の理由（デバイス障害又はネットワーク障害など）を区別することができる。さらに、上で注記したように、さまざまなハンドシェーキングプロトコルを使用して、信頼できる確実な接続を入手でき（適当な肯定応答と共に）、これは、そのような追加メッセージの必要をなくすことができる。
【０２８３】
[298]しかし、ノードＡ  １０２０は、通信１０３９でｐｕｂｌｉｓｈｅｄ＿ａｎｎｏｕｎｃｅｍｅｎｔ＿ｒｅｓｐｏｎｓｅによって応答し、イベントのパブリケーションをそのクラスタ内で進行できることを示す。上で注記したように、一実施形態では、類似するアナウンスメントフェーズ（図示せず）が、このイベントのパブリケーションフェーズの責任を負うパブリケーションマスタを識別するために発生する。
【０２８４】
[299]このアナウンスメントフェーズの後に、パブリケーションマスタは、候補ＶＯＤピアへのコンテンツオブジェクトパッケージ（及び関連するトラッキングファイル）の実際のパブリケーション（プッシュ）の責任を負う。これは、一実施形態で、どのコンテンツオブジェクトパッケージがどのＶＯＤピアにプッシュされるかの判定を含む。他の実施形態では、パブリケーションサーバ（又は他の「ヘルパ」ＶＯＤピア）が、このプロセスで援助する（又は排他的に取って代わる）ことができる。
【０２８５】
[300]このコンテンツオブジェクトパッケージの分散ダウンロードを実施する通信プロトコル１０５０の一実施形態を図１０ｂに示す。図１０ｂには、パブリケーションマスタが「フィーダノード」として働いて、他の（通常はわずかにより信頼性の低い、例えば信頼レベルＸであり、Ｘは「４」と等しいものとすることができる）ＶＯＤピアへのコンテンツオブジェクトパッケージのプッシュをもたらすプロセス（上で説明していない追加の拡張メッセージを利用する）が示されている。そのようなＶＯＤピアは、後続ＶＯＤ要求に関する所望のＮＱｏＳのレベルを可能にするために、コンテンツオブジェクトパッケージが候補クラスタ間及び候補クラスタ内で十分に分散されるまで、この分散プロセスを継続する（図示せず）。
【０２８６】
[301]図１０ｂに移ると、「ノードＡ」１０６０（パブリケーションマスタのうちの１つ）は、これらの候補ＶＯＤピアのうちで、特定のコンテンツオブジェクトパッケージがプッシュされなければならない２つ（「ノードＢ」１０６５及び「ノードＣ」１０７０）を識別し、そのようなコンテンツオブジェクトパッケージのダウンロードをもたらすために通信を開始する。通信１０７１で、ノードＡ  １０６０は、ｆｅｅｄ＿ｃｌｕｓｔｅｒ＿ｓｔａｒｔメッセージをノードＢ  １０６５に送信し（「供給クラスタ」にノードＡ  １０６０を含める意図を示す）、ノードＡの同意を確認する（例えば、ノードＢが使用可能な空間を有することなど）ノードＢ  １０６５からのｆｅｅｄ＿ｃｌｕｓｔｅｒ＿ｒｅｓｐｏｎｓｅメッセージ（通信１０７２の）を待つ。同様に、ノードＡ  １０６０は、ｆｅｅｄ＿ｃｌｕｓｔｅｒ＿ｓｔａｒｔメッセージをノードＣ  １０７０に送信し（通信１０７４で）、ノードＣからの確認するｆｅｅｄ＿ｃｌｕｓｔｅｒ＿ｒｅｓｐｏｎｓｅメッセージ（通信１０７５の）を待つ。
【０２８７】
[302]この実施形態では、これらのメッセージに対する応答を受信した時に、パブリケーションマスタノードＡ  １０６０は、この「供給クラスタ」内の候補ＶＯＤピア（すなわち、ノードＢ  １０６５及びノードＣ  １０７０）のリストについてパブリケーションサーバ１０５５に通知する。その結果、パブリケーションサーバ１０５５が、これらのＶＯＤピアへのコンテンツオブジェクトパッケージダウンロードを引き受けると決定した場合に、それ自体でその作業に優先順位を付け、スケジューリングすることができるようにするために、ｃｌｕｓｔｅｒ＿ｄｏｗｎｌｏａｄ＿ｌｉｓｔメッセージをパブリケーションサーバ１０５５に送信する（通信１０７７で）。この実施形態では、応答は不要であるが、通信１０７８は、否定のｃｌｕｓｔｅｒ＿ｄｏｗｎｌｏａｄ＿ｌｉｓｔ＿ｒｅｓｐｏｎｓｅメッセージを示す。
【０２８８】
[303]次に、ノードＡ  １０６０は、ノードＢ  １０６５及びノードＣ  １０７０へのそのようなコンテンツオブジェクトパッケージのダウンロードをスケジューリングする（類似するｆｅｅｄ＿ｃｌｕｓｔｅｒ＿ｓｔａｒｔメッセージ及びｆｅｅｄ＿ｃｌｕｓｔｅｒ＿ｒｅｓｐｏｎｓｅメッセージを含む、めいめいの通信１０８２及び１０８６とめいめいの応答１０８３及び１０８７とを介して）。次に、コンテンツオブジェクトパッケージの実際のファイル転送ダウンロード（詳細には図示せず）が、開始される。図示されてはいないが、この分散プロセスは、関係するコンテンツオブジェクトパッケージがノードＢ  １０６５及びノードＣ  １０７０だけではなくターゲットクラスタ内の候補ＶＯＤピアのすべてにプッシュされるまで、継続する。
【０２８９】
[304]ターゲットクラスタ内のすべての候補ＶＯＤピアへのコンテンツオブジェクトパッケージのこの分散プッシュが完了したならば、ノードＢ  １０６５及びノードＣ  １０７０のそれぞれは、ノードＡ  １０６０にｃｌｕｓｔｅｒ＿ｄｏｗｎｌｏａｄ＿ｃｏｍｐｌｅｔｅメッセージを送信する（めいめいの通信１０９１及び１０９２を介して）。ノードＡ  １０６０は、通信１０９４を介してｐｕｂｌｉｓｈｉｎｇ＿ｃｏｍｐｌｅｔｅメッセージを送信することによって、この分散プッシュプロセスのノードＡ  １０６０の部分が完了したことをパブリケーションサーバ１０５５に通知する。
３．コンテンツオブジェクトの「インスタントプレイ」及びプル
【０２９０】
[305]コンテンツオブジェクトが公開され、その構成要素パッケージがさまざまなクラスタ全体のＶＯＤピアにプッシュされたならば、ユーザは、本発明のＶＯＤ機能性を呼び出し、さまざまな特徴（その多くを上で詳細に述べた）によって使用可能にされる一貫したＮＱｏＳを伴ってそのようなコンテンツオブジェクトを（しばしば即時に）見るようにすることができる。
【０２９１】
[306]本発明の「インスタントプレイ」態様を容易にする、そのような特徴の１つが、構成要素パッケージへのコンテンツオブジェクトの分割及びネットワーク全体を通じたＶＯＤピアのクラスタの間でのそのようなパッケージのグループの分散である。コンテンツオブジェクト１１００のパッケージのこの分散を、図１１に示す。
【０２９２】
[307]上で述べたように、一実施形態で、コンテンツオブジェクト（例えば、映画）は、通常、始めから終りまでの直線的進行を有する。コンテンツオブジェクトパッケージを、コンテンツオブジェクト１１００の始め１１００に向かってより小さくなるグループ及びコンテンツオブジェクト１１００の終り１１２０に向かって徐々により大きくなるグループにグループ化し、これらのより小さいより早期のグループを相対的により多数のＶＯＤピア１１５０に格納することによって、コンテンツオブジェクト１１００のＶＯＤビューイングを要求するＶＯＤピアは、そのようなより早期のグループを相対的に迅速に入手することができる（すなわち、これらがより小さく、より多くの他のＶＯＤピアでの格納に起因して近くにある可能性がより高いので）。コンテンツオブジェクト１１００のパッケージの後続グループは、そのようなグループのダウンロードに必要なより長い時間（パッケージのそのようなグループの相対的により少数のコピーが存在するという事実並びにそのより大きいサイズに起因して）を与えるのに、シーケンシャルな形でコンテンツオブジェクト１１００を見るのに必要な追加の時間を利用することによって、並列にダウンロードすることができる。
【０２９３】
[308]一実施形態では、これが、コンテンツオブジェクト１１００を可変長パッケージに分割することによって達成される（例えば、より早期のパッケージはより小さく、後続パッケージは徐々に大きくなる）。他の実施形態では、コンテンツオブジェクト１１００のパッケージを固定サイズとすることができる。サイズの可変性は、ＶＯＤピア１１５０での格納に関してより少数又はより多数のそのようなパッケージのグループ化によって達成される。徐々に大きくなる可変サイズパッケージ（又は徐々により多数になる固定サイズパッケージ）の使用は、もちろん、同一の基本原理の多数の異なる可能な実施態様の１つにすぎない。例えば、可変サイズパッケージのサイズ（又は固定サイズパッケージの個数）を、コンテンツオブジェクト１１００の始め１１１０又は終り１１２０でのみ、或いは「インスタントプレイ」を容易にするという結果並びにＶＯＤ機能性と一貫するパッケージの一貫した信頼できるダウンロードを効果的にもたらす他のパターンで、変更することができる。
【０２９４】
[309]さらに、この特徴は、コンテンツオブジェクトパッケージの特定のグループの格納のために、クラスタ間とクラスタ内との両方で特定のＶＯＤピアを注意深く選択することによって、さらに容易にされる。図１２は、単なるＶＯＤピアのクラスタではなく、主にインターネットの既存インフラストラクチャに起因して存在する信頼レベルの比較的自然な分布１２００を示す。図１２は、本発明の目的に利用し、その相対的な近接又は互いからのインターネット距離に基づいてコンテンツオブジェクトパッケージを格納できるＶＯＤピアのクラスタ（及びサブクラスタ）を形成する機構を提供することができる。
【０２９５】
[310]図１２に示された実施形態の最も信頼性の高い信頼レベル１２７０には、相対的に少数のＶＯＤサポートサーバ１２６０がある。最も信頼性の低い信頼レベル１２８０には、インターネットの「コア」にある高帯域幅ブロードバンドルータ及びＩＳＰからインターネット距離において相対的に遠い端に多数の「葉ノード」ＶＯＤピアがある。この２つの端の間には、「中間」信頼レベル１２５０（例えば、１から１６までのスケール上で６〜９）を有する相対的に適度な個数のＶＯＤピアがある。
【０２９６】
[311]ＶＯＤピアの個数の、そのようなＶＯＤピアの「信頼のレベル」とのこの逆相関が示すものは、インターネットの物理インフラストラクチャが、隣接するＶＯＤピアの相対的に均一な組を容易にするクラスタ（及びサブクラスタ）の形成の機構を提供することである。例えば、図１２が通常のクラスタを表すならば、どの信頼レベル内にも、インターネットのバックボーン又は「コア」からの相対的に類似するインターネット距離を有するＶＯＤピアの組がある。最も信頼性の高い信頼レベル１２７０にあるＶＯＤサポートサーバ１２６０は、このインターネットコアの相対的に近くにある。このスペクトルの他方の端では、最も信頼性の低い信頼レベル１２８０の多数の「葉ノード」ＶＯＤピアが、このインターネットコアから相対的に遠くにある。しかしながら、信頼レベル全体を見ると、互いに近接する（インターネット距離において）ＶＯＤピアの相対的に均一な分布がある。
【０２９７】
[312]言い換えると、インターネットコアから外向きに働くことによって、各信頼レベルのＶＯＤピアのこれらの組を効果的に「スライスする」ことができ、信頼レベルにまたがるＶＯＤピアのスライスを、互いへの相対的な近接（インターネット距離での）に基づいて組み合わせられるようになる。この「信頼レベル間」スライスの結果は、ＶＯＤピアのクラスタであり、さまざまな信頼レベルを有するが、互いへの相対的に近接するインターネット距離を共有する。しかし、下でより詳細に述べるように、ＶＯＤピアの「信頼のレベル」に対するそのようなＶＯＤピアの個数のこの逆相関は、挙動及び他のネットワークベースの考慮事項に起因して、経時的にさまざまな異なる構成に進化する可能性がある。
【０２９８】
[313]クラスタにまたがる及びクラスタ内のさまざまな信頼レベルのＶＯＤピアの間のコンテンツパッケージのこの静的な「プッシュ後」分散を述べたので、これから、本発明のプル態様を実施するある主要な動的通信プロトコルに注意を向ける。
【０２９９】
[314]その公開中のコンテンツオブジェクトのプッシュと同様に、ＶＯＤピアによる「オンデマンドの」ビューイングのためのそのようなコンテンツオブジェクトのプルは、２つの主要な機能を含む。すなわち（１）関連するトラッキングインデックス及びトラッキングファイル（すなわち、選択されたＣＲＩＤを含むファイル）を格納するＶＯＤピアの検索、及び（２）これらのトラッキングファイルで識別されるＶＯＤピアからのコンテンツオブジェクトパッケージのダウンロードである。
【０３００】
[315]一実施形態で、使用可能なコンテンツがＶＯＤピアに知らされる（分散された形で）時に必ず、そのような情報は、各公開されたコンテンツオブジェクト（イベント）のＣＲＩＤ並びにさまざまなメタデータ（例えば、題名、ジャンルなど）を含む。メタデータは、そのイベントに関し、ＶＯＤピアのユーザインターフェースを介してユーザに使用可能にされる。ＶＯＤピアのユーザが、そのＶＯＤピアのユーザインターフェースを介してＶＯＤビューイングのためにコンテンツオブジェクトを選択する時に、クライアントソフトウェアは、その内部メモリにアクセスし、そのコンテンツオブジェクトに相互に関連するＣＲＩＤを抽出するようにする。
【０３０１】
[316]図１３ａに、対応するトラッキングインデックス及びトラッキングファイルを突き止めるのにそのＣＲＩＤを利用する通信プロトコル１３００の実施形態を示す。トラッキングインデックス及びトラッキングファイルは、所望のコンテンツオブジェクトの構成要素パッケージが格納されているさまざまなＶＯＤピアを識別し、そのコンテンツオブジェクトの「オンデマンド」ビューイングのためにこれらのＶＯＤピアからそのようなパッケージをダウンロードするのにその後に使用される。この実施形態では、要求元ＶＯＤピアである「ノードＡ」１３０５（「４」の信頼レベルと仮定する）は、まず、同一の信頼レベルを有する既知の隣接するＶＯＤピア（例えば、そのアライブリストに含まれる）に連絡することと、ｉｎｄｅｘ＿ｒｅｑｕｅｓｔメッセージ（上述）を送信することとによって、ＣＲＩＤに対応するトラッキングインデックスを検索する。
【０３０２】
[317]同一信頼レベルのＶＯＤピアの間でトラッキングインデックスを見つけることに成功しない場合には、ノードＡは、トラッキングインデックスが見つかるまで、より高い信頼レベルのＶＯＤピアの検索に進む。他の実施形態では、トラッキングインデックスが見つかる前にトラッキングファイルを識別することができる（例えば、対応するトラッキングインデックスとトラッキングファイルとの両方に関する要求を送信することによって）ことにも留意されたい。
【０３０３】
[318]図１３ａに戻って、ノードＡ  １３０５は、通信１３２２を介して「ノードＢ」１３１０（やはり「４」の信頼レベルを有する）にｉｎｄｅｘ＿ｒｅｑｕｅｓｔメッセージを送信する。また、ノードＡ  １３０５は、通信１３２３を介して、（この例では）関連するトラッキングインデックス（又は、もう１つの実施形態では、要求されたＣＲＩＤに対応するトラッキングインデックスの関連するエントリ）を含むｉｎｄｅｘ＿ｒｅｓｐｏｎｓｅメッセージを受信する。ノードＡ  １３０５は、次に、対応するトラッキングファイルのコピー（要求されたＣＲＩＤに対応するコンテンツオブジェクトの構成要素パッケージを実際に格納しているＶＯＤピアを識別する）を有するＶＯＤピアのノードＩＤをこれらのエントリから抽出する。
【０３０４】
[319]このシナリオに従えば、トラッキングファイルを格納するエントリの１つが、「ノードＣ」１３１５である（ノードＣは、もちろん、ノードＡ  １３０５又はノードＢ  １３１０のいずれとも異なる信頼レベル「Ｘ」を有することができる）。次に、ノードＡ  １３０５は、通信１３２５を介するノードＣ  １３１５へのｔｒａｃｋｉｎｇ＿ｆｉｌｅ＿ｒｅｑｕｅｓｔ（やはり上で述べた）の送信に進み、通信１３２６を介して、要求されたＣＲＩＤに対応するトラッキングファイルを含むｔｒａｃｋｉｎｇ＿ｆｉｌｅ＿ｒｅｓｐｏｎｓｅを受信する。次に、ノードＡ  １３０５は、そのトラッキングファイルから、要求されたＣＲＩＤに対応するコンテンツオブジェクトの構成要素パッケージを実際に格納しているさまざまなＶＯＤピアのノードＩＤを抽出する。これらのノードＩＤは、ＶＯＤビューイングのためのコンテンツオブジェクトパッケージのダウンロードの次のフェーズを開始するのに必要な情報を与える。
【０３０５】
[320]この次のフェーズを図１３ｂに示す。図１３ｂには、コンテンツオブジェクトパッケージをダウンロードする通信プロトコル１３５０の実施形態が示されている。この実施形態では、通常、所望のコンテンツオブジェクトのパッケージの異なるグループを格納する複数のＶＯＤピア（したがって、対応するトラッキングファイル内の複数のノードＩＤエントリ）があることに留意されたい。図１３ｂには、１つのそのようなＶＯＤピアとの通信が示されているが、複数の類似する通信を並列に実行することができる。この実施形態では、「より早期の」パッケージ（すなわち、例えば映画の、より早期の部分を含むパッケージ）を格納するＶＯＤピアが、まず連絡される。というのは、これらのファイルが、ビューイングのためにより早期に必要になるからである。しかし、リアルタイム再生速度の場合であっても、複数のそのような要求を開始するのに必要な時間の長さは、ダウンロードが大きい遅延なしで発生する（上と下との両方でより詳細に述べるように、ＮＱｏＳが役に立つ場合である）ならば、相対的にわずかである。さらに、下で述べるように、複数のファイルを、そのようなＶＯＤピアのそれぞれからダウンロードする（並列にも）ことができる。
【０３０６】
[321]所望のコンテンツオブジェクトの特定のパッケージを格納するＶＯＤピアのうちの１つとして「ノードＢ」１３６０を識別したので、「ノードＡ」１３５５は、通信１３７２を介してノードＢ  １３６０にｆｉｌｅ＿ｃｈｅｃｋ＿ｒｅｑｕｅｓｔメッセージ（やはり上で述べた）を送信する。このメッセージには、１つ以上のファイル（すなわち、所望のコンテンツオブジェクトのパッケージのグループ）をダウンロードするための所望の個数の接続が含まれる。ノードＢ  １３６０は、通信１３７３を介してｆｉｌｅ＿ｃｈｅｃｋ＿ｒｅｓｐｏｎｓｅ（やはり上で述べた）を応答する。この応答には、現在使用可能な接続の個数又は接続が現在使用可能でない場合には待ち時間のいずれかが含まれる（キュー内のファイルの個数と共に）。
【０３０７】
[322]図１３ｂに示された例では、通信１３７３でのノードＢ  １３６０からのｆｉｌｅ＿ｃｈｅｃｋ＿ｒｅｓｐｏｎｓｅは、２つの接続が使用可能であり、ファイルのダウンロードに予約されていることを示す。次に、ノードＡ  １３５５は、通信１３７６を介する「ｆｉｌｅ＿ｆｅｅｄ＿ｒｅｑｕｅｓｔ」メッセージ（前に説明はしていない）の送信に進む。このメッセージは、ノードＢ  １３６０からのｆｉｌｅ＿ｃｈｅｃｋ＿ｒｅｓｐｏｎｓｅメッセージで指定された２つの予約されたチャネルを使用する、ファイル（トラッキングファイルで指定された所望のコンテンツオブジェクトのパッケージを含む）のダウンロードを起動する。次に、ノードＢ  １３６０は、めいめいの通信１３７７及び１３７８（２つの指定された通信チャネルに対応する）を介して、実際のファイルを含むｃｏｎｔｅｎｔ＿ｐａｃｋａｇｅ＿ｆｅｅｄメッセージ（前に説明はしていない）をノードＡ  １３５５に送信する。
【０３０８】
[323]これらのファイルを受信する時に、要求元のＶＯＤピアであるノードＡ  １３５５は、そのユーザインターフェースを介する表示のためにコンテンツオブジェクトのこれらのパッケージのキューイングを開始することができる。パッケージの初期グループは、即座に見ることができ、パッケージの後続グループは、通常は、即座に必要になるまで、「ジャストインタイム」ビューイングのためにキューイングされる。このプロセスは、ポイントツーポイントストリーミングダウンロードに多少似ているが、非常に異常な極端なシナリオを除いて再生バッファが使い果たされないことを保証するために、重大なインテリジェンス（ＮＱｏＳ、プッシュプロセス、プルプロセスなどを含む本発明のさまざまな特徴に固有の）を用いてマルチポイントの基礎で達成される。
【０３０９】
[324]上で説明した通常のプルダウンロードのシナリオに加えて、いくつかの補足的な特徴が、一実施形態で含まれる。その特徴は、比較的希な場合さえ考慮に入れ、要求されたコンテンツオブジェクトの再生を遅延され、及び／又は中断される確率をさらに最小にするようにする。例えば、図１４に示された一実施形態では、ＶＯＤピア１４１０が２つの主要な「フィーダ」ＶＯＤピア１４２０及び１４３０にパッケージダウンロードを（並列に）要求している、プルダウンロードシナリオ１４００が示されている。上で注記したように、ＶＯＤピア１４１０は、ＶＯＤピア１４２０からパッケージの１つのグループを、ＶＯＤピア１４３０からパッケージ（同一コンテンツオブジェクトの）の異なるグループを受信していると仮定することができる。
【０３１０】
[325]しかし、これらの「フィーダ」ＶＯＤピア１４２０及び１４３０の一方又は両方が、ＶＯＤピア１４１０にファイルを転送するプロセス中に中断をこうむるシナリオがある。例えば、あるＶＯＤピアが、ローカルデバイス障害をこうむる場合があり、或いは、ネットワーク障害が、ＶＯＤピア又は他のネットワークノード（例えば、それ以外の点では本発明のＶＯＤネットワークの一部ではない、２つのＶＯＤピアの間の中間ルータ）が単純に消滅することに起因して発生する場合がある。
【０３１１】
[326]その場合に、ＶＯＤピア１４１０は、「フォールバック」ＶＯＤピア（例えば、メイン又は主ＶＯＤピア１４２０の副又はフォールバックＶＯＤピア１４２５及び主ＶＯＤピア１４３０の副ＶＯＤピア１４３５）に頼る必要がある場合がある。そのような「崩壊ハンドリング」機能性を実施できる複数の異なる形がある。例えば、一実施形態で、ＶＯＤピア１４１０は、追加の使用可能な接続を利用して、エラーが発生する前にそのような副ＶＯＤピアからのダウンロードを開始することができる。ＶＯＤピア１４１０は、パッケージのより後のグループより早く必要になる所望のコンテンツオブジェクトのパッケージのより早期のグループに向かっての副ＶＯＤピアの選択（受信するトラッキングファイルエントリに存在するノードＩＤのドメインからの）に優先順位を与えることができる（コンテンツオブジェクトの再生の中断を防ぐために）。
【０３１２】
[327]一実施形態で、そのような崩壊ハンドリング機能性は、非常に信頼性の高い（例えば、信頼レベル「２」）ピアとの「ｒｅｓｃｕｅ＿ｐｒｅｐａｒａｔｉｏｎ」メッセージ及び「ｒｅｓｃｕｅ＿ｐｒｅｐａｒａｔｉｏｎ＿ｒｅｓｐｏｎｓｅ」メッセージの最初の交換によって実施される（ＶＯＤピアが、その主「フィーダ」ＶＯＤピアとの接続が低速化しているか、障害を発生したか、すぐに障害を発生する可能性があることを認識した後に）。主接続に障害が発生する（又は、ある所定の閾値を超えて低速化する）場合には、ＶＯＤピアは、その非常に信頼性の高いＶＯＤピア（それが受信した先立つ通知に起因して、ＮＱｏＳの低下なしでそのような要求に対処する準備ができている可能性が高い）を介する残りのパッケージグループのダウンロードを要求することができる。
【０３１３】
[328]要求元ＶＯＤピアへのパッケージのダウンロード（プル）での中断の処理又はその回避を先取りして試みることに加えて、他のシナリオには、潜在的な「フィーダ」ＶＯＤピアが、期待されるＮＱｏＳ又は所望のＮＱｏＳを伴って要求されたダウンロードを完了するのに十分な個数の使用可能な接続を有しない（例えば、要求の過負荷、既存ダウンロード接続などに起因して）ことを認識する（例えば、「ｆｉｌｅ＿ｃｈｅｃｋ＿ｒｅｑｕｅｓｔ」メッセージの受信時に）情況が含まれる。
【０３１４】
[329]一実施形態で、その潜在的な「フィーダ」ＶＯＤピアは、要求元ＶＯＤピアに、要求をキューイングする（すなわち、遅延させる）（上で「ｆｉｌｅ＿ｃｈｅｃｋ＿ｒｅｑｕｅｓｔ」メッセージ及び「ｑｕｅ＿ｒｅｑｕｅｓｔ」メッセージとその応答とに関して述べたように）、又は要求を完了するのに別の（副又はフォールバック）ＶＯＤピアに頼る（或いは、もう１つの実施形態では両方を行う）オプションを与えることができる。
【０３１５】
[330]もう１つの実施形態では、要求元ＶＯＤピア（又は、おそらくは潜在的な「フィーダ」ＶＯＤピアさえ）は、要求されたコンテンツオブジェクト（又は、おそらくはコンテンツオブジェクト全般）をダウンロードするのに十分な、そのクラスタ内の帯域幅を有していない。しかし、要求元ＶＯＤピアは、大幅によりよいイントラクラスタ（及び／又はインタークラスタ）接続性を有する隣接ＶＯＤピア（「バディ」）とのよい接続を有することを認識することができる。この実施形態では、要求元ＶＯＤピアは、１つ以上のコンテンツオブジェクト（又は構成要素パッケージグループ）をダウンロードする作業をその「バディ」に委任することができる。この「バディ」は、要求元ＶＯＤピアでのビューイングのために、そのようなコンテンツオブジェクトを転送する（上で述べた「ｂｕｄｄｙ＿ｒｅｑｕｅｓｔ」メッセージ、「ｂｕｄｄｙ＿ｆｕｎｃｔｉｏｎ＿ｒｅｑｕｅｓｔ」メッセージ、及び「ｂｕｄｄｙ＿ｄｏｗｎｌｏａｄ＿ｒｅｑｕｅｓｔ」メッセージとその応答とを利用して）。この「バディ機能」は、「要求ごとの」基礎で、又は他の実施形態ではより少なく一時的な基礎で使用することができる。また、上で注記したように、潜在的な「フィーダ」ＶＯＤピアさえもが、このバディ機能を利用することができる、すなわち要求元ＶＯＤピアへのパッケージの要求されたグループのダウンロードを委任するのに利用することができる。
【０３１６】
[331]上のシナリオのすべてが、コンテンツオブジェクトパッケージのダウンロードに対する「クライアント−サーバ」手法を用いる。しかし、要求を完了するのに不十分な帯域幅及び／又は接続性に直面する要求元（及び「フィーダ」）ＶＯＤピアのもう１つのオプションは、意図された受信側に達するまでそのようなダウンロードを中継する（例えば、１つのクラスタ内で）ピアの連鎖にダウンロードをマルチキャストすることを含む、「ピアキャスティング」として知られる代替方法である。一実施形態でのそのような技法の使用は、特定のＶＯＤピアの過負荷を克服することができる（例えば、「緊急」のシナリオで、又は特定のコンテンツオブジェクトの人気が非常に高く、多数のＶＯＤピアがほぼ同時にそれを見ることを望む時）。
【０３１７】
[332]しかし、この技法は、このシナリオでのトラッキングインデックス及びトラッキングファイルの更新がない結果としてのＱｏＳ（したがって本発明の状況でのＮＱｏＳ）に対する悪影響に起因して、一時的な手段としてのみ推奨される。その代わりに、ＶＯＤピアは、所望のパッケージグループを入手するために連絡しなければならない他のＶＯＤピアがどれであるかを直接に知らされる。
【０３１８】
[333]例えば、複数の他のＶＯＤピアに「供給している」ＶＯＤピアは、「ピアキャスティング」の機会を認識することができる（例えば、これらの複数のＶＯＤピアに互いに直接に「供給」させることによって帯域幅を節約するために）。そのＶＯＤピアは、次に、あるＶＯＤピア（例えば、最も信頼されるＶＯＤピア）を「サーバ」として、別のＶＯＤピアを「クライアント」として指定することができる（例えば、指定される「サーバ」ノードＩＤの識別を含む、上で述べた「ｐｅｅｒ＿ｃａｓｔｉｎｇ＿ｃｌｉｅｎｔ」メッセージを介して）。この実施形態では、そのＶＯＤピアは、「ピアキャスティング」シナリオが確認されるまで（例えば、「クライアント」が「サーバ」に連絡し、この「ピアキャスティング」シナリオを受け入れたことを示す、上で述べた「ｐｅｅｒ＿ｃａｓｔｉｎｇ＿ｃｌｉｅｎｔ＿ｒｅｓｐｏｎｓｅ」メッセージを介して）、両方へのパッケージグループのダウンロードを継続する。そのＶＯＤピアは、さらに、「サーバ」ＶＯＤピアへのパッケージグループのダウンロードを継続し、「サーバ」ＶＯＤピアは、それらを「クライアント」ＶＯＤピアにダウンロードする（例えば、上で述べた「ｐｅｅｒ＿ｃａｓｔｉｎｇ＿ｄｏｗｎｌｏａｄ＿ｓｅｔｕｐ」メッセージに応答して）。
４．ＮＱｏＳ及びネットワークトラフィックの動的監視
【０３１９】
[334]通信プロトコル及びメッセージングを、全般的に並びに本発明の主要なプッシュ機能性及びプル機能性に関して具体的に述べたので、これから、ＶＯＤピアがネットワークトラフィック（ＶＯＤ機能性の挙動態様並びに帯域幅及び信頼性などのネットワーク属性を含む）を動的に監視し、既存インターネットインフラストラクチャに頼るネットワークの状況でＶＯＤアプリケーションにＮＱｏＳを提供するためにさまざまな「コンテンツ平衡化」機能及び関連機能を実行する手段に注意を向ける。
【０３２０】
[335]上で注記したように、及び図１５に示された実施形態では、各ＶＯＤピアのクラスタコントローラが、主に、この分散動的監視機能性の責任を負う。ネットワーク及び挙動活動の監視に加えて、これらのクラスタコントローラは、そのような監視の結果としてさまざまなネットワーク属性及びコンテンツ分散属性をも変更し、効果的に「分散閉ループフィードバック」システム１５００をもたらす。
【０３２１】
[336]このシステム１５００は、ＶＯＤピアが、すべての要求に先立って、そのＶＯＤピアに特定のコンテンツオブジェクト（その隣接するＶＯＤピアの間でパッケージで分散されている）をある所定の時間以内に配信するネットワークの能力を識別することを可能にすることによって、効果的にネットワークに組み込まれるＱｏＳ（ＮＱｏＳ）を提供する。
【０３２２】
[337]「５」の信頼レベルと、他の既知のＶＯＤピアのクラスタコントローラとの通信（一実施形態では、クラスタ内とクラスタにまたがってとの両方）を可能にするクラスタコントローラ１５２０とを有するＶＯＤピア１５１０が、図１５に示されている。これらの他のＶＯＤピアは、同一の信頼レベルを有するもの（例えば、ＶＯＤピア１５１０ａ）、より低い信頼レベルを有するもの（例えば、ＶＯＤピア１５１０ｂ）、及びより高い信頼レベルを有するもの（例えば、ＶＯＤピア１５１０ｃ）を含む。将来の例での参照を容易にするために、ＶＯＤピア１５１０ａを、本明細書では特定のＶＯＤピア（当初は「５」の信頼レベルを有する）とも称する。
【０３２３】
[338]動的ネットワーク監視１５２５は、（上でより詳細に説明したように）システム１５００内の各ＶＯＤピアのクラスタコントローラの間の通信を含む分散プロセスである。個々のＶＯＤピアによって、それ自体のために、テストを実行することができ、そのようなテストの統計結果を維持することができる。例えば、一実施形態で、ＶＯＤピア１５１０は、その既知の隣接物のうちの３つとの周期的ｐｉｎｇテストを実行し、そのようなテストの結果（例えば、長、短、及び平均ｐｉｎｇ時間、失敗の回数など）をそのノードＩＤのネット測定値フィールドに記録することができる。一実施形態で、変化するサイズのファイルを用いる相対的に小さいファイル転送を実行することもできる（例えば、隣接物並びに変化する信頼レベルの遠隔ＶＯＤピアに対して）。
【０３２４】
[339]さらに、一実施形態で、相対的に非常に信頼性の高いＶＯＤピアが、そのクラスタの代わりに、そのようなテストを実行し、その結果を維持することができる（潜在的にインタークラスタ活動及びイントラクラスタ活動を含む）。例えば、ＶＯＤピア１５１０と同一のクラスタ内の相対的に非常に信頼性の高いＶＯＤピア（例えば、信頼レベル「３」）が、そのクラスタ内のすべてのＶＯＤピア（又はあるサブセット）によって実行されたｐｉｎｇテストの累積的結果を反映する類似する値を維持することができる（例えば、ＶＯＤピアにそのネット測定値フィールドの値について照会する分散メッセージから抽出される）。
【０３２５】
[340]隣接するＶＯＤピア及び遠隔ＶＯＤピアの間で「包括的」ネットワークトラフィックテスト（ｐｉｎｇ、ｔｒａｃｅｒｏｕｔｅ、変化するサイズのファイル転送など）を実行すること（個別に又はイントラクラスタ若しくはインタークラスタの基礎のいずれで維持されるものであれ）の他に、クラスタコントローラは、一実施形態で、実際のＶＯＤネットワークトラフィックを監視することもできる。例えば、特定のコンテンツオブジェクトに関する要求又はコンテンツオブジェクト全般に関する要求が、さまざまな信頼レベルのＶＯＤピアのクラスタコントローラによって検出される（例えば、これらの要求に関係付けられる所定のメッセージがそのようなＶＯＤピアを「通過する」ので）。
【０３２６】
[341]このＶＯＤネットワークトラフィックは、「グローバルに」（例えば、ＶＯＤネットワーク全体について）又はインタークラスタレベル、イントラクラスタレベル、若しくは純粋に「ローカル」レベル（例えば、個々のＶＯＤピア）でさえ維持することができる。一実施形態で、そのような情報に、すべてのコンテンツオブジェクト及び／又は特定のジャンルに含まれるコンテンツオブジェクト若しくは要求の所定の最大閾値又は最小閾値を超えるコンテンツオブジェクトに関する特定の毎日のタイムスロット内の要求の個数を含めることができる。さらに、クラスタ内及びクラスタ間でのＶＯＤピアの間のコンテンツオブジェクトパッケージの分散に関する情報をも維持することができる。例えば、あるコンテンツオブジェクト又は特定のジャンルに含まれるコンテンツオブジェクトのコピーの個数を、経時的に維持することもでき、コンテンツオブジェクトのパッケージの特定のグループのコピーの個数（例えば特定のクラスタ内の）を経時的に維持することもできる。
【０３２７】
[342]一実施形態で、これらの動的ネットワーク監視１５２５テストの一部又はすべてを、周期な基礎で並びにさまざまな起動（例えば、デバイス障害、ネットワーク障害、特定のコンテンツオブジェクトに関するＶＯＤ要求、或いは特定の時間間隔内にアクセスされたコンテンツオブジェクトに関するＶＯＤ要求などの検出）に応答して実行できることに留意されたい。さらに、そのようなテストの結果は、最小スコア又は最大スコア、並びに平均値又は経時的に蓄積される他の累積的値を反映することができる。上で注記もしたように、そのような「監視する」トラフィックでネットワークに過負荷を与えないようにするために、平衡が維持される（例えば、実質的なＶＯＤネットワークトラフィック自体に関するＮＱｏＳを大きく損なわないようにするために）。
【０３２８】
[343]そのような統計を経時的に維持することによって、ＶＯＤピアのクラスタコントローラは、これらの統計に基づいて処置を講じることができる（一実施形態で）。上で注記し、図１５に示したように、動的ネットワーク監視１５２５によって入手された結果は、さまざまな信頼レベルのＶＯＤピアによって、動的ネットワーク監視結果データベース１５３２内（一実施形態では、中央でＶＯＤピアからアクセス可能）並びにそれら自体のノードＩＤのネット測定値フィールド（図示せず）内で維持することができる。したがって、この情報は、ＶＯＤピア１５１０などの個々のＶＯＤピアへの「フィードバック」１５３４だけではなく、各ＶＯＤピアのクラスタコントローラの間の分散通信を介する他のＶＯＤピアへのフィードバックにも使用可能である。
【０３２９】
[344]このフィードバック１５３４は、上で述べ、図１５に示したように、個々のＶＯＤピアの属性並びにＶＯＤネットワークインフラストラクチャ（例えば、クラスタメンバシップと、そのようなクラスタ内及びクラスタの間でのＶＯＤピアの間のコンテンツオブジェクト及びその構成要素パッケージのグループの分散）に対するさまざまな変更１５３０に反映される。例えば、包括的ネットワークトラフィックテストの結果として、又はコンテンツオブジェクトに関する要求に対する実際の応答の結果としてさえ、特定のＶＯＤピアの信頼レベルを経時的に変更することができる。これらの「信頼レベル変更」１５３６は、下で述べるように、それによってＮＱｏＳが影響を受ける１つの重要な手段である。
【０３３０】
[345]「パッケージ分布変更」１５３８（やはり下で述べる）は、ＮＱｏＳに影響するもう１つの重要な手段である。これには、一実施形態で、コンテンツオブジェクト及びそのパッケージの構成要素グループの展開の変更を含めることができる。例えば、特定のコンテンツオブジェクト（及び／又はそのパッケージの構成要素グループ）のコピーの個数を増やすか減らすことができる（例えば、特定のクラスタ内又は特定のクラスタ間で経時的に監視されたコンテンツオブジェクトの人気又はコンテンツオブジェクトのジャンルの人気の結果として）。あるコンテンツオブジェクト（又はコンテンツオブジェクト全般）の構成要素パッケージのサイズ及び個数も変更することができる。
【０３３１】
[346]信頼レベル変更１５３６及びパッケージ分布変更１５３８に加えて、ＮＱｏＳに影響するのに使用できるさまざまな他の変更１５３９がある。例えば、一実施形態で、クラスタメンバシップを、動的ネットワーク監視１５２５の結果に基づいて変更することができる（例えば、既知の隣接するＶＯＤピアの組を、十分に短い隣接するｐｉｎｇ時間を示すＶＯＤピアに制約することによって）。他の変更に、要求（又は他のメッセージ）が最初に送信されるＶＯＤピアの個数を変更することを含めることができる（例えば、類似するメッセージに関する以前の成功率又は応答時間に基づいて）。特定のタイプの変更とは別に、経時的に動的に監視でき、その後にフィードバック１５３４を介して変更できるノード属性又はネットワーク属性に対する実質的にすべての変更が、ＮＱｏＳに影響する際に役割を演じることができることに留意されたい。一部の変更及び動的に監視されるテストは、単純に、他の変更及びテストより効果的であり、効率的である（個別に及び組合せで）。
【０３３２】
[347]一実施形態で、個々のＶＯＤピア１５１０による「包括的」ネットワークトラフィックテストの結果が、ＶＯＤピア１５１０ａの信頼レベルの変化を起動することができる（例えば、ＶＯＤピア１５１０ａに関するｐｉｎｇテスト失敗の閾回数を超えることに起因して）。上で詳細に述べたように、さまざまな信頼レベルパラメータが、経時的に維持される構成要素信頼レベル要因から判定される（一実施形態で）。これらの構成要素信頼レベル要因の累積的結果が、現在の計算された信頼レベルである。したがって、特定の動的ネットワーク監視１５２５テストの結果として信頼レベル要因を変更することが、信頼レベルパラメータの相対的に即座の変化を、及び最終的に信頼レベル自体の相対的に即座の変化（これは、ＶＯＤピアのノードＩＤの信頼レベルフィールドに反映される）を起動することができる。
【０３３３】
[348]これらの動的な信頼レベル変更１５３６（動的なフィードバック１５３４を介して図示）がＮＱｏＳにどのように影響するかを理解することが重要である。上で注記したように、既存のインターネットインフラストラクチャは、固有にはＱｏＳを提供しない。
【０３３４】
[349]ＶＯＤピア１５１０によって開始されたＶＯＤ要求は、他のＶＯＤピアの間の通信だけではなく、既存のインターネットホスト、ルータ、及び他のノード〔そのすべて、（個別に又は集合的に）実質的にすべての時に、デバイス障害並びに帯域幅及び信頼性の変化を許す〕の間の通信をももたらす。グローバルインターネットトラフィックを全体的に監視し、一貫した信頼できるＱｏＳレベルを維持する中央機構又は分散機構はない。
【０３３５】
[350]それでも、本発明の「分散閉ループフィードバック」システム１５００は、インターネットの既存インフラストラクチャ「の上に」又はその一部として存在するＶＯＤピアのネットワークの間のそのような機構（すなわち、ＮＱｏＳ）を提供する。
【０３３６】
[351]例えば、ＶＯＤピア１５１０ａは、「５」の信頼レベルを示す。しかし一方、ＶＯＤピア１５１０ａは、ＶＯＤピア１５１０からの要求に応答し、相対的に迅速かつ確実に、例えば要求されたコンテンツオブジェクトの実質的に「即時の再生」並びに一貫した信頼できる再生を提供するのに十分に、隣接するＶＯＤピア（ＶＯＤピア１５１０ａを含む）の間で以前に分散されたそのコンテンツオブジェクトの構成要素パッケージをＶＯＤピア１５１０に「供給する」ことができる。したがって、ＶＯＤピア１５１０のユーザは、ある時間間隔の間に、このサービスのレベルに満足する可能性がある。
【０３３７】
[352]それでも、上で注記したように、他のデバイス（ＶＯＤピア、インターネットルータ、インターネットホストなど）の障害が、おそらくはそのサービスのレベルに影響する可能性がある。例えば、ＶＯＤピア１５１０ａの信頼レベルが、周期的ｐｉｎｇテストの失敗又は動的ネットワーク監視１５２５からの他のテストの結果として、「５」から「６」（より信頼性の低い）に変更されると仮定する。ＶＯＤピア１５１０ａ内のクラスタコントローラは、信頼レベルのこの変化を検出し、隣接するＶＯＤピアに、それらが別の（より信頼性の高い）隣接物に頼る必要がある可能性があることを通知するために、１つ以上のメッセージを自動的に（或いは、もう１つの実施形態で、例えば「信頼レベル＞５」など、所定の閾値を超えた場合に限って）送信することができる。
【０３３８】
[353]一実施形態で、これは、更新されたアライブリストの日常の交換（周期的に実行され、及び／又は信頼レベルの変化によって起動される）によってより包括的に達成することができる。ＶＯＤピア１５１０は、今や、ＶＯＤピア１５１０ａではなく、もう１つの信頼レベル「５」の隣接物（又はより信頼性の高い隣接物）に頼る（例えば、後続要求に関して）ことを知ることができ、これによって、そのような後続要求のＮＱｏＳを改善することができる。
【０３３９】
[354]一実施形態で、アライブリストの周期的更新が実行され、より信頼性の低いＶＯＤピアは、より信頼性の高いＶＯＤピア（例えば、１時間ごとに１回）より相対的に高い頻度で（例えば、１分ごとに１回）そのような更新を実行する。ＶＯＤピアのアライブリストを自動的に更新する（分散された形で）この日常の周期的プロセスは、ＶＯＤピアがＮＱｏＳを改善するための変化をもたらすことを可能にするのに必要なネットワークトラフィックの量を大幅に減らす（すなわち、ＶＯＤピアが、この「分散ブロードキャスト」機構を介して動的ネットワーク変化を効率的に知らされるので）。
【０３４０】
[355]動的ネットワーク監視１５２５の結果として行われる、ＶＯＤピア属性及びネットワーク属性に対する変更を、しばしば、互い相互に関係付けることができることにも留意されたい。例えば、上の特定の例で述べた信頼レベル変更１５３６が、パッケージ分布変更１５３８を起動することもできる。例えば、ＶＯＤピア１５１０ａの信頼レベルが「５」から「６」に変化する時に、そのような変化をも、一実施形態で、クラスタを管理するＶＯＤピアによって検出することができる（例えば、やはり周期的に又は信頼レベルのこの変化によって起動されるのいずれかの、アライブリストの分散更新を介して）。その結果、ＶＯＤピア１５１０ａに現在格納されているパッケージのグループ（又はそのサブセット）の追加コピーを、再展開することができる。例えば、もう１つのＶＯＤピア（例えば、「５」の信頼レベルを有するＶＯＤピア）を、パッケージのそのようなグループのコピーを受け取るために選択することができる。一実施形態で、これは、その「置換」ＶＯＤピアに、そのようなコピーを入手するためにＶＯＤピア１５１０ａと直接に通信させることによって達成することができる（しかし、他の実施形態では、より信頼性の高いＶＯＤピアに頼ることができ、或いは、おそらくはオリジナルの公開するサーバに連絡する）。どの場合でも、トラッキングファイル及びトラッキングインデックスが、それに従って更新される（上で述べたように）。
【０３４１】
[356]パッケージ分布変更１５３８全般に関して、これらを、さまざまな異なるシナリオで実行することができる。例えば、相対的に信頼性の高いＶＯＤピアが、そのクラスタ内の要求を管理する責任を負うものとすることができる（一実施形態で、そのクラスタコントローラを介して）。特定のコンテンツオブジェクトに関する要求を検出した時に（例えば、上で述べた分散メッセージを介して）、そのＶＯＤピアは、動的ネットワーク監視結果データベース１５３２を更新し、事前定義の閾値、例えば、特定の時間間隔内の同一コンテンツオブジェクトに関する要求の最大個数を超えたことを通知することができる。
【０３４２】
[357]その結果、この「マネージャ」ＶＯＤピアは、一実施形態で、「フィーダ」ＶＯＤピアのうちの１つ（上で述べた図１４のＶＯＤピア１４２０など）に連絡することができる。この「フィーダ」ＶＯＤピアは、要求元ＶＯＤピアをトラッキングファイルに追加させる（すなわち、要求元ＶＯＤピアを将来の「フィーダ」ＶＯＤピアに変換する）。もう１つの実施形態では、ＶＯＤピア１４２０は、実質的に、パブリッシャになり、コンテンツオブジェクトの追加コピーをクラスタ内で公開（プッシュ）させる（パブリケーションプロセス全般に関して上で説明したように）。
【０３４３】
[358]したがって、ＮＱｏＳは、本発明のこの「分散閉ループフィードバック」システム１５００の結果として影響され（すなわち、ＱｏＳが、効果的にＶＯＤネットワークに組み込まれ）る。ここで、ネットワーク属性及びＶＯＤ挙動の動的に監視される変化が、これらのＶＯＤピア属性及びネットワーク属性に対する変更並びにＶＯＤネットワーク全体でのコンテンツオブジェクトの展開の変更の「フィードバック」を起動する。したがって、ＶＯＤピアは、すべての要求に先立って、そのＶＯＤピアに特定のコンテンツオブジェクト（その隣接するＶＯＤピアの間でパッケージで分散されている）をある所定の時間以内に配信するネットワークの能力を識別することができる。
【０３４４】
[359]ＶＯＤピアのクラスタが、コンテンツをそのコンテンツのコンシューマの「近くに」配置することを可能にするインフラストラクチャを提供することによってＮＱｏＳを容易にすることにも留意されたい。上で注記したように、クラスタは、当初は既存インターネットインフラストラクチャに基づく（例えば、標準的なＩＰロケーションサービスによって提供されるものに基づき、部分的にはＩＰアドレスの類似性に基づく）が、その後、実際のネットワークトラフィック及び挙動トラフィックを反映するように動的に更新される。このインフラストラクチャは、コンテンツオブジェクトを隣接するＶＯＤピアのグループの中で分散させ、その後、ネットワークが進化する時にその「近さ」を維持するように動的に再展開することを可能にする（変化が、例えばデバイス障害及びネットワーク輻輳など、性質において「包括的」である、又は例えばピーク時の一部の又はすべてのコンテンツに関する要求の増加など、性質において挙動的であるのいずれであれ）。
【０３４５】
[360]理由にかかわりなく、本発明のＶＯＤネットワーク内のクラスタの構成は、経時的に進化する。図１６ａ〜１６ｄに、異なる包括的ネットワークシナリオ及び挙動シナリオから生じる可能性があるＶＯＤピアのクラスタ（信頼レベルによってグループ化される）の４つの異なる一般的なパターン又は構成の実施形態を示す。
【０３４６】
[361]図１６ａは、「円錐」パターン１６００を示す。「円錐」パターン１６００は、一般的なシナリオになる可能性が高いものを反映する。そのシナリオでは、クラスタ内の相対的に少数のＶＯＤピアが、非常に高く信頼されたＶＯＤピア１６０２（例えば、信頼レベル「２」）であり、クラスタ内の徐々に多くなるより信頼性の低いＶＯＤピアが、見つかり、最も信頼性の低いＶＯＤピア１６０４（例えば、信頼レベル「１０」）が、このクラスタ内のこれらの「信頼レベルグループ」のうちで最も多数である。
【０３４７】
[362]上で類似する図１２に関して注記したように、信頼レベルのこの相対的に自然な分布は、主にインターネットの既存インフラストラクチャに起因して存在するが、コンテンツオブジェクトパッケージを相対的な近接又は互いからのインターネット距離に基づいて格納できるＶＯＤピアのクラスタ（及びサブクラスタ）を形成する機構を提供するために、本発明において活用することができる。
【０３４８】
[363]さらに、ＶＯＤピアの個数のその相対的な「信頼のレベル」に対するこの逆相関は、インターネット「コア」から遠いが互いに相対的に近い多数のＶＯＤピア（例えば、最も信頼性の低いＶＯＤピア１６０４）のクラスタへのグループ化を容易にする。その結果、図１６ａのＶＯＤピアは、インターネットコアからのインターネット距離にもかかわらず、共通して、互いへの相対的に近いインターネット距離を共有する。
【０３４９】
[364]それでも、多数の非常に高くは信頼されないＶＯＤピアの存在は、残念ながら現実的ではあるが、必ずしも望ましくはない。しかし、本発明に照らすと、この短所を、コンテンツオブジェクトの相対的により多くのコピーをこの多数の相対的に信頼性の低いＶＯＤピアにプッシュすることと、この「平衡状態」の管理のより多くを相対的に信頼性の高いＶＯＤピアに委任することとによって相殺することができる。
【０３５０】
[365]図１６ｂに移ると、この「円柱」パターン１６１０は、クラスタが各信頼レベルでほぼ同一個数のＶＯＤピアを含むシナリオを反映する。インターネットの既存インフラストラクチャを与えられて、そのようなシナリオが自然に発生する可能性が高いかどうかは不明瞭である。このシナリオは、最も信頼性の低いＶＯＤピア１６１４（例えば、信頼レベル「１０」）の、図１６ａに存在したものほど高い集中がないという点で、望ましくないものではないが、それでも、多数の相対的に信頼性の低いＶＯＤピアがあるという点で、それでも多少問題がある。その一方で、図１６ａに存在したものより高い、最も信頼性の高いＶＯＤピア１６１２（例えば、信頼レベル「２」）並びに相対的により信頼性の高いＶＯＤピアの集中がある。
【０３５１】
[366]しかし、多数の非常に信頼性の高いＶＯＤピアを有することは、望ましくないものではないが、多数のより信頼性の低いＶＯＤピアを十分には相殺しない場合がある。言い換えると、コンテンツを、そのコンテンツを消費する多数のより信頼性の低いＶＯＤピアの「近くに」プッシュする必要が、依然としてある。多数の非常に信頼性の高いＶＯＤピアが存在するという事実は、コンテンツオブジェクトのより多くのコピーをこれらの相対的に多数のより信頼性の低いＶＯＤピアに下にプッシュすることを必要とする。
【０３５２】
[367]図１６ｃに移ると、この「球」パターン１６２０は、シナリオを反映する。そのシナリオにおいて、大多数のＶＯＤピアが適度な信頼レベル（例えば、信頼レベル「４」から「８」）を有し、相対的に少数のＶＯＤピアが非常に高く信頼され又は非常に低く信頼され、最も少数のＶＯＤピアが、最も信頼性の高いＶＯＤピア１６２２又は最も信頼性の低いＶＯＤピア１６２４のいずれかである。多数のそうでなければ信頼性の低いＶＯＤピアが相対的に非常に信頼性の高いようになることを可能にするある外部機構（例えば、家庭への光ファイバ回線のかなりの増加）なしで、このシナリオが自然に発生する可能性が非常に高いかどうかは、やはり不明瞭である。
【０３５３】
[368]それでも、このシナリオは、ＮＱｏＳに関して（及びＱｏＳ全般に関してさえ）極端に望ましいシナリオである。コピーをこれらの多数の適度に信頼されるＶＯＤピアにプッシュすることは、より少数のコピーが必要になるならば（これらのＶＯＤピアは一般により信頼性の高いので）、より効率的になるはずである。さらに、より高い全体的な信頼性は、ＮＱｏＳを維持するためのより少ない調整を必要とするはずである。
【０３５４】
[369]最後に、図１６ｄの「多角形」パターン１６３０は、クラスタ内に、ＶＯＤピアの個数とその相対的な「信頼のレベル」との間に実質的に相関がないシナリオを反映する。信頼レベルの間の分布は、本質的にランダムである。また、このシナリオが、自然に或いは誰かが考案する可能性が高いいずれかの外部機構を介して存在する可能性は、低いと思われる。
【０３５５】
[370]それでも、本発明は、図１６ａに示されたはるかに可能性が高いシナリオと少なくとも同程度に効果的な、このシナリオに対する解決策を提供する。単純に言えば、最も信頼性の低い１６３４「問題」ＶＯＤピアのより低い集中がある。さらに、重要性はより低いが、最も信頼されるＶＯＤピア１６３２のより高い集中がある。コンテンツオブジェクトのより多くのコピーをこれらの「問題」ＶＯＤピアにプッシュすることを含む、同一の相殺機構は、他のランダムな信頼レベルの多数のＶＯＤピアの「ポケット」にもかかわらず、ＮＱｏＳに影響するという同一の利益を有するはずである。
ＩＩＩ．宣伝コンテンツの一体化
Ａ．宣伝挿入アーキテクチャ及び特徴
【０３５６】
[371]ＶＯＤシステムに照らしてＮＱｏＳをもたらす本発明のさまざまな実施形態の主要な特徴を説明したので、これから、コンテキストオブジェクトの１つの特殊なタイプすなわち宣伝に注意を向ける。宣伝は、一実施形態で、特殊なタイプのコンテンツオブジェクトである。宣伝には、テキスト、イメージ、オーディオ、ビデオ、並びに聴き及び／又は表示することができるメディア要素の実質的にすべての組合せを含めることができる。
【０３５７】
[372]１つの点で、宣伝は、他のコンテンツオブジェクトとほとんど同一の形で配信されるという点で、単にもう１つのコンテンツオブジェクトである。宣伝は、コンテンツオブジェクトパッケージに分割され、ネットワークのクラスタ内及びクラスタにまたがってＶＯＤピアに分散された形でプッシュされ、動的に監視されるネットワーク属性及び挙動属性に基づいて再展開され、その構成要素パッケージが格納された複数のＶＯＤピアから分散された形でプルされる。
【０３５８】
[373]しかしながら、もう１つの点で、宣伝は、他のコンテンツオブジェクトの中及びそれらの間で並びに本発明のＶＯＤシステムのユーザインターフェースの他の態様の中で表示できるという点で、特殊なタイプのコンテンツオブジェクトである。宣伝は、通常、他のコンテンツオブジェクトのようにＶＯＤピアユーザによって要求されるのではないという点でも特殊である。或いは、宣伝は、宣伝のパブリッシャによって示されるパラメータに従って、本発明のＶＯＤシステムによって課せられるルールに従って（一実施形態で、別個のサーバ又はＶＯＤサポートサーバとすることもできる「宣伝サーバ」を介して）表示される。
【０３５９】
[374]図１７に、宣伝挿入機構１７００のブロック図実施形態を示す。宣伝挿入機構１７００は、他のコンテンツオブジェクトの中及びそれらの間並びに本発明のＶＯＤシステムのユーザインターフェース内にコンテンツオブジェクトとして宣伝を挿入する。宣伝パブリッシャ１７１０は、一実施形態で、宣伝１７１５などの「宣伝する」タイプのコンテンツオブジェクトの公開するサーバでもあるＶＯＤピアである。
【０３６０】
[375]一実施形態で、宣伝１７１５を、上で注記したように、ターゲットコンテンツオブジェクト１７２２などのコンテンツオブジェクトの中及びそれらの間を含むさまざまな異なる「ターゲット位置」１７２０に挿入することができる。さらに、宣伝１７１５を、一実施形態で、本発明のＶＯＤシステムのユーザインターフェースを介してＶＯＤピアユーザからアクセス可能な永久的に動作するチャネルであるバーカー（ＢＡＲＫＥＲ）チャネル１７２４に挿入することができる。最後に、宣伝１７１５を、ターゲットＧＵＩ領域１７２６すなわち、システムの状況に応じてユーザのディスプレイに現れるユーザインターフェースのさまざまな態様に挿入することができる。例えば、一実施形態で、「ＶＯＤポータル」チャネルが、前の週に見られた宣伝を含み、ユーザが、その、前の週に見られた宣伝をブラウズするか検索し、その後、再生することを（商取引の機会及び／又は追加情報を含むサイトへのリンクをクリックすることも）可能にする。宣伝１７１５をターゲット位置１７２０に挿入するのに使用される方法のさまざまな実施形態を、下でより詳細に説明する。
【０３６１】
[376]一実施形態で、宣伝パブリッシャ１７１０は、そのコンテンツオブジェクト（宣伝１７１５）を、上で説明したように、他の公開するサーバと同様に公開する。さらに、宣伝パブリッシャ１７１０は、宣伝パブリッシングプロセスを単純にするために、「宣伝挿入ツール」（すべての公開するサーバから使用可能なＶＯＤパブリッシングソフトウェア内）に頼ることができる。もう１つの実施形態では、宣伝パブリッシャ１７１０は、宣伝１７１５がその下で本発明のＶＯＤシステムのユーザに表示されるパラメータの指定を容易にするために、さまざまなシステムリソース（システムデータベース１７３０及びシステムサーバ１７４０を含む）に直接又は間接にアクセスすることもできる。宣伝１７１５を表示するルールは、一実施形態で、宣伝パブリッシャ１７１０によって指定される（直接に指定されるか、宣伝挿入ツールを介して間接的に指定される）パラメータに従って、宣伝サーバ１７５０によって決定され、課せられる。
【０３６２】
[377]一実施形態で、宣伝パブリッシャ１７１０は、システムデータベース１７３０にアクセスして、それが宣伝サーバ１７５０に指定するパラメータに影響する情報を入手する。例えば、コンテンツオブジェクトメタデータ１７３２データベースは、題名、ジャンル、説明などの各コンテンツオブジェクトに関係する情報と、一実施形態で、コンテンツオブジェクトに具体的に関係するさまざまな他のメタデータ（テキスト、イメージ、ビデオ、及び他のメディアの形の）とに関する情報を含む。宣伝パブリッシャ１７１０は、例えば、「コメディ」など、ある判断基準を満足するコンテンツオブジェクト内に宣伝１７１５を表示することを望む場合がある。
【０３６３】
[378]宣伝パブリッシャ１７１０は、宣伝サーバ１７５０に直接にパラメータなどの判断基準を指定するか、そのような判断基準に基づいてコンテンツオブジェクトメタデータ１７３２データベースを検索し、その後、同一のもの又はおそらくは多少は特定のもの（例えば、特定のコンテンツオブジェクトのＣＲＩＤ）とすることができるパラメータを宣伝サーバ１７５０に指定することができる。宣伝パブリッシャ１７１０は、コンテンツオブジェクトメタデータ１７３２データベースの検索の結果（又はそのオリジナルの判断基準）を、他のシステムデータベース１７３０からのデータなどの他の情報と組み合わせることもできる。
【０３６４】
[379]例えば、宣伝パブリッシャ１７１０は、ユーザプロファイルデータ１７３４データベースにアクセスして、名前、性別、住所、年齢、職業、婚姻関係の有無、及びユーザ（及びおそらくはユーザの家族）に固有のさまざまな他の関連データなど、ＶＯＤピアユーザに関する情報を入手することができる。宣伝パブリッシャ１７１０は、コンテンツオブジェクトメタデータ１７３２データベースから「コメディ」を検索し、ユーザプロファイルデータ１７３４データベースから２０歳と３５歳との間の年齢のユーザを検索し、おそらくは「動的挙動及び他のデータ」１７３６データベースから毎月少なくとも５本の映画を観るユーザを検索することができる（ＶＯＤシステム内のユーザの以前の挙動に基づく形の宣伝の「挙動ターゲティング」を可能にする）。次に、宣伝パブリッシャ１７１０は、そのような検索の組み合わされた結果をパラメータとして宣伝サーバ１７５０に提示することができる。
【０３６５】
[380]宣伝１７１５のターゲティングを容易にする情報についてシステムデータベース１７３０に頼るほかに、宣伝パブリッシャ１７１０は、一実施形態で、この作業を援助するためにさまざまなシステムサーバ１７４０に頼ることもできる。例えば、上で注記したように、宣伝パブリッシャ１７１０は、宣伝１７１５（すべての他のコンテンツオブジェクトと同様に）を公開するほかに、宣伝サーバ１７５０にパラメータを提示することができ、宣伝サーバ１７５０は、それが実施するルールに従って適当な時に特定のＶＯＤピアの適当な位置での宣伝１７１５の表示を起動するために（宣伝１７１５は、通常は他のコンテンツオブジェクトのように「オンデマンドで」要求されるのではないので）、そのようなパラメータをそのようなルールに一体化する。
【０３６６】
[381]さらに、宣伝パブリッシャ１７１０は、宣伝１７１５の許可されない使用に対して保護するために、宣伝１７１５に対する「ディジタル著作権管理」（ＤＲＭ）保護並びにユーザ認証及び他の関連するセキュリティ手段を実施するためにライセンスサーバ１７４２に頼ることができる（すべての他のパブリッシャも同様）。例えば、そのようなコンテンツの許可されないコピー及び配信に対する一般的な保護のほかに、ライセンスサーバ１７４２は、パブリッシャによって指定されたパラメータに従って、コンテンツオブジェクトの使用を制限するルール（例えば、限られた回数の再生を許可する）を実施することもできる。宣伝パブリッシャは、通常は、その宣伝の露出の制限に関心を持たない場合がある。例えば、ライセンスサーバ１７４２が、宣伝１７１５の無制限の回数の再生を許可するが、宣伝パブリッシャ１７１０は、すべての要求された再生について異なる宣伝（図示せず）（例えば、ユーザが再生を要求することによって関心を表したならば、おそらくは商取引ウェブサイトへのリンクを伴う、より「強引な販売」である宣伝）に置換することを要求することができる。
【０３６７】
[382]宣伝パブリッシャ１７１０は、例えばコンテンツオブジェクトメタデータデータベース１７３２へのアクセスを援助するためにメタデータサーバ１７４４に頼ることもできる。例えば、宣伝パブリッシャ１７１０がコンテンツオブジェクトメタデータデータベース１７３２自体に照会することを要求するのではなく、メタデータサーバ１７４４が、このデータへの間接アクセスを可能にする、より単純なより高水準のインターフェースを宣伝パブリッシャ１７１０に提供することができる。
【０３６８】
[383]さらに、宣伝パブリッシャ１７１０は、支払／請求サーバ１７４６に頼ることができる。支払／請求サーバ１７４６は、「ペイパービュー」（ＰＰＶ）、サブスクリプション、プリペイドアクセス、無料及び有料の販売促進など、コンテンツオブジェクトに関するさまざまな「カスタマリレーションシップ管理」（ＣＲＭ）モデルを提供する。そのような機能性の使用は、他のタイプのコンテンツオブジェクトのパブリッシャに関してより一般的に行われるが、宣伝パブリッシャ１７１０は、例えば宣伝１７１５がオプションの基礎で特定のＰＰＶ映画と共に表示される販売促進（例えば、ユーザが宣伝１７１５などの宣伝を見ることに合意する時に無料でＰＰＶ映画を受け取る場合）を起動するのに支払／請求サーバ１７４６を利用することができる。
【０３６９】
[384]レポートサーバ１７４８は、宣伝パブリッシャ１７１０にとって（並びに他のタイプのコンテンツオブジェクトのパブリッシャにとって）高い価値を有する可能性がある。レポートパラメータを指定することによって、宣伝パブリッシャ１７１０は、宣伝１７１５を含む、その宣伝の表示に関するユーザ挙動に関するさまざまな異なるタイプのレポートをレポートサーバ１７４８から受け取ることができる。例えば、そのようなレポートには、特定の日時に宣伝を見るユーザのプロファイル、彼らが見ていたコンテンツオブジェクト（又はコンテンツオブジェクトのタイプ）（ユーザがそのような集約情報の公開を許可すると仮定して）、及びさまざまな他の挙動情報（例えば、宣伝のクリックスルー統計、関連する購入など）に関する情報を含めることができる。
【０３７０】
[385]最後に、宣伝パブリッシャ１７１０は、「直接購入」販売促進（例えば、商業ウェブサイトへの宣伝１７１５内のリンクを介する）、「ビデオ販売促進ウィンドウ」へのアクセス（例えば、他のおそらくは関連する宣伝と混ぜ合わされた）、「ビデオ内宣伝」（特定のビデオコンテンツに宣伝１７１５を挿入するのを容易にするための）、及び他の商取引の機会のホストを含む、宣伝１７１５に関係する商業販売促進を容易にするために商取引サーバ１７４９に頼ることができる。
【０３７１】
[386]システムサーバ１７４０、システムデータベース１７３０、及びターゲット位置１７２０へのアクセスが、宣伝のパブリッシャに制限されないことに留意されたい。これらのリソースは、一実施形態で、公開するサーバから、及びはるかに制限され間接的な範囲でＶＯＤピア全般から（例えば、システムのユーザインターフェースを介してコンテンツオブジェクトに関する追加情報にアクセスする）中央でアクセス可能である。他のタイプのコンテンツオブジェクトのパブリッシャは、一実施形態で、彼ら自体のコンテンツオブジェクトと共にどの宣伝（又は宣伝のタイプ若しくは宣伝パブリッシャ）が見られるかを制限することもできる。例えば、家族向け映画のパブリッシャは、あるタイプの製品（例えば、たばこ又は酒）を含む宣伝を許可しない場合がある。或いは、家族向け映画のパブリッシャは、そのような製品を販売促進することがわかっている特定の宣伝パブリッシャを除外する場合がある。
Ｂ．宣伝挿入の実施態様
【０３７２】
[387]上で注記したように、宣伝パブリッシャの仕事を単純にするために、このシステムは（一実施形態で）、すべての公開するサーバから使用可能なＶＯＤパブリッシングソフトウェアの一部である「宣伝挿入ツール」を提供する。この宣伝挿入ツールは、宣伝パブリッシャがシステムサーバ１７４０、システムデータベース１７３０、及びターゲット位置１７２０と直接に通信する必要をなくすことを可能にするインターフェースを提供する。宣伝パブリッシャは、その代わりに、より高水準のインターフェースを利用して、その作業をより簡単に、宣伝のパブリケーションをより具体的にターゲットとする形で達成することができる。
【０３７３】
[388]一実施形態で、宣伝挿入ツールは、単純化されたユーザインターフェースを提供する。このインタフェースは、宣伝パブリッシャが、パブリッシャの宣伝がターゲティングされ、ＶＯＤピアユーザに提示される形を規定するパラメータを指定するために、ドロップダウンリストから事前定義の選択肢を選択することを可能にする。宣伝挿入ツールは、指定されたタイムスロット中に指定されたターゲットにされたプロファイルと合致するＶＯＤピア上で表示される宣伝パブリッシャの「宣伝パッケージ」から宣伝を選択する「プレイリスト」を生成する。
【０３７４】
[389]宣伝は、通常、宣伝の残りの再生に先立つ（「先頭」）及びそれに続く（「末尾」）比較的短いシーケンスである「先頭」部分及び「末尾」部分と共に公開される。宣伝パブリッシャは、宣伝並びに所望の先頭部分及び末尾部分のＩＤを、宣伝持続時間（例えば、３０秒）及び宣伝が挿入される所望のターゲット媒介と共に指定することができる。この所望のターゲット媒介は、一実施形態で、イベント（ＶＯＤブラウザを伴う又は伴わない）、「バーカー」チャネル、ＶＯＤメッセージングサービス（例えば、純粋にテキストの宣伝用）、「対話型宣伝」（例えば、追加情報、販売促進、特売などを含むサイトへのＶＯＤブラウザを介するリンクを含む）、並びに宣伝の「印刷」（ＶＯＤシステムの外部）をも含めるオプションを含む。
【０３７５】
[390]一実施形態で、基本的な宣伝タイプは、（１）単一宣伝  独立の宣伝イベント、（２）シリアル宣伝  １つ以上のイベントに挿入される５つまでの宣伝繰り返しのシーケンス、（３）タグ付き宣伝  異なる末尾シーケンスを有する宣伝（例えば、異なる地理的ゾーンのために宣伝を「ローカライズする」ため）、（４）平行宣伝  異なる末尾シーケンスを有する同一宣伝パブリッシャからの複数の異なる宣伝、及び（５）対話型宣伝リンク及び／又は他の形の「ユーザ応答」機能を有する、を含む。さらに、もう１つの実施形態で、そのような宣伝タイプを、組み合わせて提供することができる。
【０３７６】
[391]シリアル宣伝は、宣伝パブリッシャが、経時的に宣伝（又は、一実施形態で、わずかに異なる宣伝）を繰り返すことによって、あるイベント全体（並びに複数のイベントにまたがって）関心を強めることを可能にする。異なる宣伝末尾は、例えばコンテストの詳細又は他の情報をシーケンスの終りに向かってアナウンスすることによって、関心を増分的に強めることができる。タグ付き宣伝は、ローカルオファーを可能にし、平行宣伝は、例えば、異なる宣伝末尾を使用して、ある製品系列を販売促進する宣伝を提供するという宣伝パブリッシャの望みを容易にする。対話型宣伝は、ユーザに増分式に情報を提供し、ユーザの関心に関する特定のターゲティングされたフィードバック（一実施形態で、宣伝パブリッシャの製品をさらに販売促進するために動的に利用することができる）を入手する追加の機会を提供する。
【０３７７】
[392]もう１つの実施形態では、ある形の「直接パブリッシング」を可能にすることができる。これは、コンテンツオブジェクト並びに宣伝を、通常はＶＯＤネットワークの一部でないハンドヘルドデバイス及び他のデバイスから公開する非専門家パブリッシャの能力を大幅に単純にする。例えば、傍流のスポーツに照らすと、そうでなければ膨大な宣伝予算を必要とする機会を提供するスポーツイベント（例えば、おそらくはローカル宣伝をも伴う競馬）をアップロード／公開することができる。同様に、小規模小売店が、その店からビデオ機能付きセル電話機を介して、宣伝と結合された、特定の製品の「スピークアンドセル（ｓｐｅａｋ  ａｎｄ  ｓｅｌｌ）」販売促進を公開することができる。
【０３７８】
[393]宣伝挿入ツールによって利用されるターゲティング方法は、一実施形態で、ＶＯＤピアユーザに関係するさまざまな統計（例えば、ユーザプロファイルデータ１７３４データベースに格納された）を用いる。そのような統計は、ユーザプロファイルのさまざまな態様に宣伝をターゲティングする機構を提供する。例えば、そのような統計に、ある時間間隔（例えば１週間）にわたって、ユーザの総数及びユーザあたりの見られたイベントの平均個数（地理的ゾーンにも分割される）を含めることができる。さらに、そのような統計に、性別のパーセンテージ（男性対女性）、年齢（例えば、１８〜２５、２５〜５４、５５以上）、家計収入（例えば、５万ドル以上、７万５千ドル以上、１０万ドル以上、１５万ドル以上）、教育（例えば、大学卒、大学院修了）、婚姻関係の有無、子供、及び挙動ＶＯＤ使用（例えば、消費者カテゴリ、前の週のシステム使用、最近３０日間又はこれまでのオンラインショッピング習慣など）を含めることができる。
【０３７９】
[394]さらに、一実施形態で、「ＶＯＤユーザプロファイルカテゴリ」が、ユーザプロファイルデータを組み合わせることによって定義される。例えば、「カップル」、「家族」、「独身」、及び「子供」を、固定された年齢範囲、国、地理的ゾーン、及び特定の関心領域に分割されたＶＯＤユーザプロファイルカテゴリとして定義することができる。さらに、宣伝パブリッシャは、その宣伝キャンペーンに関するある制約を指定することができる（例えば、開始日、停止日、有効日、地理的ゾーンに関する政府の制約、カテゴリ、時間数など）。
【０３８０】
[395]最後に、宣伝パブリッシャは、ＶＯＤピアユーザの特定の組に彼らの宣伝をターゲティングするためにさまざまな人口統計情報から選択することができる。次に、そのような人口統計情報を上で述べた実際のＶＯＤピアユーザプロファイル統計と相互参照することができる（下で述べるように）。例えば、一実施形態で、次の人口統計カテゴリが含まれる：性別（男女）、年齢（１８〜２４、１８〜３４、１８〜４９、２５〜３４、２５〜４４、２５〜５４、４５〜５４、４５〜６４、２１以上、２５以上、３５以上、４５以上、５５以上、６５以上）、婚姻関係の有無（既婚、独身）、子供（はい／いいえ）、教育（高校、大学卒、大学院、大学卒以上）、職業（専門職／管理職、販売／小売業、秘書／事務、サービス／労働、学生、退職、自営）、収入（通貨タイプ、３万５千ドル以上、５万ドル以上、７万５千ドル以上、１０万ドル以上、１５万ドル以上）、地理的ゾーンなど。
【０３８１】
[396]宣伝がイベント内及びイベントの間（並びにバーカーチャネル内及び他のターゲット位置内）にどのように挿入されるかをよりよく理解するために、そのような宣伝に関連するメタデータを、これから説明する。一実施形態で、そのような宣伝メタデータは、「包括的宣伝メタデータ」（宣伝を記述する）、「イベント宣伝ハンドリングメタデータ」（イベント内に示される宣伝に関する制約を記述する）、「宣伝ターゲテッドユーザプロファイルメタデータ」（宣伝がターゲティングされるＶＯＤピアユーザプロファイルデータを記述する）、及び「宣伝挿入リストメタデータ」（宣伝が挿入されるイベント内のブロックを含む）のＸＭＬタグを含む。
【０３８２】
[397]一実施形態で、包括的宣伝メタデータは、各宣伝を記述するデータを格納するデータ構造を記述する次のタグを含む。
【表５５】
2014116949.tif 000057
【０３８３】
[398]イベント宣伝ハンドリングメタデータは、宣伝を挿入できるイベント内の位置を記述するデータ構造を記述する次のタグを含む。
【表５６】
2014116949.tif 000058
【０３８４】
[399]宣伝ターゲテッドユーザプロファイルメタデータは、宣伝がターゲティングされるユーザプロファイルを記述するデータ構造を記述する次のタグを含む。
【表５７】
2014116949.tif 000059
【０３８５】
[400]宣伝挿入リストメタデータは、宣伝を挿入できるイベント内の位置を記述するデータ構造を記述する次のタグを含む。
【表５８】
2014116949.tif 000060
【０３８６】
[401]一実施形態で、宣伝パブリッシャは、イベント並びにシステムのユーザインターフェースの他の態様の「スポンサーになる」ことができる。例えば、「スポンサー付きテーマ」に、宣伝パブリッシャによって作成され、ＶＯＤピアユーザによる選択に使用可能な商用「スキン」を含めることができる。このスキンは、ユーザがアクセス可能なユーザインターフェース要素の実質的にすべてを包含することができる。見る人は、これらのスキンをダウンロードすることができ、そのスキンは、その後、ユーザインターフェースのメインメニューに現れる。スキンには、背景イメージ、アイコン、ロゴ、及び宣伝パブリッシャのロゴ（又は他の形の表現若しくはスタイル）が一体化されている他の要素（例えば、再生ボタン及び停止ボタンなど、既存システム要素を含む）を含めることができる。
【０３８７】
[402]そのようなスポンサー付きテーマは、宣伝パブリッシャによって提供される製品を販売促進する追加情報をユーザが入手することを可能にする追加の対話型要素を提供することができる。バーカーチャネルに販売促進を含めるほかに、ゲーム、コンテスト、及びくじなどの他の販売促進を提供することもできる。
【０３８８】
[403]一実施形態で「スポンサー付きイベント」は、宣伝パブリッシャが、例えば、その宣伝パブリッシャの宣伝を見ることと引き換えにイベントの無料ビューイング（例えば、別のパブリッシャによって公開される場合であっても、やがて公開される人気のある映画）を提供することを可能にする。例えば、そうでなければＶＯＤネットワーク上でＰＰＶ映画としてのみ入手可能なコンテンツオブジェクトを、特定の宣伝パブリッシャからスポンサー付きイベントとして提供することもでき、これによって、ユーザが、ユーザ自身が販売促進を甘受することと引き換えにそのイベントを無料で見ることが可能になる。一実施形態で、この販売促進には、オンスクリーンロゴ、「インフォテインメント」材料の挿入、ユーザへの対話型の質問、さらなる販売促進又は商取引の機会へのリンク、及びおそらくはユーザ活動を監視し、フォローアップ宣伝ビューイング、メールなどを受けることへの合意を含めることができる。
【０３８９】
[404]スポンサー付きイベントに加えて、宣伝パブリッシャは、イベントのグループ（例えば、宣伝パブリッシャの製品又はサービスと共通してある関係を共有する）が、宣伝又はおそらくはスキンをも含んだ単一の基準点（例えば、チャネルロゴ）から入手可能である、「ブランド付きチャネル」をも生成することができる。
【０３９０】
[405]他の実施形態では、ユーザが宣伝及び関連する販売促進イベント（例えば、それ以外の形でユーザが関心を持つ可能性がある製品又はサービスの宣伝）を甘受することによって経時的に「ポイント」を増やすことができる、より長期の宣伝キャンペーンを含む、追加の販売促進が可能である。そのようなポイントは、ＶＯＤネットワーク上での無料ビューイング並びに賞品、値引きなどに関して考えることができる。そのような販売促進は、宣伝パブリッシャに、彼らの製品及びサービスを販売促進する非常にターゲティングされた機会を提供すると同時に、ユーザが宣伝及び他の販売促進を甘受するかどうかを「選択する」ことを可能にする。
【０３９１】
[406]宣伝をコンテンツオブジェクトの１タイプとしてＶＯＤネットワークに一体化することによって、システム上でコンテンツオブジェクトを見るユーザの能力を遮らずに、宣伝パブリッシャの製品及びサービスを非常にターゲティングされた効率的な形で（広範囲のターゲティングされた追跡能力及びレポート能力を含む）販売促進する実質的に無制限の個数の可能性が存在する。ユーザは、販売促進活動から「脱退する」機会を提供されるが、（より重要なことに）無料ビューイングと引き換えにそのような活動に「加入する」動機を与えられる。製品及びサービスの値引き、並びに他のクリエイティブな機会のホストが、宣伝パブリッシャによって彼らの非常にターゲティングされたカスタマのために考案される。
要約
【０３９２】
[407]本発明は、高いＱｏＳを維持しながらインターネットを介する大量のディジタルコンテンツの配布を可能にするように設計された複数の動的コンテンツパッケージング及び負荷平衡化のシステム及び方法を用いる。本発明は、ＶＯＤアプリケーションだけではなく、多数の他のコンテンツ配布アプリケーション及び関連するアプリケーション、特にディジタルコンテンツがそのようなコンテンツの最終的なユーザに「より近い」ことから利益を得るアプリケーションに適用可能である。
【０３９３】
[408]コンテンツオブジェクトは、構成要素パッケージのグループに分割され、これらのグループは、そのようなコンテンツが後に取り出される（すなわち、プルされる）時にＱｏＳを高めるために、隣接するネットワークピアのクラスタに分散される（すなわち、プッシュされる）。トラッキングファイル（そのようなパッケージのグループを格納するネットワークピアのリストを維持する）及びトラッキングインデックス（トラッキングファイルを格納するネットワークピアのリストを維持する）が、所望のコンテンツオブジェクトの「オンデマンドの」（及び持続される）取出を容易にするために生成され、更新される。
【０３９４】
[409]さらに、一般的な及びアプリケーション固有のネットワークトラフィックが、動的に監視され（例えば、ＶＯＤ機能性の挙動態様並びに帯域幅及び信頼性を含む）、その結果が、システムにフィードバックされ、効果的に「分散閉ループフィードバック」システムを作成する。そのような分散動的監視に応答して、個々のネットワークピアの属性（ピアの信頼レベル及び隣接するピアの特定のクラスタ内のメンバシップなど）が、変更され、さまざまな「コンテンツ平衡化」機能が、実行される（さまざまなネットワークピアの間でのコンテンツオブジェクトのパッケージのグループの再分散など）。
【０３９５】
[410]その結果は、それ自体はＱｏＳを提供しない既存インターネットインフラストラクチャに頼るピアのネットワークに効果的にＱｏＳを組み込むことである。そのようなネットワークＱｏＳ（ＮＱｏＳ）は、ネットワークピアが、すべての要求に先立って、そのピアに特定のコンテンツオブジェクト（その隣接するＶＯＤピアの間で構成要素パッケージのグループで分散されている）をある所定の時間以内に配布するネットワークの能力を識別することを可能にする。
実施例
【０３９６】
［実施例１］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配する、コンテンツプッシャーと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出す、コンテンツプラーと、
を備え、
（ｃ）これによって、当該ディジタルコンテンツ配信システムは、前記第３ネットワークノードが、前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始することを可能にする、
ディジタルコンテンツ配信システム。
［実施例２］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配する（前記第１ネットワークノード及び前記第２ネットワークノードは、互いに相対的に近接するネットワークノードの第１クラスタ内に配置される）、コンテンツプッシャーと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノード（前記第３ネットワークノードも前記第１クラスタ内に配置される）による要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１クラスタ内の前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出す、コンテンツプラーと、
を備え、
（ｃ）これによって、当該ディジタルコンテンツ配信システムは、前記第３ネットワークノードが、
（ｉ）前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始し、
（ｉｉ）実質的に即時かつ連続的な再生のために前記第１コンテンツオブジェクトを取り出す（前記再生は、前記第３ネットワークノードによる前記再生要求の前の前記第１クラスタ内の前記第１コンテンツオブジェクトの存在に起因して部分的である）
ことを可能にする、
ディジタルコンテンツ配信システム。
［実施例３］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配する、コンテンツプッシャーと、
（ｂ）前記第１ネットワークノード上の前記構成要素パッケージの第１グループ及び前記第２のネットワークノード上の前記構成要素パッケージの第２グループの各々の位置を含む第１トラッキングファイルと、前記第１トラッキングファイルが格納されている１つ以上のネットワークノードの位置を含む第１トラッキングインデックスとを生成するコンテンツトラッカと、
（ｃ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び第２ネットワークノード上の前記第２グループの各々の位置を識別し（該識別が、直接に又は前記第１トラッキングインデックスを介して間接的に前記第１トラッキングファイルを突き止めることによってなされ）、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出す、コンテンツプラーと、
を備え、
（ｄ）これによって、当該ディジタルコンテンツ配信システムは、前記第３ネットワークノードが、前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始することを可能にする、
ディジタルコンテンツ配信システム。
［実施例４］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配する、コンテンツプッシャーと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出す、コンテンツプラーと、
（ｃ）前記第３ネットワークノードを含む通信を観察するネットワークモニタ（前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む）と、
（ｄ）前記ネットワークモニタによって確かめられた情報に応答して、
（ｉ）前記第３ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第３ネットワークノードの属性の第１の集合を更新するタスクと、
（ｉｉ）前記第１コンテンツオブジェクトの１つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード間で前記第１コンテンツオブジェクトを再分配するタスクと、
のうちの１つ以上を実行する動的フィードバックコントローラと、
を備え、
（ｅ）これによって、当該ディジタルコンテンツ配信システムは、前記第３ネットワークノードが、前記第１コンテンツオブジェクトの再生に関するその要求に先立って、前記第１コンテンツオブジェクトを前記第３ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質（ＮＱｏＳ）を提供する、
ディジタルコンテンツ配信システム。
［実施例５］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループより前の順序で発生する）、パッケージの前記第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配する、コンテンツプッシャーと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記第１コンテンツオブジェクトの前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出す、コンテンツプラーと、
を備え、
（ｃ）前記コンテンツプッシャーは、また、宣伝である第２リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記第２コンテンツオブジェクトのパッケージの第１グループは、前記第２コンテンツオブジェクトのパッケージの第２グループより前の順序で発生する）、前記第２コンテンツオブジェクトのパッケージの第１グループを第４ネットワークノードに分配するとともに前記第２コンテンツオブジェクトのパッケージの第２グループを第５ネットワークノードに分配し、
（ｄ）前記コンテンツプラーは、また、前記第１コンテンツオブジェクトの再生に関する前記第３ネットワークノードによる前記要求に応答して、前記第２コンテンツオブジェクトのパッケージの前記第１グループ及び前記第２グループを検索し、前記第４ネットワークノード上の前記第２コンテンツオブジェクトのパッケージの前記第１グループ及び第５のネットワークノード上の前記第２コンテンツオブジェクトのパッケージの第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第２コンテンツオブジェクトの順序付き再生のために前記第２コンテンツオブジェクトのパッケージの前記第１グループ及び前記第２グループを取り出し、
（ｅ）これによって、当該ディジタルコンテンツ配信システムは、前記第３ネットワークノードが、前記第１コンテンツオブジェクトの再生に関するその要求に応答して、前記宣伝を自動的に受け取ることを可能にし、
該宣伝は、それ自体がリニアコンテンツオブジェクト（前記第２コンテンツオブジェクト）であり、前記第１コンテンツオブジェクトと実質的に同一の形で、前記コンテンツプッシャーによって分配され、前記第３ネットワークノードでの再生のために前記コンテンツプラーによって取り出される、
ディジタルコンテンツ配信システム。
［実施例６］
（ａ）前記第１ネットワークノード及び前記第２ネットワークノードは、互いに相対的に近接するネットワークノードの第１クラスタ内に配置され、
（ｂ）前記コンテンツプラーは、前記第１クラスタ内の前記第１ネットワークノード上の前記構成要素パッケージの第１グループ及び前記第２ネットワークノード上の前記構成要素パッケージの第２グループの各々の位置を識別し、
（ｃ）これによって、当該ディジタルコンテンツ配信システムは、前記第３ネットワークノードが、
（ｉ）前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始し、
（ｉｉ）実質的に即時かつ連続的な再生のために前記第１コンテンツオブジェクトを取り出す（前記再生は、前記第３ネットワークノードによる前記再生要求の前の前記第１クラスタ内の前記第１コンテンツオブジェクトの存在に起因して部分的である）
ことを可能にする、
実施例３に記載のディジタルコンテンツ配信システム。
［実施例７］
前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループより小さい、実施例１に記載のディジタルコンテンツ配信システム。
［実施例８］
前記第１コンテンツオブジェクトの前記構成要素パッケージは、可変サイズのパッケージである、実施例７に記載のディジタルコンテンツ配信システム。
［実施例９］
前記第１コンテンツオブジェクトの前記構成要素パッケージは、固定サイズのパッケージであり、前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループより少数のパッケージを含む、実施例７に記載のディジタルコンテンツ配信システム。
［実施例１０］
前記ネットワークノードの各々は、前記コンテンツプッシャーと前記コンテンツプラーとの両方によって実行される機能と実質的に同一の機能を実行するクラスタコントローラを含む、実施例２に記載のディジタルコンテンツ配信システム。
［実施例１１］
前記第３ネットワークノードは、前記第１コンテンツオブジェクトの再生を開始するのに必要な相対時間のインジケータを前記第３ネットワークノードのユーザに表示するグラフィカルユーザインターフェースを含む、実施例４に記載のディジタルコンテンツ配信システム。
［実施例１２］
前記ネットワークモニタは、経時的に前記第３ネットワークノードからのｐｉｎｇ通信及びｔｒａｃｅｒｏｕｔｅ通信を開始し、観察する、実施例４に記載のディジタルコンテンツ配信システム。
［実施例１３］
前記ネットワークモニタによって観察される前記挙動アプリケーション固有ネットワークトラフィックは、経時的な前記第３ネットワークノードによって開始されるコンテンツオブジェクトの再生に関する要求を含む、実施例４に記載のディジタルコンテンツ配信システム。
［実施例１４］
前記第２コンテンツオブジェクトの前記再生は、前記第１コンテンツオブジェクトの前記再生中に発生する、実施例５に記載のディジタルコンテンツ配信システム。
［実施例１５］
前記第３ネットワークノードは、前記ユーザが前記第２コンテンツオブジェクトの再生を起動するためにクリックすることのできるリンクを前記第１コンテンツオブジェクトの前記再生中に前記第３ネットワークノードのユーザに表示するグラフィカルユーザインターフェースを含む、実施例５に記載のディジタルコンテンツ配信システム。
［実施例１６］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配するステップと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２のグループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出すステップと
を含み、
（ｃ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、パッケージの前記第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始することを可能にする、
方法。
［実施例１７］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配する（前記第１ネットワークノード及び前記第２ネットワークノードは、互いに相対的に近接するネットワークノードの第１クラスタ内に配置される）ステップと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１クラスタ内の前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出すステップと、
を含み、
（ｃ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、
（ｉ）前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始し、
（ｉｉ）実質的に即時かつ連続的な再生のために前記第１コンテンツオブジェクトを取り出す（前記再生は、前記第３ネットワークノードによる前記再生要求の前の前記第１クラスタ内の前記第１コンテンツオブジェクトの存在に起因して部分的である）
ことを可能にする、
方法。
［実施例１８］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配し、前記構成要素パッケージの第２グループを第２ネットワークノードに分配するステップと、
（ｂ）前記第１ネットワークノード上の前記構成要素パッケージの第１グループ及び前記第２ネットワークノード上の前記構成要素パッケージの第２グループの各々の位置を含む第１トラッキングファイルと、前記第１トラッキングファイルが格納されている１つ以上のネットワークノードの位置を含む第１トラッキングインデックスとを生成するステップと、
（ｃ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し（該識別が、直接に又は前記第１トラッキングインデックスを介して間接的に前記第１トラッキングファイルを突き止めることによってなされ）、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出すステップと、
を含み、
（ｄ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始することを可能にする、
方法。
［実施例１９］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループよりも前の順序で発生する）、前記構成要素パッケージの第１グループを第１ネットワークノードに分配するとともに前記構成要素パッケージの第２グループを第２ネットワークノードに分配するステップと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出すステップと、
（ｃ）前記第３ネットワークノードを含む通信を観察するステップ（前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む）と、
（ｄ）前記第３ネットワークノードを含む通信の前記観察によって確かめられた情報に応答して、
（ｉ）前記第３ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第３ネットワークノードの属性の第１の集合を更新するタスクと、
（ｉｉ）前記第１コンテンツオブジェクトの１つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード間で前記第１コンテンツオブジェクトを再分配するタスクと、
のうちの１つ以上を実行するステップと、
を含み、
（ｅ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、前記第１コンテンツオブジェクトの再生に関するその要求に先立って、前記第１コンテンツオブジェクトを前記第３ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質（ＮＱｏＳ）を提供する、
方法。
［実施例２０］
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
（ａ）第１リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループより前の順序で発生する）、分配するとともに前記構成要素パッケージの第１グループを第１ネットワークノードに前記構成要素パッケージの第２グループを第２ネットワークノードに分配するステップと、
（ｂ）前記第１コンテンツオブジェクトの再生に関する第３ネットワークノードによる要求に応答して、前記第１コンテンツオブジェクトの前記構成要素パッケージの第１グループ及び第２グループを検索し、前記第１ネットワークノード上の前記第１グループ及び前記第２ネットワークノード上の前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第１コンテンツオブジェクトの順序付き再生のために前記第１グループ及び前記第２グループを取り出すステップと、
（ｃ）宣伝である第２リニアコンテンツオブジェクトを構成要素パッケージの第１グループ及び第２グループに分割し（前記第２コンテンツオブジェクトのパッケージの第１グループは、前記第２コンテンツオブジェクトのパッケージの第２グループより前の順序で発生する）、前記第２コンテンツオブジェクトのパッケージの第１グループを第４ネットワークノードに分配するとともに前記第２コンテンツオブジェクトのパッケージの第２グループを第５ネットワークノードに分配するステップと、
（ｄ）前記第１コンテンツオブジェクトの再生に関する前記第３ネットワークノードによる前記要求に応答して、前記第２コンテンツオブジェクトのパッケージの前記第１グループ及び前記第２グループを検索し、前記第４ネットワークノード上の前記第２コンテンツオブジェクトのパッケージの前記第１グループ及び前記第５のネットワークノード上の前記第２コンテンツオブジェクトのパッケージの前記第２グループの各々の位置を識別し、前記第３ネットワークノードでの前記第２コンテンツオブジェクトの順序付き再生のために前記第２コンテンツオブジェクトのパッケージの前記第１グループ及び前記第２グループを取り出すステップと、
を含み、
（ｅ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、前記第１コンテンツオブジェクトの再生に関するその要求に応答して、前記宣伝を自動的に受け取ることを可能にし、
該宣伝は、それ自体がリニアコンテンツオブジェクト（前記第２コンテンツオブジェクト）であり、前記第１コンテンツオブジェクトと実質的に同一の形で、分配され、前記第３ネットワークノードでの再生のために取り出される、
方法。
［実施例２１］
（ａ）互いに相対的に近接するネットワークノードの第１クラスタ内に前記第１ネットワークノード及び第２ネットワークノードを配置するステップと、
（ｂ）前記第１クラスタ内の前記第１ネットワークノード上の前記構成要素パッケージの第１グループ及び前記第２ネットワークノード上の前記構成要素パッケージの第２グループの各々の位置を識別するステップと、
を更に含み、
（ｃ）これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第３ネットワークノードが、
（ｉ）前記構成要素パッケージの第２グループを受け取る前に前記第１コンテンツオブジェクトの再生を開始し、
（ｉｉ）実質的に即時かつ連続的な再生のために前記第１コンテンツオブジェクトを取り出す（前記再生は、前記第３ネットワークノードによる前記再生要求の前の前記第１クラスタ内の前記第１コンテンツオブジェクトの存在に起因して部分的である）
ことを可能にする、
実施例１８に記載の方法。
［実施例２２］
前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループより小さい、実施例１６に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２３］
前記第１コンテンツオブジェクトの前記構成要素パッケージは、可変サイズのパッケージである、実施例２２に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２４］
前記第１コンテンツオブジェクトの前記構成要素パッケージは、固定サイズのパッケージであり、前記構成要素パッケージの第１グループは、前記構成要素パッケージの第２グループより少数のパッケージを含む、実施例２２に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２５］
前記ネットワークノードの各々は、前記第１コンテンツオブジェクトを分割し、分配し、配置し、取り出すために実行される機能と実質的に同一の機能を実行する、実施例１７に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２６］
前記第１コンテンツオブジェクトの再生を開始するのに必要な相対時間のインジケータを前記第３ネットワークノードのユーザに表示するステップをさらに含む、実施例１９に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２７］
前記観察される通信は、経時的に前記第３ネットワークノードから開始されるｐｉｎｇ通信及びｔｒａｃｅｒｏｕｔｅ通信を含む、実施例１９に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２８］
前記挙動アプリケーション固有ネットワークトラフィックは、経時的な前記第３ネットワークノードによって開始されるコンテンツオブジェクトの再生に関する要求を含む、実施例１９に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例２９］
前記第２コンテンツオブジェクトの前記再生は、前記第１コンテンツオブジェクトの前記再生中に発生する、実施例２０に記載のリニアコンテンツオブジェクトを取り出す方法。
［実施例３０］
前記第３ネットワークノードは、前記ユーザが前記第２コンテンツオブジェクトの再生を起動するためにクリックすることのできるリンクを前記第１コンテンツオブジェクトの前記再生中に前記第３ネットワークノードのユーザに表示する、実施例２０に記載のリニアコンテンツオブジェクトを取り出す方法。
【符号の説明】
【０３９７】
１０…エンドユーザクライアントノード、
１６…パブリケーションサーバ、
１５…ＶＯＤピア、
２０…ローカルインターネットサービスプロバイダ（ローカルＩＳＰ）、
３０…地域インターネットサービスプロバイダ（ＲＥＧ  ＩＳＰ）、
４０…バックボーン（ＢＢ）ルータ、
５５…ＶＯＤサポートサーバ、
１００…専用ＶＯＤサーバ、
３０１…最高の信頼レベル、
３０２…信頼レベル２〜５、
３０３…信頼レベル６〜９、
３０４…信頼レベル１２、
３０５…信頼レベル、
３１０…スーパークラスタ、
３２０…クラスタ、
４１０…最初のグループ「Ａ」、
４２０…グループ「Ｂ」、
４３０…グループ「Ｃ」、
４４０…最後のグループ「Ｄ」、
４５０…クラスタ、
４６０…ＶＯＤピア、
４７０…ＶＯＤピア、
４７５…要求元ＶＯＤピア、
５００…ノードＩＤデータ構造、
５０１…ノードＩＤ、
５０５…位置、
５１０…固定部分、
５１２…ボックスＩＤ、
５１４…国、
５１６…地域、
５１８…ＩＳＰ、
５２０…市、
５２２…郵便番号、
５２４…経度／緯度、
５２６…ノードタイプ、
５５０…記述子、
５５２…ＩＰアドレス、
５５４…信頼レベル、
５５６…ローカルノードアクセシビリティ、
５５８…グローバルノードアクセシビリティ、
５６０…ネット測定値、
６００…ＣＲＩＤ、
６０１…ＣＲＩＤ、
６０５…位置、
６１０…コアＣＲＩＤ、
６１２…パブリッシャＩＤ、
６１４…イベントセレクタ、
６２０…記述子、
６２５…主記述子、
６２６…パブリケーションゾーン、
６２８…パブリケーション権利、
６３５…パブリッシャ記述子、
６３６…パブリッシャ優先順位、
６３８…パブリッシャカテゴリ、
６４５…終了記述子、
６４６…コンテンツオブジェクトタイプ、
７１０…フィールド、
７２０…「ノード１」のＩＰアドレス、
７２５…パッケージグループごとの値、
７３０…「最終」エントリ、
８００…トラッキングインデックスデータ構造、
８１０…行、
８１５…ＣＲＩＤ、
８２０…「最終」行、
９１０…ノードＡ、
９２０…ノードＢ、
９３０…フェーズＨ１、
９４０…フェーズＨ２、
９５０…フェーズＨ３、
１００５…パブリケーションサーバ、
１０１０…ＶＯＤサポートサーバ、
１０１５…ノードＦ、
１０２０…ノードＡ、
１０３２…最初の通信、
１０３３…通信、
１０３６…通信、
１０３８…通信、
１０３９…通信、
１０５０…通信プロトコル、
１０５５…パブリケーションサーバ、
１０６０…ノードＡ、
１０６５…ノードＢ、
１０７０…ノードＣ、
１０７１…通信、
１０７２…通信、
１０７４…通信、
１０７５…通信、
１０７７…通信、
１０７８…通信、
１０８２…通信、
１０８３…応答、
１０８６…通信、
１０８７…応答、
１０９１…通信、
１０９２…通信、
１０９４…通信、
１１００…コンテンツオブジェクト、
１１１０…始め、
１１２０…終り、
１１５０…ＶＯＤピア、
１２００…信頼レベルの比較的自然な分布、
１２５０…中間信頼レベル、
１２６０…ＶＯＤサポートサーバ、
１２７０…最も信頼性の高い信頼レベル、
１２８０…最も信頼性の低い信頼レベル、
１３００…通信プロトコル、
１３０５…ノードＡ、
１３１０…ノードＢ、
１３１５…ノードＣ、
１３２２…通信、
１３２３…通信、
１３２５…通信、
１３２６…通信、
１３５０…通信プロトコル、
１３５５…ノードＡ、
１３６０…ノードＢ、
１３７２…通信、
１３７３…通信、
１３７６…通信、
１３７７…通信、
１３７８…通信、
１４００…プルダウンロードシナリオ、
１４１０…ＶＯＤピア、
１４２０…フィーダＶＯＤピア、
１４２５…副又はフォールバックＶＯＤピア、
１４３０…フィーダＶＯＤピア、
１４３５…副ＶＯＤピア、
１５００…分散閉ループフィードバックシステム、
１５１０…ＶＯＤピア、
１５１０ａ…ＶＯＤピア、
１５１０ｂ…ＶＯＤピア、
１５１０ｃ…ＶＯＤピア、
１５２０…クラスタコントローラ、
１５２５…動的ネットワーク監視、
１５３０…変更、
１５３２…動的ネットワーク監視結果データベース、
１５３４…フィードバック、
１５３６…信頼レベル変更、
１５３８…パッケージ分布変更、
１５３９…他の変更、
１６００…「円錐」パターン、
１６０２…非常に信頼性の高いＶＯＤピア、
１６０４…最も信頼性の低いＶＯＤピア、
１６１０…「円柱」パターン、
１６１２…最も信頼性の高いＶＯＤピア、
１６１４…最も信頼性の低いＶＯＤピア、
１６２０…「球」パターン、
１６２２…最も信頼性の高いＶＯＤピア、
１６２４…最も信頼性の低いＶＯＤピア、
１６３０…「多角形」パターン、
１６３２…最も信頼されるＶＯＤピア、
１６３４…最も信頼性の低いＶＯＤピア、
１７００…宣伝挿入機構、
１７１０…宣伝パブリッシャ、
１７１５…宣伝、
１７２０…ターゲット位置、
１７２２…ターゲットコンテンツオブジェクト、
１７２４…バーカーチャネル、
１７２６…ターゲットＧＵＩ領域、
１７３０…システムデータベース、
１７３２…コンテンツオブジェクトメタデータ、
１７３４…ユーザプロファイルデータ、
１７３６…動的挙動及び他のデータ、
１７４０…システムサーバ、
１７４２…ライセンスサーバ、
１７４４…メタデータサーバ、
１７４６…支払／請求サーバ、
１７４８…レポートサーバ、
１７４９…商取引サーバ、
１７５０  宣伝サーバ
【図１】
2014116949.tif 000061
【図２】
2014116949.tif 000062
【図３】
2014116949.tif 000063
【図４】
2014116949.tif 000064
【図５】
2014116949.tif 000065
【図６】
2014116949.tif 000066
【図７】
2014116949.tif 000067
【図８】
2014116949.tif 000068
【図９】
2014116949.tif 000069
【図１０ａ】
2014116949.tif 000070
【図１０ｂ】
2014116949.tif 000071
【図１３ａ】
2014116949.tif 000072
【図１３ｂ】
2014116949.tif 000073
【図１６ａ】
2014116949.tif 000074
【図１６ｂ】
2014116949.tif 000075
【図１６ｃ】
2014116949.tif 000076
【図１６ｄ】
2014116949.tif 000077
【図１１】
2014116949.tif 000078
【図１２】
2014116949.tif 000079
【図１４】
2014116949.tif 000080
【図１５】
2014116949.tif 000081
【図１７】
2014116949.tif 000082
【外国語明細書】
2014116949000001.pdf