(57)【要約】【課題】複数のプロキシサーバからなるＷｅｂアクセス中継装置において、キャッシュメモリの利用効率を改善し、Ｗｅｂサーバへのアクセス頻度を低減する。【解決手段】Ｗｅｂコンテンツ取得要求への応答機能を備えた複数のプロキシサーバ２４と、Ｗｅｂコンテンツをキャッシュデータとして蓄積するための共有のディスク装置２５とからなり、各プロキシサーバが、要求されたＷｅｂコンテンツがディスク装置にキャッシュデータとして蓄積されていた場合は、該当するキャッシュデータを要求元クライアント装置１に送信し、要求されたＷｅｂコンテンツがキャッシュデータとして蓄積されていない場合は、Ｗｅｂサーバ３からＷｅｂコンテンツを取得し、これを上記ディスク装置に蓄積すると共に要求元のクライアント端末に送信する。【選択図】　図１
2004038439.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末から受信したＷｅｂコンテンツ取得要求に応じてＷｅｂサーバをアクセスし、Ｗｅｂサーバから取得したＷｅｂコンテンツを要求元のクライアント端末に送信するＷｅｂアクセス中継装置であって、
それぞれＷｅｂコンテンツ取得要求への応答機能を備えた複数のプロキシサーバと、
Ｗｅｂコンテンツを上記複数のプロキシサーバに共有のキャッシュデータとして蓄積するためのディスク装置とからなり、
上記各プロキシサーバが、クライアント端末から要求されたＷｅｂコンテンツが上記ディスク装置にキャッシュデータとして蓄積されていた場合は、該ディスク装置から読み出したＷｅｂコンテンツを要求元クライアント装置に送信し、要求されたＷｅｂコンテンツがキャッシュデータとして蓄積されていない場合は、Ｗｅｂサーバから上記要求されたＷｅｂコンテンツを取得し、これを新たなキャッシュデータとして上記ディスク装置に蓄積すると共に、要求元のクライアント端末に送信することを特徴とするＷｅｂアクセス中継装置。
【請求項２】
前記プロキシサーバのうちの１つが、キャッシュ領域管理機能を備えた管理サーバとして動作し、蓄積済みのＷｅｂコンテンツの無効化によるキャッシュ領域の解放と、新たなＷｅｂコンテンツへのキャッシュ領域の割当てを行うことを特徴とする請求項１に記載のＷｅｂアクセス中継装置。
【請求項３】
前記管理サーバ以外の他のプロキシサーバが、前記ＷｅｂサーバからＷｅｂコンテンツを取得した時、上記管理サーバにキャッシュ領域の割当てを要求し、上記管理サーバによって割当てられたキャッシュ領域にＷｅｂコンテンツを書き込むことを特徴とする請求項２に記載のＷｅｂアクセス中継装置。
【請求項４】
前記管理サーバ以外の他のプロキシサーバが、前記ＷｅｂサーバからＷｅｂコンテンツを取得した時、上記管理サーバにＷｅｂコンテンツの蓄積を依頼し、上記管理サーバによって、空きキャッシュ領域へのＷｅｂコンテンツの書き込みが行われることを特徴とする請求項２に記載のＷｅｂアクセス中継装置。
【請求項５】
前記管理サーバが、前記ディスク装置に蓄積されるＷｅｂコンテンツ毎にキャッシュデータ有効期限を指定するための手段を有し、キャッシュデータ有効期限切れとなったＷｅｂコンテンツを無効化することを特徴とする請求項２に記載のＷｅｂアクセス中継装置。
【請求項６】
クライアント端末から受信したＷｅｂコンテンツ取得要求を前記複数のプロキシサーバに分配するための負荷分散装置を有することを特徴とする請求項１〜請求項５に何れかに記載のＷｅｂアクセス中継装置。
【請求項７】
クライアント端末から受信したＷｅｂコンテンツ取得要求に応じてＷｅｂサーバをアクセスし、Ｗｅｂサーバから取得したＷｅｂコンテンツを要求元のクライアント端末に送信するＷｅｂアクセス中継装置であって、
それぞれＷｅｂコンテンツ取得要求への応答機能を備えた複数のプロキシサーバと、
Ｗｅｂコンテンツを上記複数のプロキシサーバに共有のキャッシュデータとして蓄積するためのディスク装置と、
上記ディスク装置におけるＷｅｂコンテンツの無効化によるキャッシュ領域の解放と、新たなＷｅｂコンテンツへのキャッシュ領域の割当てを行うためのディスク管理装置とからなり、
上記各プロキシサーバが、クライアント端末から要求されたＷｅｂコンテンツが上記ディスク装置にキャッシュデータとして蓄積されていた場合は、該ディスク装置から読み出したＷｅｂコンテンツを要求元クライアント装置に送信し、要求されたＷｅｂコンテンツがキャッシュデータとして蓄積されていない場合は、Ｗｅｂサーバから上記要求されたＷｅｂコンテンツを取得し、これを要求元のクライアント端末に送信すると共に、上記ディスク管理装置と連携して上記ディスク装置に蓄積することを特徴とするＷｅｂアクセス中継装置。
【請求項８】
前記各プロキシサーバが、前記ディスク管理装置にキャッシュ領域の割当てを要求し、上記ディスク管理装置によって割当てられたキャッシュ領域に対して前記Ｗｅｂコンテンツを書き込むことを特徴とする請求項７に記載のＷｅｂアクセス中継装置。
【請求項９】
前記各プロキシサーバが、前記ディスク管理装置にＷｅｂコンテンツの蓄積を依頼し、上記ディスク管理装置が、空き状態のキャッシュ領域に上記Ｗｅｂコンテンツを書き込むことを特徴とする請求項７に記載のＷｅｂアクセス中継装置。
【請求項１０】
クライアント端末から受信したＷｅｂコンテンツ取得要求を前記複数のプロキシサーバに分配するための負荷分散装置を有することを特徴とする請求項７〜請求項９に何れかに記載のＷｅｂアクセス中継装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｗｅｂアクセス中継装置に関し、更に詳しくは、Ｗｅｂサーバから取得したＷｅｂコンテンツデータのキャッシュ方式に関する。
【０００２】
【従来の技術】
インターネットが普及し、映画などのビデオ配布サービスや、これまで各種企業の営業窓口で行われてきたサービスが、インターネットを通して提供されるようになってきた。また、通信技術の進歩に従って、家庭やオフィスの端末以外に、携帯電話からも各種のサービスを享受できる環境が整ってきている。
【０００３】
クライアント端末から直接Ｗｅｂサーバをアクセスしてサービスを要求するＷｅｂアクセス方式では、人気のあるＷｅｂサイトに対して多数のクライアントからのサービス要求が集中的に発生する。この場合、インターネットの通信回線容量やＷｅｂサーバのデータ処理能力には限界があるため、時間帯やアクセス先によっては、集中的に発生した利用者からの要求をＷｅｂサイトで処理し切れなくなり、満足な応答が返ってこないという情況が発生する。
【０００４】
上記問題は、例えば、クライアント端末とＷｅｂサーバとの間に、プロキシサーバと呼ばれるアクセス中継装置を設置し、Ｗｅｂサーバから取得されたＷｅｂコンテンツをプロキシサーバにキャッシュデータとして蓄積しておき、利用者から要求されたＷｅｂコンテンツがキャッシュデータ中に見つかった場合は、Ｗｅｂサーバへのアクセスを省略し、キャッシュデータを要求元に送信することによって改善できる。
【０００５】
【発明が解決しようとする課題】
然るに、プロキシサーバにも能力的な制約があるため、接続ユーザ数が増加して、Ｗｅｂアクセス要求が集中すると、１台のプロキシサーバではＷｅｂアクセス要求を処理し切れなくなってくる。このため、例えば、１つのＷｅｂアクセス中継装置を負荷分散装置に接続された複数のプロキシサーバで構成し、利用者からのＷｅｂアクセス要求を複数のプロキシサーバに分散することにより、オーバーフローを解消する方式が提案されている。
【０００６】
負荷分散型の従来のＷｅｂアクセス中継装置では、プロキシサーバ毎に個別のキャッシュメモリ（ディスク装置）を備え、複数のプロキシサーバを互いに独立して動作させている。従って、要求されたＷｅｂコンテンツがキャッシュデータ中に見つからなかった場合は、各プロキシサーバは、独自にＷｅｂサイトをアクセスし、Ｗｅｂサーバから取得したＷｅｂコンテンツをそれぞれの個別キャッシュメモリに保存している。このため、１つのプロキシサーバが既にキャッシュデータとして保持しているＷｅｂコンテンツについて、別のプロキシサーバが取得要求を受付けた場合、Ｗｅｂサイトへのアクセスが繰り返して発生するという問題がある。
【０００７】
また、同一のＷｅｂコンテンツが複数のプロキシサーバで重複して蓄積されるため、Ｗｅｂアクセス中継装置全体としてのキャッシュメモリの利用効率が低下するという問題がある。
【０００８】
本発明の目的は、複数のプロキシサーバからなるＷｅｂアクセス中継装置において、キャッシュメモリの利用効率を向上し、Ｗｅｂサーバへのアクセス頻度を低減することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明のＷｅｂアクセス中継装置は、複数のプロキシサーバに共有のディスク装置を備え、各プロキシサーバが、上記ディスク装置に蓄積された共有のキャッシュデータを参照して、クライアントからのＷｅｂコンテンツ取得要求を処理するようにしたことを特徴とする。本発明によれば、キャッシュメモリが複数のプロキシサーバに共有されているため、何れかのプロキシサーバがＷｅｂサーバからＷｅｂコンテンツを取得すれば、同一Ｗｅｂコンテンツを全てのプロキシサーバで利用でき、Ｗｅｂサイトへのアクセス回数を低減できる。また、同一Ｗｅｂコンテンツの重複した蓄積を回避できるため、キャッシュメモリの利用効率を改善できる。
【００１０】
本発明の１つの実施形態では、複数のプロキシサーバのうちの１つが、キャッシュ領域管理機能を備えた管理サーバとして動作し、蓄積済みのＷｅｂコンテンツの無効化によるキャッシュ領域の解放と、新たなＷｅｂコンテンツへのキャッシュ領域の割当てを行うことを特徴とする。
【００１１】
この場合、管理サーバ以外の他のプロキシサーバは、ＷｅｂサーバからＷｅｂコンテンツを取得した時、管理サーバにキャッシュ領域の割当てを要求し、管理サーバによって割当てられたキャッシュ領域にＷｅｂコンテンツを書き込む。但し、管理サーバ以外のプロキシサーバが、管理サーバに対してＷｅｂコンテンツの蓄積を依頼し、管理サーバが空きキャッシュ領域へのＷｅｂコンテンツの書き込みを行うようにしてもよい。
【００１２】
本発明の１つの特徴は、管理サーバが、ディスク装置に蓄積されるＷｅｂコンテンツ毎にキャッシュデータ有効期限を指定するための手段を有し、キャッシュデータ有効期限切れとなったＷｅｂコンテンツを無効化することによって、キャッシュメモリに空きエリアを確保するようにしたことにある。
【００１３】
キャッシュデータ有効期限は、本発明のＷｅｂアクセス中継装置の内部で保証するＷｅｂコンテンツの保存期限であり、Ｗｅｂサーバが指定するコンテンツ有効期限の範囲内で、キャッシュ登録日を基準にして算出される。キャッシュデータ有効期限は延長可能であり、要求頻度の高いＷｅｂコンテンツについては、キャッシュデータ有効期限を次々と延長することによって、長時間にわたってディスク装置内に留めることが可能となる。
【００１４】
本発明の他の実施例では、上述した管理プロキシサーバに代えて、ディスク装置におけるキャッシュ領域の解放と、新たなＷｅｂコンテンツへのキャッシュ領域の割当てを行うためのディスク管理装置を備え、各プロキシサーバが、Ｗｅｂサーバから取得したＷｅｂコンテンツを上記ディスク管理装置と連携して上記ディスク装置に蓄積することを特徴とする。
【００１５】
この場合、各プロキシサーバは、ディスク管理装置にキャッシュ領域の割当てを要求し、上記ディスク管理装置によって割当てられたキャッシュ領域に対してＷｅｂコンテンツを書き込む。但し、各プロキシサーバが、ディスク管理装置にＷｅｂコンテンツの蓄積を依頼し、ディスク管理装置が空き状態のキャッシュ領域にＷｅｂコンテンツを書き込むようにしてもよい。
【００１６】
【発明の実施の形態】
以下、本発明の実施例について図面を参照して説明する。
【００１７】
図１は、本発明によるＷｅｂアクセス中継装置２を含む通信ネットワークシステムの構成を示す。
【００１８】
Ｗｅｂアクセス中継装置２は、ＬＡＮまたはインターネットなどの通信網１１を介して複数のクライアント端末１（１−１〜１−Ｌ）に接続され、インターネット１２を介してＷｅｂサーバ３（３−１〜３−Ｊ）に接続されている。
【００１９】
Ｗｅｂアクセス中継装置２は、通信網１１およびインターネット１２に接続されたパケット中継装置（ルータ）２１と、該パケット中継装置２１に接続された負荷分散装置２２と、該負荷分散装置２２に接続された複数のプロキシ（Ｐｒｏｘｙ）サーバ２３および２４（２４−１〜２４−ｎ）と、これらのプロキシサーバに接続されたディスク装置２５とからなる。ディスク装置２５には、後述するように、Ｗｅｂサーバ３−１〜３−Ｊから取得したＷｅｂコンテンツが複数のプロキシサーバ２３、２４に共有のキャッシュデータとして蓄積される。
【００２０】
クライアント端末１から送信されたＷｅｂコンテンツの取得要求は、パケット中継装置２１によって受信され、負荷分散装置２２に転送される。負荷分散装置２２は、パケット中継装置２１から受け取ったＷｅｂコンテンツ取得要求を所定の負荷分散アルゴリズムに従って上記プロキシサーバ２３、２４−１〜２４−ｎに次々と振り分ける。
【００２１】
本実施例では、ディスク装置２５を共有する複数のプロキシサーバうちの１つ、サーバ２３がキャッシュ管理機能を備える。プロキシサーバ２３は、キャッシュデータとしてディスク装置２５に登録すべき新たなＷｅｂコンテンツが発生した時、キャッシュ領域の割当てと不要キャッシュデータの消去を行う。以下の説明では、このようなキャッシュ領域の管理機能を備えたプロキシサーバ２３を「管理プロキシサーバ」と呼ぶ。
【００２２】
他のプロキシサーバ２４−１〜２４−ｎは、Ｗｅｂサーバから新たなＷｅｂコンテンツを所得した時、管理プロキシサーバ２３にキャッシュ領域の割当てを要求し、管理プロキシサーバ２３から割当てられたキャッシュ領域に対してＷｅｂコンテンツの書き込みを行う。
【００２３】
図２は、本発明によるアクセス中継装置２の動作シーケンスを示す。
【００２４】
ここでは、説明を簡単化するために、メッセージの転送動作に関わるパケット中継装置２１と負荷分散装置２２を省略して、管理プロキシサーバ２３と、クライアント端末１−１からのＷｅｂコンテンツ取得要求を振り分けられた任意のプロキシサーバ２４−ｉと、Ｗｅｂコンテンツを提供する任意のＷｅｂサーバ３−ｊとの間のメッセージ送受信動作について説明する。
【００２５】
例えば、負荷分散装置２２を介してクライアント端末１−１からのＷｅｂコンテンツ取得要求ＲＥＱ１を受信したプロキシサーバ２４−ｉは、ディスク装置２５に蓄積されたキャッシュデータをチェックし（ステップＳ０１）、要求されたＷｅｂコンテンツがキャッシュデータとして蓄積されていた場合（Ｓ０２）は、キャッシュ領域から要求Ｗｅｂコンテンツを読み出し（Ｓ０３）、Ｗｅｂコンテンツを含む応答メッセージＲＥＳ１を作成して、要求元のクライアント端末１−１に送信する。
【００２６】
クライアント端末から要求されたＷｅｂコンテンツがディスク装置２５に無かった場合、プロキシサーバ２４−ｉは、上記Ｗｅｂコンテンツを提供するＷｅｂサーバ３−ｊに対してＷｅｂコンテンツの取得要求ＲＥＱ２を送信する。Ｗｅｂサーバ３−ｊは、上記取得要求ＲＥＱ２で指定されたＷｅｂコンテンツを検索し（Ｓ０４）、該Ｗｅｂコンテンツを含む応答メッセージＲＥＳ２をプロキシサーバ２４−ｉに返送する。
【００２７】
プロキシサーバ２４−ｉは、Ｗｅｂサーバ３−ｊからの応答メッセージＲＥＳ２を解析し（Ｓ０５）、これを新たなキャッシュデータとしてディスク装置２４に蓄積するために、管理プロキシサーバ２３にキャッシュ領域割当て要求ＲＥＱ３を出す。上記キャッシュ領域割当て要求ＲＥＱ３は、Ｗｅｂコンテンツの蓄積に必要なメモリ領域のサイズを指定している。
【００２８】
キャッシュ領域割当て要求ＲＥＱ３を受信した管理プロキシサーバ２３は、ディスク装置２５に定義されたキャッシュ領域の空きエリアの中から、新たなＷｅｂコンテンツに割当てるべきキャッシュ領域を選択し（Ｓ０６）、割当て結果を応答メッセージＲＥＳ３によって要求元のプロキシサーバ２４−ｉに通知する。プロキシサーバ２４−ｉは、上記応答メッセージＲＥＳ３で指定されたキャッシュ領域に対してＷｅｂコンテンツを書き込む（Ｓ０７）と共に、Ｗｅｂコンテンツを含む応答メッセージＲＥＳ１’を作成して、要求元のクライアント端末１−１に送信する。但し、クライアント端末１−１宛の応答メッセージＲＥＳ１’は、破線で示すように、Ｗｅｂサーバからの応答メッセージＲＥＳ２の受信時に直ちに送信するようにしてもよい。
【００２９】
図３は、管理プロキシサーバ２３の構成を示す。
【００３０】
管理プロキシサーバ２３は、プロセッサ２３１と、負荷分散装置２２および他のプロキシサーバ２４に接続するための通信インタフェース２３２と、ディスク装置２５に接続するためのディスク入出力インタフェース２３３と、プログラム格納用のメモリ２３４と、データ格納用のメモリ２３５とからなり、これらの要素は内部バス２３６によって相互に接続されている。メモリ２３４には、プロセッサ２３１が実行する制御用のソフトウェアとして、通信インタフェース２３２を介して他の装置と通信されるパケット（メッセージ）の送受信を制御するためのパケット転送制御モジュール４０と、後で図８を参照して詳述する要求処理モジュール４１と、その他の制御モジュールが格納されている。
【００３１】
他のプロキシサーバ２４−１〜２４−ｎも、ハードウェア的には管理プロキシサーバ２３と同一の構成となっており、後述するように、メモリ２３４に用意されるソフトウェアとメモリ２３５に形成されるデータテーブルの一部に相違がある。
【００３２】
図４は、ディスク装置２５に形成されるデータ構造の１例を示す。
【００３３】
ディスク装置２５には、例えば、スーパーブロック３０と、複数の管理情報ブロック３３−１〜３３−ｎが登録される管理情報テーブル３２と、Ｗｅｂデータを格納するためのキャッシュ領域３５とが形成される。キャッシュ領域３５は固定長の複数のデータブロック３５０−１〜３５０−ｑからなり、キャッシュ領域３５における空き領域（フリーデータブロック）のアドレスは、スーパーブロック３０にリンクしたフリーブロックリスト３１（３１−１〜３１−ｋ）によって管理されている。
【００３４】
管理情報テーブル３２の各管理情報ブロック３３は、キャッシュ領域３５にキャッシュデータとして登録された個々のＷｅｂコンテンツと対応している。１つのＷｅｂコンテンツを保持するためには、キャッシュ領域３５内の複数のデータブロックが必要となる。これらのデータブロックのアドレスは、各管理情報ブロック３３にリンクされたデータブロックリスト３４（３４−１〜３４−ｍ）によって示される。
【００３５】
図５は、スーパーブロック３０の内容の１例を示す。
【００３６】
スーパーブロック３０は、図４に示したデータ構造でキャッシュデータを管理する場合に必要となる全体的な制御パラメータを示す情報ブロックである。ここに示した例では、スーパーブロック３０は、ディスク装置２５に用意されたデータブロックの総数３０１と、単位となるブロックサイズ３０２と、管理情報テーブル３２の先頭位置（最初の管理情報ブロック３３−１のアドレス）を示す管理情報テーブルポインタ（Ｐ０１）３０３と、管理情報テーブル３３に登録できる管理情報ブロックの個数３０４と、キャッシュ領域３５の先頭位置（最初のデータブロック３５０−１のアドレス）を示すキャッシュ領域ポインタ（Ｐ０２）３０５と、キャッシュ領域３５に含まれるキャッシュデータブロックの個数（ｑ）３０６と、フリーブロックリスト群の先頭リスト３１−１を示すフリーブロックリスト先頭ポインタ（Ｐ０３）３０７と、フリーブロックリスト群の最終リスト３１−ｋを示すフリーブロックリスト最終ポインタ（Ｐ０４）３０８と、フリーブロックリスト群を構成しているフリーブロックリストの個数３０９と、１フリーブロックリスト当たりのフリーブロック数３１０とを示している。
【００３７】
図６は、１つの管理情報ブロック３３−ｉと、この管理情報ブロックにリンクされるデータブロックリスト３４（３４−１〜３４−３）の内容の１例を示す。
【００３８】
管理情報ブロック３３−ｉは、キャッシュ領域に格納されたＷｅｂコンテンツの管理情報と、キャッシュ領域からＷｅｂコンテンツを読み出す際に必要となるポインタ情報と、これらの情報が有効か否かを示す有効性表示フラグ３３０とを含んでいる。ここに示した例では、管理情報ブロック３３−ｉは、Ｗｅｂコンテンツの管理情報として、Ｗｅｂコンテンツ取得要求で指定されたＵＲＬ（Ｗｅｂコンテンツ取得要求の最終的な送信先アドレス）３３１と、Ｗｅｂコンテンツがキャッシュデータとして登録された時刻３３２と、Ｗｅｂデータ有効期限３３３と、システム内で保証されるキャッシュデータの有効期限３３４と、キャッシュデータの更新状態を示す状態フラグ３３５と、キャッシュデータサイズ３３６を含み、ポインタ情報として、データブロックリスト群の先頭ポインタ３３７を含んでいる。
【００３９】
尚、Ｗｅｂデータ有効期限３３３は、Ｗｅｂサーバ３から返送される応答メッセージＲＥＳ２が示すＷｅｂコンテンツデータの有効期限を意味し、キャッシュデータ有効期限３３４は、アクセス中継装置２が保証しているディスク装置２５内でのキャッシュデータの保存期限を意味している。
【００４０】
先頭ポインタ３３７に従って参照されるデータブロックリスト３４−１は、複数のデータブロックアドレス３４０−１〜３４０−ｎと、次リストポインタ３４１とからなっている。次リストポインタ３４１によって更に次のデータブロックリストがリンクされる。これによって、図に示すように、１つの管理情報ブロック３３−ｉに任意個数のデータブロックリストをリンクできる。最後のデータブロックリストの次リストポインタ３４１には、後続するデータブロックリストが存在しないことを示す特定の値が設定される。
【００４１】
Ｗｅｂコンテンツには、キャッシュデータサイズ３３６の値に応じて、キャッシュ領域３５の複数個のデータブロックが割当てられる。１つのデータブロックリスト３４は、キャッシュ領域３５内で連続するｎ個のデータブロックアドレスを指定しているため、例えば、キャッシュデータサイズ３３６の値がＬデータブロック相当の場合、管理情報ブロック３３−ｉにＬ／ｎ個のデータブロックリストをリンクし、これらのデータブロックリスト群が示すデータブロックアドレスＡ０１〜Ａ０ｎ、Ａ１１〜Ａ１ｎ、Ａ２１、Ａ２２、…に従って、Ｗｅｂコンテンツの書き込みと読み出しが行われる。
【００４２】
図７は、フリーブロックリスト３１−１〜３１−ｋの内容の１例を示す。
【００４３】
最初のフリーブロックリスト３１−１の位置は、スーパーブロック３０に含まれるポインタ（Ｐ０３）３０７で指定され、最後のフリーブロックリスト３１−ｋの位置は、ポインタ（Ｐ０４）３０８で指定される。また、フリーブロックリストの個数ｋはスーパーブロック３０に含まれるフリーブロックリスト数３０９で特定される。
【００４４】
各フリーブロックリストは、複数のフリーブロックアドレス３１０−１〜３１０−ｎと、次のフリーブロックリストの位置を示す次リストポインタ３１１とを含んでいる。最後のフリーブロックリスト３１−ｋの次リストポインタ３１９には、後続するフリーブロックリストが存在しないことを示す特定値が設定される。
【００４５】
各フリーブロックリストは、図６に示したデータブロックリスト３４と同一のサイズとなっている。キャッシュデータが不要となった時、データブロック領域をデータブロックリスト単位で解放し、解放されたデータブロックリストをフリーブロックリストとしてスーパーブロック３０にリンクすることによって、新たなＷｅｂコンテンツ用のキャッシュ領域が確保される。
【００４６】
図８は、管理プロキシサーバ２３がメモリ２３４に備える要求処理モジュール４１の詳細と、メモリ２３５に形成されるデータ構造の１実施例を示す。
【００４７】
要求処理モジュール４１は、図８の（Ａ）に示すように、スーパーブロック・キャッシュ初期化／終了処理ルーチン５０と、Ｗｅｂコンテンツ取得要求処理ルーチン５１と、管理情報エントリ特定ルーチン５２と、キャッシュ領域割当てルーチン５３と、キャッシュデータ有効期限延長ルーチン５４とからなっている。また、メモリ２３５には、図８の（Ｂ）に示すように、スーパーブロック・キャッシュ領域７１と、フリーブロックリスト・キャッシュ領域７２と、エントリテーブル領域７３と、管理情報キャッシュ領域７４とが定義される。
【００４８】
スーパーブロック・キャッシュ領域７１には、ディスク装置２５から読み出されたスーパーブロック３０の内容が記憶される。管理プロキシサーバ２３は、起動時にスーパーブロック・キャッシュ初期化／終了処理ルーチン５０を実行して、ディスク装置２５からスーパーブロック３０の内容を読み出し、これをスーパーブロック・キャッシュ領域７１に保持しておく。以後、スーパーブロック・キャッシュ領域７１に記憶されたデータを参照／更新することによって、ディスク装置２５へのアクセスによるオーバヘッドを軽減する。システムを停止する時は、スーパーブロック・キャッシュ初期化／終了処理ルーチン５０によって、スーパーブロック・キャッシュ領域７１の内容をディスク装置２５のスーパーブロック３０に書き戻すことによって、再起動時のデータの一貫性を保つ。
【００４９】
フリーブロックリスト・キャッシュ領域７２には、ポインタＰ０４で特定されるフリーブロックリスト群の最終リスト３１−ｋの内容が格納される。このように最後のフリーブロックリスト３１−ｋの内容をメモリ装置２３５に保持しておくことにより、新たなフリーブロックリストを既存のリスト群に追加する時、ディスク装置２５へのアクセス回数を軽減できる。
【００５０】
エントリテーブル領域７３は、図９に示すように、それぞれがキャッシュデータ有効期限７３１と管理情報ポインタ７３２とを示す複数のエントリＥＮ−１〜ＥＮ−ｎからなるエントリテーブル７３０が形成される。これらのエントリＥＮ−１〜ＥＮ−ｎは、ディスク装置２５に形成された管理情報テーブル３２上の管理情報ブロック３３−１〜３３−ｎと位置的に対応しており、例えば、エントリＥＮ−ｉのキャッシュデータ有効期限７３１は、管理情報テーブル３２上の対応する管理情報ブロック３３−ｉのキャッシュデータ有効期限３３４を示している。エントリテーブル上のキャッシュデータ有効期限７３１は、フリーブロックリスト３１−１〜３１−ｋの個数が不足した時、フリーブロックリストとして解放すべきデータブロックリストを選択するために参照される。
【００５１】
管理情報キャッシュ領域７４は、管理情報テーブル３２から読み出された管理情報ブロックを一時的に保持するために利用される。管理情報キャッシュ領域７４は、管理情報テーブル３２よりは少ない所定個数の管理情報ブロック７４０−１〜７４０−ｐ（ｐ＜ｎ）を格納できるだけのメモリ容量を有し、キャッシュ領域７４に保持された各管理情報ブロックは、管理情報ポインタ７３２によってエントリテーブル７３０の何れかのエントリにリンクされている。キャッシュ領域７４に保持された管理情報ブロックを有効に利用することによって、管理情報テーブル３２のアクセス回数を減らして、ディスク装置２５からのキャッシュデータの読み出しを行うことが可能となる。
【００５２】
要求処理モジュール４１のうち、Ｗｅｂコンテンツ取得要求処理ルーチン５１は、クライアント端末からＷｅｂコンテンツの取得要求を受信した時に起動され、これによって、図２で説明したステップＳ０１〜Ｓ０３、Ｓ０５、Ｓ０７が実行される。
【００５３】
管理情報エントリ特定ルーチン５２は、Ｗｅｂコンテンツ取得要求で指定されたＵＲＬの値に基づいて、該ＵＲＬに対応するエントリテーブル７３０上の１つのエントリＥＮ−ｉを特定するためのものである。エントリＥＮ−ｉの位置は、例えば、所定のハッシュ関数を適用して、与えられたＵＲＬの値をエントリテーブル７３０内のアドレス値に変換することによって特定される。
【００５４】
キャッシュ領域割当てルーチン５３は、キャッシュデータとして登録すべき新たなＷｅｂコンテンツが発生した時、フリーブロックリスト３１−１〜３１−ｋの中から上記Ｗｅｂコンテンツに割当てるべきデータブロックを選択するためのものである。また、キャッシュデータ有効期限延長ルーチン５４は、例えば、キャッシュデータ有効期限を過ぎたＷｅｂコンテンツに対してクライアント端末から取得要求があった時、キャッシュデータの保存期間を延長するためのものである。
【００５５】
上述したソフトウェア要素のうち、スーパーブロック・キャッシュ初期化／終了処理ルーチン５０、キャッシュ領域割当てルーチン５３、キャッシュデータ有効期限延長ルーチン５４と、スーパーブロック・キャッシュ領域７１、フリーブロックリスト・キャッシュ領域７２は、管理プロキシサーバ２３に特有のものであり、他のプロキシサーバ２４−１〜２４−ｎは、Ｗｅｂコンテンツ取得要求処理ルーチン５１、管理情報エントリ特定ルーチン５２、エントリテーブル領域７３、管理情報キャッシュ領域７４を備えている。尚、プロキシサーバ２４−１〜２４−ｎは、エントリテーブル７３０上でキャッシュデータ有効期限７３１を必要としないため、エントリＥＮ−１〜ＥＮ−ｎが管理情報ポインタ７３２のみを示すエントリテーブル構造としてもよい。
【００５６】
図１０は、管理プロキシサーバ２３およびプロキシサーバ２４−１〜２４−ｎがクライアント端末からＷｅｂコンテンツ取得要求ＲＥＱ１を受信した時に実行するＷｅｂコンテンツ取得要求処理ルーチン５１のフローチャートを示す。
【００５７】
Ｗｅｂコンテンツ取得要求処理ルーチン５１では、受信した要求ＲＥＱ１からＵＲＬを抽出し、エントリテーブル７３０上で上記ＵＲＬに対応するエントリＥＮ−ｉの位置を特定する（ステップ５１０）。エントリＥＮ−ｉの位置は、ＲＥＱ１から抽出されたＵＲＬの値を与えて、管理情報エントリ特定ルーチン５２を実行することによって特定される。
【００５８】
エントリＥＮ−ｉの位置が特定されると、該エントリの管理情報ポインタ７３２をチェックすることによって、上記ＵＲＬに対応する管理情報ブロックが管理情報キャッシュ領域７４に保持されているか否かを判定する（５１１）。エントリＥＮ−ｉに管理情報ポインタの値が設定されていた場合は、該ポインタ値に従って、キャッシュ領域７４から管理情報ブロックを読み出す（５１２）。エントリＥＮ−ｉに管理情報ポインタの値が設定されていなかった場合は、ディスク装置２５の管理情報テーブル３２から、上記エントリＥＮ−ｉと対応する位置にある管理情報ブロックを読み込む（５１３）。以下の説明では、上記ステップ５１２または５１３で読み出された管理情報ブロックを特に管理情報ブロック３３−ｉと定義する。
【００５９】
次に、ＲＥＱ１から抽出されたＵＲＬの値と、管理情報ブロック３３−ｉが示すＵＲＬ３３１の値とを比較する（５１４）。ここで、ＵＲＬを比較する理由は、管理情報エントリ特定ルーチン５２では、ＵＲＬの値をハッシュ関数で圧縮することによってエントリテーブル７３０上のアドレスを求めているため、エントリＥＮ−ｉに基づいて読み出された管理情報ブロック３３−ｉのＵＲＬとＲＥＱ１から抽出されたＵＲＬとの間には、完全な同一性が保証されていないからである。
【００６０】
ＵＲＬが一致しなかった場合は、図１３で詳述するＷｅｂコンテンツの取得処理５１８を実行し、Ｗｅｂサーバから取得したＷｅｂコンテンツを含む応答メッセージを要求元のクライアント端末に送信して（５１９）、このルーチンを終了する。ＵＲＬが一致した場合は、以下に述べるキャッシュデータを利用した応答処理を行う。
【００６１】
先ず、管理情報ブロック３３−ｉが示すキャッシュデータ有効期限をチェックし、キャッシュデータが有効期限切れとなっているか否かを判定する（５１５）。キャッシュデータが有効期限内の場合は、管理情報ブロック３３−ｉの状態フラグ３３５をチェックする（５２０）。状態フラグがデータ更新中を示していた場合、データ更新が終了するのを待って、次のステップ５２１に進む。キャッシュデータ有効期限を過ぎていた場合は、図１１で詳述するキャッシュデータ有効期限の更新処理５１６を実行する。有効期限の更新を正常に終了できなかった場合は、キャッシュデータの問題があるものと判断して、Ｗｅｂコンテンツの取得処理５１８を実行する。
【００６２】
有効期限の更新を正常に終了できた場合は、ステップ５２１に進み、エントリテーブルのエントリＥＮ−ｉの管理情報ポインタ７３２をチェックする。エントリＥＮ−ｉに管理情報ポインタが設定済みの場合は、ステップ５２５に進む。管理情報ポインタが設定されていなければ、管理情報キャッシュ領域７４で空きブロックを確保し（５２２）、エントリテーブル７３０のエントリＥＮ−ｉに上記空きブロックを指す管理情報ポインタを設定し（５２３）、管理情報キャッシュ領域７４の上記空きブロックに管理情報ブロック３３−ｉを登録する（５２４）。
【００６３】
ステップ５２５では、管理情報ブロック３３−ｉに含まれるポインタ３３７に従って、ディスク装置２５から上記管理情報ブロックにリンクしたデータブロックリスト群３４を読み込む。この後、各データブロックリストが示すデータブロックアドレスに従って、ディスク装置のキャッシュ領域３５から次々とキャッシュデータ（Ｗｅｂコンテンツ）を読み出し（５２６）、Ｗｅｂコンテンツを含む応答メッセージを作成し（５２７）、要求元のクライアント端末に応答メッセージを送信する（５１９）。
【００６４】
図１１は、キャッシュデータ有効期限の更新処理５１６の詳細を示す。
【００６５】
キャッシュデータ有効期限の更新処理５１６では、自分（サーバ）がキャッシュ管理機能を備えているか否かを判定する（５３０）。プロキシサーバ２４−１〜２４−ｎの場合は、キャッシュ管理機能を備えていないため、管理プロキシサーバ２３に対してキャッシュデータ有効期限の延長を要求し（５３１）、応答メッセージが受信されるのを待つ（５３２）。
【００６６】
上記キャッシュデータ有効期限の延長要求は、図１２の（Ａ）に示すように、ヘッダ部１０１と、パケット種別１０２と、ＵＲＬ１０３とを含むメッセージＲＥＱ５によって行われる。
【００６７】
ヘッダ部１０１には、宛先アドレスとして管理プロキシサーバ２３のアドレス、送信元アドレスとして自サーバのアドレスが設定される。パケット種別１０２には、このパケット（メッセージ）がキャッシュデータ有効期限の延長要求であることを示すコードが設定され、ＵＲＬ１０３には、Ｗｅｂコンテンツ取得要求ＲＥＱ１に付されていたＵＲＬの値が設定される。
【００６８】
管理プロキシサーバ２３からの応答は、図１２の（Ｂ）に示すように、ヘッダ部１０１と、パケット種別１０２と、結果１０４と、新たな有効期限１０５とからなる応答メッセージＲＥＳ５によって行われる。パケット種別１０２には、このパケット（メッセージ）がキャッシュデータ有効期限延長要求に対する応答であることを示すコードが設定され、結果フィールド１０４がエラー発生を示した場合は、フィールド１０５の内容は無効となる。
【００６９】
図１１に戻って、管理プロキシサーバ２３からの応答メッセージを受信すると、結果フィールド１０４を判定し（５３３）、正常終了を示している場合は、管理情報ブロック３３−ｉのキャッシュデータ有効期限３３４を上記応答メッセージが示す新たな有効期限１０５の値に変更する（５３４）。結果フィールド１０４がエラーの発生を示していた場合は、エラーフラグをオン状態にして（５３５）、この処理を終了する。
【００７０】
自分が管理プロキシサーバ２３の場合は、ステップ５３０から５３６に進み、管理情報ブロック３３−ｉのＷｅｂデータ有効期限３３３をチェックする。Ｗｅｂデータ有効期限を過ぎていた場合は、エラーフラグをオン状態にして（５３５）、この処理を終了する。Ｗｅｂデータ有効期限を過ぎていなければ、新たなキャッシュデータ有効期限を計算し（５３７）、管理情報ブロック３３−ｉのキャッシュデータ有効期限３３４と、エントリテーブル７３０のエントリＥＮ−ｉにおけるキャッシュデータ有効期限７３１を新たな有効期限に変更し（５３８）、更新された管理情報ブロック３３−ｉをディスク装置２５の管理情報テーブル３２の該当位置に書き込む（５３９）。
【００７１】
尚、新たな有効期限としては、例えば、Ｗｅｂデータ有効期限の範囲内で、更新日時に所定時間を加えた日時が設定される。また、図１０のステップ５１７では、上記エラーフラグの状態から正常終了か否かが判定される。
【００７２】
図１３は、Ｗｅｂコンテンツの取得処理５１８の詳細を示す。
【００７３】
Ｗｅｂコンテンツの取得処理５１８では、Ｗｅｂサーバをアクセスして、Ｗｅｂコンテンツの取得要求ＲＥＱ２を送信し（５４０）、Ｗｅｂサーバからの応答メッセージの受信を待つ（５４１）。取得要求ＲＥＱ２を送信してから一定時間内にＷｅｂサーバからの応答がない場合は（５４２）、エラーメッセージを作成し（５４３）、処理を終了する。
【００７４】
Ｗｅｂサーバから応答メッセージＲＥＳ２を受信すると、管理情報ブロック３３−ｉのキャッシュデータ有効期限３３４をチェックする（５４４）。キャッシュデータ有効期限内であれば、管理情報ブロック３３−ｉにリンクしたキャッシュデータの変更が抑制されるため、Ｗｅｂコンテンツを含む要求元宛の応答メッセージを作成して（５５４）、処理を終了する。
【００７５】
キャッシュデータ有効期限を過ぎていた場合、または、管理情報ブロック３３−ｉにキャッシュデータ有効期限の値が未設定（未使用エントリ）の場合は、自分（サーバ）がキャッシュ管理機能を備えているか否かを判定する（５４５）。プロキシサーバ２４−１〜２４−ｎの場合は、キャッシュ管理機能を備えていないため、管理プロキシサーバ２３に対してキャッシュ領域の割当てを要求し（５４６）、応答メッセージが受信されるのを待つ（５４９）。
【００７６】
上記キャッシュ領域の割当て要求は、図１４の（Ａ）に示すように、ヘッダ部１０１、パケット種別１０２、ＵＲＬ１０３、要求領域サイズ１１１、Ｗｅｂデータ有効期限１１２を含むメッセージＲＥＱ３によって行われる。
【００７７】
ヘッダ部１０１には、宛先アドレスとして管理プロキシサーバ２３のアドレス、送信元アドレスとして自サーバのアドレスが設定される。パケット種別１０２には、このパケット（メッセージ）がキャッシュ領域の割当て要求であることを示すコードが設定され、ＵＲＬ１０３には、Ｗｅｂコンテンツ取得要求ＲＥＱ１に付されていたＵＲＬの値が設定される。また、要求領域サイズ１１１には、Ｗｅｂサーバ応答メッセージＲＥＳ２に含まれるＷｅｂコンテンツのデータ長から求まるキャッシュ領域サイズが設定され、Ｗｅｂデータ有効期限１１２には、上記Ｗｅｂサーバ応答メッセージＲＥＳ２に付されているＷｅｂデータの有効期限が設定される。
【００７８】
自分が管理プロキシサーバ２３の場合は、上述したＵＲＬ、要求領域サイズ、Ｗｅｂデータ有効期限を特定（５４８）した後、図１５で詳述するキャッシュ領域の割当て処理５６０を実行する。これによって、新たなデータブロックリストにリンクした新たな管理情報ブロック３３−Ｎｅｗが生成され、ディスク装置２５の管理情報テーブル３２に登録される。上記管理情報ブロック３３−Ｎｅｗの登録位置は、ＵＲＬから特定されるエントリＥＮ−ｉの位置と対応している。
【００７９】
管理プロキシサーバ２３は、ステップ５４６で発生する他のプロキシサーバからのキャッシュ領域の割当て要求を受けた場合も、上記キャッシュ領域の割当て処理５６０と同様の処理を実行し、新たに生成された管理情報ブロック３３Ｎｅｗを管理情報テーブル３２に登録する。
【００８０】
管理プロキシサーバ２３からの応答は、図１４の（Ｂ）に示すように、ヘッダ部１０１、パケット種別１０２、キャッシュ領域割当ての可否１１３からなる応答メッセージＲＥＳ３によって行われる。ヘッダ部１０１には、宛先アドレスとして要求元のプロキシサーバのアドレス、送信元アドレスとして管理プロキシサーバ２３のアドレスが設定される。パケット種別１０２には、このパケット（メッセージ）がキャッシュ領域割当て要求に対する応答であることを示すコードが設定される。
【００８１】
図１３に戻って、管理プロキシサーバ２３からの応答メッセージＲＥＳ３を受信した時、または自サーバでキャッシュ領域の割当て処理５６０を終了すると、新たなＷｅｂコンテンツの格納に必要なキャッシュ領域が確保できたか否かを判定する（５４９）。必要なキャッシュ領域が確保できなかった場合は、ステップ５５４でＷｅｂコンテンツを含む要求元宛の応答メッセージを作成し、処理を終了する。
【００８２】
キャッシュ領域が確保できた場合は、ディスク装置２５の管理情報テーブル３２からエントリＥＮ−ｉと対応する管理情報ブロック３３−Ｎｅｗを読み出し、該管理情報ブロックが示すデータブロック先頭ポインタ３３７と、各データブロックリストの次リストポインタ３４１に従って、次々とデータブロックリスト３４を読み出す（５５０）。
【００８３】
次に、管理情報テーブル３２上の管理情報ブロック３３−Ｎｅｗの状態フラグ３３５をデータ更新中の状態に設定し（５５１）、既に読み出されているデータブロックリスト３４が示すデータブロックアドレスに従って、新たなＷｅｂコンテンツをキャッシュ領域３５に書き込む（５５２）。Ｗｅｂコンテンツの書き込みが完了すると、管理情報ブロック３３−Ｎｅｗの状態フラグ３３５を更新完了状態に設定し（５５３）、Ｗｅｂコンテンツを含む要求元宛の応答メッセージを作成し（５５４）、処理を終了する。
【００８４】
図１５は、キャッシュ領域の割当て処理５６０の詳細を示す。
【００８５】
キャッシュ領域の割当て処理では、要求されたＵＲＬの値を管理情報エントリ特定ルーチン５２に与えることによって、エントリテーブル７３０上で上記ＵＲＬに対応するエントリＥＮ−ｉの位置を特定する（５６１）。次に、ディスク装置２５の管理情報テーブル３２から、上記エントリＥＮ−ｉと対応した位置の管理情報ブロック３３−ｉを読み出し（５６２）、管理情報データ３３−ｉのキャッシュデータ有効期限をチェックする（５６３）。キャッシュデータ有効期限内であれば、キャッシュデータを保存する必要があるため、キャッシュ領域割当て結果を示すフラグを割当て不可状態に設定して（５７２）、この処理を終了する。
【００８６】
キャッシュデータ有効期限切れの場合は、スーパーブロック・キャッシュ領域２３５のフリーブロックリスト数３０９とリスト当たりのフリーブロック数３１０を参照して、フリーブロックリストに要求領域サイズを満たすフリーブロックがあるか否かを判定する（５６４）。フリーブロック数が不足していた場合は、エントリテーブル７３０のキャッシュデータ有効期限７３１を参照して、有効期限切れのエントリを検索する（５６５）。
【００８７】
有効期限切れのエントリが見つかった場合は、管理情報テーブル３２から上記期限切れエントリに対応する管理情報ブロックを解放し、この管理情報ブロックにリンクしていたデータブロックリストをフリーブロックリストに追加（５６６）した後、ステップ５６４に戻る。期限切れ管理情報ブロックの解放は、有効性表示フラグ３３０をデータ無効状態に切り換えることによって達成される。また、データブロックリストをフリーブロックリストに変更したことに伴い、スーパーブロック・キャッシュ領域２３５におけるフリーブロックリスト最終ポインタ（Ｐ０４）３０８とフリーブロックリスト数３０９の値が更新され、フリーブロックリスト・キャッシュ領域７２には新たな最終フリーブロックリストの内容が書き込まれる。
【００８８】
キャッシュデータ有効期限切れの全ての管理情報ブロックを解放しても、要求領域サイズを満たすフリーブロック数が確保できない場合は、キャッシュ領域割当て結果を示すフラグを割当て不可状態に設定して（５７２）、この処理を終了する。
【００８９】
フリーブロック数が要求領域サイズを満たした場合は、新たな管理情報ブロックを生成し（５６７）、要求領域サイズに見合った個数のフリーブロックリストを選択して、上記管理情報ブロックにデータブロックリストとしてリンクさせる（５６８）。また、フリーブロックリストの数が減少したことに伴って、スーパーブロック・キャッシュ領域７１におけるフリーブロックリスト先頭ポインタ（Ｐ０３）３０７とフリーブロックリスト数３０９の値を更新する（５６９）。上記新たな管理情報ブロックには、ステップ５４８で特定されたＵＲＬ（３３１）とＷｅｂデータ有効期限（３３３）が設定され、キャッシュデータ登録時刻３３２には現在の日時が設定される。また、キャッシュデータ有効期限３３４には、Ｗｅｂデータ有効期限の範囲内で現在の日時に所定時間を加えた値が設定され、状態フラグ３３５は初期状態に設定される。
【００９０】
上記管理情報ブロックは、エントリテーブルのエントリＥＮ−ｉと対応した管理情報ブロックとして、ディスク装置２５の管理情報テーブル３２に書き込まれ（５７０）、キャッシュ領域割当て結果を示すフラグを割当て可能状態に設定して（５７１）、この処理が終了する。
【００９１】
図１６は、管理プロキシサーバ２３が、他のプロキシサーバから要求メッセージＲＥＱ３を受信した時に実行するキャッシュ領域割当てルーチン５３のフローチャートを示す。
【００９２】
キャッシュ領域割当てルーチン５３では、受信メッセージからＵＲＬ、要求領域サイズ、Ｗｅｂデータ有効期限を特定し（５７５）、図１５で説明したキャッシュ領域の割当て処理５６０を実行する。割当て処理５６０が終了すると、キャッシュ領域割当て結果を示すフラグの状態に応じて、図１４に示した応答メッセージＲＥＳ３を生成し、要求元のプロキシサーバに送信する（５７６）。
【００９３】
図１７は、管理プロキシサーバ２３が、他のプロキシサーバから要求メッセージＲＥＱ５を受信した時に実行するキャッシュデータ有効期限延長ルーチン５４のフローチャートを示す。
【００９４】
最初に、要求メッセージＲＥＱ５で指定されたＵＲＬの値を管理情報エントリ特定ルーチン５２に与えることによって、エントリテーブル７３０上で上記ＵＲＬに対応するエントリＥＮ−ｉの位置を特定する（５８０）。次に、ディスク装置２５の管理情報テーブル３２から、上記エントリＥＮ−ｉと対応した位置の管理情報ブロック３３−ｉを読み込み（５８１）、要求メッセージＲＥＱ５指定されたＵＲＬと上記管理情報ブロック３３−ｉが示すＵＲＬ３３１とを比較する（５８２）。ＵＲＬが不一致の場合は、エラー発生を示す応答メッセージＲＥＳ５を要求元のプロキシサーバに送信して（５８９）、このルーチンを終了する。
【００９５】
ＵＲＬが一致した場合は、管理情報ブロック３３−ｉが示すＷｅｂデータ有効期限３３３をチェックする（５８３）。もし、Ｗｅｂデータ有効期限が期限切れとなっていた場合は、エラー発生を示す応答メッセージＲＥＳ５を要求元のプロキシサーバに送信して（５８９）、このルーチンを終了する。
【００９６】
Ｗｅｂデータ有効期限内となっていた場合は、管理情報ブロック３３−ｉが示すキャッシュデータ有効期限３３４をチェックする（５８４）。キャッシュデータ有効期限が期限切れとなっていた場合は、新たな有効期限を計算し（５８５）、エントリテーブル７３０のエントリＥＮ−ｉが示すキャッシュデータ有効期限７３１と、ディスク装置２５の管理情報テーブル３２における管理情報ブロック３３−ｉのキャッシュデータ有効期限３３４を新たな有効期限に変更する（５８６）。この後、結果フィールド１０４が正常終了を示し、フィールド１０５が上記新たな有効期限を示す応答メッセージＲＥＳ５を要求元のプロキシサーバに送信して（５８８）、このルーチンを終了する。
【００９７】
キャッシュデータ有効期限が期限切れとなっていなかった場合は、現在の有効期限をそのまま新たな有効期限に設定し（５８７）、ステップ５８８を実行する。
【００９８】
図１８は、本発明の変形例として、管理プロキシサーバ２３にフリーブロックを定期的に確保させる場合に実行するフリーブロック確保処理ルーチン５５のフローチャートを示す。
【００９９】
このルーチン５５は、タイマ割り込みによって定期的に実行される。先ず、スーパーブロック・キャッシュ領域７１に格納されているスーパーブロック３０を参照し、フリーブロックリスト数３０９の値を閾値Ｔｈと比較する（５９１）。フリーブロックリスト数が閾値（Ｔｈ）以上の場合は、何もせずにこのルーチンを終了する。
【０１００】
フリーブロックリスト数が閾値Ｔｈよりも少ない場合は、エントリテーブル７３０のサーチポイントを示すパラメータｉの値を初期化（５９２）した後、パラメータｉの値をインクリメントし（５９３）、パラメータｉの値をエントリテーブル７３０のエントリ数ｎと比較する（５９４）。ｉ＞ｎとなった場合は、このルーチンを終了し、そうでなければ、エントリテーブル７３０の第ｉエントリＥＮ−ｉのキャッシュデータ有効期限７３１が期限切れとなっているか否かをチェックする（５９５）。有効期限７３１が期限切れとなっていなければ、ステップ５９３に戻り、パラメータｉの値をインクリメントして、同様の処理を繰り返す。
【０１０１】
キャッシュデータ有効期限７３１が期限切れとなっていた場合は、第ｉエントリＥＮ−ｉに対応する管理情報ブロック３３−ｉを無効にし、この管理情報ブロックにリンクされていたデータブロックリスト群３４−１〜３４−ｍを最後のフリーブロックリスト３１−ｋにリンクする（５９６）。
【０１０２】
尚、管理情報ブロック３３−ｉは、有効性表示フラグ３３０を無効状態に設定することによって無効にできる。また、解放されたデータブロック群は、管理情報ブロック３３−ｉが示すポインタ３３７の値を最後のフリーブロックリスト３１−ｋの次リストポインタ３１１に設定することによって、フリーブロックリスト群にリンクできる。
【０１０３】
この時、スーパーブロック・キャッシュ領域７１において、フリーブロックリストの最終ポインタ（Ｐ０４）３０８に、解放された最後のデータブロックを指すポインタアドレスを設定し、解放されたフリーブロックリストの個数に応じて、フリーブロックリスト数３０９の値を更新しておく。更新されたフリーブロックリスト数を閾値Ｔｈと比較し（５９７）、フリーブロックリスト数がＴｈに達していなければステップ５９３に戻り、Ｔｈ以上となっていた場合は、このルーチンを終了する。
【０１０４】
上記実施例では、フリーブロック確保処理ルーチン５５を実行した時、エントリのチェックが常にエントリテーブル７３０の先頭から開始されている。しかしながら、パラメータｉの値がエントリ数ｎに達する前にフリーブロックリスト数が閾値Ｔｈ以上となった場合、パラメータｉの値を保存して処理を終了し、次回は、このパラメータ値を初期値として期限切れの管理情報ブロックをサーチするようにしてもよい。この場合、パラメータｉの値がｎを超えたら初期値１に戻すことによって、エントリテーブルを循環的にサーチし、保存された最初のパラメータ値に達した時、処理を終了する。
【０１０５】
このように、定期的にフリーブロックを確保しておくと、新たなＷｅｂコンテンツが発生した時、図１５に示したキャッシュ領域の割当て処理５６０の実行中に、期限切れデータブロックリストをフリーブロックリストに変更する必要がなくなるため、クライアント端末からのＷｅｂコンテンツ取得要求に対する応答時間を短縮することが可能となる。
【０１０６】
上述した実施例では、プロキシサーバ２４からのキャッシュ領域の割当て要求ＲＥＱ３に対して管理プロキシサーバ２３が応答した時、プロキシサーバ２４が、ディスク装置２５から新たに生成された管理情報ブロックを読み出し、これにリンクしたデータブロックリストを読み出して、Ｗｅｂコンテンツをキャッシュ領域に書き込んでいる。
【０１０７】
本発明の他の実施例として、管理プロキシサーバ２３が、参照すべきデータブロックリストを応答メッセージＲＥＳ３でプロキシサーバ２４に通知し、プロキシサーバ２４が、この応答メッセージから抽出したデータブロックリストが示すアドレスに従って、Ｗｅｂコンテンツをキャッシュ領域に書き込むようにしてもよい。このようにすれば、Ｗｅｂコンテンツ書込み動作に先行したディスク装置のアクセス回数を減らすことができるため、処理時間を短縮することが可能となる。
【０１０８】
図１９は、本発明によるアクセス中継装置２の第２の実施例を示す。
【０１０９】
本実施例では、管理プロキシサーバ２３の代わりに、キャッシュ管理機能を備えたディスク管理装置２６が用いられる。この場合、ディスク管理装置２６には、負荷分散装置２２によるクライアント端末からのＷｅｂコンテンツ取得要求の割当てはなく、ディスク管理装置２６は、プロキシサーバ２４−１〜２４−ｎからの要求に応じたキャッシュ領域の割当てと、有効期限の更新、有効期限切れキャッシュデータ領域の解放のための処理を担当する。
【０１１０】
図２０は、本発明によるアクセス中継装置２の動作シーケンスの変形例として、上記第２実施例のアクセス中継装置２に適した動作シーケンスを示す。
【０１１１】
本実施例では、プロキシサーバ２４が、Ｗｅｂサーバ３からＷｅｂコンテンツを含む応答メッセージＲＥＳ２を受信したとき、ディスク管理装置２６に対して、キャッシュ領域へのＷｅｂコンテンツの格納要求ＲＥＱ４を発行する。
【０１１２】
ディスク管理装置２６は、要求ＲＥＱ４に含まれるＷｅｂコンテンツのデータ長からキャッシュ領域サイズを計算して、キャッシュ領域の割当て（Ｓ０６）を行い、このキャッシュ領域に対して要求ＲＥＱ４が示すＷｅｂコンテンツの書き込み（Ｓ０７）を行い、処理の終了を示す応答メッセージＲＥＳ３を要求元のプロキシサーバに送信する。
【０１１３】
プロキシサーバ２４は、上記応答メッセージＲＥＳ３を受信すると、Ｗｅｂコンテンツ要求元のクライアント端末１に、Ｗｅｂコンテンツを含む応答メッセージＲＥＳ１’を送信する。但し、クライアント端末１への応答メッセージＲＥＳ１’は、破線で示すように、ディスク管理装置２６へのＷｅｂコンテンツの格納要求時に送信してもよい。
【０１１４】
本実施例におけるディスク管理装置２６の動作は、第１実施例における管理プロキシサーバ２３自身が、ＷＥｂサーバから取得したＷｅｂコンテンツをキャッシュデータとして蓄積する場合の動作に相当している。従って、ディスク管理装置２６は、基本的には図１３に示したＷｅｂコンテンツ取得処理５１８におけるステップ５４４以降の動作を実行すればよい。また、各プロキシサーバにとっては、自分でキャッシュデータの蓄積処理を実行する必要がないため、Ｗｅｂコンテンツ取得処理５１８において、Ｗｅｂサーバから応答メッセージを受信（５４１）した後で、要求メッセージＲＥＱ４を作成し、これをディスク管理装置２６に送信すればよい。
【０１１５】
上述したように、キャッシュ領域の管理機能とＷｅｂコンテンツの書き込み機能を１つの装置に集中した場合、プロキシサーバ２４の負荷を軽減できるため、クライアント端末への応答を迅速化することが可能となる。このような機能分担は、図１に示した実施例にも適用できる。この場合、管理プロキシサーバ２３は、キャッシュデータ管理のための負荷が増加するため、クライアントからのＷｅｂコンテンツ取得要求処理の負荷を他のプロキシサーバよりも軽くする必要がある。
【０１１６】
以上の実施例では、要求されたＷｅｂコンテンツがキャッシュデータ中に見つかった時、Ｗｅｂコンテンツのキャッシュデータ有効期限が切れていた場合に有効期限を延長したが、アクセス頻度の高いＷｅｂコンテンツがキャッシュデータとして長時間保持されるように、期限切れには関係なく、キャッシュデータ読み出しの都度、Ｗｅｂコンテンツの有効期限を延長するようにしてもよい。
【０１１７】
【発明の効果】
以上の実施例から明らかなように、本発明によれば、Ｗｅｂサイトから取得したコンテンツが複数のプロキシサーバに共有のキャッシュデータとしてディスク装置に蓄積されるため、キャッシュデータ有効期間内のＷｅｂコンテンツについては、Ｗｅｂアクセス中継装置からＷｅｂサーバへの重複したアクセスを回避でき、Ｗｅｂサイトの負荷を軽減することが可能となる。また、キャッシュ領域を複数のプロキシサーバで共用したことによって、キャッシュ用ディスク装置のメモリ容量を有効に利用したＷｅｂアクセス中継装置を提供できる。
【図面の簡単な説明】
【図１】本発明によるＷｅｂアクセス中継装置２を含む通信ネットワークシステムの構成図。
【図２】本発明によるＷｅｂアクセス中継装置２の動作シーケンスを示す図。
【図３】Ｗｅｂアクセス中継装置２を構成している管理プロキシサーバ２３の構成図。
【図４】Ｗｅｂアクセス中継装置２を構成しているディスク装置２５に形成されるデータ構造の１例を示す図。
【図５】図４に示したスーパーブロックの内容の１例を示す図。
【図６】図４に示した管理情報ブロック３３と、これにリンクしたデータブロックリスト３４の内容の１例を示す図。
【図７】図４に示したフリーブロックリスト３１の内容の１例を示す図。
【図８】管理プロキシサーバ２３がメモリ装置２３４に備える要求処理モジュール４１の詳細（図Ａ）と、メモリ装置２３５に形成されるデータ構造（図Ｂ）の１例を示す図。
【図９】メモリ領域７２に形成されるエントリテーブル７３０の内容と管理情報キャッシュ領域７４との関係を説明するための図。
【図１０】管理プロキシサーバ２３とプロキシサーバ２４が実行するＷｅｂコンテンツ取得要求処理ルーチン５１の１実施例を示すフローチャート。
【図１１】図１０におけるキャッシュデータ有効期限更新処理５１６の詳細を示すフローチャート。
【図１２】プロキシサーバ２４から送信されるキャッシュデータ有効期限延長要求メッセージＲＥＱ５（図Ａ）と、管理プロキシサーバ２３からの応答メッセージＲＥＳ５（図Ｂ）の１例を示す図。
【図１３】図１０におけるＷｅｂコンテンツ取得要求処理５１８の詳細を示すフローチャート。
【図１４】プロキシサーバ２４から送信されるキャッシュ領域割当て要求メッセージＲＥＱ３（図Ａ）と、管理プロキシサーバ２３からの応答メッセージＲＥＳ３（図Ｂ）の１例を示す図。
【図１５】図１３におけるキャッシュ領域割当て処理５６０の詳細を示すフローチャート。
【図１６】管理プロキシサーバ２３が実行するキャッシュ領域割当てルーチン５３の詳細を示すフローチャート。
【図１７】管理プロキシサーバ２３が実行するキャッシュデータ有効期限延長ルーチン５４の詳細を示すフローチャート。
【図１８】管理プロキシサーバ２３が実行するフリーブロック確保処理ルーチン５５の１実施例を示すフローチャート。
【図１９】本発明によるＷｅｂアクセス中継装置２の第２の実施例を示すブロック構成図。
【図２０】図１９に示したＷｅｂアクセス中継装置２に適した動作シーケンスを示す図。
【符号の説明】
１：クライアント端末、２：アクセス中継装置、３：Ｗｅｂサーバ、
２１：パケット中継装置、２２：負荷分散装置、２３：管理プロキシサーバ、
２４：プロキシサーバ、２５：ディスク装置、２６：ディスク管理装置、
３０：スーパーブロック、３１：フリーブロックリスト、３２：管理情報テーブル、３４：データブロックリスト、３５：データキャッシュ領域、
３５０：データブロック、７１：スーパーブロック・キャッシュ領域、
７２：フリーブロックリスト・キャッシュ領域、７３：エントリテーブル領域、７４：管理情報キャッシュ領域、７３０：エントリテーブル。
【図１】
2004038439.tif 000003
【図２】
2004038439.tif 000004
【図３】
2004038439.tif 000005
【図４】
2004038439.tif 000006
【図５】
2004038439.tif 000007
【図６】
2004038439.tif 000008
【図７】
2004038439.tif 000009
【図８】
2004038439.tif 000010
【図９】
2004038439.tif 000011
【図１０】
2004038439.tif 000012
【図１１】
2004038439.tif 000013
【図１２】
2004038439.tif 000014
【図１３】
2004038439.tif 000015
【図１４】
2004038439.tif 000016
【図１５】
2004038439.tif 000017
【図１６】
2004038439.tif 000018
【図１７】
2004038439.tif 000019
【図１８】
2004038439.tif 000020
【図１９】
2004038439.tif 000021
【図２０】
2004038439.tif 000022