(57)【要約】ウェブページの構成オブジェクトを内部に格納したキャッシュメモリを管理するためのウェブ提供システムは、キャッシュメモリの内容を制御するために、キャッシュメモリと通信するキャッシュマネージャを含む。キャッシュマネージャと通信するプログラム可能スクリプトが、トリガイベントの生起を検出する。トリガイベントに応答して、プログラム可能スクリプトは、キャッシュマネージャにキャッシュメモリの内容を変更するよう命令する。
2004530176.tif 000002
【特許請求の範囲】
【請求項１】
更新済みウェブページをキャッシュ内に生成可能とする方法であって、
トリガイベントを定義するプログラム可能規則を定める段階であって、前記トリガイベントの生起が、前記ウェブページの古くなった部分が存在することを示す、定める段階と、
前記トリガイベントの生起を検出する段階と、
前記トリガイベントの生起に応答して、前記古くなった部分の更新を要求する段階と、
前記ウェブページの更新済み部分を、前記キャッシュ内に格納するため受信する段階とを包含した、方法。
【請求項２】
前記更新済み部分を組み込んだウェブページを生成する段階と、
前記ウェブページをユーザに提供する段階とを更に包含した、請求項１に記載の方法。
【請求項３】
前記プログラム可能規則を定める前記段階が、前記規則を定義するための命令を含んだスクリプトを解釈する段階を包含した、請求項１に記載の方法。
【請求項４】
前記トリガイベントを検出する前記段階が、前記プログラム可能規則により定義された経過時間を検出する段階を包含した、請求項１に記載の方法。
【請求項５】
前記トリガイベントを検出する前記段階が、前記ウェブページの更新済み部分の受信を検出する段階を包含した、請求項１に記載の方法。
【請求項６】
前記ウェブページの更新済み部分を要求する前記段階が、データベースエンジンにより実行されるデータベース質問を作成する段階を包含した、請求項１に記載の方法。
【請求項７】
前記ウェブページが、前記更新済み部分に加えて、複数の構成部分を包含し、且つ、前記方法が、前記構成部分と前記更新済み部分とを前記ウェブページへと組み立てるための命令を包含したアセンブリスクリプトを提供する段階を更に包含した、請求項１に記載の方法。
【請求項８】
更新を要求する前記段階が、起点サーバと通信を確立し且つ、そのサーバから前記更新を要求する段階を包含し、
更新済み部分を受信する前記段階が、前記更新済み部分を前記起点サーバから受信する段階を包含した、請求項１に記載の方法。
【請求項９】
前記起点サーバとは別個のキャッシュメモリ素子を更に包含した、請求項８に記載の方法。
【請求項１０】
前記起点サーバにキャッシュメモリ素子を更に包含した、請求項８に記載の方法。
【請求項１１】
前記ウェブページがどれだけの頻度で要求されるかを示すアクセスデータを収集する段階を更に包含した、請求項１に記載の方法。
【請求項１２】
前記アクセスデータに応答して、前記キャッシュの内容を管理する段階を更に包含した、請求項１１に記載の方法。
【請求項１３】
内容を内部に格納するキャッシュメモリと、
前記キャッシュメモリと通信して、前記キャッシュメモリの前記内容を制御するキャッシュマネージャと、
前記キャッシュマネージャと通信して、トリガイベントの生起を検出するプログラム可能スクリプトであって、前記トリガイベントに応答して、前記キャッシュマネージャに、前記キャッシュメモリの前記内容を変更させる、プログラム可能スクリプトとを包含した、ウェブ提供システム。
【請求項１４】
選択したウェブページが要求される頻度を示すアクセスデータを収集する利用モニタを更に包含した、請求項１３に記載のウェブ提供システム。
【請求項１５】
前記利用モニタが、前記アクセスデータを前記プログラム可能スクリプトに提供し、更に、前記プログラム可能スクリプトが、前記アクセスデータに応答して、前記キャッシュメモリの前記内容を変更する、請求項１４に記載のウェブ提供システム。
【請求項１６】
前記プログラム可能スクリプトと管理プロセスとの間の通信路を更に包含し、この通信路により、前記プログラム可能スクリプトが、前記管理プロセスから命令を受信可能となる、請求項１３に記載のウェブ提供システム。
【請求項１７】
前記ウェブページの構成部分を前記ウェブページへと組み立てるための命令を含んだページアセンブラを更に包含した、請求項１３に記載のウェブ提供システム。
【請求項１８】
前記プログラム可能スクリプトが、ジャバスクリプトである、請求項１３に記載のウェブ提供システム。
【請求項１９】
キャッシュ内に更新済みウェブページを生成可能とするためのソフトウェアをその上に符号化したコンピュータ可読媒体であって、このソフトウェアが、
トリガイベントを定義するプログラム可能規則を定めるための命令であって、前記トリガイベントの生起が、前記ウェブページの古くなった部分が存在することを示す、定めるための命令と、
前記トリガイベントの生起を検出するための命令と、
前記トリガイベントの生起に応答して、前記古くなった部分の更新を要求するための命令と、
前記ウェブページの更新済み部分を、前記キャッシュ内に格納するために受信するための命令を包含した、コンピュータ可読媒体。
【請求項２０】
前記ソフトウェアが、前記更新済み部分を内部に組み込んだウェブページを生成するための命令と、
前記ウェブページをユーザに提供するための命令を更に包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記プログラム可能規則を定めるための前記命令が、前記規則を定義するための命令を含んだスクリプトを解釈するための命令を更に包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
前記トリガイベントを検出するための前記命令が、前記プログラム可能規則により定義された経過時間を検出するための命令を包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２３】
前記トリガイベントを検出するための前記命令が、前記ウェブページの更新済み部分の受信を検出するための命令を包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２４】
前記ウェブページの更新済み部分を要求するための前記命令が、データベースエンジンにより実行されるデータベース質問を作成するための命令を包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２５】
前記ウェブページが、前記更新済み部分に加えて、複数の構成部分を包含し、且つ、前記コンピュータ可読媒体が、前記構成部分と前記更新済み部分とを前記ウェブページへと組み立てるための命令を更に包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２６】
更新を要求するための前記命令が、起点サーバと通信を確立し且つそのサーバから前記更新を要求するための命令とを包含し、更に、
更新済み部分を受信するための前記命令が、前記更新済み部分を前記起点サーバから受信するための命令を包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２７】
前記ソフトウェアが、前記ウェブページがどれだけの頻度で要求されるかを示すアクセスデータを収集するための命令を更に包含した、請求項１９に記載のコンピュータ可読媒体。
【請求項２８】
前記ソフトウェアが、前記アクセスデータに応答して、前記キャッシュの内容を管理するための命令を更に包含した、請求項２７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
本発明は、動的ウェブページの提供に関し、特に、動的ウェブページの古くなった部分の更新に関する。
【０００２】
発明の背景
動的ウェブページは、典型的には、１つ又は複数の静的オブジェクト及び１つ又は複数の動的オブジェクトを含む。従って、ウェブページ提供には、これらオブジェクトの組み立てと、ウェブページの統合が含まれる。
【０００３】静的オブジェクトとは、仮に変更されるとしても希にしか変更されないオブジェクトのことである。こうしたオブジェクトの例としては、会社のロゴ又は一般的な利用説明、及び商品注文用の様式、幹部の経歴、当該ウェブページを提供する会社に関する一般的な社歴説明などがある。
【０００４】
動的オブジェクトとは、頻繁に変更されるオブジェクトのことである。例えば、商品カタログには、定期的に更新しなければならない特別セールのお知らせが含まれることもあるだろう。株価又はニュースは日ごとに頻繁に更新される。別の例としては、ウェブページが、そのウェブページを要求するユーザに固有に関連付けられたオブジェクトを含むことも可能である。こうしたオブジェクトのよくある例としては、得意客に名前で呼びかけて挨拶するウェブページがある。こうした構成要素は、ユーザがウェブページを要求する度に更新しなければならない。
【０００５】
一般的に、最近のウェブページは、起点サーバが複数のキャッシュと通信する分散形システムである。ウェブページの静的構成要素は、典型的にはこれらキャッシュに格納されているが、ウェブページの動的オブジェクトは、起点サーバにより生成される。こうしたシステムでは、顧客に提供するためにウェブページを組み立てる過程には、様々な場所から様々な構成オブジェクトを取り出す処理が含まれる。この種の分散形ウェブ提供システムは、起点サーバが静的オブジェクトを提供する必要性がなくなるので有利である。
【０００６】
上述の分散形ウェブ提供システムの１つの欠点は、動的オブジェクトを定期的に更新する必要があるとはいえ、要求がある度にこうしたオブジェクトを常時更新する必要はないという点である。例えば、様々な商品の毎日の価格をリストアップしている動的オブジェクトは、一日に一度だけ更新すれば事足りる。購入可能な品目をリストアップしている動的オブジェクトは、その商品の最後の１点が販売された時点で更新する必要がある。
【０００７】
動的オブジェクトの更新には、起点サーバが、データベース質問を実行する段階がしばしば含まれる。例えば、顧客が、どんな品目が特別割引の対象となっているかを見たい場合は、起点サーバは、特売品目のリストだけでなく、こうした品目の特売在庫数を特定するデータベース質問を作成しなければならないこともある。
【０００８】
起点サーバの負荷を軽減するためには、こうした動的オブジェクトをキャッシュに格納し、且つ、このキャッシュを定期的に更新して、古くなった動的構成要素が提供されるのを避けるのが好ましい。動的オブジェクト生成に、ウェブページを要求する多くの顧客に共通することが予想されるデータベース質問を実行する必要がある場合は、その質問の結果をキャッシュに格納して、起点サーバが同じ質問を無駄に再実行する必要性を回避すれば有効である。
【０００９】
既存のキャッシュ管理用ソフトウェアは、動的ウェブページを洗練された方法でキャッシュ格納する能力が欠けている。動的ウェブページのキャッシュを管理する従来の方法は、各動的ウェブページに、そのオブジェクトが古くなって更新を必要とする日付を指定するというものである。この方法の欠点は、特別な理由もなく随意に指定したこの更新日が、動的オブジェクトを更新する必要性があるかどうかを判断するための決定的な標識だということである。実のところ、動的オブジェクトが、その更新必要日の遙か以前に古くなることがあり得るのである。逆に、動的オブジェクトが、その更新必要日を過ぎても長期間最新状態のままである場合もある。
【００１０】
発明の概要
本発明によるウェブ提供システムは、キャッシュマネージャと通信するプログラム可能スクリプトを提供することで、キャッシュメモリの内容をより柔軟に制御することを可能とする。このスクリプトはプログラム可能なので、プログラマーがカストマイズできる。具体的には、プログラム可能スクリプトが、トリガイベントを検出し且つそれに応答させうるようにし、更に、このスクリプトが、キャッシュマネージャに、トリガイベントに応答してキャッシュメモリの内容を変更させるようにもできる。
【００１１】
本発明の一態様においては、このウェブ提供システムは、選択したウェブページが要求される頻度を示すアクセスデータを収集する利用モニタも含む。この利用モニタは、アクセスデータをプログラム可能スクリプトに任意選択で提供する。プログラム可能スクリプトは、アクセスデータを用いて、このデータに応答してキャッシュメモリの内容を変更できる。
【００１２】
本発明の別の態様では、このウェブ提供システムは、プログラム可能スクリプトと管理プロセスとの間に通信路を含む。この通信路は、プログラム可能スクリプトが管理プロセスから命令を受け取ることを可能とする。
【００１３】
本発明のその他の特徴及び利点は、次の詳細な説明、請求の範囲、及び添付の図面から明らかになるはずである。
【００１４】
詳細な説明
本発明の実施形態であるシステム１０は、図１に示すように、キャッシュサーバ１４及びデータベース１６に通信する起点サーバ１２を含む。起点サーバ１２は、管理プロセス２０が発行した命令に応答してデータベース質問を作成且つ実行するデータベースエンジン１８をサポートする。管理プロセス２０も起点サーバ１２にサポートされている。データベース１６は、動的ウェブページを作成するのに使用するデータを格納する。例えば、起点サーバ１２が小売業者に関連付けられている場合は、データベースは、最新の在庫表及び価格情報、又は、今週の特売品情報を含むことができる。典型的には、起点サーバ１２は、第１インターネットリンク２２を介してキャッシュサーバ１４と通信状態にある。図１には１つのキャッシュサーバ１４しか示していないが、システム１０は、地理的に分散した多数のキャッシュサーバ１４を含むことができることが理解されている。
【００１５】
ウェブサーバ１４は、ウェブページの構成オブジェクトを取り込んで、キャッシュメモリ２６内にそれらを格納するキャッシュマネージャ２４をサポートする。これらオブジェクトは、起点サーバ１２上で実行する管理プロセス２０により、キャッシュマネージャ２４に供給される。必要なときは、管理プロセス２０が、入替ウェブページオブジェクトをキャッシュマネージャ２４に提供し、それを受けて、キャッシュマネージャ２４が、キャッシュメモリ２６に常駐する対応した古くなったオブジェクトと入れ替える。
【００１６】
典型的には、クライアントマシーン３０上で実行しているブラウザ３０は、起点サーバ１２が提供するウェブサイトからウェブページを要求する。分散形ウェブ提供システム１０では、これらブラウザの要求は、図１に示したような利用可能なキャッシュサーバ１４に自動的に転送される。従って、ブラウザは、図１に示したように、第２インターネットリンク３２を介してキャッシュマネージャ２４と通信を確立する。
【００１７】
ウェブページへの要求に応答して、キャッシュマネージャ２４は、そのウェブページの構成オブジェクト及びそれらが格納されている場所を識別する。これらオブジェクトには、キャッシュメモリ２６内で既に利用可能なものもある。この場合は、キャッシュマネージャ２４は、これらのオブジェクトをキャッシュメモリ２６から取り込んで、それらをウェブページに含めるためにページアセンブラ３４に与える。
【００１８】
ウェブページのそれ以外の構成オブジェクトは、キャッシュメモリ２６からは入手できない。これらの欠けているオブジェクトについては、キャッシュマネージャ２４が、起点サーバ１２上の管理プロセス２０に要求を発行する。それに応答して、管理プロセス２０は、必要なら欠けているオブジェクトを入手して、それらをキャッシュマネージャ２４に提供する。キャッシュマネージャ２４が、欠けているオブジェクトをページアセンブラ３４に提供すると、ページアセンブラ３４は、このウェブページを完成して、組み立てたウェブページをキャッシュマネージャ２４に提供し、このページはクライアントマシーンに送信される。
【００１９】
ウェブページの欠けているオブジェクトを要求するこの段階が、クライアントへのサービス提供が遅延する原因となる。従って、ウェブページのできるだけ多くの部分をキャッシュメモリ２６に保持しておくのが望ましい。キャッシュメモリ２６内への格納を制限する２つの制約条件がある。それらは、キャッシュメモリ２６の容量に限りがあることと、キャッシュメモリ２６内に格納されるオブジェクトが古くなる傾向があることである。
【００２０】
キャッシュメモリ２６の容量は限られているので、特に頻繁に要求されるオブジェクトのみをそれに格納しておくのが好ましい。これには、特定のオブジェクトに対してどれだけの頻度で要求があると期待されるかを、適当な時点で予測する必要がある。
【００２１】
場合によっては、この予測は単純である。仮に全てのウェブページが、会社ロゴが入ったグラフィック画像を含んでいれば、その構成要素は、キャッシュメモリ２６に格納すべきなのは明らかである。
【００２２】
しかし、その他の場合は、ウェブページの人気が、予測不能な外部イベントにより変動することがある。例えば、流行の移り変わりによって、特定品目の販売を提供するウェブページの人気が上昇することもある。報道価値のある事件が偶然起こることによって、それまでは目立たなかった話題に関する特集記事の人気が、限られた予測不能な期間に急に上がることもあろう。
【００２３】
キャッシュメモリ２６の容量に限りがあることに加え、このメモリの通用性にも限界がある。定期的にキャッシュメモリ２６を更新しない限り、そこに格納されたオブジェクトが古くなった後も、長期間にわたりクライアントに提供されてしまうことになる。場合によっては、オブジェクトの性質によっては古くなる時期が予測できるため、それらを適切な時期に取り替えることが可能である。例えば、毎日の株価の終値を列挙するオブジェクトは、当然、毎日入れ替える必要がある。
【００２４】
しかし他の場合には、オブジェクトの陳腐化は、殆ど何の前触れもなく或いは全く前触れもなくいつでも起こりうる。一例としては、仮にあるオブジェクトがある店の特売品を列挙していれば、その売れ行きが非常に好調なため、特定人気商品の在庫が早々と底をつくことも十分あり得る。こうした場合は、このオブジェクトは、予定していた更新時期より遙か前に古くなることがあり得る。
【００２５】
キャッシュメモリ２６内の構成オブジェクトは、典型的には、それらを入れ替えるべき日付及び時間を特定する情報を含んでいる。こうした場合は、キャッシュメモリ２６は時間を監視して、適切な時間に更新済みウェブページに対する要求を送信するだけでよい。これが好ましくないのは、上述の通り、予測不能なイベントが発生したり、予測しないときにイベントが発生したために、オブジェクトを予定より早く入れ替える必要が起こることがあるからである。従来のキャッシュマネージャ２４は、指定日時にウェブページを入れ替えるだけなので、ウェブページを予定より早く入れ替えるのは困難である。
【００２６】
上述のこうした不都合に対処するため、本発明によるシステム１０は、キャッシュマネージャ２４とプログラム可能スクリプト３６との間の通信を行う。プログラム可能スクリプト３６は、プログラマーが準備する一組のジャバスクリプクト命令でよい。従って、プログラマーが定義したトリガイベントが発生すると、このスクリプト３６は、キャッシュマネージャ２４に、ウェブページの選択した構成オブジェクトを更新させる。こうしたトリガイベントの１つとしては、言うまでもなく、選択した時間の経過がある。しかし、スクリプト３６は自由にプログラム可能なので、トリガイベントは、スクリプト３６が定義可能なものならどんなイベントでもよい。例えば、６人以上の顧客が同一品目を注文した場合は、特定オブジェクトの指定した取り替え時期以前でも、スクリプト３６は、起点サーバ１２からの更新を求める要求を発行できる。こうして、プログラム可能スクリプト３６により、キャッシュマネージャ２４が、ウェブページの構成オブジェクトを取り替えるためのトリガイベントとして時間の経過のみに依存する必要がなくなる。
【００２７】
ウェブページの人気が上昇したり、その人気が閾値を超過すれば、そのウェブページの構成オブジェクトがキャッシュメモリ２６にまだ格納されていない場合は、それらオブジェクトをキャッシュメモリ２６に格納するのが好ましいこともあろう。反対に、特定ウェブページの人気が下降したり、その人気が閾値を下回れば、キャッシュメモリ２６からそのウェブページの構成オブジェクトを削除して、より人気のあるウェブページに関連付けられたオブジェクト格納のためにスペースを空けるのが好ましいかもしれない。
【００２８】
このウェブ提供システムのこうした適応性のある動作を可能とするため、このシステムに、任意選択の利用モニタ３８を更に組み込んで、クライアントマシーンが要求しているウェブページの種類を示すアクセスデータを収集できる。利用モニタ３８を組み込めば、キャッシュマネージャ２４は、特定ウェブページの人気傾向を特定できる。スクリプト３６が、利用モニタ３８が提供するアクセスデータに基づいて、特定のウェブページの人気が増したこと、或いはその人気が正に上昇するところであると判断すれば、スクリプトは、キャッシュマネージャ２４に命令して、キャッシュメモリ２６に格納するためにそのウェブページの構成オブジェクトのコピーを要求させることができる。逆に、利用モニタ３８が提供するアクセスデータに基づいて、スクリプト３６が、特定のウェブページの人気が以前ほど高くないと判断すれば、スクリプトは、キャッシュマネージャ２４に命令して、キャッシュメモリ２６からそのウェブページの構成オブジェクトを除去させることができる。
【００２９】
利用モニタ３８とスクリプト３６とをこうして組み合わせることで、測定変量が特定のウェブページの人気であり、制御変量が様々なウェブページの構成オブジェクトの記憶位置であるフィードバック制御システムが提供される。利用モニタ３８は、測定変量に関するアクセスデータを入手し、制御装置として作用するスクリプト３６にそれらを提供する。このアクセスデータに基づいて、スクリプト３６は、キャッシュマネージャ２４に、キャッシュメモリ２６の内容を適応管理させる。
【００３０】
更に、スクリプト３６は、利用モニタ３８からアクセスデータを入手して、上述のようにそのアクセスデータに基づいて動作するのでなく、そのデータを管理プロセス２０に報告できる。このアクセスデータは、その後、人間のアナリストが利用可能となり、次に、アナリストは、スクリプトとして定める新たな規則を提案できる。
【００３１】
又、図１に示したような分散形システムではないウェブ提供システムも存在する。こうしたウェブ提供システムも、ウェブページの頻繁に要求される構成オブジェクトが高速取り出し用に格納される高速キャッシュメモリを設けると有利となる。この種の代表的なウェブ提供システムを図２に示す。
【００３２】
図２のウェブ提供システム４０では、キャッシュメモリ２６、キャッシュマネージャ２４、利用モニタ３８、ページアセンブラ３４、及びスクリプト３６は、全て起点サーバ１２上に存在する。従って、図２の実施形態では、ウェブページへの要求を転送するキャッシュサーバは存在しないので、こうした要求をキャッシュサーバに転送する必要はない。その代わり、ウェブページへの要求は、利用モニタ３８が直接受信する。
【００３３】
本発明は、ハードウェア又はソフトウェア、或いはその両方の組合せによっても実現可能である。本発明は、本明細書に記載された方法段階及び図面に従い標準的なプログラミング技法を用いて、コンピュータプログラムにより実現可能である。こうしたプログラムは、プロセッサ、データ格納システム（メモリ及び／又は記憶素子を含む）、少なくとも１つの入力装置、及びＣＲＴ又はプリンタなどの少なくとも１つの出力装置をそれぞれ含んだ、プログラム可能コンピュータ上で実行できるように設計すべきである。プログラムコードは、入力データに適用されて、ここに説明した諸機能を実行し且つ出力情報を生成する。この出力情報は、上述のように、ＣＲＴのような１つ又は複数の出力装置に適用される。
【００３４】
各プログラムは、コンピュータシステムと通信する高レベル手続き言語又はオブジェクト指向プログラミング言語で実現するのが好ましい。しかし、これらのプログラムは、所望ならアセンブリ言語又は機械言語で実現可能である。いずれの場合も、この言語は、コンパイル済み言語でも翻訳言語でもよい。
【００３５】
こうしたコンピュータプログラムはそれぞれ、汎用又は専用プログラム可能コンピュータが読み出し可能な記憶媒体又は装置（例えば、ＲＯＭ又は磁気ディスク）上に格納されており、この記憶媒体又は装置がこのコンピュータに読み出されて、記述されている手順を実行する際に、このコンピュータを構成し且つ作動するのが好ましい。又、本システムは、コンピュータプログラムを用いて構成されたコンピュータ可読記憶媒体として実現されていると考えることもでき、こうして構成された記憶媒体は、コンピュータを、上述の機能を実行させるため特定の予め定義した態様で動作させる。
【００３６】
本発明及びその好適な実施形態を説明してきたが、新規であると主張し且つ特許証により確保するものは以下の通りである。
【図面の簡単な説明】
【図１】
本発明を組み込んだ分散形ウェブ提供システムである。
【図２】
本発明を同様に組み込んだ集中ウェブ提供システムである。
【図１】
2004530176.tif 000003
【図２】
2004530176.tif 000004
【国際公開パンフレット】
2004530176.tif 000005
2004530176.tif 000006
2004530176.tif 000007
2004530176.tif 000008
2004530176.tif 000009
2004530176.tif 000010
2004530176.tif 000011
2004530176.tif 000012
2004530176.tif 000013
2004530176.tif 000014
2004530176.tif 000015
2004530176.tif 000016
2004530176.tif 000017
2004530176.tif 000018
2004530176.tif 000019
2004530176.tif 000020
2004530176.tif 000021