(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6383430
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】プロファイルベースのキャッシュ管理
(51)【国際特許分類】
G06F 17/30 20060101AFI20180820BHJP
G06F 12/00 20060101ALI20180820BHJP
G06F 13/00 20060101ALI20180820BHJP
【FI】
G06F17/30 210D
G06F17/30 110C
G06F17/30 170Z
G06F12/00 546K
G06F13/00 540B
G06F13/00 540C
【請求項の数】14
【全頁数】23
(21)【出願番号】特願2016-555962(P2016-555962)
(86)(22)【出願日】2015年3月11日
(65)【公表番号】特表2017-511533(P2017-511533A)
(43)【公表日】2017年4月20日
(86)【国際出願番号】US2015020003
(87)【国際公開番号】WO2015138630
(87)【国際公開日】20150917
【審査請求日】2016年9月12日
(31)【優先権主張番号】14/207,324
(32)【優先日】2014年3月12日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100106541
【弁理士】
【氏名又は名称】伊藤 信和
(72)【発明者】
【氏名】ネア アーカーシュ
(72)【発明者】
【氏名】モファット ブライアン ニコラス
【審査官】
鹿野 博嗣
(56)【参考文献】
【文献】
特開2008−070949(JP,A)
【文献】
特表2012−522322(JP,A)
【文献】
特開2010−224861(JP,A)
【文献】
特開2009−157444(JP,A)
【文献】
特表2011−518376(JP,A)
【文献】
米国特許出願公開第2007/0266113(US,A1)
【文献】
米国特許出願公開第2003/0191812(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06F 12/00
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
複数のネットワークリソースの要求及び前記複数の要求に対応し且つ各々が異なるウェブページに対応する複数の応答を得ることと、
前記複数の要求の第1サブセットから第1特性を得るために、前記複数の要求及び前記複数の応答を分析することと、
前記第1特性に関する前記複数の応答の第1サブセットから第1の不変な部品を識別することと、
前記ネットワークリソースの要求の第1グループのため、前記第1特性に対応し、前記第1特性と前記第1の不変な部品との関係に基づく第1キャッシュプロファイルを作り出すことと、
前記複数の要求の第2サブセットから第2特性を得るために、前記複数の要求及び前記複数の応答を分析することと、
前記第2特性に関する前記複数の応答の第2サブセットから第2の不変な部品を識別することと、
前記ネットワークリソースの要求の第2グループのため、前記第2特性に対応し、前記第2特性と前記第2の不変な部品との関係に基づく第2キャッシュプロファイルを作り出すことと、を含み、
前記ネットワークリソースの要求の前記第1グループ及び前記第2グループが、相互排他的でなく、
前記第1キャッシュプロファイルと前記第2キャッシュプロファイルとが異なる、コンピュータ実行方法。
【請求項2】
前記第1キャッシュプロファイルがさらに、前記第1の不変な部品の少なくとも一部に基づき前記第1コンテンツアイテムを決定することと、
前記第1コンテンツアイテムを格納することと、
を含む第1コンテンツアイテムを示す、請求項1に記載のコンピュータ実行方法。
【請求項3】
前記第1キャッシュプロファイルが、前記第2キャッシュプロファイルを参照する、請求項2に記載の前記コンピュータ実行方法。
【請求項4】
前記第2キャッシュプロファイルが、前記第2特性と前記複数の応答の第2サブセットから識別された前記第2の不変な部品の間の関係を示す、請求項1に記載のコンピュータ実行方法。
【請求項5】
前記第2キャッシュプロファイルが、第2コンテンツアイテムを示す、請求項1に記載のコンピュータ実行方法。
【請求項6】
コンピュータ実行可能な指示を実行するためのプロセッサ及びメモリを含む、システムであって、
前記コンピュータ実行可能な指示は、インターフェースコンポーネントが、
ネットワークリソースの第1要求を得ることと、
第1グループ及び第2グループのネットワークリソースの要求が相互排他的でなく、前記ネットワークリソースの要求の前記第1グループに対応し第1の不変な部品との関係に基づく第1キャッシュプロファイル、及び前記ネットワークリソースの要求の前記第2グループに対応し第2の不変な部品との関係に基づく前記第1キャッシュプロファイルとは異なる第2キャッシュプロファイルを有するキャッシュプロファイルから、前記第1要求に対応する第1キャッシュプロファイルを識別することと、
前記第1キャッシュプロファイルの少なくとも一部に基づき、ネットワークリソースの複数要求であって各々の要求が異なるウェブページに対応する要求の分析に少なくとも基づく識別されたコンテンツの不変な部品に対応する第1コンテンツアイテムを検索することと、
前記第1コンテンツアイテムを組み込む第1結果を生成することと、
前記第1結果を送信することと、の働きをするよう実行し、
前記コンピュータ実行可能な指示は、データ処理コンポーネントが、
前記第1要求の少なくとも一部に基づいて追加的コンテンツアイテムのための第2要求を得ることと、
前記追加的コンテンツアイテムを得ることと、
前記追加的コンテンツアイテムを組み込む追加的結果を生成することと、
前記追加的結果を送信することと、の働きをするよう実行する、
システム。
【請求項7】
前記第1キャッシュプロファイルを識別することが、前記第1要求を前記第1キャッシュプロファイルによって示された特性と比較することを含む、請求項6に記載のシステム。
【請求項8】
前記第1要求を前記第1キャッシュプロファイルによって示された特性と比較することが、前記第1要求に含まれるネットワークリソース識別子を前記特性と比較することを含む、請求項7に記載のシステム。
【請求項9】
前記第1要求を前記第1キャッシュプロファイルによって示された特性と比較することが、前記第1要求に関連するユーザ識別子を前記特性と比較することを含む、請求項7に記載のシステム。
【請求項10】
前記第1要求を前記第1キャッシュプロファイルによって示された特性と比較することが、前記第1要求に関連するクライアントコンピューティング装置識別子を前記特性と比較することを含む、請求項7に記載のシステム。
【請求項11】
前記第1キャッシュプロファイルを識別することが、前記第1要求を前記第1キャッシュプロファイルによって示された要求のリストに対して照合することを含む、請求項6に記載のシステム。
【請求項12】
前記インターフェースコンポーネントが、前記ネットワークリソースを要求されるコンピューティング装置において前記第1結果または前記追加的結果のうち少なくとも1つの処理を引き起こす働きをする、請求項6に記載のシステム。
【請求項13】
前記第1結果を生成することが、前記第2キャッシュプロファイルの少なくとも一部に基づいて第2コンテンツアイテムを検索することと、前記第1及び第2コンテンツアイテムを組み込む前記第1結果を生成することと、を含む、請求項6に記載のシステム。
【請求項14】
前記インターフェースコンポーネントがさらに、
前記第1要求に対応する前記第2キャッシュプロファイルを識別することと、
前記第2キャッシュプロファイルの少なくとも一部に基づき第2コンテンツアイテムを検索することと、
前記第2コンテンツアイテムを組み込む第2結果を生成することと、
前記第2結果を送信することと、の働きをし、
前記第2キャッシュプロファイルを識別することが、前記第1要求を前記第2キャッシュプロファイルによって示される特性と比較することと、を含み、
前記第2キャッシュプロファイルは前記第1キャッシュプロファイルによって参照される、請求項6に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロファイルベースのキャッシュ管理に関する。
【背景技術】
【0002】
概して記述される、コンピューティング装置及び通信ネットワークは、情報交換に利用できる。一般的なアプリケーションでは、コンピューティング装置は通信ネットワークを介して他のコンピューティング装置からコンテンツを要求できる。例えば、パーソナルコンピューティング装置のユーザは、インターネットを介してサーバコンピューティング装置からウェブページといったネットワークリソースを要求するソフトウェアブラウザアプリケーションを利用できる。そういった実施形態では、ユーザコンピューティング装置は、クライアントコンピューティング装置と呼ぶことができ、サーバコンピューティング装置はコンテンツプロバイダと呼ぶことができる。
【0003】
コンテンツプロバイダは、一般的にコンテンツの効果的な送信を介してクライアントコンピューティング装置に要求されたコンテンツを供給させる。ユーザは、一般的に、コンテンツを受信すること、または即座にレンダリングされたコンテンツを有することに興味がある。いくつかのコンテンツプロバイダは、アクセスしたコンテンツまたはリソースを頻繁にキャッシュするネットワークコンピューティングプロバイダを通じて、ウェブページまたはウェブページで識別されたリソースのような要求されたコンテンツ送達の簡素化を試みる。
【発明の概要】
【課題を解決するための手段】
【0004】
プロファイルベースのキャッシュ管理のためのシステム及び方法が開示される。キャッシュ管理サービスは、複数のネットワークリソースの要求及び対応する応答を得ることができ、様々な基準または技術の少なくとも一部に基づいて要求をグループ化でき、要求の各グループに対応する応答のコンテンツ部品を決定し、かつキャッシュすることができる。要求の各グループに対応するキャッシュプロファイル及びキャッシュ済みコンテンツ部品に対応する識別は、キャッシュ管理サービスによって構築でき、保持または更新できる。続くネットワークリソースの要求は、適用可能なキャッシュ済みコンテンツの検索のために、及びそこからの要求への部分的応答を生成するために1つ以上のキャッシュプロファイルと照合できる。キャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新は、部分的応答への更新データ生成のためにさらに検索でき、それによってネットワークリソースの要求への完全な応答を完了する。
【図面の簡単な説明】
【0005】
先行の態様及び本発明の多くの附随する利点は、添付の図面と共に用いられる時、以下の詳細な記述を参照することで、より容易に認識でき、同様により容易に理解されよう。
【0006】
【
図1】キャッシュ管理サービスをホストするネットワークコンピューティングプロバイダを含むネットワーク化されたコンピューティング環境の1つの実施形態の例示的ブロック図である。
【
図2】キャッシュ管理サービスの1つの実施形態の例示的ブロック図である。
【
図3A】コンテンツ要求及び結果生じるコンテンツの分析及びキャッシュ管理サービスによるキャッシュプロファイルの作成または更新に関連する実施形態を説明する
図1のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【
図3B】コンテンツ要求及び結果生じるコンテンツの分析及びキャッシュ管理サービスによるキャッシュプロファイルの作成または更新に関連する実施形態を説明する
図1のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【
図3C】キャッシュ管理サービス、ネットワークコンピューティングプロバイダ及びコンテンツプロバイダによるクライアントのコンテンツ要求の処理に関連する実施形態を説明する
図1のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【
図3D】キャッシュ管理サービス、ネットワークコンピューティングプロバイダ及びコンテンツプロバイダによるクライアントのコンテンツ要求の処理に関連する実施形態を説明する
図1のネットワーク化されたコンピューティング環境の簡略ブロック図である。
【
図4】キャッシュ管理サービスにより実行されるキャッシュ構築またはキャッシュ更新の例示的方法のフロー図である。
【
図5】ネットワークコンピューティングプロバイダにより実行されるクライアントのコンテンツ要求を処理する例示的方法のフロー図である。
【0007】
概して記述される、本開示は、クライアントがコンテンツプロバイダといったネットワークエンティティからコンテンツを要求する時に利用されるキャッシュリソースの管理に関する。特に、本開示の態様は、コンテンツ要求及びコンテンツプロバイダによって供給されるコンテンツの対応する応答の分析に関して記述される。さらに、本開示の態様は同様に、分析の少なくとも一部に基づき、キャッシュ済みデータの確立及び更新、及びクライアント要求に応じて、管理されたキャッシュからのキャッシュ済みコンテンツの検索及び利用を含む。
【0008】
例示的実施例を参照して、ネットワークコンピューティングプロバイダは1つ以上のクライアントコンピューティング装置から、HTMLといったマークアップ言語の形式で1つ以上のコンテンツプロバイダにより供給されるコンテンツのための、多くの要求を得る。ネットワークコンピューティングプロバイダに関連するキャッシュ管理サービスは、HTMLコンテンツのどの部分が実質的に一定で維持するかを決定するために、要求されたコンテンツだけでなく要求をも分析する。キャッシュ管理サービスは、コンテンツ要求またはコンテンツプロバイダに応じたキャッシュプロファイルを構築かつ更新できる。これらのキャッシュプロファイルは、キャッシュできるHTMLコンテンツの関連部分を識別できる。従って、要求されたコンテンツのための次のクライアントの要求は、HTMLコンテンツのキャッシュ済み部分と共に少なくとも部分的に処理できる。その後、ネットワークコンピューティングプロバイダは、コンテンツプロバイダからのキャッシュされていないHTMLコンテンツのあらゆる残りの部分を要求できる。キャッシュされていないHTMLコンテンツの残りの部分は、キャッシュ済みコンテンツへの更新として組み込むことができる。キャッシュされていないコンテンツ及び更新は、要求するクライアントコンピューティング装置へと適切な形式で送信でき、要求されたコンテンツを完全にレンダリングできる。
【0009】
1つの実施形態では、HTMLコンテンツのどの部分がキャッシュできるかを決定するために、キャッシュ管理システムは、特定期間中に、コンテンツ要求及び対応する応答を分析する。例えば、1つ以上のクライアントは、特定期間中に複数回、同じ識別ネットワークリソースを要求してもよい。キャッシュ管理サービスは、これらの要求への対応するHTMLコンテンツ応答を特定期間を超えて分析してもよく、変更しそうにない応答内の部分または区分を決定してもよく、かつ決定した部分または区分に対応するキャッシュ可能なコンテンツをキャッシュデータ格納内へ格納してもよい。キャッシュ済みコンテンツを識別するキャッシュプロファイルは、同じネットワークリソースに向けられるコンテンツ要求のために作り出すことができる。
【0010】
時間的分析に加えて、キャッシュ管理システムは、コンテンツ要求、クライアント装置、ユーザ、ネットワークリソース識別子、またはコンテンツプロバイダに関連するあらゆる属性または情報にわたって、コンテンツ要求及び対応する応答の分析を実行できる。コンテンツ要求及びそれらに対応する応答のグループを識別または定義するために、様々なクラスタリングまたは分類方法が利用できる。応答のグループに共通する特定のHTML要素といったキャッシュ可能なコンテンツ部分は、決定でき、かつ格納できる。グループに対応するキャッシュプロファイルは確立でき、決定されたキャッシュ済みコンテンツを識別する。グループは、相互排他的であってもよく、または相互排他的でなくてもよい。従って、グループに対応するキャッシュプロファイルは、ツリー構造または格子といった階層構造の形状であり得る。
【0011】
要求するクライアントコンピューティング装置へ、関連するHTMLのキャッシュ済み部分を最初に検索し、送達することで、ネットワークコンピューティングプロバイダは、プロファイルベースのキャッシュ情報でもってクライアントのコンテンツ要求に応答してもよい。この方法で、クライアントコンピューティング装置は、他のコンテンツ部分が得られる間に結果を少なくとも部分的にレンダリングできる。例えば、キャッシュ管理サービスは、クライアント要求が一致する1つ以上のキャッシュプロファイルを識別してもよく、1つ以上のキャッシュプロファイルにより識別されたようなキャッシュ済みコンテンツを検索してもよく、キャッシュ済みHTMLを含む最初の結果を収集してもよく、かつ要求するクライアントコンピューティング装置に最初の結果を送信してもよい。連続で、または同時に、ネットワークコンピューティングプロバイダは、1つ以上のサードパーティコンテンツプロバイダからキャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新を要求してもよく、対応する更新データ及び要求するクライアントコンピューティング装置へ転送する更新データを蓄積してもよい。
【0012】
本開示の様々な態様が例示的実施例及び実施形態に関連して記述されるが、当業者は開示の実施形態及び実施例に制限されるというように解釈すべきではない。より詳細には、様々な実施例及び例示的実施形態が要求されたHTMLベースのコンテンツに関連して記述されるが、拡張マークアップ言語(「XML」)ベースのコンテンツ、スクリプトまたは他のコンテンツエンコーディングアルゴリズムを含む(しかしこれに限定はされない)、要求されたコンテンツの他の形態が本開示に従って利用されてもよいことが、当業者に理解されるだろう。
【0013】
図1は、キャッシュ管理サービス110をホストするネットワークコンピューティングプロバイダ107を含むネットワーク化されたコンピューティング環境の1つの実施形態の例示的ブロック図である。
図1に説明されるように、ネットワーク化されたコンピューティング環境100は、1つ以上のコンテンツプロバイダ104からコンテンツを要求するための多数のクライアントコンピューティング装置102(一般的にクライアントと呼ばれる)を含む。例示的実施形態では、クライアントコンピューティング装置102は、パーソナルコンピューティング装置、ラップトップコンピューティング装置、ハンドヘルドコンピューティング装置、ターミナルコンピューティング装置、携帯型装置、無線装置、様々な電子装置及び機器などを含む多種多様のコンピューティング装置に相当できる。例示的実施形態では、クライアントコンピューティング装置102は、広域ネットワークまたはローカルエリアネットワークのような通信ネットワーク108を介して通信を確立するのに必要なハードウェア及びソフトウェアコンポーネントを含む。例えば、クライアントコンピューティング装置102は、インターネットまたはイントラネットを介する通信を手助けするネットワーキング機器及びブラウザを備えていてもよい。
【0014】
さらに、クライアントコンピューティング装置102は、以下により詳細に記述されるように、キャッシュに関する情報を実行あるいは処理するために必要なハードウェア及びソフトウェアコンポーネントを同様に含む。キャッシュ関連情報を処理するための追加的ハードウェア/ソフトウェアコンポーネントが、ブラウザといった多目的ソフトウェアアプリケーションの実行に含まれてもよいことは、当業者に理解されるであろう。あるいは、いくつかの、または全ての追加的ハードウェア/ソフトウェアコンポーネントは、スタンドアロンで、またはキャッシュ関連情報を処理するために構成された専用のコンポーネントで具体化されてもよい。
図1に説明されてはいないが、各クライアントコンピューティング装置102は、クライアントコンピューティング装置に起因してDNSクエリを生成する、DNSネームサーバといったいくつかのタイプのローカルDNSリゾルバコンポーネントを利用する。
【0015】
ネットワーク化されたコンピューティング環境100は、通信ネットワーク108を介して1つ以上のクライアントコンピューティング装置102と通信する1つ以上のコンテンツプロバイダ104を同様に含むことができる。
図1に説明される個別のコンテンツプロバイダ104は、コンテンツプロバイダに関する1つ以上のコンピューティング装置の論理的関連に相当する。つまり、コンテンツプロバイダ104は、コンテンツ(ウェブページといった)をクライアントコンピューティング装置102またはネットワークコンピューティングプロバイダ107から得て、かつ処理するための1つ以上のサーバコンピューティング装置に対応するウェブサーバコンポーネントを含むことができる。コンテンツプロバイダ104が、様々な追加的コンピューティングリソース、コンテンツ及びリソースを管理するそういった追加的コンピューティング装置、DNSネームサーバなどに関連できることが、当業者に理解されるであろう。
【0016】
図1をさらに参照して、ネットワーク化されたコンピューティング環境100は、通信ネットワーク108を介して1つ以上のクライアントコンピューティング装置102及びコンテンツプロバイダ104と通信するネットワークコンピューティングプロバイダ107を同様に含むことができる。
図1に説明されるネットワークコンピューティングプロバイダ107は、ネットワークコンピューティングプロバイダに関する1つ以上のコンピューティング装置の論理的関連に同様に相当する。つまり、ネットワークコンピューティングプロバイダ107は、通信ネットワーク108上のノードに相当する多数のポイント・オブ・プレゼンス(POP)ロケーション134、142、148を含むことができる。各POP134、142、148は、一般的にはNCCのインスタンスを指す、多数の仮想マシンのインスタンスを介して、ブラウザアプリケーションまたはデータストリーミングアプリケーションといったアプリケーションをホストするためのネットワークコンピューティングコンポーネント(NCC)136、144、150を含む。NCC136、144、150が物理的コンピューティング装置リソース及び仮想マシンの複数のインスタンスを供給するため、または仮想マシンのインスタンスの生成を動的に引き起こすためのソフトウェアを含むことが当業者に理解されるであろう。そういった生成は、クライアントコンピューティング装置から、といった特定の要求の少なくとも一部に基づくことができ、またはNCCは仮想マシンのインスタンスの動的な生成をひとりでに開始できる。NCC POP134、142、148は、ネットワークまたはコンピューティングリソースの送達及び処理に用いられるあらゆるタイプのデータを格納するための多数の記憶装置で構成される記憶コンポーネントを同様に含む。NCC136、144、150はさらに、要求されたアプリケーションをサポートする仮想マシンのインスタンスを選択するための、及び/または要求ルーティングを手助けするDNSネームサーバに情報を供給するための負荷バランシングまたは負荷シェアリングソフトウェア/ハードウェアコンポーネントを含む(しかしこれに限定はされない)、通信を手助けする追加的ソフトウェア及び/またはハードウェアコンポーネントを含んでもよい。
【0017】
例示的実施形態では、NCC POP134、142、148がネットワークコンピューティングプロバイダ107に論理的に関連するものとして
図1で説明されるが、NCC POPは、クライアントコンピューティング装置102の様々な人口統計に最も有効な方法で通信ネットワーク108のあらゆる場所に地理的に分散することができる。さらに、ネットワークコンピューティングプロバイダ107が、様々な追加的コンピューティングリソース、コンテンツ及びリソースを管理するそういった追加的コンピューティング装置などに関連できることが、当業者に理解されるであろう。さらに、ネットワークコンピューティングプロバイダ107のコンポーネントが同じまたは異なるエンティティによって管理できることが、当業者に理解されるであろう。
【0018】
図1にさらに説明されるように、ネットワークコンピューティングプロバイダ107は、本明細書に記述されるキャッシュ管理の方法を実行するよう構成されたキャッシュ管理サービス110、キャッシュコンテンツデータ格納120、及びキャッシュプロファイルデータ格納130を含むことができる。キャッシュ管理サービス110は、コンテンツ及び1つ以上のコンテンツプロバイダにより供給されるコンテンツを含むクライアントに提供される対応する応答のための様々なクライアント要求を分析するために実行できる。キャッシュ管理サービス110は、クライアントの次のコンテンツ要求を処理することを促進するために利用できる分析の少なくとも一部に基づいて、キャッシュプロファイル及びキャッシュ済みコンテンツを構築、維持及び更新するために同様に実行できる。キャッシュ管理サービス110はさらに、クライアントの様々なコンテンツ要求を処理することを手助けできる。例えば、キャッシュ管理サービス110は、一致するキャッシュプロファイルを識別し、適切なキャッシュ済みコンテンツを検索し、最初の結果及び対応する更新データを収集し、かつ送信してもよい。
図1に単一のコンポーネントとして説明されるが、キャッシュ管理サービス110は、物理的コンピューティング装置、物理的マシンにホストされた仮想化コンピューティング装置、またはそれらの組み合わせのいくつかを含む、ネットワークベースのコンピューティング装置にいくつでも対応してもよい。さらに、キャッシュ管理サービス110は、ネットワークコンピューティングプロバイダ107の一部としてホストされてもよく、またはネットワークコンピューティングプロバイダ107とは無関係に供給されてもよい。
【0019】
キャッシュコンテンツデータ格納120は、コンテンツ、コンテンツの一部、またはネットワークコンテンツ及びリソースに関するあらゆる情報またはデータを格納できる。キャッシュコンテンツデータ格納120は一般的に、あらゆるリポジトリ、データベース、またはディスクメモリ、フラッシュメモリ、光学メモリなどといった非一時的コンピュータ読み取り可能媒体に具現化される情報格納システムを含むことができる。さらに、キャッシュコンテンツデータ格納120は、ネットワークベースのメモリを含むことができる。単一のコンポーネントとして説明されるが、キャッシュコンテンツデータ格納120は、キャッシュ管理サービス110との通信を最適化するための分配方法で実行されてもよい。
【0020】
キャッシュプロファイルデータ格納130は、コンテンツ要求のあらゆる特性、様々なキャッシュ済みコンテンツの識別または参照、セマンティックまたはキャッシュ済みコンテンツまたはネットワークリソースに関する他の情報間の関連データを格納できる。キャッシュプロファイルデータ格納130は一般的に、あらゆるリポジトリ、データベース、またはディスクメモリ、フラッシュメモリ、光学メモリなどといった非一時的コンピュータ読み取り可能媒体に具現化される情報格納システムを含むことができる。さらに、キャッシュ
プロファイルデータ格納130は、ネットワークベースのメモリを含むことができる。単一のエンティティとして説明されるが、キャッシュ
プロファイルデータ格納130は、キャッシュ管理サービス110と通信を最適化するための分配方法で実行されてもよい。
【0021】
図1に供給されるコンポーネント及び構成は、実際の例示的なものであることが、当業者に理解されるであろう。従って、追加的または代替的なコンポーネント及び/または構成、特に追加的なコンポーネントに関しては、通信を手助けするためのシステム及びサブシステムが利用されてもよい。
【0022】
図2は、
図1に描写されるキャッシュ管理サービスといったキャッシュ管理サービス110の1つの実施形態の例示的なブロック図である。例示的に、キャッシュ管理サービス110は、本明細書に記述される様々なキャッシュ管理方法及び処理を実行するための、インターフェースモジュール202、コンテンツ分析モジュール204及び要求処理モジュール206を含んでもよい。インターフェースモジュール202は、クライアントコンピューティング装置102と様々な方法で通信できる。例えば、コンテンツ要求を得るために、及びコンテンツ要求への応答を送達するために、例えば最初の結果はキャッシュ済みコンテンツを組み込み、次にクライアントコンピューティング装置102へのデータを更新する。代替的に、または追加的に、インターフェースモジュール202は、各コンテンツ要求に対応する遠隔閲覧セッションによってクライアントコンピューティング装置と関連するネットワークコンピューティングプロバイダ107の1つ以上のNCCにおいてインスタンス化する仮想マシンまたはブラウザと通信できる。この実施形態では、インターフェースモジュール202は、クライアントのコンテンツ要求を得て、各コンテンツ要求するクライアントコンピューティング装置102と次に通信する仮想マシンまたはブラウザインスタンスに最初の結果及び更新データを含む応答を送達する。
【0023】
例示的に、コンテンツ分析モジュール204は、例えば、クライアント要求及び対応する応答をグループ化または分類し、各キャッシュ可能なデータを得て、かつそれらに基づくキャッシュプロファイルを構築または更新するためのクラスタリングまたは分類アルゴリズムといった様々な計算的、統計的、または機械学習の方法を実行できる。コンテンツ分析モジュール204により分析されるクライアント要求及び対応する応答は、インターフェースモジュール202から送ることができ、またはそういった情報を保持するネットワークコンピューティングプロバイダ107のレポジトリまたは格納システムから得ることができる。要求処理モジュール206は、ネットワークリソースといったクライアントのコンテンツ要求を処理でき、かつ対応する応答を生成できる。つまり、クライアント要求は、インターフェースモジュール202によって要求処理モジュール206へ送ることができる。要求処理モジュール206は、クライアント要求を1つ以上のキャッシュプロファイルと照合でき、キャッシュプロファイルによって識別されたキャッシュ済みコンテンツを検索でき、検索されたキャッシュ済みコンテンツを組み込むクライアント要求に対応する最初の結果を生成でき、キャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新を得ることができ、かつ最初の結果のための更新データを生成することができる。連続で、または同時に、最初の結果及び更新データは、要求処理モジュール206によってインターフェースモジュール202へ送ることができる。
【0024】
キャッシュ管理サービス110は、本明細書に記述される様々なキャッシュ管理方法及び処理を手助けするかまたは実行する追加的または異なるモジュールまたはコンポーネントを含んでもよい。さらに、モジュールまたはコンポーネントは、追加的コンポーネント、方法及び処理を手助けするためのシステム及びサブシステムを含んでもよい。
【0025】
図3A〜3Dを参照して、
図1におけるネットワーク化されたコンピューティング環境100の様々なコンポーネント間の相互作用が説明される。実施例の目的のためではあるが、通信を手助けするために利用される多くのコンポーネントを示さないように、説明は簡素化されている。本開示の趣旨及び範囲から逸脱することなくそういったコンポーネントが利用でき、かつその追加的相互作用が状況に応じて起こることが、当業者に理解されるであろう。さらに、通信はコンポーネント間の直接通信として説明されるが、全ての例示的通信はコンポーネント間で直接起こるかまたは通信ネットワーク108を介して手助けされることが、当業者に理解されるであろう。
【0026】
図3A及び3Bは、コンテンツ要求及びHTML結果の分析及びキャッシュ管理サービス110によるキャッシュプロファイルの作成または更新に関連する実施形態を説明する
図1のネットワーク化されたコンピューティング環境100の簡略ブロック図である。
図3Aを参照して、(1)では、ネットワークコンピューティングプロバイダ107は、クライアントコンピューティング装置102からコンテンツ要求を得る。例示的に、個別のクライアントコンピューティング装置102は、イベントまたはユーザ要求に応じてネットワークコンテンツを閲覧するためのブラウザを読み込んでもよい。ブラウザは、ネットワークコンピューティングプロバイダ107への閲覧セッション要求を介してネットワークコンテンツを要求するために実行してもよい。クライアントコンピューティング装置102のユーザ観点から、新しい閲覧セッションの要求は、1つ以上の対応するコンテンツプロバイダ104に送信されることが計画された要求に対応する。例示的に、要求はブラウザ読み込みの結果(例えば、デフォルトまたは「ホーム」ページの要求)として自動的に生成されてもよく、またはユーザがリンクをたどるかまたはブラウザのアドレスバーへネットワークアドレスを入力することの結果として生成されてもよい。
【0027】
図3Aに説明されるように、閲覧セッション要求は、最初にネットワークコンピューティングプロバイダ107に送信される。例示的実施形態では、ネットワークコンピューティングプロバイダ107は、クライアントコンピューティング装置102からの閲覧セッション要求を受け入れるためにアプリケーションプログラムインターフェース(以下「API」)を利用する。閲覧セッション要求は、インターネットプロトコル(「IP」)アドレス、URL、メディアアクセスコントロール(「MAC」)アドレス等を含む(しかしこれに限定はされない)、あらゆる形式であり得る要求されたネットワークリソースに対応するネットワークアドレス情報を含むことができる。この情報は、キャッシュ管理サービス110から直接得ることができるかまたは、仮想マシンまたは閲覧セッション要求の役割を持つネットワークコンピューティングプロバイダ107のNCCによってホストされるブラウザインスタンスによって中継されるかまたはフィルタリングされてもよい。
【0028】
(2)では、ネットワークコンピューティングプロバイダ107は個別のコンテンツ要求を処理する。ネットワークコンピューティングプロバイダ107は、(3)での閲覧セッション要求に含まれるネットワークアドレスの少なくとも一部に基づいてコンテンツプロバイダ104へネットワークリソースの要求を送信できる。例えば、閲覧セッション要求は、「http://www.xyzsite.com/default.htm.」といったような、ウェブページのURLを含んでもよい。
【0029】
図3Aを続けて参照して、(4)では、コンテンツ要求は、関連するウェブサーバを通じてといったように、コンテンツプロバイダ104によって受け取られ、かつ処理される。例示的実施形態に従って、コンテンツの要求は、ハイパーテキストトランスファプロトコル(「HTTP」)といったような、一般的ネットワークプロトコルに従うことができる。コンテンツ要求の受領をもって、コンテンツプロバイダ104は適切な応答コンテンツを識別する。例示的実施形態では、要求されたコンテンツは、HTMLなどといったような、情報の処理を介して、クライアントコンピューティング装置102に表示されるウェブページに対応できる。次に(5)では、コンテンツプロバイダ104は、ネットワークコンピューティングプロバイダ107へ識別されたコンテンツを送信する。(6)では、ネットワークコンピューティングプロバイダ107は、クライアントコンピューティング装置102から得たコンテンツ要求に対応するHTML結果を生成する。関連する事前キャッシュ済みのコンテンツがネットワークコンピューティングプロバイダ107に利用できないといういくつかの実施形態では、各コンテンツ要求に対応する完全なHTML結果は、コンテンツプロバイダ104から得られたコンテンツに基づいて単独で生成できる。
【0030】
図3Bを参照して、(7)では、様々なコンテンツプロバイダ104により供給される完全なHTML結果及びその対応するコンテンツ要求は、キャッシュプロファイル構築及び更新のためにキャッシュ管理サービス110により分析できる。例えば、分析はコンテンツ要求及び特定期間中に生成される対応するHTML結果において実行できる。つまり、同じ識別可能ネットワークリソース向けのコンテンツ要求のために、キャッシュ管理サービス110は、対応するHTML結果を分析してもよく、かつ特定期間中に変化しないHTMLの1つ以上の部品を決定してもよい。例えば、部品は、ブラウザアプリケーションにナビゲーションバー、ロゴ、レイアウト、構造等にレンダリングさせるHTMLコードに対応できる。他の実施例では、キャッシュ管理サービス110は、コード分析の許容範囲内であると思われるHTMLコードにおける変動を同様に含むことができる。言い換えれば、許容範囲内の変動はHTMLの部品が決定される時に変化とはみなされない。
【0031】
従って、(8)では、ネットワークリソース及び決定された部品に対応するキャッシュプロファイルは、キャッシュプロファイルデータ格納130において構築でき、かつ格納できる。変化しない部品は、別個のネットワークリソースのグループに対応するHTML結果に表れてもよい。その結果、個別のキャッシュプロファイルは、ネットワークリソースのグループ及びその一般的に不変の部品に対応できる。さらに、コンテンツ要求及び対応するHTML結果の分析は、一般的または不変のHTML部品を決定するために、クライアントコンピューティング装置、ユーザまたはユーザ関連データ、ネットワークリソース識別子、またはコンテンツ要求または結果生じる応答に関連するあらゆる特性といったような、特性に渡って実行できる。
【0032】
HTML部品は特定期間にわたって絶対に不変である必要はなく、むしろ決定は、対応するコンテンツプロバイダによって供給されるかまたは分析から得られたキャッシュ可能な状態または表示の少なくとも一部に基づくことができる。様々なクラスタリング、分類または他の計算的または機械学習の方法は、コンテンツ要求、それらに対応する応答及びキャッシュ可能なHTML部品のグループを識別または定義するために利用できる。グループは、相互排他的であってもよいかまたは相互排他的でなくてもよい。従って、グループまたは個別のコンテンツ要求に対応するキャッシュプロファイルは、ツリー構造または格子といった階層構造の形状であり得る。各キャッシュプロファイルは、プロファイルに一致するコンテンツ要求の特性または基準を指定するプロファイル識別子を含んでもよい。代替的に、または追加的に、各キャッシュプロファイルは、プロファイルに一致するコンテンツ要求を列挙するプロファイルメンバーリストを含んでもよい。キャッシュプロファイルが階層構造の形状である場合は、各キャッシュプロファイルは、それらの親または子キャッシュプロファイルを参照してもよい。
【0033】
(9)では、決定した部品に対応するキャッシュ可能なコンテンツは、キャッシュコンテンツデータ格納120に格納でき、かつキャッシュプロファイルによって識別または参照できる。(10)では、HTML結果は、ネットワークコンピューティングプロバイダ107から各クライアントコンピューティング装置102に送信される。いくつかの実施形態では、HTML結果または結果に附随する情報は、HTML結果内でキャッシュ可能なコンテンツを示してもよく、かつ今後の利用に備えてキャッシュ可能なコンテンツを残すために対応するクライアントコンピューティング装置102に指示してもよい。
【0034】
図3C及び3Dは、キャッシュ管理サービス、ネットワークコンピューティングプロバイダ及びコンテンツプロバイダによるリソース要求の処理に関連する実施形態を説明する
図1のネットワーク化されたコンピューティング環境100の簡略ブロック図である。つまり、
図3C及び3Dは、クライアントコンピューティング装置102からのコンテンツ要求処理におけるキャッシュ済みコンテンツ部品の利用の実施例を説明する。
図3Cを参照して、(1)では、キャッシュ管理サービス110は、クライアントコンピューティング装置102からコンテンツ要求を得る。前述のように、コンテンツの要求は、クライアントコンピューティング装置102から送られた閲覧セッション要求の一部であり得、かつ閲覧セッションの役割を持つネットワークコンピューティングプロバイダ107のNCCによってキャッシュ管理サービス110へと中継されてもよい。
【0035】
要求の受領をもって、(2)では、キャッシュ管理サービス110は、クライアント要求と照合するキャッシュプロファイルデータ格納130に格納された1つ以上のキャッシュプロファイルを識別するためにクライアント要求を処理する。例えば、クライアント要求は、プロファイルメンバーリスト上に識別されてもよく、またはキャッシュプロファイルのプロファイル識別子によって特定された特性を有してもよい。つまり、キャッシュプロファイルの階層構造がある場合、トップダウン検索スキームは、キャッシュプロファイル照合の識別のために実行できる。例えば、クライアント要求は、階層構造のトップからさらに一般的なキャッシュプロファイル(対応するさらなるコンテンツ要求)に対して照合でき、次に一致する親キャッシュプロファイルによって参照されるより詳細なキャッシュプロファイル(より少ないコンテンツ要求に対応する)に対して照合できる。
【0036】
(3)では、キャッシュ管理サービス110は、照合キャッシュプロファイルによって識別されるようなキャッシュコンテンツデータ格納120からキャッシュ済みコンテンツ部品を検索できる。キャッシュ済みコンテンツ部品は、全ての照合キャッシュプロファイルが識別された後に検索できる。あるいは、キャッシュ済みコンテンツ部品は、キャッシュプロファイル照合処理が進行している間に検索できる。例えば、不変のウェブサイトレイアウト、構造またはロゴといったような、さらなる一般的なキャッシュプロファイルによって識別されたコンテンツ部品は、テキスト記述またはサイトの特定ウェブページに関連するイメージといったような、より詳細なキャッシュプロファイルによって識別されたコンテンツ部品よりも早く検索される。(5)では、キャッシュ管理サービス110は、検索されたコンテンツ部品の少なくとも一部に基づいて最初のHTML結果を生成でき、かつそれを(6)でのコンテンツ要求に応える部分的コンテンツレンダリングのために、要求するクライアントコンピューティング装置102に送信できる。前述のようなキャッシュ済みコンテンツ部品が連続的に検索される場合において、最初のHTML結果は、連続的に送信される複数の部品を含むことができる。(7)では、クライアントコンピューティング装置102は、例えば、キャッシュ済みコンテンツ部品をそのコンテンツ要求に対応する一部としてレンダリングし、かつ表すために、最初のHTML結果を処理することができる。他の実施形態では、クライアントコンピューティング装置102は、最初のHTML結果によって参照されるかまたは示されるようなローカルにキャッシュ済みコンテンツをレンダリングし、かつ表してもよく、対応更新を待ってもよい。
【0037】
例示的に、一度クライアントコンピューティング装置102が最初のHTML結果を得ると、
ネットワークコンピューティングプロバイダ107は、あらゆる残っているHTMLのキャッシュされていないバージョンを要求できる。
図3Dを参照して、(8)では、ネットワークコンピューティングプロバイダ107は、キャッシュされていない要求されたコンテンツの1つ以上の部品を識別する。(9)では、ネットワークコンピューティングプロバイダ107は、キャッシュ済みコンテンツの検索の次に、または平行して、サードパーティコンテンツプロバイダからキャッシュ済みコンテンツへ、キャッシュされていないコンテンツまたは更新を要求してもよい。
図3Aを参照して前述のように、コンテンツ要求は、関連するウェブサーバを通じてといったように、コンテンツプロバイダ104によって受け取られ、かつ処理される。例示的実施形態に従って、コンテンツの要求は、HTTPといったような、一般的ネットワークプロトコルに従うことができる。
【0038】
コンテンツ要求の受領をもって、(10)では、コンテンツプロバイダ104は適切な応答コンテンツを識別する。いくつかの実施形態では、コンテンツ要求は、ネットワークコンピューティングプロバイダ107または関連する位置においてキャッシュ済みコンテンツへの更新について問い合わせる。この場合、コンテンツプロバイダ104は、任意の適用可能なコンテンツ更新があるかどうかを判断する必要がある。次に、コンテンツプロバイダ104は、(11)でネットワークコンピューティングプロバイダ107へ識別されたコンテンツまたは更新を送信する。
【0039】
(12)では、ネットワークコンピューティングプロバイダ107は得られたコンテンツを処理できる。例えば、得られたコンテンツまたは更新を最初の結果と統合するため、かつコンテンツ要求に対応する完全なHTML結果を生成するためである。代替的に、または追加的に、ネットワークコンピューティングプロバイダ107は、最初の結果と比較可能なデータ形式に変換するといったように、キャッシュされていないコンテンツまたはキャッシュ済みコンテンツへの更新を、処理するためのキャッシュ管理サービスへ転送できる。(13)では、キャッシュ管理サービス110は、完全なHTMLの少なくとも一部に基づく、またはキャッシュされていないコンテンツ及び更新の少なくとも一部に基づく最初のHTMLに適用可能な更新データを生成できる。更新データはその後、(14)で要求するクライアントコンピューティング装置102と通信でき、要求されたコンテンツの完全な表示をレンダリングすることが可能になる。(15)では、クライアントコンピューティング装置102は、更新データを処理する。クライアントコンピューティング装置102は、例えば、最初のHTML結果に組み込まれた特定のスクリプト実行を介して、更新データを最初のHTML結果と統合でき、それにより完全な応答を最初のコンテンツ要求にレンダリング及び表示できる。クライアントコンピューティング装置102は同様に、更新データに基づいてそのローカルにキャッシュ済みコンテンツを更新してもよい。いくつかの実施形態では、コンテンツレンダリングを完成するだけでなく、関連するキャッシュプロファイル及びコンテンツの更新を引き起こす部分に関して、フィードバックは要求するクライアントコンピューティング装置102から得ることができる。
【0040】
図4は、キャッシュ構築またはキャッシュ更新の例示的方法のフロー図である。例示的に、ルーチン400は、キャッシュ管理サービス110のコンテンツ分析モジュール204によって実行できる。ルーチン400の実施態様は同様に、キャッシュ管理サービス110のインターフェースモジュール202によって、またはキャッシュ管理サービス110をホストするネットワークコンピューティングプロバイダ107の他のコンポーネントによって手助けされてもよい。ルーチン400は、キャッシュ管理サービス110またはネットワークコンピューティングプロバイダ107のシステム管理者によって開始でき、特定の時期に実行するよう予定されてもよく、1つ以上のネットワークコンピューティングプロバイダ107等における連続的実行処理であり得る。開始した後、ブロック402では、キャッシュ管理サービス110は、1つ以上のクライアントコンピューティング装置102から起こるコンテンツ要求を得る。前述のように、例示的に、ネットワークコンピューティングプロバイダ107は様々なクライアントコンピューティング装置102からコンテンツ要求を受け取る。コンテンツ要求は、キャッシュ管理サービス110から直接得ることができるか、またはネットワークコンピューティングプロバイダ107の他のコンポーネントによって転送できる。要求に関する情報は、利用するためにデータ格納に格納できる。例えば、情報は、メモリ、データベース、ハードディスク上などに電子的に格納できる。情報は、要求される各リソースのためのリソース識別子、各リソースが要求される時間及びデータ、クライアントコンピューティング装置情報、ブラウザ情報、ユーザ情報及び選択等を含むことができる。
【0041】
ブロック404では、キャッシュ管理サービス110は、得られたコンテンツ要求に対応するHTML結果を得る。前述のように、ネットワークコンピューティングプロバイダ107は、クライアントコンピューティング装置102からのコンテンツ要求に対応する、あらゆるキャッシュ済みコンテンツ部品、キャッシュされていない部品及びキャッシュ済み部品への更新を組み込む完全なHTML結果を生成できる。完全なHTML結果は、キャッシュ管理サービス110へ転送できる。代替的に、または追加的に、キャッシュ管理サービス110は、ネットワークコンピューティングプロバイダ107によって得られ、かつ転送されるように、キャッシュ済みコンテンツ部品または、キャッシュ済み部品、及びキャッシュされていない部品及びキャッシュ済み部品への更新を組み込む最初のHTML結果から完全なHTML結果を得ることができる。個別のコンテンツ要求に対応するHTML結果は、利用するためにデータ格納に格納できる。例えば、HTML結果は、メモリ、データベース、ハードディスク上などに電子的に格納できる。HTML結果は、HTML結果の外観及びレイアウトを定義するためのCSS情報だけでなく、ヘッディング、パラグラフ、リスト、リンク、または引用、埋め込みイメージ、他のオブジェクト、またはスクリプトといったような、構造化テキストを含むことができる。
【0042】
ブロック406では、ルーチン400は、キャッシュ可能なコンテンツを決定するために、得られたコンテンツ要求及び対応するHTML結果を処理でき、かつ分析できる。ネットワークコンピューティングプロバイダ107及びキャッシュ管理サービス110は、コンテンツ要求を処理でき、かつ独立したクライアントコンピューティング装置102のいくつでもHTML結果で応答でき、ひいてはコンテンツ要求及び対応するHTML結果のパターンを認識するよう位置する。キャッシュ管理サービス
110は、コンテンツ要求に対応するHTML結果のキャッシュ可能な部品を決定するためにそれらのパターンを使用でき、変更のためにそれらの結果を積極的に監視でき、それに応じてキャッシュプロファイルを作り出すかまたは更新できる。
【0043】
いくつかの実施形態では、要求及びHTML結果は、HTML結果内のキャッシュ可能なコンテンツ部品を決定するために一時的に処理できる。例えば、特定のネットワークリソースの要求に対応するHTML結果は、結果内のどの部品が特定期間を超えて変更しないかを監視でき、かつ決定できる。これらの不変の部品は、ナビゲーションバー、ロゴ、レイアウト、構造、背景、テキストまたは他の要素を表示できる。1つの実施形態では、部品の決定は、HTMLウェブページといったようなHTMLのセマンティックによって手助けできる。例えば、部品の定義は、対のタグまたは単一のタグによって示されるHTML要素の少なくとも一部に基づく。ルーチン400は連続的処理であり得るので、ネットワークリソースの新しい部品は、最初に変化するものと思われ、後に不変であると認識されてもよい。特定のネットワークリソースのHTML結果内における不変の部品に対応するコンテンツは、キャッシュ可能であると標識が付けられてもよく、かつキャッシュコンテンツデータ格納120において格納または更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置102に実装されたブラウザへの送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置102に送信でき、かつクライアントコンピューティング装置102によって保持できる。
【0044】
他の実施形態では、処理及び分析は、得られたコンテンツ要求に関連する特性の少なくとも一部に基づくことができる。特定の特性または特性の組み合わせに関連するコンテンツ要求に対応するHTML結果のキャッシュ可能なコンテンツ部品が、決定されてもよい。これらの特性は、クライアントコンピューティング装置102から起こるコンテンツ要求に含まれるかまたは得られたあらゆる情報であり得る。例えば、ネットワークリソース識別子は、特定のコンテンツプロバイダ、ドメイン、サブドメイン、ウェブサイト、サブサイトまたはネットワークリソースのあらゆる他の分類、ユーザ関連、選択または他の情報、関連、提携、またはクライアントコンピューティング装置の他の情報等に関連する。特性または特性の組み合わせに対応する全ての得られたHTML結果への一般的部品は、決定されてもよく、一般的部品に対応するコンテンツはキャッシュ可能であると標識が付けられてもよく、かつキャッシュコンテンツデータ格納120に格納または更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置102に実装されたブラウザへ送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置102に送信でき、かつクライアントコンピューティング装置102によって保持できる。
【0045】
さらに他の実施形態では、処理及び分析は、時間的及び特性ベースの両方であり得る。例えば、特性または特性の組み合わせに対応する全てのHTML結果は、それらの一般的部品の何が特定期間を超えて変化しないかを決定するために監視できる。不変の一般的部品に対応するコンテンツは、キャッシュ可能であると標識が付けられてもよく、かつキャッシュコンテンツデータ格納120において格納または更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置102に実装されたブラウザへの送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置102に送信でき、かつクライアントコンピューティング装置102によって保持できる。
【0046】
なおもさらなる実施形態では、処理及び分析は、得られたコンテンツ要求及び対応するHTML結果のクラスタリング、分類、または時系列分析に適した、任意の計算的、統計的、または機械学習の方法を採用できる。適切な方法は、任意の関連情報の少なくとも一部に基づいてコンテンツ要求と対応するHTML結果を必要に応じてグループ化でき、かつ不変のまたは一般的部品及び対応する結果のキャッシュ可能なコンテンツを決定できる。適切な方法は同様に、処理及び分析を手助けするために、キャッシュ可能な部品決定に関するあらゆる外部の情報または知識を利用できる。1つの実施形態では、協調フィルタリングといったような技術は、外部の情報または知識を処理し、かつ組み込むために利用できる。さらに、キャッシュ可能なコンテンツは、キャッシュコンテンツデータ格納120に格納することができ、かつ更新できる。例えば、キャッシュ可能なコンテンツをクライアントコンピューティング装置102に実装されたブラウザへの送信すること及び今後使用するためにキャッシュ可能なコンテンツを自身のキャッシュへ格納するようブラウザへ指示すること、といったように、キャッシュ可能なコンテンツは同様に、クライアントコンピューティング装置102に送信でき、かつクライアントコンピューティング装置102によって保持できる。
【0047】
不変の、または一般的部品に対応するコンテンツは、ブラウザによって独立して表示可能またはレンダリング可能であってもよいかまたはそうでなくてもよく、従って、いくつかの実施形態では、独立して表示可能またはレンダリング可能なコンテンツのみがキャッシュ可能である及び/またはキャッシュコンテンツデータ格納120に格納されると標識が付けられる。いくつかのネットワークリソースまたはコンテンツは、他よりも頻繁に要求されてもよく、従って、いくつかの実施形態では、前述の処理及び分析は対応する要求の頻度に基づいて優先順位付けされてもよい。他の実施形態では、閾値を指定することで、閾値よりも頻繁に要求されるネットワークリソースまたはコンテンツのみが分析される。
【0048】
いくつかのコンテンツプロバイダは同様に、HTML結果内のキャッシュ可能なコンテンツ部品を決定するための処理及び分析を手助けするために情報を供給してもよい。例えば、コンテンツプロバイダは、ヘッダまたは要求されたネットワークリソースの送信に関連する他の部品におけるキャッシュ可能な状態または表示を含んでもよい。コンテンツプロバイダは同様に、関連ネットワークリソースのためのセマンティックを定義してもよく、それによりキャッシュ可能な状態がそこに埋め込まれる。これらの場合、キャッシュ可能な部品を有するネットワークリソースは、事前にポーリングでき、または処理及び分析の一部としてインターバルを動的に計算できる。ルーチン400は、コンテンツのキャッシュ可能な状態を連続的に監視するために、ボット、ウェブクローラ、インデクサなどを含む自動化技術を同様に使用できる。
【0049】
ブロック408では、対応するキャッシュプロファイルは、作られるかまたは更新される。前述のように、キャッシュプロファイルは、キャッシュプロファイルデータ格納130に格納できる。キャッシュプロファイルは、ツリー構造または格子といった階層構造の形状であり得る。各キャッシュプロファイルは、ブロック406においてそれぞれ決定された不変のまたは一般的部品に対応し、かつプロファイルに一致するコンテンツ要求の特性または基準を指定するプロファイル識別子を含んでもよい。代替的に、または追加的に、各キャッシュプロファイルは、プロファイルに一致するコンテンツ要求を列挙するプロファイルメンバーリストを含んでもよい。キャッシュプロファイルが階層構造の形状である場合は、各キャッシュプロファイルは、それらの親または子キャッシュプロファイルを参照してもよい。
【0050】
いくつかの実施形態では、特定の決定された不変の、または一般的部品に対応するキャッシュプロファイルの存在は、ブロック406において対応して格納されたかまたは更新されたコンテンツの識別、ブロック406における処理及び分析の少なくとも一部に基づいて更新されたプロファイル指示またはメンバーリストといったような、新たに決定された情報をもって更新できる。存在するキャッシュプロファイルに対応しない、ブロック406において決定された不変の、または一般的部品のために、新しいキャッシュプロファイルはそれに応じて作ることができ、かつキャッシュプロファイルデータ格納130に格納できる。ルーチン400は、ブロック410で終了する。
【0051】
図5は、ネットワークコンピューティングプロバイダ107で実行されるクライアントのコンテンツ要求を処理する例示的方法のフロー図である。ネットワークコンピューティングプロバイダ107がクライアントコンピューティング装置102からクライアントのコンテンツ要求を得る時に、クライアント要求処理ルーチン500は、ブロック502で始まる。処理は、クライアントコンピューティング装置102からネットワークコンピューティングプロバイダ107へのクライアントのコンテンツ要求及び他の関連情報を含むかまたは示すことのできる、新しい閲覧セッション要求の生成及び処理で始まることができる。クライアントコンピューティング装置102は、イベントまたはユーザ要求に応じてネットワークコンテンツを閲覧するためのブラウザを読み込むことができる。ブラウザが読み込まれた後に続いて、ブラウザは新しい閲覧セッションを要求するよう構成されてもよい。いくつかの実施形態では、新しい閲覧セッションの要求は、ブラウザに読み込まれる際に自動に起こってもよく、またはクライアントコンピューティング装置102のユーザからの命令または要求といったようなイベントの結果であってもよい。
【0052】
ブロック504では、ルーチン500は、クライアント要求を照合する1つ以上のキャッシュプロファイルを識別し、かつキャッシュプロファイルデータ格納130から検索する。前述のように、クライアント要求は、要求に関連するあらゆる情報の少なくとも一部に基づいてキャッシュプロファイルと照合できる。1つの実施形態では、クライアント要求は、一致するものがあるかどうかを判断するためにキャッシュプロファイルのプロファイルメンバーリストに対して比較できる。他の実施形態では、クライアントのコンテンツ要求は、要求される各リソースのためのネットワークリソース識別子、各リソースが要求された時間及びデータ、クライアントコンピューティング装置情報、ブラウザ情報、ユーザ情報及び選択等といったような情報を含むことができる。そういった情報のあらゆる単一の、または組み合わせは、一致するものがあるかどうかを判断するためにキャッシュプロファイルのプロファイル識別子と比較できる。前述の比較は、リテラルでなくてもよく、むしろ特性及び関連するファジー理論の一般化及び関連性は、処理を手助けできる。
【0053】
前述のように、キャッシュプロファイルは、例えばツリー構造または格子といった階層構造を表す形状であり得る。高いレベルの親キャッシュプロファイルは、低いレベルの対応する子キャッシュプロファイルよりもより一般的であり、かつコンテンツ要求の上位集合に照合できる。従って、照合処理は、トップダウンスキームを採用でき、それによって階層構造の高位置にあるキャッシュプロファイルをそれ以前に対して照合できる。例えば、最初にクライアント要求は階層構造のトップレベルにあるキャッシュプロファイルに対して照合できる。一致がある場合、クライアント要求は一致するキャッシュプロファイルなどの子キャッシュプロファイルに対して照合できる。
【0054】
ブロック506では、ルーチン500は、一致するキャッシュプロファイルの少なくとも一部に基づいてキャッシュ済みコンテンツを識別し、かつ検索する。1つの実施形態では、キャッシュ済みコンテンツの識別は、一致するキャッシュプロファイルによって供給される。識別は、キャッシュコンテンツデータ格納120においてキャッシュプロファイルに対応するキャッシュ済みコンテンツが格納または保持される位置の参照、ポインタまたはアドレスであってもよい。他の実施形態では、クライアント要求は、関連するコンテンツが要求するクライアントコンピューティング装置102においてローカルにキャッシュされるかどうかを示してもよい。ルーチン500は、1つ以上の一致するキャッシュプロファイルによって識別されるような対応するキャッシュ済みコンテンツを調べることで、ローカルにキャッシュ済みコンテンツに更新が必要かどうかを判断してもよい。
【0055】
ブロック508では、ルーチン500は、クライアント要求に応じて最初のHTML結果を生成し、それを要求するクライアントコンピューティング装置102へ送信する。最初のHTML結果は、検索されたキャッシュ済みコンテンツを組み込むことができ、かつ追加的コンテンツまたは更新データを受け入れるための要素またはメカニズムを含むことができる。例えば、最初のHTML結果は、クライアント要求に応じたコンテンツの完了及び正確な最終レンダリングを確実に行うために、追加的コンテンツまたは更新のためのパイプとして機能する1つ以上のスクリプトまたは他のスペースホルダを含むことができる。いくつかの実施形態では、最初のHTML結果は、要求するクライアントコンピューティング装置102においてローカルにキャッシュ済みコンテンツを参照できる。他の実施形態では、最初のHTML結果または附随する情報は、今後のより早いアクセスのために、要求するクライアントコンピューティング装置102が最初のHTML結果の特定のコンテンツ部品を残すべきかを示すことができるかまたは指示することができる。
【0056】
ブロック510では、ルーチン500は、コンテンツプロバイダ104または関連CDNサービスプロバイダから追加的コンテンツを要求する。これは、クライアント要求の働きをするNCCにインスタンス化した仮想マシンまたはブラウザによって達成できる。追加的コンテンツ要求は、クライアント要求と最初のHTML結果に組み込まれたキャッシュ済みコンテンツとの比較の少なくとも一部に基づいて決定できる。例えば、キャッシュされていないコンテンツ及びキャッシュ済みコンテンツへの更新が要求できる。1つの実施形態では、部分的にキャッシュ済みであるコンテンツのネットワークリソース全体は要求される必要があり、それにより、キャッシュ済みコンテンツ部品への更新だけでなくキャッシュされていないコンテンツ部品も得ることができる。他の実施形態では、コンテンツ要求が、テキスト、イメージまたはHTMLドキュメント内の特定のタグのペア間における他のオブジェクトといったような、ネットワークリソースの特定部分に向けられるように、コンテンツプロバイダ104または関連CDNサービスプロバイダは、APIといったメカニズムをサポートしてもよい。この場合、ネットワークリソースの一部を構成するキャッシュされていないコンテンツは、単独で要求できる。さらに他の実施形態では、コンテンツプロバイダ104または関連CDNサービスプロバイダは同様に、コンテンツ更新がネットワークリソースの特定部分に対応して問い合わせることを許可するために、APIといったメカニズムをサポートしてもよい。この場合、ネットワークリソースの一部を構成するキャッシュ済みコンテンツへの更新は、自身でコンテンツ部品を得ることなく決定できる。
【0057】
ブロック512では、ルーチン500は、追加的コンテンツ及び/または更新を得て、かつ処理する。最初のHTML結果(またはそこに組み込まれるキャッシュ済みコンテンツ)及び新たに得られた情報の少なくとも一部に基づいて、完全なHTML結果はキャッシュされていないコンテンツ部品を埋めること及びキャッシュ部品を更新することで生成できる。代替的に、または追加的に、得られたコンテンツ及び更新は、以下に記述されるような処理のためにキャッシュ管理サービス110に転送できる。
【0058】
ブロック514では、最初のHTML結果への更新データは生成され、要求するクライアントコンピューティング装置102へ送信される。1つの実施形態では、完全なHTML結果は生成され、ネットワークコンピューティング
プロバイダ107によって生成され、かつ供給される。更新データは、完全なHTML結果と最初のHTML結果の比較及び差の識別により生成できる。差を反映したデータは、要求するクライアントコンピューティング装置102に送信でき、クライアント要求に応じたコンテンツの最終表示のレンダリングへと供給される。例えば、データは最初のHTML結果に含まれる1つ以上のスクリプトによって得られ、かつ適用できる。他の実施形態では、キャッシュ管理サービス110は、得られたコンテンツ及び更新を直接処理する。キャッシュ管理サービス110は、前述のように、クライアントコンピューティング装置102においてキャッシュされていないコンテンツ及びキャッシュ済みコンテンツへの更新を、コンテンツの最終表示のレンダリングへ供給されるデータへ変換できる。ルーチン500は、ブロック516で終了する。
【0059】
本開示に記述される機能の全てが、開示のコンポーネント及び携帯通信装置の1つ以上のプロセッサによって実行されるソフトウェアに組み込まれてもよいことが、当業者らに理解されるであろう。ソフトウェアは、あらゆるタイプの不揮発性記憶装置に永続的に格納されてもよい。
【0060】
とりわけ、「can」、「could」、「might」、または「may」といったような条件文言語は、特に明言されるかあるいは使用される文脈内で理解されない限りは、他の実施形態が特定の特徴、要素及び/またはステップを含まない一方で、特定の実施形態がそれらを含むことを伝えることを概して意図している。よって、そういった条件文言語は概して、ユーザ入力または指示の有無、これらの特徴、要素及び/またはステップが含まれるかまたは任意の特定の実施形態において実行されるかどうかにかかわらず、特徴、要素及び/またはステップが、1つ以上の実施形態のために、または1つ以上の実施形態を決定するためにロジックを含む必要があることが要求されるということを暗示する意図はない。
【0061】
あらゆる処理の描写、要素、または本明細書に記述される及び/または添付の図面に描写されるフロー図におけるブロックは、モジュール、セグメント、または処理における特定のロジック機能またはステップを実行するための1つ以上の実行可能な指示を含むコードの一部を潜在的に表すものとして理解されるべきである。代替的実施態様は、関与する機能に応じて、要素または機能が削除されてもよく、示されるかまたは論じられたものとは不適切に実行されてもよく、実質的に同時にまたは逆の順序を含む、本明細書に開示の実施形態の範囲内に含まれることが、当業者に理解されるであろう。前述のデータ及び/またはコンポーネントがコンピュータ読み取り可能媒体に格納され、CD−ROM、DVD−ROMまたはネットワークインタフェースといったようなコンピュータ実行可能なコンポーネントを格納するコンピュータ読み取り可能に関連するドライブメカニズムを用いてコンピューティング装置のメモリへと読み込んでもよいことがさらに理解されるであろう。さらに、コンポーネント及び/またはデータは、単一の装置に含むことができるかまたはあらゆる方法で分配できる。従って、汎用コンピューティング装置は、前述の様々なデータ及び/またはコンポーネントの処理及び/または実行でもって、本開示の処理、アルゴリズム及び手法を実行するよう構成されてもよい。
【0062】
多くの変化及び修正が前述の実施形態に行われてもよいことが協調されるべきであり、その要素は他の許容可能な実施例に含まれることが理解される。全てのそういった修正及び変化は本開示の範囲内で本明細書に含まれることを意図し、かつ以下の特許請求によって保護される。
【0063】
本開示の実施形態は、以下の項を考慮して記述できる。
1.特定期間を超えて複数のネットワークリソースの要求を得ることと、個別のHTML結果がネットワークリソースのための複数の要求のうちの1つの要求に対応する、HTML結果を得ることと、前記HTML結果の第1サブセットに関連する第1の実質的に不変な部品を識別するために前記HTML結果を分析することと、前記第1の実質的に不変な部品の少なくとも一部に基づいて前記HTML結果の第1サブセットに関連する第1HTMLコンテンツを決定することと、前記第1HTMLコンテンツを格納することと、前記第1の実質的に不変な部品及び前記格納された第1HTMLコンテンツに関連するネットワークリソース要求の第1カテゴリのための第1キャッシュプロファイルを作り出すことと、を含むコンピュータ実行方法であり、要求の第1カテゴリは前記第1の実質的に不変な部品に関連する前記HTML結果の第1サブセットに対応する複数の要求の第1サブセットの少なくとも一部に基づいて決定される、前記コンピュータ実行方法。
2.前記複数の要求の第1サブセットが、特定期間を超えて同じネットワークリソースの要求からなる、項1に記載のコンピュータ実行方法。
3.前記要求の第1カテゴリが、同じネットワークリソースの要求からなる、項1に記載のコンピュータ実行方法。
4.前記HTML結果の第1サブセットを含む前記HTML結果の第2サブセットに関連する第2の実質的に不変な部品を識別するために前記HTML結果を分析することと、第2の実質的に不変な部品の少なくとも一部に基づいて前記HTML結果の第2サブセットに関連する第2HTMLコンテンツを決定することと、前記第2HTMLコンテンツを格納することと、前記第2の実質的に不変な部品及び前記格納された第2HTMLコンテンツに関連するネットワークリソース要求の第2カテゴリのための第2キャッシュプロファイルを作り出すことと、を含むコンピュータ実行方法であり、要求の第2カテゴリは前記HTML結果の第2サブセットに対応する複数の要求の第2サブセットの少なくとも一部に基づいて決定される、前記コンピュータ実行方法。
5.前記複数の要求の第2サブセットが、特定期間を超えてネットワークリソースのセットの1つ以上のネットワークリソースの要求からなる、項4に記載のコンピュータ実行方法。
6.前記第2キャッシュプロファイルが、前記第1キャッシュプロファイルを参照する、項4に記載のコンピュータ実行方法。
7.複数のネットワークリソースの要求及び複数の要求に対応する複数の応答を得ることと、
前記複数の要求及び前記複数の応答を分析することと、前記複数の要求の第1サブセットから得られた第1特性に関する前記複数の応答の第1サブセットから第1の実質的に不変な部品を識別することと、第1特性に対応し、前記第1特性と第1の実質的に不変な部品との関係を示す第1キャッシュプロファイルを作り出すことと、を含むオペレーションを行う、プロセッサにより実行される時にコンピュータ実行可能な指示を格納する非一時的コンピュータ読み取り可能媒体。
8.前記第1キャッシュプロファイルが、前記第1の実質的に不変な部品の少なくとも一部に基づき第1コンテンツアイテムを決定することと、前記第1コンテンツアイテムを格納することと、をさらに含む第1コンテンツアイテムを示す、項7に記載の非一時的コンピュータ読み取り可能媒体。
9.前記第1キャッシュプロファイルが、第2キャッシュプロファイルを参照する、項8に記載の非一時的コンピュータ読み取り可能媒体。
10.前記第2キャッシュプロファイルが、複数の要求の第2サブセットから得られた第2特性に対応する、項9に記載の非一時的コンピュータ読み取り可能媒体。
11.前記第2キャッシュプロファイルが、前記第2特性と前記複数の応答の第2サブセットから識別された第2の実質的に不変な部品の間の関係を示す、項10に記載の非一時的コンピュータ読み取り可能媒体。
12.前記第2キャッシュプロファイルが、第2コンテンツアイテムを示す、項10に 記載の非一時的コンピュータ読み取り可能媒体。
13.ネットワークリソースの要求を得ることと、要求に対応する第1キャッシュプロファイルを識別することと、前記第1キャッシュプロファイルの少なくとも一部に基づき第1コンテンツアイテムを検索することと、前記第1コンテンツアイテムを組み込む第1結果を生成することと、前記第1結果を送信することと、の働きをするインターフェースコンポーネントを実行するコンピュータ実行可能な指示を実行するためのプロセッサ及びメモリ、コンピュータ実行可能な指示と、要求の少なくとも一部に基づいて追加的コンテンツアイテムを要求することと、前記追加的コンテンツアイテムを得ることと、前記追加的コンテンツアイテムを組み込む追加的結果を生成することと、追加的結果を送信することと、の働きをするデータ処理コンポーネントを実行するコンピュータ実行可能な指示と、を含むシステム。
14.前記第1キャッシュプロファイルを識別することが、前記要求を第1キャッシュプロファイルによって示された特性と比較することを含む、項13に記載のシステム。
15.前記要求を第1キャッシュプロファイルによって示された特性と比較することが、前記要求に含まれるネットワークリソース識別子を特性と比較することを含む、項14に記載のシステム。
16.前記要求を第1キャッシュプロファイルによって示された特性と比較することが、前記要求に関連するユーザ識別子を特性と比較することを含む、項14に記載のシステム。
17.前記要求を第1キャッシュプロファイルによって示された特性と比較することが、前記要求に関連するクライアントコンピューティング装置識別子を特性と比較することを含む、項14に記載のシステム。
18.前記第1キャッシュプロファイルを識別することが、前記要求を第1キャッシュプロファイルによって示された要求のリストに対して照合することを含む、項13に記載のシステム。
19.前記インターフェースコンポーネントが、前記ネットワークリソースを要求されるコンピューティング装置において前記第1結果または前記第2結果のうち少なくとも1つの処理を引き起こす働きをする、項13に記載のシステム。
20.前記第1結果を生成することが、前記第1キャッシュプロファイルに関する第2キャッシュプロファイルの少なくとも一部に基づいて第2コンテンツアイテムを検索することと、前記第1及び第2コンテンツアイテムを組み込む前記第1結果を生成することと、を含む、項13に記載のシステム。
21.前記インターフェースコンポーネントがさらに、前記要求に対応する第2キャッシュプロファイルを識別することと、前記第2キャッシュプロファイルの少なくとも一部に基づき第2コンテンツアイテムを検索することと、前記第2コンテンツアイテムを組み込む第2結果を生成することと、前記第2結果を送信することと、の働きをする、項13に記載のシステム。
22.前記第2キャッシュプロファイルを識別することが、前記第1キャッシュプロファイルによって参照される前記第2キャッシュプロファイルを識別することと、前記要求を前記第2キャッシュプロファイルによって示される特性と比較することと、を含む、項21に記載のシステム。