JP2004504681A - Caching static and dynamic content on cache-distributed networks saves WWW site bit rates and improves QoS - Google Patents

Caching static and dynamic content on cache-distributed networks saves WWW site bit rates and improves QoS Download PDF

Info

Publication number
JP2004504681A
JP2004504681A JP2002513142A JP2002513142A JP2004504681A JP 2004504681 A JP2004504681 A JP 2004504681A JP 2002513142 A JP2002513142 A JP 2002513142A JP 2002513142 A JP2002513142 A JP 2002513142A JP 2004504681 A JP2004504681 A JP 2004504681A
Authority
JP
Japan
Prior art keywords
ttl
cache
time
dynamic content
copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002513142A
Other languages
Japanese (ja)
Inventor
シュムエル メラメド
イベス ビギオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eplication Networks Ltd
Original Assignee
Eplication Networks Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eplication Networks Ltd filed Critical Eplication Networks Ltd
Publication of JP2004504681A publication Critical patent/JP2004504681A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Abstract

動的コンテンツを持つオブジェクトのコピーを保存及び更新するために、インターネット内にキャッシュを配置する。オブジェクトの更新特性を判定し、この更新特性に基づいてオブジェクトに対する残存時間(TTL)パラメータを調整する。一般的に、TTLが経過時間よりも少ない場合、オブジェクトを更新する。オブジェクトに対するTTLは、(i)エラーの確率を所定の誤り確率閾値よりも少なく維持する、(ii)誤り率を所定の誤り確率閾値よりも少なく維持する、あるいは(iii)遅延時間を所定の遅延閾値よりも少なく維持するように調整する。キャッシュは、専用のマシンで、ウェブ・ブラウジングが、本来のサイトへ向かって全経路を通過する代わりにキャッシュを通過するよう、多くの異なるロケーション内に、理想的には、ロケーション内の最大数のユーザへインターネット接続を提供するISPのネットワーク内に配置することが好ましい。このようにすれば、通信の大部分がISPの内部ネットワーク内、あるいはその近くに留まり、負荷が大きいインターネット・バックボーンを通る必要がないため、これらのISP、そして狭義には、隣接するISPのユーザは、巨大なQoSとスピードの改善とを享受する。また、キャッシュが負荷の大部分を吸収するため、本来のウェブ・サイトは、もはや高いビット・レートを必要としない。このシステムは、各ページに要求数及び実際のページ更新頻度に応じて、リアルタイムで適応することができる。A cache is located in the Internet to store and update copies of objects with dynamic content. An update characteristic of the object is determined, and a time-to-live (TTL) parameter for the object is adjusted based on the update characteristic. Generally, if the TTL is less than the elapsed time, update the object. The TTL for the object may be (i) maintain the error probability below a predetermined error probability threshold, (ii) maintain the error rate below a predetermined error probability threshold, or (iii) reduce the delay time to a predetermined delay. Adjust to keep it below the threshold. The cache is a dedicated machine, and in many different locations, ideally the largest number of locations in the location, so that web browsing passes through the cache instead of taking the entire route to the original site. Preferably, it is located in the ISP's network that provides Internet connectivity to the user. In this way, most of the communication stays at or near the ISP's internal network and does not have to traverse the heavily loaded Internet backbone, so users of these ISPs and, in a narrow sense, neighboring ISPs Enjoys huge QoS and speed improvements. Also, the original web site no longer needs a high bit rate because the cache absorbs most of the load. The system can adapt to each page in real time depending on the number of requests and the actual page update frequency.

Description

【0001】
【発明の技術的な分野】
本発明は、インターネット上の情報の保存及び通信、特に、インターネット上のウェブページ・コンテンツをキャッシュすることに関する。
【0002】
【関連出願との相互参照】
これは、2000年7月17日に出願した、特許出願中の仮特許出願第60/218,559号を、共通所有で継続するものである。
【0003】
【発明の背景】
リソースを共有できるように、二つ以上のコンピュータを接続したものを、「ネットワーク」と呼ぶ。二つ以上のネットワークを結合したものを、「インターネット」と呼ぶ。「インターネット」は、複数のネットワークを相互に連結し、すべてにTCP/IP(伝送制御プロトコル/インターネット・プロトコル)として知られる共通のプロトコルを用いるグローバルなインターネットである。
【0004】
ワールド・ワイド・ウェブ(「WWW」、あるいは単に「ウェブ」)は、コンピュータ、特に、インターネット上のハイパーテキスト(HTTP)サーバ間の情報交換を可能にする規格及びプロトコルのセットで、インタラクティブなマルチメディアのリソースの巨大なコレクションを構築するものである。インターネットの交信は、ピアリングと呼ぶシステムの下で互いに信号を転送するUUNetあるいはDigex等の、多数の「バックボーン」キャリアを通過する。
【0005】
「サービスの品質」(QoS)は、コンテンツ・ソース(通常、サーバ、あるいはインターネット・サービス・プロバイダ、ISP)から、ユーザのコンピュータ(通常、コンテンツを見るために用いる「ブラウザ」ソフトウェアを走らせている)へ情報が移送される速度及び信頼性の測度である。「ビット・レート」は、任意の時間におけるネットワーク(あるいは、その任意の一部)上を通過する情報量の測度である。ビット・レートが高ければ、それだけより多くのデータが移送できる。待ち時間は、ソースからユーザへ、データのパケットがインターネットを通過する時間の測度である。
【0006】
新しく資本的資源を注入することによってビット・レートを増加させることができるが、ビット・レートの増加は、単に待ち時間を間接的に処理するもので、ビット・レートの増加によって、過負荷の、あるいは元々遅いサーバを速めることはできない。これらの障壁に打ち勝つためには他の解決方法が必要である。一つの解決方法として、コンテンツをキャッシュすることが、1999年3月のマイケル・A・グールド氏による、「ウェブ・コンテンツ供給を最適化するネットワーク・キャッシュ・ガイド」という題名の記事に詳細に論じられている。この記事は、次のアドレスから(インターネットを介して)オンラインで利用可能である。
http://www.inktomi.com/products/network/tech_resources/tech/cachingguide.pdf
そのテキスト・バージョンは、次のアドレスからオンラインで利用可能である。
http://www.google.com/search?q=cache:www.inktomi.com/products/network/ tech_resources/tech/cachingguide.pdf
【0007】
グールド氏の記事に次のように述べられている。
【0008】
「性能を改善して、より予測可能にする一つの方法は、コンテンツ・ソースからユーザのブラウザまでの、インターネット上の長距離通信によって導入されるばらつきを最小にすることである。アクセスが頻繁なコンテンツを、ユーザにより近い箇所に保存することによって、インターネットにおける多くの待ち時間及び予想不可能な遅延を解消することができる。この技術は、キャッシングと呼ばれる。キャッシングは、ウェブ・サーバからのコンテンツ・オブジェクトを、より速く検索が可能なようにユーザにより近い所に保存する手段である。テキスト・ページ、イメージ、そして他のコンテンツを含むオブジェクトの倉庫は、ウェブ・キャッシュと呼ぶ。」(グールド、ページ2)
【0009】
キャッシングは、ユーザに対するQoSを改善するアプローチであり、また、ネットワーク・サービス・プロバイダに対する経済的な改善もある。アクセスが頻繁なウェブ・コンテンツをユーザの近くに保存することによって、遠隔なサイトに存在するコンテンツを検索するための、通過に必要な跳ぶ回数を減少させることができる。(グールド、ページ8)
【0010】
実際、コンテンツの要求は、ユーザのブラウザから生じて、まず、キャッシング・サーバに導かれる。コンテンツがキャッシュ内に現在含まれており、そして最新である場合は、ブラウザの要求を発信サーバへ送ることなく、そのコンテンツをユーザに送る。これによって、コンテンツの転送に対する待ち時間を減少させることができる。コンテンツをユーザへ転送するための時間が減少する。このことは、また、要求を満たすためにサービス・プロバイダがインターネットの上流から検索しなければならないデータの量を減少させる。(グールド、ページ8)
【0011】
キャッシングは、コンピュータ・ハードウェア・デザインの分野において、よく理解されているコンセプトである。モデム・マイクロプロセッサは、低速なメモリから読み取る代わりに、高速なメモリのオンチップ・キャッシュを用いて、頻繁に使用する命令及びデータを近くに保存する。コンピュータは、RAMキャッシュ、そしてオンディスク・キャッシュさえも含む、さらに複数のレベルのキャッシングを具現している。すべて、命令及びデータを読み取る待ち時間を減少させるようにデザインされ、システム内のデータの転送を速める。キャッシングの基本的な原理は、アクセスが頻繁なデータを、データの本来のロケーションよりも、より速くアクセスが可能なロケーションに保存することである。システムのCPUの場合には、本来のロケーションはディスクである。ウェブ上では、本来のロケーションはインターネット上の発信サーバである。(グールド、ページ8?9)
【0012】
ネットワーク・キャッシングは、新しい概念であるが、全く同じ原理に基づいており、ユーザの利用をコスト効果的に改善する同じ利点を持つ。(グールド、ページ3)
【0013】
「キャッシングは、ウェブ・ページのダウンロードの待ち時間(何かが始まる前に待たなければならない時間)を減少させる、そしてダウンロード・スピード(すべてのダウンロードが終了するための時間)がより速いという点でエンド・ユーザに直接的な利点を提供する。しかし、キャッシングは、ネットワーク・サービス・プロバイダにも利点を提供する。ユーザが遠隔のサーバから求めるウェブ・コンテンツを近くに保存する、すなわちキャッシュすることによって、インターネット上へ送らなければならない要求が減少する。その結果、キャッシュを維持しているアクセス・プロバイダは、上流のビット・レート要求が減少する。これは、満足がいくウェブ体験をその顧客に提供するためにサービス・プロバイダが購入しなければならないビット・レートを減少させる。(グールド、ページ3)
【0014】
「キャッシングは、また、多くの顧客のためにアクセス・プロバイダがウェブ・サイトを主催するウェブ・ホスティング環境において複数の利点を提供する。関心度が高いコンテンツが引き起こす通信スパイクの衝撃を減少させることができ、また、追加容量、サービス・レベルの保証、そして複製サービスを提供する等の、種々の付加価値サービスの基盤として役立つ。(グールド、ページ3)
【0015】
「ネットワーク・データの[キャッシング]は、最適な体験と予測可能な応答時間とをユーザに提供することを可能にする。通常のキャッシュ・ヒット率で、ユーザは、高品質なサービス(QoS)を体験することができる。QoSの改善は、ISP、コンテンツ・プロバイダ、そして企業サイトにかなりの利点を提供する。より良いQoSは、顧客の関心を引きつけ、顧客の維持率を高める。したがって、アクセス・プロバイダ及びコンテンツ・プロバイダの、両方のブランドを高める。コンテンツ・プロバイダは、ネットワークを通じてコンテンツをユーザの近くに十分にキャッシュさせることを確実に行えば、究極的に、より多くのビジターがコンテンツにアクセスするようになる。(グールド、ページ5)
【0016】
「ウェブ・ブラウザも、キャッシングの形態を具現している。ユーザのハードディスク上に最近アクセスしたウェブ・コンテンツを保存し、インターネットにアクセスする代わりに、そのローカル・キャッシュからファイルを読み取る。これは、ユーザが、セッション中にブラウザ内の「バック」及び「フォワード」ボタンを叩いたときによく機能するが、ユーザがサイトを初めてチェックする場合には何もしない。(グールド、ページ9)
【0017】
「ブラウザのキャッシュ、そしてウェブ・サーバのキャッシュのいずれも、ネットワーク性能の問題を扱うことはできない。しかし、ユーザと発信ウェブ・サイトとの間のネットワーク上にウェブ・コンテンツのキャッシュを配置することによって、共通にアクセスされるコンテンツがインターネット上を移動しなければならない距離が減少するため、ユーザは、素早い反応、そして高速な性能を体験することができる。ネットワーク・キャッシングは、いくつかのコンテンツが他のコンテンツよりも頻繁にアクセスされるという事実を利用している。キャッシングによる解決を具現することによって、ネットワーク・サービス・プロバイダは、インターネットへの高ビット・レート接続のための全必要条件を減少させながら、顧客に対して、より良いウェブ体験を提供することができる。(グールド、ページ9)
【0018】
「キャッシング解決策がない場合、ブラウザからのコンテンツの要求と、発信サーバから供給されるコンテンツが、要求するコンピュータから、コンテンツを持つコンピュータまでの全行程を繰り返し通過しなくてはならない。ウェブ・ブラウザは、インターネット上の特定なサーバ上の特定なウェブ・ページを指名するユニフォーム・リソース・ロケータ(URL)の要求を送る。この要求は、通常のTCP/IPネットワーク通信を介してサーバへ経路を決められる。(HTTPサーバとしても知られる)ウェブ・サーバから求められるコンテンツは、グラフィックスを含む、一つ以上の追加ファイルへのリンクを持つ静的なHTMLページであるかもしれない。コンテンツは、また、サーチ・エンジン、データベース照会、あるいはウェブ・アプリケーションから生成される、動的に作成されるページであるかもしれない。HTTPサーバは、ウェブ・ブラウザへ、一度に一つのファイルずつ、求められたファイルを返す。動的に作成されるページでさえ、しばしば、最終的なページを作成するために、動的コンテンツに結合される静的な成分を持つ。(グールド、ページ13)
【0019】
「キャッシングを用いると、アクセスが頻繁なコンテンツは、ユーザの近くに保存される。ユーザの企業内LAN上のファイアウォール内に、ユーザのISPに、あるいは他のネットワーク・アクセス・ポイント(NAP)、または大多数のウェブ・サーバよりもユーザにより近く位置するプレゼンス・ポイント(POP)に保存してもよい。要求されたコンテンツあるいはファイルが、キャッシュ内に位置し、それが現在のものである、すなわち新鮮である場合は、これをキャッシュ・ヒットと見なす。これらのキャッシュから、より頻繁にユーザ要求が満たされる場合、ヒット率が高く、ユーザのパフォーマンスが良いため、サービス・プロバイダがユーザのためにインターネットから検索するデータは少ない。(グールド、ページ14)
【0020】
「同様の問題は、FTPクライアント・アプリケーションが提出するファイル要求の各々に対してFTPサーバが対処する、FTPファイル転送においても存在する。FTPが転送するファイルの通常のサイズは典型的なHTMLファイルよりも大きいため、FTPにおいては、遅延及びボトルネックはより大きな問題である。また、ストリーミングオーディオ及びビデオは、末端ユーザの近くにコンテンツをキャッシュすることから利益を受けることができるインターネット・アプリケーションのもう一つの例である。(グールド、ページ14)
【0021】
「ネットワーク・キャッシングは、多くの異なるプロトコルを介して供給されるコンテンツに応用できる。例えば、HTTP、NNTP、FTP、RTSPがある。すべては、いくつかの割合で静的コンテンツを持ち、そして高度な用途があるという特徴がある。もちろん、キャッシュ・サーバが各プロトコルをサポートすることが必要である。」(ページ14)
【0022】
「キャッシュを新鮮に保つ必要があるため、たとえユーザが求めるコンテンツの全ビットがキャッシュに存在するとしても、ISPからインターネットへの通信は発生する。ページの新鮮さを保証する必要があり、新しいコンテンツをダウンロードしなくてはならない。しかし、キャッシングを用いることによって、ビット・レートの利用は最適化される。動的コンテンツに対してさえも、キャッシュを用いることは可能である。なぜなら、これらのページは、キャッシュから利用できるいくつかの静的コンテンツを持つためである。通信の分布及びキャッシュの大きさに応じて、ユーザによるHTTP要求の最高40パーセントまでを、キャッシュを用いることによってネットワークから取り除くことができる。これにより、ネットワークをより効率的に保ち、低コストで、より良い性能を提供することができる。」(グールド、ページ14)
【0023】
グールド氏の記事は、キャッシュの有効な用途、負荷バランス、インフラ内のどこにキャッシュを設けるか、そしてキャッシュに効果的なウェブコンテンツのデザインに関して論じている。また、例えば、ウェブ・キャッシュ制御プロトコル(WCCP)等の開発済みプロトコルの言及もある(ページ18)。また、HTTPプロトコル内の「期限切れ」及び「最大期限」ヘッダーの適当な使用に関する議論もある。(グールド、ページ27)。そして、グールド氏は、特に次のことを力説している。
【0024】
「優れたデザインによって、動的に生成されるページでさえも、キャッシングから利益を得ることができる。ページ内の動的コンテンツを静的コンテンツから分離することによって、静的コンテンツはキャッシュし、動的コンテンツは別に検索してダウンロードすることができる。(グールド、ページ28、強調有り)
【0025】
したがって、専用コンピュータのラム及びハードディスクを用いて、ウェブ・サイトから静的データをキャッシュし、このコンピュータを、WWW(「ウェブ」)サーバとユーザとの間のプロクシとして機能させることが知られている。任意のウェブ・ページに対する複数の要求が、本来のウェブ・サーバへの単一要求分のコストでまかなうことができる。インターネット・サービス・プロバイダ(ISP)は、一般的に、顧客に対してこのようなキャッシングサービスを提供している。しかしながら、この技術は、次の二つの主な欠点がある。
1.グローバルに適用されていないため、キャッシュへのアクセスが可能なウェブ・サイトのユーザさえ、この機能を意図的に起動しなければならない。しかし、多くのユーザは、この機能のことを知らない。
2.動的コンテンツ(遠隔サーバによる即時生成コンテンツ)の場合のように、非常に頻繁に変化するページには適用されない。
【0026】
したがって、動的コンテンツ及び静的コンテンツのキャッシングに対する需要がある。
【0027】
【用語解説/定義】
明示されない限り、すなわち文脈から明らかでなければ、本文で用いる用語、略語、頭字語あるいは科学的なシンボル、そして表記は、本発明が関わる技術的専門分野における通常の意味を持つ。次の用語解説は、本文中の種々の説明に、そして従来の技術の引用文に明快さ及び一貫性を与えることを意図している。
【0028】
キャッシュ・サーバ
遅延の影響とネットワーク・ボトルネックとを減少させるために、アクセスが頻繁なコンテンツを、そのコンテンツを求めるユーザの近くの戦略的集合ポイントに保存するように最適化したアプリケーション。
【0029】
CARP
キャッシュ・アレイ・ルーティングプロトコル。多数のキャッシュ・サーバを同期させるためのプロトコル。CARPは、ウェブ・オブジェクト・アドレス(URL)を、アレイ内の単一ノードにマッピングする共有ネーム空間を維持する。要求は、そのノードへ経路が決められる。
【0030】
クッキー
インターネット上の「クッキー」の最も一般的な意味は、ウェブ・サーバからウェブ・ブラウザへ送られる一片の情報に言及する。ブラウザ・ソフトウェアは、これを保存し、ブラウザがサーバへ追加の要求を出すときにサーバへ送り返す。用いるクッキーのタイプ、そしてブラウザの設定に応じて、ブラウザは、クッキーを受け入れる、あるいは受け入れない。また、短期間あるいは長期間に渡ってクッキーを保存する。クッキーは、ログインあるいは登録情報、オンライン「買い物カート」情報、ユーザ・プリファレンス等の情報を含んでもよい。サーバは、クッキーを含むブラウザから要求を受信すると、クッキーに保存された情報を用いることができる。例えば、ユーザに送り返すものをカスタマイズする、あるいは特定なユーザの要求をログとしてを保持する。クッキーは、通常、所定の時間後に失効するように設定されており、ブラウザ・ソフトウェアが閉じられるまでメモリに保存され、ブラウザが終了するとき、「失効時」に達していない場合、ディスクに保存される。
【0031】
動的コンテンツ
規則的に更新される「ライブ」コンテンツ。動的コンテンツの例としては、気象ウェブ・サイト上の「現在の温度」表示、検索結果、あるいはニュース・ウェブ・サイト上の「現在のトップ・ヘッドライン」項目がある。
【0032】
HTTPサーバ
クライアント・エージェント(ブラウザ)へウェブ・ページを提供できるように、HTTPプロトコルを実行するサーバ。HTTPサーバは、ウェブ・ページが外部のプログラムを呼び出すためのインタフェースをサポートする。また、情報及び認証を安全に交換するための暗号化メカニズムと、コンテンツへのアクセスを制御するためのアクセス制御メカニズムとをサポートする。
【0033】
ICP
インターネット・キャッシュ・プロトコル。多数のキャッシュ・サーバを同期させるためのプロトコル。キャッシュ・サーバは、ミスをする度に、すべてのピアー・ノードにメッセージを送って、各ノードがコンテンツを持っているかどうかを尋ねる。要求サーバは、コンテンツの要求を出し、それからユーザへ転送する。
【0034】
プロクシ・サーバ
プロクシ・サーバは、ユーザとインターネットとの間に仲介者として機能するため、企業は、セキュリティを保証し、そして管理上のコントロールができ、また、キャッシングサービスをも提供することができる。プロクシ・サーバは、通常、企業ネットワークを外部のネットワークから分離するゲートウェイ・サーバあるいはその一部に、または企業ネットワークを外部からの侵入から保護するファイアウォールに関連づけられる。
【0035】
ルータ
ルータは、ポイントからポイントのリンクのコレクションから完全に相互接続されたネットワークを構築するデバイスである。インターネット上のルータは、ネットワークの局所的区分、特にネットワークの構成上、ローカルシステムにどれくらい近いかに関する情報を交換する。インターネット内において、ポイントから他のポイントへ到達するためのマップを集合的に作成する。パケットは、交換したマッピング情報に基づいて経路が決められ、最後のルータが目標システムに直接結合する。
【0036】
静的コンテンツ
変更のない、あるいは滅多に変更がないファイルとして保存された、ウェブページの「固定」または長期間不変な成分。
【0037】
スイッチ
典型的にインターネットの周囲に存在する高速ネットワーク・デバイス。スイッチは、より低価格でより高い性能を提供することにおいてルータとは異なるが、機能が限られている。通常のスイッチは、局所的に通信の経路を決めることができるが、高速インターネット・バックボーン内に見られるルーティングの複雑さには関与しない。スイッチは、しばしば、キャッシュ可能な通信をキャッシングシステムへ向けるために用いられるため、キャッシングにおいて重要な役割を持つ。
【0038】
HTML
ハイパーテキスト・マークアップ言語。標準方法でユーザ・エージェント(ブラウザ)内に表示が可能なように、テキストにタグを付けるための標準汎用マークアップ言語(SGML)に基づく仕様。
【0039】
HTTP
ハイパーテキスト送信プロトコル。ワールド・ワイド・ウェブの基礎であるTCP/IP上で稼働するアプリケーション・レベルのプロトコル。
【0040】
IP
インターネット・プロトコル。TCP/IPプロトコル・スートのためのネットワーク層であり、無接続の最も効率的なパケット交換プロトコルである。
【0041】
IPアドレス
通常10進数表記法で表すインターネット・プロトコルによって定義される32ビットのアドレスであって、インターネット上の各コンピュータをユニークに識別する。
【0042】
プロトコル
コンピュータが情報を交換するための、合意上の技術的なルールのセット。
【0043】
URL
ユニフォーム・リソース・ロケータ。インターネット・サイトのアドレスを定める方法であって、アクセス・プロトコルと、IPアドレスあるいはDNSネームとを含む。例えば、「http://www.domain.com」。
【0044】
ユースネット
ユーザのネットワークに対する短縮形。インターネット上に存在する何万という掲示板のコレクションであって、各々が、種々のトピック専用のニューズ・グループと呼ばれるディスカッション・グループを含む。メッセージを公表し、ネットワーク・ニュース転送プロトコル(NNTP)を介して返答を受ける。
【0045】
ウェブ・サーバ
HTTPサーバを参照。
【0046】
【本発明の簡単な説明】
本発明の目的は、WWWサーバのバンド幅の利用を減少させて、WWWサイトのQoSを改善するための技術を提供することである。
【0047】
本発明によれば、インターネット上の動的コンテンツを持つオブジェクトをキャッシュするための技術は、概して、動的コンテンツのコピーを保存して更新するためにインターネット内にキャッシュを配置することからなる。主要なインターネット・スイッチングロケーション、ダイヤル・イン集合ポイント、そして企業ゲートウェイからなるグループから選択した箇所にキャッシュを配置する。また、静的コンテンツのコピーをもキャッシュに保存して更新してもよい。
【0048】
本発明の特徴によれば、オブジェクトの更新特性が判定され、更新特性に基づいて、オブジェクトに対する残存時間(TTL)パラメータが調整される。一般的に、オブジェクトは、そのTTLが、その経過時間より少ない場合に更新される。オブジェクトに対するTTLを、次のように調整してもよい。
(i)誤り確率を所定の誤り確率閾値よりも少なく維持する、
(ii)誤り率を所定の誤り確率閾値よりも少なく維持する、あるいは
(iii)遅延時間を所定の遅延閾値よりも少なく維持する。
【0049】
本発明によれば、サーバから生じる、動的コンテンツを持つオブジェクトに対するユーザ要求に応答するための方法は、オブジェクトのコピーをキャッシュに保存し、オブジェクトに対する残存時間(TTL)を設定し、キャッシュにおいてユーザ要求を受け、TTLが経過時間より多い場合はオブジェクトの保存コピーでユーザ要求を満たし、そして、保存コピーのTTLが経過時間より少ない場合はオブジェクトの更新コピーをフェッチして更新コピーでユーザ要求に応答する。
【0050】
本発明の特徴によれば、オブジェクトに対するTTLは、最初、合理的な下限(Tmin)に設定され、その後、オブジェクトが実際に変化する頻度に基づいて調整される。
【0051】
本発明の特徴によれば、キャッシュがサーバからオブジェクトをフェッチする度に、キャッシュは、次の処理を行う。
a.同じオブジェクトに対するもう一つのフェッチが進行中である場合、以前のフェッチが完了するのを待つ。
b.サーバからオブジェクトをフェッチする。
c.キャッシュされているコピーを、もし存在するなら、フェッチしたオブジェクトで置き換えるが、この場合は、最後にフェッチして以来オブジェクトが変化したかどうかを判定するために比較した後に置き換える。
d.オブジェクトの変化統計値を初期化する、あるいは相応にアップデートする。
e.サーバの応答に応じて、静的あるいは動的コンテンツと、オブジェクトに標識する。そして、
f.オブジェクトが動的である場合は、オブジェクトの変化統計値から判定した変化(τ)間の平均時間、オブジェクト・アクセス統計値から判定した単位時間ユーザ要求数(η)、そして次の処理(A−E)の一つからTTL(T)を適当な値に設定する。
A.最大誤り確率。
B.最大誤り率。
C.最大遅延。
D.Tが最低になる上記(A、B、C)の組合せ。または、
E.TminとTmaxとが挟む「妥当な」値の所定範囲内にTを留める上記(A、B、C)の組合せ。
【0052】
キャッシュは、専用マシンであって、ウェブ・ブラウジングが、本来のサイトへの全行程を通過する代わりにキャッシュを通過するよう、多くの異なるロケーションに、理想的には、そのロケーション内の最大数のユーザへインターネット接続を提供するISPのネットワーク内に配置することが好ましい。このようにすれば、
−それらのISP、そして程度は小さいが、隣接するISPのユーザは、通信の大部分がISPの内部ネットワークの範囲に、あるいは近くに留まり、負荷の高いインターネット・バックボーンを通る必要がないため、莫大なQoS及びスピード改善を得ることになる。また、
−キャッシュが負荷の大部分を吸収するため、本来のウェブ・サイトは、もはや、それほどのビット・レートを必要としない。
【0053】
ウェブ・サイトの多くが、全内容が動的なコンテンツを提供する傾向にあるため、動的コンテンツも静的コンテンツと同様にキャッシュさせる。しかしながら、コンテンツには変わる時期を示す指標がないので、キャッシュの問題は単にコンテンツを覚えておくということだけではない。単にキャッシュ・コピーを提供する代わりに、周期的に再ロードする必要がある。
【0054】
したがって、キャッシュは、対応するキャッシュ・コピーが任意の時間(残存時間、「TTL」)リフレッシュされていないときにはいつでもページを再ロードする(サーバからオブジェクトをフェッチする)。TTLはページの「有効期間」であると考えることができる。キャッシュは、まず、動的オブジェクトに対するTTLを妥当な下限、Tminに設定する。それから、時間の経過とともにキャッシュが数回ページを再ロードしなおすとき、ページのコンテンツが実際に変わる頻度を探知し、そのページに対するTTLを相応に調整する。もしページの本来のサーバがTTLを指定するなら、この「TTL」技術は、静的なページに対する共通のキャッシング方法をまねる。動的ページのサーバはTTLを指定しないので、キャッシュは単独で妥当なTTLを設定しなければならない。
【0055】
したがって、
−動的コンテンツを含むウェブ・サイト全体をキャッシュすることが可能である。
−キャッシュと本来のサイトとの間の通信をより良く管理することができる。
−キャッシュがページを再ロードする前にページが変化するケースでは、数人のユーザが古いコンテンツを受ける可能性があるが、(ネットワークが飽和している場合にはキャッシュが無くとも起きる可能性がある)遅延及び誤り確率を制限することは可能である。
−システムは、各ページへの要求数、そしてページの実際の更新頻度に応じて、リアルタイムで適応することができる。
【0056】
本発明の他の目的、特徴及び利点は、次の説明文から明らかになる。
【0057】
添付図面に示す例を参照にして、本発明の好適実施例を詳細に説明する。次の図は、限定せずに説明することを意図している。本発明は、概して、これらの好適実施例に関連して説明するが、本発明の範囲を、これらの特定な実施例に制限することを意図していない。
【0058】
ここに示すフローチャート内の長方形の囲みは、通常、実行される連続したステップを、概して端部が尖った長方形の囲みは、二つの相互に排他的な結果を持つ決定ステップ(テスト)を表す(「Y」=イエス、「N」=ノー)。そして空円は、ステップあるいはテストではなく、フローチャート内の二つ以上の経路が収束する接合点を示す。
【0059】
本発明の好適実施例の構造、作用及び利点は、添付図を参照しながら次の説明文を考慮すれば、より明らかになる。
【0060】
[発明の詳細な説明]
図1は、インターネット環境をかなり単純化した概要図で、本発明のキャッシングシステムの実施例を示す。概して、ユーザ102は、サーバ(例えば、ISP)104によってインターネット上に利用可能な「オブジェクト」(例えば、ウェブ・ページ)に対する「要求」を行う(オブジェクトは、典型的に、コンテンツ提供者から生じる、図示せず)。スイッチ106は、インターネットへキャッシュ(キャッシュ・サーバ)108を繋ぐインタフェースとして機能する。キャッシュはウェブ・ページのコピーを含んでもよい。ユーザ要求に対して二つの「応答」が可能である。サーバが要求を「処理する」(すなわち「サービスをする」)、あるいはキャッシュで要求を「満たす」。後者の場合は、第一に、コンテンツがキャッシュへ「転送され」なくてはならない。その後、サーバから周期的に更新ウェブ・ページ・コンテンツを「フェッチ」(すなわち「再ロード」)してもよい。次のディスカッションでも、可能な限りこれらの用語を用いる。
【0061】
グールド氏の記事(例えば、ページ18、図4)で論じられているように、スイッチ106は、ネットワーク通信を観察し、IPレベルを超えるプロトコルに基づいてルーティング決定を行うことが可能な高性能プロセッサでもよい。その結果、スイッチは、HTTP(及び他の)通信をキャッシュ(108)へ導き、残りの通信を直接インターネットへ送信する。これは、複数の可能なシステムアーキテクチャの一つの典型である。どのアーキテクチャを用いるかは、キャッシュの実行位置、キャッシュの主要な目的、そして通信の性質を含む複数の要因に
依存する。
【0062】
グールド氏の記事では、さらに次のように論じられている。
【0063】
非透過キャッシュは明確に可視であり、そのキャッシュを用いるブラウザあるいは他のキャッシュは、通信をそのキャッシュへ導くように明確に構成される。この場合、キャッシュは、ブラウザのプロクシ・エージェントとして機能し、可能なときは要求を満たし、必要なときは発信サーバへ要求を転送する。非透過キャッシュは、しばしば、ゲートウェイあるいはファイアウォールの一部として機能し、そして多くの異なるアプリケーションを扱う、より大きなプロクシ・サーバの構成要素である。(グールド、ページ16−17)
【0064】
透過キャッシュは、ネットワーク経路内に置かれ、ブラウザには見えないように機能する。ISP及び企業バックボーン稼働に対しては、透過構成が好まれる。これは、ブラウザがキャッシュを見いだすように構成されると、ユーザ・サポートの全体的な管理及びサポートの負担が最小になるためである。(グールド、ページ17)
【0065】
キャッシュは、キャッシングの利点を最大にするため、透過的に具現するべきである。非透過の実施例では、ブラウザを手作業で設定して、コンテンツの要求をキャッシュ・サーバへ導くようにする必要がある。透過構成では、ブラウザを再設定せずに、キャッシュの利点をクライアントに提供することができる。ユーザは自動的にキャッシングの利益を得る。(グールド、ページ17)
【0066】
企業の環境では、自動的なブラウザ設定を介して、あるいはネットワーク上の通信を途中で捉えることによって、透過性を得ることができる。ネットスケープ及びマイクロソフトの両方は、ブラウザの大きなネットワークを中央で管理し、ユーザのPCにインストールされたブラウザの設定をカスタマイズするユーティリティを提供している。ブラウザのプラグインも自動設定を提供する。このアプローチはユーザに対して透過的であるが、継続的な管理努力を必要とする。(グールド、ページ17)
【0067】
透過キャッシングを提供する複数の選択肢がある。
−キャッシュをルータであるかのように構成し、インターネットに基づくすべての通信をキャッシュへ向けることができる。これは、ブラウザの設定を必要としない透過構成であり、ブラウザあるいは下流のキャッシュは、キャッシュの存在に気づかないが、それでも利益を得る。欠点は、キャッシュが位置するシステムが、そのリソースのいくらかをルーティングに割かなければならないことであり、キャッシュはネットワークの機能上不可欠な部分になる。方針に基づくルーティングを行う精巧なルータ設定は、単にHTTP(TCP ポート80)通信をキャッシュへ導き、失敗した場合にはキャッシュを迂回して、通信を直接インターネットへ送ることによって、これらの問題のいくつかを最小限にする。(グールド、ページ17)
−好評なオプションとしては、インターネットへキャッシュをインタフェース接続するレイヤ4スイッチを用いるやり方がある(図4参照)。現在、アルテオン(Alteon)、ファウンドリ(Foundry)、アローポイント(ArrowPoint)、その他によって提供されているこれらのスイッチは、ネットワーク通信を調べて、IPレベルを超えるプロトコルに基づいてルーティング決定を行うことが可能な高性能プロセッサである。その結果、スイッチは、HTTP(そして他の)通信をキャッシュへ導き、残りの通信を直接インターネットへ送信する。スイッチはHTTPの要求を解析して、そして求められたURLに基づいてキャッシュ農場で特定のノードに要求を送ることができる。インテリジェント・スイッチを用いることによって、不必要なネットワーク通信をキャッシュから切り離し、有用性に対するデザインを単純にし、特定なURLに基づくキャッシュ・ファーム上のロードを分配することができる。(グールド、ページ18)(これに類似するアーキテクチャが、図1に関して上記に説明されている。)
−透過性に対するもう一つのオプションとしては、ウェブ・キャッシュ・コントロール・プロトコル(WCCP)である。WCCPは、シスコ・システムズ(Cisco Systems)によって開発されたもので、シスコISOに基づくルータを用いるネットワーク内にウェブ・キャッシュを透過的にインストールすることを可能にする。WCCPを用いれば、HTTP通信が、発信サーバの代わりにウェブ・キャッシュへ向け直すことができる。WCCPは、ネットワーク・アーキテクチャに対する変更を必要とせず、透過ウェブ・キャッシングの実施を単純化する。(グールド、ページ18)
−ウェブ・プロクシ自動検出プロトコル(WPAD)は、新しく提案された標準プロトコルであり、ブラウザ、ストリーミングメディア・クライアント、そして他のインターネット・クライアント・ソフトウェアと統合することによって、末端ユーザの設定を必要とせずに、ネットワーク上のキャッシュ及びサービスを自動的に見つけるようにデザインすることができる。WPADは、ルーティングあるいはスイッチング装置を用いる既存のキャッシュ透過性による解決策に対する、柔軟な、そしてベンダーに中立なソフトウェアの選択肢を提供する。将来的に、WPADが使用可能なクライアント・ソフトウェアは、領域内のユーザを埋め込みのネットワーク・サービスへ自動的に接続することによって、これらのサービスを提供するネットワーク提供者とユーザとの両方に単純さを提供する。(グールド、ページ18−19)
【0068】
キャッシングシステムを用いることによって、ウェブ・サーバ・サイトの性能を最適化し、ウェブ・ブラウザによるユーザのインターネット・アクセスを高速にすることができる。逆方向のプロクシ構成においては、キャッシングシステムが、一つ以上のウェブ・サーバの前に位置し、それらのサーバへの通信を途中で捕らえてスタンドインになる、すなわち一つ以上のサーバの代用となる。ネットワーク内にキャッシュ・サーバを配置し、主催するコンテンツに対する分散ネットークを構築することができる。必要ならば、プロクシ・キャッシュ・サーバは、発信サーバから、動的な、そして他の短命なコンテンツを求める。これは、サイトからのコンテンツを、発信サーバの代わりにローカル・キャッシュから提供することを可能にする。プロクシ・サーバは、高性能で効率的な処理を行うように最適化させることができる。そしてリソースを節約し、発信サーバを静的コンテンツの提供から解放することができる。これらの利点は、負荷をバランスさせる機能を含み、有用性を維持するピーク需要に対する保証を提供し、また有用性を高度に維持するために、コンテンツの動的なコピーを提供する。(グールド、ページ20)
【0069】
ネットワーク上におけるキャッシュの最良な配置を決める三つの一般的な特徴がある。
−ネットワーク通信内の渋滞ポイント。ネットワーク通信の大多数が通過する箇所、そのためにキャッシュ・サーバに可視であるロケーションがある。このような箇所に配置すれば、容易に回避されてしまうような箇所に位置する場合に比べ、キャッシュでより多くの要求を処理し、より多くのコンテンツを保存することができる。
−高ネットワーク負荷ポイント。通信が多い状態は、より高いキャッシュ使用率を可能にするため、利点が大きい。
−キャッシュに対して最大の経済的利益を生じるロケーション。高いキャッシュ・ヒット率からユーザが利益を得ると共に、また上流のビット・レート要求を減少させるポイントは、アクセス・プロバイダに、QoSにおける利点、そして経済性の両方を提供する。これらの特徴を持つロケーションは、典型的に、主要なインターネット・スイッチング・ロケーション、ダイヤル・イン集合ポイント、あるいは企業ゲートウェイに見られる。(グールド、ページ20)
【0070】
これらの特徴を持つロケーションは、典型的に、次のものを含む主要なインターネット・スイッチング・ロケーション、ダイヤル・イン集合ポイント、あるいは企業ゲートウェイに見られる。
POP及びダイヤルアップ(グールド、ページ21、図7を参照)
NAPS(グールド、ページ22、図8を参照)
衛星(グールド、ページ22参照)
国際ゲートウェイ(グールド、ページ23、図9を参照)
ウェブ・ホスティング(グールド、ページ24、図10を参照)
ラストマイル(グールド、ページ25、図11を参照)
企業ゲートウェイ(グールド、ページ25、図12を参照)
【0071】
本技術における通常の技能を持つ者は、上記の説明から、本発明のキャッシュを配置すべき位置を容易に決めることができる。一般的に、本発明のキャッシュは、静的コンテンツを提供するキャッシュがある箇所に配置する、あるいは、静的コンテンツに対する要求を満たす既存のキャッシュに組み込み、下記の技術によって可能な追加の機能を加えることができる。または、分離した専用マシン(コンピュータ)として提供してもよい。
【0072】
図2は、静的及び/あるいは動的コンテンツに対するユーザの要求をどのようにキャッシュによって処理するかを示すフローチャートである。
【0073】
第一のステップ202では、オブジェクトに対するユーザの要求に対して、キャッシュは、要求されたオブジェクトがキャッシュ内にあるかどうかを判定する。無い(N)場合は、ユーザ要求は、要求を満たすためのサーバへ送られる。同時に、ステップ204において、キャッシュは、オブジェクトに対する同じ、あるいはもう一人のユーザからの次の要求を予期して、サーバからオブジェクトをフェッチする。
【0074】
概して、この例では、オブジェクトに対するすべての要求は、ユーザに対して透過なキャッシュ・サーバを通過すると仮定している。情報要求を途中で捉え、応答を、キャッシュしたローカルコピーから提供するのか、あるいは遠隔の情報源から提供するのかを決定する。ローカルソースから情報をフェッチした後、キャッシュ・サーバは、それを局所的に保存すべきか、もしそうであるなら、どれぐらいの期間保存するのかを決める。ローカルコピーから提供することができる情報の要求は、「キャッシュ・ヒット」として知られる。逆に、ローカルに保存されていない情報の要求は、「キャッシュ・ミス」として既知である。保存判定アルゴリズムが良くデザインされていれば、キャッシュ・ヒットの確率はかなり改善し、(QoSに関する)ユーザ要求への外見上の応答時間は減少する。さらに、ローカルにキャッシュしたコンテンツによって満たされるすべての情報要求(キャッシュ・ヒット)は、外部ネットワーク上の通信を減少させるため、外部ネットワーク上の応答時間も短くなる。
【0075】
要求オブジェクトがキャッシュ内にある場合、次にステップ206で、要求オブジェクトが静的であると標識されているかどうかを判定する。そうである(Y)場合は、ステップ208において、オブジェクトの「経過時間」(最後にリフレッシュされたときから経過した時間)を、(そのページの本来のサーバがTTLを指定している場合、サーバに最近の変更時間等を尋ねて)TTLに比較する等の、静的オブジェクトをキャッシュするための適当な標準アルゴリズムを用いて、キャッシュ・コピーを更新すべきか、あるいはユーザ要求を満たすためにそれを用いるべきかどうかを判定する。
【0076】
要求オブジェクトがキャッシュ内にあり、動的である(N、ステップ206)場合は、キャッシュ・コピーのTTL(「有効期間」)が、その経過時間より少ないかどうかをステップ210で判定する。
【0077】
キャッシュ・コピーのTTLが経過時間よりも少ない(より小さい数)である場合(Y、ステップ210)は、「新鮮でない」と考え、ステップ212において、キャッシュは、
−オブジェクトのアクセス統計値(最後の数分、最後の時間等の単位時間あたりのユーザ要求数)を更新し、そして
−本来のサーバからオブジェクトをフェッチする。
【0078】
キャッシュ・コピーのTTLがその経過時間に等しい、あるいは多い場合(N、ステップ210)、「新鮮である」と考え、ステップ214において、キャッシュは、
−キャッシュ・コピーを用いて要求を満たし、そして
−オブジェクトのアクセス統計値を更新する。
【0079】
オプションとして、キャッシュ・コピーの経過時間とTTLとの間の時間差が任意の時間よりも少なく、かつ最近のユーザ要求数が任意の率よりも多い場合は、「古いもの」ではあるが「人気が高い」と考え、キャッシュはサーバからオブジェクトをフェッチするが、これは「予測リフレッシュ」と呼ばれる。
【0080】
さらに、キャッシュがサーバからオブジェクトをフェッチする(ステップ204及び212を参照)度に、ステップ216において、キャッシュは次の処理を行う。
a.(例えば、以前にユーザ要求があったために)同じオブジェクトに対するもう一つのフェッチが進行中である場合、キャッシュは、その要求を繰り返さず、先行するフェッチが完了するのを待つ。
b.サーバからオブジェクトをフェッチする。
c.もしそのキャッシュ・コピーが存在するなら、最後にフェッチしてからオブジェクトが変更されているかどうかを判定するために比較した後、最新のオブジェクトによって置き換える。
d.それ相応に、オブジェクトの変化統計値(単位時間あたりの変化数)を初期化する、あるいは更新する。
e.本来のサーバからの応答(変更時間の、あるいはゼロ以外のTTL等の存在)に応じて、オブジェクトを静的あるいは動的コンテンツと標識する。
f.もしオブジェクトが動的であるなら、次の事項に応じてTTL(T)を適当な値に設定する。(オブジェクトの変化統計値から決定した)変化間の平均時間τ、(オブジェクト・アクセス統計値から決定した)単位時間当たりのユーザ要求数η、そして次の処理(A−E)から選択した一つ。
【0081】
A.最大誤り確率(p)。これは、任意の時間Wを超える時間において、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした要求数の、全要求数に対する平均比率である。

Figure 2004504681
【0082】
B.最大誤り率(n)。これは、任意の時間Wを超える時間において、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした単位時間当たりの平均要求数である。
Figure 2004504681
【0083】
C.最大遅延(D)。これは、オブジェクト変化と、キャッシュ・コピーのリフレッシュとの間の平均時間である。
Figure 2004504681
【0084】
D.Tが最も低くなる上記(A、B、C)の組合せ。あるいは、
【0085】
E.TをTminとTmaxとが挟む「妥当な」値の所定の範囲内に留める上記(A、B、C)の組合せ。
【0086】
上記方程式には、次のパラメータを用いている。
Tは、動的オブジェクトに対する残存時間である。
Wは、本来のオブジェクトが変化してからの(すなわち、古さを表す)任意の時間である。
τは、オブジェクトの変化統計値からの判定される、変化間の平均時間である。
nは、単位時間当たりのユーザ要求数(例えば、頻度)である。
は最大誤り確率である。これは、任意の時間Wを超える時間において、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした要求数の、全要求数に対する平均比率である。
ηは最大誤り率である。これは、任意の時間Wを超える時間において、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした単位時間当たりの平均要求数である。
は最大遅延である。これは、オブジェクト変化と、キャッシュ・コピーのリフレッシュとの間の平均時間である。
【0087】
【TTLの選択及び調節】
オブジェクトの変化間の平均時間(τ)だけで、他のパラメータをとらない単純なモデルは、指数減少モデル、すなわち、時間tの間にオブジェクトが変化しない確率を式e−t/τであると考える。もちろん、t=0に対しては1であるが、tが+(∞)になるにつれ0に近づく。
【0088】
キャッシュ・コピーのリフレッシュ率に比較しながら、多くのユーザ要求がある状態を考察すると、キャッシュは、ユーザによって作動されるが、規則的な間隔で更新する。
【0089】
変化の平均頻度
さて、モデルの一貫性、特に、任意のオブジェクトの平均更新頻度が1/τであるかどうかをチェックする。p (t)を、時間tに渡ってkが変化する確率であるとする。構成上、
Figure 2004504681
そして、k>0に対して、
Figure 2004504681
([0:t]に渡ってk変化が生じる確率は、0とuとの間に起こったk−1変化の確率のuに渡る和である。というのは、uとu+duとの間で変化があったが、u+duとtとの間には変化がなかった。)
【0090】
繰り返しから次のように演繹する。
Figure 2004504681
Figure 2004504681
【0091】
さて、t時間に渡る平均変化数は(平均の定義から)次のようになる。
Figure 2004504681
【0092】
したがって、変化は1/τの平均頻度を持つことが分かる。
【0093】
平均誤り確率
誤り確率は、本来のサーバ上のオブジェクトが変化し、キャッシュ・コピーが任意の時間Wを超えるだけ古いにも拘わらず、ユーザがキャッシュ・コピーを受信する場合のパーセンテージであると定義する。図3は、(水平軸が秒を示す)時間に対する(垂直軸がパーセンテージを示す)パーセンテージ・エラーを示す。例えば、W=15s、τ=60s、T=30s。グラフは、W秒を超える時間に対するキャッシュ・コピーが「新鮮でない」確率を示す。グラフ中、Wは15秒であるため、1秒から15秒の間の確率はゼロである。それから、確率は、ぎざぎざのパターン302で示す再フェッチが起きるとき(T=30s)、すなわち30秒まで増大する。このパターンは30秒ごとに繰り返す。30秒から45秒の間は、確率は再びゼロであり、再フェッチが45秒で起こる。それから、ぎざぎざのパターン304で示すように、確率は60秒まで増大する。75秒から90秒の間にも、ぎざぎざのパターン306で同様の結果を示す。
【0094】
キャッシュが一定間隔でオブジェクトのコピーを更新するようにサポートするとすれば、時間[0;T]に渡る計算を行うことができる。
【0095】
コンテンツが古い期間内の平均時間Eは、0からuの間には変化がなかったが、uからu+duの間に変化があった確率の、すべての期間[u;u+du]に渡る和に、Wを超えるだけ古いままコンテンツが存在する時間を掛けたものである。すなわち、
Figure 2004504681
あるいは、
Figure 2004504681
である。
【0096】
これから、誤り確率を次のように演繹することができる。
Figure 2004504681
【0097】
処理が容易な範囲を計算することができる。
Figure 2004504681
【0098】
その導関数は次のようになる。
Figure 2004504681
【0099】
F(0)=F’(0)=F”(0)=0、そしてα>=0に対してF’’’(α)がプラスであるため、F”(α)、F’(α)、そして究極的にF(α)も同様である。このため、
Figure 2004504681
【0100】
α>=1のケースに対する、より良い、見つけやすい範囲があるが、これは興味深いケース(T−W>=τ)ではない。したがって、
Figure 2004504681
【0101】
任意の誤り確率を保証する最大TTL
上限は、誤り確率が任意の閾値pよりも少ないことを保証できるTTLに設定すべきである。
Figure 2004504681
【0102】
したがって、許容可能なTTLは、次のようになる。
Figure 2004504681
【0103】
任意の誤り率を保証する最大TTL
これは、pをn/nで置き換えただけで、誤り確率に対するものと同じである。
Figure 2004504681
【0104】
したがって、許容可能なTTLは、次のようになる。
Figure 2004504681
【0105】
任意のTTLに対する平均遅延
キャッシュ・コピーと本来のオブジェクトとの間の、後者が任意の期間中に変化した場合の、平均遅延Dを考慮することは有用である。まず、0からTの間の時点uに変化が起こったときの平均遅延である<△t(u)>を計算する。
Figure 2004504681
【0106】
これから、[0;T]に渡ってuとu+duとの間に変化が起こった確率と、<△t(u)>とを掛けたものを積分することによって、全体的な遅延 <△t>を演繹することができる。
Figure 2004504681
【0107】
<△t>の計算は、[0;T]内において変化があったことを考慮していないため、対応する確率によって除して、Dを得る。
Figure 2004504681
そして、
Figure 2004504681
そして、
Figure 2004504681
であるため、
Figure 2004504681
【0108】
DをDに制限するため、TTLを次のように選択すべきである。
Figure 2004504681
【0109】
上記の説明から、種々の値のτ及びWに対する、複数の誤り確率対TTL(T(s))の、次の表を得る。
【0110】
【表1】
Figure 2004504681
【0111】
【表2】
Figure 2004504681
【0112】
【表3】
Figure 2004504681
【0113】
【表4】
Figure 2004504681
【0114】
【表5】
Figure 2004504681
【0115】
【表6】
Figure 2004504681
【0116】
上記の説明から、概して次の結論を導くことができる。
【0117】
検索した情報が「新鮮でない」(Wよりも古く)なる確率は、W以下のT(s)(残存時間)の値に対しては本質的にゼロであるが、T(s)の増加に伴って、指数関数的減衰に応じて増加し、無限点に近づくに連れ100%のエラーの確率に接近する。T(s)の値がW以下に対する誤り確率がゼロであるというこの所見は、Wよりも頻繁に更新するなら情報がWより古くなることはあり得ないことは明白であるため、本質的に「些細な」ことである。しかし、Wを超えるT(s)の値に関しては、誤り確率の急激な増加に対して、平均更新周期τが、かなりの影響を与えることは明らかである。Wに対する平均更新周期τが大きければ大きいほど、T(s)の値の増加に対する誤り確率の増大は、それだけ緩やかである。
【0118】
図4は、τの種々の値に対するTTL(秒(s))の関数として、誤り確率Perrの進展を示すグラフ400である(垂直軸がパーセンテージ(%)を示す)(W=15s)。ライン402はτ=20sに、ライン404はτ=60sに、ライン406はτ=300sに、そしてライン408はτ=600sに対応する。
【0119】
閾値pよりも少ない誤り確率を維持するようにTTLを選択する技術は、写実的に説明するが、まず、グラフ400の垂直軸上にp値を識別し、それから、グラフ400を横切って水平に想像線上を、τの適当な値に対応するカーブ(402、404、406あるいは408)を交差する点まで移動する。例えば、10%の誤り確率閾値を選択した場合、τ=20sに対するTTL(ライン402)は30秒よりもやや少ない、τ=60sに対する(ライン404)は約35秒で、τ=300sに対する(ライン406)は約85秒で、そしてτ=600sに対する(ライン408)は約150秒である。
【0120】
インターネット内の適当なロケーションに静的及び動的コンテンツのためのキャッシュを実装し、そして、上記の説明のように、キャッシュの動的コンテンツに対する適当な更新特性を選択することによって、動的及び静的コンテンツの両方への有効ユーザ応答時間を減少させると共に、同時に外部ネットワーク(すなわちインターネット)上の混雑を減少させることができる。
【0121】
末端ユーザ(110)が初めてウェブページを受信するとき、ウェブページは、オプションとして、ユーザのブラウザにクッキーを植えつけてもよい。その後、その末端ユーザがウェブページにアクセスするときはいつも、ブラウザはアクセスの要求とともにクッキーを送る。クッキーは、ユーザがウェブページの検索を単に望むという事実に加えて、末端ユーザに関してサーバが知りたいと望む(すなわち必要とする)情報をサーバ(104)に知らせる。例えば、ウェブ・ページが、単一末端ユーザの個人的なウェブページである場合、サーバは末端ユーザのプリファレンスを記憶する。
【0122】
本発明の特徴によれば、キャッシュ(108)は、クッキーを調べて、要求のウェブ・ページが、単一末端ユーザの個人的なページであるかどうか、あるいはアクセス要求がグローバルな末端ユーザから来ていることをクッキーが示しているかどうかを調べることができる。要求ウェブ・ページが、単一末端ユーザのための個人的なウェブ・ページである(あるいは、アクセスの度にウェブ・ページが変更されるようにサポートされているということを示す他の指標がある)場合は、ウェブ・ページをキャッシュすべきではない。これは、TTL=0に設定することよって達成できる。そうでない(例えば、グローバルな末端ユーザである)場合は、TTLを単に上記の説明のように設定する。
【0123】
本発明は、限られた数の実施例に対して説明したが、本発明の多くの変化、変更、そして他の応用も可能である。しかし、そのような変更は、ここに開示した本発明の範囲内に含まれることは明らかである。
【図面の簡単な説明】
【図1】
インターネットをかなり単純化した概要図で、本発明のキャッシングシステムの実施例を示す。
【図2】
静的及び/あるいは動的コンテンツに対するユーザの要求が、どのように本発明によるキャッシュによって処理されるのかを示すフローチャートである。
【図3】
本発明の分析による、平均誤り確率を示すグラフである。
【図4】
本発明の分析による、誤り確率の進展を示すグラフである。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to storing and communicating information on the Internet, and more particularly to caching web page content on the Internet.
[0002]
[Cross-reference with related applications]
This is a continuation of the copending provisional patent application Ser. No. 60 / 218,559, filed Jul. 17, 2000.
[0003]
BACKGROUND OF THE INVENTION
A network that connects two or more computers so that they can share resources is called a "network." The combination of two or more networks is called the "Internet." The "Internet" is a global Internet that interconnects multiple networks, all using a common protocol known as TCP / IP (Transmission Control Protocol / Internet Protocol).
[0004]
The World Wide Web ("WWW", or simply "Web") is a set of standards and protocols that enable the exchange of information between computers, especially hypertext (HTTP) servers on the Internet, and is an interactive multimedia Is to build a huge collection of resources. Internet traffic traverses a number of "backbone" carriers, such as UUNet or Digex, which transfer signals to each other under a system called peering.
[0005]
"Quality of Service" (QoS) refers to a user's computer (typically running "browser" software used to view content) from a content source (typically a server or Internet Service Provider, ISP). It is a measure of the speed and reliability with which information is transferred. "Bit rate" is a measure of the amount of information passing over a network (or any part thereof) at any given time. The higher the bit rate, the more data can be transported. Latency is a measure of the time it takes a packet of data to traverse the Internet from the source to the user.
[0006]
Bit rates can be increased by injecting new capital resources, but increasing the bit rate is simply an indirect process of latency, and increasing the bit rate can result in overloaded, Or you can't speed up a server that is originally slow. Overcoming these barriers requires other solutions. One solution, caching content, was discussed in detail in an article entitled "A Guide to Network Caching to Optimize Web Content Delivery" by Michael A. Gould in March 1999. ing. This article is available online (via the Internet) at the following address:
http: // www. Inktomi. com / products / network / tech_resources / tech / cachingguide. pdf
The text version is available online at the following address:
http: // www. google. com / search? q = cache: www. Inktomi. com / products / network / tech_resources / tech / cachingguide. pdf
[0007]
According to Gould's article:
[0008]
"One way to improve performance and make it more predictable is to minimize the variability introduced by long-range communications over the Internet from the content source to the user's browser. Frequent access Storing content closer to the user can eliminate much of the latency and unpredictable delays in the Internet, a technique called caching, which is a method of storing content from a web server. A means of storing objects closer to the user for faster retrieval. A repository of objects containing text pages, images, and other content is called a web cache. "(Gould, Page 2)
[0009]
Caching is an approach to improving QoS for users, and there is also an economic improvement for network service providers. By storing frequently accessed web content close to the user, the number of jumps required to pass through to search for content located at remote sites can be reduced. (Gould, page 8)
[0010]
In fact, the request for content originates from the user's browser and is first directed to the caching server. If the content is currently in the cache and is up to date, send the content to the user without sending the browser request to the originating server. As a result, the waiting time for transferring the content can be reduced. The time to transfer content to the user is reduced. This also reduces the amount of data that the service provider must search from upstream of the Internet to satisfy the request. (Gould, page 8)
[0011]
Caching is a well understood concept in the field of computer hardware design. Instead of reading from slow memory, the modem microprocessor uses an on-chip cache of fast memory to store frequently used instructions and data nearby. Computers implement multiple levels of caching, including a RAM cache, and even an on-disk cache. All are designed to reduce the latency of reading instructions and data, speeding the transfer of data within the system. The basic principle of caching is to store frequently accessed data in a location that can be accessed more quickly than the original location of the data. In the case of the system's CPU, the original location is the disk. On the Web, the original location is the originating server on the Internet. (Gould, pages 8-9)
[0012]
Network caching, a new concept, is based on exactly the same principles and has the same advantages of cost-effectively improving user utilization. (Gould, page 3)
[0013]
"Caching reduces the latency of downloading web pages (the time you have to wait before something starts), and in that the download speed (the time it takes for all downloads to finish) is faster. Providing direct benefits to end users, but caching also provides benefits to network service providers by storing, or caching, web content that users want from remote servers nearby. Reduces the demands that must be sent over the Internet, so that cache-maintaining access providers have reduced upstream bit rate requirements, which provides a satisfactory web experience to their customers Must be purchased by the service provider to Reduce the no bit-rate. (Gould, page 3)
[0014]
"Caching also offers multiple benefits in web hosting environments where access providers host web sites for many customers. Reducing the impact of communication spikes caused by content of high interest And serve as the basis for a variety of value-added services, such as providing additional capacity, guaranteeing service levels, and duplication services (Gould, page 3).
[0015]
"[Caching] of network data allows users to provide optimal experience and predictable response times. At a typical cache hit rate, users can enjoy high quality of service (QoS). You can experience: QoS improvements offer significant benefits to ISPs, content providers, and corporate sites, and better QoS attracts customer attention and increases customer retention, so access Increase the branding of both the provider and the content provider-ultimately, more visitors will access the content if they ensure that the content is well cached near the user over the network (Gould, page 5)
[0016]
"A web browser also implements a form of caching. It stores recently accessed web content on a user's hard disk and reads files from its local cache instead of accessing the Internet. Works well when hitting the "back" and "forward" buttons in the browser during a session, but does nothing if the user checks the site for the first time. (Gould, page 9)
[0017]
"Both a browser cache and a web server cache cannot address network performance issues. However, by placing a cache of web content on the network between the user and the originating web site, Users can experience a faster response and faster performance because the distance that commonly accessed content must travel across the Internet is reduced. Taking advantage of the fact that it is accessed more frequently than other content, by implementing a caching solution, network service providers have reduced the overall requirement for high bit rate connections to the Internet. While for the customer It is possible to provide a better web experience. (Gould, page 9)
[0018]
"Without a caching solution, the request for content from the browser and the content supplied by the originating server must repeatedly go through the entire journey from the requesting computer to the computer that has the content. Web browsers Sends a request for a uniform resource locator (URL) that names a particular web page on a particular server on the Internet, which request is routed to the server via normal TCP / IP network communication. The content requested from a web server (also known as an HTTP server) may be a static HTML page with links to one or more additional files, including graphics. , Search engine, database query, or The HTTP server may return the requested file to the web browser, one file at a time, generated from the web application. Even pages often have static components that are combined with dynamic content to create the final page (Gould, page 13).
[0019]
"Using caching, frequently accessed content is stored close to the user. Within the firewall on the user's corporate LAN, at the user's ISP, or other network access point (NAP), or It may be stored at a Presence Point (POP) located closer to the user than the majority of web servers, and the requested content or file is located in the cache and is current, ie fresh. Are considered cache hits from these caches. From these caches, if the user requests are more frequently met, then the service provider will provide the user with a higher hit rate and better performance from the Internet for the user. Few data to search (Gould, page 14)
[0020]
"Similar problems exist in FTP file transfers where the FTP server handles each file request submitted by the FTP client application. The typical size of a file transferred by FTP is larger than a typical HTML file In FTP, delays and bottlenecks are a bigger problem, and streaming audio and video are another Internet application that can benefit from caching content near the end user. Here are two examples (Gould, page 14):
[0021]
"Network caching can be applied to content served via many different protocols. For example, there are HTTP, NNTP, FTP, RTSP. All have static content in some proportion and are sophisticated. The feature is that it has a purpose. Of course, it is necessary for the cache server to support each protocol. "(Page 14)
[0022]
"Since the cache needs to be kept fresh, communication from the ISP to the Internet will occur, even if all bits of the content that the user wants are in the cache. Must be downloaded. However, by using caching, the use of bit rates is optimized. It is possible to use a cache even for dynamic content because these pages Is to have some static content available from the cache, depending on the distribution of communications and the size of the cache, removing up to 40 percent of HTTP requests by users from the network by using the cache. This allows the network More efficiently kept, at low cost, can provide better performance. "(Gould, page 14)
[0023]
Gould's article discusses effective use of caches, load balancing, where to place caches in the infrastructure, and the design of web content that is effective for caching. There are also references to developed protocols, such as the Web Cache Control Protocol (WCCP) (page 18). There is also discussion on the proper use of "expired" and "maximum age" headers in the HTTP protocol. (Gould, page 27). Gould emphasizes, among other things:
[0024]
"A good design allows even dynamically generated pages to benefit from caching. By separating dynamic content from static content within the page, static content can be cached and dynamic. Target content can be searched and downloaded separately (Gould, page 28, highlighted)
[0025]
Thus, it is known to use a dedicated computer ram and hard disk to cache static data from a web site and to make this computer function as a proxy between a WWW ("web") server and a user. . Multiple requests for any web page can be served at the cost of a single request to the original web server. Internet service providers (ISPs) generally provide such caching services to their customers. However, this technique has two main disadvantages:
1. Because it is not globally applied, even users of web sites that have access to the cache must intentionally invoke this feature. However, many users are unaware of this feature.
2. It does not apply to pages that change very frequently, as in the case of dynamic content (content immediately generated by a remote server).
[0026]
Therefore, there is a need for caching of dynamic and static content.
[0027]
[Glossary / Definition]
Unless explicitly stated, ie, not clear from the context, terms, abbreviations, acronyms or scientific symbols and notations used in the text have their ordinary meaning in the technical field to which this invention pertains. The following glossary is intended to provide clarity and consistency to the various descriptions in the text and to prior art citations.
[0028]
Cache server
An application optimized to store frequently accessed content at a strategic gathering point near the user seeking the content to reduce the effects of latency and network bottlenecks.
[0029]
CARP
Cache array routing protocol. A protocol for synchronizing multiple cache servers. CARP maintains a shared namespace that maps web object addresses (URLs) to a single node in the array. The request is routed to that node.
[0030]
cookie
The most common meaning of "cookies" on the Internet refers to a piece of information sent from a web server to a web browser. The browser software saves this and sends it back to the server when the browser makes an additional request to the server. Depending on the type of cookie used and the browser settings, the browser may or may not accept cookies. We also store cookies for short or long periods. The cookies may include information such as login or registration information, online "shopping cart" information, user preferences, and the like. When the server receives the request from the browser containing the cookie, it can use the information stored in the cookie. For example, customize what is sent back to the user, or keep a log of specific user requests. Cookies are usually set to expire after a certain amount of time, and are stored in memory until the browser software is closed, and when the browser closes, they are stored on disk if the "expiration date" has not been reached. You.
[0031]
Dynamic content
"Live" content that is updated regularly. Examples of dynamic content are "current temperature" indications on weather web sites, search results, or "current top headlines" items on news web sites.
[0032]
HTTP server
A server that runs the HTTP protocol so that it can serve web pages to client agents (browser). HTTP servers support an interface for web pages to call external programs. It also supports encryption mechanisms for securely exchanging information and authentication, and access control mechanisms for controlling access to content.
[0033]
ICP
Internet caching protocol. A protocol for synchronizing multiple cache servers. Each time the cache server makes a miss, it sends a message to all peer nodes, asking if each node has content. The request server issues a request for the content and then forwards it to the user.
[0034]
Proxy server
Since the proxy server acts as an intermediary between the user and the Internet, the enterprise can ensure security, have administrative control, and also provide caching services. The proxy server is typically associated with a gateway server or part thereof that separates the corporate network from external networks, or a firewall that protects the corporate network from external intrusions.
[0035]
Router
A router is a device that builds a fully interconnected network from a collection of point-to-point links. Routers on the Internet exchange information about the local division of the network, especially how close the network is to the local system. In the Internet, collectively create a map from a point to another point. The packet is routed based on the exchanged mapping information, and the last router is directly connected to the target system.
[0036]
Static content
A "fixed" or long-lasting component of a web page, stored as a file that has not changed or is rarely changed.
[0037]
switch
A high-speed network device typically located around the Internet. Switches differ from routers in that they provide higher performance at lower cost, but have limited functionality. A typical switch can route communications locally, but does not contribute to the routing complexity found in high-speed Internet backbones. Switches play an important role in caching because they are often used to direct cacheable communications to a caching system.
[0038]
HTML
Hypertext markup language. A specification based on the standard general purpose markup language (SGML) for tagging text so that it can be displayed in a user agent (browser) in a standard way.
[0039]
HTTP
Hypertext transmission protocol. An application-level protocol that runs on TCP / IP, which is the foundation of the World Wide Web.
[0040]
IP
Internet Protocol. It is the network layer for the TCP / IP protocol suite and the connectionless and most efficient packet switching protocol.
[0041]
IP address
A 32-bit address defined by the Internet Protocol, usually expressed in decimal notation, that uniquely identifies each computer on the Internet.
[0042]
protocol
A set of consensus technical rules for computers to exchange information.
[0043]
URL
Uniform resource locator. A method for determining the address of an Internet site, including an access protocol and an IP address or DNS name. For example, “http://www.domain.com”.
[0044]
Youth net
Abbreviation for the user's network. A collection of tens of thousands of bulletin boards on the Internet, each including a discussion group called a news group dedicated to various topics. Publish the message and receive a reply via the Network News Transfer Protocol (NNTP).
[0045]
Web server
See HTTP server.
[0046]
[Brief description of the present invention]
An object of the present invention is to provide a technique for improving the QoS of a WWW site by reducing the use of the bandwidth of a WWW server.
[0047]
According to the present invention, techniques for caching objects with dynamic content on the Internet generally consist of placing a cache within the Internet for storing and updating copies of the dynamic content. Place caches at selected locations from key Internet switching locations, dial-in aggregation points, and corporate gateways. Also, a copy of the static content may be stored in the cache and updated.
[0048]
According to a feature of the invention, an update characteristic of the object is determined, and a time to live (TTL) parameter for the object is adjusted based on the update characteristic. Generally, an object is updated if its TTL is less than its elapsed time. The TTL for the object may be adjusted as follows.
(I) maintaining the error probability below a predetermined error probability threshold;
(Ii) maintaining the error rate below a predetermined error probability threshold, or
(Iii) keeping the delay time less than a predetermined delay threshold.
[0049]
In accordance with the present invention, a method for responding to a user request for an object with dynamic content originating from a server includes storing a copy of the object in a cache, setting a time-to-live (TTL) for the object, Receiving the request, satisfying the user request with the stored copy of the object if the TTL is greater than the elapsed time, and fetching an updated copy of the object and responding to the user request with the updated copy if the TTL of the stored copy is less than the elapsed time I do.
[0050]
According to a feature of the present invention, the TTL for an object is initially set to a reasonable lower bound (Tmin) and then adjusted based on how often the object actually changes.
[0051]
According to a feature of the invention, each time the cache fetches an object from the server, the cache performs the following:
a. If another fetch for the same object is in progress, wait for the previous fetch to complete.
b. Fetch an object from the server.
c. Replace the cached copy, if any, with the fetched object, but in this case, after comparing to determine if the object has changed since the last fetch.
d. Initialize or update the change statistics of the object accordingly.
e. Label the object with static or dynamic content, depending on the server response. And
f. If the object is dynamic, the average time between changes (τ) determined from the change statistics of the object, the number of user requests per unit time (η) determined from the object access statistics, and the next processing (A- TTL (T) is set to an appropriate value from one of E).
A. Maximum error probability.
B. Maximum error rate.
C. Maximum delay.
D. A combination of the above (A, B, C) where T is the lowest. Or
E. FIG. Combinations of the above (A, B, C) that keep T within a predetermined range of "reasonable" values between Tmin and Tmax.
[0052]
A cache is a dedicated machine that allows web browsing to go through the cache instead of going all the way to the original site, in many different locations, ideally the largest number in that location. Preferably, it is located in the ISP's network that provides Internet connectivity to the user. If you do this,
-The users of those ISPs and, to a lesser extent, neighboring ISPs, are enormous because most of their communications remain within or near the ISP's internal network and do not have to traverse a heavy Internet backbone. A significant QoS and speed improvement. Also,
The original web site no longer requires a significant bit rate, since the cache absorbs most of the load.
[0053]
Because many web sites tend to provide dynamic content in their entirety, dynamic content is cached as well as static content. However, the problem of caching is not just about remembering the content, because the content has no indicator of when it will change. Instead of simply providing a cached copy, it must be reloaded periodically.
[0054]
Thus, the cache reloads the page (fetches objects from the server) whenever the corresponding cached copy has not been refreshed at any time (time remaining, "TTL"). The TTL can be considered to be the "valid period" of the page. The cache first sets the TTL for the dynamic object to a reasonable lower bound, Tmin. Then, as the cache reloads the page several times over time, it detects how often the content of the page actually changes and adjusts the TTL for that page accordingly. If the original server of the page specifies TTL, this "TTL" technique mimics a common caching method for static pages. Since the dynamic page server does not specify a TTL, the cache must set a valid TTL by itself.
[0055]
Therefore,
-It is possible to cache entire web sites including dynamic content.
Better communication between the cache and the original site can be managed.
-In cases where the page changes before the cache reloads the page, some users may receive the old content, but this can happen without a cache if the network is saturated. It is possible to limit the delay) and error probability.
-The system can adapt in real time depending on the number of requests for each page and the actual frequency of updating the pages.
[0056]
Other objects, features and advantages of the present invention will become apparent from the following description.
[0057]
Preferred embodiments of the present invention will be described in detail with reference to examples shown in the accompanying drawings. The following figures are intended to be described without limitation. Although the invention is described in general with respect to these preferred embodiments, it is not intended that the scope of the invention be limited to these specific embodiments.
[0058]
The rectangular boxes in the flowcharts shown here typically represent successive steps to be performed, while the rectangular boxes with sharp edges generally represent decision steps (tests) with two mutually exclusive results ( "Y" = yes, "N" = no). An empty circle indicates not a step or a test but a junction where two or more paths in the flowchart converge.
[0059]
The structure, operation and advantages of the preferred embodiment of the present invention will become more apparent from the following description taken in conjunction with the accompanying drawings.
[0060]
[Detailed description of the invention]
FIG. 1 is a simplified schematic diagram of the Internet environment, showing an embodiment of the caching system of the present invention. In general, a user 102 makes a “request” for an “object” (eg, a web page) available on the Internet by a server (eg, an ISP) 104 (the object typically originates from a content provider, Not shown). The switch 106 functions as an interface for connecting a cache (cache server) 108 to the Internet. The cache may include a copy of the web page. Two "responses" are possible for a user request. The server "handles" the request (i.e., "serves") or "fills" the request with a cache. In the latter case, first, the content must be "forwarded" to the cache. Thereafter, the updated web page content may be periodically “fetched” (ie, “reloaded”) from the server. The following discussion will use these terms wherever possible.
[0061]
As discussed in Gould's article (eg, page 18, FIG. 4), switch 106 is a high-performance processor capable of observing network communications and making routing decisions based on protocols above the IP level. May be. As a result, the switch directs HTTP (and other) communications to the cache (108) and sends the remaining communications directly to the Internet. This is one example of several possible system architectures. Which architecture to use depends on several factors, including where the cache runs, the primary purpose of the cache, and the nature of the communication.
Dependent.
[0062]
Gould's article further discusses:
[0063]
A non-transparent cache is clearly visible, and browsers or other caches that use the cache are specifically configured to direct communications to the cache. In this case, the cache acts as a browser proxy agent, fulfilling the request when possible and forwarding the request to the originating server when needed. Non-transparent caches often function as part of a gateway or firewall, and are a component of a larger proxy server that handles many different applications. (Gould, pages 16-17)
[0064]
Transparent caches are located in the network path and function invisibly to the browser. For ISP and corporate backbone operation, a transparent configuration is preferred. This is because when the browser is configured to find the cache, the overall burden of managing and supporting user support is minimized. (Gould, page 17)
[0065]
The cache should be implemented transparently to maximize the benefits of caching. In a non-transparent embodiment, the browser must be manually configured to direct content requests to the cache server. In a transparent configuration, the benefits of caching can be provided to the client without resetting the browser. Users automatically benefit from caching. (Gould, page 17)
[0066]
In a corporate environment, transparency can be obtained through automatic browser settings or by intercepting communications on the network. Both Netscape and Microsoft provide utilities to centrally manage a large network of browsers and customize browser settings installed on users' PCs. Browser plugins also provide automatic configuration. This approach is transparent to the user, but requires ongoing administrative efforts. (Gould, page 17)
[0067]
There are several options for providing transparent caching.
-The cache can be configured as if it were a router and all Internet based communications can be directed to the cache. This is a transparent configuration that does not require browser configuration, and the browser or downstream cache is unaware of the presence of the cache, but still benefits. The disadvantage is that the system in which the cache is located must devote some of its resources to routing, making the cache an integral part of the functioning of the network. An elaborate router configuration with policy-based routing can address some of these issues by simply directing HTTP (TCP port 80) traffic to the cache and, if unsuccessful, bypassing the cache and directing the traffic directly to the Internet. Or minimize it. (Gould, page 17)
-A popular option is to use a Layer 4 switch to interface the cache to the Internet (see Figure 4). Currently offered by Alteon, Foundry, ArrowPoint, etc., these switches can examine network communications and make routing decisions based on protocols above the IP level. High performance processor. As a result, the switch directs HTTP (and other) communications to the cache and sends the remaining communications directly to the Internet. The switch can parse the HTTP request and send the request to a particular node at the cache farm based on the requested URL. By using an intelligent switch, unnecessary network communication can be decoupled from the cache, the design for usability is simplified, and the load on the cache farm based on a specific URL can be distributed. (Gould, page 18) (A similar architecture was described above with respect to FIG. 1.)
Another option for transparency is the Web Cache Control Protocol (WCCP). WCCP, developed by Cisco Systems, allows transparent installation of web caches in networks using routers based on Cisco ISO. With WCCP, HTTP communications can be redirected to the web cache instead of the originating server. WCCP does not require any changes to the network architecture and simplifies the implementation of transparent web caching. (Gould, page 18)
-Web Proxy Auto-Discovery Protocol (WPAD) is a newly proposed standard protocol that integrates with browsers, streaming media clients, and other Internet client software without requiring end-user configuration In addition, it can be designed to automatically find caches and services on the network. WPAD offers a flexible, vendor-neutral software option to existing cache transparency solutions using routing or switching devices. In the future, WPAD-enabled client software will provide simplicity to both network providers and users providing these services by automatically connecting users in the area to embedded network services. I will provide a. (Gould, pages 18-19)
[0068]
By using a caching system, the performance of the web server site can be optimized, and the user's Internet access by the web browser can be increased. In a reverse proxy configuration, a caching system is located in front of one or more web servers, intercepting communications to those servers and becoming stand-in, i.e., substituting for one or more servers. Become. A cache server can be placed in the network to create a distributed network for hosted content. If necessary, the proxy cache server seeks dynamic and other short-lived content from the originating server. This allows content from the site to be served from a local cache instead of the originating server. The proxy server can be optimized for high performance and efficient processing. This saves resources and frees the originating server from serving static content. These benefits include the ability to balance load, provide assurance for peak demand that maintains utility, and provide dynamic copies of content to maintain a high degree of utility. (Gould, page 20)
[0069]
There are three general characteristics that determine the best placement of a cache on a network.
-Congestion points in network communications. There are locations through which the majority of network communications pass, and therefore locations that are visible to the cache server. By arranging in such a location, more requests can be processed in the cache and more content can be stored than in a case where the location is easily avoided.
High network load points. High traffic conditions are of great benefit because they allow for higher cache utilization.
-The location that produces the greatest economic benefit to the cache. The point at which the user benefits from a high cache hit rate and also reduces the upstream bit rate requirements provides the access provider with both QoS benefits and economy. Locations with these characteristics are typically found at key Internet switching locations, dial-in aggregation points, or corporate gateways. (Gould, page 20)
[0070]
Locations with these characteristics are typically found at key Internet switching locations, dial-in aggregation points, or enterprise gateways, including:
POP and dial-up (see Gould, page 21, FIG. 7)
NAPS (see Gould, page 22, Figure 8)
Satellite (see Gould, page 22)
International Gateway (see Gould, page 23, Figure 9)
Web hosting (see Gould, page 24, Figure 10)
Last Mile (see Gould, page 25, Figure 11)
Corporate Gateway (see Gould, page 25, Figure 12)
[0071]
A person having ordinary skill in the present technology can easily determine a position where the cache of the present invention should be arranged from the above description. In general, the caches of the present invention are located where the caches that serve static content are located, or incorporated into existing caches that meet the demands for static content, adding the additional functionality possible with the following techniques: be able to. Alternatively, it may be provided as a separate dedicated machine (computer).
[0072]
FIG. 2 is a flow chart showing how a user's request for static and / or dynamic content is handled by the cache.
[0073]
In a first step 202, in response to a user request for an object, the cache determines whether the requested object is in the cache. If not (N), the user request is sent to a server to fulfill the request. At the same time, in step 204, the cache fetches the object from the server in anticipation of the next request for the object from the same or another user.
[0074]
In general, this example assumes that all requests for an object go through a cache server that is transparent to the user. Intercept the information request and determine whether the response is provided from a cached local copy or from a remote source. After fetching information from a local source, the cache server decides whether to store it locally and, if so, for how long. Requests for information that can be provided from a local copy are known as "cache hits". Conversely, a request for information not stored locally is known as a "cache miss". If the preservation decision algorithm is well designed, the probability of a cache hit will improve significantly and the apparent response time to user requests (for QoS) will decrease. In addition, all information requests (cache hits) that are satisfied by locally cached content reduce communication on the external network, thus reducing response time on the external network.
[0075]
If the request object is in the cache, then step 206 determines if the request object is marked as static. If so (Y), at step 208, the "elapsed time" of the object (the time elapsed since the last refresh) is set to (if the original server for the page specifies TTL, the server The cached copy should be updated using an appropriate standard algorithm for caching static objects, such as comparing it to the TTL, asking for the latest modification time, etc., or replacing it to meet user requirements. Determine if it should be used.
[0076]
If the request object is in the cache and is dynamic (N, step 206), step 210 determines whether the TTL ("validity period") of the cache copy is less than its elapsed time.
[0077]
If the TTL of the cache copy is less than the elapsed time (smaller number) (Y, step 210), it is considered "stale" and in step 212 the cache
-Update the access statistics of the object (number of user requests per unit time, last few minutes, last time etc); and
-Fetch the object from the original server.
[0078]
If the TTL of the cache copy is equal to or greater than its age (N, step 210), it is considered "fresh" and in step 214 the cache
Fulfill the request with a cache copy, and
-Update the access statistics of the object.
[0079]
Optionally, if the time difference between the cache copy elapsed time and the TTL is less than any time and the number of recent user requests is greater than any rate, then the "old" but "popular" Considering "high," the cache fetches the object from the server, which is called a "predictive refresh."
[0080]
In addition, each time the cache fetches an object from the server (see steps 204 and 212), in step 216, the cache performs the following:
a. If another fetch for the same object is in progress (for example, because of a previous user request), the cache does not repeat the request but waits for the preceding fetch to complete.
b. Fetch an object from the server.
c. If the cache copy exists, replace it with the latest object after comparing to determine if the object has changed since the last fetch.
d. Accordingly, the change statistics of the object (the number of changes per unit time) are initialized or updated.
e. The object is marked as static or dynamic content in response to the response from the original server (existence of TTL or non-zero TTL).
f. If the object is dynamic, set TTL (T) to an appropriate value depending on: Average time τ between changes (determined from object change statistics), number of user requests η per unit time (determined from object access statistics), and one selected from the following processing (AE) .
[0081]
A. Maximum error probability (p0). This is the average ratio of the number of requests satisfied by the corresponding original object using the changed cache copy to the total number of requests over a given time W.
Figure 2004504681
[0082]
B. Maximum error rate (n0). This is the average number of requests per unit time that the corresponding original object was satisfied using the changed cache copy over a given time W.
Figure 2004504681
[0083]
C. Maximum delay (D0). This is the average time between an object change and a refresh of the cache copy.
Figure 2004504681
[0084]
D. A combination of the above (A, B, C) where T is lowest. Or
[0085]
E. FIG. The combination of (A, B, C) above, wherein T is kept within a predetermined range of “reasonable” values sandwiched between Tmin and Tmax.
[0086]
The following parameters are used in the above equation.
T is the remaining time for the dynamic object.
W is an arbitrary time since the change of the original object (that is, representing the age).
τ is the average time between changes, determined from the object's change statistics.
n is the number of user requests per unit time (for example, frequency).
p0Is the maximum error probability. This is the average ratio of the number of requests satisfied by the corresponding original object using the changed cache copy to the total number of requests over a given time W.
η0Is the maximum error rate. This is the average number of requests per unit time that the corresponding original object was satisfied using the changed cache copy over a given time W.
D0Is the maximum delay. This is the average time between an object change and a refresh of the cache copy.
[0087]
[Selection and adjustment of TTL]
A simple model that takes only the average time between changes of an object (τ) and takes no other parameters is an exponential decay model, i.e., the probability that an object does not change during time t is given by the equation et / τ. Think. Of course, it is 1 for t = 0, but it approaches 0 as t becomes + (∞).
[0088]
Considering a situation where there are many user requests, as compared to the refresh rate of the cache copy, the cache is activated by the user but updates at regular intervals.
[0089]
Average frequency of change
Now check the consistency of the model, especially if the average update frequency of any object is 1 / τ. pC OLet (t) be the probability that k changes over time t. By configuration,
Figure 2004504681
And for k> 0,
Figure 2004504681
(The probability of a k change occurring over [0: t] is the sum over u of the probabilities of a k−1 change occurring between 0 and u, since between u and u + du Although there was a change, there was no change between u + du and t.)
[0090]
We deduce from the repetition as follows.
Figure 2004504681
Figure 2004504681
[0091]
Now, the average number of changes over time t is (from the definition of average):
Figure 2004504681
[0092]
Therefore, it can be seen that the change has an average frequency of 1 / τ.
[0093]
Average error probability
The error probability is defined as the percentage of times when the user receives the cached copy, despite the fact that the object on the original server has changed and the cached copy is older than a given time W. FIG. 3 shows the percentage error (vertical axis indicates percentage) versus time (horizontal axis indicates second). For example, W = 15s, τ = 60s, T = 30s. The graph shows the probability that the cache copy is "stale" for times greater than W seconds. In the graph, W is 15 seconds, so the probability between 1 and 15 seconds is zero. Then, the probability increases when a refetch, indicated by the jagged pattern 302, occurs (T = 30s), ie, 30 seconds. This pattern repeats every 30 seconds. Between 30 seconds and 45 seconds, the probability is again zero and refetching occurs at 45 seconds. Then the probability increases to 60 seconds, as shown by the jagged pattern 304. Between 75 and 90 seconds, the jagged pattern 306 shows a similar result.
[0094]
Assuming that the cache supports updating the copy of the object at regular intervals, calculations can be performed over time [0; T].
[0095]
The average time E in the old content period is the sum of the probability that there was no change between 0 and u but there was a change between u and u + du over the entire period [u; u + du]: This is the result of multiplying the time that the content exists while remaining older than W. That is,
Figure 2004504681
Or
Figure 2004504681
It is.
[0096]
From this, the error probability can be deduced as follows:
Figure 2004504681
[0097]
A range that can be easily processed can be calculated.
Figure 2004504681
[0098]
Its derivative is
Figure 2004504681
[0099]
Since F (0) = F ′ (0) = F ″ (0) = 0, and F ′ ″ (α) is positive for α> = 0, F ″ (α), F ′ (α) ), And ultimately F (α). For this reason,
Figure 2004504681
[0100]
There is a better, easy-to-find range for the case of α> = 1, but this is not an interesting case (T−W> = τ). Therefore,
Figure 2004504681
[0101]
Maximum TTL to guarantee arbitrary error probability
The upper limit is a threshold p with an arbitrary error probability.0It should be set to a TTL that can guarantee less.
Figure 2004504681
[0102]
Thus, the acceptable TTL is:
Figure 2004504681
[0103]
Maximum TTL to guarantee arbitrary error rate
This is0To n0It is the same as that for the error probability just by replacing with / n.
Figure 2004504681
[0104]
Thus, the acceptable TTL is:
Figure 2004504681
[0105]
Average delay for any TTL
It is useful to consider the average delay D between the cache copy and the original object, if the latter changes during any period. First, <△ t (u)>, which is an average delay when a change occurs at a time point u between 0 and T, is calculated.
Figure 2004504681
[0106]
From this, by integrating the probability of a change between u and u + du over [0; T] multiplied by <△ t (u)>, the overall delay <△ t> Can be deduced.
Figure 2004504681
[0107]
Since the calculation of <△ t> does not consider that there has been a change in [0; T], D is obtained by dividing by the corresponding probability.
Figure 2004504681
And
Figure 2004504681
And
Figure 2004504681
Because
Figure 2004504681
[0108]
D to D0TTL should be chosen as follows:
Figure 2004504681
[0109]
From the above description, the following table of multiple error probabilities versus TTL (T (s)) for various values of τ and W is obtained.
[0110]
[Table 1]
Figure 2004504681
[0111]
[Table 2]
Figure 2004504681
[0112]
[Table 3]
Figure 2004504681
[0113]
[Table 4]
Figure 2004504681
[0114]
[Table 5]
Figure 2004504681
[0115]
[Table 6]
Figure 2004504681
[0116]
From the above description, the following conclusions can generally be drawn.
[0117]
The probability that the retrieved information is “not fresh” (older than W) is essentially zero for values of T (s) (remaining time) less than or equal to W, but increases with T (s). Accordingly, it increases with exponential decay, approaching a 100% error probability as it approaches the infinity point. This observation that the error probability for values of T (s) less than or equal to W is zero is essentially because it is evident that if updated more frequently than W, the information cannot be older than W. It is "trivial". However, for values of T (s) above W, it is clear that the average update period τ has a significant effect on the sudden increase in error probability. The greater the average update period τ for W, the more gradual the increase in error probability for an increase in the value of T (s).
[0118]
FIG. 4 is a graph 400 showing the evolution of the error probability Perr as a function of TTL (seconds (s)) for various values of τ (vertical axis indicates percentage (%)) (W = 15 s). Line 402 corresponds to τ = 20 s, line 404 corresponds to τ = 60 s, line 406 corresponds to τ = 300 s, and line 408 corresponds to τ = 600 s.
[0119]
Threshold p0The technique of selecting the TTL so as to maintain a lower error probability than will be illustrated graphically, but first, p p on the vertical axis of graph 4000Identify the value and then move horizontally across the graph 400 on the imaginary line to the point where it intersects the curve (402, 404, 406 or 408) corresponding to the appropriate value of τ. For example, if a 10% error probability threshold is selected, the TTL for τ = 20s (line 402) is slightly less than 30 seconds, for τ = 60s (line 404) is about 35 seconds, and for τ = 300s (line 404). 406) is about 85 seconds, and for τ = 600s (line 408) is about 150 seconds.
[0120]
By implementing caches for static and dynamic content at appropriate locations in the Internet, and selecting appropriate update characteristics for dynamic content in the cache as described above, dynamic and static. Effective user response time to both the public content and congestion on the external network (ie, the Internet) at the same time.
[0121]
When the end user (110) receives the web page for the first time, the web page may optionally implant a cookie in the user's browser. Thereafter, whenever the end user accesses the web page, the browser sends a cookie with a request for access. The cookie informs the server (104) of the information that the server wants (ie, needs) about the end user, in addition to the fact that the user simply wants to retrieve the web page. For example, if the web page is a single end user's personal web page, the server stores the end user's preferences.
[0122]
According to a feature of the present invention, the cache (108) checks the cookie to determine whether the requested web page is a personal page of a single end user, or that the access request comes from a global end user. To see if the cookie indicates that The requesting web page is a personal web page for a single end user (or there is another indication that the web page is supported to be changed on every access) ) If the web page should not be cached. This can be achieved by setting TTL = 0. If not (eg, a global end user), set the TTL simply as described above.
[0123]
Although the invention has been described with respect to a limited number of embodiments, many variations, modifications, and other applications of the invention are possible. However, it is clear that such modifications are included within the scope of the invention disclosed herein.
[Brief description of the drawings]
FIG.
FIG. 2 is a schematic diagram of a considerably simplified version of the Internet, showing an embodiment of the caching system of the present invention.
FIG. 2
4 is a flowchart illustrating how a user's request for static and / or dynamic content is handled by a cache according to the present invention.
FIG. 3
5 is a graph showing an average error probability according to the analysis of the present invention.
FIG. 4
5 is a graph showing the evolution of the error probability according to the analysis of the present invention.

Claims (34)

インターネット上の動的コンテンツを持つオブジェクトをキャッシュするためのシステムであって、
前記インターネットに接続され、動的コンテンツのコピーを保存及び更新するためのキャッシュ、
前記オブジェクトの一つ以上をモニターし、その統計的更新特性を判定するための手段、そして
前記統計的更新特性に基づいて前記オブジェクトに対する残存時間(TTL)パラメータを調節するための手段からなるシステム。
A system for caching objects with dynamic content on the Internet,
A cache connected to the Internet for storing and updating copies of the dynamic content,
A system comprising: means for monitoring one or more of the objects and determining a statistical update characteristic thereof; and means for adjusting a time-to-live (TTL) parameter for the object based on the statistical update characteristic.
前記統計的更新特性が変化統計値を含む、請求項1に記載のシステム。The system of claim 1, wherein the statistical update characteristics include a change statistic. 前記統計的更新特性がアクセス統計値を含む、請求項1に記載のシステム。The system of claim 1, wherein the statistical update characteristics include access statistics. 前記キャッシュが、主要なインターネット・スイッチングロケーション、ダイヤル・イン集合ポイント、そして企業ゲートウェイからなるグループから選択したロケーションに配置される、請求項1に記載のシステム。The system of claim 1, wherein the cache is located at a location selected from a group consisting of a primary Internet switching location, a dial-in aggregation point, and a corporate gateway. 前記キャッシュが、また、静的コンテンツのコピーをも保存し更新する、請求項1に記載のシステム。The system of claim 1, wherein the cache also stores and updates copies of static content. さらに、オブジェクトの経過時間を判定するための手段、そして
前記オブジェクトに対するTTLが、経過時間よりも少ない場合に前記オブジェクトを更新する手段からなる、請求項1に記載のシステム。
The system of claim 1, further comprising: means for determining an age of the object; and means for updating the object if a TTL for the object is less than the elapsed time.
各オブジェクトに対する前記TTLが、前記オブジェクトの変化の平均時間に応じて計算される、請求項6に記載のシステム。The system of claim 6, wherein the TTL for each object is calculated as a function of an average time of change of the object. さらに、前記オブジェクトの各々に対する誤り確率を判定するための手段、そして
その誤り確率を所定の誤り確率閾値よりも低く維持するために、前記オブジェクトの各々に対するTTLを調節するための手段からなる、請求項1に記載のシステム。
Further comprising means for determining an error probability for each of said objects, and means for adjusting a TTL for each of said objects to maintain the error probability below a predetermined error probability threshold. Item 2. The system according to Item 1.
さらに、前記オブジェクトの各々に対する誤り率を判定するための手段、そして
その誤り率を所定の誤り確率閾値よりも低く維持するために、前記オブジェクトの各々に対するTTLを調節するための手段からなる、請求項1に記載のシステム。
Further comprising means for determining an error rate for each of said objects, and means for adjusting a TTL for each of said objects to maintain said error rate below a predetermined error probability threshold. Item 2. The system according to Item 1.
さらに、前記オブジェクトの各々の遅延時間を判定するための手段、そして
その遅延時間を所定の遅延閾値よりも少なく維持するために、前記オブジェクトの各々に対するTTLを調節するための手段からなる、請求項1に記載のシステム。
The apparatus further comprises means for determining a delay time for each of the objects, and means for adjusting a TTL for each of the objects to maintain the delay time below a predetermined delay threshold. 2. The system according to 1.
さらに、前記オブジェクトの各々に対する誤り確率、誤り率、そして遅延時間からなるグループから選択した少なくとも一つのオブジェクト特性を判定するための手段、そして
前記選択オブジェクト特性を各々の閾値よりも低く維持するために、TTLを調節するための手段からなる、請求項1に記載のシステム。
Means for determining at least one object characteristic selected from a group consisting of an error probability, an error rate, and a delay time for each of the objects; and for maintaining the selected object characteristic below a respective threshold. The system according to claim 1, comprising means for adjusting the TTL.
さらに、前記オブジェクトの各々に対するTTLの調整を、所定の最小値(Tmin)及び最大値(Tmax)に囲まれるTTLの範囲内に制限するための手段からなる、請求項11に記載のシステム。12. The system of claim 11, further comprising means for limiting TTL adjustments for each of the objects to within a TTL bounded by a predetermined minimum (Tmin) and maximum (Tmax). インターネット上の動的コンテンツを持つオブジェクトをキャッシュするためのシステムであって、
動的コンテンツのコピーを保存及び更新するための、前記インターネットに接続されたキャッシュ、
前記オブジェクトの一つ以上をモニターし、その更新特性を判定するための手段、
前記更新特性に基づいて前記オブジェクトに対する残存時間(TTL)パラメータを調節するための手段、
前記オブジェクトの各々に対する誤り確率を判定するための手段、そして
その誤り確率を所定の誤り確率閾値よりも低く維持するために、前記オブジェクトの各々に対する前記TTLを調節するための手段からなり、
各オブジェクトに対する前記TTLが、次の方程式に従って計算され、
Figure 2004504681
前記式において、
Tは動的オブジェクトに対する残存時間で、
Wは、本来のオブジェクトが変化してからの任意の時間(すなわち、どれほど古いか)で、
τは、前記オブジェクトの変化統計値から判定される、変化間の平均時間で、
は、任意の時間Wを超える期間に、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした要求数の、全要求数に対する平均比率である最大誤り確率であることを特徴とするシステム。
A system for caching objects with dynamic content on the Internet,
Said internet-connected cache for storing and updating copies of dynamic content;
Means for monitoring one or more of said objects and determining their update characteristics;
Means for adjusting a time to live (TTL) parameter for the object based on the updated characteristics;
Means for determining an error probability for each of said objects, and means for adjusting said TTL for each of said objects to maintain said error probability below a predetermined error probability threshold;
The TTL for each object is calculated according to the following equation:
Figure 2004504681
In the above formula,
T is the time remaining for the dynamic object,
W is any time since the original object changed (ie, how old it is)
τ is the average time between changes, determined from the change statistics of the object,
p 0 is the maximum error probability, which is the average ratio of the number of requests satisfied by the corresponding original object using the changed cache copy to the total number of requests during a period exceeding an arbitrary time W. System to do.
インターネット上の動的コンテンツを持つオブジェクトをキャッシュするためのシステムであって、
前記インターネットに接続され、動的コンテンツのコピーを保存し更新するためのキャッシュ、
前記オブジェクトの一つ以上をモニターし、その更新特性を判定するための手段、
前記更新特性に基づいて前記オブジェクトに対する残存時間(TTL)パラメータを調節するための手段、
前記オブジェクトの各々に対する誤り率を判定するための手段、そして
その誤り率を所定の誤り確率閾値よりも低く維持するために、前記オブジェクトの各々に対するTTLを調節するための手段からなり、
各オブジェクトに対するTTLが、次の方程式に従って計算され、
Figure 2004504681
前記式において、
Tは動的オブジェクトに対する残存時間で、
Wは、本来のオブジェクトが変化してからの任意の時間(すなわち、どれほど古いか)で、
τは、前記オブジェクトの変化統計値から判定される、変化間の平均時間で、
nは単位時間当たりのユーザ要求数(例えば、頻度)で、
は、任意の時間Wを超える期間において、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした単位時間当たりの平均要求数である最大誤り率であることを特徴とするシステム。
A system for caching objects with dynamic content on the Internet,
A cache connected to the Internet for storing and updating copies of the dynamic content,
Means for monitoring one or more of said objects and determining their update characteristics;
Means for adjusting a time to live (TTL) parameter for the object based on the updated characteristics;
Means for determining an error rate for each of the objects, and means for adjusting a TTL for each of the objects to maintain the error rate below a predetermined error probability threshold;
The TTL for each object is calculated according to the following equation:
Figure 2004504681
In the above formula,
T is the time remaining for the dynamic object,
W is any time since the original object changed (ie, how old it is)
τ is the average time between changes, determined from the change statistics of the object,
n is the number of user requests per unit time (eg, frequency),
A system wherein n 0 is a maximum error rate, which is the average number of requests per unit time satisfied by a corresponding original object using a changed cache copy during a period exceeding an arbitrary time W.
インターネット上の動的コンテンツを持つオブジェクトをキャッシュするためのシステムであって、
前記インターネットに接続され、動的コンテンツのコピーを保存及び更新するためのキャッシュ、
前記オブジェクトの一つ以上をモニターし、その更新特性を判定するための手段、
前記更新特性に基づいて前記オブジェクトに対する残存時間(TTL)パラメータを調節するための手段、
前記オブジェクトの各々に対する遅延時間を判定するための手段、そして
その遅延時間を所定の遅延閾値よりも低く維持するために、前記オブジェクトの各々に対するTTLを調節するための手段からなり、
各オブジェクトに対するTTLは、次の方程式に従って計算され、
Figure 2004504681
前記式において、
Tは動的オブジェクトに対する残存時間で、
τは、前記オブジェクトの変化統計値から判定される、変化間の平均時間で、
は、オブジェクト変化と、キャッシュ・コピーのリフレッシュとの間の平均時間である最大遅延であることを特徴とするシステム。
A system for caching objects with dynamic content on the Internet,
A cache connected to the Internet for storing and updating copies of the dynamic content,
Means for monitoring one or more of said objects and determining their update characteristics;
Means for adjusting a time to live (TTL) parameter for the object based on the updated characteristics;
Means for determining a delay time for each of the objects, and means for adjusting a TTL for each of the objects to maintain the delay time below a predetermined delay threshold;
The TTL for each object is calculated according to the following equation:
Figure 2004504681
In the above formula,
T is the time remaining for the dynamic object,
τ is the average time between changes, determined from the change statistics of the object,
The system wherein D 0 is the maximum delay, which is the average time between an object change and a cache copy refresh.
動的コンテンツを持つ情報に対するユーザ要求に応答するための方法であって、
前記動的コンテンツのコピーをキャッシュに保存すること、
前記動的コンテンツに対する残存時間(TTL)を設定すること、
前記キャッシュにおいて前記ユーザ要求を受信すること、
前記TTLがその経過時間よりも多い場合は、前記動的コンテンツの保存コピーで前記ユーザ要求に応答すること、
前記保存コピーのTTLがその経過時間よりも少ない場合は、前記動的コンテンツの更新コピーを検索して、その更新コピーで前記ユーザ要求に応答すること、
前記動的コンテンツに対する平均更新頻度を判定すること、そして
その平均更新頻度の関数として前記動的コンテンツに対する前記TTLを決定することからなる方法。
A method for responding to a user request for information having dynamic content, the method comprising:
Storing a copy of the dynamic content in a cache;
Setting a remaining time (TTL) for the dynamic content;
Receiving the user request in the cache;
Responding to the user request with a stored copy of the dynamic content if the TTL is greater than the elapsed time;
If the TTL of the stored copy is less than its elapsed time, searching for an updated copy of the dynamic content and responding to the user request with the updated copy;
Determining a mean update frequency for the dynamic content; and determining the TTL for the dynamic content as a function of the mean update frequency.
さらに、前記キャッシュに静的コンテンツのコピーを保存することからなる、請求項16に記載の方法。17. The method of claim 16, further comprising storing a copy of the static content in the cache. 前記情報がウェブ・ページとして表され、さらに、ユーザが初めて前記ウェブ・ページを受信するときに、前記ウェブ・ページが前記ユーザのブラウザ内にクッキーを植えつけることからなる、請求項16に記載の方法。17. The method of claim 16, wherein the information is represented as a web page, further comprising, when the user first receives the web page, the web page implants a cookie in the user's browser. Method. その後、前記末端ユーザが前記ウェブ・ページを求めるときはいつも、前記ブラウザが前記クッキーを送る、請求項18に記載の方法。19. The method of claim 18, wherein the browser sends the cookie whenever the end user requests the web page. さらに、前記キャッシュが、前記クッキーを調べ、前記要求のウェブ・ページが単一末端ユーザの個人的なページであるかどうかを見分けることからなる、請求項19に記載の方法。20. The method of claim 19, further comprising the cache examining the cookie to determine whether the requested web page is a single end user's personal page. さらに、前記要求のウェブ・ページが単一末端ユーザの個人的なウェブ・ページである場合は、前記ウェブ・ページがキャッシュされないことからなる、請求項18に記載の方法。19. The method of claim 18, further comprising if the requested web page is a single end user's personal web page, the web page is not cached. さらに、前記情報が、アクセスの度に変更されることをサポートしている場合は、TTL=0を設定することからなる、請求項16に記載の方法。17. The method of claim 16, further comprising setting TTL = 0 if the information supports changing on every access. 動的コンテンツを持つ情報に対するユーザ要求に応答するための方法であって、
前記動的コンテンツのコピーをキャッシュに保存すること、
前記動的コンテンツに対する残存時間(TTL)を設定すること、
前記キャッシュにおいてユーザ要求を受信すること、
前記TTLがその経過時間よりも多い場合は、前記動的コンテンツの保存コピーで前記ユーザ要求に応答すること、
前記保存コピーのTTLがその経過時間よりも少ない場合は、前記動的コンテンツの更新コピーを検索して、この更新コピーで前記ユーザ要求に応答すること、
前記動的コンテンツに対する平均更新頻度を判定すること、そして
その平均更新頻度と所定の誤り確率閾値との関数として前記動的コンテンツに対するTTLを決定することからなる方法。
A method for responding to a user request for information having dynamic content, the method comprising:
Storing a copy of the dynamic content in a cache;
Setting a remaining time (TTL) for the dynamic content;
Receiving a user request in the cache;
Responding to the user request with a stored copy of the dynamic content if the TTL is greater than the elapsed time;
If the TTL of the stored copy is less than its elapsed time, searching for an updated copy of the dynamic content and responding to the user request with the updated copy;
A method comprising: determining an average update frequency for said dynamic content; and determining a TTL for said dynamic content as a function of said average update frequency and a predetermined error probability threshold.
さらに、前記動的コンテンツに対するユーザ要求の頻度に従って、前記動的コンテンツに対するTTLを調節することからなる、請求項23に記載の方法。24. The method of claim 23, further comprising adjusting a TTL for the dynamic content according to a frequency of user requests for the dynamic content. 動的コンテンツを持つ情報に対するユーザ要求に応答するための方法であって、
前記動的コンテンツのコピーをキャッシュ内に保存すること、
前記動的コンテンツに対する残存時間(TTL)を設定すること、
前記ユーザ要求を前記キャッシュにおいて受信すること、
前記TTLがその経過時間よりも多い場合は、前記動的コンテンツの保存コピーで前記ユーザ要求に応答すること、そして
前記保存コピーのTTLがその経過時間より少ない場合は、前記動的コンテンツの更新コピーを検索して、その更新コピーで前記ユーザ要求に応答することからなり、
各オブジェクトに対する前記TTLは、次の方程式に従って計算され、
Figure 2004504681
前記式において、
Tは動的オブジェクトに対する残存時間で、
Wは、本来のオブジェクトが変化してからの任意の時間(すなわち、どれほど古いか)で、
τは、前記オブジェクトの変化統計値から判定される、変化間の平均時間で、
は、任意の時間Wを超える期間に、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした要求数の、全要求数に対する平均比率である最大誤り確率であることを特徴とする方法。
A method for responding to a user request for information having dynamic content, the method comprising:
Storing a copy of the dynamic content in a cache;
Setting a remaining time (TTL) for the dynamic content;
Receiving the user request at the cache;
Responding to the user request with a stored copy of the dynamic content if the TTL is greater than the elapsed time; and updating the dynamic content if the TTL of the stored copy is less than the elapsed time. And responding to said user request with its updated copy,
The TTL for each object is calculated according to the following equation:
Figure 2004504681
In the above formula,
T is the time remaining for the dynamic object,
W is any time since the original object changed (ie, how old it is)
τ is the average time between changes, determined from the change statistics of the object,
p 0 is the maximum error probability, which is the average ratio of the number of requests satisfied by the corresponding original object using the changed cache copy to the total number of requests during a period exceeding an arbitrary time W. how to.
動的コンテンツを持つ情報に対するユーザ要求に応答するための方法であって、
前記動的コンテンツのコピーをキャッシュ内に保存すること、
前記動的コンテンツに対する残存時間(TTL)を設定すること、
前記キャッシュにおいて前記ユーザ要求を受信すること、
前記TTLがその経過時間よりも多い場合は、前記動的コンテンツの保存コピーで前記ユーザ要求に応答すること、そして
前記保存コピーのTTLがその経過時間より少ない場合は、前記動的コンテンツの更新コピーを検索して、その更新コピーで前記ユーザ要求に応答することからなり、
各オブジェクトに対するTTLが、次の方程式に従って計算され、
Figure 2004504681
前記式において、
Tは動的オブジェクトに対する残存時間で、
Wは、本来のオブジェクトが変化してからの任意の時間(すなわち、どれほど古いか)で、
τは、前記オブジェクトの変化統計値から判定される、変化間の平均時間で、
nは単位時間当たりのユーザ要求数(例えば、頻度)で、
は、任意の時間Wを超える期間において、対応する本来のオブジェクトが変化したキャッシュ・コピーを用いて満たした単位時間当たりの平均要求数である最大誤り率であることを特徴とする方法。
A method for responding to a user request for information having dynamic content, the method comprising:
Storing a copy of the dynamic content in a cache;
Setting a remaining time (TTL) for the dynamic content;
Receiving the user request in the cache;
Responding to the user request with a stored copy of the dynamic content if the TTL is greater than the elapsed time; and updating the dynamic content if the TTL of the stored copy is less than the elapsed time. And responding to said user request with its updated copy,
The TTL for each object is calculated according to the following equation:
Figure 2004504681
In the above formula,
T is the time remaining for the dynamic object,
W is any time since the original object changed (ie, how old it is)
τ is the average time between changes, determined from the change statistics of the object,
n is the number of user requests per unit time (eg, frequency),
A method wherein n 0 is a maximum error rate which is an average number of requests per unit time satisfied by a corresponding original object using a changed cache copy during a period exceeding an arbitrary time W.
動的コンテンツを持つ情報に対するユーザ要求に応答するための方法であって、
前記動的コンテンツのコピーをキャッシュに保存すること、
前記動的コンテンツに対する残存時間(TTL)を設定すること、
前記キャッシュにおいて前記ユーザ要求を受信すること、
前記TTLがその経過時間よりも多い場合は、前記動的コンテンツの保存コピーで前記ユーザ要求に応答すること、そして
前記保存コピーのTTLがその経過時間よりも少ない場合は、前記動的コンテンツの更新コピーを検索して、その更新コピーで前記ユーザ要求に応答することからなり、
各オブジェクトに対するTTLは、次の方程式に従って計算され、
Figure 2004504681
前記式において、
Tは動的オブジェクトに対する残存時間で、
τは、前記オブジェクトの変化統計値から判定される、変化間の平均時間で、
は、オブジェクト変化と、キャッシュ・コピーのリフレッシュとの間の平均時間である最大遅延であることを特徴とする方法。
A method for responding to a user request for information having dynamic content, the method comprising:
Storing a copy of the dynamic content in a cache;
Setting a remaining time (TTL) for the dynamic content;
Receiving the user request in the cache;
Responding to the user request with a stored copy of the dynamic content if the TTL is greater than the elapsed time, and updating the dynamic content if the TTL of the stored copy is less than the elapsed time Retrieving a copy and responding to said user request with the updated copy;
The TTL for each object is calculated according to the following equation:
Figure 2004504681
In the above formula,
T is the time remaining for the dynamic object,
τ is the average time between changes, determined from the change statistics of the object,
The method wherein D 0 is the maximum delay, which is the average time between an object change and a cache copy refresh.
サーバから生じる、動的コンテンツを持つオブジェクトに対するユーザ要求に応答するための方法であって、
前記オブジェクトのコピーをキャッシュに保存すること、
前記オブジェクトに対する残存時間(TTL)を設定すること、
前記キャッシュにおいて前記ユーザ要求を受信すること、
前記TTLがその経過時間よりも多い場合は、前記オブジェクトの保存コピーで前記ユーザ要求を満たすこと、
前記保存コピーのTTLがその経過時間よりも少ない場合は、前記オブジェクトの更新コピーをフェッチして、その更新コピーで前記ユーザ要求に応答すること、そして
前記キャッシュにおいて、
まず、前記オブジェクトに対するTTLを妥当な下限(Tmin)に設定すること、そして
前記オブジェクトが実際に変化する頻度に基づいて前記オブジェクトに対するTTLを調節することを特徴とする方法。
A method for responding to a user request for an object having dynamic content originating from a server, the method comprising:
Storing a copy of said object in a cache;
Setting a time remaining (TTL) for the object;
Receiving the user request in the cache;
If the TTL is greater than its elapsed time, satisfying the user request with a stored copy of the object;
Fetching an updated copy of the object and responding to the user request with the updated copy if the TTL of the stored copy is less than the elapsed time;
A method comprising: setting a TTL for the object to a reasonable lower limit (Tmin); and adjusting the TTL for the object based on the frequency with which the object actually changes.
情報がウェブ・ページとして表され、さらに、ユーザが初めて前記ウェブ・ページを受信するときに、前記ウェブ・ページが前記ユーザのブラウザ内にクッキーを植えつけることからなる、請求項28に記載の方法。29. The method of claim 28, wherein the information is represented as a web page, and further comprising, when the user first receives the web page, the web page implants a cookie in the user's browser. . その後、前記末端ユーザが前記ウェブ・ページを求めるときはいつも、前記ブラウザが前記クッキーを送る、請求項29に記載の方法。30. The method of claim 29, wherein the browser sends the cookie whenever the end user requests the web page. さらに、前記キャッシュが、前記クッキーを調べ、前記要求のウェブ・ページが単一末端ユーザの個人的なページであるかどうかを見分けることからなる、請求項30に記載の方法。31. The method of claim 30, further comprising the cache examining the cookie to determine if the requested web page is a single end user's personal page. さらに、前記要求のウェブ・ページが単一末端ユーザの個人的なウェブ・ページである場合は、前記ウェブ・ページがキャッシュされないことからなる、請求項29に記載の方法。30. The method of claim 29, further comprising, if the requested web page is a single end user's personal web page, the web page not being cached. さらに、前記情報が、アクセスの度に変更されることをサポートしている場合は、TTL=0を設定することからなる、請求項28に記載の方法。29. The method of claim 28, further comprising setting TTL = 0 if the information supports changing on every access. サーバから生じる、動的コンテンツを持つオブジェクトに対するユーザ要求に応答するための方法であって、
前記オブジェクトのコピーをキャッシュ内に保存すること、
前記オブジェクトに対する残存時間(TTL)を設定すること、
前記キャッシュにおいて前記ユーザ要求を受信すること、
前記TTLがその経過時間よりも多い場合は、前記オブジェクトの保存コピーで前記ユーザ要求を満たすこと、
前記保存コピーのTTLがその経過時間よりも少ない場合は、前記オブジェクトの更新コピーをフェッチして、その更新コピーで前記ユーザ要求に応答すること、そして
前記キャッシュが前記サーバから前記オブジェクトをフェッチする度に、次の処理を行うこと、
a.同じオブジェクトに対するもう一つのフェッチが進行中である場合は、その先行するフェッチが完了するのを待つこと、
b.前記サーバから前記オブジェクトをフェッチすること、
c.前記キャッシュ内のコピーを、もしそれが存在するなら、最後にフェッチして以来前記オブジェクトが変化したかどうかを判定するために比較した後、前記フェッチしたオブジェクトで置き換えること、
d.前記オブジェクトの変化統計値を初期化する、あるいは相応に更新すること、
e.前記サーバの応答に応じて、前記オブジェクトに静的あるいは動的コンテンツと標識すること、そして
f.前記オブジェクトが動的である場合は、前記オブジェクトの変化統計値から判定した変化(τ)間の平均時間、前記オブジェクトのアクセス統計値から判定した単位時間ユーザ要求数(n)、そして次の処理(A−E)の一つに応じて、前記TTL(T)を適当な値に設定することからなり、
Aは最大誤り確率、
Bは最大誤り率、
Cは最大遅延、
DはTが最低になる上記(A、B、C)の組合せ、
EはTminとTmaxとが挟む「妥当な」値の所定範囲内にTを留める上記(A、B、C)の組合せであることを特徴とする方法。
A method for responding to a user request for an object having dynamic content originating from a server, the method comprising:
Storing a copy of the object in a cache;
Setting a time remaining (TTL) for the object;
Receiving the user request in the cache;
If the TTL is greater than its elapsed time, satisfying the user request with a stored copy of the object;
Fetching an updated copy of the object and responding to the user request with the updated copy if the TTL of the stored copy is less than its elapsed time; and each time the cache fetches the object from the server. To do the following:
a. If another fetch for the same object is in progress, wait for its preceding fetch to complete;
b. Fetching the object from the server;
c. Replacing the copy in the cache, if it exists, with the fetched object after comparing to determine whether the object has changed since the last fetch;
d. Initializing, or updating accordingly, the change statistics of the object;
e. Labeling the object with static or dynamic content in response to the server response; and f. If the object is dynamic, the average time between changes (τ) determined from the change statistics of the object, the number of user requests per unit time (n) determined from the access statistics of the object, and the next processing Setting the TTL (T) to an appropriate value according to one of (AE);
A is the maximum error probability,
B is the maximum error rate,
C is the maximum delay,
D is a combination of the above (A, B, C) that minimizes T,
A method wherein E is a combination of the above (A, B, C) that keeps T within a predetermined range of “reasonable” values between Tmin and Tmax.
JP2002513142A 2000-07-17 2001-07-16 Caching static and dynamic content on cache-distributed networks saves WWW site bit rates and improves QoS Pending JP2004504681A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US21855900P 2000-07-17 2000-07-17
PCT/IL2001/000651 WO2002007364A2 (en) 2000-07-17 2001-07-16 BANDWIDTH SAVINGS AND QoS IMPROVEMENT FOR WWW SITES BY CATCHING STATIC AND DYNAMIC CONTENT ON A DISTRIBUTED NETWORK OF CACHES

Publications (1)

Publication Number Publication Date
JP2004504681A true JP2004504681A (en) 2004-02-12

Family

ID=22815575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002513142A Pending JP2004504681A (en) 2000-07-17 2001-07-16 Caching static and dynamic content on cache-distributed networks saves WWW site bit rates and improves QoS

Country Status (5)

Country Link
EP (1) EP1311957A2 (en)
JP (1) JP2004504681A (en)
AU (1) AU2001278654A1 (en)
IL (1) IL153782A0 (en)
WO (1) WO2002007364A2 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8364650B2 (en) 2005-10-03 2013-01-29 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier system aimed at interfacing large databases
JP2014238880A (en) * 2006-08-21 2014-12-18 アマゾン テクノロジーズ インコーポレーテッド Probabilistic technique for consistency-checking cache entries
KR101529602B1 (en) * 2013-01-07 2015-06-18 한국과학기술원 Cache server, system for providing of the content and method forreplacement of the content
KR101540847B1 (en) * 2013-07-09 2015-07-30 광운대학교 산학협력단 Apparatus and method for caching web browser information based on load of storage
JP2015531129A (en) * 2012-08-14 2015-10-29 アマデウス エス.アー.エス.Amadeus S.A.S. Updating cached database query results
JP2016519346A (en) * 2013-03-01 2016-06-30 フェイスブック,インク. Structured document pagelet caching
KR101645222B1 (en) * 2015-05-06 2016-08-12 (주)넷피아 Advanced domain name system and management method
US10353993B2 (en) 2010-04-05 2019-07-16 Facebook, Inc. Phased generation and delivery of structured documents

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4744792B2 (en) * 2003-06-26 2011-08-10 ソフトバンクモバイル株式会社 Caching system
JP5116319B2 (en) * 2007-03-06 2013-01-09 キヤノン株式会社 Message relay apparatus and method
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8769660B2 (en) 2008-01-26 2014-07-01 Citrix Systems, Inc. Systems and methods for proxying cookies for SSL VPN clientless sessions
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
GB2510073B (en) * 2012-01-05 2014-12-31 Seven Networks Inc Mobile device caching
WO2013103988A1 (en) 2012-01-05 2013-07-11 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6185608B1 (en) * 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8042120B2 (en) 2004-09-30 2011-10-18 Citrix Systems, Inc. Method and apparatus for moving processes between isolation environments
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8132176B2 (en) 2004-09-30 2012-03-06 Citrix Systems, Inc. Method for accessing, by application programs, resources residing inside an application isolation scope
US8302101B2 (en) 2004-09-30 2012-10-30 Citrix Systems, Inc. Methods and systems for accessing, by application programs, resources provided by an operating system
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8364650B2 (en) 2005-10-03 2013-01-29 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier system aimed at interfacing large databases
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
JP2014238880A (en) * 2006-08-21 2014-12-18 アマゾン テクノロジーズ インコーポレーテッド Probabilistic technique for consistency-checking cache entries
US10353993B2 (en) 2010-04-05 2019-07-16 Facebook, Inc. Phased generation and delivery of structured documents
JP2015531129A (en) * 2012-08-14 2015-10-29 アマデウス エス.アー.エス.Amadeus S.A.S. Updating cached database query results
KR101529602B1 (en) * 2013-01-07 2015-06-18 한국과학기술원 Cache server, system for providing of the content and method forreplacement of the content
JP2016519346A (en) * 2013-03-01 2016-06-30 フェイスブック,インク. Structured document pagelet caching
JP2017194988A (en) * 2013-03-01 2017-10-26 フェイスブック,インク. Caching pagelets of structured documents
KR101540847B1 (en) * 2013-07-09 2015-07-30 광운대학교 산학협력단 Apparatus and method for caching web browser information based on load of storage
KR101645222B1 (en) * 2015-05-06 2016-08-12 (주)넷피아 Advanced domain name system and management method

Also Published As

Publication number Publication date
WO2002007364A2 (en) 2002-01-24
IL153782A0 (en) 2003-07-31
EP1311957A2 (en) 2003-05-21
AU2001278654A1 (en) 2002-01-30
WO2002007364A3 (en) 2002-05-02

Similar Documents

Publication Publication Date Title
US20040128346A1 (en) Bandwidth savings and qos improvement for www sites by catching static and dynamic content on a distributed network of caches
JP2004504681A (en) Caching static and dynamic content on cache-distributed networks saves WWW site bit rates and improves QoS
Davison A web caching primer
US10476984B2 (en) Content request routing and load balancing for content distribution networks
EP1175651B1 (en) Handling a request for information provided by a network site
US7113935B2 (en) Method and system for adaptive prefetching
US8447837B2 (en) Site acceleration with content prefetching enabled through customer-specific configurations
Barish et al. World wide web caching: Trends and techniques
US6701415B1 (en) Selecting a cache for a request for information
US6959318B1 (en) Method of proxy-assisted predictive pre-fetching with transcoding
US20030078964A1 (en) System and method for reducing the time to deliver information from a communications network to a user
US20080046596A1 (en) Method for caching and delivery of compressed content in a content delivery network
US20110219109A1 (en) System and method for sharing transparent proxy between isp and cdn
US20030126198A1 (en) Method and apparatus for discovering client proximity using race type translations
WO2007079192A2 (en) Site acceleration with content prefetching enabled through customer-specific configurations
Iyengar et al. Web caching, consistency, and content distribution
Hussain et al. Intelligent prefetching at a proxy server
Mohamed et al. Web caching and prefetching: Techniques and analysis in World Wide Web
Danalis et al. Web Caching: A Survey
Bhagwan et al. Cache is better than Check
AU2002324438A1 (en) A system and method for reducing the time to deliver information from a communications network to a user