I.主要な概念
A.クラスタ及び信頼レベル
[66]上で注記したように、インターネットの既存物理インフラストラクチャの所定の態様は、公に入手可能な情報から入手することができる。そのような情報を、図3に示された一実施形態で利用して、クラスタとして知られるVODピアのグループを作成することができる。標準的なIPアドレスロケーションサービスを、IP範囲及び他の既知の物理インフラストラクチャ情報と組み合わせて利用して、VODピアのIPアドレスを、「クラスタ識別子」すなわちクラスタIDに効果的に変換することができる。このクラスタIDも、図3に示されており、クラスタの階層を識別するように働く。この実施形態では、これらのクラスタは、動的に作成され、変更される。
[67]これらのクラスタは、当初に、既知の物理インフラストラクチャ情報から作成され、包括的な及び実際のデータ転送の監視並びに関連するテストの実行から導出されるネットワークトラフィック統計に基づいて動的に更新されるので、VODピアのグループ以上のものを表す。具体的に言うと、クラスタは、互いの間で特定のQoSを概略的に共有するVODピアのグループを識別するように働く。
[68]下でより詳細に述べるように、VODピアは、特定の時間間隔内に互いの間である量のデータを一貫して確実に(経時的に)転送できる場合に、互いから特定のインターネット距離以内にあると考えることができる。互いに相対的に「近い」これらのVODピアが、クラスタを形成する。
[69]VODピアのこれらのクラスタを識別するとともにデータ転送に利用することによって、ネットワークは、別のクラスタ内の「相対的に高帯域幅の」VODピアからよりもはるかに迅速かつ確実に、同一クラスタ内の「相対的に低帯域幅の」VODピアから要求元VODピアに情報を分散させることを可能にすることができる。言い換えると、「ローカル」イントラクラスタ(intra−Cluster)の性能及び信頼性は、後続のオンデマンド要求に関するQoSの優れた予測量になる。というのは、クラスタ情報が、コンテンツオブジェクトの公開中に、コンテンツオブジェクトパッケージが格納される(プッシュされる)適当なVODピアを識別するのに利用されるからである。
[70]実用的な問題として、相対的に少数のVODピアだけが、大量のデータを長距離にわたって迅速かつ確実に転送する「グローバル」能力を示す高性能高信頼性バックボーンルータの「近く」にある可能性がある。しかしながら、大量のVODピアの間で相対的に高いQoSを維持しながらVOD機能性を達成するためには、互いの間で迅速かつ確実にデータを交換できる相対的に「近い」VODピアのクラスタによって共有される「ローカル」QoSを識別し、活用することが重要になる。
[71]あるVODピアが、より迅速かつ確実に、より大量のデータをある他のVODピアに転送する能力を経時的に示すと、そのVODピアの信頼レベルが高められる。その信頼レベルは、そのクラスタ内のVODピアの間で相対的に高いQoSを維持する能力を反映することができる。この「ローカル」QoSの維持に加えて、より高い信頼レベルは、最終的に、より「グローバルな」QoSを表す。より「グローバルな」QoSは、インタークラスタ(例えば、交差しないクラスタ)及びスーパークラスタ(例えば、スーパーセットクラスタ)通信を管理するVODピアの能力を示す。
[72]そのような通信は、インターネットの遠隔部分へのデータ転送だけではなく、クラスタにまたがるVODピアの性能及び信頼性の管理及び監視、並びにクラスタメンバシップの変更及び「ローカル」クラスタ境界にまたがる信頼レベルの調整をも含む場合がある。さらに、下でより詳細に述べるように、これらの「非常に信頼性の高い」VODピアは、コンテンツオブジェクトのパブリケーション及びネットワークを介するそのパッケージのプッシュ、並びにコンテンツオブジェクトの表示のためのVODピアのオンデマンド要求を満足するためのそのようなパッケージの取出すなわちプルの、所定の高水準機能的態様を管理するのにも用いられる。
[73]クラスタ320などのクラスタ内のVODピアは、類似する信頼レベルを有するある隣接するVODピア並びにより高い(及びおそらくはより低い)信頼レベルを有するいくつかのVODピアについて知らされる。これは、情報をクラスタ内の(及び時々クラスタを越えて)相対的に非常に信頼性の高いVODピアに分散された形で「上に」伝搬させ、その後、クラスタ全体を通じてより低い信頼レベルのVODピアに「下に」戻って伝搬させることを可能にする。
[74]個々のVODピア又は他のコンピュータ(例えば、VODサポートサーバ)が、特定のクラスタを構成する特定のVODピアについて知る必要はない(そのような情報は、分散された形で照会を伝搬させることによって生成することができるが)。あるいは、クラスタは、分散された形で生成され、ある相対的に非常に信頼性の高いVODピアが、他の類似して非常に信頼性の高いVODピアについて知らされる。経時的に、より信頼性の低いVODピアがネットワークに参加する時に、それらのVODピアは、特定のクラスタに割り当てられ、少数のより非常に信頼性の高いVODピア並びにそれら自体の信頼レベルを有するVODピア(このすべてが同一クラスタ内にある)について知らされる。
[75]図3を参照すると、相対的に少数の専用VODサポートサーバが、インターネット全体を通じて戦略的グローバル位置に位置決めされ、最高の信頼レベル301(例えば、1から16までのスケール上の1)を割り当てられる。一実施形態で、これらの専用VODサポートサーバは、高帯域幅光ファイバインターネットバックボーンルータに非常に「近く」、非常に迅速に互いの間で通信する(及びデータを転送する)ことが可能である。上で注記したように、これらのVODサポートサーバは、VODアプリケーション機能性(コンテンツオブジェクトの格納及び取出など)に直接に利用される必要があるのではなく、単に、VODピアがネットワークに追加される時のそれらのVODピアの初期化を含む、所定の補助的機能の実行を援助するものとすることができる。
[76]一実施形態で、VODピアがネットワークに追加される時に、そのVODピアは、これらのVODサポートサーバのうちで、特定クラスタへのそのVODピアの割当を含むある初期化サービスを提供できる1つ以上のVODサポートサーバについて固有に知っている。「クラスタコントローラ」として知られる各VODピア内の分散ソフトウェアは、この初期化プロセスに参加するだけではなく、VODピアの代わりにイントラクラスタサービス(及び、いくつかの事例で、VODピアの信頼レベルが十分に高い場合に、インタークラスタサービス)をも管理する。
[77]各VODピアのクラスタコントローラによって分散された形で提供される(下でより詳細に述べる)これらのサービスは、主要なVOD機能性を含む。すなわち、コンテンツオブジェクトのパブリケーション及びプッシュ、各コンテンツオブジェクトのパッケージのグループの位置を維持するためのトラッキングインデックス及びトラッキングファイルの生成及び伝搬、要求元VODピアでのコンテンツオブジェクトのオンデマンド表示のためのこれらのコンテンツオブジェクトパッケージのプル、並びにNQoSを維持するためのネットワークトラフィックの動的監視(これは、VODピアの信頼レベルと、特定のクラスタ内のVODピアのメンバシップと、コンテンツオブジェクトのパッケージのグループのサイズ及び位置並びに関連するトラッキングインデックス及びトラッキングファイルの内容及び位置との動的な更新を伴う)などである。
[78]一実施形態で、同一のクラスタコントローラソフトウェアが、すべてのVODピアに存在する。このソフトウェアは、特定のクラスタ内の各VODピアの信頼レベルを維持する責任を負う。例えば、特定のVODピアの信頼性が所定の閾値未満に低下しつつあることを検出した(ネットワークトラフィックの動的監視を介して)時に、クラスタコントローラは、そのVODピアの信頼レベルをそれ相応に下げることができる。もちろん、信頼レベルを、類似する形で高めることができる。
[79]十分に高い信頼レベルでは、このクラスタコントローラソフトウェアの諸部分は、インタークラスタ通信とスーパークラスタ通信との両方を含む、クラスタにまたがるVODピアの信頼レベルを維持する責任をも負う。例えば、あるVODピアの信頼レベルを単純に上げるか下げることに加えて、この仮想スーパークラスタコントローラ機能性には、あるクラスタから別のクラスタにVODピアのメンバシップを変更することをも含めることができる。あるVODピアの信頼レベルが経時的に上がる時に、そのVODピアは、以前のクラスタ(例えばクラスタ320)だけではなく他のクラスタをも含む、より大きいスーパークラスタ(例えば、スーパークラスタ310)の一部になることができる。
[80]一実施形態では、16個の信頼レベルが、クラスタコントローラによって維持される。この実施形態では、最高のすなわち「最も信頼性の高い」信頼レベルが、信頼レベル1 301と考えられ、このレベルは、専用VODサポートサーバ用に予約される。VODピアのネットワークが経時的に増大する時に、信頼レベル2〜5 302が、VODピアの総数のうちの相対的に少ない数を表すはずである。言い換えると、相対的に少ない数を超える「最も信頼性の高い」ノードが存在することは、絶対にないはずである。
[81]その一方で、信頼レベル6〜9 303は、大量のVODピアを表す。経時的に、VODピアは、その性能及び信頼性の動的に監視される変化に従って、これらの信頼レベルの間で定期的に上下に移動する可能性がある。信頼レベル10〜16(いずれも図示されていないが、ネットワーク全体にわたって分布するさまざまな信頼レベル305に含まれる)は、相対的に少数の「信頼できない」又は「異常に低帯域幅の」VODピアを表す。それでも、信頼レベル16は、30分の持続時間にわたる平均ネットワーク負荷時間中に100kbpsなど、VODピアの許容できる配信確率の「フロア」を表すことができる。
[82]例えば、信頼レベル12 304は、一実施形態で、VODピアが、当初にネットワークに接続される(又は、例えばハードウェア障害の後に、再接続される)時に割り当てられる「デフォルト」信頼レベルと考えることができる。そのクラスタコントローラが、ネットワークトラフィックを経時的に動的に監視することによって統計情報を入手する時に、その信頼レベルが、QoSに対するそのVODピアの影響をより正確に反映するために、その統計情報に従って調整される。実際には、ネットワーク接続性の持続時間自体が、VODピアの信頼レベルの判定に寄与する信頼性要因である。
[83]一実施形態では、信頼レベルは、それ自体がさまざまな「信頼レベル要因」を組み合わせることから判定される、4つの主要な「信頼レベルパラメータ」を反映する。この4つの信頼レベルパラメータは、さまざまな領域にまたがるQoSに対するVODピアの影響を表し、
(1)VODピアの「ローカル」クラスタ、
(2)そのより大きい「地域」クラスタ、
(3)国又は大陸など、より「遠隔の」より大きい領域、及び
(4)帯域幅及び相互接続性が制限される、コアインターネットの相対的に遠隔の部分
を含む。
[84]下でより詳細に述べる信頼レベル要因は、ネットワークトラフィックを動的に監視することから導出されるさまざまな統計を含む。これらの信頼レベル要因が、各信頼レベルパラメータによって表される領域に関して組み合わされて、その領域内のQoSを反映する信頼レベルパラメータが生成される。次に、これらの信頼レベルパラメータが、ローカルQoSだけではなく、VODピアをインタークラスタ責任及びスーパークラスタ責任について信頼できる度合をも反映する「グローバル」信頼レベルを生成するために組み合わされる。一実施形態で、この信頼レベルは、信頼レベルパラメータの加重平均によって判定される。
[85]もちろん、信頼レベル要因を経時的に補足し、置換し、微調整し、信頼レベルパラメータ領域にまたがってさまざまなQoSレベルをより正確に表すことを試みてることができる。一実施形態で、これらの信頼レベル要因は、
(i)ロード時間(例えば、夕方早くの「プライムタイム」時間中のより高いトラフィックを反映する)、
(ii)高負荷時間中の相対的にローカルなピアへの「高速」サービス配信の確率、
(iii)次の500時間の間にオンラインのままである確率、
(iv)「非常に遠隔の」VODピアへの「高速」サービス配信の確率(インターネットを介するよい接続性を反映する)、
(v)所与のISPへの最高速度、及び
(vi)所与のISPからの最高速度
を含む、経時的に動的に測定できる無数の属性を含む。
B.トラッキングファイル及びトラッキングインデックス
[86]コンテンツオブジェクトがVODピア全体に分散され、オンデマンドで取り出される、本発明の主要なプッシュプロセス及びプルプロセスを述べる前に、まず、主要なデータ構造の一部を説明することが役に立つ。主要なデータ構造は、これらのVODピアの間で分散されるコンテンツオブジェクトのパッケージのグループの位置を「追跡する(track)」のに使用される。一実施形態で、これらのデータ構造は、新たに公開されるコンテンツオブジェクトのパッケージのグループがさまざまなVODピアにプッシュされるパブリケーションプロセス中に作成され、更新され、その後、取出プロセス中に、コンテンツオブジェクトに関するVODピアのオンデマンド要求を満足するのに利用される。これらのデータ構造は、後続要求の相対的に高いQoSを維持するために、クラスタコントローラによるネットワークトラフィックの動的監視に応答して、経時的に更新もされる。
[87]コンテンツオブジェクトが分割されるパッケージのさまざまなグループの位置を追跡するのに、2つの主要なデータ構造が使用される。すなわち、(1)トラッキングファイル及び(2)トラッキングインデックスである。これらのデータ構造を調査する前に、コンテンツオブジェクトを、1つ以上のコンテンツオブジェクトを公開することというイベントと区別することが重要である。例えば、ある映画が、1つのコンテンツオブジェクトを構成することができ、その予告編が、もう1つの別々のコンテンツオブジェクトを構成することができる。予告編のパブリケーションを、イベントとすることができ、映画のパブリケーションを、別々のイベントとすることができる。さらに、固定された地理的区域(例えば、ニューヨーク及びカリフォルニア)での映画の「早期封切り」のパブリケーションが、同一パブリッシャによるものであれ異なるパブリッシャによるものであれ、同一のコンテンツオブジェクト(映画)のより後の全世界のパブリケーションと区別可能な、別々のイベントを構成することもできる。
[88]したがって、これらのデータ構造は、コンテンツオブジェクトのパッケージのグループの位置の追跡を援助するが、その存在は、1つ以上のコンテンツオブジェクトを公開することを含むイベントに基づく。一実施形態では、複数のコンテンツオブジェクトを単一のイベントで公開することができるが、もう1つの実施形態では、各コンテンツオブジェクトのパブリケーションが別々のイベントを構成することができることに留意されたい。
[89]さらに、これらのデータ構造自体を、これらのデータ構造の全体が必ずしも任意の単一の位置に存在する必要がないという点で、「分散させる」ことができることに留意されたい。これらのデータ構造は、例えば、個々のクラスタ内に「サブセット版」が存在するように階層化することができる。スーパークラスタは、そのスーパークラスタ内に含まれる追加クラスタを含む追加エントリを有する「スーパーセット版」を含むことができる。これらのデータ構造は、「隣接する」VODピアだけを含むエントリを含むように、より従来に近い方法で分散させることもでき、これは、エントリのより大きいセット(例えば、クラスタ全体を含む)を入手するための要求を伝えることが必要である。
[90]第1の主要なデータ構造であるトラッキングファイルは、特定のクラスタ内で公開されたコンテンツオブジェクトのパッケージのグループの位置を追跡するのに使用される。一実施形態で、各「葉」クラスタ(すなわち、さらにサブクラスタに分割されることのないクラスタ)内の別々のトラッキングファイルは、コンテンツオブジェクトがそのクラスタ内で公開されるイベントのそれぞれを追跡する。上で注記したように、スーパーセットクラスタは、その「サブクラスタ」のそれぞれのエントリを含む「スーパーセット」トラッキングファイルを含むことができる。
[91]1つのクラスタの中であっても、トラッキングファイルをさらに「分散させる」ことができる。言い換えると、トラッキングファイルは、コンテンツオブジェクトがそのクラスタ内で公開されるイベントのそれぞれのエントリを含むことができるが、下でさらに述べるように、あるVODピアにあるトラッキングファイルのコピーが、その代わりに、そのVODピアが含まれたイベントのエントリだけを含むことができる。
[92]どの場合でも、トラッキングファイルは、コンテンツオブジェクトのパッケージのグループを、パッケージのその特定のグループのコピーが格納されているVODピア(例えば、これらのVODピアのIPアドレス)に相互に関連させる。例えば、上で注記したように、映画などのコンテンツオブジェクトを、平均してそれぞれ約30秒の変化するサイズの1000個の異なるパッケージに分割することができ、この映画の早期の部分は、相対的により小さい、おそらくは10秒だけのパッケージを含み、他のパッケージは、2分もの大きさとすることができる。トラッキングファイルは、そのコンテンツオブジェクトの最初の6つのパッケージのグループのエントリを含むことができ、このグループは、クラスタ内の8つの異なるVODピアに相互に関連するものとすることができ、これらのVODピアのそれぞれは、一緒にその映画の最初の分を表す6つのパッケージのグループのコピーを含む(コンテンツオブジェクトの人気に応じて、冗長性並びに高いQoSのために)。
[93]追加のエントリが、そのコンテンツオブジェクトのパッケージの残りのグループ及びおそらくはそのクラスタ内で公開された他のコンテンツオブジェクトのパッケージのグループを説明することができる。例えば、下でより詳細に述べるように、イベントが、コンテンツオブジェクトのパブリケーションをもたらす時に、ある「マスタ」VODピアが、そのコンテンツオブジェクトのパッケージのグループの伝搬を管理するために選択される。これらの「マスタ」VODピア(そのコンテンツオブジェクトのパッケージのグループのいずれかを格納してもしなくてもよい)に加えて、他のVODピアが、そのコンテンツオブジェクトのパッケージのあるグループを格納するために選択される。
[94]一実施形態で、そのコンテンツオブジェクトのパブリケーションに用いられるVODピア(例えば、「マスタ」VODピア並びにそのコンテンツオブジェクトのパッケージのグループを格納するVODピア)のそれぞれは、そのコンテンツオブジェクトのパッケージの各グループを、パッケージのそのグループが格納されているそのクラスタ内のすべてのVODピアに相互に関連させるエントリを有するトラッキングファイルを有する。これによって、そのトラッキングファイルのコピーのどれであっても、要求のさらなる伝搬を伴わずにそのコンテンツオブジェクト全体を突き止めるのに使用できるようになる。
[95]一実施形態で、トラッキングファイルは、1つ以上の「マスタ」VODピア自体がコンテンツオブジェクトのパッケージのグループを格納するか否かにかかわりなく、その1つ以上の「マスタ」VODピアを識別する情報をも含む。他の実施形態では、上で注記したように、トラッキングファイルを、さらに「分散させる」ことができる(例えば、パッケージの関連するグループを格納する「隣接する」VODピアだけのエントリを含めるために、コンテンツオブジェクトのパッケージのグループのすべてを格納するVODピアを突き止める要求のさらなる伝搬が必要になる)。
[96]あるVODピアが、別のイベント(例えば、ネットワークに公開される異なるコンテンツオブジェクトのパッケージのグループの格納)にも用いられる場合に、別々のトラッキングファイルを、上で説明したように生成することができる。もう1つの実施形態では、その別のコンテンツオブジェクトのパッケージのグループに関する追加エントリを有する、同一のトラッキングファイルを利用することができる。どの場合でも、下でより詳細に述べるように、イベントにまたがって(例えば、2つの異なるコンテンツオブジェクトにまたがって)パッケージのグループを識別する、ある手段が設けられるはずである。
[97]一実施形態では、特定のコンテンツオブジェクトのパッケージのグループの効率的なルックアップを容易にするために、暗号ハッシュアルゴリズムが使用される。コンテンツオブジェクトの各パッケージは、比較的少ないメモリ(例えば、ファイルポインタ、ハンドルなどのための)を利用する小さいブロック内でパッケージを検証できるようにする(例えば、ターゲットVODピアに複製されるか配信される時に)ために、共通のハッシュ値を割り当てられる。このハッシュベースのデータ構造は、
(i)コンテンツオブジェクトの全パッケージの総データサイズ、コンテンツオブジェクトが分割されたパッケージの個数、及びパッケージへの分割の前のオリジナルのコンテンツオブジェクトデータストリームへのオフセットを含むヘッダと、
(ii)各パッケージの共通のハッシュ値の検証を可能にする、各パッケージの内部ハッシュツリーのルートハッシュ値を含むパッケージ間ハッシュテーブルツリーと、
(iii)そのようなパッケージが格納されるデータへのオフセットのルックアップを可能にする、パッケージ内ハッシュツリーテーブルと、
(iv)データ自体(すなわち、各パッケージの内容)
とを含む。このデータ保全性検査インフラストラクチャを公開鍵インフラストラクチャと組み合わせることによって、経時的な粒度を伴って所望のVODピアへのパッケージの複製及び配信に関するコンテンツオブジェクト妥当性を制御する(例えば、許可し、又は取り消す)ことが可能になる。
[98]したがって、トラッキングファイルは、コンテンツオブジェクトが公開され、各クラスタ内の選択されたVODピアにプッシュされる時に、生成され、変更される。しかし、コンテンツオブジェクトをオンデマンドで要求するVODピアにこれらのパッケージを取り出すかプルするのにこれらのトラッキングファイルを利用するためには、まず、これらのトラッキングファイルを突き止めなければならない。
[99]一実施形態で、トラッキングインデックスは、関連するトラッキングファイルを突き止める代替手段を容易にするために、トラッキングファイルが作成される時に生成され、更新される。したがって、下でより詳細に述べるように、特定のコンテンツオブジェクトに関するオンデマンド要求は、検索をもたらすことができ、この検索では、関連するトラッキングファイルを直接に突き止めることができるかトラッキングインデックスを介して間接的に突き止めることができる。通常、そのような検索は、トラッキングインデックスが突き止められるまで「上に」(すなわち、より高い信頼レベルを有するVODピアに)伝搬し、このトラッキングインデックスは、関連するトラッキングファイルのコピーを有するさまざまな「候補」VODピアを識別する。次に、要求が、そのような候補VODピアのうちで十分に「近い」VODピアが突き止められるまで「下に」伝搬し、その後には、パッケージのグループを突き止め、要求元VODピアに配信することができる。
[100]したがって、トラッキングインデックスは、イベントを、そのイベントに関して公開されたコンテンツオブジェクトに関連するトラッキングファイルのコピーを有するVODピアの位置に相互に関連させる。一実施形態で、トラッキングインデックス自体は、階層化されたファイルであり、より多数のエントリが、より高い信頼レベルを有するVODピア(例えば、スーパークラスタを包含するVODピア)に存在する。
[101]トラッキングインデックスの各エントリは、「コンテンツ参照ID」すなわち「CRID」を含む。CRIDは、それに従って1つ以上のコンテンツオブジェクトが公開された関連するイベントを一意に識別する(及び/又は関連するコンテンツオブジェクト若しくはその構成要素を区別する)ように働く。一実施形態で、各イベントのエントリは、トラッキングインデックスの複数の行を占めることができる。
[102]例えば、各エントリの第1行には、「コアCRID」(下で述べる)を含めることができる。コアCRIDは、コンテンツオブジェクトの特定の版(例えば、Disneyによって公開された映画「Aladdin」)を、特定の「葉」クラスタ内の各VODピア(又は、一実施形態では、各「マスタ」VODピアのみ)のIPアドレスに相互に関連させる。特定の「葉」クラスタは、そのコンテンツオブジェクトに関連するトラッキングファイルのコピーを格納する。後続行には、同一のコアCRIDと、別の「葉」クラスタ内の類似するVODピアのIPアドレスが含まれるはずである。
[103]したがって、スーパークラスタを含むより高い信頼レベルのVODピアは、トラッキングインデックスを格納することができる。トラッキングインデックスは、イベントがそこで公開された各サブクラスタに相互に関連する複数の行を有する。関連するトラッキングファイルのコピーを格納するVODピアを識別するこれらのコアCRID行に加えて、追加の行が、コアCRID自体の構成要素と共に、これから下で説明するCRIDの他の構成要素を含むはずである。
[104]一実施形態で、コアCRIDは、一緒にコンテンツオブジェクトの版を一意に識別する2つのフィールドからなる。第1のフィールドは、イベントに関連するパブリッシャを一意に識別する「パブリッシャID」である。第2のフィールドは、そのパブリッシャについて、公開されるコンテンツオブジェクトを一意に識別する「イベントセレクタ」である。例えば、Disneyが、ネットワーク上で映画「Aladdin」を公開する場合に、イベントセレクタは、Aladdinのその版を一意に識別するはずである。このレベルの粒度は、例えば、ユーザがオンデマンドで表示されるコンテンツオブジェクトを選択できるレベルに相互に関連するものとすることができる。
[105]しかし、CRIDの他の構成要素は、そのコンテンツオブジェクトがそれに従って公開されたイベントをさらに識別するように働く。例えば、DisneyのAladdinの「予告編」を見ることを望むユーザに対処するために、他のフィールドが、同一のコアCRIDを共通して共有しながらも、映画を予告編から区別することができる。実施形態に応じて、映画及び予告編のパブリケーションは、単一のイベント又は複数の別々のイベントを構成することができる。
[106]一実施形態で、CRIDは、コアCRIDに加えて、イベントをさらに記述する3つの他の「記述子」を含む。第1の記述子は、パブリケーションがそこから発する区域を識別する「パブリケーションゾーン」フィールド(例えば、都市又は郵便番号)並びにコンテンツオブジェクトを公開できる場所を示す「パブリケーション権利」フィールドを含む「主記述子」(例えば、郵便番号の範囲)である。このパブリケーション権利フィールドは、もちろん、不連続な区域(例えば、ロサンゼルス及びニューヨーク)を包含する複数のエントリを含むことができる。
[107]第2の記述子は、特定のイベントの人気を予測する(例えば、公開されたコンテンツオブジェクトのより多くのコピーを一部又はすべてのクラスタにプッシュすることによって)システムの能力を容易にする、パブリッシャに関する情報を提供する「パブリッシャ記述子」である。パブリッシャ記述子は、例えばより小さくより人気の低いパブリッシャからDisneyを区別できる「パブリッシャ優先順位」フィールドと、そのパブリッシャによって公開されたコンテンツを全般的に分類することを試みる(例えば、プライベートコンテンツ、生放送、コマーシャル映画、ポルノグラフィなど)「パブリッシャカテゴリ」フィールドとを含む。
[108]最後に、「終了記述子」は、関連するコンテンツオブジェクトを含むイベントを区別し、補足情報を提供するように働く単一のフィールドを含む。例えば、このフィールドの値は、映画(「00」)をそのメタデータ(「01」、題名、カテゴリ、封切り日などの映画に関する情報を含むテキスト並びにテキスト形式、グラフィック形式、ビデオ形式、又は他の形式の他の関連情報に関する)、又は「追加資産」(「02」、予告編、ストーリーボード、監督の注釈などに関する)から区別することができる。
[109]実施形態に応じて、これらの関連する資産を、単一のコンテンツオブジェクトの一部又は別々のコンテンツオブジェクトと考えることができ、これらの関連する資産を、単一のイベントとして又は別々のイベントとして公開することができる。したがって、CRIDは、別々の関連するイベントを区別するように、或いは単純に関連するコンテンツオブジェクト(若しくはその構成要素)を異なるレベルの粒度で識別するように働くことができる。
[110]一実施形態で、トラッキングインデックスは、相対的に高い信頼レベルの(例えば、スーパークラスタに関連する)VODピアのみによって維持される。下でより詳細に説明するように、コンテンツオブジェクトが公開される時に、そのイベントは、トラッキングインデックス(そのイベント及び他のイベントに関する)を維持する十分に非常に信頼性の高いVODピアへの「上への」並びにそのトラッキングインデックスのコピーをやはり維持する他の同様に非常に信頼性の高い(例えば、他のスーパークラスタを管理する)VODピアへの「横への」要求の伝搬を起動する。
[111]上で注記したように、このトラッキングインデックスは、他のより信頼性の低い(例えば、「より低いレベルの」スーパークラスタを管理する)VODピアも、より少数のエントリ(そのサブクラスタだけを反映する)を有する、そのトラッキングインデックスのコピーを維持することができるという点で、階層化することができる。さらに、このトラッキングインデックスは、そのサブクラスタ内で公開されたコンテンツオブジェクトに関するエントリだけ及びおそらくは関連するトラッキングファイルを有する「隣接する」VODピアのIPアドレスだけを含むことができるという点で、さらに「分散させる」こともできる。
[112]例えば、トラッキングインデックス及びトラッキングファイルの検索(例えば、VODピアがコンテンツオブジェクトを表示するためにオンデマンド要求を行う時)を含むさまざまな機能に関するネットワーク通信を容易にするために、ビットストリング「Identities(アイデンティティ)」が、ネットワーク上のノード(例えば、VODピア、パブリケーションノード、又はVODサポートサーバのIPアドレス)並びにコンテンツオブジェクトを識別するのに使用される。例えば、関連するトラッキングファイルを有するさまざまなVODピアへの参照を用いてトラッキングインデックスを突き止める時に、十分に「近い」トラッキングファイルを突き止めることが、さらに望ましい(また、時々、十分に高いQoSを維持するために必要である)。或いは、パッケージのグループが、「遠」すぎるVODピアから入手され、指定されたQoSを維持するのに十分にタイムリーな形で受信されない可能性がある。
[113]例えば、2つのVODピアノードの間でこれらのビットストリングIdentitiesを利用することによって、この2つのVODピアの間で期待できるQoSを本質的に表す仮想インターネット距離関数を計算することができる。一実施形態で、Identitiesは、第1の例で、IPアドレス及び標準的なIPロケーションサービスから入手される地理的情報と共に、既知のインターネットインフラストラクチャ情報に基づいて割り当てることができる。
[114]2つのVODピアの間のインターネット距離を計算するために、まずそれらのVODピアのIdentitiesのXORをとり、その結果を2進数と解釈することができる。次に、この数を、クラスタID、信頼値、及び下でより詳細に述べる他の統計結果などのネットワークトラフィックの動的監視から以前に判定された情報に基づいて、調整することができる。結果のインターネット距離は、比較的迅速に計算することができるが、このより大きいリストから(例えば、トラッキングインデックスから)候補VODピアを選択し、適当な要求(例えば、要求されたコンテンツオブジェクトのパッケージのグループを突き止めるのに使用されるトラッキングファイルに関する)を伝搬させるのに使用することができる。
C.コンテンツオブジェクトのパブリケーション及びプッシュ
[115]上で注記したように、コンテンツオブジェクトは、VODピアのネットワーク上に存在できる前に、まず、図2のパブリケーションサーバ16などの公開するノードによって公開されなければならない。各公開するサーバは、VODピアに存在する分散クラスタコントローラと共にパブリケーションプロセスを実施するVODパブリッシングソフトウェアを含む。上で注記したように、このプロセスは、公開されるコンテンツオブジェクトの、パッケージのグループへの分割と、パッケージのこれらのグループのある個数のコピーの、ネットワーク全体を通じたさまざまなVODピアへの伝搬(関連するトラッキングファイル及びトラッキングインデックスの生成及び更新と共に)とをもたらす。
[116]公開するサーバが、ネットワーク内のどこにでも存在することができる(例えば、そのパブリケーションゾーンをコロラド州内とすることができる)ため、コンテンツオブジェクトが公開される区域の「近く」にはない場合がある(例えば、公開権利がニューヨーク及びロサンゼルスを含む場合がある)ことに留意されたい。一実施形態で、パブリケーションサーバは、まず、CRID(上で説明した)を生成する。CRIDは、主記述子、パブリッシャ記述子、及び終了記述子を含む、パブリッシャ及び公開されるコンテンツオブジェクトに関する関連情報を含む。
[117]次に、パブリケーションサーバは、パブリケーション権利に含まれる区域(例えば、ニューヨーク及びロサンゼルス)に相対的に「近い」(例えば、インターネット距離において)「パブリケーションアナウンサ」を見つけようとする。最初のパブリケーションアナウンサは、イベント(CRIDの転送を含む)を他のパブリケーションアナウンサに「アナウンスする」。他のパブリケーションアナウンサは、所定の「マスタ」VODピアを選択してパブリケーションプロセスを管理するようにし、公開されるコンテンツオブジェクトのパッケージのコピーを選択されたVODピアに最終的に分散させるようにする。
[118]例えば、パブリケーションサーバは、デフォルトで、少数のVODサポートサーバを知っており、これらのうちの1つに連絡することができる。このVODサポートサーバは、この「アナウンスメント」(CRIDを含む)を、ニューヨークにある既知の相対的に非常に信頼性の高いVODピアに転送することができる。そのニューヨークベースのVODピア(初期パブリケーションアナウンサ)は、そのアナウンスメントをロサンゼルスにある既知の同様に非常に信頼性の高いVODピア(副パブリケーションアナウンサ)に転送することができる。
[119]パブリケーションアナウンサ(この例では2つ)のそれぞれは、パブリケーションプロセスを管理する1つ以上の「マスタ」VODピア(「パブリケーションマスタ」)を選択する。これらのパブリケーションアナウンサのそれぞれのクラスタコントローラは、既に所定の一般的なネットワークトラフィック情報(例えば、ネットワーク「負荷」)並びに潜在的な候補VODピアに関する情報(例えば、そのクラスタID、信頼レベルなど)を有する場合がある。これらの候補VODピアに照会して、追加情報(例えば、コンテンツオブジェクトのパッケージのグループを格納するのに使用できる「空き」ハードディスク空間の量)を入手することもできる。
[120]この情報を利用して、各パブリケーションアナウンサ内のクラスタコントローラは、それぞれ、パブリケーションプロセスを管理する1つ以上のパブリケーションマスタを選択する(また、アナウンスメントを転送する)。通常、これらのパブリケーションマスタは、相対的に高い信頼レベル(例えば、16個のレベルのうちのレベル4)を有するが、信頼レベルは、クラスタによって変化する場合がある。例えば、そのめいめいのクラスタの推定されたサイズの相違に起因して、いくつかのパブリケーションマスタが信頼レベル3を有するが、他のパブリケーションマスタが信頼レベル4を有する場合がある。そのような情報は、類似する高い信頼レベルを有する既知のVODピアの個数並びに固有に既知のインターネットインフラストラクチャ情報(例えば、すべてのVODピアに既知の)に基づいてパブリケーションアナウンサによって推定することができる。
[121]各パブリケーションマスタは、CRIDを受信した時に、その特定のドメイン(例えば、クラスタ、サブクラスタなど)内のパブリケーションを管理する責任を負う。当初に、各パブリケーションマスタは、CRIDから入手可能なさまざまな情報並びに経時的なネットワークトラフィックの動的監視から以前に入手された情報に基づいて、公開されるコンテンツオブジェクトの人気を「予測する」。例えば、ある挙動の仮定(例えば、類似する題名及びカテゴリに関するこのクラスタ内の以前の要求並びに累積的要求に基づく)を、所定の事実に基づく情報(例えば、パブリッシャ、コンテンツオブジェクトが公開された日付、並びにCRIDから入手可能な他の情報に基づく)と同様に、要因とすることができる。
[122]この「予測された」人気に基づいて、各パブリケーションマスタ内のクラスタコントローラは、「関心要求」をパブリケーションサーバに(或いは、もう1つの実施形態では、パブリケーションアナウンサを介してパブリケーションサーバに間接的に)通信する。これらのさまざまな関心要求を蓄積した時に、パブリケーションサーバは、公開されるコンテンツオブジェクトを分割しなければならないパッケージの適当なサイズ及び個数を判定する。
[123]一実施形態で、パブリケーションマスタは、パブリケーションプロセスの残りの間にパッケージのグループが分散される時にそれらのグループを最終的に格納するVODピアの位置を追跡するトラッキングファイルを作成する。さらに、これらのパブリケーションマスタは、CRIDをそのCRIDに関連するトラッキングファイルのコピーを格納するVODピアに相互に関連させるトラッキングインデックスをも作成する。
[124]一実施形態で、各パブリケーションマスタは、「コレクション」要求を用いてそのパブリケーションアナウンサに連絡する。それに応答して、パブリケーションアナウンサは、互いと通信し、パブリケーションサーバと連絡してさらなる分散のためにトラッキングインデックス並びにコンテンツオブジェクトのパッケージを「集める」「コレクタ」を指定する。次に、コレクタが、トラッキングインデックス及びパッケージを他のパブリケーションアナウンサに分散させる。このプロセスは、通常、パブリケーションアナウンサの数が少ないことに起因して、最適化をほとんど必要としないが、ネットワークトラフィックを最小にするために必要な場合には、分散技法を使用することができる。
[125]パブリケーションアナウンサは、そのパブリケーションマスタのために、パッケージの最初のグループ(すなわち、単一VODピア上のグループとしての格納のため)を判定し、パッケージのこれらのグループをパブリケーションマスタに分配する。例えば、一実施形態では、パッケージの4つのグループだけが、通常のクラスタ内で十分なQoSを実現するために必要である場合がある。このグループ化は、もちろん、特定のクラスタ内のクラスタコントローラによって経時的に動的に調整することができる。例えば、所与のコンテンツオブジェクトの人気が経時的に下がる(例えば、追跡されたオンデマンド要求パターンに基づいて)場合に、パッケージのグループを組み合わせることができ、コピーを減らす(例えば、経時的に他のコンテンツオブジェクトのパッケージのグループによって上書きする)ことができる。同様に、人気が高まる場合に、パッケージのグループをさらに分割することができ、より多くのコピーを生成し、分散させることができる。
[126]各パブリケーションマスタは、その判定された関心のレベルに基づいて、パッケージのそのグループのコピーを他のVODピア(通常は同一の又はより低い信頼レベルの)へ「下に」プッシュする(さらに伝搬させる)。さらに、パブリケーションマスタは、CRIDをパッケージのこのグループのコピーを格納するために選択されるVODピアに相互に関連させるトラッキングファイルを生成及び/又は更新する。
[127]このプッシュプロセスの残りを、比較的集中化することができるが、効率的な通信を容易にするために必要なだけ分散させることができることに留意されたい。例えば、各パブリケーションマスタ内のクラスタコントローラは、分散されるパッケージのそのグループのコピーの個数を、その以前に判定された関心要求並びに他の情報(例えば、パッケージのグループがコンテンツオブジェクトの「早期に」発生する場合にはより多くのコピー)に基づいて判定することができる。パブリケーションマスタは、VODピアに直接に連絡して、どのVODピアがパッケージのグループを格納するための余分の容量を有するかを判定し、その後、パッケージのそのグループを、更新されたトラッキングファイルと共にそのようなVODピアのそれぞれに直接に転送することができる。或いは、もう1つの実施形態で、パブリケーションマスタは、標準的な分散伝搬技法を使用して(パッケージのグループの配信とおそらくはトラッキングファイルとの両方に)、それぞれがその「隣接」VODピアと通信する選択された少数の「隣接」VODピアだけと通信することができる。
[128]しかし、最終的に、パッケージの各グループの1つ以上のコピーが、各「葉」クラスタ(パブリケーション権利によって定義される区域内の)内のVODピア全体を通じて分散される(プッシュされる)。さらに、トラッキングファイル(クラスタごとにその全体が複製されるか、分散された形で階層化される)が、一実施形態では各パブリケーションマスタ上に並びに公開されたコンテンツオブジェクトのパッケージの1つ以上のグループを格納する各VODピア上に格納される。トラッキングインデックスは、パブリケーションアナウンサ上で維持され、おそらくはパブリケーションマスタ上でも維持される。
[129]パブリケーションノードは、パブリケーションプロセスが完了したならば、オフにすることができる。一実施形態で、24時間が、最初のパブリケーションについて許容されるが、通常のイベントは、20分だけを必要とする可能性がある。
[130]パブリケーションイベントに関連する情報(例えば、CRID内に含まれるメタデータ)も、ネットワーク全体を通じて分散させることができ、例えば公開されたコンテンツオブジェクトの可用性を反映するために各VODピアがそのユーザインターフェースを更新することを可能にする。標準的な分散伝搬技法を使用することができる。しかし、実施形態に応じて、異なる情報を異なるVODピアから使用可能にすることができる。
[131]例えば、パブリケーション権利によって定義される区域の外のVODピアは、イベントを知らされないものとすることができる(そのようなVODピアのユーザが、そのようなコンテンツオブジェクトにアクセスする権利を有しないので)。もう1つの実施形態で、それらのVODピアは、おそらくはコンテンツオブジェクトに対する権利を獲得する機構(例えば、「ペイパービュー」)を用いて、そのユーザインターフェース内でその事実を知らされるものとすることができる。
[132]他のVODピアが、十分な権利を有するが、プッシュされるコンテンツオブジェクトを、相対的に高いQoSを維持しながら受信するのに十分にそのコンテンツオブジェクトに「近く」ない場合がある。その事実を、ユーザインターフェース内で(例えば、テキスト、色、又は他のビジュアル、若しくは他の識別子を使用して)反映することもできる。例えば、ほとんど即時に入手可能なコンテンツオブジェクト(T0 例えば、ユーザの要求から1/2秒から12秒までの範囲の、平均してわずかな秒数以内)を、「緑」でカラーコーディングすることができる。パッケージのそのグループを格納するVODピアに十分に「近い」インターネット距離内にあるのではない他のコンテンツオブジェクトは、それほどたやすく入手可能ではない場合があり(T1 1分以上、例えば30秒から5分の範囲内にわたって開始されない場合がある)、「黄色」でカラーコーディングすることができる。さらに別のコンテンツオブジェクトは、要求された時にネットワーク上で使用可能ですらない場合がある(T2)が、そのメタデータを検索目的に使用可能にすることができ、おそらくは「赤」でカラーコーディングされる。そのような要求は、要求するユーザのVODピアに配信され、そこで格納される前に24時間もの遅延をもたらす「プリオーダー」を起動することができる。
[133]宣伝など、他の補助的なタイプのコンテンツオブジェクトをも、類似する形でVODピアにプッシュできることに留意されたい。そのような宣伝(テキスト形式、グラフィック形式、ビデオ形式、又は他の形式の)を、変化する度合の粒度でコンテンツオブジェクトに関係付けることができる。例えば、宣伝を、個々のコンテンツオブジェクトに関係付けることができ、或いはコンテンツオブジェクトの特定のカテゴリ(例えば、Gレーティングの映画)にターゲティングすることができる。或いは、特定の地理的区域にさえターゲッティングすることができる。一実施形態で、そのようなターゲティング情報を、CRID内に含まれる情報(例えば、トラッキングインデックス内)と「照合する」ことができる。関連する宣伝は、そのようなターゲティングされたコンテンツオブジェクトを要求するVODピアに(或いは、もう1つの実施形態では、例えば周知の協力的フィルタリング技法を使用して、類似する又は「関係付けられた」コンテンツオブジェクトを要求するVODピアに)配信される。
D.コンテンツオブジェクトのプル
[134]さまざまなコンテンツオブジェクトをネットワーク全体のクラスタ内のVODピアにプッシュし、関連するVODピアのユーザインターフェースを更新した後に、すべてのユーザが、そのVODピアのユーザインターフェースを介してコンテンツオブジェクトをオンデマンドで選択することができる。図4に、VODピアの通常のクラスタ450の実施形態を示す。この実施形態では、コンテンツオブジェクトが公開され、そのコンテンツオブジェクトの20個のパッケージの4つのグループが選択されたVODピアに動的にプッシュされ、これらのグループをその後にクラスタ内の任意のVODピアによって高いQoSを維持しながらオンデマンドで見るためにプッシュできるようになっている。
[135]VODピア460など、クラスタ450内のVODピアの多くは、もちろん、そのコンテンツオブジェクトのパッケージのグループのいずれをも格納していない。VODピア470などの他のVODピアは、公開されたコンテンツオブジェクトの最初の4つのパッケージ1〜4(例えば、最初の分)を含む最初のグループ「A」410のコピーを格納している。同様に、他のVODピアは、交番する形でコンテンツオブジェクトの次の12個の多少より大きいパッケージ5〜16を含むグループ「B」420及び/又はグループ「C」430のコピーを格納している(この交番する形は、上で注記したように、連続するパッケージを複数のVODピアから並列にプルできるので、より高帯域幅の取出を可能にする)。
[136]VODピアが、同一のコンテンツオブジェクトのパッケージの複数のグループを格納することができるが、パッケージをグループ化することの利益の1つが、より高速の(並列)取出のために複数のVODピアにまたがってそれらを分散させることが可能になることであることに留意されたい。したがって、クラスタ450内の他のVODピアは、残りの4つのより大きいパッケージ17〜20を含む最後のグループ「D」440のコピーを格納する可能性が高い。
[137]上で注記したように、グループ「A」410のパッケージ1〜4など、コンテンツオブジェクトのより早期のパッケージのサイズは、通常、より後のパッケージより小さい。これは、これらのパッケージをより迅速にプルすることの重要性(例えば、映画を即座に開始するため)に起因している。一実施形態で、これらの最初のパッケージのより多数のコピーも格納され、より高速のアクセス時間並びにより高い冗長性をもたらす。映画が再生され始め、パッケージがバッファリングされていると、要求されたコンテンツオブジェクトの後続パッケージの取り出し(プル)に、より長い時間が使用可能である。したがって、相対的により長い取出時間が許容される。
[138]やはり上で注記したように、コンテンツオブジェクトのパッケージの適当なサイズ指定及びグループ化並びに特定のクラスタ内のVODピア全体を通じて格納されるそのようなパッケージのコピーの個数は、さまざまな情報に基づく。この情報は、CRIDからの静的情報並びにネットワークトラフィックを監視すること及び要求パターンを経時的に追跡することによって入手される動的情報を含む。そのような情報は、コンテンツオブジェクト(全般並びに特定のクラスタ内)の予測された人気並びに現在のネットワーク輻輳、相対アクセス時間、及び他の関連するネットワークトラフィック統計を反映するものとすることができる。
[139]要求元VODピア475が、おそらくはコンテンツオブジェクトの最初の部分を再生しながら、現在バッファリングされているグループ「A」410及び「B」420を有し、グループ「C」430及び「D」440を待っているものとして図示されている。VODピア475内のクラスタコントローラ(又は、プルプロセス内で援助するパブリケーションマスタ)が、例えば、グループ「C」430が遅延され、間に合って到着することができない(例えば、グループ「B」420のパッケージ5の再生が始まる前に)ことを検出する場合には、代替配置が必要になる可能性がある。
[140]一実施形態では、複数の要求が、ちょうどそのような場合に冗長性を提供するためにパッケージのグループごとに行われる。もう1つの実施形態では、問題が検出されたならば、パッケージの所望のグループの他のコピーを格納する代替VODピアへの要求を行うことができる。もう1つの実施形態では、問題が、そのような代替VODピアからの配信を可能にするのに十分な時間のうちに検出されない場合に、「緊急」要求を、より高い信頼レベルのVODピアに対して行うことができ、その後、別のクラスタからの代替VODピアが、その要求をより迅速に満足できる場合(例えば、より非常に信頼性の高いVODピアのより迅速な応答時間に起因する)がある。
[141]ここで、プルプロセス自体に用いられるステップに移ると、VODピアのユーザは、ユーザインターフェースを介して、オンデマンドで使用可能なコンテンツオブジェクトのリストから、取出のために特定のコンテンツオブジェクトを選択することができる。要求元のVODピアは、一実施形態で、まずハッシュ値の一致について、その要求されたコンテンツオブジェクトに関連するCRIDをそれ自体のトラッキングファイルに対して検査することによって、そのようなコンテンツオブジェクトに関する要求を開始する。不成功の場合には(通常は不成功である)、要求(CRIDを含む)が、既知の「隣接」VODピアに伝搬され、次に、次に高い信頼レベルを有するVODピアに「上に」伝搬され、最終的に、すべての公開されたCRIDに関する一致を有するトラッキングインデックスを確かに有する(一実施形態で)「高レベル」(例えば、16個の信頼レベルのうちの信頼レベル2)VODピアに伝搬される。
[142]この要求が、そのようなVODピアに伝搬される際に、この要求が、CRIDによって識別されるコンテンツオブジェクトのパッケージの1つ以上のグループを格納しているVODピアによってたまたま受信される場合において、そのCRIDが、トラッキングファイル内のハッシュ値と一致するときがある。その「幸運な」情況では、トラッキングファイルは、1つ以上のパブリケーションマスタを識別し、このパブリケーションマスタが、一実施形態で、より効率的なプルプロセスに利用される。
[143]より一般的な場合に、要求は、パブリケーションマスタ(「ハッシュ」一致を有する関連するトラッキングファイルのコピーをも有する)又は一致するCRIDに基づいて1つ以上のパブリケーションマスタを識別するトラッキングインデックスのコピーを有するVODピアのいずれかに達するまで、「上に」伝搬し続ける。所望のコンテンツオブジェクトが、要求元VODピアと同一のクラスタ内に存在しない場合には「ボトムアップ」検索とそれに続く「トップダウン」検索とが、「最も近い」トラッキングファイルを突き止めるために必要になる場合がある。十分に高い信頼レベルに達する場合のみにおいて、トラッキングインデックス又はトラッキングファイルが見つかる(「ボトムアップ」)。その点で、トラッキングファイルの階層化された性質は、要求元VODピアに「相対的に近い」(同一クラスタ内ではないが)VODピアを識別するトラッキングファイルを突き止めるための「トップダウン」検索を必要とする場合がある。
[144]どの場合でも、この実施形態では、1つ以上のパブリケーションマスタが、最終的に識別され、「最も近い」パブリケーションマスタが、例えばさまざまな候補に関してインターネット距離関数を利用することによって、判定される。もう1つの実施形態では、すべてのパブリケーションマスタが、少なくともコンテンツオブジェクトの最初の部分(例えば、最初の15秒)を表すパッケージのグループを格納し、このグループが、比較的即時の初期再生を可能にするために取り出される(パッケージの後続グループを散り出す追加の時間を与える)。
[145]「最も近い」パブリケーションマスタが判定されたならば、そのクラスタコントローラが、トラッキングファイルを利用して、そのトラッキングファイルによって識別される関連するVODピアへの、パッケージのさまざまなグループに関する要求を開始する。そのような要求は、並列に行うことができ、或いは、コンテンツオブジェクトの直線的進行に基づいて優先順位を付けることができる(例えば、パッケージのより早期のグループを最初に要求する)。標準的な分散伝搬技法を使用して、これらの要求を「隣接する」VODピアにオフロードすることができる。
[146]もう1つの実施形態では、トラッキングファイルを識別した、要求元VODピアは、パブリケーションマスタをプロキシとして使用するのではなく、単純に、そのトラッキングファイルのコピーを要求し(おそらくは再生を開始するためにパッケージの最初のグループを受信した後に)、それ自体でパッケージのさまざまなグループを要求することができる。この場合に、要求元VODピアは、トラッキングファイル内で識別されるVODピアに直接にパッケージのさまざまなグループを要求することができ、或いは、「隣接する」VODピアにこれらの要求をオフロードするために分散伝搬技法を利用することができる。
[147]要求元VODピアと同一のクラスタ内のさまざまなVODピア(要求されたコンテンツオブジェクトのパッケージのグループを格納する)へのインターネット距離は、QoS要件を満足するために事前に判定されている(ネットワークトラフィックの以前の動的監視に基づいて)ので、パッケージのグループが、指定されたQoSを維持するのに要求元VODピアに時間内に到着する可能性が非常に高い。要求元VODピアは、その「空き」ストレージ空間を使用して、パッケージのグループをバッファリングし、これらをユーザに表示する。上で注記したように、一実施形態では、所定の量のストレージ容量(例えば、4GB)が、プルプロセスのこのバッファリング/再生態様専用であり、残りの容量(例えば、6GB)は、他の要求元VODピア用のコンテンツオブジェクトのパッケージのグループの共有ストレージに利用される。
[148]問題が「途中で」発生する場合に(例えば、トラッキングファイル内で指定されたVODピアのうちの1つでのソフトウェア又はハードウェアの障害に起因して)、そのような問題は、パブリケーションマスタ(例えば、所定の時間以内に応答を受信しない時、又は遅すぎる応答を受信する時)又は要求元VODピア(例えば、受信されたパッケージの「バッファ」が期待される閾値未満に減る時)のいずれかによって検出することができる。どちらの場合でも、パブリケーションマスタは、通知され、通常はパッケージのグループの複数のコピーが同一クラスタ内に格納される。そのため、パブリケーションマスタは、1つ以上の他の冗長VODピアへの要求を開始することができる(当然、そのような要求がまだ行われていない場合に)。「緊急」の場合に、パッケージのある指定されたグループのより高速の再ルーティングのために要求を別のクラスタにルーティングするために、相対的に高い信頼レベルを有するVODピア(おそらくは、VODサポートサーバさえ)に連絡することができる。問題が、十分に前に検出されるならば、要求元VODピアが、問題が発生したことを知りさえしない場合がある。
[149]上で注記したように、いくつかの場合には、所望のコンテンツオブジェクトが、即時に入手可能でないだけではなく、ネットワーク上のどこからも入手可能ではない。この事実によれば、ユーザインターフェース内で反映することができる(例えば、検索に対する「見つかりません」結果として)。一実施形態では、コンテンツオブジェクトの自動化された(又は手動の)検索をもたらすことができる「プリオーダー」を要求することという可能なオプションを伴う。ネットワークへのその後続パブリケーションのイベントの際に、要求元ユーザは、所望のコンテンツオブジェクトが使用可能になった後に、通知を受けることができる(要求元VODピアでその全体が、又はそのクラスタ内の他のVODピアにプッシュされてのいずれであれ) 。
E.ネットワークベースのQoS(NQoS)及びネットワークトラフィックの動的監視
[150]経時的に、このプッシュプロセスは、新しいイベントが発生し、コンテンツオブジェクトがネットワークに追加される時に繰り返される。プルプロセスは、ユーザが使用可能コンテンツオブジェクトを表示するオンデマンド要求を開始する時に発生する(おそらくは、はるかにより高い頻度で)。しかし、プッシュプロセスとプルプロセスとの両方の基礎をなしているのは、高い度合の予測性を伴って相対的に高いQoSレベルを維持するために継続的に又は少なくとも周期的な基礎で実行されるネットワークトラフィックの動的監視である。
[151]上でほのめかしたように、オンデマンド要求を行うVODピアが経験するQoSは、多くの面で、事前に決定することができる。ネットワークトラフィックを動的に監視することによって(標準的な分散伝搬技法を使用して分散された基礎で)、隣接するVODピア(例えば、1クラスタ内の)からある所定の時間以内にあるサイズのファイルを受信するVODピアの能力を任意の要求の前に決定できるという点で、QoSをネットワークに効果的に組み込むことができる。
[152]次に、この動的ネットワーク監視の結果を使用して、QoSレベルを高めることができる(例えば、信頼レベルを変更し、コンテンツオブジェクトのパッケージを再展開することによって)。高められるQoSレベルは、1クラスタ内並びにインタークラスタ境界及びスーパークラスタ境界にまたがって(クラスタ及びスーパークラスタのメンバシップを再定義することを含む)の両方である。次に、後続のプルプロセス中(公開するサーバがネットワークに新しいコンテンツオブジェクトを追加する時)並びにプッシュプロセス中(個々のVODピアがコンテンツオブジェクトを表示するオンデマンド要求を行う時)に、この結果のNQoSを知らせ、これに頼ることができる。
[153]VODピアの信頼レベルは、NQoSをネットワーク全体に知らせる1つの方法である。もう1つの方法は、経時的に知られるようになる隣接するVODピア(変化する信頼レベルの)による、また、クラスタIDを介する、VODピアのクラスタメンバシップである。さらに、コンテンツオブジェクトのパッケージが展開される時に(例えば、プッシュプロセス中並びにオンデマンド要求に対する応答での)、VODピアは、さまざまなQoSレベルでの(例えば、比較的即時に、又は1分以上の遅延を伴って)そのようなコンテンツオブジェクトの可用性について知らされる。
[154]各VODピア内のクラスタコントローラは、一実施形態では継続的な基礎で、例えば他のVODピア(そのクラスタの中と外との両方)のクラスタコントローラ並びに標準的な分散伝搬技法を使用して既知のネットワークノード(例えば、周知のISP)と通信することによって、所定の通信は、もちろん、周期的とするか、他のイベントによって起動することができる。
[155]上で注記したように、一実施形態では、VODピアが初期化される(又は、例えばソフトウェア障害若しくはハードウェア障害の後など、再初期化される)時に、特定のクラスタ内でのそのVODピアのメンバシップは、IPアドレス及び標準的なIPロケーションサービスから入手される地理的情報と共に、インターネットの物理インフラストラクチャに関する公に入手可能な情報に基づいて判定される。その点で、VODピアは、少数の相対的に非常に信頼性の高いVODピア(おそらくは1つ以上のVODサポートサーバさえ)並びに類似する「デフォルト」信頼レベルのいくつかの隣接するVODピアについて知らされる。
[156]その時以降、各VODピアのクラスタコントローラは、あるテストを実行して、ネットワークトラフィックパターンの変化を監視し、検出する(例えば、隣接するVODピアの間のパスが、ネットワーク輻輳に起因して又はVODピア及び他のインターネットノードの障害に起因して、経時的により高く又はより低く信頼できるようになる時)。さらに、このクラスタコントローラは、コンテンツオブジェクトのパッケージの展開の変化をも監視し、検出する(例えば、新しいコンテンツオブジェクトがさまざまな位置にプッシュされる時、又はオンデマンド要求が、特定のコンテンツオブジェクト及びそのカテゴリについて行われる時)。
[157]VODピアの間の全般的なネットワークトラフィックフローのそのような変化の結果並びにコンテンツオブジェクトのパッケージの展開を経時的に追跡し、蓄積することによって、クラスタコントローラは、そのような結果を利用して、一実施形態で、上で述べた信頼レベル要因を変更することができる。これらの信頼レベル要因の変更は、さまざまなVODピアの信頼レベルに対する経時的な変更をもたらす。その結果は、クラスタ境界及びスーパークラスタ境界にまたがって波紋のように伝わる。
[158]例えば、1つの一般的なテストを、通常は高いレベルの安定し信頼できる帯域幅を示すはずのインターネットバックボーンルータの近くの周知のサーバへの周期的な「ping」とすることができる。クラスタコントローラは、1時間おきにYahoo又はVODサポートサーバにpingを打つことができる。もう1つのpingテストを、そのクラスタ内の少数の既知の隣接するVODピアに対して、又は「遠隔」クラスタ内のVODピアに対してさえ実行することができる。そのようなpingテストの結果(例えば、長い、短い、及び平均的なping時間並びに時折のping「障害」)を、経時的に蓄積して、信頼性のレベル並びに「ネットワーク負荷」に起因する差(例えば、夕方早くの「プライムタイム」時間中のより長いping時間)を判定することができる。
[159]他のテストでは、さまざまなインターネット距離の位置へのさまざまなサイズの実際のファイル転送を用いることができる。あるサイズのファイルを隣接物のうちの1つ以上に、ある時間間隔内に転送するVODピアの能力は、明らかに重要である。というのは、この能力が、プルプロセスの諸態様に直接に関係するからである。プルプロセスは、そのVODピアがその「共有」ハードディスク空間に格納しようとしているパッケージのグループを含むコンテンツオブジェクトに関するオンデマンド要求に応答して実行する必要がある可能性がある。
[160]次に、これらのテストの結果が、経時的に蓄積される。一実施形態では、高負荷時間中の比較的ローカルなVODピアへの「高速」配信の確率又はVODピアが次の500時間にわたってオンラインのままになる確率など、VODピアの信頼レベル要因を維持するのに使用される。上で注記したように、これらの信頼レベル要因は(例えばイントラクラスタ、スーパークラスタなど、さまざまな地域領域についてパラメータ化された後に)、各VODピアの信頼レベルを判定し、経時的に変更するのに利用される。
[161]一実施形態で、信頼レベルのこれらの変更は、コンテンツオブジェクトのパッケージのグループの再展開をももたらすことができる。例えば、あるVODピアの信頼レベルが、ある閾値未満に下がった場合に、そのVODピアに格納されたパッケージの1つ以上のグループを隣接するVODピアに移動し、関連するトラッキングファイルをそれに従って更新すると決定することができる。
[162]スーパークラスタレベルにおいて、クラスタコントローラは、一実施形態で、そのテストをクラスタ境界及びスーパークラスタ境界にまたがって拡張する。その結果、これらのクラスタコントローラは、あるVODピアをそのクラスタに追加することによって、或いはおそらくは2つのより小さいクラスタを一緒に単一のクラスタに組み合わせることによっても、クラスタのサイズを拡大することができる。これらのクラスタコントローラは、クラスタにまたがってVODピアの信頼レベルをも変更することができ、例えば、クラスタ境界にまたがるファイル転送でより高い信頼性を経時的に示したVODピアの信頼レベルを高める。
[163]ネットワークトラフィックパターンの動的変化を時的に検出するために「包括的」テストを実行すること並びに信頼レベル及びクラスタメンバシップに影響する(及びおそらくはコンテンツオブジェクトのパッケージのグループを再展開する)のにそのようなテストの結果を使用することに加えて、各VODピア内のクラスタコントローラは、コンテンツオブジェクトのパッケージの展開を含む「実際の」ネットワークトラフィックをも監視し、追跡する。例えば、上で注記したように、クラスタコントローラは、新しいコンテンツオブジェクトがネットワークに追加される時に、どのVODピアがパッケージのあるグループ及び関連するトラッキングファイルを格納しなければならないかを判定するために、プッシュプロセス中にこれらの更新された信頼レベル及びクラスタID(並びに「空き」ハードディスク容量)に頼る。オンデマンド要求が行われ、パッケージのグループが要求元VODピアへの配信のためにさまざまなVODピアからプルされる時に、この動的ネットワークトラフィックも監視される。
[164]例えば、異常に多数の要求がある特定のコンテンツオブジェクトについて行われたと判定される場合に、特定のクラスタ内のQoSのレベルを維持するために、そのコンテンツオブジェクトのより多くのコピーが必要になる場合がある。一実施形態で、パブリケーションマスタ内のクラスタコントローラは、そのコンテンツオブジェクトのパッケージのグループの追加コピーをクラスタ内の他のVODピアに格納させ、関連するトラッキングファイルを更新させ、これらのVODピアの間で伝搬させることができる。その結果、より少数のそのような要求に出会う時に、パッケージのグループの既存コピーを、上書き「可能」と指定することができ、それと同時に、既存トラッキングファイルが、それに従って更新される。
[165]より微細な「調整」は、例えば、パッケージの改訂されたグループ化をもたらすこともできる。コンテンツオブジェクトの人気が下がる時に、そのパッケージの複数のグループを、単一のグループに合併することができる。逆に、コンテンツオブジェクトの人気が上がる時に、パッケージのグループを、追加のグループにさらに分割することができる。さらに、あるVODピアが、実質的に「弱いリンク」である(それらが、プルプロセス中に通常のQoSレベルを維持しないという点で)と判定される場合に、上で述べたように、それらのVODピアの信頼レベルを下げ、そこに格納されたパッケージのグループを再展開することができる。
[166]一実施形態で、コンテンツオブジェクトの特定のカテゴリ(例えば、コメディ)の、あるクラスタ内での人気など、累積的情報も、実際のオンデマンド要求の監視から生じるものとすることができる。そのような情報は、例えば、新しいコメディコンテンツオブジェクトのパブリケーションに関連する後続プッシュプロセス中に使用することができる。そのコンテンツオブジェクトのパッケージの、そうでない場合にそうなる可能性がある個数より多くのコピーを、そのクラスタ内でプッシュすることができる。
[167]比較的ローカルな情報でさえ、帯域幅を、したがってQoSを高めるのに使用することができる。例えば、図4に関して上で示したように、パッケージの2つのグループを、複数の隣接するVODピアの間で「インターリーブする」ことができる。したがって、1つおきのパッケージ(例えば、P1、P3、P5)を一方のVODピアに格納することができ、他方のパッケージ(例えば、P2、P4、P6)は、隣接するVODピアに格納される。これは、要求元VODピアへの高められた帯域幅をもたらすことができる。したがって、少なくともその特定のコンテンツオブジェクトに関して、クラスタ内のQoSを効果的に高めることができる。
[168]上で述べたもの以外の、ネットワークノード及びネットワークトラフィックの多数の他の属性を、経時的に動的に監視し、追跡することができる。手動で又は自動化された形のどちらで実施されるものであれ、フィードバックループは、QoSに対するそのような属性の影響に基づいて、そのような属性を微調整することを可能にすることができる。いくつかの場合に、監視活動自体によって強要される追加のネットワークトラフィックが、所定の属性を追跡することによって達成される利益よりまさる場合がある。しかし、経時的に、システムは、ある形のホメオスタシスに達することができる。この状態では、属性の相対的に最適の組が、総合的なNQoSを最大にするために動的に監視され、追跡される。
II.実施態様の詳細
[169]上で述べた主要な概念をどのように実施できるかをよりよく理解するために、本発明のVODシステムでのコンテンツオブジェクトの公開、取出、及びアクセスの監視に用いられる動的プロセスの説明と共に、主なデータ構造を下で説明し、VODピアによって使用される通信プロトコルも説明する。
[170]例えば、すべてのVODピアは、VODピアが、一般に互いを識別し、互いにアクセスし、より具体的には相対的に信頼性の高い隣接するVODピアを識別するためにその相対的な近接及び信頼性を判定することを可能にする、一意の「ノードID」を含む。そのような「信頼される隣接物」は、NQoSを維持しながら、分散された形でコンテンツオブジェクトにアクセスするために頼ることができる。
[171]各VODピアが、ノードIDを介して一意に識別されるのと同様に、各コンテンツオブジェクト、又はより具体的にはコンテンツオブジェクトを公開する各イベントは、「CRID」(コンテンツ参照ID、上で述べた)を介して一意に識別される。CRIDは、そのコンテンツオブジェクトへのアクセスに対する地理的制約及び他の制約と、そのコンテンツオブジェクトを記述し、ユーザがそのコンテンツオブジェクトをブラウズし、検索することを可能にするメタデータと、をパブリッシャが指定できるようにする。
[172]上で注記したように、コンテンツオブジェクトが公開され(すなわち、イベントが発生し)、その構成要素パッケージがVODピアの間で分散される時に、さまざまなトラッキングファイルが、分散された形で生成されて、そのコンテンツオブジェクトを表すCRIDを、そのような構成要素パッケージの特定のグループを格納するVODピアに関連付ける。これらのトラッキングファイルは、例えばユーザのビューイング挙動又はネットワーク特性の変化に起因してコピーが上書きされるか追加コピーが生成される時に、各コンテンツオブジェクトの構成要素パッケージのさまざまなコピーの現在位置を反映するように更新もされる。これらのトラッキングファイルのデータ構造の実施形態を、それに対応するトラッキングインデックスデータ構造と共に下で述べる。
[173]トラッキングファイルが生成され、コンテンツオブジェクトの構成要素パッケージの位置を維持するようにするのと同様に、対応するトラッキングインデックスも生成され、これらのトラッキングファイルのコピーを格納するVODピアの位置を維持する(集中化された形又は分散された形のいずれであれ)。例えば、ユーザが、特定のコンテンツオブジェクトへのアクセスを要求する時に、そのコンテンツオブジェクトを表すCRIDが、要求元VODピアに相対的に近接するVODピアに格納されたトラッキングファイルを検索する(直接に又はトラッキングインデックスを介して間接的にのいずれかで)のに使用される。
[174]これらの主要なデータ構造に加えて、主要な動的ネットワークプロセスがどのように実施されるかを示すために、VODピアが互いの間で通信する形をも述べる。例えば、ネットワーク上でコンテンツオブジェクトを公開するために、所定の通信プロトコルが使用され、ネットワーク全体を通じたさまざまなVODピアの間で、イベントをアナウンスし、次に、構成要素パッケージ並びに対応するトラッキングファイル及びトラッキングインデックスを生成し、分配する(すなわち、プッシュする)。
[175]ユーザが、コンテンツオブジェクトへのアクセスを要求する(例えば、映画を観るために)時に、他のプロトコルが、使用され、そのコンテンツオブジェクトの構成要素パッケージの検索及びダウンロード(すなわち、プル)を行うようにする。プロトコルは、トラッキングインデックス及びトラッキングファイルを検索することと、その後に、コンテンツオブジェクトの「オンデマンド」の比較的即座の継続的なビューイングを可能にするのに十分にタイムリーな形で異なる「フィーダ」VODピアから構成要素パッケージのダウンロードを開始することとを含む。
[176]さらに、これらの通信プロトコルは、システムのアーキテクチャ的構成要素と結合されて、VODピアの間の相対アクセス時間、実際のユーザ挙動(例えば、特定の時間間隔中の1つ以上の地理的区域でのあるコンテンツオブジェクトを見る需要の増加)、及び他のネットワーク特性(例えば、ネットワーク障害)を含む、ネットワークのさまざまな態様を監視することによって、NQoSを維持する。そのような要因を動的に監視することによって、ユーザに、特定のコンテンツオブジェクトへのアクセスを要求する前であっても、システムの状態について通告することができる。
[177]例えば、あるユーザが、コンテンツをブラウズしているか検索している時に、ユーザインターフェースは、一特定のコンテンツオブジェクトが実質的に即時に入手可能であるが、別のコンテンツオブジェクトが一晩のダウンロードを必要とする可能性があるという事実を反映することができる(例えば、めいめいの映画の題名を色付きの「緑」又は「赤」のテキストで表示することによって)。これが可能なのは、現在のシステム状態が、そのような監視の結果として既知であり、分散された形でVODピアの間で通信され得るからである。さらに、別のユーザ(例えば、異なるクラスタ内の)が、異なる表示に出会う場合がある。この表示は、おそらくは両方のコンテンツオブジェクトが即時に入手可能である(例えば、そのようなコンテンツオブジェクトの所定の構成要素パッケージのコピーの相対的近接、又は関連する隣接するVODピアの間のより迅速なネットワーク応答時間、又は上記及び他の要因の組合せに起因して)ことを示す。
[178]これらの通信プロトコルを実施するために、そのうちの多数が複数の異なる通信シナリオに用いられる、メッセージの基本的な組が使用される。例えば、ある基本メッセージは、通信が、コンテンツオブジェクトの公開、所望のコンテンツオブジェクトを見るためのトラッキングファイルの検索、ネットワーク挙動の監視、又はある他の目的のいずれを含む場合であっても、2つのVODピアがさらなるそのような通信を確立するために初期「ハンドシェーク」を実行する時に、必ず使用される。他の「拡張」メッセージは、下でより詳細に述べるように、ある特定の目的に使用される。
A.ノードデータ構造及びコンテンツデータ構造
1.ノードID
[179]図5に移ると、「ノードID」データ構造500の一実施形態が示されている。例示を簡単にするために、値が英数字の形でリストされていることに留意されたい。「位置」505は、連続するデータのバイトを表す。ノードID 501全体自体は、連続するバイトのストリングとして複数の行に示されており、その各構成要素が、後続行で分解されている。もちろん、実際のデータストレージ効率を、標準的な圧縮技法を含む、よりコンパクトな標準形式の表現を使用することによって高めることができる。
[180]ノードID 501は、一意のVODピアを表し、一意識別子並びに他の静的構成要素及び動的構成要素など、そのVODピアのさまざまな属性を含む。ノードID 501のこれらの構成要素は、2つのカテゴリすなわち、変化するとしても頻繁に変化する可能性の低いVODピアの属性を含む「固定」部分510と、ネットワークの状態又はユーザ挙動が経時的に変化する時に動的に変化する可能性があるネットワーク間連続性を含む1組の「記述子」550とに分類することができる。
[181]ノードID 501の固定構成要素510の中に、一意の「ボックスID」512がある。この図示の実施形態では、ボックスID 512は、この物理VODピアハードウェアデバイスを他のすべてのハードウェアデバイスから区別する一意の9バイト識別子である。単一の一意識別子であるほかに、ボックスID 512の構成要素は、さらに、ハードウェアの製造業者、モデル、及びバージョン(図示せず)を識別することができる。さらに、一意であることによって、ボックスID 512は、例えば、他の属性が変化し得る間に、ある属性(ノードID 501の一部でない属性であっても)をこのVODピアに関連付けられたままにすることを可能にすることができる。これは、セキュリティ、ファームウェアアップグレード、モバイル応用例、及びさまざまな他の状況で有用である可能性がある。
[182]もう1つの固定構成要素が、ボックスが配置される「国」514である。一実施形態で、この値は、2バイトフィールドとして図示されているが、例えばボックスが最初に電源を入れられる時に判定される、ボックスが展開される国を表すことができる。この値は、デフォルトでは固定されたままにすることができる(例えば、後続の「電源投入」イベント時に)が、例えば、ボックスが別の位置に移送される場合に、変更可能とすることができる。
[183]もう1つの固定構成要素が、ボックスが配置される「地域」516である。一実施形態で、この地域516は、国514内の一意の地域を表す3バイト識別子である。さまざまな標準組織が、特定の国内の地域識別子の標準規格を開発してきた。例えば、米国内では、個々の州の識別子を使用することができる(国勢調査地域、例えばカリフォルニア、オレゴン、及びワシントンの「Pacific」など、のより大きい地域を使用することもできるが)。他の国は、カナダの州及び準州(例えば、アルバータのAB)など、州以外の異なる指定を有する場合がある。一実施形態で、異なる標準規格が、異なる国にまたがって使用されるが、地域516は国514内に含まれ、市520(下で述べる)は地域516内に含まれる。
[184]もう1つの固定構成要素が、ボックスがそれを介してインターネットアクセスを入手する「ISP」518すなわちインターネットサービスプロバイダである。一実施形態で、ISP 518は、使用されている現在のISPを表す4バイト識別子である。ユーザは、所与の位置でISPを頻繁に変更する可能性が低いが、別の位置へのボックスの移動(一時的に又は他の形での)は、おそらくはISP 518の変更をもたらす場合がある。この情報は、例えば、潜在的により高速の又はより信頼性の高い接続(例えば、共通のISP又は複数の明確に接続されたISPに起因して)を共有するVODピアのグループを識別するのに利用することができる。
[185]上で注記したように、市520は、もう1つの固定構成要素であり、一実施形態で、地域516(国514内にある)内の1区域を識別する3バイト値である。市は、比較的一般的なので、市520は、通常は地域516内で一意であるが、他のフィールドが、この区域をさらに区別するように働く場合がある(例えば、下で述べる郵便番号522及び/又は経度/緯度524)。これらの地理的フィールド(国514、地域516、市520、郵便番号522、及び経度/緯度524)を、ISP 518と共に、さまざまな目的に使用できることに留意されたい。上で注記したように、これらは、より高速の又はより信頼性の高い接続を共有できる(したがって同一クラスタの一部とすることができる)VODピアのグループの識別を容易にする。さらに、そのようなフィールドを使用して、特定のコンテンツオブジェクトへのアクセスを制限する(例えば、米国内の特定の州に制約する)か、特定の地理的区域内のVODピアの間でのコンテンツオブジェクトの変更された分散をもたらし得る挙動使用パターンを識別する(例えば、特定の地理的区域でより流行しているコメディ)ことができる。監視される実質的にすべてのネットワーク特性、挙動特性、又は他の特性を、この地理情報と共に利用して、コンテンツオブジェクト(又はパッケージの個々のグループ)のコピーの再展開、信頼レベル又はクラスタメンバシップの調整などを決定することができる。
[186]上で言及したように、郵便番号522(一実施形態では5バイト識別子として図示)は、さらに、ボックスが現在展開されている地理的区域を識別するように働く。標準郵便番号をこの目的に利用することができ、特定の国について必要な場合には、異なる標準規格が使用される。
[187]やはり上で言及したように、経度/緯度524(一実施形態では16バイト識別子として図示)は、さらに、ボックスが現在展開されている地理的区域をさらに高い限定性を伴って識別する。これらの地理的フィールドは、特定の地理的区域をより正確に識別するのに一緒に利用することができ、或いは、別個の目的に個別に利用することができる(例えば、非常に特定のコンテンツアクセス制限を実施するために)。上で注記したように、正味の近接は、これらの地理的識別子の一部又はすべてに異なる度合で頼る標準的なIPロケーションデータベースを使用することによって、さまざまな精度のレベルで判定することができる。
[188]最後の固定構成要素であるノードタイプ526は、この実施形態では、VODピアの異なるカテゴリの間で区別する単一バイト識別子として図示されている。例えば、パブリッシャを、専用VODサポートサーバ並びに「普通の」VODピアから区別することができる。これらの区別は、必ずしも相互に排他的である必要はないが、例えば、VODピアのあるカテゴリを迅速に含め、又は除外するのに有用であることがわかる可能性がある。例えば、ソフトウェアアップグレードの開始又はネットワーク「緊急時」の場合の所定のフォールバックサービスの提供など、所定の機能を、VODサポートサーバなど、VODピアの特定のカテゴリに制限することができる。そのような場合に、ノードタイプ526に頼って、その判断基準を満足するVODピアを迅速に識別することができる。
[189]記述子550に移ると、IPアドレス552は、一実施形態で、標準的なルーティング可能IPアドレスを表す12バイトフィールドとして図示されている。IPアドレス552は、静的又は動的のいずれかとすることができ、もちろん、相対的に頻繁に変更することができる。それでも、個々のセッション又は相対的に短い時間間隔の間に、メッセージの交換及び他の形の通信(下でより詳細に述べる)のためにVODピアを識別する便利な手段として、これに頼ることができる。
[190]他の記述子550は、より頻繁に変更される可能性さえある。というのは、これらが、ネットワークインフラストラクチャ、帯域幅、及び信頼性の動的変化を反映するからである。例えば、信頼レベル554は、VODピアの相対的な信頼性の尺度を示す。一実施形態で2バイト値として実施される信頼レベル554は、動的に経時的に監視される帯域幅及び信頼性などの特性を反映するさまざまな信頼レベル要因(上で述べた)に基づいて、16個の異なるレベルの「信頼」を区別することができる。信頼レベル554は、クラスタメンバシップ及びアクセス可能な隣接するVODピアを判定し、コンテンツオブジェクト及びその構成要素パッケージの分散及びアクセスの処理に影響するなど、さまざまな目的に使用することができる。
[191]2つの追加の記述子550が、ローカルノードアクセシビリティ556及びグローバルノードアクセシビリティ558(それぞれが、一実施形態では単一バイト値)である。この2つのフィールドは、それぞれローカル(ルータ)ポート及びグローバル(クラスタ)ポート(例えば、VODピアボックスが展開されている家庭内のインターネットルータ上の)が開かれているのか閉じられているのかを示す。例えば、ローカルポートが閉じられている(例えば、ローカルノードアクセシビリティ556が「0」の値を有する)場合に、VODピアは、ファイヤウォール/NATルータに起因して直接にアクセス可能ではなく、VODネットワーク通信を確立するために特殊な間接通信技法(例えば、VODサポートサーバ又は隣接する「ローカル」VODピアを介して間接的に連絡する)を必要とする可能性がある。ローカルポートが閉じられていない場合には、そのような通信に関して、現在のルーティング可能なIPアドレス552に頼ることができる。グローバルポートが閉じられている(すなわち、グローバルノードアクセシビリティ558が「0」の値を有する)場合には、VODピアは、その「ローカル」クラスタの外側で直接にアクセス可能ではなく、やはり特殊な間接通信技法を必要とする可能性がある(例えば、ISPがクラスタ全体との接続性を失った時、これは、発生するとしても非常に希である可能性が高い)。これらのフィールドの両方が、他のVODピアが特定のVODピアと通信するのに必要である可能性がある通信の形を判定する(ターゲットVODピアのノードID 501内のこれらのフィールドの値に基づいて)ための相対的に迅速な機構を提供する。
[192]最後に、残りの記述子すなわち「ネット測定値」560は、一実施形態では、ある動的に監視される要因の現在の結果を反映する2バイトフィールドとして実施される。上で述べたように(下でより詳細に述べるように)、各VODピアのクラスタコントローラは(一実施形態で)、ネットワークトラフィック全般並びにコンテンツオブジェクト及びその構成要素パッケージの展開及び使用に関連する「挙動」トラフィックのパターンの変化を監視し、検出するためにさまざまなテストを実行する。これらの値は、そのようなテストの結果を反映する。例えば、クラスタコントローラは、インターネットバックボーンルータに近い周知の安定したサーバ(例えば、VODサポートサーバ)への周期的な1時間ごとの「ping」の経時的な平均値を維持することができる。そのような平均値は、ネット測定値560値に反映される信頼性の1つの尺度として使用することができる。
2.CRID
[193]上で述べたように、各VODピアがノードIDによって一意に識別されるのと同様に、コンテンツオブジェクトを公開する各イベントは、コンテンツ参照IDすなわちCRID 600によって一意に識別される。このCRID 600のデータ構造を、図6に示す。一実施形態で、CRID 600は、例えば、トラッキングファイル内で使用され、公開されたコンテンツオブジェクトを、そのコンテンツオブジェクトの構成要素パッケージのコピーを格納するあるVODピアに関連付けるようにする。CRID 600は、トラッキングインデックス内でも使用され、公開されたコンテンツオブジェクトを、そのようなトラッキングファイルのコピーを格納するあるVODピアに関連付けるようにする。
[194]図5に示されたノードIDデータ構造500と同様に、CRIDデータ構造600では、例示を簡単にするために英数字の形で値をリストするが、「位置」605は、連続するデータのバイトを表す(これは、もちろん、標準的な圧縮技法及び他のデータ表現技法を利用してより効率的に表すことができる)。ここでも、CRID 601全体が、連続するバイトのストリングとして複数の行に示されており、次に、その各構成要素が、後続行で分解されている。
[195]CRID 601は、一意の公開されたイベントを表し、例えば、ある映画を別の映画から区別するだけではなく、異なるパブリッシャからのその映画の特定の版をも区別し、同一パブリッシャからのその映画の異なる形さえ(例えば、予告編、又はおそらくは標準アスペクト比版に対してワイドスクリーン版さえ、或いは他の変形の中で字幕又は異なる第1言語を有する版)区別することができる。CRID 601の構成要素も、2つのカテゴリすなわち、パブリッシャ並びにイベントを一意に識別する「コア」CRID 610と、アクセス制約並びにパブリッシャ及び公開されたコンテンツオブジェクトに関するメタデータを含む1組の「記述子」620とに分類することができる。
[196]一実施形態で、コアCRID 610は、2つのフィールドすなわち、イベントのパブリッシャを一意に識別する「パブリッシャID」612(一実施形態では10バイト値として図示)と、そのパブリッシャからのイベントを一意に識別する「イベントセレクタ」614(一実施形態では6バイト値として図示)とを含む。もう1つの実施形態では、イベントセレクタ614自体を、パブリッシャにまたがってさえ一意とすることができる。このコアCRID 610は、ネットワーク上で公開されるイベントごとの相対的にコンパクトな一意識別子を提供する。
[197]コアCRID 610に加えて、1組の記述子620が、イベントに関するさらなる情報を提供する。図6に示された一実施形態では、3つの記述子すなわち、イベントに関連するアクセス制限の概要を示す「主記述子」625と、イベントのパブリッシャに関連する属性をさらに提供する「パブリッシャ記述子」635と、そのイベントに関連して公開されたコンテンツオブジェクトに関する所定の属性を提供する「終了記述子」645とが示されている。
[198]図示の実施形態では、主記述子625は、2つのフィールドすなわち、パブリケーションがそこから発する区域を識別する「パブリケーションゾーン」626(例えば、5バイトの郵便番号)と、公開されたコンテンツオブジェクトにアクセスできる場合を示す「パブリケーション権利」628(例えば、郵便番号の10バイトの範囲)とを含む。他の実施形態では、複数の郵便番号の範囲、或いは1つ以上の連続する若しくは不連続な地理的区域を指定する他の手段を使用することができる。さらに、ユーザのプロファイル、挙動、又は実質的にすべての他の静的属性若しくは動的属性に基づくアクセス制約など、地理的制限以外の追加の制限を利用することができる。
[199]図6に示されたこの実施形態では、パブリッシャ記述子635は、2つのフィールドを含む。そのうちの第1のフィールドが、パブリッシャの異なるタイプだけではなく各そのようなタイプ内の優先順位付けされた順序をも反映する単一バイトとして示された「パブリッシャ優先順位」636である。例えば、ほとんどの映画パブリッシャに、「2」のデフォルトレベルを割り当てることができ、「トップパブリッシャ」(例えば平均需要に基づく、最も人気のある映画の)に、「1」の値を割り当てることができる。また、より低い優先順位値を、「より低い優先順位の」映画パブリッシャだけではなく、完全に異なるタイプ又はクラスのパブリッシャに割り当てることができ、例えば、ストリーミングコンテンツのパブリッシャに「9」の値を割り当てることができる。一実施形態で、「プライベート」パブリッシャに、「0」の値を割り当てて(例えば、低くも高くもないが一意と考えられる)、パブリッシャカテゴリを相対的に迅速に区別する単純な手段を可能にすることすらできる。もう1つの実施形態では、これらの異なるタイプの優先順位付けを組み合わせることができる。パブリッシャ記述子635には、所与のパブリッシャに通常関連するコンテンツオブジェクトの主要なジャンルを識別するのに使用できる「パブリッシャカテゴリ」638(図6では2バイトフィールドとして図示)をも含めることができる。代替実施形態(図示せず)では、「イベントカテゴリ」フィールドを使用して(例えば、別々の「イベント記述子」内で)、パブリッシャを分類するのではなく、コンテンツオブジェクトジャンルをより別個の(例えば、「映画ごとの」)基礎で区別することができる。そのような情報は、下でより詳細に述べるように、別々の集中化された「メタデータDB」にも(又はこれに排他的に)格納し、CRID 601(又はコアCRID 610)を介して関連付けることができる。
[200]最後に、「終了記述子」645は、一実施形態で、コンテンツオブジェクトの異なる形又はタイプの間で区別する単一のフィールドすなわち「コンテンツオブジェクトタイプ」646(例えば、2バイト値)を伴って図示されている。例えば、映画を、その予告編から、又は現在のDVDの多くで通常見られる他のタイプの「エクストラ」コンテンツから区別することができる。上で注記したように、アスペクト比(例えば、ワイドスクリーン)又は異なる第1言語も、区別する要因とすることができる。さらに、完全に異なるタイプのコンテンツ(例えば、ドキュメンタリ、トレーニングビデオ、教育ビデオ、ユーザ生成のストリーミングクリップなど)をコンテンツオブジェクトの区別可能なカテゴリの源とすることもできる。上で注記したように、追加の「イベント関連」情報を、「イベント記述子」内に含めるか、及び/又はネットワーク上のVODピアからアクセス可能な集中化された「メタデータDB」内で別々に維持することができる。
3.トラッキングファイル
[201]図7に移ると、トラッキングファイルデータ構造700の一部の実施形態が示されている。このトラッキングファイルデータ構造700は、公開されたコンテンツオブジェクト(すなわちイベント)のパッケージの特定のグループを格納する所定のVODピアの位置を維持し、そのようなVODピア位置をそのイベントを表す対応するCRIDに関連付ける。一実施形態では、別々のトラッキングファイル700が、イベントを表すCRIDごとに生成されるが、他の実施形態(図示せず)では、1つのトラッキングファイルに複数のCRID(イベント)を含めることができる。各エントリは、特定のCRIDについて、そのCRIDに関連するコンテンツオブジェクトの構成要素パッケージを格納するさまざまなVODピアを識別することができる。
[202]上で注記したように、トラッキングファイル700は、分散された形で生成され、維持される。したがって、特定のVODピアに格納されたトラッキングファイル700のコピーは、公開されたコンテンツオブジェクト(対応するCRIDによって表される)のパッケージのグループを格納するVODピアのサブセット(例えば、「葉」クラスタ内の隣接するVODピア)だけに関するエントリを含むことができる。トラッキングファイル700の他のバージョン(例えば、より信頼性の高いVODピアに格納される)は、構成要素パッケージのそのようなグループを格納するVODピアのより大きいドメインを表すことができる。構成要素パッケージのグループは、例えば、「サブセット」葉クラスタ内のVODピアに加えて、より大きい「スーパーセット」クラスタ内のVODピアを含む。図7に示された一実施形態では、あるコンテンツオブジェクトの構成要素パッケージのすべてが、各トラッキングファイル内で説明される。その結果、特定のコンテンツオブジェクトへのアクセスを入手するために、複数のトラッキングファイルを突き止める必要がなくなる。
[203]表形式で図示されているが、トラッキングファイル700内のデータを、圧縮されたハッシュテーブル、リンクリスト、並びに他の標準的な低水準のデータ構造及びフォーマットを含むより効率的なフォーマットで表すことができる。一実施形態で、トラッキングファイル700の最初のフィールドは、別々のVODピアに格納されている構成要素パッケージのグループ(「パッケージグループ」)の個数を識別する。例えば、あるコンテンツオブジェクトを、100個の別々の構成要素パッケージ(一実施形態では固定サイズの、他の実施形態では異なるサイズの)に分割し、なおかつ4つの別個のパッケージグループ(例えば、最初の10個のパッケージを含む「パッケージグループ1」、それぞれ20個のパッケージの後続グループを含む「パッケージグループ2」及び「パッケージグループ3」、並びに残りの50個のパッケージを含む「パッケージグループ4」)にグループ化することができる。
[204]図7に示された実施形態では、このフィールド710に、トラッキングファイル700を識別するCRIDに関連するコンテンツオブジェクトが3つの別個のパッケージグループを含み、そのコピーが個々のVODピアに格納されることを示す「3」が含まれる。フィールド710に続くのが、そのようなVODピアごとの、そのVODピアのノードID(又は、一実施形態では、単純にIPアドレス)とそれに続くそのVODピアが各パッケージグループのコピーを含むかどうかの表示とを含むエントリである。例えば、フィールド710に続くのは、「ノード1」のIPアドレス720と、それに続く、ノード1がそのパッケージグループのコピーを格納するかどうかを示す3つのパッケージグループごとの値725である。これらのパッケージグループのうちの1つ以上を格納する残りのVODピアごとに、後続エントリが続く(「最終」エントリ730まで)。そのようなVODピアの個数は、別々のフィールド又はリンクリスト内のnull値など、さまざまな手段(図示せず)によって指定することができる。
[205]上で注記したように、照会するVODピアは、当初に、所望の公開されたコンテンツオブジェクト(イベント)に対応するCRIDに基づく隣接するVODピアの検索を実行し、その所望のCRIDに関連するトラッキングファイルのコピーを格納するVODピアを直接に突き止めることに失敗する場合がある。下でより詳細に説明するように、そのような検索は、まず、そのようなトラッキングファイルのコピーを格納する1つ以上のVODピアを間接的に参照する「トラッキングインデックス」を含むVODピアをもたらす場合がある。さらに、関連するトラッキングファイルを見つけた時であっても、そのトラッキングファイル内で参照されるVODピアのうちの1つ以上がダウンロード要求を完了できない(例えば、デバイス障害、ネットワーク障害、過負荷帯域幅、又はなんらかの他の問題に起因して)場合に、追加の検索が必要になる場合がある。
4.トラッキングインデックス
[206]上で注記したように、トラッキングインデックスが、関連するトラッキングファイルが突き止められる前に識別される場合には、そのトラッキングインデックスが、利用され、1つ以上の関連するトラッキングファイルを突き止める。このトラッキングファイルは、要求元VODピアがダウンロードし見ることを望む公開されたコンテンツオブジェクト(イベント)に対応するCRIDに基づく。やはり上で注記したように、トラッキングインデックス及び対応するトラッキングファイルは、イベントが最初に発生する時(すなわち、関連するコンテンツオブジェクトが最初に公開される時)に生成される。これらのファイルは、分散された形で、例えば、クラスタにまたがって、「スーパーセット」から下に「サブセット」クラスタへ生成されるが、(効率のために)必ずしも各「葉」クラスタのレベルまで下に生成されるのではない。構成要素パッケージ(及びそのグループ)を含むコンテンツオブジェクトの展開での変更が行われる時に、対応する変更が、これらのファイルでも必要とされる場合がある(類似する分散された形で達成される)。そのような変更は、さまざまな異なるネットワーク関連の原因及び挙動の原因に由来する場合がある。例えば、そのような変更は、デバイス障害、ネットワーク障害、ネットワーク帯域幅の測定された変化、並びに全般的な又は特定のクラスタ内の特定のコンテンツオブジェクトに関する需要の増加及び/又は減少に由来する可能性がある。
[207]トラッキングインデックスデータ構造800の一実施形態を、図8に示す。上で述べたトラッキングファイル700に似て、表フォーマットが使用されている。表フォーマットは、圧縮されたハッシュテーブル、リンクリスト、並びに他の標準的な低水準のデータ構造及びフォーマットを含むより効率的なフォーマットで表すこともできるデータを有する。上で注記したように、別々のトラッキングインデックスを、CRID(イベント)ごとに生成することができる。或いは、図8に示されているように、単一のトラッキングインデックスに、そのようなCRIDごとに(例えば、特定のクラスタ内で公開されたイベントごとに)エントリを含めることができる。
[208]図8では、各行が、特定のイベントを表し、「イベントA」を表す行810から開始する。各後続の行は、別のイベントを表す(「イベントN」を表す「最終」行820まで)。イベントごとに、最初のフィールドは、そのイベントに対応するCRID 815を識別する。このフィールドは、もちろん、例えば別々のトラッキングインデックスがCRIDごとに生成される場合には不要であり、その場合には、CRIDを、その別々のトラッキングインデックスファイルを突き止めるのに使用することができる(例えば、ハッシュテーブルを介して)。各CRIDエントリは、そのCRIDに対応するトラッキングファイルのコピーを格納するVODピアのIPアドレス(又はノードID)のリストを含む。最初にリストされるVODピアのIPアドレスは、列818によって示されており、これに、列819までの後続VODピアのIPアドレスが続き、列819は、「最終」VODピアのIPアドレスを表す。
[209]特定のCRID(イベント)に対応するトラッキングファイルのコピーを格納するVODピアの個数が、CRIDごとに変化する場合があることに留意されたい。また、特定のVODピアが、おそらくは複数のCRIDに関連するトラッキングファイルのコピー(別々のトラッキングファイルとして格納されるか、複数のCRIDエントリを有する単一のトラッキングファイルとして格納される)を格納する場合がある。さらに、上で注記したように、一実施形態で、あるトラッキングインデックス内の異なるCRIDエントリの個数は、より信頼性の高いVODピアに格納されるトラッキングインデックスでより多くなる可能性がある(例えば、さまざまな「サブセット」クラスタ内の追加のVODピアを識別する)。
B.ノード間通信
[210]VODピアのノードID、コンテンツオブジェクトが公開されるイベントのコンテンツ参照ID(CRID)、並びにそのようなコンテンツオブジェクトの構成要素パッケージのグループの分散位置を維持するために生成されるトラッキングインデックス及びトラッキングファイルを含む、所定の重要なデータ構造を説明した。これから、VODピアが互いと(並びにVODサポートサーバと)それよって通信する通信プロトコル及び他の手段に注意を向ける。
1.初期ハンドシェーク
[211]一実施形態で、2つのVODピアが互いと直接に通信する(例えば、アプリケーションレベルリレーとして働く介在物なしでTCPを介して)時には必ず、一方が「イニシエータ」として働き、他方が「レスポンダ」として働く。その後、初期接続が確立されたならば、残りの通信アーキテクチャの多くを対称とすることができる。
[212]TCPストリーム接続のこの確立(TCP接続は、オーバーレイネットワークとして使用される)は、別個のフェーズに分割される。初期フェーズすなわち「フェーズA」は、初期TCP接続を確立するのに使用されるIPアドレス及びポートを発見するのに必要な予備活動を含む。これに「フェーズB」が続き、フェーズBでは、生TCP接続が、通常は公開された標準規格に従って確立される。
[213]例えば、「正常な」場合に、正確に3つのTCPプロトコルデータ単位(PDU又はパケット)が、接続をセットアップするために交換される。最初の交換されるパケットは、「SYN」フラグをセットされ、第2のパケットは、「SYN」フラグと「ACK」フラグとの両方をセットされ、第3のパケットは、「ACK」フラグだけをセットされる。この実施形態では、第1及び第3のパケットを送信するVODピアが、「イニシエータ」と考えられ、第2パケットを送信するVODピアは、「レスポンダ」と考えられる。
[214]「フェーズB」の完了時に、図9に示された対称ハンドシェーキングフェーズを開始することができる。初期ハンドシェークフェーズすなわち「フェーズH1」930では、イニシエータすなわち「ノードA」910及びレスポンダすなわち「ノードB」920のそれぞれが、VODピアとのTCP接続を確立した(意図された通りに)、又は別のタイプのインターネットベースの実体とのTCP接続を誤って確立したのいずれであるかを判定することを試みる。したがって、この初期ハンドシェークフェーズであるフェーズH1 930は、対称フェーズである。各VODピアは、単一オクテット(バイト)を送信し、タイマをセットし、タイマが満了する前に他方のVODピアからのもう1つのオクテット(バイト)を読み取ることを試みる。一実施形態で、ノードA 910すなわちイニシエータは、ASCII「6」(0x36)を含むメッセージ「H1i」を送信する。ノードB 920すなわちレスポンダは、ASCII「9」(0x39)を含むメッセージ「H1r」を送信する。いずれかの側が、他方の側からのオクテットの受信を待っている間にタイムアウトする場合(或いは、期待されない値を受信する場合)に、その側は、接続をクローズする。他方のVODピアとの着信ストリーム又は発信ストリームの同期化は、不要である。これらの送信ストリーム及び受信ストリームのシャットダウンは、実際には、暗黙である(例えば、アプリケーションが「close(...)」又は類似するAPI要素を使用して、それ自体を接続からデタッチする時)。そうではなく、すべてが計画通りに進む(すなわち、期待されたオクテットが間に合って受信される)場合には、このプロセスは、次のフェーズすなわち「フェーズH2」940に進む。
[215]フェーズH2 940は、VODピアのそれぞれが、他方のVODピアに、それが合法的なVODピア(システムの「クラック」を試みているノードではなく)と実際に通信していると確信させることを試みるという点で、やはり対称である。一実施形態で、「H2X」メッセージが、このセキュア検証を実行するのに使用されるが、より単純な「H2B」メッセージを、開発目的及びデバック目的(例えば、デバッグ中の通信の暗号化を防ぐため)に使用可能にすることができる(及びおそらくは必要になる)。この開発/デバッグシナリオでは、フェーズH2 940は、ノードA 910とノードB 920との両方が、一実施形態で単一オクテット(例えば、ドット又はピリオドのASCIIコード)からなる「H2B」メッセージを交換することを含む。
[216]通常の製品シナリオでは、ノードA 910とノードB 920との両方が、セキュア検証を実現するために「H2X」メッセージを交換する。これらの「H2X」メッセージは、一実施形態で、メッセージの終りを突き止めるために迅速に簡単に解析可能になるように符号化される(例えば、2オクテットと62オクテットとの間であり、最後のオクテットが、ピリオドのASCIIコードを符号化される唯一のオクテットである)。これらは、通常、セキュリティオプションのネゴシエーションに関するさまざまなパラメータと混合された、よい種を与えられた擬似ランダムデータを含む。一実施形態で、両側がフェーズH2 940メッセージとして「H2X」メッセージを送信する時に、追加のフェーズすなわち「H3」950が、初期セキュリティセットアップのハンドシェーキングを完了するのに必要である。
[217]その一方で、開発/デバッグシナリオにおいて、一方の側が「H2X」メッセージを送信し、他方の側が「H2B」メッセージを送信する場合に、ハンドシェークフェーズH2 940は、接続にさらなるセキュリティを追加するためにフェーズH3 950を必要とせずに完了する。ハンドシェークが完了した後に、「H2B」メッセージを受信した側は、「H2B」メッセージを送信した側が、このプロトコルの古いバージョン又は製品以前のバージョンを使用しているか、デバッグモードで動作しているか、或いはこのシステムの「クラック」を試みている可能性があることを感知し、この接続に不安を感じる可能性がある。したがって、「H2B」メッセージを受信した側は、サービスを一切提供せずに単純に切断を開始してもよい(例えば、下で説明する、「DiscWithReason」メッセージを適当なペイロードと共に送信することによって)。あるVODピアが、なんらかの理由でフェーズH3 950をサポートしない場合には、そのフェーズH2 940は、単純に、「H2B」メッセージを送信することと、その後に、最後のASCII「ピリオド」に出会うまで入力ストリームから62個までのオクテットを読み取ることからなるものとすることができる。
[218]フェーズH3 950交換の最初のメッセージは、一実施形態で、少なくとも、「H2X」メッセージともう1つの値(例えば暗号鍵)との両方に事前定義の順序で関数的に依存するある値を含む。各側は、まず、受信した「H2X」メッセージが、それが送信した「H2X」メッセージと異なることを検証する(及び、送信したものと同一のメッセージを受信した場合(システムを「クラックする」可能な試みのインジケータ)には、接続を断つ)こともできる。検証が達成されるまで、おそらくはノードIDの交換を含めて(このハンドシェークフェーズに続く「通常の」ノードID交換の前であっても)、複数のメッセージを追加セキュリティのために交換することができる。
[219]これらのハンドシェークフェーズの結果として、最大サイズの「H2X」メッセージ(例えば、62オクテット/バイト)を格納できる比較的小さいバッファを利用することと、ターミネータ値(例えば、ASCIIピリオド)が見つかるかバッファが満杯になるまで入力ストリームからそのバッファに単純に読み取ることとによって、「H2B」メッセージ及び「H2X」メッセージを受信することができる。最初のオクテットがターミネータ値である場合には、そのメッセージは「H2B」メッセージである。そうでない場合には、そのメッセージは「H2X」メッセージである。
2.メッセージ符号化
[220]図9に示された初期ハンドシェークが完了した後に、さまざまな他の「基本」メッセージ及び「拡張」メッセージを、情況に応じて交換することができる。例えば、一実施形態で、VODピアは、最初に、ノードID(一実施形態では単なるIPアドレスであるが、他の実施形態ではボックスID又はノードID全体である)及び信頼レベルを交換する。他のシナリオは、VODピアの最初の「ブートストラップ」プロセス又は後続のスタートアップ/ブートプロセス、更新及び他の管理サービス、プッシュ関連プロセス(アナウンスメント及びパブリケーションなど)、プル関連プロセス(ファイル検索及びダウンロードなど)、動的監視のテスト及びデータ交換、並びに下でより詳細に述べる他のシナリオを含む。
[221]一実施形態で、メッセージは、6バイトヘッダから開始して符号化される。ストリングは、2バイト長を使用して値符号化される。追加の2バイトが、使用されるプロトコルバージョンのために割り当てられ、別の2バイトが、それぞれペイロードサイズ及びペイロードタイプのために割り当てられる。空のペイロードは、この実施形態では許容される。ペイロードタイプの例は、次を含む。
・ 01 検索インデックス(ペイロードは必ずCRIDである)
・ 02 要求トラッキング(ペイロードは必ずCRIDである)
・ 03 要求コンテンツパッケージ(ペイロードはCRID及びパッケージ番号である)
・ 66 ソケット接続が残っていない
[222]一実施形態では、メッセージペイロードを、同一のタイプ(各要素が固定サイズを有するか、異なる要素が異なるサイズを有する)又は異なるタイプを有するn個の要素からなるものとすることができる。ペイロードが、すべてが既知の固定サイズの同一のタイプを有する複数の要素からなる時に、下に示すように、最初の2バイトが、要素数を定義し、その後に、各要素を構成する固定された個数のバイトが続く。
・例 このペイロードは、すべてが既知の固定サイズの同一のタイプを有する3つの要素(a、b、及びc)からなる。
[223]ペイロードが、すべてが同一のタイプを有するが異なるサイズのn個の要素からなる時には、下に示すように、最初の2バイトが、要素数を定義し、その後に、要素ごとにその要素のサイズを定義する2バイトと、その要素を構成するバイトとが続く。
・例 このペイロードは、すべてが同一のタイプを有するが異なるサイズ(それぞれ3バイト、4バイト、及び5バイト)の3つの要素(a、b、及びc)からなる。
[224]ペイロードが、異なるタイプのn個の要素からなる時には、要素タイプ及びサイズのさまざまな組合せが可能であり、下に示すように、各タイプの要素(同一の固定サイズ又は異なるサイズのいずれかを有する)が一緒に指定される。
・例 このペイロードは、さまざまな個数の3つのタイプの要素からなる。第1及び第2のタイプの要素(タイプA及びタイプB)は、固定サイズを有する。第3のタイプの要素(タイプC)は、可変サイズの要素を有する。
3.
基本メッセージ
[225]次は、本発明の主要なプッシュ、プル、及びネットワーク監視機能性(これらは、下で述べる「拡張メッセージ」によって呼び出される)などの特定の目的に必ずしも制約されないさまざまな一般的な目的にVODピアによって使用される「基本メッセージ」の実施形態の説明である。そのような一般的な目的は、下で述べるように、接続を確立し検証する初期ハンドシェーキングメッセージ及びログインメッセージ、「アイドル」時間の表示、並びに要求取消及び既存接続の切断を含む。
[226]一実施形態で、「基本メッセージ」は次を含む。
[229]
Login(LSTR) 別のノードに接続する(イニシエータのノードIDを含む)
[230]
Login(ACK) ハンドシェーキング検証の確認(Loginを受け入れた後に送信される)
レスポンダのノードIDを含む
後続の切断は、ハンドシェークフェーズでのエラーではなく、「ハンドシェークされた」接続の期待されない切断と考えられる
[231]
Idle 実質的なメッセージが不要である時であってもメッセージを送信する必要がある場合がある
[232]
CancelRequest 要求を取り消す
[233]
RequestClosed この応答は、通常、要求が最終的に応答されるか取り消される時に必ず返される
[234]
WTDiscRequest ソケットをクローズする前に接続の正しいシャットダウンを保証する
正しいシャットダウンが開始される前に、「WTDiscRspGranted」メッセージが、これに応答して送信される
[235]
WTDiscRspGranted 正しいシャットダウンを開始するための、WTDiscRequestメッセージに対する応答
「WTDiscRequest」メッセージの送信側は、このメッセージを受信した後に、ソケットをクローズするために正しいシャットダウンを開始する
[236]
WTDiscRspDoNot 接続に関する意見の相違の場合に送信される
[237]
Disconnecting まず「尋ねる」ことなく切断する代替の形
「WTDiscRequest」メッセージ及び「WTDiscRspGranted」メッセージを交換する(実質的に、ソケットをクローズするために「許可を求める」)のではなく、このメッセージを送信し、一方的にソケットをクローズするためにシャットダウンを実行することができる
[238]
DiscWithReason 「Disconnect」と同一であるが、ペイロードは、切断の理由を含む
ペイロードに、平文又は符号化された形で切断の理由を含めることができる
4.
拡張メッセージ
[239]上で注記したように、「拡張メッセージ」は、本発明の主要なプッシュ、プル、及びネットワーク監視機能性に関する、より実質的なメッセージを含む。一実施形態で、これらの拡張メッセージは、次を含む。
[240]
Alive_List_Req 別のVODピアと「アライブリスト」を共有するために送信される
イニシエータの「アライブリスト」を含む
[241]
Alive_List_Resp Alive_List_Reqに対する応答
レスポンダの「アライブリスト」を含む
[242]
Buddy_Download_Request 「バディ」になることに合意したVODピアへのメッセージ
ペイロードは、CRID、ダウンロードされるパッケージグループ、及びパッケージグループがそこからダウンロードされるVODピアのノードIDを含む
[243]
Buddy_Download_Response Buddy_Download_Requestメッセージに対する1つ以上の応答として送信される
ペイロードは、現在ダウンロードの準備ができているパッケージグループを含む
空のペイロードは、現在「バディ」として働くことが不可能であることを示す(例えば、断たれた接続又は低速の接続などに起因して)
[244]
Buddy_Function_Request VODピアへの、「バディ」として働くことの要求
受信側に、優先順位付きのダウンロード接続を準備する(及び、現在のダウンロード接続が断たれることを期待する)ように通知する
ペイロードは、現在ダウンロードしているVODピアのCRID及びノードIDを含む
[245]
Buddy_Function_Response Buddy_Function_Requestメッセージに対する応答
VODピアが代替ダウンロードに「バディ」を使用する準備ができていることを確認する
空のペイロードは、VODピアが「バディ」からダウンロード要求を受け入れる準備ができていることを示す
[246]
Buddy_Request ダウンロードを援助する「バディ」を必要とするVODピアによって送信される
ペイロードは、イベントのCRIDと、パッケージグループが最初にそこからダウンロードされたVODピアのノードIDとを含む
[247]
Buddy_Response Buddy_Requestメッセージに応答して送信される
ペイロードは、VODピアがその下で「バディ」として働くことができる条件を識別して、リクエスタが、この「バディ」機能を使用すること望むかどうかを判定できるようにする
空のペイロードは、VODピアが現在は「バディ」として働くことができないことを示す
[248]
Cluster_Download_Complete 「供給クラスタ」の一部であるVODピアが指定されたパッケージグループのすべてのダウンロードを完了した後に、そのVODピアから送信される
ペイロードは、イベントのCRIDを含む
空のペイロードは、ダウンロードが失敗し、パッケージグループが要求元VODピアに格納されていないことを示す
[249]
Cluster_Download_Start クラスタ内でイベントを公開する責任を負うVODピアから送信される(受信するVODピアに、指定されたVODピアのノードIDから指定されたパッケージグループをダウンロードするように指示する)
[250]
Content_Retrieval_Ready 供給クラスタの一部であるVODピアから送信され、パッケージグループを要求元VODピアにダウンロードする準備ができていることを示す
[251]
Content_Retrieval_Help_Downloaded 代替「フィーダ」ノードとして助けるように求められたVODピアから送信され、指定されたパッケージグループのダウンロードの準備ができていることを示す
[252]
Content_Retrieval_Help_Request パッケージグループのダウンロードを助けるように求める、VODピアからの要求
要求元VODピアへのよい接続を有するVODピアだけに送信される。助けは、オリジナルの「フィーダ」ノードへの劣悪な接続又は失われた接続に起因して要求される
ペイロードは、イベントのCRID、パッケージグループが現在そこからダウンロードされつつあるVODピアのノードID、及び要求元VODピアがダウンロードの援助を必要とするパッケージグループのIDからなる
Buddy_Requestメッセージに似ているが、このメッセージは、既存接続を置換するのではなく、完全に新しい接続を要求する。
[253]
Content_Retrieval_Help_Response 要求されたパッケージグループの一部又はすべてをダウンロードすることを確認する、Content_Retrieval_Help_Requestに対する応答
ペイロードは、イベントのCRID及びダウンロードが合意されたパッケージグループのIDからなる
[254]
Feed_Cluster_Start 他のVODピアが「供給クラスタ」コンテンツプッシュに参加するのを待っているVODピアから送信される
ペイロードは、イベントのCRID及びコンテンツがそこからダウンロードされる公開するサーバのノードIDからなる
[255]
Feed_Cluster_Response 「供給クラスタ」に参加することを確認する、Feed_Cluster_Startメッセージに対する応答
ペイロードは、コンテンツがそこからダウンロードされる公開用サーバのノードIDからなる
[256]
File_Check_Request 別のVODピアに1つ以上のダウンロード接続を求める要求
ペイロードは、イベントのCRID及び所望のパッケージグループのIDからなる
[257]
File_Check_Response File_Check_Requestに応答して、VODピアの状況を返す
すなわち、そのVODピアが受け入れることのできるダウンロード接続の個数、又は、そのVODピアが接続を受け入れることができるようになる前に必要な時間の長さ
ペイロードは、使用可能な接続の個数からなる(使用可能な接続がない場合には、接続が使用可能になるまでの推定時間をも含む)。空のペイロードは、要求を満足できないことを示す。
[258]
Global_Message_Request 別のVODピアに「グローバルメッセージ」のすべてを要求する
[259]
Global_Message_Response すべてのグローバルメッセージを返す、Global_Message_Requestに対する応答(グローバルメッセージがない場合には、ペイロードは空である)
[260]
Index_File_Keeping このVODピアが新しい/更新されたトラッキングインデックスを有することを、別のVODピアに通知する
[261]
Index_File_Keeping_Response 新しい/更新されたトラッキングインデックスの知識を肯定応答する、Index_File_Keeping要求に対する応答
[262]
Index_Request 別のVODピアにトラッキングインデックスを求める要求
ペイロードは、所望のトラッキングインデックスに関連するイベントのCRIDからなる
[263]
Index_Response 要求されたトラッキングインデックスを返す、Index_Requestに対する応答
ペイロードは、要求されたトラッキングインデックスからなる(存在しない場合には空である)
[264]
Peer_Casting_Client 別のVODピアに、そのVODピアが「ピアキャスティング」シナリオでクライアントとして働かなければならないことを知らせる
ペイロードは、サーバとして働かなければならないVODピアのノードIDからなる
[265]
Peer_Casting_Client_Response Peer_Casting_Clientメッセージに対する応答
空のペイロードは、ピアキャスティングサーバが連絡を受け、「ピアキャスティング」シナリオが受け入れられたことを示す
[266]
Peer_Casting_Download_Setup 「ピアキャスティング」シナリオで「クライアント」から「サーバ」に送信され、接続を正しくセットアップできることを確認する
[267]
Peer_Casting_Download_Setup_ResponsePeer_Casting_Download_Setupメッセージに対する応答
[268]
Published_List_Request パブリッシャが新しいイベント(すなわち、新たに公開されたコンテンツオブジェクト)をアナウンスすることを望むことを示す、パブリッシャからVODサポートサーバへのメッセージ
ペイロードは、公開されたコンテンツオブジェクトに関連するイベントのCRIDからなる
[269]
Published_List_Response VODサポートサーバからパブリッシャへの、Published_List_Requestに応答するメッセージ
ペイロードは、パブリッシャが新しいイベントのアナウンスを連絡しなければならないノードIDのリストを含む
空のペイロードは、VODサポートサーバが、信頼レベル「2」(又はそれ未満)のVODピアがそのイベントの公開されたコンテンツオブジェクトにアクセスできてはならないと決定したことを示す
[270]
Published_Announcement 新しいイベント(公開され、ダウンロードに使用可能なコンテンツオブジェクト)の、別のVODピアへのアナウンスメント
ペイロードは、新しいイベントのCRIDからなる
[271]
Published_Announcement_Response Published_Announcementの受信を肯定応答する応答
ペイロードは、新しいイベントのCRIDからなる
[272]
Publishing_Complete イベントに関連するコンテンツオブジェクト全体が特定のクラスタにダウンロードされた時に公開するサーバに送信される
[273]
Que_Request 使用可能なダウンロードスロットを有しないVODピアに送信される(要求されたパッケージグループに関する情報を含む)
空のペイロードは、そのVODピアに関するすべての保留中のキューを取り消す
[274]
Que_Response Que_Requestに対する応答
[275]
Rescue_Preparation より信頼性の低いVODピアとのリクエスタの接続が障害を発生した場合に助けを要求できることを警告する、信頼レベル「2」を有するVODピアへのメッセージ
[276]
Rescue_Preparation_Response Rescue_Preparationメッセージを肯定応答する応答
[277]
Tracking_File_Request 別のVODピアにトラッキングファイルを要求する
ペイロードは、所望のトラッキングファイルに関連するイベントのCRIDからなる
[278]
Tracking_File_Response Tracking_File_Requestに対する応答
ペイロードは、要求されたトラッキングファイルからなる
C.
動的通信プロセス
[279]VODピアの間の通信について一実施形態で使用される、ある基本メッセージ及び拡張メッセージを述べた。これから、そのようなメッセージを使用することによって実施される高水準の機能性に注意を向ける。そのような機能性は、VODピアの最初のスタートアップ(及びリスタート)、プッシュプロセス(新しいコンテンツオブジェクトのアナウンスメント及びパブリケーションを含む)、プルプロセス(トラッキングインデックス及びトラッキングファイルの検索並びにコンテンツオブジェクトパッケージのダウンロードを含む)、並びにネットワーク、挙動、及びシステムの他の属性の動的監視(信頼レベル、クラスタメンバシップ、及びコンテンツオブジェクトパッケージのコピーの分散に対する変更など、そのような動的監視の結果を含む)など、本発明の主要な動的プロセスを含む。
1.ノードのスタートアップ
[280]一実施形態で、VODピアは、最初にネットワークに加わる時に、ある初期ハウスキーピングタスクを実行する。当初に、VODピアは、そのデフォルトノードID並びに既知のVODサポートサーバのノードIDに頼って、他のネットワークデバイスと通信する。そのような情報は、VODピアデバイスが製造される時に格納される。例えば、その一意のボックスIDフィールドは、デバイスが製造される時に事前に決定されるが、他のフィールドは、ユーザによって書き込まれ(VODピアのユーザインターフェースを介して)、及び/又はVODサポートサーバ(又は他のVODピア)との通信によって入手される必要がある。
[281]VODピアの内部ソフトウェアは、当初に、ネットワーク接続がデフォルトで存在したかどうかを(例えば、ローカルDHCPサーバを介して)判定し、そうでない場合には、そのような接続を確立するネットワークセットアップルーチンを呼び出す。さらに、一実施形態では、直接のインターネット接続性は不要である。例えば、あるVODピアが、インターネットへのアクセスを有するVODピアとの直接接続(又は、さらなる間接的な接続若しくはおそらく「プロキシ」接続)を有する。その場合に、後者のVODピアは、直接インターネットアクセスを有しないVODピアへ及びそれからのメッセージを中継して、完全な又は部分的なネットワーク機能性及びVOD機能性を使用可能にする責任を負う。次のステップは、直接インターネット接続性を仮定して説明されるが、これらを、間接的に又は「プロキシ」VODピアを介して実行することができる。
[282]ネットワーク接続性及びインターネットアクセスをセットアップした時に、VODサーバは、次に、その内部メモリ(例えば、ROM)にアクセスして、既知のVODサポートサーバの1つのノードIDを入手し、そのVODサポートサーバとの通信に進んで、接続を確立し、これらの初期ハウスキーピングタスクを実行する。そのようなタスクには、ソフトウェア更新(最新のVODピアクライアントソフトウェア又はファームウェアを入手するため)及び時間同期化(一実施形態では、その後に周期的な基礎で維持することができる)を含むことができる。また、他の初期プロファイル情報と一緒に残りのノードIDフィールドを満たし、及び/又は更新するのに必要なデータを入手するように働く「作成プロセス」を含めることができる。
[283]例えば、一実施形態で、VODピアのボックスIDを、VODサポートサーバによって利用して、新しいソフトウェア更新又はファームウェア更新について検査することができる。ボックスIDの検証時に、VODサポートサーバは、VODピアのデバイスモデル及びバージョン番号について指定された更新ソフトウェアを含むCRIDを返して応答することができる。次に、VODピアは、その更新ソフトウェアをダウンロードし、クライアント側更新プロセス又はインストールプロセスを呼び出すことができる。言い換えると、そのような更新ソフトウェアは、ネットワーク上のもう1つのコンテンツオブジェクトにすぎないと考えることができるが、この場合に、CRIDの「コンテンツオブジェクトタイプ」は、インストールを要求した更新ソフトウェアとして(例えば、VODビューイングについて指定された映画ではなく)そのコンテンツオブジェクトを識別する。
[284]さらに、VODサポートサーバは、標準的なIPロケーションデータベースにアクセスして(初期化されつつあるVODピアの代わりに)、ある地理的情報(上で述べたノードIDのISPフィールド、国フィールド、地域フィールド、及び他の関連するフィールドなど)を入手することができる。そのような情報は、VODピアに渡され、VODピアは、それ自体の内部メモリを更新する。
[285]VODピアの完全なノードIDを生成するために、追加のノードIDフィールド(例えば、IPアドレス)からのデータを、VODピアから直接に入手することができ、他のデータを、追加の「テスト」通信を介して間接的に判定することができる。例えば、VODピアの「ローカルノードアクセシビリティ」フィールド値及び「グローバルノードアクセシビリティ」フィールド値は、そのVODピアへの直接アクセスが通常はファイヤウォール/NATルータによってブロックされるかどうか、又はより広いクラスタ(例えば、IPアドレスのより広い組)がアクセス可能であるかどうかを判定するために、あるメッセージを交換することによって(例えば、一実施形態で、特定のIPアドレスにpingを打ち、肯定応答を待つことによって)セットすることができる。「ネット測定値」フィールドなどの追加フィールドは、1組の標準的なネットワーク測定(例えば、pingテスト及びtracerouteテスト)を実行することによって、又は、単純にある値をデフォルトとし、そのような値の現在の状態を維持するために後続のテストに頼ることによって、決定することができる。他のフィールド(例えば、信頼レベル)は、この実施形態ではデフォルトによってセットされ、経時的に、追加のネットワーク測定値がVODピアのクラスタコントローラを介して入手される時に維持される。
[286]さらに、一実施形態では、ユーザ登録プロセスが、ユーザを登録し、任意選択でネットワークに関するユーザのパミッションを認証し、検証するために実行される。例えば、所定のユーザに、所定のコンテンツオブジェクト及び/又はネットワーク機能性への制約された又はフィルタリングされたアクセスを与えることができる。そのような制約は、この初期登録プロセスを介してスタートアップ時に実施する(及び、その後に、経時的に及び/又は後続リスタート時に検証する)ことができる。この登録プロセス中に、VODサポートサーバは、VODピア自体に格納された(製造の時に及び/又はソフトウェア更新若しくはファームウェア更新を介して)ユーザインターフェースソフトウェアを介して、あるユーザプロファイル及び関連情報を入手し、そのような情報をネットワーク上の中央からアクセス可能なデータベースに格納することができる。
[287]一実施形態で、VODピアが初めてスタートアップしつつある又はリスタートしつつある(例えば、デバイス障害、ネットワーク障害、停電などに起因して)のいずれであれ、そのVODピアは、例えば更新された「アライブリスト」(「生きている(アライブ)」すなわち最近アクティブであることがわかっている既知の隣接するVODピアを判定するため)を含むある情報をVODサポートサーバ(及び/又はおそらくは間接的に他のVODピア)と交換する。最初のスタートアップ時に、VODピアは、VODサポートサーバ(例えば、標準的なIPロケーションデータベースから入手される情報に基づく、そのVODピアと同一のIP範囲内のVODサポートサーバ)などの非常に信頼性の高いVODピアを含む「高水準」アライブリストを入手する。さらに、これより信頼性の低いがそれでも相対的に非常に信頼性の高い(例えば、「クラスタレベル」)VODピアのノードIDを、この(又は別々の)アライブリストに含めることができる。
[288]アライブリストの後続の交換(例えば、下でより詳細に述べる、周期的なネットワーク監視プロセス中に実行される)は、一実施形態で、VODピアの信頼レベルによって決定されるレートで実行される。この実施形態では、より信頼性の低いVODピアは、より信頼性の高いVODピアより頻繁に「更新される」(すなわち、その隣接物とアライブリストを交換する)。例えば、デフォルト信頼レベルを有するVODピアを、1分ごとに更新することができ、VODサポートサーバ又は2の信頼レベルを有するVODピアを、1時間に1回だけ更新することができる。下でより詳細に述べるように、信頼レベル(他の要因と共に)を利用して、他のネットワーク監視テストの頻度をも決定することができる。
[289]VODピアがそのメンバである1つ以上のスーパーセットクラスタに固有の情報など、追加のメタデータを、VODピアの最初の又は後続のスタートアップ時に交換することもできる。例えば、更新されたトラッキングインデックス又はトラッキングファイルを交換することができる。これは、もちろん、その後に周期的な基礎で及び/又はそのようなファイルに対する変更によって起動されて交換することもできる。
2.コンテンツオブジェクトのパブリケーション及びプッシュ
[290]上で注記したように、新しいコンテンツオブジェクトがネットワーク上に公開される(すなわち、イベントが発生する)時には、2つの主要な機能すなわち(1)コンテンツオブジェクトのパブリケーションの「アナウンスメント」と、それに続く(2)コンテンツオブジェクト自体の実際の「パブリケーション」(すなわち、さまざまなVODピアへのコンテンツオブジェクトパッケージの分散プッシュ)が実行される。
[291]やはり上で述べたように、一実施形態では、初期パブリケーションサーバが、イベントのCRIDを生成し、そのイベントをさらにアナウンスするためにパブリケーションアナウンサ(例えば、コンテンツオブジェクトを公開しなければならない区域により近い信頼性の高いVODピア)を探す。パブリケーションアナウンサのそれぞれは、コンテンツオブジェクトを公開するプロセスを管理する、1つ以上のパブリケーションマスタ(相対的に非常に信頼性の高いVODピア)を選択する。
[292]パブリケーションマスタは、コンテンツオブジェクトの人気の「予測される」レベルを判定し(下でより詳細に述べるように)、関心要求をパブリケーションサーバに発行し(直接に又はパブリケーションアナウンサを介して間接的に)、パブリケーションサーバは、この関心要求を使用して、コンテンツオブジェクトがそれに分割されなければならないパッケージの適当なサイズ及び個数を判定する。パブリケーションマスタは、トラッキングインデックス(トラッキングファイルを格納するVODピアとCRIDとを相互に関連させる)及びトラッキングファイル(コンテンツオブジェクトのパッケージのグループがプッシュされ、格納されるVODピアとCRIDとを相互に関連させる)をも生成し、更新する。
[293]一実施形態で、パブリケーションマスタは、次に、コレクション要求をパブリケーションアナウンサに発行し、パブリケーションアナウンサは、パブリケーションサーバからトラッキングインデックス及びパッケージのグループを入手するコレクタを(それ自体の間で)指定する。各パブリケーションマスタは、パッケージのグループがさらにプッシュされ、格納される候補VODピアを識別し(例えば、特定のクラスタ内又はサブクラスタ内のVODピアの間で)、そのようなパッケージをこれらのVODピアにダウンロードする責任を負う。
[294]したがって、一実施形態で、パブリケーションサーバは、イベントを1つ以上のパブリケーションアナウンサ(そのイベントを1つ以上のパブリケーションマスタにさらにアナウンスする)に「アナウンス」する。これらのアナウンスメントを実施する通信プロトコル1000を図10aに示すが、図10aには、パブリケーションサーバ1005がイベントを1つ以上のパブリケーションアナウンサにアナウンスするプロセス(上で述べたさまざまな拡張メッセージを利用する)が示されている。
[295]この実施形態では、パブリケーションサーバ1005は、まず、VODサポートサーバ1010に連絡して、非常に信頼性の高い(例えば、信頼レベル「2」)パブリケーションアナウンサのリストを入手する。最初の通信1032で、パブリケーションサーバは、published_list_requestメッセージ(イベントCRIDを含む)をVODサポートサーバ1010に送信する。VODサポートサーバ1010は、通信1033でpublished_list_responseメッセージ(候補パブリケーションアナウンサのノードIDを含む)によって応答する。
[296]その応答メッセージで入手されたノードIDを利用して、パブリケーションサーバは、次に、この2つの有望なパブリケーションアナウンサ(それぞれが信頼レベル「2」のVODピアである「ノードF」1015及び「ノードA」1020)に連絡し、これらのそれぞれに、それぞれ通信1036及び1038でpublished_announcementメッセージ(やはりイベントCRIDを含む)を送信する。この例では、ノードF 1015は、CRIDで識別されるコンテンツオブジェクトがそのクラスタに存在してはならない(例えば、その地理的区域がCRIDのパブリケーション権利フィールドに基づいて除外されるので)と判定し、したがって、通信1036のpublished_announcementに応答しない。
[297]他の実施形態では、もちろん、否定的応答メッセージ又は他の肯定応答メッセージを利用して、例えば、応答の欠如の他の理由(デバイス障害又はネットワーク障害など)を区別することができる。さらに、上で注記したように、さまざまなハンドシェーキングプロトコルを使用して、信頼できる確実な接続を入手でき(適当な肯定応答と共に)、これは、そのような追加メッセージの必要をなくすことができる。
[298]しかし、ノードA 1020は、通信1039でpublished_announcement_responseによって応答し、イベントのパブリケーションをそのクラスタ内で進行できることを示す。上で注記したように、一実施形態では、類似するアナウンスメントフェーズ(図示せず)が、このイベントのパブリケーションフェーズの責任を負うパブリケーションマスタを識別するために発生する。
[299]このアナウンスメントフェーズの後に、パブリケーションマスタは、候補VODピアへのコンテンツオブジェクトパッケージ(及び関連するトラッキングファイル)の実際のパブリケーション(プッシュ)の責任を負う。これは、一実施形態で、どのコンテンツオブジェクトパッケージがどのVODピアにプッシュされるかの判定を含む。他の実施形態では、パブリケーションサーバ(又は他の「ヘルパ」VODピア)が、このプロセスで援助する(又は排他的に取って代わる)ことができる。
[300]このコンテンツオブジェクトパッケージの分散ダウンロードを実施する通信プロトコル1050の一実施形態を図10bに示す。図10bには、パブリケーションマスタが「フィーダノード」として働いて、他の(通常はわずかにより信頼性の低い、例えば信頼レベルXであり、Xは「4」と等しいものとすることができる)VODピアへのコンテンツオブジェクトパッケージのプッシュをもたらすプロセス(上で説明していない追加の拡張メッセージを利用する)が示されている。そのようなVODピアは、後続VOD要求に関する所望のNQoSのレベルを可能にするために、コンテンツオブジェクトパッケージが候補クラスタ間及び候補クラスタ内で十分に分散されるまで、この分散プロセスを継続する(図示せず)。
[301]図10bに移ると、「ノードA」1060(パブリケーションマスタのうちの1つ)は、これらの候補VODピアのうちで、特定のコンテンツオブジェクトパッケージがプッシュされなければならない2つ(「ノードB」1065及び「ノードC」1070)を識別し、そのようなコンテンツオブジェクトパッケージのダウンロードをもたらすために通信を開始する。通信1071で、ノードA 1060は、feed_cluster_startメッセージをノードB 1065に送信し(「供給クラスタ」にノードA 1060を含める意図を示す)、ノードAの同意を確認する(例えば、ノードBが使用可能な空間を有することなど)ノードB 1065からのfeed_cluster_responseメッセージ(通信1072の)を待つ。同様に、ノードA 1060は、feed_cluster_startメッセージをノードC 1070に送信し(通信1074で)、ノードCからの確認するfeed_cluster_responseメッセージ(通信1075の)を待つ。
[302]この実施形態では、これらのメッセージに対する応答を受信した時に、パブリケーションマスタノードA 1060は、この「供給クラスタ」内の候補VODピア(すなわち、ノードB 1065及びノードC 1070)のリストについてパブリケーションサーバ1055に通知する。その結果、パブリケーションサーバ1055が、これらのVODピアへのコンテンツオブジェクトパッケージダウンロードを引き受けると決定した場合に、それ自体でその作業に優先順位を付け、スケジューリングすることができるようにするために、cluster_download_listメッセージをパブリケーションサーバ1055に送信する(通信1077で)。この実施形態では、応答は不要であるが、通信1078は、否定のcluster_download_list_responseメッセージを示す。
[303]次に、ノードA 1060は、ノードB 1065及びノードC 1070へのそのようなコンテンツオブジェクトパッケージのダウンロードをスケジューリングする(類似するfeed_cluster_startメッセージ及びfeed_cluster_responseメッセージを含む、めいめいの通信1082及び1086とめいめいの応答1083及び1087とを介して)。次に、コンテンツオブジェクトパッケージの実際のファイル転送ダウンロード(詳細には図示せず)が、開始される。図示されてはいないが、この分散プロセスは、関係するコンテンツオブジェクトパッケージがノードB 1065及びノードC 1070だけではなくターゲットクラスタ内の候補VODピアのすべてにプッシュされるまで、継続する。
[304]ターゲットクラスタ内のすべての候補VODピアへのコンテンツオブジェクトパッケージのこの分散プッシュが完了したならば、ノードB 1065及びノードC 1070のそれぞれは、ノードA 1060にcluster_download_completeメッセージを送信する(めいめいの通信1091及び1092を介して)。ノードA 1060は、通信1094を介してpublishing_completeメッセージを送信することによって、この分散プッシュプロセスのノードA 1060の部分が完了したことをパブリケーションサーバ1055に通知する。
3.コンテンツオブジェクトの「インスタントプレイ」及びプル
[305]コンテンツオブジェクトが公開され、その構成要素パッケージがさまざまなクラスタ全体のVODピアにプッシュされたならば、ユーザは、本発明のVOD機能性を呼び出し、さまざまな特徴(その多くを上で詳細に述べた)によって使用可能にされる一貫したNQoSを伴ってそのようなコンテンツオブジェクトを(しばしば即時に)見るようにすることができる。
[306]本発明の「インスタントプレイ」態様を容易にする、そのような特徴の1つが、構成要素パッケージへのコンテンツオブジェクトの分割及びネットワーク全体を通じたVODピアのクラスタの間でのそのようなパッケージのグループの分散である。コンテンツオブジェクト1100のパッケージのこの分散を、図11に示す。
[307]上で述べたように、一実施形態で、コンテンツオブジェクト(例えば、映画)は、通常、始めから終りまでの直線的進行を有する。コンテンツオブジェクトパッケージを、コンテンツオブジェクト1100の始め1100に向かってより小さくなるグループ及びコンテンツオブジェクト1100の終り1120に向かって徐々により大きくなるグループにグループ化し、これらのより小さいより早期のグループを相対的により多数のVODピア1150に格納することによって、コンテンツオブジェクト1100のVODビューイングを要求するVODピアは、そのようなより早期のグループを相対的に迅速に入手することができる(すなわち、これらがより小さく、より多くの他のVODピアでの格納に起因して近くにある可能性がより高いので)。コンテンツオブジェクト1100のパッケージの後続グループは、そのようなグループのダウンロードに必要なより長い時間(パッケージのそのようなグループの相対的により少数のコピーが存在するという事実並びにそのより大きいサイズに起因して)を与えるのに、シーケンシャルな形でコンテンツオブジェクト1100を見るのに必要な追加の時間を利用することによって、並列にダウンロードすることができる。
[308]一実施形態では、これが、コンテンツオブジェクト1100を可変長パッケージに分割することによって達成される(例えば、より早期のパッケージはより小さく、後続パッケージは徐々に大きくなる)。他の実施形態では、コンテンツオブジェクト1100のパッケージを固定サイズとすることができる。サイズの可変性は、VODピア1150での格納に関してより少数又はより多数のそのようなパッケージのグループ化によって達成される。徐々に大きくなる可変サイズパッケージ(又は徐々により多数になる固定サイズパッケージ)の使用は、もちろん、同一の基本原理の多数の異なる可能な実施態様の1つにすぎない。例えば、可変サイズパッケージのサイズ(又は固定サイズパッケージの個数)を、コンテンツオブジェクト1100の始め1110又は終り1120でのみ、或いは「インスタントプレイ」を容易にするという結果並びにVOD機能性と一貫するパッケージの一貫した信頼できるダウンロードを効果的にもたらす他のパターンで、変更することができる。
[309]さらに、この特徴は、コンテンツオブジェクトパッケージの特定のグループの格納のために、クラスタ間とクラスタ内との両方で特定のVODピアを注意深く選択することによって、さらに容易にされる。図12は、単なるVODピアのクラスタではなく、主にインターネットの既存インフラストラクチャに起因して存在する信頼レベルの比較的自然な分布1200を示す。図12は、本発明の目的に利用し、その相対的な近接又は互いからのインターネット距離に基づいてコンテンツオブジェクトパッケージを格納できるVODピアのクラスタ(及びサブクラスタ)を形成する機構を提供することができる。
[310]図12に示された実施形態の最も信頼性の高い信頼レベル1270には、相対的に少数のVODサポートサーバ1260がある。最も信頼性の低い信頼レベル1280には、インターネットの「コア」にある高帯域幅ブロードバンドルータ及びISPからインターネット距離において相対的に遠い端に多数の「葉ノード」VODピアがある。この2つの端の間には、「中間」信頼レベル1250(例えば、1から16までのスケール上で6〜9)を有する相対的に適度な個数のVODピアがある。
[311]VODピアの個数の、そのようなVODピアの「信頼のレベル」とのこの逆相関が示すものは、インターネットの物理インフラストラクチャが、隣接するVODピアの相対的に均一な組を容易にするクラスタ(及びサブクラスタ)の形成の機構を提供することである。例えば、図12が通常のクラスタを表すならば、どの信頼レベル内にも、インターネットのバックボーン又は「コア」からの相対的に類似するインターネット距離を有するVODピアの組がある。最も信頼性の高い信頼レベル1270にあるVODサポートサーバ1260は、このインターネットコアの相対的に近くにある。このスペクトルの他方の端では、最も信頼性の低い信頼レベル1280の多数の「葉ノード」VODピアが、このインターネットコアから相対的に遠くにある。しかしながら、信頼レベル全体を見ると、互いに近接する(インターネット距離において)VODピアの相対的に均一な分布がある。
[312]言い換えると、インターネットコアから外向きに働くことによって、各信頼レベルのVODピアのこれらの組を効果的に「スライスする」ことができ、信頼レベルにまたがるVODピアのスライスを、互いへの相対的な近接(インターネット距離での)に基づいて組み合わせられるようになる。この「信頼レベル間」スライスの結果は、VODピアのクラスタであり、さまざまな信頼レベルを有するが、互いへの相対的に近接するインターネット距離を共有する。しかし、下でより詳細に述べるように、VODピアの「信頼のレベル」に対するそのようなVODピアの個数のこの逆相関は、挙動及び他のネットワークベースの考慮事項に起因して、経時的にさまざまな異なる構成に進化する可能性がある。
[313]クラスタにまたがる及びクラスタ内のさまざまな信頼レベルのVODピアの間のコンテンツパッケージのこの静的な「プッシュ後」分散を述べたので、これから、本発明のプル態様を実施するある主要な動的通信プロトコルに注意を向ける。
[314]その公開中のコンテンツオブジェクトのプッシュと同様に、VODピアによる「オンデマンドの」ビューイングのためのそのようなコンテンツオブジェクトのプルは、2つの主要な機能を含む。すなわち(1)関連するトラッキングインデックス及びトラッキングファイル(すなわち、選択されたCRIDを含むファイル)を格納するVODピアの検索、及び(2)これらのトラッキングファイルで識別されるVODピアからのコンテンツオブジェクトパッケージのダウンロードである。
[315]一実施形態で、使用可能なコンテンツがVODピアに知らされる(分散された形で)時に必ず、そのような情報は、各公開されたコンテンツオブジェクト(イベント)のCRID並びにさまざまなメタデータ(例えば、題名、ジャンルなど)を含む。メタデータは、そのイベントに関し、VODピアのユーザインターフェースを介してユーザに使用可能にされる。VODピアのユーザが、そのVODピアのユーザインターフェースを介してVODビューイングのためにコンテンツオブジェクトを選択する時に、クライアントソフトウェアは、その内部メモリにアクセスし、そのコンテンツオブジェクトに相互に関連するCRIDを抽出するようにする。
[316]図13aに、対応するトラッキングインデックス及びトラッキングファイルを突き止めるのにそのCRIDを利用する通信プロトコル1300の実施形態を示す。トラッキングインデックス及びトラッキングファイルは、所望のコンテンツオブジェクトの構成要素パッケージが格納されているさまざまなVODピアを識別し、そのコンテンツオブジェクトの「オンデマンド」ビューイングのためにこれらのVODピアからそのようなパッケージをダウンロードするのにその後に使用される。この実施形態では、要求元VODピアである「ノードA」1305(「4」の信頼レベルと仮定する)は、まず、同一の信頼レベルを有する既知の隣接するVODピア(例えば、そのアライブリストに含まれる)に連絡することと、index_requestメッセージ(上述)を送信することとによって、CRIDに対応するトラッキングインデックスを検索する。
[317]同一信頼レベルのVODピアの間でトラッキングインデックスを見つけることに成功しない場合には、ノードAは、トラッキングインデックスが見つかるまで、より高い信頼レベルのVODピアの検索に進む。他の実施形態では、トラッキングインデックスが見つかる前にトラッキングファイルを識別することができる(例えば、対応するトラッキングインデックスとトラッキングファイルとの両方に関する要求を送信することによって)ことにも留意されたい。
[318]図13aに戻って、ノードA 1305は、通信1322を介して「ノードB」1310(やはり「4」の信頼レベルを有する)にindex_requestメッセージを送信する。また、ノードA 1305は、通信1323を介して、(この例では)関連するトラッキングインデックス(又は、もう1つの実施形態では、要求されたCRIDに対応するトラッキングインデックスの関連するエントリ)を含むindex_responseメッセージを受信する。ノードA 1305は、次に、対応するトラッキングファイルのコピー(要求されたCRIDに対応するコンテンツオブジェクトの構成要素パッケージを実際に格納しているVODピアを識別する)を有するVODピアのノードIDをこれらのエントリから抽出する。
[319]このシナリオに従えば、トラッキングファイルを格納するエントリの1つが、「ノードC」1315である(ノードCは、もちろん、ノードA 1305又はノードB 1310のいずれとも異なる信頼レベル「X」を有することができる)。次に、ノードA 1305は、通信1325を介するノードC 1315へのtracking_file_request(やはり上で述べた)の送信に進み、通信1326を介して、要求されたCRIDに対応するトラッキングファイルを含むtracking_file_responseを受信する。次に、ノードA 1305は、そのトラッキングファイルから、要求されたCRIDに対応するコンテンツオブジェクトの構成要素パッケージを実際に格納しているさまざまなVODピアのノードIDを抽出する。これらのノードIDは、VODビューイングのためのコンテンツオブジェクトパッケージのダウンロードの次のフェーズを開始するのに必要な情報を与える。
[320]この次のフェーズを図13bに示す。図13bには、コンテンツオブジェクトパッケージをダウンロードする通信プロトコル1350の実施形態が示されている。この実施形態では、通常、所望のコンテンツオブジェクトのパッケージの異なるグループを格納する複数のVODピア(したがって、対応するトラッキングファイル内の複数のノードIDエントリ)があることに留意されたい。図13bには、1つのそのようなVODピアとの通信が示されているが、複数の類似する通信を並列に実行することができる。この実施形態では、「より早期の」パッケージ(すなわち、例えば映画の、より早期の部分を含むパッケージ)を格納するVODピアが、まず連絡される。というのは、これらのファイルが、ビューイングのためにより早期に必要になるからである。しかし、リアルタイム再生速度の場合であっても、複数のそのような要求を開始するのに必要な時間の長さは、ダウンロードが大きい遅延なしで発生する(上と下との両方でより詳細に述べるように、NQoSが役に立つ場合である)ならば、相対的にわずかである。さらに、下で述べるように、複数のファイルを、そのようなVODピアのそれぞれからダウンロードする(並列にも)ことができる。
[321]所望のコンテンツオブジェクトの特定のパッケージを格納するVODピアのうちの1つとして「ノードB」1360を識別したので、「ノードA」1355は、通信1372を介してノードB 1360にfile_check_requestメッセージ(やはり上で述べた)を送信する。このメッセージには、1つ以上のファイル(すなわち、所望のコンテンツオブジェクトのパッケージのグループ)をダウンロードするための所望の個数の接続が含まれる。ノードB 1360は、通信1373を介してfile_check_response(やはり上で述べた)を応答する。この応答には、現在使用可能な接続の個数又は接続が現在使用可能でない場合には待ち時間のいずれかが含まれる(キュー内のファイルの個数と共に)。
[322]図13bに示された例では、通信1373でのノードB 1360からのfile_check_responseは、2つの接続が使用可能であり、ファイルのダウンロードに予約されていることを示す。次に、ノードA 1355は、通信1376を介する「file_feed_request」メッセージ(前に説明はしていない)の送信に進む。このメッセージは、ノードB 1360からのfile_check_responseメッセージで指定された2つの予約されたチャネルを使用する、ファイル(トラッキングファイルで指定された所望のコンテンツオブジェクトのパッケージを含む)のダウンロードを起動する。次に、ノードB 1360は、めいめいの通信1377及び1378(2つの指定された通信チャネルに対応する)を介して、実際のファイルを含むcontent_package_feedメッセージ(前に説明はしていない)をノードA 1355に送信する。
[323]これらのファイルを受信する時に、要求元のVODピアであるノードA 1355は、そのユーザインターフェースを介する表示のためにコンテンツオブジェクトのこれらのパッケージのキューイングを開始することができる。パッケージの初期グループは、即座に見ることができ、パッケージの後続グループは、通常は、即座に必要になるまで、「ジャストインタイム」ビューイングのためにキューイングされる。このプロセスは、ポイントツーポイントストリーミングダウンロードに多少似ているが、非常に異常な極端なシナリオを除いて再生バッファが使い果たされないことを保証するために、重大なインテリジェンス(NQoS、プッシュプロセス、プルプロセスなどを含む本発明のさまざまな特徴に固有の)を用いてマルチポイントの基礎で達成される。
[324]上で説明した通常のプルダウンロードのシナリオに加えて、いくつかの補足的な特徴が、一実施形態で含まれる。その特徴は、比較的希な場合さえ考慮に入れ、要求されたコンテンツオブジェクトの再生を遅延され、及び/又は中断される確率をさらに最小にするようにする。例えば、図14に示された一実施形態では、VODピア1410が2つの主要な「フィーダ」VODピア1420及び1430にパッケージダウンロードを(並列に)要求している、プルダウンロードシナリオ1400が示されている。上で注記したように、VODピア1410は、VODピア1420からパッケージの1つのグループを、VODピア1430からパッケージ(同一コンテンツオブジェクトの)の異なるグループを受信していると仮定することができる。
[325]しかし、これらの「フィーダ」VODピア1420及び1430の一方又は両方が、VODピア1410にファイルを転送するプロセス中に中断をこうむるシナリオがある。例えば、あるVODピアが、ローカルデバイス障害をこうむる場合があり、或いは、ネットワーク障害が、VODピア又は他のネットワークノード(例えば、それ以外の点では本発明のVODネットワークの一部ではない、2つのVODピアの間の中間ルータ)が単純に消滅することに起因して発生する場合がある。
[326]その場合に、VODピア1410は、「フォールバック」VODピア(例えば、メイン又は主VODピア1420の副又はフォールバックVODピア1425及び主VODピア1430の副VODピア1435)に頼る必要がある場合がある。そのような「崩壊ハンドリング」機能性を実施できる複数の異なる形がある。例えば、一実施形態で、VODピア1410は、追加の使用可能な接続を利用して、エラーが発生する前にそのような副VODピアからのダウンロードを開始することができる。VODピア1410は、パッケージのより後のグループより早く必要になる所望のコンテンツオブジェクトのパッケージのより早期のグループに向かっての副VODピアの選択(受信するトラッキングファイルエントリに存在するノードIDのドメインからの)に優先順位を与えることができる(コンテンツオブジェクトの再生の中断を防ぐために)。
[327]一実施形態で、そのような崩壊ハンドリング機能性は、非常に信頼性の高い(例えば、信頼レベル「2」)ピアとの「rescue_preparation」メッセージ及び「rescue_preparation_response」メッセージの最初の交換によって実施される(VODピアが、その主「フィーダ」VODピアとの接続が低速化しているか、障害を発生したか、すぐに障害を発生する可能性があることを認識した後に)。主接続に障害が発生する(又は、ある所定の閾値を超えて低速化する)場合には、VODピアは、その非常に信頼性の高いVODピア(それが受信した先立つ通知に起因して、NQoSの低下なしでそのような要求に対処する準備ができている可能性が高い)を介する残りのパッケージグループのダウンロードを要求することができる。
[328]要求元VODピアへのパッケージのダウンロード(プル)での中断の処理又はその回避を先取りして試みることに加えて、他のシナリオには、潜在的な「フィーダ」VODピアが、期待されるNQoS又は所望のNQoSを伴って要求されたダウンロードを完了するのに十分な個数の使用可能な接続を有しない(例えば、要求の過負荷、既存ダウンロード接続などに起因して)ことを認識する(例えば、「file_check_request」メッセージの受信時に)情況が含まれる。
[329]一実施形態で、その潜在的な「フィーダ」VODピアは、要求元VODピアに、要求をキューイングする(すなわち、遅延させる)(上で「file_check_request」メッセージ及び「que_request」メッセージとその応答とに関して述べたように)、又は要求を完了するのに別の(副又はフォールバック)VODピアに頼る(或いは、もう1つの実施形態では両方を行う)オプションを与えることができる。
[330]もう1つの実施形態では、要求元VODピア(又は、おそらくは潜在的な「フィーダ」VODピアさえ)は、要求されたコンテンツオブジェクト(又は、おそらくはコンテンツオブジェクト全般)をダウンロードするのに十分な、そのクラスタ内の帯域幅を有していない。しかし、要求元VODピアは、大幅によりよいイントラクラスタ(及び/又はインタークラスタ)接続性を有する隣接VODピア(「バディ」)とのよい接続を有することを認識することができる。この実施形態では、要求元VODピアは、1つ以上のコンテンツオブジェクト(又は構成要素パッケージグループ)をダウンロードする作業をその「バディ」に委任することができる。この「バディ」は、要求元VODピアでのビューイングのために、そのようなコンテンツオブジェクトを転送する(上で述べた「buddy_request」メッセージ、「buddy_function_request」メッセージ、及び「buddy_download_request」メッセージとその応答とを利用して)。この「バディ機能」は、「要求ごとの」基礎で、又は他の実施形態ではより少なく一時的な基礎で使用することができる。また、上で注記したように、潜在的な「フィーダ」VODピアさえもが、このバディ機能を利用することができる、すなわち要求元VODピアへのパッケージの要求されたグループのダウンロードを委任するのに利用することができる。
[331]上のシナリオのすべてが、コンテンツオブジェクトパッケージのダウンロードに対する「クライアント−サーバ」手法を用いる。しかし、要求を完了するのに不十分な帯域幅及び/又は接続性に直面する要求元(及び「フィーダ」)VODピアのもう1つのオプションは、意図された受信側に達するまでそのようなダウンロードを中継する(例えば、1つのクラスタ内で)ピアの連鎖にダウンロードをマルチキャストすることを含む、「ピアキャスティング」として知られる代替方法である。一実施形態でのそのような技法の使用は、特定のVODピアの過負荷を克服することができる(例えば、「緊急」のシナリオで、又は特定のコンテンツオブジェクトの人気が非常に高く、多数のVODピアがほぼ同時にそれを見ることを望む時)。
[332]しかし、この技法は、このシナリオでのトラッキングインデックス及びトラッキングファイルの更新がない結果としてのQoS(したがって本発明の状況でのNQoS)に対する悪影響に起因して、一時的な手段としてのみ推奨される。その代わりに、VODピアは、所望のパッケージグループを入手するために連絡しなければならない他のVODピアがどれであるかを直接に知らされる。
[333]例えば、複数の他のVODピアに「供給している」VODピアは、「ピアキャスティング」の機会を認識することができる(例えば、これらの複数のVODピアに互いに直接に「供給」させることによって帯域幅を節約するために)。そのVODピアは、次に、あるVODピア(例えば、最も信頼されるVODピア)を「サーバ」として、別のVODピアを「クライアント」として指定することができる(例えば、指定される「サーバ」ノードIDの識別を含む、上で述べた「peer_casting_client」メッセージを介して)。この実施形態では、そのVODピアは、「ピアキャスティング」シナリオが確認されるまで(例えば、「クライアント」が「サーバ」に連絡し、この「ピアキャスティング」シナリオを受け入れたことを示す、上で述べた「peer_casting_client_response」メッセージを介して)、両方へのパッケージグループのダウンロードを継続する。そのVODピアは、さらに、「サーバ」VODピアへのパッケージグループのダウンロードを継続し、「サーバ」VODピアは、それらを「クライアント」VODピアにダウンロードする(例えば、上で述べた「peer_casting_download_setup」メッセージに応答して)。
4.NQoS及びネットワークトラフィックの動的監視
[334]通信プロトコル及びメッセージングを、全般的に並びに本発明の主要なプッシュ機能性及びプル機能性に関して具体的に述べたので、これから、VODピアがネットワークトラフィック(VOD機能性の挙動態様並びに帯域幅及び信頼性などのネットワーク属性を含む)を動的に監視し、既存インターネットインフラストラクチャに頼るネットワークの状況でVODアプリケーションにNQoSを提供するためにさまざまな「コンテンツ平衡化」機能及び関連機能を実行する手段に注意を向ける。
[335]上で注記したように、及び図15に示された実施形態では、各VODピアのクラスタコントローラが、主に、この分散動的監視機能性の責任を負う。ネットワーク及び挙動活動の監視に加えて、これらのクラスタコントローラは、そのような監視の結果としてさまざまなネットワーク属性及びコンテンツ分散属性をも変更し、効果的に「分散閉ループフィードバック」システム1500をもたらす。
[336]このシステム1500は、VODピアが、すべての要求に先立って、そのVODピアに特定のコンテンツオブジェクト(その隣接するVODピアの間でパッケージで分散されている)をある所定の時間以内に配信するネットワークの能力を識別することを可能にすることによって、効果的にネットワークに組み込まれるQoS(NQoS)を提供する。
[337]「5」の信頼レベルと、他の既知のVODピアのクラスタコントローラとの通信(一実施形態では、クラスタ内とクラスタにまたがってとの両方)を可能にするクラスタコントローラ1520とを有するVODピア1510が、図15に示されている。これらの他のVODピアは、同一の信頼レベルを有するもの(例えば、VODピア1510a)、より低い信頼レベルを有するもの(例えば、VODピア1510b)、及びより高い信頼レベルを有するもの(例えば、VODピア1510c)を含む。将来の例での参照を容易にするために、VODピア1510aを、本明細書では特定のVODピア(当初は「5」の信頼レベルを有する)とも称する。
[338]動的ネットワーク監視1525は、(上でより詳細に説明したように)システム1500内の各VODピアのクラスタコントローラの間の通信を含む分散プロセスである。個々のVODピアによって、それ自体のために、テストを実行することができ、そのようなテストの統計結果を維持することができる。例えば、一実施形態で、VODピア1510は、その既知の隣接物のうちの3つとの周期的pingテストを実行し、そのようなテストの結果(例えば、長、短、及び平均ping時間、失敗の回数など)をそのノードIDのネット測定値フィールドに記録することができる。一実施形態で、変化するサイズのファイルを用いる相対的に小さいファイル転送を実行することもできる(例えば、隣接物並びに変化する信頼レベルの遠隔VODピアに対して)。
[339]さらに、一実施形態で、相対的に非常に信頼性の高いVODピアが、そのクラスタの代わりに、そのようなテストを実行し、その結果を維持することができる(潜在的にインタークラスタ活動及びイントラクラスタ活動を含む)。例えば、VODピア1510と同一のクラスタ内の相対的に非常に信頼性の高いVODピア(例えば、信頼レベル「3」)が、そのクラスタ内のすべてのVODピア(又はあるサブセット)によって実行されたpingテストの累積的結果を反映する類似する値を維持することができる(例えば、VODピアにそのネット測定値フィールドの値について照会する分散メッセージから抽出される)。
[340]隣接するVODピア及び遠隔VODピアの間で「包括的」ネットワークトラフィックテスト(ping、traceroute、変化するサイズのファイル転送など)を実行すること(個別に又はイントラクラスタ若しくはインタークラスタの基礎のいずれで維持されるものであれ)の他に、クラスタコントローラは、一実施形態で、実際のVODネットワークトラフィックを監視することもできる。例えば、特定のコンテンツオブジェクトに関する要求又はコンテンツオブジェクト全般に関する要求が、さまざまな信頼レベルのVODピアのクラスタコントローラによって検出される(例えば、これらの要求に関係付けられる所定のメッセージがそのようなVODピアを「通過する」ので)。
[341]このVODネットワークトラフィックは、「グローバルに」(例えば、VODネットワーク全体について)又はインタークラスタレベル、イントラクラスタレベル、若しくは純粋に「ローカル」レベル(例えば、個々のVODピア)でさえ維持することができる。一実施形態で、そのような情報に、すべてのコンテンツオブジェクト及び/又は特定のジャンルに含まれるコンテンツオブジェクト若しくは要求の所定の最大閾値又は最小閾値を超えるコンテンツオブジェクトに関する特定の毎日のタイムスロット内の要求の個数を含めることができる。さらに、クラスタ内及びクラスタ間でのVODピアの間のコンテンツオブジェクトパッケージの分散に関する情報をも維持することができる。例えば、あるコンテンツオブジェクト又は特定のジャンルに含まれるコンテンツオブジェクトのコピーの個数を、経時的に維持することもでき、コンテンツオブジェクトのパッケージの特定のグループのコピーの個数(例えば特定のクラスタ内の)を経時的に維持することもできる。
[342]一実施形態で、これらの動的ネットワーク監視1525テストの一部又はすべてを、周期な基礎で並びにさまざまな起動(例えば、デバイス障害、ネットワーク障害、特定のコンテンツオブジェクトに関するVOD要求、或いは特定の時間間隔内にアクセスされたコンテンツオブジェクトに関するVOD要求などの検出)に応答して実行できることに留意されたい。さらに、そのようなテストの結果は、最小スコア又は最大スコア、並びに平均値又は経時的に蓄積される他の累積的値を反映することができる。上で注記もしたように、そのような「監視する」トラフィックでネットワークに過負荷を与えないようにするために、平衡が維持される(例えば、実質的なVODネットワークトラフィック自体に関するNQoSを大きく損なわないようにするために)。
[343]そのような統計を経時的に維持することによって、VODピアのクラスタコントローラは、これらの統計に基づいて処置を講じることができる(一実施形態で)。上で注記し、図15に示したように、動的ネットワーク監視1525によって入手された結果は、さまざまな信頼レベルのVODピアによって、動的ネットワーク監視結果データベース1532内(一実施形態では、中央でVODピアからアクセス可能)並びにそれら自体のノードIDのネット測定値フィールド(図示せず)内で維持することができる。したがって、この情報は、VODピア1510などの個々のVODピアへの「フィードバック」1534だけではなく、各VODピアのクラスタコントローラの間の分散通信を介する他のVODピアへのフィードバックにも使用可能である。
[344]このフィードバック1534は、上で述べ、図15に示したように、個々のVODピアの属性並びにVODネットワークインフラストラクチャ(例えば、クラスタメンバシップと、そのようなクラスタ内及びクラスタの間でのVODピアの間のコンテンツオブジェクト及びその構成要素パッケージのグループの分散)に対するさまざまな変更1530に反映される。例えば、包括的ネットワークトラフィックテストの結果として、又はコンテンツオブジェクトに関する要求に対する実際の応答の結果としてさえ、特定のVODピアの信頼レベルを経時的に変更することができる。これらの「信頼レベル変更」1536は、下で述べるように、それによってNQoSが影響を受ける1つの重要な手段である。
[345]「パッケージ分布変更」1538(やはり下で述べる)は、NQoSに影響するもう1つの重要な手段である。これには、一実施形態で、コンテンツオブジェクト及びそのパッケージの構成要素グループの展開の変更を含めることができる。例えば、特定のコンテンツオブジェクト(及び/又はそのパッケージの構成要素グループ)のコピーの個数を増やすか減らすことができる(例えば、特定のクラスタ内又は特定のクラスタ間で経時的に監視されたコンテンツオブジェクトの人気又はコンテンツオブジェクトのジャンルの人気の結果として)。あるコンテンツオブジェクト(又はコンテンツオブジェクト全般)の構成要素パッケージのサイズ及び個数も変更することができる。
[346]信頼レベル変更1536及びパッケージ分布変更1538に加えて、NQoSに影響するのに使用できるさまざまな他の変更1539がある。例えば、一実施形態で、クラスタメンバシップを、動的ネットワーク監視1525の結果に基づいて変更することができる(例えば、既知の隣接するVODピアの組を、十分に短い隣接するping時間を示すVODピアに制約することによって)。他の変更に、要求(又は他のメッセージ)が最初に送信されるVODピアの個数を変更することを含めることができる(例えば、類似するメッセージに関する以前の成功率又は応答時間に基づいて)。特定のタイプの変更とは別に、経時的に動的に監視でき、その後にフィードバック1534を介して変更できるノード属性又はネットワーク属性に対する実質的にすべての変更が、NQoSに影響する際に役割を演じることができることに留意されたい。一部の変更及び動的に監視されるテストは、単純に、他の変更及びテストより効果的であり、効率的である(個別に及び組合せで)。
[347]一実施形態で、個々のVODピア1510による「包括的」ネットワークトラフィックテストの結果が、VODピア1510aの信頼レベルの変化を起動することができる(例えば、VODピア1510aに関するpingテスト失敗の閾回数を超えることに起因して)。上で詳細に述べたように、さまざまな信頼レベルパラメータが、経時的に維持される構成要素信頼レベル要因から判定される(一実施形態で)。これらの構成要素信頼レベル要因の累積的結果が、現在の計算された信頼レベルである。したがって、特定の動的ネットワーク監視1525テストの結果として信頼レベル要因を変更することが、信頼レベルパラメータの相対的に即座の変化を、及び最終的に信頼レベル自体の相対的に即座の変化(これは、VODピアのノードIDの信頼レベルフィールドに反映される)を起動することができる。
[348]これらの動的な信頼レベル変更1536(動的なフィードバック1534を介して図示)がNQoSにどのように影響するかを理解することが重要である。上で注記したように、既存のインターネットインフラストラクチャは、固有にはQoSを提供しない。
[349]VODピア1510によって開始されたVOD要求は、他のVODピアの間の通信だけではなく、既存のインターネットホスト、ルータ、及び他のノード〔そのすべて、(個別に又は集合的に)実質的にすべての時に、デバイス障害並びに帯域幅及び信頼性の変化を許す〕の間の通信をももたらす。グローバルインターネットトラフィックを全体的に監視し、一貫した信頼できるQoSレベルを維持する中央機構又は分散機構はない。
[350]それでも、本発明の「分散閉ループフィードバック」システム1500は、インターネットの既存インフラストラクチャ「の上に」又はその一部として存在するVODピアのネットワークの間のそのような機構(すなわち、NQoS)を提供する。
[351]例えば、VODピア1510aは、「5」の信頼レベルを示す。しかし一方、VODピア1510aは、VODピア1510からの要求に応答し、相対的に迅速かつ確実に、例えば要求されたコンテンツオブジェクトの実質的に「即時の再生」並びに一貫した信頼できる再生を提供するのに十分に、隣接するVODピア(VODピア1510aを含む)の間で以前に分散されたそのコンテンツオブジェクトの構成要素パッケージをVODピア1510に「供給する」ことができる。したがって、VODピア1510のユーザは、ある時間間隔の間に、このサービスのレベルに満足する可能性がある。
[352]それでも、上で注記したように、他のデバイス(VODピア、インターネットルータ、インターネットホストなど)の障害が、おそらくはそのサービスのレベルに影響する可能性がある。例えば、VODピア1510aの信頼レベルが、周期的pingテストの失敗又は動的ネットワーク監視1525からの他のテストの結果として、「5」から「6」(より信頼性の低い)に変更されると仮定する。VODピア1510a内のクラスタコントローラは、信頼レベルのこの変化を検出し、隣接するVODピアに、それらが別の(より信頼性の高い)隣接物に頼る必要がある可能性があることを通知するために、1つ以上のメッセージを自動的に(或いは、もう1つの実施形態で、例えば「信頼レベル>5」など、所定の閾値を超えた場合に限って)送信することができる。
[353]一実施形態で、これは、更新されたアライブリストの日常の交換(周期的に実行され、及び/又は信頼レベルの変化によって起動される)によってより包括的に達成することができる。VODピア1510は、今や、VODピア1510aではなく、もう1つの信頼レベル「5」の隣接物(又はより信頼性の高い隣接物)に頼る(例えば、後続要求に関して)ことを知ることができ、これによって、そのような後続要求のNQoSを改善することができる。
[354]一実施形態で、アライブリストの周期的更新が実行され、より信頼性の低いVODピアは、より信頼性の高いVODピア(例えば、1時間ごとに1回)より相対的に高い頻度で(例えば、1分ごとに1回)そのような更新を実行する。VODピアのアライブリストを自動的に更新する(分散された形で)この日常の周期的プロセスは、VODピアがNQoSを改善するための変化をもたらすことを可能にするのに必要なネットワークトラフィックの量を大幅に減らす(すなわち、VODピアが、この「分散ブロードキャスト」機構を介して動的ネットワーク変化を効率的に知らされるので)。
[355]動的ネットワーク監視1525の結果として行われる、VODピア属性及びネットワーク属性に対する変更を、しばしば、互い相互に関係付けることができることにも留意されたい。例えば、上の特定の例で述べた信頼レベル変更1536が、パッケージ分布変更1538を起動することもできる。例えば、VODピア1510aの信頼レベルが「5」から「6」に変化する時に、そのような変化をも、一実施形態で、クラスタを管理するVODピアによって検出することができる(例えば、やはり周期的に又は信頼レベルのこの変化によって起動されるのいずれかの、アライブリストの分散更新を介して)。その結果、VODピア1510aに現在格納されているパッケージのグループ(又はそのサブセット)の追加コピーを、再展開することができる。例えば、もう1つのVODピア(例えば、「5」の信頼レベルを有するVODピア)を、パッケージのそのようなグループのコピーを受け取るために選択することができる。一実施形態で、これは、その「置換」VODピアに、そのようなコピーを入手するためにVODピア1510aと直接に通信させることによって達成することができる(しかし、他の実施形態では、より信頼性の高いVODピアに頼ることができ、或いは、おそらくはオリジナルの公開するサーバに連絡する)。どの場合でも、トラッキングファイル及びトラッキングインデックスが、それに従って更新される(上で述べたように)。
[356]パッケージ分布変更1538全般に関して、これらを、さまざまな異なるシナリオで実行することができる。例えば、相対的に信頼性の高いVODピアが、そのクラスタ内の要求を管理する責任を負うものとすることができる(一実施形態で、そのクラスタコントローラを介して)。特定のコンテンツオブジェクトに関する要求を検出した時に(例えば、上で述べた分散メッセージを介して)、そのVODピアは、動的ネットワーク監視結果データベース1532を更新し、事前定義の閾値、例えば、特定の時間間隔内の同一コンテンツオブジェクトに関する要求の最大個数を超えたことを通知することができる。
[357]その結果、この「マネージャ」VODピアは、一実施形態で、「フィーダ」VODピアのうちの1つ(上で述べた図14のVODピア1420など)に連絡することができる。この「フィーダ」VODピアは、要求元VODピアをトラッキングファイルに追加させる(すなわち、要求元VODピアを将来の「フィーダ」VODピアに変換する)。もう1つの実施形態では、VODピア1420は、実質的に、パブリッシャになり、コンテンツオブジェクトの追加コピーをクラスタ内で公開(プッシュ)させる(パブリケーションプロセス全般に関して上で説明したように)。
[358]したがって、NQoSは、本発明のこの「分散閉ループフィードバック」システム1500の結果として影響され(すなわち、QoSが、効果的にVODネットワークに組み込まれ)る。ここで、ネットワーク属性及びVOD挙動の動的に監視される変化が、これらのVODピア属性及びネットワーク属性に対する変更並びにVODネットワーク全体でのコンテンツオブジェクトの展開の変更の「フィードバック」を起動する。したがって、VODピアは、すべての要求に先立って、そのVODピアに特定のコンテンツオブジェクト(その隣接するVODピアの間でパッケージで分散されている)をある所定の時間以内に配信するネットワークの能力を識別することができる。
[359]VODピアのクラスタが、コンテンツをそのコンテンツのコンシューマの「近くに」配置することを可能にするインフラストラクチャを提供することによってNQoSを容易にすることにも留意されたい。上で注記したように、クラスタは、当初は既存インターネットインフラストラクチャに基づく(例えば、標準的なIPロケーションサービスによって提供されるものに基づき、部分的にはIPアドレスの類似性に基づく)が、その後、実際のネットワークトラフィック及び挙動トラフィックを反映するように動的に更新される。このインフラストラクチャは、コンテンツオブジェクトを隣接するVODピアのグループの中で分散させ、その後、ネットワークが進化する時にその「近さ」を維持するように動的に再展開することを可能にする(変化が、例えばデバイス障害及びネットワーク輻輳など、性質において「包括的」である、又は例えばピーク時の一部の又はすべてのコンテンツに関する要求の増加など、性質において挙動的であるのいずれであれ)。
[360]理由にかかわりなく、本発明のVODネットワーク内のクラスタの構成は、経時的に進化する。図16a〜16dに、異なる包括的ネットワークシナリオ及び挙動シナリオから生じる可能性があるVODピアのクラスタ(信頼レベルによってグループ化される)の4つの異なる一般的なパターン又は構成の実施形態を示す。
[361]図16aは、「円錐」パターン1600を示す。「円錐」パターン1600は、一般的なシナリオになる可能性が高いものを反映する。そのシナリオでは、クラスタ内の相対的に少数のVODピアが、非常に高く信頼されたVODピア1602(例えば、信頼レベル「2」)であり、クラスタ内の徐々に多くなるより信頼性の低いVODピアが、見つかり、最も信頼性の低いVODピア1604(例えば、信頼レベル「10」)が、このクラスタ内のこれらの「信頼レベルグループ」のうちで最も多数である。
[362]上で類似する図12に関して注記したように、信頼レベルのこの相対的に自然な分布は、主にインターネットの既存インフラストラクチャに起因して存在するが、コンテンツオブジェクトパッケージを相対的な近接又は互いからのインターネット距離に基づいて格納できるVODピアのクラスタ(及びサブクラスタ)を形成する機構を提供するために、本発明において活用することができる。
[363]さらに、VODピアの個数のその相対的な「信頼のレベル」に対するこの逆相関は、インターネット「コア」から遠いが互いに相対的に近い多数のVODピア(例えば、最も信頼性の低いVODピア1604)のクラスタへのグループ化を容易にする。その結果、図16aのVODピアは、インターネットコアからのインターネット距離にもかかわらず、共通して、互いへの相対的に近いインターネット距離を共有する。
[364]それでも、多数の非常に高くは信頼されないVODピアの存在は、残念ながら現実的ではあるが、必ずしも望ましくはない。しかし、本発明に照らすと、この短所を、コンテンツオブジェクトの相対的により多くのコピーをこの多数の相対的に信頼性の低いVODピアにプッシュすることと、この「平衡状態」の管理のより多くを相対的に信頼性の高いVODピアに委任することとによって相殺することができる。
[365]図16bに移ると、この「円柱」パターン1610は、クラスタが各信頼レベルでほぼ同一個数のVODピアを含むシナリオを反映する。インターネットの既存インフラストラクチャを与えられて、そのようなシナリオが自然に発生する可能性が高いかどうかは不明瞭である。このシナリオは、最も信頼性の低いVODピア1614(例えば、信頼レベル「10」)の、図16aに存在したものほど高い集中がないという点で、望ましくないものではないが、それでも、多数の相対的に信頼性の低いVODピアがあるという点で、それでも多少問題がある。その一方で、図16aに存在したものより高い、最も信頼性の高いVODピア1612(例えば、信頼レベル「2」)並びに相対的により信頼性の高いVODピアの集中がある。
[366]しかし、多数の非常に信頼性の高いVODピアを有することは、望ましくないものではないが、多数のより信頼性の低いVODピアを十分には相殺しない場合がある。言い換えると、コンテンツを、そのコンテンツを消費する多数のより信頼性の低いVODピアの「近くに」プッシュする必要が、依然としてある。多数の非常に信頼性の高いVODピアが存在するという事実は、コンテンツオブジェクトのより多くのコピーをこれらの相対的に多数のより信頼性の低いVODピアに下にプッシュすることを必要とする。
[367]図16cに移ると、この「球」パターン1620は、シナリオを反映する。そのシナリオにおいて、大多数のVODピアが適度な信頼レベル(例えば、信頼レベル「4」から「8」)を有し、相対的に少数のVODピアが非常に高く信頼され又は非常に低く信頼され、最も少数のVODピアが、最も信頼性の高いVODピア1622又は最も信頼性の低いVODピア1624のいずれかである。多数のそうでなければ信頼性の低いVODピアが相対的に非常に信頼性の高いようになることを可能にするある外部機構(例えば、家庭への光ファイバ回線のかなりの増加)なしで、このシナリオが自然に発生する可能性が非常に高いかどうかは、やはり不明瞭である。
[368]それでも、このシナリオは、NQoSに関して(及びQoS全般に関してさえ)極端に望ましいシナリオである。コピーをこれらの多数の適度に信頼されるVODピアにプッシュすることは、より少数のコピーが必要になるならば(これらのVODピアは一般により信頼性の高いので)、より効率的になるはずである。さらに、より高い全体的な信頼性は、NQoSを維持するためのより少ない調整を必要とするはずである。
[369]最後に、図16dの「多角形」パターン1630は、クラスタ内に、VODピアの個数とその相対的な「信頼のレベル」との間に実質的に相関がないシナリオを反映する。信頼レベルの間の分布は、本質的にランダムである。また、このシナリオが、自然に或いは誰かが考案する可能性が高いいずれかの外部機構を介して存在する可能性は、低いと思われる。
[370]それでも、本発明は、図16aに示されたはるかに可能性が高いシナリオと少なくとも同程度に効果的な、このシナリオに対する解決策を提供する。単純に言えば、最も信頼性の低い1634「問題」VODピアのより低い集中がある。さらに、重要性はより低いが、最も信頼されるVODピア1632のより高い集中がある。コンテンツオブジェクトのより多くのコピーをこれらの「問題」VODピアにプッシュすることを含む、同一の相殺機構は、他のランダムな信頼レベルの多数のVODピアの「ポケット」にもかかわらず、NQoSに影響するという同一の利益を有するはずである。
III.宣伝コンテンツの一体化
A.宣伝挿入アーキテクチャ及び特徴
[371]VODシステムに照らしてNQoSをもたらす本発明のさまざまな実施形態の主要な特徴を説明したので、これから、コンテキストオブジェクトの1つの特殊なタイプすなわち宣伝に注意を向ける。宣伝は、一実施形態で、特殊なタイプのコンテンツオブジェクトである。宣伝には、テキスト、イメージ、オーディオ、ビデオ、並びに聴き及び/又は表示することができるメディア要素の実質的にすべての組合せを含めることができる。
[372]1つの点で、宣伝は、他のコンテンツオブジェクトとほとんど同一の形で配信されるという点で、単にもう1つのコンテンツオブジェクトである。宣伝は、コンテンツオブジェクトパッケージに分割され、ネットワークのクラスタ内及びクラスタにまたがってVODピアに分散された形でプッシュされ、動的に監視されるネットワーク属性及び挙動属性に基づいて再展開され、その構成要素パッケージが格納された複数のVODピアから分散された形でプルされる。
[373]しかしながら、もう1つの点で、宣伝は、他のコンテンツオブジェクトの中及びそれらの間で並びに本発明のVODシステムのユーザインターフェースの他の態様の中で表示できるという点で、特殊なタイプのコンテンツオブジェクトである。宣伝は、通常、他のコンテンツオブジェクトのようにVODピアユーザによって要求されるのではないという点でも特殊である。或いは、宣伝は、宣伝のパブリッシャによって示されるパラメータに従って、本発明のVODシステムによって課せられるルールに従って(一実施形態で、別個のサーバ又はVODサポートサーバとすることもできる「宣伝サーバ」を介して)表示される。
[374]図17に、宣伝挿入機構1700のブロック図実施形態を示す。宣伝挿入機構1700は、他のコンテンツオブジェクトの中及びそれらの間並びに本発明のVODシステムのユーザインターフェース内にコンテンツオブジェクトとして宣伝を挿入する。宣伝パブリッシャ1710は、一実施形態で、宣伝1715などの「宣伝する」タイプのコンテンツオブジェクトの公開するサーバでもあるVODピアである。
[375]一実施形態で、宣伝1715を、上で注記したように、ターゲットコンテンツオブジェクト1722などのコンテンツオブジェクトの中及びそれらの間を含むさまざまな異なる「ターゲット位置」1720に挿入することができる。さらに、宣伝1715を、一実施形態で、本発明のVODシステムのユーザインターフェースを介してVODピアユーザからアクセス可能な永久的に動作するチャネルであるバーカー(BARKER)チャネル1724に挿入することができる。最後に、宣伝1715を、ターゲットGUI領域1726すなわち、システムの状況に応じてユーザのディスプレイに現れるユーザインターフェースのさまざまな態様に挿入することができる。例えば、一実施形態で、「VODポータル」チャネルが、前の週に見られた宣伝を含み、ユーザが、その、前の週に見られた宣伝をブラウズするか検索し、その後、再生することを(商取引の機会及び/又は追加情報を含むサイトへのリンクをクリックすることも)可能にする。宣伝1715をターゲット位置1720に挿入するのに使用される方法のさまざまな実施形態を、下でより詳細に説明する。
[376]一実施形態で、宣伝パブリッシャ1710は、そのコンテンツオブジェクト(宣伝1715)を、上で説明したように、他の公開するサーバと同様に公開する。さらに、宣伝パブリッシャ1710は、宣伝パブリッシングプロセスを単純にするために、「宣伝挿入ツール」(すべての公開するサーバから使用可能なVODパブリッシングソフトウェア内)に頼ることができる。もう1つの実施形態では、宣伝パブリッシャ1710は、宣伝1715がその下で本発明のVODシステムのユーザに表示されるパラメータの指定を容易にするために、さまざまなシステムリソース(システムデータベース1730及びシステムサーバ1740を含む)に直接又は間接にアクセスすることもできる。宣伝1715を表示するルールは、一実施形態で、宣伝パブリッシャ1710によって指定される(直接に指定されるか、宣伝挿入ツールを介して間接的に指定される)パラメータに従って、宣伝サーバ1750によって決定され、課せられる。
[377]一実施形態で、宣伝パブリッシャ1710は、システムデータベース1730にアクセスして、それが宣伝サーバ1750に指定するパラメータに影響する情報を入手する。例えば、コンテンツオブジェクトメタデータ1732データベースは、題名、ジャンル、説明などの各コンテンツオブジェクトに関係する情報と、一実施形態で、コンテンツオブジェクトに具体的に関係するさまざまな他のメタデータ(テキスト、イメージ、ビデオ、及び他のメディアの形の)とに関する情報を含む。宣伝パブリッシャ1710は、例えば、「コメディ」など、ある判断基準を満足するコンテンツオブジェクト内に宣伝1715を表示することを望む場合がある。
[378]宣伝パブリッシャ1710は、宣伝サーバ1750に直接にパラメータなどの判断基準を指定するか、そのような判断基準に基づいてコンテンツオブジェクトメタデータ1732データベースを検索し、その後、同一のもの又はおそらくは多少は特定のもの(例えば、特定のコンテンツオブジェクトのCRID)とすることができるパラメータを宣伝サーバ1750に指定することができる。宣伝パブリッシャ1710は、コンテンツオブジェクトメタデータ1732データベースの検索の結果(又はそのオリジナルの判断基準)を、他のシステムデータベース1730からのデータなどの他の情報と組み合わせることもできる。
[379]例えば、宣伝パブリッシャ1710は、ユーザプロファイルデータ1734データベースにアクセスして、名前、性別、住所、年齢、職業、婚姻関係の有無、及びユーザ(及びおそらくはユーザの家族)に固有のさまざまな他の関連データなど、VODピアユーザに関する情報を入手することができる。宣伝パブリッシャ1710は、コンテンツオブジェクトメタデータ1732データベースから「コメディ」を検索し、ユーザプロファイルデータ1734データベースから20歳と35歳との間の年齢のユーザを検索し、おそらくは「動的挙動及び他のデータ」1736データベースから毎月少なくとも5本の映画を観るユーザを検索することができる(VODシステム内のユーザの以前の挙動に基づく形の宣伝の「挙動ターゲティング」を可能にする)。次に、宣伝パブリッシャ1710は、そのような検索の組み合わされた結果をパラメータとして宣伝サーバ1750に提示することができる。
[380]宣伝1715のターゲティングを容易にする情報についてシステムデータベース1730に頼るほかに、宣伝パブリッシャ1710は、一実施形態で、この作業を援助するためにさまざまなシステムサーバ1740に頼ることもできる。例えば、上で注記したように、宣伝パブリッシャ1710は、宣伝1715(すべての他のコンテンツオブジェクトと同様に)を公開するほかに、宣伝サーバ1750にパラメータを提示することができ、宣伝サーバ1750は、それが実施するルールに従って適当な時に特定のVODピアの適当な位置での宣伝1715の表示を起動するために(宣伝1715は、通常は他のコンテンツオブジェクトのように「オンデマンドで」要求されるのではないので)、そのようなパラメータをそのようなルールに一体化する。
[381]さらに、宣伝パブリッシャ1710は、宣伝1715の許可されない使用に対して保護するために、宣伝1715に対する「ディジタル著作権管理」(DRM)保護並びにユーザ認証及び他の関連するセキュリティ手段を実施するためにライセンスサーバ1742に頼ることができる(すべての他のパブリッシャも同様)。例えば、そのようなコンテンツの許可されないコピー及び配信に対する一般的な保護のほかに、ライセンスサーバ1742は、パブリッシャによって指定されたパラメータに従って、コンテンツオブジェクトの使用を制限するルール(例えば、限られた回数の再生を許可する)を実施することもできる。宣伝パブリッシャは、通常は、その宣伝の露出の制限に関心を持たない場合がある。例えば、ライセンスサーバ1742が、宣伝1715の無制限の回数の再生を許可するが、宣伝パブリッシャ1710は、すべての要求された再生について異なる宣伝(図示せず)(例えば、ユーザが再生を要求することによって関心を表したならば、おそらくは商取引ウェブサイトへのリンクを伴う、より「強引な販売」である宣伝)に置換することを要求することができる。
[382]宣伝パブリッシャ1710は、例えばコンテンツオブジェクトメタデータデータベース1732へのアクセスを援助するためにメタデータサーバ1744に頼ることもできる。例えば、宣伝パブリッシャ1710がコンテンツオブジェクトメタデータデータベース1732自体に照会することを要求するのではなく、メタデータサーバ1744が、このデータへの間接アクセスを可能にする、より単純なより高水準のインターフェースを宣伝パブリッシャ1710に提供することができる。
[383]さらに、宣伝パブリッシャ1710は、支払/請求サーバ1746に頼ることができる。支払/請求サーバ1746は、「ペイパービュー」(PPV)、サブスクリプション、プリペイドアクセス、無料及び有料の販売促進など、コンテンツオブジェクトに関するさまざまな「カスタマリレーションシップ管理」(CRM)モデルを提供する。そのような機能性の使用は、他のタイプのコンテンツオブジェクトのパブリッシャに関してより一般的に行われるが、宣伝パブリッシャ1710は、例えば宣伝1715がオプションの基礎で特定のPPV映画と共に表示される販売促進(例えば、ユーザが宣伝1715などの宣伝を見ることに合意する時に無料でPPV映画を受け取る場合)を起動するのに支払/請求サーバ1746を利用することができる。
[384]レポートサーバ1748は、宣伝パブリッシャ1710にとって(並びに他のタイプのコンテンツオブジェクトのパブリッシャにとって)高い価値を有する可能性がある。レポートパラメータを指定することによって、宣伝パブリッシャ1710は、宣伝1715を含む、その宣伝の表示に関するユーザ挙動に関するさまざまな異なるタイプのレポートをレポートサーバ1748から受け取ることができる。例えば、そのようなレポートには、特定の日時に宣伝を見るユーザのプロファイル、彼らが見ていたコンテンツオブジェクト(又はコンテンツオブジェクトのタイプ)(ユーザがそのような集約情報の公開を許可すると仮定して)、及びさまざまな他の挙動情報(例えば、宣伝のクリックスルー統計、関連する購入など)に関する情報を含めることができる。
[385]最後に、宣伝パブリッシャ1710は、「直接購入」販売促進(例えば、商業ウェブサイトへの宣伝1715内のリンクを介する)、「ビデオ販売促進ウィンドウ」へのアクセス(例えば、他のおそらくは関連する宣伝と混ぜ合わされた)、「ビデオ内宣伝」(特定のビデオコンテンツに宣伝1715を挿入するのを容易にするための)、及び他の商取引の機会のホストを含む、宣伝1715に関係する商業販売促進を容易にするために商取引サーバ1749に頼ることができる。
[386]システムサーバ1740、システムデータベース1730、及びターゲット位置1720へのアクセスが、宣伝のパブリッシャに制限されないことに留意されたい。これらのリソースは、一実施形態で、公開するサーバから、及びはるかに制限され間接的な範囲でVODピア全般から(例えば、システムのユーザインターフェースを介してコンテンツオブジェクトに関する追加情報にアクセスする)中央でアクセス可能である。他のタイプのコンテンツオブジェクトのパブリッシャは、一実施形態で、彼ら自体のコンテンツオブジェクトと共にどの宣伝(又は宣伝のタイプ若しくは宣伝パブリッシャ)が見られるかを制限することもできる。例えば、家族向け映画のパブリッシャは、あるタイプの製品(例えば、たばこ又は酒)を含む宣伝を許可しない場合がある。或いは、家族向け映画のパブリッシャは、そのような製品を販売促進することがわかっている特定の宣伝パブリッシャを除外する場合がある。
B.宣伝挿入の実施態様
[387]上で注記したように、宣伝パブリッシャの仕事を単純にするために、このシステムは(一実施形態で)、すべての公開するサーバから使用可能なVODパブリッシングソフトウェアの一部である「宣伝挿入ツール」を提供する。この宣伝挿入ツールは、宣伝パブリッシャがシステムサーバ1740、システムデータベース1730、及びターゲット位置1720と直接に通信する必要をなくすことを可能にするインターフェースを提供する。宣伝パブリッシャは、その代わりに、より高水準のインターフェースを利用して、その作業をより簡単に、宣伝のパブリケーションをより具体的にターゲットとする形で達成することができる。
[388]一実施形態で、宣伝挿入ツールは、単純化されたユーザインターフェースを提供する。このインタフェースは、宣伝パブリッシャが、パブリッシャの宣伝がターゲティングされ、VODピアユーザに提示される形を規定するパラメータを指定するために、ドロップダウンリストから事前定義の選択肢を選択することを可能にする。宣伝挿入ツールは、指定されたタイムスロット中に指定されたターゲットにされたプロファイルと合致するVODピア上で表示される宣伝パブリッシャの「宣伝パッケージ」から宣伝を選択する「プレイリスト」を生成する。
[389]宣伝は、通常、宣伝の残りの再生に先立つ(「先頭」)及びそれに続く(「末尾」)比較的短いシーケンスである「先頭」部分及び「末尾」部分と共に公開される。宣伝パブリッシャは、宣伝並びに所望の先頭部分及び末尾部分のIDを、宣伝持続時間(例えば、30秒)及び宣伝が挿入される所望のターゲット媒介と共に指定することができる。この所望のターゲット媒介は、一実施形態で、イベント(VODブラウザを伴う又は伴わない)、「バーカー」チャネル、VODメッセージングサービス(例えば、純粋にテキストの宣伝用)、「対話型宣伝」(例えば、追加情報、販売促進、特売などを含むサイトへのVODブラウザを介するリンクを含む)、並びに宣伝の「印刷」(VODシステムの外部)をも含めるオプションを含む。
[390]一実施形態で、基本的な宣伝タイプは、(1)単一宣伝 独立の宣伝イベント、(2)シリアル宣伝 1つ以上のイベントに挿入される5つまでの宣伝繰り返しのシーケンス、(3)タグ付き宣伝 異なる末尾シーケンスを有する宣伝(例えば、異なる地理的ゾーンのために宣伝を「ローカライズする」ため)、(4)平行宣伝 異なる末尾シーケンスを有する同一宣伝パブリッシャからの複数の異なる宣伝、及び(5)対話型宣伝リンク及び/又は他の形の「ユーザ応答」機能を有する、を含む。さらに、もう1つの実施形態で、そのような宣伝タイプを、組み合わせて提供することができる。
[391]シリアル宣伝は、宣伝パブリッシャが、経時的に宣伝(又は、一実施形態で、わずかに異なる宣伝)を繰り返すことによって、あるイベント全体(並びに複数のイベントにまたがって)関心を強めることを可能にする。異なる宣伝末尾は、例えばコンテストの詳細又は他の情報をシーケンスの終りに向かってアナウンスすることによって、関心を増分的に強めることができる。タグ付き宣伝は、ローカルオファーを可能にし、平行宣伝は、例えば、異なる宣伝末尾を使用して、ある製品系列を販売促進する宣伝を提供するという宣伝パブリッシャの望みを容易にする。対話型宣伝は、ユーザに増分式に情報を提供し、ユーザの関心に関する特定のターゲティングされたフィードバック(一実施形態で、宣伝パブリッシャの製品をさらに販売促進するために動的に利用することができる)を入手する追加の機会を提供する。
[392]もう1つの実施形態では、ある形の「直接パブリッシング」を可能にすることができる。これは、コンテンツオブジェクト並びに宣伝を、通常はVODネットワークの一部でないハンドヘルドデバイス及び他のデバイスから公開する非専門家パブリッシャの能力を大幅に単純にする。例えば、傍流のスポーツに照らすと、そうでなければ膨大な宣伝予算を必要とする機会を提供するスポーツイベント(例えば、おそらくはローカル宣伝をも伴う競馬)をアップロード/公開することができる。同様に、小規模小売店が、その店からビデオ機能付きセル電話機を介して、宣伝と結合された、特定の製品の「スピークアンドセル(speak and sell)」販売促進を公開することができる。
[393]宣伝挿入ツールによって利用されるターゲティング方法は、一実施形態で、VODピアユーザに関係するさまざまな統計(例えば、ユーザプロファイルデータ1734データベースに格納された)を用いる。そのような統計は、ユーザプロファイルのさまざまな態様に宣伝をターゲティングする機構を提供する。例えば、そのような統計に、ある時間間隔(例えば1週間)にわたって、ユーザの総数及びユーザあたりの見られたイベントの平均個数(地理的ゾーンにも分割される)を含めることができる。さらに、そのような統計に、性別のパーセンテージ(男性対女性)、年齢(例えば、18〜25、25〜54、55以上)、家計収入(例えば、5万ドル以上、7万5千ドル以上、10万ドル以上、15万ドル以上)、教育(例えば、大学卒、大学院修了)、婚姻関係の有無、子供、及び挙動VOD使用(例えば、消費者カテゴリ、前の週のシステム使用、最近30日間又はこれまでのオンラインショッピング習慣など)を含めることができる。
[394]さらに、一実施形態で、「VODユーザプロファイルカテゴリ」が、ユーザプロファイルデータを組み合わせることによって定義される。例えば、「カップル」、「家族」、「独身」、及び「子供」を、固定された年齢範囲、国、地理的ゾーン、及び特定の関心領域に分割されたVODユーザプロファイルカテゴリとして定義することができる。さらに、宣伝パブリッシャは、その宣伝キャンペーンに関するある制約を指定することができる(例えば、開始日、停止日、有効日、地理的ゾーンに関する政府の制約、カテゴリ、時間数など)。
[395]最後に、宣伝パブリッシャは、VODピアユーザの特定の組に彼らの宣伝をターゲティングするためにさまざまな人口統計情報から選択することができる。次に、そのような人口統計情報を上で述べた実際のVODピアユーザプロファイル統計と相互参照することができる(下で述べるように)。例えば、一実施形態で、次の人口統計カテゴリが含まれる:性別(男女)、年齢(18〜24、18〜34、18〜49、25〜34、25〜44、25〜54、45〜54、45〜64、21以上、25以上、35以上、45以上、55以上、65以上)、婚姻関係の有無(既婚、独身)、子供(はい/いいえ)、教育(高校、大学卒、大学院、大学卒以上)、職業(専門職/管理職、販売/小売業、秘書/事務、サービス/労働、学生、退職、自営)、収入(通貨タイプ、3万5千ドル以上、5万ドル以上、7万5千ドル以上、10万ドル以上、15万ドル以上)、地理的ゾーンなど。
[396]宣伝がイベント内及びイベントの間(並びにバーカーチャネル内及び他のターゲット位置内)にどのように挿入されるかをよりよく理解するために、そのような宣伝に関連するメタデータを、これから説明する。一実施形態で、そのような宣伝メタデータは、「包括的宣伝メタデータ」(宣伝を記述する)、「イベント宣伝ハンドリングメタデータ」(イベント内に示される宣伝に関する制約を記述する)、「宣伝ターゲテッドユーザプロファイルメタデータ」(宣伝がターゲティングされるVODピアユーザプロファイルデータを記述する)、及び「宣伝挿入リストメタデータ」(宣伝が挿入されるイベント内のブロックを含む)のXMLタグを含む。
[397]一実施形態で、包括的宣伝メタデータは、各宣伝を記述するデータを格納するデータ構造を記述する次のタグを含む。
[398]イベント宣伝ハンドリングメタデータは、宣伝を挿入できるイベント内の位置を記述するデータ構造を記述する次のタグを含む。
[399]宣伝ターゲテッドユーザプロファイルメタデータは、宣伝がターゲティングされるユーザプロファイルを記述するデータ構造を記述する次のタグを含む。
[400]宣伝挿入リストメタデータは、宣伝を挿入できるイベント内の位置を記述するデータ構造を記述する次のタグを含む。
[401]一実施形態で、宣伝パブリッシャは、イベント並びにシステムのユーザインターフェースの他の態様の「スポンサーになる」ことができる。例えば、「スポンサー付きテーマ」に、宣伝パブリッシャによって作成され、VODピアユーザによる選択に使用可能な商用「スキン」を含めることができる。このスキンは、ユーザがアクセス可能なユーザインターフェース要素の実質的にすべてを包含することができる。見る人は、これらのスキンをダウンロードすることができ、そのスキンは、その後、ユーザインターフェースのメインメニューに現れる。スキンには、背景イメージ、アイコン、ロゴ、及び宣伝パブリッシャのロゴ(又は他の形の表現若しくはスタイル)が一体化されている他の要素(例えば、再生ボタン及び停止ボタンなど、既存システム要素を含む)を含めることができる。
[402]そのようなスポンサー付きテーマは、宣伝パブリッシャによって提供される製品を販売促進する追加情報をユーザが入手することを可能にする追加の対話型要素を提供することができる。バーカーチャネルに販売促進を含めるほかに、ゲーム、コンテスト、及びくじなどの他の販売促進を提供することもできる。
[403]一実施形態で「スポンサー付きイベント」は、宣伝パブリッシャが、例えば、その宣伝パブリッシャの宣伝を見ることと引き換えにイベントの無料ビューイング(例えば、別のパブリッシャによって公開される場合であっても、やがて公開される人気のある映画)を提供することを可能にする。例えば、そうでなければVODネットワーク上でPPV映画としてのみ入手可能なコンテンツオブジェクトを、特定の宣伝パブリッシャからスポンサー付きイベントとして提供することもでき、これによって、ユーザが、ユーザ自身が販売促進を甘受することと引き換えにそのイベントを無料で見ることが可能になる。一実施形態で、この販売促進には、オンスクリーンロゴ、「インフォテインメント」材料の挿入、ユーザへの対話型の質問、さらなる販売促進又は商取引の機会へのリンク、及びおそらくはユーザ活動を監視し、フォローアップ宣伝ビューイング、メールなどを受けることへの合意を含めることができる。
[404]スポンサー付きイベントに加えて、宣伝パブリッシャは、イベントのグループ(例えば、宣伝パブリッシャの製品又はサービスと共通してある関係を共有する)が、宣伝又はおそらくはスキンをも含んだ単一の基準点(例えば、チャネルロゴ)から入手可能である、「ブランド付きチャネル」をも生成することができる。
[405]他の実施形態では、ユーザが宣伝及び関連する販売促進イベント(例えば、それ以外の形でユーザが関心を持つ可能性がある製品又はサービスの宣伝)を甘受することによって経時的に「ポイント」を増やすことができる、より長期の宣伝キャンペーンを含む、追加の販売促進が可能である。そのようなポイントは、VODネットワーク上での無料ビューイング並びに賞品、値引きなどに関して考えることができる。そのような販売促進は、宣伝パブリッシャに、彼らの製品及びサービスを販売促進する非常にターゲティングされた機会を提供すると同時に、ユーザが宣伝及び他の販売促進を甘受するかどうかを「選択する」ことを可能にする。
[406]宣伝をコンテンツオブジェクトの1タイプとしてVODネットワークに一体化することによって、システム上でコンテンツオブジェクトを見るユーザの能力を遮らずに、宣伝パブリッシャの製品及びサービスを非常にターゲティングされた効率的な形で(広範囲のターゲティングされた追跡能力及びレポート能力を含む)販売促進する実質的に無制限の個数の可能性が存在する。ユーザは、販売促進活動から「脱退する」機会を提供されるが、(より重要なことに)無料ビューイングと引き換えにそのような活動に「加入する」動機を与えられる。製品及びサービスの値引き、並びに他のクリエイティブな機会のホストが、宣伝パブリッシャによって彼らの非常にターゲティングされたカスタマのために考案される。
要約
[407]本発明は、高いQoSを維持しながらインターネットを介する大量のディジタルコンテンツの配布を可能にするように設計された複数の動的コンテンツパッケージング及び負荷平衡化のシステム及び方法を用いる。本発明は、VODアプリケーションだけではなく、多数の他のコンテンツ配布アプリケーション及び関連するアプリケーション、特にディジタルコンテンツがそのようなコンテンツの最終的なユーザに「より近い」ことから利益を得るアプリケーションに適用可能である。
[408]コンテンツオブジェクトは、構成要素パッケージのグループに分割され、これらのグループは、そのようなコンテンツが後に取り出される(すなわち、プルされる)時にQoSを高めるために、隣接するネットワークピアのクラスタに分散される(すなわち、プッシュされる)。トラッキングファイル(そのようなパッケージのグループを格納するネットワークピアのリストを維持する)及びトラッキングインデックス(トラッキングファイルを格納するネットワークピアのリストを維持する)が、所望のコンテンツオブジェクトの「オンデマンドの」(及び持続される)取出を容易にするために生成され、更新される。
[409]さらに、一般的な及びアプリケーション固有のネットワークトラフィックが、動的に監視され(例えば、VOD機能性の挙動態様並びに帯域幅及び信頼性を含む)、その結果が、システムにフィードバックされ、効果的に「分散閉ループフィードバック」システムを作成する。そのような分散動的監視に応答して、個々のネットワークピアの属性(ピアの信頼レベル及び隣接するピアの特定のクラスタ内のメンバシップなど)が、変更され、さまざまな「コンテンツ平衡化」機能が、実行される(さまざまなネットワークピアの間でのコンテンツオブジェクトのパッケージのグループの再分散など)。
[410]その結果は、それ自体はQoSを提供しない既存インターネットインフラストラクチャに頼るピアのネットワークに効果的にQoSを組み込むことである。そのようなネットワークQoS(NQoS)は、ネットワークピアが、すべての要求に先立って、そのピアに特定のコンテンツオブジェクト(その隣接するVODピアの間で構成要素パッケージのグループで分散されている)をある所定の時間以内に配布するネットワークの能力を識別することを可能にする。
実施例
[実施例1]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(c)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
ディジタルコンテンツ配信システム。
[実施例2]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する(前記第1ネットワークノード及び前記第2ネットワークノードは、互いに相対的に近接するネットワークノードの第1クラスタ内に配置される)、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノード(前記第3ネットワークノードも前記第1クラスタ内に配置される)による要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1クラスタ内の前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(c)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
ディジタルコンテンツ配信システム。
[実施例3]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2のネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を含む第1トラッキングファイルと、前記第1トラッキングファイルが格納されている1つ以上のネットワークノードの位置を含む第1トラッキングインデックスとを生成するコンテンツトラッカと、
(c)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び第2ネットワークノード上の前記第2グループの各々の位置を識別し(該識別が、直接に又は前記第1トラッキングインデックスを介して間接的に前記第1トラッキングファイルを突き止めることによってなされ)、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(d)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
ディジタルコンテンツ配信システム。
[実施例4]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
(c)前記第3ネットワークノードを含む通信を観察するネットワークモニタ(前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む)と、
(d)前記ネットワークモニタによって確かめられた情報に応答して、
(i)前記第3ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第3ネットワークノードの属性の第1の集合を更新するタスクと、
(ii)前記第1コンテンツオブジェクトの1つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード間で前記第1コンテンツオブジェクトを再分配するタスクと、
のうちの1つ以上を実行する動的フィードバックコントローラと、
を備え、
(e)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に先立って、前記第1コンテンツオブジェクトを前記第3ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質(NQoS)を提供する、
ディジタルコンテンツ配信システム。
[実施例5]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより前の順序で発生する)、パッケージの前記第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記第1コンテンツオブジェクトの前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(c)前記コンテンツプッシャーは、また、宣伝である第2リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記第2コンテンツオブジェクトのパッケージの第1グループは、前記第2コンテンツオブジェクトのパッケージの第2グループより前の順序で発生する)、前記第2コンテンツオブジェクトのパッケージの第1グループを第4ネットワークノードに分配するとともに前記第2コンテンツオブジェクトのパッケージの第2グループを第5ネットワークノードに分配し、
(d)前記コンテンツプラーは、また、前記第1コンテンツオブジェクトの再生に関する前記第3ネットワークノードによる前記要求に応答して、前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを検索し、前記第4ネットワークノード上の前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び第5のネットワークノード上の前記第2コンテンツオブジェクトのパッケージの第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第2コンテンツオブジェクトの順序付き再生のために前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを取り出し、
(e)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に応答して、前記宣伝を自動的に受け取ることを可能にし、
該宣伝は、それ自体がリニアコンテンツオブジェクト(前記第2コンテンツオブジェクト)であり、前記第1コンテンツオブジェクトと実質的に同一の形で、前記コンテンツプッシャーによって分配され、前記第3ネットワークノードでの再生のために前記コンテンツプラーによって取り出される、
ディジタルコンテンツ配信システム。
[実施例6]
(a)前記第1ネットワークノード及び前記第2ネットワークノードは、互いに相対的に近接するネットワークノードの第1クラスタ内に配置され、
(b)前記コンテンツプラーは、前記第1クラスタ内の前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2ネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を識別し、
(c)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
実施例3に記載のディジタルコンテンツ配信システム。
[実施例7]
前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより小さい、実施例1に記載のディジタルコンテンツ配信システム。
[実施例8]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、可変サイズのパッケージである、実施例7に記載のディジタルコンテンツ配信システム。
[実施例9]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、固定サイズのパッケージであり、前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより少数のパッケージを含む、実施例7に記載のディジタルコンテンツ配信システム。
[実施例10]
前記ネットワークノードの各々は、前記コンテンツプッシャーと前記コンテンツプラーとの両方によって実行される機能と実質的に同一の機能を実行するクラスタコントローラを含む、実施例2に記載のディジタルコンテンツ配信システム。
[実施例11]
前記第3ネットワークノードは、前記第1コンテンツオブジェクトの再生を開始するのに必要な相対時間のインジケータを前記第3ネットワークノードのユーザに表示するグラフィカルユーザインターフェースを含む、実施例4に記載のディジタルコンテンツ配信システム。
[実施例12]
前記ネットワークモニタは、経時的に前記第3ネットワークノードからのping通信及びtraceroute通信を開始し、観察する、実施例4に記載のディジタルコンテンツ配信システム。
[実施例13]
前記ネットワークモニタによって観察される前記挙動アプリケーション固有ネットワークトラフィックは、経時的な前記第3ネットワークノードによって開始されるコンテンツオブジェクトの再生に関する要求を含む、実施例4に記載のディジタルコンテンツ配信システム。
[実施例14]
前記第2コンテンツオブジェクトの前記再生は、前記第1コンテンツオブジェクトの前記再生中に発生する、実施例5に記載のディジタルコンテンツ配信システム。
[実施例15]
前記第3ネットワークノードは、前記ユーザが前記第2コンテンツオブジェクトの再生を起動するためにクリックすることのできるリンクを前記第1コンテンツオブジェクトの前記再生中に前記第3ネットワークノードのユーザに表示するグラフィカルユーザインターフェースを含む、実施例5に記載のディジタルコンテンツ配信システム。
[実施例16]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2のグループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと
を含み、
(c)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、パッケージの前記第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
方法。
[実施例17]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する(前記第1ネットワークノード及び前記第2ネットワークノードは、互いに相対的に近接するネットワークノードの第1クラスタ内に配置される)ステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1クラスタ内の前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
を含み、
(c)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
方法。
[実施例18]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配し、前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2ネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を含む第1トラッキングファイルと、前記第1トラッキングファイルが格納されている1つ以上のネットワークノードの位置を含む第1トラッキングインデックスとを生成するステップと、
(c)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し(該識別が、直接に又は前記第1トラッキングインデックスを介して間接的に前記第1トラッキングファイルを突き止めることによってなされ)、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
を含み、
(d)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
方法。
[実施例19]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
(c)前記第3ネットワークノードを含む通信を観察するステップ(前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む)と、
(d)前記第3ネットワークノードを含む通信の前記観察によって確かめられた情報に応答して、
(i)前記第3ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第3ネットワークノードの属性の第1の集合を更新するタスクと、
(ii)前記第1コンテンツオブジェクトの1つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード間で前記第1コンテンツオブジェクトを再分配するタスクと、
のうちの1つ以上を実行するステップと、
を含み、
(e)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に先立って、前記第1コンテンツオブジェクトを前記第3ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質(NQoS)を提供する、
方法。
[実施例20]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより前の順序で発生する)、分配するとともに前記構成要素パッケージの第1グループを第1ネットワークノードに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記第1コンテンツオブジェクトの前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
(c)宣伝である第2リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記第2コンテンツオブジェクトのパッケージの第1グループは、前記第2コンテンツオブジェクトのパッケージの第2グループより前の順序で発生する)、前記第2コンテンツオブジェクトのパッケージの第1グループを第4ネットワークノードに分配するとともに前記第2コンテンツオブジェクトのパッケージの第2グループを第5ネットワークノードに分配するステップと、
(d)前記第1コンテンツオブジェクトの再生に関する前記第3ネットワークノードによる前記要求に応答して、前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを検索し、前記第4ネットワークノード上の前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第5のネットワークノード上の前記第2コンテンツオブジェクトのパッケージの前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第2コンテンツオブジェクトの順序付き再生のために前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを取り出すステップと、
を含み、
(e)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に応答して、前記宣伝を自動的に受け取ることを可能にし、
該宣伝は、それ自体がリニアコンテンツオブジェクト(前記第2コンテンツオブジェクト)であり、前記第1コンテンツオブジェクトと実質的に同一の形で、分配され、前記第3ネットワークノードでの再生のために取り出される、
方法。
[実施例21]
(a)互いに相対的に近接するネットワークノードの第1クラスタ内に前記第1ネットワークノード及び第2ネットワークノードを配置するステップと、
(b)前記第1クラスタ内の前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2ネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を識別するステップと、
を更に含み、
(c)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
実施例18に記載の方法。
[実施例22]
前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより小さい、実施例16に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例23]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、可変サイズのパッケージである、実施例22に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例24]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、固定サイズのパッケージであり、前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより少数のパッケージを含む、実施例22に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例25]
前記ネットワークノードの各々は、前記第1コンテンツオブジェクトを分割し、分配し、配置し、取り出すために実行される機能と実質的に同一の機能を実行する、実施例17に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例26]
前記第1コンテンツオブジェクトの再生を開始するのに必要な相対時間のインジケータを前記第3ネットワークノードのユーザに表示するステップをさらに含む、実施例19に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例27]
前記観察される通信は、経時的に前記第3ネットワークノードから開始されるping通信及びtraceroute通信を含む、実施例19に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例28]
前記挙動アプリケーション固有ネットワークトラフィックは、経時的な前記第3ネットワークノードによって開始されるコンテンツオブジェクトの再生に関する要求を含む、実施例19に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例29]
前記第2コンテンツオブジェクトの前記再生は、前記第1コンテンツオブジェクトの前記再生中に発生する、実施例20に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例30]
前記第3ネットワークノードは、前記ユーザが前記第2コンテンツオブジェクトの再生を起動するためにクリックすることのできるリンクを前記第1コンテンツオブジェクトの前記再生中に前記第3ネットワークノードのユーザに表示する、実施例20に記載のリニアコンテンツオブジェクトを取り出す方法。