JP2004038439A - Web access relay system - Google Patents

Web access relay system Download PDF

Info

Publication number
JP2004038439A
JP2004038439A JP2002192979A JP2002192979A JP2004038439A JP 2004038439 A JP2004038439 A JP 2004038439A JP 2002192979 A JP2002192979 A JP 2002192979A JP 2002192979 A JP2002192979 A JP 2002192979A JP 2004038439 A JP2004038439 A JP 2004038439A
Authority
JP
Japan
Prior art keywords
web
web content
server
disk
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.)
Pending
Application number
JP2002192979A
Other languages
Japanese (ja)
Inventor
Hideo Aoki
Masahiko Nakahara
Takashi Nishikado
中原 雅彦
西門 隆
青木 英郎
Original Assignee
Hitachi Ltd
株式会社日立製作所
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, 株式会社日立製作所 filed Critical Hitachi Ltd
Priority to JP2002192979A priority Critical patent/JP2004038439A/en
Publication of JP2004038439A publication Critical patent/JP2004038439A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a Web access relay system configured of a plurality of proxy servers for improving the using efficiency of a cache memory, and reducing access frequency to a Web server. <P>SOLUTION: This Web access relay system is configured of a plurality of proxy servers 24 having responding functions to a Web contents acquisition request and a shared disk device 25 for storing Web contents as cache data. When the requested Web contents are stored in a disk device as cache data, each proxy server transmits the pertinent cache data to a request origin client device 1, and when the requested Web contents are not stored as the cache data, each proxy server acquires the Web contents from the Web server 3, and stores the Web contents in the disk device, and transmits the Web contents to the request origin client terminal. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、Webアクセス中継装置に関し、更に詳しくは、Webサーバから取得したWebコンテンツデータのキャッシュ方式に関する。
【0002】
【従来の技術】
インターネットが普及し、映画などのビデオ配布サービスや、これまで各種企業の営業窓口で行われてきたサービスが、インターネットを通して提供されるようになってきた。また、通信技術の進歩に従って、家庭やオフィスの端末以外に、携帯電話からも各種のサービスを享受できる環境が整ってきている。
【0003】
クライアント端末から直接Webサーバをアクセスしてサービスを要求するWebアクセス方式では、人気のあるWebサイトに対して多数のクライアントからのサービス要求が集中的に発生する。この場合、インターネットの通信回線容量やWebサーバのデータ処理能力には限界があるため、時間帯やアクセス先によっては、集中的に発生した利用者からの要求をWebサイトで処理し切れなくなり、満足な応答が返ってこないという情況が発生する。
【0004】
上記問題は、例えば、クライアント端末とWebサーバとの間に、プロキシサーバと呼ばれるアクセス中継装置を設置し、Webサーバから取得されたWebコンテンツをプロキシサーバにキャッシュデータとして蓄積しておき、利用者から要求されたWebコンテンツがキャッシュデータ中に見つかった場合は、Webサーバへのアクセスを省略し、キャッシュデータを要求元に送信することによって改善できる。
【0005】
【発明が解決しようとする課題】
然るに、プロキシサーバにも能力的な制約があるため、接続ユーザ数が増加して、Webアクセス要求が集中すると、1台のプロキシサーバではWebアクセス要求を処理し切れなくなってくる。このため、例えば、1つのWebアクセス中継装置を負荷分散装置に接続された複数のプロキシサーバで構成し、利用者からのWebアクセス要求を複数のプロキシサーバに分散することにより、オーバーフローを解消する方式が提案されている。
【0006】
負荷分散型の従来のWebアクセス中継装置では、プロキシサーバ毎に個別のキャッシュメモリ(ディスク装置)を備え、複数のプロキシサーバを互いに独立して動作させている。従って、要求されたWebコンテンツがキャッシュデータ中に見つからなかった場合は、各プロキシサーバは、独自にWebサイトをアクセスし、Webサーバから取得したWebコンテンツをそれぞれの個別キャッシュメモリに保存している。このため、1つのプロキシサーバが既にキャッシュデータとして保持しているWebコンテンツについて、別のプロキシサーバが取得要求を受付けた場合、Webサイトへのアクセスが繰り返して発生するという問題がある。
【0007】
また、同一のWebコンテンツが複数のプロキシサーバで重複して蓄積されるため、Webアクセス中継装置全体としてのキャッシュメモリの利用効率が低下するという問題がある。
【0008】
本発明の目的は、複数のプロキシサーバからなるWebアクセス中継装置において、キャッシュメモリの利用効率を向上し、Webサーバへのアクセス頻度を低減することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するために、本発明のWebアクセス中継装置は、複数のプロキシサーバに共有のディスク装置を備え、各プロキシサーバが、上記ディスク装置に蓄積された共有のキャッシュデータを参照して、クライアントからのWebコンテンツ取得要求を処理するようにしたことを特徴とする。本発明によれば、キャッシュメモリが複数のプロキシサーバに共有されているため、何れかのプロキシサーバがWebサーバからWebコンテンツを取得すれば、同一Webコンテンツを全てのプロキシサーバで利用でき、Webサイトへのアクセス回数を低減できる。また、同一Webコンテンツの重複した蓄積を回避できるため、キャッシュメモリの利用効率を改善できる。
【0010】
本発明の1つの実施形態では、複数のプロキシサーバのうちの1つが、キャッシュ領域管理機能を備えた管理サーバとして動作し、蓄積済みのWebコンテンツの無効化によるキャッシュ領域の解放と、新たなWebコンテンツへのキャッシュ領域の割当てを行うことを特徴とする。
【0011】
この場合、管理サーバ以外の他のプロキシサーバは、WebサーバからWebコンテンツを取得した時、管理サーバにキャッシュ領域の割当てを要求し、管理サーバによって割当てられたキャッシュ領域にWebコンテンツを書き込む。但し、管理サーバ以外のプロキシサーバが、管理サーバに対してWebコンテンツの蓄積を依頼し、管理サーバが空きキャッシュ領域へのWebコンテンツの書き込みを行うようにしてもよい。
【0012】
本発明の1つの特徴は、管理サーバが、ディスク装置に蓄積されるWebコンテンツ毎にキャッシュデータ有効期限を指定するための手段を有し、キャッシュデータ有効期限切れとなったWebコンテンツを無効化することによって、キャッシュメモリに空きエリアを確保するようにしたことにある。
【0013】
キャッシュデータ有効期限は、本発明のWebアクセス中継装置の内部で保証するWebコンテンツの保存期限であり、Webサーバが指定するコンテンツ有効期限の範囲内で、キャッシュ登録日を基準にして算出される。キャッシュデータ有効期限は延長可能であり、要求頻度の高いWebコンテンツについては、キャッシュデータ有効期限を次々と延長することによって、長時間にわたってディスク装置内に留めることが可能となる。
【0014】
本発明の他の実施例では、上述した管理プロキシサーバに代えて、ディスク装置におけるキャッシュ領域の解放と、新たなWebコンテンツへのキャッシュ領域の割当てを行うためのディスク管理装置を備え、各プロキシサーバが、Webサーバから取得したWebコンテンツを上記ディスク管理装置と連携して上記ディスク装置に蓄積することを特徴とする。
【0015】
この場合、各プロキシサーバは、ディスク管理装置にキャッシュ領域の割当てを要求し、上記ディスク管理装置によって割当てられたキャッシュ領域に対してWebコンテンツを書き込む。但し、各プロキシサーバが、ディスク管理装置にWebコンテンツの蓄積を依頼し、ディスク管理装置が空き状態のキャッシュ領域にWebコンテンツを書き込むようにしてもよい。
【0016】
【発明の実施の形態】
以下、本発明の実施例について図面を参照して説明する。
【0017】
図1は、本発明によるWebアクセス中継装置2を含む通信ネットワークシステムの構成を示す。
【0018】
Webアクセス中継装置2は、LANまたはインターネットなどの通信網11を介して複数のクライアント端末1(1−1〜1−L)に接続され、インターネット12を介してWebサーバ3(3−1〜3−J)に接続されている。
【0019】
Webアクセス中継装置2は、通信網11およびインターネット12に接続されたパケット中継装置(ルータ)21と、該パケット中継装置21に接続された負荷分散装置22と、該負荷分散装置22に接続された複数のプロキシ(Proxy)サーバ23および24(24−1〜24−n)と、これらのプロキシサーバに接続されたディスク装置25とからなる。ディスク装置25には、後述するように、Webサーバ3−1〜3−Jから取得したWebコンテンツが複数のプロキシサーバ23、24に共有のキャッシュデータとして蓄積される。
【0020】
クライアント端末1から送信されたWebコンテンツの取得要求は、パケット中継装置21によって受信され、負荷分散装置22に転送される。負荷分散装置22は、パケット中継装置21から受け取ったWebコンテンツ取得要求を所定の負荷分散アルゴリズムに従って上記プロキシサーバ23、24−1〜24−nに次々と振り分ける。
【0021】
本実施例では、ディスク装置25を共有する複数のプロキシサーバうちの1つ、サーバ23がキャッシュ管理機能を備える。プロキシサーバ23は、キャッシュデータとしてディスク装置25に登録すべき新たなWebコンテンツが発生した時、キャッシュ領域の割当てと不要キャッシュデータの消去を行う。以下の説明では、このようなキャッシュ領域の管理機能を備えたプロキシサーバ23を「管理プロキシサーバ」と呼ぶ。
【0022】
他のプロキシサーバ24−1〜24−nは、Webサーバから新たなWebコンテンツを所得した時、管理プロキシサーバ23にキャッシュ領域の割当てを要求し、管理プロキシサーバ23から割当てられたキャッシュ領域に対してWebコンテンツの書き込みを行う。
【0023】
図2は、本発明によるアクセス中継装置2の動作シーケンスを示す。
【0024】
ここでは、説明を簡単化するために、メッセージの転送動作に関わるパケット中継装置21と負荷分散装置22を省略して、管理プロキシサーバ23と、クライアント端末1−1からのWebコンテンツ取得要求を振り分けられた任意のプロキシサーバ24−iと、Webコンテンツを提供する任意のWebサーバ3−jとの間のメッセージ送受信動作について説明する。
【0025】
例えば、負荷分散装置22を介してクライアント端末1−1からのWebコンテンツ取得要求REQ1を受信したプロキシサーバ24−iは、ディスク装置25に蓄積されたキャッシュデータをチェックし(ステップS01)、要求されたWebコンテンツがキャッシュデータとして蓄積されていた場合(S02)は、キャッシュ領域から要求Webコンテンツを読み出し(S03)、Webコンテンツを含む応答メッセージRES1を作成して、要求元のクライアント端末1−1に送信する。
【0026】
クライアント端末から要求されたWebコンテンツがディスク装置25に無かった場合、プロキシサーバ24−iは、上記Webコンテンツを提供するWebサーバ3−jに対してWebコンテンツの取得要求REQ2を送信する。Webサーバ3−jは、上記取得要求REQ2で指定されたWebコンテンツを検索し(S04)、該Webコンテンツを含む応答メッセージRES2をプロキシサーバ24−iに返送する。
【0027】
プロキシサーバ24−iは、Webサーバ3−jからの応答メッセージRES2を解析し(S05)、これを新たなキャッシュデータとしてディスク装置24に蓄積するために、管理プロキシサーバ23にキャッシュ領域割当て要求REQ3を出す。上記キャッシュ領域割当て要求REQ3は、Webコンテンツの蓄積に必要なメモリ領域のサイズを指定している。
【0028】
キャッシュ領域割当て要求REQ3を受信した管理プロキシサーバ23は、ディスク装置25に定義されたキャッシュ領域の空きエリアの中から、新たなWebコンテンツに割当てるべきキャッシュ領域を選択し(S06)、割当て結果を応答メッセージRES3によって要求元のプロキシサーバ24−iに通知する。プロキシサーバ24−iは、上記応答メッセージRES3で指定されたキャッシュ領域に対してWebコンテンツを書き込む(S07)と共に、Webコンテンツを含む応答メッセージRES1’を作成して、要求元のクライアント端末1−1に送信する。但し、クライアント端末1−1宛の応答メッセージRES1’は、破線で示すように、Webサーバからの応答メッセージRES2の受信時に直ちに送信するようにしてもよい。
【0029】
図3は、管理プロキシサーバ23の構成を示す。
【0030】
管理プロキシサーバ23は、プロセッサ231と、負荷分散装置22および他のプロキシサーバ24に接続するための通信インタフェース232と、ディスク装置25に接続するためのディスク入出力インタフェース233と、プログラム格納用のメモリ234と、データ格納用のメモリ235とからなり、これらの要素は内部バス236によって相互に接続されている。メモリ234には、プロセッサ231が実行する制御用のソフトウェアとして、通信インタフェース232を介して他の装置と通信されるパケット(メッセージ)の送受信を制御するためのパケット転送制御モジュール40と、後で図8を参照して詳述する要求処理モジュール41と、その他の制御モジュールが格納されている。
【0031】
他のプロキシサーバ24−1〜24−nも、ハードウェア的には管理プロキシサーバ23と同一の構成となっており、後述するように、メモリ234に用意されるソフトウェアとメモリ235に形成されるデータテーブルの一部に相違がある。
【0032】
図4は、ディスク装置25に形成されるデータ構造の1例を示す。
【0033】
ディスク装置25には、例えば、スーパーブロック30と、複数の管理情報ブロック33−1〜33−nが登録される管理情報テーブル32と、Webデータを格納するためのキャッシュ領域35とが形成される。キャッシュ領域35は固定長の複数のデータブロック350−1〜350−qからなり、キャッシュ領域35における空き領域(フリーデータブロック)のアドレスは、スーパーブロック30にリンクしたフリーブロックリスト31(31−1〜31−k)によって管理されている。
【0034】
管理情報テーブル32の各管理情報ブロック33は、キャッシュ領域35にキャッシュデータとして登録された個々のWebコンテンツと対応している。1つのWebコンテンツを保持するためには、キャッシュ領域35内の複数のデータブロックが必要となる。これらのデータブロックのアドレスは、各管理情報ブロック33にリンクされたデータブロックリスト34(34−1〜34−m)によって示される。
【0035】
図5は、スーパーブロック30の内容の1例を示す。
【0036】
スーパーブロック30は、図4に示したデータ構造でキャッシュデータを管理する場合に必要となる全体的な制御パラメータを示す情報ブロックである。ここに示した例では、スーパーブロック30は、ディスク装置25に用意されたデータブロックの総数301と、単位となるブロックサイズ302と、管理情報テーブル32の先頭位置(最初の管理情報ブロック33−1のアドレス)を示す管理情報テーブルポインタ(P01)303と、管理情報テーブル33に登録できる管理情報ブロックの個数304と、キャッシュ領域35の先頭位置(最初のデータブロック350−1のアドレス)を示すキャッシュ領域ポインタ(P02)305と、キャッシュ領域35に含まれるキャッシュデータブロックの個数(q)306と、フリーブロックリスト群の先頭リスト31−1を示すフリーブロックリスト先頭ポインタ(P03)307と、フリーブロックリスト群の最終リスト31−kを示すフリーブロックリスト最終ポインタ(P04)308と、フリーブロックリスト群を構成しているフリーブロックリストの個数309と、1フリーブロックリスト当たりのフリーブロック数310とを示している。
【0037】
図6は、1つの管理情報ブロック33−iと、この管理情報ブロックにリンクされるデータブロックリスト34(34−1〜34−3)の内容の1例を示す。
【0038】
管理情報ブロック33−iは、キャッシュ領域に格納されたWebコンテンツの管理情報と、キャッシュ領域からWebコンテンツを読み出す際に必要となるポインタ情報と、これらの情報が有効か否かを示す有効性表示フラグ330とを含んでいる。ここに示した例では、管理情報ブロック33−iは、Webコンテンツの管理情報として、Webコンテンツ取得要求で指定されたURL(Webコンテンツ取得要求の最終的な送信先アドレス)331と、Webコンテンツがキャッシュデータとして登録された時刻332と、Webデータ有効期限333と、システム内で保証されるキャッシュデータの有効期限334と、キャッシュデータの更新状態を示す状態フラグ335と、キャッシュデータサイズ336を含み、ポインタ情報として、データブロックリスト群の先頭ポインタ337を含んでいる。
【0039】
尚、Webデータ有効期限333は、Webサーバ3から返送される応答メッセージRES2が示すWebコンテンツデータの有効期限を意味し、キャッシュデータ有効期限334は、アクセス中継装置2が保証しているディスク装置25内でのキャッシュデータの保存期限を意味している。
【0040】
先頭ポインタ337に従って参照されるデータブロックリスト34−1は、複数のデータブロックアドレス340−1〜340−nと、次リストポインタ341とからなっている。次リストポインタ341によって更に次のデータブロックリストがリンクされる。これによって、図に示すように、1つの管理情報ブロック33−iに任意個数のデータブロックリストをリンクできる。最後のデータブロックリストの次リストポインタ341には、後続するデータブロックリストが存在しないことを示す特定の値が設定される。
【0041】
Webコンテンツには、キャッシュデータサイズ336の値に応じて、キャッシュ領域35の複数個のデータブロックが割当てられる。1つのデータブロックリスト34は、キャッシュ領域35内で連続するn個のデータブロックアドレスを指定しているため、例えば、キャッシュデータサイズ336の値がLデータブロック相当の場合、管理情報ブロック33−iにL/n個のデータブロックリストをリンクし、これらのデータブロックリスト群が示すデータブロックアドレスA01〜A0n、A11〜A1n、A21、A22、…に従って、Webコンテンツの書き込みと読み出しが行われる。
【0042】
図7は、フリーブロックリスト31−1〜31−kの内容の1例を示す。
【0043】
最初のフリーブロックリスト31−1の位置は、スーパーブロック30に含まれるポインタ(P03)307で指定され、最後のフリーブロックリスト31−kの位置は、ポインタ(P04)308で指定される。また、フリーブロックリストの個数kはスーパーブロック30に含まれるフリーブロックリスト数309で特定される。
【0044】
各フリーブロックリストは、複数のフリーブロックアドレス310−1〜310−nと、次のフリーブロックリストの位置を示す次リストポインタ311とを含んでいる。最後のフリーブロックリスト31−kの次リストポインタ319には、後続するフリーブロックリストが存在しないことを示す特定値が設定される。
【0045】
各フリーブロックリストは、図6に示したデータブロックリスト34と同一のサイズとなっている。キャッシュデータが不要となった時、データブロック領域をデータブロックリスト単位で解放し、解放されたデータブロックリストをフリーブロックリストとしてスーパーブロック30にリンクすることによって、新たなWebコンテンツ用のキャッシュ領域が確保される。
【0046】
図8は、管理プロキシサーバ23がメモリ234に備える要求処理モジュール41の詳細と、メモリ235に形成されるデータ構造の1実施例を示す。
【0047】
要求処理モジュール41は、図8の(A)に示すように、スーパーブロック・キャッシュ初期化/終了処理ルーチン50と、Webコンテンツ取得要求処理ルーチン51と、管理情報エントリ特定ルーチン52と、キャッシュ領域割当てルーチン53と、キャッシュデータ有効期限延長ルーチン54とからなっている。また、メモリ235には、図8の(B)に示すように、スーパーブロック・キャッシュ領域71と、フリーブロックリスト・キャッシュ領域72と、エントリテーブル領域73と、管理情報キャッシュ領域74とが定義される。
【0048】
スーパーブロック・キャッシュ領域71には、ディスク装置25から読み出されたスーパーブロック30の内容が記憶される。管理プロキシサーバ23は、起動時にスーパーブロック・キャッシュ初期化/終了処理ルーチン50を実行して、ディスク装置25からスーパーブロック30の内容を読み出し、これをスーパーブロック・キャッシュ領域71に保持しておく。以後、スーパーブロック・キャッシュ領域71に記憶されたデータを参照/更新することによって、ディスク装置25へのアクセスによるオーバヘッドを軽減する。システムを停止する時は、スーパーブロック・キャッシュ初期化/終了処理ルーチン50によって、スーパーブロック・キャッシュ領域71の内容をディスク装置25のスーパーブロック30に書き戻すことによって、再起動時のデータの一貫性を保つ。
【0049】
フリーブロックリスト・キャッシュ領域72には、ポインタP04で特定されるフリーブロックリスト群の最終リスト31−kの内容が格納される。このように最後のフリーブロックリスト31−kの内容をメモリ装置235に保持しておくことにより、新たなフリーブロックリストを既存のリスト群に追加する時、ディスク装置25へのアクセス回数を軽減できる。
【0050】
エントリテーブル領域73は、図9に示すように、それぞれがキャッシュデータ有効期限731と管理情報ポインタ732とを示す複数のエントリEN−1〜EN−nからなるエントリテーブル730が形成される。これらのエントリEN−1〜EN−nは、ディスク装置25に形成された管理情報テーブル32上の管理情報ブロック33−1〜33−nと位置的に対応しており、例えば、エントリEN−iのキャッシュデータ有効期限731は、管理情報テーブル32上の対応する管理情報ブロック33−iのキャッシュデータ有効期限334を示している。エントリテーブル上のキャッシュデータ有効期限731は、フリーブロックリスト31−1〜31−kの個数が不足した時、フリーブロックリストとして解放すべきデータブロックリストを選択するために参照される。
【0051】
管理情報キャッシュ領域74は、管理情報テーブル32から読み出された管理情報ブロックを一時的に保持するために利用される。管理情報キャッシュ領域74は、管理情報テーブル32よりは少ない所定個数の管理情報ブロック740−1〜740−p(p<n)を格納できるだけのメモリ容量を有し、キャッシュ領域74に保持された各管理情報ブロックは、管理情報ポインタ732によってエントリテーブル730の何れかのエントリにリンクされている。キャッシュ領域74に保持された管理情報ブロックを有効に利用することによって、管理情報テーブル32のアクセス回数を減らして、ディスク装置25からのキャッシュデータの読み出しを行うことが可能となる。
【0052】
要求処理モジュール41のうち、Webコンテンツ取得要求処理ルーチン51は、クライアント端末からWebコンテンツの取得要求を受信した時に起動され、これによって、図2で説明したステップS01〜S03、S05、S07が実行される。
【0053】
管理情報エントリ特定ルーチン52は、Webコンテンツ取得要求で指定されたURLの値に基づいて、該URLに対応するエントリテーブル730上の1つのエントリEN−iを特定するためのものである。エントリEN−iの位置は、例えば、所定のハッシュ関数を適用して、与えられたURLの値をエントリテーブル730内のアドレス値に変換することによって特定される。
【0054】
キャッシュ領域割当てルーチン53は、キャッシュデータとして登録すべき新たなWebコンテンツが発生した時、フリーブロックリスト31−1〜31−kの中から上記Webコンテンツに割当てるべきデータブロックを選択するためのものである。また、キャッシュデータ有効期限延長ルーチン54は、例えば、キャッシュデータ有効期限を過ぎたWebコンテンツに対してクライアント端末から取得要求があった時、キャッシュデータの保存期間を延長するためのものである。
【0055】
上述したソフトウェア要素のうち、スーパーブロック・キャッシュ初期化/終了処理ルーチン50、キャッシュ領域割当てルーチン53、キャッシュデータ有効期限延長ルーチン54と、スーパーブロック・キャッシュ領域71、フリーブロックリスト・キャッシュ領域72は、管理プロキシサーバ23に特有のものであり、他のプロキシサーバ24−1〜24−nは、Webコンテンツ取得要求処理ルーチン51、管理情報エントリ特定ルーチン52、エントリテーブル領域73、管理情報キャッシュ領域74を備えている。尚、プロキシサーバ24−1〜24−nは、エントリテーブル730上でキャッシュデータ有効期限731を必要としないため、エントリEN−1〜EN−nが管理情報ポインタ732のみを示すエントリテーブル構造としてもよい。
【0056】
図10は、管理プロキシサーバ23およびプロキシサーバ24−1〜24−nがクライアント端末からWebコンテンツ取得要求REQ1を受信した時に実行するWebコンテンツ取得要求処理ルーチン51のフローチャートを示す。
【0057】
Webコンテンツ取得要求処理ルーチン51では、受信した要求REQ1からURLを抽出し、エントリテーブル730上で上記URLに対応するエントリEN−iの位置を特定する(ステップ510)。エントリEN−iの位置は、REQ1から抽出されたURLの値を与えて、管理情報エントリ特定ルーチン52を実行することによって特定される。
【0058】
エントリEN−iの位置が特定されると、該エントリの管理情報ポインタ732をチェックすることによって、上記URLに対応する管理情報ブロックが管理情報キャッシュ領域74に保持されているか否かを判定する(511)。エントリEN−iに管理情報ポインタの値が設定されていた場合は、該ポインタ値に従って、キャッシュ領域74から管理情報ブロックを読み出す(512)。エントリEN−iに管理情報ポインタの値が設定されていなかった場合は、ディスク装置25の管理情報テーブル32から、上記エントリEN−iと対応する位置にある管理情報ブロックを読み込む(513)。以下の説明では、上記ステップ512または513で読み出された管理情報ブロックを特に管理情報ブロック33−iと定義する。
【0059】
次に、REQ1から抽出されたURLの値と、管理情報ブロック33−iが示すURL331の値とを比較する(514)。ここで、URLを比較する理由は、管理情報エントリ特定ルーチン52では、URLの値をハッシュ関数で圧縮することによってエントリテーブル730上のアドレスを求めているため、エントリEN−iに基づいて読み出された管理情報ブロック33−iのURLとREQ1から抽出されたURLとの間には、完全な同一性が保証されていないからである。
【0060】
URLが一致しなかった場合は、図13で詳述するWebコンテンツの取得処理518を実行し、Webサーバから取得したWebコンテンツを含む応答メッセージを要求元のクライアント端末に送信して(519)、このルーチンを終了する。URLが一致した場合は、以下に述べるキャッシュデータを利用した応答処理を行う。
【0061】
先ず、管理情報ブロック33−iが示すキャッシュデータ有効期限をチェックし、キャッシュデータが有効期限切れとなっているか否かを判定する(515)。キャッシュデータが有効期限内の場合は、管理情報ブロック33−iの状態フラグ335をチェックする(520)。状態フラグがデータ更新中を示していた場合、データ更新が終了するのを待って、次のステップ521に進む。キャッシュデータ有効期限を過ぎていた場合は、図11で詳述するキャッシュデータ有効期限の更新処理516を実行する。有効期限の更新を正常に終了できなかった場合は、キャッシュデータの問題があるものと判断して、Webコンテンツの取得処理518を実行する。
【0062】
有効期限の更新を正常に終了できた場合は、ステップ521に進み、エントリテーブルのエントリEN−iの管理情報ポインタ732をチェックする。エントリEN−iに管理情報ポインタが設定済みの場合は、ステップ525に進む。管理情報ポインタが設定されていなければ、管理情報キャッシュ領域74で空きブロックを確保し(522)、エントリテーブル730のエントリEN−iに上記空きブロックを指す管理情報ポインタを設定し(523)、管理情報キャッシュ領域74の上記空きブロックに管理情報ブロック33−iを登録する(524)。
【0063】
ステップ525では、管理情報ブロック33−iに含まれるポインタ337に従って、ディスク装置25から上記管理情報ブロックにリンクしたデータブロックリスト群34を読み込む。この後、各データブロックリストが示すデータブロックアドレスに従って、ディスク装置のキャッシュ領域35から次々とキャッシュデータ(Webコンテンツ)を読み出し(526)、Webコンテンツを含む応答メッセージを作成し(527)、要求元のクライアント端末に応答メッセージを送信する(519)。
【0064】
図11は、キャッシュデータ有効期限の更新処理516の詳細を示す。
【0065】
キャッシュデータ有効期限の更新処理516では、自分(サーバ)がキャッシュ管理機能を備えているか否かを判定する(530)。プロキシサーバ24−1〜24−nの場合は、キャッシュ管理機能を備えていないため、管理プロキシサーバ23に対してキャッシュデータ有効期限の延長を要求し(531)、応答メッセージが受信されるのを待つ(532)。
【0066】
上記キャッシュデータ有効期限の延長要求は、図12の(A)に示すように、ヘッダ部101と、パケット種別102と、URL103とを含むメッセージREQ5によって行われる。
【0067】
ヘッダ部101には、宛先アドレスとして管理プロキシサーバ23のアドレス、送信元アドレスとして自サーバのアドレスが設定される。パケット種別102には、このパケット(メッセージ)がキャッシュデータ有効期限の延長要求であることを示すコードが設定され、URL103には、Webコンテンツ取得要求REQ1に付されていたURLの値が設定される。
【0068】
管理プロキシサーバ23からの応答は、図12の(B)に示すように、ヘッダ部101と、パケット種別102と、結果104と、新たな有効期限105とからなる応答メッセージRES5によって行われる。パケット種別102には、このパケット(メッセージ)がキャッシュデータ有効期限延長要求に対する応答であることを示すコードが設定され、結果フィールド104がエラー発生を示した場合は、フィールド105の内容は無効となる。
【0069】
図11に戻って、管理プロキシサーバ23からの応答メッセージを受信すると、結果フィールド104を判定し(533)、正常終了を示している場合は、管理情報ブロック33−iのキャッシュデータ有効期限334を上記応答メッセージが示す新たな有効期限105の値に変更する(534)。結果フィールド104がエラーの発生を示していた場合は、エラーフラグをオン状態にして(535)、この処理を終了する。
【0070】
自分が管理プロキシサーバ23の場合は、ステップ530から536に進み、管理情報ブロック33−iのWebデータ有効期限333をチェックする。Webデータ有効期限を過ぎていた場合は、エラーフラグをオン状態にして(535)、この処理を終了する。Webデータ有効期限を過ぎていなければ、新たなキャッシュデータ有効期限を計算し(537)、管理情報ブロック33−iのキャッシュデータ有効期限334と、エントリテーブル730のエントリEN−iにおけるキャッシュデータ有効期限731を新たな有効期限に変更し(538)、更新された管理情報ブロック33−iをディスク装置25の管理情報テーブル32の該当位置に書き込む(539)。
【0071】
尚、新たな有効期限としては、例えば、Webデータ有効期限の範囲内で、更新日時に所定時間を加えた日時が設定される。また、図10のステップ517では、上記エラーフラグの状態から正常終了か否かが判定される。
【0072】
図13は、Webコンテンツの取得処理518の詳細を示す。
【0073】
Webコンテンツの取得処理518では、Webサーバをアクセスして、Webコンテンツの取得要求REQ2を送信し(540)、Webサーバからの応答メッセージの受信を待つ(541)。取得要求REQ2を送信してから一定時間内にWebサーバからの応答がない場合は(542)、エラーメッセージを作成し(543)、処理を終了する。
【0074】
Webサーバから応答メッセージRES2を受信すると、管理情報ブロック33−iのキャッシュデータ有効期限334をチェックする(544)。キャッシュデータ有効期限内であれば、管理情報ブロック33−iにリンクしたキャッシュデータの変更が抑制されるため、Webコンテンツを含む要求元宛の応答メッセージを作成して(554)、処理を終了する。
【0075】
キャッシュデータ有効期限を過ぎていた場合、または、管理情報ブロック33−iにキャッシュデータ有効期限の値が未設定(未使用エントリ)の場合は、自分(サーバ)がキャッシュ管理機能を備えているか否かを判定する(545)。プロキシサーバ24−1〜24−nの場合は、キャッシュ管理機能を備えていないため、管理プロキシサーバ23に対してキャッシュ領域の割当てを要求し(546)、応答メッセージが受信されるのを待つ(549)。
【0076】
上記キャッシュ領域の割当て要求は、図14の(A)に示すように、ヘッダ部101、パケット種別102、URL103、要求領域サイズ111、Webデータ有効期限112を含むメッセージREQ3によって行われる。
【0077】
ヘッダ部101には、宛先アドレスとして管理プロキシサーバ23のアドレス、送信元アドレスとして自サーバのアドレスが設定される。パケット種別102には、このパケット(メッセージ)がキャッシュ領域の割当て要求であることを示すコードが設定され、URL103には、Webコンテンツ取得要求REQ1に付されていたURLの値が設定される。また、要求領域サイズ111には、Webサーバ応答メッセージRES2に含まれるWebコンテンツのデータ長から求まるキャッシュ領域サイズが設定され、Webデータ有効期限112には、上記Webサーバ応答メッセージRES2に付されているWebデータの有効期限が設定される。
【0078】
自分が管理プロキシサーバ23の場合は、上述したURL、要求領域サイズ、Webデータ有効期限を特定(548)した後、図15で詳述するキャッシュ領域の割当て処理560を実行する。これによって、新たなデータブロックリストにリンクした新たな管理情報ブロック33−Newが生成され、ディスク装置25の管理情報テーブル32に登録される。上記管理情報ブロック33−Newの登録位置は、URLから特定されるエントリEN−iの位置と対応している。
【0079】
管理プロキシサーバ23は、ステップ546で発生する他のプロキシサーバからのキャッシュ領域の割当て要求を受けた場合も、上記キャッシュ領域の割当て処理560と同様の処理を実行し、新たに生成された管理情報ブロック33Newを管理情報テーブル32に登録する。
【0080】
管理プロキシサーバ23からの応答は、図14の(B)に示すように、ヘッダ部101、パケット種別102、キャッシュ領域割当ての可否113からなる応答メッセージRES3によって行われる。ヘッダ部101には、宛先アドレスとして要求元のプロキシサーバのアドレス、送信元アドレスとして管理プロキシサーバ23のアドレスが設定される。パケット種別102には、このパケット(メッセージ)がキャッシュ領域割当て要求に対する応答であることを示すコードが設定される。
【0081】
図13に戻って、管理プロキシサーバ23からの応答メッセージRES3を受信した時、または自サーバでキャッシュ領域の割当て処理560を終了すると、新たなWebコンテンツの格納に必要なキャッシュ領域が確保できたか否かを判定する(549)。必要なキャッシュ領域が確保できなかった場合は、ステップ554でWebコンテンツを含む要求元宛の応答メッセージを作成し、処理を終了する。
【0082】
キャッシュ領域が確保できた場合は、ディスク装置25の管理情報テーブル32からエントリEN−iと対応する管理情報ブロック33−Newを読み出し、該管理情報ブロックが示すデータブロック先頭ポインタ337と、各データブロックリストの次リストポインタ341に従って、次々とデータブロックリスト34を読み出す(550)。
【0083】
次に、管理情報テーブル32上の管理情報ブロック33−Newの状態フラグ335をデータ更新中の状態に設定し(551)、既に読み出されているデータブロックリスト34が示すデータブロックアドレスに従って、新たなWebコンテンツをキャッシュ領域35に書き込む(552)。Webコンテンツの書き込みが完了すると、管理情報ブロック33−Newの状態フラグ335を更新完了状態に設定し(553)、Webコンテンツを含む要求元宛の応答メッセージを作成し(554)、処理を終了する。
【0084】
図15は、キャッシュ領域の割当て処理560の詳細を示す。
【0085】
キャッシュ領域の割当て処理では、要求されたURLの値を管理情報エントリ特定ルーチン52に与えることによって、エントリテーブル730上で上記URLに対応するエントリEN−iの位置を特定する(561)。次に、ディスク装置25の管理情報テーブル32から、上記エントリEN−iと対応した位置の管理情報ブロック33−iを読み出し(562)、管理情報データ33−iのキャッシュデータ有効期限をチェックする(563)。キャッシュデータ有効期限内であれば、キャッシュデータを保存する必要があるため、キャッシュ領域割当て結果を示すフラグを割当て不可状態に設定して(572)、この処理を終了する。
【0086】
キャッシュデータ有効期限切れの場合は、スーパーブロック・キャッシュ領域235のフリーブロックリスト数309とリスト当たりのフリーブロック数310を参照して、フリーブロックリストに要求領域サイズを満たすフリーブロックがあるか否かを判定する(564)。フリーブロック数が不足していた場合は、エントリテーブル730のキャッシュデータ有効期限731を参照して、有効期限切れのエントリを検索する(565)。
【0087】
有効期限切れのエントリが見つかった場合は、管理情報テーブル32から上記期限切れエントリに対応する管理情報ブロックを解放し、この管理情報ブロックにリンクしていたデータブロックリストをフリーブロックリストに追加(566)した後、ステップ564に戻る。期限切れ管理情報ブロックの解放は、有効性表示フラグ330をデータ無効状態に切り換えることによって達成される。また、データブロックリストをフリーブロックリストに変更したことに伴い、スーパーブロック・キャッシュ領域235におけるフリーブロックリスト最終ポインタ(P04)308とフリーブロックリスト数309の値が更新され、フリーブロックリスト・キャッシュ領域72には新たな最終フリーブロックリストの内容が書き込まれる。
【0088】
キャッシュデータ有効期限切れの全ての管理情報ブロックを解放しても、要求領域サイズを満たすフリーブロック数が確保できない場合は、キャッシュ領域割当て結果を示すフラグを割当て不可状態に設定して(572)、この処理を終了する。
【0089】
フリーブロック数が要求領域サイズを満たした場合は、新たな管理情報ブロックを生成し(567)、要求領域サイズに見合った個数のフリーブロックリストを選択して、上記管理情報ブロックにデータブロックリストとしてリンクさせる(568)。また、フリーブロックリストの数が減少したことに伴って、スーパーブロック・キャッシュ領域71におけるフリーブロックリスト先頭ポインタ(P03)307とフリーブロックリスト数309の値を更新する(569)。上記新たな管理情報ブロックには、ステップ548で特定されたURL(331)とWebデータ有効期限(333)が設定され、キャッシュデータ登録時刻332には現在の日時が設定される。また、キャッシュデータ有効期限334には、Webデータ有効期限の範囲内で現在の日時に所定時間を加えた値が設定され、状態フラグ335は初期状態に設定される。
【0090】
上記管理情報ブロックは、エントリテーブルのエントリEN−iと対応した管理情報ブロックとして、ディスク装置25の管理情報テーブル32に書き込まれ(570)、キャッシュ領域割当て結果を示すフラグを割当て可能状態に設定して(571)、この処理が終了する。
【0091】
図16は、管理プロキシサーバ23が、他のプロキシサーバから要求メッセージREQ3を受信した時に実行するキャッシュ領域割当てルーチン53のフローチャートを示す。
【0092】
キャッシュ領域割当てルーチン53では、受信メッセージからURL、要求領域サイズ、Webデータ有効期限を特定し(575)、図15で説明したキャッシュ領域の割当て処理560を実行する。割当て処理560が終了すると、キャッシュ領域割当て結果を示すフラグの状態に応じて、図14に示した応答メッセージRES3を生成し、要求元のプロキシサーバに送信する(576)。
【0093】
図17は、管理プロキシサーバ23が、他のプロキシサーバから要求メッセージREQ5を受信した時に実行するキャッシュデータ有効期限延長ルーチン54のフローチャートを示す。
【0094】
最初に、要求メッセージREQ5で指定されたURLの値を管理情報エントリ特定ルーチン52に与えることによって、エントリテーブル730上で上記URLに対応するエントリEN−iの位置を特定する(580)。次に、ディスク装置25の管理情報テーブル32から、上記エントリEN−iと対応した位置の管理情報ブロック33−iを読み込み(581)、要求メッセージREQ5指定されたURLと上記管理情報ブロック33−iが示すURL331とを比較する(582)。URLが不一致の場合は、エラー発生を示す応答メッセージRES5を要求元のプロキシサーバに送信して(589)、このルーチンを終了する。
【0095】
URLが一致した場合は、管理情報ブロック33−iが示すWebデータ有効期限333をチェックする(583)。もし、Webデータ有効期限が期限切れとなっていた場合は、エラー発生を示す応答メッセージRES5を要求元のプロキシサーバに送信して(589)、このルーチンを終了する。
【0096】
Webデータ有効期限内となっていた場合は、管理情報ブロック33−iが示すキャッシュデータ有効期限334をチェックする(584)。キャッシュデータ有効期限が期限切れとなっていた場合は、新たな有効期限を計算し(585)、エントリテーブル730のエントリEN−iが示すキャッシュデータ有効期限731と、ディスク装置25の管理情報テーブル32における管理情報ブロック33−iのキャッシュデータ有効期限334を新たな有効期限に変更する(586)。この後、結果フィールド104が正常終了を示し、フィールド105が上記新たな有効期限を示す応答メッセージRES5を要求元のプロキシサーバに送信して(588)、このルーチンを終了する。
【0097】
キャッシュデータ有効期限が期限切れとなっていなかった場合は、現在の有効期限をそのまま新たな有効期限に設定し(587)、ステップ588を実行する。
【0098】
図18は、本発明の変形例として、管理プロキシサーバ23にフリーブロックを定期的に確保させる場合に実行するフリーブロック確保処理ルーチン55のフローチャートを示す。
【0099】
このルーチン55は、タイマ割り込みによって定期的に実行される。先ず、スーパーブロック・キャッシュ領域71に格納されているスーパーブロック30を参照し、フリーブロックリスト数309の値を閾値Thと比較する(591)。フリーブロックリスト数が閾値(Th)以上の場合は、何もせずにこのルーチンを終了する。
【0100】
フリーブロックリスト数が閾値Thよりも少ない場合は、エントリテーブル730のサーチポイントを示すパラメータiの値を初期化(592)した後、パラメータiの値をインクリメントし(593)、パラメータiの値をエントリテーブル730のエントリ数nと比較する(594)。i>nとなった場合は、このルーチンを終了し、そうでなければ、エントリテーブル730の第iエントリEN−iのキャッシュデータ有効期限731が期限切れとなっているか否かをチェックする(595)。有効期限731が期限切れとなっていなければ、ステップ593に戻り、パラメータiの値をインクリメントして、同様の処理を繰り返す。
【0101】
キャッシュデータ有効期限731が期限切れとなっていた場合は、第iエントリEN−iに対応する管理情報ブロック33−iを無効にし、この管理情報ブロックにリンクされていたデータブロックリスト群34−1〜34−mを最後のフリーブロックリスト31−kにリンクする(596)。
【0102】
尚、管理情報ブロック33−iは、有効性表示フラグ330を無効状態に設定することによって無効にできる。また、解放されたデータブロック群は、管理情報ブロック33−iが示すポインタ337の値を最後のフリーブロックリスト31−kの次リストポインタ311に設定することによって、フリーブロックリスト群にリンクできる。
【0103】
この時、スーパーブロック・キャッシュ領域71において、フリーブロックリストの最終ポインタ(P04)308に、解放された最後のデータブロックを指すポインタアドレスを設定し、解放されたフリーブロックリストの個数に応じて、フリーブロックリスト数309の値を更新しておく。更新されたフリーブロックリスト数を閾値Thと比較し(597)、フリーブロックリスト数がThに達していなければステップ593に戻り、Th以上となっていた場合は、このルーチンを終了する。
【0104】
上記実施例では、フリーブロック確保処理ルーチン55を実行した時、エントリのチェックが常にエントリテーブル730の先頭から開始されている。しかしながら、パラメータiの値がエントリ数nに達する前にフリーブロックリスト数が閾値Th以上となった場合、パラメータiの値を保存して処理を終了し、次回は、このパラメータ値を初期値として期限切れの管理情報ブロックをサーチするようにしてもよい。この場合、パラメータiの値がnを超えたら初期値1に戻すことによって、エントリテーブルを循環的にサーチし、保存された最初のパラメータ値に達した時、処理を終了する。
【0105】
このように、定期的にフリーブロックを確保しておくと、新たなWebコンテンツが発生した時、図15に示したキャッシュ領域の割当て処理560の実行中に、期限切れデータブロックリストをフリーブロックリストに変更する必要がなくなるため、クライアント端末からのWebコンテンツ取得要求に対する応答時間を短縮することが可能となる。
【0106】
上述した実施例では、プロキシサーバ24からのキャッシュ領域の割当て要求REQ3に対して管理プロキシサーバ23が応答した時、プロキシサーバ24が、ディスク装置25から新たに生成された管理情報ブロックを読み出し、これにリンクしたデータブロックリストを読み出して、Webコンテンツをキャッシュ領域に書き込んでいる。
【0107】
本発明の他の実施例として、管理プロキシサーバ23が、参照すべきデータブロックリストを応答メッセージRES3でプロキシサーバ24に通知し、プロキシサーバ24が、この応答メッセージから抽出したデータブロックリストが示すアドレスに従って、Webコンテンツをキャッシュ領域に書き込むようにしてもよい。このようにすれば、Webコンテンツ書込み動作に先行したディスク装置のアクセス回数を減らすことができるため、処理時間を短縮することが可能となる。
【0108】
図19は、本発明によるアクセス中継装置2の第2の実施例を示す。
【0109】
本実施例では、管理プロキシサーバ23の代わりに、キャッシュ管理機能を備えたディスク管理装置26が用いられる。この場合、ディスク管理装置26には、負荷分散装置22によるクライアント端末からのWebコンテンツ取得要求の割当てはなく、ディスク管理装置26は、プロキシサーバ24−1〜24−nからの要求に応じたキャッシュ領域の割当てと、有効期限の更新、有効期限切れキャッシュデータ領域の解放のための処理を担当する。
【0110】
図20は、本発明によるアクセス中継装置2の動作シーケンスの変形例として、上記第2実施例のアクセス中継装置2に適した動作シーケンスを示す。
【0111】
本実施例では、プロキシサーバ24が、Webサーバ3からWebコンテンツを含む応答メッセージRES2を受信したとき、ディスク管理装置26に対して、キャッシュ領域へのWebコンテンツの格納要求REQ4を発行する。
【0112】
ディスク管理装置26は、要求REQ4に含まれるWebコンテンツのデータ長からキャッシュ領域サイズを計算して、キャッシュ領域の割当て(S06)を行い、このキャッシュ領域に対して要求REQ4が示すWebコンテンツの書き込み(S07)を行い、処理の終了を示す応答メッセージRES3を要求元のプロキシサーバに送信する。
【0113】
プロキシサーバ24は、上記応答メッセージRES3を受信すると、Webコンテンツ要求元のクライアント端末1に、Webコンテンツを含む応答メッセージRES1’を送信する。但し、クライアント端末1への応答メッセージRES1’は、破線で示すように、ディスク管理装置26へのWebコンテンツの格納要求時に送信してもよい。
【0114】
本実施例におけるディスク管理装置26の動作は、第1実施例における管理プロキシサーバ23自身が、WEbサーバから取得したWebコンテンツをキャッシュデータとして蓄積する場合の動作に相当している。従って、ディスク管理装置26は、基本的には図13に示したWebコンテンツ取得処理518におけるステップ544以降の動作を実行すればよい。また、各プロキシサーバにとっては、自分でキャッシュデータの蓄積処理を実行する必要がないため、Webコンテンツ取得処理518において、Webサーバから応答メッセージを受信(541)した後で、要求メッセージREQ4を作成し、これをディスク管理装置26に送信すればよい。
【0115】
上述したように、キャッシュ領域の管理機能とWebコンテンツの書き込み機能を1つの装置に集中した場合、プロキシサーバ24の負荷を軽減できるため、クライアント端末への応答を迅速化することが可能となる。このような機能分担は、図1に示した実施例にも適用できる。この場合、管理プロキシサーバ23は、キャッシュデータ管理のための負荷が増加するため、クライアントからのWebコンテンツ取得要求処理の負荷を他のプロキシサーバよりも軽くする必要がある。
【0116】
以上の実施例では、要求されたWebコンテンツがキャッシュデータ中に見つかった時、Webコンテンツのキャッシュデータ有効期限が切れていた場合に有効期限を延長したが、アクセス頻度の高いWebコンテンツがキャッシュデータとして長時間保持されるように、期限切れには関係なく、キャッシュデータ読み出しの都度、Webコンテンツの有効期限を延長するようにしてもよい。
【0117】
【発明の効果】
以上の実施例から明らかなように、本発明によれば、Webサイトから取得したコンテンツが複数のプロキシサーバに共有のキャッシュデータとしてディスク装置に蓄積されるため、キャッシュデータ有効期間内のWebコンテンツについては、Webアクセス中継装置からWebサーバへの重複したアクセスを回避でき、Webサイトの負荷を軽減することが可能となる。また、キャッシュ領域を複数のプロキシサーバで共用したことによって、キャッシュ用ディスク装置のメモリ容量を有効に利用したWebアクセス中継装置を提供できる。
【図面の簡単な説明】
【図1】本発明によるWebアクセス中継装置2を含む通信ネットワークシステムの構成図。
【図2】本発明によるWebアクセス中継装置2の動作シーケンスを示す図。
【図3】Webアクセス中継装置2を構成している管理プロキシサーバ23の構成図。
【図4】Webアクセス中継装置2を構成しているディスク装置25に形成されるデータ構造の1例を示す図。
【図5】図4に示したスーパーブロックの内容の1例を示す図。
【図6】図4に示した管理情報ブロック33と、これにリンクしたデータブロックリスト34の内容の1例を示す図。
【図7】図4に示したフリーブロックリスト31の内容の1例を示す図。
【図8】管理プロキシサーバ23がメモリ装置234に備える要求処理モジュール41の詳細(図A)と、メモリ装置235に形成されるデータ構造(図B)の1例を示す図。
【図9】メモリ領域72に形成されるエントリテーブル730の内容と管理情報キャッシュ領域74との関係を説明するための図。
【図10】管理プロキシサーバ23とプロキシサーバ24が実行するWebコンテンツ取得要求処理ルーチン51の1実施例を示すフローチャート。
【図11】図10におけるキャッシュデータ有効期限更新処理516の詳細を示すフローチャート。
【図12】プロキシサーバ24から送信されるキャッシュデータ有効期限延長要求メッセージREQ5(図A)と、管理プロキシサーバ23からの応答メッセージRES5(図B)の1例を示す図。
【図13】図10におけるWebコンテンツ取得要求処理518の詳細を示すフローチャート。
【図14】プロキシサーバ24から送信されるキャッシュ領域割当て要求メッセージREQ3(図A)と、管理プロキシサーバ23からの応答メッセージRES3(図B)の1例を示す図。
【図15】図13におけるキャッシュ領域割当て処理560の詳細を示すフローチャート。
【図16】管理プロキシサーバ23が実行するキャッシュ領域割当てルーチン53の詳細を示すフローチャート。
【図17】管理プロキシサーバ23が実行するキャッシュデータ有効期限延長ルーチン54の詳細を示すフローチャート。
【図18】管理プロキシサーバ23が実行するフリーブロック確保処理ルーチン55の1実施例を示すフローチャート。
【図19】本発明によるWebアクセス中継装置2の第2の実施例を示すブロック構成図。
【図20】図19に示したWebアクセス中継装置2に適した動作シーケンスを示す図。
【符号の説明】
1:クライアント端末、2:アクセス中継装置、3:Webサーバ、
21:パケット中継装置、22:負荷分散装置、23:管理プロキシサーバ、
24:プロキシサーバ、25:ディスク装置、26:ディスク管理装置、
30:スーパーブロック、31:フリーブロックリスト、32:管理情報テーブル、34:データブロックリスト、35:データキャッシュ領域、
350:データブロック、71:スーパーブロック・キャッシュ領域、
72:フリーブロックリスト・キャッシュ領域、73:エントリテーブル領域、74:管理情報キャッシュ領域、730:エントリテーブル。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a Web access relay device, and more particularly, to a cache method for Web content data acquired from a Web server.
[0002]
[Prior art]
With the spread of the Internet, video distribution services for movies and the like, and services that have been provided at sales counters of various companies until now, have been provided through the Internet. In addition, with the progress of communication technology, an environment has been established in which various services can be enjoyed from mobile phones in addition to home and office terminals.
[0003]
In a Web access method in which a client terminal accesses a Web server directly to request a service, service requests from a large number of clients are concentrated on a popular Web site. In this case, since the communication line capacity of the Internet and the data processing capacity of the Web server are limited, it is difficult to process intensive requests from users on the Web site depending on the time of day or the access destination. A situation arises in which no response is returned.
[0004]
The above problem is caused, for example, by installing an access relay device called a proxy server between a client terminal and a Web server, storing Web contents acquired from the Web server as cache data in the proxy server, If the requested Web content is found in the cache data, it can be improved by omitting access to the Web server and transmitting the cache data to the request source.
[0005]
[Problems to be solved by the invention]
However, since the proxy server also has a capacity limitation, if the number of connected users increases and Web access requests are concentrated, one proxy server cannot process the Web access request. For this reason, for example, one Web access relay device is composed of a plurality of proxy servers connected to a load distribution device, and a Web access request from a user is distributed to the plurality of proxy servers, thereby eliminating the overflow. Has been proposed.
[0006]
In a conventional load distribution type Web access relay device, an individual cache memory (disk device) is provided for each proxy server, and a plurality of proxy servers operate independently of each other. Therefore, when the requested Web content is not found in the cache data, each proxy server accesses the Web site independently, and stores the Web content acquired from the Web server in each individual cache memory. For this reason, there is a problem that when another proxy server receives an acquisition request for Web contents already held as cache data by one proxy server, access to the Web site occurs repeatedly.
[0007]
In addition, since the same Web content is redundantly stored in a plurality of proxy servers, there is a problem that the use efficiency of the cache memory as the entire Web access relay device is reduced.
[0008]
An object of the present invention is to improve the use efficiency of a cache memory and reduce the frequency of access to a Web server in a Web access relay device including a plurality of proxy servers.
[0009]
[Means for Solving the Problems]
In order to achieve the above object, a Web access relay device of the present invention includes a disk device shared by a plurality of proxy servers, and each proxy server refers to shared cache data stored in the disk device, It is characterized by processing a Web content acquisition request from a client. According to the present invention, since the cache memory is shared by a plurality of proxy servers, if one of the proxy servers acquires the Web content from the Web server, the same Web content can be used by all the proxy servers, and the Web site can be used. Access times can be reduced. Further, since the same Web content can be prevented from being repeatedly stored, the use efficiency of the cache memory can be improved.
[0010]
In one embodiment of the present invention, one of the plurality of proxy servers operates as a management server having a cache area management function, and releases a cache area by invalidating accumulated Web contents and renewing a new Web area. It is characterized in that a cache area is allocated to contents.
[0011]
In this case, when the proxy server other than the management server obtains the Web content from the Web server, the proxy server requests the management server to allocate a cache area, and writes the Web content to the cache area allocated by the management server. However, a proxy server other than the management server may request the management server to accumulate Web contents, and the management server may write the Web contents to the empty cache area.
[0012]
One feature of the present invention is that the management server has means for designating the cache data expiration date for each Web content stored in the disk device, and invalidates the Web content whose cache data expiration date has expired. Thus, an empty area is secured in the cache memory.
[0013]
The cache data expiration date is the storage expiration date of the Web content guaranteed inside the Web access relay device of the present invention, and is calculated based on the cache registration date within the range of the content expiration date specified by the Web server. The cache data expiration date can be extended, and Web contents with a high request frequency can be retained in the disk device for a long time by extending the cache data expiration date one after another.
[0014]
In another embodiment of the present invention, each proxy server is provided with a disk management device for releasing a cache area in a disk device and allocating a cache area to new Web content, instead of the management proxy server described above. Is characterized in that the Web content acquired from the Web server is stored in the disk device in cooperation with the disk management device.
[0015]
In this case, each proxy server requests the disk management device to allocate a cache area, and writes the Web content to the cache area allocated by the disk management device. However, each proxy server may request the disk management device to accumulate Web contents, and the disk management device may write the Web contents in an empty cache area.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0017]
FIG. 1 shows a configuration of a communication network system including a Web access relay device 2 according to the present invention.
[0018]
The Web access relay device 2 is connected to a plurality of client terminals 1 (1-1 to 1-L) via a communication network 11 such as a LAN or the Internet, and the Web server 3 (3-1 to 3-1) via the Internet 12. -J).
[0019]
The Web access relay device 2 is connected to the packet relay device (router) 21 connected to the communication network 11 and the Internet 12, the load distribution device 22 connected to the packet relay device 21, and connected to the load distribution device 22. It comprises a plurality of proxy (Proxy) servers 23 and 24 (24-1 to 24-n) and a disk device 25 connected to these proxy servers. In the disk device 25, Web contents acquired from the Web servers 3-1 to 3-J are accumulated as cache data shared by the plurality of proxy servers 23 and 24, as described later.
[0020]
The Web content acquisition request transmitted from the client terminal 1 is received by the packet relay device 21 and transferred to the load distribution device 22. The load distribution device 22 sequentially distributes the Web content acquisition request received from the packet relay device 21 to the proxy servers 23, 241-1 to 24-n according to a predetermined load distribution algorithm.
[0021]
In the present embodiment, one of the plurality of proxy servers sharing the disk device 25, the server 23, has a cache management function. The proxy server 23 allocates a cache area and deletes unnecessary cache data when new Web content to be registered in the disk device 25 as cache data occurs. In the following description, the proxy server 23 having such a cache area management function is referred to as a “management proxy server”.
[0022]
The other proxy servers 24-1 to 24-n request the management proxy server 23 to allocate a cache area when acquiring new Web content from the Web server, and request the management proxy server 23 to allocate a cache area. To write Web contents.
[0023]
FIG. 2 shows an operation sequence of the access relay device 2 according to the present invention.
[0024]
Here, in order to simplify the explanation, the packet relay device 21 and the load distribution device 22 related to the message transfer operation are omitted, and the Web content acquisition request from the management proxy server 23 and the client terminal 1-1 is distributed. A message transmission / reception operation between a given arbitrary proxy server 24-i and an arbitrary Web server 3-j that provides Web contents will be described.
[0025]
For example, the proxy server 24-i that has received the Web content acquisition request REQ1 from the client terminal 1-1 via the load distribution device 22 checks the cache data stored in the disk device 25 (step S01), and receives the request. If the Web content is stored as cache data (S02), the requested Web content is read from the cache area (S03), a response message RES1 including the Web content is created, and the response message RES1 including the Web content is sent to the requesting client terminal 1-1. Send.
[0026]
When the Web content requested by the client terminal does not exist in the disk device 25, the proxy server 24-i transmits a Web content acquisition request REQ2 to the Web server 3-j that provides the Web content. The Web server 3-j searches for the Web content specified by the acquisition request REQ2 (S04), and returns a response message RES2 including the Web content to the proxy server 24-i.
[0027]
The proxy server 24-i analyzes the response message RES2 from the Web server 3-j (S05), and instructs the management proxy server 23 to issue a cache area allocation request REQ3 in order to store this in the disk device 24 as new cache data. Put out. The cache area allocation request REQ3 specifies the size of a memory area required for storing Web contents.
[0028]
The management proxy server 23 that has received the cache area allocation request REQ3 selects a cache area to be allocated to new Web content from the free areas of the cache area defined in the disk device 25 (S06), and responds with the allocation result. The requesting proxy server 24-i is notified by the message RES3. The proxy server 24-i writes the Web content in the cache area specified by the response message RES3 (S07), creates a response message RES1 'including the Web content, and issues the requesting client terminal 1-1. Send to However, the response message RES1 'addressed to the client terminal 1-1 may be transmitted immediately upon receipt of the response message RES2 from the Web server, as indicated by the broken line.
[0029]
FIG. 3 shows the configuration of the management proxy server 23.
[0030]
The management proxy server 23 includes a processor 231, a communication interface 232 for connecting to the load distribution device 22 and another proxy server 24, a disk input / output interface 233 for connecting to the disk device 25, and a memory for storing programs. 234 and a memory 235 for storing data. These elements are interconnected by an internal bus 236. The memory 234 includes, as control software executed by the processor 231, a packet transfer control module 40 for controlling transmission and reception of a packet (message) communicated with another device via the communication interface 232. A request processing module 41 described in detail with reference to FIG. 8 and other control modules are stored.
[0031]
The other proxy servers 24-1 to 24-n also have the same configuration in hardware as the management proxy server 23, and are formed in the software prepared in the memory 234 and the memory 235 as described later. Some of the data tables are different.
[0032]
FIG. 4 shows an example of a data structure formed in the disk device 25.
[0033]
In the disk device 25, for example, a super block 30, a management information table 32 in which a plurality of management information blocks 33-1 to 33-n are registered, and a cache area 35 for storing Web data are formed. . The cache area 35 is composed of a plurality of fixed-length data blocks 350-1 to 350-q. The address of a free area (free data block) in the cache area 35 is stored in the free block list 31 (31-1) linked to the super block 30. To 31-k).
[0034]
Each management information block 33 of the management information table 32 corresponds to each Web content registered as cache data in the cache area 35. In order to hold one Web content, a plurality of data blocks in the cache area 35 are required. The addresses of these data blocks are indicated by a data block list 34 (34-1 to 34-m) linked to each management information block 33.
[0035]
FIG. 5 shows an example of the contents of the super block 30.
[0036]
The super block 30 is an information block indicating overall control parameters required when managing cache data with the data structure shown in FIG. In the example shown here, the super block 30 includes a total number 301 of data blocks prepared in the disk device 25, a block size 302 as a unit, and a start position of the management information table 32 (the first management information block 33-1). ), A management information table pointer (P01) 303 indicating the number of management information blocks 304 that can be registered in the management information table 33, and a cache indicating the start position of the cache area 35 (the address of the first data block 350-1). An area pointer (P02) 305, the number (q) 306 of cache data blocks included in the cache area 35, a free block list head pointer (P03) 307 indicating the head list 31-1 of the free block list group, and a free block Indicates the final list 31-k of the list group And Lee block list end pointer (P04) 308, show a free number of block list 309 constituting the free block list group, a free block number 310 per free block list.
[0037]
FIG. 6 shows an example of the contents of one management information block 33-i and the data block list 34 (34-1 to 34-3) linked to this management information block.
[0038]
The management information block 33-i includes management information of the Web content stored in the cache area, pointer information required when reading the Web content from the cache area, and a validity display indicating whether the information is valid. Flag 330. In the example shown here, the management information block 33-i includes the URL (final transmission destination address of the Web content acquisition request) 331 specified in the Web content acquisition request and the Web content as the management information of the Web content. A time 332 registered as cache data, a web data expiration date 333, a cache data expiration date 334 guaranteed in the system, a status flag 335 indicating an update status of the cache data, and a cache data size 336, The pointer information includes the head pointer 337 of the data block list group.
[0039]
Note that the Web data expiration date 333 indicates the expiration date of the Web content data indicated by the response message RES2 returned from the Web server 3, and the cache data expiration date 334 indicates the disk device 25 guaranteed by the access relay device 2. Means the expiration date of the cached data within.
[0040]
The data block list 34-1 referred to according to the head pointer 337 includes a plurality of data block addresses 340-1 to 340-n and a next list pointer 341. The next data block list is linked by the next list pointer 341. Thereby, as shown in the figure, an arbitrary number of data block lists can be linked to one management information block 33-i. In the next list pointer 341 of the last data block list, a specific value indicating that there is no subsequent data block list is set.
[0041]
A plurality of data blocks in the cache area 35 are allocated to the Web content according to the value of the cache data size 336. Since one data block list 34 specifies n consecutive data block addresses in the cache area 35, for example, when the value of the cache data size 336 is equivalent to L data blocks, the management information block 33-i L / n data block lists are linked, and writing and reading of Web contents are performed according to the data block addresses A01 to A0n, A11 to A1n, A21, A22,... Indicated by these data block list groups.
[0042]
FIG. 7 shows an example of the contents of the free block lists 31-1 to 31-k.
[0043]
The position of the first free block list 31-1 is specified by the pointer (P03) 307 included in the super block 30, and the position of the last free block list 31-k is specified by the pointer (P04) 308. The number k of free block lists is specified by the number 309 of free block lists included in the super block 30.
[0044]
Each free block list includes a plurality of free block addresses 310-1 to 310-n and a next list pointer 311 indicating the position of the next free block list. In the next list pointer 319 of the last free block list 31-k, a specific value indicating that there is no subsequent free block list is set.
[0045]
Each free block list has the same size as the data block list 34 shown in FIG. When the cache data becomes unnecessary, the data block area is released in units of a data block list, and the released data block list is linked to the super block 30 as a free block list, so that a cache area for a new Web content is created. Secured.
[0046]
FIG. 8 shows an example of the details of the request processing module 41 provided in the memory 234 of the management proxy server 23 and a data structure formed in the memory 235.
[0047]
As shown in FIG. 8A, the request processing module 41 includes a super block cache initialization / termination processing routine 50, a Web content acquisition request processing routine 51, a management information entry specifying routine 52, a cache area allocation It comprises a routine 53 and a cache data expiration date extension routine 54. In the memory 235, as shown in FIG. 8B, a super block cache area 71, a free block list cache area 72, an entry table area 73, and a management information cache area 74 are defined. You.
[0048]
The contents of the super block 30 read from the disk device 25 are stored in the super block cache area 71. The management proxy server 23 executes the super block cache initialization / termination processing routine 50 at the time of startup, reads out the contents of the super block 30 from the disk device 25, and stores this in the super block cache area 71. Thereafter, by referring to / updating the data stored in the super block cache area 71, the overhead due to the access to the disk device 25 is reduced. When the system is stopped, the contents of the superblock cache area 71 are written back to the superblock 30 of the disk device 25 by the superblock cache initialization / termination processing routine 50, so that the data consistency at the time of restart is maintained. Keep.
[0049]
The free block list cache area 72 stores the contents of the final list 31-k of the free block list group specified by the pointer P04. By holding the contents of the last free block list 31-k in the memory device 235, the number of accesses to the disk device 25 can be reduced when a new free block list is added to the existing list group. .
[0050]
In the entry table area 73, as shown in FIG. 9, an entry table 730 including a plurality of entries EN-1 to EN-n each indicating a cache data expiration date 731 and a management information pointer 732 is formed. These entries EN-1 to EN-n correspond in position to the management information blocks 33-1 to 33-n on the management information table 32 formed in the disk device 25. For example, the entries EN-i The cache data expiration date 731 indicates the cache data expiration date 334 of the corresponding management information block 33-i on the management information table 32. The cache data expiration date 731 on the entry table is referred to when the number of free block lists 31-1 to 31-k is insufficient to select a data block list to be released as a free block list.
[0051]
The management information cache area 74 is used to temporarily hold the management information block read from the management information table 32. The management information cache area 74 has a memory capacity enough to store a predetermined number of management information blocks 740-1 to 740-p (p <n) smaller than the management information table 32. The management information block is linked to any entry of the entry table 730 by the management information pointer 732. By effectively using the management information block held in the cache area 74, the number of accesses to the management information table 32 can be reduced and the cache data can be read from the disk device 25.
[0052]
In the request processing module 41, the Web content acquisition request processing routine 51 is activated when a Web content acquisition request is received from the client terminal, whereby the steps S01 to S03, S05, and S07 described in FIG. 2 are executed. You.
[0053]
The management information entry specifying routine 52 is for specifying one entry EN-i on the entry table 730 corresponding to the URL, based on the value of the URL specified in the Web content acquisition request. The position of the entry EN-i is specified by, for example, applying a predetermined hash function to convert a given URL value into an address value in the entry table 730.
[0054]
The cache area allocation routine 53 is for selecting a data block to be allocated to the Web content from the free block lists 31-1 to 31-k when new Web content to be registered as cache data is generated. is there. The cache data expiration date extension routine 54 is for extending the retention period of cache data when, for example, there is a request from a client terminal to acquire Web content whose cache data expiration date has passed.
[0055]
Among the above-mentioned software elements, the super block cache initialization / termination processing routine 50, the cache area allocation routine 53, the cache data expiration date extension routine 54, the super block cache area 71, and the free block list cache area 72 The proxy server is unique to the management proxy server 23. The other proxy servers 24-1 to 24-n store a Web content acquisition request processing routine 51, a management information entry specifying routine 52, an entry table area 73, and a management information cache area 74. Have. Since the proxy servers 24-1 to 24-n do not need the cache data expiration date 731 on the entry table 730, the entries EN-1 to EN-n may have an entry table structure indicating only the management information pointer 732. Good.
[0056]
FIG. 10 shows a flowchart of the Web content acquisition request processing routine 51 executed when the management proxy server 23 and the proxy servers 24-1 to 24-n receive the Web content acquisition request REQ1 from the client terminal.
[0057]
In the Web content acquisition request processing routine 51, the URL is extracted from the received request REQ1, and the position of the entry EN-i corresponding to the URL is specified on the entry table 730 (Step 510). The position of the entry EN-i is specified by giving the value of the URL extracted from REQ1 and executing the management information entry specifying routine 52.
[0058]
When the position of the entry EN-i is specified, the management information pointer 732 of the entry is checked to determine whether or not the management information block corresponding to the URL is held in the management information cache area 74 ( 511). If the value of the management information pointer has been set in the entry EN-i, the management information block is read from the cache area 74 according to the pointer value (512). When the value of the management information pointer is not set in the entry EN-i, the management information block at the position corresponding to the entry EN-i is read from the management information table 32 of the disk device 25 (513). In the following description, the management information block read in the above step 512 or 513 is particularly defined as a management information block 33-i.
[0059]
Next, the value of the URL extracted from REQ1 is compared with the value of the URL 331 indicated by the management information block 33-i (514). Here, the reason for comparing the URL is that the management information entry identification routine 52 obtains the address on the entry table 730 by compressing the URL value with a hash function. This is because complete identity is not guaranteed between the URL of the management information block 33-i and the URL extracted from REQ1.
[0060]
If the URLs do not match, Web content acquisition processing 518 described in detail in FIG. 13 is executed, and a response message including the Web content acquired from the Web server is transmitted to the requesting client terminal (519). This routine ends. If the URLs match, a response process using cache data described below is performed.
[0061]
First, the cache data expiration date indicated by the management information block 33-i is checked to determine whether the cache data has expired (515). If the cache data has not expired, the status flag 335 of the management information block 33-i is checked (520). If the status flag indicates that the data update is being performed, the process proceeds to the next step 521 after the data update is completed. If the cache data expiration date has passed, a cache data expiration date update process 516 described in detail in FIG. 11 is executed. If the expiration date cannot be updated normally, it is determined that there is a cache data problem, and the Web content acquisition process 518 is executed.
[0062]
If the expiration date has been successfully updated, the process proceeds to step 521, where the management information pointer 732 of the entry EN-i in the entry table is checked. If the management information pointer has been set in the entry EN-i, the process proceeds to step 525. If the management information pointer is not set, a free block is secured in the management information cache area 74 (522), and a management information pointer pointing to the free block is set in the entry EN-i of the entry table 730 (523), and the management is performed. The management information block 33-i is registered in the empty block of the information cache area 74 (524).
[0063]
In step 525, the data block list group 34 linked to the management information block is read from the disk device 25 according to the pointer 337 included in the management information block 33-i. Thereafter, according to the data block address indicated by each data block list, cache data (Web content) is sequentially read from the cache area 35 of the disk device (526), a response message including the Web content is created (527), and the request source is prepared. A response message is transmitted to the client terminal (519).
[0064]
FIG. 11 shows details of the cache data expiration date update process 516.
[0065]
In the cache data expiration date updating process 516, it is determined whether or not the server (server) has the cache management function (530). In the case of the proxy servers 24-1 to 24-n, which do not have the cache management function, the proxy server 23 requests the management proxy server 23 to extend the validity period of the cache data (531), and confirms that the response message is received. Wait (532).
[0066]
The request for extending the validity period of the cache data is performed by a message REQ5 including a header portion 101, a packet type 102, and a URL 103, as shown in FIG.
[0067]
In the header section 101, the address of the management proxy server 23 is set as the destination address, and the address of the server itself is set as the source address. In the packet type 102, a code indicating that this packet (message) is a request to extend the cache data expiration date is set, and in the URL 103, the value of the URL attached to the Web content acquisition request REQ1 is set. .
[0068]
As shown in FIG. 12B, a response from the management proxy server 23 is made by a response message RES5 including a header section 101, a packet type 102, a result 104, and a new expiration date 105. A code indicating that this packet (message) is a response to the cache data expiration date extension request is set in the packet type 102, and when the result field 104 indicates that an error has occurred, the contents of the field 105 become invalid. .
[0069]
Returning to FIG. 11, when the response message from the management proxy server 23 is received, the result field 104 is determined (533). If it indicates a normal end, the cache data expiration date 334 of the management information block 33-i is set. The value is changed to the value of the new expiration date 105 indicated by the response message (534). If the result field 104 indicates that an error has occurred, the error flag is turned on (535), and the process ends.
[0070]
If it is the management proxy server 23, the process proceeds from step 530 to step 536, where the Web data expiration date 333 of the management information block 33-i is checked. If the Web data expiration date has passed, the error flag is turned on (535), and this processing ends. If the Web data expiration date has not expired, a new cache data expiration date is calculated (537), and the cache data expiration date in the management information block 33-i and the cache data expiration date in the entry EN-i of the entry table 730 are calculated. 731 is changed to a new expiration date (538), and the updated management information block 33-i is written to the corresponding position in the management information table 32 of the disk device 25 (539).
[0071]
As the new expiration date, for example, a date and time obtained by adding a predetermined time to the update date and time is set within the range of the Web data expiration date. In step 517 in FIG. 10, it is determined whether the error flag is normal or not based on the status of the error flag.
[0072]
FIG. 13 shows details of the Web content acquisition processing 518.
[0073]
In the Web content acquisition processing 518, the Web server is accessed to transmit a Web content acquisition request REQ2 (540), and waits for reception of a response message from the Web server (541). If there is no response from the Web server within a certain period of time after transmitting the acquisition request REQ2 (542), an error message is created (543), and the process ends.
[0074]
When the response message RES2 is received from the Web server, the cache data expiration date 334 of the management information block 33-i is checked (544). If the cache data is within the validity period, the change of the cache data linked to the management information block 33-i is suppressed, so that a response message addressed to the request source including the Web content is created (554), and the process ends. .
[0075]
If the cache data expiration date has passed, or if the value of the cache data expiration date has not been set (unused entry) in the management information block 33-i, whether or not the self (server) has the cache management function Is determined (545). Since the proxy servers 24-1 to 24-n do not have a cache management function, the proxy servers 24-1 to 24-n request the management proxy server 23 to allocate a cache area (546) and wait for a response message to be received (546). 549).
[0076]
The request for allocating the cache area is performed by a message REQ3 including a header section 101, a packet type 102, a URL 103, a required area size 111, and a Web data expiration date 112, as shown in FIG.
[0077]
In the header section 101, the address of the management proxy server 23 is set as the destination address, and the address of the server itself is set as the source address. In the packet type 102, a code indicating that this packet (message) is a cache area allocation request is set, and in the URL 103, the value of the URL attached to the Web content acquisition request REQ1 is set. In the request area size 111, a cache area size determined from the data length of the Web content included in the Web server response message RES2 is set, and the Web data expiration date 112 is attached to the Web server response message RES2. The expiration date of the Web data is set.
[0078]
If it is the management proxy server 23, after specifying the above-mentioned URL, request area size, and Web data expiration date (548), it executes the cache area allocation processing 560 described in detail in FIG. As a result, a new management information block 33-New linked to the new data block list is generated and registered in the management information table 32 of the disk device 25. The registration position of the management information block 33-New corresponds to the position of the entry EN-i specified from the URL.
[0079]
When the management proxy server 23 receives a cache area allocation request from another proxy server generated in step 546, the management proxy server 23 executes the same processing as the cache area allocation processing 560, and newly generated management information. The block 33New is registered in the management information table 32.
[0080]
As shown in FIG. 14B, a response from the management proxy server 23 is made by a response message RES3 including a header section 101, a packet type 102, and a cache area allocation propriety 113. In the header section 101, the address of the requesting proxy server is set as the destination address, and the address of the management proxy server 23 is set as the transmission source address. In the packet type 102, a code indicating that this packet (message) is a response to the cache area allocation request is set.
[0081]
Returning to FIG. 13, when the response message RES3 from the management proxy server 23 is received, or when the own server completes the cache area allocation processing 560, whether or not the cache area required for storing new Web content has been secured is determined. Is determined (549). If the required cache area cannot be secured, a response message including the Web content is created in step 554 and addressed to the request source, and the process ends.
[0082]
When the cache area is secured, the management information block 33-New corresponding to the entry EN-i is read from the management information table 32 of the disk device 25, and the data block head pointer 337 indicated by the management information block and each data block are read. The data block list 34 is read out one after another according to the next list pointer 341 of the list (550).
[0083]
Next, the status flag 335 of the management information block 33-New on the management information table 32 is set to a data updating state (551), and a new data block address is set according to the data block address indicated by the already read data block list 34. The new Web content is written in the cache area 35 (552). When the writing of the Web content is completed, the status flag 335 of the management information block 33-New is set to the update completed state (553), a response message addressed to the request source including the Web content is created (554), and the process is terminated. .
[0084]
FIG. 15 shows details of the cache area allocation processing 560.
[0085]
In the cache area allocating process, the position of the entry EN-i corresponding to the URL is specified on the entry table 730 by giving the requested URL value to the management information entry specifying routine 52 (561). Next, the management information block 33-i at a position corresponding to the entry EN-i is read from the management information table 32 of the disk device 25 (562), and the cache data expiration date of the management information data 33-i is checked ( 563). If it is within the validity period of the cache data, it is necessary to save the cache data. Therefore, the flag indicating the result of the cache area allocation is set to the non-allocatable state (572), and this processing ends.
[0086]
If the cache data has expired, reference is made to the free block list number 309 of the superblock cache area 235 and the free block number 310 per list to determine whether there is a free block satisfying the required area size in the free block list. A determination is made (564). If the number of free blocks is insufficient, the cached data expiration date 731 of the entry table 730 is referenced to search for an expired entry (565).
[0087]
If an expired entry is found, the management information block corresponding to the expired entry is released from the management information table 32, and the data block list linked to this management information block is added to the free block list (566). Thereafter, the process returns to step 564. Release of the expired management information block is achieved by switching the validity display flag 330 to the data invalid state. Also, with the change of the data block list to the free block list, the free block list final pointer (P04) 308 and the value of the free block list number 309 in the super block cache area 235 are updated, and the free block list cache area is updated. 72 is written with the contents of a new final free block list.
[0088]
If the number of free blocks that satisfies the requested area size cannot be secured even after releasing all management data blocks whose cache data expiration date has expired, a flag indicating the cache area allocation result is set to a non-allocation state (572). The process ends.
[0089]
If the number of free blocks satisfies the required area size, a new management information block is generated (567), and a number of free block lists commensurate with the required area size are selected as data block lists in the management information block. Link (568). Further, as the number of free block lists decreases, the values of the free block list head pointer (P03) 307 and the number of free block lists 309 in the super block cache area 71 are updated (569). The URL (331) and Web data expiration date (333) specified in step 548 are set in the new management information block, and the current date and time are set in the cache data registration time 332. Further, a value obtained by adding a predetermined time to the current date and time within the range of the Web data expiration date is set as the cache data expiration date 334, and the status flag 335 is set to an initial state.
[0090]
The management information block is written in the management information table 32 of the disk device 25 as a management information block corresponding to the entry EN-i of the entry table (570), and a flag indicating a cache area allocation result is set to an allocatable state. (571), this process ends.
[0091]
FIG. 16 shows a flowchart of the cache area allocation routine 53 executed when the management proxy server 23 receives the request message REQ3 from another proxy server.
[0092]
The cache area allocation routine 53 specifies the URL, the requested area size, and the Web data expiration date from the received message (575), and executes the cache area allocation processing 560 described with reference to FIG. When the allocation process 560 ends, the response message RES3 shown in FIG. 14 is generated according to the state of the flag indicating the cache area allocation result, and transmitted to the requesting proxy server (576).
[0093]
FIG. 17 shows a flowchart of the cache data expiration date extension routine 54 executed when the management proxy server 23 receives the request message REQ5 from another proxy server.
[0094]
First, the position of the entry EN-i corresponding to the URL is specified on the entry table 730 by giving the value of the URL specified by the request message REQ5 to the management information entry specifying routine 52 (580). Next, the management information block 33-i at the position corresponding to the entry EN-i is read from the management information table 32 of the disk device 25 (581), and the URL specified in the request message REQ5 and the management information block 33-i are read. Is compared with the URL 331 (582). If the URLs do not match, a response message RES5 indicating the occurrence of an error is transmitted to the requesting proxy server (589), and this routine ends.
[0095]
If the URLs match, the Web data expiration date 333 indicated by the management information block 33-i is checked (583). If the Web data expiration date has expired, a response message RES5 indicating the occurrence of an error is transmitted to the requesting proxy server (589), and this routine ends.
[0096]
If it is within the Web data expiration date, the cache data expiration date 334 indicated by the management information block 33-i is checked (584). If the cache data expiration date has expired, a new expiration date is calculated (585), and the cache data expiration date 731 indicated by the entry EN-i of the entry table 730 and the management information table 32 of the disk device 25 are calculated. The cache data expiration date 334 of the management information block 33-i is changed to a new expiration date (586). Thereafter, the result field 104 indicates a normal end, the field 105 transmits a response message RES5 indicating the new expiration date to the requesting proxy server (588), and the routine ends.
[0097]
If the cache data expiration date has not expired, the current expiration date is set as a new expiration date (587), and step 588 is executed.
[0098]
FIG. 18 shows a flowchart of a free block securing processing routine 55 executed when the management proxy server 23 periodically secures free blocks as a modification of the present invention.
[0099]
This routine 55 is periodically executed by a timer interrupt. First, the value of the free block list number 309 is compared with the threshold value Th with reference to the super block 30 stored in the super block cache area 71 (591). If the number of free block lists is equal to or larger than the threshold (Th), this routine is terminated without doing anything.
[0100]
When the number of free block lists is smaller than the threshold Th, the value of the parameter i indicating the search point of the entry table 730 is initialized (592), and then the value of the parameter i is incremented (593), and the value of the parameter i is changed. A comparison is made with the number of entries n in the entry table 730 (594). If i> n, this routine ends. Otherwise, it is checked whether the cache data expiration date 731 of the i-th entry EN-i of the entry table 730 has expired (595). . If the expiration date 731 has not expired, the process returns to step 593, the value of the parameter i is incremented, and the same processing is repeated.
[0101]
If the cache data expiration date 731 has expired, the management information block 33-i corresponding to the i-th entry EN-i is invalidated, and the data block list group 34-1 linked to this management information block is invalidated. 34-m is linked to the last free block list 31-k (596).
[0102]
The management information block 33-i can be invalidated by setting the validity display flag 330 to an invalid state. The released data block group can be linked to the free block list group by setting the value of the pointer 337 indicated by the management information block 33-i in the next list pointer 311 of the last free block list 31-k.
[0103]
At this time, in the super block cache area 71, a pointer address indicating the last released data block is set in the last pointer (P04) 308 of the free block list, and according to the number of released free block lists, The value of the free block list number 309 is updated. The updated number of free block lists is compared with the threshold value Th (597). If the number of free block lists has not reached Th, the process returns to step 593. If the number of free block lists exceeds Th, the routine ends.
[0104]
In the above embodiment, when the free block securing processing routine 55 is executed, the entry check is always started from the top of the entry table 730. However, if the number of free blocks is equal to or greater than the threshold value Th before the value of the parameter i reaches the number of entries n, the processing is terminated by saving the value of the parameter i. An expired management information block may be searched. In this case, when the value of the parameter i exceeds n, the entry table is cyclically searched by returning to the initial value 1, and when the stored first parameter value is reached, the processing is terminated.
[0105]
As described above, if free blocks are regularly reserved, when new Web contents occur, the expired data block list is added to the free block list during the execution of the cache area allocation processing 560 shown in FIG. Since there is no need to change, it is possible to reduce the response time to a Web content acquisition request from a client terminal.
[0106]
In the above embodiment, when the management proxy server 23 responds to the cache area allocation request REQ3 from the proxy server 24, the proxy server 24 reads the newly generated management information block from the disk device 25, and Is read, and the Web content is written in the cache area.
[0107]
As another embodiment of the present invention, the management proxy server 23 notifies the proxy server 24 of the data block list to be referred to in the response message RES3, and the proxy server 24 sends the address indicated by the data block list extracted from the response message. May be written in the cache area. By doing so, the number of accesses to the disk device prior to the Web content writing operation can be reduced, so that the processing time can be reduced.
[0108]
FIG. 19 shows a second embodiment of the access relay device 2 according to the present invention.
[0109]
In this embodiment, a disk management device 26 having a cache management function is used instead of the management proxy server 23. In this case, there is no assignment of a Web content acquisition request from the client terminal by the load distribution device 22 to the disk management device 26, and the disk management device 26 does not allocate a cache corresponding to the request from the proxy servers 24-1 to 24-n. Responsible for processing for allocating areas, updating expiration dates, and releasing expired cache data areas.
[0110]
FIG. 20 shows an operation sequence suitable for the access relay device 2 of the second embodiment as a modification of the operation sequence of the access relay device 2 according to the present invention.
[0111]
In this embodiment, when the proxy server 24 receives the response message RES2 including the Web content from the Web server 3, the proxy server 24 issues a request REQ4 for storing the Web content in the cache area to the disk management device 26.
[0112]
The disk management device 26 calculates the cache area size from the data length of the Web content included in the request REQ4, allocates the cache area (S06), and writes the Web content indicated by the request REQ4 to this cache area (S06). S07) is performed, and a response message RES3 indicating the end of the processing is transmitted to the requesting proxy server.
[0113]
Upon receiving the response message RES3, the proxy server 24 transmits a response message RES1 ′ including the Web content to the client terminal 1 that has requested the Web content. However, the response message RES1 ′ to the client terminal 1 may be transmitted at the time of a request to store the Web content to the disk management device 26, as indicated by the broken line.
[0114]
The operation of the disk management device 26 in this embodiment corresponds to the operation in the case where the management proxy server 23 itself in the first embodiment accumulates Web contents acquired from the Web server as cache data. Accordingly, the disk management device 26 basically has only to execute the operation after step 544 in the Web content acquisition processing 518 shown in FIG. Further, since it is not necessary for each proxy server to execute the cache data accumulation processing by itself, the request message REQ4 is created after the response message is received from the Web server (541) in the Web content acquisition processing 518. May be transmitted to the disk management device 26.
[0115]
As described above, when the cache area management function and the Web content writing function are concentrated in one device, the load on the proxy server 24 can be reduced, and the response to the client terminal can be speeded up. Such function sharing can be applied to the embodiment shown in FIG. In this case, since the load for managing the cache data increases in the management proxy server 23, it is necessary to reduce the load of the Web content acquisition request processing from the client as compared with other proxy servers.
[0116]
In the above embodiment, when the requested Web content is found in the cache data, the validity period is extended when the cache data validity period of the Web content has expired. However, the Web content with a high access frequency is used as the cache data. The expiration date of the Web content may be extended each time the cache data is read, regardless of the expiration, so as to be retained for a long time.
[0117]
【The invention's effect】
As is clear from the above embodiment, according to the present invention, the content acquired from the Web site is stored in the disk device as cache data shared by a plurality of proxy servers. Can avoid duplicate access to the Web server from the Web access relay device, and can reduce the load on the Web site. Further, since the cache area is shared by a plurality of proxy servers, a Web access relay device that effectively utilizes the memory capacity of the cache disk device can be provided.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a communication network system including a Web access relay device 2 according to the present invention.
FIG. 2 is a diagram showing an operation sequence of the Web access relay device 2 according to the present invention.
FIG. 3 is a configuration diagram of a management proxy server 23 configuring the Web access relay device 2.
FIG. 4 is a diagram showing an example of a data structure formed in a disk device 25 constituting the Web access relay device 2.
FIG. 5 is a view showing an example of the contents of a super block shown in FIG. 4;
FIG. 6 is a diagram showing an example of the contents of a management information block 33 shown in FIG. 4 and a data block list 34 linked thereto.
FIG. 7 is a view showing an example of the contents of a free block list 31 shown in FIG. 4;
FIG. 8 is a diagram showing details of a request processing module 41 provided in the memory device 234 of the management proxy server 23 (FIG. A) and an example of a data structure (FIG. B) formed in the memory device 235.
FIG. 9 is a view for explaining a relationship between contents of an entry table 730 formed in a memory area 72 and a management information cache area 74;
FIG. 10 is a flowchart showing one embodiment of a Web content acquisition request processing routine 51 executed by the management proxy server 23 and the proxy server 24;
FIG. 11 is a flowchart showing details of a cache data expiration date update process 516 in FIG. 10;
FIG. 12 is a diagram showing an example of a cache data expiration date extension request message REQ5 (FIG. A) transmitted from the proxy server 24 and a response message RES5 (FIG. B) from the management proxy server 23.
FIG. 13 is a flowchart showing details of a web content acquisition request process 518 in FIG. 10;
FIG. 14 is a diagram showing an example of a cache area allocation request message REQ3 (FIG. A) transmitted from the proxy server 24 and a response message RES3 (FIG. B) from the management proxy server 23.
FIG. 15 is a flowchart showing details of a cache area allocation process 560 in FIG. 13;
FIG. 16 is a flowchart showing details of a cache area allocation routine 53 executed by the management proxy server 23;
FIG. 17 is a flowchart showing details of a cache data expiration date extension routine 54 executed by the management proxy server 23;
FIG. 18 is a flowchart showing one embodiment of a free block securing processing routine 55 executed by the management proxy server 23;
FIG. 19 is a block diagram showing a second embodiment of the Web access relay device 2 according to the present invention.
FIG. 20 is a diagram showing an operation sequence suitable for the Web access relay device 2 shown in FIG.
[Explanation of symbols]
1: client terminal, 2: access relay device, 3: web server,
21: packet relay device, 22: load distribution device, 23: management proxy server,
24: proxy server, 25: disk device, 26: disk management device
30: super block, 31: free block list, 32: management information table, 34: data block list, 35: data cache area,
350: data block, 71: super block cache area,
72: free block list cache area; 73: entry table area; 74: management information cache area; 730: entry table

Claims (10)

  1. クライアント端末から受信したWebコンテンツ取得要求に応じてWebサーバをアクセスし、Webサーバから取得したWebコンテンツを要求元のクライアント端末に送信するWebアクセス中継装置であって、
    それぞれWebコンテンツ取得要求への応答機能を備えた複数のプロキシサーバと、
    Webコンテンツを上記複数のプロキシサーバに共有のキャッシュデータとして蓄積するためのディスク装置とからなり、
    上記各プロキシサーバが、クライアント端末から要求されたWebコンテンツが上記ディスク装置にキャッシュデータとして蓄積されていた場合は、該ディスク装置から読み出したWebコンテンツを要求元クライアント装置に送信し、要求されたWebコンテンツがキャッシュデータとして蓄積されていない場合は、Webサーバから上記要求されたWebコンテンツを取得し、これを新たなキャッシュデータとして上記ディスク装置に蓄積すると共に、要求元のクライアント端末に送信することを特徴とするWebアクセス中継装置。
    A Web access relay device that accesses a Web server in response to a Web content acquisition request received from a client terminal and transmits the Web content acquired from the Web server to a requesting client terminal,
    A plurality of proxy servers each having a function of responding to a Web content acquisition request,
    A disk device for storing Web contents as shared cache data in the plurality of proxy servers,
    When each of the proxy servers stores the Web content requested from the client terminal as cache data in the disk device, the proxy server transmits the Web content read from the disk device to the requesting client device, and transmits the requested Web content. If the content is not stored as cache data, it is necessary to acquire the requested Web content from the Web server, store this as new cache data in the disk device, and transmit it to the requesting client terminal. A web access relay device characterized by the following.
  2. 前記プロキシサーバのうちの1つが、キャッシュ領域管理機能を備えた管理サーバとして動作し、蓄積済みのWebコンテンツの無効化によるキャッシュ領域の解放と、新たなWebコンテンツへのキャッシュ領域の割当てを行うことを特徴とする請求項1に記載のWebアクセス中継装置。One of the proxy servers operates as a management server having a cache area management function, and releases a cache area by invalidating accumulated Web contents and allocates a cache area to new Web contents. The Web access relay device according to claim 1, wherein:
  3. 前記管理サーバ以外の他のプロキシサーバが、前記WebサーバからWebコンテンツを取得した時、上記管理サーバにキャッシュ領域の割当てを要求し、上記管理サーバによって割当てられたキャッシュ領域にWebコンテンツを書き込むことを特徴とする請求項2に記載のWebアクセス中継装置。When a proxy server other than the management server obtains the Web content from the Web server, the proxy server requests the management server to allocate a cache area, and writes the Web content to the cache area allocated by the management server. 3. The Web access relay device according to claim 2, wherein:
  4. 前記管理サーバ以外の他のプロキシサーバが、前記WebサーバからWebコンテンツを取得した時、上記管理サーバにWebコンテンツの蓄積を依頼し、上記管理サーバによって、空きキャッシュ領域へのWebコンテンツの書き込みが行われることを特徴とする請求項2に記載のWebアクセス中継装置。When a proxy server other than the management server obtains the Web content from the Web server, the proxy server requests the management server to store the Web content, and the management server writes the Web content to an empty cache area. The Web access relay device according to claim 2, wherein the access is performed.
  5. 前記管理サーバが、前記ディスク装置に蓄積されるWebコンテンツ毎にキャッシュデータ有効期限を指定するための手段を有し、キャッシュデータ有効期限切れとなったWebコンテンツを無効化することを特徴とする請求項2に記載のWebアクセス中継装置。The management server has means for designating a cache data expiration date for each Web content stored in the disk device, and invalidates the Web content whose cache data expiration date has expired. 3. The web access relay device according to item 2.
  6. クライアント端末から受信したWebコンテンツ取得要求を前記複数のプロキシサーバに分配するための負荷分散装置を有することを特徴とする請求項1〜請求項5に何れかに記載のWebアクセス中継装置。The Web access relay device according to any one of claims 1 to 5, further comprising a load distribution device for distributing a Web content acquisition request received from a client terminal to the plurality of proxy servers.
  7. クライアント端末から受信したWebコンテンツ取得要求に応じてWebサーバをアクセスし、Webサーバから取得したWebコンテンツを要求元のクライアント端末に送信するWebアクセス中継装置であって、
    それぞれWebコンテンツ取得要求への応答機能を備えた複数のプロキシサーバと、
    Webコンテンツを上記複数のプロキシサーバに共有のキャッシュデータとして蓄積するためのディスク装置と、
    上記ディスク装置におけるWebコンテンツの無効化によるキャッシュ領域の解放と、新たなWebコンテンツへのキャッシュ領域の割当てを行うためのディスク管理装置とからなり、
    上記各プロキシサーバが、クライアント端末から要求されたWebコンテンツが上記ディスク装置にキャッシュデータとして蓄積されていた場合は、該ディスク装置から読み出したWebコンテンツを要求元クライアント装置に送信し、要求されたWebコンテンツがキャッシュデータとして蓄積されていない場合は、Webサーバから上記要求されたWebコンテンツを取得し、これを要求元のクライアント端末に送信すると共に、上記ディスク管理装置と連携して上記ディスク装置に蓄積することを特徴とするWebアクセス中継装置。
    A Web access relay device that accesses a Web server in response to a Web content acquisition request received from a client terminal and transmits the Web content acquired from the Web server to a requesting client terminal,
    A plurality of proxy servers each having a function of responding to a Web content acquisition request,
    A disk device for storing Web contents as shared cache data in the plurality of proxy servers;
    A disk management device for releasing a cache area by invalidating Web contents in the disk device and allocating a cache area to new Web contents;
    When each of the proxy servers stores the Web content requested from the client terminal as cache data in the disk device, the proxy server transmits the Web content read from the disk device to the requesting client device, and transmits the requested Web content. If the content is not stored as cache data, the requested Web content is obtained from the Web server, transmitted to the requesting client terminal, and stored in the disk device in cooperation with the disk management device. Web access relay device characterized by performing.
  8. 前記各プロキシサーバが、前記ディスク管理装置にキャッシュ領域の割当てを要求し、上記ディスク管理装置によって割当てられたキャッシュ領域に対して前記Webコンテンツを書き込むことを特徴とする請求項7に記載のWebアクセス中継装置。8. The Web access according to claim 7, wherein each of the proxy servers requests the disk management device to allocate a cache area, and writes the Web content to the cache area allocated by the disk management device. Relay device.
  9. 前記各プロキシサーバが、前記ディスク管理装置にWebコンテンツの蓄積を依頼し、上記ディスク管理装置が、空き状態のキャッシュ領域に上記Webコンテンツを書き込むことを特徴とする請求項7に記載のWebアクセス中継装置。8. The Web access relay according to claim 7, wherein each of the proxy servers requests the disk management device to store the Web content, and the disk management device writes the Web content in an empty cache area. apparatus.
  10. クライアント端末から受信したWebコンテンツ取得要求を前記複数のプロキシサーバに分配するための負荷分散装置を有することを特徴とする請求項7〜請求項9に何れかに記載のWebアクセス中継装置。The Web access relay device according to any one of claims 7 to 9, further comprising a load distribution device for distributing a Web content acquisition request received from a client terminal to the plurality of proxy servers.
JP2002192979A 2002-07-02 2002-07-02 Web access relay system Pending JP2004038439A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002192979A JP2004038439A (en) 2002-07-02 2002-07-02 Web access relay system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002192979A JP2004038439A (en) 2002-07-02 2002-07-02 Web access relay system

Publications (1)

Publication Number Publication Date
JP2004038439A true JP2004038439A (en) 2004-02-05

Family

ID=31702058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002192979A Pending JP2004038439A (en) 2002-07-02 2002-07-02 Web access relay system

Country Status (1)

Country Link
JP (1) JP2004038439A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006001507A1 (en) * 2004-06-24 2006-01-05 Nec Corporation Information service system, information server, portable terminal, information service control program and portable terminal control program
JP2006279933A (en) * 2005-03-25 2006-10-12 Microsoft Corp Distributed information managing method and distributed information managing device
JP2007215126A (en) * 2006-02-13 2007-08-23 Kyocera Mita Corp Evaluation apparatus for network application, network application evaluation method, and control program in evaluation system for network application
JP2008250586A (en) * 2007-03-30 2008-10-16 Hitachi Ltd Attached url transmitting/receiving method, system and program
JP2012059257A (en) * 2010-09-07 2012-03-22 Nhn Corp Cache system and method of providing caching service using cache cloud construction
US20130191435A1 (en) 2012-01-19 2013-07-25 Microsoft Corporation Client-Side Minimal Download and Simulated Page Navigation Features
JP2015165632A (en) * 2014-03-03 2015-09-17 日本電気株式会社 Information transfer device, information transfer method, and program
US9846605B2 (en) 2012-01-19 2017-12-19 Microsoft Technology Licensing, Llc Server-side minimal download and error failover
US10142399B2 (en) 2011-12-05 2018-11-27 Microsoft Technology Licensing, Llc Minimal download and simulated page navigation features
US10579960B2 (en) 2014-08-05 2020-03-03 Alibaba Group Holding Limited Information operation

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006001507A1 (en) * 2004-06-24 2006-01-05 Nec Corporation Information service system, information server, portable terminal, information service control program and portable terminal control program
JP2006279933A (en) * 2005-03-25 2006-10-12 Microsoft Corp Distributed information managing method and distributed information managing device
JP2007215126A (en) * 2006-02-13 2007-08-23 Kyocera Mita Corp Evaluation apparatus for network application, network application evaluation method, and control program in evaluation system for network application
JP2008250586A (en) * 2007-03-30 2008-10-16 Hitachi Ltd Attached url transmitting/receiving method, system and program
JP2012059257A (en) * 2010-09-07 2012-03-22 Nhn Corp Cache system and method of providing caching service using cache cloud construction
US10142399B2 (en) 2011-12-05 2018-11-27 Microsoft Technology Licensing, Llc Minimal download and simulated page navigation features
JP2015510632A (en) * 2012-01-19 2015-04-09 マイクロソフト コーポレーション Client-side minimal download and simulated page navigation mechanism
KR20140117418A (en) * 2012-01-19 2014-10-07 마이크로소프트 코포레이션 Client-side minimal download and simulated page navigation features
KR102055024B1 (en) 2012-01-19 2020-01-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Client-side minimal download and simulated page navigation features
US9846605B2 (en) 2012-01-19 2017-12-19 Microsoft Technology Licensing, Llc Server-side minimal download and error failover
US20130191435A1 (en) 2012-01-19 2013-07-25 Microsoft Corporation Client-Side Minimal Download and Simulated Page Navigation Features
US10289743B2 (en) 2012-01-19 2019-05-14 Microsoft Technology Licensing, Llc Client-side minimal download and simulated page navigation features
JP2015165632A (en) * 2014-03-03 2015-09-17 日本電気株式会社 Information transfer device, information transfer method, and program
US10579960B2 (en) 2014-08-05 2020-03-03 Alibaba Group Holding Limited Information operation

Similar Documents

Publication Publication Date Title
US10305797B2 (en) Request routing based on class
US10491534B2 (en) Managing resources and entries in tracking information in resource cache components
US9787599B2 (en) Managing content delivery network service providers
US10230819B2 (en) Translation of resource identifiers using popularity information upon client request
US10601767B2 (en) DNS query processing based on application information
CN104731516B (en) A kind of method, apparatus and distributed memory system of accessing file
US8959144B2 (en) System and method for scalable data distribution
US8352613B2 (en) Content management
US9021128B2 (en) Request routing using network computing components
US7403993B2 (en) System and method for highly-scalable real-time and time-based data delivery using server clusters
CA2250108C (en) A method and apparatus for client managed flow control on a limited memory computer system
US7467293B2 (en) Method and computing system for transparence computing on the computer network
US20190121739A1 (en) Cache optimization
JP3613550B2 (en) Web page acquisition service system, server, web page acquisition method, storage medium, and program transmission device
US8756341B1 (en) Request routing utilizing popularity information
KR102145741B1 (en) Method and apparatus for controlling access in wireless communication system
US6928282B2 (en) Mobile IP network system
US7076553B2 (en) Method and apparatus for real-time parallel delivery of segments of a large payload file
US6308238B1 (en) System and method for managing connections between clients and a server with independent connection and data buffers
US6182111B1 (en) Method and system for managing distributed data
US9009211B2 (en) Distributed service framework
US6848005B1 (en) Self-tuning dataflow I/O core
US8171099B1 (en) Network acceleration device having persistent in-memory cache
KR101072966B1 (en) Method, device and system for distributing file data
KR100984600B1 (en) Apparatus and method for delayed network information transfer