【手続補正書】
【提出日】平成27年12月4日(2015.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
キャッシング・サーバーが実行する方法であって、
ユーザー・デバイスのクライアント・アプリケーションから、望まれるコンテンツに関するリクエストを受け取るステップであって、前記リクエストは、前記望まれるコンテンツに関連した追加のコンテンツを示すものと、前記クライアント・アプリケーションにより生成された可能性を示すものとを含み、前記追加のコンテンツは、前記クライアント・アプリケーションにより続いて要求されると予測されたものであり、前記可能性を示すものは、前記追加のコンテンツが前記クライアント・アプリケーションにより続いて要求される可能性を示す、ステップと、
示された前記追加のコンテンツに少なくとも関するリクエストのオリジン・サーバーへの送信の優先度を、前記可能性を示すものに基づいて設定するステップと、
示された前記追加のコンテンツに少なくとも関する前記リクエストを前記オリジン・サーバーへ送信するステップと、
前記オリジン・サーバーから前記追加のコンテンツを受け取るステップと、
前記望まれるコンテンツを前記ユーザー・デバイスの前記クライアント・アプリケーションへ送信するステップと、
前記追加のコンテンツをキャッシュするステップと、
前記クライアント・アプリケーションから、前記追加のコンテンツに関するリクエストを含む第２のリクエストを受け取るステップと、
キャッシュされた前記追加のコンテンツを、前記ユーザー・デバイスの前記クライアント・アプリケーションへ供給するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記追加のコンテンツは第１の追加のコンテンツであり、前記第２のリクエストは、前記第１の追加のコンテンツに関連し、前記クライアント・アプリケーションにより続いて要求されると予測される第２の追加のコンテンツを示し、
示された前記第２の追加のコンテンツに関するリクエストを前記オリジン・サーバーへ送信するステップと、
前記第２の追加のコンテンツを前記オリジン・サーバーから受け取るステップと、
前記第２の追加のコンテンツをキャッシュするステップと
を更に含む方法。
【請求項３】
請求項１に記載の方法であって、示された前記追加のコンテンツに少なくとも関する前記リクエストの前記オリジン・サーバーへの送信の優先度を設定する前記ステップは、使用可能なストレージ容量と、使用可能なネットワーク容量と、使用可能な処理能力とのうちの少なくとも１つに更に基づく、方法。
【請求項４】
請求項１に記載の方法であって、前記クライアント・アプリケーションから受け取った望まれるコンテンツに関する前記リクエストは、ＨＴＴＰ（ハイパーテキスト・トランスファー・プロトコル）メッセージであり、前記ＨＴＴＰメッセージはヘッダーにおいて前記追加のコンテンツを示す、方法。
【請求項５】
請求項１に記載の方法であって、前記望まれるコンテンツは第１のイメージを含み、前記追加のコンテンツは第２のイメージであり、前記第２のイメージは、前記第１のイメージと空間的に隣接するか、前記第１のイメージと時間的に隣接するか、前記第１のイメージの一部であるか、または、前記第１のイメージを含む、方法。
【請求項６】
請求項１に記載の方法であって、前記望まれるコンテンツは第１のビデオ・フレームを含み、前記追加のコンテンツは、ビデオ・ストリームにおいて前記第１のビデオ・フレームに続く第２のビデオ・フレームを含む、方法。
【請求項７】
キャッシング・サーバーであって、
ユーザー・デバイスのクライアント・アプリケーションから、望まれるコンテンツに関するリクエストを受け取るように構成されたコンテンツ・リクエスト・パーサーであって、前記リクエストは、前記望まれるコンテンツに関連し、前記クライアント・アプリケーションにより続いて要求されるための追加のコンテンツを示すものと、前記クライアント・アプリケーションにより生成された可能性を示すものとを含み、前記可能性を示すものは、前記追加のコンテンツが前記クライアント・アプリケーションにより続いて要求される可能性を示す、コンテンツ・リクエスト・パーサーと、
オリジン・サーバーへ送信される、示された前記追加のコンテンツに少なくとも関するリクエストの優先度を、前記可能性を示すものに基づいて設定し、示された前記追加のコンテンツに少なくとも関する前記リクエストを前記オリジン・サーバーへ送信し、前記追加のコンテンツを前記オリジン・サーバーから受け取り、前記追加のコンテンツをストレージにキャッシュするように構成されたコンテンツ取得モジュールと、
前記望まれるコンテンツを前記ユーザー・デバイスの前記クライアント・アプリケーションへ送信するように構成されたコンテンツ・プロバイダー・モジュールと
を含み、
前記コンテンツ・リクエスト・パーサーは、前記クライアント・アプリケーションから、前記追加のコンテンツに関するリクエストを含む第２のリクエストを受け取るように構成され、
前記コンテンツ・プロバイダー・モジュールは、キャッシュされた前記追加のコンテンツを、前記クライアント・アプリケーションへ、前記クライアント・アプリケーションからの前記第２のリクエストに応答して供給するように構成された、
キャッシング・サーバー。
【請求項８】
請求項７に記載のキャッシング・サーバーであって、前記追加のコンテンツは第１の追加のコンテンツであり、前記第２のリクエストは、前記第１の追加のコンテンツに関連し前記クライアント・アプリケーションにより続いて要求されるための第２の追加のコンテンツを示し、
前記コンテンツ取得モジュールは、示された前記第２の追加のコンテンツに関するリクエストを前記オリジン・サーバーへ送信し、前記第２の追加のコンテンツを前記オリジン・サーバーから受け取り、前記第２の追加のコンテンツを前記ストレージにキャッシュする、キャッシング・サーバー。
【請求項９】
請求項７に記載のキャッシング・サーバーであって、前記望まれるコンテンツはウェブ・ページにより参照される第１のコンテンツ・アイテムを含み、前記追加のコンテンツは前記ウェブ・ページにより参照される第２のコンテンツ・アイテムである、キャッシング・サーバー。
【請求項１０】
請求項７に記載のキャッシング・サーバーであって、前記コンテンツ取得モジュールは、更に、示された前記追加のコンテンツに少なくとも関する前記リクエストの優先度を、使用可能なストレージ容量と、使用可能なネットワーク容量と、使用可能な処理能力とのうちの少なくとも１つに基づき設定する、キャッシング・サーバー。
【請求項１１】
請求項７に記載のキャッシング・サーバーであって、前記クライアント・アプリケーションから受け取った望まれるコンテンツに関する前記リクエストは、ＨＴＴＰ（ハイパーテキスト・トランスファー・プロトコル）メッセージであり、前記ＨＴＴＰメッセージはヘッダーにおいて前記追加のコンテンツを示す、キャッシング・サーバー。
【請求項１２】
請求項７に記載のキャッシング・サーバーであって、前記望まれるコンテンツは第１のイメージを含み、前記追加のコンテンツは第２のイメージであり、前記第２のイメージは、前記第１のイメージと空間的に隣接するか、前記第１のイメージと時間的に隣接するか、前記第１のイメージの一部であるか、または、前記第１のイメージを含む、キャッシング・サーバー。
【請求項１３】
請求項７に記載のキャッシング・サーバーであって、前記望まれるコンテンツは第１のビデオ・フレームを含み、前記追加のコンテンツは、ビデオ・ストリームにおいて前記第１のビデオ・フレームに続く第２のビデオ・フレームを含む、キャッシング・サーバー。
【請求項１４】
クライアント・アプリケーションのためのコンピューター・プログラム命令を含むコンピューター可読記憶媒体であって、前記コンピューター・プログラム命令は、
プロセッサーに、望まれるコンテンツに関する第１のリクエストであって、前記第１のリクエストは前記望まれるコンテンツに関連した追加のコンテンツを示し、前記追加のコンテンツは前記クライアント・アプリケーションにより続いて要求されるためのものである、前記第１のリクエストを生成させ、可能性を示すものであって、前記可能性を示すものは、前記追加のコンテンツが前記クライアント・アプリケーションにより続いて要求される可能性を示し、前記可能性を示すものは、望まれるコンテンツに関する前記第１のリクエストに含まれる、前記可能性を示すものを生成させる第１のコンピューター・プログラム命令と、
プロセッサーに、前記望まれるコンテンツを、キャッシング・サーバーであって前記望まれるコンテンツに関する前記第１のリクエストに応答して前記望まれるコンテンツをオリジン・サーバーから取得した前記キャッシング・サーバーから受け取ることをさせる第２のコンピューター・プログラム命令と、
プロセッサーに、前記オリジン・サーバーへ送信される、前記追加のコンテンツに少なくとも関する第２のリクエストの優先度を、前記可能性を示すものに基づき設定させ、前記追加のコンテンツに少なくとも関する前記第２のリクエストを生成させる第３のコンピューター・プログラム命令と、
プロセッサーに、前記追加のコンテンツを、前記キャッシング・サーバーであって前記追加のコンテンツを前記オリジン・サーバーから取得し前記追加のコンテンツを前記望まれるコンテンツに関する前記第１のリクエストに応答してキャッシュした前記キャッシング・サーバーから受け取ることをさせる第４のコンピューター・プログラム命令と
を含む、コンピューター可読記憶媒体。
【請求項１５】
請求項１４に記載のコンピューター可読記憶媒体であって、前記追加のコンテンツは第１の追加のコンテンツであり、前記第２のリクエストは、前記第１の追加のコンテンツに関連し前記クライアント・アプリケーションにより続いて要求されるための第２の追加のコンテンツを示し、前記第２の追加のコンテンツは、オリジン・サーバーから取得され、前記キャッシング・サーバーにより前記第２のリクエストに応答してキャッシュされる、コンピューター可読記憶媒体。
【請求項１６】
請求項１４に記載のコンピューター可読記憶媒体であって、望まれるコンテンツに関する前記第１のリクエストは、ＨＴＴＰ（ハイパーテキスト・トランスファー・プロトコル）メッセージであってヘッダーにおいて前記追加のコンテンツを示す前記ＨＴＴＰメッセージとして生成される、コンピューター可読記憶媒体。
【請求項１７】
請求項１４に記載のコンピューター可読記憶媒体であって、前記望まれるコンテンツは第１のオーディオ・フレームを含み、前記コンピューター・プログラム命令は、
プロセッサーに、オーディオ・ストリームにおいて前記第１のオーディオ・フレームに続く第２のオーディオ・フレームとなる前記追加のコンテンツを求めることをさせる第５のコンピューター・プログラム命令
を更に含む、コンピューター可読記憶媒体。
【請求項１８】
請求項１４に記載のコンピューター可読記憶媒体であって、前記クライアント・アプリケーションはウェブ・ブラウザーである、コンピューター可読記憶媒体。
【請求項１９】
請求項１４に記載のコンピューター可読記憶媒体であって、前記クライアント・アプリケーションは、メディア・プレイヤーまたはウェブ・アプリケーションである、コンピューター可読記憶媒体。
【請求項２０】
請求項１４に記載のコンピューター可読記憶媒体であって、前記望まれるコンテンツはウェブ・ページにより参照される第１のコンテンツ・アイテムを含み、前記コンピューター・プログラム命令は、
プロセッサーに、前記ウェブ・ページにより参照される第２のコンテンツ・アイテムとなる前記追加のコンテンツを求めることをさせる第５のコンピューター・プログラム命令を更に含む、コンピューター可読記憶媒体。
【請求項２１】
請求項１４から２０の何れか一項に記載のコンピューター・プログラム命令を含むコンピューター・プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】アプリケーション駆動のＣＤＮのプリキャッシング
【背景技術】
【０００１】
[0001]  コンテンツ配信ネットワーク（ＣＤＮ）は、様々なネットワーク・ノードに置かれたデータのコピーを含むコンピューターのネットワークである。ＣＤＮは、オリジン・サーバー（origin server）とエンド・ユーザー・コンピューターとの間でのデータのためのインターフェースを提供する。オリジン・サーバーは、コンテンツの一次のソースであり、ＣＤＮのサーバーは、要求の最も高いコンテンツのコピーをキャッシュする。ＣＤＮのサーバーは、オリジン・サーバーよりもエンド・ユーザー・コンピューターの近くになるように、戦略的に配置することができる。エンド・ユーザー・コンピューターは、ＣＤＮのサーバーにおいて、要求の高いデータへアクセスすることができ、オリジン・サーバーからのデータへ直接にアクセスする必要はない。従って、ＣＤＮは、アクセス帯域を増加させること、冗長性を増加させること、およびアクセス・レイテンシを低減させることにより、データへのアクセスを改善する。
【０００２】
[0002]  ワシントン州レドモンドのマイクロソフト・コーポレーションにより提供されるＢｉｎｇＭａｐｓは、ＣＤＮを用いてコンテンツを提供するオンライン・アプリケーションの例である。このアプリケーションは、オリジン・サーバーに格納されておりＣＤＮを介してエンド・ユーザーへ送られる、マップ・タイル（マップの部分のイメージ）の形の大量の静的コンテンツを有する。例えば、ユーザーは、ユーザーの計算デバイスにおいてウェブ・ブラウザーを用いてマップをブラウズすることができ、例えば、マップにわたってのパンを行うことや、マップの一部に対するズーム・インやズーム・アウトを行うことなどが可能である。ユーザーがマップをブラウズするとき、ブラウザーは、新たなマップ・タイルに関するリクエストをＣＤＮへ送る。
【０００３】
[0003]  ユーザーの計算デバイスのブラウザーへ、より迅速にコンテンツ（例えば、マップ・タイル）を提供することを可能にするための、様々な技術が開発されている。第１の技術によると、オンライン・アプリケーションのためのオリジン・サーバーは、将来のコンテンツ・リクエストを予測することができる。予測した将来のコンテンツをＣＤＮにプリキャッシングすることができ、それにより、その予測した将来のコンテンツは、それが実際に要求された場合には、ユーザーの計算デバイスにより、より迅速にアクセスされ得る。第２の技術によると、ユーザーの計算デバイスのクライアント・ウェブ・ブラウザーは、将来に何れのコンテンツが望まれるかを予測することができ、そのコンテンツをウェブ・ブラウザーへプリフェッチすることができる。第３の技術によると、ＣＤＮサーバーは、ユーザーの計算デバイスによる将来のコンテンツ・リクエストを予測することができ、予測した将来のコンテンツをＣＤＮにプリキャッシングすることができる。
【０００４】
[0004]  しかし、これらの技術には欠点がある。例えば、オリジン・サーバーが将来のコンテンツを予測することには、プリキャッシングされるコンテンツが事前に決定される、という欠点がある。ウェブ・ブラウザーへコンテンツをプリフェッチすることに関しては、データ転送のためにユーザーがコストを費やす場合や、帯域幅に制限がある場合（例えば、モバイル・アプリケーションの場合など）において、そのようなプリキャッシングは、許容できないこと及び／又は望まれる性能を提供できないことがあり得る。更に、ＣＤＮサーバーが将来のコンテンツを予測してプリキャッシングすることに関しては、将来のコンテンツ・リクエストを推測可能とするために、ＣＤＮは、ＣＤＮの受け取るコンテンツ・リクエストのタイプを理解するために高性能である必要がある。
【０００５】
[0005]  従って、現在のキャッシング技術は、望ましいというほどではない。ＢｉｎｇＭａｐｓの場合、使用可能なマップ・タイルの数と、様々なユーザーの様々な焦点エリアとが原因で、「キャッシュ・ヒット」率（キャッシュされていた要求されたデータと、使用可能なデータの合計量との比率）は、望ましくないほど低い（例えば、５０％未満）。それにより、マップのロードにおけるレイテンシが比較的高くなる。なぜなら、マップ・タイルは、ユーザーに対して、ＣＤＮにおけるキャッシュから取得せずに、頻繁に、オリジン・サーバーから取得する必要があるからである。
【発明の概要】
【０００６】
[0006]  この概要は、以下の詳細な説明で更に説明する概念のうちの選択したものを、簡素化した形で紹介するものである。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
【０００７】
[0007]  コンテンツが実際に要求される前にコンテンツをキャッシュするための方法、システム、およびコンピューター・プログラム製品を提供する。クライアント・アプリケーションは、望まれたコンテンツの後に要求され得るコンテンツを、予測することができる（予測を、オリジン・サーバーやコンテンツ配信ネットワークのサーバーで行うのではない）。更に、予測されたコンテンツは、コンテンツ配信ネットワークのキャッシング・サーバーでキャッシュすることができる（ウェブ・ブラウザーでキャッシュされるのではない）。そのような技術は、キャッシュ・ヒット率を増加させ、レイテンシを低減させ、且つ／又は更なる利益を有する。
【０００８】
[0008]  キャッシング・サーバーにおける１つの方法のインプリメントでは、望まれるコンテンツに関する第１リクエストが、クライアント・アプリケーションから受け取られる。第１リクエストはまた、望まれるコンテンツと関連しておりクライアント・アプリケーションにより続いて要求され得る追加のコンテンツを示し得る。示された追加のコンテンツは、現在は、消費するために望まれるものとして示されていないが、将来に消費するために望まれる可能性のあることが予測される。望まれるコンテンツと示された追加のコンテンツとは、オリジン・サーバーから取得される。望まれるコンテンツは、ユーザー・デバイスのクライアント・アプリケーションへ送られ、追加のコンテンツは、キャッシング・サーバーでキャッシュされる。その後、クライアント・アプリケーションから、追加のコンテンツに関するリクエストを含む第２リクエストが、受け取られ得る（例えば、ここで、クライアント・アプリケーションで消費するために、追加のコンテンツが望まれるから）。第１リクエストに応じてキャッシング・サーバーでキャッシュされた追加のコンテンツは、第２リクエストに応じてキャッシング・サーバーによりクライアント・アプリケーションへ供給される。
【０００９】
[0009]  望まれるコンテンツに関する第１リクエストは、追加のコンテンツが続いてクライアント・アプリケーションにより要求され得る可能性（likelihood）を示す可能性インジケーションを、含むことができる。オリジン・サーバーにおける示された追加のコンテンツに関するリクエストには、可能性インジケーション（他のコンテンツ・リクエストと相対したもの）および／または他の情報に基づいて、優先度が設定される。
【００１０】
[0010]  １つのシステムのインプリメントでは、キャッシング・サーバーは、コンテンツ・リクエスト・パーサーと、コンテンツ取得モジュールと、コンテンツ・プロバイダー・モジュールとを、含むことができる。コンテンツ・リクエスト・パーサーは、ユーザー・デバイスのクライアント・アプリケーションから、望まれるコンテンツに関するリクエストを受け取る。リクエストは、望まれるコンテンツと関連しておりクライアント・アプリケーションにより続いて要求され得る追加のコンテンツを示す。コンテンツ取得モジュールは、望まれるコンテンツと、示された追加のコンテンツとに関する少なくとも１つのリクエストをオリジン・サーバーへ送り、望まれるコンテンツと追加のコンテンツとをオリジン・サーバーから受け取り、追加のコンテンツをストレージにキャッシュする。コンテンツ・プロバイダー・モジュールは、望まれるコンテンツを、ユーザー・デバイスのクライアント・アプリケーションへ送る。コンテンツ・リクエスト・パーサーは、クライアント・アプリケーションから、追加のコンテンツに関するリクエストを含む第２リクエストを受け取る。コンテンツ・プロバイダー・モジュールは、第２リクエストに応じて、キャッシュされた追加のコンテンツをクライアント・アプリケーションへ供給する。
【００１１】
[0011]  更に、コンテンツ取得モジュールは、リクエスト優先度設定手段（prioritizer）を含むことができ、リクエスト優先度設定手段は、可能性インジケーションに基づいて、オリジン・サーバーへの、示された追加のコンテンツに関するリクエストの送信の優先度を設定する。
【００１２】
[0012]  １つのクライアント・アプリケーションのインプリメントでは、クライアント・アプリケーションは、通信インターフェースと追加のコンテンツ予測手段（predictor）とを含むことができる。追加のコンテンツ予測手段は、クライアント・アプリケーションに対しての現在の望まれるコンテンツのインジケーションを受け取り、クライアント・アプリケーションにより続いて要求され得る追加のコンテンツを予測する。通信インターフェースは、望まれるコンテンツに関する第１リクエストを作成し、これは、予測される追加のコンテンツも示す。通信インターフェースは、第１リクエストに応じて、望まれるコンテンツをオリジン・サーバーから取得したキャッシング・サーバーから、望まれるコンテンツを受け取る。その後、通信インターフェースは第２リクエストを作成し、この第２リクエストは、現在望まれているコンテンツとして、予測された追加のコンテンツを求めるリクエストである。予測された追加のコンテンツは、キャッシング・サーバーから受け取られる。キャッシング・サーバーは、第１リクエストに応じて、追加のコンテンツをオリジン・サーバーから以前に取得しており、追加のコンテンツをキャッシュしている。
【００１３】
[0013]  更に、追加のコンテンツ予測手段は、追加のコンテンツ優先度設定手段を含むことができる。追加のコンテンツ優先度設定手段は、クライアント・アプリケーションにより追加のコンテンツが続いて要求され得る可能性を示す可能性インジケーションを作成する。
【００１４】
[0014]  予測される将来のコンテンツをキャッシュするキャッシング・サーバーおよび更なる追加の実施形態のための、将来のコンテンツ・リクエストを予測するクライアント・アプリケーションのためのコンピューター・プログラム製品も、ここで説明される。
【００１５】
[0015]  本発明の更なる特徴および利点、および本発明の様々な実施形態の構造および動作を、添付の図面を参照して後に詳細に説明する。本発明は、ここで説明する特定の実施形態に限定されないことに、留意されたい。ここでは、そのような実施形態を、単なる例示を目的として呈示している。当業者には、ここに含まれる技術に基づいて、更なる実施形態が明らかになる。
【００１６】
[0016]  ここに組み込まれて明細書の一部を形成する添付の図面は、本発明を例示するものであり、また、記載と共になって、本発明の原理を説明するため、および当業者が本発明を作成および使用することを可能とするために役立つ。
【図面の簡単な説明】
【００１７】
【図１】図１は、例示の実施形態に従った、ユーザー・デバイスへコンテンツを届けるコンテンツ配信ネットワークのブロック図を示す。
【図２】図２は、例示の実施形態に従ったコンテンツ配信ネットワークのブロック図を示し、コンテンツ配信ネットワークでは、予測されたコンテンツが取得されて、キャッシング・サーバーによりキャッシュされる。
【図３】図３は、例示の実施形態に従った、クライアント・アプリケーションにより将来に要求され得るコンテンツをキャッシュするためのキャッシング・サーバーのためのプロセスを提供するフローチャートを示す。
【図４】図４は、例示の実施形態に従った、以前にキャッシュしたコンテンツをクライアント・アプリケーションへ提供するためのプロセスを提供するフローチャートを示す。
【図５】図５は、例示の実施形態に従った、望まれるコンテンツを要求して受け取るため、および将来に要求され得るコンテンツを示すための、クライアント・アプリケーションのためのプロセスを提供するフローチャートを示す。
【図６】図６は、例示の実施形態に従った、望まれるコンテンツを要求して受け取るように、および将来に要求され得るコンテンツを示すように構成されたクライアント・アプリケーションを有するユーザー・デバイスのブロック図である。
【図７】図７は、例示の実施形態に従った、追加のコンテンツ優先度設定手段を含む追加のコンテンツ予測手段のブロック図を示す。
【図８】図８は、例示の実施形態に従った、将来にクライアント・アプリケーションによりコンテンツが要求され得る可能性を示すためのプロセスを示す。
【図９】図９は、例示の実施形態に従った、キャッシング・サーバーのブロック図を示す。
【図１０】図１０は、例示の実施形態に従った、リクエスト優先度設定手段を含むコンテンツ取得モジュールのブロック図を示す。
【図１１】図１１は、例示の実施形態に従った、オリジン・サーバーに対して将来にクライアント・アプリケーションにより要求され得るコンテンツに関するリクエストの優先度を設定するためのプロセスを示す。
【図１２】図１２は、本発明の実施形態をインプリメントするために用いられ得る例示のコンピューターのブロック図を示す。
【発明を実施するための形態】
【００１８】
[0029]  本発明の特徴および利点は、下記の詳細な説明を図面と関連させると更に明確になり、これらを通じて、同様の参照符号は対応するエレメントを識別する。図面では、同様の参照番号は一般に、同一、機能的に類似、および／または構造的に類似のエレメントを示す。図面では、或るエレメントの最初に現れる図面が、そのエレメントに対応する参照番号の最も左にある数（１以上）により示されている。
【００１９】
Ｉ．  序説
[0030]  この明細書は、本発明の特徴を組み込む１以上の実施形態を開示する。開示される実施形態（１以上）は、本発明の単なる例である。本発明の範囲は、開示される実施形態（１以上）には限定されない。本発明は、添付の特許請求の範囲により定められる。
【００２０】
[0031]  明細書における「１つの実施形態」、「実施形態」、「例示の実施形態」などへの参照は、記載される実施形態が、特定の機能、構造、又は特徴を含み得ることを示すが、その特定の機能、構造、又は特徴を全ての実施形態が必ずしも含まないこともあり得る。更に、そのようなフレーズは、必ずしも同じ実施形態を指すものではない。更に、１つの実施形態と関連して特定の機能、構造、又は特徴が説明されたときには、明確に説明したか否かにかかわらず、他の実施形態と関連してそのような機能、構造、又は特徴をもたらすことは、当業者の知識内にあると申し上げたい。
【００２１】
[0032]  本発明の多くの例示の実施形態が以下で説明される。ここでの何れのセクション／サブセクションの見出しも、限定を意図していないことに留意されたい。実施形態はこの文章全体で説明され、何れのタイプの実施形態も、何れのセクション／サブセクションにも含まれ得る。
【００２２】
ＩＩ．  例示の実施形態
[0033]  コンテンツ配信ネットワーク（ＣＤＮ）は、様々なネットワーク・ノードに置かれたデータのコピーを含むコンピューターのネットワークである。ＣＤＮは、オリジン・サーバーとエンド・ユーザー・コンピューターとの間でのデータのためのインターフェースを提供する。オリジン・サーバーは、コンテンツの一次のソースであり、ＣＤＮのサーバーは、オリジン・サーバーにおける要求の最も高いコンテンツのコピーをキャッシュする。ＣＤＮのサーバーは、オリジン・サーバーよりもエンド・ユーザー・コンピューターの近くになるように、戦略的に配置することができる。エンド・ユーザー・コンピューターは、ＣＤＮのサーバーにおいて、要求の高いデータへアクセスすることができ、オリジン・サーバーからのデータへ直接にアクセスする必要はない。従って、ＣＤＮは、アクセス帯域を増加させること、冗長性を増加させること、およびアクセス・レイテンシを低減させることにより、データへのアクセスを改善する。ＣＤＮへキャッシュされ得るコンテンツのタイプは、ウェブ・オブジェクト（テキスト、グラフィックス、ＵＲＬ、およびスクリプト）、ダウンロード可能オブジェクト（メディア・ファイル、ソフトウェア、ドキュメント）、アプリケーション、ライブ・ストリーミング・メディア、およびデータベース・クエリを含む。
【００２３】
[0034]  ユーザーの計算デバイスのブラウザーへ、より迅速にコンテンツ（例えば、マップ・タイル）を提供することを可能にするための、様々な技術が開発されている。第１の技術によると、オンライン・アプリケーションのためのオリジン・サーバーは、将来のコンテンツ・リクエストを予測することができる。予測される将来のコンテンツをＣＤＮにプリキャッシングすることができ、それにより、その予測される将来のコンテンツは、それが実際に要求された場合には、ユーザーの計算デバイスにより、より迅速にアクセスされることができる。第２の技術によると、クライアント・ウェブ・ブラウザーは、将来に何れのコンテンツが望まれるかを予測することができ、そのコンテンツをユーザーの計算デバイスのウェブ・ブラウザーへプリフェッチすることができる（例えば、ＡＪＡＸ（非同期ＪａｖａＳｃｒｉｐｔ）技術を用いる）。例えば、ユーザーは、計算デバイスにおいて一連のイメージを見るために、ウェブ・ブラウザーを用いることができる。それぞれのイメージが見られるたびに、オリジン・サーバーにおいて、次に見られるイメージを予測することができ、予測した次のイメージを、ウェブ・ブラウザーへプリフェッチすることができ、それにより、現在のイメージから次のイメージへの円滑で即座の移行を可能とする。第３の技術によると、ＣＤＮサーバーは、ユーザーの計算デバイスによる将来のコンテンツ・リクエストを予測することができ、予測した将来のコンテンツをＣＤＮにプリキャッシングすることができる。
【００２４】
[0035]  しかし、これらの技術には欠点がある。例えば、オリジン・サーバーが将来のコンテンツを予測することには、プリキャッシングされるコンテンツが事前に決定される、という欠点がある。ウェブ・ブラウザーへコンテンツをプリフェッチすることに関しては、データ転送のためにユーザーがコストを費やす場合や、帯域幅に制限がある場合（例えば、モバイル・アプリケーションの場合など）において、そのようなプリキャッシングは、許容できないこと、及び／又は望まれる性能を提供できないことがあり得る。更に、ＣＤＮサーバーが将来のコンテンツを予測してプリキャッシングすることに関しては、将来のコンテンツ・リクエストを推測可能とするために、ＣＤＮは、ＣＤＮの受け取るコンテンツ・リクエストのタイプを理解するために高性能である必要がある。
【００２５】
[0036]  本発明の実施形態は、そのような欠点を克服する。１つの実施形態では、将来に望まれ得るコンテンツを予測するためのロジックを、ユーザーの計算デバイスにおけるクライアント・アプリケーション（例えば、ブラウザーや他のクライアント・アプリケーションの中）においてインプリメントすることができる。従って、ロジックは、クライアント・アプリケーションに対してより特定的に調整することができ、また、クライアント・アプリケーションの進化につれて進化させることができる（例えば、アップデートを通じて）。
【００２６】
[0037]  更に、１つの実施形態では、予測される将来のコンテンツは、ウェブ・ブラウザーでプリキャッシングしておくのではなく、ＣＤＮのストレージへキャッシュすることができる。ＣＤＮのストレージへのプリキャッシングは、ウェブ・ブラウザーへ送られるデータを大きく増加させず、従って、ウェブ・ブラウザーの性能に対する悪影響を及ぼさず、データの転送にコストを要する場合や帯域幅の制限が存在する場合の問題が無い。
【００２７】
[0038]  従って、実施形態は、クライアント・アプリケーション自体においてではなく、ＣＤＮのキャッシング・サーバーにおけるコンテンツのプリキャッシングを、可能にする。何れのコンテンツをプリキャッシングするかを決定するビジネス・ロジックは、クライアント・アプリケーション内に存在することを可能とされる。クライアント・アプリケーションは、ユーザーのコンテキスト／挙動および／または他の要因に基づいて、ＣＤＮへ、何れのコンテンツを直接にプリキャッシングするかに関して、ヒントを与えることができる。プリキャッシングのヒントは、オプションとして、将来にコンテンツが使用される可能性のインジケーションを含むことができ、使用可能な容量に従ってＣＤＮがプリキャッシング・リクエストの優先度を設定することを、可能にする。
【００２８】
[0039]  実施形態は、任意のタイプのＣＤＮでインプリメントすることができる。例えば、図１は、本発明の実施形態に従った、コンテンツをユーザー・デバイスへ届けるＣＤＮ１００のブロック図を示す。ＣＤＮ１００は、例示のタイプのコンテンツ配信ネットワークとして示しており、限定することを意図していない。図１に示すように、ＣＤＮ１００は、オリジン・サーバー１０２と第１および第２のキャッシング・サーバー１０４ａおよび１０４ｂを含む。更に、図１に示すように、ＣＤＮ１００は、第１〜第４のユーザー・デバイス１０６ａ〜１０６ｄへコンテンツを届ける。図１では、１つのオリジン・サーバー１０２と、２つのキャッシング・サーバー１０４ａおよび１０４ｂと、４つのユーザー・デバイス１０６ａ〜１０６ｄとが例示目的で示されているが、図１のこれらの構成の任意の数のものが存在することができ、任意の数のものとしては、１以上の追加のオリジン・サーバー、１以上の追加のキャッシング・サーバー、および／または１以上の追加のユーザー・デバイスが含まれ、数十、数百、数千、更にはそれより多数のサーバーおよび／またはユーザー・デバイスが含まれる。実施形態では、キャッシング・サーバー１０４ａおよび１０４ｂは、キャッシング・サーバー・クラスター（また、オプションとして、更なるキャッシング・サーバー）に含まれるようにすること、または含まれないようにすることができ、また、任意の数のキャッシング・サーバー・クラスターが存在することができる。
【００２９】
[0040]  ユーザー・デバイス１０６ａ〜１０６ｄのそれぞれは、任意のタイプの静止型または移動型の計算デバイスとすることができ、デスクトップ・コンピューター（例えば、パーソナル・コンピューターなど）、モバイルのコンピューターまたは計算デバイス（例えば、Ｐａｌｍデバイス、ＲＩＭ  Ｂｌａｃｋｂｅｒｒｙデバイス、パーソナル・デジタル・アシスタント（ＰＤＡ）、ラップトップ・コンピューター、ノートブック・コンピューター、タブレット・コンピューター（例えば、ＡｐｐｌｅｉＰａｄ）、ネットブックなど）、スマート・フォン（例えば、ＡｐｐｌｅｉＰｈｏｎｅ、ＧｏｏｇｌｅＡｎｄｒｏｉｄフォン、ＭｉｃｒｏｓｏｆｔＷｉｎｄｏｗｓフォンなど）、または他のタイプの計算デバイスを含む。
【００３０】
[0041]  図１に示すように、オリジン・サーバー１０２とキャッシング・サーバー１０４ａおよび１０４ｂとは、ネットワーク１０８ａを通じて通信するように結合され、キャッシング・サーバー１０４ａおよび１０４ｂとユーザー・デバイス１０６ａ〜１０６ｄとは、ネットワーク１０８ｂを通じて通信するように結合されている。ネットワーク１０８ａおよび１０８ｂは、別のネットワークとるすことも、１つのネットワークに含まれるようにすることもできる。ネットワーク１０８ａおよび１０８ｂの例は、ＬＡＮ（ローカル・エリア・ネットワーク）、ＷＡＮ（ワイド・エリア・ネットワーク）、またはインターネットなどのようなネットワークの組み合わせを、含むことができる。ネットワーク１０８ａおよび１０８ｂに含まれ得る通信リンクの例は、ＩＥＥＥ８０２．１１ワイヤレスＬＡＮ（ＷＬＡＮ）ワイヤレス・リンク、Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  ｍｃｒｏｗａｖｅ  Ａｃｃｅｓｓ（Ｗｉ−Ｍａｘ）リンク、セルラー・ネットワーク・リンク、ワイヤレス・パーソナル・エリア・ネットワーク（ＰＡＮ）リンク（例えば、Ｂｌｕｅｔｏｏｔｈリンク）、イーサネット・リンク、ＵＳＢ（ユニバーサル・シリアル・バス）リンクなどを含む。オリジン・サーバー１０２とキャッシング・サーバー１０４ａおよび１０４ｂとのそれぞれは、ここに記載した又は知られている任意のタイプの計算デバイスとすることができる。
【００３１】
[0042]  図１に示すように、ユーザー・デバイス１０６ａ〜１０６ｄのそれぞれは、クライアント・アプリケーション１１０ａ〜１１０ｄのうちの対応するものを含む。クライアント・アプリケーション１１０ａ〜１１０ｄは、ユーザー・デバイス１０６ａ〜１０６ｄで実行され、ＣＤＮ１００を通じてコンテンツへアクセスするアプリケーションである。クライアント・アプリケーション１１０ａ〜１１０ｄの例は、ウェブ・ブラウザー、メディア・プレーヤー（例えば、ビデオ・プレーヤー、イメージ・ビューワー、オーディオ・プレーヤーなど）、および他のタイプのクライアント・アプリケーションを含む。図１に示すように、オリジン・サーバー１０２は、ストレージに、クライアント・アプリケーション１１０ａ〜１１０ｄによりアクセスを望まれ得るコンテンツ１１２を格納する。コンテンツ１１２は任意のタイプのコンテンツとすることができ、ウェブ・オブジェクト（例えば、テキスト、グラフィックス／イメージ／ビデオ、ＵＲＬ（ユニフォーム・リソース・ロケーター）、スクリプトなど）、ダウンロード可能オブジェクト（例えば、メディア・ファイル、ソフトウェア、ドキュメントなど）、アプリケーション、ライブ・ストリーミング・メディア、およびデータベース・データを含む。クライアント・アプリケーション１１０ａ〜１１０ｄは、幾つかの場合には、オリジン・サーバー１０２においてコンテンツ１１２へ直接にアクセスすることができる。更に、キャッシング・サーバー１０４ａおよび１０４ｂのそれぞれは、コンテンツ１１２の一部を、キャッシュ・コンテンツ１１４ａおよびキャッシュ・コンテンツ１１４ｂとしてそれぞれキャッシュすることができる。従って、クライアント・アプリケーション１１０ａ〜１１０ｄは、幾つかの場合、キャッシング・サーバー１０４ａおよび１０４ｂにおいて、コンテンツ１１２を、キャッシュ・コンテンツ１１４ａおよびキャッシュ・コンテンツ１１４ｂとしてアクセスすることができ、コンテンツ１１２をオリジン・サーバー１０２から直接に得る必要がない。この直接に得ることは、ボトルネックであり得る。
【００３２】
[0043]  例えば、図１に示すように、ユーザー・デバイス１０６ａのクライアント・アプリケーション１１０ａは、コンテンツ・リクエスト１１６をキャッシング・サーバー１０４ａへ、送ることができる。コンテンツ・リクエスト１１６は、クライアント・アプリケーション１１０ａにより将来要求されると予測されたコンテンツと、クライアント・アプリケーション１１０ａにより直接に望まれるコンテンツとを示す。このように、クライアント・アプリケーション１１０ａは、将来に要求し得るコンテンツ、従って、キャッシング・サーバー１０４ａによりキャッシュされることが望ましいコンテンツを、キャッシング・サーバー１０４ａに伝える。図１の実施形態では、コンテンツ・リクエスト１１６が、クライアント・アプリケーション１１０ａにより望まれているコンテンツと、クライアント・アプリケーション１１０ａにより将来に要求されると予測されたコンテンツとの双方を示すことに、留意されたい。別の実施形態では、コンテンツ・リクエスト１１６は、クライアント・アプリケーション１１０ａにより将来に要求されると予測されたコンテンツを含むことができ、クライアント・アプリケーション１１０ａにより望まれているコンテンツは、クライアント・アプリケーション１１０ａからキャッシング・サーバー１０４ａへ送られる別のリクエストで示すことができる。
【００３３】
[0044]  キャッシング・サーバー１０４ａは、コンテンツ・リクエスト１１６で示された予測される将来のコンテンツを要求するものでありオリジン・サーバー１０２へ送られるコンテンツ・リクエスト１１８を、作成することができる。クライアント・アプリケーション１１０ａにより要求された望まれるコンテンツが、まだキャッシング・サーバー１０４ａにキャッシュされていない場合、キャッシング・サーバー１０４ａは、望まれるコンテンツをコンテンツ・リクエスト１１８で示すこと、またはオリジン・サーバー１０２（又は他のオリジン・サーバー）へ望まれるコンテンツに関する別個のリクエストを送ることができる。オリジン・サーバー１０２は、コンテンツ１１２のコンテンツを、コンテンツ・リクエスト１１８に対する応答１２０で、キャッシング・サーバー１０４ａへ送ることができる。応答１２０は、望まれるコンテンツと、予測される将来のコンテンツとを含むことができる。代替的に、望まれるコンテンツと、予測される将来のコンテンツとを、別個の伝送でオリジン・サーバー１０２からキャッシング・サーバー１０４ａへ送ること、または望まれるコンテンツと、予測される将来のコンテンツとを、異なるオリジン・サーバーから送ることができる。キャッシング・サーバー１０４ａは、望まれるコンテンツと、予測される将来のコンテンツとを、キャッシュ・コンテンツ１１４ａとしてキャッシュすることができ、望まれるコンテンツを、望まれるコンテンツ１２２としてクライアント・アプリケーション１１０ａへ送ることができる。クライアント・アプリケーション１１０ａが、キャッシング・サーバー１０４ａからのコンテンツを続いて要求し、そのコンテンツが、予測された将来のコンテンツであった場合、キャッシング・サーバー１０４ａは、予測された将来のコンテンツを含むキャッシュ・コンテンツ１１４ａを、クライアント・アプリケーション１１０ａへ送ることができる。クライアント・アプリケーション１１０ｂ〜１１０ｄは、キャッシング・サーバー１０４ａおよび１０４ｂの一方または双方と、同様にインタラクションすることができ、予測される将来のコンテンツをキャッシング・サーバー１０４ａおよび１０４ｂにおいてキャッシュすることにより、従来技術の場合よりも効率的な様式でオリジン・サーバー１０２のコンテンツを受け取ることができる。
【００３４】
[0045]  上述のように、実施形態において、応答を速くするために、クライアント・アプリケーションは、将来アクセスされるコンテンツを予測することができ、予測されたコンテンツをキャッシング・サーバーでキャッシュすることができる。実施形態では、図１のクライアント・アプリケーション１１０ａ〜１１０ｄは、将来アクセスされるコンテンツを予測することができ、その予測された将来のコンテンツを、キャッシュされるように、キャッシング・サーバー１０４ａおよび１０４ｂへ示すことができる。例えば、図２は、例示の実施形態に従ったＣＤＮ２００のブロック図を示す。図２に示すように、ＣＤＮ２００は、オリジン・サーバー１０２と、キャッシング・サーバー２０２と、ユーザー・デバイス１０６ａとを含む。キャッシング・サーバー２０２は、図１のキャッシング・サーバー１０４ａおよび１０４ｂの１つの例である。図２に示すように、ユーザー・デバイス１０６ａはクライアント・アプリケーション２０４を含み、クライアント・アプリケーション２０４は追加のコンテンツ予測手段２０８を含む。クライアント・アプリケーション２０４は、図１のクライアント・アプリケーション１１０ａ〜１１０ｄの１つの例である。図２において、クライアント・アプリケーション２０４は、後に要求され得るコンテンツを予測するように構成され、予測されたコンテンツはキャッシング・サーバー２０２により取得されてキャッシュされる。
【００３５】
[0046]  以下で、図２を、図３と関連させて説明する。図３は、例示の実施形態に従った、クライアント・アプリケーションにより将来要求され得るコンテンツをキャッシング・サーバーにキャッシュさせるためのプロセスを提供するフローチャート３００を示す。実施形態では、フローチャート３００は、図２のキャッシング・サーバー２０２により行うことができる。１つの実施形態では、フローチャート３００は、キャッシュ・ストレージを共有する複数のキャッシング・サーバーが共同で行うことができる。更に、フローチャート３００におけるオリジン・サーバー１０２に関する通信は、１つのオリジン・サーバーまたは複数のオリジン・サーバーを用いて行うことができる。更なる構造および動作の実施形態は、フローチャート３００およびキャッシング・サーバー２０２に関する後の記載に基づいて、当業者には明らかとなる。
【００３６】
[0047]  フローチャート３００はステップ３０２で開始する。ステップ３０２において、ユーザー・デバイスのクライアント・アプリケーションから、望まれるコンテンツに関するリクエストを受け取る。リクエストは、望まれるコンテンツと関連しておりクライアント・アプリケーションにより続いて要求され得る追加のコンテンツを示す。例えば、図２に示すように、キャッシング・サーバー２０２は、ユーザー・デバイス１０６ａのクライアント・アプリケーション２０４から、第１の望まれるコンテンツのリクエスト２１０を受け取ることができる。第１の望まれるコンテンツのリクエスト２１０は、望まれるコンテンツに関するリクエストであり、望まれるコンテンツは、例えば、クライアント・アプリケーション２０４を用いてユーザーが見ているマップのマップ・タイル、クライアント・アプリケーション２０４を用いてユーザーが見ている一連のイメージ中のイメージ、クライアント・アプリケーション２０４を用いてユーザーが見ているビデオ・オブジェクト（例えば、ビデオ・ファイル）のビデオ・フレーム、クライアント・アプリケーション２０４を用いてユーザーが再生しているオーディオ・オブジェクト（例えば、オーディオ・ファイル）のオーディオ・フレーム、クライアント・アプリケーション２０４を用いてユーザーが見ているウェブ・ページのコンテンツ・アイテム、および／またはここの何れかの場所で記載されている又は知られている他のコンテンツなどである。
【００３７】
[0048]  更に、第１の望まれるコンテンツのリクエスト２１０は、望まれるコンテンツと関連しておりクライアント・アプリケーション２０４により続いて要求され得る追加のコンテンツのインジケーションを含む。実施形態では、クライアント・アプリケーション２０４の追加のコンテンツ予測手段２０８は、望まれるコンテンツと関連しておりクライアント・アプリケーション２０４により続いて要求され得る追加のコンテンツを、予測する。例えば、予測される追加のコンテンツは、ユーザーにより見られているマップにおいてのユーザーにより後続して見られると予測される１以上の追加のマップ・タイル、ユーザーにより見られている一連のイメージにおいてのユーザーにより後続して見られると予測される１以上の追加のイメージ、ユーザーにより見られているビデオ・オブジェクトにおいてのユーザーにより後続して見られると予測される１以上の追加のビデオ・フレーム、ユーザーにより再生されているオーディオ・オブジェクトにおいてのユーザーにより後続して再生されると予測される１以上の追加のオーディオ・フレーム、ウェブ・ページにより参照されており後続して見られると予測される１以上の追加のコンテンツ・アイテムなどであり得る。予測される追加のコンテンツのインジケーションは、クライアント・アプリケーション２０４による第１の望まれるコンテンツのリクエスト２１０に含まれる。
【００３８】
[0049]  第１の望まれるコンテンツのリクエスト２１０（およびそれに対する応答（１以上））は、クライアント・アプリケーション２０４とキャッシング・サーバー２０２との間での１以上の通信接続（例えば、ＴＣＰ接続）に含まれ得ることに、留意されたい。クライアント・アプリケーション２０４とキャッシング・サーバー２０２との間で任意の数の接続を形成することができ、各接続は、望まれるコンテンツに関するリクエストを含むことができ、且つ／又は１以上の予測される追加のコンテンツ・アイテムを示すことができる。幾つかの場合、望まれるコンテンツは既にキャッシング・サーバー２０２でキャッシュされているが、予測される将来のコンテンツはまだキャッシュされていない。そのような場合、予測される将来のコンテンツのみを、キャッシング・サーバー２０２はオリジン・サーバーに要求する（即ち、キャッシング・サーバー２０２で既にキャッシュされている望まれるコンテンツを、オリジン・サーバーへ要求する必要はない）。
【００３９】
[0050]  図３に戻ると、ステップ３０４において、少なくとも、示された追加のコンテンツに関するリクエストを、オリジン・サーバーへ送る。例えば、図２に示すように、キャッシング・サーバー２０２は、第１の望まれるコンテンツのリクエスト２１０において示された追加のコンテンツを示すサーバー・リクエスト２１２を、送ることができる。サーバー・リクエスト２１２は、オリジン・サーバー１０２により受け取られる。望まれるコンテンツがまだキャッシング・サーバー２０２によりキャッシュされていない場合、キャッシング・サーバー２０２は、オプションとして、オリジン・サーバー１０２へ、第１の望まれるコンテンツのリクエスト２１０において示される望まれるコンテンツに関するリクエストを、送ることができる。実施形態では、サーバー・リクエスト２１２は、予測された追加のコンテンツに関するリクエストと、望まれるコンテンツに関するリクエストとの双方を、含むことができる。
【００４０】
[0051]  ステップ３０６において、オリジン・サーバーから、追加のコンテンツを受け取る。例えば、サーバー・リクエスト２１２に応じて、オリジン・サーバー１０２は、要求された場合には、望まれるコンテンツを含むサーバー応答２１４を送ることができる。例えば、オリジン・サーバー１０２は、オリジン・サーバー１０２と関連するストレージ内の、望まれるコンテンツへアクセスすることができる。キャッシング・サーバー２０２は、オリジン・サーバー１０２からサーバー応答２１４を受け取る。更に、オリジン・サーバー１０２は、オリジン・サーバー１０２と関連するストレージ内の、予測された追加のコンテンツへアクセスすることができ、その予測された追加のコンテンツを、サーバー応答２１４または別個の応答で、キャッシング・サーバー２０２へ送ることができる。
【００４１】
[0052]  ステップ３０８において、望まれるコンテンツは、ユーザー・デバイスにおけるクライアント・アプリケーションへ送られる。例えば、図２に示すように、キャッシング・サーバー２０２は、第１の望まれるコンテンツの応答２１６で、望まれるコンテンツをクライアント・アプリケーション２０４へ送ることができる。
【００４２】
[0053]  ステップ３１０において、追加のコンテンツがキャッシュされる。例えば、図２に示すように、キャッシング・サーバー２０２はストレージ２２２を含むことができ、オリジン・サーバー１０２からサーバー応答２１４で受け取った予測される追加のコンテンツは、キャッシュ・コンテンツ２２４としてストレージ２２２にキャッシュすることができる。ストレージ２２２は、コンテンツをキャッシュするための１以上の任意のタイプのストレージ機構を含むことができ、ストレージ機構は、磁気ディスク（例えば、ハード・ディスク・ドライブ内）、光ディスク（例えば、光ディスク・ドライブ内）、磁気テープ（例えば、テープ・ドライブ内）、ＲＡＭ（ランダム・アクセス・メモリ）デバイスなどのようなメモリ・デバイス、および／または任意の他の適切なタイプのストレージ機構などを含む。更に、実施形態では、ストレージ２２２は、複数のキャッシング・サーバーで共有されることができる。
【００４３】
[0054]  フローチャート３００によると、クライアント・アプリケーションは、ＣＤＮへ、将来望まれ得る追加のコンテンツの予測を知らせており、予測された追加のコンテンツは、ＣＤＮ（例えば、ＣＤＮのキャッシング・サーバー４０２）にプリキャッシングされる。このプリキャッシングは、実際に続いて要求されるコンテンツのキャッシュ・ヒット率を増加させ、それにより、エンド・ユーザ・エクスペリエンス全体を改善する。全てのプリキャッシングされたコンテンツが必ずしも使用されるわけではなく、オプションとして、プリキャッシング・リクエストは、優先度が、通常のＣＤＮコンテンツ・リクエストより下に設定され得ることに、留意されたい。そのような優先度設定の例示の実施形態は、後に更に説明する。プリキャッシングの利点は、スペアの容量がある場合に、それをより良く活用してユーザ・エクスペリエンス全体を改善することである。優先度設定（例えば、可能性インジケーター）の使用は、プリキャッシングの最適化を援助する。
【００４４】
[0055]  例えば、図４は、例示の実施形態に従った、以前にキャッシュしたコンテンツをクライアント・アプリケーションへ提供するためのプロセスを提供するフローチャート４００を示す。例えば、実施形態では、フローチャート４００は、図３のフローチャート３００に続くことができる。以下で、フローチャート４００を、図２と関連させて説明する。
【００４５】
[0056]  フローチャート４００はステップ４０２で開始する。ステップ４０２において、クライアント・アプリケーションから、追加のコンテンツに関するリクエストを含む第２のリクエストが受け取られる。例えば、図２に示すように、キャッシング・サーバー２０２は、ユーザー・デバイス１０６ａのクライアント・アプリケーション２０４から、第２の望まれるコンテンツのリクエスト２１８を受け取ることができる。第２の望まれるコンテンツのリクエスト２１８は、クライアント・アプリケーション２０４のためのコンテンツ（例えば、マップ・タイル、イメージ、ビデオ、オーディオ、ウェブ・ページなど）に関するリクエストであり、そのコンテンツは、クライアント・アプリケーション２０４により将来要求される可能性があると以前に予測されたものであり、且つ第１の望まれるコンテンツのリクエスト２１０（または他の以前の望まれるコンテンツのリクエスト）により示されたものである。
【００４６】
[0057]  ステップ４０４において、キャッシュされた追加のコンテンツは、ユーザー・デバイスにおけるクライアント・アプリケーションへ供給される。実施形態では、キャッシング・サーバー２０２は、第２の望まれるコンテンツのリクエスト２１８を分析して、その中で要求している何れかのコンテンツがキャッシング・サーバー２０２（例えば、ストレージ２２２内）で既にキャッシュされているかどうかを、判定することができる。例えば、実施形態では、キャッシング・サーバー２０２は、ストレージ２２２にキャッシュされたコンテンツへコンテンツ識別子（例えば、ハッシュ値などのような識別番号など）をマップする、キャッシュされたコンテンツのマップ（cached content map）または他のデータ構造へ、アクセスすることができる。キャッシング・サーバー２０２は、望まれるコンテンツに関しての第２の望まれるコンテンツのリクエスト２１８で受け取ったコンテンツ識別子と、キャッシュされたコンテンツのマップ内のコンテンツ識別子とを比較して、望まれるコンテンツが既にキャッシュされているかどうかを判定する。望まれるコンテンツに対してのコンテンツ識別子が、キャッシュされたコンテンツのマップ内で見つかった場合、その望まれるコンテンツは、キャッシング・サーバー２０２で既にキャッシュされている。そのような場合、キャッシング・サーバー２０２は、ストレージ２２２内のキャッシュされたコンテンツ（例えば、キャッシュ・コンテンツ２２４として）へアクセスすることができ、そのキャッシュされたコンテンツを、キャッシュ・コンテンツ応答２２０の送信で、クライアント・アプリケーション２０４へ供給することができる。
【００４７】
[0058]  第２の望まれるコンテンツのリクエスト２１８で示された望まれるコンテンツが、まだキャッシング・サーバー２０２でキャッシュされていない場合、フローチャート３００（図３）のステップ３０４および３０６と関連して先に述べたように、キャッシング・サーバー２０２は、オリジン・サーバー１０２へ、望まれるコンテンツを要求することができる。更に、第２の望まれるコンテンツのリクエスト２１８は、オプションとして、第１の望まれるコンテンツのリクエスト２１０の場合と同様の様式で、続いて望まれる可能性があると追加のコンテンツ予測手段２０８により予測された更なる追加のコンテンツを、示すことができる。そのような場合、キャッシング・サーバー２０２は、フローチャート３００のステップ３０４、３０６、および３１０と関連して先に述べた様式と同様に、オリジン・サーバー１０２へ、示された更なる追加のコンテンツを要求することができ、後続のコンテンツ・リクエストのために、その示された更なる追加のコンテンツをストレージ２２２にキャッシュすることができる。
【００４８】
[0059]  クライアント・アプリケーションおよびキャッシング・サーバーに関する例示の実施形態は、以下のサブセクションで説明する。
Ａ．  例示のクライアント・アプリケーションの実施形態
[0060]  上述のように、実施形態では、クライアント・アプリケーション（例えば、クライアント・アプリケーション２０４）は、応答を速くするために、将来アクセスされるコンテンツを予測することができ、予測されたコンテンツをキャッシング・サーバーでキャッシュすることができる。例えば、図５は、例示の実施形態に従った、クライアント・アプリケーションのための、望まれるコンテンツを要求して受け取るため、および将来に要求され得るコンテンツを、キャッシュするために示すためのプロセスを提供するフローチャート５００を示す。実施形態では、フローチャート５００は、図２のクライアント・アプリケーション２０４により行うことができる。フローチャート５００は、図６と関連させて説明する。図６は、クライアント・アプリケーション２０４の例示の実施形態を含むユーザー・デバイス６００のブロック図を示す。図６に示すように、クライアント・アプリケーション２０４は、通信インターフェース６０２および追加のコンテンツ予測手段２０８を含み、通信インターフェース６０２は、リクエスト・フォーマッター６０４を含む。更なる構造および動作の実施形態は、フローチャート５００および図６のクライアント・アプリケーション２０４に関する後の記載に基づいて、当業者には明らかとなる。
【００４９】
[0061]  フローチャート５００はステップ５０２で開始する。ステップ５０２において、望まれるコンテンツに関する第１リクエストが作成され、第１リクエストは、望まれるコンテンツと関連しておりクライアント・アプリケーションにより続いて要求され得る追加のコンテンツを示す。例えば、図６に示すように、クライアント・アプリケーション２０４は、第１の望まれるコンテンツのリクエスト２１０を作成することができ、これは、上述のように、望まれるコンテンツに関するリクエストである。更に、上述のように、第１の望まれるコンテンツのリクエスト２１０は、望まれるコンテンツと関連しておりクライアント・アプリケーション２０４により続いて要求され得る追加のコンテンツのインジケーションを含む。
【００５０】
[0062]  実施形態では、クライアント・アプリケーション２０４の追加のコンテンツ予測手段２０８が、望まれるコンテンツと関連しておりクライアント・アプリケーション２０４により続いて要求され得る追加のコンテンツを、予測する。例えば、図６に示すように、追加のコンテンツ予測手段２０８は、望まれるコンテンツのインジケーション６０６を受け取ることができる。望まれるコンテンツのインジケーション６０６は、クライアント・アプリケーション２０４の内部で作成すること、および／またはクライアント・アプリケーション２０４により提供されるユーザー・インターフェースへユーザーにより入力することができる。望まれるコンテンツのインジケーション６０６は、表示、再生、またはインタラクションされることが望まれるコンテンツを示す。例えば、望まれるコンテンツのインジケーション６０６は、マップ・タイル、ビデオ・フレーム、オーディオ・フレーム、イメージ、ウェブ・ページなどのうちの１以上のものを、含むことができる（例えば、ＵＲＬ、ファイル名などによる）。追加のコンテンツ予測手段２０８は、望まれるコンテンツのインジケーション６０６により示される望まれるコンテンツに基づいて追加のコンテンツを予測することができ、予測された追加のコンテンツのインジケーション６０８として、予測された追加のコンテンツを出力することができる。
【００５１】
[0063]  例えば、望まれるコンテンツのインジケーション６０６が、望まれるコンテンツとして、見られているマップのマップ・タイルを示す場合、追加のコンテンツ予測手段２０８は、マップにおけるユーザーにより続いて見られる１以上の追加のマップ・タイルを、予測することができる。そのような場合、追加のコンテンツ予測手段２０８は、予測される追加のコンテンツのインジケーション６０８を作成して１以上のマップ・タイルを示すことができ、１以上のマップ・タイルは、示されたマップ・タイルと空間的に隣接するマップ・タイル、示されたマップ・タイル内のマップ・タイル（ズーム・イン）、示されたマップ・タイルを含むマップ・タイル（ズーム・アウト）、および／またはマップにおけるユーザーにより続いて見られそうな他のマップ・タイルである。
【００５２】
[0064]  別の例では、望まれるコンテンツのインジケーション６０６が、望まれるコンテンツとして、一連のイメージにおけるイメージを示す場合、追加のコンテンツ予測手段２０８は、一連のイメージにおけるユーザーにより続いて見られる１以上の追加のイメージを、予測することができ、追加のイメージは、一連のイメージにおける、示されたイメージに隣接する（時間的または空間的に）１以上の後続するイメージ（一連のイメージにおける残りの全てを含む）、示されたイメージの一部であるイメージ（例えば、ズーム・イン・イメージ）、示されたイメージ全体を含むイメージ（例えば、ズーム・アウト・イメージ）などである。
【００５３】
[0065]  別の例では、望まれるコンテンツのインジケーション６０６が、望まれるコンテンツとして、ビデオのビデオ・フレームを示す場合、追加のコンテンツ予測手段２０８は、ビデオにおけるユーザーにより続いて見られる１以上の追加のビデオ・フレームを、予測することができ、追加のビデオ・フレームは、ビデオにおける１以上の後続するビデオ・フレーム（ビデオの残りの全てを含む）などである。
【００５４】
[0066]  更に別の例では、望まれるコンテンツのインジケーション６０６が、望まれるコンテンツとして、オーディオのオーディオ・フレームを示す場合、追加のコンテンツ予測手段２０８は、オーディオにおけるユーザーにより続いて再生される１以上の追加のオーディオ・フレームを、予測することができ、追加のオーディオ・フレームは、オーディオにおける１以上の後続するオーディオ・フレーム（オーディオの残りの全てを含む）などである。
【００５５】
[0067]  更に別の例では、望まれるコンテンツのインジケーション６０６が、望まれるコンテンツとして、ウェブ・ページを示す場合、追加のコンテンツ予測手段２０８は、ユーザーにより続いて見られる１以上の追加のウェブ・ページまたは他のウェブ・オブジェクト（例えば、イメージ、ビデオ、オーディオなど）を、予測することができ、追加のウェブ・ページまたは他のウェブ・オブジェクトは、示されたウェブ・ページ内でリンクされる１以上のウェブ・ページまたは他のウェブ・オブジェクト、示されたウェブ・ページを含むウェブ・サイトの１以上のウェブ・ページなどである。
【００５６】
[0068]  図６に示されるように、通信インターフェース６０２は、望まれるコンテンツのインジケーション６０６と、予測された追加のコンテンツのインジケーション６０８とを受け取る。実施形態では、リクエスト・フォーマッター６０４は、望まれるコンテンツのインジケーション６０６により示される、望まれるコンテンツと、予測された追加のコンテンツのインジケーション６０８により示される、予測される追加のコンテンツとを要求するために、１以上のリクエストを作成する。通信インターフェース６０２は、リクエスト・フォーマッター６０４により作成されたリクエスト（１以上）を、第１の望まれるコンテンツのリクエスト２１０としてクライアント・アプリケーション２０４から送るように、構成される。実施形態では、リクエスト・フォーマッター６０４は、リクエスト（１以上）が、特定の通信技術で望まれる任意のフォーマットを有するように、作成することができる。
【００５７】
[0069]  例えば、１つの実施形態では、リクエスト・フォーマッター６０４は、ＨＴＴＰ（ハイパーテキスト・トランスファー・プロトコル）リクエスト・メッセージの形のリクエストを作成することができる。そのような実施形態では、ＨＴＴＰリクエスト・メッセージは、望まれるコンテンツを要求するように構成されることができ、予測される追加のコンテンツは、ＨＴＴＰリクエスト・メッセージにおいて任意の適切な様式で示すことができ、例えば、ヘッダーにおいて示されるようにできる。例えば、例示のＨＴＴＰリクエスト・メッセージの一部を以下に示す。
ＧＥＴ  ／ｉｍａｇｅｓ／ｌｏｇｏ．ｐｎｇ  ＨＴＴＰ／１．１
・・・
ＨＩＮＴＳ：＜ＵＲＬ１＞＝２０；＜ＵＲＬ２＞＝６０
・・・
この例では、ＨＴＴＰリクエスト・メッセージは、望まれるコンテンツとしてウェブ・オブジェクト「／ｉｍａｇｅｓ／ｌｏｇｏ．ｐｎｇ」をサーバーへ要求するリクエスト・ラインを含む。更に、例示のＨＴＴＰリクエスト・メッセージはＨＴＴＰヘッダー「ＨＩＮＴＳ」を含み、これは、予測される追加のコンテンツとして、２つのＵＲＬ、即ち、ＵＲＬ１およびＵＲＬ２を示す。この例では、「ＨＩＮＴＳ」において、「ＵＲＬ１」および「ＵＲＬ２」のそれぞれは、対応する予測された追加のコンテンツに対する完全なＵＲＬ（例えば、ｈｔｔｐ：／／ｔｖ．ｍｓｎ．ｃｏｍ／ｔｖ／ａｒｔｉｃｌｅ．ａｓｐｘ？ｎｅｗｓ＝ｘｙｚ”など）と、置換され得る。上記の例示のヘッダーでは２つのＵＲＬが示されているが、予測される追加のコンテンツの任意の数のアイテムを、このようにしてＵＲＬにより又は他の識別子により、ヘッダー内で示すことができる。
【００５８】
[0070]  従って、実施形態では、リクエスト・フォーマッター６０４は、望まれるコンテンツを示す（例えば、「ＧＥＴ」命令を用いる）、およびヘッダー（例えば、「ＨＩＮＴＳ」または予測される追加のコンテンツに対しての他の所定タイプのヘッダー）において予測される追加のコンテンツを示す、ＨＴＴＰリクエスト・メッセージを作成することができる。別の実施形態では、望まれるコンテンツと予測される追加のコンテンツとは、リクエスト・フォーマッター６０４により、リクエストにおいて別の方法で示すことができる。上記の例ではＨＴＴＰリクエスト・メッセージにおいて１つの「ＨＩＮＴＳ」ヘッダーが現れ得るが、複数の「ＨＩＮＴＳ」ヘッダーが現れ得ることに、留意されたい。更に、実施形態では、ＨＴＴＰリクエスト・メッセージは、何れの望まれるコンテンツも示さずに、予測された追加のコンテンツを示すことができる（即ち、予測された追加のコンテンツのみが指定／要求される）。そのようなＨＴＴＰリクエスト・メッセージでは、「ＧＥＴ」命令は、予測された追加のコンテンツを指定するために用いることができ、「ＨＩＮＴＳ」または他のヘッダーは、使わないようにすることができ、また、望まれたコンテンツはキャッシュされるがクライアントへはまだ返されていないことをキャッシング・サーバーに示すためのヘッダー（例えば、「ＣＡＣＨＥＯＮＬＹ」ヘッダー）が現れるようにできる。
【００５９】
[0071]  通信インターフェース６０２は、第１の望まれるコンテンツのリクエスト２１０をキャッシング・サーバーへ送ることができる。実施形態では、通信インターフェース６０２は、ＨＴＴＰメッセージで第１の望まれるコンテンツのリクエスト２１０を送るように構成すること、および／または当業者に知られているであろう別の方法でリクエストを通信するように構成することができる。
【００６０】
[0072]  図５に戻って参照すると、ステップ５０４において、望まれるコンテンツに関する第１リクエストに応じてその望まれるコンテンツをオリジン・サーバーから取得したキャッシング・サーバーから、望まれるコンテンツが受け取られる。例えば、図６に示すように、通信インターフェース６０２は、第１の望まれるコンテンツのリクエスト２１０に応じての第１の望まれるコンテンツの応答２１６を、キャッシング・サーバーから受け取ることができる。第１の望まれるコンテンツの応答２１６は、リクエスト２１０で要求された、望まれるコンテンツを含む。クライアント・アプリケーション２０４は、受け取った望まれたコンテンツを表示すること、再生すること、および／または受け取った望まれたコンテンツとユーザー・デバイス６００のユーザーがインタラクションできるように、することができる。
【００６１】
[0073]  ステップ５０６において、追加のコンテンツのための第２リクエストが作成される。例えば、図６に示すように、クライアント・アプリケーション２０４は、第２の望まれるコンテンツのリクエスト２１８を作成することができる。上述のように、第２の望まれるコンテンツのリクエスト２１８は、クライアント・アプリケーション２０４のためのコンテンツ（例えば、マップ・タイル、イメージ、ビデオ、オーディオ、ウェブ・ページなど）に関するリクエストであり、そのコンテンツは、クライアント・アプリケーション２０４により将来要求される可能性があると以前に予測されたものであり、且つ第１の望まれるコンテンツのリクエスト２１０により、そのように示されたものである。第２の望まれるコンテンツのリクエスト２１８は、第１の望まれるコンテンツのリクエスト２１０と同様に作成することができる。例えば、追加のコンテンツ予測手段２０８は、第２の望まれるコンテンツのインジケーション６０６を受け取ることができ、これは、表示、再生、またはインタラクションすることが望まれているコンテンツを示す。追加のコンテンツ予測手段２０８は、オプションとして、第２の望まれるコンテンツのインジケーション６０６により示される望まれるコンテンツに基づいて、追加のコンテンツを予測することができ、その予測した追加のコンテンツを、第２の予測した追加のコンテンツのインジケーション６０８として出力することができる。通信インターフェース６０２は、第２の望まれるコンテンツのインジケーション６０６を受け取り、オプションとして、第２の予測された追加のコンテンツのインジケーション６０８を受け取る。実施形態では、リクエスト・フォーマッター６０４は、第２の望まれるコンテンツに関するリクエストを作成し、オプションとして、作成したリクエストに第２の予測された追加のコンテンツを含める。通信インターフェース６０２は、リクエストを、第２の望まれるコンテンツのリクエスト２１８としてクライアント・アプリケーション２０４から送るように、構成される。
【００６２】
[0074]  ステップ５０８において、望まれるコンテンツに関するリクエストに応じてオリジン・サーバーから追加のコンテンツを取得してその追加のコンテンツをキャッシュしたキャッシング・サーバーから、追加のコンテンツを受け取る。例えば、図６に示すように、通信インターフェース６０２は、キャッシュされたコンテンツの応答２２０を受け取ることができ、応答２２０は、第２の望まれるコンテンツのリクエスト２１８で示された望まれるコンテンツとして、キャッシング・サーバーからのキャッシュされたコンテンツを含む。キャッシング・サーバーは、望まれるコンテンツをオリジン・サーバーから以前に獲得し、後に要求され得るという場合には、その望まれるコンテンツをキャッシュしている。
【００６３】
[0075]  上述のように、キャッシュするためのコンテンツに関するリクエストは、オプションとして、優先度が、通常のＣＤＮコンテンツ・リクエストより下に設定され得る。このように、実際に要求されているコンテンツは、単にキャッシュすることを目的として要求されているコンテンツの前に、要求することができる。また、キャッシュすることを目的として要求されており実際に要求される可能性が高いコンテンツは、キャッシュすることを目的として要求されており実際に要求される可能性が低いコンテンツの前に、キャッシュすることができる。
【００６４】
[0076]  例えば、図７は、例示の実施形態に従った、追加のコンテンツ優先度設定手段７０２を含む追加のコンテンツ予測手段２０８のブロック図を示す。追加のコンテンツ優先度設定手段７０２は、予測された追加のコンテンツを分析して、それがクライアント・アプリケーションにより実際に続いて要求される可能性の大きさを判定するように、構成される。例えば、実施形態では、追加のコンテンツ優先度設定手段７０２は、図８に示すステップ８０２に従って動作することができる。ステップ８０２において、追加のコンテンツがクライアント・アプリケーションにより続いて要求され得る可能性を示す可能性インジケーションが、作成される。実施形態では、それぞれの予測された追加のコンテンツ・アイテムに対して、追加のコンテンツ優先度設定手段７０２は、追加のコンテンツがクライアント・アプリケーション２０４により続いて要求され得る可能性を示す対応する可能性インジケーションを、作成することができる。作成された可能性インジケーションは、対応する予測された追加のコンテンツ・アイテムと関連させることができ、キャッシング・サーバーへ送られる望まれるコンテンツのリクエストに含ませることができる。キャッシング・サーバーは、可能性インジケーションを用いて、予測された追加のコンテンツ・アイテムのキャッシングの優先度を、他のコンテンツと相対して設定することができる。更に、キャッシング・サーバーは、予測されたコンテンツを要求するときに、オリジン・サーバーへ可能性インジケーションを送ることができ、それにより、オリジン・サーバーは、キャッシング・サーバーへの予測されたコンテンツの提供の優先度を設定することができる。
【００６５】
[0077]  追加のコンテンツ優先度設定手段７０２は、見られているコンテンツおよび／またはユーザーの挙動に基づくことを含めての、任意の様式で可能性インジケーションを作成することができる。例えば、可能性インジケーションは、様々なコンテンツ・タイプに対して異なって作成することができる（例えば、マップ・タイルなどと比較して、ビデオ・フレームへ高い可能性インジケーションの値を割り当てる）。別の実施形態では、追加のコンテンツ優先度設定手段７０２により、可能性インジケーションは、実際に要求されたコンテンツに対する近接性（例えば、時間および／または空間において）に基づいて、予測された追加のコンテンツに対して異なって作成することができる。例えば、マップの例では、現在見られているマップ・タイルに隣接するマップ・タイルには、その見られているマップ・タイルとの間に１以上のマップ・タイルが介在して離れているマップ・タイルと比べて、大きい値の可能性インジケーションを割り当てることができる。ビデオ・ストリームのすぐ次のビデオ・フレームには、ビデオ・ストリームの更に後ろのビデオ・フレーム（例えば、時間的に後でありビデオ・フレーム内に位置するビデオ・フレーム）と比べて、比較的高い値を有する可能性インジケーションを割り当てることができる。イメージ・ストリームのイメージおよび／またはオーディオ・ストリームのオーディオ・フレームは、実際のインプリメントに応じて、同様に及び／又は異なって扱うことができる。ウェブ・ページでは、ウェブ・ページの最上部の近くに位置するコンテンツ・アイテム（例えば、ＵＲＬ）へ、ウェブ・ページの最下部の近くに位置するコンテンツ・アイテムと比べて、高い値の可能性インジケーションを割り当てることができる。実施形態では、可能性インジケーションは、特定のインプリメントに関して望まれるように、様々な方法で作成することができ、任意の適切な値および値の範囲（例えば、数的な範囲、テキスト的な範囲（例えば、「高」、「中」、「低」など）など）を有することができる。ユーザーの挙動に関しては、ユーザーがマップで特定の方向にパンしているとき、その方向のマップ・タイルが将来に要求される可能性は、他のタイルの可能性よりも高く、従って、大きい可能性インジケーションを割り当てることができる。ユーザーがビデオまたはオーディオを早送りするとき、「次」のフレームは複数フレーム先であり得、従って、ストリームにおける複数フレーム先のフレームへ、より近いところにあるフレームと比べて、比較的高い値を有する可能性インジケーションを割り当てることができる。
【００６６】
[0078]  例えば、先に示した例示のＨＴＴＰメッセージでは、２０という値を有する可能性インジケーションがＵＲＬ１に対して作成され、６０という値を有する可能性インジケーションがＵＲＬ２に対して作成されている。そのような例では、可能性インジケーションは、１〜１００の範囲の値を有することができ、可能性の値が低いことは、対応する予測された追加のコンテンツ・アイテムが、クライアント・アプリケーションにより将来に実際に要求される可能性が低いことを意味し、可能性の値が高いことは、対応する予測された追加のコンテンツ・アイテムが、クライアント・アプリケーションにより将来に実際に要求される可能性が高いことを意味する。従って、この例では、ＵＲＬ２が、ＵＲＬ１と比べて、クライアント・アプリケーションにより将来に要求される可能性が高く、従って、ＵＲＬ１の前にキャッシュされ得る。
【００６７】
Ｂ．  例示のキャッシング・サーバーの実施形態
[0079]  図９は、例示の実施形態に従った、キャッシング・サーバー９０２のブロック図を示す。キャッシング・サーバー９０２は、図２に示すキャッシング・サーバー２０２の例である。図２に示すように、キャッシング・サーバー９０２は、コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、コンテンツ・プロバイダー・モジュール９０８、およびストレージ２２２を含む。キャッシング・サーバー９０２は、様々な方法で、予測された将来のコンテンツをプリキャッシングすることができる。例えば、キャッシング・サーバー９０２は、実施形態において、フローチャート３００および４００を行うことができる。
【００６８】
[0080]  例えば、コンテンツ・リクエスト・パーサー９０６はフローチャート３００のステップ３０２を行うことができ、そのステップで、望まれるコンテンツに関するリクエストが、ユーザー・デバイスのクライアント・アプリケーションから受け取られ、そのリクエストは、望まれるコンテンツと関連しておりクライアント・アプリケーションにより続いて要求され得る追加のコンテンツを、示す。コンテンツ・リクエスト・パーサー９０６は、第１の望まれるコンテンツのリクエスト２１０を受け取って解析して、何れの望まれるコンテンツも何れの予測された追加のコンテンツも、識別することができる。コンテンツ・リクエスト・パーサー９０６は、第１の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１２を、コンテンツ取得モジュール９０４へ送る。
【００６９】
[0081]  コンテンツ取得モジュール９０４はフローチャート３００のステップ３０４を行うことができ、そのステップで、示された追加のコンテンツに関するリクエストがオリジン・サーバーへ送られる。図９に示すように、コンテンツ取得モジュール９０４は、サーバー・リクエスト２１２をオリジン・サーバーへ送ることができ、これは、予測された追加のコンテンツを示し、また、望まれるコンテンツを示すことができる（既にキャッシュされていない場合）。コンテンツ取得モジュール９０４は、予測された追加のコンテンツに関するリクエストと望まれるコンテンツに関するリクエストとの双方をサーバー・リクエスト２１２に含めること、またはそれらを別個の通信で送ることができる。
【００７０】
[0082]  コンテンツ取得モジュール９０４はフローチャート３００のステップ３０６を行うことができ、そのステップで、望まれるコンテンツおよび追加のコンテンツがオリジン・サーバーから取得される。コンテンツ取得モジュール９０４は、オリジン・サーバーから、望まれるコンテンツ（要求された場合）と予測された追加のコンテンツとを含むサーバー応答２１４を受け取ること、または望まれるコンテンツと予測された追加のコンテンツとを別個の通信で受け取ることができる。
【００７１】
[0083]  コンテンツ・プロバイダー・モジュール９０８はフローチャート３００のステップ３０８を行うことができ、そのステップで、望まれるコンテンツがユーザー・デバイスのクライアント・アプリケーションへ送られる。図９に示すように、コンテンツ取得モジュール９０４は、取得した望まれるコンテンツ９１４を送ることができ、これは、オリジン・サーバーからサーバー応答２１４で取得した望まれるコンテンツを含む。コンテンツ・プロバイダー・モジュール９０８は、取得した望まれるコンテンツ９１４を受け取ることができ、望まれるコンテンツを、第１の望まれるコンテンツの応答２１６でクライアント・アプリケーションへ送ることができる。
【００７２】
[0084]  コンテンツ取得モジュール９０４はフローチャート３００のステップ３１０を行うことができ、そのステップで、追加のコンテンツがキャッシュされる。図９に示すように、コンテンツ取得モジュール９０４は、予測された追加のコンテンツを、キャッシュ・コンテンツ２２４としてストレージ２２２にキャッシュする。
【００７３】
[0085]  コンテンツ・リクエスト・パーサー９０６は、フローチャート４００（図４）のステップ４０２を行うことができ、そのステップで、クライアント・アプリケーションから、追加のコンテンツに関するリクエストを含む第２のリクエストが受け取られる。図９に示すように、コンテンツ・リクエスト・パーサー９０６は、クライアント・アプリケーションから、第２の望まれるコンテンツのリクエスト２１８を、受け取ることができる。コンテンツ・リクエスト・パーサー９０６は、第２の望まれるコンテンツのリクエスト２１８を受け取って解析して、何れの望まれるコンテンツも何れの予測された追加のコンテンツも、識別することができる。コンテンツ・リクエスト・パーサー９０６は、第２の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１６を、コンテンツ取得モジュール９０４へ送る。図９の例では、第２の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１６は、第１の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１２における予測された追加のコンテンツを、望まれるコンテンツとして含む。
【００７４】
[0086]  コンテンツ取得モジュール９０４およびコンテンツ・プロバイダー・モジュール９０８は、フローチャート４００のステップ４０４を行うことができ、そのステップで、キャッシュされた追加のコンテンツがユーザー・デバイスのクライアント・アプリケーションへ供給される。コンテンツ取得モジュール９０４は、第２の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１６を分析して、この中で要求された何れかのコンテンツがストレージ２２２へ既にキャッシュされているかどうかを、判定することができる。例えば、実施形態では、コンテンツ取得モジュール９０４は、ストレージ２２２にキャッシュされたコンテンツへコンテンツ識別子をマップする、キャッシュされたコンテンツのマップまたは他のデータ構造へ、アクセスすることができる。コンテンツ取得モジュール９０４が、望まれるコンテンツがストレージ２２２へ既にキャッシュされていると判定した場合、コンテンツ取得モジュール９０４は、ストレージ２２２のキャッシュされたコンテンツ（例えば、キャッシュ・コンテンツ２２４として）へアクセスすることができ、キャッシュされたコンテンツをキャッシュ・コンテンツ９１８としてコンテンツ・プロバイダー・モジュール９０８へ提供することができる。
【００７５】
[0087]  第２の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１６において示される望まれるコンテンツが、まだストレージ２２２へキャッシュされていないと判定した場合、上述のように、コンテンツ取得モジュール９０４は、その望まれるコンテンツをオリジン・サーバーへ要求することができる。更に、第２の識別された望まれるコンテンツおよび予測された追加のコンテンツ９１６は、オプションとして、後に要求されると予測された更なる追加のコンテンツを示すことができる。そのような場合、上述のように、コンテンツ取得モジュール９０４は、示された更なる追加のコンテンツをオリジン・サーバーへ要求することができ、後のリクエストのために、示された更なる追加のコンテンツをストレージ２２２にキャッシュすることができる。
【００７６】
[0088]  コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、およびコンテンツ・プロバイダー・モジュール９０８は、ＨＴＴＰメッセージなどを含めての当業者には知られている任意の適切な通信プロトコルおよびフォーマットに従って、リクエストを作成するように及び応答を受け取るように構成できることに、留意されたい。
【００７７】
[0089]  更に、上述のように、キャッシュするためのコンテンツに関するリクエストは、オプションとして、通常のＣＤＮコンテンツ・リクエストと相対して優先度を設定することができる。例えば、図１０は、例示の実施形態に従った、リクエスト優先度設定手段１００２を含む図９のコンテンツ取得モジュール９０４のブロック図を示す。リクエスト優先度設定手段１００２は、キャッシュするためのコンテンツに関するリクエストの優先度を設定するように構成される。例えば、実施形態では、リクエスト優先度設定手段１００２は、図１１に示すステップ１１０２に従って動作することができる。ステップ１１０２において、オリジン・サーバーへの、示された追加のコンテンツに関するリクエストの送信は、そのリクエストで受け取られた可能性インジケーションに基づいて優先度が設定される。例えば、実施形態では、予測された追加のコンテンツ・アイテムのそれぞれに対して、リクエスト優先度設定手段１００２は、他のコンテンツと相対しての、予測された追加のコンテンツ・アイテムを要求することの優先度を、クライアント・アプリケーション２０４から受け取った対応する可能性インジケーションに基づいて、設定することができる。
【００７８】
[0090]  例えば、実施形態では、リクエスト優先度設定手段１００２は、予測された追加のコンテンツ（例えば、識別子による）および対応する可能性インジケーションをリストする優先度リストまたは他のデータ構造を、作成して維持することができる。リクエスト優先度設定手段１００２は、可能性インジケーションによりリストを順序付けすること、またはリストを構築することができ、それにより、コンテンツ取得モジュール９０４は、優先度が設定された様式で、可能性インジケーションに従って、予測された追加のコンテンツを要求する。予測された追加のコンテンツおよび可能性インジケーションは、１つのクライアント・アプリケーションに対して、または複数のクライアント・アプリケーションに対して、リストすることができる。従って、このようにして、コンテンツ取得モジュール９０４は、１つのクライアント・アプリケーションに対して、または複数のクライアント・アプリケーションに対して、オリジン・サーバーへのリクエストの優先度を設定することができる。
【００７９】
[0091]  例えば、先に示した例示のＨＴＴＰメッセージに関しては、リクエスト優先度設定手段１００２は、ＵＲＬ１およびＵＲＬ２とそれらの対応する可能性インジケーションとを含む予測された追加のコンテンツのリストを、維持する（例えば、必要に応じて格納およびアップデートする）ことができる。ＵＲＬ２は６０という値の可能性インジケーションを有するので、ＵＲＬ２は、２０という値の可能性インジケーションを有するＵＲＬ１よりも、優先度が高く設定される。従って、この例では、コンテンツ取得モジュール９０４は、リクエスト優先度設定手段１００２により維持される優先度に従って、オリジン・サーバーからＵＲＬ１のコンテンツを取得する前に、オリジン・サーバーからＵＲＬ２のコンテンツを取得する。
【００８０】
[0092]  更に、実施形態では、コンテンツ取得モジュール９０４は、コンテンツに関するリクエストの優先度を設定するために、追加および／または代替の情報、例えば、使用可能なストレージ容量、使用可能なネットワーク容量、使用可能な処理（例えば、ＣＰＵ）能力などを、用いることができる。更に、実施形態では、キャッシング・サーバーは、オリジン・サーバーへ、予測された将来のコンテンツを要求するときに、可能性インジケーションを送ることができ、それにより、オリジン・サーバーは、他のコンテンツと相対しての、予測されたコンテンツをキャッシング・サーバーへ送信することの優先度を、設定することができる（例えば、予測された将来のコンテンツに関するリクエストの優先度を、直ちに望まれるコンテンツに関するリクエストより下に設定する）。従って、実施形態では、オリジン・サーバーは、可能性インジケーション（示すもの）および／または追加／代替の情報に基づいてキャッシング・サーバーへの予測されたコンテンツの送信の優先度を設定する、リクエスト優先度設定手段１００２と類似のリクエスト優先度設定手段を、含むことができる。
【００８１】
ＩＩＩ．  例示の計算デバイスの実施形態
[0093]  クライアント・アプリケーション１１０ａ〜１１０ｄ、クライアント・アプリケーション２０４、追加のコンテンツ予測手段２０８、通信インターフェース６０２、リクエスト・フォーマッター６０４、追加のコンテンツ優先度設定手段７０２、コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、コンテンツ・プロバイダー・モジュール９０８、リクエスト優先度設定手段１００２、フローチャート３００、フローチャート４００、フローチャート５００、ステップ８０２、およびステップ１１０２は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせでインプリメントすることができる。例えば、クライアント・アプリケーション１１０ａ〜１１０ｄ、クライアント・アプリケーション２０４、追加のコンテンツ予測手段２０８、通信インターフェース６０２、リクエスト・フォーマッター６０４、追加のコンテンツ優先度設定手段７０２、コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、コンテンツ・プロバイダー・モジュール９０８、リクエスト優先度設定手段１００２、フローチャート３００、フローチャート４００、フローチャート５００、ステップ８０２、および／またはステップ１１０２は、１以上のプロセッサーで実行されるように構成されたコンピューター・プログラム・コード／命令／ロジックとしてインプリメントすることができる。代替的に、クライアント・アプリケーション１１０ａ〜１１０ｄ、クライアント・アプリケーション２０４、追加のコンテンツ予測手段２０８、通信インターフェース６０２、リクエスト・フォーマッター６０４、追加のコンテンツ優先度設定手段７０２、コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、コンテンツ・プロバイダー・モジュール９０８、リクエスト優先度設定手段１００２、フローチャート３００、フローチャート４００、フローチャート５００、ステップ８０２、および／またはステップ１１０２は、ハードウェア・ロジック／電気回路としてインプリメントすることができる。例えば、実施形態において、クライアント・アプリケーション１１０ａ〜１１０ｄ、クライアント・アプリケーション２０４、追加のコンテンツ予測手段２０８、通信インターフェース６０２、リクエスト・フォーマッター６０４、追加のコンテンツ優先度設定手段７０２、コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、コンテンツ・プロバイダー・モジュール９０８、リクエスト優先度設定手段１００２、フローチャート３００、フローチャート４００、フローチャート５００、ステップ８０２、および／またはステップ１１０２のうちの１以上のものは、システム・オン・チップ（ＳｏＣ）で共にインプリメントすることができる。ＳｏＣは集積回路チップを含むことができ、集積回路チップは、その機能を実行するために、プロセッサー（例えば、マイクロコントローラー、マイクロプロセッサー、デジタル信号プロセッサー（ＤＳＰ）など）、メモリ、１以上の通信インターフェース、および／または更なる回路および／または埋め込まれたファームウェアのうちの１以上のものを含む。
【００８２】
[0094]  図１２は、本発明の実施形態をインプリメントすることができるコンピューター１２００の例示の実装を示す。例えば、オリジン・サーバー１０２、キャッシング・サーバー１０４ａおよび１０４ｂ、ユーザー・デバイス１０６ａ〜１０６ｄ、キャッシング・サーバー２０２、ユーザー・デバイス６００、およびキャッシング・サーバー９０２のそれぞれは、コンピューター１２００と類似でありコンピューター１２００の１以上のフィーチャーおよび／または代替のフィーチャーを含む１以上のコンピューター・システムにおいて、インプリメントすることができる。コンピューター１２００は、例えば、従来のパーソナル・コンピューター、モバイル・コンピューター、サーバー、またはワークステーションの形の汎用計算デバイスとすることができ、また、コンピューター１２００は、特定用途向け計算デバイスとすることもできる。ここで提供されるコンピューター１２００の説明は、例示のために提供されるものであり、限定することを意図していない。本発明の実施形態は、当業者には知られているであろう更なるタイプのコンピューター・システムで実施することもできる。
【００８３】
[0095]  図１２に示すように、コンピューター１２００は、１以上のプロセッサー１２０２、システム・メモリ１２０４、およびシステム・メモリ１２０４を含む様々なシステム・コンポーネントをプロセッサー１２０２へ結合するバス１２０６を含む。バス１２０６は、任意の幾つかのタイプのバス構造のうちの１以上のものを表し、それは、メモリ・バスまたはメモリ・コントローラー、周辺バス、アクセラレーテッド・グラフィックス・ポート、および任意の様々なバス構造を用いるプロセッサーまたはローカルのバスを含む。システム・メモリ１２０４は、リード・オンリー・メモリ（ＲＯＭ）１２０８およびランダム・アクセス・メモリ（ＲＡＭ）１２１０を含む。ベーシック入出力システム（ＢＩＯＳ）１２１２は、ＲＯＭ１２０８に格納される。
【００８４】
[0096]  コンピューター１２００はまた、ハード・ディスクに対しての読み出しおよび書き込みを行うハード・ディスク・ドライブ１２１４と、取り外し可能磁気ディスク１２１８に対しての読み出しおよび書き込みを行う磁気ディスク・ドライブ１２１６と、ＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、または他の光媒体などのような取り外し可能光ディスク１２２２に対しての読み出しおよび書き込みを行う光ディスク・ドライブ１２２０とのうちの１以上のドライブを有する。ハード・ディスク・ドライブ１２１４、磁気ディスク・ドライブ１２１６、および光ディスク・ドライブ１２２０は、それぞれ、ハード・ディスク・ドライブ・インターフェース１２２４、磁気ディスク・ドライブ・インターフェース１２２６、および光ドライブ・インターフェース１２２８により、バス１２０６に接続される。ドライブと、それらと関連するコンピューター可読媒体とは、コンピューターのためのコンピューター可読命令、データ構造、プログラム・モジュール、および他のデータの不揮発性ストレージを提供する。ハード・ディスク、取り外し可能磁気ディスク、および取り外し可能光ディスクを記載したが、他のタイプのコンピューター可読ストレージ媒体、例えば、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）などを、データを格納するために用いることができる。
【００８５】
[0097]  多数のプログラム・モジュールを、ハード・ディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭに格納することができる。それらのプログラムは、オペレーティング・システム１２３０、１以上のアプリケーション・プログラム１２３２、他のプログラム・モジュール１２３４、およびプログラム・データ１２３６を含む。アプリケーション・プログラム１２３２またはプログラム・モジュール１２３４は、例えば、クライアント・アプリケーション１１０ａ〜１１０ｄ、クライアント・アプリケーション２０４、追加のコンテンツ予測手段２０８、通信インターフェース６０２、リクエスト・フォーマッター６０４、追加のコンテンツ優先度設定手段７０２、コンテンツ取得モジュール９０４、コンテンツ・リクエスト・パーサー９０６、コンテンツ・プロバイダー・モジュール９０８、リクエスト優先度設定手段１００２、フローチャート３００、フローチャート４００、フローチャート５００、ステップ８０２、および／またはステップ１１０２（フローチャート３００、４００、および５００の任意のステップを含む）、及び／又はここで説明した更なる実施形態をインプリメントするためのコンピューター・プログラム・ロジック（例えば、コンピューター・プログラム・コード）を、含むことができる。
【００８６】
[0098]  ユーザーは、キーボード１２３８やポインティング・デバイス１２４０などのような入力デバイスを通じて、コンピューター１２００へ、コマンドおよび情報を入力することができる。他の入力デバイス（示さず）としては、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナーなどが含まれ得る。これらおよび他の入力デバイスは、バス１２０６と結合されたシリアル・ポート・インターフェース１２４２を通じてプロセッサー１２０２と接続されることが多いが、他のインターフェース、例えば、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）などにより接続されることもできる。
【００８７】
[0099]  また、ディスプレイ・デバイス１２４４は、ビデオ・アダプター１２４６などのようなインターフェースを介してバス１２０６へ接続される。コンピューター１２００は、モニターに加えて、スピーカーやプリンターなどのような他の周辺出力デバイス（示さず）を含むこともできる。
【００８８】
[0100]  コンピューター１２００は、アダプターまたはネットワーク・インターフェース１２５０、モデム１２５２、またはネットワークを介しての通信を確立するための他の手段を介して、ネットワーク１２４８（例えば、インターネット）と接続される。内部または外部にあり得るモデム１２５２は、図１２に示すように、シリアル・ポート・インターフェース１２４２を介してバス１２０６と接続すること、またはパラレル・インターフェースを含めての別のインターフェース・タイプを用いてバス１２０６と接続することができる。
【００８９】
[0101]  ここで用いられる「コンピューター・プログラム媒体」、「コンピューター可読媒体」、および「コンピューター可読ストレージ媒体」という用語は、ハード・ディスク・ドライブ１２１４と関連するハード・ディスク、取り外し可能磁気ディスク１２１８、取り外し可能光ディスク１２２２などのような媒体、およびフラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）などのような他の媒体を一般的に指すように、用いられる。そのようなコンピューター可読ストレージ媒体は、通信媒体とは区別され重ならない（通信媒体を含まない）。通信媒体は、典型的には、搬送波などのような変調されるデータ信号で、コンピューター可読命令、データ構造、プログラム・モジュール、または他のデータを実現する。「変調されるデータ信号」という用語は、信号内で情報をエンコードするように、その信号の特性のうちの１以上の特性が設定または変更される信号を意味する。限定ではなく例として、通信媒体は、音響、ＲＦ、赤外線、および他のワイヤレス媒体などのようなワイヤレス媒体を含む。実施形態はまた、そのような通信媒体にも向けたものである。
【００９０】
[0102]  上述のように、コンピューター・プログラムおよびモジュール（アプリケーション・プログラム１２３２および他のプログラム１２３４を含む）は、ハード・ディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭに格納することができる。また、そのようなコンピューター・プログラムは、ネットワーク・インターフェース１２５０、シリアル・ポート・インターフェース１２４２、または任意の他のインターフェース・タイプを介して、受け取ることができる。そのようなコンピューター・プログラムは、アプリケーションにより実行またはロードされると、ここで説明した本発明の実施形態のフィーチャーをコンピューター１２００がインプリメントすることを可能にする。従って、そのようなコンピューター・プログラムは、コンピューター１２００のコントローラーを表す。
【００９１】
[0103]  また、本発明は、任意のコンピューター使用可能媒体に格納されるソフトウェアを含むコンピューター・プログラム製品に関する。そのようなソフトウェアは、１以上のデータ処理デバイスで実行されたとき、データ処理デバイス（１以上）に、ここで説明したように動作を行わせる。本発明の実施形態は、現在知られている又は将来の任意のコンピューター使用可能媒体またはコンピューター可読媒体を用いる。コンピューター可読媒体の例は、限定ではないが、ＲＡＭ、ハード・ドライブ、フロッピー・ディスク、ＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、ジップ・ディスク、テープ、磁気ストレージ・デバイス、光ストレージ・デバイス、ＭＥＭ、ナノ技術ベースのストレージ・デバイスなどのようなストレージ媒体を含む。
【００９２】
ＩＶ．  まとめ
[0104]  上記で様々な実施形態について説明したが、それらの実施形態は単なる例として示したものであり、限定ではないことを理解すべきである。添付の特許請求の範囲で定めた本発明の精神および範囲から外れることなく、実施形態内で形態や詳細の様々な変更を行えることが、当業者（１以上）には理解されるであろう。従って、本発明の幅および範囲は、上記の例示の実施形態の何れかにより限定すべきではなく、特許請求の範囲および特許請求の範囲の等価物にのみ従って定めるべきである。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2015509229.tif 000001
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2015509229.tif 000002
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2015509229.tif 000003
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2015509229.tif 000004
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2015509229.tif 000005