JPH09204347A - ゲートウェイ装置 - Google Patents
ゲートウェイ装置Info
- Publication number
- JPH09204347A JPH09204347A JP8307749A JP30774996A JPH09204347A JP H09204347 A JPH09204347 A JP H09204347A JP 8307749 A JP8307749 A JP 8307749A JP 30774996 A JP30774996 A JP 30774996A JP H09204347 A JPH09204347 A JP H09204347A
- Authority
- JP
- Japan
- Prior art keywords
- file
- cache
- network
- transfer
- file object
- 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.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 キャッシュファイルを新鮮に保ちながら、キ
ャッシュヒット率の向上したproxy サーバ装置を提供す
る。 【解決手段】 キャッシュファイル16を使用し、アク
セスログ15を書出す第1のproxy プロセス14に加え
て、アクセスログ15から、キャッシュファイル16の
有効期限よりも長い期間内のアクセスログを抽出し、ア
クセスリスト30を作成し、定期的にこのリスト30内
のファイルオブジェクトへのアクセス要求を発行するプ
リフェッチプロセス36と、このアクセス要求に応答し
て外部サーバからファイルオブジェクトを取得しキャッ
シュファイル16に格納するための第2のproxy プロセ
ス34とを含む。第2のproxy プロセス34は複数個同
時に実行されてもよく、この際に優先度を第1のproxy
プロセスより低くすると好都合である。
ャッシュヒット率の向上したproxy サーバ装置を提供す
る。 【解決手段】 キャッシュファイル16を使用し、アク
セスログ15を書出す第1のproxy プロセス14に加え
て、アクセスログ15から、キャッシュファイル16の
有効期限よりも長い期間内のアクセスログを抽出し、ア
クセスリスト30を作成し、定期的にこのリスト30内
のファイルオブジェクトへのアクセス要求を発行するプ
リフェッチプロセス36と、このアクセス要求に応答し
て外部サーバからファイルオブジェクトを取得しキャッ
シュファイル16に格納するための第2のproxy プロセ
ス34とを含む。第2のproxy プロセス34は複数個同
時に実行されてもよく、この際に優先度を第1のproxy
プロセスより低くすると好都合である。
Description
【0001】
【発明の属する技術分野】本発明は、ネットワーク上に
分散した複数のサーバ計算機と、複数のクライアント計
算機とがゲートウェイ装置(計算機)を介して通信回線
で相互接続されている分散ファイルシステムに関し、特
に、複数のクライアント計算機が、ゲートウェイ計算機
を介してサーバ計算機内部の記憶装置内のファイルオブ
ジェクトにアクセスする場合の分散ファイルシステムの
ファイル中継を行なうゲートウェイ装置に関する。
分散した複数のサーバ計算機と、複数のクライアント計
算機とがゲートウェイ装置(計算機)を介して通信回線
で相互接続されている分散ファイルシステムに関し、特
に、複数のクライアント計算機が、ゲートウェイ計算機
を介してサーバ計算機内部の記憶装置内のファイルオブ
ジェクトにアクセスする場合の分散ファイルシステムの
ファイル中継を行なうゲートウェイ装置に関する。
【0002】
【従来の技術】以下の説明中で「サーバ計算機」とは、
ネットワーク上において何らかのサービスを提供してい
る計算機をいい、「クライアント計算機」とは、そうし
たサーバ計算機のサービスを要求し、受ける計算機をい
うものとする。また「ファイルオブジェクト」とは、フ
ァイルシステムの利用するネットワークプロトコルと、
ネットワークアドレス(サーバ計算機の名称)と、ファ
イル名称と、ファイルの実体との組をいうものとする。
ここで「ファイルオブジェクトの名称」とは、ネットワ
ークプロトコルとネットワークアドレスとファイル名称
との組のことをいう。
ネットワーク上において何らかのサービスを提供してい
る計算機をいい、「クライアント計算機」とは、そうし
たサーバ計算機のサービスを要求し、受ける計算機をい
うものとする。また「ファイルオブジェクト」とは、フ
ァイルシステムの利用するネットワークプロトコルと、
ネットワークアドレス(サーバ計算機の名称)と、ファ
イル名称と、ファイルの実体との組をいうものとする。
ここで「ファイルオブジェクトの名称」とは、ネットワ
ークプロトコルとネットワークアドレスとファイル名称
との組のことをいう。
【0003】従来、上述したような分散ファイルシステ
ムにおいては、複数のクライアント計算機からのサーバ
計算機上のファイルオブジェクトに対する読出要求は、
一旦途中のゲートウェイ計算機で中継されていた。ゲー
トウェイ計算機がサーバ計算機から読出したファイルオ
ブジェクトは、クライアント計算機に中継される。それ
と同時にそれらファイルオブジェクトは、ゲートウェイ
計算機内部のキャッシュファイル(固定ディスク、半導
体メモリなど)に蓄積される。そうしたゲートウェイ計
算機の一例が特開平4−313126号公報(発明の名
称「分散ファイルシステムのファイル入出力方式」)に
開示されている。
ムにおいては、複数のクライアント計算機からのサーバ
計算機上のファイルオブジェクトに対する読出要求は、
一旦途中のゲートウェイ計算機で中継されていた。ゲー
トウェイ計算機がサーバ計算機から読出したファイルオ
ブジェクトは、クライアント計算機に中継される。それ
と同時にそれらファイルオブジェクトは、ゲートウェイ
計算機内部のキャッシュファイル(固定ディスク、半導
体メモリなど)に蓄積される。そうしたゲートウェイ計
算機の一例が特開平4−313126号公報(発明の名
称「分散ファイルシステムのファイル入出力方式」)に
開示されている。
【0004】図12を参照して、この従来技術に開示さ
れたシステムは、ゲートウェイ計算機110と、このゲ
ートウェイ計算機110を介して相互に接続されたサー
バ計算機100および複数のクライアント計算機120
を含む。サーバ計算機100は、複数のクライアント計
算機120によって共有されている。
れたシステムは、ゲートウェイ計算機110と、このゲ
ートウェイ計算機110を介して相互に接続されたサー
バ計算機100および複数のクライアント計算機120
を含む。サーバ計算機100は、複数のクライアント計
算機120によって共有されている。
【0005】サーバ計算機100は、ファイルを格納す
るディスク装置136と、ネットワークを介してディス
ク装置136のファイルの内容を入出力するためのファ
イル入出力応答手段134と、ディスク装置136内の
ブロック情報をネットワークを介してクライアント計算
機120に応答するためのブロック情報応答手段132
とを含む。
るディスク装置136と、ネットワークを介してディス
ク装置136のファイルの内容を入出力するためのファ
イル入出力応答手段134と、ディスク装置136内の
ブロック情報をネットワークを介してクライアント計算
機120に応答するためのブロック情報応答手段132
とを含む。
【0006】クライアント計算機120は、サーバ計算
機100のブロック情報応答手段132に対してブロッ
ク情報要求を送り、ブロック情報を受けるためのブロッ
ク情報要求手段152と、ゲートウェイ計算機110を
介してサーバ計算機100のファイル入出力応答手段1
34に対してファイル入出力要求を送り、当該ファイル
を受信するためのファイル入出力要求手段154とを含
む。
機100のブロック情報応答手段132に対してブロッ
ク情報要求を送り、ブロック情報を受けるためのブロッ
ク情報要求手段152と、ゲートウェイ計算機110を
介してサーバ計算機100のファイル入出力応答手段1
34に対してファイル入出力要求を送り、当該ファイル
を受信するためのファイル入出力要求手段154とを含
む。
【0007】ゲートウェイ計算機110は、クライアン
ト計算機120(複数)とサーバ計算機100との間に
介在し、サーバ計算機100内のディスク装置136
と、各クライアント計算機120との間のキャッシュメ
モリとして機能するものであり、キャッシュした内容を
格納するためのディスクキャッシュ144と、ファイル
入出力要求手段154およびファイル入出力応答手段1
34の間に介在するキャッシュ管理手段142とを含
む。
ト計算機120(複数)とサーバ計算機100との間に
介在し、サーバ計算機100内のディスク装置136
と、各クライアント計算機120との間のキャッシュメ
モリとして機能するものであり、キャッシュした内容を
格納するためのディスクキャッシュ144と、ファイル
入出力要求手段154およびファイル入出力応答手段1
34の間に介在するキャッシュ管理手段142とを含
む。
【0008】図12を参照して、このシステムは次のよ
うに動作する。まず、クライアント計算機120がサー
バ計算機100内のディスク装置136中のファイルに
アクセスして1つのブロックを読込む場合の動作につい
て説明する。ブロック情報要求手段150は、ゲートウ
ェイ計算機110を介してサーバ計算機100に対して
読込対象のブロックにかかるブロック情報の取得を要求
するブロック情報要求メッセージを発行する。
うに動作する。まず、クライアント計算機120がサー
バ計算機100内のディスク装置136中のファイルに
アクセスして1つのブロックを読込む場合の動作につい
て説明する。ブロック情報要求手段150は、ゲートウ
ェイ計算機110を介してサーバ計算機100に対して
読込対象のブロックにかかるブロック情報の取得を要求
するブロック情報要求メッセージを発行する。
【0009】サーバ計算機100内のブロック情報応答
手段132は、このメッセージに応答して、ディスク装
置136から該当するブロック情報を取出し、そのブロ
ック情報を有するブロック情報応答メッセージをゲート
ウェイ計算機110を介してクライアント計算機120
内のブロック情報要求手段152に返却する。
手段132は、このメッセージに応答して、ディスク装
置136から該当するブロック情報を取出し、そのブロ
ック情報を有するブロック情報応答メッセージをゲート
ウェイ計算機110を介してクライアント計算機120
内のブロック情報要求手段152に返却する。
【0010】クライアント計算機120のファイル入出
力要求手段150は、返却されたブロック情報に基づい
て、読込対象のブロックの読込を要求するファイルアク
セス要求を、ゲートウェイ計算機110内のキャッシュ
管理手段142に対して発行する。
力要求手段150は、返却されたブロック情報に基づい
て、読込対象のブロックの読込を要求するファイルアク
セス要求を、ゲートウェイ計算機110内のキャッシュ
管理手段142に対して発行する。
【0011】このファイルアクセス要求を受取ったキャ
ッシュ管理手段142は、そのファイルアクセス要求に
かかるブロック情報と、ディスクキャッシュ144に記
憶されている読込対象のブロックにかかるブロック情報
との比較を行なう。そしてディスクキャッシュ144
に、該当するブロック情報が存在しない場合、または両
方のブロック情報の内容(更新時刻)が異なる場合(読
込対象のブロックのキャッシュが有効でない場合)に
は、キャッシュ管理手段142は上述のファイルアクセ
ス要求をサーバ計算機100のファイル入出力応答手段
134に対して発行する。
ッシュ管理手段142は、そのファイルアクセス要求に
かかるブロック情報と、ディスクキャッシュ144に記
憶されている読込対象のブロックにかかるブロック情報
との比較を行なう。そしてディスクキャッシュ144
に、該当するブロック情報が存在しない場合、または両
方のブロック情報の内容(更新時刻)が異なる場合(読
込対象のブロックのキャッシュが有効でない場合)に
は、キャッシュ管理手段142は上述のファイルアクセ
ス要求をサーバ計算機100のファイル入出力応答手段
134に対して発行する。
【0012】サーバ計算機100のファイル入出力応答
手段134は、このファイルアクセス要求に応答して、
ディスク装置136内のファイルをアクセスして、該当
するブロックを読込み、ゲートウェイ計算機110にそ
のブロックを転送する。
手段134は、このファイルアクセス要求に応答して、
ディスク装置136内のファイルをアクセスして、該当
するブロックを読込み、ゲートウェイ計算機110にそ
のブロックを転送する。
【0013】キャッシュ管理手段142は、このブロッ
クをディスクキャッシュ144に格納し、そのブロック
にかかるブロック情報のディスクキャッシュ144への
設定または更新を行なう。キャッシュ管理手段142は
同時に、そのブロックをクライアント計算機120のフ
ァイル入出力要求手段154に対して転送する。
クをディスクキャッシュ144に格納し、そのブロック
にかかるブロック情報のディスクキャッシュ144への
設定または更新を行なう。キャッシュ管理手段142は
同時に、そのブロックをクライアント計算機120のフ
ァイル入出力要求手段154に対して転送する。
【0014】以上でディスクキャッシュ144内に有効
なファイルが存在しない場合のこのシステムの動作につ
いて説明した。
なファイルが存在しない場合のこのシステムの動作につ
いて説明した。
【0015】次回に同一ファイルに対するアクセス要求
があった場合には、ゲートウェイ計算機110のキャッ
シュ管理手段142は、ディスクキャッシュ144から
当該ブロックを取出し、アクセス要求を発行したクライ
アント計算機120のファイル入出力要求手段154に
対して当該ブロックを転送する。したがってこの場合、
ゲートウェイ計算機110からサーバ計算機100に対
する転送要求は発行されない。したがって中継アクセス
の高速化が図られる。
があった場合には、ゲートウェイ計算機110のキャッ
シュ管理手段142は、ディスクキャッシュ144から
当該ブロックを取出し、アクセス要求を発行したクライ
アント計算機120のファイル入出力要求手段154に
対して当該ブロックを転送する。したがってこの場合、
ゲートウェイ計算機110からサーバ計算機100に対
する転送要求は発行されない。したがって中継アクセス
の高速化が図られる。
【0016】類似の技術が、特開昭63−200244
号公報(発明の名称「ファイル・アクセス・システ
ム」)や、特開昭63−20184号公報(発明の名称
「遠隔ファイル・アクセス・システム」)にも開示され
ている。いずれの技術においても、あるファイルオブジ
ェクトに対するアクセス要求が発行された場合に、当該
ファイルオブジェクトの内容が更新されているかどうか
を確認するために、サーバ計算機の保持するファイルオ
ブジェクトの変更時刻をキャッシュファイルの変更時刻
と比較する。そしてキャッシュファイルの内容が古い場
合には、クライアント計算機は更新されたサーバ計算機
の内容を読出すようになっている。しかしこれら2件の
公報に記載された技術では、キャッシュファイルはクラ
イアント計算機内に存在しており、特開平4−3131
26号公報に開示されたシステムのようにシステム内に
ゲートウェイ計算機が含まれているわけではない。
号公報(発明の名称「ファイル・アクセス・システ
ム」)や、特開昭63−20184号公報(発明の名称
「遠隔ファイル・アクセス・システム」)にも開示され
ている。いずれの技術においても、あるファイルオブジ
ェクトに対するアクセス要求が発行された場合に、当該
ファイルオブジェクトの内容が更新されているかどうか
を確認するために、サーバ計算機の保持するファイルオ
ブジェクトの変更時刻をキャッシュファイルの変更時刻
と比較する。そしてキャッシュファイルの内容が古い場
合には、クライアント計算機は更新されたサーバ計算機
の内容を読出すようになっている。しかしこれら2件の
公報に記載された技術では、キャッシュファイルはクラ
イアント計算機内に存在しており、特開平4−3131
26号公報に開示されたシステムのようにシステム内に
ゲートウェイ計算機が含まれているわけではない。
【0017】しかしこれら3件の従来技術文献は、サー
バ計算機のファイルオブジェクトと、キャッシュされた
ファイルオブジェクトとの内容が食い違わないような工
夫をしているという共通点を持っている。
バ計算機のファイルオブジェクトと、キャッシュされた
ファイルオブジェクトとの内容が食い違わないような工
夫をしているという共通点を持っている。
【0018】このように本来同一であるべきファイルの
食い違いを防ぐことをインテグリティ(Integrity )を
保つという。また、食い違いの起きたファイルのデータ
をステールデータ(stale data)と呼ぶ。
食い違いを防ぐことをインテグリティ(Integrity )を
保つという。また、食い違いの起きたファイルのデータ
をステールデータ(stale data)と呼ぶ。
【0019】上述した従来の技術の基本は、ネットワー
ク経由でサーバ計算機の、該当するファイルオブジェク
トの変更時刻を調べ、対応するキャッシュファイルの内
容の変更時刻と比較するアルゴリズムを使用している。
そのためサーバ計算機に対するネットワーク経由の問合
せを必ず行なわなければならない。ネットワークの実効
的な転送速度が小さい場合や、該当するファイルオブジ
ェクトを有するサーバ計算機にかかっている負荷が高く
て即座に応答できない場合には、そうした問合せ自体に
かなり時間がかかってしまうことがある。そのためネッ
トワークファイルシステムによっては、このようなファ
イルキャッシュのシステムを採用していない場合もあ
る。すなわちこうしたシステムでは、サーバ計算機の保
持するファイルオブジェクトが更新されているにもかか
わらず、ゲートウェイ計算機の持つキャッシュ内の対応
するファイルオブジェクトは必ずしも更新されていな
い。このようなネットワークファイルシステム方式の代
表的なものとして、いわゆるインターネットにおけるH
TTP(HyperText Transfer Protocol )を使った広域
分散型マルチメディア情報システムがある。
ク経由でサーバ計算機の、該当するファイルオブジェク
トの変更時刻を調べ、対応するキャッシュファイルの内
容の変更時刻と比較するアルゴリズムを使用している。
そのためサーバ計算機に対するネットワーク経由の問合
せを必ず行なわなければならない。ネットワークの実効
的な転送速度が小さい場合や、該当するファイルオブジ
ェクトを有するサーバ計算機にかかっている負荷が高く
て即座に応答できない場合には、そうした問合せ自体に
かなり時間がかかってしまうことがある。そのためネッ
トワークファイルシステムによっては、このようなファ
イルキャッシュのシステムを採用していない場合もあ
る。すなわちこうしたシステムでは、サーバ計算機の保
持するファイルオブジェクトが更新されているにもかか
わらず、ゲートウェイ計算機の持つキャッシュ内の対応
するファイルオブジェクトは必ずしも更新されていな
い。このようなネットワークファイルシステム方式の代
表的なものとして、いわゆるインターネットにおけるH
TTP(HyperText Transfer Protocol )を使った広域
分散型マルチメディア情報システムがある。
【0020】インターネットは、その基本プロトコルと
してTCP/IPプロトコルを利用した、グローバルな
ネットワークである。インターネット上に構築された地
域分散型マルチメディア情報提供システムは、World Wi
de Web(WWW )と呼ばれる。WWWは、ネットワーク上
に分散したファイルオブジェクトを扱うことができる。
これらのファイルオブジェクトは、単なるテキストデー
タにとどまらず、画像データ、音声データ、ビデオ画像
データなどさまざまな種類のものを含む。WWWは、情
報提供側にとっても、情報利用者(ユーザ)にとっても
魅力的であるため、ネットワーク上のWWWに関するト
ラフィックが爆発的に増加している。WWWシステムで
は、クライアント計算機のユーザは、グラフィカルユー
ザインタフェースを持ったブラウザソフトウェアをクラ
イアント計算機上で実行させるだけで、ネットワーク上
に分散したサーバ計算機の保持するさまざまなファイル
オブジェクトで構成された情報を次々とアクセスするこ
とができる。WWWは、このような操作の簡単さのため
に近時めざましい普及を見せている。
してTCP/IPプロトコルを利用した、グローバルな
ネットワークである。インターネット上に構築された地
域分散型マルチメディア情報提供システムは、World Wi
de Web(WWW )と呼ばれる。WWWは、ネットワーク上
に分散したファイルオブジェクトを扱うことができる。
これらのファイルオブジェクトは、単なるテキストデー
タにとどまらず、画像データ、音声データ、ビデオ画像
データなどさまざまな種類のものを含む。WWWは、情
報提供側にとっても、情報利用者(ユーザ)にとっても
魅力的であるため、ネットワーク上のWWWに関するト
ラフィックが爆発的に増加している。WWWシステムで
は、クライアント計算機のユーザは、グラフィカルユー
ザインタフェースを持ったブラウザソフトウェアをクラ
イアント計算機上で実行させるだけで、ネットワーク上
に分散したサーバ計算機の保持するさまざまなファイル
オブジェクトで構成された情報を次々とアクセスするこ
とができる。WWWは、このような操作の簡単さのため
に近時めざましい普及を見せている。
【0021】そしてこのWWWシステムは、TCP/I
Pプロトコルの上に構築されたHTTPプロトコルでフ
ァイルオブジェクトを転送している。
Pプロトコルの上に構築されたHTTPプロトコルでフ
ァイルオブジェクトを転送している。
【0022】HTTPプロトコルを実施する上において
は、特開平4−313126号公報に記載されたような
ゲートウェイ計算機によりファイルオブジェクトを中継
転送することが広く行なわれている。データはゲートウ
ェイ装置にキャッシュされる。またWWWシステムで
は、ファイルオブジェクトの中継転送においてステール
データが発生することは容認されている。すなわちゲー
トウェイ計算機にキャッシュされている内容が、サーバ
計算機の当該ファイルオブジェクトと一致していない場
合を許容している。
は、特開平4−313126号公報に記載されたような
ゲートウェイ計算機によりファイルオブジェクトを中継
転送することが広く行なわれている。データはゲートウ
ェイ装置にキャッシュされる。またWWWシステムで
は、ファイルオブジェクトの中継転送においてステール
データが発生することは容認されている。すなわちゲー
トウェイ計算機にキャッシュされている内容が、サーバ
計算機の当該ファイルオブジェクトと一致していない場
合を許容している。
【0023】キャッシュファイル内のステールデータの
率をステールデータ率と呼ぶこととする。何らかの方式
でキャッシュファイルの内容を更新しない限り、ステー
ルデータ率は増加する。一般にキャッシュファイルのス
テールデータ率が増加すると、クライアント計算機を操
作しているユーザは、内容が古いと自主的に判断して、
ファイルオブジェクトをサーバ計算機から再度ロードす
ることを試みる。この場合、キャッシュファイルの内容
を利用しないプロトコルが用いられる。この結果、ゲー
トウェイ計算機内のキャッシュファイルシステムが意味
を持たなくなる傾向がある。
率をステールデータ率と呼ぶこととする。何らかの方式
でキャッシュファイルの内容を更新しない限り、ステー
ルデータ率は増加する。一般にキャッシュファイルのス
テールデータ率が増加すると、クライアント計算機を操
作しているユーザは、内容が古いと自主的に判断して、
ファイルオブジェクトをサーバ計算機から再度ロードす
ることを試みる。この場合、キャッシュファイルの内容
を利用しないプロトコルが用いられる。この結果、ゲー
トウェイ計算機内のキャッシュファイルシステムが意味
を持たなくなる傾向がある。
【0024】一方でこのようにステールデータの発生を
容認するプロトコルの利点もある。クライアント計算機
がサーバ計算機のファイルオブジェクトのアクセスをゲ
ートウェイ計算機に中継依頼してアクセスを行なった場
合、ゲートウェイ計算機のキャッシュファイルにヒット
した場合には、キャッシュファイルからファイルオブジ
ェクトが読出されてクライアントに転送される。サーバ
装置に対する当該ファイルオブジェクトの変更時刻の問
合せは不要である。そのため短時間にファイルオブジェ
クトがキャッシュから取出され、クライアントに返送さ
れる。
容認するプロトコルの利点もある。クライアント計算機
がサーバ計算機のファイルオブジェクトのアクセスをゲ
ートウェイ計算機に中継依頼してアクセスを行なった場
合、ゲートウェイ計算機のキャッシュファイルにヒット
した場合には、キャッシュファイルからファイルオブジ
ェクトが読出されてクライアントに転送される。サーバ
装置に対する当該ファイルオブジェクトの変更時刻の問
合せは不要である。そのため短時間にファイルオブジェ
クトがキャッシュから取出され、クライアントに返送さ
れる。
【0025】HTTPプロトコルのようにステールデー
タを容認するネットワークファイルプロトコルは、全地
球的な広域ネットワークで利用する上で有利な点を有し
ている。すなわち、ゲートウェイ装置のキャッシュに当
該ファイルオブジェクトがキャッシュされていれば、サ
ーバ装置に対するアクセスが発生しない。その結果応答
時間の短縮を図ることができるという有利な点を持って
いる。
タを容認するネットワークファイルプロトコルは、全地
球的な広域ネットワークで利用する上で有利な点を有し
ている。すなわち、ゲートウェイ装置のキャッシュに当
該ファイルオブジェクトがキャッシュされていれば、サ
ーバ装置に対するアクセスが発生しない。その結果応答
時間の短縮を図ることができるという有利な点を持って
いる。
【0026】上述のようにネットワーク上のファイルオ
ブジェクトのアクセスを高速化し、かつインターネット
のトラフィックを低減させるゲートウェイ計算機は特に
「proxy サーバ装置」とも呼ばれている。
ブジェクトのアクセスを高速化し、かつインターネット
のトラフィックを低減させるゲートウェイ計算機は特に
「proxy サーバ装置」とも呼ばれている。
【0027】「proxy 」とは「代理人」という意味であ
る。proxy サーバ装置はその名のとおり、クライアント
計算機がネットワーク上のサーバ計算機のファイルオブ
ジェクトにアクセスする場合に、そのアクセス要求をサ
ーバ計算機を代理して受付け、ファイルオブジェクトの
転送を中継する機能を果たす。proxy サーバ装置の概念
を図13を参照して説明する。
る。proxy サーバ装置はその名のとおり、クライアント
計算機がネットワーク上のサーバ計算機のファイルオブ
ジェクトにアクセスする場合に、そのアクセス要求をサ
ーバ計算機を代理して受付け、ファイルオブジェクトの
転送を中継する機能を果たす。proxy サーバ装置の概念
を図13を参照して説明する。
【0028】図13を参照して、proxy サーバ装置13
は、たとえばある企業内に設けられた内部ネットワーク
23と、その企業外の外部ネットワーク(インターネッ
トなど)25との間に介在して設けられるものである。
内部ネットワーク23は複数個のクライアント計算機2
4を含み、外部ネットワーク25は、同じく複数個のサ
ーバ計算機11を含んでいる。各サーバ計算機11は、
ファイルオブジェクト12を保有している。
は、たとえばある企業内に設けられた内部ネットワーク
23と、その企業外の外部ネットワーク(インターネッ
トなど)25との間に介在して設けられるものである。
内部ネットワーク23は複数個のクライアント計算機2
4を含み、外部ネットワーク25は、同じく複数個のサ
ーバ計算機11を含んでいる。各サーバ計算機11は、
ファイルオブジェクト12を保有している。
【0029】proxy サーバ装置13は、キャッシュファ
イル16と、クライアント計算機からリード要求19を
受け、キャッシュファイル16内に当該ファイルオブジ
ェクトが存在する場合にはそのファイルオブジェクトを
データ20として返送し、キャッシュファイル16内に
当該ファイルオブジェクトの有効なものが存在しない場
合には外部ネットワーク25を介してサーバ計算機11
に対するリード要求17を発行し、対応するファイルオ
ブジェクトをデータ18として受けてクライアント計算
機24に対して返送するproxy プロセス14と、proxy
プロセス14によるファイルオブジェクトの転送記録を
記録するアクセスログ15とを含む。proxy プロセス1
4は、サーバ計算機11からファイルオブジェクトを取
得したときには、当該ファイルオブジェクトをキャッシ
ュファイル16にも新たに書込む機能を有している。
イル16と、クライアント計算機からリード要求19を
受け、キャッシュファイル16内に当該ファイルオブジ
ェクトが存在する場合にはそのファイルオブジェクトを
データ20として返送し、キャッシュファイル16内に
当該ファイルオブジェクトの有効なものが存在しない場
合には外部ネットワーク25を介してサーバ計算機11
に対するリード要求17を発行し、対応するファイルオ
ブジェクトをデータ18として受けてクライアント計算
機24に対して返送するproxy プロセス14と、proxy
プロセス14によるファイルオブジェクトの転送記録を
記録するアクセスログ15とを含む。proxy プロセス1
4は、サーバ計算機11からファイルオブジェクトを取
得したときには、当該ファイルオブジェクトをキャッシ
ュファイル16にも新たに書込む機能を有している。
【0030】このproxy サーバ装置13は次のように動
作する。まず、内部ネットワーク23内のクライアント
計算機24が、外部ネットワーク25上のサーバ計算機
11のファイルオブジェクト12に対するリード要求1
9をproxy サーバ装置13内のproxy プロセス14に対
して発行する。proxy プロセス14はこのリード要求1
9に応答して、キャッシュファイル16をアクセスし、
キャッシュファイル中に当該ファイルオブジェクトのキ
ャッシュデータがあるか否かを判定する。当該ファイル
オブジェクトがキャッシュされていれば、proxy サーバ
装置13固有のキャッシュファイル有効期限と、キャッ
シュされたファイルオブジェクトの最終変更時刻とを比
較する。キャッシュが有効期限内であれば、キャッシュ
ファイルからファイルオブジェクトを読出し(22)、
そのデータ20を内部ネットワーク23の、リード要求
19を発行したクライアント計算機24に対して返送す
る。
作する。まず、内部ネットワーク23内のクライアント
計算機24が、外部ネットワーク25上のサーバ計算機
11のファイルオブジェクト12に対するリード要求1
9をproxy サーバ装置13内のproxy プロセス14に対
して発行する。proxy プロセス14はこのリード要求1
9に応答して、キャッシュファイル16をアクセスし、
キャッシュファイル中に当該ファイルオブジェクトのキ
ャッシュデータがあるか否かを判定する。当該ファイル
オブジェクトがキャッシュされていれば、proxy サーバ
装置13固有のキャッシュファイル有効期限と、キャッ
シュされたファイルオブジェクトの最終変更時刻とを比
較する。キャッシュが有効期限内であれば、キャッシュ
ファイルからファイルオブジェクトを読出し(22)、
そのデータ20を内部ネットワーク23の、リード要求
19を発行したクライアント計算機24に対して返送す
る。
【0031】キャッシュファイル内に当該ファイルオブ
ジェクトが存在しない場合、および存在していたとして
も有効期限が過ぎている場合には、キャッシュファイル
16内に有効なファイルオブジェクトが存在しないもの
と判定される。その場合proxy プロセス14は、外部ネ
ットワーク25のサーバ計算機11に対して、ファイル
オブジェクト12の読出要求17を発行する。これに応
答してサーバ計算機11は、ファイルオブジェクト12
をデータ18としてproxy プロセス14に返送する。pr
oxy プロセス14は、ログファイル15に、アクセスロ
グとして、ファイルオブジェクト名称(すなわちネット
ワークプロトコル名称と、サーバ計算機のネットワーク
アドレス名称と、ファイル名称との組)と、ファイルオ
ブジェクトのデータの実体(すなわちファイルオブジェ
クトそのもの)と、書込時刻とを書出す(26)。
ジェクトが存在しない場合、および存在していたとして
も有効期限が過ぎている場合には、キャッシュファイル
16内に有効なファイルオブジェクトが存在しないもの
と判定される。その場合proxy プロセス14は、外部ネ
ットワーク25のサーバ計算機11に対して、ファイル
オブジェクト12の読出要求17を発行する。これに応
答してサーバ計算機11は、ファイルオブジェクト12
をデータ18としてproxy プロセス14に返送する。pr
oxy プロセス14は、ログファイル15に、アクセスロ
グとして、ファイルオブジェクト名称(すなわちネット
ワークプロトコル名称と、サーバ計算機のネットワーク
アドレス名称と、ファイル名称との組)と、ファイルオ
ブジェクトのデータの実体(すなわちファイルオブジェ
クトそのもの)と、書込時刻とを書出す(26)。
【0032】proxy プロセス14はさらに、内部ネット
ワーク23内のクライアント計算機24にデータ20を
転送し、かつキャッシュファイル16に、当該ファイル
オブジェクトを書込む(21)。
ワーク23内のクライアント計算機24にデータ20を
転送し、かつキャッシュファイル16に、当該ファイル
オブジェクトを書込む(21)。
【0033】したがってキャッシュファイル16内に
は、ファイルオブジェクト名称と、ファイルオブジェク
トの実体と、ファイルオブジェクトをサーバ装置から取
得した時刻(最終変更時刻)とが記録されている。
は、ファイルオブジェクト名称と、ファイルオブジェク
トの実体と、ファイルオブジェクトをサーバ装置から取
得した時刻(最終変更時刻)とが記録されている。
【0034】proxy サーバは、HTTPDや、 DeleGat
e などのソフトウェアを、ネットワーク接続された、UN
IXの動くコンピュータ上で実行することにより実現され
ることが一般的である。
e などのソフトウェアを、ネットワーク接続された、UN
IXの動くコンピュータ上で実行することにより実現され
ることが一般的である。
【0035】proxy サーバ装置の物理構成を図14に示
す。図14を参照してproxy サーバ装置は、UNIXの動作
するワークステーション200により構成される。ワー
クステーション200は、CPU(中央処理装置)20
2と、CPU202に対して内部バス204により接続
されたメモリ206と、ファイル用のI/O(入出力)
装置208と、ルータ210を介して外部ネットワーク
に接続される第1ネットワークI/Oインタフェース2
12と、内部ネットワークに接続される第2ネットワー
クI/Oインタフェース214とを含む。I/O装置2
08には、キャッシュファイルの蓄積、アクセスログ、
および各種ワークファイルの記憶場所として使用される
ファイル部216が接続されている。
す。図14を参照してproxy サーバ装置は、UNIXの動作
するワークステーション200により構成される。ワー
クステーション200は、CPU(中央処理装置)20
2と、CPU202に対して内部バス204により接続
されたメモリ206と、ファイル用のI/O(入出力)
装置208と、ルータ210を介して外部ネットワーク
に接続される第1ネットワークI/Oインタフェース2
12と、内部ネットワークに接続される第2ネットワー
クI/Oインタフェース214とを含む。I/O装置2
08には、キャッシュファイルの蓄積、アクセスログ、
および各種ワークファイルの記憶場所として使用される
ファイル部216が接続されている。
【0036】このワークステーション200は、CPU
202が、上述したHTTPDや DeleGate というソフ
トウェアを実行することによりproxy サーバ装置13を
実現する。
202が、上述したHTTPDや DeleGate というソフ
トウェアを実行することによりproxy サーバ装置13を
実現する。
【0037】図15に、proxy サーバ装置の他の構成例
を示した。このproxy サーバ装置はワークステーション
300からなっている。ワークステーション300は、
概略図14のワークステーション200と同様の構成で
あるが、図14の第2ネットワークI/Oインタフェー
ス214に代えて、モデム装置304に接続されるシリ
アルポート302を有している点が異なっている。そし
てこのワークステーション300は、モデム装置304
および公衆電話回線網306を介して内部ネットワーク
と接続されている。
を示した。このproxy サーバ装置はワークステーション
300からなっている。ワークステーション300は、
概略図14のワークステーション200と同様の構成で
あるが、図14の第2ネットワークI/Oインタフェー
ス214に代えて、モデム装置304に接続されるシリ
アルポート302を有している点が異なっている。そし
てこのワークステーション300は、モデム装置304
および公衆電話回線網306を介して内部ネットワーク
と接続されている。
【0038】図15において、図14と同一の部品には
同一の参照番号を与えている。それらの名称および機能
も同一である。したがってここではそれらについての詳
しい説明は繰り返さない。
同一の参照番号を与えている。それらの名称および機能
も同一である。したがってここではそれらについての詳
しい説明は繰り返さない。
【0039】図16にproxy サーバ装置のさらに他の構
成例を示す。図16のproxy サーバ装置も、同じくワー
クステーション400により実現される。このワークス
テーション400は、概略図14に示されるワークステ
ーション200と同様の構成であるが、第1ネットワー
クI/Oインタフェース212および第2ネットワーク
I/Oインタフェース214に代えて、内部ネットワー
ク23に接続された1つのネットワークI/Oインタフ
ェース402を有している点で異なっている。内部ネッ
トワーク23はルータ210を介して外部ネットワーク
25に接続されており、また複数個のクライアント計算
機24にも接続されている。ワークステーション400
は、内部ネットワーク23およびルータ210を介して
外部ネットワーク25のサーバ計算機11と通信すると
ともに、内部ネットワーク23およびクライアント計算
機24を介してユーザ31と通信することができる。
成例を示す。図16のproxy サーバ装置も、同じくワー
クステーション400により実現される。このワークス
テーション400は、概略図14に示されるワークステ
ーション200と同様の構成であるが、第1ネットワー
クI/Oインタフェース212および第2ネットワーク
I/Oインタフェース214に代えて、内部ネットワー
ク23に接続された1つのネットワークI/Oインタフ
ェース402を有している点で異なっている。内部ネッ
トワーク23はルータ210を介して外部ネットワーク
25に接続されており、また複数個のクライアント計算
機24にも接続されている。ワークステーション400
は、内部ネットワーク23およびルータ210を介して
外部ネットワーク25のサーバ計算機11と通信すると
ともに、内部ネットワーク23およびクライアント計算
機24を介してユーザ31と通信することができる。
【0040】図16と図14とにおいて、同一の部品に
は同一の参照符号および名称を与えている。それらの機
能も同一である。したがってここではそれらについての
詳しい説明は繰り返さない。
は同一の参照符号および名称を与えている。それらの機
能も同一である。したがってここではそれらについての
詳しい説明は繰り返さない。
【0041】proxy サーバ装置は、既に述べたように中
継データのキャッシュ機構を有する。すなわち、proxy
サーバ装置は、その内部に存在するキャッシュファイル
装置に、中継するファイルオブジェクトのデータをキャ
ッシュする。
継データのキャッシュ機構を有する。すなわち、proxy
サーバ装置は、その内部に存在するキャッシュファイル
装置に、中継するファイルオブジェクトのデータをキャ
ッシュする。
【0042】proxy サーバ装置のキャッシュファイルに
は、proxy サーバ装置固有の有効期限が定められてい
る。ファイルオブジェクトがキャッシュに書込まれてか
ら有効期限内に、同じサーバ計算機上のファイルオブジ
ェクトへのアクセス要求をクライアント計算機から受取
った場合には、キャッシュファイルに以前に書込まれた
ファイルオブジェクトを取出してクライアント計算機に
転送する。これによりサーバ計算機に対するアクセスは
発生しない。
は、proxy サーバ装置固有の有効期限が定められてい
る。ファイルオブジェクトがキャッシュに書込まれてか
ら有効期限内に、同じサーバ計算機上のファイルオブジ
ェクトへのアクセス要求をクライアント計算機から受取
った場合には、キャッシュファイルに以前に書込まれた
ファイルオブジェクトを取出してクライアント計算機に
転送する。これによりサーバ計算機に対するアクセスは
発生しない。
【0043】このようなゲートウェイ装置によるキャッ
シュの効果を以下具体的に説明する。proxy サーバ装置
をある会社組織に設置し、外部のネットワークとは64
kbpsの速度で接続するものとする。またこのproxy
サーバは一方で、10Mbpsの速度の会社組織内部の
ローカルエリアネットワークに接続されるものとする。
外部と内部のネットワークの速度差は1桁以上ある。こ
のような例はよく見られる例であり、その典型的な例が
図16に示す構成である。
シュの効果を以下具体的に説明する。proxy サーバ装置
をある会社組織に設置し、外部のネットワークとは64
kbpsの速度で接続するものとする。またこのproxy
サーバは一方で、10Mbpsの速度の会社組織内部の
ローカルエリアネットワークに接続されるものとする。
外部と内部のネットワークの速度差は1桁以上ある。こ
のような例はよく見られる例であり、その典型的な例が
図16に示す構成である。
【0044】このとき、proxy サーバで中継ファイルオ
ブジェクトをキャッシュするものとして、キャッシュの
ヒット率を Hitrateとする。 Hitrateは、ファイルオブ
ジェクトに対するアクセス要求に対してキャッシュが1
00%ヒットするとき1であり、0%ヒットするとき0
になる指数である。
ブジェクトをキャッシュするものとして、キャッシュの
ヒット率を Hitrateとする。 Hitrateは、ファイルオブ
ジェクトに対するアクセス要求に対してキャッシュが1
00%ヒットするとき1であり、0%ヒットするとき0
になる指数である。
【0045】なおproxy サーバ装置におけるキャッシュ
ファイルからのデータ読出およびキャッシュファイルへ
のデータ書込速度は、ネットワーク速度に比べて十分高
速であるものとする。すなわちキャッシュファイルに対
するファイルオブジェクトの入出力に要する時間は無視
できるものとする。
ファイルからのデータ読出およびキャッシュファイルへ
のデータ書込速度は、ネットワーク速度に比べて十分高
速であるものとする。すなわちキャッシュファイルに対
するファイルオブジェクトの入出力に要する時間は無視
できるものとする。
【0046】このとき、外部ネットワークにあるファイ
ルオブジェクトを内部からアクセスするときの平均アク
セス速度Vaveは次の数1によって表わされる。
ルオブジェクトを内部からアクセスするときの平均アク
セス速度Vaveは次の数1によって表わされる。
【0047】
【数1】
【0048】キャッシュファイルが存在しない場合、 H
itrateは0である。したがって平均速度(kbps)
は、数1から外部ネットワークのアクセス速度64kb
psと等しくなる。また Hitrateが1であれば、すなわ
ち100%キャッシュファイルにヒットするのであれ
ば、平均速度(kbps)は、内部ネットワークの速度
と等しく10,000kbps(=10Mbps)とな
る。つまりヒット率が高いほどクライアント計算機から
見た平均アクセス速度は高くなる。ヒット率と平均アク
セス速度との関係を示す数1をグラフ化したものを図1
7に示す。
itrateは0である。したがって平均速度(kbps)
は、数1から外部ネットワークのアクセス速度64kb
psと等しくなる。また Hitrateが1であれば、すなわ
ち100%キャッシュファイルにヒットするのであれ
ば、平均速度(kbps)は、内部ネットワークの速度
と等しく10,000kbps(=10Mbps)とな
る。つまりヒット率が高いほどクライアント計算機から
見た平均アクセス速度は高くなる。ヒット率と平均アク
セス速度との関係を示す数1をグラフ化したものを図1
7に示す。
【0049】ところで、キャッシュヒット率は、キャッ
シュファイルの量に依存している。すなわちファイルオ
ブジェクトをなるべくたくさんキャッシュファイルの中
に蓄積しておけば、再びアクセスされたファイルオブジ
ェクトがキャッシュファイル中に含まれる確率が高くヒ
ット率が高まる。そうした関係を示すものとして、キャ
ッシュヒット率と、キャッシュファイルの蓄積量との関
係を図18にグラフとして示す。図18に示すように、
キャッシュファイルサイズが小さければキャッシュヒッ
ト率は0に近く、キャッシュファイルサイズを大きくす
ればキャッシュヒット率は徐々に上昇する。
シュファイルの量に依存している。すなわちファイルオ
ブジェクトをなるべくたくさんキャッシュファイルの中
に蓄積しておけば、再びアクセスされたファイルオブジ
ェクトがキャッシュファイル中に含まれる確率が高くヒ
ット率が高まる。そうした関係を示すものとして、キャ
ッシュヒット率と、キャッシュファイルの蓄積量との関
係を図18にグラフとして示す。図18に示すように、
キャッシュファイルサイズが小さければキャッシュヒッ
ト率は0に近く、キャッシュファイルサイズを大きくす
ればキャッシュヒット率は徐々に上昇する。
【0050】proxy プロセスにおいては、キャッシュフ
ァイルの内容を維持する方式として、最初のファイルア
クセスによる書込が起きてから一定期間経過したファイ
ルオブジェクトを無効としていく制御方式がとられてい
る。この一定期間を有効期限と呼んでいる。この有効期
限は、proxy サーバ装置を管理する者が実情に合わせて
適切な値を設定する。有効期限を長くとれば、キャッシ
ュファイルに蓄積されるデータ量は増加する。その結果
キャッシュのヒット率は高くなる。すなわちキャッシュ
のヒット率を上げるにはキャッシュの有効期限を長くと
ればよい。
ァイルの内容を維持する方式として、最初のファイルア
クセスによる書込が起きてから一定期間経過したファイ
ルオブジェクトを無効としていく制御方式がとられてい
る。この一定期間を有効期限と呼んでいる。この有効期
限は、proxy サーバ装置を管理する者が実情に合わせて
適切な値を設定する。有効期限を長くとれば、キャッシ
ュファイルに蓄積されるデータ量は増加する。その結果
キャッシュのヒット率は高くなる。すなわちキャッシュ
のヒット率を上げるにはキャッシュの有効期限を長くと
ればよい。
【0051】なお、キャッシュファイルを格納するファ
イル装置の記憶容量は有限であるから、有効期限を無制
限に長くするわけにはいかない。有効期限が過ぎたキャ
ッシュファイルは、何らかのタイミングで消去される。
このようにキャッシュファイルを消去するまでの時間
を、この明細書では消去時間と呼ぶこととする。
イル装置の記憶容量は有限であるから、有効期限を無制
限に長くするわけにはいかない。有効期限が過ぎたキャ
ッシュファイルは、何らかのタイミングで消去される。
このようにキャッシュファイルを消去するまでの時間
を、この明細書では消去時間と呼ぶこととする。
【0052】本願発明者の実験によれば、キャッシュ有
効期限とキャッシュファイルに蓄積されるファイル量と
はほぼ比例する。この関係を図19に示す。これは、内
部ネットワークから外部ネットワークへのアクセス量
が、日によらずほぼ一定であるためである。したがって
次のような関係が成り立つ。
効期限とキャッシュファイルに蓄積されるファイル量と
はほぼ比例する。この関係を図19に示す。これは、内
部ネットワークから外部ネットワークへのアクセス量
が、日によらずほぼ一定であるためである。したがって
次のような関係が成り立つ。
【0053】
【数2】
【0054】この関係から、図17に示したように、キ
ャッシュ有効期限を増やすとキャッシュのヒット率が高
まることがわかる。
ャッシュ有効期限を増やすとキャッシュのヒット率が高
まることがわかる。
【0055】キャッシュ有効期限とファイルオブジェク
トの量との関係は、クライアント計算機を利用する内部
ユーザが、外部ネットワーク上のサーバ計算機のファイ
ルオブジェクトをアクセスする頻度によって異なる。キ
ャッシュ有効期限とキャッシュファイル蓄積量とは、ほ
ぼ比例するものの、その比例係数はネットワーク速度、
内部クライアント計算機ユーザ数などの使用環境により
変動する。
トの量との関係は、クライアント計算機を利用する内部
ユーザが、外部ネットワーク上のサーバ計算機のファイ
ルオブジェクトをアクセスする頻度によって異なる。キ
ャッシュ有効期限とキャッシュファイル蓄積量とは、ほ
ぼ比例するものの、その比例係数はネットワーク速度、
内部クライアント計算機ユーザ数などの使用環境により
変動する。
【0056】なお、本願発明者の関係するシステムで
は、キャッシュファイルが1日程度の有効期限では、キ
ャッシュヒット率は12%程度である。有効期限を14
日にするとキャッシュヒット率は41%程度になること
が経験されている。有効期限14日のときにはファイル
オブジェクトが700MB程度キャッシュファイルに蓄
積されていることが観察されている。
は、キャッシュファイルが1日程度の有効期限では、キ
ャッシュヒット率は12%程度である。有効期限を14
日にするとキャッシュヒット率は41%程度になること
が経験されている。有効期限14日のときにはファイル
オブジェクトが700MB程度キャッシュファイルに蓄
積されていることが観察されている。
【0057】
【発明が解決しようとする課題】proxy サーバ装置にお
けるキャッシュファイルにおいては、キャッシュヒット
率をできるだけ高めるためには有効期限をできるだけ長
くとり、キャッシュファイルの容量が許す限りデータを
蓄積することが有効である。しかし一方で、外部ネット
ワーク上のサーバ計算機のファイルオブジェクトの内容
は、修正変更されることがあり得る。キャッシュファイ
ルの有効期限が長いと、その期間中は、サーバ計算機の
ファイルオブジェクトが内容変更されているにもかかわ
らず、内部ネットワークのクライアント計算機のユーザ
は、キャッシュファイルに蓄積された古い内容を読出す
ことになってしまうことになる。
けるキャッシュファイルにおいては、キャッシュヒット
率をできるだけ高めるためには有効期限をできるだけ長
くとり、キャッシュファイルの容量が許す限りデータを
蓄積することが有効である。しかし一方で、外部ネット
ワーク上のサーバ計算機のファイルオブジェクトの内容
は、修正変更されることがあり得る。キャッシュファイ
ルの有効期限が長いと、その期間中は、サーバ計算機の
ファイルオブジェクトが内容変更されているにもかかわ
らず、内部ネットワークのクライアント計算機のユーザ
は、キャッシュファイルに蓄積された古い内容を読出す
ことになってしまうことになる。
【0058】たとえば天気図や電子新聞などのファイル
オブジェクトをサーバ計算機上で提供する場合を考え
る。こうしたファイルオブジェクトは、同一名称であり
ながらそのデータの性格上毎日情報更新されるものが多
い。たとえばキャッシュ有効期限が7日である場合を考
えると、キャッシュにある天気図や電子新聞等の情報
は、6/7以上の確率で古いものとなり、結局役に立た
ない情報となってしまう。
オブジェクトをサーバ計算機上で提供する場合を考え
る。こうしたファイルオブジェクトは、同一名称であり
ながらそのデータの性格上毎日情報更新されるものが多
い。たとえばキャッシュ有効期限が7日である場合を考
えると、キャッシュにある天気図や電子新聞等の情報
は、6/7以上の確率で古いものとなり、結局役に立た
ない情報となってしまう。
【0059】このようにキャッシュファイルの内容のう
ち、外部ネットワークに存在する元のデータが変更さ
れ、キャッシュの内容と一致していない割合をステール
データ率と呼ぶ。すなわちキャッシュ有効期限を増やせ
ば、キャッシュ蓄積サイズが増加し、キャッシュヒット
率は増加するが、有効期限が長くなった結果、キャッシ
ュ内容のステールデータ率も増加してしまう。
ち、外部ネットワークに存在する元のデータが変更さ
れ、キャッシュの内容と一致していない割合をステール
データ率と呼ぶ。すなわちキャッシュ有効期限を増やせ
ば、キャッシュ蓄積サイズが増加し、キャッシュヒット
率は増加するが、有効期限が長くなった結果、キャッシ
ュ内容のステールデータ率も増加してしまう。
【0060】したがって従来技術においては、キャッシ
ュファイルの中のファイルオブジェクトの内容の新鮮さ
を保つことと、キャッシュヒット率を高く維持すること
とは、互いに相反する目標である。
ュファイルの中のファイルオブジェクトの内容の新鮮さ
を保つことと、キャッシュヒット率を高く維持すること
とは、互いに相反する目標である。
【0061】既に述べたように一般にキャッシュファイ
ルのステールデータ率が増加すると、クライアント計算
機のユーザは、内容が古いはずであると自主的に判断
し、ファイルオブジェクトデータをサーバ計算機から再
度ロードするようになる。これには、キャッシュファイ
ルを参照せず、実際にサーバ計算機からロードすること
を指定するプロトコルが利用される。この結果、キャッ
シュが意味を持たなくなる傾向がある。
ルのステールデータ率が増加すると、クライアント計算
機のユーザは、内容が古いはずであると自主的に判断
し、ファイルオブジェクトデータをサーバ計算機から再
度ロードするようになる。これには、キャッシュファイ
ルを参照せず、実際にサーバ計算機からロードすること
を指定するプロトコルが利用される。この結果、キャッ
シュが意味を持たなくなる傾向がある。
【0062】このようなステールデータ率の増加は望ま
しいことではなく、そのためキャッシュの有効期限はあ
まり長くとることはできない。通常は24時間以下であ
る。しかし有効期限をこの程度とした場合には、キャッ
シュファイルにファイルオブジェクトが十分に蓄積され
ず、キャッシュのヒット率は高まらない。その結果平均
ファイルオブジェクト転送速度を十分上げることができ
ないという問題点があった。また、キャッシュのヒット
率を高めるにあたって、他の通常プロセスに対して与え
る悪影響はできるだけ低くした方が好ましい。さらに、
通常の他のプロセスが多数あった場合にも、キャッシュ
のヒット率を向上させるための作業が常にできるのが好
ましく、またそのための作業自体できるだけ効率良く行
なうことが望ましい。
しいことではなく、そのためキャッシュの有効期限はあ
まり長くとることはできない。通常は24時間以下であ
る。しかし有効期限をこの程度とした場合には、キャッ
シュファイルにファイルオブジェクトが十分に蓄積され
ず、キャッシュのヒット率は高まらない。その結果平均
ファイルオブジェクト転送速度を十分上げることができ
ないという問題点があった。また、キャッシュのヒット
率を高めるにあたって、他の通常プロセスに対して与え
る悪影響はできるだけ低くした方が好ましい。さらに、
通常の他のプロセスが多数あった場合にも、キャッシュ
のヒット率を向上させるための作業が常にできるのが好
ましく、またそのための作業自体できるだけ効率良く行
なうことが望ましい。
【0063】それゆえに請求項1に記載の発明の目的
は、キャッシュファイルの内容を新鮮に保つとともに、
キャッシュヒット率も向上させることである。
は、キャッシュファイルの内容を新鮮に保つとともに、
キャッシュヒット率も向上させることである。
【0064】請求項2から6記載の発明の目的は、キャ
ッシュファイルの内容を新鮮に保つとともに、キャッシ
ュヒット率も向上させるようにし、さらにプリフェッチ
に要する時間を短縮することである。
ッシュファイルの内容を新鮮に保つとともに、キャッシ
ュヒット率も向上させるようにし、さらにプリフェッチ
に要する時間を短縮することである。
【0065】請求項7または8記載の発明の目的は、通
常のユーザの利用に悪影響を与えることなく、キャッシ
ュファイルの内容を新鮮に保つとともに、キャッシュヒ
ット率も向上させるようにすることである。
常のユーザの利用に悪影響を与えることなく、キャッシ
ュファイルの内容を新鮮に保つとともに、キャッシュヒ
ット率も向上させるようにすることである。
【0066】請求項9記載の発明の目的は、常にキャッ
シュファイルの内容を新鮮に保つとともに、キャッシュ
ヒット率も向上させるようにすることである。
シュファイルの内容を新鮮に保つとともに、キャッシュ
ヒット率も向上させるようにすることである。
【0067】請求項10記載の発明の目的は、無駄なト
ラフィックを発生させることなく、キャッシュファイル
の内容を新鮮に保つとともに、キャッシュヒット率も向
上させるようにすることである。
ラフィックを発生させることなく、キャッシュファイル
の内容を新鮮に保つとともに、キャッシュヒット率も向
上させるようにすることである。
【0068】請求項11記載の発明の目的は、通常のユ
ーザの利用に与える悪影響を最小限に抑えつつ、キャッ
シュファイルの内容を新鮮に保ちかつキャッシュヒット
率をも向上させるための作業を着実に行なえるゲートウ
ェイ装置を提供することである。
ーザの利用に与える悪影響を最小限に抑えつつ、キャッ
シュファイルの内容を新鮮に保ちかつキャッシュヒット
率をも向上させるための作業を着実に行なえるゲートウ
ェイ装置を提供することである。
【0069】請求項12から16に記載の発明の目的
は、キャッシュファイルの内容を新鮮に保つことと、キ
ャッシュヒット率を向上させることとを、ともに、かつ
効率的に達成することができるゲートウェイ装置を提供
することである。
は、キャッシュファイルの内容を新鮮に保つことと、キ
ャッシュヒット率を向上させることとを、ともに、かつ
効率的に達成することができるゲートウェイ装置を提供
することである。
【0070】
【課題を解決するための手段】請求項1に記載の発明
は、クライアント計算機が存在する第1のネットワーク
と、サーバ計算機が存在する第2のネットワークとの間
に介在するように設けられるゲートウェイ装置であっ
て、第1のネットワークのクライアント計算機からのフ
ァイルオブジェクトに対するアクセス要求に応答して、
当該ファイルオブジェクトにより指定されるサーバ計算
機に対して、当該ファイルオブジェクトに対するアクセ
ス要求を行なう第1のネットワークファイル中継手段を
含む。第1のネットワークファイル中継手段は、取得し
たファイルオブジェクトを、所定の有効期限が経過する
まで一時的に蓄積するとともに、最終変更時刻をファイ
ルオブジェクト単位で記録するためのキャッシュファイ
ル手段と、過去の、一定期間内に行なわれたファイルオ
ブジェクトの転送記録を蓄積するファイル転送記録手段
と、ファイルオブジェクトに対するアクセス要求に応答
して、最終変更時刻を参照し、有効期限内のファイルオ
ブジェクトがキャッシュファイル手段に存在するか否か
を判断し、当該判断結果に基づいてキャッシュファイル
手段または当該ファイルオブジェクトにより指定される
サーバ計算機を選択的にアクセスして当該ファイルオブ
ジェクトを取得してクライアント計算機に転送するため
の転送手段とを含む。ゲートウェイ装置はさらに、予め
定められたスケジュールに従って、転送記録中のファイ
ルオブジェクトをサーバ計算機からプリフェッチして、
キャッシュファイル手段に格納するための第2のネット
ワークファイル中継手段を含む。
は、クライアント計算機が存在する第1のネットワーク
と、サーバ計算機が存在する第2のネットワークとの間
に介在するように設けられるゲートウェイ装置であっ
て、第1のネットワークのクライアント計算機からのフ
ァイルオブジェクトに対するアクセス要求に応答して、
当該ファイルオブジェクトにより指定されるサーバ計算
機に対して、当該ファイルオブジェクトに対するアクセ
ス要求を行なう第1のネットワークファイル中継手段を
含む。第1のネットワークファイル中継手段は、取得し
たファイルオブジェクトを、所定の有効期限が経過する
まで一時的に蓄積するとともに、最終変更時刻をファイ
ルオブジェクト単位で記録するためのキャッシュファイ
ル手段と、過去の、一定期間内に行なわれたファイルオ
ブジェクトの転送記録を蓄積するファイル転送記録手段
と、ファイルオブジェクトに対するアクセス要求に応答
して、最終変更時刻を参照し、有効期限内のファイルオ
ブジェクトがキャッシュファイル手段に存在するか否か
を判断し、当該判断結果に基づいてキャッシュファイル
手段または当該ファイルオブジェクトにより指定される
サーバ計算機を選択的にアクセスして当該ファイルオブ
ジェクトを取得してクライアント計算機に転送するため
の転送手段とを含む。ゲートウェイ装置はさらに、予め
定められたスケジュールに従って、転送記録中のファイ
ルオブジェクトをサーバ計算機からプリフェッチして、
キャッシュファイル手段に格納するための第2のネット
ワークファイル中継手段を含む。
【0071】一定期間内に転送が行なわれたファイルオ
ブジェクトは、第2のネットワークファイル中継手段に
よって、予め定められるスケジュールに従って、アクセ
ス要求がなくてもプリフェッチされる。有効期限内のも
のはもちろん、有効期限が切れたものもプリフェッチさ
れキャッシュファイル手段に新たに格納され有効とな
る。実際にアクセス要求があったときに、当該ファイル
オブジェクトであって有効期限内のものがキャッシュフ
ァイルに存在している可能性が高くなる。また有効期限
を長くしても、プリフェッチ時に最新のものに更新され
るので、キャッシュファイル手段内のファイルオブジェ
クトを、高い確率でサーバ計算機のファイルオブジェク
トと一致させることができる。そのため、キャッシュフ
ァイルの内容を新鮮に保つとともに、キャッシュヒット
率も向上させることが可能である。
ブジェクトは、第2のネットワークファイル中継手段に
よって、予め定められるスケジュールに従って、アクセ
ス要求がなくてもプリフェッチされる。有効期限内のも
のはもちろん、有効期限が切れたものもプリフェッチさ
れキャッシュファイル手段に新たに格納され有効とな
る。実際にアクセス要求があったときに、当該ファイル
オブジェクトであって有効期限内のものがキャッシュフ
ァイルに存在している可能性が高くなる。また有効期限
を長くしても、プリフェッチ時に最新のものに更新され
るので、キャッシュファイル手段内のファイルオブジェ
クトを、高い確率でサーバ計算機のファイルオブジェク
トと一致させることができる。そのため、キャッシュフ
ァイルの内容を新鮮に保つとともに、キャッシュヒット
率も向上させることが可能である。
【0072】請求項2記載のゲートウェイ装置は、請求
項1記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、第2のネットワークを介して
同時に複数個のファイルオブジェクトをサーバ計算機か
ら同時並列的にプリフェッチする。
項1記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、第2のネットワークを介して
同時に複数個のファイルオブジェクトをサーバ計算機か
ら同時並列的にプリフェッチする。
【0073】同時並列的にプリフェッチが行なわれるの
で、順次行なう場合と比較してプリフェッチに要する時
間を短縮することができる。
で、順次行なう場合と比較してプリフェッチに要する時
間を短縮することができる。
【0074】請求項3記載のゲートウェイ装置は、請求
項2記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、同一のサーバ計算機からのプ
リフェッチの同時発生を回避するように、ファイルオブ
ジェクトのプリフェッチの順序を決定する。
項2記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、同一のサーバ計算機からのプ
リフェッチの同時発生を回避するように、ファイルオブ
ジェクトのプリフェッチの順序を決定する。
【0075】転送記録では、同一のサーバ計算機に対す
るアクセス要求が集中して発生することが多い。同一の
サーバ計算機に対して一度にプリフェッチのためのアク
セス要求が集中すると、サーバ計算機に負荷がかかる上
に、通信路にも負荷がかかるため、ファイルオブジェク
トの転送に時間がかかる。そこで同一のサーバ計算機か
らのプリフェッチの同時発生を回避するようにプリフェ
ッチの順序を決定することで、そうした特定のサーバ計
算機に負荷が集中することがなくなり、プリフェッチの
速度を向上させることができる。
るアクセス要求が集中して発生することが多い。同一の
サーバ計算機に対して一度にプリフェッチのためのアク
セス要求が集中すると、サーバ計算機に負荷がかかる上
に、通信路にも負荷がかかるため、ファイルオブジェク
トの転送に時間がかかる。そこで同一のサーバ計算機か
らのプリフェッチの同時発生を回避するようにプリフェ
ッチの順序を決定することで、そうした特定のサーバ計
算機に負荷が集中することがなくなり、プリフェッチの
速度を向上させることができる。
【0076】請求項4記載のゲートウェイ装置は、請求
項2記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、転送記録からファイルオブジ
ェクトのリストを当該転送記録中の出現頻度に従って抽
出し、当該リスト中のファイルオブジェクトの順序に従
ってファイルオブジェクトのプリフェッチを同時並列的
に行なう。
項2記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、転送記録からファイルオブジ
ェクトのリストを当該転送記録中の出現頻度に従って抽
出し、当該リスト中のファイルオブジェクトの順序に従
ってファイルオブジェクトのプリフェッチを同時並列的
に行なう。
【0077】ファイルオブジェクトのプリフェッチにあ
たって、転送記録中の出現頻度の高いファイルオブジェ
クトが優先的にプリフェッチされる。そうしたファイル
オブジェクトに対するアクセス要求は将来も高い割合を
示すと考えられるので、キャッシュヒット率の向上が期
待できる。
たって、転送記録中の出現頻度の高いファイルオブジェ
クトが優先的にプリフェッチされる。そうしたファイル
オブジェクトに対するアクセス要求は将来も高い割合を
示すと考えられるので、キャッシュヒット率の向上が期
待できる。
【0078】請求項5記載のゲートウェイ装置は、請求
項4記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、リスト中のファイルオブジェ
クトの順序を入替え、当該入替られた順序に従ってファ
イルオブジェクトのプリフェッチを同時並列的に行な
う。
項4記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、リスト中のファイルオブジェ
クトの順序を入替え、当該入替られた順序に従ってファ
イルオブジェクトのプリフェッチを同時並列的に行な
う。
【0079】転送記録中には、同一のサーバ計算機に対
するアクセス要求が集中して発生することが多い。同一
のサーバ計算機に対して一度にプリフェッチのためのア
クセスが集中すると、サーバ計算機に負荷がかかる上
に、通信路上でも負荷がかかるため、ファイルオブジェ
クトの転送に時間がかかる。転送記録から抽出されたフ
ァイルオブジェクトのリスト中のファイルオブジェクト
の順番を入替え、その順序でプリフェッチをすること
で、同一のサーバ計算機からのプリフェッチの同時発生
を回避できるようになる。したがって特定のサーバ計算
機に負荷が集中することがなくなり、プリフェッチの速
度を向上させることができる。
するアクセス要求が集中して発生することが多い。同一
のサーバ計算機に対して一度にプリフェッチのためのア
クセスが集中すると、サーバ計算機に負荷がかかる上
に、通信路上でも負荷がかかるため、ファイルオブジェ
クトの転送に時間がかかる。転送記録から抽出されたフ
ァイルオブジェクトのリスト中のファイルオブジェクト
の順番を入替え、その順序でプリフェッチをすること
で、同一のサーバ計算機からのプリフェッチの同時発生
を回避できるようになる。したがって特定のサーバ計算
機に負荷が集中することがなくなり、プリフェッチの速
度を向上させることができる。
【0080】請求項6記載のゲートウェイ装置は、請求
項5記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、リストを複数個のブロックに
区分し、各ブロックごとにファイルオブジェクトの順序
を入替え、当該順序が入替えられたリスト上での順序に
従ってファイルオブジェクトのプリフェッチを同時並列
的に行なう。
項5記載のゲートウェイ装置であって、第2のネットワ
ークファイル中継手段は、リストを複数個のブロックに
区分し、各ブロックごとにファイルオブジェクトの順序
を入替え、当該順序が入替えられたリスト上での順序に
従ってファイルオブジェクトのプリフェッチを同時並列
的に行なう。
【0081】このような入替を行なうと、同一のサーバ
計算機へのアクセス要求の集中的な発生が回避される上
に、ファイルオブジェクトのリスト中の出現頻度順序
は、ブロックのサイズの粒度で保たれる。したがって、
リスト中の出現頻度の高いファイルオブジェクトのプリ
フェッチが、特定のサーバ計算機へのアクセス要求の集
中的な発生を招くことなく行なえる。
計算機へのアクセス要求の集中的な発生が回避される上
に、ファイルオブジェクトのリスト中の出現頻度順序
は、ブロックのサイズの粒度で保たれる。したがって、
リスト中の出現頻度の高いファイルオブジェクトのプリ
フェッチが、特定のサーバ計算機へのアクセス要求の集
中的な発生を招くことなく行なえる。
【0082】請求項7記載のゲートウェイ装置は、請求
項2から6のいずれかに記載のゲートウェイ装置であっ
て、第1のネットワークファイル中継手段は、各々が第
1のネットワークのクライアント計算機からのファイル
オブジェクトのアクセス要求を処理するための第1の転
送プロセスを複数個、同時並列的に起動させることが可
能である。第2のネットワークファイル中継手段は、各
々が1つのファイルオブジェクトのプリフェッチを行な
うための第2の転送プロセスを複数個、同時並列的に起
動させることが可能であり、かつ第1の転送プロセスの
数を検知して、第1の転送プロセスの数と、第2の転送
プロセスの数との和が予め定められる上限以下となるよ
うに第2の転送プロセスの新たな起動を制御する。
項2から6のいずれかに記載のゲートウェイ装置であっ
て、第1のネットワークファイル中継手段は、各々が第
1のネットワークのクライアント計算機からのファイル
オブジェクトのアクセス要求を処理するための第1の転
送プロセスを複数個、同時並列的に起動させることが可
能である。第2のネットワークファイル中継手段は、各
々が1つのファイルオブジェクトのプリフェッチを行な
うための第2の転送プロセスを複数個、同時並列的に起
動させることが可能であり、かつ第1の転送プロセスの
数を検知して、第1の転送プロセスの数と、第2の転送
プロセスの数との和が予め定められる上限以下となるよ
うに第2の転送プロセスの新たな起動を制御する。
【0083】第1のプロセスが多数発生しているときは
第2のプロセスの起動を抑制し、第1のプロセスが僅か
しか発生していないときには第2のプロセスを多数起動
させることができるので、通常のユーザによるファイル
オブジェクトのアクセス要求が、プリフェッチのために
悪影響を受けることがない。また通常のユーザによるア
クセス要求の少ないときには随時プリフェッチを行なえ
るので、キャッシュの新鮮さを保つことができる。
第2のプロセスの起動を抑制し、第1のプロセスが僅か
しか発生していないときには第2のプロセスを多数起動
させることができるので、通常のユーザによるファイル
オブジェクトのアクセス要求が、プリフェッチのために
悪影響を受けることがない。また通常のユーザによるア
クセス要求の少ないときには随時プリフェッチを行なえ
るので、キャッシュの新鮮さを保つことができる。
【0084】請求項8記載のゲートウェイ装置は、請求
項1から7のいずれかに記載のゲートウェイ装置であっ
て、第2のネットワークファイル中継手段は、予め定め
られた時間帯でのみファイルオブジェクトのプリフェッ
チを行なう。
項1から7のいずれかに記載のゲートウェイ装置であっ
て、第2のネットワークファイル中継手段は、予め定め
られた時間帯でのみファイルオブジェクトのプリフェッ
チを行なう。
【0085】ユーザによるアクセス要求が非常に少ない
時間帯にプリフェッチを行なってキャッシュファイルの
新鮮さを保つことができるとともに、ユーザによるアク
セス要求が発生する時間帯になるとプリフェッチを行な
わないようにでき、通常のユーザによるファイルオブジ
ェクトのアクセス要求が、プリフェッチのために悪影響
を受けることがない。
時間帯にプリフェッチを行なってキャッシュファイルの
新鮮さを保つことができるとともに、ユーザによるアク
セス要求が発生する時間帯になるとプリフェッチを行な
わないようにでき、通常のユーザによるファイルオブジ
ェクトのアクセス要求が、プリフェッチのために悪影響
を受けることがない。
【0086】請求項9記載のゲートウェイ装置は、請求
項1から8のいずれかに記載のゲートウェイ装置であっ
て、第2のネットワークファイル中継手段は、第1のネ
ットワークファイル中継手段のキャッシュファイルの有
効期限以下の周期で定期的にファイルオブジェクトのプ
リフェッチを行なう。
項1から8のいずれかに記載のゲートウェイ装置であっ
て、第2のネットワークファイル中継手段は、第1のネ
ットワークファイル中継手段のキャッシュファイルの有
効期限以下の周期で定期的にファイルオブジェクトのプ
リフェッチを行なう。
【0087】キャッシュファイルの有効期限以下の周期
で定期的にキャッシュファイルのファイルオブジェクト
のプリフェッチが行なわれるので、キャッシュファイル
中のファイルオブジェクトは常に有効期限内に保たれ
る。その結果、プリフェッチとプリフェッチとの間の全
期間にわたりプリフェッチの効果を保つことができる。
で定期的にキャッシュファイルのファイルオブジェクト
のプリフェッチが行なわれるので、キャッシュファイル
中のファイルオブジェクトは常に有効期限内に保たれ
る。その結果、プリフェッチとプリフェッチとの間の全
期間にわたりプリフェッチの効果を保つことができる。
【0088】請求項10記載のゲートウェイ装置は、請
求項1に記載のゲートウェイ装置であって、第1のネッ
トワークファイル中継手段のキャッシュファイル手段
は、有効期限以上の所定の消去時間が経過するまでは、
当該キャッシュファイル手段に格納されているファイル
オブジェクトを消去しない。転送手段は、有効期限が経
過しているが消去はされていないファイルオブジェクト
に対するアクセス要求に応答して、対応するサーバ計算
機にアクセスし、当該サーバ計算機内の当該ファイルオ
ブジェクトが、前回の取得後更新されているか否かを判
断する。そして更新されていないときにはキャッシュフ
ァイル手段内のファイルオブジェクトを新たに取得した
ファイルオブジェクトとしてクライアント計算機に転送
する。更新されているときには当該ファイルオブジェク
トにより特定されるサーバ計算機に対して当該ファイル
オブジェクトの転送要求を発して更新後の当該ファイル
オブジェクトを取得し、取得したファイルオブジェクト
をクライアント計算機に転送する。
求項1に記載のゲートウェイ装置であって、第1のネッ
トワークファイル中継手段のキャッシュファイル手段
は、有効期限以上の所定の消去時間が経過するまでは、
当該キャッシュファイル手段に格納されているファイル
オブジェクトを消去しない。転送手段は、有効期限が経
過しているが消去はされていないファイルオブジェクト
に対するアクセス要求に応答して、対応するサーバ計算
機にアクセスし、当該サーバ計算機内の当該ファイルオ
ブジェクトが、前回の取得後更新されているか否かを判
断する。そして更新されていないときにはキャッシュフ
ァイル手段内のファイルオブジェクトを新たに取得した
ファイルオブジェクトとしてクライアント計算機に転送
する。更新されているときには当該ファイルオブジェク
トにより特定されるサーバ計算機に対して当該ファイル
オブジェクトの転送要求を発して更新後の当該ファイル
オブジェクトを取得し、取得したファイルオブジェクト
をクライアント計算機に転送する。
【0089】有効期限が経過しているファイルオブジェ
クトであっても、消去時間前であれば消去されない。こ
うしたファイルオブジェクトについてのアクセス要求が
発生したときに、有効期限が切れていても、サーバ計算
機において更新されていないファイルオブジェクトは、
直接サーバ計算機から取得することなく、キャッシュフ
ァイルから得ることができる。したがって無駄なトラフ
ィックの発生を抑制できる。その上、そうしたアクセス
要求があって、かつサーバ計算機において当該ファイル
オブジェクトが更新されていなかった場合には、実際に
ファイルオブジェクトをサーバ計算機から改めて取得す
ることなくプリフェッチと同じ効果を得ることができ
る。
クトであっても、消去時間前であれば消去されない。こ
うしたファイルオブジェクトについてのアクセス要求が
発生したときに、有効期限が切れていても、サーバ計算
機において更新されていないファイルオブジェクトは、
直接サーバ計算機から取得することなく、キャッシュフ
ァイルから得ることができる。したがって無駄なトラフ
ィックの発生を抑制できる。その上、そうしたアクセス
要求があって、かつサーバ計算機において当該ファイル
オブジェクトが更新されていなかった場合には、実際に
ファイルオブジェクトをサーバ計算機から改めて取得す
ることなくプリフェッチと同じ効果を得ることができ
る。
【0090】請求項11記載の発明に係るゲートウェイ
装置は、請求項2から6のいずれかに記載のゲートウェ
イ装置であって、第1のネットワークファイル中継手段
は、各々が第1のネットワークのクライアント計算機か
らのファイルオブジェクトのアクセス要求を処理するた
めの第1の転送プロセスを複数個、同時並列的に起動さ
せることが可能である。第2のネットワークファイル中
継手段は、各々が1つのファイルオブジェクトのプリフ
ェッチを行なうための第2の転送プロセスを複数個、同
時並列的に起動させることが可能である。第2のネット
ワークファイル中継手段は、第2の転送プロセスの起動
時において、既に稼動中の転送プロセスの数を検知し
て、稼動中の転送プロセスの数と、起動すべき第2の転
送プロセスの数との和が、稼動中の転送プロセスの数と
予め定められる定数との和以下となるように第2の転送
プロセスの新たな起動を制御する。
装置は、請求項2から6のいずれかに記載のゲートウェ
イ装置であって、第1のネットワークファイル中継手段
は、各々が第1のネットワークのクライアント計算機か
らのファイルオブジェクトのアクセス要求を処理するた
めの第1の転送プロセスを複数個、同時並列的に起動さ
せることが可能である。第2のネットワークファイル中
継手段は、各々が1つのファイルオブジェクトのプリフ
ェッチを行なうための第2の転送プロセスを複数個、同
時並列的に起動させることが可能である。第2のネット
ワークファイル中継手段は、第2の転送プロセスの起動
時において、既に稼動中の転送プロセスの数を検知し
て、稼動中の転送プロセスの数と、起動すべき第2の転
送プロセスの数との和が、稼動中の転送プロセスの数と
予め定められる定数との和以下となるように第2の転送
プロセスの新たな起動を制御する。
【0091】第1のプロセスが多数発生しているときは
第2のプロセスの起動を抑制し、第1のプロセスが僅か
しが発生しないときには第2のプロセスを多数起動させ
ることができるので、通常のユーザによるファイルオブ
ジェクトのアクセス要求が、プリフェッチのために悪影
響を受けることがない。また通常のユーザによる要求の
少ないときには随時プリフェッチを行なえるので、キャ
ッシュの新鮮さを保つことができる。また、稼動中の転
送プロセスの数が上限に達していても、予め定められる
定数個までの第2の転送プロセスを起動することができ
るので、プリフェッチを着実に行なうことができる。そ
のため、キャッシュの新鮮さを保つことができる。また
キャッシュファイル手段の容量を小さくする必要はない
ので、キャッシュヒット率も向上する。
第2のプロセスの起動を抑制し、第1のプロセスが僅か
しが発生しないときには第2のプロセスを多数起動させ
ることができるので、通常のユーザによるファイルオブ
ジェクトのアクセス要求が、プリフェッチのために悪影
響を受けることがない。また通常のユーザによる要求の
少ないときには随時プリフェッチを行なえるので、キャ
ッシュの新鮮さを保つことができる。また、稼動中の転
送プロセスの数が上限に達していても、予め定められる
定数個までの第2の転送プロセスを起動することができ
るので、プリフェッチを着実に行なうことができる。そ
のため、キャッシュの新鮮さを保つことができる。また
キャッシュファイル手段の容量を小さくする必要はない
ので、キャッシュヒット率も向上する。
【0092】請求項12に記載の発明に係るゲートウェ
イ装置は、請求項1記載のゲートウェイ装置であって、
第2のネットワークファイル中継手段は、過去の一定期
間内に行なったファイルオブジェクトの転送記録を、当
該ファイルオブジェクトの変更が検出されたか否かを示
す情報とともに蓄積するための第2のファイル転送記録
手段をさらに含む。第2のネットワークファイル中継手
段は、第2のファイル転送記録手段によりファイルオブ
ジェクトのプリフェッチ時に記録された転送記録中か
ら、直前のプリフェッチ時において変更が検出されたフ
ァイルオブジェクトを抽出し、これらのファイルオブジ
ェクトを、ファイル転送記録手段の転送記録中のファイ
ルオブジェクトよりも優先的にサーバ計算機からプリフ
ェッチしてキャッシュファイル手段に格納する。
イ装置は、請求項1記載のゲートウェイ装置であって、
第2のネットワークファイル中継手段は、過去の一定期
間内に行なったファイルオブジェクトの転送記録を、当
該ファイルオブジェクトの変更が検出されたか否かを示
す情報とともに蓄積するための第2のファイル転送記録
手段をさらに含む。第2のネットワークファイル中継手
段は、第2のファイル転送記録手段によりファイルオブ
ジェクトのプリフェッチ時に記録された転送記録中か
ら、直前のプリフェッチ時において変更が検出されたフ
ァイルオブジェクトを抽出し、これらのファイルオブジ
ェクトを、ファイル転送記録手段の転送記録中のファイ
ルオブジェクトよりも優先的にサーバ計算機からプリフ
ェッチしてキャッシュファイル手段に格納する。
【0093】前回のフェッチ時に変更が検出されたファ
イルオブジェクトが、それ以外のファイルオブジェクト
よりも優先してプリフェッチされる。こうしたファイル
オブジェクトは、以後も変更される頻度が高いと考えら
れる。そのため、請求項1に記載の発明の効果に加え
て、キャッシュファイルの内容を新鮮に保つ上で、前回
のフェッチ時以降に変更があった可能性の高いファイル
オブジェクトが優先的にプリフェッチされるので、プリ
フェッチを効率的に行なうことができる。
イルオブジェクトが、それ以外のファイルオブジェクト
よりも優先してプリフェッチされる。こうしたファイル
オブジェクトは、以後も変更される頻度が高いと考えら
れる。そのため、請求項1に記載の発明の効果に加え
て、キャッシュファイルの内容を新鮮に保つ上で、前回
のフェッチ時以降に変更があった可能性の高いファイル
オブジェクトが優先的にプリフェッチされるので、プリ
フェッチを効率的に行なうことができる。
【0094】請求項13に記載の発明に係るゲートウェ
イ装置は、請求項12記載のゲートウェイ装置であっ
て、第2のネットワークファイル中継手段は、予め指定
された文字列パターンを記憶し、第2のファイル転送記
録手段により記録された転送記録中から、この予め定め
られた文字列パターンと一致する文字列を有するファイ
ルオブジェクトを排除して抽出する。
イ装置は、請求項12記載のゲートウェイ装置であっ
て、第2のネットワークファイル中継手段は、予め指定
された文字列パターンを記憶し、第2のファイル転送記
録手段により記録された転送記録中から、この予め定め
られた文字列パターンと一致する文字列を有するファイ
ルオブジェクトを排除して抽出する。
【0095】ファイルオブジェクトの中には、プリフェ
ッチすることが無意味であったり、プリフェッチしてお
くためにかえってシステム全体の効率が低下してしまう
ようなファイルオブジェクトも存在する。そうしたファ
イルオブジェクトの中には、特定の文字列を含んでいる
ものとして予め知ることができるものがある。そこでこ
のような特定の文字列を予め指定し文字列パターンとし
て第2のネットワークファイル中継手段に記憶させてお
き、この文字列パターンと一致する文字列を有するファ
イルオブジェクトを排除して抽出し、残りのファイルオ
ブジェクトのみプリフェッチする。
ッチすることが無意味であったり、プリフェッチしてお
くためにかえってシステム全体の効率が低下してしまう
ようなファイルオブジェクトも存在する。そうしたファ
イルオブジェクトの中には、特定の文字列を含んでいる
ものとして予め知ることができるものがある。そこでこ
のような特定の文字列を予め指定し文字列パターンとし
て第2のネットワークファイル中継手段に記憶させてお
き、この文字列パターンと一致する文字列を有するファ
イルオブジェクトを排除して抽出し、残りのファイルオ
ブジェクトのみプリフェッチする。
【0096】こうすることで、プリフェッチにより、よ
り有用なデータをより多くキャッシュファイル手段にプ
リフェッチすることができるので、請求項12に記載の
発明の効果に加えて、キャッシュファイルの内容を新鮮
に保つことと、キャッシュヒット率を向上させることと
を、効率的に達成することができる。
り有用なデータをより多くキャッシュファイル手段にプ
リフェッチすることができるので、請求項12に記載の
発明の効果に加えて、キャッシュファイルの内容を新鮮
に保つことと、キャッシュヒット率を向上させることと
を、効率的に達成することができる。
【0097】請求項14に記載の発明に係るゲートウェ
イ装置は、請求項12の記載の発明の構成に加えて、第
2のファイル転送記録手段の蓄積する転送記録は、取得
されたファイルオブジェクトのファイルサイズをさらに
含む。第2のネットワークファイル中継手段は、転送対
象となるファイルオブジェクトサイズの最大値を特定す
る情報を予め記憶し、第2のファイル転送記録手段によ
り記録された転送記録中から、記憶された最大値より大
きなファイルサイズを有するファイルオブジェクトを排
除して抽出する。
イ装置は、請求項12の記載の発明の構成に加えて、第
2のファイル転送記録手段の蓄積する転送記録は、取得
されたファイルオブジェクトのファイルサイズをさらに
含む。第2のネットワークファイル中継手段は、転送対
象となるファイルオブジェクトサイズの最大値を特定す
る情報を予め記憶し、第2のファイル転送記録手段によ
り記録された転送記録中から、記憶された最大値より大
きなファイルサイズを有するファイルオブジェクトを排
除して抽出する。
【0098】大きなデータサイズのファイルオブジェク
トは、プリフェッチに時間がかかる。通常プリフェッチ
の処理は、ユーザの少ない限られた時間帯に行なわれる
ことが多い。この限られた時間帯内に、できるだけ多く
の数のファイルオブジェクトのプリフェッチを完了させ
ようとすれば、大きなファイルオブジェクトのプリフェ
ッチは避けることが望ましい。場合によっては有限のプ
リフェッチ時間内に、多大なサイズのファイルオブジェ
クトのプリフェッチが完了せず、結果としてプリフェッ
チが全く行なわれないことさえあり得る。そのため、デ
ータサイズの大きなファイルオブジェクトのプリフェッ
チを回避することにより、有限のプリフェッチ時間内に
多数のファイルオブジェクトをファイルキャッシュ手段
内にプリフェッチすることができ、キャッシュファイル
手段に格納された有効なデータ量を増やすことができ
る。結果として、キャッシュファイルの内容を新鮮に保
つことと、キャッシュヒット率を向上させることとが、
効率的に行なわれる。
トは、プリフェッチに時間がかかる。通常プリフェッチ
の処理は、ユーザの少ない限られた時間帯に行なわれる
ことが多い。この限られた時間帯内に、できるだけ多く
の数のファイルオブジェクトのプリフェッチを完了させ
ようとすれば、大きなファイルオブジェクトのプリフェ
ッチは避けることが望ましい。場合によっては有限のプ
リフェッチ時間内に、多大なサイズのファイルオブジェ
クトのプリフェッチが完了せず、結果としてプリフェッ
チが全く行なわれないことさえあり得る。そのため、デ
ータサイズの大きなファイルオブジェクトのプリフェッ
チを回避することにより、有限のプリフェッチ時間内に
多数のファイルオブジェクトをファイルキャッシュ手段
内にプリフェッチすることができ、キャッシュファイル
手段に格納された有効なデータ量を増やすことができ
る。結果として、キャッシュファイルの内容を新鮮に保
つことと、キャッシュヒット率を向上させることとが、
効率的に行なわれる。
【0099】請求項15に記載の発明に係るゲートウェ
イ装置は、請求項12に記載のゲートウェイ装置であっ
て、第2のファイル転送記録手段の蓄積する転送記録
は、取得が試行されたファイルオブジェクトに関するサ
ーバ計算機の状態コードをさらに含んでいる。第2のネ
ットワークファイル中継手段は、サーバ計算機の特定の
状態コードを予め記憶し、第2のファイル転送記録手段
により記録された転送記録中から、この特定の状態コー
ドと一致する状態コードを有するファイルオブジェクト
を排除して抽出する。
イ装置は、請求項12に記載のゲートウェイ装置であっ
て、第2のファイル転送記録手段の蓄積する転送記録
は、取得が試行されたファイルオブジェクトに関するサ
ーバ計算機の状態コードをさらに含んでいる。第2のネ
ットワークファイル中継手段は、サーバ計算機の特定の
状態コードを予め記憶し、第2のファイル転送記録手段
により記録された転送記録中から、この特定の状態コー
ドと一致する状態コードを有するファイルオブジェクト
を排除して抽出する。
【0100】サーバ計算機が、たとえばファイル送信の
行なえない異常な状態にある場合、このサーバ計算機に
対してファイルオブジェクトの送信を要求するのは無駄
である。そのような無駄なファイルアクセスを行なわず
に、他の有効なサーバ計算機に対してファイルオブジェ
クトのプリフェッチを行なえば、有限の時間内により多
くの有効なデータをファイルキャッシュ手段内に蓄積す
ることができる。その結果、キャッシュファイルの内容
を新鮮に保ち、かつキャッシュヒット率を向上させるこ
とが効率的に行なえる。
行なえない異常な状態にある場合、このサーバ計算機に
対してファイルオブジェクトの送信を要求するのは無駄
である。そのような無駄なファイルアクセスを行なわず
に、他の有効なサーバ計算機に対してファイルオブジェ
クトのプリフェッチを行なえば、有限の時間内により多
くの有効なデータをファイルキャッシュ手段内に蓄積す
ることができる。その結果、キャッシュファイルの内容
を新鮮に保ち、かつキャッシュヒット率を向上させるこ
とが効率的に行なえる。
【0101】請求項16に記載の発明に係るゲートウェ
イ装置は、請求項1〜15のいずれかに記載のゲートウ
ェイ装置であって、第1のネットワークファイル中継手
段に対するクライアント計算機としての機能を実現する
ための手段をさらに含んでいる。
イ装置は、請求項1〜15のいずれかに記載のゲートウ
ェイ装置であって、第1のネットワークファイル中継手
段に対するクライアント計算機としての機能を実現する
ための手段をさらに含んでいる。
【0102】ゲートウェイ装置に、クライアント計算機
としての機能を持たせることにより、プリフェッチした
いファイルに対するアクセス要求をクライアント計算機
としての機能を通じてゲートウェイ装置に出すことがで
きる。そのためプリフェッチされるファイルオブジェク
トの量をさらに増やすことができ、キャッシュファイル
の内容を新鮮に保つことと、キャッシュヒット率を向上
させることとを、ともに、かつ効率的に達成することが
できる。
としての機能を持たせることにより、プリフェッチした
いファイルに対するアクセス要求をクライアント計算機
としての機能を通じてゲートウェイ装置に出すことがで
きる。そのためプリフェッチされるファイルオブジェク
トの量をさらに増やすことができ、キャッシュファイル
の内容を新鮮に保つことと、キャッシュヒット率を向上
させることとを、ともに、かつ効率的に達成することが
できる。
【0103】
[実施の形態1]本発明が適用されるゲートウェイ装置
(proxy サーバ装置と呼ぶ)は、ネットワークインタフ
ェースを備えたUNIX OS の稼動する計算機によって、以
下の説明および図面を参照すれば容易に実現可能であ
る。そうしたproxy サーバ装置の構成の一例は図16に
示したとおりである。図16のproxy サーバ装置につい
ては既に説明したので、その構成についての詳細な説明
はここでは繰返さない。
(proxy サーバ装置と呼ぶ)は、ネットワークインタフ
ェースを備えたUNIX OS の稼動する計算機によって、以
下の説明および図面を参照すれば容易に実現可能であ
る。そうしたproxy サーバ装置の構成の一例は図16に
示したとおりである。図16のproxy サーバ装置につい
ては既に説明したので、その構成についての詳細な説明
はここでは繰返さない。
【0104】通常は、ユーザ31がクライアント計算機
24を使用してproxy サーバ装置(図16におけるprox
y サーバ装置400)に対して、サーバ計算機11のフ
ァイルオブジェクト12を取得するようネットワーク2
3を経由して依頼を出す。ファイルオブジェクト12
は、前述したようにプロトコル名称と、サーバ計算機の
ネットワークアドレス名称と、ファイルオブジェクトの
名称と、ファイルデータの実体との組からなっている。
24を使用してproxy サーバ装置(図16におけるprox
y サーバ装置400)に対して、サーバ計算機11のフ
ァイルオブジェクト12を取得するようネットワーク2
3を経由して依頼を出す。ファイルオブジェクト12
は、前述したようにプロトコル名称と、サーバ計算機の
ネットワークアドレス名称と、ファイルオブジェクトの
名称と、ファイルデータの実体との組からなっている。
【0105】図1に、本願発明に係るproxy サーバ装置
の第1の実施の形態に係る装置53のシステム構成を示
す。図1を参照して、proxy サーバ装置53は、内部ネ
ットワーク23および外部ネットワーク25に接続され
た第1のproxy プロセス14と、第1のproxy プロセス
14が使用するキャッシュファイル16と、第1のprox
y プロセス14が、アクセスログ(転送記録)としてフ
ァイルオブジェクトの名称を記録するアクセスログ15
と、第1のproxy プロセス14の過去のアクセスログ1
0を読出してファイルのアクセスリスト30を作成する
とともに、このアクセスリスト30に掲載されたファイ
ルオブジェクトを外部ネットワーク25のサーバ計算機
11からプリフェッチするための要求を発生するプリフ
ェッチプロセス36と、プリフェッチプロセス36のプ
リフェッチ要求に応答して、外部ネットワーク25のサ
ーバ11から該当するファイルオブジェクトを取得し、
キャッシュファイル16に再格納することによりキャッ
シュファイルの内容を最新のものに保つための第2のpr
oxy プロセス34とを含む。
の第1の実施の形態に係る装置53のシステム構成を示
す。図1を参照して、proxy サーバ装置53は、内部ネ
ットワーク23および外部ネットワーク25に接続され
た第1のproxy プロセス14と、第1のproxy プロセス
14が使用するキャッシュファイル16と、第1のprox
y プロセス14が、アクセスログ(転送記録)としてフ
ァイルオブジェクトの名称を記録するアクセスログ15
と、第1のproxy プロセス14の過去のアクセスログ1
0を読出してファイルのアクセスリスト30を作成する
とともに、このアクセスリスト30に掲載されたファイ
ルオブジェクトを外部ネットワーク25のサーバ計算機
11からプリフェッチするための要求を発生するプリフ
ェッチプロセス36と、プリフェッチプロセス36のプ
リフェッチ要求に応答して、外部ネットワーク25のサ
ーバ11から該当するファイルオブジェクトを取得し、
キャッシュファイル16に再格納することによりキャッ
シュファイルの内容を最新のものに保つための第2のpr
oxy プロセス34とを含む。
【0106】第1のproxy プロセス14と、第2のprox
y プロセス34と、プリフェッチプロセス36とはいず
れも、たとえば図16に示すメモリ206内にプログラ
ムとして格納され、CPU200によってこれを実行す
ることにより実現される。
y プロセス34と、プリフェッチプロセス36とはいず
れも、たとえば図16に示すメモリ206内にプログラ
ムとして格納され、CPU200によってこれを実行す
ることにより実現される。
【0107】第1のproxy プロセス14が、特許請求の
範囲に記載の転送手段に相当し、キャッシュファイル1
6がキャッシュファイル手段に相当し、アクセスログ1
5がファイル転送記録手段に相当する。またプリフェッ
チプロセス36と、アクセスリスト30と、第2のprox
y プロセス34とにより第2のネットワークファイル中
継手段が構成される。
範囲に記載の転送手段に相当し、キャッシュファイル1
6がキャッシュファイル手段に相当し、アクセスログ1
5がファイル転送記録手段に相当する。またプリフェッ
チプロセス36と、アクセスリスト30と、第2のprox
y プロセス34とにより第2のネットワークファイル中
継手段が構成される。
【0108】第2のproxy プロセス30は、本願発明に
係るゲートウェイ装置に特有のものであるが、次のよう
な条件に従って起動されている。
係るゲートウェイ装置に特有のものであるが、次のよう
な条件に従って起動されている。
【0109】(1) 第2のproxy プロセス30は、第
1のproxy プロセス14と共通のキャッシュファイル1
6を使用する。
1のproxy プロセス14と共通のキャッシュファイル1
6を使用する。
【0110】(2) 第2のproxy プロセス34のキャ
ッシュ有効期限は0に設定される。すなわち第2のprox
y プロセスを経由するサーバ計算機へのアクセスは、キ
ャッシュミスヒット状態となり必ず外部ネットワーク2
5内のサーバ計算機に対して行なわれ、ファイルオブジ
ェクトを取得してキャッシュファイル16に格納する。
ッシュ有効期限は0に設定される。すなわち第2のprox
y プロセスを経由するサーバ計算機へのアクセスは、キ
ャッシュミスヒット状態となり必ず外部ネットワーク2
5内のサーバ計算機に対して行なわれ、ファイルオブジ
ェクトを取得してキャッシュファイル16に格納する。
【0111】図1に示すproxy サーバ装置53の動作に
ついて以下説明する。内部ネットワーク23内のクライ
アント計算機24が、このproxy サーバ装置53に対し
てネットワークアクセス要求19を与えるものとする。
第1のproxy プロセス14が、このネットワークアクセ
ス要求19を受取り、まずI/Oインタフェース202
(図15、図16、図17参照)を経由してファイル装
置216内に存在するキャッシュファイル16をアクセ
スする(21)。また第1のproxy プロセス14は、こ
のネットワークアクセス要求とキャッシュファイル16
内のファイルオブジェクト名称とを比較し(22)、一
致しているか否かを判定する。一致したものがあれば第
1のproxy プロセス14はさらに、当該ファイルオブジ
ェクトのキャッシュファイル16内の最終変更時刻を抽
出し(22)、現在の時刻と比較する。そして現在の時
刻が、当該ファイルオブジェクトの最終変更時刻を起点
とする有効期限内であれば、キャッシュファイル16か
ら当該ファイルオブジェクトを抽出し(22)、ネット
ワークI/Oインタフェース402(図16参照)を経
由してクライアント計算機24にファイルオブジェクト
を返す(20)。
ついて以下説明する。内部ネットワーク23内のクライ
アント計算機24が、このproxy サーバ装置53に対し
てネットワークアクセス要求19を与えるものとする。
第1のproxy プロセス14が、このネットワークアクセ
ス要求19を受取り、まずI/Oインタフェース202
(図15、図16、図17参照)を経由してファイル装
置216内に存在するキャッシュファイル16をアクセ
スする(21)。また第1のproxy プロセス14は、こ
のネットワークアクセス要求とキャッシュファイル16
内のファイルオブジェクト名称とを比較し(22)、一
致しているか否かを判定する。一致したものがあれば第
1のproxy プロセス14はさらに、当該ファイルオブジ
ェクトのキャッシュファイル16内の最終変更時刻を抽
出し(22)、現在の時刻と比較する。そして現在の時
刻が、当該ファイルオブジェクトの最終変更時刻を起点
とする有効期限内であれば、キャッシュファイル16か
ら当該ファイルオブジェクトを抽出し(22)、ネット
ワークI/Oインタフェース402(図16参照)を経
由してクライアント計算機24にファイルオブジェクト
を返す(20)。
【0112】該当するファイルオブジェクトのコピーが
キャッシュファイル16内に存在していない場合、また
は存在していてもそのキャッシュ有効期限が切れている
場合には第1のproxy プロセス14は、ネットワークI
/Oインタフェース402(図16参照)を経由して外
部ネットワーク25のサーバ計算機11にファイルオブ
ジェクト転送要求17を送る。このときのサーバ11
は、当該ファイルオブジェクト内のネットワークアドレ
ス名称により特定される。
キャッシュファイル16内に存在していない場合、また
は存在していてもそのキャッシュ有効期限が切れている
場合には第1のproxy プロセス14は、ネットワークI
/Oインタフェース402(図16参照)を経由して外
部ネットワーク25のサーバ計算機11にファイルオブ
ジェクト転送要求17を送る。このときのサーバ11
は、当該ファイルオブジェクト内のネットワークアドレ
ス名称により特定される。
【0113】該当するサーバ11は、要求されたファイ
ルオブジェクトを第1のproxy プロセス14に返送する
(18)。すなわちこのファイルオブジェクトが第1の
proxy プロセス14により取得される。
ルオブジェクトを第1のproxy プロセス14に返送する
(18)。すなわちこのファイルオブジェクトが第1の
proxy プロセス14により取得される。
【0114】第1のproxy プロセス14は、このファイ
ルオブジェクトをキャッシュファイル16にその最終変
更時刻とともに書込み(21)、アクセスログ15にこ
のファイルオブジェクトの名称を記録する(26)。
ルオブジェクトをキャッシュファイル16にその最終変
更時刻とともに書込み(21)、アクセスログ15にこ
のファイルオブジェクトの名称を記録する(26)。
【0115】一方、本願発明のproxy サーバ装置53
は、プリフェッチプロセス36と第2のproxy プロセス
30とをCPUにより処理走行させてファイルオブジェ
クトのプリフェッチを行なう点において従来のproxy サ
ーバ装置と相違する。
は、プリフェッチプロセス36と第2のproxy プロセス
30とをCPUにより処理走行させてファイルオブジェ
クトのプリフェッチを行なう点において従来のproxy サ
ーバ装置と相違する。
【0116】プリフェッチプロセス36および第2のpr
oxy プロセス34は次のように動作する。プリフェッチ
プロセス36は、第1のproxy プロセス14の過去のア
クセスログ15を読出し(27)、ファイル装置内にフ
ァイルアクセスリスト30を作成する(28)。プリフ
ェッチプロセス36はさらに、このアクセスリスト30
に掲載されたファイルオブジェクトを読出し(29)、
当該ファイルオブジェクトに対するアクセス要求を第2
のproxy プロセス34に対して与える(31)。第2の
proxy プロセス34は、このアクセス要求を外部ネット
ワーク25のサーバ11に対して与え(32)、当該フ
ァイルオブジェクトを取得する(33)。取得されたフ
ァイルオブジェクトはキャッシュファイル16内にその
最終変更時刻とともに書込まれる。すなわちこれにより
キャッシュファイル16内の当該ファイルオブジェクト
は、クライアント計算機24からのアクセス要求がなく
とも最新のものに書直される。また前述のとおり第2の
proxy プロセス34のキャッシュ有効期限は0に設定さ
れているため、プリフェッチプロセス36からアクセス
要求31が第2のproxy プロセス34に渡されると、必
ず当該ファイルオブジェクトに対するアクセス要求が第
2のproxy プロセス34によって外部ネットワーク20
に与えられる。
oxy プロセス34は次のように動作する。プリフェッチ
プロセス36は、第1のproxy プロセス14の過去のア
クセスログ15を読出し(27)、ファイル装置内にフ
ァイルアクセスリスト30を作成する(28)。プリフ
ェッチプロセス36はさらに、このアクセスリスト30
に掲載されたファイルオブジェクトを読出し(29)、
当該ファイルオブジェクトに対するアクセス要求を第2
のproxy プロセス34に対して与える(31)。第2の
proxy プロセス34は、このアクセス要求を外部ネット
ワーク25のサーバ11に対して与え(32)、当該フ
ァイルオブジェクトを取得する(33)。取得されたフ
ァイルオブジェクトはキャッシュファイル16内にその
最終変更時刻とともに書込まれる。すなわちこれにより
キャッシュファイル16内の当該ファイルオブジェクト
は、クライアント計算機24からのアクセス要求がなく
とも最新のものに書直される。また前述のとおり第2の
proxy プロセス34のキャッシュ有効期限は0に設定さ
れているため、プリフェッチプロセス36からアクセス
要求31が第2のproxy プロセス34に渡されると、必
ず当該ファイルオブジェクトに対するアクセス要求が第
2のproxy プロセス34によって外部ネットワーク20
に与えられる。
【0117】このように第2のproxy プロセス34を起
動すると、大きく次の2つの効果を得ることができる。
動すると、大きく次の2つの効果を得ることができる。
【0118】(1) 第1のproxy プロセス14では、
キャッシュファイル16の有効期限がある値に設定され
ている。この有効期限をM時間であるものとする。仮に
プリフェッチプロセス36が第2のproxy プロセス34
ではなく第1のproxy プロセス14に対してファイルオ
ブジェクトのプリフェッチのためのアクセス要求を与え
るものとすると、キャッシュファイル16にヒットして
しまう確率が高い。これでは、外部ネットワーク25内
の元のファイルオブジェクトに対するアクセスが行なわ
れず、プリフェッチが有効には行なわれない。
キャッシュファイル16の有効期限がある値に設定され
ている。この有効期限をM時間であるものとする。仮に
プリフェッチプロセス36が第2のproxy プロセス34
ではなく第1のproxy プロセス14に対してファイルオ
ブジェクトのプリフェッチのためのアクセス要求を与え
るものとすると、キャッシュファイル16にヒットして
しまう確率が高い。これでは、外部ネットワーク25内
の元のファイルオブジェクトに対するアクセスが行なわ
れず、プリフェッチが有効には行なわれない。
【0119】一方前述のように第2のproxy プロセス3
4は、そのキャッシュ有効期限が0に設定されている。
そのため第2のproxy プロセスに対してアクセス要求が
与えられると、必ずキャッシュミスが発生し、外部ネッ
トワーク25に対するファイルオブジェクトのアクセス
が行なわれる(32)。そのようにしてサーバから当該
ファイルオブジェクトが取得され(33)、取得された
ファイルオブジェクトがキャッシュファイル16に書込
まれる(35)ことによりキャッシュファイル16内の
ファイルオブジェクトが最新の状態に維持される。
4は、そのキャッシュ有効期限が0に設定されている。
そのため第2のproxy プロセスに対してアクセス要求が
与えられると、必ずキャッシュミスが発生し、外部ネッ
トワーク25に対するファイルオブジェクトのアクセス
が行なわれる(32)。そのようにしてサーバから当該
ファイルオブジェクトが取得され(33)、取得された
ファイルオブジェクトがキャッシュファイル16に書込
まれる(35)ことによりキャッシュファイル16内の
ファイルオブジェクトが最新の状態に維持される。
【0120】(2) 第1のproxy プロセス14はアク
セスログ15を残す。プリフェッチプロセス36はこの
アクセスログ15から、プリフェッチすべきファイルオ
ブジェクト名称を抽出したアクセスリスト30を作成す
る。
セスログ15を残す。プリフェッチプロセス36はこの
アクセスログ15から、プリフェッチすべきファイルオ
ブジェクト名称を抽出したアクセスリスト30を作成す
る。
【0121】仮にプリフェッチプロセス36が第1のpr
oxy プロセス14に対して、サーバ計算機内のファイル
オブジェクトのプリフェッチのためのアクセス要求を与
えたとすると、その結果のアクセスログがアクセスログ
15に記録されてしまう。プリフェッチプロセス36
は、次回のプリフェッチ動作においてこのアクセスログ
15をもとにアクセスすべきファイルオブジェクトのリ
スト30を作成するので、その結果作成されるアクセス
リスト30には、同一のファイルオブジェクトが多重に
出現してしまうことになる。そうしたアクセスリスト3
0によってプリフェッチを行なった場合、クライアント
計算機24からのファイルオブジェクトのアクセス要求
の傾向を反映したものとは言えなくなるおそれがある。
第2のproxy プロセス34を用い、プリフェッチを行な
うことにより、アクセスログ15にはプリフェッチにら
るアクセスログは書込まれないことになる。そのためア
クセスリスト30は、クライアント計算機24からのフ
ァイルオブジェクトのアクセス要求の傾向を正確に反映
したものとなる。
oxy プロセス14に対して、サーバ計算機内のファイル
オブジェクトのプリフェッチのためのアクセス要求を与
えたとすると、その結果のアクセスログがアクセスログ
15に記録されてしまう。プリフェッチプロセス36
は、次回のプリフェッチ動作においてこのアクセスログ
15をもとにアクセスすべきファイルオブジェクトのリ
スト30を作成するので、その結果作成されるアクセス
リスト30には、同一のファイルオブジェクトが多重に
出現してしまうことになる。そうしたアクセスリスト3
0によってプリフェッチを行なった場合、クライアント
計算機24からのファイルオブジェクトのアクセス要求
の傾向を反映したものとは言えなくなるおそれがある。
第2のproxy プロセス34を用い、プリフェッチを行な
うことにより、アクセスログ15にはプリフェッチにら
るアクセスログは書込まれないことになる。そのためア
クセスリスト30は、クライアント計算機24からのフ
ァイルオブジェクトのアクセス要求の傾向を正確に反映
したものとなる。
【0122】アクセスリスト30を作成する際には、プ
リフェッチプロセス36はアクセスログ15内から、過
去の一定期間(これをn日とする)のファイルオブジェ
クト名称を抽出する。ただしn×24(時間)は第1の
proxy プロセス14のキャッシュ有効期限M時間よりも
大きい。
リフェッチプロセス36はアクセスログ15内から、過
去の一定期間(これをn日とする)のファイルオブジェ
クト名称を抽出する。ただしn×24(時間)は第1の
proxy プロセス14のキャッシュ有効期限M時間よりも
大きい。
【0123】既に図14を参照して説明したように、通
常はキャッシュ有効期限が短ければキャッシュファイル
に蓄積される容量は少なく、大きくなれば大きくなる。
ヒット率はキャッシュファイルに蓄積されたファイルオ
ブジェクトの量が多いほど高くなることは、既に図13
を参照して説明した。しかしまた、キャッシュファイル
サイズを大きくすればステールデータ率が増加してしま
うことについても既に説明した。
常はキャッシュ有効期限が短ければキャッシュファイル
に蓄積される容量は少なく、大きくなれば大きくなる。
ヒット率はキャッシュファイルに蓄積されたファイルオ
ブジェクトの量が多いほど高くなることは、既に図13
を参照して説明した。しかしまた、キャッシュファイル
サイズを大きくすればステールデータ率が増加してしま
うことについても既に説明した。
【0124】本願発明のゲートウェイ装置では、第1の
proxy プロセス14のキャッシュ有効期限はM時間であ
る。しかしプリフェッチプロセス36がプリフェッチの
対象とするファイルオブジェクトは、n日(n×24>
M)のアクセスログから抽出されている。したがってプ
リフェッチプロセス36および第2のproxy プロセス3
4によってキャッシュファイル16内に蓄積されるファ
イルオブジェクトの量は、n×24時間分だけある。す
なわち、蓄積されているファイルオブジェクトのデータ
量は十分大きいのでキャッシュのヒット率は高くなる。
一方で第1のproxy プロセス14のキャッシュ有効期限
はM時間に保たれているので、プリフェッチを適切な時
期に行なっておけばステールデータ率が高くなるおそれ
はない。
proxy プロセス14のキャッシュ有効期限はM時間であ
る。しかしプリフェッチプロセス36がプリフェッチの
対象とするファイルオブジェクトは、n日(n×24>
M)のアクセスログから抽出されている。したがってプ
リフェッチプロセス36および第2のproxy プロセス3
4によってキャッシュファイル16内に蓄積されるファ
イルオブジェクトの量は、n×24時間分だけある。す
なわち、蓄積されているファイルオブジェクトのデータ
量は十分大きいのでキャッシュのヒット率は高くなる。
一方で第1のproxy プロセス14のキャッシュ有効期限
はM時間に保たれているので、プリフェッチを適切な時
期に行なっておけばステールデータ率が高くなるおそれ
はない。
【0125】本発明を非常に有効に適用できる例とし
て、インターネット上のWWWシステムがある。WWW
システム上でのproxy サーバ装置において本願発明のプ
リフェッチプロセスを行なう手順を以下に説明する。
て、インターネット上のWWWシステムがある。WWW
システム上でのproxy サーバ装置において本願発明のプ
リフェッチプロセスを行なう手順を以下に説明する。
【0126】WWWシステムでは、ネットワーク上に分
散したファイルオブジェクト名称はUniform Resource L
ocator(URL)と呼ばれる形式で表現され、特定され
る。URLの一例を次に示す。
散したファイルオブジェクト名称はUniform Resource L
ocator(URL)と呼ばれる形式で表現され、特定され
る。URLの一例を次に示す。
【0127】
【数3】
【0128】数3において「http」は使用するプロトコ
ルを示す。「www.xxx.co.jp 」は、ネットワーク上のH
TTPサーバ計算機のアドレスを示すものであり、ネッ
トワーク上で同一のものはないよう選ばれている。また
「/test/index.html」はサーバ計算機内のファイル名称
を示す。
ルを示す。「www.xxx.co.jp 」は、ネットワーク上のH
TTPサーバ計算機のアドレスを示すものであり、ネッ
トワーク上で同一のものはないよう選ばれている。また
「/test/index.html」はサーバ計算機内のファイル名称
を示す。
【0129】第1のproxy プロセスとして一般に利用さ
れているDeleGateを使用する場合は、そのアクセスログ
の例は次のように、内部ネットワーククライアント計算
機名称と、時刻と、“HTTPプロトコル(ファイル取
得要求)”、などとなる。
れているDeleGateを使用する場合は、そのアクセスログ
の例は次のように、内部ネットワーククライアント計算
機名称と、時刻と、“HTTPプロトコル(ファイル取
得要求)”、などとなる。
【0130】
【数4】
【0131】数4に示すアクセスログは、図2に示すよ
うな、出願人がインターネット上で公開している情報ペ
ージをアクセスした場合のログに相当する。図2に示さ
れるぺージは、テキストと、6個のグラフィックデータ
とから構成されているので、このページに対するアクセ
スを1回行なうと、6個のグラフィックデータに対する
アクセスも含む7つのアクセスログが形成される。すな
わち上述のログにおいて第1行目はこの情報ページのテ
キストに対するアクセス要求であり、残りの6行は表紙
に貼り込まれた出願人の会社のロゴのグラフィックデー
タ(sharpcolor.gif)、出願人会社内の情報システム事
業本部と呼ばれる事業部のロゴ(isg.gif )と、出願人
会社の4つの製品の写真のグラフィックデータ(Zauru
s.gif, Shoin.gif, Prostation.gif, S2.gif )の取得
要求を示している。
うな、出願人がインターネット上で公開している情報ペ
ージをアクセスした場合のログに相当する。図2に示さ
れるぺージは、テキストと、6個のグラフィックデータ
とから構成されているので、このページに対するアクセ
スを1回行なうと、6個のグラフィックデータに対する
アクセスも含む7つのアクセスログが形成される。すな
わち上述のログにおいて第1行目はこの情報ページのテ
キストに対するアクセス要求であり、残りの6行は表紙
に貼り込まれた出願人の会社のロゴのグラフィックデー
タ(sharpcolor.gif)、出願人会社内の情報システム事
業本部と呼ばれる事業部のロゴ(isg.gif )と、出願人
会社の4つの製品の写真のグラフィックデータ(Zauru
s.gif, Shoin.gif, Prostation.gif, S2.gif )の取得
要求を示している。
【0132】HTTPプロトコルは、コマンド文字列
(GETなど)と、URLと、プロトコルバージョン
(「HTTP/1.0」など)から構成されている。以下はその
一例である。
(GETなど)と、URLと、プロトコルバージョン
(「HTTP/1.0」など)から構成されている。以下はその
一例である。
【0133】
【数5】
【0134】HTTPプロトコルについては、最後に掲
げる表内に示された参考文献のうち、参考文献3および
参考文献4に記載されている。プリフェッチプロセスの
実施手順について以下に説明するが、そのための前提条
件は次の(1)および(2)となっている。
げる表内に示された参考文献のうち、参考文献3および
参考文献4に記載されている。プリフェッチプロセスの
実施手順について以下に説明するが、そのための前提条
件は次の(1)および(2)となっている。
【0135】(1) 第1のproxy プロセスは、キャッ
シュ有効期限M(時間)を、キャッシュログの収集期間
n日より短く設定する。たとえばM=24時間、n=7
日とする。
シュ有効期限M(時間)を、キャッシュログの収集期間
n日より短く設定する。たとえばM=24時間、n=7
日とする。
【0136】(2) 第2のproxy プロセスは、キャ
ッシュファイルを第1のproxy プロセスのものと共有
し、キャッシュ有効期限を0に設定する、という2つ
の条件に従って起動される。
ッシュファイルを第1のproxy プロセスのものと共有
し、キャッシュ有効期限を0に設定する、という2つ
の条件に従って起動される。
【0137】このような条件のもとに、以下に述べる手
順のプリフェッチプロセスを毎日一定時刻に起動する。
毎日一定時刻にプロセスを自動起動するには、ゲートウ
ェイ装置がUNIX OS のもとで動作するのであれば、UNIX
OS に備えられているタイマ機能(cron)を使用する。
これは、UNIX OS に関連してよく知られている機能であ
るので、その詳細についてはここでは説明しない。な
お、UNIX OS 以外のOSでも、同様の機能が提供されて
いることが多い。
順のプリフェッチプロセスを毎日一定時刻に起動する。
毎日一定時刻にプロセスを自動起動するには、ゲートウ
ェイ装置がUNIX OS のもとで動作するのであれば、UNIX
OS に備えられているタイマ機能(cron)を使用する。
これは、UNIX OS に関連してよく知られている機能であ
るので、その詳細についてはここでは説明しない。な
お、UNIX OS 以外のOSでも、同様の機能が提供されて
いることが多い。
【0138】図3に、本願発明に係るプリフェッチプロ
セスの制御の流れを示した。このプロセスを実現するた
めのプログラムは、たとえば図16のメモリ206内に
配置され、CPU202によって実行される。このプロ
セスとネットワークおよびファイル装置216との入出
力には、それぞれネットワークI/Oインタフェース4
02とI/Oインタフェース202とが使用される。
セスの制御の流れを示した。このプロセスを実現するた
めのプログラムは、たとえば図16のメモリ206内に
配置され、CPU202によって実行される。このプロ
セスとネットワークおよびファイル装置216との入出
力には、それぞれネットワークI/Oインタフェース4
02とI/Oインタフェース202とが使用される。
【0139】図3を参照して、まずステップ1で第1の
proxy プロセスのアクセスログファイルをn日分収集す
る。この収集の具体的な手順は次のとおりである。
proxy プロセスのアクセスログファイルをn日分収集す
る。この収集の具体的な手順は次のとおりである。
【0140】第1のproxy プロセスのアクセスログファ
イル名称は、毎日名称が変わるように第1のproxy プロ
セスにより設定できる。たとえばログファイル名称の末
尾に、日付が入るようにすることができる。すると、ロ
グファイルとして次のようなものが生成されるであろ
う。
イル名称は、毎日名称が変わるように第1のproxy プロ
セスにより設定できる。たとえばログファイル名称の末
尾に、日付が入るようにすることができる。すると、ロ
グファイルとして次のようなものが生成されるであろ
う。
【0141】
【表1】
【0142】最新のn日分のログファイルを収集するた
めには、これらログファイルの名称リストを日付の降順
でソートすると便利である。UNIX OS のもとでは、この
ようなファイルの名称リストを日付の新しいものから順
に並べるには/bin/ls コマンドを−tオプションを指定
して起動すればよい。そのようなコマンド例とその結果
とを次に示す。
めには、これらログファイルの名称リストを日付の降順
でソートすると便利である。UNIX OS のもとでは、この
ようなファイルの名称リストを日付の新しいものから順
に並べるには/bin/ls コマンドを−tオプションを指定
して起動すればよい。そのようなコマンド例とその結果
とを次に示す。
【0143】
【表2】
【0144】これらのファイルリストから最近のたとえ
ば7日分のログファイル名称を抽出することにする。こ
の場合には、UNIXに標準的に搭載されている/usr/ucb/h
eadコマンドを用いて先頭の7行を抽出すればよい。hea
dコマンドは、標準入力から先頭の指定行数を標準出力
に出力する。そこで、ls -t コマンドの標準出力をhead
コマンドの標準入力とすれば上述の最近の7日分のログ
ファイル名称を抽出できる。このためには、ls -t のコ
マンドとheadコマンドとを“|”を使って繋ぎUNIX OS
に渡せばよい。このように“|”を使って標準入出力を
接続することは、UNIXでは普通に行なわれている。なお
このような標準入出力の接続が行なえないOSのもとでこ
のようなデータに対する連続的な処理を行なう場合に
は、他の方式を使用する必要があるが、通常のOSでは
そのためのツールが装備されているであろう。
ば7日分のログファイル名称を抽出することにする。こ
の場合には、UNIXに標準的に搭載されている/usr/ucb/h
eadコマンドを用いて先頭の7行を抽出すればよい。hea
dコマンドは、標準入力から先頭の指定行数を標準出力
に出力する。そこで、ls -t コマンドの標準出力をhead
コマンドの標準入力とすれば上述の最近の7日分のログ
ファイル名称を抽出できる。このためには、ls -t のコ
マンドとheadコマンドとを“|”を使って繋ぎUNIX OS
に渡せばよい。このように“|”を使って標準入出力を
接続することは、UNIXでは普通に行なわれている。なお
このような標準入出力の接続が行なえないOSのもとでこ
のようなデータに対する連続的な処理を行なう場合に
は、他の方式を使用する必要があるが、通常のOSでは
そのためのツールが装備されているであろう。
【0145】上述の接続後のコマンドとその結果とを次
に示す。
に示す。
【0146】
【表3】
【0147】次に、図3のステップ2で、プリフェッチ
アクセスリストを作成する。このアクセスリストは1つ
のファイル“workfile.txt”にまとめられるものとす
る。このファイルは、その1行ごとに過去のアクセスフ
ァイルオブジェクトを記録したものとなる。したがって
このファイルを作成するために、以下のような条件でプ
リフェッチすべきファイルオブジェクト名称を含むアク
セスログを選択する。
アクセスリストを作成する。このアクセスリストは1つ
のファイル“workfile.txt”にまとめられるものとす
る。このファイルは、その1行ごとに過去のアクセスフ
ァイルオブジェクトを記録したものとなる。したがって
このファイルを作成するために、以下のような条件でプ
リフェッチすべきファイルオブジェクト名称を含むアク
セスログを選択する。
【0148】(1) HTTPコマンド文字列がファイ
ルオブジェクトリード要求(GET)であり、かつ
(2) ファイルオブジェクト名称のプロトコル部分が
httpであり、かつ(3) ファイルオブジェクト名称が
プリフェッチに適するものであること(プリフェッチに
適さないものを除外すること)。
ルオブジェクトリード要求(GET)であり、かつ
(2) ファイルオブジェクト名称のプロトコル部分が
httpであり、かつ(3) ファイルオブジェクト名称が
プリフェッチに適するものであること(プリフェッチに
適さないものを除外すること)。
【0149】以上の条件を使ってアクセスログを抽出し
リストを作る。さらにファイルオブジェクト名称のフィ
ールドだけをこのリストから抜出し、プリフェッチすべ
きファイルオブジェクト名称からなるプリフェッチアク
セスリストを作成する。
リストを作る。さらにファイルオブジェクト名称のフィ
ールドだけをこのリストから抜出し、プリフェッチすべ
きファイルオブジェクト名称からなるプリフェッチアク
セスリストを作成する。
【0150】上述の条件(2)は、プリフェッチする意
味のあるファイルオブジェクト名称のみを抽出するため
である。第1および第2のproxy プロセスとして、上に
述べたように本実施の形態ではDeleGateソフトウェアを
使用している。このproxy ソフトウェアがキャッシュフ
ァイルを生成するプロトコルはhttpプロトコルのみであ
る。したがってプリフェッチして意味があるのはそのよ
うなhttpプロトコルに従ったアクセスログのみである。
それ以外のプロトコルはプリフェッチしてもキャッシュ
処理の対象とはならないので無意味である。
味のあるファイルオブジェクト名称のみを抽出するため
である。第1および第2のproxy プロセスとして、上に
述べたように本実施の形態ではDeleGateソフトウェアを
使用している。このproxy ソフトウェアがキャッシュフ
ァイルを生成するプロトコルはhttpプロトコルのみであ
る。したがってプリフェッチして意味があるのはそのよ
うなhttpプロトコルに従ったアクセスログのみである。
それ以外のプロトコルはプリフェッチしてもキャッシュ
処理の対象とはならないので無意味である。
【0151】条件(3)に示すようにプリフェッチに適
さないファイルオブジェクト名称として、URL中に
「?」を含むものなどがある。?を含むURL表記は、
サーバ計算機に対してクライアントユーザから文字列を
人手で入力する場合などに使われる。そのためこの文字
を含むURL表記を有するファイルオブジェクトをプリ
フェッチすると、予期せぬ結果を招くおそれがある。こ
のステップ2の処理をUNIX OS のもとで行なうには、O
Sとともに提供されている次のようなコマンド群を使用
すればよい。
さないファイルオブジェクト名称として、URL中に
「?」を含むものなどがある。?を含むURL表記は、
サーバ計算機に対してクライアントユーザから文字列を
人手で入力する場合などに使われる。そのためこの文字
を含むURL表記を有するファイルオブジェクトをプリ
フェッチすると、予期せぬ結果を招くおそれがある。こ
のステップ2の処理をUNIX OS のもとで行なうには、O
Sとともに提供されている次のようなコマンド群を使用
すればよい。
【0152】
【表4】
【0153】たとえば次のコマンドを入力することによ
り、このステップ2の処理を経たものがファイル“work
file.txt”にリストとして出力される。
り、このステップ2の処理を経たものがファイル“work
file.txt”にリストとして出力される。
【0154】
【表5】
【0155】この間の経過を以下に説明する。“workfi
le.txt”にあるアクセスログの形式は既に述べたように
次のとおりである。
le.txt”にあるアクセスログの形式は既に述べたように
次のとおりである。
【0156】
【表6】
【0157】したがって“workfile.txt”を標準出力
し、それをgrep −v ”\?”に入力することで
?を含まない行を抽出して標準出力に出力する。それを
さらにgrep ”\”GET”への入力とし、それに
よってGETコマンドであるもののみを抽出して標準出
力に出力する。
し、それをgrep −v ”\?”に入力することで
?を含まない行を抽出して標準出力に出力する。それを
さらにgrep ”\”GET”への入力とし、それに
よってGETコマンドであるもののみを抽出して標準出
力に出力する。
【0158】さらに空白がフィールド間の区切りである
と考えると、“workfile.txt”の各行の7番目のフィー
ルドがファイルオブジェクト名称に相当するので、aw
kコマンドを使用してこのファイルオブジェクト名称部
分のみを抽出する。さらにこのファイルオブジェクト名
称部分のプロトコル部分がhttpである行のみを抽出
するために、grep "^http://"でフィルタリングしてい
る。なおこのコマンドパラメータのうち^は行の先頭を
示している。
と考えると、“workfile.txt”の各行の7番目のフィー
ルドがファイルオブジェクト名称に相当するので、aw
kコマンドを使用してこのファイルオブジェクト名称部
分のみを抽出する。さらにこのファイルオブジェクト名
称部分のプロトコル部分がhttpである行のみを抽出
するために、grep "^http://"でフィルタリングしてい
る。なおこのコマンドパラメータのうち^は行の先頭を
示している。
【0159】このようにステップ2でworkfile2.txt に
出力されたプリフェッチアクセスリストは、内部ネット
ワークの複数のクライアント計算機からのサーバ計算機
へのアクセス記録である。したがってこのリストには同
じファイルオブジェクト名称が何度も出現する可能性が
ある。そこで、図3のステップ3で、このURLリスト
をファイルオブジェクト名称の出現頻度順にソートし、
かつ同じURLについては重複しないように1つにまと
める。
出力されたプリフェッチアクセスリストは、内部ネット
ワークの複数のクライアント計算機からのサーバ計算機
へのアクセス記録である。したがってこのリストには同
じファイルオブジェクト名称が何度も出現する可能性が
ある。そこで、図3のステップ3で、このURLリスト
をファイルオブジェクト名称の出現頻度順にソートし、
かつ同じURLについては重複しないように1つにまと
める。
【0160】UNIXでは、このようなソート作業は、OS
とともに提供されている次のコマンド群を用いて行なう
ことができる。
とともに提供されている次のコマンド群を用いて行なう
ことができる。
【0161】
【表7】
【0162】具体的には次のコマンドとなる。
【0163】
【表8】
【0164】すなわちworkfile2.txt でURLだけにな
ったファイルを標準出力に出力し、これをsortの標
準入力とし、ファイルオブジェクト名称をアルファベッ
ト順に並べる。workfile2.txt の例を次に示す。
ったファイルを標準出力に出力し、これをsortの標
準入力とし、ファイルオブジェクト名称をアルファベッ
ト順に並べる。workfile2.txt の例を次に示す。
【0165】
【表9】
【0166】workfile2.txt | sort の結果は次のよう
にアルファベット順(ASCIIコード順)になる。
にアルファベット順(ASCIIコード順)になる。
【0167】
【表10】
【0168】さらにこの出力をuniq -c の標準入力に入
力すると同一ファイルオブジェクト名称の行が集約さ
れ、かつ出現頻度が第1フィールドとして付加されて各
レコードが出力されるので、その出力は次のようにな
る。
力すると同一ファイルオブジェクト名称の行が集約さ
れ、かつ出現頻度が第1フィールドとして付加されて各
レコードが出力されるので、その出力は次のようにな
る。
【0169】
【表11】
【0170】これらの第1フィールドを数値と考え、大
きいものから順にソートする。そのためにはsort -n -r
の標準入力に表11の結果を与える。この結果各レコー
ドは出現頻度順に並べられ、その結果は次のようにな
る。
きいものから順にソートする。そのためにはsort -n -r
の標準入力に表11の結果を与える。この結果各レコー
ドは出現頻度順に並べられ、その結果は次のようにな
る。
【0171】
【表12】
【0172】すなわち表8のコマンドを実行した結果の
workfile3.txt というファイルは、出現頻度順に1行に
1個のファイルオブジェクト名称の並んだプリフェッチ
アクセスリストとなる。
workfile3.txt というファイルは、出現頻度順に1行に
1個のファイルオブジェクト名称の並んだプリフェッチ
アクセスリストとなる。
【0173】さらに図3を参照して、ステップ4で、プ
リフェッチアクセスリスト25の1行が読出せるか否か
を調べる。読出される行がない場合にはプリフェッチア
クセスリストの最後であるからこの処理は終了する。読
出す行がある場合にはステップ5に進む。
リフェッチアクセスリスト25の1行が読出せるか否か
を調べる。読出される行がない場合にはプリフェッチア
クセスリストの最後であるからこの処理は終了する。読
出す行がある場合にはステップ5に進む。
【0174】ステップ5では、読出した1行のファイル
オブジェクト名称をもとに第2のproxy プロセス34を
用いて、サーバ計算機に対してネットワークアクセスを
する子プロセスを起動する。この子プロセスをプリフェ
ッチ子プロセスと呼ぶ。この子プロセスの終了を待って
処理をステップ4に戻し、ステップ4とステップ5との
処理を繰返すプリフェッチプロセスループを形成する。
オブジェクト名称をもとに第2のproxy プロセス34を
用いて、サーバ計算機に対してネットワークアクセスを
する子プロセスを起動する。この子プロセスをプリフェ
ッチ子プロセスと呼ぶ。この子プロセスの終了を待って
処理をステップ4に戻し、ステップ4とステップ5との
処理を繰返すプリフェッチプロセスループを形成する。
【0175】なお、図3には示されていないが、ステッ
プ1からステップ5の処理により生成されたプリフェッ
チプロセスループを、指定時刻に強制終了するようにO
Sのタイマをセットする。OSタイマは、UNIX OS に標
準的に提供されているatコマンドを利用して指定時間
動作を指定することにより行なえる。より具体的には、
上記したステップ1からステップ5によるプリフェッチ
プロセスのプロセスID番号を使用して次のコマンドを
OSに与える。
プ1からステップ5の処理により生成されたプリフェッ
チプロセスループを、指定時刻に強制終了するようにO
Sのタイマをセットする。OSタイマは、UNIX OS に標
準的に提供されているatコマンドを利用して指定時間
動作を指定することにより行なえる。より具体的には、
上記したステップ1からステップ5によるプリフェッチ
プロセスのプロセスID番号を使用して次のコマンドを
OSに与える。
【0176】
【表13】
【0177】このコマンドにより、8時00分にプロセ
スを終了させるkill命令を発行するように、OSに対し
て予約をすることができる。
スを終了させるkill命令を発行するように、OSに対し
て予約をすることができる。
【0178】なおネットワークアクセス部の実現方法と
しては、プリフェッチプロセスから直接HTTPプロト
コルを発生すればよい。しかしUNIXで一般に利用されて
いるlynx(参考文献6参照)などのWWWクライア
ントプログラムを利用すると、HTTPプロトコルを発
生するプログラムを新たに製作しなくともHTTPプロ
トコルに従ったプリフェッチ子プロセス操作を実現でき
る。その方法を以下に説明する。
しては、プリフェッチプロセスから直接HTTPプロト
コルを発生すればよい。しかしUNIXで一般に利用されて
いるlynx(参考文献6参照)などのWWWクライア
ントプログラムを利用すると、HTTPプロトコルを発
生するプログラムを新たに製作しなくともHTTPプロ
トコルに従ったプリフェッチ子プロセス操作を実現でき
る。その方法を以下に説明する。
【0179】lynxはUNIX OS の上で動作するプログ
ラムであるので、以下の説明ではUNIXの記法を使用す
る。
ラムであるので、以下の説明ではUNIXの記法を使用す
る。
【0180】lynxでは次のコマンドを指定すれば、
指定URLを読出してtemp_fileというファイルに書込
むことができる。
指定URLを読出してtemp_fileというファイルに書込
むことができる。
【0181】
【表14】
【0182】さらにproxy プロセス経由のアクセスも、
UNIX OS の環境変数http_ proxyを設定することによ
り、lynxから利用可能である。また、proxy プロセ
スがDeleGateのようなproxy ソフトウェアであれば、U
RL表記にproxy を指定することによりproxy 経由のア
クセスが可能である。これについては参考文献12を参
照されたい。
UNIX OS の環境変数http_ proxyを設定することによ
り、lynxから利用可能である。また、proxy プロセ
スがDeleGateのようなproxy ソフトウェアであれば、U
RL表記にproxy を指定することによりproxy 経由のア
クセスが可能である。これについては参考文献12を参
照されたい。
【0183】後者の方式を採用する場合について以下説
明する。proxy プロセスが、ネットワークアドレスがpr
oxyserver であるゲートウェイ計算機のTCP/IPの
10001番のポートを利用しているプロセスであるな
らば、このproxy プロセス経由でサーバ計算機のファイ
ルオブジェクトhttp://www.xxx.co.jp/test/index.html
をアクセスするためには次の表15のコマンドを指定す
ればよい。
明する。proxy プロセスが、ネットワークアドレスがpr
oxyserver であるゲートウェイ計算機のTCP/IPの
10001番のポートを利用しているプロセスであるな
らば、このproxy プロセス経由でサーバ計算機のファイ
ルオブジェクトhttp://www.xxx.co.jp/test/index.html
をアクセスするためには次の表15のコマンドを指定す
ればよい。
【0184】
【表15】
【0185】したがって本願発明を実施する際には、同
様にしてproxy プロセスを第2proxy プロセスのポート
に設定してやればよい。
様にしてproxy プロセスを第2proxy プロセスのポート
に設定してやればよい。
【0186】本願発明ではこのようなファイルオブジェ
クト(URL)のプリフェッチにより、第1のproxy プ
ロセスの管理するキャッシュファイルをn×24/M倍
に増やし、かつ最新状態に保つことを目的としている。
temp_file自体は利用されないので、このファイルは捨
てても構わない。
クト(URL)のプリフェッチにより、第1のproxy プ
ロセスの管理するキャッシュファイルをn×24/M倍
に増やし、かつ最新状態に保つことを目的としている。
temp_file自体は利用されないので、このファイルは捨
てても構わない。
【0187】図3のステップ1では、n日分アクセスロ
グファイルを集めた。このnという数字は、キャッシュ
ファイルの最大容量とファイル転送実績から定めればよ
い。たとえば1GBのキャッシュファイル装置に1日当
り100MBのキャッシュデータが蓄積されるようであ
れば、n=5程度に定めればよい。これにより、プリフ
ェッチは500MB程度の容量となり、キャッシュファ
イル装置が溢れることはない。このように、キャッシュ
ファイルの蓄積の実績を考慮することにより、キャッシ
ュファイルを溢れさせないような数字nを容易に算出す
ることができる。
グファイルを集めた。このnという数字は、キャッシュ
ファイルの最大容量とファイル転送実績から定めればよ
い。たとえば1GBのキャッシュファイル装置に1日当
り100MBのキャッシュデータが蓄積されるようであ
れば、n=5程度に定めればよい。これにより、プリフ
ェッチは500MB程度の容量となり、キャッシュファ
イル装置が溢れることはない。このように、キャッシュ
ファイルの蓄積の実績を考慮することにより、キャッシ
ュファイルを溢れさせないような数字nを容易に算出す
ることができる。
【0188】上述のようなプリフェッチプロセスは、内
部ネットワークから外部ネットワークにクライアント計
算機ユーザのアクセスがあまりない時間帯を利用して起
動することができる。こうすることにより、プリフェッ
チプロセスによるファイルオブジェクトアクセスが、内
部ネットワークユーザによる外部ネットワークへのアク
セスを妨げることがないように運用することができる。
部ネットワークから外部ネットワークにクライアント計
算機ユーザのアクセスがあまりない時間帯を利用して起
動することができる。こうすることにより、プリフェッ
チプロセスによるファイルオブジェクトアクセスが、内
部ネットワークユーザによる外部ネットワークへのアク
セスを妨げることがないように運用することができる。
【0189】上述の第1の実施の形態においては、プリ
フェッチプロセスは、クライアント計算機の利用が少な
くなる21時00分より起動し翌日の8時00分には遅
くとも終了するようにした。この場合、翌日に8時00
分にプリフェッチプロセスがまだ動作しているときに
は、これを強制終了させるようにした。このようにある
時刻からプリフェッチプロセスを開始し、別の時刻には
強制的に終了させることにより、プリフェッチリストが
大きくて定められた時刻までにプリフェッチが終了しな
い場合でも、クライアント計算機の利用が増加し始める
時間帯にはプリフェッチプロセスは強制終了される。こ
れにより、クライアント計算機によるproxy サーバ装置
の利用が妨げられることはない。
フェッチプロセスは、クライアント計算機の利用が少な
くなる21時00分より起動し翌日の8時00分には遅
くとも終了するようにした。この場合、翌日に8時00
分にプリフェッチプロセスがまだ動作しているときに
は、これを強制終了させるようにした。このようにある
時刻からプリフェッチプロセスを開始し、別の時刻には
強制的に終了させることにより、プリフェッチリストが
大きくて定められた時刻までにプリフェッチが終了しな
い場合でも、クライアント計算機の利用が増加し始める
時間帯にはプリフェッチプロセスは強制終了される。こ
れにより、クライアント計算機によるproxy サーバ装置
の利用が妨げられることはない。
【0190】第1の実施の形態では、第1のproxy プロ
セスのキャッシュ有効期限Mは24時間に設定されてい
る。したがって夜間にプリフェッチプロセスにより更新
されたキャッシュデータの内容は、翌朝から翌晩の21
時までは少なくとも有効である。
セスのキャッシュ有効期限Mは24時間に設定されてい
る。したがって夜間にプリフェッチプロセスにより更新
されたキャッシュデータの内容は、翌朝から翌晩の21
時までは少なくとも有効である。
【0191】上述のproxy サーバ装置を使用すると、次
のような効果を得ることができる。キャッシュファイル
の内容は、ユーザにとっては最近の24時間以内に更新
された情報である。その一方でそうした情報が過去n日
の間にアクセス要求があったファイルオブジェクトに対
して保持されている。すなわちキャッシュファイルには
n日分のキャッシュデータが蓄積されている。キャッシ
ュヒット率は、キャッシュされているデータ量が多くな
れば高くなることは既に図13を参照して説明した。キ
ャッシュファイルの蓄積期間を24時間とし、過去n日
分のアクセスログを使用してプリフェッチを行なった場
合、キャッシュヒット率が3倍以上となることが経験的
にわかっている。
のような効果を得ることができる。キャッシュファイル
の内容は、ユーザにとっては最近の24時間以内に更新
された情報である。その一方でそうした情報が過去n日
の間にアクセス要求があったファイルオブジェクトに対
して保持されている。すなわちキャッシュファイルには
n日分のキャッシュデータが蓄積されている。キャッシ
ュヒット率は、キャッシュされているデータ量が多くな
れば高くなることは既に図13を参照して説明した。キ
ャッシュファイルの蓄積期間を24時間とし、過去n日
分のアクセスログを使用してプリフェッチを行なった場
合、キャッシュヒット率が3倍以上となることが経験的
にわかっている。
【0192】また、第1のproxy プロセスのキャッシュ
有効期限M時間よりも小さいかまたは等しい時間間隔で
上述のプリフェッチを行なうようにすれば、キャッシュ
ファイルが常に有効期限内に保たれているのは明らかで
ある。したがってプリフェッチから次のプリフェッチま
での間、プリフェッチの効果が有効に保たれる。
有効期限M時間よりも小さいかまたは等しい時間間隔で
上述のプリフェッチを行なうようにすれば、キャッシュ
ファイルが常に有効期限内に保たれているのは明らかで
ある。したがってプリフェッチから次のプリフェッチま
での間、プリフェッチの効果が有効に保たれる。
【0193】[実施の形態2]次に本願発明のゲートウ
ェイ装置の第2の実施の形態を説明する。この実施の形
態2は、実施の形態1と同様であるが、実施の形態1に
対応するフローチャート(図3参照)のステップ3およ
びステップ4を改良したものである。
ェイ装置の第2の実施の形態を説明する。この実施の形
態2は、実施の形態1と同様であるが、実施の形態1に
対応するフローチャート(図3参照)のステップ3およ
びステップ4を改良したものである。
【0194】実施の形態1では、ステップ4において、
プリフェッチアクセスリストからファイルオブジェクト
名称を1つずつ取出し、第2のproxy プロセスを通じて
外部ネットワークにアクセスしてファイルオブジェクト
を取得している。しかしプリフェッチアクセスリストの
行数が大きくなると、この方法では開始からすべてのア
クセスの終了までに長時間を要する場合があり得る。
プリフェッチアクセスリストからファイルオブジェクト
名称を1つずつ取出し、第2のproxy プロセスを通じて
外部ネットワークにアクセスしてファイルオブジェクト
を取得している。しかしプリフェッチアクセスリストの
行数が大きくなると、この方法では開始からすべてのア
クセスの終了までに長時間を要する場合があり得る。
【0195】ところで、WWWシステムが利用するTC
P/IPプロトコルを使用したネットワークでは、通信
はパケット単位で行なわれる。そのためある計算機が、
外部ネットワーク上の複数個のサーバ計算機と同時通信
を行なうことが見掛け上可能である。そこで、図3に示
すステップ5で起動されるプリフェッチ子プロセスは、
複数個同時に起動し並列に動作させることができる。
P/IPプロトコルを使用したネットワークでは、通信
はパケット単位で行なわれる。そのためある計算機が、
外部ネットワーク上の複数個のサーバ計算機と同時通信
を行なうことが見掛け上可能である。そこで、図3に示
すステップ5で起動されるプリフェッチ子プロセスは、
複数個同時に起動し並列に動作させることができる。
【0196】ファイルオブジェクトアクセスは、外部ネ
ットワーク上のさまざまな経路を通じて行なわれる。経
路の途中に転送速度の小さな経路がありそこがボトルネ
ックとなる場合があり得ることや、外部ネットワーク上
のサーバ計算機自身に大きな作業負荷がかかるためにア
クセス要求に即座に応答することができない場合などが
あり得る。したがって実際のファイルオブジェクトの転
送速度は、proxy サーバ装置と外部ネットワークとを結
ぶ最初の通信路の最大転送速度よりも小さな転送速度と
なるのが通常である。
ットワーク上のさまざまな経路を通じて行なわれる。経
路の途中に転送速度の小さな経路がありそこがボトルネ
ックとなる場合があり得ることや、外部ネットワーク上
のサーバ計算機自身に大きな作業負荷がかかるためにア
クセス要求に即座に応答することができない場合などが
あり得る。したがって実際のファイルオブジェクトの転
送速度は、proxy サーバ装置と外部ネットワークとを結
ぶ最初の通信路の最大転送速度よりも小さな転送速度と
なるのが通常である。
【0197】たとえばproxy サーバ装置と外部ネットワ
ークを結ぶ通信路(図16における通信路27)の最大
転送速度が64kbpsであっても、海外にあるサーバ
計算機からの実際の転送速度がその10分の1以下であ
ることはしばしばである。したがってproxy サーバ装置
と外部ネットワークとを結ぶ最初の通信路の最大転送容
量の範囲内で、同時に複数個のネットワーク接続を実施
することが可能である。すなわち複数個のプリフェッチ
子プロセスを起動して、複数個のファイルオブジェクト
を同時に取得する。これにより通信路の転送容量が10
0%近く使用される状態にすることができる。
ークを結ぶ通信路(図16における通信路27)の最大
転送速度が64kbpsであっても、海外にあるサーバ
計算機からの実際の転送速度がその10分の1以下であ
ることはしばしばである。したがってproxy サーバ装置
と外部ネットワークとを結ぶ最初の通信路の最大転送容
量の範囲内で、同時に複数個のネットワーク接続を実施
することが可能である。すなわち複数個のプリフェッチ
子プロセスを起動して、複数個のファイルオブジェクト
を同時に取得する。これにより通信路の転送容量が10
0%近く使用される状態にすることができる。
【0198】そこで、同時に複数のプリフェッチネット
ワーク接続を実行するプリフェッチ子プロセスの最大並
列実行数を予め定めておく。この数をMAXPROCESS数と
し、以下に述べる各ステップではメモリ(図16のメモ
リ206)内に置かれる定数である。
ワーク接続を実行するプリフェッチ子プロセスの最大並
列実行数を予め定めておく。この数をMAXPROCESS数と
し、以下に述べる各ステップではメモリ(図16のメモ
リ206)内に置かれる定数である。
【0199】以下その具体的な手順について、図4を参
照して説明する。図4に示されるフローチャートにおい
て、ステップ1からステップ4までは、図3に示すステ
ップ1〜ステップ4とそれぞれ同じである。したがって
これらステップについては詳しい説明は繰返さない。図
4では、図3のステップ5に代えてステップ5.1.2
〜5.2.4が設けられている。なお図4に示す動作を
行なうに先立って、メモリ中にprocesses 変数を定義し
ておく。processes 変数は、現在バックグラウンドで走
行しているプリフェッチ子プロセスの数を示す。
照して説明する。図4に示されるフローチャートにおい
て、ステップ1からステップ4までは、図3に示すステ
ップ1〜ステップ4とそれぞれ同じである。したがって
これらステップについては詳しい説明は繰返さない。図
4では、図3のステップ5に代えてステップ5.1.2
〜5.2.4が設けられている。なお図4に示す動作を
行なうに先立って、メモリ中にprocesses 変数を定義し
ておく。processes 変数は、現在バックグラウンドで走
行しているプリフェッチ子プロセスの数を示す。
【0200】まずステップ5.2.1では、URLプリ
フェッチアクセスリストに表われたファイルオブジェク
ト名称の行を1つ取出す。そして第2のproxy プロセス
を使ってこのファイルオブジェクトをアクセスするプリ
フェッチ子プロセスを、バックグラウンドプロセスとし
て1つ起動する。なおUNIX OS においてプロセスは通常
バックグラウンドでも実行させることが可能である。あ
るプロセスをバックグラウンドで実行させるには、コマ
ンドラインに&を付けてそのプロセスを起動すればよ
い。具体的なコマンド例を次に示す。
フェッチアクセスリストに表われたファイルオブジェク
ト名称の行を1つ取出す。そして第2のproxy プロセス
を使ってこのファイルオブジェクトをアクセスするプリ
フェッチ子プロセスを、バックグラウンドプロセスとし
て1つ起動する。なおUNIX OS においてプロセスは通常
バックグラウンドでも実行させることが可能である。あ
るプロセスをバックグラウンドで実行させるには、コマ
ンドラインに&を付けてそのプロセスを起動すればよ
い。具体的なコマンド例を次に示す。
【0201】
【表16】
【0202】続いてステップ5.2.2で、バックグラ
ウンドで走行しているプリフェッチ子プロセスの数を数
え、processes 変数に代入する。
ウンドで走行しているプリフェッチ子プロセスの数を数
え、processes 変数に代入する。
【0203】ステップ5.2.3では、processes 変数
が、予め指定された最大プリフェッチ子プロセス数MAXP
ROCESS未満かどうかについての判定が行なわれる。proc
esses 変数がMAXPROCESS未満であれば制御はステップ4
からステップ5.2.1に戻り、さらにプリフェッチ子
プロセスがバックグラウンドで起動される。
が、予め指定された最大プリフェッチ子プロセス数MAXP
ROCESS未満かどうかについての判定が行なわれる。proc
esses 変数がMAXPROCESS未満であれば制御はステップ4
からステップ5.2.1に戻り、さらにプリフェッチ子
プロセスがバックグラウンドで起動される。
【0204】processes 変数が指定の最大プリフェッチ
子プロセス数MAXPROCESS以上であれば、ステップ5.
2.4で、一定時間動作を休止(sleep )して(たとえ
ば10秒)再びステップ5.2.2に制御を戻す。以
下、ステップ5.2.2〜5.2.4の処理を繰返し行
ない、先行のプリフェッチ子プロセスが終了している場
合には新たなプリフェッチ子プロセスを起動し、全体と
してプリフェッチ子プロセスの数がMAXPROCESS以下とな
るようにする。
子プロセス数MAXPROCESS以上であれば、ステップ5.
2.4で、一定時間動作を休止(sleep )して(たとえ
ば10秒)再びステップ5.2.2に制御を戻す。以
下、ステップ5.2.2〜5.2.4の処理を繰返し行
ない、先行のプリフェッチ子プロセスが終了している場
合には新たなプリフェッチ子プロセスを起動し、全体と
してプリフェッチ子プロセスの数がMAXPROCESS以下とな
るようにする。
【0205】以上のような手順に従って同時処理を進め
ることで、プリフェッチの開始から終了までの時間を短
縮することができる。そのため既に説明した指定終了時
刻までの間に、より多くのファイルオブジェクトをプリ
フェッチすることが可能になる。実施の形態1と比較し
てキャッシュファイルにプリロードすることができるフ
ァイルオブジェクトの量を増やすことができるので、結
果としてキャッシュヒット率を高めることができる。実
験によればMAXPROCESS数として10から20の値をとれ
ば、プリフェッチ時間を十分に短縮することができるこ
とが確認されている。
ることで、プリフェッチの開始から終了までの時間を短
縮することができる。そのため既に説明した指定終了時
刻までの間に、より多くのファイルオブジェクトをプリ
フェッチすることが可能になる。実施の形態1と比較し
てキャッシュファイルにプリロードすることができるフ
ァイルオブジェクトの量を増やすことができるので、結
果としてキャッシュヒット率を高めることができる。実
験によればMAXPROCESS数として10から20の値をとれ
ば、プリフェッチ時間を十分に短縮することができるこ
とが確認されている。
【0206】[実施の形態3]続いて実施の形態3に係
るproxy サーバ装置について説明する。実施の形態3の
装置は、実施の形態2の装置をさらに改良したものであ
る。より具体的には、図4に示すステップ5.2.1か
らステップ5.2.4で行なわれる処理がより高速に行
なわれるように、ステップ3をさらに改良したものであ
る。その処理の流れを図5に示す。
るproxy サーバ装置について説明する。実施の形態3の
装置は、実施の形態2の装置をさらに改良したものであ
る。より具体的には、図4に示すステップ5.2.1か
らステップ5.2.4で行なわれる処理がより高速に行
なわれるように、ステップ3をさらに改良したものであ
る。その処理の流れを図5に示す。
【0207】実施の形態1および2では、プリフェッチ
子プロセスをMAXPROCESS以下の範囲内で同時に起動し、
並列に処理を進めることによりプリフェッチ時間の短縮
を図っていた。
子プロセスをMAXPROCESS以下の範囲内で同時に起動し、
並列に処理を進めることによりプリフェッチ時間の短縮
を図っていた。
【0208】しかし、実施の形態1および2のステップ
1からステップ3の手順で作成されたプリフェッチアク
セスリストの性質として、外部ネットワーク上の同一の
サーバアドレスが連続して表われることがしばしばであ
る。これは、既に説明したようにWWWシステムにおい
て、クライアント計算機側で表示されるサーバ計算機の
1つの情報ページが、テキストと複数個のグラフィック
オブジェクトなど、複数個のファイルオブジェクトから
構成されていることが多いためである。たとえば図2に
示したような情報ページは、テキストとグラフィック混
じりのWWWデータである。このデータを構成するファ
イルオブジェクトは次の7つである。
1からステップ3の手順で作成されたプリフェッチアク
セスリストの性質として、外部ネットワーク上の同一の
サーバアドレスが連続して表われることがしばしばであ
る。これは、既に説明したようにWWWシステムにおい
て、クライアント計算機側で表示されるサーバ計算機の
1つの情報ページが、テキストと複数個のグラフィック
オブジェクトなど、複数個のファイルオブジェクトから
構成されていることが多いためである。たとえば図2に
示したような情報ページは、テキストとグラフィック混
じりのWWWデータである。このデータを構成するファ
イルオブジェクトは次の7つである。
【0209】
【表17】
【0210】このようにある情報ページが複数個のファ
イルオブジェクトで構成されている場合、これらはほぼ
同時に、連続してアクセスされ、したがってプリフェッ
チリストにもこれらのファイルオブジェクト名称が連続
して表われるであろう。すると、これらファイルオブジ
ェクト名称を順に取出し同時に複数個取得するプリフェ
ッチ子プロセスを起動した場合、特定のサーバのみに対
するアクセスが同時に発生することになる。一般にサー
バ計算機は、同時に複数のアクセスに対処可能なように
は構成されているが、1度に多くのアクセスが集中すれ
ば当然その応答は悪くなる。そのためこのようなアクセ
ス方法をとれば、アクセスが集中するサーバ計算機が、
プリフェッチプロセスのボトルネックとなり得る。
イルオブジェクトで構成されている場合、これらはほぼ
同時に、連続してアクセスされ、したがってプリフェッ
チリストにもこれらのファイルオブジェクト名称が連続
して表われるであろう。すると、これらファイルオブジ
ェクト名称を順に取出し同時に複数個取得するプリフェ
ッチ子プロセスを起動した場合、特定のサーバのみに対
するアクセスが同時に発生することになる。一般にサー
バ計算機は、同時に複数のアクセスに対処可能なように
は構成されているが、1度に多くのアクセスが集中すれ
ば当然その応答は悪くなる。そのためこのようなアクセ
ス方法をとれば、アクセスが集中するサーバ計算機が、
プリフェッチプロセスのボトルネックとなり得る。
【0211】そこでこの実施の形態3では、プリフェッ
チアクセスリストを、その元々の順序そのものではな
く、特定のサーバにアクセスが集中しないような順序に
並べ換える。すなわちプリフェッチアクセスリスト中の
ファイル名称をインターリーブ処理させる。この場合、
ファイルオブジェクト名称をランダムに並べ換えれば、
特定のサーバ計算機にアクセスが集中する可能性を最も
低くすることができる。しかし、プリフェッチアクセス
リストは元々出現頻度順で作成されており、かつ出現頻
度順にファイルオブジェクトを取得した方がヒット率の
向上を期待できる。そのためプリフェッチアクセスリス
ト上でのファイルオブジェクト名称の出現順序をある程
度は保つことが望ましい。たとえばプリフェッチの終了
時刻までにすべてのプリフェッチアクセスリストのファ
イルオブジェクトのプリフェッチが完了しない場合もあ
り得るだろう。そうした場合には、出現頻度の高いもの
が確実にプリフェッチを終了しているようにした方がよ
い。
チアクセスリストを、その元々の順序そのものではな
く、特定のサーバにアクセスが集中しないような順序に
並べ換える。すなわちプリフェッチアクセスリスト中の
ファイル名称をインターリーブ処理させる。この場合、
ファイルオブジェクト名称をランダムに並べ換えれば、
特定のサーバ計算機にアクセスが集中する可能性を最も
低くすることができる。しかし、プリフェッチアクセス
リストは元々出現頻度順で作成されており、かつ出現頻
度順にファイルオブジェクトを取得した方がヒット率の
向上を期待できる。そのためプリフェッチアクセスリス
ト上でのファイルオブジェクト名称の出現順序をある程
度は保つことが望ましい。たとえばプリフェッチの終了
時刻までにすべてのプリフェッチアクセスリストのファ
イルオブジェクトのプリフェッチが完了しない場合もあ
り得るだろう。そうした場合には、出現頻度の高いもの
が確実にプリフェッチを終了しているようにした方がよ
い。
【0212】実測によれば、このようなプリフェッチア
クセスリスト中で、同一サーバアドレスが連続する数
は、たかだか数十である。そこで、プリフェッチアクセ
スリストを、この数十という数よりもある程度大きな数
の行、たとえば千行程度のブロックに分割する。そして
それらブロック各々の内部で、ファイルオブジェクト名
称の順番を入替える。そのように各ブロックごとに行が
入替えられたプリフェッチアクセスリストの先頭から実
施の形態2と同じようにファイルオブジェクトのプリフ
ェッチを実行する。こうすることで、各ブロックの中で
は各行の順序が入替えられているので、同一サーバアド
レスが連続して出現する可能性は少なくなる。一方でブ
ロックの順番は保たれているので、最初のプリフェッチ
アクセスリストにあった出現頻度順は、ブロックサイズ
の粒度で保たれている。したがって出現頻度の高いもの
を優先的にプリフェッチしながら、特定のサーバ計算機
のみに同時にアクセス要求が集中するという問題を解決
することができる。
クセスリスト中で、同一サーバアドレスが連続する数
は、たかだか数十である。そこで、プリフェッチアクセ
スリストを、この数十という数よりもある程度大きな数
の行、たとえば千行程度のブロックに分割する。そして
それらブロック各々の内部で、ファイルオブジェクト名
称の順番を入替える。そのように各ブロックごとに行が
入替えられたプリフェッチアクセスリストの先頭から実
施の形態2と同じようにファイルオブジェクトのプリフ
ェッチを実行する。こうすることで、各ブロックの中で
は各行の順序が入替えられているので、同一サーバアド
レスが連続して出現する可能性は少なくなる。一方でブ
ロックの順番は保たれているので、最初のプリフェッチ
アクセスリストにあった出現頻度順は、ブロックサイズ
の粒度で保たれている。したがって出現頻度の高いもの
を優先的にプリフェッチしながら、特定のサーバ計算機
のみに同時にアクセス要求が集中するという問題を解決
することができる。
【0213】以下この実施の形態3での処理手順を図5
を参照して説明する。ブロックサイズをBLOCKSIZE 変数
とする。この変数はメモリ内に置かれる。以下の処理で
は、順番を入替える(インターリーブする)際に、乱数
を使用する。もちろんこれは簡単に実現できる例として
挙げたものであって、他の方法を使用して入替え処理を
行なってもよい。
を参照して説明する。ブロックサイズをBLOCKSIZE 変数
とする。この変数はメモリ内に置かれる。以下の処理で
は、順番を入替える(インターリーブする)際に、乱数
を使用する。もちろんこれは簡単に実現できる例として
挙げたものであって、他の方法を使用して入替え処理を
行なってもよい。
【0214】図5に示される手順は、図4に示される実
施の形態2の手順のステップ3に代えて、ステップ3.
3.1および3.3.3を用いる。他のステップについ
ては実施の形態2と同じであるので、それらについての
詳しい説明はここでは繰返さない。
施の形態2の手順のステップ3に代えて、ステップ3.
3.1および3.3.3を用いる。他のステップについ
ては実施の形態2と同じであるので、それらについての
詳しい説明はここでは繰返さない。
【0215】ステップ3.3.1では、プリフェッチア
クセスリストを、ファイルオブジェクト名称の出現頻度
順に並べ換え、かつ同じファイルオブジェクト名称につ
いては重複しないように1つにまとめる処理を行なう。
この処理は図4のステップ3の処理とほぼ同様である。
クセスリストを、ファイルオブジェクト名称の出現頻度
順に並べ換え、かつ同じファイルオブジェクト名称につ
いては重複しないように1つにまとめる処理を行なう。
この処理は図4のステップ3の処理とほぼ同様である。
【0216】次いでステップ3.3.2では、ファイル
オブジェクト名称をインターリーブ処理して行を入替え
る処理を行なう。より具体的には次の手順に従う。
オブジェクト名称をインターリーブ処理して行を入替え
る処理を行なう。より具体的には次の手順に従う。
【0217】まずプリフェッチアクセスリストのすべて
の行に乱数[i]を付与する(iは行番号を示す。)。
乱数計算の方法としては種々考えられるが、この実施の
形態では乱数は次の式に従って計算する。
の行に乱数[i]を付与する(iは行番号を示す。)。
乱数計算の方法としては種々考えられるが、この実施の
形態では乱数は次の式に従って計算する。
【0218】
【数6】
【0219】ただしrand( )という関数は、2の
32乗の範囲の乱数を生ずる関数であるものとする。こ
の式の第1項は、rand( )という関数で得られた
乱数に対しBLOCKSIZE 変数の剰余をとったものである。
したがってこの第1項は0からBLOCKSIZE −1までの範
囲の乱数(整数)となる。
32乗の範囲の乱数を生ずる関数であるものとする。こ
の式の第1項は、rand( )という関数で得られた
乱数に対しBLOCKSIZE 変数の剰余をとったものである。
したがってこの第1項は0からBLOCKSIZE −1までの範
囲の乱数(整数)となる。
【0220】また上式の第2項は、次のような意味を持
つ。プリフェッチアクセスリストを各々BLOCKSIZE 行を
含むブロックに分割し、各ブロックに対して0から始ま
る整数のブロック番号を付けるものとする。第2項は、
このようにして付けられたブロック番号にBLOCKSIZE を
かけたものと等しい。したがってこれはBLOCKSIZE 数の
整数倍であり、かつ0から始まって増加していく。第2
項はBLOCKSIZE が3であれば0、0、0、3、3、3、
6、6、6、…となる。
つ。プリフェッチアクセスリストを各々BLOCKSIZE 行を
含むブロックに分割し、各ブロックに対して0から始ま
る整数のブロック番号を付けるものとする。第2項は、
このようにして付けられたブロック番号にBLOCKSIZE を
かけたものと等しい。したがってこれはBLOCKSIZE 数の
整数倍であり、かつ0から始まって増加していく。第2
項はBLOCKSIZE が3であれば0、0、0、3、3、3、
6、6、6、…となる。
【0221】このような乱数[i]をプリフェッチアク
セスリストの各行の先頭フィールドに付与する。そして
各行を、第1フィールドの数の小さい順にソートし、さ
らに各行の先頭から乱数[i]を取り除く。こうした処
理によりBLOCKSIZE 行からなるブロックごとに、行がラ
ンダムにインターリーブされたプリフェッチアクセスリ
ストが生成される。
セスリストの各行の先頭フィールドに付与する。そして
各行を、第1フィールドの数の小さい順にソートし、さ
らに各行の先頭から乱数[i]を取り除く。こうした処
理によりBLOCKSIZE 行からなるブロックごとに、行がラ
ンダムにインターリーブされたプリフェッチアクセスリ
ストが生成される。
【0222】上述のようにこのとき、最初のプリフェッ
チアクセスリストにあった出現頻度順は、ブロックサイ
ズの粒度で保たれている。
チアクセスリストにあった出現頻度順は、ブロックサイ
ズの粒度で保たれている。
【0223】以下に、乱数によるプリフェッチアクセス
リスト内の各行のインターリーブの例を具体的に示す。
まずオリジナルのプリフェッチアクセスリストが次のよ
うなものであるとする。
リスト内の各行のインターリーブの例を具体的に示す。
まずオリジナルのプリフェッチアクセスリストが次のよ
うなものであるとする。
【0224】
【表18】
【0225】これをBLOCKSIZE =10として既に述べた式
に従ってそれぞれ第1フィールドに乱数を付与すると次
のようになる。
に従ってそれぞれ第1フィールドに乱数を付与すると次
のようになる。
【0226】
【表19】
【0227】さらにこれを第1フィールドの数字の昇順
にソートすると次のようなリストが得られる。この例で
はBLOCKSIZE が10と小さいため、十分にインターリー
ブされてはいないが、各10行単位の内部で行の順番が
ランダムに入替えられていることがわかる。なおこの表
はインターリーブのための手順を示す一例にすぎないこ
とに注意されたい。
にソートすると次のようなリストが得られる。この例で
はBLOCKSIZE が10と小さいため、十分にインターリー
ブされてはいないが、各10行単位の内部で行の順番が
ランダムに入替えられていることがわかる。なおこの表
はインターリーブのための手順を示す一例にすぎないこ
とに注意されたい。
【0228】
【表20】
【0229】このインターリーブ処理をした後に実施の
形態2と同様にプリフェッチ子プロセスの並列実行を行
なう。同一のサーバ計算機をアドレスとして含むファイ
ルオブジェクトがプリフェッチアクセスリスト中に連続
して表われることが避けられるため、特定のサーバ計算
機へアクセスが集中することが避けられる。その結果各
サーバ計算機に負荷が集中することなく、サーバ計算機
から迅速に必要なファイルオブジェクトをプリフェッチ
することができ、結果としてプリフェッチ処理全体の時
間を短縮化することができる。キャッシュファイルにプ
リフェッチされるキャッシュデータの量を増やすことが
できるので、キャッシュヒット率を高めることができ
る。
形態2と同様にプリフェッチ子プロセスの並列実行を行
なう。同一のサーバ計算機をアドレスとして含むファイ
ルオブジェクトがプリフェッチアクセスリスト中に連続
して表われることが避けられるため、特定のサーバ計算
機へアクセスが集中することが避けられる。その結果各
サーバ計算機に負荷が集中することなく、サーバ計算機
から迅速に必要なファイルオブジェクトをプリフェッチ
することができ、結果としてプリフェッチ処理全体の時
間を短縮化することができる。キャッシュファイルにプ
リフェッチされるキャッシュデータの量を増やすことが
できるので、キャッシュヒット率を高めることができ
る。
【0230】[実施の形態4]続いて実施の形態4のゲ
ートウェイ装置であるproxy サーバ装置について説明す
る。この実施の形態4は、実施の形態3をさらに改良し
たものである。実施の形態3では、プリフェッチ子プロ
セス数としてMAXPROCESS数を最大とするようなプリフェ
ッチ子プロセス数の起動の制御を行なっていた。しかし
こうした処理では、たとえばクライアント計算機からの
ファイルオブジェクトへのアクセス要求が多く発生して
いるときにも上記したMAXPROCESS数だけのプリフェッチ
子プロセス数が起動されてしまうことがあり得、その結
果クライアント計算機によるファイルオブジェクトへの
アクセス要求に対する応答が低下してしまうおそれがあ
る。この実施の形態4は、そうした問題を解決するため
の改良である。
ートウェイ装置であるproxy サーバ装置について説明す
る。この実施の形態4は、実施の形態3をさらに改良し
たものである。実施の形態3では、プリフェッチ子プロ
セス数としてMAXPROCESS数を最大とするようなプリフェ
ッチ子プロセス数の起動の制御を行なっていた。しかし
こうした処理では、たとえばクライアント計算機からの
ファイルオブジェクトへのアクセス要求が多く発生して
いるときにも上記したMAXPROCESS数だけのプリフェッチ
子プロセス数が起動されてしまうことがあり得、その結
果クライアント計算機によるファイルオブジェクトへの
アクセス要求に対する応答が低下してしまうおそれがあ
る。この実施の形態4は、そうした問題を解決するため
の改良である。
【0231】実施の形態4では、クライアント計算機の
ユーザが第1のproxy プロセスを利用して外部ネットワ
ークのサーバ計算機に多数アクセスするような時間帯に
は、プリフェッチ子プロセスが起動される数を少なくす
ることにより、内部ユーザによるネットワーク利用活動
を妨げないようにしている。
ユーザが第1のproxy プロセスを利用して外部ネットワ
ークのサーバ計算機に多数アクセスするような時間帯に
は、プリフェッチ子プロセスが起動される数を少なくす
ることにより、内部ユーザによるネットワーク利用活動
を妨げないようにしている。
【0232】具体的な処理手順を図6に示す。図6のフ
ローチャートは、図5に示すフローチャートのステップ
5.2.1〜5.2.4に代えてステップ5.4.1〜
5.4.4を採用したものであり、動的にプリフェッチ
子プロセスのプロセス数を制御する点に特徴がある。他
のステップは、第1〜第3の実施の形態において説明し
たものとそれぞれ同じであるので、ここではその詳細な
説明は繰返さない。
ローチャートは、図5に示すフローチャートのステップ
5.2.1〜5.2.4に代えてステップ5.4.1〜
5.4.4を採用したものであり、動的にプリフェッチ
子プロセスのプロセス数を制御する点に特徴がある。他
のステップは、第1〜第3の実施の形態において説明し
たものとそれぞれ同じであるので、ここではその詳細な
説明は繰返さない。
【0233】図6を参照して、ステップ5.4.1で、
プリフェッチアクセスリストに現れたファイルオブジェ
クト名称から1行を抽出する。そして第2のproxy プロ
セスを使ってそのファイルオブジェクトにアクセスする
ためのプリフェッチ子プロセスをバックグラウンドプロ
セスとして1つ起動する。
プリフェッチアクセスリストに現れたファイルオブジェ
クト名称から1行を抽出する。そして第2のproxy プロ
セスを使ってそのファイルオブジェクトにアクセスする
ためのプリフェッチ子プロセスをバックグラウンドプロ
セスとして1つ起動する。
【0234】続いてステップ5.4.2で、バックグラ
ウンドで走行しているプリフェッチ子プロセスの数と、
第1のproxy プロセスにより起動されているネットワー
クアクセス中継子プロセスの数を調べ加算して、proces
ses 変数に代入する。
ウンドで走行しているプリフェッチ子プロセスの数と、
第1のproxy プロセスにより起動されているネットワー
クアクセス中継子プロセスの数を調べ加算して、proces
ses 変数に代入する。
【0235】続いてステップ5.4.3で、processes
変数が、予め指定された最大プリフェッチ子プロセス数
MAXPROCESSより小さいか否かについての判定が行なわれ
る。小さければ制御はステップ4に戻り、上述した新た
なプリフェッチ子プロセス起動の処理が行なわれる。
変数が、予め指定された最大プリフェッチ子プロセス数
MAXPROCESSより小さいか否かについての判定が行なわれ
る。小さければ制御はステップ4に戻り、上述した新た
なプリフェッチ子プロセス起動の処理が行なわれる。
【0236】processes 変数が、予め指定されたMAXPRO
CESS以上であれば制御はステップ5.4.3からステッ
プ5.4.4に進み、一定時間(たとえば10秒)休止
してステップ5.4.2に制御を戻す。
CESS以上であれば制御はステップ5.4.3からステッ
プ5.4.4に進み、一定時間(たとえば10秒)休止
してステップ5.4.2に制御を戻す。
【0237】図6に示すような処理手順に従って、この
実施の形態4のproxy サーバ装置は動作する。プリフェ
ッチ子プロセスの個数と、第1のproxy プロセスを利用
している内部ユーザのネットワークアクセスの中継子プ
ロセス数との「合計」が一定となるように、プリフェッ
チ子プロセスが新たに起動されるのを制御する。第1の
proxy プロセスを利用しているユーザによるネットワー
クアクセスの子プロセスがMAXPROCESS数以上であれば、
プリフェッチ子プロセスは新たには起動されず起動待ち
となる。
実施の形態4のproxy サーバ装置は動作する。プリフェ
ッチ子プロセスの個数と、第1のproxy プロセスを利用
している内部ユーザのネットワークアクセスの中継子プ
ロセス数との「合計」が一定となるように、プリフェッ
チ子プロセスが新たに起動されるのを制御する。第1の
proxy プロセスを利用しているユーザによるネットワー
クアクセスの子プロセスがMAXPROCESS数以上であれば、
プリフェッチ子プロセスは新たには起動されず起動待ち
となる。
【0238】内部のユーザが第1のproxy プロセスを多
数利用している時間帯に上述のプリフェッチプロセスを
実行しても、プリフェッチ子プロセスには低い優先権し
か与えられないので、内部ユーザのネットワーク利用活
動を妨げないようにすることができる。プリフェッチプ
ロセスを、内部ユーザの活動時間帯に始動させても、内
部ユーザのネットワーク利用は妨げられない。またプリ
フェッチプロセスが、クライアント計算機のユーザの活
動時間に食い込んでもやはり内部ユーザのネットワーク
利用は妨げられない。
数利用している時間帯に上述のプリフェッチプロセスを
実行しても、プリフェッチ子プロセスには低い優先権し
か与えられないので、内部ユーザのネットワーク利用活
動を妨げないようにすることができる。プリフェッチプ
ロセスを、内部ユーザの活動時間帯に始動させても、内
部ユーザのネットワーク利用は妨げられない。またプリ
フェッチプロセスが、クライアント計算機のユーザの活
動時間に食い込んでもやはり内部ユーザのネットワーク
利用は妨げられない。
【0239】その結果、プリフェッチプロセスの開始か
ら終了までより長時間を使用してプリフェッチを行なう
ことができる。そのため多くのファイルオブジェクトを
プリフェッチすることが可能になり、したがってキャッ
シュデータの量を増やすことができる。上述のキャッシ
ュデータの量とキャッシュヒット率との関係から、結果
としてキャッシュヒット率を高めることができる。
ら終了までより長時間を使用してプリフェッチを行なう
ことができる。そのため多くのファイルオブジェクトを
プリフェッチすることが可能になり、したがってキャッ
シュデータの量を増やすことができる。上述のキャッシ
ュデータの量とキャッシュヒット率との関係から、結果
としてキャッシュヒット率を高めることができる。
【0240】これは、「数1」に示された式を参照し
て、ヒット率を高めるので、平均ファイルオブジェクト
転送速度を増加させるという効果を奏する。別の見方を
すれば、このようにすることにより同じ平均ファイルオ
ブジェクト転送速度を維持しながら、内部ネットワーク
のより多くのユーザの利用を可能にするということがで
きる。
て、ヒット率を高めるので、平均ファイルオブジェクト
転送速度を増加させるという効果を奏する。別の見方を
すれば、このようにすることにより同じ平均ファイルオ
ブジェクト転送速度を維持しながら、内部ネットワーク
のより多くのユーザの利用を可能にするということがで
きる。
【0241】[実施の形態5]次に、実施の形態5のゲ
ートウェイ装置の一例であるproxy サーバ装置について
説明する。既に延べた実施の形態1〜4では、夜間など
内部ユーザが外部ネットワークを利用しない時間帯に、
n日分(=n×24時間=N時間)のプリフェッチを実
行した。キャッシュファイルについては、有効期限をM
時間であるとすると、M時間以上古いキャッシュファイ
ルについては定期的に消去していた。こうした古いキャ
ッシュファイルの消去については上述の実施の形態1〜
4では言及していない。
ートウェイ装置の一例であるproxy サーバ装置について
説明する。既に延べた実施の形態1〜4では、夜間など
内部ユーザが外部ネットワークを利用しない時間帯に、
n日分(=n×24時間=N時間)のプリフェッチを実
行した。キャッシュファイルについては、有効期限をM
時間であるとすると、M時間以上古いキャッシュファイ
ルについては定期的に消去していた。こうした古いキャ
ッシュファイルの消去については上述の実施の形態1〜
4では言及していない。
【0242】UNIX OS であれば、一定時間以上変更のな
いファイルはfindコマンドを利用して消去可能であ
る。下に挙げるのは、毎日一定時刻に起動されるキャッ
シュ消去コマンドの一例である。cache というディレク
トリの下にある、1日以上変更のない古いファイルが、
このキャッシュ消去コマンドにより消去される。
いファイルはfindコマンドを利用して消去可能であ
る。下に挙げるのは、毎日一定時刻に起動されるキャッ
シュ消去コマンドの一例である。cache というディレク
トリの下にある、1日以上変更のない古いファイルが、
このキャッシュ消去コマンドにより消去される。
【0243】
【表21】
【0244】ところで、実施の形態1〜4のproxy サー
バ装置では、午後9時から翌朝午前8時までの間にプリ
フェッチを実施していた。これにより夜間のトラフィッ
クが、昼間の内部ユーザによるアクセスのn倍となる。
バ装置では、午後9時から翌朝午前8時までの間にプリ
フェッチを実施していた。これにより夜間のトラフィッ
クが、昼間の内部ユーザによるアクセスのn倍となる。
【0245】実際には、キャッシュが有効期限を過ぎて
いる場合には、DeleGateのような一般的に使用されてい
るproxy プロセスにおいては、HTTPに従って次のよ
うなアルゴリズムが取られる。
いる場合には、DeleGateのような一般的に使用されてい
るproxy プロセスにおいては、HTTPに従って次のよ
うなアルゴリズムが取られる。
【0246】(1) 外部ネットワークのサーバ計算機
に存在するファイルオブジェクトの取得要求(GET命
令)を出すときに、GET命令にキャッシュファイルの
時刻Tcache を付けて要求を出す。
に存在するファイルオブジェクトの取得要求(GET命
令)を出すときに、GET命令にキャッシュファイルの
時刻Tcache を付けて要求を出す。
【0247】(2) この要求を受けたサーバ計算機
は、その持っている対応するファイルオブジェクトの最
終変更時刻Torg とTcache とを比較する。
は、その持っている対応するファイルオブジェクトの最
終変更時刻Torg とTcache とを比較する。
【0248】(3) そしてTorg >Tcache のとき、
すなわちファイルオブジェクトの最終変更時刻よりもキ
ャッシュファイルの時刻のほうが古いときのみ、サーバ
計算機は当該ファイルオブジェクトをproxy サーバ装置
に対して転送する。すなわち、前回キャッシュされた時
刻以降に元のファイルオブジェクトが変更されている場
合のみ当該ファイルオブジェクトの転送が実行される。
すなわちファイルオブジェクトの最終変更時刻よりもキ
ャッシュファイルの時刻のほうが古いときのみ、サーバ
計算機は当該ファイルオブジェクトをproxy サーバ装置
に対して転送する。すなわち、前回キャッシュされた時
刻以降に元のファイルオブジェクトが変更されている場
合のみ当該ファイルオブジェクトの転送が実行される。
【0249】(4) Torg >Tcache ではない場合に
は、サーバ計算機は当該キャッシュファイルを使えとい
う応答コードをproxy サーバ装置に返答する。
は、サーバ計算機は当該キャッシュファイルを使えとい
う応答コードをproxy サーバ装置に返答する。
【0250】上述のアルゴリズムによれば、実際には元
のデータのうち変更されているものだけがサーバ計算機
からproxy サーバ装置に転送される。変更されていない
場合には、キャッシュファイルの当該ファイルオブジェ
クトの最終変更時刻が、そうした確認がされた時刻に更
新される。
のデータのうち変更されているものだけがサーバ計算機
からproxy サーバ装置に転送される。変更されていない
場合には、キャッシュファイルの当該ファイルオブジェ
クトの最終変更時刻が、そうした確認がされた時刻に更
新される。
【0251】実施の形態5では、proxy プロセスのこの
ようなアルゴリズムを利用することにより、ネットワー
ク上のデータ転送量を減少させる。そのためこの実施の
形態5のproxy サーバ装置では、キャッシュファイル
(有効期限M時間)のキャッシュデータのうちで、M時
間以上古いものを定期的に必ず消去してしまうのではな
く、M<N≦Eであるような時間Eを定め、これ以上古
いファイルオブジェクトのみを定期的に消去するように
している。これにより有効期限の過ぎたキャッシュファ
イルのファイルオブジェクトであっても、直ちには消去
されず、E時間内は有効に活用することができる可能性
がある。たとえばサーバ計算機に対するプリフェッチを
行なった際に、元データが変更されていないことが確認
されたデータは、改めてサーバ計算機からproxy サーバ
装置に転送する必要はない。キャッシュされているデー
タと元データとは一致しているためである。このとき、
キャッシュファイルへの書込時刻のみが更新される。結
果としてこのデータについては、プリフェッチが行なわ
れた時刻にサーバ計算機から新たに転送されたのと同じ
効果を得ることができ、プリフェッチ時のネットワーク
のデータ転送量を減少させることができる。
ようなアルゴリズムを利用することにより、ネットワー
ク上のデータ転送量を減少させる。そのためこの実施の
形態5のproxy サーバ装置では、キャッシュファイル
(有効期限M時間)のキャッシュデータのうちで、M時
間以上古いものを定期的に必ず消去してしまうのではな
く、M<N≦Eであるような時間Eを定め、これ以上古
いファイルオブジェクトのみを定期的に消去するように
している。これにより有効期限の過ぎたキャッシュファ
イルのファイルオブジェクトであっても、直ちには消去
されず、E時間内は有効に活用することができる可能性
がある。たとえばサーバ計算機に対するプリフェッチを
行なった際に、元データが変更されていないことが確認
されたデータは、改めてサーバ計算機からproxy サーバ
装置に転送する必要はない。キャッシュされているデー
タと元データとは一致しているためである。このとき、
キャッシュファイルへの書込時刻のみが更新される。結
果としてこのデータについては、プリフェッチが行なわ
れた時刻にサーバ計算機から新たに転送されたのと同じ
効果を得ることができ、プリフェッチ時のネットワーク
のデータ転送量を減少させることができる。
【0252】ここで、N=Eとすると管理が簡単であ
る。時間Eとしては、キャッシュファイルが溢れない程
度であってかつなるべく大きな値を採用すればよい。N
=Eとして、Nを主体に考えてこれを大きく取る場合を
考える。Nを大きく取れば、既に延べたようにプリフェ
ッチされるべきファイルオブジェクトが増えるので、キ
ャッシュファイルの蓄積量は、増大するはずである。し
かし実際にはプリフェッチは一定時刻に強制終了される
ので、実施の形態1〜4のようにプリフェッチにおいて
必ずデータ転送を行なっても、キャッシュファイルの蓄
積量はNとともに増大するわけではない。ところがこの
実施の形態5の装置では、変更されていないファイルオ
ブジェクトについてはデータ転送を行なうことなく、か
つプリフェッチを行なったのと同じ効果を得ることがで
きる。したがって、キャッシュファイルの蓄積量は、実
は時間Eの大小に影響される。
る。時間Eとしては、キャッシュファイルが溢れない程
度であってかつなるべく大きな値を採用すればよい。N
=Eとして、Nを主体に考えてこれを大きく取る場合を
考える。Nを大きく取れば、既に延べたようにプリフェ
ッチされるべきファイルオブジェクトが増えるので、キ
ャッシュファイルの蓄積量は、増大するはずである。し
かし実際にはプリフェッチは一定時刻に強制終了される
ので、実施の形態1〜4のようにプリフェッチにおいて
必ずデータ転送を行なっても、キャッシュファイルの蓄
積量はNとともに増大するわけではない。ところがこの
実施の形態5の装置では、変更されていないファイルオ
ブジェクトについてはデータ転送を行なうことなく、か
つプリフェッチを行なったのと同じ効果を得ることがで
きる。したがって、キャッシュファイルの蓄積量は、実
は時間Eの大小に影響される。
【0253】実際の測定結果によれば、E/24時間=
n=7日のときに、全プリフェッチデータのうち6%程
度しかファイルオブジェクトのキャッシュへの再ロード
を引起こしていない。キャッシュファイルの最終変更時
刻情報のついた「条件付きGET命令」による最終変更
時刻情報の転送量は、実際のファイルデータの転送と比
較して量的に無視し得るほど小さい。そのためこの実施
の形態5に従ったプリフェッチにより増加するトラフィ
ックは、サーバ計算機のファイルオブジェクトのうち、
キャッシュに格納された時刻以後に更新されたものにつ
いてのデータ転送に対するものだけである。実測例によ
ればプリフェッチによるトラフィックの増加は7日分×
0.06=0.42日分である。
n=7日のときに、全プリフェッチデータのうち6%程
度しかファイルオブジェクトのキャッシュへの再ロード
を引起こしていない。キャッシュファイルの最終変更時
刻情報のついた「条件付きGET命令」による最終変更
時刻情報の転送量は、実際のファイルデータの転送と比
較して量的に無視し得るほど小さい。そのためこの実施
の形態5に従ったプリフェッチにより増加するトラフィ
ックは、サーバ計算機のファイルオブジェクトのうち、
キャッシュに格納された時刻以後に更新されたものにつ
いてのデータ転送に対するものだけである。実測例によ
ればプリフェッチによるトラフィックの増加は7日分×
0.06=0.42日分である。
【0254】この実施の形態5のproxy サーバ装置で行
なわれるプリフェッチ処理によるキャッシュのヒット率
向上により、昼間のユーザの活動による外部ネットワー
クから内部ネットワークへのファイルオブジェクト転送
量は、約20%減少していることが観察されている。し
たがって上述したプリフェッチによるトラフィックの増
加を考慮しても、1日のトータルで見れば、プリフェッ
チによる外部ネットワークからのデータ流量は量的に著
しく増えているわけではない。したがって外部ネットワ
ークのトラフィックをいたずらに増やすことなく、キャ
ッシュファイルの内容を新鮮に保つことができるという
利点が得られる。
なわれるプリフェッチ処理によるキャッシュのヒット率
向上により、昼間のユーザの活動による外部ネットワー
クから内部ネットワークへのファイルオブジェクト転送
量は、約20%減少していることが観察されている。し
たがって上述したプリフェッチによるトラフィックの増
加を考慮しても、1日のトータルで見れば、プリフェッ
チによる外部ネットワークからのデータ流量は量的に著
しく増えているわけではない。したがって外部ネットワ
ークのトラフィックをいたずらに増やすことなく、キャ
ッシュファイルの内容を新鮮に保つことができるという
利点が得られる。
【0255】[実施の形態6]ところで、以上の実施の
形態でのアクセスログの例を数4に示してある。数4に
示したアクセスログは、第1のproxy プロセスとしてDe
leGateソフトウェアを使用する場合のアクセスログ例で
あるが、これらのうち既に説明したもの以外の部分につ
いてここで説明する。これらは、サーバ計算機の状態コ
ード、ファイルオブジェクトのデータサイズ、キャッシ
ュ状況などである。
形態でのアクセスログの例を数4に示してある。数4に
示したアクセスログは、第1のproxy プロセスとしてDe
leGateソフトウェアを使用する場合のアクセスログ例で
あるが、これらのうち既に説明したもの以外の部分につ
いてここで説明する。これらは、サーバ計算機の状態コ
ード、ファイルオブジェクトのデータサイズ、キャッシ
ュ状況などである。
【0256】サーバ計算機の状態コードとは、サーバ計
算機がクライアント計算機からの要求に対して発する3
桁の数字で表わされる応答である。状態コードの最初の
数字は、状態コードのカテゴリを示しており、1、2、
3、4、5が使用される。200番代の状態コードはク
ライアント計算機の要求を問題なく理解したことを示
す。たとえば状態コードが200の場合には、要求が正
常に受付けられた旨を示す。300番代の状態コードは
サーバ計算機が再転送の必要があることを示し、400
番代の状態コードはクライアント計算機のエラーを示
し、500番代の状態コードはサーバ計算機のエラーを
示している。また、100番代の状態コードは将来のた
めに予約されており、現在は使用されていない。
算機がクライアント計算機からの要求に対して発する3
桁の数字で表わされる応答である。状態コードの最初の
数字は、状態コードのカテゴリを示しており、1、2、
3、4、5が使用される。200番代の状態コードはク
ライアント計算機の要求を問題なく理解したことを示
す。たとえば状態コードが200の場合には、要求が正
常に受付けられた旨を示す。300番代の状態コードは
サーバ計算機が再転送の必要があることを示し、400
番代の状態コードはクライアント計算機のエラーを示
し、500番代の状態コードはサーバ計算機のエラーを
示している。また、100番代の状態コードは将来のた
めに予約されており、現在は使用されていない。
【0257】ファイルオブジェクトのデータサイズと
は、ファイルオブジェクトのサイズをバイト数で示して
いる。キャッシュ状況とは、サーバ側データとキャッシ
ュ内容との関係を示すものである。キャッシュ状況が
「H」ならキャッシュヒット、「N」ならキャッシュが
存在せずに新たにキャッシュファイルにファイルオブジ
ェクトが書込まれたこと、「O」であればサーバ側デー
タがキャッシュ内容よりも新しいということを示す。
は、ファイルオブジェクトのサイズをバイト数で示して
いる。キャッシュ状況とは、サーバ側データとキャッシ
ュ内容との関係を示すものである。キャッシュ状況が
「H」ならキャッシュヒット、「N」ならキャッシュが
存在せずに新たにキャッシュファイルにファイルオブジ
ェクトが書込まれたこと、「O」であればサーバ側デー
タがキャッシュ内容よりも新しいということを示す。
【0258】本発明の実施の形態6のゲートウェイ装置
では、このようなファイルオブジェクト転送記録を利用
する。
では、このようなファイルオブジェクト転送記録を利用
する。
【0259】実施の形態6のゲートウェイ装置は、実施
の形態1〜5をさらに改善したものである。既に述べた
本発明のゲートウェイ装置では、利用される際にはクラ
イアント計算機による利用が少ない時間帯でのプリフェ
ッチの実行を行なうことが想定されている。しかしそれ
ら時間は夜間など、限られた時間に限定される。そのた
めプリフェッチできるファイルオブジェクトの量には制
限があり、プリフェッチ対象のファイルオブジェクトを
すべてプリフェッチすることができないことがある、と
いう問題点がある。実施の形態6のゲートウェイ装置は
こうした問題を解決すべく、短い時間に効率良くファイ
ルオブジェクトをプリフェッチすることを目的としてい
る。
の形態1〜5をさらに改善したものである。既に述べた
本発明のゲートウェイ装置では、利用される際にはクラ
イアント計算機による利用が少ない時間帯でのプリフェ
ッチの実行を行なうことが想定されている。しかしそれ
ら時間は夜間など、限られた時間に限定される。そのた
めプリフェッチできるファイルオブジェクトの量には制
限があり、プリフェッチ対象のファイルオブジェクトを
すべてプリフェッチすることができないことがある、と
いう問題点がある。実施の形態6のゲートウェイ装置は
こうした問題を解決すべく、短い時間に効率良くファイ
ルオブジェクトをプリフェッチすることを目的としてい
る。
【0260】図7に、本願発明の実施の形態6に係るゲ
ートウェイ装置の一例であるproxyサーバ装置54の概
略のブロック図を、proxy サーバ装置54が接続される
ネットワーク25および内部ネットワーク23とともに
示す。図7において、図1に示すproxy サーバ装置53
と同一の部品には同一の参照符号および名称を付してい
る。それらの機能も同一である。したがって、ここでは
それらについての詳しい説明は繰返さない。
ートウェイ装置の一例であるproxyサーバ装置54の概
略のブロック図を、proxy サーバ装置54が接続される
ネットワーク25および内部ネットワーク23とともに
示す。図7において、図1に示すproxy サーバ装置53
と同一の部品には同一の参照符号および名称を付してい
る。それらの機能も同一である。したがって、ここでは
それらについての詳しい説明は繰返さない。
【0261】図7に示されるproxy サーバ装置54が図
1に示されるproxy サーバ装置53と異なるのは、第2
のproxy プロセス34が、アクセスログ39にプリフェ
ッチの伝送記録を書込むこと(40)と、アクセスリス
ト30から読出したファイルオブジェクトに対して第2
のproxy プロセス34によるプリフェッチを行なわせる
点においては図1に示されるプリフェッチプロセス36
と同様であるが、この新たに設けられたアクセスログ3
9の内容を参照し、アクセスログに含まれるファイルの
変更状況を表わす情報に従って、前回のプリフェッチ時
に変更が検出されたファイルオブジェクトをアクセスリ
スト30からのファイルオブジェクトに優先してプリフ
ェッチするように第2のproxy プロセス34を制御する
ためのプリフェッチプロセス41を含んでいることであ
る。
1に示されるproxy サーバ装置53と異なるのは、第2
のproxy プロセス34が、アクセスログ39にプリフェ
ッチの伝送記録を書込むこと(40)と、アクセスリス
ト30から読出したファイルオブジェクトに対して第2
のproxy プロセス34によるプリフェッチを行なわせる
点においては図1に示されるプリフェッチプロセス36
と同様であるが、この新たに設けられたアクセスログ3
9の内容を参照し、アクセスログに含まれるファイルの
変更状況を表わす情報に従って、前回のプリフェッチ時
に変更が検出されたファイルオブジェクトをアクセスリ
スト30からのファイルオブジェクトに優先してプリフ
ェッチするように第2のproxy プロセス34を制御する
ためのプリフェッチプロセス41を含んでいることであ
る。
【0262】第1のproxy プロセス14、第2のproxy
プロセス34およびプリフェッチプロセス41がいずれ
もメモリ中に置かれ、CPUによって処理されるのは実
施の形態1の装置と同様である。
プロセス34およびプリフェッチプロセス41がいずれ
もメモリ中に置かれ、CPUによって処理されるのは実
施の形態1の装置と同様である。
【0263】このproxy サーバ装置54では、第2のpr
oxy プロセス34は、ファイルオブジェクトのプリフェ
ッチの結果のアクセスログ39を記録する。プリフェッ
チプロセス41は、このアクセスログ39を走査し、前
回のプリフェッチの結果、プリフェッチされたファイル
オブジェクトが、その前にプリフェッチされた時点以後
に更新されていたものの名称を抽出し、変更検出リスト
を作成する。変更検出リストを、名称順、出現頻度順に
並べることにより同一名称のものを取除いた上で、アク
セスリスト30から抽出されたプリフェッチリストの前
部にマージする。そしてこのマージされたプリフェッチ
リストに従って第2のproxy プロセス34のプリフェッ
チプロセスを実行させる。
oxy プロセス34は、ファイルオブジェクトのプリフェ
ッチの結果のアクセスログ39を記録する。プリフェッ
チプロセス41は、このアクセスログ39を走査し、前
回のプリフェッチの結果、プリフェッチされたファイル
オブジェクトが、その前にプリフェッチされた時点以後
に更新されていたものの名称を抽出し、変更検出リスト
を作成する。変更検出リストを、名称順、出現頻度順に
並べることにより同一名称のものを取除いた上で、アク
セスリスト30から抽出されたプリフェッチリストの前
部にマージする。そしてこのマージされたプリフェッチ
リストに従って第2のproxy プロセス34のプリフェッ
チプロセスを実行させる。
【0264】前回のプリフェッチ時に、その前のプリフ
ェッチ以後変更されていたファイルオブジェクトは、以
後も比較的頻繁に変更される可能性が高い、ということ
ができる。したがって上述のように作成されたプリフェ
ッチリストは、変更の可能性の高いファイルオブジェク
トが前部に置かれたものである。そのためこれらは、規
定時間のうちでも最初の方でプリフェッチされる。変更
の可能性の低いものは、これらの後にプリフェッチされ
ることになるが、変更の可能性が低いので、既にフェッ
チされているデータで十分である可能性が高い。そのた
め限られた時間内に、変更可能性の高いファイルオブジ
ェクトを優先的にプリフェッチすることができ、キャッ
シュファイル16の内容を新鮮に保つことができる。
ェッチ以後変更されていたファイルオブジェクトは、以
後も比較的頻繁に変更される可能性が高い、ということ
ができる。したがって上述のように作成されたプリフェ
ッチリストは、変更の可能性の高いファイルオブジェク
トが前部に置かれたものである。そのためこれらは、規
定時間のうちでも最初の方でプリフェッチされる。変更
の可能性の低いものは、これらの後にプリフェッチされ
ることになるが、変更の可能性が低いので、既にフェッ
チされているデータで十分である可能性が高い。そのた
め限られた時間内に、変更可能性の高いファイルオブジ
ェクトを優先的にプリフェッチすることができ、キャッ
シュファイル16の内容を新鮮に保つことができる。
【0265】以下、プリフェッチプロセス41の動作を
詳しく述べるが、その概略についてまとめておくと次の
ようになる。
詳しく述べるが、その概略についてまとめておくと次の
ようになる。
【0266】(1) 第2のproxy プロセス34のアク
セスログ39から、過去の一定の日数分のログを集め
る。サーバ計算機側のファイルオブジェクトが、前回の
プリフェッチの結果その前のプリフェッチ以後変更され
ていたという情報を持っているファイルオブジェクトの
リストを、変更検出リストとして作成する。これらは、
前回のプリフェッチの結果、キャッシュファイルに書込
まれたファイルオブジェクトのリストでもある。
セスログ39から、過去の一定の日数分のログを集め
る。サーバ計算機側のファイルオブジェクトが、前回の
プリフェッチの結果その前のプリフェッチ以後変更され
ていたという情報を持っているファイルオブジェクトの
リストを、変更検出リストとして作成する。これらは、
前回のプリフェッチの結果、キャッシュファイルに書込
まれたファイルオブジェクトのリストでもある。
【0267】(2) 第1のproxy プロセスのアクセス
ログファイル30をもとに、過去の一定期間のファイル
オブジェクト名称を抽出し、プリフェッチアクセスリス
トを作成する。このプリフェッチアクセスリスト自体は
実施の形態1におけるものと同様である。
ログファイル30をもとに、過去の一定期間のファイル
オブジェクト名称を抽出し、プリフェッチアクセスリス
トを作成する。このプリフェッチアクセスリスト自体は
実施の形態1におけるものと同様である。
【0268】(3) (2)で作成されたプリフェッチ
アクセスリストの先頭部分に、(1)で作成された変更
検出リストをマージする。
アクセスリストの先頭部分に、(1)で作成された変更
検出リストをマージする。
【0269】(4) このようにして作成されたプリフ
ェッチアクセスリストに基づき、第2のproxy プロセス
34を利用して、外部ネットワークのサーバ計算機か
ら、プリフェッチアクセスリストにあるファイルオブジ
ェクトをプリフェッチする。
ェッチアクセスリストに基づき、第2のproxy プロセス
34を利用して、外部ネットワークのサーバ計算機か
ら、プリフェッチアクセスリストにあるファイルオブジ
ェクトをプリフェッチする。
【0270】(5) これによりキャッシュファイル1
6内に、第2のproxy プロセス34によってファイルオ
ブジェクトが書込まれ、最新に維持される。このとき第
2のproxy プロセス34は、アクセス結果をアクセスロ
グ39に書込む。
6内に、第2のproxy プロセス34によってファイルオ
ブジェクトが書込まれ、最新に維持される。このとき第
2のproxy プロセス34は、アクセス結果をアクセスロ
グ39に書込む。
【0271】図8および図9を参照して、このproxy サ
ーバ装置54の動作をより詳細に説明する。なお図8お
よび図9に示されるフローチャートの各ステップをたと
えば「step1」、「step5」などと記載することにす
る。
ーバ装置54の動作をより詳細に説明する。なお図8お
よび図9に示されるフローチャートの各ステップをたと
えば「step1」、「step5」などと記載することにす
る。
【0272】step1 第2のproxy プロセスのアクセスログファイルを、最近
のP日分収集する。なおアクセスログファイルは、各日
別に別々のファイルとして作成されるものとする。この
ログファイルはプリフェッチによるアクセスログであ
る。したがって、プリフェッチ時にサーバ計算機のファ
イルオブジェクトにアクセスした結果に従って、ファイ
ルオブジェクトが更新されたかどうかという情報を有し
ている。なお発明者の経験では、Pは2程度で十分であ
る。
のP日分収集する。なおアクセスログファイルは、各日
別に別々のファイルとして作成されるものとする。この
ログファイルはプリフェッチによるアクセスログであ
る。したがって、プリフェッチ時にサーバ計算機のファ
イルオブジェクトにアクセスした結果に従って、ファイ
ルオブジェクトが更新されたかどうかという情報を有し
ている。なお発明者の経験では、Pは2程度で十分であ
る。
【0273】第2のproxy プロセスのアクセスログファ
イル名称は、毎日名称が変わるように第2のproxy プロ
セスにより設定することができる。たとえばログファイ
ル名称の末尾に日付が入るようにすることができる。そ
の場合ファイル名称をたとえば"/usr/local/etc/delega
ted/10000.http. 日" という名称にすることができる。
例として7月1日から10日までのログファイルの名称
を示すと次のようになる。
イル名称は、毎日名称が変わるように第2のproxy プロ
セスにより設定することができる。たとえばログファイ
ル名称の末尾に日付が入るようにすることができる。そ
の場合ファイル名称をたとえば"/usr/local/etc/delega
ted/10000.http. 日" という名称にすることができる。
例として7月1日から10日までのログファイルの名称
を示すと次のようになる。
【0274】
【表22】
【0275】最新のログファイルから順番に並べるため
に、UNIX OS の下では、/bin/ls コマンドを「-t」オプ
ションで起動する。具体的には次のとおりである。
に、UNIX OS の下では、/bin/ls コマンドを「-t」オプ
ションで起動する。具体的には次のとおりである。
【0276】
【表23】
【0277】これにより次の結果を得ることができる。
【0278】
【表24】
【0279】既に述べたようにP=2で十分であるか
ら、このようにして並べ変えられたファイルリストから
最近の2日分のログファイル名称を抽出する。そのため
には、UNIX OS に標準的に搭載されている/usr/ucb/hea
d コマンドを用いる。headコマンドは標準入力から先頭
の指定行数を標準出力に出力するので、”|”を使い、
ls -t の標準出力をheadコマンドの標準入力とすればよ
い。そうした標準出力の接続を行なったコマンドを次の
表25に示す。
ら、このようにして並べ変えられたファイルリストから
最近の2日分のログファイル名称を抽出する。そのため
には、UNIX OS に標準的に搭載されている/usr/ucb/hea
d コマンドを用いる。headコマンドは標準入力から先頭
の指定行数を標準出力に出力するので、”|”を使い、
ls -t の標準出力をheadコマンドの標準入力とすればよ
い。そうした標準出力の接続を行なったコマンドを次の
表25に示す。
【0280】
【表25】
【0281】上のコマンドを実行すると次の結果が得ら
れる。
れる。
【0282】
【表26】
【0283】step2 ここで、step1で収集した第2のproxy プロセスのアク
セスログファイルを1つのファイル"obsoletelist.txt"
にまとめる。なおこの名称は一例にすぎず、運用に応じ
て適当に定めることができる。
セスログファイルを1つのファイル"obsoletelist.txt"
にまとめる。なおこの名称は一例にすぎず、運用に応じ
て適当に定めることができる。
【0284】このように"obsoletelist.txt"というファ
イルにアクセスログファイルをまとめるとき、ファイル
オブジェクトがproxy サーバ装置54を介してユーザに
中継された時刻と、プリフェッチを行なう時刻との間隔
に応じた重み付けを加える。すなわち、最新のアクセス
ログファイルに、古いアクセスログファイルよりも大き
な重み付けを加える。たとえば、単純にログファイルの
日付に注目して次のようにすることができる。表25に
示したコマンドの実行の結果得られる出力は、日付の新
しいログファイルから順番に並んでいる。そのためUNIX
OS に標準的に搭載されているcat コマンドを利用して
次のように"obsoletelist.txt"ファイルを作成すること
ができる。
イルにアクセスログファイルをまとめるとき、ファイル
オブジェクトがproxy サーバ装置54を介してユーザに
中継された時刻と、プリフェッチを行なう時刻との間隔
に応じた重み付けを加える。すなわち、最新のアクセス
ログファイルに、古いアクセスログファイルよりも大き
な重み付けを加える。たとえば、単純にログファイルの
日付に注目して次のようにすることができる。表25に
示したコマンドの実行の結果得られる出力は、日付の新
しいログファイルから順番に並んでいる。そのためUNIX
OS に標準的に搭載されているcat コマンドを利用して
次のように"obsoletelist.txt"ファイルを作成すること
ができる。
【0285】
【表27】
【0286】表27のようにcat コマンドを利用するこ
とにより、プリフェッチを行なう当日に残されたアクセ
スログは2回分とカウントされるのに対して、前日分の
アクセスログは1回分とカウントされる。したがって最
近アクセスされたファイルオブジェクトの出現頻度に、
より大きな重み付けが与えられたアクセスログリストが
残される。
とにより、プリフェッチを行なう当日に残されたアクセ
スログは2回分とカウントされるのに対して、前日分の
アクセスログは1回分とカウントされる。したがって最
近アクセスされたファイルオブジェクトの出現頻度に、
より大きな重み付けが与えられたアクセスログリストが
残される。
【0287】step3 上述のstep2で出力されたファイル"obsoletelist.txt"
の各行は、過去のプリフェッチによるアクセスファイル
オブジェクトの記録である。そこで、以下のような条件
に従ったファイルオブジェクト名称を含むアクセスログ
を選択する。
の各行は、過去のプリフェッチによるアクセスファイル
オブジェクトの記録である。そこで、以下のような条件
に従ったファイルオブジェクト名称を含むアクセスログ
を選択する。
【0288】・httpコマンド文字列がファイルオブジェ
クトリード要求(GET )であり、かつ ・ファイルオブジェクト名称のプロトコル部分がhttpで
あるもの ・特定の文字列パターンにマッチするものは除外 ・ファイルオブジェクト名称がプリフェッチに適さない
ものを除外 ・ファイルオブジェクトコードのデータサイズが巨大な
ものを除外 ・サーバ計算機の状態コードが特定のものを除外 ・ファイルオブジェクトのアクセスの結果、キャッシュ
が更新されたものをプリフェッチ 以上の条件を使ってファイルオブジェクトを抽出する。
このようにして抽出されたリストは、前回のそのファイ
ルオブジェクトのアクセスの結果キャッシュが更新され
たもののみを含むから、これをファイルオブジェクトの
変更検出リストと呼ぶことができる。この変更検出リス
トに対して、まず出現頻度順のソートを行なった上で、
同一名称のファイルオブジェクトをまとめる。またファ
イルオブジェクト名称のフィールドだけを取出して、プ
リフェッチすべきファイルオブジェクト名称からなるプ
リフェッチアクセスリストを作成する。
クトリード要求(GET )であり、かつ ・ファイルオブジェクト名称のプロトコル部分がhttpで
あるもの ・特定の文字列パターンにマッチするものは除外 ・ファイルオブジェクト名称がプリフェッチに適さない
ものを除外 ・ファイルオブジェクトコードのデータサイズが巨大な
ものを除外 ・サーバ計算機の状態コードが特定のものを除外 ・ファイルオブジェクトのアクセスの結果、キャッシュ
が更新されたものをプリフェッチ 以上の条件を使ってファイルオブジェクトを抽出する。
このようにして抽出されたリストは、前回のそのファイ
ルオブジェクトのアクセスの結果キャッシュが更新され
たもののみを含むから、これをファイルオブジェクトの
変更検出リストと呼ぶことができる。この変更検出リス
トに対して、まず出現頻度順のソートを行なった上で、
同一名称のファイルオブジェクトをまとめる。またファ
イルオブジェクト名称のフィールドだけを取出して、プ
リフェッチすべきファイルオブジェクト名称からなるプ
リフェッチアクセスリストを作成する。
【0289】プリフェッチに適さないと考えられるファ
イルオブジェクト名称として、URL中に”? ”を含むも
のがある。”? ”を含むURL 表記は、クライアントユー
ザが文字列を手操作により入力してサーバ計算機に対し
て渡す場合などに使われる。そのためこのURL 表記を含
む名称のファイルオブジェクトをプリフェッチすると、
ユーザに代わって機械が勝手に文字を入力したことにな
ってしまうので、有害である。
イルオブジェクト名称として、URL中に”? ”を含むも
のがある。”? ”を含むURL 表記は、クライアントユー
ザが文字列を手操作により入力してサーバ計算機に対し
て渡す場合などに使われる。そのためこのURL 表記を含
む名称のファイルオブジェクトをプリフェッチすると、
ユーザに代わって機械が勝手に文字を入力したことにな
ってしまうので、有害である。
【0290】このようなファイルオブジェクト名称の抽
出作業は、UNIX OS で標準で提供されている次のような
コマンド部すなわち
出作業は、UNIX OS で標準で提供されている次のような
コマンド部すなわち
【0291】
【表28】
【0292】および、C言語などを用いて記述したプロ
グラム
グラム
【0293】
【表29】
【0294】などを使って行なうことができる。なお表
28および表29において、左側にはコマンドおよびパ
ラメータと、プログラム読出のためのコマンドが、右側
にはそれぞれに対応する機能が、それぞれ示されてい
る。
28および表29において、左側にはコマンドおよびパ
ラメータと、プログラム読出のためのコマンドが、右側
にはそれぞれに対応する機能が、それぞれ示されてい
る。
【0295】たとえば次のコマンドを投入することによ
り、step3の処理を経たリストが標準出力に出力され
る。
り、step3の処理を経たリストが標準出力に出力され
る。
【0296】
【表30】
【0297】以下、その経過について説明する。"obsol
etelist.txt"にあるログファイルの形式は既に述べたよ
うに次のようになっている。
etelist.txt"にあるログファイルの形式は既に述べたよ
うに次のようになっている。
【0298】
【表31】
【0299】末尾のキャッシュ状況は、第2のproxy プ
ロセスのサーバ計算機へのアクセス状況によって変化す
る。具体的には次のとおりである。
ロセスのサーバ計算機へのアクセス状況によって変化す
る。具体的には次のとおりである。
【0300】「O 」:サーバ計算機のファイルオブジェ
クトの方がキャッシュのファイルオブジェクトより新し
かった場合 「S 」:サーバ計算機のファイルオブジェクトとキャッ
シュのファイルオブジェクトとの最終変更時刻の比較に
より、両者が同じものであると判明した場合キャッシュ
状況はこの他にもさまざまなあるが、これらのキャッシ
ュ状況に関する情報は、プリフェッチを中継した第2の
proxy プロセスによりアクセスログ39に書き出されて
いる。そこで、"obsoletelist.txt"を標準出力にcat コ
マンドで出力し、それをgrep 'O$' に入力することで、
行末が「O 」であるものが標準出力に出力される。なお
grepというコマンドもUNIX OS に標準的に搭載されてい
るものである。さらにこの出力を処理するためには、既
に述べたように”|”を使い、この標準出力を次のコマ
ンドの標準入力とすればよい。
クトの方がキャッシュのファイルオブジェクトより新し
かった場合 「S 」:サーバ計算機のファイルオブジェクトとキャッ
シュのファイルオブジェクトとの最終変更時刻の比較に
より、両者が同じものであると判明した場合キャッシュ
状況はこの他にもさまざまなあるが、これらのキャッシ
ュ状況に関する情報は、プリフェッチを中継した第2の
proxy プロセスによりアクセスログ39に書き出されて
いる。そこで、"obsoletelist.txt"を標準出力にcat コ
マンドで出力し、それをgrep 'O$' に入力することで、
行末が「O 」であるものが標準出力に出力される。なお
grepというコマンドもUNIX OS に標準的に搭載されてい
るものである。さらにこの出力を処理するためには、既
に述べたように”|”を使い、この標準出力を次のコマ
ンドの標準入力とすればよい。
【0301】その標準出力を"grep -v" \?"の標準入力
とすることで”? ”を含まない行を抽出し、標準出力に
出力する。その出力を"grep"\"GET" の標準入力に入力
する。その結果、コマンドが「get 」である行のみが抽
出され、標準出力に出力される。
とすることで”? ”を含まない行を抽出し、標準出力に
出力する。その出力を"grep"\"GET" の標準入力に入力
する。その結果、コマンドが「get 」である行のみが抽
出され、標準出力に出力される。
【0302】このようにして得られた標準出力をgrep_
datasize DATASIZE の標準入力に与える。この場合、DA
TASIZEには、予め指定されたファイルオブジェクトのデ
ータサイズの上限値が設定されている。この値はたとえ
ば実際のコマンドでは具体的な値に設定されている。こ
のコマンドの標準出力として、ファイルオブジェクトの
データサイズが定数 DATASIZE よりも小さい行のみが抽
出され標準出力に得られる。
datasize DATASIZE の標準入力に与える。この場合、DA
TASIZEには、予め指定されたファイルオブジェクトのデ
ータサイズの上限値が設定されている。この値はたとえ
ば実際のコマンドでは具体的な値に設定されている。こ
のコマンドの標準出力として、ファイルオブジェクトの
データサイズが定数 DATASIZE よりも小さい行のみが抽
出され標準出力に得られる。
【0303】さらにこの標準出力を、grep_response r
esponse.txt の標準入力に与える。ここで、"response.
txt"は、予め抽出されるべき、サーバ計算機の状態コー
ドが記述されているファイルである。このコマンドの実
行により、サーバ計算機の状態コードが"response.txt"
に記述されている状態コードと一致する行のみが抽出さ
れ標準出力に出力される。
esponse.txt の標準入力に与える。ここで、"response.
txt"は、予め抽出されるべき、サーバ計算機の状態コー
ドが記述されているファイルである。このコマンドの実
行により、サーバ計算機の状態コードが"response.txt"
に記述されている状態コードと一致する行のみが抽出さ
れ標準出力に出力される。
【0304】空白を区切りと考えると、表31に示され
るアクセスログでは、7番目のフィールドがファイルオ
ブジェクト名称に相当する。そこで上述したgrep_resp
onseresponse.txt の出力を、awk'{print $7}' の標
準入力に与えてファイルアクセスログからファイルオブ
ジェクト名称の部分のみを抽出する。
るアクセスログでは、7番目のフィールドがファイルオ
ブジェクト名称に相当する。そこで上述したgrep_resp
onseresponse.txt の出力を、awk'{print $7}' の標
準入力に与えてファイルアクセスログからファイルオブ
ジェクト名称の部分のみを抽出する。
【0305】さらに、ファイルオブジェクト名称部分の
プロトコル名称がhttpである行のみを抽出する必要があ
る。そこで上述した出力をさらに"grep " ^http://"の
標準入力に与える。なおここで" ^" は行の先頭を示
す。以上のような処理の結果が標準出力に出力される。
なおこのようにして得られた標準出力は、次のstep4で
再び標準入力として使用される。
プロトコル名称がhttpである行のみを抽出する必要があ
る。そこで上述した出力をさらに"grep " ^http://"の
標準入力に与える。なおここで" ^" は行の先頭を示
す。以上のような処理の結果が標準出力に出力される。
なおこのようにして得られた標準出力は、次のstep4で
再び標準入力として使用される。
【0306】step4 次に、step3で出力されたファイルオブジェクトのリス
トから、プリフェッチに好ましくないと思われるものを
取除く。具体的には、プリフェッチするのに好ましくな
いと思われるファイルオブジェクトが有すると思われる
文字列パターンを、除外パターンリストとして"exclud
e.txt" というファイルに予め格納しておく。このリス
トの追加変更は、ゲートウェイ管理者が行なう。
トから、プリフェッチに好ましくないと思われるものを
取除く。具体的には、プリフェッチするのに好ましくな
いと思われるファイルオブジェクトが有すると思われる
文字列パターンを、除外パターンリストとして"exclud
e.txt" というファイルに予め格納しておく。このリス
トの追加変更は、ゲートウェイ管理者が行なう。
【0307】具体的には、プリフェッチしてわざわざキ
ャッシュを更新する必要はないと判断されるような内容
を含むファイルオブジェクト、サイズが巨大なため、プ
リフェッチすると他のファイルオブジェクトのプリフェ
ッチの妨げになるようなファイルオブジェクト、または
サーバ計算機に異常があり、プリフェッチする上で支障
があるファイルオブジェクトなどが考えられる。この"e
xclude.txt" ファイルの記載内容の例を表32に示す。
もちろん表32に示すものは仮定の例である。表32に
示される文字列パターンと一致する文字列を有するファ
イルオブジェクトは、更新対象リストから取除かれる。
ャッシュを更新する必要はないと判断されるような内容
を含むファイルオブジェクト、サイズが巨大なため、プ
リフェッチすると他のファイルオブジェクトのプリフェ
ッチの妨げになるようなファイルオブジェクト、または
サーバ計算機に異常があり、プリフェッチする上で支障
があるファイルオブジェクトなどが考えられる。この"e
xclude.txt" ファイルの記載内容の例を表32に示す。
もちろん表32に示すものは仮定の例である。表32に
示される文字列パターンと一致する文字列を有するファ
イルオブジェクトは、更新対象リストから取除かれる。
【0308】
【表32】
【0309】ところで、step3で標準出力に出力された
情報は、複数回にわたるプリフェッチアクセスの記録で
あるから、同じファイルオブジェクト名称が何度も出現
する場合がある。そこで、このリストをさらに出現頻度
の降順にソートする。このとき同時に、同じURL につい
ては重複しないよう1つにまとめる。UNIX OS では、こ
のようなソート作業は標準的に提供されている次のコマ
ンド群を使って行なうことができる。
情報は、複数回にわたるプリフェッチアクセスの記録で
あるから、同じファイルオブジェクト名称が何度も出現
する場合がある。そこで、このリストをさらに出現頻度
の降順にソートする。このとき同時に、同じURL につい
ては重複しないよう1つにまとめる。UNIX OS では、こ
のようなソート作業は標準的に提供されている次のコマ
ンド群を使って行なうことができる。
【0310】
【表33】
【0311】そこで、次のコマンドにより上述のソート
作業を行なう。
作業を行なう。
【0312】
【表34】
【0313】このコマンドの処理内容は次のとおりであ
る。まずfgrep -v -f exclude.txtでは、"exclude.txt"
ファイルに含まれる文字列パターンと一致しないファ
イルオブジェクトだけが標準出力に出力される。さらに
これをsortの標準入力とすることで、ファイルオブジェ
クト名称をアルファベット順に並べる。なおこの例で
は、単純に、URL が完全一致すべき文字列パターンのみ
を"exclude.txt" ファイルで指定しているが、以下に示
すように、URL が部分一致するべき文字列パターンを除
外するための"exclude.txt" ファイルを用意することも
考えられる。
る。まずfgrep -v -f exclude.txtでは、"exclude.txt"
ファイルに含まれる文字列パターンと一致しないファ
イルオブジェクトだけが標準出力に出力される。さらに
これをsortの標準入力とすることで、ファイルオブジェ
クト名称をアルファベット順に並べる。なおこの例で
は、単純に、URL が完全一致すべき文字列パターンのみ
を"exclude.txt" ファイルで指定しているが、以下に示
すように、URL が部分一致するべき文字列パターンを除
外するための"exclude.txt" ファイルを用意することも
考えられる。
【0314】
【表35】
【0315】この例では、”*”は任意の文字列パター
ンを示している。そのため以下に示すURL も、除外対象
となる。
ンを示している。そのため以下に示すURL も、除外対象
となる。
【0316】
【表36】
【0317】文字列パターンが部分一致するものを除外
するためには、表34に示したコマンドをそのまま利用
することはできない。しかし、UNIX OS に標準で用意さ
れているコマンド群やC言語で記述したプログラム等の
組合せによってこれを容易に実現することが可能であ
る。
するためには、表34に示したコマンドをそのまま利用
することはできない。しかし、UNIX OS に標準で用意さ
れているコマンド群やC言語で記述したプログラム等の
組合せによってこれを容易に実現することが可能であ
る。
【0318】ここでは、表32に示す内容が"exclude.t
xt" ファイルに格納されており、表34に記載された処
理コマンドが処理に用いられたとして以下説明を進め
る。step3の標準出力が以下のとおりであるものとす
る。
xt" ファイルに格納されており、表34に記載された処
理コマンドが処理に用いられたとして以下説明を進め
る。step3の標準出力が以下のとおりであるものとす
る。
【0319】
【表37】
【0320】fgrep -v -f exclude.txt の処理によ
り、"exclude.txt" ファイルに格納された除外パターン
リストに含まれる文字列パターンに一致する文字列を有
する第3行と第4行とが取除かれる。その結果次のよう
な標準出力が得られる。
り、"exclude.txt" ファイルに格納された除外パターン
リストに含まれる文字列パターンに一致する文字列を有
する第3行と第4行とが取除かれる。その結果次のよう
な標準出力が得られる。
【0321】
【表38】
【0322】さらにこれをsortの標準入力に与え、ASCI
I コード順にソートするとその結果は次のようになる。
I コード順にソートするとその結果は次のようになる。
【0323】
【表39】
【0324】さらにこの出力をuniq -c の標準入力に与
えると、同一ファイルオブジェクト名称の行が集約さ
れ、出現頻度が第1フィールドに挿入されて出力され
る。その出力はこのようになる。
えると、同一ファイルオブジェクト名称の行が集約さ
れ、出現頻度が第1フィールドに挿入されて出力され
る。その出力はこのようになる。
【0325】
【表40】
【0326】得られたリストの各行の第1フィールド
は、出現頻度の数値と考えることができる。そこでこの
出現頻度の大きいものから順にソートするために、表4
0の内容をsort -n -rの標準入力に与えてソートするこ
とにより、このリストを出現頻度順に並べ変えることが
できる。その結果は次のようになる。
は、出現頻度の数値と考えることができる。そこでこの
出現頻度の大きいものから順にソートするために、表4
0の内容をsort -n -rの標準入力に与えてソートするこ
とにより、このリストを出現頻度順に並べ変えることが
できる。その結果は次のようになる。
【0327】
【表41】
【0328】step5 次に第1のproxy プロセスのアクセスログファイルをn
日分収集する。この収集方法の具体的な手順は次のとお
りである。第1のproxy プロセスのアクセスログファイ
ル名称は、毎日名称が変わるように第1のproxy により
設定できる。たとえばログファイル名称の末尾に日付が
入るようにすると、第1のproxy プロセスのアクセスロ
グファイル名称は"/usr/local/etc/delegated/10000.ht
tp. 日"という名称にして毎日変わるようにすることが
できる。
日分収集する。この収集方法の具体的な手順は次のとお
りである。第1のproxy プロセスのアクセスログファイ
ル名称は、毎日名称が変わるように第1のproxy により
設定できる。たとえばログファイル名称の末尾に日付が
入るようにすると、第1のproxy プロセスのアクセスロ
グファイル名称は"/usr/local/etc/delegated/10000.ht
tp. 日"という名称にして毎日変わるようにすることが
できる。
【0329】そうするとたとえば、7月1日から7月1
0日までのログファイルの名称が次のとおりになる。
0日までのログファイルの名称が次のとおりになる。
【0330】
【表42】
【0331】このファイルの名称リストを、日付の新し
いものから順に並べる。そのためには、UNIX OS の下で
は、/bin/ls コマンドを-tオプションで起動すればよ
い。
いものから順に並べる。そのためには、UNIX OS の下で
は、/bin/ls コマンドを-tオプションで起動すればよ
い。
【0332】
【数7】
【0333】これにより次の結果が得られる。
【0334】
【表43】
【0335】さらにこれらのファイルリストから最近の
7日分のログファイル名称を抽出する。そのためには、
UNIX OS に標準的に搭載されている/usr/ucb/head コマ
ンドを用いて先頭の7行を抽出すればよい。headコマン
ドは、標準入力に与えられるリストから、先頭の指定行
数を抽出して標準出力に出力するものである。
7日分のログファイル名称を抽出する。そのためには、
UNIX OS に標準的に搭載されている/usr/ucb/head コマ
ンドを用いて先頭の7行を抽出すればよい。headコマン
ドは、標準入力に与えられるリストから、先頭の指定行
数を抽出して標準出力に出力するものである。
【0336】
【数8】
【0337】この結果は次のとおりである。
【0338】
【表44】
【0339】step6 ここで、step5で収集した第1のproxy プロセスのアク
セスログファイルを、1つのファイル"workfile.txt"に
まとめる。このときに、各ファイルオブジェクトが最後
にユーザ中継された時刻と、プリフェッチが行なわれる
時刻との間隔に応じた重み付けを各ファイルオブジェク
トに与える。たとえば、単純にログファイルの日付に注
目すると、表43には、新しい日付のログファイルから
順番に並んでいることがわかる。そこで、UNIX OS に標
準的に搭載されているcat コマンドを利用して次の処理
を行なう。
セスログファイルを、1つのファイル"workfile.txt"に
まとめる。このときに、各ファイルオブジェクトが最後
にユーザ中継された時刻と、プリフェッチが行なわれる
時刻との間隔に応じた重み付けを各ファイルオブジェク
トに与える。たとえば、単純にログファイルの日付に注
目すると、表43には、新しい日付のログファイルから
順番に並んでいることがわかる。そこで、UNIX OS に標
準的に搭載されているcat コマンドを利用して次の処理
を行なう。
【0340】
【表45】
【0341】こうすれば、プリフェッチを行なう当日に
残されたアクセスログは7回分として、前日に残された
アクセスログは6回分として、2日前に残されたアクセ
スログは5回分として、というように、最近にアクセス
されたファイルオブジェクトの出現頻度がより高くなる
ようなアクセスログリストが残される。
残されたアクセスログは7回分として、前日に残された
アクセスログは6回分として、2日前に残されたアクセ
スログは5回分として、というように、最近にアクセス
されたファイルオブジェクトの出現頻度がより高くなる
ようなアクセスログリストが残される。
【0342】step7 step6で収集された"workfile.txt"ファイルは、1行ご
とに過去のアクセスファイルオブジェクトを記録したフ
ァイルである。そこでこの各行から、以下のような条件
でプリフェッチすべきファイルオブジェクト名称を含む
ものを選択する。
とに過去のアクセスファイルオブジェクトを記録したフ
ァイルである。そこでこの各行から、以下のような条件
でプリフェッチすべきファイルオブジェクト名称を含む
ものを選択する。
【0343】・httpコマンド文字列がファイルオブジェ
クトリード要求(GET)であり、かつ ・ファイルオブジェクト名称のプロトコル部分がhttpで
あるもの ・特定の文字列パターンにマッチするものを除外 ・ファイルオブジェクト名称がプリフェッチに適さない
ものを除外 ・ファイルオブジェクトのデータサイズが巨大なものを
除外 ・サーバ計算機の状態コードが特定のものを除外 以上の条件を使い、"workfile.txt"ファイルからファイ
ルオブジェクト名称を抽出したリストを作成する。さら
に、作成されたリストの各行のファイルオブジェクト名
称のフィールドだけを取出し、プリフェッチすべきファ
イルオブジェクト名称のリストを標準出力に出力する。
クトリード要求(GET)であり、かつ ・ファイルオブジェクト名称のプロトコル部分がhttpで
あるもの ・特定の文字列パターンにマッチするものを除外 ・ファイルオブジェクト名称がプリフェッチに適さない
ものを除外 ・ファイルオブジェクトのデータサイズが巨大なものを
除外 ・サーバ計算機の状態コードが特定のものを除外 以上の条件を使い、"workfile.txt"ファイルからファイ
ルオブジェクト名称を抽出したリストを作成する。さら
に、作成されたリストの各行のファイルオブジェクト名
称のフィールドだけを取出し、プリフェッチすべきファ
イルオブジェクト名称のリストを標準出力に出力する。
【0344】ところで、ファイルオブジェクト名称がプ
リフェッチに適さないものとしては、たとえばURL 中
に”?”を含むものなとがある。これについては既に述
べたとおりである。
リフェッチに適さないものとしては、たとえばURL 中
に”?”を含むものなとがある。これについては既に述
べたとおりである。
【0345】UNIX OS では、上に述べたようなファイル
オプション名称の抽出作業は、OSとともに提供されて
いるコマンド群
オプション名称の抽出作業は、OSとともに提供されて
いるコマンド群
【0346】
【表46】
【0347】と、C言語などを用いて記述したプログラ
ム
ム
【0348】
【表47】
【0349】を使って行なうことができる。以下に、上
述の抽出処理を行なうコマンド例を示す。
述の抽出処理を行なうコマンド例を示す。
【0350】
【表48】
【0351】上のコマンドにより行なわれる処理の経過
を説明する。"workfile.txt"ファイルにあるログの形式
は既に述べたように表31に示すとおりである。そこ
で、標準出力として得られる"workfile.txt"を"grep -
v" \?"に入力することで”?”を含まないようログを
抽出し、標準出力に出力する。それをさらに"grep"\"G
ET" の標準入力に与えることで、コマンドがget コマン
ドである行のみが抽出され標準出力に出力される。
を説明する。"workfile.txt"ファイルにあるログの形式
は既に述べたように表31に示すとおりである。そこ
で、標準出力として得られる"workfile.txt"を"grep -
v" \?"に入力することで”?”を含まないようログを
抽出し、標準出力に出力する。それをさらに"grep"\"G
ET" の標準入力に与えることで、コマンドがget コマン
ドである行のみが抽出され標準出力に出力される。
【0352】"grep"\"GET" の標準出力をgrep_datasi
ze DATASIZE の標準入力に与えると、ファイルオブジェ
クトのデータサイズが、予め指定しておいた定数DATASI
ZEより小さい行のみが抽出され標準出力に出力される。
標準出力をgrep_response response.txt の標準入力に
与えると、サーバ計算機の状態コードが、予めファイ
ル"response.txt"に記述されている状態コードと一致す
る行のみが抽出され、標準出力に出力される。
ze DATASIZE の標準入力に与えると、ファイルオブジェ
クトのデータサイズが、予め指定しておいた定数DATASI
ZEより小さい行のみが抽出され標準出力に出力される。
標準出力をgrep_response response.txt の標準入力に
与えると、サーバ計算機の状態コードが、予めファイ
ル"response.txt"に記述されている状態コードと一致す
る行のみが抽出され、標準出力に出力される。
【0353】さらに空白を区切りと考えると、各行の7
番目のフィールドがファイルオブジェクト名称に相当す
る。そこで、awk'{print $7}' を使用してファイルオ
ブジェクト名称部分のみを抽出する。さらにファイルオ
ブジェクト名称のプロトコル部分が"http"の行のみを抽
出するために"grep"^http://"でフィルタリングしてい
る(" ^" は行の先頭を示す。)。
番目のフィールドがファイルオブジェクト名称に相当す
る。そこで、awk'{print $7}' を使用してファイルオ
ブジェクト名称部分のみを抽出する。さらにファイルオ
ブジェクト名称のプロトコル部分が"http"の行のみを抽
出するために"grep"^http://"でフィルタリングしてい
る(" ^" は行の先頭を示す。)。
【0354】step8 step7で標準出力に出力されたリストは、内部ネットワ
ークの複数のクライアント計算機からの、サーバ計算機
へのアクセスの記録である。したがってこのリスト中に
は同じファイルオブジェクト名称が何度も出現する場合
がある。
ークの複数のクライアント計算機からの、サーバ計算機
へのアクセスの記録である。したがってこのリスト中に
は同じファイルオブジェクト名称が何度も出現する場合
がある。
【0355】そこでこのURL リストを出現頻度順にソー
トし、かつ同じURL については重複しないように1つに
まとめる。また、step4同様、好ましくないファイルオ
ブジェクト名称を取除くため、ファイル"exclude.txt"
に格納された各行の文字列パターンと一致する文字列を
有する行を削除する。UNIX OS の下では、このようなソ
ート作業は、OSとともに提供されている次のようなコ
マンド群を用いて行なうことができる。
トし、かつ同じURL については重複しないように1つに
まとめる。また、step4同様、好ましくないファイルオ
ブジェクト名称を取除くため、ファイル"exclude.txt"
に格納された各行の文字列パターンと一致する文字列を
有する行を削除する。UNIX OS の下では、このようなソ
ート作業は、OSとともに提供されている次のようなコ
マンド群を用いて行なうことができる。
【0356】
【表49】
【0357】これらコマンド群を用いてたとえば次のよ
うなコマンドにより処理を行なう。
うなコマンドにより処理を行なう。
【0358】
【数9】
【0359】このコマンドは、前のステップの処理の標
準出力をsortの標準入力とすることにより、ファイルオ
ブジェクト名称をアルファベット順に並べる処理であ
る。
準出力をsortの標準入力とすることにより、ファイルオ
ブジェクト名称をアルファベット順に並べる処理であ
る。
【0360】なお、ファイル"exclude.txt" に、ファイ
ルオブジェクト名称のうちURL が部分一致する文字列パ
ターンを格納し、この文字列パターンと部分一致するUR
L を有するファイルオブジェクト名称を除外することも
可能である。しかしここでは、ファイル"exclude.txt"
には、URL が完全一致すべき文字列パターンが格納され
ているものとする。
ルオブジェクト名称のうちURL が部分一致する文字列パ
ターンを格納し、この文字列パターンと部分一致するUR
L を有するファイルオブジェクト名称を除外することも
可能である。しかしここでは、ファイル"exclude.txt"
には、URL が完全一致すべき文字列パターンが格納され
ているものとする。
【0361】step7の標準出力の内容が次のとおりであ
るものとする。
るものとする。
【0362】
【表50】
【0363】すると、”step7の標準出力|sort”の結
果は、次のように表50の各行がアルファベット順にソ
ートされたものとなる。
果は、次のように表50の各行がアルファベット順にソ
ートされたものとなる。
【0364】
【表51】
【0365】さらにこの出力を"uniq -c" の標準入力に
与えると、同一ファイルオブジェクト名称を有する行が
集約され、かつ同一ファイルオブジェクト名称の行の出
現頻度が第1フィールドに挿入された次のようなリスト
が出力される。
与えると、同一ファイルオブジェクト名称を有する行が
集約され、かつ同一ファイルオブジェクト名称の行の出
現頻度が第1フィールドに挿入された次のようなリスト
が出力される。
【0366】
【表52】
【0367】このリストの各行の第1フィールドは、対
応するURL の出現頻度を示す数値と考えことができる。
そこでこの第1フィールドを数値として扱って、降順に
ソートするためにsort -n -rの標準入力に与える。これ
により各行を出現頻度順に並べることができる。その結
果は次のようになる。
応するURL の出現頻度を示す数値と考えことができる。
そこでこの第1フィールドを数値として扱って、降順に
ソートするためにsort -n -rの標準入力に与える。これ
により各行を出現頻度順に並べることができる。その結
果は次のようになる。
【0368】
【表53】
【0369】すなわち、数8として記載したコマンドの
出力は"workfile2.txt" ファイルとなるが、このファイ
ル"workfile2.txt" は、出現頻度順に1行に1個のファ
イルオブジェクト名称がリストされたプリフェッチアク
セスリストとなる。
出力は"workfile2.txt" ファイルとなるが、このファイ
ル"workfile2.txt" は、出現頻度順に1行に1個のファ
イルオブジェクト名称がリストされたプリフェッチアク
セスリストとなる。
【0370】step9次に、step4の結果得られたファイ
ル"obsoletelist.txt"と、step8の結果得られたファイ
ル"workfile2.txt" とを連結して、1つのファイル"pre
fetch _url.txt"とする。その連結の順序は次のとおり
である。
ル"obsoletelist.txt"と、step8の結果得られたファイ
ル"workfile2.txt" とを連結して、1つのファイル"pre
fetch _url.txt"とする。その連結の順序は次のとおり
である。
【0371】(1) 変更検出リスト"obsoletelist.tx
t" (2) プリフェッチアクセスリスト"workfile2.txt" この処理は、UNIX OS の下では具体的には次のコマンド
を用いて行なうことができる。
t" (2) プリフェッチアクセスリスト"workfile2.txt" この処理は、UNIX OS の下では具体的には次のコマンド
を用いて行なうことができる。
【0372】
【数10】
【0373】step10 続いて、プリフェッチリストのインターリーブ処理を行
なう。このインターリーブ処理とは、実施の形態3で既
に説明した処理と同じものであり、プリフェッチアクセ
スリストを、その元々の順序そのものではなく、特定の
サーバにアクセスが集中しないような順序に並べ変える
処理をいう。こうすることにより、特定のサーバ計算機
にアクセスが集中する可能性を最も低くすることができ
る。その詳細は既に実施の形態3で説明してあるので、
ここでは繰返さない。
なう。このインターリーブ処理とは、実施の形態3で既
に説明した処理と同じものであり、プリフェッチアクセ
スリストを、その元々の順序そのものではなく、特定の
サーバにアクセスが集中しないような順序に並べ変える
処理をいう。こうすることにより、特定のサーバ計算機
にアクセスが集中する可能性を最も低くすることができ
る。その詳細は既に実施の形態3で説明してあるので、
ここでは繰返さない。
【0374】step11 続いて、並列ネットワーク中継個数の最大定数を計算す
る。すなわち、次のステップ以降に示すプリフェッチ子
プロセス起動ループで使用する、並列実行の子プロセス
数の許容される最大値である数MAXPROCESSを計算する。
これまで説明した実施の形態では、並行プリフェッチの
同時実行の最大値であるMAXPROCESSは、予め定められた
固定のパラメータであった。
る。すなわち、次のステップ以降に示すプリフェッチ子
プロセス起動ループで使用する、並列実行の子プロセス
数の許容される最大値である数MAXPROCESSを計算する。
これまで説明した実施の形態では、並行プリフェッチの
同時実行の最大値であるMAXPROCESSは、予め定められた
固定のパラメータであった。
【0375】すなわち、これまでの実施の形態では、プ
リフェッチプロセスの並列実行の子プロセスの数は次の
式によって規制されていた。
リフェッチプロセスの並列実行の子プロセスの数は次の
式によって規制されていた。
【0376】
【数11】
【0377】このようにして、起動されるプリフェッチ
プロセスの並列実行の子プロセスの数を規制しておくこ
とで、他のプロセスに対するプリフェッチ子プロセスの
優先度が下がる、という効果があることはこれまでの実
施の形態の説明において既に述べたとおりである。なお
すべてのproxy ネットワーク中継プロセス数の中には、
プリフェッチ子プロセスが含まれている。
プロセスの並列実行の子プロセスの数を規制しておくこ
とで、他のプロセスに対するプリフェッチ子プロセスの
優先度が下がる、という効果があることはこれまでの実
施の形態の説明において既に述べたとおりである。なお
すべてのproxy ネットワーク中継プロセス数の中には、
プリフェッチ子プロセスが含まれている。
【0378】ところで、この場合次のような問題があ
る。たとえばMAXPROCESS=20と定められていたものと
する。この場合、次のステップのループ実行を始めた時
点で、クライアント計算機ユーザによるネットワーク中
継プロセスが20個以上存在している場合がある。する
とそれだけで既に、上の数11で示される条件が満たさ
れなくなる。すなわち、
る。たとえばMAXPROCESS=20と定められていたものと
する。この場合、次のステップのループ実行を始めた時
点で、クライアント計算機ユーザによるネットワーク中
継プロセスが20個以上存在している場合がある。する
とそれだけで既に、上の数11で示される条件が満たさ
れなくなる。すなわち、
【0379】
【数12】
【0380】が成立せず、そのため新たにプリフェッチ
子プロセスを起動することができない。こうした状況が
連続すれば、実質的にプリフェッチを行なうことができ
ないという事態になる。本実施の形態は、こうした問題
を回避して、ネットワーク中継プロセスの数のかかわら
ず、着実にプリフェッチが行なえるように次のような方
策をとっている。すなわち、プリフェッチ子プロセスを
起動するか否かを判断するにあたって、「その時点での
すべてのproxy ネットワーク中継個数」に「一定数MAXP
ROCESS」を加えたものを新たなMAXPROCESSとして使用し
たうえで上の数11の判断を行なっている。これによ
り、次のstep11以後のループを開始した時点ですべての
ネットワーク中継プロセスの合計数が初期定数MAXPROCE
SSを超えていても、上のようにして計算された新しい定
数MAXPROCESSが実際の比較の際には使用されるので、プ
リフェッチ用の並列子プロセスの新たな起動が可能とな
る。
子プロセスを起動することができない。こうした状況が
連続すれば、実質的にプリフェッチを行なうことができ
ないという事態になる。本実施の形態は、こうした問題
を回避して、ネットワーク中継プロセスの数のかかわら
ず、着実にプリフェッチが行なえるように次のような方
策をとっている。すなわち、プリフェッチ子プロセスを
起動するか否かを判断するにあたって、「その時点での
すべてのproxy ネットワーク中継個数」に「一定数MAXP
ROCESS」を加えたものを新たなMAXPROCESSとして使用し
たうえで上の数11の判断を行なっている。これによ
り、次のstep11以後のループを開始した時点ですべての
ネットワーク中継プロセスの合計数が初期定数MAXPROCE
SSを超えていても、上のようにして計算された新しい定
数MAXPROCESSが実際の比較の際には使用されるので、プ
リフェッチ用の並列子プロセスの新たな起動が可能とな
る。
【0381】以下具体的な実施方法について説明する。
まず、ある時点でのすべてのproxyによるネットワーク
中継個数をNUMPROCESSとする。NUMPROCESSは、OSのプ
ロセステーブルから得ることができる。UNIX OS の下で
あれば次に挙げるコマンドの組合せでNUMPROCESSを計算
することができる。
まず、ある時点でのすべてのproxyによるネットワーク
中継個数をNUMPROCESSとする。NUMPROCESSは、OSのプ
ロセステーブルから得ることができる。UNIX OS の下で
あれば次に挙げるコマンドの組合せでNUMPROCESSを計算
することができる。
【0382】
【表54】
【0383】これらコマンドをたとえば次のように組合
せることでNUMPROCESSを得ることができる。
せることでNUMPROCESSを得ることができる。
【0384】
【数13】
【0385】ここでは、ネットワーク中継プロセス名称
が既に述べたように"DeleGate"であることを利用してい
る。さらに次の式によりMAXPROCESSを再計算する。
が既に述べたように"DeleGate"であることを利用してい
る。さらに次の式によりMAXPROCESSを再計算する。
【0386】
【数14】
【0387】これにより新たなMAXPROCESSを得ることが
できる。 step12 図9に示されるstep12.1とstep12.2とをここではまとめ
てstep12と呼ぶことにする。step12.1以降の処理は、st
ep10でインターリーブ化したプリフェッチリスト"prefe
tch _url.txt"の各行を1行ずつメモリ上の行バッファ
URLBUFに読込み、読込まれたURL に従ってプリフェッチ
子プロセスを起動するループ処理である。このとき、第
2のproxy を用い、当該ファイルオブジェクトをプリフ
ェッチするためのプリフェッチ子プロセスをバッググラ
ウンドプロセスとして1つ起動する。
できる。 step12 図9に示されるstep12.1とstep12.2とをここではまとめ
てstep12と呼ぶことにする。step12.1以降の処理は、st
ep10でインターリーブ化したプリフェッチリスト"prefe
tch _url.txt"の各行を1行ずつメモリ上の行バッファ
URLBUFに読込み、読込まれたURL に従ってプリフェッチ
子プロセスを起動するループ処理である。このとき、第
2のproxy を用い、当該ファイルオブジェクトをプリフ
ェッチするためのプリフェッチ子プロセスをバッググラ
ウンドプロセスとして1つ起動する。
【0388】なお、ネットワークアクセスをするために
は、プリフェッチ子プロセスから直接httpプロトコルを
発生させればよい。そのために専用のプログラムを作成
しておけばよい。このプログラムの名称を仮にwebacces
s とする。
は、プリフェッチ子プロセスから直接httpプロトコルを
発生させればよい。そのために専用のプログラムを作成
しておけばよい。このプログラムの名称を仮にwebacces
s とする。
【0389】プログラムwebaccess は、UNIX OS のネッ
トワーク機能の基本であるソケット機構を利用するもの
である。proxy プロセスのアドレスと、TCP/IPで使用さ
れるポート番号とを指定して、プロセス関数通信をする
ためのネットワーク接続を行なう。さらにMAXPROCESS
は、httpプロトコルにおけるGET コマンドを直接proxy
サーバに書込み、さらに応答データをメモリに読み捨て
る。読み捨てられた応答データは、proxy サーバのキャ
ッシュ機構により自動的にキャッシュファイル16(図
9参照)に蓄積される。
トワーク機能の基本であるソケット機構を利用するもの
である。proxy プロセスのアドレスと、TCP/IPで使用さ
れるポート番号とを指定して、プロセス関数通信をする
ためのネットワーク接続を行なう。さらにMAXPROCESS
は、httpプロトコルにおけるGET コマンドを直接proxy
サーバに書込み、さらに応答データをメモリに読み捨て
る。読み捨てられた応答データは、proxy サーバのキャ
ッシュ機構により自動的にキャッシュファイル16(図
9参照)に蓄積される。
【0390】webaccess を使用する場合の実際の記述例
は次のとおりである。
は次のとおりである。
【0391】
【数15】
【0392】この場合webaccess に対して、proxy サー
バのアドレスと、使用されるポート番号とが指定され
る。webaccess はこれに応答して上記記述中に含まれる
URL にアクセスしファイルを読出して内部のメモリに読
み捨てる。proxy プロセスが利用しているマシンのネッ
トワークアドレスがproxyserver 、TCP/IPのポート番号
が10001 番とする。行バッファURLBUFに次のファイルオ
ブジェクト名称が格納されているものとする。
バのアドレスと、使用されるポート番号とが指定され
る。webaccess はこれに応答して上記記述中に含まれる
URL にアクセスしファイルを読出して内部のメモリに読
み捨てる。proxy プロセスが利用しているマシンのネッ
トワークアドレスがproxyserver 、TCP/IPのポート番号
が10001 番とする。行バッファURLBUFに次のファイルオ
ブジェクト名称が格納されているものとする。
【0393】
【数16】
【0394】この場合次の命令によりwebaccess を起動
させれば、当該proxy プロセス経由で、サーバ計算機の
ファイルオブジェクト"http://www.xxx.co.jp/test/ind
ex.html"にアクセスできる。このとき中継子プロセスで
あるproxy 子プロセスができる。
させれば、当該proxy プロセス経由で、サーバ計算機の
ファイルオブジェクト"http://www.xxx.co.jp/test/ind
ex.html"にアクセスできる。このとき中継子プロセスで
あるproxy 子プロセスができる。
【0395】
【数17】
【0396】本実施の形態では、数15により記述され
る、ファイルオブジェクト(URL )についてのキャッシ
ュ更新アクセスにより、第1のproxy プロセスの管理す
るキャッシュファイル16を最新状態に保つことができ
る。なお数17で「&」が末尾に付けられているのは、
子プロセスをバックグラウンドで並列に動作させるため
である。
る、ファイルオブジェクト(URL )についてのキャッシ
ュ更新アクセスにより、第1のproxy プロセスの管理す
るキャッシュファイル16を最新状態に保つことができ
る。なお数17で「&」が末尾に付けられているのは、
子プロセスをバックグラウンドで並列に動作させるため
である。
【0397】step13 続いて図9のstep13で、プリフェッチ子プロセスの数と
第1のproxy プロセス14のネットワーク中継子プロセ
スの数とを計測し加算して、変数processes に加える。
これらプロセス数も、step11で行なわれたのと同様、プ
ロセステーブルから得ることができる。
第1のproxy プロセス14のネットワーク中継子プロセ
スの数とを計測し加算して、変数processes に加える。
これらプロセス数も、step11で行なわれたのと同様、プ
ロセステーブルから得ることができる。
【0398】step14 続いてstep14で、上述のようにして得られた変数proces
ses が、step11で計算された最大プロセス数MAXPROCESS
以下か否かについて判定する。以下であれば制御はstep
2.1 に戻り、プリフェッチアクセスリストの次の1行を
抽出し、さらにバックグラウンドでプリフェッチ子プロ
セスを起動する。
ses が、step11で計算された最大プロセス数MAXPROCESS
以下か否かについて判定する。以下であれば制御はstep
2.1 に戻り、プリフェッチアクセスリストの次の1行を
抽出し、さらにバックグラウンドでプリフェッチ子プロ
セスを起動する。
【0399】step15 step14で、変数processes が最大プロセス数MAXPROCESS
よりも大きいと判定されると、処理を一定時間休止(た
とえば10秒)する。この一定時間の休止を制御すると
制御をstep13に戻し、プリフェッチ子プロセスの並列起
動の起動を再び試みる。
よりも大きいと判定されると、処理を一定時間休止(た
とえば10秒)する。この一定時間の休止を制御すると
制御をstep13に戻し、プリフェッチ子プロセスの並列起
動の起動を再び試みる。
【0400】以上のようなループ処理によって、プリフ
ェッチ子プロセスの個数と、第1のproxy プロセス14
を利用しているクライアント計算機ユーザのネットワー
ク中継子プロセスの個数との合計を制限しながら、プリ
フェッチ子プロセスの起動を制御する。この場合第1の
proxy プロセス14を利用しているユーザによるネット
ワークアクセスの子プロセスの数がMAXPROCESS以上であ
ったときにプリフェッチ子プロセスが起動待ちとなる。
ェッチ子プロセスの個数と、第1のproxy プロセス14
を利用しているクライアント計算機ユーザのネットワー
ク中継子プロセスの個数との合計を制限しながら、プリ
フェッチ子プロセスの起動を制御する。この場合第1の
proxy プロセス14を利用しているユーザによるネット
ワークアクセスの子プロセスの数がMAXPROCESS以上であ
ったときにプリフェッチ子プロセスが起動待ちとなる。
【0401】したがって、クライアント計算機のユーザ
が第1のproxy プロセス14を利用している時間帯にプ
リフェッチプロセスを実行しても、プリフェッチ子プロ
セスには低い優先権しか与えられない。そのためプリフ
ェッチプロセスの始動を内部ユーザの活動時間帯に始め
ても内部ユーザのネットワーク利用の妨げとはならな
い。また逆にプリフェッチプロセスが、クライアント計
算機のユーザの活動時間の先頭部分に多少食い込んでも
内部ユーザのネットワーク利用にはそれほど支障がな
い。
が第1のproxy プロセス14を利用している時間帯にプ
リフェッチプロセスを実行しても、プリフェッチ子プロ
セスには低い優先権しか与えられない。そのためプリフ
ェッチプロセスの始動を内部ユーザの活動時間帯に始め
ても内部ユーザのネットワーク利用の妨げとはならな
い。また逆にプリフェッチプロセスが、クライアント計
算機のユーザの活動時間の先頭部分に多少食い込んでも
内部ユーザのネットワーク利用にはそれほど支障がな
い。
【0402】したがって、プリフェッチプロセスの開始
から終了までより長時間のプリフェッチ処理を行なうこ
とが可能になる。より多くのファイルオブジェクトのプ
リフェッチができるので、キャッシュデータの量を増や
すことができる。結果としてキャッシュヒット率を高め
ることができる。これは、実施の形態1において既に述
べたのと同様に、平均ファイルオブジェクト転送速度を
増加させるという効果をもたらす。見方を変えれば、同
じ平均ファイルオブジェクト転送速度を維持しながら、
内部ネットワークのより多くのユーザがネットワーク利
用をできるようにするという効果がある。
から終了までより長時間のプリフェッチ処理を行なうこ
とが可能になる。より多くのファイルオブジェクトのプ
リフェッチができるので、キャッシュデータの量を増や
すことができる。結果としてキャッシュヒット率を高め
ることができる。これは、実施の形態1において既に述
べたのと同様に、平均ファイルオブジェクト転送速度を
増加させるという効果をもたらす。見方を変えれば、同
じ平均ファイルオブジェクト転送速度を維持しながら、
内部ネットワークのより多くのユーザがネットワーク利
用をできるようにするという効果がある。
【0403】なお、図9のstep15の後に、このプリフェ
ッチプロセスループを指定時刻に強制終了するためにO
Sタイマをセットする。OSタイマは、UNIX OS に標準
的に提供されているコマンドを利用して、指定時間に指
定の動作を実行させることで実現できる。指定時刻に上
記したプロセスを終了するためには、具体的には次のよ
うにすればよい。図8および図9に示されるプリフェッ
チプロセスには、実行時にはプロセスID番号がシステ
ムから与えられる。そこでこのプロセスID番号を使用
して、UNIX OS のkill命令を次のようにOSに与える。
ッチプロセスループを指定時刻に強制終了するためにO
Sタイマをセットする。OSタイマは、UNIX OS に標準
的に提供されているコマンドを利用して、指定時間に指
定の動作を実行させることで実現できる。指定時刻に上
記したプロセスを終了するためには、具体的には次のよ
うにすればよい。図8および図9に示されるプリフェッ
チプロセスには、実行時にはプロセスID番号がシステ
ムから与えられる。そこでこのプロセスID番号を使用
して、UNIX OS のkill命令を次のようにOSに与える。
【0404】
【数18】
【0405】このコマンドは、プロセスID番号で指定
されたプロセスを終了させるためのkill命令を、8時0
0分に発行するようにOSに対して予約するものであ
る。
されたプロセスを終了させるためのkill命令を、8時0
0分に発行するようにOSに対して予約するものであ
る。
【0406】以上は、プリフェッチプロセスの詳細な説
明である。次に、第1のproxy プロセス14および第2
のproxy プロセス34におけるキャッシュ管理手法につ
いて説明する。本発明では、2つのproxy プロセスが図
1、図9等に示すようにキャッシュファイル16を共有
している。しかも両者ともキャッシュファイル16を、
ファイルオブジェクト単位で更新する。そのためキャッ
シュファイル16について、ファイルオブジェクト単位
で排他制御ができなければ、ネットワーク中継子プロセ
ス同士で競合が生じてしまう。そのためproxy プロセス
のキャッシュ管理手法が排他制御を備えている必要があ
る。
明である。次に、第1のproxy プロセス14および第2
のproxy プロセス34におけるキャッシュ管理手法につ
いて説明する。本発明では、2つのproxy プロセスが図
1、図9等に示すようにキャッシュファイル16を共有
している。しかも両者ともキャッシュファイル16を、
ファイルオブジェクト単位で更新する。そのためキャッ
シュファイル16について、ファイルオブジェクト単位
で排他制御ができなければ、ネットワーク中継子プロセ
ス同士で競合が生じてしまう。そのためproxy プロセス
のキャッシュ管理手法が排他制御を備えている必要があ
る。
【0407】本願の実施の形態では、公知の"DeleGate"
と呼ばれるproxy ソフトウェアを使用している。このソ
フトウェアは排他制御機能を備えており、上述したよう
な本願発明の実施の形態を実現するに十分な機能を備え
ている。
と呼ばれるproxy ソフトウェアを使用している。このソ
フトウェアは排他制御機能を備えており、上述したよう
な本願発明の実施の形態を実現するに十分な機能を備え
ている。
【0408】DeleGateにおけるキャッシュ管理手法は、
ソースコードの形で公開されている。したがって以下こ
のソースコードに沿ってその手法について述べる。なお
本願発明を実現するためのproxy サーバソフトウェアと
しては、このDeleGateに限定されるものではなく、同様
のキャッシュ管理手法が使われるキャッシュ機能付prox
y サーバソフトウェアであって排他制御機能を有するも
のであれば利用することができる。
ソースコードの形で公開されている。したがって以下こ
のソースコードに沿ってその手法について述べる。なお
本願発明を実現するためのproxy サーバソフトウェアと
しては、このDeleGateに限定されるものではなく、同様
のキャッシュ管理手法が使われるキャッシュ機能付prox
y サーバソフトウェアであって排他制御機能を有するも
のであれば利用することができる。
【0409】既に述べた例に従って、proxy プロセスが
proxyserver という名称のマシン(システム)で動作し
ており、TCP/IPのポート番号10001 番でURL 取得要求を
受付けるものとする。このとき、バッファURLBUFに、指
定のURL 表記が格納されているものとする。すると、た
とえば図9に示すプリフェッチプロセス41は次のコマ
ンドを実行する。
proxyserver という名称のマシン(システム)で動作し
ており、TCP/IPのポート番号10001 番でURL 取得要求を
受付けるものとする。このとき、バッファURLBUFに、指
定のURL 表記が格納されているものとする。すると、た
とえば図9に示すプリフェッチプロセス41は次のコマ
ンドを実行する。
【0410】
【数19】
【0411】なお第2のproxy プロセス34とプリフェ
ッチプロセス41との間の通信はTCP/IPを用いて行なわ
れる。例としてバッファURLBUFに"http://www.sharp.c
o.jp/sample/test.html" という文字列が格納されてい
るものとする。
ッチプロセス41との間の通信はTCP/IPを用いて行なわ
れる。例としてバッファURLBUFに"http://www.sharp.c
o.jp/sample/test.html" という文字列が格納されてい
るものとする。
【0412】プリフェッチプロセス41が数14に示す
コマンドを実行することにより、URL 取得要求が第2の
proxy プロセス34に出される。第2のproxy プロセス
34はこれに応答して子プロセスを生成し、実際のファ
イルオブジェクトの取得処理をその子プロセスに任せ
て、自プロセスは再びプリフェッチプロセス41による
数14の実行を待ち受ける。第2のproxy プロセス34
により生成された子プロセスは、以下のような処理を実
行する。なおproxy プロセスは、キャッシュファイルと
して図7に示すキャッシュファイル16を持っている。
このキャッシュファイル16は、通常のUNIXファイルシ
ステムの一部として作られる。この場合、キャッシュ用
ディレクトリとして/cacheというパーティションを使用
するものとする。このとき、バッファURLBUFに格納され
ている文字列のうち次の文字列
コマンドを実行することにより、URL 取得要求が第2の
proxy プロセス34に出される。第2のproxy プロセス
34はこれに応答して子プロセスを生成し、実際のファ
イルオブジェクトの取得処理をその子プロセスに任せ
て、自プロセスは再びプリフェッチプロセス41による
数14の実行を待ち受ける。第2のproxy プロセス34
により生成された子プロセスは、以下のような処理を実
行する。なおproxy プロセスは、キャッシュファイルと
して図7に示すキャッシュファイル16を持っている。
このキャッシュファイル16は、通常のUNIXファイルシ
ステムの一部として作られる。この場合、キャッシュ用
ディレクトリとして/cacheというパーティションを使用
するものとする。このとき、バッファURLBUFに格納され
ている文字列のうち次の文字列
【0413】
【数20】
【0414】は、プロトコル名称がhttp、サーバ計算機
名称がwww.sharp.co.jp 、ファイルオブジェクトの実体
部分のディレクトリおよびファイル名称はsample/text.
htmlである。このとき、キャッシュファイル16は次の
名称規則に従ってキャッシュファイルを生成しようとす
る。
名称がwww.sharp.co.jp 、ファイルオブジェクトの実体
部分のディレクトリおよびファイル名称はsample/text.
htmlである。このとき、キャッシュファイル16は次の
名称規則に従ってキャッシュファイルを生成しようとす
る。
【0415】
【数21】
【0416】したがって"http://www.sharp.co.jp/samp
le/test.html" のディレクトリおよびファイル名は次の
ようにして指定される。
le/test.html" のディレクトリおよびファイル名は次の
ようにして指定される。
【0417】
【数22】
【0418】したがって、図10を参照して、proxy プ
ロセスは次のようにキャッシュファイル16の排他制御
を行なう。
ロセスは次のようにキャッシュファイル16の排他制御
を行なう。
【0419】(1) まずキャッシュファイル16の更
新ルーチンを開始すると(A1)、指定されたURL を上
記した規則に従ってキャッシュファイル名称に変換す
る。今述べている例では上述の数22というファイル名
称が得られる(A2)。そしてこのようにして変換され
たファイル名称がキャッシュファイル16内に存在する
か否かを調べる。具体的には、OSのopen()システム
コールによって、このファイルを既存のファイルとして
オープンすることができるかどうかを調べることにより
このファイルの存在を調べる(A3)。
新ルーチンを開始すると(A1)、指定されたURL を上
記した規則に従ってキャッシュファイル名称に変換す
る。今述べている例では上述の数22というファイル名
称が得られる(A2)。そしてこのようにして変換され
たファイル名称がキャッシュファイル16内に存在する
か否かを調べる。具体的には、OSのopen()システム
コールによって、このファイルを既存のファイルとして
オープンすることができるかどうかを調べることにより
このファイルの存在を調べる(A3)。
【0420】(2) このファイルが存在しなければ
(A3でNO)、このキャッシュファイルをファイル新
規作成モードでオープンする(A4)。
(A3でNO)、このキャッシュファイルをファイル新
規作成モードでオープンする(A4)。
【0421】(3) さらにこのキャッシュファイルに
対して他のプロセスから書込が行なえないように排他ロ
ックする(A5)。これ以後の処理が排他制御である。
対して他のプロセスから書込が行なえないように排他ロ
ックする(A5)。これ以後の処理が排他制御である。
【0422】(4) 次にネットワーク経由で、バッフ
ァURLBUF内の文字列で指定されたファイルオブジェクト
を、指定されたサーバ計算機から取得する(A6)。
ァURLBUF内の文字列で指定されたファイルオブジェクト
を、指定されたサーバ計算機から取得する(A6)。
【0423】(5) このようにして取得したファイル
オブジェクトをキャッシュ更新プロセスに渡すととも
に、キャッシュファイル16に書込む(A7)。このと
きのキャッシュファイル名称は数22に示したとおりで
ある。
オブジェクトをキャッシュ更新プロセスに渡すととも
に、キャッシュファイル16に書込む(A7)。このと
きのキャッシュファイル名称は数22に示したとおりで
ある。
【0424】(6) 書込が完了するとキャッシュファ
イルをクローズして排他ロックを解除する(A8)。
イルをクローズして排他ロックを解除する(A8)。
【0425】ステップA3でキャッシュファイルがオー
プンできた場合、すなわち指定されたキャッシュファイ
ルが既に存在した場合には次のような処理を行なう(A
9)。
プンできた場合、すなわち指定されたキャッシュファイ
ルが既に存在した場合には次のような処理を行なう(A
9)。
【0426】(7) キャッシュファイル/cache/http/
www.sharp.co.jp/sample/test.htmlの最終変更時刻Tmを
OSから得る。UNIXであれば、最終変更時刻はfstat
()システムコールで得られる(A10)。fstat
()システムコールは、過去から未来に向かって時間
の経過とともに単純に増加する関数である。
www.sharp.co.jp/sample/test.htmlの最終変更時刻Tmを
OSから得る。UNIXであれば、最終変更時刻はfstat
()システムコールで得られる(A10)。fstat
()システムコールは、過去から未来に向かって時間
の経過とともに単純に増加する関数である。
【0427】(8) 続いて現在時刻をシステムコール
を用いて読出しTnowという変数に格納する(A11)。
を用いて読出しTnowという変数に格納する(A11)。
【0428】(9) 上記したキャッシュファイルの最
終変更時刻Tmと現在時刻Tnowとを比較し、その差がキャ
ッシュ有効期限以内かどうかを判定する(A12)。
終変更時刻Tmと現在時刻Tnowとを比較し、その差がキャ
ッシュ有効期限以内かどうかを判定する(A12)。
【0429】(10) キャッシュ有効期限以内であれ
ば(A12においてYES)、このキャッシュファイル
を共有排他ロックする。すなわちこのキャッシュファイ
ルに対して、他のプロセスからの書込はできないが、読
出はできるようにする(A13)。
ば(A12においてYES)、このキャッシュファイル
を共有排他ロックする。すなわちこのキャッシュファイ
ルに対して、他のプロセスからの書込はできないが、読
出はできるようにする(A13)。
【0430】(11) 続いて現在のキャッシュファイ
ルを読出し、キャッシュ更新プロセスに転送する(A1
4)。
ルを読出し、キャッシュ更新プロセスに転送する(A1
4)。
【0431】(12) キャッシュファイルをクローズ
し、排他制御のロックを解除する(A8)。
し、排他制御のロックを解除する(A8)。
【0432】一方、キャッシュ有効期限を過ぎている場
合(A12においてNO)、次のような処理を行なう。
合(A12においてNO)、次のような処理を行なう。
【0433】(13) キャッシュファイルを排他ロッ
クし、他のプロセスからの書込が行なわれないようにす
る(A15)。
クし、他のプロセスからの書込が行なわれないようにす
る(A15)。
【0434】(14) 次にネットワーク経由で、バッ
ファURLBUFに格納された文字列で指定されたファイルオ
ブジェクトをサーバ計算機から取得する(A16)。
ファURLBUFに格納された文字列で指定されたファイルオ
ブジェクトをサーバ計算機から取得する(A16)。
【0435】(15) こうして取得したファイルオブ
ジェクトをキャッシュ更新プロセスに渡すとともに、数
22で示されるキャッシュファイルに書込む(A1
7)。
ジェクトをキャッシュ更新プロセスに渡すとともに、数
22で示されるキャッシュファイルに書込む(A1
7)。
【0436】(16) 続いてキャッシュファイルをク
ローズし排他ロックを解除する(A18)。
ローズし排他ロックを解除する(A18)。
【0437】以上が、上述の実施の形態で使用されてい
るproxy プロセスのキャッシュ制御手順である。本願発
明の各実施の形態では、このようなproxy プロセスによ
る排他制御機能を利用して、キャッシュファイルシステ
ム(たとえば図7のキャッシュファイル16)を、第1
のproxy プロセス14と第2のproxy プロセス34とで
共有している。なお第2のproxy プロセス34は、既に
述べたようにキャッシュ有効期限=0である。またキャ
ッシュファイルの最終変更時刻Tmは常に現在時刻Tnowよ
りも小さい。したがって、図10のステップA12で行
なわれる判断は、第2のproxy プロセス34経由のサー
バ計算機アクセスでは必ずNOという結果になり、キャ
ッシュファイルの更新(A16)が必ず行なわれる。
るproxy プロセスのキャッシュ制御手順である。本願発
明の各実施の形態では、このようなproxy プロセスによ
る排他制御機能を利用して、キャッシュファイルシステ
ム(たとえば図7のキャッシュファイル16)を、第1
のproxy プロセス14と第2のproxy プロセス34とで
共有している。なお第2のproxy プロセス34は、既に
述べたようにキャッシュ有効期限=0である。またキャ
ッシュファイルの最終変更時刻Tmは常に現在時刻Tnowよ
りも小さい。したがって、図10のステップA12で行
なわれる判断は、第2のproxy プロセス34経由のサー
バ計算機アクセスでは必ずNOという結果になり、キャ
ッシュファイルの更新(A16)が必ず行なわれる。
【0438】以上のようにこの実施の形態でも、ファイ
ルオブジェクト(URL )のプリフェッチにより、第1の
proxy プロセス14の管理するキャッシュファイル16
の容量をn×24時間/m倍に増やし、かつ最新状態に
保つことが可能である。
ルオブジェクト(URL )のプリフェッチにより、第1の
proxy プロセス14の管理するキャッシュファイル16
の容量をn×24時間/m倍に増やし、かつ最新状態に
保つことが可能である。
【0439】なお本実施の形態のstep5でn日分の過去
のアクセスログファイルを集めたが、このn日という数
字は、キャッシュファイルの最大容量とファイル転送実
績とから決められるものであって、システムごとに異な
る。1GBの容量を持つキャッシュファイル装置に、1
日当り100MBのファイルオブジェクトが蓄積される
ようであれば、n=5程度、すなわちファイルオブジェ
クトが500MB程度プリフェッチされるような設定と
すれば、キャッシュファイル16が溢れることはない。
のアクセスログファイルを集めたが、このn日という数
字は、キャッシュファイルの最大容量とファイル転送実
績とから決められるものであって、システムごとに異な
る。1GBの容量を持つキャッシュファイル装置に、1
日当り100MBのファイルオブジェクトが蓄積される
ようであれば、n=5程度、すなわちファイルオブジェ
クトが500MB程度プリフェッチされるような設定と
すれば、キャッシュファイル16が溢れることはない。
【0440】このようにキャッシュファイルの蓄積の実
績から、キャッシュファイルを溢れさせないnという数
字を算出するのは容易である。そのためには次のように
する。たとえば1GBの容量を有するキャッシュファイ
ル装置であれば、キャッシュ蓄積量の最小値MIN=6
0%、最大値MAX=80%と定めておく。キャッシュ
蓄積の実績量がMINを下回るようであれば、毎日のプ
リフェッチ起動時にn=n+1とする。またキャッシュ
蓄積の実績量がMAXを上回る場合には、n=n−2な
どと減らす。こうすることでキャッシュ蓄積容量をほぼ
MIN、MAXの間に保つことができる。
績から、キャッシュファイルを溢れさせないnという数
字を算出するのは容易である。そのためには次のように
する。たとえば1GBの容量を有するキャッシュファイ
ル装置であれば、キャッシュ蓄積量の最小値MIN=6
0%、最大値MAX=80%と定めておく。キャッシュ
蓄積の実績量がMINを下回るようであれば、毎日のプ
リフェッチ起動時にn=n+1とする。またキャッシュ
蓄積の実績量がMAXを上回る場合には、n=n−2な
どと減らす。こうすることでキャッシュ蓄積容量をほぼ
MIN、MAXの間に保つことができる。
【0441】このようなプリフェッチプロセスは、内部
ネットワークから外部ネットワークへのクライアント計
算機ユーザのアクセスがあまりない時間帯を利用して起
動することができる。そうすることによってプリフェッ
チプロセスによるファイルオブジェクトアクセスが、内
部ネットワークユーザの外部ネットワークアクセスの妨
げにならないような運用をすることができる。上述の実
施の形態では、プリフェッチプロセスはクライアント計
算機の利用が少なくなる21時00分に起動し、翌日の
8時00分には遅くとも終了させるようにしてある。8
時00分にプリフェッチプロセスがまだ動作しているの
であれば既に述べたように強制終了をさせている。これ
により、プリフェッチリストが大きくて、プリフェッチ
に時間を要し、そのため翌日の8時までにプリフェッチ
プロセスが終了しない場合であっても、クライアント計
算機の利用が始められる時間帯にはプリフェッチプロセ
スが確実に終了される。これ以後の、内部ネットワーク
ユーザによるクライアント計算機の利用は妨げられな
い。
ネットワークから外部ネットワークへのクライアント計
算機ユーザのアクセスがあまりない時間帯を利用して起
動することができる。そうすることによってプリフェッ
チプロセスによるファイルオブジェクトアクセスが、内
部ネットワークユーザの外部ネットワークアクセスの妨
げにならないような運用をすることができる。上述の実
施の形態では、プリフェッチプロセスはクライアント計
算機の利用が少なくなる21時00分に起動し、翌日の
8時00分には遅くとも終了させるようにしてある。8
時00分にプリフェッチプロセスがまだ動作しているの
であれば既に述べたように強制終了をさせている。これ
により、プリフェッチリストが大きくて、プリフェッチ
に時間を要し、そのため翌日の8時までにプリフェッチ
プロセスが終了しない場合であっても、クライアント計
算機の利用が始められる時間帯にはプリフェッチプロセ
スが確実に終了される。これ以後の、内部ネットワーク
ユーザによるクライアント計算機の利用は妨げられな
い。
【0442】ところで、上述の実施の形態でも、第1の
proxy プロセス14のキャッシュ有効期限M=24時間
としている。そのため夜間に更新されたキャッシュデー
タの内容は、更新後翌晩の21時までは少なくとも有効
である。すなわち、キャッシュファイルのうち少なくと
も変更頻度の高いファイルオブジェクトは過去24時間
以内に更新された情報に維持される。一方で、キャッシ
ュファイルの容量は1日の平均アクセス量のn日分であ
る。キャッシュヒット率は、キャッシュの蓄積期間が2
4時間の場合と比較してn=7とすると3倍以上となる
ことが経験的にわかっているから、上述のような設定を
することでキャッシュファイルの内容を新鮮に保ちなが
らキャッシュヒット率を高めることができる。また、第
1のproxy プロセス14のキャッシュ有効期限M時間以
下の時間間隔でプリフェッチプロセスの起動が行なわれ
るから、キャッシュファイルは常に有効期限内に保たれ
る。したがってプリフェッチから次のプリフェッチまで
の間、プリフェッチの効果が有効に保たれる。
proxy プロセス14のキャッシュ有効期限M=24時間
としている。そのため夜間に更新されたキャッシュデー
タの内容は、更新後翌晩の21時までは少なくとも有効
である。すなわち、キャッシュファイルのうち少なくと
も変更頻度の高いファイルオブジェクトは過去24時間
以内に更新された情報に維持される。一方で、キャッシ
ュファイルの容量は1日の平均アクセス量のn日分であ
る。キャッシュヒット率は、キャッシュの蓄積期間が2
4時間の場合と比較してn=7とすると3倍以上となる
ことが経験的にわかっているから、上述のような設定を
することでキャッシュファイルの内容を新鮮に保ちなが
らキャッシュヒット率を高めることができる。また、第
1のproxy プロセス14のキャッシュ有効期限M時間以
下の時間間隔でプリフェッチプロセスの起動が行なわれ
るから、キャッシュファイルは常に有効期限内に保たれ
る。したがってプリフェッチから次のプリフェッチまで
の間、プリフェッチの効果が有効に保たれる。
【0443】[実施の形態7]実施の形態1〜6では、
ゲートウェイ計算機とクライアント計算機とが別々の計
算機であるものとして説明した。しかしながら、図11
に示されるように、ゲートウェイ計算機55の中にクラ
イアントプロセス42を起動して、クライアント計算機
の機能を含ませても何ら問題はない。その逆にクライア
ント計算機の中にゲートウェイ計算機の機能を含ませて
も支障がないことはもちろんである。なお図11におい
て図7に示される各構成要素と同じ構成要素には同一の
参照番号および名称を付してある。それらの機能も同一
である。したがってここではそれらについての詳しい説
明は繰返さない。
ゲートウェイ計算機とクライアント計算機とが別々の計
算機であるものとして説明した。しかしながら、図11
に示されるように、ゲートウェイ計算機55の中にクラ
イアントプロセス42を起動して、クライアント計算機
の機能を含ませても何ら問題はない。その逆にクライア
ント計算機の中にゲートウェイ計算機の機能を含ませて
も支障がないことはもちろんである。なお図11におい
て図7に示される各構成要素と同じ構成要素には同一の
参照番号および名称を付してある。それらの機能も同一
である。したがってここではそれらについての詳しい説
明は繰返さない。
【0444】このようにクライアント計算機とゲートウ
ェイ計算機との機能を同一の計算機内に組込むことによ
り、より多くのファイルオブジェクトのプリフェッチを
することが可能になる。そのためキャッシュデータの量
を増やすことができるので、結果としてキャッシュヒッ
ト率を高めることができる。ゲートウェイ計算機として
得られる効果は、既に述べた他の実施の形態の装置によ
り得られるものと同様である。
ェイ計算機との機能を同一の計算機内に組込むことによ
り、より多くのファイルオブジェクトのプリフェッチを
することが可能になる。そのためキャッシュデータの量
を増やすことができるので、結果としてキャッシュヒッ
ト率を高めることができる。ゲートウェイ計算機として
得られる効果は、既に述べた他の実施の形態の装置によ
り得られるものと同様である。
【0445】再びここで各実施の形態の効果について述
べる。実施の形態1によれば、内部ネットワークユーザ
が利用するproxy プロセスでは、キャッシュ有効期限M
がたとえば24時間というように短く設定されている。
したがってキャッシュされたファイルオブジェクトの内
容は、最近の24時間以内の内容であることが保証され
ている。すなわちキャッシュファイルのステールデータ
率は小さく抑えられている。一方、キャッシュファイル
自体にはn日分のキャッシュファイルが蓄積さている。
キャッシュの蓄積量が、プリフェッチプロセスを行なわ
ない場合と比較してn×24/M倍となるので、キャッ
シュのヒット率はキャッシュ有効期限をn日としたとき
に相当する高い値となる。
べる。実施の形態1によれば、内部ネットワークユーザ
が利用するproxy プロセスでは、キャッシュ有効期限M
がたとえば24時間というように短く設定されている。
したがってキャッシュされたファイルオブジェクトの内
容は、最近の24時間以内の内容であることが保証され
ている。すなわちキャッシュファイルのステールデータ
率は小さく抑えられている。一方、キャッシュファイル
自体にはn日分のキャッシュファイルが蓄積さている。
キャッシュの蓄積量が、プリフェッチプロセスを行なわ
ない場合と比較してn×24/M倍となるので、キャッ
シュのヒット率はキャッシュ有効期限をn日としたとき
に相当する高い値となる。
【0446】従来のproxy サーバ装置で、キャッシュ有
効期限を24時間と設定した場合のキャッシュヒット率
は12%程度であることが観察されている。一方実施の
形態1のproxy サーバ装置によるプリフェッチ処理を実
行した場合、n=7日とすると、上述のようにキャッシ
ュヒット率が高くなることが予測され、実際にもヒット
率は35%となった。このためweb サーバへの問合せが
減少し、応答速度が向上した。
効期限を24時間と設定した場合のキャッシュヒット率
は12%程度であることが観察されている。一方実施の
形態1のproxy サーバ装置によるプリフェッチ処理を実
行した場合、n=7日とすると、上述のようにキャッシ
ュヒット率が高くなることが予測され、実際にもヒット
率は35%となった。このためweb サーバへの問合せが
減少し、応答速度が向上した。
【0447】実施の形態2のproxy サーバ装置では、プ
リフェッチを同時並列的に進めることで、プリフェッチ
の開始から終了までの時間を短縮することができる。指
定終了時刻までの間に、より多くのファイルオブジェク
トをプリフェッチできる。キャッシュデータの量を増や
すことができるので、結果としてキャッシュヒット率を
高めることができる。
リフェッチを同時並列的に進めることで、プリフェッチ
の開始から終了までの時間を短縮することができる。指
定終了時刻までの間に、より多くのファイルオブジェク
トをプリフェッチできる。キャッシュデータの量を増や
すことができるので、結果としてキャッシュヒット率を
高めることができる。
【0448】実施の形態3のproxy サーバ装置では、プ
リフェッチアクセスリスト内のファイルオブジェクト名
称をインターリーブしてからプリフェッチを同時並行的
に進める。そのため特定のサーバ計算機に対してアクセ
スが集中することが避けられる。サーバ計算機の応答が
遅くなってボトルネックとなることが避けられるので、
プリフェッチの開始から終了までの時間を短縮できる。
指定終了時刻までの間により多くのファイルオブジェク
トのプリフェッチが可能になる。キャッシュデータの量
を増やすことができるので、結果としてキャッシュヒッ
ト率を高めることができる。
リフェッチアクセスリスト内のファイルオブジェクト名
称をインターリーブしてからプリフェッチを同時並行的
に進める。そのため特定のサーバ計算機に対してアクセ
スが集中することが避けられる。サーバ計算機の応答が
遅くなってボトルネックとなることが避けられるので、
プリフェッチの開始から終了までの時間を短縮できる。
指定終了時刻までの間により多くのファイルオブジェク
トのプリフェッチが可能になる。キャッシュデータの量
を増やすことができるので、結果としてキャッシュヒッ
ト率を高めることができる。
【0449】実施の形態4によれば、内部のユーザが第
1のproxy プロセスを利用している時間帯にプリフェッ
チプロセスを実行しても、プリフェッチ子プロセスには
低い優先権しか与えられていないので、内部ユーザのネ
ットワーク利用活動を妨げることがないという効果があ
る。プリフェッチプロセスを、内部ユーザの活動時間帯
内に始めても、内部ユーザのネットワーク利用の妨げと
はならない。またプリフェッチプロセスの終了を、内部
ユーザの活動時間帯内までずれ込ませても内部ユーザの
ネットワーク利用の妨げとはならない。開始から終了ま
でより長時間のプリフェッチ時間を利用することが可能
になり、より多くのファイルオブジェクトをプリフェッ
チすることができる。キャッシュデータの量も応じて増
加できるので、結果としてキャッシュヒット率を高める
ことができる。
1のproxy プロセスを利用している時間帯にプリフェッ
チプロセスを実行しても、プリフェッチ子プロセスには
低い優先権しか与えられていないので、内部ユーザのネ
ットワーク利用活動を妨げることがないという効果があ
る。プリフェッチプロセスを、内部ユーザの活動時間帯
内に始めても、内部ユーザのネットワーク利用の妨げと
はならない。またプリフェッチプロセスの終了を、内部
ユーザの活動時間帯内までずれ込ませても内部ユーザの
ネットワーク利用の妨げとはならない。開始から終了ま
でより長時間のプリフェッチ時間を利用することが可能
になり、より多くのファイルオブジェクトをプリフェッ
チすることができる。キャッシュデータの量も応じて増
加できるので、結果としてキャッシュヒット率を高める
ことができる。
【0450】実施の形態5のproxy サーバ装置では、キ
ャッシュファイル中のファイルオブジェクトを消去する
ための期限はn日程度としている。この期限は、キャッ
シュファイルの有効期限よりも長く選択されており、有
効期限が過ぎたキャッシュファイルも直ちには消去され
ない。そして有効期限が過ぎたファイルオブジェクトで
あっても、アクセス要求が生じ該当するサーバ計算機の
元データの変更時刻を照会することにより、サーバ計算
機の元データが変更されていなければ再びこのキャッシ
ュされているファイルオブジェクトが有効となる。そし
てこのファイルオブジェクトのヘッダ情報の変更時刻を
更新するだけで、実際のファイルオブジェクトのデータ
転送をすることなく実質的にファイルオブジェクトのプ
リフェッチを実現できる。そのため再ロードのためのト
ラフィックを削減することができる。
ャッシュファイル中のファイルオブジェクトを消去する
ための期限はn日程度としている。この期限は、キャッ
シュファイルの有効期限よりも長く選択されており、有
効期限が過ぎたキャッシュファイルも直ちには消去され
ない。そして有効期限が過ぎたファイルオブジェクトで
あっても、アクセス要求が生じ該当するサーバ計算機の
元データの変更時刻を照会することにより、サーバ計算
機の元データが変更されていなければ再びこのキャッシ
ュされているファイルオブジェクトが有効となる。そし
てこのファイルオブジェクトのヘッダ情報の変更時刻を
更新するだけで、実際のファイルオブジェクトのデータ
転送をすることなく実質的にファイルオブジェクトのプ
リフェッチを実現できる。そのため再ロードのためのト
ラフィックを削減することができる。
【0451】プリフェッチによるキャッシュのヒット率
向上により、昼間のユーザの活動によるファイルオブジ
ェクト転送量は十分減少しており、上述のプリフェッチ
を行なってもトラフィックがいたずらに増大するおそれ
はない。またキャッシュファイルの内容は、いずれも有
効期限内に維持できるので、その内容の新鮮さを維持す
ることができる。
向上により、昼間のユーザの活動によるファイルオブジ
ェクト転送量は十分減少しており、上述のプリフェッチ
を行なってもトラフィックがいたずらに増大するおそれ
はない。またキャッシュファイルの内容は、いずれも有
効期限内に維持できるので、その内容の新鮮さを維持す
ることができる。
【0452】実施の形態6では、第2のproxy のログフ
ァイル中で変更があったことを示す行のみが抽出され、
第1のproxy のログファイルから抽出されたプリフェッ
チリストの先頭にマージされる。一般に、前回のプリフ
ェッチ時に変更があったファイルオブジェクトは、変更
頻度が高いということができる。したがってこれらを優
先してプリフェッチすることで、限られた時間を有効に
利用して、キャッシュファイルの状態を最新の状態に近
く維持するとが可能になる。
ァイル中で変更があったことを示す行のみが抽出され、
第1のproxy のログファイルから抽出されたプリフェッ
チリストの先頭にマージされる。一般に、前回のプリフ
ェッチ時に変更があったファイルオブジェクトは、変更
頻度が高いということができる。したがってこれらを優
先してプリフェッチすることで、限られた時間を有効に
利用して、キャッシュファイルの状態を最新の状態に近
く維持するとが可能になる。
【0453】上述した実施の形態のいずれも、既存のpr
oxy プロセスにさらにプリフェッチプロセスを追加する
だけで実現でき、既存のproxy プロセス自体には何らの
変更も必要ではない。そのため容易にキャッシュファイ
ルのヒット率が向上したproxy サーバ装置を提供できる
という利点がある。なお、HTTPプロトコルを含めた
参考文献リストを以下に示す。
oxy プロセスにさらにプリフェッチプロセスを追加する
だけで実現でき、既存のproxy プロセス自体には何らの
変更も必要ではない。そのため容易にキャッシュファイ
ルのヒット率が向上したproxy サーバ装置を提供できる
という利点がある。なお、HTTPプロトコルを含めた
参考文献リストを以下に示す。
【0454】
【表55】
【図1】本発明に係るゲートウェイ装置の一例であるpr
oxy サーバ装置の動作概念図である。
oxy サーバ装置の動作概念図である。
【図2】WWWサーバ内の情報頁をクライアントソフト
ウェアでブラウズしたときの表示画面を示す図である。
ウェアでブラウズしたときの表示画面を示す図である。
【図3】実施の形態1のゲートウェイ装置であるproxy
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
【図4】実施の形態2のゲートウェイ装置であるproxy
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
【図5】実施の形態3のゲートウェイ装置であるproxy
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
【図6】実施の形態4のゲートウェイ装置であるproxy
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
サーバ装置で行なわれるプリフェッチプロセスの実現ア
ルゴリズムを示すフローチャートである。
【図7】本発明の実施の形態6に係るproxy サーバ装置
のブロック図である。
のブロック図である。
【図8】実施の形態6のproxy サーバ装置におけるプリ
フェッチプロセスの前半部のフローチャートである。
フェッチプロセスの前半部のフローチャートである。
【図9】実施の形態6のproxy サーバ装置におけるプリ
フェッチプロセスの後半部のフローチャートである。
フェッチプロセスの後半部のフローチャートである。
【図10】実施の形態6のproxy サーバ装置でのキャッ
シュファイル更新子プロセスのフローチャートである。
シュファイル更新子プロセスのフローチャートである。
【図11】本願発明の実施の形態7のproxy サーバ装置
のブロック図である。
のブロック図である。
【図12】従来のゲートウェイ計算機の構成を示す図で
ある。
ある。
【図13】proxy サーバ装置の概念図である。
【図14】proxy サーバ装置の回路構成の第1の例を示
す図である。
す図である。
【図15】proxy サーバ装置の回路構成の第2の例を示
す図である。
す図である。
【図16】proxy サーバ装置の回路構成の第3の例であ
って、本願発明の実施の形態proxy サーバ装置としても
使用されるproxy サーバ装置の回路構成を示す図であ
る。
って、本願発明の実施の形態proxy サーバ装置としても
使用されるproxy サーバ装置の回路構成を示す図であ
る。
【図17】キャッシュヒット率と平均アクセス速度との
関係を示すグラフである。
関係を示すグラフである。
【図18】キャッシュファイルサイズとキャッシュヒッ
ト率との関係を示すグラフである。
ト率との関係を示すグラフである。
【図19】キャッシュ有効期限とキャッシュファイルの
大きさとの関係を示すグラフである。
大きさとの関係を示すグラフである。
11 サーバ計算機 14 第1proxy プロセス 15 アクセスログ 16 キャッシュファイル 30 アクセスリスト 34 第2のproxy プロセス 36 プリフェッチプロセス
Claims (16)
- 【請求項1】 クライアント計算機が存在する第1のネ
ットワークと、サーバ計算機が存在する第2のネットワ
ークとの間に介在するように設けられるゲートウェイ装
置であって、 第1のネットワークのクライアント計算機からのファイ
ルオブジェクトに対するアクセス要求に応答して、当該
ファイルオブジェクトにより指定されるサーバ計算機に
対して、当該ファイルオブジェクトに対するアクセス要
求を行なう第1のネットワークファイル中継手段を含
み、 前記第1のネットワークファイル中継手段は、 取得したファイルオブジェクトを、所定の有効期限が経
過するまで一時的に蓄積するとともに、最終変更時刻を
ファイルオブジェクト単位で記録するためのキャッシュ
ファイル手段と、 過去の、一定期間内に行なわれたファイルオブジェクト
の転送記録を蓄積するファイル転送記録手段と、 ファイルオブジェクトに対するアクセス要求に応答し
て、当該ファイルオブジェクトの最終変更時刻を参照
し、有効期限内のファイルオブジェクトが前記キャッシ
ュファイル手段に存在するか否かを判断し、当該判断結
果に基づいて、当該ファイルオブジェクトを前記キャッ
シュファイル手段、または当該ファイルオブジェクトに
より指定されるサーバ計算機から取得してクライアント
計算機に転送するための転送手段とを含み、 前記ゲートウェイ装置はさらに、予め定められたスケジ
ュールに従って、前記転送記録中のファイルオブジェク
トをサーバ計算機からプリフェッチして、前記キャッシ
ュファイル手段に格納するための第2のネットワークフ
ァイル中継手段を含む、ゲートウェイ装置。 - 【請求項2】 前記第2のネットワークファイル中継手
段は、前記第2のネットワークを介して同時に複数個の
ファイルオブジェクトをサーバ計算機から同時並列的に
プリフェッチする、請求項1記載のゲートウェイ装置。 - 【請求項3】 前記第2のネットワークファイル中継手
段は、同一のサーバ計算機からのプリフェッチの同時発
生を回避するように、ファイルオブジェクトのプリフェ
ッチの順序を決定する、請求項2記載のゲートウェイ装
置。 - 【請求項4】 前記第2のネットワークファイル中継手
段は、前記転送記録からファイルオブジェクトのリスト
を当該転送記録中の出現頻度に従って抽出し、当該リス
ト中のファイルオブジェクトの順序に従ってファイルオ
ブジェクトのプリフェッチを同時並列的に行なう、請求
項2記載のゲートウェイ装置。 - 【請求項5】 前記第2のネットワークファイル中継手
段は、前記リスト中のファイルオブジェクトの順序を入
替え、当該入替られた順序に従ってファイルオブジェク
トのプリフェッチを同時並列的に行なう、請求項4記載
のゲートウェイ装置。 - 【請求項6】 前記第2のネットワークファイル中継手
段は、前記リストを複数個のブロックに区分し、各ブロ
ックごとにファイルオブジェクトの順序を入替え、当該
順序が入替えられたリスト上での順序に従ってファイル
オブジェクトのプリフェッチを同時並列的に行なう、請
求項5記載のゲートウェイ装置。 - 【請求項7】 前記第1のネットワークファイル中継手
段は、各々が第1のネットワークのクライアント計算機
からのファイルオブジェクトのアクセス要求を処理する
ための第1の転送プロセスを複数個、同時並列的に起動
させることが可能であり、 前記第2のネットワークファイル中継手段は、各々が1
つの前記ファイルオブジェクトのプリフェッチを行なう
ための第2の転送プロセスを複数個、同時並列的に起動
させることが可能であり、かつ前記第1の転送プロセス
の数を検知して、前記第1の転送プロセスの数と、前記
第2の転送プロセスの数との和が予め定められる上限以
下となるように前記第2の転送プロセスの新たな起動を
制御する、請求項2から6のいずれかに記載のゲートウ
ェイ装置。 - 【請求項8】 前記第2のネットワークファイル中継手
段は、予め定められた時間帯でのみファイルオブジェク
トのプリフェッチを行なう、請求項1から7のいずれか
に記載のゲートウェイ装置。 - 【請求項9】 前記第2のネットワークファイル中継手
段は、前記第1のネットワークファイル中継手段の前記
キャッシュファイルの有効期限以下の周期で定期的にフ
ァイルオブジェクトのプリフェッチを行なう、請求項1
から8のいずれかに記載のゲートウェイ装置。 - 【請求項10】 前記第1のネットワークファイル中継
手段の前記キャッシュファイル手段は、前記有効期限以
上の所定の消去時間が経過するまでは、当該キャッシュ
ファイル手段に格納されているファイルオブジェクトを
消去せず、 前記転送手段は、前記有効期限が経過しているが消去は
されていないファイルオブジェクトに対するアクセス要
求に応答して、対応するサーバ計算機にアクセスし、当
該サーバ計算機内の当該ファイルオブジェクトが、前回
の取得後更新されているか否かを判断し、更新されてい
ないときには前記キャッシュファイル手段内のファイル
オブジェクトを新たに取得したファイルオブジェクトと
してクライアント計算機に転送し、更新されているとき
には当該ファイルオブジェクトにより特定されるサーバ
計算機に対して当該ファイルオブジェクトの転送要求を
発して更新後の当該ファイルオブジェクトを取得し、取
得したファイルオブジェクトをクライアント計算機に転
送する、請求項1記載のゲートウェイ装置。 - 【請求項11】 前記第1のネットワークファイル中継
手段は、各々が第1のネットワークのクライアント計算
機からのファイルオブジェクトのアクセス要求を処理す
るための第1の転送プロセスを複数個、同時並列的に起
動させることが可能であり、 前記第2のネットワークファイル中継手段は、各々が1
つの前記ファイルオブジェクトのプリフェッチを行なう
ための第2の転送プロセスを複数個、同時並列的に起動
させることが可能であり、前記第2の転送プロセスの起
動時において既に稼動中の転送プロセスの数を検知し
て、前記稼動中の転送プロセスの数と、起動すべき第2
の転送プロセスの数との和が、前記稼動中の転送プロセ
スの数と予め定める定数との和以下となるように前記第
2の転送プロセスの新たな起動を制御する、請求項2か
ら6のいずれかに記載のゲートウェイ装置。 - 【請求項12】 前記第2のネットワークファイル中継
手段は、過去の一定期間中に行なったファイルオブジェ
クトの転送記録を、転送時に当該ファイルオブジェクト
の変更が検出されたか否かを示す情報とともに蓄積する
ための第2のファイル転送記録手段をさらに含み、 前記第2のネットワークファイル中継手段は、前記第2
のファイル転送記録手段により記録された前記転送記録
中から、直前のフェッチ時において変更が検出されたフ
ァイルオブジェクトを抽出し、これらのファイルオブジ
ェクトを、前記ファイル転送記録手段の転送記録中のフ
ァイルオブジェクトよりも優先的にサーバ計算機からプ
リフェッチして前記キャッシュファイル手段に格納す
る、請求項1に記載のゲートウェイ装置。 - 【請求項13】 前記第2のネットワークファイル中継
手段は、予め指定された文字列パターンを記憶し、前記
第2のファイル転送記録手段により記録された前記転送
記録中から、前記予め定められた文字列パターンと一致
する文字列を有するファイルオブジェクトを排除して抽
出する、請求項10に記載のゲートウェイ装置。 - 【請求項14】 前記第2のファイル転送記録手段の蓄
積する転送記録は、取得されたファイルオブジェクトの
ファイルサイズをさらに含み、 前記第2のネットワークファイル中継手段は、転送対象
となるファイルオブジェクトサイズの最大値を特定する
情報を予め記憶し、前記第2のファイル転送記録手段に
より記録された前記転送記録中から、前記最大値より大
きなファイルサイズを有するファイルオブジェクトを排
除して抽出する、請求項10に記載のゲートウェイ装
置。 - 【請求項15】 前記第2のファイル転送記録手段の蓄
積する転送記録は、取得が試行されたファイルオブジェ
クトに関するサーバ計算機の状態コードをさらに含み、 前記第2のネットワークファイル中継手段は、サーバ計
算機の特定の状態コードを予め記憶し、前記第2のファ
イル転送記録手段により記録された前記転送記録中か
ら、前記特定の状態コードと一致する状態コードを有す
るファイルオブジェクトを排除して抽出する、請求項1
0に記載のゲートウェイ装置。 - 【請求項16】 前記第1のネットワークファイル中継
手段に対するクライアント計算機としての機能を実現す
るための手段をさらに含む、請求項1から15のいずれ
かに記載のゲートウェイ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30774996A JP3386964B2 (ja) | 1995-11-20 | 1996-11-19 | ゲートウェイ装置 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30154095 | 1995-11-20 | ||
| JP7-301540 | 1995-11-20 | ||
| JP30774996A JP3386964B2 (ja) | 1995-11-20 | 1996-11-19 | ゲートウェイ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09204347A true JPH09204347A (ja) | 1997-08-05 |
| JP3386964B2 JP3386964B2 (ja) | 2003-03-17 |
Family
ID=26562724
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30774996A Expired - Fee Related JP3386964B2 (ja) | 1995-11-20 | 1996-11-19 | ゲートウェイ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3386964B2 (ja) |
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1021134A (ja) * | 1996-07-04 | 1998-01-23 | Sharp Corp | ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム |
| JPH1069468A (ja) * | 1996-06-14 | 1998-03-10 | Internatl Business Mach Corp <Ibm> | 予測レスポンスを生成する装置と方法 |
| JPH1166099A (ja) * | 1997-08-15 | 1999-03-09 | Nippon Telegr & Teleph Corp <Ntt> | 検索機能付代理情報提供装置および情報検索システム |
| JPH11205381A (ja) * | 1998-01-16 | 1999-07-30 | Nec Corp | データ転送中継システム |
| JPH11328080A (ja) * | 1998-03-20 | 1999-11-30 | Internatl Business Mach Corp <Ibm> | ネットワ―クを介して、リモ―ト装置を操作するシステム及び方法 |
| WO2000005661A1 (fr) * | 1998-07-21 | 2000-02-03 | Athena Telecom Lab, Inc. | Procede de gestion des modificatifs d'informations du web, dispositif de gestion et support d'enregistrement |
| JP2000330856A (ja) * | 1999-05-21 | 2000-11-30 | Nec Corp | 情報収集装置及び方法 |
| JP2001084220A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | 通信システム |
| JP2001209571A (ja) * | 2000-01-26 | 2001-08-03 | Sharp Corp | 情報取得装置および情報取得方法、ならびに情報取得プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| JP2001513600A (ja) * | 1997-08-06 | 2001-09-04 | タキオン インコーポレイテッド | 分散型システムとオブジェクトをプレフェッチする方法 |
| JP2001273228A (ja) * | 2001-05-02 | 2001-10-05 | E Japan Kk | 文書出力装置および方法 |
| JP2001518668A (ja) * | 1997-09-29 | 2001-10-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報を事前に取り出すための方法およびシステム |
| JP2003186785A (ja) * | 2001-12-14 | 2003-07-04 | Sanyo Electric Co Ltd | ローカルサーバ、情報配信システムおよびユーザ端末装置 |
| JP2005253114A (ja) * | 2005-04-28 | 2005-09-15 | Nec Corp | ネットワークシステム及びキャッシュサーバ並びにキャッシュサーバ制御方法 |
| JP2005312064A (ja) * | 2005-04-28 | 2005-11-04 | Nec Corp | ネットワークシステム、キャッシュサーバ、キャッシュサーバ制御方法及び記録媒体 |
| US7146415B1 (en) | 1999-08-06 | 2006-12-05 | Sharp Kabushiki Kaisha | Information source monitor device for network information, monitoring and display method for the same, storage medium storing the method as a program, and a computer for executing the program |
| JP2015103177A (ja) * | 2013-11-27 | 2015-06-04 | 株式会社リコー | 情報処理システム、端末装置、プログラム、及び方法 |
| CN104981800A (zh) * | 2012-11-14 | 2015-10-14 | 亚马逊技术有限公司 | 在页检索事件期间递送和显示页面预览 |
| US10248633B2 (en) | 2014-06-17 | 2019-04-02 | Amazon Technologies, Inc. | Content browser system using multiple layers of graphics commands |
| US11169666B1 (en) | 2014-05-22 | 2021-11-09 | Amazon Technologies, Inc. | Distributed content browsing system using transferred hardware-independent graphics commands |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106973050A (zh) * | 2017-03-23 | 2017-07-21 | 山东中创软件商用中间件股份有限公司 | 一种跨网闸信息共享的方法及装置 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03263940A (ja) * | 1990-03-14 | 1991-11-25 | Fuji Xerox Co Ltd | ネットワーク中継装置、中継方法、およびサーバ |
| JPH0410141A (ja) * | 1990-04-27 | 1992-01-14 | Nec Commun Syst Ltd | データベースアクセス方式 |
| JPH04313126A (ja) * | 1991-04-11 | 1992-11-05 | Nec Corp | 分散ファイルシステムのファイル入出力方式 |
-
1996
- 1996-11-19 JP JP30774996A patent/JP3386964B2/ja not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03263940A (ja) * | 1990-03-14 | 1991-11-25 | Fuji Xerox Co Ltd | ネットワーク中継装置、中継方法、およびサーバ |
| JPH0410141A (ja) * | 1990-04-27 | 1992-01-14 | Nec Commun Syst Ltd | データベースアクセス方式 |
| JPH04313126A (ja) * | 1991-04-11 | 1992-11-05 | Nec Corp | 分散ファイルシステムのファイル入出力方式 |
Cited By (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1069468A (ja) * | 1996-06-14 | 1998-03-10 | Internatl Business Mach Corp <Ibm> | 予測レスポンスを生成する装置と方法 |
| JPH1021134A (ja) * | 1996-07-04 | 1998-01-23 | Sharp Corp | ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム |
| JP2001513600A (ja) * | 1997-08-06 | 2001-09-04 | タキオン インコーポレイテッド | 分散型システムとオブジェクトをプレフェッチする方法 |
| JPH1166099A (ja) * | 1997-08-15 | 1999-03-09 | Nippon Telegr & Teleph Corp <Ntt> | 検索機能付代理情報提供装置および情報検索システム |
| KR100377715B1 (ko) * | 1997-09-29 | 2003-03-26 | 인터내셔널 비지네스 머신즈 코포레이션 | 처리 시스템 |
| JP2001518668A (ja) * | 1997-09-29 | 2001-10-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報を事前に取り出すための方法およびシステム |
| JPH11205381A (ja) * | 1998-01-16 | 1999-07-30 | Nec Corp | データ転送中継システム |
| JPH11328080A (ja) * | 1998-03-20 | 1999-11-30 | Internatl Business Mach Corp <Ibm> | ネットワ―クを介して、リモ―ト装置を操作するシステム及び方法 |
| WO2000005661A1 (fr) * | 1998-07-21 | 2000-02-03 | Athena Telecom Lab, Inc. | Procede de gestion des modificatifs d'informations du web, dispositif de gestion et support d'enregistrement |
| JP2000330856A (ja) * | 1999-05-21 | 2000-11-30 | Nec Corp | 情報収集装置及び方法 |
| US7146415B1 (en) | 1999-08-06 | 2006-12-05 | Sharp Kabushiki Kaisha | Information source monitor device for network information, monitoring and display method for the same, storage medium storing the method as a program, and a computer for executing the program |
| JP2001084220A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | 通信システム |
| JP2001209571A (ja) * | 2000-01-26 | 2001-08-03 | Sharp Corp | 情報取得装置および情報取得方法、ならびに情報取得プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| JP2001273228A (ja) * | 2001-05-02 | 2001-10-05 | E Japan Kk | 文書出力装置および方法 |
| JP2003186785A (ja) * | 2001-12-14 | 2003-07-04 | Sanyo Electric Co Ltd | ローカルサーバ、情報配信システムおよびユーザ端末装置 |
| JP2005312064A (ja) * | 2005-04-28 | 2005-11-04 | Nec Corp | ネットワークシステム、キャッシュサーバ、キャッシュサーバ制御方法及び記録媒体 |
| JP2005253114A (ja) * | 2005-04-28 | 2005-09-15 | Nec Corp | ネットワークシステム及びキャッシュサーバ並びにキャッシュサーバ制御方法 |
| CN104981800A (zh) * | 2012-11-14 | 2015-10-14 | 亚马逊技术有限公司 | 在页检索事件期间递送和显示页面预览 |
| JP2016502718A (ja) * | 2012-11-14 | 2016-01-28 | アマゾン テクノロジーズ インコーポレーテッド | ページ取得イベント中のページプレビューの配信および表示 |
| US10031891B2 (en) | 2012-11-14 | 2018-07-24 | Amazon Technologies Inc. | Delivery and display of page previews during page retrieval events |
| US10095663B2 (en) | 2012-11-14 | 2018-10-09 | Amazon Technologies, Inc. | Delivery and display of page previews during page retrieval events |
| JP2015103177A (ja) * | 2013-11-27 | 2015-06-04 | 株式会社リコー | 情報処理システム、端末装置、プログラム、及び方法 |
| US11169666B1 (en) | 2014-05-22 | 2021-11-09 | Amazon Technologies, Inc. | Distributed content browsing system using transferred hardware-independent graphics commands |
| US10248633B2 (en) | 2014-06-17 | 2019-04-02 | Amazon Technologies, Inc. | Content browser system using multiple layers of graphics commands |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3386964B2 (ja) | 2003-03-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3386964B2 (ja) | ゲートウェイ装置 | |
| CN100511220C (zh) | 分布式高速缓存中维护数据的方法和系统 | |
| US8103746B2 (en) | Method and system for distributing requests for content | |
| US7103794B2 (en) | Network object cache engine | |
| US6249804B1 (en) | Computer network read-ahead caching method | |
| US8972998B2 (en) | Processing annotation requests using multithreaded constituent task and independent input/output tasks | |
| US6134584A (en) | Method for accessing and retrieving information from a source maintained by a network server | |
| US6219676B1 (en) | Methodology for cache coherency of web server data | |
| US7437364B1 (en) | System and method of accessing a document efficiently through multi-tier web caching | |
| US5933832A (en) | Retrieval system for frequently updated data distributed on network | |
| US7680875B1 (en) | Markers for cached objects | |
| US20040111443A1 (en) | Apparatus and methods for caching objects using main memory and persistent memory | |
| JP3481054B2 (ja) | ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム | |
| EP0898754B1 (en) | Information retrieval in cache database | |
| US20010052003A1 (en) | System and method for web page acquisition | |
| JP3833409B2 (ja) | 通信プロキシ装置 | |
| JP3117003B2 (ja) | 広域分散ファイルシステム | |
| JP5387457B2 (ja) | 遠隔監視装置および該装置におけるデータアクセス方法 | |
| JPH1173361A (ja) | 分散ファイルシステムならびに当該システムの放送サーバ装置およびクライアント装置 | |
| US6421713B1 (en) | Process and system for tracing documents in an interlocking computer system | |
| JP2004513405A (ja) | クライアント/サーバ・ネットワークでリンク・ファイルを順序付き先行キャッシングするシステム、方法およびプログラム | |
| WO1998057265A1 (en) | Network object cache engine | |
| JPH10214217A (ja) | ネットワークキャッシュ装置およびネットワークキャッシュ方法 | |
| JPH11175539A (ja) | 代理情報取得方法及びシステム及び代理情報取得プログラムを格納した記憶媒体 | |
| JP2001236362A (ja) | 情報検索出力装置及び方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20021217 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080110 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090110 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |