JP3791900B2 - コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム - Google Patents
コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム Download PDFInfo
- Publication number
- JP3791900B2 JP3791900B2 JP2001198477A JP2001198477A JP3791900B2 JP 3791900 B2 JP3791900 B2 JP 3791900B2 JP 2001198477 A JP2001198477 A JP 2001198477A JP 2001198477 A JP2001198477 A JP 2001198477A JP 3791900 B2 JP3791900 B2 JP 3791900B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- block
- customized information
- rule
- cache
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、一般にコンピュータ処理システムにおけるキャッシュに関し、特にネットワーク・サーバ・システムにおいてカスタマイズした情報をキャッシングする方法とシステムに関する。
【0002】
【従来の技術】
コンピュータ・システムの性能を向上させるために、キャッシングが広く使われている。あるオブジェクトをキャッシングすれば、当該オブジェクトをフェッチ(あるいは生成)するコストは、一度負担するだけで済む。(フェッチとは、取り込むことである。オブジェクトが既に存在している場合にはそれをフェッチし、存在していない場合には新たに生成する)。キャッシュしてあるオブジェクトに対する要求が発生した場合、その要求は、キャッシュによって満たすことができる。このプロセスは、オブジェクトを再計算する、あるいは、リモート・ロケーション(遠隔地)からオブジェクトをフェッチするのに比べて、はるかにオーバーヘッドが少なくて済む。
【0003】
最新のウェブ・サイトに対する主な必要条件の1つは、カスタマイズされており、アクセスするたびに異なって見えるページを提供することである。(カスタマイズとは、ユーザの使い勝手を向上させるために標準仕様を部分的に変更することである)。次に示す2つの例を考える。第1の例は、商業目的のウェブ・サイトである。商業目的のウェブ・サイトでは、そのウェブ・ページ上に広告を掲載している場合が多い。しかも、この広告は、ページがアクセスされるごとに変更する必要が生じることがある。第2の例は、ウェブ・サイトが、カスタマイズした情報を提供する必要が生じうる場合である。例えば、ウェブ・ページは、当該ウェブ・ページを要求しているクライアントに特有のカスタマイズした情報を提供することができる。個別の情報は、クライアントのIP(Internet Protocol)アドレスに依拠することができるし(例えば、すべてのクライアントを対象にしたIBMサイト〔ibm.com〕の特定のウェブ・ページは、クライアントの国に依拠した様々なバージョン〔版〕で参照することができる)、あるいは、クッキー(WWWサーバとウェブ・ブラウザとの間でやり取りされる識別情報)などクライアントが提供する状態情報に依拠することもできる。
【0004】
ウェブ・サイトが精緻(せいち)になるのにつれて、カスタマイズしたウェブ・ページがますます重要になりつつある。したがって、カスタマイズした情報をキャッシングする方法を備えることが望ましく、かつ極めて有利である。
【0005】
【課題を解決するための手段】
上述した課題は、従来技術の他の課題とともに、本発明によって解決することができる。
【0006】
本発明の第1の側面は、コンピュータ処理システムにおいてカスタマイズした情報を提供する方法を提供するものである。この方法は、以下のステップを含んでいる。まず、データの少なくとも1つのカスタマイズしたブロックを生成するか取り込むかする少なくとも1つの規則を定義する。次いで、少なくとも1つのカスタマイズ可能なテンプレートを生成する。この少なくとも1つのカスタマイズ可能なテンプレートは、前記少なくとも1つ規則への少なくとも1つの参照と、前記少なくとも1つのカスタマイズ可能なテンプレートに前記少なくとも1つのカスタマイズしたブロックを挿入する少なくとも1つの場所を特定している少なくとも1つのオフセットとを含んでいる。次いで、前記少なくとも1つのカスタマイズ可能なテンプレートの前記少なくとも1つのオフセットが特定している前記少なくとも1つの場所に前記少なくとも1つのカスタマイズしたブロックを挿入する。
【0007】
本発明の第2の側面によると、前記方法は、さらに、前記少なくとも1つのカスタマイズ可能なテンプレートを調べて、前記少なくとも1つのオフセットと前記少なくとも1つ参照とのうちの少なくとも1つを特定するステップを含む。
【0008】
本発明の第3の側面によると、前記コンピュータ処理システムは、少なくとも1つのクライアントと、少なくとも1つのサーバと、少なくとも1つのキャッシュとを備えている。
【0009】
本発明の第4の側面によると、前記方法は、さらに、前記少なくとも1つのキャッシュが前記少なくとも1つのクライアントから情報を求める少なくとも1つの要求を受け取るステップと、前記少なくとも1つの要求が前記少なくとも1つのカスタマイズ可能なテンプレートを参照しているか否かを判断するステップとを含む。
【0010】
本発明の第5の側面によると、前記方法は、さらに、前記受け取るステップの前に、前記少なくとも1つのキャッシュの内部の場所に前記少なくとも1つのカスタマイズしたブロックを予格納するステップを含む。そして、前記定義するステップが、前記少なくとも1つ規則の内部で前記少なくとも1つのカスタマイズしたブロックの前記場所を特定するステップを含む。
【0011】
本発明の第6の側面によると、前記方法は、さらに、前記受け取るステップの前に、前記少なくとも1つのキャッシュの外部の場所に前記少なくとも1つのカスタマイズしたブロックを予格納するステップを含む。そして、前記定義するステップが、前記少なくとも1つ規則の内部で前記少なくとも1つのカスタマイズしたブロックの前記場所を特定するステップを含む。
【0012】
本発明の第7の側面によると、前記外部の場所は、前記少なくとも1つのサーバと、前記少なくとも1つのサーバ以外のサーバとのうちの一方の記憶装置の内部にある。
【0013】
本発明の第8の側面によると、前記方法は、さらに、前記少なくとも1つの規則が特定している場所から前記少なくとも1つのカスタマイズしたブロックを取り込むステップを含む。
【0014】
本発明の第9の側面によると、前記方法は、さらに、前記少なくとも1つの要求が前記少なくとも1つのカスタマイズ可能なテンプレートを参照している場合、前記少なくとも1つのカスタマイズしたブロックを動的に生成するステップを含む。
【0015】
本発明の第10の側面によると、前記方法は、さらに、実行可能なコンピュータ・プログラムに対応する機能を呼び出すことにより、前記少なくとも1つのカスタマイズしたブロックを動的に生成するステップを含む。そして、前記定義するステップが、前記少なくとも1つの規則の内部で前記機能を特定するステップを含む。
【0016】
本発明の第11の側面によると、前記少なくとも1つのカスタマイズしたブロックは、前記少なくとも1つのクライアントの前記識別情報に基づいて、生成するか取り込むかしたものである。
【0017】
本発明の第12の側面によると、前記方法は、さらに、前記少なくとも1つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも1つのカスタマイズしたブロックを生成するために、前記少なくとも1つのキャッシュにデータを付加するか否かを判断するステップを含む。
【0018】
本発明の第13の側面によると、前記方法は、さらに、前記少なくとも1つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも1つのカスタマイズしたブロックを生成するために、前記少なくとも1つのキャッシュからデータを削除するか否かを判断するステップを含む。
【0019】
本発明の第14の側面によると、前記少なくとも1つの要求が少なくとも2つの要求を含み、前記方法が、さらに、所定の基準に基づいて、前記少なくとも2つの要求を少なくとも2つの区分に区分けするステップを含む。
【0020】
本発明の第15の側面によると、前記所定の基準は、前記要求を発した個人の識別情報である。
【0021】
本発明の第16の側面によると、前記少なくとも1つの規則は、前記少なくとも1つのカスタマイズしたブロックを生成するためのデータのリストを特定しており、前記方法は、前記リストが複数の事項から成るか否かを判断するステップを含む。前記リストが複数の事項から成る場合、前記少なくとも2つの区分のうちの少なくとも1つに、前記リストから少なくとも1つの適切な事項を選択する選択方法を関連付ける。
【0022】
本発明の第17の側面によると、前記方法は、さらに、前記少なくとも1つのキャッシュに、前記少なくとも1つのカスタマイズしたブロックと前記少なくとも1つの規則とのうちの少なくとも一方を、サーバ・プログラムに適切に接続されたインタフェースを通じて、要求によりまたは自動的に、格納するステップを含む。
【0023】
本発明の第18の側面によると、前記方法は、さらに、前記インタフェースを通じて、前記少なくとも1つの規則を、自動的に更新するか自動的に変更するか、少なくとも一方を行なうステップを含む。
【0024】
本発明の第19の側面は、クライアント/サーバ環境においてカスタマイズした情報を提供するシステムを提供するものである。前記システムは、少なくとも1つのクライアントと、少なくとも1つのサーバとを備えている。前記少なくとも1つのクライアントを前記少なくとも1つのサーバに接続するように、ネットワークが適合されている。情報を求める少なくとも1つの要求が少なくとも1つのカスタマイズ可能なテンプレートを参照している場合、少なくとも1つのカスタマイズ可能なテンプレートに少なくとも1つのカスタマイズしたブロックを挿入することにより、カスタマイズした情報を生成するように、少なくとも1つのキャッシュが適合されている。前記少なくとも1つのサーバを前記少なくとも1つのキャッシュに接続させるように、インタフェースが適合されている。
【0025】
本発明のここで示した側面と他の側面、および、本発明の特徴と利点は、以下に説明する本発明の好適な実施形態の詳細な説明から明らかになる。
【0026】
【発明の実施の形態】
本発明は、クライアント・サーバ・システムにおいて、カスタマイズした情報をキャッシングする方法を指向している。理解すべきは、本発明は、様々な形のハードウェア、ソフトウェア、ファームウェア、専用コンピュータ、あるいは、これらを組み合わせたものとして実現することができる、という点である。一実施形態では、本発明は、プログラム記憶装置に目に見える形で(tangibly)組み込まれたアプリケーション・プログラムとして、ソフトウェアで実現することができる。上記アプリケーション・プログラムは、任意のアーキテクチャを備えたマシンにアップロードして実行することのできるものである。上記マシンは、少なくとも1つのCPU(central processing unit:中央処理装置)、RAM(random access memory)、および入出力(I/O)インタフェースなどのハードウェアを備えたコンピュータ・プラットフォーム上に実装(implement)されているのが望ましい。上記コンピュータ・プラットフォームは、オペレーティング・システムとマイクロ命令コードをも備えている。ここで説明する様々なプロセスと機能は、オペレーティング・システムを経由して実行される、マイクロ命令コードの一部、または、アプリケーション・プログラムの一部、(あるいはこれらを組み合わせたもの)として実現することができる。さらに,上記コンピュータ・プラットフォームには、補助データ記憶装置やプリント装置など様々な他の周辺装置を接続することができる。
【0027】
さらに理解すべきは、添付図面に図示されている構成要素であるシステム・コンポーネントと方法ステップの中にはソフトウェアで実装しうるものがあるので、システム・コンポーネント相互間(あるいは方法ステップ相互間)の実際の接続は、本発明をプログラムする仕方に応じて変化しうる、という点である。ここで示した本発明の教示を考慮すると、当業者は、本発明の実装すなわち構成として、ここに示したものの他にも同様の実装すなわち構成を想到しうる。
【0028】
ここで、読者に本発明の概念を紹介するために、本発明を一般的に説明する。次いで、図1〜図7に関し、本発明の様々な側面を詳細に説明する。
【0029】
本発明の一実施形態によると、情報のカスタマイズはキャッシュを備えることによって行なう。上記キャッシュは、カスタマイズ可能なウェブ・ページが上記キャッシュの外部で使われる前に、当該カスタマイズ可能なウェブ・ページに、カスタマイズしたブロック(customized block: CB)と呼ばれている少なくとも1つのデータのブロックを挿入するものである。CBを生成する規則は、キャッシュに格納されている規則情報ブロック(rule information block: RIB)に含まれている。
【0030】
カスタマイズ可能なページは、通常、キャッシュにカスタマイズした情報を含まない形で格納されている。そのかわり、カスタマイズ可能なページは、当該カスタマイズ可能なページに挿入すべき次に示すものを各CBごとに備えたヘッダー情報を含んでいる。
(1)カスタマイズ可能なページにCBを挿入するときに依拠するオフセット。
(2)CBを生成する規則に対応するRIBへのポインタ。
このようなカスタマイズ可能なページを、ここでは、カスタマイズ可能なテンプレート(customizable template:CT)と呼ぶ。
【0031】
本発明の一実施形態によると、2つの型の規則、すなわち静的規則と動的規則が存在する。しかしながら、本発明は、ここで開示される特定の型の規則に依存しないので、本発明の本旨と範囲の内で、別の型の規則を使用することができる、という点を認識すべきである。
【0032】
静的規則の場合、カスタマイズした情報は、キャッシュに(性能上の理由からはこれが望ましい)、あるいはキャッシュがアクセスできるファイルに格納されている。あるいは、カスタマイズした情報は、キャッシュからアクセス可能なサーバから取得してもよい。留意すべきは、キャッシュの中にはファイル・システムあるいはサーバに対してアクセスできないものがある、という点である。
【0033】
動的規則の場合、カスタマイズした情報は、プログラムを実行することにより動的に生成する。留意すべきは、キャッシュの中には動的規則を取り扱うことができないものがある、という点である。
【0034】
本発明の一実施形態によると、静的規則用のRIBを使えば、要求を所定の基準に従って区分けすることができる。好適な実施形態では、所定の基準には、クライアントのIPアドレスを使う。例えば、アメリカ合衆国発の要求はすべて1つの区分に分類することができ、カナダ国発の要求はすべて別の区分に分類することができる、等々である。また、クライアントのIPアドレスを調べることはせず、すべての要求を同じ区分に分類する場合もある。各区分ごとに、RIBには、通常、キャッシュしたオブジェクト、および/または、カスタマイズした情報を供給するのに使うことのできるファイルのリストが格納されている。(「Aおよび/またはB」は「AおよびB、A、またはB」を表わす)。リストに複数の要素が含まれている場合、当該リストに対応する区分に、キャッシュしたオブジェクト(あるいはファイル)の中から適切なものを選択する方法が関連付けられている。この選択方法には、ラウンド・ロビン(総当たり)選択とランダム選択とがある(しかし、これらに限定されない)。認識すべきは、上述した要求を区分けする所定の基準、ならびに、キャッシュしたオブジェクト(あるいはファイル)を選択する方法は、説明を目的とした例示にすぎないので、別の基準と選択方法を使うこともできる、という点である。ここで提示した本発明の教示を考慮すると、当業者は、本発明の本旨と範囲の内で、所定の基準とキャッシュしたオブジェクト(あるいはファイル)の中から適切なものを選択する方法として、ここに示したものの他にも別の型の所定の基準と別の選択方法を想到しうる。
【0035】
動的規則用のRIBには、カスタマイズした情報を生成するために呼び出す機能へのポインタを含めることができる。
【0036】
カスタマイズしたページpに対する要求をキャッシュが受け取ると、キャッシュは、ページpのヘッダーを調べて挿入する必要のあるCBを決める。キャッシュは、上記ヘッダーに含まれている適切なオフセット位置にCBを挿入することによりページpのカスタマイズしたコピーを作り、当該カスタマイズしたコピーをクライアントに返送する。各CBを計算するために、キャッシュは、適切なRIBを調べる。規則が静的である場合、キャッシュは、クライアントのIPアドレスに対応する適切な区分を選択すればよい。次いで、キャッシュは、当該区分に対応するキャッシュしたオブジェクト(あるいはファイル)を選択して、カスタマイズした情報の用に供する。
【0037】
規則が動的である場合、キャッシュは、RIBを調べて呼び出すべき機能を決める。次いで、キャッシュは、当該機能を呼び出す。そうする際に、キャッシュは、当該機能に新たな情報を渡してもよい(例えば、クライアントのIPアドレス、要求したURL〔Uniform Resource Locator〕、クッキー情報、など)。次いで、当該機能は、カスタマイズした情報を返す。
【0038】
キャッシュには、カスタマイズ可能なデータを格納することができる。これは、要求により(on demand)、あるいは、カスタマイズ可能なページとRIBをキャッシュに入れるのにサーバ・プログラムが使うことのできるインタフェース/APIを経由して行なう。(API〔application program interface 〕とは、アプリケーション・プログラムがオペレーティング・システム〔OS〕の基本機能を使うためのコマンドの集まりのことである)。このAPIによって、RIBは、動的に変化することができる。
【0039】
図1は、本発明の一実施形態による、本発明を適用することのできるクライアント/サーバ・システム100を示す図である。クライアント/サーバ・システム100は、少なくとも1つのクライアント102(以下「クライアント102」)、少なくとも1つのサーバ104(以下「サーバ104」)、および、少なくとも1つのキャッシュ106(以下「キャッシュ106」)を備えている。
【0040】
クライアント102は、サーバ104から情報を取得する。クライアント102にアクセスする際に、サーバ104には、遅延および/または他のオーバーヘッド(例えばネットワーク・オーバーヘッド)がかかる。このようなアクセスにためのオーバーヘッドを低減するために、サーバ104が出す情報をキャッシュ106に格納しておく。そうすれば、クライアント102は、サーバ104からキャッシュした情報を極めて小さなオーバーヘッドで取得することができる。本発明の主な特徴の1つは、クライアント102に送られる情報をカスタマイズするキャッシュ106の機能である。
【0041】
既存のキャッシュは、クライアントに返すべきオブジェクトを実際に格納している。本発明では、キャッシュ106は、内容が部分的にしか特定されていないオブジェクトである、カスタマイズ可能なテンプレート(customizable template:CT)を格納している。図2は、本発明の一実施形態による、カスタマイズしたブロックをHTML(HyperText Markup Language:ハイパーテキスト・マーク付け言語) ページ内で特定する方法を示す図である。図2は、特に、HTMLページ内(例えば上端の近く)に挿入することのできる注釈行を示している。キャッシュは、この注釈行を解釈して、クライアントにオブジェクトを返す前に当該オブジェクトをカスタマイズする方法を決める。(offset x, rule id x)という文字列のうち「offset x」は、HTMLページ内のオフセットを表わしている。この場合、x番目のカスタマイズしたブロックを挿入すべきであることを表わしている。「rule id x 」は、x番目のカスタマイズしたブロックを生成する方法を示すRIBへのポインタである。認識すべきは、図2に示した方法は多くの例の中のほんの一例であり、ここに示した本発明の教示を考慮すると、当業者は、本発明の本旨と範囲の内で、カスタマイズしたブロックを特定する方法として、ここに示したものの他にも様々な方法を想到しうる、という点である。例えば、別のマーク付け言語、あるいは非マーク付け言語で記述した文書/ページ中へ挿入することに基づいた、カスタマイズしたブロックを特定する別の方法が考えられる。
【0042】
図3は、本発明の一実施形態による、静的規則情報ブロック(RIB)302と動的RIB350を示す図である。静的RIB302は、例えばクライアントの発信元で決まる様々な動作を特定する規則である。例えば、クライアントのIPアドレスが「.edu」なるエンティティ(実体)に変換される場合、カスタマイズしたブロック(CB)は、「file1.txt」「file2.txt」「file3.txt」のうちのいずれかになる。(エンティティ〔実体〕とは、対象とするシステムを構成している物的、人的、あるいは抽象的な構成要素のことである)。これらのうち正確なカスタマイズしたブロック(CB)は、ラウンド・ロビン選択とランダム選択を含む(しかし、これらに限定されない)任意の数の選択機構によって決めることができる。クライアントのIPアドレスが「.com」なるエンティティに変換される場合、カスタマイズしたブロック(CB)は、「file4.txt」「file5.txt」「file6.txt」のうちのいずれかになる。クライアントのIPアドレスがその他の型のエンティティ(例えば「.org」)に変換される場合、カスタマイズしたブロック(CB)は、「file7.txt」になる。
【0043】
動的RIB350には、カスタマイズしたブロック(CB)を生成するのに呼び出すべき機能への参照が含まれている。
【0044】
図4は、本発明の一実施形態による、データを生成しキャッシュする方法のフローチャートを示す図である。このようなデータは、通常、サーバ104が生成し、キャッシュ106が格納する。
【0045】
まず、カスタマイズ可能なテンプレート(CT)を生成する(ステップ402)。これは、例えばウェブ・プログラマーが行なってもよい。また、カスタマイズ可能なHTMLテンプレートを生成するために、図2に示した注釈行と同様の注釈行をHTMLページの先頭に付加してもよい。
【0046】
次いで、カスタマイズしたブロック(CB)をカスタマイズ可能なテンプレート(CT)に挿入する規則を生成する(ステップ404)。これらの規則は、図3に示した規則と同様のものである。無論、別の型の規則を使うこともできるし、あるいは、それらを組み合わせた規則を使うこともできる。任意実行事項として、ステップ404で、少なくとも1つの静的規則に対応する少なくとも1つのCBをフェッチしてもよい。ステップ406で、動的規則用のCBを生成するプログラムと機能を生成する。
【0047】
少なくとも1つのCT、RIB、CB、プログラム/機能、および/または、他の情報/データをキャッシュ106に付加する(ステップ408)。認識すべきは、このような情報は、カスタマイズした情報に対するキャッシュ・ミスが発生した後で、キャッシュ106に付加してもよい、という点である。さらに、このような情報は、キャッシュ106と交信しているサーバ104がキャッシュ106にプリフェッチ(先取り)してもよい。キャッシュのスペース(記憶装置上の領域)には限りがあるので、あまりにもスペースを取り過ぎるカスタマイズした情報をキャッシュするのは望ましくない。したがって、キャッシュ106は、あまりにもスペースを取り過ぎるカスタマイズした情報を格納しないように決めてもよい。また、キャッシュ106が満杯になったときには、大きなスペースを占めているカスタマイズした情報を追い出して新たなデータ用に空きを作るようにしてもよい。
【0048】
さらに、カスタマイズしたデータを生成するのにキャッシュ106が大量のCPUサイクルを消費するのは好ましくない。しかし、動的規則の中には、大量のCPUサイクルを消費する機能を呼び出すものがある。任意実行事項として、動的規則が呼び出す機能に、当該機能を呼び出すのに要するオーバーヘッドの概算値を関連付けることができる。この場合、カスタマイズした情報を生成するのに要するオーバーヘッドの概算値が大きすぎるときには、キャッシュ106は、当該カスタマイズした情報を格納しないように決めてもよい。また、キャッシュ106が満杯になったら、キャッシュ106は、生成するのに要する合計オーバーヘッドが大きすぎるカスタマイズした情報を追い出すようにしてもよい。
【0049】
本発明の好ましい実施形態では、ステップ402〜ステップ408をインタリーブ(交互配置)し並行して実行する。無論、逐次処理と並列処理の変形を含む他の処理手順を採用することも可能である。
【0050】
図5は、本発明の別の実施形態による、データを生成してキャッシュする方法のフローチャートを示す図である。このようなデータは、通常、サーバ104が生成し、キャッシュ106が格納する。
【0051】
まず、カスタマイズ可能なテンプレート(CT)を生成する(ステップ452)。次いで、カスタマイズしたブロック(CB)をカスタマイズ可能なテンプレート(CT)に挿入する規則を生成する(ステップ454)。任意実行事項として、ステップ454で、少なくとも1つの静的規則に対応する少なくとも1つのCBをフェッチしてもよい。ステップ456で、動的規則用のCBを生成するプログラムと機能を生成する。
【0052】
次いで、CBを生成するためにキャッシュ106にデータを付加するか否かを判断する(ステップ458)。ステップ458の判断結果がYesならば、データ(例えば少なくとも1つのCT、RIB、CB、プログラム/機能、および/または、他の情報/データ)をキャッシュ106に付加した(ステップ460)のち、プロセスを終了する。しかし、ステップ458の判断結果がNoならば、CBおよび/または他の情報/データを生成するのにキャッシュ106からデータを削除するか否かを判断する(ステップ462)。ステップ462の判断結果がYesならば、データ(例えば少なくとも1つのCT、RIB、CB、プログラム/機能、および/または、他の情報/データ)をキャッシュ106から削除した(ステップ464)のち、プロセスを終了する。ステップ462の判断結果がNoならば、プロセスは直ちに終了する。認識すべきは、ステップ458とステップ462の判断は、例えば少なくとも1つのカスタマイズしたブロック(CB)を生成するのに要するオーバーヘッドの概算値に基づいて行なってもよい、という点である。
【0053】
本発明の好ましい実施形態では、ステップ452〜ステップ464をインタリーブし並行して実行する。無論、逐次処理と並列処理の変形を含む他の処理手順を採用することも可能である。
【0054】
図6は、本発明の一実施形態による、キャッシュがカスタマイズした情報を生成する方法のフローチャートを示す図である。まず、キャッシュしたデータに対する要求をキャッシュ106が受け取る(ステップ502)。上記要求がキャッシュ106の観点から満足しうるものであるか否かを判断するためには、既存の方法(例えばキャッシュ・ディレクトリの検索)を使うことができる。
【0055】
次いで、上記要求がカスタマイズした情報を求めているか否かを判断する(ステップ504)。上記要求がHTMLページを求めている場合、キャッシュ106は、例えば図2に示した注釈行と同様の注釈行がないかどうか要求されたHTMLページを調べることにより、当該HTMLページをカスタマイズする必要があるか否かを判断することができる。注釈行が検出された場合、上記要求はカスタマイズした情報を求めている、と考えることができる。注釈行が検出されない場合、上記要求はカスタマイズした情報を求めていない、と考えることができる。
【0056】
上記要求がカスタマイズした情報を求めていない場合、(カスタマイズしていない)情報をクライアント102に返した(ステップ506)のち、プロセスは終了する。認識すべきは、ステップ506は既存の手法を使って実行できる、という点である。
【0057】
これに対して、上記要求がカスタマイズした情報を求めている場合、キャッシュ106は、カスタマイズしたブロック(CB)を適切なカスタマイズ可能なテンプレート(CT)に挿入する規則を処理する(ステップ508、510、512、514、516)。
【0058】
ステップ508で、次の未処理の規則が静的規則であるか否かを判断する。
この規則は、図2の注釈行と同様の注釈行を調べて、当該規則用の規則情報ブロック(RIB)とCBを挿入するオフセット「0」とを決めることにより得ることができる。RIBは、規則が静的であるか動的であるかを示している。
【0059】
規則が静的である場合、静的RIBからCBを生成した(ステップ510)のち、プロセスはステップ514に進む。例えば、静的RIBとして、図3に示した形のものを想定する。すると、クライアント102が「.edu」なるエンティティに対応する場合、キャッシュ106は、CB用に「file1.txt」「file2.txt」「file3.txt」のうちのいずれかを使うことになる。クライアント102が「.com」なるエンティティに対応する場合には、キャッシュ106は、CB用に「file4.txt」または「file5.txt」を使うことになる。クライアント102が別の型のエンティティに対応する場合には、キャッシュ106は、CB用に「file7.txt」を使うことになる。このように、文字列「filex.txt」によって、キャッシュしたデータを特定することができる。あるいは、文字列「filex.txt」によって、キャッシュ106にアクセス可能なファイルを特定することができる。別の可能性として、文字列「filex.txt」によって、リモート(遠隔)側でフェッチする必要のあるデータを特定しているURLを特定することができる。クライアント102が出すクッキーおよび/または他の情報をURLと一緒に渡すことにより、リモートのデータをフェッチすることができるようになる。
【0060】
上とは反対に、規則が静的でない(すなわち規則が動的である)場合、RIBによって特定される機能を呼び出すことによりCBを生成した(ステップ512)のち、プロセスはステップ514に進む。上記機能は、CBを生成するコンピュータ・プログラムに対応している。上記機能は、キャッシュしたデータに対する上記要求に含まれている、クライアント102のアドレス、クライアント102が渡すクッキーおよび/または他の情報、要求されたURL、他の情報(例えば照会文字列あるいは照会副文字列)を含む(しかし、これらに限定されない)少なくとも1つの引数によって引き渡すことができる。これらの引数によって、上記機能はCBをより巧妙に生成することができるようになる。例えば、上記要求を作成した人物の名前をCBに含ませるべきである場合を想定する。名前の情報はクッキーに含ませることができるので、この想定は容易に実現できることが分かる。
【0061】
ステップ514では、CTのオフセット「0」で特定される場所にCBを挿入する。次いで、すべてのCBを挿入したか否か(すなわちカスタマイズは完了したか否か)を判断する(ステップ516)。Yesならば、要求された(カスタマイズした)情報をクライアント102に返した(ステップ518)のち、プロセスは終了する。Noならば、プロセスはステップ508に戻る。
【0062】
当業者が容易に想到しうる本発明の変形例として、テンプレートが、当該テンプレート自体ではなく別のエンティティにCBを挿入するための場所を特定するものが挙げられる。この場合、同じエンティティ用の様々なCBが、様々なテンプレートで特定される可能性がある。また、オフセットは、CBを生成する規則を参照しているテンプレートとは別のテンプレートに格納される可能性がある。
【0063】
当業者が容易に想到しうる別の変形例として、CBを挿入すべきCTとは別のエンティティにCB用の少なくとも1つのオフセットおよび/または規則を特定するものが挙げられる。実際、CTは、オフセットおよび/または規則参照を含んでいる必要はない。例えば、すべてのオフセットおよび/または規則参照が別のエンティティに含まれていてもかまわない。
【0064】
図7は、本発明の一実施形態による、クライアント/サーバ・システムにおいてカスタマイズした情報を提供する方法のフローチャートを示す図である。説明を簡単にするために、機能、規則、オフセット、カスタマイズ可能なテンプレート(CT)、カスタマイズしたブロック(CB)などがおのおの1つだけある場合について説明する。しかしながら、これらの事項のおのおのを複数個用いてもよい、という点を認識すべきである。例えば、1つの文書(ドキュメント)の2個所に、カスタマイズしたデータの同じブロックを挿入できるように、2つのオフセットを用いることができる。あるいは、同じ文書の2つの異なった場所にカスタマイズしたデータの2つの異なったブロックを挿入できるように、2つのオフセットを用いることができる。ここに示した本発明の教示を考慮すると、当業者は、本発明の構成要素群の、ここに示した構成、変更、実装の他にも、本発明の構成要素群から様々な構成、変更、実装を想到しうる。
【0065】
まず、データのカスタマイズしたブロック(CB)を動的規則から生成すべきであるか否かを判断する(ステップ610)。カスタマイズしたブロック(CB)を動的規則から生成すべきである場合、当該カスタマイズしたブロック(CB)を生成する実行可能なコンピュータ・プログラムに対応する機能を生成する(ステップ612)。カスタマイズしたブロック(CB)を動的規則から生成すべきでない(すなわち静的規則から生成すべきである)場合、カスタマイズしたブロック(CB)を生成してキャッシュ106内の場所、あるいは、キャッシュ106外の場所(例えばサーバ104または別のサーバの記憶装置〔図示せず〕)に予格納する(ステップ614)。
【0066】
次いで、カスタマイズしたブロック(CB)を生成し、および/または、取り込む規則を生成する(ステップ616)。ステップ616には、規則が動的であるか静的であるかに応じて、それぞれ、カスタマイズしたブロック(CB)を生成する機能を特定するステップ、あるいは、カスタマイズしたブロック(CB)の場所(例えばキャッシュ106の内部あるいは外部)を特定するステップが含まれている。
【0067】
カスタマイズ可能なテンプレート(CT)を生成する(ステップ618)。当該カスタマイズ可能なテンプレート(CT)には、規則への参照と、当該カスタマイズ可能なテンプレート(CT)にカスタマイズしたブロック(CB)を挿入すべき場所を特定するオフセットとが含まれている。
【0068】
クライアント102から情報を求める要求を受け取ると(ステップ620)、その要求がカスタマイズ可能なテンプレート(CT)を参照しているか否かを判断する(ステップ622)。上記要求がカスタマイズ可能なテンプレート(CT)を参照していない場合、要求された(カスタマイズしていない)情報をクライアント102に返した(ステップ624)のち、プロセスは終了する。しかし、上記要求がカスタマイズ可能なテンプレート(CT)を参照している場合には、当該カスタマイズ可能なテンプレート(CT)を調べて、オフセットと参照を特定する(ステップ626)。
【0069】
上記参照が参照している規則が静的であるか否かを判断する(ステップ628)。上記規則が静的でない(すなわち動的である)場合、プロセスはステップ642に進む。しかし、上記規則が静的である場合には、要求を発したもの(者)の識別情報が、予め特定しておいたグループ内のものであるか否かを判断する(ステップ630)。ステップ630の判断は、要求を発したもののIPアドレスに基づいて行なうことができる。
【0070】
要求を発したものの識別情報が予め特定しておいたグループ内のものでない場合、プロセスはステップ640に進む。しかし、要求を発したものの識別情報が予め特定しておいたグループ内のものである場合には、上記要求を特定の区分に分類して入れる(ステップ632)。上記規則がカスタマイズしたブロック(CB)を生成するデータのリストを特定しているか否かを判断する(ステップ634)。上記規則がデータのリストを特定していない場合、プロセスはステップ640に進む。しかし、上記規則がデータのリストを特定している場合には、当該リストが複数の事項から成るか否かを判断する(ステップ636)。Yesならば、上記リストから適切な事項を選択する選択方法を上記区分に関連付ける(ステップ638)。Noならば、プロセスはステップ640に進む。
【0071】
次いで、上記規則が特定している場所からカスタマイズしたブロック(CB)を取り込んだ(ステップ640)のち、プロセスはステップ644に進む。
【0072】
ステップ642では、ステップ612で生成した機能を呼び出すことにより、カスタマイズしたブロック(CB)を動的に生成する。
【0073】
ステップ640またはステップ642で取得したカスタマイズしたブロック(CB)は、ステップ644で、上記カスタマイズ可能なテンプレート(CT)の上記オフセットが特定している場所に挿入する。ステップ644における上記カスタマイズしたブロック(CB)の挿入は、クライアント102の識別情報に基づいて行なうことができる。次いで、要求された(カスタマイズした)情報をクライアント102に返した(ステップ646)のち、プロセスは終了する。
【0074】
以上、本発明の好適な実施形態として、HTML(ハイパーテキスト・マーク付け言語)で書かれた文書(ドキュメント)中で、カスタマイズしたデータを扱う場合を説明したけれども、本発明は、他のマーク付け言語や非マーク付け言語で書かれた文書を含む様々な文書中でデータをカスタマイズするのに使うことができる。さらに、ここではインターネットあるいはウェブをベースにしたクライアント/サーバ環境に関して本発明の好適な実施形態を説明したけれども、本発明は様々なクライアント/サーバ環境に適用できる、という点を認識すべきである。ここに示した本発明の教示を考慮すると、当業者は、本発明を適用できる文書と環境として、ここに示した型のものの他に様々な型のものを想到しうる。
【0075】
ここでは添付図面を参照して本発明の実施形態を説明したけれども、本発明はこれら精緻な実施形態に限定されず、また、当業者は本発明の本旨と範囲の内で様々な変形や変更をなしうる、という点を理解すべきである。そのような変形や変更は、すべて、特許請求の範囲によって定義される本発明の本旨と範囲の内に含まれるべきものである。
【0076】
まとめとして以下の事項を開示する。
(1)コンピュータ処理システムにおいてカスタマイズした情報を提供する方法であって、
データの少なくとも1つのカスタマイズしたブロックを生成するか取り込むかするための少なくとも1つの規則を定義するステップと、
少なくとも1つのカスタマイズ可能なテンプレートを生成するステップであって、前記カスタマイズ可能なテンプレートが、前記少なくとも1つの規則への少なくとも1つの参照と、前記少なくとも1つのカスタマイズ可能なテンプレートに前記少なくとも1つのカスタマイズしたブロックを挿入する少なくとも1つの場所を特定する少なくとも1つのオフセットとを備えている、ステップと、
前記少なくとも1つのカスタマイズ可能なテンプレートの、前記少なくとも1つのオフセットが特定している前記少なくとも1つの場所に、前記少なくとも1つのカスタマイズしたブロックを挿入するステップと
を備えた方法。
(2)さらに、
前記少なくとも1つのカスタマイズ可能なテンプレートを調べて、前記少なくとも1つのオフセットと前記少なくとも1つの参照とのうちの少なくとも1つを特定するステップ
を備えている、
上記(1)に記載の方法。
(3)前記コンピュータ処理システムが、
少なくとも1つのクライアントと、少なくとも1つのサーバと、少なくとも1つのキャッシュと
を備えている、
上記(1)に記載の方法。
(4)さらに、
前記少なくとも1つのクライアントが出す情報を求める少なくとも1つの要求を前記少なくとも1つのキャッシュが受け取るステップと、
前記少なくとも1つの要求が前記少なくとも1つのカスタマイズ可能なテンプレートを参照しているか否かを判断するステップと
を備えている、
上記(3)に記載の方法。
(5)さらに、
前記受け取るステップの前に、前記少なくとも1つのキャッシュの内部の場所に前記少なくとも1つのカスタマイズしたブロックを予格納するステップ
を備え、
前記定義するステップが、
前記少なくとも1つの規則の内部で前記少なくとも1つのカスタマイズしたブロックの前記場所を特定するステップ
を備えている、
上記(4)に記載の方法。
(6)さらに、
前記受け取るステップの前に、前記少なくとも1つのキャッシュの外部の場所に前記少なくとも1つのカスタマイズしたブロックを予格納するステップ
を備え、
前記定義するステップが、
前記少なくとも1つの規則の内部で前記少なくとも1つのカスタマイズしたブロックの前記場所を特定するステップ
を備えている、
上記(4)に記載の方法。
(7)前記外部の場所が、前記少なくとも1つのサーバと前記少なくとも1つのサーバ以外のサーバとのうちの一方が有する記憶装置の内部にある、
上記(6)に記載の方法。
(8)さらに、
前記少なくとも1つの規則が特定しいる場所から前記少なくとも1つのカスタマイズしたブロックを取り込むステップ
を備えている、
上記(1)に記載の方法。
(9)さらに、
前記少なくとも1つの要求が前記少なくとも1つのカスタマイズ可能なテンプレートを参照している場合、前記少なくとも1つのカスタマイズしたブロックを動的に生成するステップ
を備えている、
上記(4)に記載の方法。
(10)さらに、
実行可能なコンピュータ・プログラムに対応する機能を呼び出すことにより、前記少なくとも1つのカスタマイズしたブロックを動的に生成するステップ
を備え、
前記定義するステップが、
前記少なくとも1つの規則の内部で前記機能を特定するステップ
を備えている、
上記(1)に記載の方法。
(11)前記少なくとも1つのカスタマイズしたブロックが、前記少なくとも1つのクライアントの識別情報に基づいて、生成したもの、または、取り込んだものである、
上記(3)に記載の方法。
(12)さらに、
前記少なくとも1つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも1つのカスタマイズしたブロックを生成するのに前記少なくとも1つのキャッシュにデータを付加すべきか否かを判断するステップ
を備えた、
上記(3)に記載の方法。
(13)さらに、
前記少なくとも1つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも1つのカスタマイズしたブロックを生成するのに前記少なくとも1つのキャッシュからデータを削除すべきか否かを判断するステップ
を備えた、
上記(3)に記載の方法。
(14)前記少なくとも1つの要求が少なくとも2つの要求から成り、
前記方法が、さらに、
所定の基準に基づいて、前記少なくとも2つ要求を少なくとも2つの区分に区分けするステップ
を備えている、
上記(4)に記載の方法。
(15)前記所定の基準が、前記要求を発した個人の識別情報である、
上記(14)に記載の方法。
(16)前記少なくとも1つの規則が、前記少なくとも1つのカスタマイズしたブロックを生成するための、データのリストを特定しており、
前記方法が、
前記リストが複数の事項から成るか否かを判断するステップと、
前記リストが複数の事項から成る場合、前記少なくとも2つの区分のうちの少なくとも1つに、前記リストから少なくとも1つの適切な事項を選択する選択方法を関連付けるステップと
を備えている、
上記(14)に記載の方法。
(17)さらに、
前記少なくとも1つのキャッシュに、前記少なくとも1つのカスタマイズしたブロックと前記少なくとも1つの規則とのうちの少なくとも一方を、サーバ・プログラムに適切に接続されたインタフェースを通じて、要求によりまたは自動的に、格納するステップ
を備えた、
上記(4)に記載の方法。
(18)さらに、
前記インタフェースを通じて、前記少なくとも1つの規則を、自動的に更新するか自動的に変更するか、少なくとも一方を行なうステップ
を備えた、
上記(17)に記載の方法。
(19)前記方法が、機械によって実行可能な、前記方法のステップ群を実行する命令のプログラムを目に見える形で組み込むことにより、機械読み取り可能なプログラム記憶装置によって実装されている、
上記(1)に記載の方法。
(20)クライアント/サーバ環境においてカスタマイズした情報を提供するシステムであって、
少なくとも1つのクライアントと、
少なくとも1つのサーバと、
前記少なくとも1つのクライアントを前記少なくとも1つのサーバに接続するように適合しているネットワークと、
情報を求める少なくとも1つの要求が少なくとも1つのカスタマイズ可能なテンプレートを参照している場合、前記少なくとも1つのカスタマイズ可能なテンプレートに少なくとも1つのカスタマイズしたブロックを挿入することにより、カスタマイズした情報を生成するように適合している少なくとも1つのキャッシュと、
前記少なくとも1つのサーバを前記少なくとも1つのキャッシュに接続するように適合している第1のインタフェースと
を備えたシステム。
(21)前記少なくとも1つのカスタマイズ可能なテンプレートが、
少なくとも1つの規則への少なくとも1つの参照と、前記少なくとも1つのカスタマイズ可能なテンプレートに前記カスタマイズしたブロックを挿入する場所を特定している少なくとも1つのオフセットと
を備え、
前記少なくとも1つの規則が、前記少なくとも1つのカスタマイズしたブロックを生成する、または取り込むように適合している、
上記(20)に記載のシステム。
(22)前記少なくとも1つのキャッシュが、さらに、前記少なくとも1つの規則を格納するように適合している、
上記(21)に記載のシステム。
(23)前記少なくとも1つのキャッシュが、さらに、前記少なくとも1つのカスタマイズしたブロックを格納するように適合している、
上記(20)に記載のシステム。
(24)前記少なくとも1つのキャッシュが、さらに、前記少なくとも1つのカスタマイズしたブロックを生成する実行可能な機能を格納するように適合している、
上記(20)に記載のシステム。
(25)前記少なくとも1つのキャッシュが、さらに、前記少なくとも1つのカスタマイズ可能なテンプレートを格納するように適合している、
上記(20)に記載のシステム。
(26)前記少なくとも1つのキャッシュが、さらに、その内部の場所に前記少なくとも1つのカスタマイズしたブロックを予格納するように適合しており、
前記少なくとも1つの規則が、前記少なくとも1つのカスタマイズしたブロックの前記場所を特定している、
上記(21)に記載のシステム。
(27)さらに、
前記少なくとも1つのキャッシュの外部の記憶装置であって、自らの内部に前記少なくとも1つのカスタマイズしたブロックを予格納するように適合している記憶装置
を備え、
前記少なくとも1つの規則が、前記記憶装置の内部の前記カスタマイズしたブロックの場所を特定している、
上記(21)に記載のシステム。
(28)前記少なくとも1つのキャッシュが、さらに、前記少なくとも1つの規則が特定している場所から前記少なくとも1つのカスタマイズしたブロックを取り込むように適合している、
上記(21)に記載のシステム。
(29)前記少なくとも1つのキャッシュが前記少なくとも1つの要求を受け取ると、前記少なくとも1つのカスタマイズしたブロックを動的に生成する、
上記(20)に記載のシステム。
(30)実行可能なコンピュータ・プログラムに対応する、少なくとも1つの規則が特定している機能が呼び出されたときに、前記少なくとも1つのカスタマイズしたブロックを動的に生成する、
上記(21)に記載のシステム。
(31)前記少なくとも1つのキャッシュが、さらに、前記少なくとも1つのクライアントの前記識別情報に基づいて、前記少なくとも1つのカスタマイズ可能なテンプレートに前記少なくとも1つのカスタマイズしたブロックを挿入するように適合している、
上記(20)に記載のシステム。
(32)さらに、
前記少なくとも1つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも1つのカスタマイズしたブロックを生成するのに前記少なくとも1つのキャッシュにデータを付加すべきか否かを判断する手段
を備えた、
上記(20)に記載のシステム。
(33)さらに、
前記少なくとも1つのカスタマイズしたブロックを生成するのに要するオーバーヘッドの概算値に基づいて、前記少なくとも1つのカスタマイズしたブロックを生成するのに前記少なくとも1つのキャッシュからデータを削除すべきか否かを判断する手段
を備えた、
上記(20)に記載のシステム。
(34)前記少なくとも1つの要求が少なくとも2つの要求から成り、
前記少なくとも1つの規則が、所定の基準に基づいて、前記少なくとも2つの要求を少なくとも2つの区分に区分けする、
上記(20)に記載のシステム。
(35)前記所定の基準が、前記要求を発した個人の識別情報である、
上記(34)に記載のシステム。
(36)前記少なくとも1つの規則が、前記少なくとも1つのカスタマイズしたブロックを生成するために、データのリストを特定しており、
前記システムが、
前記リストが複数の事項から成るか否かを判断する手段と、
前記リストが複数の事項から成る場合、前記少なくとも2つの区分のうちの少なくとも1つに、前記リストから少なくとも1つの適切な事項を選択する選択方法を関連付ける手段と
を備えている、
上記(34)に記載のシステム。
(37)さらに、
前記少なくとも1つのキャッシュを、前記少なくとも1つのサーバ以外のサーバに格納されているサーバ・プログラムに接続させるように適合している第2のインタフェースと、
前記少なくとも1つのキャッシュに、前記少なくとも1つのカスタマイズしたブロックと前記少なくとも1つの規則とのうちの少なくとも一方を、前記第2のインタフェースを通じて、要求によりまたは自動的に、格納する手段と
を備えた、
上記(21)に記載のシステム。
(38)さらに、
前記インタフェースを通じて、前記少なくとも1つの規則を、自動的に更新するか自動的に変更するか、少なくとも一方を行なう手段
を備えた、
上記(37)に記載のシステム。
(39)コンピュータ処理システムにおいてカスタマイズした情報を提供する方法であって、
データの少なくとも1つのカスタマイズしたブロックを生成するか取り込むかするための少なくとも1つの規則を定義するステップと、
前記少なくとも1つの規則を使って、データの前記少なくとも1つのカスタマイズしたブロックを生成するか取り込むかするステップと、
少なくとも1つのカスタマイズ可能なテンプレートの少なくとも1つの特定の場所に前記少なくとも1つのカスタマイズしたブロックを挿入するステップと
を備えた方法。
(40)前記方法が、機械によって実行可能な、前記方法のステップ群を実行する命令のプログラムを目に見える形で組み込むことにより、機械読み取り可能なプログラム記憶装置によって実装されている、
上記(39)に記載の方法。
【図面の簡単な説明】
【図1】 本発明の一実施形態による、本発明を適用できるクライアント・/サーバ・システムを示す図である。
【図2】 本発明の一実施形態による、HTMLページ内でカスタマイズ可能なブロックを特定する方法を示す図である。
【図3】 本発明の一実施形態による、静的規則情報ブロック(RIB)と動的RIBを示す図である。
【図4】 本発明の一実施形態による、データを生成しキャッシュする方法のフローチャートを示す図である。
【図5】 本発明の別の実施形態による、データを生成しキャッシュする方法のフローチャートを示す図である。
【図6】 本発明の一実施形態による、キャッシュがカスタマイズした情報を生成する方法のフローチャートを示す図である。
【図7】 本発明の一実施形態による、クライアント/サーバ・システムにおいてカスタマイズした情報を提供する方法のフローチャートを示す図である。
【符号の説明】
100…クライアント/サーバ・システム、102…クライアント、104…サーバ、106…キャッシュ。
Claims (28)
- サーバ、キャッシュおよびクライアントがネットワークに接続されたシステムを用いて、カスタマイズした情報を提供する方法であって、
前記サーバが、カスタマイズ可能なテンプレートを生成するステップと、
前記サーバが、前記テンプレートにカスタマイズしたブロックを挿入する規則を生成するステップと、
前記キャッシュが、前記テンプレート、および前記挿入する規則を格納するステップと、
前記クライアントからの要求に応答して、前記キャッシュが、前記挿入する規則について、前記ブロックを生成するデータのリストを特定する静的規則であるか、前記ブロックを生成する機能が定義された動的規則であるかを判断して、前記挿入する規則に基づいて前記ブロックを生成するステップと、
前記キャッシュが、前記テンプレートに前記生成したブロックを挿入するステップと、
前記キャッシュが、前記ブロックを挿入したテンプレートを、前記クライアントへ提供するステップと、を備え、
前記挿入する規則は、前記クライアントの発信元で前記挿入するブロックを決定する規則であり、
前記テンプレートが、前記挿入する規則への参照、および前記ブロックを挿入する場所を特定するオフセットを含むことを特徴とする、クライアントにカスタマイズした情報を提供する方法。 - 請求項1に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュが、前記ブロックを予格納するステップを含む、クライアントにカスタマイズした情報を提供する方法。 - 請求項2に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュ、前記サーバ、又は前記キャッシュ、前記サーバの外部の記憶装置のいずれかが、前記ブロックを予格納する、クライアントにカスタマイズした情報を提供する方法。 - 請求項2に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを予格納するステップでは、
前記挿入する規則によって定義された場所に前記ブロックを予格納する、クライアントにカスタマイズした情報を提供する方法。 - 請求項4に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを予格納するステップの後に、
さらに、キャッシュが、前記挿入する規則によって定義された場所から前記ブロックを取り込むステップを含む、クライアントにカスタマイズした情報を提供する方法。 - 請求項5に記載のクライアントにカスタマイズした情報を提供する方法において、
前記動的規則には、この機能を呼び出すのに要するオーバーヘッドを計算し、前記ブロックを前記キャッシュに格納しないことを含む、クライアントにカスタマイズした情報を提供する方法。 - 請求項1に記載のクライアントにカスタマイズした情報を提供する方法において、
前記テンプレートに複数のブロックを挿入することを特徴とする、クライアントにカスタマイズした情報を提供する方法。 - 請求項7に記載のクライアントにカスタマイズした情報を提供する方法において、
前記テンプレートに複数のブロックを挿入する際に、特定の区分に、クライアントの発信元に基づくブロックを挿入する、クライアントにカスタマイズした情報を提供する方法。 - 請求項1に記載のクライアントにカスタマイズした情報を提供する方法において、
前記ブロックを生成するデータのリストが、複数のデータから成るか否かの判断と、この複数のデータから適切な事項を選択することと、を含むことを特徴とする、クライアントにカスタマイズした情報を提供する方法。 - 請求項1に記載のクライアントにカスタマイズした情報を提供する方法において、
このカスタマイズした情報を提供する方法が、機械読取可能なプログラム記憶装置によって実装されていることを特徴とする、クライアントにカスタマイズした情報を提供する方法。 - サーバ、キャッシュおよびクライアントがネットワークに接続され、カスタマイズした情報を提供するシステムであって、
前記サーバが、カスタマイズ可能なテンプレートを生成し、前記テンプレートにカスタマイズしたブロックを挿入する規則を生成し、
前記キャッシュが、前記テンプレート、および前記挿入する規則を格納し、
前記クライアントからの要求に応答して、前記挿入する規則が、前記ブロックを生成するデータのリストを特定する静的規則であるか、前記ブロックを生成する機能が定義された動的規則であるかを判断して、前記挿入する規則に基づいて前記ブロックを生成し、
前記テンプレートに前記生成したブロックを挿入し、前記ブロックを挿入したテンプレートを、前記クライアントへ提供し、
前記挿入する規則は、前記クライアントの発信元で前記挿入するブロックを決定する規則であり、
前記テンプレートが、前記挿入する規則への参照、および前記ブロックを挿入する場所を特定するオフセットを含むことを特徴とする、クライアントにカスタマイズした情報を提供するシステム。 - 請求項11に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを生成する際に、前記キャッシュが、前記ブロックを予格納するクライアントにカスタマイズした情報を提供するシステム。 - 請求項12に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを生成する際に、
さらに、前記キャッシュ、前記サーバ、又は前記キャッシュ、前記サーバの外部の記憶装置のいずれかが、前記ブロックを予格納する、クライアントにカスタマイズした情報を提供するシステム。 - 請求項12に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを予格納する際に、前記挿入する規則によって定義された場所に前記ブロックを予格納する、クライアントにカスタマイズした情報を提供するシステム。 - 請求項14に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを予格納した後に、さらに、キャッシュが、前記挿入する規則によって定義された場所から前記ブロックを取り込む、クライアントにカスタマイズした情報を提供するシステム。 - 請求項15に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記動的規則には、この機能を呼び出すのに要するオーバーヘッドを計算し、前記ブロックを前記キャッシュに格納しないことを含む、クライアントにカスタマイズした情報を提供するシステム。 - 請求項11に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記テンプレートに複数のブロックを挿入することを特徴とする、クライアントにカスタマイズした情報を提供するシステム。 - 請求項17に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記テンプレートに複数のブロックを挿入する際に、特定の区分に、クライアントの発信元に基づくブロックを挿入する、クライアントにカスタマイズした情報を提供するシステム。 - 請求項11に記載のクライアントにカスタマイズした情報を提供するシステムにおいて、
前記ブロックを生成するデータのリストが、複数のデータから成るか否かの判断と、この複数のデータから適切な事項を選択することと、を含むことを特徴とする、クライアントにカスタマイズした情報を提供するシステム。 - サーバ、キャッシュおよびクライアントがネットワークに接続されたシステムを用いて、カスタマイズした情報を提供することを実現するプログラムであって、
前記サーバが、カスタマイズ可能なテンプレートを生成するステップと、
前記サーバが、前記テンプレートにカスタマイズしたブロックを挿入する規則を生成するステップと、
前記キャッシュが、前記テンプレート、および前記挿入する規則を格納するステップと、
前記クライアントからの要求に応答して、前記キャッシュが、前記挿入する規則について、前記ブロックを生成するデータのリストを特定する静的規則であるか、前記ブロックを生成する機能が定義された動的規則であるかを判断して、前記挿入する規則に基づいて前記ブロックを生成するステップと、
前記キャッシュが、前記テンプレートに前記生成したブロックを挿入するステップと、
前記キャッシュが、前記ブロックを挿入したテンプレートを、前記クライアントへ提供するステップと、を備え、
前記挿入する規則は、前記クライアントの発信元で前記挿入するブロックを決定する規則であり、
前記テンプレートが、前記挿入する規則への参照、および前記ブロックを挿入する場所を特定するオフセットを含むことを特徴とする、クライアントにカスタマイズした情報を提供するプログラム。 - 請求項20に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムであって、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュが、前記ブロックを予格納するステップを含む、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項21に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを生成するステップの後に、
さらに、前記キャッシュ、前記サーバ、又は前記キャッシュ、前記サーバの外部の記憶装置のいずれかが、前記ブロックを予格納する、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項21に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを予格納するステップでは、
前記挿入する規則によって定義された場所に前記ブロックを予格納する、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項23に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを予格納するステップの後に、
さらに、キャッシュが、前記挿入する規則によって定義された場所から前記ブロックを取り込むステップを含む、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項24に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記動的規則には、この機能を呼び出すのに要するオーバーヘッドを計算し、前記ブロックを前記キャッシュに格納しないことを含む、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項20に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記テンプレートに複数のブロックを挿入することを特徴とする、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項26に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記テンプレートに複数のブロックを挿入する際に、特定の区分に、クライアントの発信元に基づくブロックを挿入する、クライアントにカスタマイズした情報を提供することを実現するプログラム。 - 請求項20に記載のクライアントにカスタマイズした情報を提供することを実現するプログラムにおいて、
前記ブロックを生成するデータのリストが、複数のデータから成るか否かの判断と、この複数のデータから適切な事項を選択することと、を含むことを特徴とする、クライアントにカスタマイズした情報を提供することを実現するプログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/626,327 US6725265B1 (en) | 2000-07-26 | 2000-07-26 | Method and system for caching customized information |
| US09/626327 | 2000-07-26 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2002108671A JP2002108671A (ja) | 2002-04-12 |
| JP3791900B2 true JP3791900B2 (ja) | 2006-06-28 |
Family
ID=24509925
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001198477A Expired - Fee Related JP3791900B2 (ja) | 2000-07-26 | 2001-06-29 | コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US6725265B1 (ja) |
| EP (1) | EP1187040A3 (ja) |
| JP (1) | JP3791900B2 (ja) |
| CA (1) | CA2351151A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102656668B1 (ko) * | 2023-04-17 | 2024-04-11 | 주식회사 와이드브레인 | 메타버스를 이용한 제품 정보 제공 시스템 및 이의 실행 방법 |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7249197B1 (en) * | 2000-10-20 | 2007-07-24 | Nortel Networks Limited | System, apparatus and method for personalising web content |
| US20020103974A1 (en) * | 2000-11-29 | 2002-08-01 | Giacomini Peter Joseph | Method and apparatus for economical cache population |
| EP1239635A1 (en) * | 2001-03-07 | 2002-09-11 | BRITISH TELECOMMUNICATIONS public limited company | Method of providing service classes in a packet network |
| EP1251669A1 (en) * | 2001-04-19 | 2002-10-23 | BRITISH TELECOMMUNICATIONS public limited company | Communications network |
| US20030004998A1 (en) * | 2001-06-29 | 2003-01-02 | Chutney Technologies, Inc. | Proxy-based acceleration of dynamically generated content |
| EP1335535A1 (en) * | 2002-01-31 | 2003-08-13 | BRITISH TELECOMMUNICATIONS public limited company | Network service selection |
| US7904807B2 (en) * | 2002-11-05 | 2011-03-08 | Xerox Corporation | System and method for copying formatting information between Web pages |
| US20040236824A1 (en) * | 2003-05-23 | 2004-11-25 | Millington Bradley D. | Post-cache substitution |
| US20050102249A1 (en) * | 2003-11-12 | 2005-05-12 | Bigus Joseph P. | Methods and apparatus for customization of rule-based applications |
| WO2006054690A1 (ja) * | 2004-11-19 | 2006-05-26 | Shimadzu Corporation | 遺伝子多型検出方法、診断方法、並びにそのための装置及び検査試薬キット |
| US8095618B2 (en) * | 2007-03-30 | 2012-01-10 | Microsoft Corporation | In-memory caching of shared customizable multi-tenant data |
| US8667563B1 (en) * | 2007-10-05 | 2014-03-04 | United Services Automobile Association (Usaa) | Systems and methods for displaying personalized content |
| US20100023690A1 (en) * | 2008-07-22 | 2010-01-28 | International Business Machines Corporation | Caching dynamic contents and using a replacement operation to reduce the creation/deletion time associated with html elements |
| US7962502B2 (en) | 2008-11-18 | 2011-06-14 | Yahoo! Inc. | Efficient caching for dynamic webservice queries using cachable fragments |
| US9311358B2 (en) * | 2008-12-18 | 2016-04-12 | Teradata Us, Inc. | Smart cache component for demand chain management |
| JP5167179B2 (ja) * | 2009-03-24 | 2013-03-21 | 株式会社日立製作所 | 動的コンテンツ保存復元装置、動的コンテンツ保存復元システム、動的コンテンツの保存および復元方法、ならびにプログラム |
| US20110060812A1 (en) * | 2009-09-10 | 2011-03-10 | Level 3 Communications, Llc | Cache server with extensible programming framework |
| US10922229B2 (en) | 2019-03-11 | 2021-02-16 | Microsoft Technology Licensing, Llc | In-memory normalization of cached objects to reduce cache memory footprint |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5894554A (en) * | 1996-04-23 | 1999-04-13 | Infospinner, Inc. | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests |
| US6112242A (en) * | 1996-07-10 | 2000-08-29 | Uln Corporation | System and method for dynamic data interaction in a hypertext data processing system |
| JPH10198596A (ja) * | 1997-01-14 | 1998-07-31 | Oki Electric Ind Co Ltd | 情報発信装置及び情報発信方法 |
| US6262729B1 (en) * | 1997-04-14 | 2001-07-17 | Apple Computer, Inc. | Method and apparatus for binding user interface objects to application objects |
| US5983227A (en) * | 1997-06-12 | 1999-11-09 | Yahoo, Inc. | Dynamic page generator |
| US6021426A (en) * | 1997-07-31 | 2000-02-01 | At&T Corp | Method and apparatus for dynamic data transfer on a web page |
-
2000
- 2000-07-26 US US09/626,327 patent/US6725265B1/en not_active Expired - Lifetime
-
2001
- 2001-06-21 CA CA002351151A patent/CA2351151A1/en not_active Abandoned
- 2001-06-29 JP JP2001198477A patent/JP3791900B2/ja not_active Expired - Fee Related
- 2001-07-24 EP EP01306329A patent/EP1187040A3/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102656668B1 (ko) * | 2023-04-17 | 2024-04-11 | 주식회사 와이드브레인 | 메타버스를 이용한 제품 정보 제공 시스템 및 이의 실행 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US6725265B1 (en) | 2004-04-20 |
| JP2002108671A (ja) | 2002-04-12 |
| EP1187040A2 (en) | 2002-03-13 |
| EP1187040A3 (en) | 2002-10-02 |
| CA2351151A1 (en) | 2002-01-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3791900B2 (ja) | コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム | |
| US6615235B1 (en) | Method and apparatus for cache coordination for multiple address spaces | |
| US7496847B2 (en) | Displaying a computer resource through a preferred browser | |
| US7359977B2 (en) | Ubiquitous visited links | |
| US6507891B1 (en) | Method and apparatus for managing internal caches and external caches in a data processing system | |
| US6457103B1 (en) | Method and apparatus for caching content in a data processing system with fragment granularity | |
| US7702811B2 (en) | Method and apparatus for marking of web page portions for revisiting the marked portions | |
| JP3967806B2 (ja) | リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構 | |
| US6584548B1 (en) | Method and apparatus for invalidating data in a cache | |
| US9160709B2 (en) | System and method for managing page variations in a page delivery cache | |
| US6928440B2 (en) | Delayed storage of cookies with approval capability | |
| US20120259833A1 (en) | Configurable web crawler | |
| US20030088580A1 (en) | Methods and systems for preemptive and predictive page caching for improved site navigation | |
| KR20090038894A (ko) | 인터렉티브 웹 어플리케이션에 대한 웹 분석을 가능하게 하는 사용자-상호작용 추적 방법 및 그 방법을 수행하기 위한 컴퓨터-판독가능 매체 | |
| JP2003281023A (ja) | データ転送装置、データ転送方法、データ受信表示装置、プログラム | |
| JP4202129B2 (ja) | 参照されるリソースを先取りする方法および装置 | |
| JP2009530736A (ja) | 初期動的レンダリング制御データの推定 | |
| US6553461B1 (en) | Client controlled pre-fetching of resources | |
| US7254642B2 (en) | Method and apparatus for local IP address translation | |
| JP2013519963A (ja) | 未承認フォントのリンクの防止 | |
| CN103544215B (zh) | 内容服务器时延确定 | |
| US7930479B2 (en) | System and method for caching and retrieving from cache transaction content elements | |
| JP2006185167A (ja) | ファイル検索方法、ファイル検索装置、および、ファイル検索プログラム | |
| US20050278617A1 (en) | Methods and systems for dynamically assembling web pages | |
| JP2005128874A (ja) | ウェブページに埋め込まれたオブジェクトを識別子により指定することによりインターネットにおけるウェブアクセスに生じるネットワークトラフィックを軽減する通信システム、およびそれを利用するビジネスモデル。 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041108 |
|
| RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20041108 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20041108 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051004 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051220 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060322 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20060323 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060403 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 3791900 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
| S202 | Request for registration of non-exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R315201 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140414 Year of fee payment: 8 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |