JP3485915B1 - ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機 - Google Patents

ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機

Info

Publication number
JP3485915B1
JP3485915B1 JP2003292960A JP2003292960A JP3485915B1 JP 3485915 B1 JP3485915 B1 JP 3485915B1 JP 2003292960 A JP2003292960 A JP 2003292960A JP 2003292960 A JP2003292960 A JP 2003292960A JP 3485915 B1 JP3485915 B1 JP 3485915B1
Authority
JP
Japan
Prior art keywords
cache
file
server computer
proxy
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003292960A
Other languages
English (en)
Other versions
JP2004030690A (ja
Inventor
克良 土居
創 竹澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2003292960A priority Critical patent/JP3485915B1/ja
Application granted granted Critical
Publication of JP3485915B1 publication Critical patent/JP3485915B1/ja
Publication of JP2004030690A publication Critical patent/JP2004030690A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【要約】 【課題】 ファイルオブジェクトに対するアクセス要求
を分散して経路を有効に利用し、スループットを向上さ
せ、さらにローカルネットワーク上の通信量を削減する
こと。 【解決手段】 システムは、クライアント計算機24
と、クライアント計算機24からの情報提供要求に応じ
て情報を提供するサーバ計算機12と、サーバ計算機1
2のファイルオブジェクトを制御するredirect
or計算機72〜77と、クライアント計算機24から
の情報提供要求に基づくファイルオブジェクトの転送を
中継するproxyサーバ計算機65〜67とからな
る。redirector計算機72〜77は、情報提
供要求に含まれる文字列とシステム内のproxyサー
バ計算機65〜67の数とを用いた所定の演算による演
算結果に基づいて、要求した情報を格納するproxy
サーバ計算機を決めることで、proxyサーバ計算機
毎に格納される情報量を分散させる制御をすることを特
徴とする。

Description

【発明の詳細な説明】 【技術分野】
【0001】 本発明は、ネットワーク上に分散した複
数のサーバ計算機と、複数のクライアント計算機とがゲ
ートウェイ装置(計算機)を介して通信回線で相互に接
続されている分散ファイルシステムに関し、特に、複数
のクライアント計算機がゲートウェイ装置を介してサー
バ計算機内部の記憶装置内のファイルオブジェクトにア
クセスする場合の分散ファイルシステムのファイル中継
を行なうゲートウェイ装置、ゲートウェイ装置にアクセ
ス要求を出力するクライアント計算機、およびprox
yサーバ計算機に関する。
【背景技術】
【0002】 以下の説明で「サーバ計算機」とは、ネ
ットワーク上において何らかのサービスを提供している
計算機をいい、「クライアント計算機」とは、そうした
サーバ計算機のサービスを要求し、受ける計算機をいう
ものとする。また「ファイルオブジェクト」とは、分散
ファイルシステムの利用するネットワークプロトコル
と、ネットワークアドレス(サーバ計算機の名称)と、
ファイル名称と、ファイルの実体との組をいうものとす
る。ここで「ファイルオブジェクトの名称」とは、ネッ
トワークプロトコルとネットワークアドレスとファイル
名称との組のことをいう。
【0003】 従来、上述したような分散ファイルシス
テムにおいては、複数のクライアント計算機からのサー
バ計算機上のファイルオブジェクトに対する読出要求
は、一旦途中のゲートウェイ計算機で中継されていた。
ゲートウェイ計算機がサーバ計算機から読出したファイ
ルオブジェクトは、クライアント計算機に中継される。
それと同時にそれらファイルオブジェクトは、ゲートウ
ェイ計算機内部のキャッシュファイル(固定ディスク、
半導体メモリなど)に蓄積される。そうしたゲートウェ
イ計算機の一例が特開平4−313126号公報(発明
の名称「分散ファイルシステムのファイル入出力方
式」)に開示されている。
【0004】 図15は、この従来の分散ファイルシス
テムを示している。このシステムは、ゲートウェイ計算
機110と、このゲートウェイ計算機110を介して相
互に接続されたサーバ計算機100および複数のクライ
アント計算機120を含む。サーバ計算機100は、複
数のクライアント計算機120によって共有されてい
る。
【0005】 サーバ計算機100は、ファイルを格納
するディスク装置136と、ネットワークを介してディ
スク装置136のファイルの内容を入出力するためのフ
ァイル入出力応答手段134と、ディスク装置136内
のブロック情報をネットワークを介してクライアント計
算機120に応答するためのブロック情報応答手段13
2とを含む。
【0006】 クライアント計算機120は、サーバ計
算機100のブロック情報応答手段132に対してブロ
ック情報要求を送り、ブロック情報を受けるためのブロ
ック情報要求手段152と、ゲートウェイ計算機110
を介してサーバ計算機100のファイル入出力応答手段
134に対してファイル入出力要求を送り、当該ファイ
ルを受信するためのファイル入出力要求手段154とを
含む。
【0007】 ゲートウェイ計算機110は、クライア
ント計算機120(複数)とサーバ計算機100との間
に介在し、サーバ計算機100内のディスク装置136
と、各クライアント計算機120との間のキャッシュメ
モリとして機能するものであり、キャッシュした内容を
格納するためのディスクキャッシュ144と、ファイル
入出力要求手段154およびファイル入出力応答手段1
34の間に介在するキャッシュ管理手段142とを含
む。
【0008】 このシステムは次のように動作する。ま
ず、クライアント計算機120がサーバ計算機100内
のディスク装置136内のファイルにアクセスして1つ
のブロックを読込む場合の動作について説明する。ブロ
ック情報要求手段152は、ゲートウェイ計算機110
を介してサーバ計算機100に対して読込対象のブロッ
クにかかるブロック情報の取得を要求するブロック情報
要求メッセージを発行する。
【0009】 サーバ計算機100内のブロック情報応
答手段132は、このメッセージに応答して、ディスク
装置136から該当するブロック情報を取出し、そのブ
ロック情報を有するブロック情報応答メッセージをゲー
トウェイ計算機110を介してクライアント計算機12
0内のブロック情報要求手段152に返却する。
【0010】 クライアント計算機120のファイル入
出力要求手段154は、返却されたブロック情報に基づ
いて読込対象のブロックの読込を要求するファイルアク
セス要求を、ゲートウェイ計算機110内のキャッシュ
管理手段142に対して発行する。
【0011】 このファイルアクセス要求を受取ったキ
ャッシュ管理手段142は、そのファイルアクセス要求
にかかるブロック情報とディスクキャッシュ144に記
憶されている読込対象のブロックにかかるブロック情報
との比較を行なう。そしてディスクキャッシュ144
に、該当するブロック情報が存在しない場合、または両
方のブロック情報の内容(更新時間)が異なる場合(読
込対象のブロックのキャッシュが有効でない場合)に
は、キャッシュ管理手段142は上述のファイルアクセ
ス要求をサーバ計算機100のファイル入出力応答手段
134に対して発行する。
【0012】 サーバ計算機100のファイル入出力応
答手段134は、このファイルアクセス要求に応答し
て、ディスク装置136内のファイルをアクセスして、
該当するブロックを読込み、ゲートウェイ計算機110
にそのブロックを転送する。
【0013】 キャッシュ管理手段142は、このブロ
ックをディスクキャッシュ144に格納し、そのブロッ
クにかかるブロック情報のディスクキャッシュ144へ
の設定または更新を行なう。キャッシュ管理手段142
は同時に、そのブロックをクライアント計算機120の
ファイル入出力要求手段154に対して転送する。
【0014】 以上でディスクキャッシュ144内に有
効なファイルが存在しない場合のこのシステムの動作に
ついて説明した。
【0015】 次回に同一ファイルに対するアクセス要
求があった場合には、ゲートウェイ計算機110のキャ
ッシュ管理手段142は、ディスクキャッシュ144か
ら当該ブロックを取出し、アクセス要求を発行したクラ
イアント計算機120のファイル入出力要求手段154
に対して当該ブロックを転送する。したがってこの場
合、ゲートウェイ計算機110からサーバ計算機100
に対する転送要求は発行されない。したがって中継アク
セスの高速化が図られる。
【0016】 類似の技術が、特開昭63−20024
4号公報(発明の名称「ファイル・アクセス・システ
ム」)や、特開昭63−20184号公報(発明の名称
「遠隔ファイル・アクセス・システム」)にも開示され
ている。いずれの技術においても、あるファイルオブジ
ェクトに対するアクセス要求が発行された場合に、当該
ファイルオブジェクトの内容が更新されているかどうか
を確認するために、サーバ計算機の保持するファイルオ
ブジェクトの変更時刻をキャッシュファイルの変更時刻
と比較する。そしてキャッシュファイルの内容が古い場
合には、クライアント計算機は更新されたサーバ計算機
の内容を読出すようになっている。しかし、これら2件
の公報に記載された技術では、キャッシュファイルはク
ライアント計算機内に存在しており、特開平4−313
126号公報に開示されたシステムのようにシステム内
にゲートウェイ計算機が含まれているわけではない。
【0017】 しかし、これら3件の従来技術文献は、
サーバ計算機のファイルオブジェクトと、キャッシュさ
れたファイルオブジェクトとの内容が食い違わないよう
な工夫をしているという共通点を持っている。
【0018】 このように本来同一であるべきファイル
の食い違いを防ぐことをインテグリティ(Integrity )
を保つという。また、食い違いの起きたファイルのデー
タをステールデータ(stale data)と呼ぶ。
【0019】 上述した従来の技術の基本は、ネットワ
ーク経由でサーバ計算機の、該当するファイルオブジェ
クトの変更時刻を調べ、対応するキャッシュファイルの
内容の変更時刻と比較するアルゴリズムを使用してい
る。そのため、サーバ計算機に対するネットワーク経由
の問合せを必ず行なわなければならない。ネットワーク
の実効的な転送速度が小さい場合や、該当するファイル
オブジェクトを有するサーバ計算機にかかっている負荷
が高くて即座に応答できない場合には、そうした問合せ
自体にかなり時間がかかってしまうことがある。そのた
めネットワークファイルシステムによっては、このよう
なファイルキャッシュのシステムを採用していない場合
もある。すなわちこうしたシステムでは、サーバ計算機
の保持するファイルオブジェクトが更新されているにも
かかわらず、ゲートウェイ計算機の持つキャッシュ内の
対応するファイルオブジェクトは必ずしも更新されてい
ない。このようなネットワークファイルシステム方式の
代表的なものとして、いわゆるインターネットにおける
HTTP(Hyper Text Transfer Protocol)を使った広
域分散型マルチメディア情報システムがある。
【0020】 インターネットは、その基本プロトコル
としてTCP/IPプロトコルを利用した、グローバル
なネットワークである。インターネット上に構築された
地域分散型マルチメディア情報提供システムは、World
Wide Wed(WWW)と呼ばれる。WWWは、ネットワー
ク上に分散したファイルオブジェクトを扱うことができ
る。これらのファイルオブジェクトは、単なるテキスト
データにとどまらず、画像データ、音声データ、ビデオ
画像データなどさまざまな種類のものを含む。WWW
は、情報提供側にとっても、情報利用者(ユーザ)にと
っても魅力的であるため、ネットワーク上のWWWに関
するトラフィックが爆発的に増加している。WWWシス
テムでは、クライアント計算機のユーザは、グラフィカ
ルユーザインタフェースを持ったブラウザソフトウェア
をクライアント計算機上で実行させるだけで、ネットワ
ーク上に分散したサーバ計算機の保持するさまざまなフ
ァイルオブジェクトで構成された情報を次々とアクセス
することができる。WWWは、このような操作の簡単さ
のために近時めざましい普及をみせている。
【0021】 そしてこのWWWシステムは、TCP/
IPプロトコルの上に構築されたHTTPプロトコルで
ファイルオブジェクトを転送している。
【0022】 HTTPプロトコルを実施する上におい
ては、特開平4−313126号公報に記載されたよう
なゲートウェイ計算機によりファイルオブジェクトを中
継転送することが広く行なわれている。データは、ゲー
トウェイ装置にキャッシュされる。またWWWシステム
では、ファイルオブジェクトの中継転送においてステー
ルデータが発生することは容認されている。すなわちゲ
ートウェイ計算機にキャッシュされている内容が、サー
バ計算機の当該ファイルオブジェクトと一致していない
場合を許容している。
【0023】 キャッシュファイル内のステールデータ
の率をステールデータ率と呼ぶこととする。何らかの方
式でキャッシュファイルの内容を更新しない限り、ステ
ールデータ率は増加する。一般にキャッシュファイルの
ステールデータ率が増加すると、クライアント計算機を
操作しているユーザは、内容が古いと自主的に判断し
て、ファイルオブジェクトをサーバ計算機から再度ロー
ドすることを試みる。この場合、キャッシュファイルの
内容を利用しないプロトコルが用いられる。この結果、
ゲートウェイ計算機内のキャッシュファイルシステムが
意味を持たなくなる傾向がある。
【0024】 一方で、このようなステールデータの発
生を容認するプロトコルの利点もある。クライアント計
算機が、サーバ計算機のファイルオブジェクトのアクセ
スをゲートウェイ計算機に中継依頼してアクセスを行な
った場合、ゲートウェイ計算機のキャッシュファイルに
ヒットした場合には、キャッシュファイルからファイル
オブジェクトが読出されてクライアント計算機に転送さ
れる。サーバ装置に対する当該ファイルオブジェクトの
変更時刻の問合せは不要である。そのため短時間にファ
イルオブジェクトがキャッシュから取出され、クライア
ントに返送される。
【0025】 HTTPプロトコルのようにステールデ
ータを容認するネットワークファイルプロトコルは、全
地球的な広域ネットワークで利用される上で有利な点を
有している。すなわち、ゲートウェイ装置のキャッシュ
に当該ファイルオブジェクトがキャッシュされていれ
ば、サーバ装置に対するアクセスが発生しない。その結
果応答時間短縮を図ることができるという有利な点を持
っている。
【0026】 上述のようにネットワーク上のファイル
オブジェクトのアクセスを高速化し、かつインターネッ
トのトラフィックを低減させるゲートウェイ計算機は特
に「proxyサーバ装置」とも呼ばれている。
【0027】 「proxy」とは「代理人」という意
味である。proxyサーバ装置は、その名のとおり、
クライアント計算機がネットワーク上のサーバ計算機の
ファイルオブジェクトにアクセスする場合に、そのアク
セス要求をサーバ計算機を代理して受付け、ファイルオ
ブジェクトの転送を中継する機能を果たす。proxy
サーバ装置の概念を図16を参照して説明する。
【0028】 proxyサーバ装置13は、たとえば
ある企業内に用いられた内部ネットワーク23と、その
企業外の外部ネットワーク(インターネットなど)25
との間に介在して設けられるものである。内部ネットワ
ーク23は複数個のクライアント計算機24を含み、外
部ネットワーク25は、同じく複数個のサーバ計算機1
1を含んでいる。各サーバ計算機11は、ファイルオブ
ジェクト12を保有している。
【0029】 proxyサーバ装置13は、キャッシ
ュファイル16と、クライアント計算機からリード要求
19を受け、キャッシュファイル16内に当該ファイル
オブジェクトが存在する場合にはそのファイルオブジェ
クトをデータ20として返送し、キャッシュファイル1
6内に当該ファイルオブジェクトの有効なものが存在し
ない場合には外部ネットワーク25を介してサーバ計算
機11に対するリード要求17を発行し、対応するファ
イルオブジェクトをデータ18として受けてクライアン
ト計算機24に対して返送するproxyプロセス14
と、proxyプロセス14によるファイルオブジェク
トの転送記録を記録するアクセスログ15とを含む。p
roxyプロセス14は、サーバ計算機11からファイ
ルオブジェクトを取得したときには、当該ファイルオブ
ジェクトをキャッシュファイル16にも新たに書込む機
能を有している。
【0030】 このproxyサーバ装置13は次のよ
うに動作する。まず、内部ネットワーク23内のクライ
アント計算機24が、外部ネットワーク25上のサーバ
計算機11のファイルオブジェクト12に対するリード
要求19をproxyサーバ装置13内のproxyプ
ロセス14に対して発行する。proxyプロセス14
はこのリード要求19に応答して、キャッシュファイル
16をアクセスし、キャッシュファイル中に当該ファイ
ルオブジェクトのキャッシュデータがあるか否かを判定
する。当該ファイルオブジェクトがキャッシュされてい
れば、proxyサーバ装置13固有のキャッシュファ
イル有効期限と、キャッシュされたファイルオブジェク
トの最終変更時刻とを比較する。キャッシュが有効期限
内であれば、キャッシュファイルからファイルオブジェ
クト読出(22)、そのデータ20を内部ネットワーク
23のリード要求19を発行したクライアント計算機2
4に対して返送する。
【0031】 キャッシュファイル16内に該当ファイ
ルオブジェクトが存在しない場合、および存在していた
としても有効期限が過ぎている場合には、キャッシュフ
ァイル16内に有効なファイルオブジェクトが存在しな
いものと判定される。その場合、proxyプロセス1
4は、外部ネットワーク25のサーバ計算機11に対し
て、ファイルオブジェクト12の読出要求17を発行す
る。これに応答してサーバ計算機11は、ファイルオブ
ジェクト12をデータ18としてproxyプロセス1
4に返送する。proxyプロセス14は、ログファイ
ル15にアクセスログとして、ファイルオブジェクト名
称(すなわちネットワークプロトコル名称と、サーバ計
算機のネットワークアドレス名称と、ファイル名称との
組)と、ファイルオブジェクトのデータの実体(すなわ
ちファイルオブジェクトそのもの)と、書込時刻とを書
込む(26)。
【0032】 proxyプロセス14はさらに、内部
ネットワーク23内のクライアント計算機24にデータ
20を転送し、かつキャッシュファイル16に、当該フ
ァイルオブジェクトを書込む(21)。
【0033】 したがってキャッシュファイル16内に
は、ファイルオブジェクト名称と、ファイルオブジェク
トの実体と、ファイルオブジェクトをサーバ装置から取
得した時刻(最終変更時刻)とが記録されている。
【0034】 proxyサーバ装置は、ヨーロッパ原
子核物理研究所CERNで開発されたhttpdや、日
本の電子技術総合研究所の佐藤豊氏の開発されたDel
eGateなどのソフトウェアを、ネットワーク接続さ
れたUNIX(R)の動くコンピュータ上で実行するこ
とにより実現されることが一般的である。
【0035】 proxyサーバ装置の物理構成を図1
7に示す。proxyサーバ装置は、UNIX(R)の
動作するワークステーション200により構成される。
ワークステーション200は、CPU(中央処理装置)
202と、CPU202に対して内部バス204により
接続されるメモリ206と、ファイル用のI/O(入出
力)装置208と、ルータ210を介して外部ネットワ
ークに接続される第1ネットワークI/Oインタフェー
ス212と、内部ネットワークに接続される第2ネット
ワークI/Oインタフェース214とを含む。I/O装
置208には、キャッシュファイルの蓄積、アクセスロ
グ、および各種ワークファイルの記憶場所として使用さ
れるファイル部216が接続されている。
【0036】 このワークステーション200は、CP
U202が、上述したhttpdやDeleGateと
いうソフトウェアを実行することによりproxyサー
バ装置13を実現する。
【0037】 図18は、proxyサーバ装置の他の
構成例を示す図である。このproxyサーバ装置はワ
ークステーション300からなっている。ワークステー
ション300は、概略、図17のワークステーション2
00と同様の構成であるが、図17の第2ネットワーク
I/Oインタフェース214に代えて、モデム装置30
4に接続されるシリアルポート302を有している点が
異なっている。そしてこのワークステーション300
は、モデム装置304および公衆電話回線網306を介
して内部ネットワークに接続されている。
【0038】 図18において、図17と同一の部品に
は同一の参照番号を付している。それらの名称および機
能も同一である。したがって、ここではそれらについて
の詳しい説明は繰返さない。
【0039】 図19にproxyサーバ装置のさらに
他の構成例を示す。図19のproxyサーバ装置も、
同じくワークステーション400により実現される。こ
のワークステーション400は、概略、図17に示され
るワークステーション200と同様の構成であるが、第
1ネットワークI/Oインタフェース212および第2
ネットワークI/Oインタフェース214に代えて、内
部ネットワーク23に接続された1つのネットワークI
/Oインタフェース402を有している点で異なってい
る。内部ネットワーク23は、ルータ210を介して外
部ネットワーク25に接続されており、また複数個のク
ライアント計算機24にも接続されている。ワークステ
ーション400は、内部ネットワーク23およびルータ
210を介して外部ネットワーク25のサーバ計算機1
1と通信するとともに、内部ネットワーク23およびク
ライアント計算機24を介してユーザ31と通信するこ
とができる。
【0040】 図19と図17とにおいて、同一の部品
には同一の参照符号および名称を与えている。それらの
機能も同一である。したがって、ここではそれらについ
ての詳しい説明は繰返さない。
【0041】 proxyサーバ装置は、既に述べたよ
うに中継データのキャッシュ機構を有する。すなわち、
proxyサーバ装置はその内部に存在するキャッシュ
ファイル装置に、中継するファイルオブジェクトのデー
タをキャッシュする。
【0042】 proxyサーバ装置のキャッシュファ
イルには、proxyサーバ装置固有の有効期限が定め
られている。ファイルオブジェクトがキャッシュに書込
まれてから有効期限内に、同じサーバ計算機上のファイ
ルオブジェクトへのアクセス要求をクライアント計算機
から受取った場合には、キャッシュファイルに以前に書
込まれたファイルオブジェクトを取出してクライアント
計算機に転送する。これによりサーバ計算機に対するア
クセスは発生しない。
【0043】 このようなゲートウェイ装置によるキャ
ッシュの効果を以下具体的に説明する。proxyサー
バ装置はある会社組織に設置し、外部のネットワークと
は64kbpsの速度で接続するものとする。また、こ
のproxyサーバ装置は一方で、10Mbpsの速度
の会社組織内のローカルエリアネットワークに接続され
るものとする。外部と内部のネットワークの速度差は1
桁以上ある。このような例はよく見られる例であり、そ
の典型的な例が図19に示す構成である。
【0044】 このとき、proxyサーバ装置で中継
ファイルオブジェクトをキャッシュするものとして、キ
ャッシュのヒット率をHitrateとする。Hitr
ateは、ファイルオブジェクトに対するアクセス要求
に対してキャッシュが100%ヒットするとき1であ
り、0%ヒットするとき0になる指数である。
【0045】 なお、proxyサーバ装置におけるキ
ャッシュファイルからのデータ読出およびキャッシュフ
ァイルへのデータ書込速度は、ネットワーク速度に比べ
て十分高速であるものとする。すなわち、キャッシュフ
ァイルに対するファイルオブジェクトの入出力に要する
時間は無視できるものとする。
【0046】 このとき、外部ネットワークにあるファ
イルオブジェクトを内部からアクセスするときの平均ア
クセス速度Vaveは次の数1によって表わされる。
【0047】
【数式1】
【0048】 キャッシュファイルが存在しない場合、
Hitrateは0である。したがって平均速度(kb
ps)は、数1から外部ネットワークのアクセス速度6
4kbpsと等しくなる。また、Hitrateが1で
あれば、すなわち100%キャッシュファイルにヒット
するのであれば、平均速度(kbps)は、内部ネット
ワークの速度と等しく10,000kbps(=10M
bps)となる。つまり、ヒット率が高いほどクライア
ント計算機から見た平均アクセス速度は高くなる。ヒッ
ト率と平均アクセス速度との関係を示す数1をグラフ化
したものを図20に示す。
【0049】 ところで、キャッシュヒット率は、キャ
ッシュファイルの量に依存している。すなわち、ファイ
ルオブジェクトをなるべくたくさんキャッシュファイル
の中に蓄積しておけば、再びアクセスされたファイルオ
ブジェクトやキャッシュファイル中に含まれる確率は高
く、ヒット率は高くなる。そうした関係を示すものとし
て、キャッシュヒット率と、キャッシュファイルの蓄積
量との関係を図21にグラフとして示す。図21に示す
ように、キャッシュファイルサイズを小さくすればキャ
ッシュヒット率は0に近く、キャッシュファイルサイズ
を大きくすればキャッシュヒット率は徐々に上昇する。
【0050】 proxyプロセスにおいては、キャッ
シュファイルの内容を維持する方式として、最初のファ
イルアクセスによる書込が起きてから一定期間経過した
ファイルオブジェクトを無効としていく制御方式が取ら
れている。この一定期間を有効期限と呼んでいる。この
有効期限は、proxyサーバ装置を管理する者が実情
に合わせて適切な値を設定する。有効期限を長く取れ
ば、キャッシュファイルに蓄積されるデータ量は増加す
る。その結果、キャッシュのヒット率は高くなる。すな
わち、キャッシュのヒット率を上げるには、キャッシュ
の有効期限を長く取ればよい。
【0051】 なお、キャッシュファイルを格納するフ
ァイル装置の記憶容量は有限であるから、有効期限を無
制限に長くするわけにはいかない。有効期限が過ぎたキ
ャッシュファイルは、何らかのタイミングで消去され
る。このようにキャッシュファイルを消去するまでの時
間を、この明細書では消去時間と呼ぶことにする。
【0052】 本願発明者の実験によれば、キャッシュ
有効期限とキャッシュファイルに蓄積されるファイル量
とほぼ比例する。この関係を図22に示す。これは、内
部ネットワークから外部ネットワークへのアクセス量
が、日によらずほぼ一定であるためである。したがって
次のような関係が成り立つ。
【0053】
【数式2】
【0054】 この関係から、図22に示したように、
キャッシュ有効期限を増やすとキャッシュのヒット率が
高まることがわかる。
【0055】 キャッシュ有効期限とファイルオブジェ
クトの量との関係は、クライアント計算機を利用する内
部ユーザが、外部ネットワーク上のサーバ計算機のファ
イルオブジェクトをアクセスする頻度によって異なる。
キャッシュ有効期限とキャッシュファイル蓄積量とは、
ほぼ比例するものの、その比例係数はネットワーク速
度、内部クライアント計算機ユーザ数などの使用環境に
より変動する。
【0056】 なお、キャッシュファイル1日程度の有
効期限では、キャッシュヒット率は12%程度である。
有効期限を14日にするとキャッシュヒット率は41%
程度になることが経験されている。有効期限14日のと
きにはファイルオブジェクトが700MB程度キャッシ
ュファイルに蓄積されていることが観察されている。
【0057】 また、近年ローカルネットワークの規模
が大きくなり、接続されるクライアント計算機の数が増
大するにつれ、またはクライアント計算機の読出要求が
増大するにつれて、単一のproxyサーバ計算機で
は、各クライアント計算機からの要求に十分に応えるこ
とが難しくなってきている。そこで、複数のproxy
サーバ計算機を組合せて、ファイルオブジェクトに対す
るアクセス処理の効率の向上を図る方式が提案されてお
り実施されている。
【0058】 図23は、複数のproxyサーバ計算
機を用いたシステムの構成例である。proxyサーバ
計算機501は、広域ネットワークとローカルネットワ
ーク間の中継を行ない、ファイルオブジェクトをキャッ
シュする。このproxyサーバ計算機501は、以後
2次キャッシュproxyサーバ計算機と呼ぶ。これに
対して、proxyサーバ計算機503〜508は、1
次キャッシュproxyサーバ計算機と呼ばれ、さらに
分割されたローカルネットワークに接続されるクライア
ント計算機24と2次キャッシュproxyサーバ計算
機501間の中継およびファイルオブジェクトのキャッ
シュを行なう。
【0059】 たとえば、クライアント計算機24から
1次キャッシュproxyサーバ計算機504に対して
ファイルオブジェクトに対する読出要求を出力したとす
る。このとき、1次キャッシュproxyサーバ計算機
504のキャッシュファイル510内に有効なファイル
オブジェクトが存在する場合、1次キャッシュprox
yサーバ計算機504は、キャッシュファイル510よ
りファイルオブジェクトを取出し、読出要求を出したク
ライアント計算機24に送信する。
【0060】 また、1次キャッシュproxyサーバ
計算機504に有効なファイルオブジェクトが存在しな
かった場合、クライアント計算機24からの読出要求は
2次キャッシュproxyサーバ計算機501に中継さ
れる。2次キャッシュproxyサーバ計算機501
は、同様にキャッシュファイル502内の有効なファイ
ルオブジェクトの有無をチェックし、当該ファイルオブ
ジェクトが存在すれば1次キャッシュproxyサーバ
計算機504に送出し、存在しなければ読出要求を広域
ネットワーク61を介してサーバ計算機11に中継す
る。
【0061】 以降の処理は、単体のproxyサーバ
計算機と同様であるので、ここではその詳しい説明は繰
返さない。
【0062】 この方式によって、各々の1次キャッシ
ュproxyサーバ計算機503〜508は、クライア
ント計算機を分担して受け持つことができ、負荷の分散
が図れる。また、2次キャッシュproxyサーバ計算
機501も、各1次キャッシュproxyサーバ計算機
503〜508でキャッシュされていなかったファイル
オブジェクトに関してのみ処理を行なえばよいので、負
荷の軽減が図れる。具体的には、全体でN台のクライア
ント計算機24が存在する場合、従来の方式ではpro
xyサーバ計算機は、N台のクライアント計算機の要求
を処理する必要があったが、この方式では数3で算出さ
れる台数分のクライアント計算機からの要求を処理すれ
ばよいことになる。
【0063】
【数式3】
【0064】 しかしながら、この方式では1台の2次
キャッシュproxyサーバ計算機501が広域ネット
ワーク61に接続されるサーバ計算機11との中継をす
べて行なっており、本質的な負荷の分散が達成されてい
るとは言い難い。
【0065】 また、キャッシュファイルの使用にも無
駄が多い。すなわち、1次キャッシュproxyサーバ
計算機群503〜508の有するファイルオブジェクト
の内容はすべて2次キャッシュproxyサーバ計算機
501も保持していると考えられる。これは、中継経路
上にある2次キャッシュproxyサーバ計算機501
と1次キャッシュproxyサーバ計算503〜508
では必ずファイルオブジェクトがキャッシュされるから
である。また、各1次キャッシュproxyサーバ計算
機同士でも、別の1次キャッシュproxyサーバ計算
機に接続されるクライアント計算機が同一のファイルオ
ブジェクトを読出している場合、同一のファイルオブジ
ェクトを重複して持っている可能性が高い。
【0066】 したがって、分散ファイルシステム全体
でのキャッシュ容量は2次キャッシュproxyサーバ
計算機501のキャッシュファイル502の容量である
といえるので、1台の2次キャッシュproxyサーバ
計算機だけではキャッシュファイルの容量には限界があ
るといえる。
【0067】 このような問題を解決するために、図2
4のような方式が提案され実施されている。
【0068】 この方式では、図23の2次キャッシュ
proxyサーバ計算機501に相当するproxyサ
ーバ計算機は存在しない。各proxyサーバ計算機6
01〜606は、クライアント計算機群を分担して受け
持っている。たとえば、proxyサーバ計算機602
に接続されたクライアント計算機24からの読出要求
は、proxyサーバ計算機602に受信される。ここ
で、proxyサーバ計算機602のキャッシュファイ
ル608に有効なファイルオブジェクトが存在する場
合、当該ファイルオブジェクトを取出し、読出要求を出
したクライアント計算機24に送出する。
【0069】 proxyサーバ計算機602のキャッ
シュファイル608に有効なファイルオブジェクトが存
在しなかった場合、proxyサーバ計算機602はロ
ーカルネットワーク600に接続される他のproxy
サーバ計算機601,603〜606に対し、それぞれ
に接続されるキャッシュファイル607,609〜61
2内に有効なファイルオブジェクトを保持しているかど
うかを問合せる。有効なファイルオブジェクトを保持し
ているproxyサーバ計算機が存在する場合には、た
とえば、proxyサーバ計算機605がキャッシュフ
ァイル611に有効なファイルオブジェクトを保持して
いる場合、proxyサーバ計算機605はproxy
サーバ計算機602に対してファイルオブジェクトを送
信し、proxyサーバ計算機602は当該ファイルオ
ブジェクトを読出要求を出したクライアント計算機24
に送出する。
【0070】 ローカルネットワーク600に接続され
たproxyサーバ計算機601,603〜606のキ
ャッシュファイル607,609〜612に有効なファ
イルオブジェクトが存在しなかった場合、proxyサ
ーバ計算機602は広域ネットワーク61を経由して、
サーバ計算機11にクライアント計算機24からの読出
要求を中継する。
【0071】 以降の処理は、単体のproxyサーバ
計算機と同様であるので、ここでの詳細な説明は繰返さ
ない。
【0072】 この方式により、同一のファイルオブジ
ェクトを複数のproxyサーバ計算機が保持すること
がなくなり、キャッシュファイルの有効利用が図れる。
また、分散ファイルシステム全体でのキャッシュ容量
は、全proxyサーバ計算機601〜606のキャッ
シュファイル607〜612の容量の合計となり、キャ
ッシュの大容量化が図れる。したがって、高いキャッシ
ュヒット率が期待でき、実行転送速度の向上が期待でき
る。
【0073】 また、図25のような方式も提案され実
施されている。図23の方式との違いは、2次キャッシ
ュproxyサーバ計算機705〜707が複数台用意
され、1次キャッシュproxyサーバ計算機711〜
716が2次キャッシュproxyサーバ計算機705
〜707にクライアント計算機群からの読出要求を中継
する場合、その読出要求の要求先であるサーバ計算機7
01,702のアドレス名称によって、たとえば、名称
がxxx.eduならばeduドメインサーバ計算機7
02に対する読出要求と判断して、proxyサーバ計
算機705にアクセス要求を出力する。また、名称がy
yy.comならばcomドメインサーバ計算機702
に対する読出要求と判断してproxyサーバ計算機7
06にアクセス要求を出力する。このように、末尾のド
メイン名称(edu,com等)による簡単なルールで
アクセス要求を中継する2次キャッシュproxyサー
バ計算機705〜707を選択している。
【0074】 その他の処理は単一のproxyサーバ
計算機と同一であるので、ここでの詳細な説明は繰返さ
ない。
【0075】 これにより、同一の2次キャッシュpr
oxyサーバ計算機に読出要求が集中することがなくな
り、負荷の分散が図れる。この方式においても、同一の
ファイルオブジェクトを複数の2次キャッシュprox
yサーバ計算機が保持する必要はなく、キャッシュファ
イルの有効利用が図れる。また、分散ファイルシステム
全体でのキャッシュ容量は全2次キャッシュproxy
サーバ計算機のキャッシュファイルの容量の合計とな
り、キャッシュの大容量化が図れる。したがって、高い
キャッシュヒット率が期待でき、実行転送速度の向上が
期待できる。
【文献1】特開平4−313126号公報
【文献2】特開昭63−200244号公報
【文献3】特開昭63−20184号公報
【発明の開示】 【発明が解決しようとする課題】
【0076】 上述したproxyサーバ装置において
は、キャッシュ有効期限をある程度の長さに設定するこ
とによりキャッシュファイルに蓄積されるファイルオブ
ジェクトの容量が増え、キャッシュヒット率が高まり効
率的なファイルオブジェクトの転送が可能になる。
【0077】 しかし、一方、サーバ計算機のファイル
オブジェクトの内容は、修正変更されることがあるた
め、キャッシュファイルの有効期限が長いと、その期間
内はサーバ計算機内のファイルオブジェクトの内容が変
更されているにもかかわらず、内部ネットワークのクラ
イアント計算機のユーザはキャッシュファイルに蓄積さ
れた古い内容のファイルオブジェクトを読出すことにな
る。
【0078】 たとえば、天気図や電子新聞等のファイ
ルオブジェクトは、同一のファイルオブジェクト名称で
ありながら数時間おきに情報更新されるものが多い。し
たがって、たとえば、キャッシュ有効期限を24時間と
すると、3時間おきに更新される天気図、電子新聞など
の情報は7/8以上の確率で古くて役に立たない情報と
なってしまう。
【0079】 図26は、このような従来のproxy
サーバ装置におけるキャッシュ制御のデータの流れをタ
イムチャートにしたものである。A,B,C,D,E等
の名称は同一ファイルオブジェクト名称でありながら内
容が異なるデータであることを示している。クライアン
ト計算機がproxyサーバ装置経由でアクセス(ユー
ザアクセス(1))すると、サーバ計算機のファイルオ
ブジェクトの内容Bがproxyサーバ計算機によって
キャッシュされ、クライアント計算機にはBが転送され
る。次に、クライアント計算機からユーザアクセス
(2)が送信されると、proxyサーバ装置にキャッ
シュされている内容Bは24時間有効なので、キャッシ
ュヒットしてファイルオブジェクトの内容Bがクライア
ント計算機に転送される。しかしこのときには、既にサ
ーバ計算機内では内容がEとなっているのに、クライア
ント計算機はBという内容の古いデータを見ていること
になる。
【0080】 このようなキャッシュファイルの内容の
うち、外部ネットワークに接続されたサーバ計算機内に
存在する元のデータが変更されている割合をステールデ
ータ率(stale date rate )と呼ぶ。したがって、キャ
ッシュ有効期限を増やすとキャッシュファイルに蓄積さ
れるファイルオブジェクトの容量が増加してキャッシュ
ヒット率が高くなるが、キャッシュファイル内の内容の
ステールデータ率が増加することになる。
【0081】 上述したCERNのhttpdソフトウ
ェアで構成されるproxyサーバ装置であれば、特定
のサーバ計算機のファイルオブジェクトのキャッシュ有
効期限を小さくできるが、この方法ではクライアント計
算機がファイルオブジェクトにアクセスを行なうと、キ
ャッシュ有効期限が短いためキャッシュにミスヒットし
てからサーバ計算機にファイルオブジェクトに対するア
クセスを行なうことになる。したがって、クライアント
計算機のユーザは、proxyサーバ計算機によるキャ
ッシュの恩恵を受けられず、広域ネットワークによる低
速なファイルオブジェクト転送が終了するまで待たされ
ることになる。
【0082】 したがって上述した従来の技術では、キ
ャッシュファイルの中のファイルオブジェクトの内容の
新鮮さとキャッシュヒット率の維持はそれぞれ相反する
問題となる。
【0083】 一般に、キャッシュファイルのステール
データ率が増加すると、クライアント計算機のユーザは
内容が古いはずであると自主的に判断してファイルオブ
ジェクトをサーバ計算機から直接ロードするようにな
る。この場合キャッシュファイルを通り越して、実際に
サーバ計算機からロードすることを指定するプロトコル
が利用される。その結果、proxyサーバ計算機のキ
ャッシュファイルが意味を持たなくなることになる。
【0084】 また、従来よりproxyサーバ計算機
の負荷を分散する方法として、上述したように図23〜
図25の方式が提案されている。しかしいずれの場合に
も十分に負荷が分散されているとはいえない。図23に
示す方式では、1台の2次キャッシュproxyサーバ
計算機501が広域ネットワークに接続されているサー
バ計算機との中継をすべて行なっているので、負荷の分
散が達成されているとはいえない。
【0085】 図24の方式では、proxyサーバ計
算機601〜606と広域ネットワーク61との間の経
路が多重化されていない。また、ローカルネットワーク
600に接続されるproxyサーバ計算機601〜6
06は、この方式に対応した特殊なプロトコルを理解す
るものに置き換える必要がある。
【0086】 図25の方式では、1次キャッシュpr
oxyサーバ計算機711〜716は、ドメイン名等の
単純なルールで分散を行なうので、2次キャッシュpr
oxyサーバ計算機705〜707間での負荷の偏りが
生じる。
【0087】 本発明は、上記問題点を解決するために
なされたもので、その目的は、ファイルオブジェクトに
対するアクセス要求を分散して経路を有効に利用し、ス
ループットを向上させ、さらにローカルネットワーク上
の通信量を削減することである。
【発明を実施するための最良の形態】
【0097】 [実施の形態1] 本発明が適用されるゲートウェイ装置(proxyサー
バ装置と呼ぶ)は、ネットワークインタフェースを備え
たUNIX(R) OSの動作する計算機によって、以
下の説明および図面を参照すれば容易に実現可能であ
る。そうしたproxyサーバ装置の構成の一例は、図
19に示したとおりである。図19のproxyサーバ
装置については既に説明したので、その構成についての
詳細な説明はここでは繰返さない。
【0098】 通常は、ユーザ31がクライアント計算
機24を使用してproxyサーバ装置(図19におけ
るproxyサーバ装置400)に対して、サーバ計算
機11のファイルオブジェクト10にを取得するようネ
ットワーク23を経由して依頼を出す。ファイルオブジ
ェクト12は、前述したようにプロトコル名称と、サー
バ計算機のネットワークアドレスと、ファイルオブジェ
クトの名称と、ファイルデータの実体との組からなって
いる。
【0099】 図1に本願発明に係るproxyサーバ
装置の第1の実施の形態における装置53のシステム構
成を示す。proxyサーバ装置53は、内部ネットワ
ーク23および外部ネットワーク25に接続された第1
のproxyプロセス14と、第1のproxyプロセ
ス14が使用するキャッシュファイル16と、第1のp
roxyプロセス14が、アクセスログ(転送記録)と
してファイルの名称を記録するアクセスログ15と、ア
クセスログ15の末尾から順次取出して格納し、先に格
納されたアクセスログから順に出力するFIFOバッフ
ァ35と、予め作成されたアクセスパターンリストを格
納するパターンファイル30と、FIFOバッファ35
からアクセスログを取出してパターンファイル30に格
納されたアクセスパターンと比較し一致する場合にはこ
のアクセスログをメモリバッファURLBUF(URL
については後述する)に格納するキャッシュ更新プロセ
ス36と、URLBUFに格納されたアクセスログに含
まれるファイルオブジェクト名称をもとに、当該ファイ
ルオブジェクトをサーバ計算機11から取得してキャッ
シュファイル16に格納する第2のproxyプロセス
34とを含む。
【0100】 第1のproxyプロセス14と、第2
のproxyプロセス34と、キャッシュ更新プロセス
36とはいずれも、たとえば図19に示すメモリ206
内にプログラムとして格納され、CPU202によって
これを実行することにより実現される。
【0101】 第1のproxyプロセス14が、特許
請求の範囲に記載の転送手段に相当し、キャッシュファ
イル16がキャッシュファイル手段に相当し、アクセス
ログ15がファイル転送記録手段に相当する。また、キ
ャッシュ更新プロセス36と、パターンファイル30
と、FIFOバッファ35と、第2のproxyプロセ
ス34とによりキャッシュ更新手段が構成される。
【0102】 第2のproxyプロセス34は、本願
発明に係るゲートウェイ装置に特有なものであるが、次
のような条件に従って起動される。
【0103】 (1) 第2のproxyプロセス34
は、第1のproxyプロセス14と共通のキャッシュ
ファイル16を使用する。
【0104】 (2) 第2のproxyプロセス34
のキャッシュ有効期限は0に設定される。すなわち、第
2のproxyプロセスを経由するサーバ計算機11へ
のアクセスは、必ず外部ネットワーク25内のサーバ計
算機11に対して行なわれ、ファイルオブジェクトを取
得してキャッシュファイル16に格納する。
【0105】 図1に示すproxyサーバ装置53の
動作について以下説明する。内部ネットワーク23内の
クライアント計算機24が、このproxyサーバ装置
53に対してネットワークアクセス要求19を与えるも
のとする。第1のproxyプロセス14が、このネッ
トワークアクセス要求19を受け取り、まずI/Oイン
タフェース202(図17、図18、図19参照)を経
由してファイル装置216内に存在するキャッシュファ
イル16をアクセスする(21)。また第1のprox
yプロセス14は、このネットワークアクセス要求とキ
ャッシュファイル16内のファイルオブジェクト名称と
を比較し(22)、一致しているか否かを判定する。一
致したものがあれば第1のproxyプロセス14はさ
らに、当該ファイルオブジェクトのキャッシュファイル
16内の最終変更時刻を抽出し(22)、現在の時刻と
比較する。そして現在の時刻が、当該ファイルオブジェ
クトの最終変更時刻を起点とする有効期限内であれば、
キャッシュファイル16から当該ファイルオブジェクト
を抽出し(22)、ネットワークI/Oインタフェース
402を経由してクライアント計算機24にファイルオ
ブジェクトを返す(20)。
【0106】 該当するファイルオブジェクトがキャッ
シュファイル16内に存在していない場合、または存在
していてもそのキャッシュ有効期限が切れている場合に
は、第1のproxyプロセス14は、ネットワークI
/Oインタフェース402を経由して外部ネットワーク
25のサーバ計算機11にファイルオブジェクト転送要
求17を送る。このときのサーバ計算機11は、当該フ
ァイルオブジェクト内のネットワークアドレス名称によ
り特定される。
【0107】 該当するサーバ計算機11は、要求され
たファイルオブジェクトを第1のproxyプロセス1
4に返送する(18)。すなわちこのファイルオブジェ
クトが第1のproxyプロセス14により取得され
る。
【0108】 第1のproxyプロセス14は、この
ファイルオブジェクトをキャッシュファイル16にその
最終変更時刻とともに書込み(21)、アクセスログ1
5にこのファイルオブジェクトの名称を記録する(2
6)。
【0109】 一方、本願発明のproxyサーバ装置
53は、キャッシュ更新プロセス36と第2のprox
yプロセス34とをCPU202により処理走行させて
ファイルオブジェクトを更新する点において従来のpr
oxyサーバ装置と相違する。
【0110】 キャッシュ更新プロセス36および第2
のproxyプロセス34は次のように動作する。第1
のproxyプロセス14によってアクセスログファイ
ル15に格納されたアクセスログの末尾からFIFOバ
ッファ35に順に格納される(28)。FIFOバッフ
ァ35は、先に格納されたアクセスログから順に出力す
る(27)。キャッシュ更新プロセス36は、FIFO
バッファ35からアクセスログを1行ずつ抽出し、メモ
リバッファに格納する。キャッシュ更新プロセス36
は、メモリバッファからアクセスログを取出し、それぞ
れのアクセスログをもとにキャッシュにヒットしている
か否かを判定する。キャッシュにヒットしていればさら
に、パターンファイル30からアクセスパターンリスト
を抽出し(29)、アクセスログに含まれるファイルオ
ブジェクト名称がアクセスパターンリストと一致してい
るものを抽出する。またキャッシュ更新プロセス36
は、抽出したファイルオブジェクトのうちファイルオブ
ジェクト名称が特定のパターンに一致するものは除外し
て、これをメモリバッファURLBUFに格納する。
【0111】 第2のproxyプロセス34は、UR
LBUFが空でないならば、URLBUFに格納された
ファイルオブジェクト名称をもとに(31)、サーバ計
算機11にアクセスし(32)、当該ファイルオブジェ
クトを取得して(33)キャッシュファイル16に格納
する(37)。これによりキャッシュファイル16内の
ファイルオブジェクトが最新の内容に維持される。
【0112】 このように、第2のproxyプロセス
34を起動すると、大きく次の2つの効果を得ることが
できる。
【0113】 (1) 第1のproxyプロセス14
では、キャッシュファイルの有効期限がある値に設定さ
れており、ファイルオブジェクトのキャッシュ更新処理
をこの第1のproxyプロセス14を用いて行なった
とすると、キャッシュファイル16にヒットしてしまう
可能性が高い。これでは、外部ネットワーク25のサー
バ計算機11のファイルオブジェクトに対するアクセス
が行なわれないので、キャッシュファイル16の更新が
実現できない。
【0114】 一方、第2のproxyプロセス36
は、キャッシュ有効期限が0になっており、第2のpr
oxyプロセス36に対してアクセス要求を出せば、こ
のキャッシュファイルはミスヒットしたことになるの
で、外部ネットワーク25を介してサーバ計算機11に
対するファイルオブジェクトのアクセスが行なわれ(3
2)、当該ファイルオブジェクトは第2のproxyプ
ロセス34に転送される(33)ことによって、キャッ
シュファイル16中のファイルオブジェクトは最新の状
態に更新される。
【0115】 (2) 第1のproxyプロセス14
は、アクセスログを残すが、このアクセスログをもとに
キャッシュ更新アクセスをするべきファイルオブジェク
トが抽出される。したがって、もしキャッシュ更新プロ
セス36が第1のproxyプロセス14を使用してサ
ーバ計算機11のファイルオブジェクトのアクセスを行
なうと、その結果として生成されるアクセスログがアク
セスファイル15に記録されてしまう。キャッシュ更新
プロセス36は、次回の更新アクセス動作においてアク
セスログファイル15に格納されたアクセスログをもと
にアクセスすべきファイルオブジェクト名称を抽出す
る。したがって、再度同じファイルオブジェクトをサー
バ計算機11から取得することになり、同一のファイル
オブジェクトが多重に出現するループ動作が起きてしま
うことになる。これを避けるために第2のproxyプ
ロセス34を動作させ、第2のproxyプロセス34
を利用したキャッシュ更新アクセス動作を行なう。
【0116】 本発明を非常に有効に適用できる例とし
て、インターネット上のWWWシステムがある。WWW
システム上でのproxyサーバ装置において、本願発
明のキャッシュ更新プロセスを行なう手順を以下に説明
する。
【0117】 WWWシステムでは、ネットワーク上に
分散したファイルオブジェクト名称はUniform Resource
Locator(URL)と呼ばれる形式で表現され、特定さ
れる。URLの一例を次に示す。
【0118】
【数式4】
【0119】 数4においては「http」は使用する
プロトコルを示す。「www.xxx.co.jp」
は、ネットワーク上のHTTPサーバ計算機のアドレス
を示すものであり、ネットワーク上で同一のものはない
よう選ばれている。また「/test/index.h
tml」はサーバ計算機内のファイル名称を示す。
【0120】 第1のproxyプロセス14として一
般に利用されているDeleGateを使用する場合
は、そのアクセスログの例は次のように、クライアント
計算機名称、時刻、“HTTPプロトコル(ファイル取
得要求)”、その他、およびキャッシュヒット状況(キ
ャッシュヒットした場合H)などとなる。以下に、その
アクセスログの例を示す。
【0121】
【数式5】
【0122】 数5に示すアクセスログは、図2に示す
ような、出願人がインターネット上で公開している情報
ページへアクセスした場合のアクセスログに相当する。
図2に示されるページは、テキストと、6個のグラフィ
ックデータとから構成されているので、このページに対
するアクセスを1回行なうと、6個のグラフィックデー
タに対するアクセスを含む7つのアクセスログが形成さ
れる。すなわち、上述のアクセスログにおいて第1行目
はこの情報ページのテキストに対するアクセス要求であ
り、残りの6行は表紙に貼り込まれた出願人会社のロゴ
のグラフィックデータ(sharpcolor.gi
f)、出願人会社内の情報システム事業本部と呼ばれる
事業部のロゴ(isg.gif)、出願人会社の4つの
製品の写真のグラフィックデータ(Zaurus.gi
f,Shoin.gif,Prostation.gi
f,S2.gif)の取得要求を示している。
【0123】 HTTPプロトコルは、コマンド文字列
(GET等)と、URLと、プロトコルバージョン
(「HTTP/1.0」等)から構成されている。以下
はその一例である。
【0124】
【数式6】
【0125】 HTTPプロトコルについては、最後に
掲げる表内に示された参考文献のうち、参考文献3およ
び参考文献4に記載されている。キャッシュ更新プロセ
スの実施手順について以下に説明するが、そのための前
提条件は次の(1)および(2)となっている。
【0126】 (1) 第1のproxyプロセス14
は、キャッシュ有効期限M(時間)で起動する。たとえ
ばM=24時間とする。
【0127】 (2) 第2のproxyプロセス34
は、(i)キャッシュファイルを第1のproxyプロ
セス14のものと共有し、(ii)キャッシュ有効期限
を0に設定する、という2つの条件に従って起動され
る。
【0128】 このような条件の下に、本願発明のキャ
ッシュ更新プロセスを毎日一定時刻に起動し、一定時刻
に終了する。毎日一定時刻にキャッシュ更新プロセスを
自動起動するには、UNIX(R) OSに備わってい
るタイマ機能(cron)を使用する。これは、UNI
X(R) OSに関連してよく知られている機能である
ので、その詳細についてはここでは説明しない。なお、
UNIX(R) OS以外のOSでも、同様の機能が提
供されていることが多い。
【0129】 図3は、本願発明のキャッシュ更新プロ
セスの処理手順を示すフローチャートである。このプロ
セスを実現するためのプログラムは、たとえば図19の
メモリ206内に配置され、CPU202によって実行
される。このプロセスとネットワークおよびファイル装
置216との入出力には、それぞれネットワークI/O
インタフェース402とI/Oインタフェース208と
が使用される。
【0130】 まず、ステップS1において第1のpr
oxyプロセス14が、アクセスログファイル15に格
納されるアクセスログの末尾を1行読出す。読出せない
場合は、アクセスログが読めるまで待機する。UNIX
(R)では、このようなアクセスログの末尾を呼出す機
能は、OSとともに提供されているコマンドtailで
可能であり、その標準出力から1行読出し、メモリ内に
確保された文字列バッファであるLINEバッファに1
行格納するには、以下のように行なう。ここで、第1の
proxyプロセス14が格納したアクセスログが/u
sr/local/etc/telegated/lo
gs/10001.httpであるとする。これは図1
のアクセスログファイル15に格納されるアクセスログ
に相当する。
【0131】
【数式7】
【0132】 数7のtail −fによる1行読出
は、図1の27に相当するが、これはソフトウェアによ
るFIFOバッファ35を構成しており、読出ポインタ
および書込ポインタをそれぞれ有している。
【0133】
【数式8】
【0134】 すなわち、第1のproxyプロセス1
4が書込むアクセスログは、1個のファイルオブジェク
ト転送ごとに1行発生するが、このとき書込ポインタ
(wp)を1行進める。また、ソフトウェアによるFI
FOバッファ35がtail −fでアクセスログを1
行読出せば、読出ポインタ(rp)を1行進める。第1
のproxyプロセス14による書込速度(行/秒)
と、キャッシュ更新プロセス36におけるtail −
fによる1行読出速度(行/秒)が一致していなくても
よい。第1のproxyプロセス14によるアクセスロ
グ書込速度が大きくなると、書込ポインタ(wp)は先
に進むが、キャッシュ更新プロセス34によってこれを
読出ポインタ(rp)が追いかけながらアクセスログが
読出される。アクセスログ書込速度が小さいか、読出側
のキャッシュ更新プロセス34の処理が進行すれば、や
がて読出ポインタ(rp)が書込ポインタ(wp)に追
いつくことになる。これが、ソフトウェアFIFOバッ
ファとしての動作である。
【0135】 次に、LINEバッファに格納された1
行のアクセスログ情報は過去にアクセスされたファイル
オブジェクトの記録であるので、以下のような条件でキ
ャッシュ更新アクセスを行なうべきファイルオブジェク
ト名称を含むものを選択する。この選択処理を、以後フ
ィルタリングと呼び、図3に示すフローチャートのステ
ップS2に相当する。このフィルタリングのルールは以
下のとおりである。
【0136】 (1) HTTPコマンド文字列がファ
イルオブジェクトに対するリード要求(GET)である
もの。
【0137】 (2) ファイルオブジェクト名称のプ
ロトコル部分がhttpであるもの。
【0138】 (3) キャッシュにヒットしたアクセ
スであるもの。
【0139】 (4) ファイルオブジェクト名称がキ
ャッシュ更新アクセスに適さないものを除外する。
【0140】 (5) 特定の文字列パターンを含むア
クセスリストとファイルオブジェクト名称が一致するも
の。
【0141】 以上の(1)〜(5)の条件を用いてフ
ィルタリングを行ない、ファイルオブジェクト名称のフ
ィールドだけを取出して、キャッシュ更新アクセスでフ
ァイルオブジェクト名称を抽出する。
【0142】 ファイルオブジェクト名称のプロトコル
部分がhttpのもののみ抽出するのは、第1のpro
xyプロセス14および第2のproxyプロセス34
として一般的に利用されているDeleGateソフト
ウェアがキャッシュファイルを生成するプロトコルはh
ttpプロトコルのみであるので、そのファイルオブジ
ェクトのみはキャッシュ更新アクセスする意味があるか
らである。それ以外のプロトコルによるアクセスはファ
イルオブジェクトがキャッシュされないので、キャッシ
ュ更新アクセスをする意味がない。
【0143】 キャッシュにヒットしたもののみを抽出
するのは、キャッシュにヒットしていないファイルオブ
ジェクトはサーバ計算機11へのアクセスが行なわれた
ものと解釈されるので、その直後にキャッシュ更新アク
セスを行なう必要はないと判断されるからである。
【0144】 ファイルオブジェクト名称が、キャッシ
ュ更新アクセスに適さないものとしては、URL中に
「?」を含むものなどがある。「?」を含むURL表記
は、サーバ計算機11に対してクライアント計算機24
を使用するユーザが文字列を人手で入力する場合などに
使われるため、この文字を含むURL表記を有するファ
イルオブジェクトをキャッシュ更新アクセスの対象とす
ると、予期せぬ結果を招くおそれがある。
【0145】 特定の文字列パターンを含むアクセスリ
ストと一致するもののみを選ぶのは、サーバ計算機にお
いて頻繁に内容更新が行なわれるものである天気図、電
子新聞等を提供しているサーバ計算機など特定のもので
あることが多い。そこで、そのようなサーバ計算機のフ
ァイルオブジェクトを指定するような文字列パターンを
格納したアクセスリストと一致したものだけをキャッシ
ュ更新アクセスの対象とすることによって、不要なキャ
ッシュ更新アクセスを極力削減するためのものである。
【0146】 このような文字列パターンを格納したパ
ターンファイル30を、ここでpattern.txt
とし、その内容を数9に示すものとする。
【0147】
【数式9】
【0148】 UNIX(R)では、このようなファイ
ルオブジェクト名称の抽出作業は、OSとともに提供さ
れているコマンド群である数10を用いて行なうことが
できる。
【0149】
【数式10】
【0150】 たとえば、次のようなコマンドを入力す
ることにより、ステップS2の処理を経たものがメモリ
上の文字列バッファURLBUFに出力される。
【0151】
【数式11】
【0152】 なお、上述したフィルタリングルールに
反していれば、文字列バッファURLBUFは空にな
る。この間の経過を以下に説明する。第1のproxy
プロセス14により作成されたアクセスログファイル1
5の形式は既に述べたように次のとおりである。
【0153】
【数式12】
【0154】 キャッシュヒット時には“H”という文
字がキャッシュヒット状況として行の末尾に出力され
る。
【0155】 まず、grep −v”\?”に入力す
ることで、?を含まない行を抽出し標準出力に出力す
る。それをさらにgrep”\”GET”でその行がフ
ァイルオブジェクト取得要求であるGETコマンドであ
る行のみ抽出し、標準出力に出力する。さらにgre
p’H$’に入力することで行末が「H」で終了する、
すなわちキャッシュにヒットしたものを選び標準出力に
出力する。ここで、$は行の末尾を表現する正規表現で
ある。
【0156】 さらに空白がフィールド間の区切である
と考えると、7番目のフィールドがファイルオブジェク
ト名称に相当するので、awk’{print$7}’
を使ってファイルオブジェクト名称のみを抽出してい
る。
【0157】 さらに、ファイルオブジェクト名称部分
が、予め用意されたパターンファイルpattern.
txtの中のいずれかの行に一致するか否かをfgre
p −f pattern.txtによりマッチングを
行なってその結果を文字列バッファURLBUFに出力
する。
【0158】 ステップS3では、文字列バッファUR
LBUFが空でないか否かを判定する。もし文字列バッ
ファURLBUFが空の場合には、ステップS1に戻
り、空でない場合にはステップS4へ進む。
【0159】 ステップS4では、第2のproxyプ
ロセス34によって、キャッシュ更新プロセス36で抽
出されたファイルオブジェクトをサーバ計算機11から
取得する。文字列バッファURLBUFに格納されたキ
ャッシュ更新アクセスの対象であるファイルオブジェク
ト名称に基づいて、第2のproxyプロセス34はサ
ーバ計算機11へアクセスするための子プロセスを起動
する。子プロセスをキャッシュ更新子プロセスと呼ぶ。
キャッシュ更新子プロセスは、第2のproxyプロセ
ス34を通じてネットワーク接続をサーバ計算機11に
対して行なう。これにより、サーバ計算機11に格納さ
れるファイルオブジェクトへのアクセスが発生し、キャ
ッシュファイル16の内容が更新される。この処理の詳
細は後述する。
【0160】 ステップS5では、現在の時刻を調べ、
指定時刻が過ぎていればプロセスを終了する。指定時刻
を過ぎていなければステップS1に戻り、以上の処理を
繰返す。
【0161】 以上が、本願発明の第1の実施の形態に
おけるproxyサーバ装置におけるアルゴリズムであ
る。図7は、proxyサーバ計算機53のキャッシュ
有効期限が24時間で、サーバ計算機11のファイルオ
ブジェクトが同一名称でありながら、内容が3時間おき
に更新される場合のファイルオブジェクトのデータがキ
ャッシュされるようすを示している。
【0162】 まず、ユーザアクセス(1)が発生した
ときに、キャッシュファイル16に該当するファイルオ
ブジェクトがなかったとすると、サーバ計算機11から
データBがアクセスされ、キャッシュファイル16に書
込まれるとともに、クライアント計算機24に転送され
る。
【0163】 次に、ユーザアクセス(2)が発生する
と、キャッシュにヒットしたデータBがクライアント計
算機24に転送される。このとき、サーバ計算機11は
データDになっているので、クライアント計算機24は
3時間程度古いステールデータを読んだことになる。し
かし、この動作の結果アクセスログファイル15にファ
イルオブジェクト名称とキャッシュにヒットしたという
情報を含むアクセスログが記録されるので、図3を用い
て説明した動作に従い、proxyサーバ装置53が自
発的にサーバ装置11にアクセスし、データEを読出し
キャッシュファイル16を更新する。
【0164】 さらに、ユーザアクセス(3)が起きる
と、キャッシュされたデータEがクライアント計算機2
4に転送される。この動作をきっかけにしてアクセスロ
グファイル15にファイルオブジェクト名称とキャッシ
ュにヒットしたという情報を含むアクセスログが記録さ
れるので、図3を用いて説明した動作に従い、prox
yサーバ装置53が自発的にサーバ計算機11にアクセ
スし、データIを読出してキャッシュファイル16を更
新する。
【0165】 したがって、ユーザアクセス(4)が起
きると、キャッシュされたデータIがクライアント計算
機24に転送される。
【0166】 以上の動作からわかるように、クライア
ント計算機24はステールデータを読んでいることに変
わりがないが、図26の場合に比べると最新に近い情報
を読んでいることになる。ユーザによるアクセスの間隔
が3時間以内であれば、ステールデータは発生する確率
が非常に低くなり、サーバ計算機11の最新の情報を得
ることが可能になることが理解できる。
【0167】 なお、図3のステップS4のネットワー
クアクセス部の実現方法としては、キャッシュ更新プロ
セスから直接HTTPプロトコルを発生させればよい
が、UNIX(R)では広く一般に利用されているly
nx等のWWWクライアントプログラムを利用すれば、
HTTPを発生するキャッシュ更新プロセスを新たに製
作しなくてもHTTPに従ったネットワークアクセスを
行なうキャッシュ更新プロセス操作を実現できる。その
方法を以下に説明する。
【0168】 lynxはUNIX(R) OSの上で
動作するプログラムであるので、以下の説明ではUNI
X(R)の記述を使用する。
【0169】 lynxでは次のコマンドを指定すれ
ば、指定URLを読出してtemp_fileというフ
ァイルに書込むことができる。
【0170】
【数式13】
【0171】 さらに、proxyプロセス経由のアク
セスも、UNIX(R) OSの環境変数http_p
roxyを設定することにより、lynxから利用可能
である。また、proxyプロセスがDeleGate
のようなproxyソフトウェアであれば、URL表記
にproxyを指定することによりproxy経由のア
クセスが可能である。これについては参考文献12を参
照されたい。
【0172】 後者の方式を採用する場合について以下
に説明する。proxyプロセスが、ネットワークアド
レスがproxyserverであるゲートウェイ計算
機のTCP/IPの10001番のポート番号を利用し
ているプロセスであるならば、このproxyプロセス
経由でサーバ計算機11のファイルオブジェクトhtt
p://www.xxx.co.jp/test/in
dex.htmlにアクセスするためには次の数14の
コマンドを指定すればよい。
【0173】
【数式14】
【0174】 したがって、本願発明を実施する際に
は、同様にしてproxyプロセスを第2のproxy
プロセス34のポート番号に設定すればよい。
【0175】
【数式15】
【0176】 本願発明では、このようなファイルオブ
ジェクト(URL)のキャッシュ更新アクセスにより、
第1のproxyプロセス14の管理するキャッシュフ
ァイル16を最新状態に保つことが目的である。したが
って、temp_file自体は利用しないので捨てて
よい。OSがUNIX(R)であれば、空ファイルとし
て/dev/nullが準備されているので、このファ
イルに書込むようにすれば実際にはファイルの生成は行
なわないので効率的である。
【0177】 次に、第1のproxyプロセス14お
よび第2のproxyプロセス34のキャッシュ管理手
法について説明する。proxyプロセスのキャッシュ
管理手法は、参考文献5、参考文献12にあるような公
知の技術であるキャッシュ制御機能を持ったDeleG
ateなどにおけるものである。DeleGateにお
けるキャッシュ管理手法は、ソースコードの形で公開さ
れているので以下にその手法を述べる。なお、本願発明
はこれと同様のキャッシュ管理手法が使われているキャ
ッシュ機能付proxyサーバソフトウェアであれば、
第1のproxyプロセス14および第2のproxy
プロセス34として適用可能である。
【0178】 上述したように、第2のproxyプロ
セス34がproxyserverという名称のシステ
ムで動作しており、TCP/IPの10001番でUR
L取得要求を受付けるものとする。このとき、文字列バ
ッファURLBUFに指定URL表記が格納されている
場合に、キャッシュ更新プロセス36は、数16に記載
のコマンドを実行することでtemp_fileに指定
URLのファイルオブジェクトが格納されると述べた。
【0179】
【数式16】
【0180】 なお、第2のproxyプロセス34と
キャッシュ更新プロセス36の通信はTCP/IP、た
とえばUNIX(R)のメッセージ通信で行なわれる。
【0181】 たとえば、文字列バッファURLBUF
にhttp://www.sharp.co.jp/s
ample/test.htmlという文字列が格納さ
れているとする。キャッシュ更新プロセス36が数16
のコマンドを実行すると、キャッシュ更新プロセス36
はURL取得要求を第2のproxyプロセス34に出
力する。第2のproxyプロセス34は、子プロセス
を生成し、この子プロセスにURL取得の処理を任せて
自身のプロセスは再びキャッシュ更新プロセス36から
のURL出力要求を待つ。キャッシュ更新プロセス34
による数16の実行によりURL取得を実行する第2の
proxyプロセス34が生成した子プロセスは、図4
のフローチャートに示す処理を行なう。
【0182】 以下、第2のproxyプロセス34が
生成した子プロセスの動作を図4のフローチャートを用
いて説明する。
【0183】 proxyプロセスでは、キャッシュフ
ァイル16を持っているが、それは通常のUNIX
(R)ファイルシステムの一部として作られる。キャッ
シュ用ディレクトリとして/cacheというパーティ
ションを使用するとすると、数17に示すようにプロト
コル名称がhttp、サーバ計算機名称www.sha
rp.co.jp、ファイルオブジェクトの実体部分が
sample/test.htmlとなる。
【0184】
【数式17】
【0185】 このとき、キャッシュファイルは次の数
18に示す名称規則でキャッシュファイルを生成しよう
とする。
【0186】
【数式18】
【0187】 したがって、http://www.s
harp.co.jp/sample/test.ht
mlは数19に示すファイルとなる(S11)。
【0188】
【数式19】
【0189】 proxyプロセスはまず、数19に示
すファイル名称に変換し、そのファイルが存在するかど
うかOSのopen( )のシステムコールにより既存
のファイルがオープンできるかどうかにより調べる(S
12)。ファイルが存在しなければ、ファイル新規作成
モードで数19に示すファイル名のキャッシュファイル
を作成する(S13)。また、キャッシュファイルに対
して排他制御を行なって、他のプロセスが書込めないよ
うに排他ロックする(S14)。
【0190】 次に、ネットワークを経由してURLで
指定されたファイルオブジェクトをサーバ計算機11か
ら取得する(S15)。取得したファイルオブジェクト
をクライアント計算機24へ転送するとともにファイル
オブジェクトを数19に示すファイル名称のキャッシュ
ファイルに書込む(S16)。続いて、キャッシュファ
イルをクローズして排他ロックを解除する(S17)。
【0191】 上記処理では、キャッシュファイルを排
他ロックしているが、この排他制御はOSがUNIX
(R)であればシステムコールであるflock( )
関数を使って排他ロックできる。排他制御を使用する理
由は、proxyプロセスは1つのファイルオブジェク
トの転送ごとに子プロセスを起動してその子プロセスに
キャッシュ制御を行なわせるため、同じキャッシュファ
イルシステムに対して子プロセス間で競合が発生する場
合があるからである。
【0192】 なお、キャッシュファイルに書込んだと
き、ファイル変更時刻Tmがファイル(数19)の属性
として記録される。ファイル更新時刻Tmは、UNIX
(R) OSのファイルシステムを管理するOSがファ
イルの属性として必ず付加するものである。すなわち、
キャッシュファイルは通常のOSのファイルシステムを
そのまま使用しており、何ら特殊なファイルシステムで
はない。
【0193】 次に、キャッシュファイルが既に存在し
た場合を説明する(S19〜S26)。
【0194】 キャッシュファイル/cache/ht
tp/www.sharp.co.jp/sample
/test.htmlの最終変更時刻TmをOSから読
出す。最終変更時刻は、UNIX(R)であれば、fs
tat( )システムコールで得られるもので、過去か
ら未来に向かって単調に増加する関数である(S1
9)。
【0195】 現在時刻をシステムコールから読出しT
nowという変数に格納する(S20)。現在時刻Tn
owは、OSのシステムコールから得られる。最終変更
時刻Tmと、現在時刻Tnowを比較し、キャッシュ有
効期限以内かどうかを判定する(S21)。キャッシュ
有効期限以内であれば、キャッシュファイルを共有排他
ロックして他のプロセスからの書込はできないが、読出
はできるようにする(S22)。そして、既にあるキャ
ッシュファイルを読出し、クライアント計算機24に転
送する(S23)。さらに、キャッシュファイルをクロ
ーズし、共有排他ロックを解除する(S17)。
【0196】 また、キャッシュ有効期限を過ぎている
場合は、キャッシュファイルに対して排他制御を行なっ
て、他のプロセスが書込めないように排他ロックする
(S24)。次に、ネットワーク経由でURLで指定さ
れたファイルオブジェクトをサーバ計算機11から取得
する(S25)。取得したファイルオブジェクトをクラ
イアント計算機24へ転送するとともに、ファイルオブ
ジェクトをキャッシュファイル(数19)に書込む(S
26)。そして、キャッシュファイルをクローズして排
他ロックを解除する(S17)。
【0197】 以上が、一般にソースコードが公開さ
れ、よく知られているproxyプロセスのキャッシュ
制御手順であるが、本願発明ではこの性質を利用して、
キャッシュファイル16を第1のproxyプロセス1
4と第2のproxyプロセス34で共有している。第
2のproxyプロセス34は、キャッシュ有効期限0
であるから、図3のフローチャートのS4により、第2
のproxyプロセス34経由のサーバ計算機11への
アクセスがキャッシュファイル16の更新が必ず行なえ
ることがわかる。
【0198】 第1の実施形態においては、クライアン
ト計算機24の利用が始まる7時00分より起動し、ク
ライアント計算機24の利用が少なくなる夜21時00
分には終了するよう実施した。これにより、クライアン
ト計算機24の利用のない時間帯には、キャッシュ更新
プロセス36を排除し、当制御方式を採用した計算機の
メモリ資源を無駄にしないようにしている。
【0199】 以上説明したように、proxyサーバ
計算機53はユーザが行なったファイルオブジェクトに
対するアクセス要求がキャッシュヒットすれば、その直
後にサーバ計算機11から当該ファイルオブジェクトを
取得してキャッシュファイル16を更新するので、別の
ユーザが同一ファイルオブジェクトをアクセスした場合
に、最新のファイルオブジェクトが既にキャッシュファ
イル16に格納されていることになる。したがって、キ
ャッシュ有効期限を長めに取っておいても、キャッシュ
の有効期限よりも短い間隔で変更されるサーバ計算機の
ファイルオブジェクトがキャッシュに反映される確率が
高くなる。
【0200】 また、同一ユーザが時間をおいてから同
一ファイルオブジェクトをアクセスし直すと、キャッシ
ュの内容が最新のものに更新されていることになる。ま
た、特定のパターンに一致するファイルオブジェクトの
み更新アクセスの対象となるので、予めファイルオブジ
ェクトの更新頻度の高いサーバ計算機を登録しておけば
不要なキャッシュ更新アクセスを削減でき、無駄なトラ
フィックを抑制して回線を有効に利用することができ
る。
【0201】 [実施の形態2] 次に、本願発明のゲートウェイ装置の第2の実施形態を
説明する。この実施形態2は、実施形態1と同様である
が、実施形態1に対応するフローチャート(図3)のス
テップS4を改良したものである。実施形態1では、ス
テップS4においてアクセスログファイル15からファ
イルオブジェクト名称を文字列格納バッファURLBU
Fに格納して、第2のproxyプロセス34を介して
サーバ計算機11にアクセスしているが、第2の実施形
態では処理の高速化を図るため複数のファイルオブジェ
クトに対するアクセスを、順不同で同時並列的に実行す
るものである。
【0202】 本発明が実施できるTCP/IPのネッ
トワークでは、通信はパケット単位で行なわれるため、
外部ネットワークの複数のサーバ計算機との同時通信が
見掛け上可能である。したがって、ステップS4におけ
るキャッシュ更新子プロセスを複数同時に実施すること
ができる。
【0203】 内部ネットワーク23には複数のクライ
アント計算機24が接続されるので、proxyサーバ
装置53によるファイルオブジェクトの中継転送要求
は、外部ネットワーク25上の異なる複数のサーバ計算
機11へのアクセスが入り交じって行なわれる。したが
って、ファイルオブジェクトに対するアクセスは外部ネ
ットワーク25上のさまざまな経路を通じて行なわれる
ため、実際のファイルオブジェクトの転送速度は、経路
の途中のボトルネックによって決まる。
【0204】 そのうちの1つのボトルネックは、pr
oxyサーバ装置53と外部ネットワーク25を結ぶ最
初の通信路(図19における通信路127)である。さ
らには、外部ネットワーク25上への複数のサーバ計算
機11への経路にはさまざまなボトルネックが存在す
る。このため、外部ネットワーク25からproxyサ
ーバ計算機53への転送速度は、この通信路の最大転送
速度より小さい転送速度となるのが常である。たとえ
ば、proxyサーバ装置53と外部ネットワーク25
を結ぶ通信路(図19における通信路127)の最大転
送速度が64kbpsであっても、海外にあるサーバ計
算機からの転送速度はその10分の1以下であることが
しばしばである。
【0205】 したがって、proxyサーバ装置53
と外部ネットワーク25を結ぶ最初の通信路127の最
大転送容量に近い転送を行なうように、同時に複数のネ
ットワーク接続を実施することで転送のスループットを
上げることが可能になる。すなわちこのネットワーク接
続を1個の子プロセスに対応させるとして、複数のキャ
ッシュ更新子プロセスを起動し、この通信路127の転
送容量が100%近く使用されるように、複数のネット
ワーク接続を並列に実施した方が処理が高速化される。
【0206】 そこで、同時に複数のキャッシュ更新ア
クセスを実行するように、キャッシュ更新子プロセスの
最大並列実行数をMAXPROCESS数と定める。こ
れは、以下に説明するフローチャートではメモリ(図1
9のメモリ206)に置かれる定数である。この値をあ
まり大きく取ると、OSのプロセス手順などの管理資源
(メモリ)を消費することになるので、システムの動作
状況によって決める必要がある。この実施形態2では1
0とした。
【0207】 以下、具体的な処理手順を図5を参照し
ながら説明する。まず、変数としてメモリ206中にp
rocesses変数を定義する。バックグラウンド
で、現在走行しているキャッシュ更新子プロセスの数を
求めてprocesses変数に代入する。プロセスの
数はOSのプロセス管理テーブルから得られる(S42
1)。次にprocesses変数と指定された最大子
プロセス数MAXPROCESSを比較する。もし、p
rocesses≧MAXPROCESSならばS42
3に移り、一定時間休止(sleep)する(たとえば
10秒)。これは、先に走行しているキャッシュ更新子
プロセスの処理を終了するのを待つために行なわれる
(S423)。
【0208】 次に、指定の終了時刻になったかどうか
の判定を行なう。指定時刻を過ぎていれば、キャッシュ
更新プロセスは処理を終了する。指定時刻を過ぎていな
ければ、S421以下の処理を繰返す(S424)。
【0209】 また、S423でprocesses<
MAXPROCESSならば、第2のproxyプロセ
ス34にアクセス要求を出力することによって、第2の
proxyプロセス34はキャッシュ更新子プロセスを
バックグラウンドプロセスとして1つ起動する(S42
5)。UNIX(R) OSにおいて、プロセスをバッ
クグラウンドで実行させるには、コマンドラインに&の
記号を付けて起動すればよい。文字列バッファURLB
UFには、S2により取得されたファイルオブジェクト
名称が格納されているので、数20に示すコマンドを実
行すれば、キャッシュ更新子プロセスがバックグラウン
ドプロセスとして実施される。
【0210】
【数式20】
【0211】 最後に、指定の終了時刻になったかどう
かを判定し、指定時刻をすぎていればキャッシュ更新プ
ロセスは処理を終了し、指定の終了時刻を過ぎていなけ
ればS1以下の処理を繰返す(S426)。
【0212】 以上のような処理により、MAXPRO
CESS以下のプロセスで同時並列実行が可能になる。
【0213】 この実施形態2により、キャッシュ更新
処理速度を速め、常にキャッシュ更新処理を待つ状態に
することでキャッシュ更新処理の遅滞の拡大を防止する
ことが可能となる。なお、パターンファイル30を用意
して、特定ファイルオブジェクトだけを更新対象にして
いるS2の処理も効果を上げている。
【0214】 以上説明したように、実施の形態2で
は、キャッシュ更新処理を同時に行なうことで、キャッ
シュ更新の開始から終了までが短縮されるので、第1の
proxyプロセス14によるユーザからのアクセス処
理の頻度に追随してキャッシュ更新処理を進めることが
可能となる。
【0215】 [実施の形態3] 実施の形態3においては、実施の形態2と同様に、キャ
ッシュ更新子プロセスの並列実行を行なうが、さらにプ
ロセスの制御を行なうことにより、内部ネットワーク2
3のクライアント計算機24を使用するユーザが第1の
proxyプロセス14を使用して外部ネットワーク2
5のサーバ計算機11に頻繁にアクセスしている時間帯
に、キャッシュ更新プロセス36を実行しても、キャッ
シュ更新子プロセスの数が抑制される。すなわち、キャ
ッシュ更新子プロセスには低い優先権が与えられること
で、クライアント計算機24を使用するユーザのネット
ワーク利用を妨げないようにしたものである。
【0216】 また、第1のproxyプロセス14を
利用するユーザのネットワークアクセスは、通常1つの
ページが複数のファイルオブジェクトから構成されてい
るため(たとえば、図2に示す情報ページ)、1つのペ
ージのアクセスにおいては、複数のファイルオブジェク
トのアクセスが時間的に連続して発生する。したがっ
て、キャッシュ更新アクセスの子プロセスの起動におい
て、休止時間を設けて子プロセス起動を遅延させること
により、ユーザのページアクセスが終了してからキャッ
シュ更新アクセスが起きる確率を高めることができる。
【0217】 また、同一のファイルオブジェクトに対
するキャッシュ更新アクセスの条件が揃ったとき、すな
わち、実施形態1および2のURLBUFが空でないと
き(図3および図4のS3がyesの場合)一定時間の
無効時間を設け、前回キャッシュが更新されてから所定
時間以内であればサーバ計算機11に対するキャッシュ
更新アクセスを行なわないことで、クライアント計算機
24が頻繁にファイルオブジェクトアクセスを行なって
いるときに、キャッシュ更新アクセスでサーバ計算機1
1に対するアクセスが頻繁に発生することを防止するも
のである。
【0218】 この処理の簡単な実現方法として、第2
のproxyプロセス34のキャッシュ有効期限を0で
はなく、無効時間を設定して起動すればよい。この無効
時間として、30分または1時間等とし、サーバ計算機
11の変更頻度の平均の最小時間程度にすればよい。こ
れにより、無効時間以内に実施形態1、2または3の方
式でキャッシュ更新アクセスを行なっても、キャッシュ
にヒットすることになるのでサーバ計算機11にアクセ
スが発生しなくなる。
【0219】 図6は、実施の形態3の処理を示すフロ
ーチャートである。図6は、実施形態2の処理を示すフ
ローチャートである図5のS421とS425をS43
1とS435に置き換えたものである。
【0220】 図6に示す処理を行なうに先立って、最
大ネットワーク接続個数MAXPROCESSという定
数を定める。この定数は、キャッシュ更新子プロセスの
数と第1のproxyプロセス14がネットワークアク
セスの中継のために起動した子プロセスの数を加算した
値の最大を示す定数である。したがって、proxyサ
ーバ装置53は、なるべくのMAXPROCESS以下
にサーバ計算機11へのネットワークアクセスを制限し
ようとする。図6のS1〜S3の処理は、実施形態1、
2と同様であるのでここでの説明は繰返さない。
【0221】 バックグラウンドで走行しているキャッ
シュ更新子プロセスの数と、第1のproxyプロセス
14のネットワークアクセス中継子プロセスの数を求め
て加算してprocesses変数(数21)とする
(S431)。
【0222】
【数式21】
【0223】 processes変数と指定された最
大子プロセスMAXPROCESSを比較し、proc
esses≧MAXPROCESSならばS433へ移
り、一定時間休止(sleep)する(たとえば10
秒)。これは、先に起動されたキャッシュ更新子プロセ
ス数の処理が終了するのを待つものである。
【0224】 次に、指定の終了時刻になったか否かを
判定し、指定時刻を過ぎていればキャッシュ更新プロセ
スは処理を終了する。指定の終了時刻になっていなけれ
ば、S431に戻って処理を続行する(S434)。ま
た、S432でprocesses<MAXPROCE
SSならば、抽出したファイルオブジェクト名称(UR
LBUFに格納されたもの)をもとに、第2のprox
yプロセス36を用いてアクセスするキャッシュ更新子
プロセスをバックグラウンドプロセスとして1つ起動す
る。
【0225】 このとき、子プロセスは数22に示すよ
うに、休止時間をDELAYTIME変数(単位は秒)
としてOSの休止機能をsleepを使ってDELAY
TIME秒間休止してからキャッシュ更新アクセスを行
なうようにする。1ページWWWデータは、図2に示す
ように複数の画像ファイルオブジェクトからなる場合、
キャッシュヒット時は10秒以下でproxyサーバ装
置53からクライアント計算機24に転送可能であるこ
とが経験的に知られているので、DELAYTIMEは
10秒程度としている。
【0226】
【数式22】
【0227】 最後に、指定の終了時刻になったかどう
かを判定し、指定時刻を過ぎていればキャッシュ更新プ
ロセスは処理を終了し、指定終了時刻を過ぎていなけれ
ば、S1へ戻り処理を繰返す(S436)。
【0228】 以上のように、キャッシュ更新子プロセ
スの個数と第1のproxyプロセス14を利用してい
るユーザのネットワークアクセスの中継子プロセス数の
合計を制限しながらキャッシュ更新子プロセスを制御す
る。この結果、第1のproxyプロセス14を利用し
ているユーザによるネットワークアクセスの数が増える
と、キャッシュ更新子プロセスは起動されにくくなる。
したがって、ユーザが第1のproxyプロセス14を
利用している時間帯に、キャッシュ更新プロセス36を
実行しても、キャッシュ更新子プロセスには低い優先権
が与えられることで、ユーザのネットワーク活動を妨げ
ないようにすることができる。
【0229】 また、ユーザのファイルオブジェクトに
対するアクセスがキャッシュにヒットした場合は、通常
1ページの転送は、数秒以内に終了するが、キャッシュ
更新子プロセスはDELAYTIME(秒)遅延してか
ら起動されるので、DELAYTIMEを10秒程度に
設定すればユーザのファイルオブジェクトアクセスとキ
ャッシュ更新アクセスは時間的にずれて実施される(す
なわちパイプライン)ので、proxyサーバ計算機5
3への負担を減らし、ユーザに快適なネットワーク利用
を提供することが可能となる。
【0230】 以上説明したように、実施の形態3では
ユーザが第1のproxyプロセス14を利用している
時間帯に、キャッシュ更新プロセス36を実行しても、
キャッシュ更新子プロセスには低い優先権が与えられる
ことで、ユーザのネットワーク利用を妨げない効果があ
る。また、遅延時間を導入することで、キャッシュ更新
処理はユーザの連続したファイルオブジェクト転送処理
が終了してから行なわれるので、proxyサーバ計算
機53の処理負担を軽減し、ユーザへのファイルオブジ
ェクト転送を最優先できる。また、無効時間が設定され
るため、クライアント計算機24が無効時間以内に同一
ファイルオブジェクトに対してアクセスを行ない、キャ
ッシュ更新アクセスの条件が揃ってもキャッシュ更新ア
クセスはキャッシュにヒットすることになり、実質的に
サーバ計算機11に対するアクセスが発生しない。これ
により、クライアント計算機24が同一ファイルオブジ
ェクトを頻繁にアクセスしても、時間のかかるサーバ計
算機11へのキャッシュ更新アクセスが抑制されるので
サーバ計算機11への負担の軽減とキャッシュ更新処理
の効率化が図れる。
【0231】 [実施の形態4] 実施の形態1〜3は、proxyサーバ計算機に関する
ものであったが、実施の形態4ではファイルオブジェク
トの中継制御のみを行なうゲートウェイ装置(redi
rector計算機)について説明する。図8は、キャ
ッシュサーバ計算機(proxyサーバ計算機)65〜
67およびredirector計算機72〜77をロ
ーカルネットワーク71で接続する構成を示す図であ
る。
【0232】 redirector計算機72〜77
は、proxyサーバ計算機の1種でもあるが、実施の
形態4のredirector計算機72〜77は、p
roxyサーバ計算機65〜67への中継のみを行ない
キャッシュは行なわない。
【0233】 以下、redirector計算機72
〜77の動作について詳細に説明する。
【0234】 redirector計算機72〜77
は、複数のproxyサーバ計算機65〜67とクライ
アント計算機群との間に介在し、proxyサーバ計算
機65〜67とはローカルネットワーク71で接続さ
れ、クライアント計算機群とはローカルネットワーク7
8で接続される。また、ファイルオブジェクトを提供す
るサーバ計算機11とproxyサーバ計算機65〜6
7とは、広域ネットワーク61で接続される。
【0235】 まず、クライアント計算機24からのフ
ァイルオブジェクトに対する読出要求をローカルネット
ワーク78を介してredirector計算機73内
のredirectorプロセスが受信する。redi
rector計算機は、上述した図17〜19に示すワ
ークステーション200〜400で実現可能である。す
なわち、redirectorプロセスに相当するプロ
グラムをメモリ206内に格納し、そのプログラムをC
PU202が実行することによってこのredirec
tor計算機の機能が実現される。redirecto
rプロセスは、受信した読出要求の内容に基づいてハッ
シュ関数の計算を行ないその計算結果に従って中継する
proxyサーバ計算機65〜67を選択する。そして
redirectorプロセスは、読出要求を選択され
たproxyサーバ計算機65〜67内のproxyプ
ロセスに中継する。
【0236】 本発明を非常に有効に適用できる例とし
て、前述したインターネット上のWWWシステムがあ
る。図9は、WWWシステム上でのredirecto
r計算機の処理手順を示すフローチャートである。
【0237】 WWWシステムではネットワーク上に分
散したファイルオブジェクト名称はUniform Resource L
ocator(URL)と呼ばれる形式で表現され特定され
る。
【0238】 たとえば、redirector計算機
73が、クライアント計算機24からの読出要求を受信
したとすると、redirector計算機73は要求
に含まれるURLを取出す(S31)。取出されたUR
Lに基づいてハッシュ関数による計算を行なう。ここ
で、ハッシュ関数にはさまざまなものが考えられるが、
実施の形態4ではURL形式で表現されたファイルオブ
ジェクト名称に含まれる文字の文字コードをすべて加算
し、proxyサーバ計算機65から67の台数で割っ
た剰余を使用した(S33)。
【0239】 このハッシュ関数によって算出された値
によって、読出要求を中継するproxyサーバ計算機
65〜67の番号を決定する(S34)。そして、選択
されたproxyサーバ計算機65〜67に読出要求が
中継される(S35)。
【0240】 同一のファイルオブジェクトの読出要求
は、すべて同一のproxyサーバ計算機65〜67で
中継されることが、キャッシュの有効利用の観点からは
望ましい。なぜなら、同一のファイルオブジェクトを異
なるproxyサーバ計算機で重複して保持すると、キ
ャッシュ容量が減少し、キャッシュファイルの有効利用
が図れなくなるからである。そのためには、ハッシュ関
数がすべてのredirector計算機72〜77内
のredirectorプロセスで同一のものである必
要がある。
【0241】 上述したハッシュ関数は、各proxy
サーバ計算機65〜67が均等に選択されるため、それ
ぞれのproxyサーバ計算機65〜67に対する負荷
は均等になるが、適切にハッシュ関数を選ぶことによ
り、各proxyサーバ計算機65〜67の能力に応じ
て意図的に均等でなく負荷を分散することも容易に実現
できる。すなわち、処理能力の高いproxyサーバ計
算機に対しては、選択される可能性を高くし、処理能力
の低いproxyサーバ計算機に対しては、選択される
可能性を低くすることによって各proxyサーバ計算
機の処理速度を均等にするものである。
【0242】 このようにして算出された番号により示
されるproxyサーバ計算機が、選択されたprox
yサーバ計算機となり、redirectorプロセス
は選択されたproxyサーバ計算機内のproxyプ
ロセスにクライアント計算機24からの読出要求を中継
する。proxyサーバ計算機65〜67内のprox
yプロセスは、redirector計算機73内のr
edirectorプロセスにより中継されたクライア
ント計算機24からの読出要求を広域ネットワーク61
を介してサーバ計算機11に中継し、転送されたファイ
ルオブジェクトをキャッシュする。
【0243】 redirectorプロセスは、広く
一般に利用されているDeleGateを利用して実施
することが可能である。実施の形態4のredirec
torプロセスは、DeleGateの中継記法とフィ
ルタ機能を利用して実現されている。以下に、中継記法
の例を示す。
【0244】
【数式23】
【0245】 数23の記述のうち、最初のhttpは
使用するプロトコル名を示し、proxyserver
はネットワーク上のproxyサーバ計算機のアドレス
を示すものである。また、10080はTCP/IP接
続のポート番号と呼ばれ、proxyサーバ計算機上の
どのプロセスに対し読出要求を送るのかを示す。−_−
は、これがDeleGateの中継記法であることを示
す。残りのhttp://www.xxx.co.jp
/test/index.htmlが、本来の読出要求
のURLである。
【0246】 DeleGateが上記読出要求を受信
すると、proxyサーバ計算機proxyserve
rのポート番号10080で示されるproxyプロセ
スに対し、URLで示されるファイルオブジェクトの読
出要求を中継する。すなわち、読出要求の中で、中継す
るproxyサーバ計算機を指定することが可能であ
る。
【0247】 フィルタ機能は、外部プログラムを利用
してDeleGate機能を拡張するための仕組みであ
る。DeleGateはクライアント計算機もしくは他
のproxyサーバ計算機からの読出要求を受信する
と、受信した読出要求を一旦外部プログラムに引渡し、
この外部プログラムによって処理された読出要求を再び
受取って中継等の処理を行なうことが可能である。
【0248】 図11は、redirector計算機
の内部構成を示す図である。実施の形態4において、D
eleGateによって実現されるredirecto
rプロセス81が、たとえば、数24に示すURLを含
む読出要求を受信したとする。
【0249】
【数式24】
【0250】 これは、www.xxx.co.jpで
表わされるサーバ計算機11にこの読出要求を送信する
ことを示している。
【0251】 しかし、実施の形態4ではDeleGa
teのフィルタ機能により、外部プログラムとして実現
されたproxy切換制御部82においてURLをもと
にハッシュ関数の計算を行ない(図9のS32〜S3
3)、その演算結果によってproxyサーバ計算機p
roxyserver1が選択されたとすると、上記読
出要求内のURLを数25のように書替える(図9のS
34)。
【0252】
【数式25】
【0253】 外部プログラムであるproxy切換制
御部82によって書替えられた読出要求を受取ったre
directorプロセス81は、proxyseve
r1で表わされるproxyサーバ計算機にwww.x
xx.co.jpで表わされるサーバ計算機11に対す
る読出要求を中継する(図9のS35)。
【0254】 したがって、ハッシュ関数で計算された
結果に基づいてURL中のproxyサーバ計算機のア
ドレスをproxyserver1に変えることによ
り、元の読出要求のURLに基づいて中継するprox
yサーバ計算機を選択することができる。実際に、2台
のproxyサーバ計算機を用意し、ハッシュ関数はU
RLに含まれるファイルオブジェクト名称の文字の文字
コードをすべて加算し(図8のS32)、proxyサ
ーバ計算機の台数2で割った剰余を使用した(図8のS
33)。すなわち、ハッシュ関数の計算結果が0であっ
た場合proxyserver0により中継し、1であ
った場合はproxyserver1で中継を行なうも
のとする。
【0255】 図10は、図2に示す同一ページのファ
イルオブジェクトが、2台のproxyサーバ計算機に
分散されるようすを示したものである。図10の上段
は、本来の読出要求のURL、ファイルオブジェクト名
称の文字コードの総計(check sum)、文字コ
ードの総計をproxyサーバ計算機の台数である2で
割った余りおよび選択されたproxyサーバ計算機の
アドレスを示している。図10の下段は、proxy切
換制御部82で書替られたURLを示している。この例
では、ハッシュ関数の結果が0の方が多くなっており、
proxyserver0への中継が多くなってしまう
が、これはサンプル数が少ないことによるものである。
実際の運用では膨大なアクセスが、ハッシュ関数による
分散が確率的に均等になるという性質のもとに、ほぼ2
分の1ずつ均等に分散されることが確認されている。
【0256】 以上説明したように、複数あるprox
yサーバ計算機が別々な経路で広域ネットワークに接続
されている場合、クライアント計算機からのアクセス要
求を複数あるproxyサーバ計算機に分散すること
は、複数ある経路に分散することでもある。したがって
経路の有効利用が可能となり、スループットが向上す
る。proxyサーバ計算機の処理能力には限界がある
が、クライアント計算機からのアクセス要求が複数のp
roxyサーバ計算機に分散されることにより、pro
xyサーバ計算機1台で処理されるアクセス要求数が減
少し、スループットが向上する。
【0257】 また、同一ページ内に複数のファイルオ
ブジェクトが含まれている場合、それらのファイルオブ
ジェクトに対するアクセス要求も複数のproxyサー
バ計算機によって分散して処理されるので、単一ページ
のアクセス速度も向上する。
【0258】 また、どのクライアント計算機からの中
継要求であっても、同一URLに対するハッシュ関数が
同じであるので、常に同じproxyサーバ計算機が選
択されることになり、同一URLのアクセスが2回以上
あればキャッシュによるアクセスの高速化が図れる。さ
らに、ハッシュ関数が一意にきまるものであれば任意の
関数が選択できるので、proxyサーバ計算機の数も
また任意の台数が使用できる。
【0259】 実施の形態4において、ハッシュ関数内
で使われているURLに含まれる文字の文字コードをす
べて加算した値(check sum)は、平均して数
千程度になることが確かめられている。たとえば、シャ
ープ奈良工場における実施においては、1996年3月
13日に実測された30481件のファイルオブジェク
トに対するアクセス要求のURLに含まれる文字や文字
コードの合計の平均は4438(小数点以下四捨五入)
であった。
【0260】 前述したとおり、実施の形態4ではこの
アクセス要求のURLに含まれる文字や文字コードの合
計をproxyサーバ計算機の台数で割った剰余をハッ
シュ関数として使用し、proxyサーバ計算機の選択
に使用している。したがって、図10の例ではprox
yサーバ計算機は2台であるが、この台数が数千程度で
あっても、ハッシュ関数によるproxyサーバ計算機
の選択はほぼ均等に行なわれると考えられる。
【0261】 また、同一のハッシュ関数であれば、r
edirector計算機の数は任意である。したがっ
て、本方式ではスケーラビリティも非常に優れている。
【0262】 また、本方式ではキャッシュ付のpro
xyサーバ計算機は既存のものをそのまま使用すること
が可能である。したがって、図24の従来の方式に比べ
導入が容易で経済的である。また、クライアント計算機
に関しても、既存のクライアント計算機を使用して、r
edirector計算機を既存のproxyサーバ計
算機に見立てて設定を行なうだけでよく、特殊なクライ
アント計算機を用意する必要はない。
【0263】 [実施の形態5] 実施の形態5は、実施の形態4において独立した計算機
上で実行していたredirectorプロセスを、ク
ライアント計算機24上で実行する。図12は、実施の
形態5における装置の内部構成を示す図であり、クライ
アント計算機24内のクライアントプロセス84(図8
のクライアント計算機24と同じ動作をするプロセス)
からの読出要求は、ローカルネットワーク上には送出さ
れず、クライアント計算機24内部のredirect
orプロセス85に直接送信される。この送信は、たと
えばUNIX(R)のメッセージ通信によって行なわれ
る。
【0264】 redirectorプロセス85がア
クセス要求を受信した後の処理は、上述したredir
ector計算機72〜77内で動作するredire
ctorプロセス81と同様であり、ローカルネットワ
ークを介する他のクライアント計算機からのアクセス要
求を受信して処理することも可能である。したがって、
ここでの詳細な説明は繰返さない。また、このredi
rectorプロセス85の機能をクライアントプロセ
ス84のプログラムに直接組込むことも可能である。
【0265】 図8に示す実施の形態4のクライアント
計算機24とredirector計算機72〜77と
の通信が、実施の形態5では同じクライアント計算機2
4内部で処理されるため、ローカルネットワーク上での
通信量が削減できる。したがって、独立したredir
ector計算機を用意する必要がなく、クライアント
計算機24を利用してredirector計算機の機
能を実現できるためコストの削減が可能となる。
【0266】 [実施の形態6] 実施の形態6では、実施の形態4において独立した計算
機上で実行していたredirectorプロセスを、
proxyサーバ計算機上で実行する。図13は、実施
の形態6における装置の内部構成を示す図であり、たと
えば、クライアント計算機24bから読出要求があった
場合に、その読出要求はproxyサーバ計算機99内
のredirectorプロセス91で受信される。そ
の後、redirectorプロセス91は、図9を用
いて説明したようにアクセス要求を中継するproxy
サーバ計算機を選択し、その選択されたproxyサー
バ計算機が98であれば、proxyサーバ計算機98
のproxyプロセス86に対してアクセス要求を中継
する(92)。また、受信したredirectorプ
ロセスの動作しているproxyサーバ計算機と選択さ
れたproxyサーバ計算機がともに99である場合、
読出要求の中継はネットワーク上に送出されずprox
yサーバ計算機99内部で直接行なわれる(93)。そ
して、proxyプロセス(86または89)が広域ネ
ットワーク61を介してサーバ計算機11に対してアク
セス要求を送出する(62または63)。
【0267】 同様に、クライアント計算機24aから
読出要求があった場合に、その読出要求は、proxy
サーバ計算機98上のredirectorプロセス9
6で受信される。その後、redirectorプロセ
スは、proxyサーバ計算機の選択を行ない、その選
択されたproxyサーバ計算機が99であれば、pr
oxyサーバ計算機99のproxyプロセス89に対
してアクセス要求を中継する(95)。
【0268】 また、受信したredirectorプ
ロセスの動作しているproxyサーバ計算機と選択さ
れたproxyサーバ計算機がともに98である場合、
読出要求の中継はネットワーク上に送出されずprox
yサーバ計算機98内部で直接行なわれる(96)。そ
して、proxyプロセス(86または89)が広域ネ
ットワーク61を介してサーバ計算機11に対してアク
セス要求を送出する(62または63)。
【0269】 サーバ計算機11から取得したファイル
オブジェクトをキャッシュファイル(87または90)
に格納する処理は、上述した処理と同様であるので詳細
な説明は繰返さない。
【0270】 また、このredirectorプロセ
スの機能を、proxyサーバ計算機上でproxyサ
ーバとしての機能を実現しているプログラムに直接組込
むことも可能である。
【0271】 したがって、redirector計算
機とproxyサーバ計算機の通信の一部がproxy
サーバ計算機内部で処理されるため、ローカルネットワ
ーク上での通信量が削減できる。また、独立したred
irector計算機を用意する必要がなく、prox
yサーバ計算機を利用してredirector計算機
の機能を実現できるためコストを削減することが可能に
なる。
【0272】 [実施の形態7] 実施の形態4のredirector計算機72〜77
はアクセス要求の中継のみを行なっていた。しかし、図
23で説明したようなツリー状の構成が有効であるよう
な大規模なローカルネットワークでは、1次キャッシュ
proxyサーバ計算機503〜508の持つキャッシ
ュ機能をredirector計算機に持たせることに
よって、ネットワーク上の通信量およびproxyサー
バ計算機の負荷を軽減することが可能となる。図14
は、そのシステム構成を示す図である。redirec
torサーバ計算機40〜45は、図11に示すred
irector計算機80と図16に示すproxyサ
ーバ計算機13を組合せることにより可能である。すな
わち、図16のリード要求17を図11のredire
ctorプロセス81が受信することによって実現可能
であるので、ここでの詳細な説明は繰返さない。また、
実施の形態5におけるクライアント計算機内部でキャッ
シュを行なうことによっても、ローカルネットワーク上
の通信量の削減とproxyサーバ計算機の負荷を軽減
することが可能となる。
【0273】 上述したように、redirector
計算機においてキャッシュすることにより、ローカルネ
ットワーク上のでの通信量およびproxyサーバ計算
機の負荷を軽減することができる。
【0274】 [実施の形態8] 上述した実施の形態4から7は、排他的に使用されなけ
ればいけないものではない。すなわち、実施の形態8に
おいてはredirector機能を実現するすべての
計算機(proxyサーバ計算機、クライアント計算
機、redirector計算機)において、redi
rector機能の使用するハッシュ関数が同一であ
り、すべてのアクセス要求がそれぞれ同一のproxy
サーバ計算機等のキャッシュ機能を有する計算機で中継
およびキャッシュされれば、実施の形態4〜7に記載さ
れた各種の計算機は、単一のネットワーク内に混在して
使用されても全く問題はない。したがって、それぞれの
会社等の組織におけるさまざまなネットワークや計算機
の運用事情に応じ、非常に柔軟なネットワーク運用を行
なうことが可能となる。
【0275】 ある程度以上の大規模なローカルネット
ワークでは、広域ネットワークとの接続が複数の経路
(図8の62〜64)からなる場合もある。そのような
場合、proxyサーバ計算機ごとに異なる経路を使用
すると、クライアント計算機からのアクセス要求を複数
ある経路に分散して中継することになる。したがって、
複数ある広域ネットワークとの通信経路を有効利用し、
広域ネットワークとローカルネットワークとの通信のス
ループット向上が図れる。
【0276】 実際の運用においては、すべての計算機
の設定を一度に変えることは現実的ではない。移行には
暫く時間がかかることが普通である。より効率のよい運
用を図るためには、すべてのredirector機能
を有する計算機内でハッシュ関数を一致させる必要があ
るため、すべてのクライアント計算機がredirec
tor計算機を利用するようシステムを構築するか、ク
ライアント計算機がredirector機能を持つ必
要がある。しかし、そのようなシステムを構築しなくて
もredirector機能を有する計算機を使用する
ことは可能である。すなわち、本発明の各方式では、従
来のproxyサーバ計算機やクライアント計算機を全
く手を付けない状態で、システムの一部にredire
ctor機能を持たせて、システム全体はそのまま使用
することも可能である。
【0277】 同様に、システムの再構築の際、複数の
redirector機能におけるハッシュ関数が一致
しない場合もあり得る。このような場合でも、システム
全体の動作自体には影響はないので、通常と同様に利用
が可能である。上述したいずれの場合も利用は可能であ
るが、proxyサーバ計算機その他の有効利用の観点
からは望ましい状況とはいえない。したがって、できる
だけ早い時期にすべてのredirector機能を有
する計算機での設定を統一させることが望ましい。しか
し移行期に新旧の設定を混在していても不必要な混乱を
起こさず、スムーズに移行することが可能である。
【0278】 なお、httpプロトコルを含めた参考
文献リストを以下に示す。
【0279】
【数式26】
【0280】
【数式27】
【図面の簡単な説明】
【0281】
【図1】本発明におけるゲートウェイ装置の一例である
proxyサーバ計算機の動作概念図である。
【図2】WWWサーバ内の情報ページをクライアント計
算機に読出したときの表示画面を示す図である。
【図3】実施の形態1のゲートウェイ装置であるpro
xyサーバ計算機で行なわれるキャッシュ更新プロセス
の処理手順を示すフローチャートである。
【図4】proxyプロセスにおけるキャッシュファイ
ル管理の処理手順を示すフローチャートである。
【図5】実施の形態2のゲートウェイ装置であるpro
xyサーバ装置で行なわれるキャッシュ更新プロセスの
処理手順を示すフローチャートである。
【図6】実施の形態3のゲートウェイ装置であるpro
xyサーバ装置で行なわれるキャッシュ更新プロセスの
処理手順を示すフローチャートである。
【図7】本発明を実施した場合のサーバ計算機とクライ
アント計算機の間で転送されるデータのタイムチャート
である。
【図8】実施の形態4における分散ファイルシステムの
全体構成を示す図である。
【図9】実施の形態4におけるredirector計
算機の処理手順を示すフローチャートである。
【図10】図2に示す同一ページのファイルオブジェク
トに対するアクセス要求が2台のサーバ計算機に分散さ
れるようすを示す図である。
【図11】実施の形態4におけるredirector
計算機の内部構成を示す図である。
【図12】実施の形態5におけるクライアント計算機の
内部構成を示す図である。
【図13】実施の形態6におけるproxyサーバ計算
機の内部構成を示す図である。
【図14】実施の形態7における分散ファイルシステム
の全体構成を示す図である。
【図15】従来のゲートウェイ計算機の構成を示す図で
ある。
【図16】proxyサーバ装置の概念図である。
【図17】proxyサーバ装置の回路構成の第1の例
を示す図である。
【図18】proxyサーバ装置の回路構成の第2の例
を示す図である。
【図19】proxyサーバ装置の回路構成の第3の例
であって、本願発明の実施の形態でproxyサーバ装
置としても使用されるproxyサーバ装置の回路構成
を示す図である。
【図20】キャッシュヒット率と平均アクセス速度との
関係を示すグラフである。
【図21】キャッシュファイルサイズとキャッシュヒッ
ト率との関係を示すグラフである。
【図22】キャッシュ有効期限とキャッシュファイルの
大きさとの関係を示すグラフである。
【図23】従来の分散ファイルシステムの全体構成の第
1の例を示す図である。
【図24】従来の分散ファイルシステムの全体構成の第
2の例を示す図である。
【図25】従来の分散ファイルシステムの全体構成の第
3の例を示す図である。
【図26】従来の分散ファイルシステムにおけるサーバ
計算機内のデータの更新とクライアント計算機が読出し
たデータとの関係を示すタイムチャートである。
【符号の説明】
【0282】 11 サーバ計算機、14 第1のpr
oxyプロセス、15 アクセスログ、16 キャッシ
ュファイル、30 パターンファイル、34 第2のp
roxyプロセス、35 FIFOバッファ、36 キ
ャッシュ更新プロセス、72〜77 redirect
or計算機。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−263940(JP,A) 特開 平8−55072(JP,A) Super Proxy Scrip t− URLハッシュ式分散Proxy キャッシュ,日本,シャープ株式会社, 1996年 8月 9日,URL,htt p://naragw.sharp.c o.jp/sps/indexj.ht ml (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 546 G06F 13/00 540 G06F 17/00 H04L

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 クライアント計算機と、前記クライアン
    ト計算機からの情報提供要求に応じて情報を提供するサ
    ーバ計算機と、前記サーバ計算機のファイルオブジェク
    トを制御するゲートウェイ装置と、前記クライアント計
    算機からの情報提供要求に基づくファイルオブジェクト
    の転送を中継するproxyサーバ計算機とからなるシ
    ステムにおけるゲートウェイ装置であって、 前記情報提供要求に含まれる文字列とシステム内のpr
    oxyサーバ計算機の数とを用いた所定の演算による演
    算結果に基づいて、要求した情報を格納するproxy
    サーバ計算機を決めることで、proxyサーバ計算機
    毎に格納される情報量を分散させる制御をすることを特
    徴とするゲートウェイ装置。
  2. 【請求項2】 前記所定の演算が、情報提供要求に含ま
    れるURL文字列の文字コードを加算してシステム内の
    proxyサーバ計算機の数で割った剰余を用いたハッ
    シュ演算であることを特徴とする請求項1記載のゲート
    ウェイ装置。
  3. 【請求項3】 前記所定の演算は、システム内の他のゲ
    ートウェイ装置と同じ計算式を用い、同一の情報提供要
    求による演算結果は同一のproxyサーバ計算機を決
    定することを特徴とする請求項1または2記載のゲート
    ウェイ装置。
  4. 【請求項4】 クライアント計算機と、前記クライアン
    ト計算機からの情報提供要求に応じて情報を提供するサ
    ーバ計算機と、前記サーバ計算機のファイルオブジェク
    トの制御と前記クライアント計算機からの情報提供要求
    に基づくファイルオブジェクトの転送の中継とを行なう
    proxyサーバ計算機とからなるシステムにおけるp
    roxyサーバ計算機であって、 前記情報提供要求に含まれる文字列とシステム内のpr
    oxyサーバ計算機の数とを用いた所定の演算による演
    算結果に基づいて、要求した情報を格納するproxy
    サーバ計算機を自機を含めて決めることで、proxy
    サーバ計算機毎に格納される情報量を分散させる制御を
    することを特徴とするproxyサーバ計算機。
  5. 【請求項5】 前記所定の演算が、情報提供要求に含ま
    れるURL文字列の文字コードを加算してシステム内の
    proxyサーバ計算機の数で割った剰余を用いたハッ
    シュ演算であることを特徴とする請求項4記載のpro
    xyサーバ計算機。
  6. 【請求項6】 前記所定の演算は、システム内の他のp
    roxyサーバ計算機と同じ計算式を用い、同一の情報
    提供要求による演算結果は同一のproxyサーバ計算
    機を決定することを特徴とする請求項4または5記載の
    proxyサーバ計算機。
  7. 【請求項7】 クライアント計算機と、前記クライアン
    ト計算機からの情報提供要求に応じて情報を提供するサ
    ーバ計算機と、前記クライアント計算機からの情報提供
    要求に基づくファイルオブジェクトの転送を中継するp
    roxyサーバ計算機とからなるシステムにおけるクラ
    イアント計算機であって、 前記情報提供要求に含まれる文字列とシステム内のpr
    oxyサーバ計算機の数とを用いた所定の演算による演
    算結果に基づいて、要求した情報を格納するproxy
    サーバ計算機を決めることで、proxyサーバ計算機
    毎に格納される情報量を分散させる制御をすることを特
    徴とするクライアント計算機。
  8. 【請求項8】 前記所定の演算が、情報提供要求に含ま
    れるURL文字列の文字コードを加算してシステム内の
    proxyサーバ計算機の数で割った剰余を用いたハッ
    シュ演算であることを特徴とする請求項7記載のクライ
    アント計算機。
  9. 【請求項9】 前記所定の演算は、システム内の他のク
    ライアント計算機と同じ計算式を用い、同一の情報提供
    要求による演算結果は同一のproxyサーバ計算機を
    決定することを特徴とする請求項7または8記載のクラ
    イアント計算機。
JP2003292960A 2003-08-13 2003-08-13 ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機 Expired - Fee Related JP3485915B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003292960A JP3485915B1 (ja) 2003-08-13 2003-08-13 ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003292960A JP3485915B1 (ja) 2003-08-13 2003-08-13 ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP17456196A Division JP3481054B2 (ja) 1996-07-04 1996-07-04 ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム

Publications (2)

Publication Number Publication Date
JP3485915B1 true JP3485915B1 (ja) 2004-01-13
JP2004030690A JP2004030690A (ja) 2004-01-29

Family

ID=30438853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003292960A Expired - Fee Related JP3485915B1 (ja) 2003-08-13 2003-08-13 ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機

Country Status (1)

Country Link
JP (1) JP3485915B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5308196B2 (ja) * 2009-03-06 2013-10-09 ヤフー株式会社 サーバおよびプログラム
JP5288204B2 (ja) 2009-08-10 2013-09-11 株式会社日立製作所 ゲートウェイシステム及び制御方法
JP2012073777A (ja) * 2010-09-28 2012-04-12 Kddi Corp 分散ファイルシステム制御装置
WO2014199607A1 (ja) 2013-06-13 2014-12-18 日本電気株式会社 負荷分散装置、負荷分散方法および記憶媒体ならびにイベント処理システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2958388B2 (ja) * 1990-03-14 1999-10-06 富士ゼロックス株式会社 ネットワーク中継装置、中継方法、およびサーバ
JPH0855072A (ja) * 1994-08-12 1996-02-27 Matsushita Electric Ind Co Ltd ネットワークシステムとデータ処理システムとデータ蓄積方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Super Proxy Script− URLハッシュ式分散Proxyキャッシュ,日本,シャープ株式会社,1996年 8月 9日,URL,http://naragw.sharp.co.jp/sps/indexj.html

Also Published As

Publication number Publication date
JP2004030690A (ja) 2004-01-29

Similar Documents

Publication Publication Date Title
JP3481054B2 (ja) ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム
US6192398B1 (en) Remote/shared browser cache
US6182111B1 (en) Method and system for managing distributed data
US6338117B1 (en) System and method for coordinated hierarchical caching and cache replacement
US7769823B2 (en) Method and system for distributing requests for content
EP1461928B1 (en) Method and system for network caching
US7509404B2 (en) Methods and systems for partial page caching of dynamically generated content
JP5193056B2 (ja) 無線装置の最新データを維持するための方法及びシステム
US7320023B2 (en) Mechanism for caching dynamically generated content
US8032586B2 (en) Method and system for caching message fragments using an expansion attribute in a fragment link tag
CN100511220C (zh) 分布式高速缓存中维护数据的方法和系统
US7987239B2 (en) Method and system for caching role-specific fragments
US6327614B1 (en) Network server device and file management system using cache associated with network interface processors for redirecting requested information between connection networks
US20100325363A1 (en) Hierarchical object caching based on object version
US20140189073A1 (en) Efficient Storage and Retrieval of Resources for Rendering Structured Documents
US20030004998A1 (en) Proxy-based acceleration of dynamically generated content
EP0837407A1 (en) Server to cache protocol for improved web performance
US20030188021A1 (en) Method and system for processing multiple fragment requests in a single message
JP2000509531A (ja) カスタムWebサイトを動的に作成し管理するためのシステム
US20070124350A1 (en) High performance file fragment cache
CN1234086C (zh) 用于高速缓存文件信息的系统和方法
US8543700B1 (en) Asynchronous content transfer
JPH10240604A (ja) インターネットのホームページ管理システム
JPH08185348A (ja) 情報処理装置および情報処理方法
JP3485915B1 (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: 20031007

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071024

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081024

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees