(57)【特許請求の範囲】
【請求項１】
キャッシュコンポーネント（１３０、１３２、１３４）において、記憶されるオブジェクトを受信するステップと、
前記オブジェクトを、メモリ（１４０、１４２、１４４）に記憶される開始フラグメントと、前記メモリ（１４０、１４２、１４４）よりも長い待ち時間を有する記憶媒体（１５２、１６０）に記憶される１つまたは複数の残りのフラグメントと、に前記キャッシュコンポーネント（１３０、１３２、１３４）によってセグメント化するステップと、
前記キャッシュコンポーネント（１３０、１３２、１３４）においてオブジェクトのリクエストを受信するステップと、
前記メモリ（１４０、１４２、１４４）から前記オブジェクトの開始フラグメントを伝送するステップと、
前記メモリより長い待ち時間を有する前記記憶媒体（１５２、１６０）から前記オブジェクトのマジョリティフラグメントを検索するステップと、
後続の処理のためにメモリ内に前記マジョリティフラグメントを保存することなく、前記マジョリティフラグメントを伝送するステップと、
前記開始フラグメントのためのファイルサイズを決定するステップと、
を有し、
前記開始フラグメントの前記ファイルサイズが更新されるべきと決定されると、
前記メモリ内の前記開始フラグメントを、前記決定されたファイルサイズの新たな開始フラグメントによって置換する、または、
前記開始フラグメントを補完するために、付加的なフラグメントを前記メモリに記憶し、前記付加的なフラグメントおよび前記開始フラグメントの合計サイズは、前記決定されたファイルサイズに対応する、
コンピュータ実施方法。
【請求項２】
前記開始フラグメントの前記ファイルサイズが更新されるべきか否かの決定は、前記マジョリティフラグメントの検索に関連付けられた待ち時間の決定を基礎とする、
請求項１記載のコンピュータ実施方法。
【請求項３】
前記開始フラグメントの前記ファイルサイズが更新されるべきか否かの決定は、前記オブジェクトのリクエスト頻度を基礎とし、前記付加的なフラグメントのサイズの変更は、リクエスト頻度の変更を基礎とする、
請求項１記載のコンピュータ実施方法。
【請求項４】
前記オブジェクトの中間フラグメントを検索するステップと、
後続の処理のためにメモリ内に前記中間フラグメントを保存することなく、前記中間フラグメントを伝送するステップと、
を有する、
請求項１から３のいずれかに記載のコンピュータ実施方法。
【請求項５】
前記開始フラグメントのサイズは、前記１つまたは複数の残りのフラグメントの検索に関連付けられた待ち時間を基礎とする、
請求項１から４のいずれかに記載のコンピュータ実施方法。
【請求項６】
前記開始フラグメントのサイズは、前記オブジェクトのリクエスト頻度を基礎とする、
請求項１から４のいずれかに記載のコンピュータ実施方法。
【請求項７】
前記１つまたは複数の残りのフラグメントは、中間フラグメントおよび前記マジョリティフラグメントに対応する、
請求項５または６記載のコンピュータ実施方法。
【請求項８】
前記１つまたは複数の残りのフラグメントを後続の処理のために前記メモリに保存しない、
請求項１から７のいずれかに記載のコンピュータ実施方法。
【請求項９】
前記オブジェクトの前記マジョリティフラグメントを検索するステップは、前記マジョリティフラグメントを、
前記キャッシュコンポーネントのローカルディスクメモリと、
別のキャッシュコンポーネントのディスクメモリと、
ネットワークベースのメモリと、
オリジンサーバと、
のうちの１つから検索するステップを含む、
請求項１から８のいずれかに記載のコンピュータ実施方法。
【請求項１０】
開始フラグメントを記憶するメモリを有するコンピュータシステムであって、
請求項１から９のいずれかに記載の方法を実施する手段を有する、
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的に、コンピューティングデバイスおよび通信ネットワークは情報を交換するために利用することができる。通常の用途では、コンピューティングデバイスが通信ネットワークを介して他のコンピューティングデバイスからコンテンツを要求することができる。例えば、パーソナルコンピューティングデバイスのユーザは、インターネットを介してサーバコンピューティングデバイスからウェブページを要求するために、ソフトウェアブラウザアプリケーションを利用することができる。そのような実施形態では、ユーザコンピューティングデバイスはクライアントコンピューティングデバイスと称され、またサーバコンピューティングデバイスはコンテンツプロバイダと称される。
【０００２】
一般的に、コンテンツプロバイダには、リクエストされたコンテンツのクライアントコンピューティングデバイスへの効率的な伝送、および／または、コンテンツの伝送に関するコストを頻繁に考慮しながら、リクエストされたコンテンツをクライアントコンピューティングデバイスに提供することが推奨されている。より広範な規模の実施形態に関しては、コンテンツプロバイダが非常に多くのコンピューティングデバイスからコンテンツリクエストを受信する可能性があり、それによりコンテンツプロバイダのコンピューティングリソースに負担が掛かるおそれがある。さらには、クライアントコンピューティングデバイスによってリクエストされたコンテンツが多数の要素を有していることも考えられ、それによりコンテンツプロバイダのコンピューティングリソースにはさらなる負担がかかるおそれがある。
【０００３】
１つの例を参照すると、リクエストされたウェブページ、またはオリジナルのコンテンツを多数の付加的なリソース、例えばウェブページと共に表示することができる画像、動画などと関連付けることができる。１つの特定の実施形態においては、ウェブページの付加的なリソースが、多数の埋め込みリソース識別子、例えばユニフォーム・リソース・ロケータ（「ＵＲＬ」）によって識別される。次に、クライアントコンピューティングデバイスのソフトウェアは埋め込みリソース識別子を処理し、コンテンツリクエストを生成する。クライアントコンピューティングデバイスは付加的なリソースに関するリクエストを参照先のコンテンツプロバイダコンピューティングデバイスに伝送することが考えられるので、埋め込みリソースに関連付けられたリソース識別子がコンテンツプロバイダに関連付けられたコンピューティングデバイスを参照することが多い。したがってコンテンツリクエストを満たすために、コンテンツプロバイダは、ウェブページに関連付けられたデータ、ならびに、埋め込みリソースに関連付けられたデータをクライアントコンピューティングデバイスに提供する。
【０００４】
コンテンツデリバリネットワーク（「ＣＤＮ」）サービスプロバイダを利用して、ウェブページおよび／またはウェブページ内で識別されるリソース識別子のようなリクエストされたコンテンツの配信を容易にすることを試みるコンテンツプロバイダも存在する。ＣＤＮサービスプロバイダは一般的に、通信ネットワーク内に存在し、種々のコンテンツプロバイダからのコンテンツを管理することができる多数のコンピューティングデバイスを管理する。コンテンツプロバイダは、コンテンツプロバイダのコンテンツのうちの幾つかまたは全てのコンテンツをＣＤＮサービスプロバイダのコンピューティングデバイスからリクエストすることをクライアントコンピューティングデバイスに指示することができるか、さもなければ提案することができる。
【０００５】
コンテンツプロバイダと同様に、一般的にＣＤＮサービスプロバイダにも、リクエストされたコンテンツをクライアントコンピューティングデバイスに効率的に伝送すること、および／または、コンテンツの伝送に関連するコストを頻繁に考慮しながら、リクエストされたコンテンツをクライアントコンピューティングデバイスに提供することが推奨されている。したがって、ＣＤＮサービスプロバイダは、サービスレベルアグリーメント（ＳＬＥ）を満たすため、もしくは一般的に配信サービスの品質を改善するために、リクエストされたコンテンツの配信の待ち時間のような要因を頻繁に考慮している。
【０００６】
上述の種々の態様、またそれに伴う本願発明の多くの利点は、添付の図面と関連付けられた以下の発明の詳細な説明を参照することによってより容易に認められ、またより良く理解される。
【図面の簡単な説明】
【０００７】
【図１】１つまたは複数のキャッシュサーバを含む、コンテンツデリバリネットワーク（ＣＤＮ）ベースのシステムの一実施例を説明するためのブロック図を示す。
【図２】コンテンツプロバイダによるコンテンツリクエストの処理を示している、図１のＣＤＮベースのシステムのブロック図を示す。
【図３】ＤＮＳクエリの処理およびリソースキャッシュコンポーネントの割り当てを示している、図１のＣＤＮベースのシステムのブロック図を示す。
【図４Ａ】キャッシュサーバによるリソースリクエストの処理に関連付けられた実施例を示している、図１のＣＤＮベースのシステムの簡略化されたブロック図を示す。
【図４Ｂ】キャッシュサーバによるリソースリクエストの処理に関連付けられた実施例を示している、図１のＣＤＮベースのシステムの簡略化されたブロック図を示す。
【図４Ｃ】キャッシュサーバによるリソースリクエストの処理に関連付けられた実施例を示している、図１のＣＤＮベースのシステムの簡略化されたブロック図を示す。
【図４Ｄ】キャッシュサーバによるリソースリクエストの処理に関連付けられた実施例を示している、図１のＣＤＮベースのシステムの簡略化されたブロック図を示す。
【図４Ｅ】キャッシュサーバによるリソースリクエストの処理に関連付けられた実施例を示している、図１のＣＤＮベースのシステムの簡略化されたブロック図を示す。
【図４Ｆ】キャッシュサーバによるリソースリクエストの処理に関連付けられた実施例を示している、図１のＣＤＮベースのシステムの簡略化されたブロック図を示す。
【図５】キャッシュサーバにおけるリソースリクエストの処理に関する方法の実施例のフローチャートを示す。
【図６】キャッシュサーバにおけるリソースのストレージ管理に関する方法の実施例のフローチャートを示す。
【発明を実施するための形態】
【０００８】
一般的に、本発明は、クライアントコンピューティングデバイスがネットワークリソース、例えばコンテンツデリバリネットワーク（「ＣＤＮ」）サービスプロバイダからコンテンツをリクエストするときに使用されるキャッシュリソースの管理に関する。殊に、本発明の態様を、リソースキャッシュコンポーネントによるコンテンツの処理、また、コンテンツの記憶と検索の両方に関するコンテンツのセグメント化を考慮して説明する。本発明の種々の態様を種々の実施例および実施形態に関して説明するが、当業者であれば、本明細書に記載されている実施形態および実施例は限定を意図したものではないことが分かる。
【０００９】
図１は、コンテンツの記憶および配信を管理するためのコンテンツ配信環境１００の概略的なブロック図を示す。図１に示されているように、コンテンツ配信環境１００には、コンテンツプロバイダおよび／またはＣＤＮサービスプロバイダからコンテンツをリクエストする、複数のクライアントコンピューティングデバイス１０２（一般的にクライアントと称される）が含まれる。図示されている実施例において、クライアントコンピューティングデバイス１０２は、パーソナルコンピューティングデバイス、ラップトップコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、ターミナルコンピューティングデバイス、モバイルデバイス、ワイヤレスデバイス、種々の電子装置および電子機器などを含む多種多様なコンピューティングデバイスに対応することができる。図示されている実施例において、クライアントコンピューティングデバイス１０２は、通信ネットワーク１０８、例えばワイドエリアネットワークまたはローカルエリアネットワークを介する通信を確立するために必要なハードウェアコンポーネントおよびソフトウェアコンポーネントを有している。例えば、クライアントコンピューティングデバイス１０２に、インターネットまたはイントラネットを介する通信を容易にするためのネットワーク機器およびブラウザソフトウェアアプリケーションを実装することができる。
【００１０】
付加的に、クライアントコンピューティングデバイス１０２は、変換情報を以下においてより詳細に説明するように実行もしくは処理するための必要なハードウェアコンポーネントおよびソフトウェアコンポーネントを有することもできる。当業者には明らかであるように、変換情報を処理するための付加的なハードウェア／ソフトウェアコンポーネントを、多目的ソフトウェアアプリケーション、例えばブラウザソフトウェアアプリケーションの実行に含ませることができる。代替的に、付加的なハードウェア／ソフトウェアコンポーネントの一部または全てを、変換情報を処理するよう構成されているスタンドアローンのコンポーネントまたは専用コンポーネントで実施することができる。図１には図示されていないが、各クライアントコンピューティングデバイス１０２は何らかのタイプのローカルＤＮＳリゾルバコンポーネント、例えばクライアントコンピュータに属するＤＮＳクエリを生成するＤＮＳネームサーバを使用する。１つの実施例においては、ローカルＤＮＳリゾルバコンポーネントをクライアントコンピューティングデバイスが所属している企業ネットワークに所属させることができる。別の実施例においては、ローカルＤＮＳリゾルバコンポーネントを、クライアントコンピュータとのネットワーク通信を提供するインターネットサービスプロバイダ（ＩＳＰ）に所属させることができる。
【００１１】
コンテンツ配信環境１００には、通信ネットワーク１０８を介して１つまたは複数のクライアントコンピューティングデバイス１０２と通信するコンテンツプロバイダ１０４も含ませることができる。図１に示されているコンテンツプロバイダ１０４はコンテンツプロバイダに関連付けられた１つまたは複数のコンピューティングデバイスの論理関連付けに対応する。殊に、コンテンツプロバイダ１０４は、クライアントコンピューティングデバイス１０２からのコンテンツ（例えばウェブページ）に関するリクエストを取得して処理するための１つまたは複数のサーバコンピューティングデバイスに対応するウェブサーバコンポーネント１１０を有することができる。さらにコンテンツプロバイダ１０４は、ＣＤＮサービスプロバイダからのネットワークリソースに関するリクエストを取得して処理するための１つまたは複数のコンピューティングデバイスに対応する、オリジンサーバコンポーネント１１２および関連するストレージコンポーネント１１４を有することができる。当業者であれば、コンテンツプロバイダ１０４を種々の付加的なコンピューティングリソース、例えば、コンテンツおよびリソースを管理するための付加的なコンピューティングデバイス、ＤＮＳネームサーバなどに関連付けできることが分かる。
【００１２】
図１の参照を続ける。コンテンツ配信環境１００にはさらに、通信ネットワーク１０８を介して１つまたは複数のクライアントコンピューティングデバイス１０２およびコンテンツプロバイダ１０４と通信するＣＤＮサービスプロバイダ１０６を含ませることができる。図１に示されているＣＤＮサービスプロバイダ１０６はＣＤＮサービスプロバイダに関連付けられた１つまたは複数のコンピューティングデバイスの論理関連付けに対応する。殊に、ＣＤＮサービスプロバイダ１０６は、通信ネットワーク１０８のノードに対応する複数のＰＯＰ（Point of Presence）ロケーション１１６，１２２を含むことができる。各ＰＯＰ１１６，１２２は、クライアントコンピュータ１０２からのＤＮＳクエリを解決するための複数のＤＮＳサーバコンピューティングデバイスからなるＤＮＳコンポーネント１１８，１２４を有する。
【００１３】
さらに各ＰＯＰ１１６，１２２は、コンテンツプロバイダからのオブジェクトを記憶し、また、リクエストされた種々のオブジェクトを種々のクライアントコンピュータへと伝送する、リソースキャッシュコンポーネント１２０，１２６を有する。各リソースキャッシュコンポーネント１２０，１２６は、ネットワークリソースに関するリクエストを取得および処理する複数のキャッシュサーバコンピューティングデバイス１３０，１３２から構成されている。各キャッシュサーバコンピューティングデバイス１３０，１３２，１３４はメモリ１４０，１４２，１４４を有し、これらのメモリ１４０，１４２，１４４は対応するキャッシュサーバコンピューティングデバイスに関する最短データアクセス待ち時間（一般的に待ち時間と称される）を記憶している。当業者には明らかであるように、本発明を説明するために、データアクセス待ち時間には殊に、記憶されているデータをメモリロケーションから検索して伝送できるようになる最短時間が含まれる。さらに、各キャッシュサーバコンピューティングデバイス１３０，１３２，１３４を、直接的に、もしくはバスなどを介して、付属のメモリ１４０，１４２，１４４よりも長い待ち時間を有する記憶媒体１５０，１５２，１５４に関連付けられている。記憶媒体１５０，１５２，１５４には例えば、ディスクメモリ、フラッシュメモリ、光学メモリなどの不揮発性メモリが含まれる。さらにコンテンツ配信環境１００にはネットワークベースのメモリ１６０も含ませることができ、そのようなネットワークベースのメモリ１６０をコンテンツ管理のためにキャッシュサーバコンピューティングデバイス１３０，１３２，１３４によって、また別のコンピューティングデバイスによって使用することができる。記憶媒体１５０，１５２，１５４と同様に、ネットワークベースのメモリ１６０には付属のメモリ１４０，１４２，１４４よりも長い待ち時間が関連付けられている。
【００１４】
図示されている実施例において、ＤＮＳコンポーネント１１８，１２４およびリソースキャッシュコンポーネント１２０，１２６は、それらのコンポーネントまたはコンポーネントの一部が物理的に隔てられているか否かにかかわらず、論理的にグループをなすものと見なされる。さらに、ＰＯＰ１１６，１２２は図１において、ＣＤＮサーバプロバイダ１０６に論理的に関連付けられているものとして示されているが、クライアントコンピューティングデバイス１０２の種々のデモグラフィックが最善に提供されるように、ＰＯＰは通信ネットワーク１０８にわたり地理的に分散されていてもよい。さらには、当業者であれば、ＣＤＮサーバプロバイダ１０６を種々の付加的なコンピューティングリソース、例えば、コンテンツおよびリソースを管理するための付加的なコンピューティングデバイスなどに関連付けできることが分かる。
【００１５】
当業者であれば、図１に示されているコンポーネントおよび構成が単に例示的なものに過ぎないことが分かる。したがって、殊に通信を容易にするための付加的なコンポーネント、システムおよびサブシステムに関して、付加的または代替的なコンポーネントおよび／または構成を使用することができる。
【００１６】
次に図２から図４を参照して、図１のコンテンツ配信環境１００の種々のコンポーネント間のインタラクションを説明する。しかしながらそれらは例示を意図したものなので、図示されている実施例は簡略的なものであり、通信を容易にするために使用される多くのコンポーネントは図示されていない。当業者であれば、本発明の精神および範囲から逸脱することなく、そのようなコンポーネントを使用することができ、したがって付加的なインタラクションを行えることが分かる。さらには、通信をコンポーネント間の直接的な通信として表すことができるが、当業者であれば、それらの例示的な全ての通信を直接的にコンポーネント間で行うことができるか、通信ネットワーク１０８を介して簡略化できることが分かる。キャッシュサーバコンピューティングデバイス１４０，１４２，１４４によるオブジェクトの管理を説明する前に、ＣＤＮベースのシステムにおけるクライアントコンピューティングデバイス１０２からのリソースリクエストの一般的な処理の概要を簡単に説明する。
【００１７】
ここで図２を参照する。クライアントコンピューティングデバイス１０２は、コンテンツリクエストを生成する。このコンテンツリクエストはコンテンツプロバイダ１０４によって、例えばウェブサーバ１１０を介して受信および処理される。図示されている実施例に関して、コンテンツに関するリクエストは一般的なネットワークプロトコル、例えばハイパーテキストトランスファープロトコル（「ＨＴＴＰ」）に従うものでよい。コンテンツリクエストの受信に基づいて、コンテンツプロバイダ１０４は適切な応答コンテンツを識別する。図示されている実施例において、リクエストされたコンテンツを、情報、例えばハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張可能マークアップ言語（「ＸＭＬ」）などを処理することによってクライアントコンピューティングデバイス１０２に表示されるウェブページに対応させることができる。上述のように、リクエストされたコンテンツは多数の埋め込みリソース識別子も含むことができ、それらはリクエストされたコンテンツの処理の一部としてクライアントコンピューティングデバイス１０２によって取得されるべきリソースオブジェクトに対応する。埋め込みリソース識別子は一般的にオリジナルリソース識別子またはオリジナルＵＲＬと称される。
【００１８】
１つの実施例において、オリジナルＵＲＬではＣＤＮサービスプロバイダ１０６のドメイン（例えば、cdnprovider.com）、リクエストされるリソースの同一の名前（例えば、「resource.xxx」）およびリソースが発見される同一のパス（例えば「path」）が識別される。オリジナルＵＲＬはさらに付加的な処理情報（例えば「additional information」）を含むことができる。オリジナルＵＲＬは、
http://additional_information.cdnprovider.com/path/resources.xxx
となる。
【００１９】
別の実施例においては、ＣＤＮサービスプロバイダ１０６に関連付けられた情報が、例えばプリペンディングまたは他の技術によって、オリジナルＵＲＬに含まれているので、オリジナルＵＲＬはコンテンツプロバイダ１０４に事前に関連付けられているＵＲＬに関連付けられた全ての情報を保持することができる。この実施例において、オリジナルＵＲＬは、
http://additional_information.cdnprovider.com/www.contentprovider.com/path/resource.xxx
となる。
【００２０】
リクエストしたコンテンツの受信に基づいて、クライアントコンピューティングデバイス１０２は、例えばブラウザソフトウェアアプリケーションによって、コンテンツに含まれるいずれかのマークアップコードの処理を開始し、埋め込みリソース識別子によって識別されたリソースの取得を試みる。したがって、コンテンツを取得する第１のステップは、クライアントコンピューティングデバイス１０２による（自身のローカルＤＮＳリゾルバを介する）、変換されたＵＲＬの「.」および「com」部分を管轄するＤＮＳサーバを識別できるオリジナルＵＲＬリソース識別子に関するＤＮＳクエリの発行に対応する。埋め込みＵＲＬの「.」および「com」部分を解決した後に、クライアントコンピューティングデバイス１０２は続いて、埋め込みＵＲＬの「.cdnprovider」部分を管轄するＤＮＳサーバを識別できる、リソースＵＲＬに関するＤＮＳクエリを発行する。ＵＲＬの「.」および「com」部分に対応するＤＮＳクエリの発行は周知の事項であるので、ここでは説明しない。
【００２１】
ここで図３を参照する。図示されている実施例においては、オリジナルＵＲＬの「cdnprovider」部分の解決が成功すると、ＣＤＮサービスプロバイダ１０６に関連付けられたＤＮＳサーバコンポーネント１１８のネットワークアドレス、例えばＩＰアドレスが識別される。１つの実施例において、ＩＰアドレスはＰＯＰ１１６のＤＮＳサーバコンポーネント１１８にとってユニークな特定のネットワークアドレスである。別の実施例においては、ＩＰアドレスを１つまたは複数のＰＯＰ１１６，１２２によって共有することができる。この実施例においては、共有ＩＰアドレスについてのＤＮＳクエリが一対多のネットワークルーティングスキーマ、例えばエニーキャストを使用し、特定のＰＯＰ１１８がネットワークトポロジに依存してリクエストを受信する。例えば、エニーキャストを実施する場合、共有ＩＰアドレスについてクライアントコンピューティングデバイス１０２によって発行されたＤＮＳクエリがクライアントコンピューティングデバイスから、論理的に最短のネットワークトポロジ距離（頻繁にネットワークホップと称される）を有しているＤＮＳサーバコンポーネントに到達する。ネットワークトポロジ距離は地理的な距離に対応している必要はない。しかしながら、幾つかの実施形態においては、ネットワークトポロジ距離がクライアントコンピューティングデバイス１０２とＰＯＰとの間の最短ネットワーク距離を表すことが考えられる。
【００２２】
図３の参照を続ける。上記のいずれかの実施例（またはいずれかの他の実施例）においては、ＰＯＰ１１６のＤＮＳコンポーネント１１８における特定のＤＮＳがクライアントコンピューティングデバイス１０２からオリジナルＵＲＬに対応するＤＮＳクエリを受信する。ＤＮＳコンポーネント１１８におけるＤＮＳサーバのうちの１つがリクエストを受信すると、特定のＤＮＳサーバはリクエストの解決を試みる。図示されている実施例においては、特定のＤＮＳサーバが、リクエストされたリソースに関するリクエストを処理するキャッシュサーバコンポーネントのＩＰアドレスを識別することによって、ＤＮＳクエリを解決することができる。上述のように、リクエストされたリソースを別のソース、例えばピアキャッシュサーバコンピューティングデバイスまたはコンテンツプロバイダ１０４のオリジンサーバ１１２から取得できる場合、もしくは取得が試みられる場合、選択されたリソースキャッシュコンポーネント１２０，１２６は、リクエストされたリソースを提供することによってリクエストを処理することができる。
【００２３】
キャッシュサーバコンピューティングデバイス１４０，１４２，１４４（またはリソースキャッシュコンポーネント１２０，１２６）の選択に基づき、ＤＮＳサーバコンポーネント１１８はキャッシュサーバコンピューティングデバイス、リソースキャッシュコンポーネント、または、リソースキャッシュコンポーネントに関連付けられた負荷分散／負荷共有デバイスのＩＰアドレスを提供する。クライアントコンピューティングデバイス１０２は、ＩＰアドレスによって識別されたキャッシュサーバコンピューティングデバイス１４０，１４２，１４４からリソースをリクエストするために、インターネット通信プロトコルを使用することができる。キャッシュサーバコンピューティングデバイス１４０，１４２，１４４は以下においてより詳細にするようにリクエストを処理し、リソースをクライアントコンピューティングデバイス１０２に提供する。殊に、キャッシュサーバコンピューティングデバイスは、リクエストされたコンテンツの開始部分をローカルメモリから伝送することを開始でき、その一方ではリクエストされたコンテンツの残りの部分を別のストレージロケーションから受信することができる。受信に基づき、リクエストされたリソースはクライアントコンピューティングデバイス１０２におけるブラウザアプリケーションによって適切に処理される。
【００２４】
以下では図４Ａから図４Ｆを参照しながら、コンテンツ配信環境１００の種々のコンポーネント間のインタラクションの複数の実施形態を、キャッシュサーバコンピューティングデバイス１４０，１４２，１４４によるリソースリクエストの処理に関して説明する。しかしながら図４Ａから図４Ｆは例示を意図して示されているものなので、図示されている実施例は簡略的なものであり、通信を容易にするために使用される多くのシステム、サブシステムおよびコンポーネントは図示されていない。一般的に、また以下においてより詳細に説明するように、キャッシュサーバコンピューティングデバイス１３０，１３２，１３４に記憶されているオブジェクトはそれぞれ、メモリ１４０，１４２，１４４に記憶するための開始フラグメントと、この開始フラグメントが記憶されているメモリよりも長い待ち時間を有している媒体に記憶するための１つまたは複数の残りのフラグメントとにセグメント化されている。１つの実施例において、１つまたは複数の残りのフラグメントは１つのマジョリティフラグメントを含む。
【００２５】
ここで図４Ａを参照する。キャッシュサーバコンピューティングデバイス１３２はオブジェクトのリクエストをクライアントコンピューティングデバイス１０２から受信する。オブジェクトのリクエストを受信すると、キャッシュサーバコンピューティングデバイス１３２は、キャッシュサーバコンピューティングデバイスに関連付けられた記憶媒体、例えば、この実施例においてはディスクメモリ１５２からオブジェクトのマジョリティフラグメントの検索を開始する。１つの実施例においては、マジョリティフラグメントのストレージロケーションを事前にキャッシュサーバコンピューティングデバイス１３２に知らせることができる。この場合には、マジョリティフラグメント部分のリクエストを即座に送信することができる。別の実施例においては、キャッシュサーバコンピューティングデバイス１３２は、マジョリティフラグメント部分の適切なストレージロケーションを識別するためにディレクトリまたはサービスにクエリを送信することができる。マジョリティフラグメント部分が（例えば、地理的な分散を目的として）複数のストレージロケーションに記憶されている場合には、サービスを使用して、最善のストレージロケーションまたは利用可能なロケーションを識別することができる。
【００２６】
マジョリティフラグメント部分のリクエストとほぼ同時に、キャッシュサーバコンピューティングデバイス１３２はネットワークを介する開始フラグメントのメモリコンポーネント１４２からリクエストを行ったクライアントコンピューティングデバイス１０２への伝送を開始する。この実施例においては、ローカルディスクメモリ１５２はデータの呼び戻しに関して、キャッシュサーバコンピューティングデバイス１３２のメモリ（例えばＲＡＭ）よりも長い待ち時間を有していることが考えられる。したがってメモリ１３２からの開始フラグメントの検索によって、キャッシュサーバコンピューティングデバイスはリクエストを処理すると直ぐに、リクエストされたオブジェクトの少なくとも一部の伝送を開始することができる。また開始フラグメントのサイズは、開始フラグメント部分の伝送が完了する前に１つまたは複数のマジョリティフラグメントを検索できる程の大きさを有する。メモリ１４２からの開始フラグメント部分の伝送が完了すると、キャッシュサーバコンピューティングデバイス１３２は、通信ネットワークを介するリクエストを行ったクライアントコンピューティングデバイス１０２へのマジョリティフラグメントの伝送を開始することができる。択一的に、キャッシュサーバコンピューティングデバイス１３２は、マジョリティフラグメントを受信した直後に、通信ネットワークを介するリクエストを行ったクライアントコンピューティングデバイス１０２へのマジョリティフラグメントの伝送を開始することができる。開始フラグメント部分はローカルキャッシュサーバコンピューティングデバイス１４２から提供されるものとして示されているが、当業者であれば、開始フラグメント部分を別のストレージロケーションに記憶すること、および／または、別のキャッシュサーバコンピューティングデバイスによって伝送することが可能であると分かる。
【００２７】
１つの実施例においては、マジョリティフラグメント部分は、同一のオブジェクトの後続のリクエストの処理に関して、キャッシュサーバコンピューティングデバイス１３２によって保存されない。当業者であれば、キャッシュサーバコンピューティングデバイス、例えばキャッシュサーバコンピューティングデバイス１３２の動作に関して、マジョリティフラグメント部分をメモリ１４２に記憶し、クライアントコンピューティングデバイス１０２へと伝送できることが分かる。しかしながらこの実施例においては、マジョリティフラグメント部分を削除することができるので（または、少なくとも上書きに関して優先されるので）、そのような記憶は一般的に一時的なものであると見なされる。
【００２８】
当業者には明らかであるように、開始フラグメントおよびマジョリティフラグメントのロケーションの決定、検索および伝送の正確なタイミングを変更することができる。また、ネットワークが局所的な複数の記憶媒体および局所的でない複数の記憶媒体を含み、開始フラグメントが記憶されているメモリよりも長い待ち時間を有するネットワーク１０８またはＰＯＰ１１６，１２２内のいずれかの記憶媒体にマジョリティフラグメントを記憶できることも当業者には明らかである。例えば、１つまたは複数のマジョリティフラグメントを、ＰＯＰのピアキャッシュサーバコンピューティングデバイスのローカルディスク、ネットワークベースのストレージ１６０、コンテンツプロバイダのオリジンサーバ１１２などに記憶することができる。上述のように、オブジェクトがクライアントコンピューティングデバイス１０２によってリクエストされると、そのリクエストを受信したキャッシュサーバコンピューティングデバイスはローカルメモリからの開始フラグメントの提供を即座に開始することができ、他方ではマジョリティフラグメントセグメントが別のロケーション、例えばキャッシュピアのディスクから検索される。
【００２９】
別の実施例においては、リクエストされたオブジェクトを検索のために３つまたはそれ以上のフラグメントにセグメント化することができる。この実施例においては、開始セグメントを上述したやり方でキャッシュサーバコンピューティングデバイスのメモリに記憶することができる。さらには中間フラグメントが別のストレージロケーション、例えばキャッシュサーバコンピューティングデバイスのディスクに記憶されており、他方ではマジョリティフラグメントがさらに別のストレージロケーション、例えばオリジンサーバ１１２に記憶されている。開始フラグメントの提供が開始されると、中間フラグメントが検索および提供され、またマジョリティフラグメントがオリジンサーバから検索される。１つの実施例においては、中間フラグメントのストレージロケーションがメモリ（例えば開始フラグメント部分のストレージロケーション）よりも長い待ち時間を有するが、マジョリティフラグメント部分のストレージロケーションよりも短い待ち時間を有することが考えられる。したがって、中間フラグメント部分のサイズはマジョリティフラグメント部分の検索に必要とされる時間に依存することが考えられる。択一的に、中間フラグメント部分のストレージロケーションの待ち時間と、マジョリティフラグメント部分のストレージロケーションの待ち時間を大きく異ならせることができる。この実施例においては、中間フラグメント部分およびマジョリティフラグメント部分を経済的な判定基準またはサービスに関する判定基準、例えばストレージのコスト、帯域幅のコスト、保証されたサービス能力、冗長的なストレージなどに応じて割り当てることができる。上記において図４Ａを参照して説明したように、１つの実施例においては、開始フラグメント部分およびマジョリティフラグメント部分は、同一のオブジェクトの後続のリクエストの処理に関して、キャッシュサーバコンピューティングデバイス１３２によって保存されない。
【００３０】
以下では図４Ｂから図４Ｄを参照しながら、それらの図に示されている実施例における種々のコンポーネントによって実施される処理を説明する。この処理は、マジョリティフラグメントが提供されるストレージロケーションを除き、図４Ａを参照して説明した処理と類似するものである。先ず図４Ｂを参照する。キャッシュサーバコンピューティングデバイス１３２はオブジェクトに関するリクエストを取得し、このリクエストされたオブジェクトのマジョリティフラグメント部分を別のキャッシュサーバコンピューティングデバイス１３０のディスクメモリ１５０から検索することを開始する。この実施例においては、キャッシュサーバコンピューティングデバイス１３０は同一のＰＯＰ１１６内に存在する。リクエストを受信したキャッシュサーバコンピューティングデバイス１３２は開始フラグメント部分およびマジョリティフラグメント部分を上記と同じやり方でクライアントコンピューティングデバイス１０２に伝送する。上述したように、マジョリティフラグメント部分をメモリ１４２に記憶し、クライアントコンピューティングデバイス１０２への伝送を容易にすることができる。しかしながら、オブジェクトの後続のリクエストに関して、マジョリティフラグメント部分はメモリ１４２には保存されない。
【００３１】
次に図４Ｃを参照する。ここでもまた、キャッシュサーバコンピューティングデバイス１３２はオブジェクトのリクエストをクライアントコンピューティングデバイス１０２から受信する。しかしながらこの実施例においては、キャッシュサーバコンピューティングデバイス１３２は異なるＰＯＰ１２２の別のキャッシュサーバコンピューティングデバイス１３０のディスクメモリ１５０からマジョリティフラグメントをリクエストする。キャッシュサーバコンピューティングデバイス１３２は続いて開始フラグメント部分の伝送を開始し、他方ではマジョリティフラグメント部分の検索を開始する。続けて、マジョリティフラグメント部分が伝送される。さらに別の代替的な実施例においては、マジョリティフラグメント部分を図４Ｄに示されているようなネットワークベースの別のメモリ１６０、または図４Ｅに示されているようなオリジンサーバコンポーネント１１２に関連付けられた記憶媒体１１４から検索することができる。これら２つの実施例においては、ネットワーク通信に関する付加的な待ち時間が生じる場合には、開始フラグメント部分のサイズを、図４Ｂから図４Ｄに示した実施例に関して説明した開始フラグメント部分のサイズよりも大きくすることができる。以下において説明するように、開始フラグメント部分のサイズを動的に調整することができる。
【００３２】
ここで図４Ｆを参照する。このさらに別の実施例においてもリクエストされたオブジェクトはキャッシュサーバコンピューティングデバイス１３２によって伝送されるが、このリクエストされたオブジェクトを開始フラグメント、中間フラグメントおよびマジョリティフラグメントにセグメント化することができる。殊に、キャッシュサーバコンピューティングデバイス１３２はオブジェクトを受信すると、そのオブジェクトに関連付けられた中間フラグメントを第１の記憶媒体、例えばハードディスク１５２から検索する。上述のように、ハードディスク１５２はキャッシュサーバコンピューティングデバイス１３２のメモリ１４２よりも長い待ち時間を有する。またキャッシュサーバコンピューティングデバイス１４０，１４２，１４４はオブジェクトに関連付けられたマジョリティフラグメントを第２の記憶媒体から検索する。この第２の記憶媒体はキャッシュサーバコンピューティングデバイス１３２のメモリ１４２よりも長い待ち時間を有している。この実施例において、第２の記憶媒体はオリジンサーバコンポーネント１１２に関連付けられた記憶媒体である。ほぼ同時に、キャッシュサーバコンピューティングデバイス１３２はネットワークを介する開始フラグメントのメモリ１４２からクライアントコンピューティングデバイス１０２への伝送を開始する。中間フラグメントが検索されると、キャッシュサーバコンピューティングデバイスは、マジョリティフラグメントの伝送と同様に、通信ネットワークを介するリクエストを行ったクライアントコンピューティングデバイスへの中間フラグメントの伝送を即座に開始する。当業者には明らかであるように、ここでもまた開始フラグメント、中間フラグメントおよびマジョリティフラグメントのロケーションの決定、検索および伝送の正確なタイミングを変更することができる。さらには、上述のように、中間フラグメント部分およびマジョリティフラグメント部分をメモリ１４２に記憶し、クライアントコンピューティングデバイス１０２への伝送を容易にすることができるが、それらの部分はオブジェクトの後続のリクエストに関して保存されない。
【００３３】
以下では図５を参照しながら、キャッシュサーバコンピューティングデバイス１３０，１３２，１３４においてリソースリクエストを処理するためのルーチン５００の一実施例を説明する。ブロック５０２においては、キャッシュサーバコンピューティングデバイス１３０，１３２，１３４におけるオブジェクトに関するリクエストの受信によりルーチン５００が開始される。上述のように、キャッシュサーバの特定のＩＰアドレスを、ＣＤＮサービスプロバイダ１０６に関連付けられたＤＮＳサーバによって割り当てることができる。択一的に、特定のキャッシュサーバコンピューティングデバイス１３０，１３２，１３４をリソースキャッシュコンポーネントにおけるソフトウェア／ハードウェアコンポーネントによって選択することができる。
【００３４】
ブロック５０４においては、キャッシュサーバコンピューティングデバイス１３０，１３２，１３４がキャッシュサーバコンピューティングデバイスのメモリ１４０，１４２，１４４からオブジェクトに関する開始フラグメントを発見し、その開始フラグメントの伝送を開始する。図示されている実施例においては、メモリ１４０，１４２，１４４は、受信を行うキャッシュサーバコンピューティングデバイスに関連付けられたローカルメモリに対応する。択一的に、メモリをピアキャッシュサーバコンピューティングデバイスのメモリ、例えば同一のＰＯＰ内のメモリ、異なるＰＯＰのメモリに対応付けることができる。さらには、開始フラグメント部分はメモリに記憶されているものとして説明するが、当業者であれば、開始フラグメント部分を別のストレージロケーションからも提供できることが分かる。そのようなヴァリエーションは本発明の範囲および精神内のものであると見なされる。
【００３５】
ブロック５０６においては、キャッシュサーバコンピューティングデバイスが、全ての中間フラグメントおよびマジョリティフラグメントを含めてオブジェクトの残りの全ての部分の検索を開始する。図示されている実施例においては、中間フラグメント部分およびマジョリティフラグメント部分はメモリよりも長い待ち時間を有する媒体に記憶されている。上述のように、マジョリティフラグメント部分に関するストレージロケーションが既知で無い場合、または複数のストレージロケーションが存在する場合、キャッシュサーバコンピューティングデバイスはサービスを使用するか、リクエストを伝送することができる。判定ブロック５０８では、開始フラグメント部分の伝送が完了したか否かを判定するテストが行われる。伝送が完了していない場合には、キャッシュサーバコンピューティングデバイスはメモリからの開始フラグメント部分の伝送を継続する。付加的に、マジョリティフラグメント部分がダウンロードされていない場合には、キャッシュサーバコンピューティングデバイスはマジョリティフラグメント部分（または中間フラグメント部分）のダウンロードを継続する。
【００３６】
ブロック５１０において、開始フラグメント部分の伝送が完了すると、キャッシュサーバコンピューティングデバイスがリクエストを行ったクライアントコンピューティングデバイス１０２へのネットワークを介する残りのフラグメント部分（全ての中間フラグメントおよびマジョリティフラグメントを含む）の伝送を開始する。ブロック５１４においては、キャッシュサーバコンピューティングデバイスが、伝送処理の一部としてメモリに記憶されていた中間フラグメント部分およびマジョリティフラグメント部分を削除することができる。図示されている実施例においては、キャッシュサーバコンピューティングデバイスは中間フラグメント部分またはマジョリティフラグメント部分をメモリから明示的に削除することができる。別の実施例においては、キャッシュサーバコンピューティングデバイスは、中間フラグメント部分またはマジョリティフラグメント部分を記憶するために使用したメモリを上書き可能なものであるとマークすることができる。さらに別の実施例においては、キャッシュサーバコンピューティングデバイスは、中間フラグメント部分またはマジョリティフラグメント部分を記憶するために使用したメモリに関するメモリ管理アルゴリズムにおける優先順位を下げることができる。付加的に、ブロック５１４を省略することも可能である。ルーチンはブロック５１６において終了する。
【００３７】
別の実施例においては、関連付けられたオブジェクトのリクエストを受信すると即座に開始フラグメントの伝送が開始され、開始フラグメントの伝送の開始と同時に、または開始フラグメントの伝送の開始直後にマジョリティフラグメントの検索が行われる。
【００３８】
以下では図６を参照しながら、キャッシュサーバコンピューティングデバイスにおいてリソースのストレージ管理に関するルーチン６００の一実施例を説明する。ブロック６０２においては、キャッシュサーバコンピューティングデバイスがオブジェクトの記憶に関するリクエストを受信する。ブロック６０４においては、キャッシュサーバコンピューティングデバイスがオブジェクトに関連付けられた開始フラグメントおよび１つまたは複数の残りのフラグメントを決定する。そのような決定を行うプロセスの一部には、開始フラグメントのサイズの決定も含まれる。１つの実施例においては、開始フラグメントのサイズは、開始フラグメント部分の（同時的な）伝送と関連付けられた待ち時間と比較した、別のストレージロケーションからの１つまたは複数の残りのフラグメントの検索に関連付けられた待ち時間を基礎とする。上述のように、開始フラグメント部分のクライアントコンピューティングデバイス１０２への伝送が完了する前に、中間フラグメント部分および／またはマジョリティフラグメント部分の検索が完了するように開始フラグメントのサイズを選択することができる。殊に、クライアントコンピューティングデバイス１０２へのパケットの考えられる最大のスループットと比較した、記憶媒体の平均待ち時間または最大待ち時間の間に送信できるネットワークパケット数のスループットを基礎として、開始フラグメントのサイズを選択することができる。当業者には明らかであるように、開始フラグメントのサイズは静的なやり方、動的なやり方などの種々のやり方で決定され、また上記の種々の要因ならびにオブジェクトの符号化レートなども基礎とすることができる。
【００３９】
別の実施例においては、付加的なキャッシュマネージメント方法論を開始フラグメント部分のサイズの考慮に組み込むことができる。１つの実施例においては、開始フラグメントのサイズはオブジェクトのリクエスト頻度を基礎とすることができる。例えば、比較的長い待ち時間を有する記憶媒体から１つまたは複数の残りのフラグメントを提供するために必要とされるＩＯリクエストの数を低減するために、頻繁にリクエストされるオブジェクトは比較的大きいサイズの開始フラグメントを有していても良い。別の実施例においては、開始フラグメントのサイズはリクエストされたオブジェクトに関連する別のオブジェクトのリクエスト頻度を基礎とすることができる。
【００４０】
図６の参照を続ける。ブロック６０６においては、キャッシュサーバコンピューティングデバイスが開始フラグメントをキャッシュサーバコンピューティングデバイスのメモリに記憶する。択一的に、キャッシュサーバコンピューティングデバイスは開始フラグメントをストレージロケーションに単純に関連付け、その関連性、殊に別のコンピューティングデバイスが開始フラグメントの記憶を管理しているという関連性を記憶することができる。ブロック６０８においては、キャッシュサーバコンピューティングデバイスが１つまたは複数の残りのフラグメントを１つまたは複数のストレージロケーションに記憶する。ここでもまた択一的に、キャッシュサーバコンピューティングデバイスが１つまたは複数の残りのフラグメントを１つまたは複数のストレージロケーションと関連付け、その関連性を記憶することができる。
【００４１】
別の実施例においては、マジョリティフラグメントのサイズはオブジェクトの総ファイルサイズである。この実施例に関して、キャッシュサーバコンポーネントは中間フラグメント部分および／またはマジョリティフラグメント部分としてのオブジェクト全体を受信し、まだ伝送されていないフラグメントをフィルタリングする。択一的に、キャッシュサーバコンピューティングデバイスはストレージロケーションからマジョリティファイルの一部のみをリクエストすることができる。しかしながら、マジョリティフラグメントおよび／または中間フラグメントとしてオブジェクト全体を記憶することによって、開始フラグメント部分のサイズを動的に変更することができ、その際に別のフラグメント部分を相応に変更することは要求されない。択一的に、別の実施例においては、全てのフラグメントの合計がオブジェクトの総ファイルサイズとなるように中間フラグメント部分のサイズおよびマジョリティフラグメントのサイズが決定されている。
【００４２】
判定ブロック６１０においては、キャッシュサーバコンピューティングデバイスが開始フラグメントの更新が必要であるか否かを決定する。そのような決定を種々のやり方で実施することができる。図示されている幾つかの実施例においては、判定ブロック６１０における判定について、マジョリティフラグメントの検索に関連付けられた待ち時間の決定、オブジェクトのリクエスト頻度、および／または、リクエストされたオブジェクトに関連付けられた別のオブジェクトのリクエスト頻度を基礎とすることができる。１つの実施例においては、開始フラグメントの新たなファイルサイズについての特定の決定が判定ブロック６１０の処理に含まれる。この新たなファイルサイズは上記と同様のやり方で決定され、また、開始フラグメントの初期ファイルサイズの決定に関して上述した同様の要因を基礎とすることができる。
【００４３】
更新が必要であると決定された場合、ブロック６１２においては、キャッシュサーバコンピューティングデバイスが開始フラグメントの他に、付加的なフラグメントをキャッシュサーバコンピューティングデバイスのメモリに記憶する。１つの実施例においては、付加的なフラグメントのサイズとオリジナルの開始フラグメントのサイズとを合計したフラグメントのサイズを、開始フラグメントに関して新たに決定されたファイルサイズに対応させることができる。択一的に別の実施例においては、更新が必要である場合、メモリにおけるオリジナルの開始フラグメントが、更新処理によって決定された適切なサイズの新たな開始フラグメントに置換される。ルーチンはブロック６１４において終了する。当業者であれば、ルーチン６００の一部（例えばブロック６１０および６１２）をフラグメント部分の更新のために繰り返し実施することができる。
【００４４】
当業者には明らかであるように、本明細書において記載した全ての機能を、本明細書において記載したコンポーネントおよびモバイル通信機器の１つまたは複数のプロセッサによって実行できるソフトウェアとして実現することができる。そのようなソフトウェアをあらゆるタイプの不揮発性の記憶装置に永続的に記憶することができる。
【００４５】
条件を表す記述、例えば、とりわけ「可能」、「可能性がある」、「であろう」または「できる」は、別個の記載が無い限り、もしくは使用されているコンテキスト内で理解される限り、一般的に特定の実施形態は特定の特徴、構成要素および／またはステップを含むが、他の実施形態はそれらの特定の特徴、構成要素および／またはステップを含まないことを意味する。したがってそのような条件を表す言葉は、特徴、構成要素および／またはステップが１つまたは複数の実施形態にいずれにせよ必要とされること、もしくは、１つまたは複数の実施形態が、ユーザ入力またはプロンプトの使用の有無に拘らず、それらの特徴、構成要素および／またはステップがいずれかの特定の実施形態に含まれるか否か、またはいずれかの特定の実施形態において実施されるべきか否かを決定するためのロジックを含んでいなければならないことを意味しているのではない。
【００４６】
本明細書において説明した、および／または、添付の図面に示したフローチャートにおけるあらゆるプロセスの説明、構成要素またはブロックは、プロセスにおける特定の論理的な機能またはステップを実施するための１つまたは複数の実行可能な命令を含むコードモジュール、コードセグメントまたはコード部分を潜在的に表すものと解されるべきである。当業者であれば分かるように、択一的な実施形態は、そこに含まれる機能に依存して構成要素または機能を削除することができるか、（実質的に同時の実行または反対の順序での実行も含めて）図示または説明した順序とは異なる順序で実行することができる、本明細書において説明した実施形態の範囲に含まれる。さらには、上記において説明したデータおよび／またはコンポーネントを、コンピュータ読み取り可能媒体に記憶し、コンピュータが実行可能なコンポーネントを記憶しているコンピュータ読み取り可能記憶媒体、例えばＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭに関連付けられたドライブ機構を使用して、もしくは、さらにネットワークインタフェースを使用して、コンピューティングデバイスのメモリにロードすることができ、コンポーネントおよび／またはデータを単一の機器に記憶させることができるか、または、何らかのやり方で分散させて記憶できることも明らかである。
【００４７】
上述した種々の実施例は以下の各項に記載されている事項を考慮することによりさらに理解される。
【００４８】
第１項  キャッシュコンポーネントにおいて、記憶されるオブジェクトを受信するステップを有し、
オブジェクトを、メモリに記憶される開始フラグメントと、メモリよりも長い待ち時間を有する媒体に記憶されるマジョリティフラグメントとにセグメント化するステップを有し、ここで開始フラグメントのサイズはマジョリティフラグメントの検索に関連付けられた待ち時間を基礎としており、
キャッシュコンポーネントにおいてオブジェクトのリクエストを受信するステップを有し、
メモリからオブジェクトの開始フラグメントを伝送するステップを有し、
オブジェクトのマジョリティフラグメントを検索するステップを有し、
後続の処理のためにメモリ内にマジョリティフラグメントを保存することなく、マジョリティフラグメントを伝送するステップを有する、コンピュータ実施方法。
【００４９】
第２項  キャッシュコンポーネントにおいてオブジェクトのリクエストを受信するステップを有し、
メモリからオブジェクトの開始フラグメントを伝送するステップを有し、
オブジェクトのマジョリティフラグメントを検索するステップを有し、
後続の処理のためにメモリ内にマジョリティフラグメントを保存することなく、マジョリティフラグメントを伝送するステップを有する、コンピュータ実施方法。
【００５０】
第３項  マジョリティフラグメントを検索するステップは、キャッシュコンポーネントのローカルディスクメモリからマジョリティフラグメントを検索するステップを含む、第２項記載のコンピュータ実施方法。
【００５１】
第４項  マジョリティフラグメントを検索するステップは、別のキャッシュコンポーネントのディスクメモリからマジョリティフラグメントを検索するステップを含む、第２項記載のコンピュータ実施方法。
【００５２】
第５項  マジョリティフラグメントを検索するステップは、ネットワークベースのメモリからマジョリティフラグメントを検索するステップを含む、第２項記載のコンピュータ実施方法。
【００５３】
第６項  マジョリティフラグメントを検索するステップは、オリジンサーバからマジョリティフラグメントを検索するステップを含む、第２項記載のコンピュータ実施方法。
【００５４】
第７項  さらに、
オブジェクトの中間フラグメントを検索するステップを有し、
後続の処理のためにメモリ内に中間フラグメントを保存することなく、中間フラグメントを伝送するステップを有する、第２項記載のコンピュータ実施方法。
【００５５】
第８項  さらに、
開始フラグメントが更新されるべきか否かを決定するステップを有し、
更新される場合、開始フラグメントの他に付加的なフラグメントをメモリに記憶するステップを有する、第２項記載のコンピュータ実施方法。
【００５６】
第９項  開始フラグメントが更新されるべきか否かの決定は、マジョリティフラグメントの検索に関連付けられた待ち時間の決定を基礎とする、第４項記載のコンピュータ実施方法。
【００５７】
第１０項  開始フラグメントが更新されるべきか否かの決定はオブジェクトのリクエスト頻度を基礎とし、付加的なフラグメントのサイズの変更はリクエスト頻度の変更を基礎とする、第４項記載のコンピュータ実施方法。
【００５８】
第１１項  開始フラグメントが更新されるべきか否かの決定は、リクエストされたオブジェクトに関係する別のオブジェクトのリクエスト頻度を基礎とし、付加的なフラグメントのサイズの変更は関連するオブジェクトのリクエスト頻度の変更を基礎とする、第４項記載のコンピュータ実施方法。
【００５９】
第１２項  さらに、
開始フラグメントの新たなファイルサイズを決定するステップを有し、
付加的なフラグメントをメモリに記憶するステップを有し、
開始フラグメントのサイズおよび付加的なフラグメントのサイズは新たなファイルサイズに対応する、第２項記載のコンピュータ実施方法。
【００６０】
第１３項  マジョリティフラグメントはオブジェクトの総ファイルサイズに対応する、第２項記載のコンピュータ実施方法。
【００６１】
第１４項  開始フラグメントを記憶するメモリを有し、第２項記載の方法を実施する、コンピュータシステム。
【００６２】
第１５項  キャッシュコンポーネントにおいて、記憶されるオブジェクトを受信するステップを有し、
オブジェクトを、メモリに記憶される開始フラグメントと、メモリよりも長い待ち時間を有する媒体に記憶される１つまたは複数の残りのフラグメントとにセグメント化するステップを有し、ここで開始フラグメントのサイズは１つまたは複数の残りのフラグメントの検索に関連付けられた待ち時間を基礎とする、コンピュータ実施方法。
【００６３】
第１６項  １つまたは複数の残りのフラグメントはマジョリティフラグメントに対応し、マジョリティフラグメントはオブジェクトの総ファイルサイズに対応する、第８項記載のコンピュータ実施方法。
【００６４】
第１７項  １つまたは複数の残りのフラグメントは中間フラグメントおよびマジョリティフラグメントに対応し、中間フラグメントおよびマジョリティフラグメントはそれぞれオブジェクトの総ファイルサイズに対応する、第８項記載のコンピュータ実施方法。
【００６５】
第１８項  １つまたは複数の残りのフラグメントは後続の処理に関してメモリに保存されない、第８項記載のコンピュータ実施方法。
【００６６】
第１９項  開始フラグメントを記憶するメモリを有し、第８項記載の方法を実施する、コンピュータシステム。
【００６７】
第２０項  キャッシュコンポーネントにおいて、記憶されるオブジェクトを受信するステップを有し、
オブジェクトを、メモリに記憶される開始フラグメントと、メモリよりも長い待ち時間を有する媒体に記憶される１つまたは複数の残りのフラグメントとにセグメント化するステップを有し、ここで開始フラグメントのサイズはオブジェクトのリクエスト頻度を基礎とする、コンピュータ実施方法。
【００６８】
第２１項  １つまたは複数の残りのフラグメントはマジョリティフラグメントに対応し、マジョリティフラグメントはオブジェクトの総ファイルサイズに対応する、第２０項記載のコンピュータ実施方法。
【００６９】
第２２項  １つまたは複数の残りのフラグメントは中間フラグメントおよびマジョリティフラグメントに対応し、中間フラグメントおよびマジョリティフラグメントはそれぞれオブジェクトの総ファイルサイズに対応する、第２０項記載のコンピュータ実施方法。
【００７０】
第２３項  １つまたは複数の残りのフラグメントは後続の処理に関してメモリに保存されない、第２０項記載のコンピュータ実施方法。
【００７１】
第２４項  開始フラグメントを記憶するメモリを有し、第２０項記載の方法を実施する、コンピュータシステム。
【００７２】
第２５項  キャッシュコンポーネントにおいて、記憶されるオブジェクトを受信するステップを有し、
オブジェクトを、メモリに記憶される開始フラグメントと、メモリよりも長い待ち時間を有する媒体に記憶されるマジョリティフラグメントとにセグメント化するステップを有し、ここで開始フラグメントのサイズはリクエストされたオブジェクトに関係する別のオブジェクトのリクエスト頻度を基礎とする、コンピュータ実施方法。
【００７３】
第２６項  マジョリティフラグメントはオブジェクトの総ファイルサイズに対応する、第１０項記載のコンピュータ実施方法。
【００７４】
第２７項  １つまたは複数の残りのフラグメントは後続の処理に関してメモリに保存されない、第１０項記載のコンピュータ実施方法。
【００７５】
第２８項  開始フラグメントを記憶するメモリを有し、第１０項記載の方法を実施する、コンピュータシステム。
【００７６】
第２９項  キャッシュコンポーネントにおいて、記憶されるオブジェクトを受信するステップを有し、
オブジェクトに関して開始フラグメントおよびマジョリティフラグメントを決定するステップを有し、
メモリ内のストレージロケーションを開始フラグメントに関連付けるステップを有し、
ストレージロケーションをマジョリティフラグメントに関連付けるステップを有し、ここでマジョリティフラグメントに関連付けられたストレージロケーションはメモリよりも長い待ち時間を有する媒体に対応し、
開始フラグメントが更新されるべきか否かを決定するステップを有し、
更新される場合には、メモリ内のストレージロケーションを、開始フラグメントを補完する付加的なフラグメントに関連付けるステップを有する、コンピュータ実施方法。
【００７７】
第３０項  開始フラグメントが更新されるべきか否かの決定は、マジョリティフラグメントの検索に関連付けられた待ち時間の決定を基礎とする、第１３項記載のコンピュータ実施方法。
【００７８】
第３１項  開始フラグメントが更新されるべきか否かの決定はオブジェクトのリクエスト頻度を基礎とし、付加的なフラグメントのサイズの変更はリクエスト頻度の変更を基礎とする、第１３項記載のコンピュータ実施方法。
【００７９】
第３２項  開始フラグメントが更新されるべきか否かの決定は、リクエストされたオブジェクトに関係する別のオブジェクトのリクエスト頻度を基礎とし、付加的なフラグメントのサイズの変更は関連するオブジェクトのリクエスト頻度の変更を基礎とする、第１３項記載のコンピュータ実施方法。
【００８０】
第３３項  開始フラグメントが更新されるべきか否かを決定するステップは、開始フラグメントの新たなファイルサイズを決定するステップを含み、開始フラグメントおよび付加的なフラグメントは新たなファイルサイズに対応する、第１３項記載のコンピュータ実施方法。
【００８１】
第３４項  マジョリティフラグメントはオブジェクトの総ファイルサイズに対応する、第１３項記載のコンピュータ実施方法。
【００８２】
第３５項  開始フラグメントを記憶するメモリを有し、第１３項記載の方法を実施する、コンピュータシステム。
【００８３】
したがって、汎用コンピューティングデバイスを、上述の種々のデータおよび／またはコンポーネントの処理および／または実行も含めて、本発明によるプロセス、アルゴリズムおよび方法論を実施するよう構成することができる。
【００８４】
上記の実施形態についての種々のヴァリエーションおよび修正形態が考えられ、それらの構成要素は他の許容される実施例に含まれると解するべきである。そのような全ての修正形態およびヴァリエーションは本願発明の範囲に含まれ、添付の特許請求の範囲に記載された発明によって保護されることが意図されている。
【図１】
0005828760.tif 000002
【図２】
0005828760.tif 000003
【図３】
0005828760.tif 000004
【図４Ａ】
0005828760.tif 000005
【図４Ｂ】
0005828760.tif 000006
【図４Ｃ】
0005828760.tif 000007
【図４Ｄ】
0005828760.tif 000008
【図４Ｅ】
0005828760.tif 000009
【図４Ｆ】
0005828760.tif 000010
【図５】
0005828760.tif 000011
【図６】
0005828760.tif 000012