(57)【特許請求の範囲】
【請求項１】
複数のネットワークリソースの要求及び前記複数の要求に対応し且つ各々が異なるウェブページに対応する複数の応答を得ることと、
前記複数の要求の第１サブセットから第１特性を得るために、前記複数の要求及び前記複数の応答を分析することと、
前記第１特性に関する前記複数の応答の第１サブセットから第１の不変な部品を識別することと、
前記ネットワークリソースの要求の第１グループのため、前記第１特性に対応し、前記第１特性と前記第１の不変な部品との関係に基づく第１キャッシュプロファイルを作り出すことと、
前記複数の要求の第２サブセットから第２特性を得るために、前記複数の要求及び前記複数の応答を分析することと、
前記第２特性に関する前記複数の応答の第２サブセットから第２の不変な部品を識別することと、
前記ネットワークリソースの要求の第２グループのため、前記第２特性に対応し、前記第２特性と前記第２の不変な部品との関係に基づく第２キャッシュプロファイルを作り出すことと、を含み、
前記ネットワークリソースの要求の前記第１グループ及び前記第２グループが、相互排他的でなく、
前記第１キャッシュプロファイルと前記第２キャッシュプロファイルとが異なる、コンピュータ実行方法。
【請求項２】
前記第１キャッシュプロファイルがさらに、前記第１の不変な部品の少なくとも一部に基づき前記第１コンテンツアイテムを決定することと、
前記第１コンテンツアイテムを格納することと、
を含む第１コンテンツアイテムを示す、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記第１キャッシュプロファイルが、前記第２キャッシュプロファイルを参照する、請求項２に記載の前記コンピュータ実行方法。
【請求項４】
前記第２キャッシュプロファイルが、前記第２特性と前記複数の応答の第２サブセットから識別された前記第２の不変な部品の間の関係を示す、請求項１に記載のコンピュータ実行方法。
【請求項５】
前記第２キャッシュプロファイルが、第２コンテンツアイテムを示す、請求項１に記載のコンピュータ実行方法。
【請求項６】
コンピュータ実行可能な指示を実行するためのプロセッサ及びメモリを含む、システムであって、
前記コンピュータ実行可能な指示は、インターフェースコンポーネントが、
ネットワークリソースの第１要求を得ることと、
第１グループ及び第２グループのネットワークリソースの要求が相互排他的でなく、前記ネットワークリソースの要求の前記第１グループに対応し第１の不変な部品との関係に基づく第１キャッシュプロファイル、及び前記ネットワークリソースの要求の前記第２グループに対応し第２の不変な部品との関係に基づく前記第１キャッシュプロファイルとは異なる第２キャッシュプロファイルを有するキャッシュプロファイルから、前記第１要求に対応する第１キャッシュプロファイルを識別することと、
前記第１キャッシュプロファイルの少なくとも一部に基づき、ネットワークリソースの複数要求であって各々の要求が異なるウェブページに対応する要求の分析に少なくとも基づく識別されたコンテンツの不変な部品に対応する第１コンテンツアイテムを検索することと、
前記第１コンテンツアイテムを組み込む第１結果を生成することと、
前記第１結果を送信することと、の働きをするよう実行し、
前記コンピュータ実行可能な指示は、データ処理コンポーネントが、
前記第１要求の少なくとも一部に基づいて追加的コンテンツアイテムのための第２要求を得ることと、
前記追加的コンテンツアイテムを得ることと、
前記追加的コンテンツアイテムを組み込む追加的結果を生成することと、
前記追加的結果を送信することと、の働きをするよう実行する、
システム。
【請求項７】
前記第１キャッシュプロファイルを識別することが、前記第１要求を前記第１キャッシュプロファイルによって示された特性と比較することを含む、請求項６に記載のシステム。
【請求項８】
前記第１要求を前記第１キャッシュプロファイルによって示された特性と比較することが、前記第１要求に含まれるネットワークリソース識別子を前記特性と比較することを含む、請求項７に記載のシステム。
【請求項９】
前記第１要求を前記第１キャッシュプロファイルによって示された特性と比較することが、前記第１要求に関連するユーザ識別子を前記特性と比較することを含む、請求項７に記載のシステム。
【請求項１０】
前記第１要求を前記第１キャッシュプロファイルによって示された特性と比較することが、前記第１要求に関連するクライアントコンピューティング装置識別子を前記特性と比較することを含む、請求項７に記載のシステム。
【請求項１１】
前記第１キャッシュプロファイルを識別することが、前記第１要求を前記第１キャッシュプロファイルによって示された要求のリストに対して照合することを含む、請求項６に記載のシステム。
【請求項１２】
前記インターフェースコンポーネントが、前記ネットワークリソースを要求されるコンピューティング装置において前記第１結果または前記追加的結果のうち少なくとも１つの処理を引き起こす働きをする、請求項６に記載のシステム。
【請求項１３】
前記第１結果を生成することが、前記第２キャッシュプロファイルの少なくとも一部に基づいて第２コンテンツアイテムを検索することと、前記第１及び第２コンテンツアイテムを組み込む前記第１結果を生成することと、を含む、請求項６に記載のシステム。
【請求項１４】
前記インターフェースコンポーネントがさらに、
前記第１要求に対応する前記第２キャッシュプロファイルを識別することと、
前記第２キャッシュプロファイルの少なくとも一部に基づき第２コンテンツアイテムを検索することと、
前記第２コンテンツアイテムを組み込む第２結果を生成することと、
前記第２結果を送信することと、の働きをし、
前記第２キャッシュプロファイルを識別することが、前記第１要求を前記第２キャッシュプロファイルによって示される特性と比較することと、を含み、
前記第２キャッシュプロファイルは前記第１キャッシュプロファイルによって参照される、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロファイルベースのキャッシュ管理に関する。
【背景技術】
【０００２】
概して記述される、コンピューティング装置及び通信ネットワークは、情報交換に利用できる。一般的なアプリケーションでは、コンピューティング装置は通信ネットワークを介して他のコンピューティング装置からコンテンツを要求できる。例えば、パーソナルコンピューティング装置のユーザは、インターネットを介してサーバコンピューティング装置からウェブページといったネットワークリソースを要求するソフトウェアブラウザアプリケーションを利用できる。そういった実施形態では、ユーザコンピューティング装置は、クライアントコンピューティング装置と呼ぶことができ、サーバコンピューティング装置はコンテンツプロバイダと呼ぶことができる。
【０００３】
コンテンツプロバイダは、一般的にコンテンツの効果的な送信を介してクライアントコンピューティング装置に要求されたコンテンツを供給させる。ユーザは、一般的に、コンテンツを受信すること、または即座にレンダリングされたコンテンツを有することに興味がある。いくつかのコンテンツプロバイダは、アクセスしたコンテンツまたはリソースを頻繁にキャッシュするネットワークコンピューティングプロバイダを通じて、ウェブページまたはウェブページで識別されたリソースのような要求されたコンテンツ送達の簡素化を試みる。
【発明の概要】
【課題を解決するための手段】
【０００４】
プロファイルベースのキャッシュ管理のためのシステム及び方法が開示される。キャッシュ管理サービスは、複数のネットワークリソースの要求及び対応する応答を得ることができ、様々な基準または技術の少なくとも一部に基づいて要求をグループ化でき、要求の各グループに対応する応答のコンテンツ部品を決定し、かつキャッシュすることができる。要求の各グループに対応するキャッシュプロファイル及びキャッシュ済みコンテンツ部品に対応する識別は、キャッシュ管理サービスによって構築でき、保持または更新できる。続くネットワークリソースの要求は、適用可能なキャッシュ済みコンテンツの検索のために、及びそこからの要求への部分的応答を生成するために１つ以上のキャッシュプロファイルと照合できる。キャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新は、部分的応答への更新データ生成のためにさらに検索でき、それによってネットワークリソースの要求への完全な応答を完了する。
【図面の簡単な説明】
【０００５】
先行の態様及び本発明の多くの附随する利点は、添付の図面と共に用いられる時、以下の詳細な記述を参照することで、より容易に認識でき、同様により容易に理解されよう。
【０００６】
【図１】キャッシュ管理サービスをホストするネットワークコンピューティングプロバイダを含むネットワーク化されたコンピューティング環境の１つの実施形態の例示的ブロック図である。
【図２】キャッシュ管理サービスの１つの実施形態の例示的ブロック図である。
【図３Ａ】コンテンツ要求及び結果生じるコンテンツの分析及びキャッシュ管理サービスによるキャッシュプロファイルの作成または更新に関連する実施形態を説明する図１のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【図３Ｂ】コンテンツ要求及び結果生じるコンテンツの分析及びキャッシュ管理サービスによるキャッシュプロファイルの作成または更新に関連する実施形態を説明する図１のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【図３Ｃ】キャッシュ管理サービス、ネットワークコンピューティングプロバイダ及びコンテンツプロバイダによるクライアントのコンテンツ要求の処理に関連する実施形態を説明する図１のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【図３Ｄ】キャッシュ管理サービス、ネットワークコンピューティングプロバイダ及びコンテンツプロバイダによるクライアントのコンテンツ要求の処理に関連する実施形態を説明する図１のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【図４】キャッシュ管理サービスにより実行されるキャッシュ構築またはキャッシュ更新の例示的方法のフロー図である。
【図５】ネットワークコンピューティングプロバイダにより実行されるクライアントのコンテンツ要求を処理する例示的方法のフロー図である。
【発明の詳細な説明】
【０００７】
概して記述される、本開示は、クライアントがコンテンツプロバイダといったネットワークエンティティからコンテンツを要求する時に利用されるキャッシュリソースの管理に関する。特に、本開示の態様は、コンテンツ要求及びコンテンツプロバイダによって供給されるコンテンツの対応する応答の分析に関して記述される。さらに、本開示の態様は同様に、分析の少なくとも一部に基づき、キャッシュ済みデータの確立及び更新、及びクライアント要求に応じて、管理されたキャッシュからのキャッシュ済みコンテンツの検索及び利用を含む。
【０００８】
例示的実施例を参照して、ネットワークコンピューティングプロバイダは１つ以上のクライアントコンピューティング装置から、ＨＴＭＬといったマークアップ言語の形式で１つ以上のコンテンツプロバイダにより供給されるコンテンツのための、多くの要求を得る。ネットワークコンピューティングプロバイダに関連するキャッシュ管理サービスは、ＨＴＭＬコンテンツのどの部分が実質的に一定で維持するかを決定するために、要求されたコンテンツだけでなく要求をも分析する。キャッシュ管理サービスは、コンテンツ要求またはコンテンツプロバイダに応じたキャッシュプロファイルを構築かつ更新できる。これらのキャッシュプロファイルは、キャッシュできるＨＴＭＬコンテンツの関連部分を識別できる。従って、要求されたコンテンツのための次のクライアントの要求は、ＨＴＭＬコンテンツのキャッシュ済み部分と共に少なくとも部分的に処理できる。その後、ネットワークコンピューティングプロバイダは、コンテンツプロバイダからのキャッシュされていないＨＴＭＬコンテンツのあらゆる残りの部分を要求できる。キャッシュされていないＨＴＭＬコンテンツの残りの部分は、キャッシュ済みコンテンツへの更新として組み込むことができる。キャッシュされていないコンテンツ及び更新は、要求するクライアントコンピューティング装置へと適切な形式で送信でき、要求されたコンテンツを完全にレンダリングできる。
【０００９】
１つの実施形態では、ＨＴＭＬコンテンツのどの部分がキャッシュできるかを決定するために、キャッシュ管理システムは、特定期間中に、コンテンツ要求及び対応する応答を分析する。例えば、１つ以上のクライアントは、特定期間中に複数回、同じ識別ネットワークリソースを要求してもよい。キャッシュ管理サービスは、これらの要求への対応するＨＴＭＬコンテンツ応答を特定期間を超えて分析してもよく、変更しそうにない応答内の部分または区分を決定してもよく、かつ決定した部分または区分に対応するキャッシュ可能なコンテンツをキャッシュデータ格納内へ格納してもよい。キャッシュ済みコンテンツを識別するキャッシュプロファイルは、同じネットワークリソースに向けられるコンテンツ要求のために作り出すことができる。
【００１０】
時間的分析に加えて、キャッシュ管理システムは、コンテンツ要求、クライアント装置、ユーザ、ネットワークリソース識別子、またはコンテンツプロバイダに関連するあらゆる属性または情報にわたって、コンテンツ要求及び対応する応答の分析を実行できる。コンテンツ要求及びそれらに対応する応答のグループを識別または定義するために、様々なクラスタリングまたは分類方法が利用できる。応答のグループに共通する特定のＨＴＭＬ要素といったキャッシュ可能なコンテンツ部分は、決定でき、かつ格納できる。グループに対応するキャッシュプロファイルは確立でき、決定されたキャッシュ済みコンテンツを識別する。グループは、相互排他的であってもよく、または相互排他的でなくてもよい。従って、グループに対応するキャッシュプロファイルは、ツリー構造または格子といった階層構造の形状であり得る。
【００１１】
要求するクライアントコンピューティング装置へ、関連するＨＴＭＬのキャッシュ済み部分を最初に検索し、送達することで、ネットワークコンピューティングプロバイダは、プロファイルベースのキャッシュ情報でもってクライアントのコンテンツ要求に応答してもよい。この方法で、クライアントコンピューティング装置は、他のコンテンツ部分が得られる間に結果を少なくとも部分的にレンダリングできる。例えば、キャッシュ管理サービスは、クライアント要求が一致する１つ以上のキャッシュプロファイルを識別してもよく、１つ以上のキャッシュプロファイルにより識別されたようなキャッシュ済みコンテンツを検索してもよく、キャッシュ済みＨＴＭＬを含む最初の結果を収集してもよく、かつ要求するクライアントコンピューティング装置に最初の結果を送信してもよい。連続で、または同時に、ネットワークコンピューティングプロバイダは、１つ以上のサードパーティコンテンツプロバイダからキャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新を要求してもよく、対応する更新データ及び要求するクライアントコンピューティング装置へ転送する更新データを蓄積してもよい。
【００１２】
本開示の様々な態様が例示的実施例及び実施形態に関連して記述されるが、当業者は開示の実施形態及び実施例に制限されるというように解釈すべきではない。より詳細には、様々な実施例及び例示的実施形態が要求されたＨＴＭＬベースのコンテンツに関連して記述されるが、拡張マークアップ言語（「ＸＭＬ」）ベースのコンテンツ、スクリプトまたは他のコンテンツエンコーディングアルゴリズムを含む（しかしこれに限定はされない）、要求されたコンテンツの他の形態が本開示に従って利用されてもよいことが、当業者に理解されるだろう。
【００１３】
図１は、キャッシュ管理サービス１１０をホストするネットワークコンピューティングプロバイダ１０７を含むネットワーク化されたコンピューティング環境の１つの実施形態の例示的ブロック図である。図１に説明されるように、ネットワーク化されたコンピューティング環境１００は、１つ以上のコンテンツプロバイダ１０４からコンテンツを要求するための多数のクライアントコンピューティング装置１０２（一般的にクライアントと呼ばれる）を含む。例示的実施形態では、クライアントコンピューティング装置１０２は、パーソナルコンピューティング装置、ラップトップコンピューティング装置、ハンドヘルドコンピューティング装置、ターミナルコンピューティング装置、携帯型装置、無線装置、様々な電子装置及び機器などを含む多種多様のコンピューティング装置に相当できる。例示的実施形態では、クライアントコンピューティング装置１０２は、広域ネットワークまたはローカルエリアネットワークのような通信ネットワーク１０８を介して通信を確立するのに必要なハードウェア及びソフトウェアコンポーネントを含む。例えば、クライアントコンピューティング装置１０２は、インターネットまたはイントラネットを介する通信を手助けするネットワーキング機器及びブラウザを備えていてもよい。
【００１４】
さらに、クライアントコンピューティング装置１０２は、以下により詳細に記述されるように、キャッシュに関する情報を実行あるいは処理するために必要なハードウェア及びソフトウェアコンポーネントを同様に含む。キャッシュ関連情報を処理するための追加的ハードウェア／ソフトウェアコンポーネントが、ブラウザといった多目的ソフトウェアアプリケーションの実行に含まれてもよいことは、当業者に理解されるであろう。あるいは、いくつかの、または全ての追加的ハードウェア／ソフトウェアコンポーネントは、スタンドアロンで、またはキャッシュ関連情報を処理するために構成された専用のコンポーネントで具体化されてもよい。図１に説明されてはいないが、各クライアントコンピューティング装置１０２は、クライアントコンピューティング装置に起因してＤＮＳクエリを生成する、ＤＮＳネームサーバといったいくつかのタイプのローカルＤＮＳリゾルバコンポーネントを利用する。
【００１５】
ネットワーク化されたコンピューティング環境１００は、通信ネットワーク１０８を介して１つ以上のクライアントコンピューティング装置１０２と通信する１つ以上のコンテンツプロバイダ１０４を同様に含むことができる。図１に説明される個別のコンテンツプロバイダ１０４は、コンテンツプロバイダに関する１つ以上のコンピューティング装置の論理的関連に相当する。つまり、コンテンツプロバイダ１０４は、コンテンツ（ウェブページといった）をクライアントコンピューティング装置１０２またはネットワークコンピューティングプロバイダ１０７から得て、かつ処理するための１つ以上のサーバコンピューティング装置に対応するウェブサーバコンポーネントを含むことができる。コンテンツプロバイダ１０４が、様々な追加的コンピューティングリソース、コンテンツ及びリソースを管理するそういった追加的コンピューティング装置、ＤＮＳネームサーバなどに関連できることが、当業者に理解されるであろう。
【００１６】
図１をさらに参照して、ネットワーク化されたコンピューティング環境１００は、通信ネットワーク１０８を介して１つ以上のクライアントコンピューティング装置１０２及びコンテンツプロバイダ１０４と通信するネットワークコンピューティングプロバイダ１０７を同様に含むことができる。図１に説明されるネットワークコンピューティングプロバイダ１０７は、ネットワークコンピューティングプロバイダに関する１つ以上のコンピューティング装置の論理的関連に同様に相当する。つまり、ネットワークコンピューティングプロバイダ１０７は、通信ネットワーク１０８上のノードに相当する多数のポイント・オブ・プレゼンス（ＰＯＰ）ロケーション１３４、１４２、１４８を含むことができる。各ＰＯＰ１３４、１４２、１４８は、一般的にはＮＣＣのインスタンスを指す、多数の仮想マシンのインスタンスを介して、ブラウザアプリケーションまたはデータストリーミングアプリケーションといったアプリケーションをホストするためのネットワークコンピューティングコンポーネント(ＮＣＣ）１３６、１４４、１５０を含む。ＮＣＣ１３６、１４４、１５０が物理的コンピューティング装置リソース及び仮想マシンの複数のインスタンスを供給するため、または仮想マシンのインスタンスの生成を動的に引き起こすためのソフトウェアを含むことが当業者に理解されるであろう。そういった生成は、クライアントコンピューティング装置から、といった特定の要求の少なくとも一部に基づくことができ、またはＮＣＣは仮想マシンのインスタンスの動的な生成をひとりでに開始できる。ＮＣＣ  ＰＯＰ１３４、１４２、１４８は、ネットワークまたはコンピューティングリソースの送達及び処理に用いられるあらゆるタイプのデータを格納するための多数の記憶装置で構成される記憶コンポーネントを同様に含む。ＮＣＣ１３６、１４４、１５０はさらに、要求されたアプリケーションをサポートする仮想マシンのインスタンスを選択するための、及び／または要求ルーティングを手助けするＤＮＳネームサーバに情報を供給するための負荷バランシングまたは負荷シェアリングソフトウェア／ハードウェアコンポーネントを含む（しかしこれに限定はされない）、通信を手助けする追加的ソフトウェア及び／またはハードウェアコンポーネントを含んでもよい。
【００１７】
例示的実施形態では、ＮＣＣ  ＰＯＰ１３４、１４２、１４８がネットワークコンピューティングプロバイダ１０７に論理的に関連するものとして図１で説明されるが、ＮＣＣ  ＰＯＰは、クライアントコンピューティング装置１０２の様々な人口統計に最も有効な方法で通信ネットワーク１０８のあらゆる場所に地理的に分散することができる。さらに、ネットワークコンピューティングプロバイダ１０７が、様々な追加的コンピューティングリソース、コンテンツ及びリソースを管理するそういった追加的コンピューティング装置などに関連できることが、当業者に理解されるであろう。さらに、ネットワークコンピューティングプロバイダ１０７のコンポーネントが同じまたは異なるエンティティによって管理できることが、当業者に理解されるであろう。
【００１８】
図１にさらに説明されるように、ネットワークコンピューティングプロバイダ１０７は、本明細書に記述されるキャッシュ管理の方法を実行するよう構成されたキャッシュ管理サービス１１０、キャッシュコンテンツデータ格納１２０、及びキャッシュプロファイルデータ格納１３０を含むことができる。キャッシュ管理サービス１１０は、コンテンツ及び１つ以上のコンテンツプロバイダにより供給されるコンテンツを含むクライアントに提供される対応する応答のための様々なクライアント要求を分析するために実行できる。キャッシュ管理サービス１１０は、クライアントの次のコンテンツ要求を処理することを促進するために利用できる分析の少なくとも一部に基づいて、キャッシュプロファイル及びキャッシュ済みコンテンツを構築、維持及び更新するために同様に実行できる。キャッシュ管理サービス１１０はさらに、クライアントの様々なコンテンツ要求を処理することを手助けできる。例えば、キャッシュ管理サービス１１０は、一致するキャッシュプロファイルを識別し、適切なキャッシュ済みコンテンツを検索し、最初の結果及び対応する更新データを収集し、かつ送信してもよい。図１に単一のコンポーネントとして説明されるが、キャッシュ管理サービス１１０は、物理的コンピューティング装置、物理的マシンにホストされた仮想化コンピューティング装置、またはそれらの組み合わせのいくつかを含む、ネットワークベースのコンピューティング装置にいくつでも対応してもよい。さらに、キャッシュ管理サービス１１０は、ネットワークコンピューティングプロバイダ１０７の一部としてホストされてもよく、またはネットワークコンピューティングプロバイダ１０７とは無関係に供給されてもよい。
【００１９】
キャッシュコンテンツデータ格納１２０は、コンテンツ、コンテンツの一部、またはネットワークコンテンツ及びリソースに関するあらゆる情報またはデータを格納できる。キャッシュコンテンツデータ格納１２０は一般的に、あらゆるリポジトリ、データベース、またはディスクメモリ、フラッシュメモリ、光学メモリなどといった非一時的コンピュータ読み取り可能媒体に具現化される情報格納システムを含むことができる。さらに、キャッシュコンテンツデータ格納１２０は、ネットワークベースのメモリを含むことができる。単一のコンポーネントとして説明されるが、キャッシュコンテンツデータ格納１２０は、キャッシュ管理サービス１１０との通信を最適化するための分配方法で実行されてもよい。
【００２０】
キャッシュプロファイルデータ格納１３０は、コンテンツ要求のあらゆる特性、様々なキャッシュ済みコンテンツの識別または参照、セマンティックまたはキャッシュ済みコンテンツまたはネットワークリソースに関する他の情報間の関連データを格納できる。キャッシュプロファイルデータ格納１３０は一般的に、あらゆるリポジトリ、データベース、またはディスクメモリ、フラッシュメモリ、光学メモリなどといった非一時的コンピュータ読み取り可能媒体に具現化される情報格納システムを含むことができる。さらに、キャッシュプロファイルデータ格納１３０は、ネットワークベースのメモリを含むことができる。単一のエンティティとして説明されるが、キャッシュプロファイルデータ格納１３０は、キャッシュ管理サービス１１０と通信を最適化するための分配方法で実行されてもよい。
【００２１】
図１に供給されるコンポーネント及び構成は、実際の例示的なものであることが、当業者に理解されるであろう。従って、追加的または代替的なコンポーネント及び／または構成、特に追加的なコンポーネントに関しては、通信を手助けするためのシステム及びサブシステムが利用されてもよい。
【００２２】
図２は、図１に描写されるキャッシュ管理サービスといったキャッシュ管理サービス１１０の１つの実施形態の例示的なブロック図である。例示的に、キャッシュ管理サービス１１０は、本明細書に記述される様々なキャッシュ管理方法及び処理を実行するための、インターフェースモジュール２０２、コンテンツ分析モジュール２０４及び要求処理モジュール２０６を含んでもよい。インターフェースモジュール２０２は、クライアントコンピューティング装置１０２と様々な方法で通信できる。例えば、コンテンツ要求を得るために、及びコンテンツ要求への応答を送達するために、例えば最初の結果はキャッシュ済みコンテンツを組み込み、次にクライアントコンピューティング装置１０２へのデータを更新する。代替的に、または追加的に、インターフェースモジュール２０２は、各コンテンツ要求に対応する遠隔閲覧セッションによってクライアントコンピューティング装置と関連するネットワークコンピューティングプロバイダ１０７の１つ以上のＮＣＣにおいてインスタンス化する仮想マシンまたはブラウザと通信できる。この実施形態では、インターフェースモジュール２０２は、クライアントのコンテンツ要求を得て、各コンテンツ要求するクライアントコンピューティング装置１０２と次に通信する仮想マシンまたはブラウザインスタンスに最初の結果及び更新データを含む応答を送達する。
【００２３】
例示的に、コンテンツ分析モジュール２０４は、例えば、クライアント要求及び対応する応答をグループ化または分類し、各キャッシュ可能なデータを得て、かつそれらに基づくキャッシュプロファイルを構築または更新するためのクラスタリングまたは分類アルゴリズムといった様々な計算的、統計的、または機械学習の方法を実行できる。コンテンツ分析モジュール２０４により分析されるクライアント要求及び対応する応答は、インターフェースモジュール２０２から送ることができ、またはそういった情報を保持するネットワークコンピューティングプロバイダ１０７のレポジトリまたは格納システムから得ることができる。要求処理モジュール２０６は、ネットワークリソースといったクライアントのコンテンツ要求を処理でき、かつ対応する応答を生成できる。つまり、クライアント要求は、インターフェースモジュール２０２によって要求処理モジュール２０６へ送ることができる。要求処理モジュール２０６は、クライアント要求を１つ以上のキャッシュプロファイルと照合でき、キャッシュプロファイルによって識別されたキャッシュ済みコンテンツを検索でき、検索されたキャッシュ済みコンテンツを組み込むクライアント要求に対応する最初の結果を生成でき、キャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新を得ることができ、かつ最初の結果のための更新データを生成することができる。連続で、または同時に、最初の結果及び更新データは、要求処理モジュール２０６によってインターフェースモジュール２０２へ送ることができる。
【００２４】
キャッシュ管理サービス１１０は、本明細書に記述される様々なキャッシュ管理方法及び処理を手助けするかまたは実行する追加的または異なるモジュールまたはコンポーネントを含んでもよい。さらに、モジュールまたはコンポーネントは、追加的コンポーネント、方法及び処理を手助けするためのシステム及びサブシステムを含んでもよい。
【００２５】
図３Ａ〜３Ｄを参照して、図１におけるネットワーク化されたコンピューティング環境１００の様々なコンポーネント間の相互作用が説明される。実施例の目的のためではあるが、通信を手助けするために利用される多くのコンポーネントを示さないように、説明は簡素化されている。本開示の趣旨及び範囲から逸脱することなくそういったコンポーネントが利用でき、かつその追加的相互作用が状況に応じて起こることが、当業者に理解されるであろう。さらに、通信はコンポーネント間の直接通信として説明されるが、全ての例示的通信はコンポーネント間で直接起こるかまたは通信ネットワーク１０８を介して手助けされることが、当業者に理解されるであろう。
【００２６】
図３Ａ及び３Ｂは、コンテンツ要求及びＨＴＭＬ結果の分析及びキャッシュ管理サービス１１０によるキャッシュプロファイルの作成または更新に関連する実施形態を説明する図１のネットワーク化されたコンピューティング環境１００の簡略ブロック図である。図３Ａを参照して、（１）では、ネットワークコンピューティングプロバイダ１０７は、クライアントコンピューティング装置１０２からコンテンツ要求を得る。例示的に、個別のクライアントコンピューティング装置１０２は、イベントまたはユーザ要求に応じてネットワークコンテンツを閲覧するためのブラウザを読み込んでもよい。ブラウザは、ネットワークコンピューティングプロバイダ１０７への閲覧セッション要求を介してネットワークコンテンツを要求するために実行してもよい。クライアントコンピューティング装置１０２のユーザ観点から、新しい閲覧セッションの要求は、１つ以上の対応するコンテンツプロバイダ１０４に送信されることが計画された要求に対応する。例示的に、要求はブラウザ読み込みの結果（例えば、デフォルトまたは「ホーム」ページの要求）として自動的に生成されてもよく、またはユーザがリンクをたどるかまたはブラウザのアドレスバーへネットワークアドレスを入力することの結果として生成されてもよい。
【００２７】
図３Ａに説明されるように、閲覧セッション要求は、最初にネットワークコンピューティングプロバイダ１０７に送信される。例示的実施形態では、ネットワークコンピューティングプロバイダ１０７は、クライアントコンピューティング装置１０２からの閲覧セッション要求を受け入れるためにアプリケーションプログラムインターフェース（以下「ＡＰＩ」）を利用する。閲覧セッション要求は、インターネットプロトコル（「ＩＰ」）アドレス、ＵＲＬ、メディアアクセスコントロール（「ＭＡＣ」）アドレス等を含む（しかしこれに限定はされない）、あらゆる形式であり得る要求されたネットワークリソースに対応するネットワークアドレス情報を含むことができる。この情報は、キャッシュ管理サービス１１０から直接得ることができるかまたは、仮想マシンまたは閲覧セッション要求の役割を持つネットワークコンピューティングプロバイダ１０７のＮＣＣによってホストされるブラウザインスタンスによって中継されるかまたはフィルタリングされてもよい。
【００２８】
（２）では、ネットワークコンピューティングプロバイダ１０７は個別のコンテンツ要求を処理する。ネットワークコンピューティングプロバイダ１０７は、（３）での閲覧セッション要求に含まれるネットワークアドレスの少なくとも一部に基づいてコンテンツプロバイダ１０４へネットワークリソースの要求を送信できる。例えば、閲覧セッション要求は、「ｈｔｔｐ：／／ｗｗｗ．ｘｙｚｓｉｔｅ．ｃｏｍ／ｄｅｆａｕｌｔ．ｈｔｍ．」といったような、ウェブページのＵＲＬを含んでもよい。
【００２９】
図３Ａを続けて参照して、（４）では、コンテンツ要求は、関連するウェブサーバを通じてといったように、コンテンツプロバイダ１０４によって受け取られ、かつ処理される。例示的実施形態に従って、コンテンツの要求は、ハイパーテキストトランスファプロトコル（「ＨＴＴＰ」）といったような、一般的ネットワークプロトコルに従うことができる。コンテンツ要求の受領をもって、コンテンツプロバイダ１０４は適切な応答コンテンツを識別する。例示的実施形態では、要求されたコンテンツは、ＨＴＭＬなどといったような、情報の処理を介して、クライアントコンピューティング装置１０２に表示されるウェブページに対応できる。次に（５）では、コンテンツプロバイダ１０４は、ネットワークコンピューティングプロバイダ１０７へ識別されたコンテンツを送信する。（６）では、ネットワークコンピューティングプロバイダ１０７は、クライアントコンピューティング装置１０２から得たコンテンツ要求に対応するＨＴＭＬ結果を生成する。関連する事前キャッシュ済みのコンテンツがネットワークコンピューティングプロバイダ１０７に利用できないといういくつかの実施形態では、各コンテンツ要求に対応する完全なＨＴＭＬ結果は、コンテンツプロバイダ１０４から得られたコンテンツに基づいて単独で生成できる。
【００３０】
図３Ｂを参照して、（７）では、様々なコンテンツプロバイダ１０４により供給される完全なＨＴＭＬ結果及びその対応するコンテンツ要求は、キャッシュプロファイル構築及び更新のためにキャッシュ管理サービス１１０により分析できる。例えば、分析はコンテンツ要求及び特定期間中に生成される対応するＨＴＭＬ結果において実行できる。つまり、同じ識別可能ネットワークリソース向けのコンテンツ要求のために、キャッシュ管理サービス１１０は、対応するＨＴＭＬ結果を分析してもよく、かつ特定期間中に変化しないＨＴＭＬの１つ以上の部品を決定してもよい。例えば、部品は、ブラウザアプリケーションにナビゲーションバー、ロゴ、レイアウト、構造等にレンダリングさせるＨＴＭＬコードに対応できる。他の実施例では、キャッシュ管理サービス１１０は、コード分析の許容範囲内であると思われるＨＴＭＬコードにおける変動を同様に含むことができる。言い換えれば、許容範囲内の変動はＨＴＭＬの部品が決定される時に変化とはみなされない。
【００３１】
従って、（８）では、ネットワークリソース及び決定された部品に対応するキャッシュプロファイルは、キャッシュプロファイルデータ格納１３０において構築でき、かつ格納できる。変化しない部品は、別個のネットワークリソースのグループに対応するＨＴＭＬ結果に表れてもよい。その結果、個別のキャッシュプロファイルは、ネットワークリソースのグループ及びその一般的に不変の部品に対応できる。さらに、コンテンツ要求及び対応するＨＴＭＬ結果の分析は、一般的または不変のＨＴＭＬ部品を決定するために、クライアントコンピューティング装置、ユーザまたはユーザ関連データ、ネットワークリソース識別子、またはコンテンツ要求または結果生じる応答に関連するあらゆる特性といったような、特性に渡って実行できる。
【００３２】
ＨＴＭＬ部品は特定期間にわたって絶対に不変である必要はなく、むしろ決定は、対応するコンテンツプロバイダによって供給されるかまたは分析から得られたキャッシュ可能な状態または表示の少なくとも一部に基づくことができる。様々なクラスタリング、分類または他の計算的または機械学習の方法は、コンテンツ要求、それらに対応する応答及びキャッシュ可能なＨＴＭＬ部品のグループを識別または定義するために利用できる。グループは、相互排他的であってもよいかまたは相互排他的でなくてもよい。従って、グループまたは個別のコンテンツ要求に対応するキャッシュプロファイルは、ツリー構造または格子といった階層構造の形状であり得る。各キャッシュプロファイルは、プロファイルに一致するコンテンツ要求の特性または基準を指定するプロファイル識別子を含んでもよい。代替的に、または追加的に、各キャッシュプロファイルは、プロファイルに一致するコンテンツ要求を列挙するプロファイルメンバーリストを含んでもよい。キャッシュプロファイルが階層構造の形状である場合は、各キャッシュプロファイルは、それらの親または子キャッシュプロファイルを参照してもよい。
【００３３】
（９）では、決定した部品に対応するキャッシュ可能なコンテンツは、キャッシュコンテンツデータ格納１２０に格納でき、かつキャッシュプロファイルによって識別または参照できる。（１０）では、ＨＴＭＬ結果は、ネットワークコンピューティングプロバイダ１０７から各クライアントコンピューティング装置１０２に送信される。いくつかの実施形態では、ＨＴＭＬ結果または結果に附随する情報は、ＨＴＭＬ結果内でキャッシュ可能なコンテンツを示してもよく、かつ今後の利用に備えてキャッシュ可能なコンテンツを残すために対応するクライアントコンピューティング装置１０２に指示してもよい。
【００３４】
図３Ｃ及び３Ｄは、キャッシュ管理サービス、ネットワークコンピューティングプロバイダ及びコンテンツプロバイダによるリソース要求の処理に関連する実施形態を説明する図１のネットワーク化されたコンピューティング環境１００の簡略ブロック図である。つまり、図３Ｃ及び３Ｄは、クライアントコンピューティング装置１０２からのコンテンツ要求処理におけるキャッシュ済みコンテンツ部品の利用の実施例を説明する。図３Ｃを参照して、（１）では、キャッシュ管理サービス１１０は、クライアントコンピューティング装置１０２からコンテンツ要求を得る。前述のように、コンテンツの要求は、クライアントコンピューティング装置１０２から送られた閲覧セッション要求の一部であり得、かつ閲覧セッションの役割を持つネットワークコンピューティングプロバイダ１０７のＮＣＣによってキャッシュ管理サービス１１０へと中継されてもよい。
【００３５】
要求の受領をもって、（２）では、キャッシュ管理サービス１１０は、クライアント要求と照合するキャッシュプロファイルデータ格納１３０に格納された１つ以上のキャッシュプロファイルを識別するためにクライアント要求を処理する。例えば、クライアント要求は、プロファイルメンバーリスト上に識別されてもよく、またはキャッシュプロファイルのプロファイル識別子によって特定された特性を有してもよい。つまり、キャッシュプロファイルの階層構造がある場合、トップダウン検索スキームは、キャッシュプロファイル照合の識別のために実行できる。例えば、クライアント要求は、階層構造のトップからさらに一般的なキャッシュプロファイル（対応するさらなるコンテンツ要求）に対して照合でき、次に一致する親キャッシュプロファイルによって参照されるより詳細なキャッシュプロファイル（より少ないコンテンツ要求に対応する）に対して照合できる。
【００３６】
（３）では、キャッシュ管理サービス１１０は、照合キャッシュプロファイルによって識別されるようなキャッシュコンテンツデータ格納１２０からキャッシュ済みコンテンツ部品を検索できる。キャッシュ済みコンテンツ部品は、全ての照合キャッシュプロファイルが識別された後に検索できる。あるいは、キャッシュ済みコンテンツ部品は、キャッシュプロファイル照合処理が進行している間に検索できる。例えば、不変のウェブサイトレイアウト、構造またはロゴといったような、さらなる一般的なキャッシュプロファイルによって識別されたコンテンツ部品は、テキスト記述またはサイトの特定ウェブページに関連するイメージといったような、より詳細なキャッシュプロファイルによって識別されたコンテンツ部品よりも早く検索される。（５）では、キャッシュ管理サービス１１０は、検索されたコンテンツ部品の少なくとも一部に基づいて最初のＨＴＭＬ結果を生成でき、かつそれを（６）でのコンテンツ要求に応える部分的コンテンツレンダリングのために、要求するクライアントコンピューティング装置１０２に送信できる。前述のようなキャッシュ済みコンテンツ部品が連続的に検索される場合において、最初のＨＴＭＬ結果は、連続的に送信される複数の部品を含むことができる。（７）では、クライアントコンピューティング装置１０２は、例えば、キャッシュ済みコンテンツ部品をそのコンテンツ要求に対応する一部としてレンダリングし、かつ表すために、最初のＨＴＭＬ結果を処理することができる。他の実施形態では、クライアントコンピューティング装置１０２は、最初のＨＴＭＬ結果によって参照されるかまたは示されるようなローカルにキャッシュ済みコンテンツをレンダリングし、かつ表してもよく、対応更新を待ってもよい。
【００３７】
例示的に、一度クライアントコンピューティング装置１０２が最初のＨＴＭＬ結果を得ると、ネットワークコンピューティングプロバイダ１０７は、あらゆる残っているＨＴＭＬのキャッシュされていないバージョンを要求できる。図３Ｄを参照して、（８）では、ネットワークコンピューティングプロバイダ１０７は、キャッシュされていない要求されたコンテンツの１つ以上の部品を識別する。（９）では、ネットワークコンピューティングプロバイダ１０７は、キャッシュ済みコンテンツの検索の次に、または平行して、サードパーティコンテンツプロバイダからキャッシュ済みコンテンツへ、キャッシュされていないコンテンツまたは更新を要求してもよい。図３Ａを参照して前述のように、コンテンツ要求は、関連するウェブサーバを通じてといったように、コンテンツプロバイダ１０４によって受け取られ、かつ処理される。例示的実施形態に従って、コンテンツの要求は、ＨＴＴＰといったような、一般的ネットワークプロトコルに従うことができる。
【００３８】
コンテンツ要求の受領をもって、（１０）では、コンテンツプロバイダ１０４は適切な応答コンテンツを識別する。いくつかの実施形態では、コンテンツ要求は、ネットワークコンピューティングプロバイダ１０７または関連する位置においてキャッシュ済みコンテンツへの更新について問い合わせる。この場合、コンテンツプロバイダ１０４は、任意の適用可能なコンテンツ更新があるかどうかを判断する必要がある。次に、コンテンツプロバイダ１０４は、（１１）でネットワークコンピューティングプロバイダ１０７へ識別されたコンテンツまたは更新を送信する。
【００３９】
（１２）では、ネットワークコンピューティングプロバイダ１０７は得られたコンテンツを処理できる。例えば、得られたコンテンツまたは更新を最初の結果と統合するため、かつコンテンツ要求に対応する完全なＨＴＭＬ結果を生成するためである。代替的に、または追加的に、ネットワークコンピューティングプロバイダ１０７は、最初の結果と比較可能なデータ形式に変換するといったように、キャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新を、処理するためのキャッシュ管理サービスへ転送できる。（１３）では、キャッシュ管理サービス１１０は、完全なＨＴＭＬの少なくとも一部に基づく、またはキャッシュされていないコンテンツ及び更新の少なくとも一部に基づく最初のＨＴＭＬに適用可能な更新データを生成できる。更新データはその後、（１４）で要求するクライアントコンピューティング装置１０２と通信でき、要求されたコンテンツの完全な表示をレンダリングすることが可能になる。（１５）では、クライアントコンピューティング装置１０２は、更新データを処理する。クライアントコンピューティング装置１０２は、例えば、最初のＨＴＭＬ結果に組み込まれた特定のスクリプト実行を介して、更新データを最初のＨＴＭＬ結果と統合でき、それにより完全な応答を最初のコンテンツ要求にレンダリング及び表示できる。クライアントコンピューティング装置１０２は同様に、更新データに基づいてそのローカルにキャッシュ済みコンテンツを更新してもよい。いくつかの実施形態では、コンテンツレンダリングを完成するだけでなく、関連するキャッシュプロファイル及びコンテンツの更新を引き起こす部分に関して、フィードバックは要求するクライアントコンピューティング装置１０２から得ることができる。
【００４０】
図４は、キャッシュ構築またはキャッシュ更新の例示的方法のフロー図である。例示的に、ルーチン４００は、キャッシュ管理サービス１１０のコンテンツ分析モジュール２０４によって実行できる。ルーチン４００の実施態様は同様に、キャッシュ管理サービス１１０のインターフェースモジュール２０２によって、またはキャッシュ管理サービス１１０をホストするネットワークコンピューティングプロバイダ１０７の他のコンポーネントによって手助けされてもよい。ルーチン４００は、キャッシュ管理サービス１１０またはネットワークコンピューティングプロバイダ１０７のシステム管理者によって開始でき、特定の時期に実行するよう予定されてもよく、１つ以上のネットワークコンピューティングプロバイダ１０７等における連続的実行処理であり得る。開始した後、ブロック４０２では、キャッシュ管理サービス１１０は、１つ以上のクライアントコンピューティング装置１０２から起こるコンテンツ要求を得る。前述のように、例示的に、ネットワークコンピューティングプロバイダ１０７は様々なクライアントコンピューティング装置１０２からコンテンツ要求を受け取る。コンテンツ要求は、キャッシュ管理サービス１１０から直接得ることができるか、またはネットワークコンピューティングプロバイダ１０７の他のコンポーネントによって転送できる。要求に関する情報は、利用するためにデータ格納に格納できる。例えば、情報は、メモリ、データベース、ハードディスク上などに電子的に格納できる。情報は、要求される各リソースのためのリソース識別子、各リソースが要求される時間及びデータ、クライアントコンピューティング装置情報、ブラウザ情報、ユーザ情報及び選択等を含むことができる。
【００４１】
ブロック４０４では、キャッシュ管理サービス１１０は、得られたコンテンツ要求に対応するＨＴＭＬ結果を得る。前述のように、ネットワークコンピューティングプロバイダ１０７は、クライアントコンピューティング装置１０２からのコンテンツ要求に対応する、あらゆるキャッシュ済みコンテンツ部品、キャッシュされていない部品及びキャッシュ済み部品への更新を組み込む完全なＨＴＭＬ結果を生成できる。完全なＨＴＭＬ結果は、キャッシュ管理サービス１１０へ転送できる。代替的に、または追加的に、キャッシュ管理サービス１１０は、ネットワークコンピューティングプロバイダ１０７によって得られ、かつ転送されるように、キャッシュ済みコンテンツ部品または、キャッシュ済み部品、及びキャッシュされていない部品及びキャッシュ済み部品への更新を組み込む最初のＨＴＭＬ結果から完全なＨＴＭＬ結果を得ることができる。個別のコンテンツ要求に対応するＨＴＭＬ結果は、利用するためにデータ格納に格納できる。例えば、ＨＴＭＬ結果は、メモリ、データベース、ハードディスク上などに電子的に格納できる。ＨＴＭＬ結果は、ＨＴＭＬ結果の外観及びレイアウトを定義するためのＣＳＳ情報だけでなく、ヘッディング、パラグラフ、リスト、リンク、または引用、埋め込みイメージ、他のオブジェクト、またはスクリプトといったような、構造化テキストを含むことができる。
【００４２】
ブロック４０６では、ルーチン４００は、キャッシュ可能なコンテンツを決定するために、得られたコンテンツ要求及び対応するＨＴＭＬ結果を処理でき、かつ分析できる。ネットワークコンピューティングプロバイダ１０７及びキャッシュ管理サービス１１０は、コンテンツ要求を処理でき、かつ独立したクライアントコンピューティング装置１０２のいくつでもＨＴＭＬ結果で応答でき、ひいてはコンテンツ要求及び対応するＨＴＭＬ結果のパターンを認識するよう位置する。キャッシュ管理サービス１１０は、コンテンツ要求に対応するＨＴＭＬ結果のキャッシュ可能な部品を決定するためにそれらのパターンを使用でき、変更のためにそれらの結果を積極的に監視でき、それに応じてキャッシュプロファイルを作り出すかまたは更新できる。
【００４３】
いくつかの実施形態では、要求及びＨＴＭＬ結果は、ＨＴＭＬ結果内のキャッシュ可能なコンテンツ部品を決定するために一時的に処理できる。例えば、特定のネットワークリソースの要求に対応するＨＴＭＬ結果は、結果内のどの部品が特定期間を超えて変更しないかを監視でき、かつ決定できる。これらの不変の部品は、ナビゲーションバー、ロゴ、レイアウト、構造、背景、テキストまたは他の要素を表示できる。１つの実施形態では、部品の決定は、ＨＴＭＬウェブページといったようなＨＴＭＬのセマンティックによって手助けできる。例えば、部品の定義は、対のタグまたは単一のタグによって示されるＨＴＭＬ要素の少なくとも一部に基づく。ルーチン４００は連続的処理であり得るので、ネットワークリソースの新しい部品は、最初に変化するものと思われ、後に不変であると認識されてもよい。特定のネットワークリソースのＨＴＭＬ結果内における不変の部品に対応するコンテンツは、キャッシュ可能であると標識が付けられてもよく、かつキャッシュコンテンツデータ格納１２０において格納または更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置１０２に実装されたブラウザへの送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置１０２に送信でき、かつクライアントコンピューティング装置１０２によって保持できる。
【００４４】
他の実施形態では、処理及び分析は、得られたコンテンツ要求に関連する特性の少なくとも一部に基づくことができる。特定の特性または特性の組み合わせに関連するコンテンツ要求に対応するＨＴＭＬ結果のキャッシュ可能なコンテンツ部品が、決定されてもよい。これらの特性は、クライアントコンピューティング装置１０２から起こるコンテンツ要求に含まれるかまたは得られたあらゆる情報であり得る。例えば、ネットワークリソース識別子は、特定のコンテンツプロバイダ、ドメイン、サブドメイン、ウェブサイト、サブサイトまたはネットワークリソースのあらゆる他の分類、ユーザ関連、選択または他の情報、関連、提携、またはクライアントコンピューティング装置の他の情報等に関連する。特性または特性の組み合わせに対応する全ての得られたＨＴＭＬ結果への一般的部品は、決定されてもよく、一般的部品に対応するコンテンツはキャッシュ可能であると標識が付けられてもよく、かつキャッシュコンテンツデータ格納１２０に格納または更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置１０２に実装されたブラウザへ送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置１０２に送信でき、かつクライアントコンピューティング装置１０２によって保持できる。
【００４５】
さらに他の実施形態では、処理及び分析は、時間的及び特性ベースの両方であり得る。例えば、特性または特性の組み合わせに対応する全てのＨＴＭＬ結果は、それらの一般的部品の何が特定期間を超えて変化しないかを決定するために監視できる。不変の一般的部品に対応するコンテンツは、キャッシュ可能であると標識が付けられてもよく、かつキャッシュコンテンツデータ格納１２０において格納または更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置１０２に実装されたブラウザへの送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置１０２に送信でき、かつクライアントコンピューティング装置１０２によって保持できる。
【００４６】
なおもさらなる実施形態では、処理及び分析は、得られたコンテンツ要求及び対応するＨＴＭＬ結果のクラスタリング、分類、または時系列分析に適した、任意の計算的、統計的、または機械学習の方法を採用できる。適切な方法は、任意の関連情報の少なくとも一部に基づいてコンテンツ要求と対応するＨＴＭＬ結果を必要に応じてグループ化でき、かつ不変のまたは一般的部品及び対応する結果のキャッシュ可能なコンテンツを決定できる。適切な方法は同様に、処理及び分析を手助けするために、キャッシュ可能な部品決定に関するあらゆる外部の情報または知識を利用できる。１つの実施形態では、協調フィルタリングといったような技術は、外部の情報または知識を処理し、かつ組み込むために利用できる。さらに、キャッシュ可能なコンテンツは、キャッシュコンテンツデータ格納１２０に格納することができ、かつ更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置１０２に実装されたブラウザへの送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置１０２に送信でき、かつクライアントコンピューティング装置１０２によって保持できる。
【００４７】
不変の、または一般的部品に対応するコンテンツは、ブラウザによって独立して表示可能またはレンダリング可能であってもよいかまたはそうでなくてもよく、従って、いくつかの実施形態では、独立して表示可能またはレンダリング可能なコンテンツのみがキャッシュ可能である及び／またはキャッシュコンテンツデータ格納１２０に格納されると標識が付けられる。いくつかのネットワークリソースまたはコンテンツは、他よりも頻繁に要求されてもよく、従って、いくつかの実施形態では、前述の処理及び分析は対応する要求の頻度に基づいて優先順位付けされてもよい。他の実施形態では、閾値を指定することで、閾値よりも頻繁に要求されるネットワークリソースまたはコンテンツのみが分析される。
【００４８】
いくつかのコンテンツプロバイダは同様に、ＨＴＭＬ結果内のキャッシュ可能なコンテンツ部品を決定するための処理及び分析を手助けするために情報を供給してもよい。例えば、コンテンツプロバイダは、ヘッダまたは要求されたネットワークリソースの送信に関連する他の部品におけるキャッシュ可能な状態または表示を含んでもよい。コンテンツプロバイダは同様に、関連ネットワークリソースのためのセマンティックを定義してもよく、それによりキャッシュ可能な状態がそこに埋め込まれる。これらの場合、キャッシュ可能な部品を有するネットワークリソースは、事前にポーリングでき、または処理及び分析の一部としてインターバルを動的に計算できる。ルーチン４００は、コンテンツのキャッシュ可能な状態を連続的に監視するために、ボット、ウェブクローラ、インデクサなどを含む自動化技術を同様に使用できる。
【００４９】
ブロック４０８では、対応するキャッシュプロファイルは、作られるかまたは更新される。前述のように、キャッシュプロファイルは、キャッシュプロファイルデータ格納１３０に格納できる。キャッシュプロファイルは、ツリー構造または格子といった階層構造の形状であり得る。各キャッシュプロファイルは、ブロック４０６においてそれぞれ決定された不変のまたは一般的部品に対応し、かつプロファイルに一致するコンテンツ要求の特性または基準を指定するプロファイル識別子を含んでもよい。代替的に、または追加的に、各キャッシュプロファイルは、プロファイルに一致するコンテンツ要求を列挙するプロファイルメンバーリストを含んでもよい。キャッシュプロファイルが階層構造の形状である場合は、各キャッシュプロファイルは、それらの親または子キャッシュプロファイルを参照してもよい。
【００５０】
いくつかの実施形態では、特定の決定された不変の、または一般的部品に対応するキャッシュプロファイルの存在は、ブロック４０６において対応して格納されたかまたは更新されたコンテンツの識別、ブロック４０６における処理及び分析の少なくとも一部に基づいて更新されたプロファイル指示またはメンバーリストといったような、新たに決定された情報をもって更新できる。存在するキャッシュプロファイルに対応しない、ブロック４０６において決定された不変の、または一般的部品のために、新しいキャッシュプロファイルはそれに応じて作ることができ、かつキャッシュプロファイルデータ格納１３０に格納できる。ルーチン４００は、ブロック４１０で終了する。
【００５１】
図５は、ネットワークコンピューティングプロバイダ１０７で実行されるクライアントのコンテンツ要求を処理する例示的方法のフロー図である。ネットワークコンピューティングプロバイダ１０７がクライアントコンピューティング装置１０２からクライアントのコンテンツ要求を得る時に、クライアント要求処理ルーチン５００は、ブロック５０２で始まる。処理は、クライアントコンピューティング装置１０２からネットワークコンピューティングプロバイダ１０７へのクライアントのコンテンツ要求及び他の関連情報を含むかまたは示すことのできる、新しい閲覧セッション要求の生成及び処理で始まることができる。クライアントコンピューティング装置１０２は、イベントまたはユーザ要求に応じてネットワークコンテンツを閲覧するためのブラウザを読み込むことができる。ブラウザが読み込まれた後に続いて、ブラウザは新しい閲覧セッションを要求するよう構成されてもよい。いくつかの実施形態では、新しい閲覧セッションの要求は、ブラウザに読み込まれる際に自動に起こってもよく、またはクライアントコンピューティング装置１０２のユーザからの命令または要求といったようなイベントの結果であってもよい。
【００５２】
ブロック５０４では、ルーチン５００は、クライアント要求を照合する１つ以上のキャッシュプロファイルを識別し、かつキャッシュプロファイルデータ格納１３０から検索する。前述のように、クライアント要求は、要求に関連するあらゆる情報の少なくとも一部に基づいてキャッシュプロファイルと照合できる。１つの実施形態では、クライアント要求は、一致するものがあるかどうかを判断するためにキャッシュプロファイルのプロファイルメンバーリストに対して比較できる。他の実施形態では、クライアントのコンテンツ要求は、要求される各リソースのためのネットワークリソース識別子、各リソースが要求された時間及びデータ、クライアントコンピューティング装置情報、ブラウザ情報、ユーザ情報及び選択等といったような情報を含むことができる。そういった情報のあらゆる単一の、または組み合わせは、一致するものがあるかどうかを判断するためにキャッシュプロファイルのプロファイル識別子と比較できる。前述の比較は、リテラルでなくてもよく、むしろ特性及び関連するファジー理論の一般化及び関連性は、処理を手助けできる。
【００５３】
前述のように、キャッシュプロファイルは、例えばツリー構造または格子といった階層構造を表す形状であり得る。高いレベルの親キャッシュプロファイルは、低いレベルの対応する子キャッシュプロファイルよりもより一般的であり、かつコンテンツ要求の上位集合に照合できる。従って、照合処理は、トップダウンスキームを採用でき、それによって階層構造の高位置にあるキャッシュプロファイルをそれ以前に対して照合できる。例えば、最初にクライアント要求は階層構造のトップレベルにあるキャッシュプロファイルに対して照合できる。一致がある場合、クライアント要求は一致するキャッシュプロファイルなどの子キャッシュプロファイルに対して照合できる。
【００５４】
ブロック５０６では、ルーチン５００は、一致するキャッシュプロファイルの少なくとも一部に基づいてキャッシュ済みコンテンツを識別し、かつ検索する。１つの実施形態では、キャッシュ済みコンテンツの識別は、一致するキャッシュプロファイルによって供給される。識別は、キャッシュコンテンツデータ格納１２０においてキャッシュプロファイルに対応するキャッシュ済みコンテンツが格納または保持される位置の参照、ポインタまたはアドレスであってもよい。他の実施形態では、クライアント要求は、関連するコンテンツが要求するクライアントコンピューティング装置１０２においてローカルにキャッシュされるかどうかを示してもよい。ルーチン５００は、１つ以上の一致するキャッシュプロファイルによって識別されるような対応するキャッシュ済みコンテンツを調べることで、ローカルにキャッシュ済みコンテンツに更新が必要かどうかを判断してもよい。
【００５５】
ブロック５０８では、ルーチン５００は、クライアント要求に応じて最初のＨＴＭＬ結果を生成し、それを要求するクライアントコンピューティング装置１０２へ送信する。最初のＨＴＭＬ結果は、検索されたキャッシュ済みコンテンツを組み込むことができ、かつ追加的コンテンツまたは更新データを受け入れるための要素またはメカニズムを含むことができる。例えば、最初のＨＴＭＬ結果は、クライアント要求に応じたコンテンツの完了及び正確な最終レンダリングを確実に行うために、追加的コンテンツまたは更新のためのパイプとして機能する１つ以上のスクリプトまたは他のスペースホルダを含むことができる。いくつかの実施形態では、最初のＨＴＭＬ結果は、要求するクライアントコンピューティング装置１０２においてローカルにキャッシュ済みコンテンツを参照できる。他の実施形態では、最初のＨＴＭＬ結果または附随する情報は、今後のより早いアクセスのために、要求するクライアントコンピューティング装置１０２が最初のＨＴＭＬ結果の特定のコンテンツ部品を残すべきかを示すことができるかまたは指示することができる。
【００５６】
ブロック５１０では、ルーチン５００は、コンテンツプロバイダ１０４または関連ＣＤＮサービスプロバイダから追加的コンテンツを要求する。これは、クライアント要求の働きをするＮＣＣにインスタンス化した仮想マシンまたはブラウザによって達成できる。追加的コンテンツ要求は、クライアント要求と最初のＨＴＭＬ結果に組み込まれたキャッシュ済みコンテンツとの比較の少なくとも一部に基づいて決定できる。例えば、キャッシュされていないコンテンツ及びキャッシュ済みコンテンツへの更新が要求できる。１つの実施形態では、部分的にキャッシュ済みであるコンテンツのネットワークリソース全体は要求される必要があり、それにより、キャッシュ済みコンテンツ部品への更新だけでなくキャッシュされていないコンテンツ部品も得ることができる。他の実施形態では、コンテンツ要求が、テキスト、イメージまたはＨＴＭＬドキュメント内の特定のタグのペア間における他のオブジェクトといったような、ネットワークリソースの特定部分に向けられるように、コンテンツプロバイダ１０４または関連ＣＤＮサービスプロバイダは、ＡＰＩといったメカニズムをサポートしてもよい。この場合、ネットワークリソースの一部を構成するキャッシュされていないコンテンツは、単独で要求できる。さらに他の実施形態では、コンテンツプロバイダ１０４または関連ＣＤＮサービスプロバイダは同様に、コンテンツ更新がネットワークリソースの特定部分に対応して問い合わせることを許可するために、ＡＰＩといったメカニズムをサポートしてもよい。この場合、ネットワークリソースの一部を構成するキャッシュ済みコンテンツへの更新は、自身でコンテンツ部品を得ることなく決定できる。
【００５７】
ブロック５１２では、ルーチン５００は、追加的コンテンツ及び／または更新を得て、かつ処理する。最初のＨＴＭＬ結果（またはそこに組み込まれるキャッシュ済みコンテンツ）及び新たに得られた情報の少なくとも一部に基づいて、完全なＨＴＭＬ結果はキャッシュされていないコンテンツ部品を埋めること及びキャッシュ部品を更新することで生成できる。代替的に、または追加的に、得られたコンテンツ及び更新は、以下に記述されるような処理のためにキャッシュ管理サービス１１０に転送できる。
【００５８】
ブロック５１４では、最初のＨＴＭＬ結果への更新データは生成され、要求するクライアントコンピューティング装置１０２へ送信される。１つの実施形態では、完全なＨＴＭＬ結果は生成され、ネットワークコンピューティングプロバイダ１０７によって生成され、かつ供給される。更新データは、完全なＨＴＭＬ結果と最初のＨＴＭＬ結果の比較及び差の識別により生成できる。差を反映したデータは、要求するクライアントコンピューティング装置１０２に送信でき、クライアント要求に応じたコンテンツの最終表示のレンダリングへと供給される。例えば、データは最初のＨＴＭＬ結果に含まれる１つ以上のスクリプトによって得られ、かつ適用できる。他の実施形態では、キャッシュ管理サービス１１０は、得られたコンテンツ及び更新を直接処理する。キャッシュ管理サービス１１０は、前述のように、クライアントコンピューティング装置１０２においてキャッシュされていないコンテンツ及びキャッシュ済みコンテンツへの更新を、コンテンツの最終表示のレンダリングへ供給されるデータへ変換できる。ルーチン５００は、ブロック５１６で終了する。
【００５９】
本開示に記述される機能の全てが、開示のコンポーネント及び携帯通信装置の１つ以上のプロセッサによって実行されるソフトウェアに組み込まれてもよいことが、当業者らに理解されるであろう。ソフトウェアは、あらゆるタイプの不揮発性記憶装置に永続的に格納されてもよい。
【００６０】
とりわけ、「ｃａｎ」、「ｃｏｕｌｄ」、「ｍｉｇｈｔ」、または「ｍａｙ」といったような条件文言語は、特に明言されるかあるいは使用される文脈内で理解されない限りは、他の実施形態が特定の特徴、要素及び／またはステップを含まない一方で、特定の実施形態がそれらを含むことを伝えることを概して意図している。よって、そういった条件文言語は概して、ユーザ入力または指示の有無、これらの特徴、要素及び／またはステップが含まれるかまたは任意の特定の実施形態において実行されるかどうかにかかわらず、特徴、要素及び／またはステップが、１つ以上の実施形態のために、または１つ以上の実施形態を決定するためにロジックを含む必要があることが要求されるということを暗示する意図はない。
【００６１】
あらゆる処理の描写、要素、または本明細書に記述される及び／または添付の図面に描写されるフロー図におけるブロックは、モジュール、セグメント、または処理における特定のロジック機能またはステップを実行するための１つ以上の実行可能な指示を含むコードの一部を潜在的に表すものとして理解されるべきである。代替的実施態様は、関与する機能に応じて、要素または機能が削除されてもよく、示されるかまたは論じられたものとは不適切に実行されてもよく、実質的に同時にまたは逆の順序を含む、本明細書に開示の実施形態の範囲内に含まれることが、当業者に理解されるであろう。前述のデータ及び／またはコンポーネントがコンピュータ読み取り可能媒体に格納され、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはネットワークインタフェースといったようなコンピュータ実行可能なコンポーネントを格納するコンピュータ読み取り可能に関連するドライブメカニズムを用いてコンピューティング装置のメモリへと読み込んでもよいことがさらに理解されるであろう。さらに、コンポーネント及び／またはデータは、単一の装置に含むことができるかまたはあらゆる方法で分配できる。従って、汎用コンピューティング装置は、前述の様々なデータ及び／またはコンポーネントの処理及び／または実行でもって、本開示の処理、アルゴリズム及び手法を実行するよう構成されてもよい。
【００６２】
多くの変化及び修正が前述の実施形態に行われてもよいことが協調されるべきであり、その要素は他の許容可能な実施例に含まれることが理解される。全てのそういった修正及び変化は本開示の範囲内で本明細書に含まれることを意図し、かつ以下の特許請求によって保護される。
【００６３】
本開示の実施形態は、以下の項を考慮して記述できる。
１．特定期間を超えて複数のネットワークリソースの要求を得ることと、個別のＨＴＭＬ結果がネットワークリソースのための複数の要求のうちの１つの要求に対応する、ＨＴＭＬ結果を得ることと、前記ＨＴＭＬ結果の第１サブセットに関連する第１の実質的に不変な部品を識別するために前記ＨＴＭＬ結果を分析することと、前記第１の実質的に不変な部品の少なくとも一部に基づいて前記ＨＴＭＬ結果の第１サブセットに関連する第１ＨＴＭＬコンテンツを決定することと、前記第１ＨＴＭＬコンテンツを格納することと、前記第１の実質的に不変な部品及び前記格納された第１ＨＴＭＬコンテンツに関連するネットワークリソース要求の第１カテゴリのための第１キャッシュプロファイルを作り出すことと、を含むコンピュータ実行方法であり、要求の第１カテゴリは前記第１の実質的に不変な部品に関連する前記ＨＴＭＬ結果の第１サブセットに対応する複数の要求の第１サブセットの少なくとも一部に基づいて決定される、前記コンピュータ実行方法。
２．前記複数の要求の第１サブセットが、特定期間を超えて同じネットワークリソースの要求からなる、項１に記載のコンピュータ実行方法。
３．前記要求の第１カテゴリが、同じネットワークリソースの要求からなる、項１に記載のコンピュータ実行方法。
４．前記ＨＴＭＬ結果の第１サブセットを含む前記ＨＴＭＬ結果の第２サブセットに関連する第２の実質的に不変な部品を識別するために前記ＨＴＭＬ結果を分析することと、第２の実質的に不変な部品の少なくとも一部に基づいて前記ＨＴＭＬ結果の第２サブセットに関連する第２ＨＴＭＬコンテンツを決定することと、前記第２ＨＴＭＬコンテンツを格納することと、前記第２の実質的に不変な部品及び前記格納された第２ＨＴＭＬコンテンツに関連するネットワークリソース要求の第２カテゴリのための第２キャッシュプロファイルを作り出すことと、を含むコンピュータ実行方法であり、要求の第２カテゴリは前記ＨＴＭＬ結果の第２サブセットに対応する複数の要求の第２サブセットの少なくとも一部に基づいて決定される、前記コンピュータ実行方法。
５．前記複数の要求の第２サブセットが、特定期間を超えてネットワークリソースのセットの１つ以上のネットワークリソースの要求からなる、項４に記載のコンピュータ実行方法。
６．前記第２キャッシュプロファイルが、前記第１キャッシュプロファイルを参照する、項４に記載のコンピュータ実行方法。
７．複数のネットワークリソースの要求及び複数の要求に対応する複数の応答を得ることと、
前記複数の要求及び前記複数の応答を分析することと、前記複数の要求の第１サブセットから得られた第１特性に関する前記複数の応答の第１サブセットから第１の実質的に不変な部品を識別することと、第１特性に対応し、前記第１特性と第１の実質的に不変な部品との関係を示す第１キャッシュプロファイルを作り出すことと、を含むオペレーションを行う、プロセッサにより実行される時にコンピュータ実行可能な指示を格納する非一時的コンピュータ読み取り可能媒体。
８．前記第１キャッシュプロファイルが、前記第１の実質的に不変な部品の少なくとも一部に基づき第１コンテンツアイテムを決定することと、前記第１コンテンツアイテムを格納することと、をさらに含む第１コンテンツアイテムを示す、項７に記載の非一時的コンピュータ読み取り可能媒体。
９．前記第１キャッシュプロファイルが、第２キャッシュプロファイルを参照する、項８に記載の非一時的コンピュータ読み取り可能媒体。
１０．前記第２キャッシュプロファイルが、複数の要求の第２サブセットから得られた第２特性に対応する、項９に記載の非一時的コンピュータ読み取り可能媒体。
１１．前記第２キャッシュプロファイルが、前記第２特性と前記複数の応答の第２サブセットから識別された第２の実質的に不変な部品の間の関係を示す、項１０に記載の非一時的コンピュータ読み取り可能媒体。
１２．前記第２キャッシュプロファイルが、第２コンテンツアイテムを示す、項１０に  記載の非一時的コンピュータ読み取り可能媒体。
１３．ネットワークリソースの要求を得ることと、要求に対応する第１キャッシュプロファイルを識別することと、前記第１キャッシュプロファイルの少なくとも一部に基づき第１コンテンツアイテムを検索することと、前記第１コンテンツアイテムを組み込む第１結果を生成することと、前記第１結果を送信することと、の働きをするインターフェースコンポーネントを実行するコンピュータ実行可能な指示を実行するためのプロセッサ及びメモリ、コンピュータ実行可能な指示と、要求の少なくとも一部に基づいて追加的コンテンツアイテムを要求することと、前記追加的コンテンツアイテムを得ることと、前記追加的コンテンツアイテムを組み込む追加的結果を生成することと、追加的結果を送信することと、の働きをするデータ処理コンポーネントを実行するコンピュータ実行可能な指示と、を含むシステム。
１４．前記第１キャッシュプロファイルを識別することが、前記要求を第１キャッシュプロファイルによって示された特性と比較することを含む、項１３に記載のシステム。
１５．前記要求を第１キャッシュプロファイルによって示された特性と比較することが、前記要求に含まれるネットワークリソース識別子を特性と比較することを含む、項１４に記載のシステム。
１６．前記要求を第１キャッシュプロファイルによって示された特性と比較することが、前記要求に関連するユーザ識別子を特性と比較することを含む、項１４に記載のシステム。
１７．前記要求を第１キャッシュプロファイルによって示された特性と比較することが、前記要求に関連するクライアントコンピューティング装置識別子を特性と比較することを含む、項１４に記載のシステム。
１８．前記第１キャッシュプロファイルを識別することが、前記要求を第１キャッシュプロファイルによって示された要求のリストに対して照合することを含む、項１３に記載のシステム。
１９．前記インターフェースコンポーネントが、前記ネットワークリソースを要求されるコンピューティング装置において前記第１結果または前記第２結果のうち少なくとも１つの処理を引き起こす働きをする、項１３に記載のシステム。
２０．前記第１結果を生成することが、前記第１キャッシュプロファイルに関する第２キャッシュプロファイルの少なくとも一部に基づいて第２コンテンツアイテムを検索することと、前記第１及び第２コンテンツアイテムを組み込む前記第１結果を生成することと、を含む、項１３に記載のシステム。
２１．前記インターフェースコンポーネントがさらに、前記要求に対応する第２キャッシュプロファイルを識別することと、前記第２キャッシュプロファイルの少なくとも一部に基づき第２コンテンツアイテムを検索することと、前記第２コンテンツアイテムを組み込む第２結果を生成することと、前記第２結果を送信することと、の働きをする、項１３に記載のシステム。
２２．前記第２キャッシュプロファイルを識別することが、前記第１キャッシュプロファイルによって参照される前記第２キャッシュプロファイルを識別することと、前記要求を前記第２キャッシュプロファイルによって示される特性と比較することと、を含む、項２１に記載のシステム。
【図１】
0006383430.tif 000002
【図２】
0006383430.tif 000003
【図３Ａ】
0006383430.tif 000004
【図３Ｂ】
0006383430.tif 000005
【図３Ｃ】
0006383430.tif 000006
【図３Ｄ】
0006383430.tif 000007
【図４】
0006383430.tif 000008
【図５】
0006383430.tif 000009