(57)【特許請求の範囲】
【請求項１】
サーバ、キャッシュおよびクライアントがネットワークに接続されたシステムを用いて、カスタマイズした情報を提供する方法であって、
前記サーバが、カスタマイズ可能なテンプレートを生成するステップと、
前記サーバが、前記テンプレートにカスタマイズしたブロックを挿入する規則を生成するステップと、
前記キャッシュが、前記テンプレート、および前記挿入する規則を格納するステップと、
前記クライアントからの要求に応答して、前記キャッシュが、前記挿入する規則について、前記ブロックを生成するデータのリストを特定する静的規則であるか、前記ブロックを生成する機能が定義された動的規則であるかを判断して、前記挿入する規則に基づいて前記ブロックを生成するステップと、
前記キャッシュが、前記テンプレートに前記生成したブロックを挿入するステップと、
前記キャッシュが、前記ブロックを挿入したテンプレートを、前記クライアントへ提供するステップと、を備え、
前記挿入する規則は、前記クライアントの発信元で前記挿入するブロックを決定する規則であり、
前記テンプレートが、前記挿入する規則への参照、および前記ブロックを挿入する場所を特定するオフセットを含むことを特徴とする、クライアントにカスタマイズした情報を提供する方法。
【請求項２】
請求項１に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュが、前記ブロックを予格納するステップを含む、クライアントにカスタマイズした情報を提供する方法。
【請求項３】
請求項２に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュ、前記サーバ、又は前記キャッシュ、前記サーバの外部の記憶装置のいずれかが、前記ブロックを予格納する、クライアントにカスタマイズした情報を提供する方法。
【請求項４】
請求項２に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを予格納するステップでは、
前記挿入する規則によって定義された場所に前記ブロックを予格納する、クライアントにカスタマイズした情報を提供する方法。
【請求項５】
請求項４に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを予格納するステップの後に、
さらに、キャッシュが、前記挿入する規則によって定義された場所から前記ブロックを取り込むステップを含む、クライアントにカスタマイズした情報を提供する方法。
【請求項６】
請求項５に記載のクライアントにカスタマイズした情報を提供する方法において、
前記動的規則には、この機能を呼び出すのに要するオーバーヘッドを計算し、前記ブロックを前記キャッシュに格納しないことを含む、クライアントにカスタマイズした情報を提供する方法。
【請求項７】
請求項１に記載のクライアントにカスタマイズした情報を提供する方法において、
前記テンプレートに複数のブロックを挿入することを特徴とする、クライアントにカスタマイズした情報を提供する方法。
【請求項８】
請求項７に記載のクライアントにカスタマイズした情報を提供する方法において、
前記テンプレートに複数のブロックを挿入する際に、特定の区分に、クライアントの発信元に基づくブロックを挿入する、クライアントにカスタマイズした情報を提供する方法。
【請求項９】
請求項１に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを生成するデータのリストが、複数のデータから成るか否かの判断と、この複数のデータから適切な事項を選択することと、を含むことを特徴とする、クライアントにカスタマイズした情報を提供する方法。
【請求項１０】
請求項１に記載のクライアントにカスタマイズした情報を提供する方法において、
このカスタマイズした情報を提供する方法が、機械読取可能なプログラム記憶装置によって実装されていることを特徴とする、クライアントにカスタマイズした情報を提供する方法。
【請求項１１】
サーバ、キャッシュおよびクライアントがネットワークに接続され、カスタマイズした情報を提供するシステムであって、
前記サーバが、カスタマイズ可能なテンプレートを生成し、前記テンプレートにカスタマイズしたブロックを挿入する規則を生成し、
前記キャッシュが、前記テンプレート、および前記挿入する規則を格納し、
前記クライアントからの要求に応答して、前記挿入する規則が、前記ブロックを生成するデータのリストを特定する静的規則であるか、前記ブロックを生成する機能が定義された動的規則であるかを判断して、前記挿入する規則に基づいて前記ブロックを生成し、
前記テンプレートに前記生成したブロックを挿入し、前記ブロックを挿入したテンプレートを、前記クライアントへ提供し、
前記挿入する規則は、前記クライアントの発信元で前記挿入するブロックを決定する規則であり、
前記テンプレートが、前記挿入する規則への参照、および前記ブロックを挿入する場所を特定するオフセットを含むことを特徴とする、クライアントにカスタマイズした情報を提供するシステム。
【請求項１２】
請求項１１に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを生成する際に、前記キャッシュが、前記ブロックを予格納するクライアントにカスタマイズした情報を提供するシステム。
【請求項１３】
請求項１２に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを生成する際に、
さらに、前記キャッシュ、前記サーバ、又は前記キャッシュ、前記サーバの外部の記憶装置のいずれかが、前記ブロックを予格納する、クライアントにカスタマイズした情報を提供するシステム。
【請求項１４】
請求項１２に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを予格納する際に、前記挿入する規則によって定義された場所に前記ブロックを予格納する、クライアントにカスタマイズした情報を提供するシステム。
【請求項１５】
請求項１４に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを予格納した後に、さらに、キャッシュが、前記挿入する規則によって定義された場所から前記ブロックを取り込む、クライアントにカスタマイズした情報を提供するシステム。
【請求項１６】
請求項１５に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記動的規則には、この機能を呼び出すのに要するオーバーヘッドを計算し、前記ブロックを前記キャッシュに格納しないことを含む、クライアントにカスタマイズした情報を提供するシステム。
【請求項１７】
請求項１１に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記テンプレートに複数のブロックを挿入することを特徴とする、クライアントにカスタマイズした情報を提供するシステム。
【請求項１８】
請求項１７に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記テンプレートに複数のブロックを挿入する際に、特定の区分に、クライアントの発信元に基づくブロックを挿入する、クライアントにカスタマイズした情報を提供するシステム。
【請求項１９】
請求項１１に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを生成するデータのリストが、複数のデータから成るか否かの判断と、この複数のデータから適切な事項を選択することと、を含むことを特徴とする、クライアントにカスタマイズした情報を提供するシステム。
【請求項２０】
サーバ、キャッシュおよびクライアントがネットワークに接続されたシステムを用いて、カスタマイズした情報を提供することを実現するプログラムであって、
前記サーバが、カスタマイズ可能なテンプレートを生成するステップと、
前記サーバが、前記テンプレートにカスタマイズしたブロックを挿入する規則を生成するステップと、
前記キャッシュが、前記テンプレート、および前記挿入する規則を格納するステップと、
前記クライアントからの要求に応答して、前記キャッシュが、前記挿入する規則について、前記ブロックを生成するデータのリストを特定する静的規則であるか、前記ブロックを生成する機能が定義された動的規則であるかを判断して、前記挿入する規則に基づいて前記ブロックを生成するステップと、
前記キャッシュが、前記テンプレートに前記生成したブロックを挿入するステップと、
前記キャッシュが、前記ブロックを挿入したテンプレートを、前記クライアントへ提供するステップと、を備え、
前記挿入する規則は、前記クライアントの発信元で前記挿入するブロックを決定する規則であり、
前記テンプレートが、前記挿入する規則への参照、および前記ブロックを挿入する場所を特定するオフセットを含むことを特徴とする、クライアントにカスタマイズした情報を提供するプログラム。
【請求項２１】
請求項２０に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムであって、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュが、前記ブロックを予格納するステップを含む、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２２】
請求項２１に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュ、前記サーバ、又は前記キャッシュ、前記サーバの外部の記憶装置のいずれかが、前記ブロックを予格納する、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２３】
請求項２１に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを予格納するステップでは、
前記挿入する規則によって定義された場所に前記ブロックを予格納する、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２４】
請求項２３に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを予格納するステップの後に、
さらに、キャッシュが、前記挿入する規則によって定義された場所から前記ブロックを取り込むステップを含む、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２５】
請求項２４に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記動的規則には、この機能を呼び出すのに要するオーバーヘッドを計算し、前記ブロックを前記キャッシュに格納しないことを含む、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２６】
請求項２０に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記テンプレートに複数のブロックを挿入することを特徴とする、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２７】
請求項２６に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記テンプレートに複数のブロックを挿入する際に、特定の区分に、クライアントの発信元に基づくブロックを挿入する、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【請求項２８】
請求項２０に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを生成するデータのリストが、複数のデータから成るか否かの判断と、この複数のデータから適切な事項を選択することと、を含むことを特徴とする、クライアントにカスタマイズした情報を提供することを実現するプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にコンピュータ処理システムにおけるキャッシュに関し、特にネットワーク・サーバ・システムにおいてカスタマイズした情報をキャッシングする方法とシステムに関する。
【０００２】
【従来の技術】
コンピュータ・システムの性能を向上させるために、キャッシングが広く使われている。あるオブジェクトをキャッシングすれば、当該オブジェクトをフェッチ（あるいは生成）するコストは、一度負担するだけで済む。（フェッチとは、取り込むことである。オブジェクトが既に存在している場合にはそれをフェッチし、存在していない場合には新たに生成する）。キャッシュしてあるオブジェクトに対する要求が発生した場合、その要求は、キャッシュによって満たすことができる。このプロセスは、オブジェクトを再計算する、あるいは、リモート・ロケーション（遠隔地）からオブジェクトをフェッチするのに比べて、はるかにオーバーヘッドが少なくて済む。
【０００３】
最新のウェブ・サイトに対する主な必要条件の１つは、カスタマイズされており、アクセスするたびに異なって見えるページを提供することである。（カスタマイズとは、ユーザの使い勝手を向上させるために標準仕様を部分的に変更することである）。次に示す２つの例を考える。第１の例は、商業目的のウェブ・サイトである。商業目的のウェブ・サイトでは、そのウェブ・ページ上に広告を掲載している場合が多い。しかも、この広告は、ページがアクセスされるごとに変更する必要が生じることがある。第２の例は、ウェブ・サイトが、カスタマイズした情報を提供する必要が生じうる場合である。例えば、ウェブ・ページは、当該ウェブ・ページを要求しているクライアントに特有のカスタマイズした情報を提供することができる。個別の情報は、クライアントのＩＰ（Internet Protocol)アドレスに依拠することができるし（例えば、すべてのクライアントを対象にしたＩＢＭサイト〔ｉｂｍ．ｃｏｍ〕の特定のウェブ・ページは、クライアントの国に依拠した様々なバージョン〔版〕で参照することができる）、あるいは、クッキー（ＷＷＷサーバとウェブ・ブラウザとの間でやり取りされる識別情報）などクライアントが提供する状態情報に依拠することもできる。
【０００４】
ウェブ・サイトが精緻（せいち）になるのにつれて、カスタマイズしたウェブ・ページがますます重要になりつつある。したがって、カスタマイズした情報をキャッシングする方法を備えることが望ましく、かつ極めて有利である。
【０００５】
【課題を解決するための手段】
上述した課題は、従来技術の他の課題とともに、本発明によって解決することができる。
【０００６】
本発明の第１の側面は、コンピュータ処理システムにおいてカスタマイズした情報を提供する方法を提供するものである。この方法は、以下のステップを含んでいる。まず、データの少なくとも１つのカスタマイズしたブロックを生成するか取り込むかする少なくとも１つの規則を定義する。次いで、少なくとも１つのカスタマイズ可能なテンプレートを生成する。この少なくとも１つのカスタマイズ可能なテンプレートは、前記少なくとも１つ規則への少なくとも１つの参照と、前記少なくとも１つのカスタマイズ可能なテンプレートに前記少なくとも１つのカスタマイズしたブロックを挿入する少なくとも１つの場所を特定している少なくとも１つのオフセットとを含んでいる。次いで、前記少なくとも１つのカスタマイズ可能なテンプレートの前記少なくとも１つのオフセットが特定している前記少なくとも１つの場所に前記少なくとも１つのカスタマイズしたブロックを挿入する。
【０００７】
本発明の第２の側面によると、前記方法は、さらに、前記少なくとも１つのカスタマイズ可能なテンプレートを調べて、前記少なくとも１つのオフセットと前記少なくとも１つ参照とのうちの少なくとも１つを特定するステップを含む。
【０００８】
本発明の第３の側面によると、前記コンピュータ処理システムは、少なくとも１つのクライアントと、少なくとも１つのサーバと、少なくとも１つのキャッシュとを備えている。
【０００９】
本発明の第４の側面によると、前記方法は、さらに、前記少なくとも１つのキャッシュが前記少なくとも１つのクライアントから情報を求める少なくとも１つの要求を受け取るステップと、前記少なくとも１つの要求が前記少なくとも１つのカスタマイズ可能なテンプレートを参照しているか否かを判断するステップとを含む。
【００１０】
本発明の第５の側面によると、前記方法は、さらに、前記受け取るステップの前に、前記少なくとも１つのキャッシュの内部の場所に前記少なくとも１つのカスタマイズしたブロックを予格納するステップを含む。そして、前記定義するステップが、前記少なくとも１つ規則の内部で前記少なくとも１つのカスタマイズしたブロックの前記場所を特定するステップを含む。
【００１１】
本発明の第６の側面によると、前記方法は、さらに、前記受け取るステップの前に、前記少なくとも１つのキャッシュの外部の場所に前記少なくとも１つのカスタマイズしたブロックを予格納するステップを含む。そして、前記定義するステップが、前記少なくとも１つ規則の内部で前記少なくとも１つのカスタマイズしたブロックの前記場所を特定するステップを含む。
【００１２】
本発明の第７の側面によると、前記外部の場所は、前記少なくとも１つのサーバと、前記少なくとも１つのサーバ以外のサーバとのうちの一方の記憶装置の内部にある。
【００１３】
本発明の第８の側面によると、前記方法は、さらに、前記少なくとも１つの規則が特定している場所から前記少なくとも１つのカスタマイズしたブロックを取り込むステップを含む。
【００１４】
本発明の第９の側面によると、前記方法は、さらに、前記少なくとも１つの要求が前記少なくとも１つのカスタマイズ可能なテンプレートを参照している場合、前記少なくとも１つのカスタマイズしたブロックを動的に生成するステップを含む。
【００１５】
本発明の第１０の側面によると、前記方法は、さらに、実行可能なコンピュータ・プログラムに対応する機能を呼び出すことにより、前記少なくとも１つのカスタマイズしたブロックを動的に生成するステップを含む。そして、前記定義するステップが、前記少なくとも１つの規則の内部で前記機能を特定するステップを含む。
【００１６】
本発明の第１１の側面によると、前記少なくとも１つのカスタマイズしたブロックは、前記少なくとも１つのクライアントの前記識別情報に基づいて、生成するか取り込むかしたものである。
【００１７】
本発明の第１２の側面によると、前記方法は、さらに、前記少なくとも１つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも１つのカスタマイズしたブロックを生成するために、前記少なくとも１つのキャッシュにデータを付加するか否かを判断するステップを含む。
【００１８】
本発明の第１３の側面によると、前記方法は、さらに、前記少なくとも１つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも１つのカスタマイズしたブロックを生成するために、前記少なくとも１つのキャッシュからデータを削除するか否かを判断するステップを含む。
【００１９】
本発明の第１４の側面によると、前記少なくとも１つの要求が少なくとも２つの要求を含み、前記方法が、さらに、所定の基準に基づいて、前記少なくとも２つの要求を少なくとも２つの区分に区分けするステップを含む。
【００２０】
本発明の第１５の側面によると、前記所定の基準は、前記要求を発した個人の識別情報である。
【００２１】
本発明の第１６の側面によると、前記少なくとも１つの規則は、前記少なくとも１つのカスタマイズしたブロックを生成するためのデータのリストを特定しており、前記方法は、前記リストが複数の事項から成るか否かを判断するステップを含む。前記リストが複数の事項から成る場合、前記少なくとも２つの区分のうちの少なくとも１つに、前記リストから少なくとも１つの適切な事項を選択する選択方法を関連付ける。
【００２２】
本発明の第１７の側面によると、前記方法は、さらに、前記少なくとも１つのキャッシュに、前記少なくとも１つのカスタマイズしたブロックと前記少なくとも１つの規則とのうちの少なくとも一方を、サーバ・プログラムに適切に接続されたインタフェースを通じて、要求によりまたは自動的に、格納するステップを含む。
【００２３】
本発明の第１８の側面によると、前記方法は、さらに、前記インタフェースを通じて、前記少なくとも１つの規則を、自動的に更新するか自動的に変更するか、少なくとも一方を行なうステップを含む。
【００２４】
本発明の第１９の側面は、クライアント／サーバ環境においてカスタマイズした情報を提供するシステムを提供するものである。前記システムは、少なくとも１つのクライアントと、少なくとも１つのサーバとを備えている。前記少なくとも１つのクライアントを前記少なくとも１つのサーバに接続するように、ネットワークが適合されている。情報を求める少なくとも１つの要求が少なくとも１つのカスタマイズ可能なテンプレートを参照している場合、少なくとも１つのカスタマイズ可能なテンプレートに少なくとも１つのカスタマイズしたブロックを挿入することにより、カスタマイズした情報を生成するように、少なくとも１つのキャッシュが適合されている。前記少なくとも１つのサーバを前記少なくとも１つのキャッシュに接続させるように、インタフェースが適合されている。
【００２５】
本発明のここで示した側面と他の側面、および、本発明の特徴と利点は、以下に説明する本発明の好適な実施形態の詳細な説明から明らかになる。
【００２６】
【発明の実施の形態】
本発明は、クライアント・サーバ・システムにおいて、カスタマイズした情報をキャッシングする方法を指向している。理解すべきは、本発明は、様々な形のハードウェア、ソフトウェア、ファームウェア、専用コンピュータ、あるいは、これらを組み合わせたものとして実現することができる、という点である。一実施形態では、本発明は、プログラム記憶装置に目に見える形で（tangibly）組み込まれたアプリケーション・プログラムとして、ソフトウェアで実現することができる。上記アプリケーション・プログラムは、任意のアーキテクチャを備えたマシンにアップロードして実行することのできるものである。上記マシンは、少なくとも１つのＣＰＵ（central processing unit:中央処理装置）、ＲＡＭ（random access memory）、および入出力（Ｉ／Ｏ）インタフェースなどのハードウェアを備えたコンピュータ・プラットフォーム上に実装（implement)されているのが望ましい。上記コンピュータ・プラットフォームは、オペレーティング・システムとマイクロ命令コードをも備えている。ここで説明する様々なプロセスと機能は、オペレーティング・システムを経由して実行される、マイクロ命令コードの一部、または、アプリケーション・プログラムの一部、（あるいはこれらを組み合わせたもの）として実現することができる。さらに，上記コンピュータ・プラットフォームには、補助データ記憶装置やプリント装置など様々な他の周辺装置を接続することができる。
【００２７】
さらに理解すべきは、添付図面に図示されている構成要素であるシステム・コンポーネントと方法ステップの中にはソフトウェアで実装しうるものがあるので、システム・コンポーネント相互間（あるいは方法ステップ相互間）の実際の接続は、本発明をプログラムする仕方に応じて変化しうる、という点である。ここで示した本発明の教示を考慮すると、当業者は、本発明の実装すなわち構成として、ここに示したものの他にも同様の実装すなわち構成を想到しうる。
【００２８】
ここで、読者に本発明の概念を紹介するために、本発明を一般的に説明する。次いで、図１〜図７に関し、本発明の様々な側面を詳細に説明する。
【００２９】
本発明の一実施形態によると、情報のカスタマイズはキャッシュを備えることによって行なう。上記キャッシュは、カスタマイズ可能なウェブ・ページが上記キャッシュの外部で使われる前に、当該カスタマイズ可能なウェブ・ページに、カスタマイズしたブロック（customized block: ＣＢ）と呼ばれている少なくとも１つのデータのブロックを挿入するものである。ＣＢを生成する規則は、キャッシュに格納されている規則情報ブロック（rule information block: ＲＩＢ）に含まれている。
【００３０】
カスタマイズ可能なページは、通常、キャッシュにカスタマイズした情報を含まない形で格納されている。そのかわり、カスタマイズ可能なページは、当該カスタマイズ可能なページに挿入すべき次に示すものを各ＣＢごとに備えたヘッダー情報を含んでいる。
（１）カスタマイズ可能なページにＣＢを挿入するときに依拠するオフセット。
（２）ＣＢを生成する規則に対応するＲＩＢへのポインタ。
このようなカスタマイズ可能なページを、ここでは、カスタマイズ可能なテンプレート（customizable template:ＣＴ）と呼ぶ。
【００３１】
本発明の一実施形態によると、２つの型の規則、すなわち静的規則と動的規則が存在する。しかしながら、本発明は、ここで開示される特定の型の規則に依存しないので、本発明の本旨と範囲の内で、別の型の規則を使用することができる、という点を認識すべきである。
【００３２】
静的規則の場合、カスタマイズした情報は、キャッシュに（性能上の理由からはこれが望ましい）、あるいはキャッシュがアクセスできるファイルに格納されている。あるいは、カスタマイズした情報は、キャッシュからアクセス可能なサーバから取得してもよい。留意すべきは、キャッシュの中にはファイル・システムあるいはサーバに対してアクセスできないものがある、という点である。
【００３３】
動的規則の場合、カスタマイズした情報は、プログラムを実行することにより動的に生成する。留意すべきは、キャッシュの中には動的規則を取り扱うことができないものがある、という点である。
【００３４】
本発明の一実施形態によると、静的規則用のＲＩＢを使えば、要求を所定の基準に従って区分けすることができる。好適な実施形態では、所定の基準には、クライアントのＩＰアドレスを使う。例えば、アメリカ合衆国発の要求はすべて１つの区分に分類することができ、カナダ国発の要求はすべて別の区分に分類することができる、等々である。また、クライアントのＩＰアドレスを調べることはせず、すべての要求を同じ区分に分類する場合もある。各区分ごとに、ＲＩＢには、通常、キャッシュしたオブジェクト、および／または、カスタマイズした情報を供給するのに使うことのできるファイルのリストが格納されている。（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす）。リストに複数の要素が含まれている場合、当該リストに対応する区分に、キャッシュしたオブジェクト（あるいはファイル）の中から適切なものを選択する方法が関連付けられている。この選択方法には、ラウンド・ロビン（総当たり）選択とランダム選択とがある（しかし、これらに限定されない）。認識すべきは、上述した要求を区分けする所定の基準、ならびに、キャッシュしたオブジェクト（あるいはファイル）を選択する方法は、説明を目的とした例示にすぎないので、別の基準と選択方法を使うこともできる、という点である。ここで提示した本発明の教示を考慮すると、当業者は、本発明の本旨と範囲の内で、所定の基準とキャッシュしたオブジェクト（あるいはファイル）の中から適切なものを選択する方法として、ここに示したものの他にも別の型の所定の基準と別の選択方法を想到しうる。
【００３５】
動的規則用のＲＩＢには、カスタマイズした情報を生成するために呼び出す機能へのポインタを含めることができる。
【００３６】
カスタマイズしたページｐに対する要求をキャッシュが受け取ると、キャッシュは、ページｐのヘッダーを調べて挿入する必要のあるＣＢを決める。キャッシュは、上記ヘッダーに含まれている適切なオフセット位置にＣＢを挿入することによりページｐのカスタマイズしたコピーを作り、当該カスタマイズしたコピーをクライアントに返送する。各ＣＢを計算するために、キャッシュは、適切なＲＩＢを調べる。規則が静的である場合、キャッシュは、クライアントのＩＰアドレスに対応する適切な区分を選択すればよい。次いで、キャッシュは、当該区分に対応するキャッシュしたオブジェクト（あるいはファイル）を選択して、カスタマイズした情報の用に供する。
【００３７】
規則が動的である場合、キャッシュは、ＲＩＢを調べて呼び出すべき機能を決める。次いで、キャッシュは、当該機能を呼び出す。そうする際に、キャッシュは、当該機能に新たな情報を渡してもよい（例えば、クライアントのＩＰアドレス、要求したＵＲＬ〔Uniform Resource Locator〕、クッキー情報、など）。次いで、当該機能は、カスタマイズした情報を返す。
【００３８】
キャッシュには、カスタマイズ可能なデータを格納することができる。これは、要求により（on demand)、あるいは、カスタマイズ可能なページとＲＩＢをキャッシュに入れるのにサーバ・プログラムが使うことのできるインタフェース／ＡＰＩを経由して行なう。（ＡＰＩ〔application program interface 〕とは、アプリケーション・プログラムがオペレーティング・システム〔ＯＳ〕の基本機能を使うためのコマンドの集まりのことである）。このＡＰＩによって、ＲＩＢは、動的に変化することができる。
【００３９】
図１は、本発明の一実施形態による、本発明を適用することのできるクライアント／サーバ・システム１００を示す図である。クライアント／サーバ・システム１００は、少なくとも１つのクライアント１０２（以下「クライアント１０２」）、少なくとも１つのサーバ１０４（以下「サーバ１０４」）、および、少なくとも１つのキャッシュ１０６（以下「キャッシュ１０６」）を備えている。
【００４０】
クライアント１０２は、サーバ１０４から情報を取得する。クライアント１０２にアクセスする際に、サーバ１０４には、遅延および／または他のオーバーヘッド（例えばネットワーク・オーバーヘッド）がかかる。このようなアクセスにためのオーバーヘッドを低減するために、サーバ１０４が出す情報をキャッシュ１０６に格納しておく。そうすれば、クライアント１０２は、サーバ１０４からキャッシュした情報を極めて小さなオーバーヘッドで取得することができる。本発明の主な特徴の１つは、クライアント１０２に送られる情報をカスタマイズするキャッシュ１０６の機能である。
【００４１】
既存のキャッシュは、クライアントに返すべきオブジェクトを実際に格納している。本発明では、キャッシュ１０６は、内容が部分的にしか特定されていないオブジェクトである、カスタマイズ可能なテンプレート（customizable template:ＣＴ）を格納している。図２は、本発明の一実施形態による、カスタマイズしたブロックをＨＴＭＬ（HyperText Markup Language:ハイパーテキスト・マーク付け言語) ページ内で特定する方法を示す図である。図２は、特に、ＨＴＭＬページ内（例えば上端の近く）に挿入することのできる注釈行を示している。キャッシュは、この注釈行を解釈して、クライアントにオブジェクトを返す前に当該オブジェクトをカスタマイズする方法を決める。（offset x, rule id x)という文字列のうち「offset x」は、ＨＴＭＬページ内のオフセットを表わしている。この場合、ｘ番目のカスタマイズしたブロックを挿入すべきであることを表わしている。「rule id x 」は、ｘ番目のカスタマイズしたブロックを生成する方法を示すＲＩＢへのポインタである。認識すべきは、図２に示した方法は多くの例の中のほんの一例であり、ここに示した本発明の教示を考慮すると、当業者は、本発明の本旨と範囲の内で、カスタマイズしたブロックを特定する方法として、ここに示したものの他にも様々な方法を想到しうる、という点である。例えば、別のマーク付け言語、あるいは非マーク付け言語で記述した文書／ページ中へ挿入することに基づいた、カスタマイズしたブロックを特定する別の方法が考えられる。
【００４２】
図３は、本発明の一実施形態による、静的規則情報ブロック（ＲＩＢ）３０２と動的ＲＩＢ３５０を示す図である。静的ＲＩＢ３０２は、例えばクライアントの発信元で決まる様々な動作を特定する規則である。例えば、クライアントのＩＰアドレスが「．ｅｄｕ」なるエンティティ（実体）に変換される場合、カスタマイズしたブロック（ＣＢ）は、「ｆｉｌｅ１．ｔｘｔ」「ｆｉｌｅ２．ｔｘｔ」「ｆｉｌｅ３．ｔｘｔ」のうちのいずれかになる。（エンティティ〔実体〕とは、対象とするシステムを構成している物的、人的、あるいは抽象的な構成要素のことである）。これらのうち正確なカスタマイズしたブロック（ＣＢ）は、ラウンド・ロビン選択とランダム選択を含む（しかし、これらに限定されない）任意の数の選択機構によって決めることができる。クライアントのＩＰアドレスが「．ｃｏｍ」なるエンティティに変換される場合、カスタマイズしたブロック（ＣＢ）は、「ｆｉｌｅ４．ｔｘｔ」「ｆｉｌｅ５．ｔｘｔ」「ｆｉｌｅ６．ｔｘｔ」のうちのいずれかになる。クライアントのＩＰアドレスがその他の型のエンティティ（例えば「．ｏｒｇ」）に変換される場合、カスタマイズしたブロック（ＣＢ）は、「ｆｉｌｅ７．ｔｘｔ」になる。
【００４３】
動的ＲＩＢ３５０には、カスタマイズしたブロック（ＣＢ）を生成するのに呼び出すべき機能への参照が含まれている。
【００４４】
図４は、本発明の一実施形態による、データを生成しキャッシュする方法のフローチャートを示す図である。このようなデータは、通常、サーバ１０４が生成し、キャッシュ１０６が格納する。
【００４５】
まず、カスタマイズ可能なテンプレート（ＣＴ）を生成する（ステップ４０２）。これは、例えばウェブ・プログラマーが行なってもよい。また、カスタマイズ可能なＨＴＭＬテンプレートを生成するために、図２に示した注釈行と同様の注釈行をＨＴＭＬページの先頭に付加してもよい。
【００４６】
次いで、カスタマイズしたブロック（ＣＢ）をカスタマイズ可能なテンプレート（ＣＴ）に挿入する規則を生成する（ステップ４０４）。これらの規則は、図３に示した規則と同様のものである。無論、別の型の規則を使うこともできるし、あるいは、それらを組み合わせた規則を使うこともできる。任意実行事項として、ステップ４０４で、少なくとも１つの静的規則に対応する少なくとも１つのＣＢをフェッチしてもよい。ステップ４０６で、動的規則用のＣＢを生成するプログラムと機能を生成する。
【００４７】
少なくとも１つのＣＴ、ＲＩＢ、ＣＢ、プログラム／機能、および／または、他の情報／データをキャッシュ１０６に付加する（ステップ４０８）。認識すべきは、このような情報は、カスタマイズした情報に対するキャッシュ・ミスが発生した後で、キャッシュ１０６に付加してもよい、という点である。さらに、このような情報は、キャッシュ１０６と交信しているサーバ１０４がキャッシュ１０６にプリフェッチ（先取り）してもよい。キャッシュのスペース（記憶装置上の領域）には限りがあるので、あまりにもスペースを取り過ぎるカスタマイズした情報をキャッシュするのは望ましくない。したがって、キャッシュ１０６は、あまりにもスペースを取り過ぎるカスタマイズした情報を格納しないように決めてもよい。また、キャッシュ１０６が満杯になったときには、大きなスペースを占めているカスタマイズした情報を追い出して新たなデータ用に空きを作るようにしてもよい。
【００４８】
さらに、カスタマイズしたデータを生成するのにキャッシュ１０６が大量のＣＰＵサイクルを消費するのは好ましくない。しかし、動的規則の中には、大量のＣＰＵサイクルを消費する機能を呼び出すものがある。任意実行事項として、動的規則が呼び出す機能に、当該機能を呼び出すのに要するオーバーヘッドの概算値を関連付けることができる。この場合、カスタマイズした情報を生成するのに要するオーバーヘッドの概算値が大きすぎるときには、キャッシュ１０６は、当該カスタマイズした情報を格納しないように決めてもよい。また、キャッシュ１０６が満杯になったら、キャッシュ１０６は、生成するのに要する合計オーバーヘッドが大きすぎるカスタマイズした情報を追い出すようにしてもよい。
【００４９】
本発明の好ましい実施形態では、ステップ４０２〜ステップ４０８をインタリーブ（交互配置）し並行して実行する。無論、逐次処理と並列処理の変形を含む他の処理手順を採用することも可能である。
【００５０】
図５は、本発明の別の実施形態による、データを生成してキャッシュする方法のフローチャートを示す図である。このようなデータは、通常、サーバ１０４が生成し、キャッシュ１０６が格納する。
【００５１】
まず、カスタマイズ可能なテンプレート（ＣＴ）を生成する（ステップ４５２）。次いで、カスタマイズしたブロック（ＣＢ）をカスタマイズ可能なテンプレート（ＣＴ）に挿入する規則を生成する（ステップ４５４）。任意実行事項として、ステップ４５４で、少なくとも１つの静的規則に対応する少なくとも１つのＣＢをフェッチしてもよい。ステップ４５６で、動的規則用のＣＢを生成するプログラムと機能を生成する。
【００５２】
次いで、ＣＢを生成するためにキャッシュ１０６にデータを付加するか否かを判断する（ステップ４５８）。ステップ４５８の判断結果がＹｅｓならば、データ（例えば少なくとも１つのＣＴ、ＲＩＢ、ＣＢ、プログラム／機能、および／または、他の情報／データ）をキャッシュ１０６に付加した（ステップ４６０）のち、プロセスを終了する。しかし、ステップ４５８の判断結果がＮｏならば、ＣＢおよび／または他の情報／データを生成するのにキャッシュ１０６からデータを削除するか否かを判断する（ステップ４６２）。ステップ４６２の判断結果がＹｅｓならば、データ（例えば少なくとも１つのＣＴ、ＲＩＢ、ＣＢ、プログラム／機能、および／または、他の情報／データ）をキャッシュ１０６から削除した（ステップ４６４）のち、プロセスを終了する。ステップ４６２の判断結果がＮｏならば、プロセスは直ちに終了する。認識すべきは、ステップ４５８とステップ４６２の判断は、例えば少なくとも１つのカスタマイズしたブロック（ＣＢ）を生成するのに要するオーバーヘッドの概算値に基づいて行なってもよい、という点である。
【００５３】
本発明の好ましい実施形態では、ステップ４５２〜ステップ４６４をインタリーブし並行して実行する。無論、逐次処理と並列処理の変形を含む他の処理手順を採用することも可能である。
【００５４】
図６は、本発明の一実施形態による、キャッシュがカスタマイズした情報を生成する方法のフローチャートを示す図である。まず、キャッシュしたデータに対する要求をキャッシュ１０６が受け取る（ステップ５０２）。上記要求がキャッシュ１０６の観点から満足しうるものであるか否かを判断するためには、既存の方法（例えばキャッシュ・ディレクトリの検索）を使うことができる。
【００５５】
次いで、上記要求がカスタマイズした情報を求めているか否かを判断する（ステップ５０４）。上記要求がＨＴＭＬページを求めている場合、キャッシュ１０６は、例えば図２に示した注釈行と同様の注釈行がないかどうか要求されたＨＴＭＬページを調べることにより、当該ＨＴＭＬページをカスタマイズする必要があるか否かを判断することができる。注釈行が検出された場合、上記要求はカスタマイズした情報を求めている、と考えることができる。注釈行が検出されない場合、上記要求はカスタマイズした情報を求めていない、と考えることができる。
【００５６】
上記要求がカスタマイズした情報を求めていない場合、（カスタマイズしていない）情報をクライアント１０２に返した（ステップ５０６）のち、プロセスは終了する。認識すべきは、ステップ５０６は既存の手法を使って実行できる、という点である。
【００５７】
これに対して、上記要求がカスタマイズした情報を求めている場合、キャッシュ１０６は、カスタマイズしたブロック（ＣＢ）を適切なカスタマイズ可能なテンプレート（ＣＴ）に挿入する規則を処理する（ステップ５０８、５１０、５１２、５１４、５１６）。
【００５８】
ステップ５０８で、次の未処理の規則が静的規則であるか否かを判断する。
この規則は、図２の注釈行と同様の注釈行を調べて、当該規則用の規則情報ブロック（ＲＩＢ）とＣＢを挿入するオフセット「０」とを決めることにより得ることができる。ＲＩＢは、規則が静的であるか動的であるかを示している。
【００５９】
規則が静的である場合、静的ＲＩＢからＣＢを生成した（ステップ５１０）のち、プロセスはステップ５１４に進む。例えば、静的ＲＩＢとして、図３に示した形のものを想定する。すると、クライアント１０２が「．ｅｄｕ」なるエンティティに対応する場合、キャッシュ１０６は、ＣＢ用に「ｆｉｌｅ１．ｔｘｔ」「ｆｉｌｅ２．ｔｘｔ」「ｆｉｌｅ３．ｔｘｔ」のうちのいずれかを使うことになる。クライアント１０２が「．ｃｏｍ」なるエンティティに対応する場合には、キャッシュ１０６は、ＣＢ用に「ｆｉｌｅ４．ｔｘｔ」または「ｆｉｌｅ５．ｔｘｔ」を使うことになる。クライアント１０２が別の型のエンティティに対応する場合には、キャッシュ１０６は、ＣＢ用に「ｆｉｌｅ７．ｔｘｔ」を使うことになる。このように、文字列「ｆｉｌｅｘ．ｔｘｔ」によって、キャッシュしたデータを特定することができる。あるいは、文字列「ｆｉｌｅｘ．ｔｘｔ」によって、キャッシュ１０６にアクセス可能なファイルを特定することができる。別の可能性として、文字列「ｆｉｌｅｘ．ｔｘｔ」によって、リモート（遠隔）側でフェッチする必要のあるデータを特定しているＵＲＬを特定することができる。クライアント１０２が出すクッキーおよび／または他の情報をＵＲＬと一緒に渡すことにより、リモートのデータをフェッチすることができるようになる。
【００６０】
上とは反対に、規則が静的でない（すなわち規則が動的である）場合、ＲＩＢによって特定される機能を呼び出すことによりＣＢを生成した（ステップ５１２）のち、プロセスはステップ５１４に進む。上記機能は、ＣＢを生成するコンピュータ・プログラムに対応している。上記機能は、キャッシュしたデータに対する上記要求に含まれている、クライアント１０２のアドレス、クライアント１０２が渡すクッキーおよび／または他の情報、要求されたＵＲＬ、他の情報（例えば照会文字列あるいは照会副文字列）を含む（しかし、これらに限定されない）少なくとも１つの引数によって引き渡すことができる。これらの引数によって、上記機能はＣＢをより巧妙に生成することができるようになる。例えば、上記要求を作成した人物の名前をＣＢに含ませるべきである場合を想定する。名前の情報はクッキーに含ませることができるので、この想定は容易に実現できることが分かる。
【００６１】
ステップ５１４では、ＣＴのオフセット「０」で特定される場所にＣＢを挿入する。次いで、すべてのＣＢを挿入したか否か（すなわちカスタマイズは完了したか否か）を判断する（ステップ５１６）。Ｙｅｓならば、要求された（カスタマイズした）情報をクライアント１０２に返した（ステップ５１８）のち、プロセスは終了する。Ｎｏならば、プロセスはステップ５０８に戻る。
【００６２】
当業者が容易に想到しうる本発明の変形例として、テンプレートが、当該テンプレート自体ではなく別のエンティティにＣＢを挿入するための場所を特定するものが挙げられる。この場合、同じエンティティ用の様々なＣＢが、様々なテンプレートで特定される可能性がある。また、オフセットは、ＣＢを生成する規則を参照しているテンプレートとは別のテンプレートに格納される可能性がある。
【００６３】
当業者が容易に想到しうる別の変形例として、ＣＢを挿入すべきＣＴとは別のエンティティにＣＢ用の少なくとも１つのオフセットおよび／または規則を特定するものが挙げられる。実際、ＣＴは、オフセットおよび／または規則参照を含んでいる必要はない。例えば、すべてのオフセットおよび／または規則参照が別のエンティティに含まれていてもかまわない。
【００６４】
図７は、本発明の一実施形態による、クライアント／サーバ・システムにおいてカスタマイズした情報を提供する方法のフローチャートを示す図である。説明を簡単にするために、機能、規則、オフセット、カスタマイズ可能なテンプレート（ＣＴ）、カスタマイズしたブロック（ＣＢ）などがおのおの１つだけある場合について説明する。しかしながら、これらの事項のおのおのを複数個用いてもよい、という点を認識すべきである。例えば、１つの文書（ドキュメント）の２個所に、カスタマイズしたデータの同じブロックを挿入できるように、２つのオフセットを用いることができる。あるいは、同じ文書の２つの異なった場所にカスタマイズしたデータの２つの異なったブロックを挿入できるように、２つのオフセットを用いることができる。ここに示した本発明の教示を考慮すると、当業者は、本発明の構成要素群の、ここに示した構成、変更、実装の他にも、本発明の構成要素群から様々な構成、変更、実装を想到しうる。
【００６５】
まず、データのカスタマイズしたブロック（ＣＢ）を動的規則から生成すべきであるか否かを判断する（ステップ６１０）。カスタマイズしたブロック（ＣＢ）を動的規則から生成すべきである場合、当該カスタマイズしたブロック（ＣＢ）を生成する実行可能なコンピュータ・プログラムに対応する機能を生成する（ステップ６１２）。カスタマイズしたブロック（ＣＢ）を動的規則から生成すべきでない（すなわち静的規則から生成すべきである）場合、カスタマイズしたブロック（ＣＢ）を生成してキャッシュ１０６内の場所、あるいは、キャッシュ１０６外の場所（例えばサーバ１０４または別のサーバの記憶装置〔図示せず〕）に予格納する（ステップ６１４）。
【００６６】
次いで、カスタマイズしたブロック（ＣＢ）を生成し、および／または、取り込む規則を生成する（ステップ６１６）。ステップ６１６には、規則が動的であるか静的であるかに応じて、それぞれ、カスタマイズしたブロック（ＣＢ）を生成する機能を特定するステップ、あるいは、カスタマイズしたブロック（ＣＢ）の場所（例えばキャッシュ１０６の内部あるいは外部）を特定するステップが含まれている。
【００６７】
カスタマイズ可能なテンプレート（ＣＴ）を生成する（ステップ６１８）。当該カスタマイズ可能なテンプレート（ＣＴ）には、規則への参照と、当該カスタマイズ可能なテンプレート（ＣＴ）にカスタマイズしたブロック（ＣＢ）を挿入すべき場所を特定するオフセットとが含まれている。
【００６８】
クライアント１０２から情報を求める要求を受け取ると（ステップ６２０）、その要求がカスタマイズ可能なテンプレート（ＣＴ）を参照しているか否かを判断する（ステップ６２２）。上記要求がカスタマイズ可能なテンプレート（ＣＴ）を参照していない場合、要求された（カスタマイズしていない）情報をクライアント１０２に返した（ステップ６２４）のち、プロセスは終了する。しかし、上記要求がカスタマイズ可能なテンプレート（ＣＴ）を参照している場合には、当該カスタマイズ可能なテンプレート（ＣＴ）を調べて、オフセットと参照を特定する（ステップ６２６）。
【００６９】
上記参照が参照している規則が静的であるか否かを判断する（ステップ６２８）。上記規則が静的でない（すなわち動的である）場合、プロセスはステップ６４２に進む。しかし、上記規則が静的である場合には、要求を発したもの（者）の識別情報が、予め特定しておいたグループ内のものであるか否かを判断する（ステップ６３０）。ステップ６３０の判断は、要求を発したもののＩＰアドレスに基づいて行なうことができる。
【００７０】
要求を発したものの識別情報が予め特定しておいたグループ内のものでない場合、プロセスはステップ６４０に進む。しかし、要求を発したものの識別情報が予め特定しておいたグループ内のものである場合には、上記要求を特定の区分に分類して入れる（ステップ６３２）。上記規則がカスタマイズしたブロック（ＣＢ）を生成するデータのリストを特定しているか否かを判断する（ステップ６３４）。上記規則がデータのリストを特定していない場合、プロセスはステップ６４０に進む。しかし、上記規則がデータのリストを特定している場合には、当該リストが複数の事項から成るか否かを判断する（ステップ６３６）。Ｙｅｓならば、上記リストから適切な事項を選択する選択方法を上記区分に関連付ける（ステップ６３８）。Ｎｏならば、プロセスはステップ６４０に進む。
【００７１】
次いで、上記規則が特定している場所からカスタマイズしたブロック（ＣＢ）を取り込んだ（ステップ６４０）のち、プロセスはステップ６４４に進む。
【００７２】
ステップ６４２では、ステップ６１２で生成した機能を呼び出すことにより、カスタマイズしたブロック（ＣＢ）を動的に生成する。
【００７３】
ステップ６４０またはステップ６４２で取得したカスタマイズしたブロック（ＣＢ）は、ステップ６４４で、上記カスタマイズ可能なテンプレート（ＣＴ）の上記オフセットが特定している場所に挿入する。ステップ６４４における上記カスタマイズしたブロック（ＣＢ）の挿入は、クライアント１０２の識別情報に基づいて行なうことができる。次いで、要求された（カスタマイズした）情報をクライアント１０２に返した（ステップ６４６）のち、プロセスは終了する。
【００７４】
以上、本発明の好適な実施形態として、ＨＴＭＬ（ハイパーテキスト・マーク付け言語）で書かれた文書（ドキュメント）中で、カスタマイズしたデータを扱う場合を説明したけれども、本発明は、他のマーク付け言語や非マーク付け言語で書かれた文書を含む様々な文書中でデータをカスタマイズするのに使うことができる。さらに、ここではインターネットあるいはウェブをベースにしたクライアント／サーバ環境に関して本発明の好適な実施形態を説明したけれども、本発明は様々なクライアント／サーバ環境に適用できる、という点を認識すべきである。ここに示した本発明の教示を考慮すると、当業者は、本発明を適用できる文書と環境として、ここに示した型のものの他に様々な型のものを想到しうる。
【００７５】
ここでは添付図面を参照して本発明の実施形態を説明したけれども、本発明はこれら精緻な実施形態に限定されず、また、当業者は本発明の本旨と範囲の内で様々な変形や変更をなしうる、という点を理解すべきである。そのような変形や変更は、すべて、特許請求の範囲によって定義される本発明の本旨と範囲の内に含まれるべきものである。
【００７６】
まとめとして以下の事項を開示する。
（１）コンピュータ処理システムにおいてカスタマイズした情報を提供する方法であって、
データの少なくとも１つのカスタマイズしたブロックを生成するか取り込むかするための少なくとも１つの規則を定義するステップと、
少なくとも１つのカスタマイズ可能なテンプレートを生成するステップであって、前記カスタマイズ可能なテンプレートが、前記少なくとも１つの規則への少なくとも１つの参照と、前記少なくとも１つのカスタマイズ可能なテンプレートに前記少なくとも１つのカスタマイズしたブロックを挿入する少なくとも１つの場所を特定する少なくとも１つのオフセットとを備えている、ステップと、
前記少なくとも１つのカスタマイズ可能なテンプレートの、前記少なくとも１つのオフセットが特定している前記少なくとも１つの場所に、前記少なくとも１つのカスタマイズしたブロックを挿入するステップと
を備えた方法。
（２）さらに、
前記少なくとも１つのカスタマイズ可能なテンプレートを調べて、前記少なくとも１つのオフセットと前記少なくとも１つの参照とのうちの少なくとも１つを特定するステップ
を備えている、
上記（１）に記載の方法。
（３）前記コンピュータ処理システムが、
少なくとも１つのクライアントと、少なくとも１つのサーバと、少なくとも１つのキャッシュと
を備えている、
上記（１）に記載の方法。
（４）さらに、
前記少なくとも１つのクライアントが出す情報を求める少なくとも１つの要求を前記少なくとも１つのキャッシュが受け取るステップと、
前記少なくとも１つの要求が前記少なくとも１つのカスタマイズ可能なテンプレートを参照しているか否かを判断するステップと
を備えている、
上記（３）に記載の方法。
（５）さらに、
前記受け取るステップの前に、前記少なくとも１つのキャッシュの内部の場所に前記少なくとも１つのカスタマイズしたブロックを予格納するステップ
を備え、
前記定義するステップが、
前記少なくとも１つの規則の内部で前記少なくとも１つのカスタマイズしたブロックの前記場所を特定するステップ
を備えている、
上記（４）に記載の方法。
（６）さらに、
前記受け取るステップの前に、前記少なくとも１つのキャッシュの外部の場所に前記少なくとも１つのカスタマイズしたブロックを予格納するステップ
を備え、
前記定義するステップが、
前記少なくとも１つの規則の内部で前記少なくとも１つのカスタマイズしたブロックの前記場所を特定するステップ
を備えている、
上記（４）に記載の方法。
（７）前記外部の場所が、前記少なくとも１つのサーバと前記少なくとも１つのサーバ以外のサーバとのうちの一方が有する記憶装置の内部にある、
上記（６）に記載の方法。
（８）さらに、
前記少なくとも１つの規則が特定しいる場所から前記少なくとも１つのカスタマイズしたブロックを取り込むステップ
を備えている、
上記（１）に記載の方法。
（９）さらに、
前記少なくとも１つの要求が前記少なくとも１つのカスタマイズ可能なテンプレートを参照している場合、前記少なくとも１つのカスタマイズしたブロックを動的に生成するステップ
を備えている、
上記（４）に記載の方法。
（１０）さらに、
実行可能なコンピュータ・プログラムに対応する機能を呼び出すことにより、前記少なくとも１つのカスタマイズしたブロックを動的に生成するステップ
を備え、
前記定義するステップが、
前記少なくとも１つの規則の内部で前記機能を特定するステップ
を備えている、
上記（１）に記載の方法。
（１１）前記少なくとも１つのカスタマイズしたブロックが、前記少なくとも１つのクライアントの識別情報に基づいて、生成したもの、または、取り込んだものである、
上記（３）に記載の方法。
（１２）さらに、
前記少なくとも１つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも１つのカスタマイズしたブロックを生成するのに前記少なくとも１つのキャッシュにデータを付加すべきか否かを判断するステップ
を備えた、
上記（３）に記載の方法。
（１３）さらに、
前記少なくとも１つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも１つのカスタマイズしたブロックを生成するのに前記少なくとも１つのキャッシュからデータを削除すべきか否かを判断するステップ
を備えた、
上記（３）に記載の方法。
（１４）前記少なくとも１つの要求が少なくとも２つの要求から成り、
前記方法が、さらに、
所定の基準に基づいて、前記少なくとも２つ要求を少なくとも２つの区分に区分けするステップ
を備えている、
上記（４）に記載の方法。
（１５）前記所定の基準が、前記要求を発した個人の識別情報である、
上記（１４）に記載の方法。
（１６）前記少なくとも１つの規則が、前記少なくとも１つのカスタマイズしたブロックを生成するための、データのリストを特定しており、
前記方法が、
前記リストが複数の事項から成るか否かを判断するステップと、
前記リストが複数の事項から成る場合、前記少なくとも２つの区分のうちの少なくとも１つに、前記リストから少なくとも１つの適切な事項を選択する選択方法を関連付けるステップと
を備えている、
上記（１４）に記載の方法。
（１７）さらに、
前記少なくとも１つのキャッシュに、前記少なくとも１つのカスタマイズしたブロックと前記少なくとも１つの規則とのうちの少なくとも一方を、サーバ・プログラムに適切に接続されたインタフェースを通じて、要求によりまたは自動的に、格納するステップ
を備えた、
上記（４）に記載の方法。
（１８）さらに、
前記インタフェースを通じて、前記少なくとも１つの規則を、自動的に更新するか自動的に変更するか、少なくとも一方を行なうステップ
を備えた、
上記（１７）に記載の方法。
（１９）前記方法が、機械によって実行可能な、前記方法のステップ群を実行する命令のプログラムを目に見える形で組み込むことにより、機械読み取り可能なプログラム記憶装置によって実装されている、
上記（１）に記載の方法。
（２０）クライアント／サーバ環境においてカスタマイズした情報を提供するシステムであって、
少なくとも１つのクライアントと、
少なくとも１つのサーバと、
前記少なくとも１つのクライアントを前記少なくとも１つのサーバに接続するように適合しているネットワークと、
情報を求める少なくとも１つの要求が少なくとも１つのカスタマイズ可能なテンプレートを参照している場合、前記少なくとも１つのカスタマイズ可能なテンプレートに少なくとも１つのカスタマイズしたブロックを挿入することにより、カスタマイズした情報を生成するように適合している少なくとも１つのキャッシュと、
前記少なくとも１つのサーバを前記少なくとも１つのキャッシュに接続するように適合している第１のインタフェースと
を備えたシステム。
（２１）前記少なくとも１つのカスタマイズ可能なテンプレートが、
少なくとも１つの規則への少なくとも１つの参照と、前記少なくとも１つのカスタマイズ可能なテンプレートに前記カスタマイズしたブロックを挿入する場所を特定している少なくとも１つのオフセットと
を備え、
前記少なくとも１つの規則が、前記少なくとも１つのカスタマイズしたブロックを生成する、または取り込むように適合している、
上記（２０）に記載のシステム。
（２２）前記少なくとも１つのキャッシュが、さらに、前記少なくとも１つの規則を格納するように適合している、
上記（２１）に記載のシステム。
（２３）前記少なくとも１つのキャッシュが、さらに、前記少なくとも１つのカスタマイズしたブロックを格納するように適合している、
上記（２０）に記載のシステム。
（２４）前記少なくとも１つのキャッシュが、さらに、前記少なくとも１つのカスタマイズしたブロックを生成する実行可能な機能を格納するように適合している、
上記（２０）に記載のシステム。
（２５）前記少なくとも１つのキャッシュが、さらに、前記少なくとも１つのカスタマイズ可能なテンプレートを格納するように適合している、
上記（２０）に記載のシステム。
（２６）前記少なくとも１つのキャッシュが、さらに、その内部の場所に前記少なくとも１つのカスタマイズしたブロックを予格納するように適合しており、
前記少なくとも１つの規則が、前記少なくとも１つのカスタマイズしたブロックの前記場所を特定している、
上記（２１）に記載のシステム。
（２７）さらに、
前記少なくとも１つのキャッシュの外部の記憶装置であって、自らの内部に前記少なくとも１つのカスタマイズしたブロックを予格納するように適合している記憶装置
を備え、
前記少なくとも１つの規則が、前記記憶装置の内部の前記カスタマイズしたブロックの場所を特定している、
上記（２１）に記載のシステム。
（２８）前記少なくとも１つのキャッシュが、さらに、前記少なくとも１つの規則が特定している場所から前記少なくとも１つのカスタマイズしたブロックを取り込むように適合している、
上記（２１）に記載のシステム。
（２９）前記少なくとも１つのキャッシュが前記少なくとも１つの要求を受け取ると、前記少なくとも１つのカスタマイズしたブロックを動的に生成する、
上記（２０）に記載のシステム。
（３０）実行可能なコンピュータ・プログラムに対応する、少なくとも１つの規則が特定している機能が呼び出されたときに、前記少なくとも１つのカスタマイズしたブロックを動的に生成する、
上記（２１）に記載のシステム。
（３１）前記少なくとも１つのキャッシュが、さらに、前記少なくとも１つのクライアントの前記識別情報に基づいて、前記少なくとも１つのカスタマイズ可能なテンプレートに前記少なくとも１つのカスタマイズしたブロックを挿入するように適合している、
上記（２０）に記載のシステム。
（３２）さらに、
前記少なくとも１つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも１つのカスタマイズしたブロックを生成するのに前記少なくとも１つのキャッシュにデータを付加すべきか否かを判断する手段
を備えた、
上記（２０）に記載のシステム。
（３３）さらに、
前記少なくとも１つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも１つのカスタマイズしたブロックを生成するのに前記少なくとも１つのキャッシュからデータを削除すべきか否かを判断する手段
を備えた、
上記（２０）に記載のシステム。
（３４）前記少なくとも１つの要求が少なくとも２つの要求から成り、
前記少なくとも１つの規則が、所定の基準に基づいて、前記少なくとも２つの要求を少なくとも２つの区分に区分けする、
上記（２０）に記載のシステム。
（３５）前記所定の基準が、前記要求を発した個人の識別情報である、
上記（３４）に記載のシステム。
（３６）前記少なくとも１つの規則が、前記少なくとも１つのカスタマイズしたブロックを生成するために、データのリストを特定しており、
前記システムが、
前記リストが複数の事項から成るか否かを判断する手段と、
前記リストが複数の事項から成る場合、前記少なくとも２つの区分のうちの少なくとも１つに、前記リストから少なくとも１つの適切な事項を選択する選択方法を関連付ける手段と
を備えている、
上記（３４）に記載のシステム。
（３７）さらに、
前記少なくとも１つのキャッシュを、前記少なくとも１つのサーバ以外のサーバに格納されているサーバ・プログラムに接続させるように適合している第２のインタフェースと、
前記少なくとも１つのキャッシュに、前記少なくとも１つのカスタマイズしたブロックと前記少なくとも１つの規則とのうちの少なくとも一方を、前記第２のインタフェースを通じて、要求によりまたは自動的に、格納する手段と
を備えた、
上記（２１）に記載のシステム。
（３８）さらに、
前記インタフェースを通じて、前記少なくとも１つの規則を、自動的に更新するか自動的に変更するか、少なくとも一方を行なう手段
を備えた、
上記（３７）に記載のシステム。
（３９）コンピュータ処理システムにおいてカスタマイズした情報を提供する方法であって、
データの少なくとも１つのカスタマイズしたブロックを生成するか取り込むかするための少なくとも１つの規則を定義するステップと、
前記少なくとも１つの規則を使って、データの前記少なくとも１つのカスタマイズしたブロックを生成するか取り込むかするステップと、
少なくとも１つのカスタマイズ可能なテンプレートの少なくとも１つの特定の場所に前記少なくとも１つのカスタマイズしたブロックを挿入するステップと
を備えた方法。
（４０）前記方法が、機械によって実行可能な、前記方法のステップ群を実行する命令のプログラムを目に見える形で組み込むことにより、機械読み取り可能なプログラム記憶装置によって実装されている、
上記（３９）に記載の方法。
【図面の簡単な説明】
【図１】  本発明の一実施形態による、本発明を適用できるクライアント・／サーバ・システムを示す図である。
【図２】  本発明の一実施形態による、ＨＴＭＬページ内でカスタマイズ可能なブロックを特定する方法を示す図である。
【図３】  本発明の一実施形態による、静的規則情報ブロック（ＲＩＢ）と動的ＲＩＢを示す図である。
【図４】  本発明の一実施形態による、データを生成しキャッシュする方法のフローチャートを示す図である。
【図５】  本発明の別の実施形態による、データを生成しキャッシュする方法のフローチャートを示す図である。
【図６】  本発明の一実施形態による、キャッシュがカスタマイズした情報を生成する方法のフローチャートを示す図である。
【図７】  本発明の一実施形態による、クライアント／サーバ・システムにおいてカスタマイズした情報を提供する方法のフローチャートを示す図である。
【符号の説明】
１００…クライアント／サーバ・システム、１０２…クライアント、１０４…サーバ、１０６…キャッシュ。
【図１】
0003791900.tif 000002
【図２】
0003791900.tif 000003
【図３】
0003791900.tif 000004
【図４】
0003791900.tif 000005
【図５】
0003791900.tif 000006
【図６】
0003791900.tif 000007
【図７】
0003791900.tif 000008