(57)【要約】本発明によれば、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための方法が開示される。１つのステップにおいて、始動事象を待機する処理が行なわれる。第一のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているかの判定が行なわれる。第一のコンテンツオブジェクトを要求することなく、前記第一のコンテンツオブジェクトが前記第一のオリジンサーバから前記コンテンツ記憶部にロードされる。第二のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているかの判定が行なわれる。第二のコンテンツオブジェクトを要求することなく、前記第二のコンテンツオブジェクトが前記第二のオリジンサーバから前記コンテンツ記憶部にロードされる。
2004508613.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための方法であって、
始動事象を待機するステップと、
第一のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているか否かを判定するステップと、
第一のコンテンツオブジェクトを要求することなく、前記第一のオリジンサーバから前記コンテンツ記憶部に前記第一のコンテンツオブジェクトをロードするステップと、
第二のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているか否かを判定するステップと、
第二のコンテンツオブジェクトを要求することなく、前記第二のオリジンサーバから前記コンテンツ記憶部に前記第二のコンテンツオブジェクトをロードするステップとからなる方法。
【請求項２】
前記コンテンツオブジェクトの人気を判定するステップをさらに有する、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項３】
前記２つのロードステップの実行が前記待機ステップによって規定される、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項４】
前記待機ステップは、
前記第一のオリジンサーバと前記コンテンツ記憶部との間の上りバンド幅が所定のしきい値よりも低下することを待機するステップと、
前記第二のオリジンサーバと前記コンテンツ記憶部との間の上りバンド幅が所定のしきい値よりも低下することを待機するステップのうちの少なくとも１つからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項５】
前記待機ステップは、前記コンテンツ記憶部への上りバンド幅が所定のしきい値よりも低下することを待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項６】
前記待機ステップは前記ネットワークへの接続を待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項７】
前記待機ステップは、クライアントコンピュータから前記コンテンツ記憶部への上りバンド幅の利用度が所定のしきい値よりも低下することを待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項８】
前記待機ステップは一時的な事象を待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項９】
ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための方法であって、
始動事象を待機するステップと、
前記コンテンツオブジェクトの人気を判定するステップと、
第一のコンテンツオブジェクトを要求することなく、前記第一のオリジンサーバから前記コンテンツ記憶部に前記第一のコンテンツオブジェクトをロードするステップと、
第二のコンテンツオブジェクトを要求することなく、前記第二のオリジンサーバから前記コンテンツ記憶部に前記第二のコンテンツオブジェクトをロードするステップとからなる方法。
【請求項１０】
前記２つのロードステップの実行が前記待機ステップによって規定される、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１１】
第一のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているか否かを判定するステップと、
第二のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているか否かを判定するステップとをさらに有する、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１２】
前記待機ステップは、
前記第一のオリジンサーバと前記コンテンツ記憶部との間の上りバンド幅が所定のしきい値よりも低下することを待機するステップと、
前記第二のオリジンサーバと前記コンテンツ記憶部との間の上りバンド幅が所定のしきい値よりも低下することを待機するステップのうちの少なくとも１つからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１３】
前記待機ステップは、前記コンテンツ記憶部への上りバンド幅が所定のしきい値よりも低下することを待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１４】
前記待機ステップは前記ネットワークへの接続を待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１５】
前記待機ステップは、クライアントコンピュータから前記コンテンツ記憶部への上りバンド幅の利用度が所定のしきい値よりも低下することを待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１６】
前記待機ステップは一時的な事象を待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１７】
ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための方法であって、
始動事象を待機するステップと、
第一の複数のコンテンツオブジェクトのいずれに対する要求がなくても、前記第一のオリジンサーバから前記コンテンツ記憶部に前記第一の複数のコンテンツオブジェクトをロードするステップと、
第二の複数のコンテンツオブジェクトに対する要求がなくても、前記第二のオリジンサーバから前記コンテンツ記憶部に前記第二の複数のコンテンツオブジェクトをロードするステップとからなり、
前記２つのロードステップの実行が前記待機ステップによって規定される方法。
【請求項１８】
前記コンテンツオブジェクトの人気を判定するステップをさらに有する、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項１９】
第一のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているか否かを判定するステップと、
第二のオリジンサーバは、前記コンテンツ記憶部にコンテンツを記憶する権限を与えられているか否かを判定するステップとをさらに有する、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項２０】
前記待機ステップは、
前記第一のオリジンサーバと前記コンテンツ記憶部との間の上りバンド幅が所定のしきい値よりも低下することを待機するステップと、
前記第二のオリジンサーバと前記コンテンツ記憶部との間の上りバンド幅が所定のしきい値よりも低下することを待機するステップのうちの少なくとも１つからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項２１】
前記待機ステップは、前記コンテンツ記憶部への上りバンド幅が所定のしきい値よりも低下することを待機するステップをからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項２２】
前記待機ステップは前記ネットワークへの接続を待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項２３】
前記待機ステップは、クライアントコンピュータから前記コンテンツ記憶部への上りバンド幅の利用度が所定のしきい値よりも低下することを待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【請求項２４】
前記待機ステップは一時的な事象を待機するステップからなる、ネットワークにおいてコンテンツ記憶部にコンテンツオブジェクトをロードするための請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
本出願は、２０００年７月１日に出願された米国仮特許出願第６０／２０９，００７号及びに２０００年９月１８日に出願された米国特許出願第０９／６６５，２０４号の利益を主張する。
【０００２】
（背景）
本発明は、一般に情報の記憶に関し、より詳細には、ネットワーク上での情報の記憶に関する。
ブロードバンド関連産業において、ストリーミングコンテンツのために通信品質（ＱＯＳ）を向上させるための取り組みが続けられている。現在、インターネットのインフラストラクチャは、データのストリームを一定のデータレートで長時間にわたり提供するのに足る能力を十分に備えていない。これに対する解決策として試みられてきたのが、ユーザがデータを要求する点と、オリジンサーバがデータを提供する点との間で情報をキャッシュする方法である。
【０００３】
ＱＯＳに影響を及ぼす、インターネットインフラストラクチャの制約は他にも多数存在する。ＱＯＳに影響を与える現在の制約の例として、インターネットサービスプロバイダ（ＩＳＰ）が上りバンド幅に課している制約がある。インターネットサービスプロバイダは上りバンド幅を下りバンド幅の数分の１に制限していることが多い。
【０００４】
多くの加入者がバンド幅を利用する状況においては、制限を受けた上りバンド幅は、ピーク負荷によってさらなる制約を受ける。例えば、就業時間の直後にインターネットシステムに対する要求が増大する。これは多くの人が電子メールの到着状況の確認やウェブの閲覧を行なうことによる。要求がこのように増大する結果、全ユーザのネットワーク接続の速度が低下し、ユーザに負担を強いることになる。ピーク時間帯に必要とされるバンド幅を減らせるような方策に対する要望は非常に高い。
【０００５】
添付の図面を参照して本発明を詳述する。
添付の図面において、類似した要素、及び／又は機能は、同一の参照符号を有する場合がある。さらに、同一種類の異なる要素は、参照符号に続くダッシュや、類似した要素同士を識別させる第２の符号によって識別される。第１の参照符号のみが明細書で使用されていれば、その記載は第２の参照符号に関わりなく、同一の第１の参照符号を有したあらゆる類似の要素のうちの１つにも適用可能である。
【０００６】
（特定の実施形態の詳細）
下記の詳細説明は、好適な実施形態の代表例について記載したものであって、本発明の範囲、適用範囲並びに構成を限定することを意図するものではない。好適な実施形態の代表例に関する下記の詳細説明はむしろ、本発明の好適な実施形態の代表例を当業者が実施できるようにすることを目的としている。添付の特許請求の範囲に記載されている本発明の精神及び範囲から逸脱することなく、本発明の要素の機能及び配置を様々に変更することができることが理解される。
【０００７】
本発明は、コンテンツ交換部にコンテンツオブジェクトをプリロードするための技術を含む。典型的には、プリロードされるコンテンツ交換は、クライアントコンピュータ及びオリジンサーバに関連付けられている。オリジンサーバ上のコンテンツオブジェクトの少なくとも一部が関連コンテンツ交換部にロードされる。始動事象が発生すると、コンテンツ交換部にコンテンツオブジェクトがロードされる。このような始動事象の例として、コンテンツ交換部に入るバンド幅の利用率の低下などが挙げられる。
【０００８】
図１を参照する。コンテンツ配信システム１００の実施形態のブロック図が示されている。本実施形態においてコンテンツ配信システム１００は、アクティブディレクトリ１０４と、１つ以上のオリジンサーバ１０８と、１つ以上のクライアントコンピュータ１１２と、１つ以上のコンテンツ交換部１１６と、１つ以上の外部オリジンサーバ１１８と、１つ以上の非関連オリジンサーバ１０６と、インターネット１２０と、クローリングディレクトリ１２４とを有する。特定のクライアントコンピュータ１１２は、アクティブディレクトリ１０４と対話して、ダウンロードするためのコンテンツオブジェクトを選択する。オブジェクトは、ストリーミングメディアの場合にはダウンロードの間に再生可能であり、或いは後時に再生するために記憶することも可能である。コンテンツオブジェクトは、ネットワークからダウンロード可能な、例えば、オーディオ、ビデオ、データなどあらゆる種類の情報であってもよい。コンテンツオブジェクトの要求は、優先情報とともにクライアントコンピュータ１１２から適切なオリジンサーバ１０８に転送される。オリジンサーバ１０８は、オブジェクトをどこからダウンロードするかを決定する。満足すべきＱＯＳを提供するために、あらゆるコンテンツ交換部１１６、或いはオリジンサーバ１０８自体がオブジェクトを提供可能である。
【０００９】
アクティブディレクトリ１０４は、クライアントコンピュータ１１２がコンテンツオブジェクトを選択するために用いるインタフェースとなり得る。コンテンツ配信システム１００を可能とするために、オリジンサーバ１０８と任意のクライアントコンピュータ１１２の双方のためのソフトウェアがアクティブディレクトリ１０４からダウンロードされ得る。希望するコンテンツオブジェクトを判定するために、アクティブディレクトリ１０４に存在するディレクトリインタフェースページ、又は検索インタフェースページのいずれかを使用してもよい。オリジンサーバ１０８上のコンテンツオブジェクトとのリンク中断を回避すべく、インタフェースはアクティブに維持される。コンテンツ交換部１１６がオリジンサーバ１０８からコンテンツオブジェクトを要求する場合、アクティブディレクトリ１０４は、コンテンツオブジェクトの発生源である適切なオリジンサーバ１０８へ戻るパスを提供可能である。
【００１０】
他の実施例では、複数のアクティブディレクトリを有してもよい。複数のアクティブディレクトリの間で負荷を分散するために、システムのユーザがいくつかのアクティブディレクトリに振り分けられていてもよい。さらに、１つのアクティブディレクトリがオフラインの場合には他のアクティブディレクトリが負荷を吸収できるように、他のアクティブディレクトリを冗長化のために使用してもよい。
【００１１】
いくつかの実施形態においてオリジンサーバ１０８は、コンテンツオブジェクトのソースとして機能し、コンテンツオブジェクトの優先ソースにユーザを導き、アクティブディレクトリ１０４にディレクトリ情報を提供する。コンテンツオブジェクトはオリジンサーバ１０８によってシステム１００に導入される。導入は、アクティブディレクトリ１０４を利用可能にするための、オリジンサーバ管理者によるコンテンツオブジェクトの選択を含む。管理者とは、オリジンサーバ１０８を管理する人又はシステムである。コンテンツオブジェクトには、以前に記憶された情報、或いは情報のストリーミングによる提供が含まれる。オリジンサーバ１０８は所定のサイクルにしたがって、オリジンサーバ１０８上のコンテンツの変更とともに更新される選択情報のカタログを提供する。
【００１２】
オリジンサーバ１０８は、コンテンツオブジェクトをダウンロードするために、クライアントコンピュータ１１２に指示すべき優先ソースを判定する。クライアントコンピュータ１１２の優先リストと、コンテンツ交換の負荷と、コンテンツオブジェクトのコピーがある場所との全ては、クライアントコンピュータを情報の優先ソースへとあて先変更する際にオリジンサーバ１０８にて検討する事項である。そのソースは、オリジンサーバ１０８自体か、又はコンテンツ交換部１１６のうちの１つである。
【００１３】
ユーザは、所望のコンテンツオブジェクトを見つけ、その後そのオブジェクトをダウンロードするために、その場所をクライアントコンピュータ１１２に指示する。クライアントコンピュータ１１２は、アクティブディレクトリ１０４からダウンロードしたビューワオブジェクトプロキシソフトウェアを使用して、適切なＱＯＳでコンテンツ配信が可能なコンテンツ交換部１１６を判定する。この適切なＱＯＳを有するコンテンツ交換部１１６を判定する処理には、例えば最高の結果を生成する可能性が高いコンテンツ交換部からのテスト情報の受信と、これらのテスト結果に基づいたリストの生成が含まれる。カスタマイズされた方法を要望する場合、ユーザは、コンテンツ交換部１１６の優先リストを変更できる。オリジンサーバ１０８が要求されたコンテンツオブジェクトのソースを決定する際に、適切なＱＯＳを提供するために優先情報を使用する。
【００１４】
非関連コンテンツサーバ１０６は、インターネット上に存在し、システム１００に正式に関連付けられていないサーバである。本実施形態において、コンテンツ交換部１１６は、非関連コンテンツサーバ１０６からのコンテンツオブジェクトをキャッシュして、クライアントコンピュータ１１２に対して改善したＱＯＳを提供する。ある実施形態においては、クライアントコンピュータ１１２のユーザは、コンテンツ交換の所有者に、改善したＱＯＳに対する対価を支払う。
【００１５】
外部オリジンサーバ１１８は、クライアントコンピュータ１１２が利用可能なコンテンツオブジェクトのさらなるソースである。一実施形態では、外部オリジンサーバ１１８は、コンテンツ交換部１１６に接続される。外部オリジンサーバの負荷を過度に増大させることなく配信状況を改善するために、外部オリジンサーバ上のコンテンツオブジェクトが、分散するコンテンツ交換部にミラーリングされる。コンテンツオブジェクトを外部オリジンサーバ１１８から要求するクライアントコンピュータ１１２は、トランスペアレントにコンテンツ交換部１１６にあて先変更され、コンテンツオブジェクトに対する要求が満足される。
【００１６】
コンテンツ交換部１１６は、コンテンツオブジェクトをキャッシュするストレージリポジトリである。これら多数のコンテンツ交換部１１６は、インターネット１２０の異なる箇所に設置され、コンテンツオブジェクトをキャッシュする。このように、クライアントコンピュータ１１２はいずれも、インターネット１２０上で自身の近くにキャッシュを有している可能性がある。情報は、例えば、ユーザにとっての情報の要望度や、ユーザが直ちに利用可能なコンテンツを要求するオリジンサーバ１０８へのサービスや、改善したＱＯＳを要求するユーザへのサービス、下りバンド幅の負荷低減などの、多くの考察に基づいてキャッシュされる。コンテンツ交換部１１６のグループ化は、かたまりごとであっても、或いはコンテンツオブジェクトに対するクライアントコンピュータ１１２の要求を提供すべく個別であってもよい。
【００１７】
上記のように、オリジンサーバ１０８は、要求を満足させるために、クライアントコンピュータ１１２からコンテンツ交換部１１６に送信されたコンテンツオブジェクトに対する要求を参照することもある。要求されているコンテンツオブジェクト、又はその一部を、それを要求しているユーザがコンテンツ交換部１１６から見つけられない場合、コンテンツ交換部１１６から他のコンテンツ交換部へ、そのコンテンツオブジェクトの要求がなされる。他のどのコンテンツ交換部１１６もコンテンツオブジェクトを有しない場合、アクティブディレクトリ１０４においてオリジンサーバ１０８、割り当てられていないオリジンサーバ１０６又は外部オリジンサーバ１８８に対する問い合わせがなされる。オリジンサーバ１０８、割り当てられていないオリジンサーバ１０６又は外部オリジンサーバ１８８は、コンテンツオブジェクトのソースであり、かつコンテンツオブジェクトがそこからコンテンツ交換部１１６にダウンロードされる。コンテンツ交換部１１６がコンテンツオブジェクトを集めている間、クライアントコンピュータ１１２は、ダウンロード可能な最初の部分を受信している。コンテンツオブジェクトはいくつかのコンテンツ交換部１１６に部分ごとに記憶可能であり、このような状況では、要求を出すコンテンツ交換部１１６がそれら部分を検索して、クライアントコンピュータ１１２に要求されているような全体のコンテンツオブジェクトに再構築する。
【００１８】
クローリングディレクトリ１２４は、全オリジンサーバ１０８が報告するカタログ情報を補充するために使用される。ユーザのためにコンテンツオブジェクトを検索する際、アクティブディレクトリ１０４は、オリジンサーバ１０８から入手可能なコンテンツオブジェクト、及びクローリングディレクトリ１２４が発見した、非関連オリジンサーバ１０６又は外部オリジンサーバ１８８に存在する他のコンテンツオブジェクトを表示できる。クローリングディレクトリ１２４は、ウェブを横断することによって遭遇したコンテンツオブジェクトやその他の情報をカタログ化する。例えば、ユーザは、アクティブディレクトリ１０４によりクローリングディレクトリ１２４をキーワード検索して、外部オリジンサーバ１１８又は非関連オリジンサーバ１０６上のコンテンツオブジェクトに到達できるようになる。これらのコンテンツオブジェクトは、どのオリジンサーバ１０８からも入手することができない。クライアントコンピュータ１１２がコンテンツオブジェクトをダウンロードした時にそれをキャッシュするために、コンテンツ交換部１１６の１つがアクティブディレクトリ１０４によって選択される。本実施形態では、１つのクローリングディレクトリ１２４だけを使用しているが、他の実施形態では、さらなる検索結果を提供すべく、多数のクローリングディレクトリを使用可能である。
【００１９】
インターネット１２０は、ノードによって共にリンクされた複数のサーバからなる。データは、最終のあて先に到達するまで１つのノードから次のノードへと、ホッピングしてインターネット１２０を進行するパケットに分割される。各パケットは、インターネット内で異なるルートをとってもよく、異なる時に最終受信地に到着してもよい。さらに、任意のノードのバンド幅が飽和する時には、いくつかのパケットがインターネット１２０中を進行している間に消失することがある。コンテンツオブジェクトのソースと最終あて先との間のホップ数が増加すると、過度の遅延やパケット消失の可能性も同様に増加する。
【００２０】
コンテンツオブジェクトが、ソースから最終あて先までインターネット１２０内のパスを横断するため、パス内の任意の２ノード間の最小バンド幅によって、そのパスの最大バンド幅が決まる。通常、インターネット１２０からクライアントコンピュータ（たとえば「ラストワンマイル」）までのバンド幅には、最小のバンド幅が割り当てられている。ただし、場合によっては、ノード間の他のホップでバンド幅が最小となることもある。コンテンツ交換部１１６とクライアントコンピュータ１１２との間のホップが最も少ない状態で、コンテンツ交換部１１６にコンテンツオブジェクトをキャッシュするによって、十分なＱＯＳすなわち満足なＱＯＳが達成される可能性が高くなる。
【００２１】
クライアントコンピュータからインターネット１２０へのデータレートを上回らない好適なデータレートでコンテンツオブジェクトをダウンロードすることが、適切なＱＯＳとなる。ユーザが期待できる最高のＱＯＳは、それらのネットワークへの接続速度や、それらのコンピュータの処理能力や、他の要因によって決定される。最低のＱＯＳは、ユーザが一定の制約において要望する品質に基づき、ユーザが主観的に決定する。例えば、オーディオクリップのために、２８Ｋｂｐｓ、５６Ｋｂｐｓ、１２８Ｋｂｐｓでのストリームの選択肢があるとき、４００Ｋｂｐｓのネットワーク接続と高速コンピュータを有するユーザは、その中から１２８Ｋｂｐｓのストリームを選択してもよい。クライアントコンピュータが提供するデータ速度が１２８〜４００Ｋｂｐｓの範囲にある限り、そのストリームに適切なＱＯＳを得る事ができる。
【００２２】
上記の実施形態は、主に異なるブロック間の接続にインターネット１２０を使用しているが、他の実施形態では、インターネット１２０以外のプライベートリンクを使用、又は併用してもよい。このプライベートリンクは、ＱＯＳの改善に十分成るバンド幅を割り当てることができるか、或いはＱＯＳを改善するための他の手法を使用していることがある。さらに、外部オリジンサーバ１１８又は非関連オリジンサーバ１０６上のコンテンツオブジェクトは、コンテンツキャッシング、暗号化及び圧縮が提供される場合には、システム１００から恩恵を受けることがある。
【００２３】
図２を参照する。コンテンツ配信システム１００のアクティブディレクトリ部１０４の実施形態を示すブロック図が示されている。アクティブディレクトリ１０４は、ダイナミックドメインネームサーバ（ＤＮＳ）２０４と、サーバマネージャ２０８と、ディレクトリページ２１２と、検索ページ２１６と、ダウンロードページ２２０と、加入者データベース２２４と、サーバデータベース２２８と、コンテンツ交換データベース２３２と、ルーティングデータベース２３４とを有する。コンテンツ配信システム１００は、ユーザにディレクトリ情報を提供するためにアクティブディレクトリ１０４と対話し、ユーザによるコンテンツオブジェクトのダウンロードを支援する。
【００２４】
クライアントコンピュータ１１２のユーザ、及びオリジンサーバ１０８の管理者の両方が、コンテンツ配信システム１００の加入者である。ソフトウェアは、ダウンロードページ２２０からユーザ、及び／又は、管理者にダウンロードされる。実施形態によってはクライアントコンピュータ１１２のためのソフトウェアが随意にあり、インストールされた場合にＱＯＳを改善する。オリジンサーバ１０８のソフトウェアは、アクティブディレクトリ１０４がシステム１００上で利用できるコンテンツを更新し、そのコンテンツを受信するための優先ソースにクライアントコンピュータ１１２を導くことを可能とする。
【００２５】
クライアントコンピュータ１１２は、アクティブディレクトリ１０４のドメインに接続して、所望のコンテンツオブジェクトを見出す。優先度にしたがって、コンテンツオブジェクトを見つけるためにユーザはディレクトリページ２１２や検索ページ２１６を使用してもよい。検索ページ２１６は、クローリングディレクトリ１２４から収集された情報だけでなく、全てのオリジンサーバ１０８が提供したコンテンツオブジェクトのカタログにアクセスする従来のブールの検索エンジンであってもよい。他の実施形態では、オリジンサーバ１０８からのコンテンツの検索が不成功に終わった場合にはクローリングディレクトリ１２４からの情報のみを表示するか、或いは、クローリングディレクトリ１２４からの情報を全く除外する場合がある。全オリジンサーバ１０８のコンテンツオブジェクトのカタログは、サーバデータベース２２８に維持される。
【００２６】
本実施形態において、ディレクトリページ２１２は、利用可能なコンテンツオブジェクトを、対象に基づいて編成されるカテゴリの階層に分類する。例えば、最初のページには、大衆が関心を持つ多数の主題を表示しており、ユーザはこの中からスポーツを選択する。階層において１つ下の層にある次のページでは、多数のスポーツを表示しており、ユーザはこの中からフットボールを選択する。さらに１つ下の階層レベルで、ユーザは、サンディエゴチャージャーズ（ＴＭ）を選択して、関連したコンテンツオブジェクトのリンクである別のページを見ることがある。これらのリンクの各々は、コンテンツオブジェクトの発生源であるオリジンサーバ１０８を指している。
【００２７】
管理者は、オリジンサーバ１０８上のコンテンツを分類して、ディレクトリページ２１２にそれを適切に表示させる。管理者は、サイト、ディレクトリ、又はファイルごとに、そのコンテンツオブジェクトに関連するＨＴＭＬ　ＳＳＩタグにおいてコンテンツオブジェクトのカテゴリを選択できる。この分類を入手しアクティブディレクトリに記憶して、コンテンツオブジェクトが複数のカテゴリに分類されるようにする。さらに、調停者がディレクトリページ２１２のカテゴリにコンテンツオブジェクトを記載して配置してもよい。例えば、調停者はあるコンテンツオブジェクトをより目立たせて表示する対象とするためにマークをつけ、及び／又は、コンテンツオブジェクトについてのレビュー及び／又は概要をつけることがある。
【００２８】
サーバマネージャ２０８は、全てのクライアントコンピュータ１１２、全てのオリジンサーバ１０８、全ての外部オリジンサーバ１１８、全てのコンテンツ交換部１１６、及び、オリジンサーバ１０８上の全てのコンテンツオブジェクトに関する情報を維持管理する。クライアントコンピュータ１１２とオリジンサーバ１０８に関する情報は、加入者データベース２２４で維持管理される。クライアントコンピュータ１１２に関連した各ユーザについて、フルネーム、ログインネーム、パスワード、固有のネーム、利用できる代用貨幣クレジット、その他の情報が加入者データベース２２４で維持管理される。このデータベース２２４は、また、オリジンサーバ１０８を確認した最終時刻、オリジンサーバ１０８のインターネットプロトコル（ＩＰ）アドレス、コンテンツマネージャサーバが実行するポート、オリジンサーバ１０８のオンライン／オフラインステータス、バナー広告ＵＲＬ、オリジンサーバ１０８の名前、オリジンサーバ１０８の説明、オリジンサーバ１０８を使用するのに必要なクレジット若しくは代用貨幣又は他の課金モデル、一度に可能な接続数やビューワ数を保持する。
【００２９】
全てのオリジンサーバ１０８のコンテンツオブジェクトに関する情報は、サーバデータベース２２８で維持管理される。各コンテンツオブジェクトについて、オリジンサーバネーム、コンテンツオブジェクトファイルネーム、パスを、カテゴリ情報、概要、キーワードとともに記憶する。ディレクトリページ２１２、検索ページ２１６をナビゲーション中、ユーザにコンテンツ選択を提供するようサーバデータベース２２８に問い合わせる。サーバデータベース２２８に最新情報を維持するために、サーバマネージャ２０８は、周期的にオリジンサーバ１０８と対話してコンテンツオブジェクトのカタログの最新の変更を入手し、オリジンサーバ１０８がオフラインになったか否かを判定する。オリジンサーバ１０８がオフラインになったときは常に、そのオリジンサーバ１０８に対応するサーバデータベース２２８へのエントリを削除し、加入者データベース２２４のステータス情報を更新する。
【００３０】
ある実施形態では、サーバデータベース２２８へのエントリは、オリジンサーバ１０８がオフラインになった後でも存続する。オリジンサーバに関連したコンテンツが利用できないことを反映するためにステータスを更新するが、情報は、サーバデータベース２２８内に記憶されたままである。ステータスがオンラインに更新されると、情報は、コンテンツオブジェクトを検索しているユーザに再び示される。状況によっては、オリジンサーバ１０８はある期間にオフラインになる予定であることをアクティブディレクトリ１０４に示してもよい。その期間が短期間だと推定される場合、アクティブディレクトリは情報をユーザに表示せずに、サーバデータベース２２８内に保持できる。
【００３１】
システム１００で利用可能なコンテンツ交換部１１６のリストは、コンテンツ交換データベース２３２にてサーバマネージャ２０８が維持管理する。ある実施形態では、コンテンツ交換データベース２３２は、コンテンツ配信システム１００内で利用可能な全てのコンテンツ交換部１１６のＩＰアドレスのリストを含むことがある。さらに、コンテンツ交換データベース２３２は、各コンテンツ交換部１１６に関連した多数のコンテンツ交換フィールドを含むことがある。例えば、コンテンツ交換データベース２３２の各コンテンツ交換部１１６に関連したフィールドには、コンテンツ交換識別子、コンテンツ交換サイト、コンテンツ交換プロバイダ、コンテンツ交換名、コンテンツ交換位置、コンテンツ交換ステータス、アイコン、他のいかなる所望の情報が含まれ得る
【００３２】
コンテンツ交換識別子とコンテンツ交換サイトはこれらを合わせて、特定のコンテンツ交換サイトにて固有のコンテンツ交換部１１６を識別する。コンテンツ交換プロバイダは、コンテンツ交換に責任を有する関係者、例えば、ＸＹＺ会社の標識である。コンテンツ名は、ドメインネームであり、コンテンツ交換位置は、コンテンツ交換部１１６についての地理的座標である。例示の実施形態では、コンテンツ交換データベース２３２は、コンテンツ交換識別子、コンテンツ交換サイト、コンテンツ交換ＩＰアドレス、コンテンツ交換プロバイダ、コンテンツ交換名、コンテンツ交換場所、及び、コンテンツ交換データベース２３２における各コンテンツ交換部１１６のアイコンを含む。
【００３３】
一般に、コンテンツ交換データベース２３２は、改良されたＱＯＳ基準、又はサブスクリプションサービス基準などの方法、或いはこれらに限らず様々な方法に基づいて、地域別に分類、又は分割できる。さらに、コンテンツ交換データベース２３２は、代替のアクティブディレクトリ１０４、オリジンサーバ１０８のリスト、或いは他のいかなる有益な情報を含むこともある。
【００３４】
システム１００のコンテンツ交換部１１６は、サーバマネージャ２０８にステータスを定期的に提供する。コンテンツ交換部１１６が利用可能、又は利用不能となった場合には、それら動作ステータスはサーバマネージャ２０８に報告され、コンテンツ交換データベース２３２に記録される。ある実施形態では、コンテンツ交換データベース２３２は、コンテンツ交換部１１６の負荷、容量、利用度、ヘルスなどを含む付加的なステータス情報を含むことができる。
【００３５】
ルーティングデータベース２３４は、外部オリジンサーバ１１８のリストを有する。ある実施形態では、ルーティングデータベース２３４は、外部オリジンサーバ１１８に関する識別情報、ステータス情報、構成情報を有する。識別情報には、外部オリジンサーバ１１８のＩＰアドレスとドメインネームが含まれ得る。ステータス情報には、外部オリジンサーバの稼働率、負荷、又は他のステータスが含まれ得る。構成情報には、代替の外部オリジンサーバ１１８のリストが含まれ得る。一実施形態では、ルーティングデータベース２３４は、各外部オリジンサーバ１１８のＩＰアドレスとドメインネームを有する。ある実施形態では、ルーティングデータベース２３４内で外部オリジンサーバ１１８を識別することが、外部オリジンサーバ１１８をコンテンツ配信システム１００と関連付けるための機構である。
【００３６】
ルーティングデータベース内には、外部オリジンサーバ１１８の各々について、その外部オリジンサーバ１１８上の情報にアクセスするためにコンテンツ交換部１１６の使用が許可されたユーザ名のリストが存在する。ユーザ名は、クライアントコンピュータ１１２のユーザに一意的である。クライアントコンピュータがコンテンツ交換部１１６を介して経路決定可能な外部オリジンサーバ１１８のリストが、クライアントコンピュータ１１２に提供される。クライアントコンピュータ１１２は、ルーティングデータベースからの情報を使用して、外部オリジンサーバ１１８に対するユーザ要求をコンテンツ交換部１１６にあて先変更する。コンテンツ交換部１１６が外部オリジンサーバ１１８からのコンテンツオブジェクトを収容した後、外部オリジンサーバ１１８からコンテンツ交換部１１６にバンド幅の負荷が移される。この高度なサービスのためにユーザは、コンテンツ交換部１１６のオーナー、及び／又はオリジンサーバ１０８の管理者に、対価を払うこともある。
【００３７】
動的ＤＮＳ２０４は、オリジンサーバ１０８の各ＩＰアドレスのオリジンサーバネームを提供する。オリジンサーバネームは、一意的にインターネット１２０上のオリジンサーバ１０８を識別する。この情報は、加入者データベース２２４で維持管理される。コンテンツ交換部１１６は、コンテンツ交換部１１６にコンテンツオブジェクトを提供したオリジンサーバ１０８のＩＰアドレスを知らないが、オリジンサーバネームは知っている。コンテンツ交換部１１６が、そのキャッシュに他のコンテンツ交換部１１６からは入手不能なコンテンツオブジェクト、又はその一部を収容したいときは、コンテンツオブジェクトのソースであるオリジンサーバ１０８のＩＰアドレス、又はドメインネームを判定するために、動的ＤＮＳ２０４に問い合わせがなされる。ドメインネームを動的ＤＮＳ２０４から検索する場合、そのドメインネームに対応するＩＰアドレスがＤＮＳから検索される。
【００３８】
次に図３Ａを参照する。コンテンツ配信システム１００のオリジンサーバ部１０８の実施形態を示すブロック図が示される。オリジンサーバ１０８は、管理者によって管理され、コンテンツ配信システム１００にコンテンツオブジェクトのソースの１つを提供する。クライアントコンピュータを、所望のコンテンツオブジェクトを適切に配信可能なコンテンツ交換部１１６へと、導いているオリジンサーバ１０８によってＱＯＳが提供される。オリジンサーバ１０８には、コンテンツソース３０４、コンテンツサーバ３０８、コンテンツマネージャ３１２、ローカルコンテンツカタログ３１６、コンテンツロケーションデータベース３２０、コンテンツ交換情報３２４、ヘルスチェック３３０が含まれる。
【００３９】
コンテンツは、コンテンツソース３０４がオリジンサーバ１０８に提供する。コンテンツソース３０４は、ライブウェブカメラ、ビデオ又はオーディオフィード、データオブジェクト、データストリーム、ビデオテープ又はオーディオテープ、光学又は磁気ディスク、或いは他のあらゆるコンテンツ配信機構を含んでもよい。コンテンツオブジェクトは、システム１００内での可能な配信のためにコンテンツソース３０４によってコンテンツサーバ３０８に配信される。
【００４０】
維持されるコンテンツオブジェクトやコンテンツオブジェクトの部分について各コンテンツ交換部１１６に日時情報が維持される。その日時情報は、同一のオリジンサーバネーム、パス名、ファイル名を有するコンテンツオブジェクトを識別する。他の実施形態では、別法として、チェックサム（ｃｈｅｃｋｓｕｍ）、巡回冗長検査（ＣＲＣ）やハッシュ（ｈａｓｈ）などの任意の固有コードを使用して一義的にコンテンツオブジェクトを識別する。
【００４１】
オリジンサーバ３０８のコンテンツオブジェクトは全て、コンテンツサーバ３０８に記憶される。管理者は、システム１００で利用不能とするために他のコンテンツオブジェクトをコンテンツサーバ３０８上に残す一方、システム１００に掲載するためにコンテンツオブジェクトやコンテンツオブジェクトのグループを選択可能である。いくつかのコンテンツオブジェクトは、不連続のファイルであるが、他は、例えば、ライブウェブカメラによって生成されるコンテンツのストリームである。ある実施形態においては、コンテンツサーバ３０８を実行させるソフトウェアをコンテンツマネージャ３１２のソフトウェアと統合してもよい。
【００４２】
コンテンツマネージャ３１２は、システム１００に所望のコンテンツオブジェクトを掲載して、コンテンツマネージャ３１２に関連したコンテンツオブジェクトをダウンロードするためにユーザを好適なコンテンツ交換部１１６に導く。管理者の指示で、コンテンツマネージャ３１２はアクティブディレクトリ１０４に掲載するために、ファイルネーム、ディレクトリ、ドライブボリュームによってコンテンツオブジェクトやコンテンツオブジェクトのグループを選択する。コンテンツサーバ３０８上のいくつかのコンテンツオブジェクトは、システム１００で利用不能とするために掲載から除外してもよい。
【００４３】
システムに掲載するために選択されたコンテンツオブジェクトは、ローカルコンテンツカタログ３１６で維持管理される。ローカルコンテンツカタログ３１６へのエントリは、それらのエントリに対応するオブジェクトが利用不能、又は更新された場合には、最新の状態になるようにコンテンツマネージャ３１２が維持管理する。各エントリについて、コンテンツオブジェクトファイルネーム及びパスが、カテゴリ情報、概要、キーワードとともに記憶される。システム１００への接続があり次第、ローカルコンテンツカタログ３１６はコンテンツマネージャ３１２によってアクティブディレクトリ１０４に送信され、サーバデータベース２２８に登録される。可及的に最新のディレクトリ情報を保つために、ローカルコンテンツカタログ３１６への変更を定期的にサーバデータベース２２８に送信する。更新は、２分毎など定期的間隔をおいて、及び／又は、ローカルコンテンツカタログが変更されるときは常に実行されることがある。
【００４４】
コンテンツマネージャ３１２は、また、そのコンテンツマネージャ３１２に関連したコンテンツオブジェクトの全ての部分の記憶場所を知っている。システム１００に接続するとすぐに、コンテンツマネージャ３１２は、各コンテンツ交換部１１６にステータスを問い合わせる。各コンテンツ交換部１１６は、対応するコンテンツマネージャ３１２にそのコンテンツオブジェクトやコンテンツオブジェクトの部分に関する情報を定期的に報告する。この情報を活用して、発信元のコンテンツマネージャ３１２は、クライアントコンピュータ１１２をコンテンツ交換部１１６に導くことが可能となる。コンテンツ交換部１１６は、所望のコンテンツオブジェクトのいくつか、又は全てをダウンロード可能な状態で有する。
【００４５】
全てのコンテンツ交換部１０８が報告するコンテンツオブジェクトの記憶場所情報は、コンテンツマネージャによってコンテンツロケーションデータベース３２０に維持管理される。コンテンツロケーションデータベース３２０に照会することによって、コンテンツマネージャ３１２は、コンテンツオブジェクト、又はコンテンツオブジェクトの一部を有するコンテンツ交換部１１６を判定できる。クライアントコンピュータ１１２がコンテンツソースへルーティングされる間、特定のコンテンツ交換部１１２内でのコンテンツオブジェクトの存在は、ルートの決定に影響を及ぼすことがある。
【００４６】
コンテンツ交換情報記憶装置３２４は、全てのアクティブなコンテンツ交換部１１６に関する情報を有する。オリジンサーバ１０８を起動すると直ちに、アクティブディレクトリ１０４のコンテンツ交換データベース２３２がコンテンツ交換情報記憶装置３２４にダウンロードされる。起動の後に、コンテンツ交換情報記憶装置３２４にリストされている全てのコンテンツ交換部１１６に対して、ステータス情報の照会が行なわれ、この情報がコンテンツ交換情報３２４として保持される。ステータス情報には、使用される同時並行のリンク数、許可された同時並行のリンクの合計数、バンド幅の利用度、及びキャッシュのチャーンレートが含まれる。キャッシュのチャーンレートは、キャッシュ内に未使用データが残存する時間であり、キャッシュのロード状況を表す。例えば、キャッシュの記憶量に比してビジーなコンテンツ交換部１１６のために、データは通常キャッシュから迅速に消去される。しかしいくつかの実施例では、使用のいかんにかかわらず、ある期間中、コンテンツ交換部１１６に固定されて残存する厄介なコンテンツオブジェクトを有することもある。
【００４７】
コンテンツマネージャ３１２は、コンテンツオブジェクトを要求しているクライアントコンピュータ１１２を、そのオブジェクトの優先ソースへとインテリジェントにあて先変更する。クライアントコンピュータ１１２が送信する優先情報は、クライアントコンピュータ１１２が要求するコンテンツオブジェクトのソースを判定するために使用される。コンテンツオブジェクトのダウンロードのためにクライアントコンピュータ１１２を優先されたコンテンツ交換部１１６に導くため、この情報は、コンテンツオブジェクトの現在の記憶場所、及び使用可能なコンテンツ交換部の負荷とともに使用される。
【００４８】
いくつかの実施形態では、コンテンツマネージャ３１２は、コンテンツオブジェクトへのアクセスを管理できる。クライアントコンピュータ１１２がコンテンツマネージャ３１２に関連したコンテンツオブジェクトのダウンロードを試行したときに、管理者がコンテンツオブジェクトにセキュリティを設定していた場合には、ログインダイアログを表示することができる。ユーザはコンテンツオブジェクトのソースにクライアントコンピュータ１１２のあて先を変更するために、ログインダイアログにユーザ名、及び／又はパスワードを入力してもよい。このユーザ名、及び／又はパスワードは、アクティブディレクトリ１０４に必要とされるあらゆるものに加えて必要である。クライアントコンピュータ１１２をソースにあて先変更する前に、ユーザ名、及び／又はパスワードやログイン情報は、オリジンサーバ１０８に事前に記憶されている、容認可能ログイン情報のリストと照合してチェックされる。オリジンサーバ１０８全体、或いはオリジンサーバ１０８のボリューム、ディレクトリ、又はコンテンツオブジェクトへのアクセスはこの方式で管理し得る。
【００４９】
いくつかの実施形態では、オリジンサーバ１０８やアクティブディレクトリ１０４は、コンテンツ交換部１１６上にコンテンツオブジェクトをプリロードすることが許容されている。コンテンツオブジェクトの要求は、要望度を判定するために監視される。どのコンテンツオブジェクトをコンテンツ交換部１１６上にプリロードすべきか判定するために、要望度情報、課金情報、サイズ、及び／又は他の検討事項が使用される。オリジンサーバ１０８、アクティブディレクトリ１０４、コンテンツ交換部１１６のいずれかが、コンテンツオブジェクトをプリロードするためにコンテンツ交換部１１６からコンテンツオブジェクトを要求することが可能である。アクティブでないためにコンテンツオブジェクトがアンロードされないように、コンテンツオブジェクトのコンテンツ交換部上への定期的なロードをコンテンツ交換部１１６に対して要求することもある。他の実施形態では、あるコンテンツオブジェクトを、上に挙げた厄介なコンテンツオブジェクトとして指定することも可能である。
【００５０】
ヘルスチェック３３０は、対応するオリジンサーバ１０８の動作特性を提供するハードウェア又はソフトウェアアプリケーションのいずれかである。一実施形態では、ヘルスチェック３３０はオリジンサーバ１０８のステータスの単一の示度を提供する。その単一の示度は、オリジンサーバ特性の組合せを示す、０〜１の正規化された値である。例えば、それはＣＰＵ負荷、ＣＰＵ温度、同時接続の数、及び／又は、オリジンサーバが促進している要求の数を含んでもよい。代替の実施形態ではヘルスチェック３３０は、他のコンテンツ交換部１１６やオリジンサーバ１０８上で実行しながら、コンテンツ交換部１１６の特性を監視することがある。
【００５１】
次に図３Ｂを参照する。コンテンツ配信システム１００の外部オリジンサーバ部１１８の実施形態を示すブロック図が示されている。外部オリジンサーバ１１８は、それにインストールされたコンテンツマネージャソフトウェアを有しない点で、オリジンサーバ１０８とは異なる。外部オリジンサーバ１１８は、コンテンツサーバ３０８とコンテンツソース３０４とを有する。
【００５２】
外部オリジンサーバ１１８の管理者は、コンテンツ交換部１１６を通してコンテンツオブジェクトの受信を許可される１つ以上のクライアントコンピュータ１１２を決定する。ルーティングデータベース２３４は、個々のクライアントコンピュータ１１２がコンテンツ交換部１１６を介してコンテンツオブジェクトにアクセスできるように管理者が更新する。アクティブディレクトリ上のウェブページは、ルーティングデータベース２３４にクライアントコンピュータ１１２の情報を入力するインタフェースとして機能する。他の実施形態では、外部オリジンサーバ１１８へのサインアップ時にユーザが自動的にルーティングデータベース２３４に追加されるように、外部オリジンサーバ１１８とルーティングデータベース２３４間のインタフェースが自動化される。
【００５３】
クライアントコンピュータ１１２はルーティングデータベース２３４の更新をダウンロードして、ローカルに記憶する。外部オリジンサーバ１１８へのアクセスが次に試行されると、その要求にサービスを提供するためにコンテンツ交換部１１６にその試行があて先変更される。このようなあて先変更は、コンテンツマネージャソフトウェアの支援なしで、外部オリジンサーバ１１８がクライアントコンピュータ１１２をコンテンツ交換部１１６にあて先変更することを可能にする。
【００５４】
外部オリジンサーバ１１８は、外部オリジンサーバ１１８にコンテンツオブジェクトを搬送するために割り当てられた１つ以上のコンテンツ交換部１１６を有してもよい。ルーティングデータベース２３４は、加入したクライアントコンピュータをこれらの１つ以上のコンテンツ交換部１１６にあて先変更してもよい。クライアントコンピュータがこれらのコンテンツ交換部１１６の２つ以上の使用を許可されている場合、コンテンツ交換部間の相対的ＱＯＳを順位付けするために、２つ以上のコンテンツ交換部上でルーティングの解析がクライアント側で実行される。
【００５５】
外部オリジンサーバ１１８のコンテンツオブジェクトを、それらのコンテンツオブジェクトを提供するために割り当てられたコンテンツ交換部にプリロードできる。コンテンツオブジェクトを最初に要求する場合の遅延を短縮させるために、アクティブディレクトリ１０４は、外部オリジンサーバ１１８を巡回して、そのサーバ１１８から入手可能なコンテンツオブジェクトを判定できる。入手可能なコンテンツオブジェクトを、クローリングディレクトリ１２４に加えてもよい。一旦入手可能なコンテンツオブジェクトが判明すると、関連コンテンツ交換部上への各コンテンツオブジェクトのロードを生じさせるために、アクティブディレクトリ１０４は関連コンテンツ交換部に各コンテンツオブジェクトを要求する。このような方式で、コンテンツオブジェクトは関連したコンテンツ交換部にプリロードされる。
【００５６】
図４Ａを参照する。コンテンツ配信システム１００のコンテンツ交換部１１６の実施形態を示すブロック図が示される。コンテンツ交換部１１６は、コンテンツマネージャ３１２の制御にしたがって、クライアントコンピュータ１１２が要求するコンテンツオブジェクトをキャッシュする。コンテンツ交換部１１６は、トラッキングシステム４０２、ヘルスチェック４２６、及びコンテンツノード４０６を含む。トラッキングシステムは、コンテンツトラッカー４０４、ヘルスチェック４２６、ステータス情報４２０、ローカルコンテンツカタログ４１６、オリジンサーバデータベース４２４を有し、一方コンテンツノード４０６は、コンテンツコントローラ４０８、コンテンツ記憶部４１２を有する。
【００５７】
ヘルスチェック４２６は、関連コンテンツ交換部１１６の動作特性を提供するハードウェア又はソフトウェアアプリケーションのいずれかである。一実施形態では、ヘルスチェック４２６は、コンテンツ交換部１１６のステータスの単一の示度を提供する。単一の示度は、例えばＣＰＵ負荷、ＣＰＵ温度、同時接続の数、コンテンツ交換部が促進している要求の数を含むコンテンツ交換部特性の組合せを示している０〜１の間の正規化された値でもよい。代替実施形態では、他のコンテンツ交換部１１６、オリジンサーバ１０８、又は他の場所で実行する間に、ヘルスチェック４２６は、コンテンツ交換部１１６の特性を監視可能である。
【００５８】
コンテンツ記憶部４１２は、そのコンテンツ交換部１１６からクライアントコンピュータ１１２にダウンロード可能なコンテンツオブジェクトを記憶する。パス情報及びファイル名と共にコンテンツオブジェクトを提供しているオリジンサーバ１０８のネームは、コンテンツオブジェクトと共にコンテンツ記憶部４１２に記憶される。クライアントコンピュータ１１２はインターネット１２０を介して、コンテンツ記憶部４１２に接続し、コンテンツオブジェクトファイルやデータストリームをダウンロードする。新規のコンテンツオブジェクトがコンテンツ記憶部４１２に加えられると、古いコンテンツオブジェクトが通常は削除される。コンテンツオブジェクトの経時は、コンテンツオブジェクトにアクセスした最終時に関係する。記憶装置４１２上のいくつかのコンテンツオブジェクトは経時を経ない結果、コンテンツオブジェクトは所定時間だけ記憶装置４１２に留まる。オリジンサーバ１０８は、コンテンツ交換部１１２を調整して、所定の時間コンテンツオブジェクトを記憶することができる。
【００５９】
クライアントコンピュータ１１２がコンテンツ記憶部４１２からコンテンツオブジェクトを要求する場合、コンテンツオブジェクトはその時点でコンテンツ記憶部４１２にロードされていない場合がある。コンテンツ記憶部４１２は、コンテンツオブジェクトに対する実行されていない要求をコンテンツコントローラ４０８に通知する。コンテンツコントローラ４０８は、他のコンテンツ交換部１１６内、又はコンテンツオブジェクトの発生源であるコンテンツサーバ３０８から、欠落したコンテンツオブジェクト、又はその部分を探し出す。クライアントコンピュータ１１２がこの情報をダウンロード可能とすべく、欠落したコンテンツオブジェクトはコンテンツコントローラ４０８によってコンテンツ記憶部４１２へロードされる。
【００６０】
コンテンツオブジェクトがコンテンツ記憶部４１２から欠落している場合、コンテンツコントローラ４０８は、先ず他のコンテンツ交換部１１６をチェックして、オブジェクトが利用可能か否かを判定する。コンテンツ交換部１１６が所望のコンテンツオブジェクトを有しない場合、コンテンツオブジェクトは、情報を発生したコンテンツサーバ３０８に問い合わせる。コンテンツ記憶部４１２は発生源のコンテンツサーバ３０８についてのＩＰアドレスを有しないため、その情報について動的ＤＮＳ２０４に問い合わせがされる。オリジンサーバネームが与えられると、コンテンツコントローラ４０８が適切なコンテンツサーバ３０８からコンテンツオブジェクトを要求できるように、動的ＤＮＳ２０４は、ＩＰアドレスを提供する。
【００６１】
コンテンツトラッカー４０４は、コンテンツ記憶部４１２内のその時点でのアイテムやコンテンツ交換部１１６のステータス情報をシステム１００に報告する。ローカルコンテンツカタログ４１６は、コンテンツ記憶部４１２内にある各コンテンツオブジェクト又はコンテンツオブジェクトの部分について、オリジンサーバネーム、パス、及びファイルネームを記憶する。コンテンツ記憶部４１２に新規アイテムを追加し、古いアイテムを削除することによって、ローカルコンテンツカタログ４１６が更新される。コンテンツマネージャ３１２がシステム１００に接続したときには、全てのコンテンツトラッカー４０４に問い合わせて、コンテンツオブジェクトのどのような部分がコンテンツ記憶部４１２に記憶されているか否かを判定する。最初の問合せは、種々のコンテンツ記憶部４１２が変更されたときに、コンテンツトラッカー４０４が更新する基準となる。変更は、コンテンツ記憶部４１２に記憶されたコンテンツを有する各コンテンツマネージャ３１２に直接送信される。動的ＤＮＳ２０４は、この処理の間、各コンテンツオブジェクトのオリジンサーバネームに対応するＩＰアドレスを判定するために使用される。
【００６２】
コンテンツトラッカー４０４は、コンテンツマネージャ３１２にコンテンツ交換部１１６のステータス情報４２０をも提供する。ステータス情報４２０は、ブロードキャスト、又はマルチキャストとして定期的に、例えば、５分毎、及び／又は、変更が発生する時に、それぞれのコンテンツマネージャ３１２に送信される。ステータス情報４２０には、現在使用中のコンテンツ交換部への同時並行のリンクの数、同時並行のリンクとして容認されている総数、バンド幅の利用度、キャッシュチャーンレート及び／又はその他の情報が含まれる。他の実施形態では、このステータス情報は、コンテンツオブジェクトをダウンロードするためにクライアントコンピュータ１１２の送信場所を判定する際に、コンテンツマネージャ３１２が問い合わせ可能な中心記憶場所に送られる。
【００６３】
このコンテンツトラッカー４０４は、システム１００内でアクティブなオリジンサーバ１０８を追跡するために、オリジンサーバデータベース４２４を維持管理する。システムに接続した後、全てのオリジンサーバ１０８は、コンテンツトラッカー４０４にそれ自身を識別させる。コンテンツトラッカー４０４は、オリジンサーバデータベース４２４にオリジンサーバネームとＩＰアドレスを記憶する。動的ＤＮＳに対する問い合わせにより、特定のオリジンサーバネームに対応するＩＰアドレスが提供される。オリジンサーバ１０８がコンテンツトラッカー４０４に今にも利用不能となりそうなことを知らせるか、又はコンテンツトラッカー４０４が特定のオリジンサーバと交信することができない場合、そのオリジンサーバのエントリがオリジンサーバデータベース４２４から削除される。さらに、そのオリジンサーバ１０８に対応するコンテンツをコンテンツ記憶部４１２から一掃し、ローカルコンテンツカタログ４１６を更新してもよい。いくつかの実施形態では、記憶空間が必要なときは、コンテンツオブジェクトやコンテンツオブジェクトの部分を一掃せずに、単に削除用のタグを付ける。
【００６４】
いくつかの実施形態では、システム１００は、コンテンツコントローラ４０８にコンテンツ記憶部４１２内の所定のコンテンツオブジェクトを入手及び保持するように指示することができる。要求が予測されるコンテンツオブジェクトを、その要求に備えてプリロードすることが可能である。コンテンツオブジェクトの要望度は、検索ページ２１２又はディレクトリページ２１６から、それらのコンテンツオブジェクトに対するクリックスルーをモニターすることによって判定できる。例えば、有名人の伝記プログラムがネットワークテレビで放送される前に、有名人に関するコンテンツオブジェクトを直ちにコンテンツ記憶部４１２にロードすることがある。代替手段として、ユーザは、いくつかのコンテンツ交換部１１６にコンテンツオブジェクトをロードするサービスを予約できる。例えば、テレビ放送と同時に、予定されたネットワーク番組をロードでき、これによってユーザはテレビ放送の代わりにインターネット１２０を通じてこの番組を鑑賞できるようになる。このように、加入ユーザは、このコンテンツを遅延なく利用できる。
【００６５】
図４Ｂを参照する。コンテンツ配信システム１００のコンテンツ交換部１１６の他の実施形態を示すブロック図が示されている。本実施形態では、単一のトラッキングサーバ４０２に接続された複数のコンテンツノード４０６を有する。コンテンツバス４２８は、コンテンツノード４０６が互いのコンテンツ記憶部４１２をチェックして、欠落したコンテンツオブジェクトを探すことを可能にする。コンテンツバス４２８は、また、他の記憶場所の他のコンテンツノードにも接続できる。コンテンツバス４２８は、一部インターネット１２０を通過してもよく、しなくてもよい。
【００６６】
次に図４Ｃを参照する。複数のコンテンツ交換サーバ１１６を有するコンテンツ交換サイト４３２の実施形態を示すブロック図が示されている。コンテンツ交換サイト４３２は複数のコンテンツ交換サーバ１１６を有しているが、システムからは、これらが単一のコンテンツ交換部１１６のようにみえる。コンテンツ交換サイト４３２の負荷は、構成要素であるコンテンツ交換サーバ１１６の間に分散される。レイヤー４スイッチなどのスイッチ４３６は、コンテンツ交換部１１６にコンテンツオブジェクトの要求を配信し、スプールされた応答を集約しインターネット１２０へ送信する。
【００６７】
次に図５を参照する。コンテンツ配信システム１００のクライアントコンピュータ部分１１２の実施形態を示すブロック図が示されている。クライアントコンピュータ１１２は、ユーザにコンテンツを配信するためにインターネット１２０と通信する。クライアントコンピュータ１１２は、ビューワオブジェクトプロキシ５０４、コンテンツ処理プログラム５０８、優先情報５１２、ネットワークインタフェース５１６及び、ホストサーバルーティング５２０を有する。
【００６８】
コンテンツ処理プログラム５０８は典型的には、インターネット１２０からダウンロードされるコンテンツオブジェクトを、解釈すなわち処理するソフトウェアである。コンテンツ処理プログラム５０８の例としては、ウェブブラウザ、ファイル転送プロトコル（ＦＴＰ）ソフトウェア、ゴーファソフトウェア、ニュース（ＮＮＴＰ）、メールプログラム、ストリーミングメディアプレーヤ、非ストリーミングメディアプレーヤ、及び他のソフトウェアが含まれる。通常は直接インターネットに送信されるコンテンツ処理プログラム５０８からのインターネット通信は、ビューワオブジェクトプロキシ５０４にあて先変更される。
【００６９】
ビューワオブジェクトプロキシ５０４は、インターネット１２０とコンテンツ処理プログラム５０８との間の仲介者として機能する。ビューワオブジェクトプロキシ５０４をインストールした後でビューワオブジェクトプロキシは、インターネット１２０の既知の位置に対する、その一般的な記憶場所を判定する。充分なＱＯＳを提供する妥当な候補であるコンテンツ交換部１１６を試験して、各コンテンツ交換部１１６に到達するのに必要なホップ数、及び各コンテンツ交換部１１６とビューワオブジェクトプロキシ５０４との間の待ち時間を判定する。ＱＯＳ係数の重み付け、例えば、ホップ数や達成されるバンド幅は優先情報５１２として記憶され、ＨＴＴＰヘッダ内のメタデータとしてコンテンツマネージャ３１２に転送される。
【００７０】
他の実施形態では、ＨＴＴＰヘッダ内のメタデータに限らず、あらゆる種類のデータチャネルのメタデータとしても引き渡すことができる。例えばメタデータは、専用ポート、ＩＰアドレス、ＵＲＬ、ヘッダ、その他の論理チャネルを介して送信可能である。
【００７１】
優先情報５１２は、クライアントコンピュータの観点１１２から実行されたネットワーク解析の結果である。コンテンツオブジェクトが要求されたときには、優先情報５１２はコンテンツオブジェクトマネージャ３１２に送信され、これに応じてコンテンツオブジェクトマネージャ３１２はクライアントコンピュータ１１２に対して適切なコンテンツ交換部１１６を選択する。定期的に、例えば１時間毎に、優先情報５１２は、自動試験を使用して更新されるか、或いはユーザが手動で更新する。次の試験は、前回の結果を考慮して、効率的に優先すべきコンテンツ交換部を判別する。例えば、第１の解析において、１００のコンテンツ交換部をチェックするが、次の解析では性能の悪いコンテンツ交換部を除き、５０のみを分析してもよい。
【００７２】
優先情報５１２は、コンテンツ交換部１１６のリスト、及びクライアント側のネットワーク解析の結果から生じたそれらに関連するＱＯＳ値を含む。いくつかの実施形態では、外部オリジンサーバ１１８への経路が複数存在する。複数経路は、ポート、ＩＰアドレス、サーバ識別（識別子）及び／又は、他の機構により分離される。クライアント側ネットワーク解析は、外部オリジンサーバ１１８への各経路、或いは複数経路を有する可能性があるあらゆる他のコンテンツオブジェクトソースに対応するＱＯＳ値を判定するために使用可能である。
【００７３】
クライアントコンピュータ１１２のユーザがコンテンツオブジェクトを選択した後、オリジンサーバネームがビューワオブジェクトプロキシ５０４に提供される。オリジンサーバネームは、ビューワオブジェクトプロキシ５０４が動的ＤＮＳ２０４にオリジンサーバ１０８のＩＰアドレスを問い合わせるために使用される。一旦ＩＰアドレスが判明すると、コンテンツ処理プログラム５０８を、所望のコンテンツオブジェクトを得るためにコンテンツマネージャ３１２にあて先変更する。コンテンツマネージャ３１２に優先情報５１２が転送され、適切なコンテンツ交換部１１６へのクライアントコンピュータ１１２のルーティングを可能とさせる。本実施形態では、優先情報５１２は１０の優先コンテンツ交換部を有するが、ユーザは優先コンテンツ交換の数を調整できる。
【００７４】
いくつかの実施形態では、ビューワオブジェクトプロキシ５０４はＨＴＴＰに特有のものであってもよいが、ルーティング情報についてプロトコルに依存しないものであってもよい。したがって、ルーティング情報はＨＴＴＰに従って転送されるが、実際のルーティング情報はプロトコルに依存しない。しかし当業者は、ビューワオブジェクトプロキシ５０４をまた、必要に応じて他のネットワークプロトコルと協働させ得ることを認識するであろう。例えば、ビューワオブジェクトプロキシ５０４は、ＦＴＰ、ＮＮＴＰ、ＲＴＰ、ＲＴＳＰ、ＳＭＴＰ、ＳＨＯＵＴ等に従って機能するように構成できる。
【００７５】
クライアントコンピュータ１１２は、ホストサーバルーティングデータベース５２０を含む。このホストサーバルーティングデータベース５２０は、クライアントコンピュータ１１２がアクセス可能な外部オリジンサーバ１１８に関する情報を含む。一実施形態では、ホストサーバルーティングデータベース５２０は、アクティブディレクトリ１０４で発見されるルーティングデータベース２３４のエントリのサブセットである。
【００７６】
クライアントコンピュータ１１２は、ビューワオブジェクトプロキシ５０４をインターネット１２０に接続するネットワークインタフェース５１６を有する。ネットワークインタフェース５１６の一般的な例としては、アナログモデム、ＤＳＬモデム、ＩＳＤＮ、ケーブルモデム、サテライトモデム、セルラ方式モデム、電線モデム、見通線（Ｌｉｎｅ−ｏｆ−ｓｉｇｈｔ ）マイクロ波モデム、見通線（Ｌｉｎｅ−ｏｆ−ｓｉｇｈｔ ）レーザーモデム等が含まれる。
【００７７】
本実施形態では、クライアントコンピュータは、ホームユーザに対応する。他の実施形態では、クライアントコンピュータは、劇場にデジタル映画を提供可能であるか、或いは会社のネットワークユーザ、ホテルの客、アパートの共同ビルにコンテンツオブジェクトを提供可能である。
【００７８】
図６を参照する。コンテンツ配信システム６００の実施形態を示すブロック図が示される。この図は、データブロック間のデータフローを示し、インターネット１２０上又は他のネットワーク上でのやりとりは示されていない。しかし、インターネット１２０又は任意のパケット交換ネットワークはいくつかの実施形態で使用されるものである。また、この図は、図２〜５のいくつかのブロックをいくぶん簡略化したものであり、外部オリジンサーバ１１８、及びクローリングディレクトリ１２４は、簡略化するために図６を含まれていない。
【００７９】
ネットワークインタフェース５１６は、クライアントコンピュータ１１２をインターネット１２０へ接続する。クライアントコンピュータ１１２は、ディレクトリページ２１２、検索ページ２１６に接続して、ダウンロードするコンテンツオブジェクトの選択をユーザに可能とさせる。コンテンツオブジェクトが選択されると、アクティブディレクトリ１０４から、適切なオリジンサーバ１０８へのクライアントコンピュータ１１２のあて先変更には動的ＤＮＳ２０４が使用される。優先情報５１２は、コンテンツオブジェクトのソースの選択を支援するためにコンテンツマネージャ３１２に転送される。コンテンツマネージャ３１２の選択にしたがって、コンテンツオブジェクトは、コンテンツ交換部１１６のうちの１つ、又はコンテンツサーバ３０８からダウンロードされる。
【００８０】
アクティブディレクトリ１０４は、システム６００の他のモジュールと対話する。クライアントコンピュータ１１２は、コンテンツオブジェクトを選択すべくディレクトリページ２１２、検索ページ２１６にアクセスする。コンテンツトラッカー４０４及びコンテンツマネージャ３１２はそれぞれ、サーバマネージャ２０８にステータス及びカタログ情報を提供する。加入者データベース２２４を維持管理するために、オリジンサーバ１０８の管理者及び、クライアントコンピュータ１１２のユーザによって、アカウント情報がサーバマネージャ２０８に提供される。オリジンサーバネームからオリジンサーバ１０８のＩＰアドレスへのあて先変更は、ビューワオブジェクトプロキシ５０４と、コンテンツトラッカー４０４と、コンテンツコントローラ４０８とに動的ＤＮＳ２０４によって提供される。
【００８１】
オリジンサーバ１０８は、サーバマネージャ２０８、クライアントコンピュータ１１２、コンテンツトラッカー４０４、コンテンツ記憶部４１２、及びコンテンツコントローラ４０８と通信する。サーバデータベース２２８をその時点でのコンテンツ情報を備えて維持管理するために、コンテンツマネージャ３１２からサーバマネージャ２０８にローカルコンテンツカタログ３１６が提供される。コンテンツオブジェクトのソースの選択を容易にするために、クライアントコンピュータ１１２からコンテンツマネージャ３１２に優先情報５１２が提供される。コンテンツトラッカー４０４は、コンテンツマネージャ３１２と対話して、どのようなコンテンツオブジェクトがコンテンツ交換部１１６に記憶されているかを判別する。コンテンツオブジェクトは、コンテンツ記憶部４１２、又はクライアントコンピュータ１１２のいずれかによって、コンテンツサーバ３０８からロードされる。
【００８２】
コンテンツ交換部１１６は、システム６００の他のモジュールとも対話する。ステータス情報は、アクティブディレクトリ１０４、及び／又は、コンテンツマネージャ３１２に提供される。コンテンツオブジェクトを有するオリジンサーバ１０８のＩＰアドレスを探し出すために、コンテンツコントローラ４０８とコンテンツトラッカー４０４が共に動的ＤＮＳを使用する。コンテンツ記憶部４１２がオブジェクトを必要とする場合、選択されたコンテンツ交換部は、他のコンテンツ交換部と交信してもよい。他のコンテンツ交換部がそのコンテンツオブジェクトを有しない場合、コンテンツコントローラ４０８はコンテンツサーバ３０８から選択されたコンテンツ記憶部４１２へのオブジェクトの配信要求をする。
【００８３】
次に図７を参照する。２種類のコンテンツ交換部７０２，７０４を有する、他の実施形態によるコンテンツ配信システム７００のブロック図が示されている。本実施形態は、パブリックコンテンツ交換部７０２とキャプティブコンテンツ交換部７０４とを有する。１つ以上のキャプティブコンテンツ交換部７０４は、１つ以上の関連クライアントコンピュータ７０８及び１つ以上の関連オリジンサーバ７１２とグループを形成している。パブリックコンテンツ交換部７０２は、クライアントコンピュータ１１２、関連クライアントコンピュータ７０８のいずれに対してもコンテンツオブジェクトを提供できる。パブリックコンテンツ交換部７０２に記憶されているコンテンツオブジェクトは、非関連オリジンサーバ１０６、オリジンサーバ１０８、外部オリジンサーバ１１８、又は関連オリジンサーバ７１２のいずれに由来するものであってもよい。
【００８４】
しかし、システム７００は、パブリックコンテンツ交換部７０２を利用可能なように、キャプティブコンテンツ交換部７０４を完全に利用可能というわけではない。キャプティブコンテンツ交換部７０４は、関連オリジンサーバ７１２に由来するコンテンツオブジェクトをキャッシュする。キャッシュされたオブジェクトは、関連クライアントコンピュータ７０８又はクライアントコンピュータ１１２のいずれかに提供される。非関連オリジンサーバ１０６、オリジンサーバ１０８及び外部オリジンサーバ１１８に由来するコンテンツオブジェクトは、クライアントコンピュータ１１２のためにではなく、関連クライアントコンピュータ７０８のためにキャッシュされる。クライアントコンピュータ１１２は、非関連オリジンサーバ１０６、オリジンサーバ１０８及び外部オリジンサーバ１１８に由来するコンテンツオブジェクトのキャッシュに関しては、キャプティブコンテンツ交換部７０４を利用できない。このため、クライアントコンピュータ１１２の優先情報５１２はパブリックコンテンツ交換部７０２しか含まず、キャプティブコンテンツ交換部７０４は含まない。
【００８５】
本実施形態において、キャプティブコンテンツ交換部７０４はパブリックコンテンツ交換部７０２に接続されている。これによって、ユーザからの要求があった場合に、欠落したコンテンツオブジェクト又はコンテンツオブジェクトの一部がコンテンツ交換部７０２とコンテンツ交換部７０４との間でやり取りされるようになる。優先コンテンツ交換部７０２，７０４からコンテンツオブジェクトが要求された場合、コンテンツオブジェクトの少なくとも一部に対する検索を先ずローカルで実行する。発見なかった場合、他のコンテンツ交換部７０２，７０４を検索し、それでも発見できなければ、最初にコンテンツオブジェクトをシステム７００に提供したオリジンサーバ１０６，１０８，１１８，７１２にコンテンツオブジェクトを要求する。しかし、別の実施形態においては、キャプティブコンテンツ交換部７０４とパブリックコンテンツ交換部７０２との間でファイルの交換が行なわれないことがある。
【００８６】
種々の実施形態において、キャプティブコンテンツ交換部７０４は中央局、ヘッドエンド、ＩＳＰロケーション、又はインターネットバンド幅が関連クライアントコンピュータ７０８への「ラストワンマイル」すなわち末端経路をたどりはじめるノードに置かれることがある。キャッシュを最終目的地のできるだけ近くに移動させることによって、ボトルネックを解消し、ＱＯＳを向上させることが可能になる。例えば、ＤＯＣＳＩＳ準拠のモデムを介して関連クライアントコンピュータ７０８にサービスを提供しているケーブルマルチシステムオペレータ（ＭＳＯ）は、ヘッドエンド、又は隣接するノードにキャプティブコンテンツ交換部７０４を設けていることがある。このように、関連クライアントコンピュータ７０８と関連オリジンサーバ７１２とがコンテンツ交換部７０４に接続され、キャッシュを利用することで改善したＱＯＳを提供する。
【００８７】
図８を参照する。コンテンツ配信システム８００のさらに別の実施形態のブロック図が示されている。本実施形態は、キャプティブコンテンツ交換部７０４、関連クライアントコンピュータ７０８及び関連オリジンサーバ７１２が、インターネット１２０を介して仮想的に接続されている状態を示している。機能ブロック７０４，７０８，７１２はいかなる方法で接続してもよい。例えば、キャプティブコンテンツ交換部７０４は、ファイバ／ケーブルのハイブリッド配信システムを介して関連クライアントコンピュータ７０８に接続される。これに対し、関連オリジンサーバ７１２は、インターネット１２０を介してキャプティブコンテンツ交換部７０４に接続される。
【００８８】
次に図９を参照する。利用可能な記憶容量を有する利用可能なキャプティブコンテンツ交換部７０４にデータを取り込むための一実施形態の処理９００を表すフロー図が示されている。図に示した処理９００は、ステップ９０４から開始し、このステップではバンド幅の利用度がしきい値を下回っているか否かが判定される。検査対象のバンド幅は、本実施形態では全ての関連オリジンサーバ７１２とキャプティブコンテンツ交換部７０４との間のバンド幅であるが、他の実施形態では１つの関連オリジンサーバ７１２とキャプティブコンテンツ交換部７０４との間のバンド幅となることもある。
【００８９】
ステップ９０８において、どのオリジンサーバが関連オリジンサーバ７１２であるのか特定する。この情報を求めてアクティブディレクトリ１０４に対して問い合わせが行なわれることもあれば、キャプティブコンテンツ交換部７０４にこの情報がローカルに維持管理されていることもある。関連オリジンサーバ７１２が判明したら、ステップ９１２において、各ローカルコンテンツカタログ３１６を問い合わせて、その関連オリジンサーバ７１２で利用可能なコンテンツオブジェクトを特定する。
【００９０】
ステップ９１６において、全ての関連オリジンサーバ７１２からのコンテンツオブジェクトを分析し、コンテンツオブジェクトのランクを決定する。本実施形態では、コンテンツオブジェクトの人気によりランクを決定している。このアルゴリズムにおいては、人気の決定に際し、前の日にコンテンツオブジェクトがダウンロードされた回数を求めているが、他の実施形態では、別の時間間隔を使用することも可能である。本実施形態では人気に基づいてランクを決定しているが、他の実施形態では、コンテンツオブジェクトのサイズ、コンテンツオブジェクトの価格、及び／又は他の要因に基づいてランクを決定してもよい。
【００９１】
関連オリジンサーバ７１２又はキャプティブコンテンツ交換部７０４は、クリックスルーの回数、すなわちコンテンツオブジェクトのヒット回数を決定することによってそれぞれ人気をモニタしてもよい。選択されたコンテンツオブジェクトを関連オリジンサーバ７１２に転送するＣＧＩスクリプトを用いて、クライアントコンピュータのユーザのクリックスルーをモニタすることができる。転送されたクリックスルーは記録されて、クライアントコンピュータ１１２，７０８は、コンテンツオブジェクトの供給元であるコンテンツ交換部７０２，７０４にあて先変更される。
【００９２】
ステップ９２０において、人気コンテンツオブジェクトを記憶するために割り当てる、コンテンツ記憶部４１２のキャッシュ空間の容量を決定する。本実施形態では、コンテンツ記憶部４１２の記憶容量の半分を人気コンテンツの記憶に使用するが、他の実施形態では、コンテンツ記憶部４１２の記憶容量に対する割合の値を変えてもよい。
【００９３】
ステップ９２２において、コンテンツオブジェクトのいずれがコンテンツ記憶部４１２に既に記憶されているか否かを特定する。ステップ９２２では、記憶済みの内容を特定するために、関連オリジンサーバ７１２のローカルコンテンツカタログ３１６と、キャプティブコンテンツ交換部７０４のローカルコンテンツカタログ４１６とを比較し、記憶されていないコンテンツオブジェクトを判定する。既に記憶されているコンテンツオブジェクトは、ステップ９２４において、再ロードが不要であるとマークされる。
【００９４】
ステップ９２８において、高ランクのコンテンツオブジェクトのうち、割り当てられたキャッシュ空間に格納されるが、まだロードされていないものを特定する。キャッシュ空間に格納されないコンテンツオブジェクトはリストから削除される。リストで最も人気の低いものから順に、コンテンツ記憶部４１２に存在しないコンテンツオブジェクトが要求され、このコンテンツオブジェクトをコンテンツ記憶部４１２にロードされる。リストをたどっていく際に、コンテンツ記憶部４１２に既にロードされているコンテンツオブジェクトがリストに見つかれば、そのコンテンツオブジェクトがキャッシュの前方に移動される。このようにして、格納される全ての人気コンテンツオブジェクトが、ランクに従ってキャッシュに記憶される。ランクの低いコンテンツオブジェクトは、そのコンテンツオブジェクトに対するヒットや要求がその後発生しなければ、キャッシュの後方から排除される。
【００９５】
ある実施形態では、各関連オリジンサーバ７１２のコンテンツオブジェクトが取り込まれる処理が、他の関連オリジンサーバ７１２のコンテンツオブジェクトを取り込むための別の処理と並列して実行される。特定の関連オリジンサーバ７１２と、キャプティブコンテンツ交換部７０４との間のバンド幅を調べて、バンド幅の利用度がしきい値を下回ったか否かが判定される。しきい値を下回ると、コンテンツオブジェクトがキャプティブコンテンツ交換部にロードされる。これと並行して、他の関連オリジンサーバ７１２のコンテンツオブジェクトが取り込まれる。
【００９６】
図１０を参照する。キャプティブコンテンツ交換部７０４にデータを取り込むための他の実施形態による処理１０００を表すフロー図が示されている。本実施形態においては、キャッシュに代わってファイルシステムが使用されている。コンテンツオブジェクトは、期限切れとなる時期が到来するまでファイルシステムにロードされたままとなる。例えば、わずか２４時間でこのファイルが上書きされるように、有効期限が１日に設定されて、コンテンツオブジェクトがロードされることがある。
【００９７】
本実施形態と図９に示した実施形態とが大きく異なるのは、ステップ１００４以降である。このステップにおいて、プリロードのために予約されているファイルシステム空間の容量が判定される。このファイルシステム空間は、キャッシュに使用されている空間とは論理的に分離されている。ファイルシステムに記憶されているコンテンツオブジェクトが、キャッシュにも重複して記憶されるべきではない。ステップ１００２及びステップ９２４において、これらのファイルのエントリがマークされ、キャッシュに既に記憶されているファイルが再ロードされないようにする。ステップ１００８において、ファイルシステムに格納されないコンテンツオブジェクトがリストから削除される。ステップ１０１２において、まだロードされてはいないが、格納すべきコンテンツオブジェクトがロードされる。ファイルシステム内の全コンテンツオブジェクトの有効期限が１日又はその他の期限に設定される。
【００９８】
図１１を参照する。キャプティブコンテンツ交換部７０４にデータを取り込むためのさらに別の実施形態による処理１１００を表すフロー図が示されている。本実施形態においては、キャプティブコンテンツ交換部７０４は、システム７００で利用可能になった直後にデータを自身に取り込む。例えば、キャプティブコンテンツ交換部７０４は電源投入直後にデータを自身に取り込むことがある。本実施形態では、キャッシュに記憶済みのコンテンツオブジェクトを特定せずに、格納すべき全コンテンツオブジェクトをロードする。
【００９９】
上の図９〜図１１の実施形態では、キャプティブコンテンツ交換部７０４にデータを読み込んでいる。パブリックコンテンツ交換部７０２にデータを取り込む実施形態も可能である。アクティブディレクトリ１０４において、インターネットで人気のあるコンテンツオブジェクトを特定し、かつパブリックコンテンツ交換部７０２の分散ネットワークから要求される可能性の高い、これらのオブジェクトの場所を特定する処理を行なってもよい。ＱＯＳが改善したコンテンツを利用できるように、アクティブディレクトリは、パブリックコンテンツ交換部７０２に対してコンテンツをプリロードするように指示してもよい。
【０１００】
次に図１２を参照する。オリジンサーバ１０６，１０８，１１８，７１２からのコンテンツを分散記憶システムに取り込むための一実施形態による処理１１００を表すフロー図が示されている。本実施形態において、オリジンサーバ７１２は、ホスティングが許可されている場合、システム７００で利用可能になった直後にキャプティブコンテンツ交換部７０４にデータを取り込む。オリジンサーバ１０６，１０８，１１８，７１２がオンラインになったときに、図の処理がステップ１２０４から開始する。ステップ１２０８において、オリジンサーバ１０６，１０８，１１８，７１２に関連付けられたキャプティブコンテンツ交換部７０４が存在するか否かが判定される。関連付けられたキャプティブコンテンツ交換部７０４が存在しない場合、プリロードは行なわれず、ステップ１２１２及びステップ１２４０へと処理が進み、ステップ１２４０において、優先コンテンツ交換部７０２，７０４によってコンテンツオブジェクトに対する要求が満たされる。
【０１０１】
ステップ１２２０において、キャプティブコンテンツ交換部７０４上でコンテンツオブジェクトのホスティングが、オリジンサーバ１０６，１０８，１１８，７１２に対して許可されているかどうかがさらに判定される。キャプティブコンテンツ交換部７０４は、自身のコンテンツオブジェクトの負荷を軽減するために、オリジンサーバ１０６，１０８，１１８，７１２の能力の補償を要求することがある。ホスティングが許可されている場合、ステップ９１６においてコンテンツオブジェクトの人気が判定される。ステップ１２２８において、最も人気のあるオブジェクトがキャッシュの後方から最後に放出されるように、コンテンツオブジェクトがキャプティブコンテンツ交換部７０４にロードされる。上記のように、ファイルシステムを用いて、コンテンツオブジェクトの各々に対して有効期限情報を指定する別の実施形態も可能である。
【０１０２】
ホスティングが許可されていない場合、ステップ１２２０においてキャプティブコンテンツ交換部７０４にコンテンツオブジェクトを取り込ませることにより、上りバンド幅を節約することが可能になる。キャプティブコンテンツ交換部７０４にコンテンツオブジェクトを一旦読み込めば、その後他のコンテンツ交換部７０２，７０４に効率的にコンテンツオブジェクトを転送できるようになる。ステップ１２２４において、クライアントコンピュータ１１２はオリジンサーバ１０６，１０８，１１８，７１２からコンテンツを要求する。ステップ１２３２において、コンテンツ交換部７０２，７０４のいずれかにコンテンツが既に記憶されているか否かが判定される。オリジンサーバ１０６，１０８，１１８，７１２からのコンテンツがコンテンツ交換部７０２，７０４のいずれかに既に記憶されている場合、ステップ１２４０において、クライアントコンピュータ１１２は、優先コンテンツ交換部７０２，７０４に導かれる。必要に応じて、優先コンテンツ交換部７０２，７０４は、コンテンツオブジェクトを既に有する他のコンテンツ交換部７０２，７０４からコンテンツオブジェクトを取得することも可能である。
【０１０３】
ステップ１２３２の判定において、コンテンツオブジェクトがコンテンツ交換部７０２，７０４の分散ストレージネットワーク上で利用できない場合、クライアントコンピュータ１１２は、オリジンサーバ７１２に関連するキャプティブコンテンツ交換部７０４に導かれる。このように、キャプティブコンテンツ交換部７０４は、関連オリジンサーバ７１２からのコンテンツオブジェクトを優先的に記憶する。
【０１０４】
図１３を参照する。コンテンツ交換部７０２，７０４のリストをクライアントコンピュータ１１２，７１２に提供するための一実施形態による処理１３００を表すフロー図が示されている。本実施形態においては、キャプティブコンテンツ交換部７０４に対する確認が行なわれた後に、優先コンテンツ交換部７０２，７０４のリストがクライアントコンピュータ７０８に提供される。処理はステップ１３０４から始まり、このステップでキャプティブコンテンツ交換部７０４がどの関連クライアントコンピュータ７０８と関連付けられているかが特定される。この関連付けは、アクティブディレクトリ１０４などの中心的な場所に記録されている。
【０１０５】
ステップ１３０８において、クライアントコンピュータ１１２，７０８は、アクティブディレクトリ１０４からコンテンツ交換部７０２，７０４のリストを要求する。ステップ１３１２において、キャプティブコンテンツ交換部７０４が存在するか否かが判定される。キャプティブコンテンツ交換部７０４が存在する場合、ステップ１３０８に処理が移り、これらキャプティブコンテンツ交換部７０４をリストに追加する。ステップ１３１２において、十分なＱＯＳ、すなわち適切なＱＯＳを有する可能性が高いその他のパブリックコンテンツ交換部７０２をリストに追加する。ステップ１３１２での判定時にキャプティブコンテンツ交換部７０４が存在しない場合、ステップ１３０８が省略されて、キャプティブコンテンツ交換部７０４を含まない優先コンテンツ交換部７０２のリストが生成される。
【０１０６】
優先コンテンツ交換部７０２，７０４のリストが生成されたら、ステップ１３１６において、このリストがクライアントコンピュータ１１２に送信され、優先情報データベース５１２に格納される。クライアントコンピュータ１１２は、リストに掲載されている各コンテンツ交換部７０２，７０４を分析し、これらをランク付けする。通常、キャプティブコンテンツ交換部７０４は、関連クライアントコンピュータ７０８に対し最高のＱＯＳを提供することができる。
【０１０７】
上記の詳細説明を考慮に入れれば、本発明の利点は直ちに明らかになるであろう。例を挙げると、コンテンツ交換部にコンテンツオブジェクトをプリロードすることによってＱＯＳが改善される。始動事象に基づいてプリロードを行なうことによって、関連オリジンサーバとキャプティブコンテンツ交換との間で、上り接続を介してコンテンツオブジェクトを制御可能な方法で送信できるようになる。コンテンツオブジェクトがキャプティブコンテンツ交換部に一旦ロードされれば、その後コンテンツオブジェクトに対する要求により関連オリジンサーバの負荷が増大しにくくなる。
【０１０８】
発明の多数の変更例並びに変形例を用いることも可能である。例えば、上に挙げた実施形態には、バンド幅の利用度の低下が検出された場合にコンテンツ交換部のプリロードが開始されるものがあるが、夜中などの特定の時間にプリロードを行なう実施形態も可能である。夜中はバンド幅の利用度が最も低下する可能性が高い。
【０１０９】
特定の装置並びに方法に関連付けて本発明の原則を記載したが、本詳細説明は例示のみを目的としており、本発明の範囲を限定するものではないことが明確に理解される。
【図面の簡単な説明】
【図１】コンテンツ配信システムの一実施形態を示すブロック図。
【図２】コンテンツ配信システムのアクティブディレクトリ部の実施形態を示すブロック図。
【図３Ａ】コンテンツ配信システムのオリジンサーバ部の実施形態を示すブロック図。
【図３Ｂ】コンテンツ配信システムの外部オリジンサーバ部の実施例のブロック図。
【図４Ａ】コンテンツ配信システムのコンテンツ交換部の実施形態を示すブロック図。
【図４Ｂ】コンテンツ配信システムのコンテンツ交換部の他の実施形態を示すブロック図。
【図４Ｃ】複数のコンテンツ交換サーバを有するコンテンツ交換サイトの実施形態を示すブロック図。
【図５】コンテンツ配信システムのクライアントコンピュータ部の実施形態を示すブロック図。
【図６】コンテンツ配信システムの実施形態を示すブロック図。
【図７】２種類のコンテンツ交換部を有するコンテンツ配信システムの他の実施形態を示すブロック図。
【図８】コンテンツ配信システムのさらに別の実施形態を表すブロック図。
【図９】利用可能な記憶容量を有するキャプティブコンテンツ交換部にデータを取り込むための処理の一実施形態を表すフロー図。
【図１０】キャプティブコンテンツ交換部にデータを取り込むための処理の別の実施形態を表すフロー図。
【図１１】キャプティブコンテンツ交換部にデータを取り込むための処理のさらに別の実施形態を表すフロー図。
【図１２】オリジンサーバに由来するコンテンツを有する分散ストレージシステムにデータを取り込むための処理の一実施形態を表すフロー図。
【図１３】コンテンツ交換部のリストをクライアントコンピュータに提供するための処理の一実施形態を表すフロー図。
【図１】
2004508613.tif 000003
【図２】
2004508613.tif 000004
【図３Ａ】
2004508613.tif 000005
【図３Ｂ】
2004508613.tif 000006
【図４Ａ】
2004508613.tif 000007
【図４Ｂ】
2004508613.tif 000008
【図４Ｃ】
2004508613.tif 000009
【図５】
2004508613.tif 000010
【図６】
2004508613.tif 000011
【図７】
2004508613.tif 000012
【図８】
2004508613.tif 000013
【図９】
2004508613.tif 000014
【図１０】
2004508613.tif 000015
【図１１】
2004508613.tif 000016
【図１２】
2004508613.tif 000017
【図１３】
2004508613.tif 000018
【国際公開パンフレット】
2004508613.tif 000019
2004508613.tif 000020
2004508613.tif 000021
2004508613.tif 000022
2004508613.tif 000023
2004508613.tif 000024
2004508613.tif 000025
2004508613.tif 000026
2004508613.tif 000027
2004508613.tif 000028
2004508613.tif 000029
2004508613.tif 000030
2004508613.tif 000031
2004508613.tif 000032
2004508613.tif 000033
2004508613.tif 000034
2004508613.tif 000035
2004508613.tif 000036
2004508613.tif 000037
2004508613.tif 000038
2004508613.tif 000039
2004508613.tif 000040
2004508613.tif 000041
2004508613.tif 000042
2004508613.tif 000043
2004508613.tif 000044
2004508613.tif 000045
2004508613.tif 000046
2004508613.tif 000047
2004508613.tif 000048
2004508613.tif 000049
2004508613.tif 000050
2004508613.tif 000051
2004508613.tif 000052
2004508613.tif 000053
2004508613.tif 000054
2004508613.tif 000055
2004508613.tif 000056
2004508613.tif 000057
2004508613.tif 000058
2004508613.tif 000059
2004508613.tif 000060
2004508613.tif 000061
2004508613.tif 000062
2004508613.tif 000063
2004508613.tif 000064
2004508613.tif 000065
【国際公開パンフレット（コレクトバージョン）】
2004508613.tif 000066
2004508613.tif 000067
【国際調査報告】
2004508613.tif 000068
2004508613.tif 000069
2004508613.tif 000070