JP2004501431A - アプリケーションキャッシングシステムおよび方法 - Google Patents
アプリケーションキャッシングシステムおよび方法 Download PDFInfo
- Publication number
- JP2004501431A JP2004501431A JP2001583384A JP2001583384A JP2004501431A JP 2004501431 A JP2004501431 A JP 2004501431A JP 2001583384 A JP2001583384 A JP 2001583384A JP 2001583384 A JP2001583384 A JP 2001583384A JP 2004501431 A JP2004501431 A JP 2004501431A
- Authority
- JP
- Japan
- Prior art keywords
- application
- computer
- cache
- service request
- query
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 12
- 230000003068 static effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
分散型コンピュータネットワーク(24)の全体に亘って一以上のアプリケーションをキャッシュさできるアプリケーションキャッシングシステムおよび方法が提供される。該システムは、中央キャッシュディレクトリーサーバ(30)と、一以上の分散型マスターアプリケーションサーバ(28)と、一以上の分散型アプリケーションキャッシュサーバ(26)とを含んでいる。このシステムは、より迅速に、探索等のサービスをユーザに提供することを可能にする。
Description
【0001】
(発明の背景)
本発明は、一般にはアプリケーションをコンピュータにキャッシングするためのシステムおよび方法に関し、特に、アプリケーションがコンピュータネットワークの全体に亘って分散されるように、ソフトウエアアプリケーションまたはソフトウエアアプリケーションモジュールを遠隔的に保存するためのシステムおよび方法に関する。
【0002】
Netscape(登録商標)ナビゲータまたはMicrosoft(登録商標)エクスプローラのような典型的なウェブ閲覧アプリケーションは、ユーザが、ウェブのページを彼等のローカルコンピュータにキャッシングすることを可能にする。次いで、更なる閲覧セッションの際、要求されたページをサーバから検索する前に、閲覧ソフトは、該ウェブページが未だウェブページキャッシュに保存されているかどうかをチェックする。当該ウェブページがキャッシュの中に存在すれば、それは該キャッシュからロードされる。そうでなければ、閲覧ソフトは、該ウェブページをサーバから要求する。典型的には、閲覧ソフトは一定時間後にキャッシュを削除し、またダイナミックウェブページのような一定の様式でのウェブページのキャッシングを許可しない。この様式のキャッシングは、静的ウェブページキャッシングと称することができる。
【0003】
AT&Tは、共有の静止キャッシングを備えたコンピュータネットワークを開発したが、ここでは一以上のコンピュータが接続されたコンピュータネットワークが存在し得る。また、該コンピュータネットワークは、中央キャッシュディレクトリーをもった中央サーバを含んでいる。該コンピュータネットワークに接続されたコンピュータは、データオブジェクトをキャッシングする毎に、中央キャッシュディレクトリーを更新する。加えて、該コンピュータネットワークに新たなコンピュータが接続されると、この新たなコンピュータのキャッシュオブジェクトのリストが中央キャッシュディレクトリーにアップロードされて、中央キャッシュディレクトリーが当該コンピュータネットワーク全域の全てのキャッシングされたオブジェクトのリストを有するようになっている。次いで、何れかのコンピュータが一つのオブジェクトを要求すると、中央キャッシュディレクトリーは、該オブジェクトが他のコンピュータの一つにキャッシュされているかどうかを決定するためにチェックし、コンピュータが該オブジェクトを他のコンピュータの一つから検索できるようになっている。中央キャッシュディレクトリーのサーチに基づいて該オブジェクトが他の何れのコンピュータにもキャッシュされていないとき、コンピュータは該コンピュータネットワークの全域を検索し、次いで中央キャッシュディレクトリーを更新して、該コンピュータが当該オブジェクトのコピーを今キャッシュしたことを知らせる。プロキシサーバの終了がネックであるから、このシステムは、典型的なプロキシサーバシステムに対する改良である。このシステムは、キャッシュされたオブジェクトが当該コンピュータネットワークに接続された全てのコンピュータの間で分散され、中央コンピュータ上の情報のみが中央キャッシュディレクトリーである点で、分散型のキャッシュを提供する。このシステムにおいては、ウェブページ等のような静的オブジェクトがキャッシュされ得る。典型的なウェブ閲覧ソフトおよび分散型キャッシュの限界は、これらのシステムが動的データのキャッシュを可能にしないことである。例えば、これらのシステムは、ソフトウエアアプリケーションまたはソフトウエアアプリケーションモジュールをキャッシュできない。
【0004】
分散型のコンピューティング環境には、静的データ片(ファイル、マルチメディア等)を保存する多くのコンピュータノードが存在し得る。これらのノードは、ネットワークリンクによって一緒に接続される。また、これらのノードは、サービスをフィールド要求する(要求の単純な例は、「データファイルXへのアクセスを下さい」である)。要求されたデータオブジェクトを、ネットワークリンク上で、それが保存されているノードからそれが要求されたノードへと送るためにはかなりの時間を要し得るので、種々のノードにおいて該データオブジェクトを複製するためには、キャッシングサービスを使用するのが普通である。その基本的なアイディアは、データオブジェクトXの要求がネットワークの或るノードNで受信されたときに、該キャッシングサービスは、(横切るネットワークリンクの数、または見積もられたネットワーク遅延、または幾つかの他の複合手段に関して)Nに「近接した」Xのコピーを探索する。入ってくる要求に応答してデータオブジェクトの複製を能動的に管理することにより、キャシングサービスは、典型的には、該サービスを要求しているユーザが寄り迅速な平均応答を受けるように、入って来る要求を処理することができる。このキャキャッシングサービスは、典型的には、当該ネットワークの種々のノードで実行される分散型プログラムであり、各ノードで利用可能な保存量、複数のノードでデータをプリエンプティブに複製することにより生じたネットワークオーバーヘッド、およびデータオブジェクトの複数のコピーの一貫性(即ち、オブジェクトの一つのコピーが幾つかの他のプログラムによって修飾されるときに何が起きるか)のような問題を管理しなければならない。このような分散型キャッシングは、Akamai, Inc.によって提供されるもの等のような、インターネットキャッシングサービスの中核をなしている。
【0005】
上記の問題および限界を処理するための共通の技術は、サーバミラリングと呼ばれる。この基本的なアイディアは、本質的に、複数のノードにおいてその全体が複製されるように、当該ネットワークの多くのノードにおいて、典型的にはデータベースD、および該データベースのための探索アプリケーションAを静的に複製することである。ウェブサイトが複数のミラーサイトを有するならば、ディレクトリー名サービス(DNS)自動照合(典型的には閲覧ソフトによって要求されたもの)は、リスト中の複数のIPアドレスを予め定められた順序に戻し、該閲覧ソフトは典型的には最初のIPアドレスを選択する。閲覧ソフトによって選択されたサーバがオーバーロードされ、タイムアウトが起きたら、閲覧ソフトは順次リスト中の次のIPアドレスを選択するであろう。
【0006】
このアプローチには幾つかの困難が存在する。第一に、複数モードでのDおよびAの複製は、多くのネットワークノードにおける保存およびコンピュータ資源を永久的にロックダウンすることを意味する。これは、ネットワーク(例えばインターネット)が、このような数百の探索および他のサービスを提供しているときに特に顕著である。第二に、DおよびAを複製するノードの指定は、ユーザの要求パターンにおける変化に対応しない点で静的である。例えば、金融情報に関連した探索サービスは、北米のビジネス時間に多くアクセスされるのに対して、1日の遅い時間には、北米のユーザはスポーツおよび娯楽関連の情報を探す傾向がある一方、極東のユーザは金融情報を探し始める。第三に、データベースDはその全体が複製される。しかし、問合せの大部分はデータベースの小さな画分(いわゆる空間的位置)に集中することが周知である。加えて、一時的な位置パターン(例えば、ある会社に関するニュース項目に反応した、当該会社に関する金融情報における興味の急増)が存在する。従って、従来のシステムに伴う上記の限界および問題を克服する、ソフトウエアアプリケーションキャッシングシステムを提供することが望まれており、本発明はこの目的に向けられている。
【0007】
(発明の概要)
本発明によるアプリケーションキャッシングシステムおよび方法は、コンピュータネットワーク全域でのサービス要求が、該コンピュータネットワークの夫々のノードに位置するサービス要求を処理するためのアプリケーションおよびデータをコピーすることなく、効率的な方法で実行されることを可能にする。こうして、このアプリケーションキャッシングシステムは、サービス要求を履行することに関連した待ち時間を最小化する。当該アプリケーションキャッシングシステムは、探索アプリケーション等を含む種々の異なるアプリケーションと共に使用すればよい。
【0008】
従って、本発明によれば、アプリケーションキャッシングシステムが提供される。このシステムは、コンピュータネットワークと、該コンピュータネットワークに接続された、該コンピュータネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーとを含んでなるものである。更に、このシステムは、一以上のアプリケーションおよび該一以上のアプリケーションに関連したデータを保存するマスターアプリケーションコンピュータと;該マスターアプリケーションコンピュータから、アプリケーションおよびその関連データを受取るアプリケーションキャッシュコンピュータとを含み、該アプリケーションキャッシュコンピュータはその近くに位置するコンピュータからの要求を処理する。更に詳細に言えば、このキャッシュディレクトリーは更に、以前のサービス要求、以前のサービス結果および該サービスを処理する資源の位置のリスト、並びに該サービス要求を適切なアプリケーションキャッシュコンピュータにディスパッチするための中央キャッシュディスパッチャーを含んでいる。
【0009】
上記の中央キャッシュディスパッチャーは、現在のサービス要求が以前のサービス要求に合致すればキャッシュされている結果を戻し、またサービス要求者に隣接したアプリケーションキャッシュコンピュータが該サービス要求を処理できるかどうかを決定する。隣接するアプリケーションキャッシュコンピュータが当該サービス要求を処理できないとき、中央キャッシュディスパッチャーは、このサービス要求を実行するために必要なアプリケーションおよびデータを、サービス要求者の近くのアプリケーションキャッシュコンピュータに転送して、当該サービス要求を実行する。本発明に従うアプリケーションキャッシングのための方法も説明される。
【0010】
(好ましい実施例の詳細な説明)
本発明は、特に、探索ソフトウエアアプリケーションをキャッシングするためのシステムに適用することができ、これに関連して本発明を説明する。しかし、それは如何なる様式の動的オブジェクトをキャッシュするためのものであってもよく、またローン計算プログラムまたはウェブページ要約機を含む他の種々の異なるソフトウエアアプリケーションのために使用してもよいから、本発明による装置および方法は更に大きな有用性を有することが理解されるであろう。本発明によれば、上記で述べた分散型のキャッシングパラダイムは、典型的なデータオブジェクトキャッシングに加えて、ネットワーク上で他のソフトウエアアプリケーションのキャッシングをも可能にするように、一般化および拡張され得る。本発明をより良く理解するために、当該システムを詳細に説明する前に、データベースにおける探索の単純な例を説明する。
【0011】
従って、ユーザの問い合わせQに応答して、探索アプリケーションAがアクセスできる登録されたデータベースDを考慮しよう。特に、探索アプリケーションAは、問い合わせQに合致する一組の結果をDから受取る。例えば、データベースDは金融データ関連のデータベースであることができ、またAはデータベースアプリケーションであることができ、Qはその株価が$50〜$55である全ての会社のリストについての問合せであることができるであろう。伝統的なネットワーク(今日のインターネットのような)において、Qは、DおよびアプリケーションAを含むネットワークノードNへとルーティングされる。Nにおいて、アプリケーションAはDを探索して問合せQに対する回答を発生し、次いでこの結果を、当該要求を発したネットワークノードに戻す。このプロセスにおいて、ユーザは二つの原因から生じる遅延を経験する:即ち、(1)問合せが、ネットワークを通してDおよびAを含む(固有の)ノードへと移動するための時間、(2)全てNにおいてコンピューティング資源を共有するネットワーク上の多くのユーザから生じる競争である。これらの問題を解決するために、次に述べる本発明によるソフトウエアアプリケーションキャッシングシステムを使用すればよい。
【0012】
図1は、本発明によるソフトウエアアプリケーションキャッシングシステム20を示すブロック図である。該システム20は、インターネットまたはワールドワイドウェブ等の広域ネットワークのようなコンピュータネットワーク22を含んでおり、これは一以上の個別のコンピュータまたは特定区域内通信網(LAN)24(図では円で示されている)を一緒に接続している。該システムはまた、一以上のアプリケーションキャッシュサーバ26(図では四角で示されている)、一以上のマスターアプリケーションサーバ28(図では大きな楕円で示されている)、および中央キャッシュディレクトリーサーバ30を含んでおり、これらは全てコンピュータネットワークに接続されている。図1に示した種々のコンピュータ資源と共に、該コンピュータネットワークは、コンピュータ処理資源のウエブを形成する。この説明のために、キャッシュされる一つのアプリケーションを説明するが、本発明に従って複数のアプリケーションがキャッシュされ得るように、複数のマスターアプリケーションサーバが存在してもよい。
【0013】
本発明に従えば、アプリケーションキャッシュサーバ26は、コンピュータネットワーク全体に地理的に分散していてもよい。加えて、マスターアプリケーションサーバ28は、戦略的にコンピュータネットワークの周りに配置されてもよい。特に、各マスターアプリケーションサーバは、一組の特殊なサービスをその顧客に提供する。例えば、図1に示したマスターアプリケーションサーバは、CDNowおよびHomeDepotサーバを含んでもよい。更に詳細に言えば、マスターアプリケーションサーバは、対応するアプリケーションについての全てのサービス(例えば、全体のデータコレクションD、および全てのアプリケーションプログラムA)を維持してもよい。他方、該アプリケーションキャッシュサーバ26は、多くのサブコレクション(例えばサブセット{D1,D2,…,Dn}、Dの区画)および必要なアプリケーションプログラム({A1,A2,…,An}のサブセット、Aの区画)をキャッシュしてもよい。何を、何処で、如何にしてキャッシュするかの決定は、時間およびノードに依存した問合せパターンの統計に基づいている。当該ネットワークに接続されたキャッシュディレクトリーサーバ30は、ネットワーク上にある全てのアプリケーションキャッシュサーバの状態(如何なるサービスが如何なるサーバにキャッシュされたか)の追跡を維持する。また、キャッシュディレクトリーサーバは中央問合せディスパッチャーのホストとして働き、該ディスパッチャは、問合せを最も近接したアプリケーションキャッシュサーバにルーティングし、次いでその結果を、当該問い合わせが発せられた場所に逆ルーティングする。次に、本発明によるアプリケーションキャッシングシステムの動作を説明する。
【0014】
図2は、本発明によるソフトウエアアプリケーションキャッシングのための方法40を示すフローチャートである。特に、問合せは、図2に示したワークフローに従って、典型的には、分散型アプリケーションキャッシングシステムの中で処理される。更に詳細に言えば、ステップ42において、ユーザはウェブサイトから探索様式を要求することができ、次いで該要求はマスターアプリケーションサーバに転送される。次に、マスターアプリケーションサーバは、ステップ44において、この探索ページ様式をユーザに送ればよい。ステップ46において、ユーザは、該ユーザがマスターアプリケーションサーバ(例えばCDNow)から受取った探索様式を使用して、問合せを依頼することができる。この問合せは、キャッシュディレクトリーサーバに実際にルーティングされる。ユーザの問い合わせを受信すると、キャッシュディレクトリーサーバ内の中央問い合わせディスパッチャーは、先ず、その問合せが最近請求されたことがあるかどうか、およびその結果は問合せを発したノード近隣のノードで入手可能かどうかをチェックする。その問合せの結果が問合せ発生源のノードに近ければ、中央問合せディスパッチャは、この最近の結果を用いて応答することを選択することができる。そうでなければ、中央問い合わせディスパッチャーは中央に維持されているテーブルを参照する。該テーブルには、共通の問合せについて、コレクションの夫々からの結果画分をリストしている。ステップ48において、キャッシュディレクトリーサーバは、該問い合わせを、最も近いアプリケーションキャッシュサーバに転送すればよい。ステップ50では、アプリケーションキャッシュサーバにおいて、該サーバは当該問合せが以前に既に実行されてキャッシュされたかどうかを決定することができる。その問合せの結果が以前に実行され且つキャッシュされていれば、当該アプリケーションキャッシュサーバは、ステップ52において該キャッシュされた結果をユーザに供給することができる。その問合せが以前にキャッシュされていなければ、当該アプリケーションキャッシュサーバは、ステップ54において、当該問合せがローカル探索であるかどうか(例えば、該探索はアプリケーションキャッシュサーバに対してローカルな資源を使用して実行できるか?)を決定する。その問合せがローカルに実行できるものであれば、アプリケーションキャッシュサーバは、ステップ56において、該問い合わせを実行すればよい。そうでなければ、ステップ58において、アプリケーションキャッシュサーバは、その近隣の複数のアプリケーションキャッシュサーバの中で、当該問い合わせを実行するために必要なコンピュータ処理資源を探索する。
【0015】
例えば、問合せ「IBM」について、前記テーブルは、結果サイズの最後の評価において、この問合せ結果の70%がコレクションD3由来であり、26%がD7由来であり、残りがD11由来であることを提示する項目を含んでいるかもしれない。次いで、ディスパッチャは該表の中に、問合せが発生したノードVにキャッシュされたD3が現在存在し、またネットワーク中の隣接ノードWにD7およびD11のコピーが現在存在するのを認識する(図1参照)。従って、それは問合せを処理する仕事を、それが必要とする情報と共にVに転送し、隣のWに副問い合わせを形成する。ノードVはそのコレクションに対して問合せを実行し、Wからの副問合せの結果を整理し、次いでその結果をユーザに戻す。
【0016】
上記本発明に従うアプリケーションキャッシング方法について、アプリケーションAのコピーは、上記の例においてVおよびWの両方に常駐し、実行されなければならない。ネットワーク全域に亘ってサービスを提供する数千のこのようなアプリケーションが潜在的に存在する環境において、ネットワークの全てのノードに活性なコピーを維持することは可能でないかもしれない。従って、アプリケーションのサブセットを(ノードのサブセットに)キャッシュすることで充分であり、ここでサブセットの好都合な組合せは、それらに最も多くアクセスするノードに最も近い最も頻繁にアクセスされるアプリケーションである。更に、アプリケーションAは特定の探索サービスに束縛される必要はなく、それは複数の探索サービスに亘って共有され得ることに留意すべきである。他の自明な一般化には、問合せについての結果の構成において、二以上のデータ資源Dを使用すること、および/または二以上のアプリケーションAを使用することが含まれる(多くの場合、一つのサービスは幾つかの問い合わせの結果を組立てて、末端ユーザのための一つの結果を組立てる:例えば、夫々が異なるデータベースまたはテキスト資源から呼び出された、20分遅れの株価、3月株価チャート、および会社に関するニュースについてのテキスト探索)。
【0017】
多数のアプリケーションは、本発明による分散型のアプリケーションキャッシングから利益を受けることができる。例えば、迅速に数が増大する手持ち型装置(またはPDA、パームパイロット、ポケットベル(pager)、携帯電話のような小さい携帯型装置)がウェブにアクセスするにつれて、手持ち型装置の画面のサイズが小さいこと、および無線アプリケーションプロトコール(WAP)を用いた手持ち型装置とウェブサーバとの間のバンド幅が制限されることのために、文書を要約することが非常に重要になってくる。本発明による分散型のアプリケーションキャッシングは、この問題を取扱うために適している。特に、文書要約プログラム(例えばVerity, Inc.製のもの)を、ネットワークの全域に亘って、アプリケーションキャッシュサーバにキャッシュすることができる。こうして、手持ち型装置から発した要求をアプリケーションサーバが受信すると、それはキャッシュされた文書要約プログラムを使用して、WML(無線マークアップ言語)フォーマット文書の小さいフットプリントバージョンを供給する。本発明によるアプリケーションキャッシングの利益を受けるアプリケーションの他の例には、マスターアプリケーションサーバに対する負荷を低減するために、ネットワークの全域に亘ってアプリケーションキャッシュサーバにキャッシュできる、担保ローン計算のためのCGIプログラムまたはサーブレットが含まれる。次に、本発明に従って動的要求を取り扱う方法を説明する。
【0018】
図3は、本発明に従って動的サービス要求を処理するための方法70を示すフローチャートである。特に、この方法は、問合せのような特定のサービス要求に基づいて、該サービス要求に対する最良の解決を見出すように試みる。該サービス要求に対する解決策は、キャッシュされた結果(最良の解決)を戻すこと、問合せと同じLANにおけるアプリケーションキャッシュコンピュータ(AC)上で問合せを実行すること、またはACがその問合せを実行できるように、必要なプログラムおよびデータを、問合せ要求者に近いACにダウンロードすることが含まれる。
【0019】
ステップ72において、キャッシュディレクトリーはユーザから入ってくる問合せを受信する。上記で説明したキャッシュディレクトリーに保存されたテーブルを使用して、キャッシュディレクトリーにおけるディスパッチャーは、ステップ74において、その問合せが当該システムにキャッシュされているかどうかを決定すればよい。問合せが以前にキャッシュされていれば、ステップ76において、キャッシュディレクトリーは該キャッシュされた結果をユーザに転送し、ユーザの問合せを履行するであろう。これは、問合せが反復される必要がないから待ち時間が最小になるので、最良の解決策である。この解決はまた、その問合せが反復される必要がないので、コンピュータ処理資源を節約する。その問合せがキャッシュされていなければ、キャッシュディレクトリーは、ステップ78において、ユーザと同じLAN上のアプリケーションキャッシュ(AC)コンピュータがその問合せを処理できるかどうかを決定する。このACは、それが当該問合せを実行する適切なプログラムおよびデータを有していれば、この問合せを処理することができる。
【0020】
ユーザに対してローカルなACが適切なファシリティーを有していれば、該ACはステップ80において当該問合せを実行し、問合せ結果をユーザに戻す。また、将来の同じ問合せがより容易に満たされ得るように、このローカルACは問合せ結果を保存し、問い合わせ結果をキャッシュディレクトリーに転送する。ユーザに対してローカルなACが問合せを処理できなければ、キャッシュディレクトリーはユーザに近いACを選択し、ステップ82において、ACが問合せを実行できるように、問合せを実行するために必要なプログラムおよびデータをダウンロード/転送する。このオプションは、プログラムおよびデータをACに転送することを必要とするので、最も望ましくないものであるが、ユーザとACとの間の距離による待ち時間が最小になるように、ユーザにできるだけ近くで問合せが実行されるのを保証する。ステップ84において、キャッシュディレクトリーは、特定のACがその問合せを実行するために必要なプログラムおよびデータを有することを反映するように、そのテーブルを更新する。ステップ86において、ユーザに近いACが当該問合せを実行する。ステップ88において、ACはその結果をユーザに転送して、該結果のコピーをAC上に保存する。このACはまた、その結果をキャッシュディレクトリーに転送する。このようにして、アプリケーションキャッシングシステムが受信した各サービス要求は、プログラムおよびデータをネットワークの各ノードにコピーすることを必要とせずに、最も効率的な方法で実行される。こうして、アプリケーションキャッシングシステムはネットワークにおける冗長性の量を低減するが、全てのサービス要求が最も効率的な方法で処理されることを保証する。次に、本発明によるアプリケーションキャッシングの一例を説明する。
【0021】
図4〜図13は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示している。この例において、ユーザは、製品探索能力を含むCDNowのようなウェブサイトを訪問する。これらの製品探索能力は、本発明によるアプリケーションキャッシングシステムを使用して実施すればよい。特に、図4に示すように、コンピュータネットワーク60は、アプリケーションキャッシュサーバ26と共に複数のコンピュータ/LAN 24に接続されたコンピュータネットワーク22、マスターアプリケーションサーバ28、および中央キャッシュディレクトリーサーバ30を含み得る。この例において、マスターアプリケーションサーバは、CDNow ウェブサイト61に収容され、またCDNowによって所有および実行され、CDNowユーザにアプリケーションキャッシングシステムの利益を提供する。特に、顧客(顧客A)がCDNowのウェブサイトを訪問して探索を完了することを望むとき、ユーザの要求は、矢印62によって示すように、コンピュータネットワークを横切る。
【0022】
図5に示すように、ユーザからの探索様式要求に応答して、CDNow ウェブサイト61は、コンピュータネットワーク上で探索様式64を顧客に戻す。図6に示すように、ユーザはこのフォームに問合せを入力し、問合せの依頼はキャッシュディレクトリーサーバ30に転送される。特に、ユーザに提供された探索様式は、ユーザの問合せが自動的にキャッシュディレクトリーサーバに転送されるように、キャッシュディレクトリーサーバ30のアドレスに関する情報を含むことができる。図7に示したように、キャッシュディレクトリーサーバは、問い合わせおよびその結果が当該システムの中にキャッシュされされているかどうか(この例ではキャッシュされていなかった)を決定することができ、また顧客の近くのアプリケーションキャッシュサーバ当該問い合わせを処理できるかどうかを決定することができる(この例では、当該問合せまたは問合せのためのデータを処理する探索アプリケーションがアプリケーションキャッシュサーバの近くに位置していないから、顧客の近くのアプリケーションキャッシュサーバ(顧客のLAN内の)は当該問合せをサービスできない)。上記の決定に基づいて,キャッシュディレクトリーサーバ30は、当該問い合わせを処理するために必要なデータおよびプログラムを、アプリケーションキャッシュサーバZにキャッシュすることを決定する。
【0023】
図8に示すように、CDNow ウェブサイト61は、当該問い合わせの結果を集め、探索結果を顧客A(検討のために)およびキャッシュディレクトリーサーバ(キャッシュディレクトリーサーバにキャッシュされた問合せのリストが更新され得るように)に送る。図9に示したように、CDNow ウェブサイト61および特にマスターアプリケーションサーバ28は、将来この問合せにサービスできるように、データおよびプログラムの必要なコレクションをアプリケーションキャッシュサーバZに送る。同時に、図10に示すように、キャッシュディレクトリーサーバはそのディレクトリーを更新して、アプリケーションキャッシュサーバZがそこにダウンロードされたデータおよびプログラムを有することを反映し、またその探索結果をキヤッシュする。次いで、図11に示すように、異なるLANまたはコンピュータにおいて、顧客Bが、Aと同じ問合せをCDNow ウェブサイト61に実行依頼をすると、図5〜7に示したステップ1〜3が実行される。この場合、キャッシュディレクトリーサーバは、キャッシュされた問合せ結果を、Aの問い合わせディレクトリーからBに送る。図12に示すように、第三の顧客(顧客C)が異なる問合せを実行依頼すると、キャッシュディレクトリーは、該問合せは(顧客のBの問い合わせとは異なり)キャッシュディレクトリーサーバにキャッシュされていないが、顧客Cに近いアプリケーションキャッシュサーバZが該探索を提供するために必要なデータおよびプログラムを現在保存しているから、それは該サーバZによってサービスされ得ることを見出す。従って、顧客Cのために、問合せはアプリケーションキャッシュサーバZに転送される。次いで、図13に示すように、アプリケーションキャッシュサーバZは、顧客Cのための問合せを提供し、次いでその問合せ結果をローカルにキャッシュする。次いで、キャッシュディレクトリーサーバ30が、ローカルにキャッシュされた問合せ結果のコピーをアプリケーションサーバZが持っていることを知るように、アプリケーションキャッシュサーバZはキャッシュディレクトリーサーバ30を更新する。
【0024】
以上、本発明の特定の実施例を参照して説明したが、当業者は、その範囲が添付の特許請求の範囲によって定義される本発明の原理および精神を逸脱することなく、この実施例に変更を加えてもよいことを理解するであろう。
【図面の簡単な説明】
【図1】
図1は、本発明によるソフトウエアアプリケーションキャッシングシステムを示すブロック図である。
【図2】
図2は、本発明によるソフトウエアアプリケーションキャッシングの方法を示すフローチャートである。
【図3】
図3は、本発明に従って動的アプリケーション要求を取扱うための方法を示すフローチャートである。
【図4】
図4は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図5】
図5は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図6】
図6は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図7】
図7は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図8】
図8は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図9】
図9は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図10】
図10は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図11】
図11は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図12】
図12は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図13】
図13は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
(発明の背景)
本発明は、一般にはアプリケーションをコンピュータにキャッシングするためのシステムおよび方法に関し、特に、アプリケーションがコンピュータネットワークの全体に亘って分散されるように、ソフトウエアアプリケーションまたはソフトウエアアプリケーションモジュールを遠隔的に保存するためのシステムおよび方法に関する。
【0002】
Netscape(登録商標)ナビゲータまたはMicrosoft(登録商標)エクスプローラのような典型的なウェブ閲覧アプリケーションは、ユーザが、ウェブのページを彼等のローカルコンピュータにキャッシングすることを可能にする。次いで、更なる閲覧セッションの際、要求されたページをサーバから検索する前に、閲覧ソフトは、該ウェブページが未だウェブページキャッシュに保存されているかどうかをチェックする。当該ウェブページがキャッシュの中に存在すれば、それは該キャッシュからロードされる。そうでなければ、閲覧ソフトは、該ウェブページをサーバから要求する。典型的には、閲覧ソフトは一定時間後にキャッシュを削除し、またダイナミックウェブページのような一定の様式でのウェブページのキャッシングを許可しない。この様式のキャッシングは、静的ウェブページキャッシングと称することができる。
【0003】
AT&Tは、共有の静止キャッシングを備えたコンピュータネットワークを開発したが、ここでは一以上のコンピュータが接続されたコンピュータネットワークが存在し得る。また、該コンピュータネットワークは、中央キャッシュディレクトリーをもった中央サーバを含んでいる。該コンピュータネットワークに接続されたコンピュータは、データオブジェクトをキャッシングする毎に、中央キャッシュディレクトリーを更新する。加えて、該コンピュータネットワークに新たなコンピュータが接続されると、この新たなコンピュータのキャッシュオブジェクトのリストが中央キャッシュディレクトリーにアップロードされて、中央キャッシュディレクトリーが当該コンピュータネットワーク全域の全てのキャッシングされたオブジェクトのリストを有するようになっている。次いで、何れかのコンピュータが一つのオブジェクトを要求すると、中央キャッシュディレクトリーは、該オブジェクトが他のコンピュータの一つにキャッシュされているかどうかを決定するためにチェックし、コンピュータが該オブジェクトを他のコンピュータの一つから検索できるようになっている。中央キャッシュディレクトリーのサーチに基づいて該オブジェクトが他の何れのコンピュータにもキャッシュされていないとき、コンピュータは該コンピュータネットワークの全域を検索し、次いで中央キャッシュディレクトリーを更新して、該コンピュータが当該オブジェクトのコピーを今キャッシュしたことを知らせる。プロキシサーバの終了がネックであるから、このシステムは、典型的なプロキシサーバシステムに対する改良である。このシステムは、キャッシュされたオブジェクトが当該コンピュータネットワークに接続された全てのコンピュータの間で分散され、中央コンピュータ上の情報のみが中央キャッシュディレクトリーである点で、分散型のキャッシュを提供する。このシステムにおいては、ウェブページ等のような静的オブジェクトがキャッシュされ得る。典型的なウェブ閲覧ソフトおよび分散型キャッシュの限界は、これらのシステムが動的データのキャッシュを可能にしないことである。例えば、これらのシステムは、ソフトウエアアプリケーションまたはソフトウエアアプリケーションモジュールをキャッシュできない。
【0004】
分散型のコンピューティング環境には、静的データ片(ファイル、マルチメディア等)を保存する多くのコンピュータノードが存在し得る。これらのノードは、ネットワークリンクによって一緒に接続される。また、これらのノードは、サービスをフィールド要求する(要求の単純な例は、「データファイルXへのアクセスを下さい」である)。要求されたデータオブジェクトを、ネットワークリンク上で、それが保存されているノードからそれが要求されたノードへと送るためにはかなりの時間を要し得るので、種々のノードにおいて該データオブジェクトを複製するためには、キャッシングサービスを使用するのが普通である。その基本的なアイディアは、データオブジェクトXの要求がネットワークの或るノードNで受信されたときに、該キャッシングサービスは、(横切るネットワークリンクの数、または見積もられたネットワーク遅延、または幾つかの他の複合手段に関して)Nに「近接した」Xのコピーを探索する。入ってくる要求に応答してデータオブジェクトの複製を能動的に管理することにより、キャシングサービスは、典型的には、該サービスを要求しているユーザが寄り迅速な平均応答を受けるように、入って来る要求を処理することができる。このキャキャッシングサービスは、典型的には、当該ネットワークの種々のノードで実行される分散型プログラムであり、各ノードで利用可能な保存量、複数のノードでデータをプリエンプティブに複製することにより生じたネットワークオーバーヘッド、およびデータオブジェクトの複数のコピーの一貫性(即ち、オブジェクトの一つのコピーが幾つかの他のプログラムによって修飾されるときに何が起きるか)のような問題を管理しなければならない。このような分散型キャッシングは、Akamai, Inc.によって提供されるもの等のような、インターネットキャッシングサービスの中核をなしている。
【0005】
上記の問題および限界を処理するための共通の技術は、サーバミラリングと呼ばれる。この基本的なアイディアは、本質的に、複数のノードにおいてその全体が複製されるように、当該ネットワークの多くのノードにおいて、典型的にはデータベースD、および該データベースのための探索アプリケーションAを静的に複製することである。ウェブサイトが複数のミラーサイトを有するならば、ディレクトリー名サービス(DNS)自動照合(典型的には閲覧ソフトによって要求されたもの)は、リスト中の複数のIPアドレスを予め定められた順序に戻し、該閲覧ソフトは典型的には最初のIPアドレスを選択する。閲覧ソフトによって選択されたサーバがオーバーロードされ、タイムアウトが起きたら、閲覧ソフトは順次リスト中の次のIPアドレスを選択するであろう。
【0006】
このアプローチには幾つかの困難が存在する。第一に、複数モードでのDおよびAの複製は、多くのネットワークノードにおける保存およびコンピュータ資源を永久的にロックダウンすることを意味する。これは、ネットワーク(例えばインターネット)が、このような数百の探索および他のサービスを提供しているときに特に顕著である。第二に、DおよびAを複製するノードの指定は、ユーザの要求パターンにおける変化に対応しない点で静的である。例えば、金融情報に関連した探索サービスは、北米のビジネス時間に多くアクセスされるのに対して、1日の遅い時間には、北米のユーザはスポーツおよび娯楽関連の情報を探す傾向がある一方、極東のユーザは金融情報を探し始める。第三に、データベースDはその全体が複製される。しかし、問合せの大部分はデータベースの小さな画分(いわゆる空間的位置)に集中することが周知である。加えて、一時的な位置パターン(例えば、ある会社に関するニュース項目に反応した、当該会社に関する金融情報における興味の急増)が存在する。従って、従来のシステムに伴う上記の限界および問題を克服する、ソフトウエアアプリケーションキャッシングシステムを提供することが望まれており、本発明はこの目的に向けられている。
【0007】
(発明の概要)
本発明によるアプリケーションキャッシングシステムおよび方法は、コンピュータネットワーク全域でのサービス要求が、該コンピュータネットワークの夫々のノードに位置するサービス要求を処理するためのアプリケーションおよびデータをコピーすることなく、効率的な方法で実行されることを可能にする。こうして、このアプリケーションキャッシングシステムは、サービス要求を履行することに関連した待ち時間を最小化する。当該アプリケーションキャッシングシステムは、探索アプリケーション等を含む種々の異なるアプリケーションと共に使用すればよい。
【0008】
従って、本発明によれば、アプリケーションキャッシングシステムが提供される。このシステムは、コンピュータネットワークと、該コンピュータネットワークに接続された、該コンピュータネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーとを含んでなるものである。更に、このシステムは、一以上のアプリケーションおよび該一以上のアプリケーションに関連したデータを保存するマスターアプリケーションコンピュータと;該マスターアプリケーションコンピュータから、アプリケーションおよびその関連データを受取るアプリケーションキャッシュコンピュータとを含み、該アプリケーションキャッシュコンピュータはその近くに位置するコンピュータからの要求を処理する。更に詳細に言えば、このキャッシュディレクトリーは更に、以前のサービス要求、以前のサービス結果および該サービスを処理する資源の位置のリスト、並びに該サービス要求を適切なアプリケーションキャッシュコンピュータにディスパッチするための中央キャッシュディスパッチャーを含んでいる。
【0009】
上記の中央キャッシュディスパッチャーは、現在のサービス要求が以前のサービス要求に合致すればキャッシュされている結果を戻し、またサービス要求者に隣接したアプリケーションキャッシュコンピュータが該サービス要求を処理できるかどうかを決定する。隣接するアプリケーションキャッシュコンピュータが当該サービス要求を処理できないとき、中央キャッシュディスパッチャーは、このサービス要求を実行するために必要なアプリケーションおよびデータを、サービス要求者の近くのアプリケーションキャッシュコンピュータに転送して、当該サービス要求を実行する。本発明に従うアプリケーションキャッシングのための方法も説明される。
【0010】
(好ましい実施例の詳細な説明)
本発明は、特に、探索ソフトウエアアプリケーションをキャッシングするためのシステムに適用することができ、これに関連して本発明を説明する。しかし、それは如何なる様式の動的オブジェクトをキャッシュするためのものであってもよく、またローン計算プログラムまたはウェブページ要約機を含む他の種々の異なるソフトウエアアプリケーションのために使用してもよいから、本発明による装置および方法は更に大きな有用性を有することが理解されるであろう。本発明によれば、上記で述べた分散型のキャッシングパラダイムは、典型的なデータオブジェクトキャッシングに加えて、ネットワーク上で他のソフトウエアアプリケーションのキャッシングをも可能にするように、一般化および拡張され得る。本発明をより良く理解するために、当該システムを詳細に説明する前に、データベースにおける探索の単純な例を説明する。
【0011】
従って、ユーザの問い合わせQに応答して、探索アプリケーションAがアクセスできる登録されたデータベースDを考慮しよう。特に、探索アプリケーションAは、問い合わせQに合致する一組の結果をDから受取る。例えば、データベースDは金融データ関連のデータベースであることができ、またAはデータベースアプリケーションであることができ、Qはその株価が$50〜$55である全ての会社のリストについての問合せであることができるであろう。伝統的なネットワーク(今日のインターネットのような)において、Qは、DおよびアプリケーションAを含むネットワークノードNへとルーティングされる。Nにおいて、アプリケーションAはDを探索して問合せQに対する回答を発生し、次いでこの結果を、当該要求を発したネットワークノードに戻す。このプロセスにおいて、ユーザは二つの原因から生じる遅延を経験する:即ち、(1)問合せが、ネットワークを通してDおよびAを含む(固有の)ノードへと移動するための時間、(2)全てNにおいてコンピューティング資源を共有するネットワーク上の多くのユーザから生じる競争である。これらの問題を解決するために、次に述べる本発明によるソフトウエアアプリケーションキャッシングシステムを使用すればよい。
【0012】
図1は、本発明によるソフトウエアアプリケーションキャッシングシステム20を示すブロック図である。該システム20は、インターネットまたはワールドワイドウェブ等の広域ネットワークのようなコンピュータネットワーク22を含んでおり、これは一以上の個別のコンピュータまたは特定区域内通信網(LAN)24(図では円で示されている)を一緒に接続している。該システムはまた、一以上のアプリケーションキャッシュサーバ26(図では四角で示されている)、一以上のマスターアプリケーションサーバ28(図では大きな楕円で示されている)、および中央キャッシュディレクトリーサーバ30を含んでおり、これらは全てコンピュータネットワークに接続されている。図1に示した種々のコンピュータ資源と共に、該コンピュータネットワークは、コンピュータ処理資源のウエブを形成する。この説明のために、キャッシュされる一つのアプリケーションを説明するが、本発明に従って複数のアプリケーションがキャッシュされ得るように、複数のマスターアプリケーションサーバが存在してもよい。
【0013】
本発明に従えば、アプリケーションキャッシュサーバ26は、コンピュータネットワーク全体に地理的に分散していてもよい。加えて、マスターアプリケーションサーバ28は、戦略的にコンピュータネットワークの周りに配置されてもよい。特に、各マスターアプリケーションサーバは、一組の特殊なサービスをその顧客に提供する。例えば、図1に示したマスターアプリケーションサーバは、CDNowおよびHomeDepotサーバを含んでもよい。更に詳細に言えば、マスターアプリケーションサーバは、対応するアプリケーションについての全てのサービス(例えば、全体のデータコレクションD、および全てのアプリケーションプログラムA)を維持してもよい。他方、該アプリケーションキャッシュサーバ26は、多くのサブコレクション(例えばサブセット{D1,D2,…,Dn}、Dの区画)および必要なアプリケーションプログラム({A1,A2,…,An}のサブセット、Aの区画)をキャッシュしてもよい。何を、何処で、如何にしてキャッシュするかの決定は、時間およびノードに依存した問合せパターンの統計に基づいている。当該ネットワークに接続されたキャッシュディレクトリーサーバ30は、ネットワーク上にある全てのアプリケーションキャッシュサーバの状態(如何なるサービスが如何なるサーバにキャッシュされたか)の追跡を維持する。また、キャッシュディレクトリーサーバは中央問合せディスパッチャーのホストとして働き、該ディスパッチャは、問合せを最も近接したアプリケーションキャッシュサーバにルーティングし、次いでその結果を、当該問い合わせが発せられた場所に逆ルーティングする。次に、本発明によるアプリケーションキャッシングシステムの動作を説明する。
【0014】
図2は、本発明によるソフトウエアアプリケーションキャッシングのための方法40を示すフローチャートである。特に、問合せは、図2に示したワークフローに従って、典型的には、分散型アプリケーションキャッシングシステムの中で処理される。更に詳細に言えば、ステップ42において、ユーザはウェブサイトから探索様式を要求することができ、次いで該要求はマスターアプリケーションサーバに転送される。次に、マスターアプリケーションサーバは、ステップ44において、この探索ページ様式をユーザに送ればよい。ステップ46において、ユーザは、該ユーザがマスターアプリケーションサーバ(例えばCDNow)から受取った探索様式を使用して、問合せを依頼することができる。この問合せは、キャッシュディレクトリーサーバに実際にルーティングされる。ユーザの問い合わせを受信すると、キャッシュディレクトリーサーバ内の中央問い合わせディスパッチャーは、先ず、その問合せが最近請求されたことがあるかどうか、およびその結果は問合せを発したノード近隣のノードで入手可能かどうかをチェックする。その問合せの結果が問合せ発生源のノードに近ければ、中央問合せディスパッチャは、この最近の結果を用いて応答することを選択することができる。そうでなければ、中央問い合わせディスパッチャーは中央に維持されているテーブルを参照する。該テーブルには、共通の問合せについて、コレクションの夫々からの結果画分をリストしている。ステップ48において、キャッシュディレクトリーサーバは、該問い合わせを、最も近いアプリケーションキャッシュサーバに転送すればよい。ステップ50では、アプリケーションキャッシュサーバにおいて、該サーバは当該問合せが以前に既に実行されてキャッシュされたかどうかを決定することができる。その問合せの結果が以前に実行され且つキャッシュされていれば、当該アプリケーションキャッシュサーバは、ステップ52において該キャッシュされた結果をユーザに供給することができる。その問合せが以前にキャッシュされていなければ、当該アプリケーションキャッシュサーバは、ステップ54において、当該問合せがローカル探索であるかどうか(例えば、該探索はアプリケーションキャッシュサーバに対してローカルな資源を使用して実行できるか?)を決定する。その問合せがローカルに実行できるものであれば、アプリケーションキャッシュサーバは、ステップ56において、該問い合わせを実行すればよい。そうでなければ、ステップ58において、アプリケーションキャッシュサーバは、その近隣の複数のアプリケーションキャッシュサーバの中で、当該問い合わせを実行するために必要なコンピュータ処理資源を探索する。
【0015】
例えば、問合せ「IBM」について、前記テーブルは、結果サイズの最後の評価において、この問合せ結果の70%がコレクションD3由来であり、26%がD7由来であり、残りがD11由来であることを提示する項目を含んでいるかもしれない。次いで、ディスパッチャは該表の中に、問合せが発生したノードVにキャッシュされたD3が現在存在し、またネットワーク中の隣接ノードWにD7およびD11のコピーが現在存在するのを認識する(図1参照)。従って、それは問合せを処理する仕事を、それが必要とする情報と共にVに転送し、隣のWに副問い合わせを形成する。ノードVはそのコレクションに対して問合せを実行し、Wからの副問合せの結果を整理し、次いでその結果をユーザに戻す。
【0016】
上記本発明に従うアプリケーションキャッシング方法について、アプリケーションAのコピーは、上記の例においてVおよびWの両方に常駐し、実行されなければならない。ネットワーク全域に亘ってサービスを提供する数千のこのようなアプリケーションが潜在的に存在する環境において、ネットワークの全てのノードに活性なコピーを維持することは可能でないかもしれない。従って、アプリケーションのサブセットを(ノードのサブセットに)キャッシュすることで充分であり、ここでサブセットの好都合な組合せは、それらに最も多くアクセスするノードに最も近い最も頻繁にアクセスされるアプリケーションである。更に、アプリケーションAは特定の探索サービスに束縛される必要はなく、それは複数の探索サービスに亘って共有され得ることに留意すべきである。他の自明な一般化には、問合せについての結果の構成において、二以上のデータ資源Dを使用すること、および/または二以上のアプリケーションAを使用することが含まれる(多くの場合、一つのサービスは幾つかの問い合わせの結果を組立てて、末端ユーザのための一つの結果を組立てる:例えば、夫々が異なるデータベースまたはテキスト資源から呼び出された、20分遅れの株価、3月株価チャート、および会社に関するニュースについてのテキスト探索)。
【0017】
多数のアプリケーションは、本発明による分散型のアプリケーションキャッシングから利益を受けることができる。例えば、迅速に数が増大する手持ち型装置(またはPDA、パームパイロット、ポケットベル(pager)、携帯電話のような小さい携帯型装置)がウェブにアクセスするにつれて、手持ち型装置の画面のサイズが小さいこと、および無線アプリケーションプロトコール(WAP)を用いた手持ち型装置とウェブサーバとの間のバンド幅が制限されることのために、文書を要約することが非常に重要になってくる。本発明による分散型のアプリケーションキャッシングは、この問題を取扱うために適している。特に、文書要約プログラム(例えばVerity, Inc.製のもの)を、ネットワークの全域に亘って、アプリケーションキャッシュサーバにキャッシュすることができる。こうして、手持ち型装置から発した要求をアプリケーションサーバが受信すると、それはキャッシュされた文書要約プログラムを使用して、WML(無線マークアップ言語)フォーマット文書の小さいフットプリントバージョンを供給する。本発明によるアプリケーションキャッシングの利益を受けるアプリケーションの他の例には、マスターアプリケーションサーバに対する負荷を低減するために、ネットワークの全域に亘ってアプリケーションキャッシュサーバにキャッシュできる、担保ローン計算のためのCGIプログラムまたはサーブレットが含まれる。次に、本発明に従って動的要求を取り扱う方法を説明する。
【0018】
図3は、本発明に従って動的サービス要求を処理するための方法70を示すフローチャートである。特に、この方法は、問合せのような特定のサービス要求に基づいて、該サービス要求に対する最良の解決を見出すように試みる。該サービス要求に対する解決策は、キャッシュされた結果(最良の解決)を戻すこと、問合せと同じLANにおけるアプリケーションキャッシュコンピュータ(AC)上で問合せを実行すること、またはACがその問合せを実行できるように、必要なプログラムおよびデータを、問合せ要求者に近いACにダウンロードすることが含まれる。
【0019】
ステップ72において、キャッシュディレクトリーはユーザから入ってくる問合せを受信する。上記で説明したキャッシュディレクトリーに保存されたテーブルを使用して、キャッシュディレクトリーにおけるディスパッチャーは、ステップ74において、その問合せが当該システムにキャッシュされているかどうかを決定すればよい。問合せが以前にキャッシュされていれば、ステップ76において、キャッシュディレクトリーは該キャッシュされた結果をユーザに転送し、ユーザの問合せを履行するであろう。これは、問合せが反復される必要がないから待ち時間が最小になるので、最良の解決策である。この解決はまた、その問合せが反復される必要がないので、コンピュータ処理資源を節約する。その問合せがキャッシュされていなければ、キャッシュディレクトリーは、ステップ78において、ユーザと同じLAN上のアプリケーションキャッシュ(AC)コンピュータがその問合せを処理できるかどうかを決定する。このACは、それが当該問合せを実行する適切なプログラムおよびデータを有していれば、この問合せを処理することができる。
【0020】
ユーザに対してローカルなACが適切なファシリティーを有していれば、該ACはステップ80において当該問合せを実行し、問合せ結果をユーザに戻す。また、将来の同じ問合せがより容易に満たされ得るように、このローカルACは問合せ結果を保存し、問い合わせ結果をキャッシュディレクトリーに転送する。ユーザに対してローカルなACが問合せを処理できなければ、キャッシュディレクトリーはユーザに近いACを選択し、ステップ82において、ACが問合せを実行できるように、問合せを実行するために必要なプログラムおよびデータをダウンロード/転送する。このオプションは、プログラムおよびデータをACに転送することを必要とするので、最も望ましくないものであるが、ユーザとACとの間の距離による待ち時間が最小になるように、ユーザにできるだけ近くで問合せが実行されるのを保証する。ステップ84において、キャッシュディレクトリーは、特定のACがその問合せを実行するために必要なプログラムおよびデータを有することを反映するように、そのテーブルを更新する。ステップ86において、ユーザに近いACが当該問合せを実行する。ステップ88において、ACはその結果をユーザに転送して、該結果のコピーをAC上に保存する。このACはまた、その結果をキャッシュディレクトリーに転送する。このようにして、アプリケーションキャッシングシステムが受信した各サービス要求は、プログラムおよびデータをネットワークの各ノードにコピーすることを必要とせずに、最も効率的な方法で実行される。こうして、アプリケーションキャッシングシステムはネットワークにおける冗長性の量を低減するが、全てのサービス要求が最も効率的な方法で処理されることを保証する。次に、本発明によるアプリケーションキャッシングの一例を説明する。
【0021】
図4〜図13は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示している。この例において、ユーザは、製品探索能力を含むCDNowのようなウェブサイトを訪問する。これらの製品探索能力は、本発明によるアプリケーションキャッシングシステムを使用して実施すればよい。特に、図4に示すように、コンピュータネットワーク60は、アプリケーションキャッシュサーバ26と共に複数のコンピュータ/LAN 24に接続されたコンピュータネットワーク22、マスターアプリケーションサーバ28、および中央キャッシュディレクトリーサーバ30を含み得る。この例において、マスターアプリケーションサーバは、CDNow ウェブサイト61に収容され、またCDNowによって所有および実行され、CDNowユーザにアプリケーションキャッシングシステムの利益を提供する。特に、顧客(顧客A)がCDNowのウェブサイトを訪問して探索を完了することを望むとき、ユーザの要求は、矢印62によって示すように、コンピュータネットワークを横切る。
【0022】
図5に示すように、ユーザからの探索様式要求に応答して、CDNow ウェブサイト61は、コンピュータネットワーク上で探索様式64を顧客に戻す。図6に示すように、ユーザはこのフォームに問合せを入力し、問合せの依頼はキャッシュディレクトリーサーバ30に転送される。特に、ユーザに提供された探索様式は、ユーザの問合せが自動的にキャッシュディレクトリーサーバに転送されるように、キャッシュディレクトリーサーバ30のアドレスに関する情報を含むことができる。図7に示したように、キャッシュディレクトリーサーバは、問い合わせおよびその結果が当該システムの中にキャッシュされされているかどうか(この例ではキャッシュされていなかった)を決定することができ、また顧客の近くのアプリケーションキャッシュサーバ当該問い合わせを処理できるかどうかを決定することができる(この例では、当該問合せまたは問合せのためのデータを処理する探索アプリケーションがアプリケーションキャッシュサーバの近くに位置していないから、顧客の近くのアプリケーションキャッシュサーバ(顧客のLAN内の)は当該問合せをサービスできない)。上記の決定に基づいて,キャッシュディレクトリーサーバ30は、当該問い合わせを処理するために必要なデータおよびプログラムを、アプリケーションキャッシュサーバZにキャッシュすることを決定する。
【0023】
図8に示すように、CDNow ウェブサイト61は、当該問い合わせの結果を集め、探索結果を顧客A(検討のために)およびキャッシュディレクトリーサーバ(キャッシュディレクトリーサーバにキャッシュされた問合せのリストが更新され得るように)に送る。図9に示したように、CDNow ウェブサイト61および特にマスターアプリケーションサーバ28は、将来この問合せにサービスできるように、データおよびプログラムの必要なコレクションをアプリケーションキャッシュサーバZに送る。同時に、図10に示すように、キャッシュディレクトリーサーバはそのディレクトリーを更新して、アプリケーションキャッシュサーバZがそこにダウンロードされたデータおよびプログラムを有することを反映し、またその探索結果をキヤッシュする。次いで、図11に示すように、異なるLANまたはコンピュータにおいて、顧客Bが、Aと同じ問合せをCDNow ウェブサイト61に実行依頼をすると、図5〜7に示したステップ1〜3が実行される。この場合、キャッシュディレクトリーサーバは、キャッシュされた問合せ結果を、Aの問い合わせディレクトリーからBに送る。図12に示すように、第三の顧客(顧客C)が異なる問合せを実行依頼すると、キャッシュディレクトリーは、該問合せは(顧客のBの問い合わせとは異なり)キャッシュディレクトリーサーバにキャッシュされていないが、顧客Cに近いアプリケーションキャッシュサーバZが該探索を提供するために必要なデータおよびプログラムを現在保存しているから、それは該サーバZによってサービスされ得ることを見出す。従って、顧客Cのために、問合せはアプリケーションキャッシュサーバZに転送される。次いで、図13に示すように、アプリケーションキャッシュサーバZは、顧客Cのための問合せを提供し、次いでその問合せ結果をローカルにキャッシュする。次いで、キャッシュディレクトリーサーバ30が、ローカルにキャッシュされた問合せ結果のコピーをアプリケーションサーバZが持っていることを知るように、アプリケーションキャッシュサーバZはキャッシュディレクトリーサーバ30を更新する。
【0024】
以上、本発明の特定の実施例を参照して説明したが、当業者は、その範囲が添付の特許請求の範囲によって定義される本発明の原理および精神を逸脱することなく、この実施例に変更を加えてもよいことを理解するであろう。
【図面の簡単な説明】
【図1】
図1は、本発明によるソフトウエアアプリケーションキャッシングシステムを示すブロック図である。
【図2】
図2は、本発明によるソフトウエアアプリケーションキャッシングの方法を示すフローチャートである。
【図3】
図3は、本発明に従って動的アプリケーション要求を取扱うための方法を示すフローチャートである。
【図4】
図4は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図5】
図5は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図6】
図6は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図7】
図7は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図8】
図8は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図9】
図9は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図10】
図10は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図11】
図11は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図12】
図12は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図13】
図13は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
Claims (5)
- アプリケーションキャッシングシステムにおいて:
コンピュータネットワークと;
前記コンピュータネットワークに接続された、前記コンピュータネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーと;
一以上のアプリケーションおよび該一以上のアプリケーション関連のデータを保存するマスターアプリケーションコンピュータと;
前記マスターアプリケーションコンピュータからアプリケーションおよびその関連データを受取るアプリケーションキャッシュコンピュータであって、該アプリケーションキャッシュコンピュータの近くに位置するコンピュータからの要求を処理するためのアプリケーションキャッシュコンピュータとを具備するシステム。 - 請求項1に記載のシステムであって、前記キャッシュディレクトリーは、以前のサービス要求および以前のサービス結果、ならびに該サービスを処理するための資源位置のリストと、サービス要求を適切なアプリケーションキャッシュコンピュータにディスパッチするための中央キャッシュディスパッチャーとを具備するシステム。
- 請求項2に記載のシステムであって、前記サービスが問合せを含むシステム。
- 請求項2に記載のシステムであって:前記中央キャッシュディスパッチャーは更に、現在のサービス要求が以前のサービス要求に合致するときに、キャッシュされた結果を戻すための手段と;前記サービス要求に隣接するアプリケーションキャッシュコンピュータが前記サービス要求を処理できるかどうかを決定するための手段と;前記隣接するアプリケーションキャッシュコンピュータが前記サービス要求を処理できないときには、前記サービス要求を実行するために必要なアプリケーションおよびデータを、前記サービス要求を実行するために前記サービス要求者に近いアプリケーションキャッシュコンピュータへ転送するための手段とを具備するシステム。
- ネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーと、一以上のアプリケーションおよび該一以上のアプリケーションに関連したデータを保存するマスターアプリケーションコンピュータと、該マスターアプリケーションコンピュータからアプリケーションおよびその関連データを受取って、近くに位置するコンピュータからの要求を処理するためのアプリケーションキャッシュコンピュータとを有するコンピュータネットワークにおけるアプリケーションキャッシング方法であって:
現在のサービス要求が以前のサービス要求に合致するときは、キャッシュされた結果を戻すことと;
キャッシュされた結果が存在しないときは、サービス要求者に隣接したアプリケーションキャッシュコンピュータが当該サービス要求を処理できるかどうかを決定することと;
前記サービス要求の実行のために、前記サービス要求を、前記隣接するアプリケーションキャッシュコンピュータに転送することと;
前記隣接するアプリケーションキャッシュコンピュータが前記サービス要求を処理できないときは、前記サービス要求を実行するために必要なアプリケーションおよびデータを、前記サービス要求者に近いアプリケーションキャッシュコンピュータに転送して、前記サービス要求を実行することとを含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/566,675 US6457047B1 (en) | 2000-05-08 | 2000-05-08 | Application caching system and method |
PCT/US2001/040705 WO2001086510A1 (en) | 2000-05-08 | 2001-05-08 | Application caching system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004501431A true JP2004501431A (ja) | 2004-01-15 |
Family
ID=24263919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001583384A Pending JP2004501431A (ja) | 2000-05-08 | 2001-05-08 | アプリケーションキャッシングシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6457047B1 (ja) |
EP (1) | EP1287449A4 (ja) |
JP (1) | JP2004501431A (ja) |
KR (1) | KR20030040206A (ja) |
AU (1) | AU2001259845A1 (ja) |
CA (1) | CA2408623A1 (ja) |
WO (1) | WO2001086510A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001345852A (ja) * | 2000-06-05 | 2001-12-14 | World Axle Kk | 通信システム及びネットワーククライアント |
WO2006051967A1 (ja) * | 2004-11-12 | 2006-05-18 | Justsystems Corporation | データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法 |
JP2008033623A (ja) * | 2006-07-28 | 2008-02-14 | Fujitsu Ten Ltd | 端末装置及び情報処理方法 |
JP2008506195A (ja) * | 2004-07-07 | 2008-02-28 | ヨッタヨッタ インコーポレイテッド | 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 |
JP2011503725A (ja) * | 2007-11-08 | 2011-01-27 | アールエヌエー ネットワークス インコーポレイテッド | 分散型共有メモリを備えるネットワーク |
Families Citing this family (142)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430618B1 (en) * | 1998-03-13 | 2002-08-06 | Massachusetts Institute Of Technology | Method and apparatus for distributing requests among a plurality of resources |
US8225002B2 (en) * | 1999-01-22 | 2012-07-17 | Network Disk, Inc. | Data storage and data sharing in a network of heterogeneous computers |
US6601090B1 (en) | 1999-06-25 | 2003-07-29 | Nortel Networks Limited | System and method for servicing internet object accessess from a coupled intranet |
US7543078B2 (en) * | 1999-12-31 | 2009-06-02 | Subdomain Identity Partners | Individuals' URL identity exchange and communications |
US20030050920A1 (en) * | 2001-02-12 | 2003-03-13 | Chen Sun | Contacts management using virtual subdomains |
CN1138216C (zh) * | 2000-06-21 | 2004-02-11 | 国际商业机器公司 | 为多种设备提供快速信息服务的装置及方法 |
US6704781B1 (en) * | 2000-06-27 | 2004-03-09 | Intel Corporation | System and method for content caching implementing compensation for providing caching services |
US7194764B2 (en) | 2000-07-10 | 2007-03-20 | Oracle International Corporation | User authentication |
US7124203B2 (en) * | 2000-07-10 | 2006-10-17 | Oracle International Corporation | Selective cache flushing in identity and access management systems |
US7058700B1 (en) * | 2000-07-13 | 2006-06-06 | Oracle International Corporation | Delta caching |
US6826626B1 (en) * | 2000-07-21 | 2004-11-30 | Clear Blue Technologies Management, Inc. | Method of and apparatus for rapid retrieval of data in a content distribution network |
US7171455B1 (en) | 2000-08-22 | 2007-01-30 | International Business Machines Corporation | Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals |
US6853994B1 (en) * | 2000-08-30 | 2005-02-08 | International Business Machines Corporation | Object oriented based, business class methodology for performing data metric analysis |
US6980985B1 (en) * | 2000-08-30 | 2005-12-27 | At&T Corp. | Distributed evalulation of directory queries using a topology cache |
US8402124B1 (en) * | 2000-11-16 | 2013-03-19 | International Business Machines Corporation | Method and system for automatic load balancing of advertised services by service information propagation based on user on-demand requests |
WO2002044915A1 (en) * | 2000-11-30 | 2002-06-06 | Appfluent Technology, Inc. | System and method for delivering dynamic content |
US20020078134A1 (en) * | 2000-12-18 | 2002-06-20 | Stone Alan E. | Push-based web site content indexing |
US20020083201A1 (en) * | 2000-12-22 | 2002-06-27 | Sridhar Iyengar | Formatting and delivering arbitrary content to wireless handheld devices |
US7185364B2 (en) | 2001-03-21 | 2007-02-27 | Oracle International Corporation | Access system interface |
US20020147849A1 (en) * | 2001-04-05 | 2002-10-10 | Chung-Kei Wong | Delta encoding using canonical reference files |
EP1324217A1 (en) * | 2001-12-18 | 2003-07-02 | Hewlett-Packard Company, A Delaware Corporation | Process and cache system for providing an electronic service through a telecommunication network |
US20030126197A1 (en) * | 2001-12-28 | 2003-07-03 | Black Brad R. | Efficient content placement using network proximity |
US8028091B1 (en) * | 2002-06-28 | 2011-09-27 | At&T Intellectual Property I. L.P. | System and method for reducing DNS lookup traffic in a computer data network |
US20040215823A1 (en) * | 2002-06-28 | 2004-10-28 | Kleinfelter Kevin P. | System and method for reducing DNS lookup traffic in a computer data network |
US8122153B2 (en) * | 2002-07-31 | 2012-02-21 | Subdomain Identity Partners | Individuals' URL identity exchange and communications |
US7305430B2 (en) * | 2002-08-01 | 2007-12-04 | International Business Machines Corporation | Reducing data storage requirements on mail servers |
FI20031169A (fi) * | 2003-08-19 | 2005-02-20 | Nokia Corp | Informaatiosisällön päivittäminen pienelle näytölle |
US7882132B2 (en) | 2003-10-09 | 2011-02-01 | Oracle International Corporation | Support for RDBMS in LDAP system |
US7904487B2 (en) | 2003-10-09 | 2011-03-08 | Oracle International Corporation | Translating data access requests |
US7836261B2 (en) * | 2004-01-12 | 2010-11-16 | International Business Machines Corporation | Managing caching of data on a client |
US20050192922A1 (en) * | 2004-02-27 | 2005-09-01 | Edlund Stefan B. | Client-server computing system capable of validating cached data based on data transformation |
US7840557B1 (en) * | 2004-05-12 | 2010-11-23 | Google Inc. | Search engine cache control |
US8489583B2 (en) * | 2004-10-01 | 2013-07-16 | Ricoh Company, Ltd. | Techniques for retrieving documents using an image capture device |
US8688813B2 (en) | 2006-01-11 | 2014-04-01 | Oracle International Corporation | Using identity/resource profile and directory enablers to support identity management |
US8190682B2 (en) * | 2006-03-31 | 2012-05-29 | Amazon Technologies, Inc. | Managing execution of programs by multiple computing systems |
US7792944B2 (en) * | 2006-03-31 | 2010-09-07 | Amazon Technologies, Inc. | Executing programs based on user-specified constraints |
US7801128B2 (en) | 2006-03-31 | 2010-09-21 | Amazon Technologies, Inc. | Managing communications between computing nodes |
US7809801B1 (en) * | 2006-06-30 | 2010-10-05 | Amazon Technologies, Inc. | Method and system for keyword selection based on proximity in network trails |
US7882200B2 (en) * | 2006-10-30 | 2011-02-01 | Bank Of America Corporation | Method and apparatus for distribution of data among computing resources |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8085792B1 (en) | 2007-06-29 | 2011-12-27 | Google Inc. | Traffic-oblivious load balancing protocol for sensor networks |
US8392401B1 (en) * | 2007-06-29 | 2013-03-05 | Google Inc. | Query partitioning to decompose hotspots in sensor networks |
US9432243B2 (en) * | 2007-08-22 | 2016-08-30 | International Business Machines Corporation | Re-using asynchronous server-side results generated for a request context of one client to satisfy a request context of a different client |
US20090150479A1 (en) * | 2007-12-07 | 2009-06-11 | Peter Eberlein | Web Feeds for Work List Publishing |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US8156243B2 (en) | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
JP5087456B2 (ja) * | 2008-04-09 | 2012-12-05 | 株式会社インテック | サービス提供システム及びそれを構成するユーザ収容装置 |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
JP5482353B2 (ja) * | 2009-07-06 | 2014-05-07 | 株式会社リコー | 中継機器、中継方法およびプログラム |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US8938526B1 (en) | 2010-09-28 | 2015-01-20 | Amazon Technologies, Inc. | Request routing management based on network components |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8930513B1 (en) | 2010-09-28 | 2015-01-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8924528B1 (en) | 2010-09-28 | 2014-12-30 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US20150195340A1 (en) * | 2010-09-30 | 2015-07-09 | Google Inc. | Determining if an Application is Cached |
WO2012050416A1 (en) * | 2010-10-12 | 2012-04-19 | Mimos Berhad | A method of caching application |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
US8626950B1 (en) | 2010-12-03 | 2014-01-07 | Amazon Technologies, Inc. | Request routing processing |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US9172674B1 (en) | 2012-03-21 | 2015-10-27 | Amazon Technologies, Inc. | Managing request routing information utilizing performance information |
KR101434887B1 (ko) * | 2012-03-21 | 2014-09-02 | 네이버 주식회사 | 네트워크 스위치를 이용한 캐시 시스템 및 캐시 서비스 제공 방법 |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US20150199332A1 (en) * | 2012-07-20 | 2015-07-16 | Mu Li | Browsing history language model for input method editor |
US9852073B2 (en) | 2012-08-07 | 2017-12-26 | Dell Products L.P. | System and method for data redundancy within a cache |
US9549037B2 (en) | 2012-08-07 | 2017-01-17 | Dell Products L.P. | System and method for maintaining solvency within a cache |
US9495301B2 (en) | 2012-08-07 | 2016-11-15 | Dell Products L.P. | System and method for utilizing non-volatile memory in a cache |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9135048B2 (en) | 2012-09-20 | 2015-09-15 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US20140149392A1 (en) * | 2012-11-28 | 2014-05-29 | Microsoft Corporation | Unified search result service and cache update |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9519902B2 (en) * | 2013-06-25 | 2016-12-13 | Quisk, Inc. | Fraud monitoring system with distributed cache |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US10257112B1 (en) * | 2014-11-07 | 2019-04-09 | Edward Fredkin | Computer system making bandwidth-efficient use of internet resources |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
CN106997351B (zh) * | 2016-01-22 | 2021-03-02 | 斑马智行网络(香港)有限公司 | 一种资源缓存管理方法及系统和装置 |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
CN106326489B (zh) * | 2016-09-09 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 网络资源更新的方法和装置 |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10585891B2 (en) * | 2016-11-03 | 2020-03-10 | Soundhound, Inc. | Dynamic choice of data sources in natural language query processing |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
KR102552754B1 (ko) * | 2018-10-25 | 2023-07-05 | 에스케이텔레콤 주식회사 | 서비스 이용 이력정보를 이용한 vmi 서비스 제공방법 및 장치 |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787470A (en) * | 1996-10-18 | 1998-07-28 | At&T Corp | Inter-cache protocol for improved WEB performance |
US6052718A (en) * | 1997-01-07 | 2000-04-18 | Sightpath, Inc | Replica routing |
US6138162A (en) * | 1997-02-11 | 2000-10-24 | Pointcast, Inc. | Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request |
US5933849A (en) * | 1997-04-10 | 1999-08-03 | At&T Corp | Scalable distributed caching system and method |
US5944780A (en) * | 1997-05-05 | 1999-08-31 | At&T Corp | Network with shared caching |
US6256712B1 (en) * | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
US6026413A (en) * | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
US6446109B2 (en) * | 1998-06-29 | 2002-09-03 | Sun Microsystems, Inc. | Application computing environment |
-
2000
- 2000-05-08 US US09/566,675 patent/US6457047B1/en not_active Expired - Lifetime
-
2001
- 2001-05-08 JP JP2001583384A patent/JP2004501431A/ja active Pending
- 2001-05-08 WO PCT/US2001/040705 patent/WO2001086510A1/en active Search and Examination
- 2001-05-08 CA CA002408623A patent/CA2408623A1/en not_active Abandoned
- 2001-05-08 EP EP01933416A patent/EP1287449A4/en not_active Withdrawn
- 2001-05-08 AU AU2001259845A patent/AU2001259845A1/en not_active Abandoned
- 2001-05-08 KR KR1020027014947A patent/KR20030040206A/ko not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001345852A (ja) * | 2000-06-05 | 2001-12-14 | World Axle Kk | 通信システム及びネットワーククライアント |
JP2008506195A (ja) * | 2004-07-07 | 2008-02-28 | ヨッタヨッタ インコーポレイテッド | 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 |
WO2006051967A1 (ja) * | 2004-11-12 | 2006-05-18 | Justsystems Corporation | データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法 |
JP2008033623A (ja) * | 2006-07-28 | 2008-02-14 | Fujitsu Ten Ltd | 端末装置及び情報処理方法 |
JP2011503725A (ja) * | 2007-11-08 | 2011-01-27 | アールエヌエー ネットワークス インコーポレイテッド | 分散型共有メモリを備えるネットワーク |
Also Published As
Publication number | Publication date |
---|---|
CA2408623A1 (en) | 2001-11-15 |
AU2001259845A1 (en) | 2001-11-20 |
US6457047B1 (en) | 2002-09-24 |
EP1287449A1 (en) | 2003-03-05 |
KR20030040206A (ko) | 2003-05-22 |
EP1287449A4 (en) | 2006-07-12 |
WO2001086510A1 (en) | 2001-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004501431A (ja) | アプリケーションキャッシングシステムおよび方法 | |
US6122666A (en) | Method for collaborative transformation and caching of web objects in a proxy network | |
US8185654B2 (en) | Systems and methods for content-aware load balancing | |
JP4583420B2 (ja) | 最適化されたネットワーク・リソース・ロケーション | |
US6351775B1 (en) | Loading balancing across servers in a computer network | |
US6542964B1 (en) | Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server | |
US8055706B2 (en) | Transparent request routing for a partitioned application service | |
US6523032B1 (en) | Servicing database requests using read-only database servers coupled to a master database server | |
US7877511B1 (en) | Method and apparatus for adaptive services networking | |
US6253234B1 (en) | Shared web page caching at browsers for an intranet | |
US20030065774A1 (en) | Peer-to-peer based distributed search architecture in a networked environment | |
US6732117B1 (en) | Techniques for handling client-oriented requests within a data storage system | |
US20080215750A1 (en) | Controlling subscriber information rates in a content delivery network | |
Baker et al. | Distributed cooperative Web servers | |
JPH11503551A (ja) | サーバ・コンピュータのプロセッサ全体にわたる負荷平衡化 | |
US20130346540A1 (en) | Storing and Moving Data in a Distributed Storage System | |
JP4504609B2 (ja) | 高性能クライアントサーバ通信システム | |
CN108153825A (zh) | 数据访问方法及装置 | |
US7103671B2 (en) | Proxy client-server communication system | |
Baker et al. | Scalable web server design for distributed data management | |
KR100308705B1 (ko) | 프로세서간부하밸런싱을가능하게하는서버컴퓨터및서버컴퓨터동작방법 |