(57)【要約】分散型コンピュータネットワーク（２４）の全体に亘って一以上のアプリケーションをキャッシュさできるアプリケーションキャッシングシステムおよび方法が提供される。該システムは、中央キャッシュディレクトリーサーバ（３０）と、一以上の分散型マスターアプリケーションサーバ（２８）と、一以上の分散型アプリケーションキャッシュサーバ（２６）とを含んでいる。このシステムは、より迅速に、探索等のサービスをユーザに提供することを可能にする。
2004501431.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションキャッシングシステムにおいて：
コンピュータネットワークと；
前記コンピュータネットワークに接続された、前記コンピュータネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーと；
一以上のアプリケーションおよび該一以上のアプリケーション関連のデータを保存するマスターアプリケーションコンピュータと；
前記マスターアプリケーションコンピュータからアプリケーションおよびその関連データを受取るアプリケーションキャッシュコンピュータであって、該アプリケーションキャッシュコンピュータの近くに位置するコンピュータからの要求を処理するためのアプリケーションキャッシュコンピュータとを具備するシステム。
【請求項２】
請求項１に記載のシステムであって、前記キャッシュディレクトリーは、以前のサービス要求および以前のサービス結果、ならびに該サービスを処理するための資源位置のリストと、サービス要求を適切なアプリケーションキャッシュコンピュータにディスパッチするための中央キャッシュディスパッチャーとを具備するシステム。
【請求項３】
請求項２に記載のシステムであって、前記サービスが問合せを含むシステム。
【請求項４】
請求項２に記載のシステムであって：前記中央キャッシュディスパッチャーは更に、現在のサービス要求が以前のサービス要求に合致するときに、キャッシュされた結果を戻すための手段と；前記サービス要求に隣接するアプリケーションキャッシュコンピュータが前記サービス要求を処理できるかどうかを決定するための手段と；前記隣接するアプリケーションキャッシュコンピュータが前記サービス要求を処理できないときには、前記サービス要求を実行するために必要なアプリケーションおよびデータを、前記サービス要求を実行するために前記サービス要求者に近いアプリケーションキャッシュコンピュータへ転送するための手段とを具備するシステム。
【請求項５】
ネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーと、一以上のアプリケーションおよび該一以上のアプリケーションに関連したデータを保存するマスターアプリケーションコンピュータと、該マスターアプリケーションコンピュータからアプリケーションおよびその関連データを受取って、近くに位置するコンピュータからの要求を処理するためのアプリケーションキャッシュコンピュータとを有するコンピュータネットワークにおけるアプリケーションキャッシング方法であって：
現在のサービス要求が以前のサービス要求に合致するときは、キャッシュされた結果を戻すことと；
キャッシュされた結果が存在しないときは、サービス要求者に隣接したアプリケーションキャッシュコンピュータが当該サービス要求を処理できるかどうかを決定することと；
前記サービス要求の実行のために、前記サービス要求を、前記隣接するアプリケーションキャッシュコンピュータに転送することと；
前記隣接するアプリケーションキャッシュコンピュータが前記サービス要求を処理できないときは、前記サービス要求を実行するために必要なアプリケーションおよびデータを、前記サービス要求者に近いアプリケーションキャッシュコンピュータに転送して、前記サービス要求を実行することとを含む方法。
【発明の詳細な説明】
【０００１】
（発明の背景）
本発明は、一般にはアプリケーションをコンピュータにキャッシングするためのシステムおよび方法に関し、特に、アプリケーションがコンピュータネットワークの全体に亘って分散されるように、ソフトウエアアプリケーションまたはソフトウエアアプリケーションモジュールを遠隔的に保存するためのシステムおよび方法に関する。
【０００２】
Ｎｅｔｓｃａｐｅ（登録商標）ナビゲータまたはＭｉｃｒｏｓｏｆｔ（登録商標）エクスプローラのような典型的なウェブ閲覧アプリケーションは、ユーザが、ウェブのページを彼等のローカルコンピュータにキャッシングすることを可能にする。次いで、更なる閲覧セッションの際、要求されたページをサーバから検索する前に、閲覧ソフトは、該ウェブページが未だウェブページキャッシュに保存されているかどうかをチェックする。当該ウェブページがキャッシュの中に存在すれば、それは該キャッシュからロードされる。そうでなければ、閲覧ソフトは、該ウェブページをサーバから要求する。典型的には、閲覧ソフトは一定時間後にキャッシュを削除し、またダイナミックウェブページのような一定の様式でのウェブページのキャッシングを許可しない。この様式のキャッシングは、静的ウェブページキャッシングと称することができる。
【０００３】
ＡＴ＆Ｔは、共有の静止キャッシングを備えたコンピュータネットワークを開発したが、ここでは一以上のコンピュータが接続されたコンピュータネットワークが存在し得る。また、該コンピュータネットワークは、中央キャッシュディレクトリーをもった中央サーバを含んでいる。該コンピュータネットワークに接続されたコンピュータは、データオブジェクトをキャッシングする毎に、中央キャッシュディレクトリーを更新する。加えて、該コンピュータネットワークに新たなコンピュータが接続されると、この新たなコンピュータのキャッシュオブジェクトのリストが中央キャッシュディレクトリーにアップロードされて、中央キャッシュディレクトリーが当該コンピュータネットワーク全域の全てのキャッシングされたオブジェクトのリストを有するようになっている。次いで、何れかのコンピュータが一つのオブジェクトを要求すると、中央キャッシュディレクトリーは、該オブジェクトが他のコンピュータの一つにキャッシュされているかどうかを決定するためにチェックし、コンピュータが該オブジェクトを他のコンピュータの一つから検索できるようになっている。中央キャッシュディレクトリーのサーチに基づいて該オブジェクトが他の何れのコンピュータにもキャッシュされていないとき、コンピュータは該コンピュータネットワークの全域を検索し、次いで中央キャッシュディレクトリーを更新して、該コンピュータが当該オブジェクトのコピーを今キャッシュしたことを知らせる。プロキシサーバの終了がネックであるから、このシステムは、典型的なプロキシサーバシステムに対する改良である。このシステムは、キャッシュされたオブジェクトが当該コンピュータネットワークに接続された全てのコンピュータの間で分散され、中央コンピュータ上の情報のみが中央キャッシュディレクトリーである点で、分散型のキャッシュを提供する。このシステムにおいては、ウェブページ等のような静的オブジェクトがキャッシュされ得る。典型的なウェブ閲覧ソフトおよび分散型キャッシュの限界は、これらのシステムが動的データのキャッシュを可能にしないことである。例えば、これらのシステムは、ソフトウエアアプリケーションまたはソフトウエアアプリケーションモジュールをキャッシュできない。
【０００４】
分散型のコンピューティング環境には、静的データ片（ファイル、マルチメディア等）を保存する多くのコンピュータノードが存在し得る。これらのノードは、ネットワークリンクによって一緒に接続される。また、これらのノードは、サービスをフィールド要求する（要求の単純な例は、「データファイルＸへのアクセスを下さい」である）。要求されたデータオブジェクトを、ネットワークリンク上で、それが保存されているノードからそれが要求されたノードへと送るためにはかなりの時間を要し得るので、種々のノードにおいて該データオブジェクトを複製するためには、キャッシングサービスを使用するのが普通である。その基本的なアイディアは、データオブジェクトＸの要求がネットワークの或るノードＮで受信されたときに、該キャッシングサービスは、（横切るネットワークリンクの数、または見積もられたネットワーク遅延、または幾つかの他の複合手段に関して）Ｎに「近接した」Ｘのコピーを探索する。入ってくる要求に応答してデータオブジェクトの複製を能動的に管理することにより、キャシングサービスは、典型的には、該サービスを要求しているユーザが寄り迅速な平均応答を受けるように、入って来る要求を処理することができる。このキャキャッシングサービスは、典型的には、当該ネットワークの種々のノードで実行される分散型プログラムであり、各ノードで利用可能な保存量、複数のノードでデータをプリエンプティブに複製することにより生じたネットワークオーバーヘッド、およびデータオブジェクトの複数のコピーの一貫性（即ち、オブジェクトの一つのコピーが幾つかの他のプログラムによって修飾されるときに何が起きるか）のような問題を管理しなければならない。このような分散型キャッシングは、Ａｋａｍａｉ， Ｉｎｃ．によって提供されるもの等のような、インターネットキャッシングサービスの中核をなしている。
【０００５】
上記の問題および限界を処理するための共通の技術は、サーバミラリングと呼ばれる。この基本的なアイディアは、本質的に、複数のノードにおいてその全体が複製されるように、当該ネットワークの多くのノードにおいて、典型的にはデータベースＤ、および該データベースのための探索アプリケーションＡを静的に複製することである。ウェブサイトが複数のミラーサイトを有するならば、ディレクトリー名サービス（ＤＮＳ）自動照合（典型的には閲覧ソフトによって要求されたもの）は、リスト中の複数のＩＰアドレスを予め定められた順序に戻し、該閲覧ソフトは典型的には最初のＩＰアドレスを選択する。閲覧ソフトによって選択されたサーバがオーバーロードされ、タイムアウトが起きたら、閲覧ソフトは順次リスト中の次のＩＰアドレスを選択するであろう。
【０００６】
このアプローチには幾つかの困難が存在する。第一に、複数モードでのＤおよびＡの複製は、多くのネットワークノードにおける保存およびコンピュータ資源を永久的にロックダウンすることを意味する。これは、ネットワーク（例えばインターネット）が、このような数百の探索および他のサービスを提供しているときに特に顕著である。第二に、ＤおよびＡを複製するノードの指定は、ユーザの要求パターンにおける変化に対応しない点で静的である。例えば、金融情報に関連した探索サービスは、北米のビジネス時間に多くアクセスされるのに対して、１日の遅い時間には、北米のユーザはスポーツおよび娯楽関連の情報を探す傾向がある一方、極東のユーザは金融情報を探し始める。第三に、データベースＤはその全体が複製される。しかし、問合せの大部分はデータベースの小さな画分（いわゆる空間的位置）に集中することが周知である。加えて、一時的な位置パターン（例えば、ある会社に関するニュース項目に反応した、当該会社に関する金融情報における興味の急増）が存在する。従って、従来のシステムに伴う上記の限界および問題を克服する、ソフトウエアアプリケーションキャッシングシステムを提供することが望まれており、本発明はこの目的に向けられている。
【０００７】
（発明の概要）
本発明によるアプリケーションキャッシングシステムおよび方法は、コンピュータネットワーク全域でのサービス要求が、該コンピュータネットワークの夫々のノードに位置するサービス要求を処理するためのアプリケーションおよびデータをコピーすることなく、効率的な方法で実行されることを可能にする。こうして、このアプリケーションキャッシングシステムは、サービス要求を履行することに関連した待ち時間を最小化する。当該アプリケーションキャッシングシステムは、探索アプリケーション等を含む種々の異なるアプリケーションと共に使用すればよい。
【０００８】
従って、本発明によれば、アプリケーションキャッシングシステムが提供される。このシステムは、コンピュータネットワークと、該コンピュータネットワークに接続された、該コンピュータネットワークの全域に亘ってアプリケーションのキャッシングを制御するキャッシュディレクトリーとを含んでなるものである。更に、このシステムは、一以上のアプリケーションおよび該一以上のアプリケーションに関連したデータを保存するマスターアプリケーションコンピュータと；該マスターアプリケーションコンピュータから、アプリケーションおよびその関連データを受取るアプリケーションキャッシュコンピュータとを含み、該アプリケーションキャッシュコンピュータはその近くに位置するコンピュータからの要求を処理する。更に詳細に言えば、このキャッシュディレクトリーは更に、以前のサービス要求、以前のサービス結果および該サービスを処理する資源の位置のリスト、並びに該サービス要求を適切なアプリケーションキャッシュコンピュータにディスパッチするための中央キャッシュディスパッチャーを含んでいる。
【０００９】
上記の中央キャッシュディスパッチャーは、現在のサービス要求が以前のサービス要求に合致すればキャッシュされている結果を戻し、またサービス要求者に隣接したアプリケーションキャッシュコンピュータが該サービス要求を処理できるかどうかを決定する。隣接するアプリケーションキャッシュコンピュータが当該サービス要求を処理できないとき、中央キャッシュディスパッチャーは、このサービス要求を実行するために必要なアプリケーションおよびデータを、サービス要求者の近くのアプリケーションキャッシュコンピュータに転送して、当該サービス要求を実行する。本発明に従うアプリケーションキャッシングのための方法も説明される。
【００１０】
（好ましい実施例の詳細な説明）
本発明は、特に、探索ソフトウエアアプリケーションをキャッシングするためのシステムに適用することができ、これに関連して本発明を説明する。しかし、それは如何なる様式の動的オブジェクトをキャッシュするためのものであってもよく、またローン計算プログラムまたはウェブページ要約機を含む他の種々の異なるソフトウエアアプリケーションのために使用してもよいから、本発明による装置および方法は更に大きな有用性を有することが理解されるであろう。本発明によれば、上記で述べた分散型のキャッシングパラダイムは、典型的なデータオブジェクトキャッシングに加えて、ネットワーク上で他のソフトウエアアプリケーションのキャッシングをも可能にするように、一般化および拡張され得る。本発明をより良く理解するために、当該システムを詳細に説明する前に、データベースにおける探索の単純な例を説明する。
【００１１】
従って、ユーザの問い合わせＱに応答して、探索アプリケーションＡがアクセスできる登録されたデータベースＤを考慮しよう。特に、探索アプリケーションＡは、問い合わせＱに合致する一組の結果をＤから受取る。例えば、データベースＤは金融データ関連のデータベースであることができ、またＡはデータベースアプリケーションであることができ、Ｑはその株価が＄５０〜＄５５である全ての会社のリストについての問合せであることができるであろう。伝統的なネットワーク（今日のインターネットのような）において、Ｑは、ＤおよびアプリケーションＡを含むネットワークノードＮへとルーティングされる。Ｎにおいて、アプリケーションＡはＤを探索して問合せＱに対する回答を発生し、次いでこの結果を、当該要求を発したネットワークノードに戻す。このプロセスにおいて、ユーザは二つの原因から生じる遅延を経験する：即ち、（１）問合せが、ネットワークを通してＤおよびＡを含む（固有の）ノードへと移動するための時間、（２）全てＮにおいてコンピューティング資源を共有するネットワーク上の多くのユーザから生じる競争である。これらの問題を解決するために、次に述べる本発明によるソフトウエアアプリケーションキャッシングシステムを使用すればよい。
【００１２】
図１は、本発明によるソフトウエアアプリケーションキャッシングシステム２０を示すブロック図である。該システム２０は、インターネットまたはワールドワイドウェブ等の広域ネットワークのようなコンピュータネットワーク２２を含んでおり、これは一以上の個別のコンピュータまたは特定区域内通信網（ＬＡＮ）２４（図では円で示されている）を一緒に接続している。該システムはまた、一以上のアプリケーションキャッシュサーバ２６（図では四角で示されている）、一以上のマスターアプリケーションサーバ２８（図では大きな楕円で示されている）、および中央キャッシュディレクトリーサーバ３０を含んでおり、これらは全てコンピュータネットワークに接続されている。図１に示した種々のコンピュータ資源と共に、該コンピュータネットワークは、コンピュータ処理資源のウエブを形成する。この説明のために、キャッシュされる一つのアプリケーションを説明するが、本発明に従って複数のアプリケーションがキャッシュされ得るように、複数のマスターアプリケーションサーバが存在してもよい。
【００１３】
本発明に従えば、アプリケーションキャッシュサーバ２６は、コンピュータネットワーク全体に地理的に分散していてもよい。加えて、マスターアプリケーションサーバ２８は、戦略的にコンピュータネットワークの周りに配置されてもよい。特に、各マスターアプリケーションサーバは、一組の特殊なサービスをその顧客に提供する。例えば、図１に示したマスターアプリケーションサーバは、ＣＤＮｏｗおよびＨｏｍｅＤｅｐｏｔサーバを含んでもよい。更に詳細に言えば、マスターアプリケーションサーバは、対応するアプリケーションについての全てのサービス（例えば、全体のデータコレクションＤ、および全てのアプリケーションプログラムＡ）を維持してもよい。他方、該アプリケーションキャッシュサーバ２６は、多くのサブコレクション（例えばサブセット｛Ｄ１，Ｄ２，…，Ｄｎ｝、Ｄの区画）および必要なアプリケーションプログラム（｛Ａ１，Ａ２，…，Ａｎ｝のサブセット、Ａの区画）をキャッシュしてもよい。何を、何処で、如何にしてキャッシュするかの決定は、時間およびノードに依存した問合せパターンの統計に基づいている。当該ネットワークに接続されたキャッシュディレクトリーサーバ３０は、ネットワーク上にある全てのアプリケーションキャッシュサーバの状態（如何なるサービスが如何なるサーバにキャッシュされたか）の追跡を維持する。また、キャッシュディレクトリーサーバは中央問合せディスパッチャーのホストとして働き、該ディスパッチャは、問合せを最も近接したアプリケーションキャッシュサーバにルーティングし、次いでその結果を、当該問い合わせが発せられた場所に逆ルーティングする。次に、本発明によるアプリケーションキャッシングシステムの動作を説明する。
【００１４】
図２は、本発明によるソフトウエアアプリケーションキャッシングのための方法４０を示すフローチャートである。特に、問合せは、図２に示したワークフローに従って、典型的には、分散型アプリケーションキャッシングシステムの中で処理される。更に詳細に言えば、ステップ４２において、ユーザはウェブサイトから探索様式を要求することができ、次いで該要求はマスターアプリケーションサーバに転送される。次に、マスターアプリケーションサーバは、ステップ４４において、この探索ページ様式をユーザに送ればよい。ステップ４６において、ユーザは、該ユーザがマスターアプリケーションサーバ（例えばＣＤＮｏｗ）から受取った探索様式を使用して、問合せを依頼することができる。この問合せは、キャッシュディレクトリーサーバに実際にルーティングされる。ユーザの問い合わせを受信すると、キャッシュディレクトリーサーバ内の中央問い合わせディスパッチャーは、先ず、その問合せが最近請求されたことがあるかどうか、およびその結果は問合せを発したノード近隣のノードで入手可能かどうかをチェックする。その問合せの結果が問合せ発生源のノードに近ければ、中央問合せディスパッチャは、この最近の結果を用いて応答することを選択することができる。そうでなければ、中央問い合わせディスパッチャーは中央に維持されているテーブルを参照する。該テーブルには、共通の問合せについて、コレクションの夫々からの結果画分をリストしている。ステップ４８において、キャッシュディレクトリーサーバは、該問い合わせを、最も近いアプリケーションキャッシュサーバに転送すればよい。ステップ５０では、アプリケーションキャッシュサーバにおいて、該サーバは当該問合せが以前に既に実行されてキャッシュされたかどうかを決定することができる。その問合せの結果が以前に実行され且つキャッシュされていれば、当該アプリケーションキャッシュサーバは、ステップ５２において該キャッシュされた結果をユーザに供給することができる。その問合せが以前にキャッシュされていなければ、当該アプリケーションキャッシュサーバは、ステップ５４において、当該問合せがローカル探索であるかどうか（例えば、該探索はアプリケーションキャッシュサーバに対してローカルな資源を使用して実行できるか？）を決定する。その問合せがローカルに実行できるものであれば、アプリケーションキャッシュサーバは、ステップ５６において、該問い合わせを実行すればよい。そうでなければ、ステップ５８において、アプリケーションキャッシュサーバは、その近隣の複数のアプリケーションキャッシュサーバの中で、当該問い合わせを実行するために必要なコンピュータ処理資源を探索する。
【００１５】
例えば、問合せ「ＩＢＭ」について、前記テーブルは、結果サイズの最後の評価において、この問合せ結果の７０％がコレクションＤ３由来であり、２６％がＤ７由来であり、残りがＤ１１由来であることを提示する項目を含んでいるかもしれない。次いで、ディスパッチャは該表の中に、問合せが発生したノードＶにキャッシュされたＤ３が現在存在し、またネットワーク中の隣接ノードＷにＤ７およびＤ１１のコピーが現在存在するのを認識する（図１参照）。従って、それは問合せを処理する仕事を、それが必要とする情報と共にＶに転送し、隣のＷに副問い合わせを形成する。ノードＶはそのコレクションに対して問合せを実行し、Ｗからの副問合せの結果を整理し、次いでその結果をユーザに戻す。
【００１６】
上記本発明に従うアプリケーションキャッシング方法について、アプリケーションＡのコピーは、上記の例においてＶおよびＷの両方に常駐し、実行されなければならない。ネットワーク全域に亘ってサービスを提供する数千のこのようなアプリケーションが潜在的に存在する環境において、ネットワークの全てのノードに活性なコピーを維持することは可能でないかもしれない。従って、アプリケーションのサブセットを（ノードのサブセットに）キャッシュすることで充分であり、ここでサブセットの好都合な組合せは、それらに最も多くアクセスするノードに最も近い最も頻繁にアクセスされるアプリケーションである。更に、アプリケーションＡは特定の探索サービスに束縛される必要はなく、それは複数の探索サービスに亘って共有され得ることに留意すべきである。他の自明な一般化には、問合せについての結果の構成において、二以上のデータ資源Ｄを使用すること、および／または二以上のアプリケーションＡを使用することが含まれる（多くの場合、一つのサービスは幾つかの問い合わせの結果を組立てて、末端ユーザのための一つの結果を組立てる：例えば、夫々が異なるデータベースまたはテキスト資源から呼び出された、２０分遅れの株価、３月株価チャート、および会社に関するニュースについてのテキスト探索）。
【００１７】
多数のアプリケーションは、本発明による分散型のアプリケーションキャッシングから利益を受けることができる。例えば、迅速に数が増大する手持ち型装置（またはＰＤＡ、パームパイロット、ポケットベル（ｐａｇｅｒ）、携帯電話のような小さい携帯型装置）がウェブにアクセスするにつれて、手持ち型装置の画面のサイズが小さいこと、および無線アプリケーションプロトコール（ＷＡＰ）を用いた手持ち型装置とウェブサーバとの間のバンド幅が制限されることのために、文書を要約することが非常に重要になってくる。本発明による分散型のアプリケーションキャッシングは、この問題を取扱うために適している。特に、文書要約プログラム（例えばＶｅｒｉｔｙ， Ｉｎｃ．製のもの）を、ネットワークの全域に亘って、アプリケーションキャッシュサーバにキャッシュすることができる。こうして、手持ち型装置から発した要求をアプリケーションサーバが受信すると、それはキャッシュされた文書要約プログラムを使用して、ＷＭＬ（無線マークアップ言語）フォーマット文書の小さいフットプリントバージョンを供給する。本発明によるアプリケーションキャッシングの利益を受けるアプリケーションの他の例には、マスターアプリケーションサーバに対する負荷を低減するために、ネットワークの全域に亘ってアプリケーションキャッシュサーバにキャッシュできる、担保ローン計算のためのＣＧＩプログラムまたはサーブレットが含まれる。次に、本発明に従って動的要求を取り扱う方法を説明する。
【００１８】
図３は、本発明に従って動的サービス要求を処理するための方法７０を示すフローチャートである。特に、この方法は、問合せのような特定のサービス要求に基づいて、該サービス要求に対する最良の解決を見出すように試みる。該サービス要求に対する解決策は、キャッシュされた結果（最良の解決）を戻すこと、問合せと同じＬＡＮにおけるアプリケーションキャッシュコンピュータ（ＡＣ）上で問合せを実行すること、またはＡＣがその問合せを実行できるように、必要なプログラムおよびデータを、問合せ要求者に近いＡＣにダウンロードすることが含まれる。
【００１９】
ステップ７２において、キャッシュディレクトリーはユーザから入ってくる問合せを受信する。上記で説明したキャッシュディレクトリーに保存されたテーブルを使用して、キャッシュディレクトリーにおけるディスパッチャーは、ステップ７４において、その問合せが当該システムにキャッシュされているかどうかを決定すればよい。問合せが以前にキャッシュされていれば、ステップ７６において、キャッシュディレクトリーは該キャッシュされた結果をユーザに転送し、ユーザの問合せを履行するであろう。これは、問合せが反復される必要がないから待ち時間が最小になるので、最良の解決策である。この解決はまた、その問合せが反復される必要がないので、コンピュータ処理資源を節約する。その問合せがキャッシュされていなければ、キャッシュディレクトリーは、ステップ７８において、ユーザと同じＬＡＮ上のアプリケーションキャッシュ（ＡＣ）コンピュータがその問合せを処理できるかどうかを決定する。このＡＣは、それが当該問合せを実行する適切なプログラムおよびデータを有していれば、この問合せを処理することができる。
【００２０】
ユーザに対してローカルなＡＣが適切なファシリティーを有していれば、該ＡＣはステップ８０において当該問合せを実行し、問合せ結果をユーザに戻す。また、将来の同じ問合せがより容易に満たされ得るように、このローカルＡＣは問合せ結果を保存し、問い合わせ結果をキャッシュディレクトリーに転送する。ユーザに対してローカルなＡＣが問合せを処理できなければ、キャッシュディレクトリーはユーザに近いＡＣを選択し、ステップ８２において、ＡＣが問合せを実行できるように、問合せを実行するために必要なプログラムおよびデータをダウンロード／転送する。このオプションは、プログラムおよびデータをＡＣに転送することを必要とするので、最も望ましくないものであるが、ユーザとＡＣとの間の距離による待ち時間が最小になるように、ユーザにできるだけ近くで問合せが実行されるのを保証する。ステップ８４において、キャッシュディレクトリーは、特定のＡＣがその問合せを実行するために必要なプログラムおよびデータを有することを反映するように、そのテーブルを更新する。ステップ８６において、ユーザに近いＡＣが当該問合せを実行する。ステップ８８において、ＡＣはその結果をユーザに転送して、該結果のコピーをＡＣ上に保存する。このＡＣはまた、その結果をキャッシュディレクトリーに転送する。このようにして、アプリケーションキャッシングシステムが受信した各サービス要求は、プログラムおよびデータをネットワークの各ノードにコピーすることを必要とせずに、最も効率的な方法で実行される。こうして、アプリケーションキャッシングシステムはネットワークにおける冗長性の量を低減するが、全てのサービス要求が最も効率的な方法で処理されることを保証する。次に、本発明によるアプリケーションキャッシングの一例を説明する。
【００２１】
図４〜図１３は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示している。この例において、ユーザは、製品探索能力を含むＣＤＮｏｗのようなウェブサイトを訪問する。これらの製品探索能力は、本発明によるアプリケーションキャッシングシステムを使用して実施すればよい。特に、図４に示すように、コンピュータネットワーク６０は、アプリケーションキャッシュサーバ２６と共に複数のコンピュータ／ＬＡＮ ２４に接続されたコンピュータネットワーク２２、マスターアプリケーションサーバ２８、および中央キャッシュディレクトリーサーバ３０を含み得る。この例において、マスターアプリケーションサーバは、ＣＤＮｏｗ ウェブサイト６１に収容され、またＣＤＮｏｗによって所有および実行され、ＣＤＮｏｗユーザにアプリケーションキャッシングシステムの利益を提供する。特に、顧客（顧客Ａ）がＣＤＮｏｗのウェブサイトを訪問して探索を完了することを望むとき、ユーザの要求は、矢印６２によって示すように、コンピュータネットワークを横切る。
【００２２】
図５に示すように、ユーザからの探索様式要求に応答して、ＣＤＮｏｗ ウェブサイト６１は、コンピュータネットワーク上で探索様式６４を顧客に戻す。図６に示すように、ユーザはこのフォームに問合せを入力し、問合せの依頼はキャッシュディレクトリーサーバ３０に転送される。特に、ユーザに提供された探索様式は、ユーザの問合せが自動的にキャッシュディレクトリーサーバに転送されるように、キャッシュディレクトリーサーバ３０のアドレスに関する情報を含むことができる。図７に示したように、キャッシュディレクトリーサーバは、問い合わせおよびその結果が当該システムの中にキャッシュされされているかどうか（この例ではキャッシュされていなかった）を決定することができ、また顧客の近くのアプリケーションキャッシュサーバ当該問い合わせを処理できるかどうかを決定することができる（この例では、当該問合せまたは問合せのためのデータを処理する探索アプリケーションがアプリケーションキャッシュサーバの近くに位置していないから、顧客の近くのアプリケーションキャッシュサーバ（顧客のＬＡＮ内の）は当該問合せをサービスできない）。上記の決定に基づいて，キャッシュディレクトリーサーバ３０は、当該問い合わせを処理するために必要なデータおよびプログラムを、アプリケーションキャッシュサーバＺにキャッシュすることを決定する。
【００２３】
図８に示すように、ＣＤＮｏｗ ウェブサイト６１は、当該問い合わせの結果を集め、探索結果を顧客Ａ（検討のために）およびキャッシュディレクトリーサーバ（キャッシュディレクトリーサーバにキャッシュされた問合せのリストが更新され得るように）に送る。図９に示したように、ＣＤＮｏｗ ウェブサイト６１および特にマスターアプリケーションサーバ２８は、将来この問合せにサービスできるように、データおよびプログラムの必要なコレクションをアプリケーションキャッシュサーバＺに送る。同時に、図１０に示すように、キャッシュディレクトリーサーバはそのディレクトリーを更新して、アプリケーションキャッシュサーバＺがそこにダウンロードされたデータおよびプログラムを有することを反映し、またその探索結果をキヤッシュする。次いで、図１１に示すように、異なるＬＡＮまたはコンピュータにおいて、顧客Ｂが、Ａと同じ問合せをＣＤＮｏｗ ウェブサイト６１に実行依頼をすると、図５〜７に示したステップ１〜３が実行される。この場合、キャッシュディレクトリーサーバは、キャッシュされた問合せ結果を、Ａの問い合わせディレクトリーからＢに送る。図１２に示すように、第三の顧客（顧客Ｃ）が異なる問合せを実行依頼すると、キャッシュディレクトリーは、該問合せは（顧客のＢの問い合わせとは異なり）キャッシュディレクトリーサーバにキャッシュされていないが、顧客Ｃに近いアプリケーションキャッシュサーバＺが該探索を提供するために必要なデータおよびプログラムを現在保存しているから、それは該サーバＺによってサービスされ得ることを見出す。従って、顧客Ｃのために、問合せはアプリケーションキャッシュサーバＺに転送される。次いで、図１３に示すように、アプリケーションキャッシュサーバＺは、顧客Ｃのための問合せを提供し、次いでその問合せ結果をローカルにキャッシュする。次いで、キャッシュディレクトリーサーバ３０が、ローカルにキャッシュされた問合せ結果のコピーをアプリケーションサーバＺが持っていることを知るように、アプリケーションキャッシュサーバＺはキャッシュディレクトリーサーバ３０を更新する。
【００２４】
以上、本発明の特定の実施例を参照して説明したが、当業者は、その範囲が添付の特許請求の範囲によって定義される本発明の原理および精神を逸脱することなく、この実施例に変更を加えてもよいことを理解するであろう。
【図面の簡単な説明】
【図１】
図１は、本発明によるソフトウエアアプリケーションキャッシングシステムを示すブロック図である。
【図２】
図２は、本発明によるソフトウエアアプリケーションキャッシングの方法を示すフローチャートである。
【図３】
図３は、本発明に従って動的アプリケーション要求を取扱うための方法を示すフローチャートである。
【図４】
図４は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図５】
図５は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図６】
図６は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図７】
図７は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図８】
図８は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図９】
図９は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図１０】
図１０は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図１１】
図１１は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図１２】
図１２は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図１３】
図１３は、本発明によるソフトウエアアプリケーションキャッシングシステムの動作の一例を示す図である。
【図１】
2004501431.tif 000003
【図２】
2004501431.tif 000004
【図３】
2004501431.tif 000005
【図４】
2004501431.tif 000006
【図５】
2004501431.tif 000007
【図６】
2004501431.tif 000008
【図７】
2004501431.tif 000009
【図８】
2004501431.tif 000010
【図９】
2004501431.tif 000011
【図１０】
2004501431.tif 000012
【図１１】
2004501431.tif 000013
【図１２】
2004501431.tif 000014
【図１３】
2004501431.tif 000015
【国際公開パンフレット】
2004501431.tif 000016
2004501431.tif 000017
2004501431.tif 000018
2004501431.tif 000019
2004501431.tif 000020
2004501431.tif 000021
2004501431.tif 000022
2004501431.tif 000023
2004501431.tif 000024
2004501431.tif 000025
2004501431.tif 000026
2004501431.tif 000027
2004501431.tif 000028
2004501431.tif 000029
2004501431.tif 000030
2004501431.tif 000031
2004501431.tif 000032
2004501431.tif 000033
2004501431.tif 000034
2004501431.tif 000035
2004501431.tif 000036
2004501431.tif 000037
2004501431.tif 000038
2004501431.tif 000039
2004501431.tif 000040
2004501431.tif 000041
2004501431.tif 000042
2004501431.tif 000043
2004501431.tif 000044
2004501431.tif 000045
【国際調査報告】
2004501431.tif 000046