JP2004030690A - Gateway unit, client computer and proxy server computer - Google Patents

Gateway unit, client computer and proxy server computer Download PDF

Info

Publication number
JP2004030690A
JP2004030690A JP2003292960A JP2003292960A JP2004030690A JP 2004030690 A JP2004030690 A JP 2004030690A JP 2003292960 A JP2003292960 A JP 2003292960A JP 2003292960 A JP2003292960 A JP 2003292960A JP 2004030690 A JP2004030690 A JP 2004030690A
Authority
JP
Japan
Prior art keywords
proxy server
file
cache
server computer
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.)
Granted
Application number
JP2003292960A
Other languages
Japanese (ja)
Other versions
JP3485915B1 (en
Inventor
Katsuyoshi Doi
土居 克良
So Takezawa
竹澤 創
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/en
Application granted granted Critical
Publication of JP3485915B1 publication Critical patent/JP3485915B1/en
Publication of JP2004030690A publication Critical patent/JP2004030690A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To effectively use a path by distributing an access request to a file object, to enhance throughput and to further reduce communication quantity on a local network. <P>SOLUTION: A system is constituted of a client computer 24, a server computer 12 which provides information according to an information provision request from the client computer 24, redirector computers 72 to 77 which control the file object of the server computer 12 and proxy server computers 65 to 67 which repeats transfer of the file object based on the information provision request from the client computer 24. The redirector computers 72 to 77 perform control for distributing information quantity to be stored by every proxy server computer by determining a proxy server computer in which requested information is stored based on an operation result by a prescribed arithmetic operation using a character string included in the information provision request and the number of proxy server computers 65 to 67 in the system. <P>COPYRIGHT: (C)2004,JPO

Description

 本発明は、ネットワーク上に分散した複数のサーバ計算機と、複数のクライアント計算機とがゲートウェイ装置(計算機)を介して通信回線で相互に接続されている分散ファイルシステムに関し、特に、複数のクライアント計算機がゲートウェイ装置を介してサーバ計算機内部の記憶装置内のファイルオブジェクトにアクセスする場合の分散ファイルシステムのファイル中継を行なうゲートウェイ装置、ゲートウェイ装置にアクセス要求を出力するクライアント計算機、およびproxyサーバ計算機に関する。 The present invention relates to a distributed file system in which a plurality of server computers distributed on a network and a plurality of client computers are interconnected by a communication line via a gateway device (computer). The present invention relates to a gateway device that relays a file in a distributed file system when accessing a file object in a storage device inside a server computer via a gateway device, a client computer that outputs an access request to the gateway device, and a proxy server computer.

 以下の説明で「サーバ計算機」とは、ネットワーク上において何らかのサービスを提供している計算機をいい、「クライアント計算機」とは、そうしたサーバ計算機のサービスを要求し、受ける計算機をいうものとする。また「ファイルオブジェクト」とは、分散ファイルシステムの利用するネットワークプロトコルと、ネットワークアドレス(サーバ計算機の名称)と、ファイル名称と、ファイルの実体との組をいうものとする。ここで「ファイルオブジェクトの名称」とは、ネットワークプロトコルとネットワークアドレスとファイル名称との組のことをいう。 で In the following description, a “server computer” refers to a computer that provides some service on a network, and a “client computer” refers to a computer that requests and receives the services of such a server computer. The “file object” refers to a set of a network protocol used by the distributed file system, a network address (name of a server computer), a file name, and a file entity. Here, the “file object name” refers to a set of a network protocol, a network address, and a file name.

 従来、上述したような分散ファイルシステムにおいては、複数のクライアント計算機からのサーバ計算機上のファイルオブジェクトに対する読出要求は、一旦途中のゲートウェイ計算機で中継されていた。ゲートウェイ計算機がサーバ計算機から読出したファイルオブジェクトは、クライアント計算機に中継される。それと同時にそれらファイルオブジェクトは、ゲートウェイ計算機内部のキャッシュファイル(固定ディスク、半導体メモリなど)に蓄積される。そうしたゲートウェイ計算機の一例が特開平4−313126号公報(発明の名称「分散ファイルシステムのファイル入出力方式」)に開示されている。 Conventionally, in a distributed file system as described above, a read request for a file object on a server computer from a plurality of client computers has been relayed once by a gateway computer on the way. The file object read from the server computer by the gateway computer is relayed to the client computer. At the same time, these file objects are stored in a cache file (fixed disk, semiconductor memory, etc.) inside the gateway computer. An example of such a gateway computer is disclosed in Japanese Patent Application Laid-Open No. 4-313126 (Title of Invention: "File Input / Output Method of Distributed File System").

 図15は、この従来の分散ファイルシステムを示している。このシステムは、ゲートウェイ計算機110と、このゲートウェイ計算機110を介して相互に接続されたサーバ計算機100および複数のクライアント計算機120を含む。サーバ計算機100は、複数のクライアント計算機120によって共有されている。 FIG. 15 shows this conventional distributed file system. This system includes a gateway computer 110, a server computer 100 and a plurality of client computers 120 interconnected via the gateway computer 110. The server computer 100 is shared by a plurality of client computers 120.

 サーバ計算機100は、ファイルを格納するディスク装置136と、ネットワークを介してディスク装置136のファイルの内容を入出力するためのファイル入出力応答手段134と、ディスク装置136内のブロック情報をネットワークを介してクライアント計算機120に応答するためのブロック情報応答手段132とを含む。 The server computer 100 includes a disk device 136 for storing the file, a file input / output response unit 134 for inputting / outputting the contents of the file in the disk device 136 via the network, and the block information in the disk device 136 via the network. And a block information responding unit 132 for responding to the client computer 120.

 クライアント計算機120は、サーバ計算機100のブロック情報応答手段132に対してブロック情報要求を送り、ブロック情報を受けるためのブロック情報要求手段152と、ゲートウェイ計算機110を介してサーバ計算機100のファイル入出力応答手段134に対してファイル入出力要求を送り、当該ファイルを受信するためのファイル入出力要求手段154とを含む。 The client computer 120 sends a block information request to the block information responding unit 132 of the server computer 100, and a block information requesting unit 152 for receiving block information, and a file input / output response of the server computer 100 via the gateway computer 110. File input / output request means 154 for sending a file input / output request to the means 134 and receiving the file.

 ゲートウェイ計算機110は、クライアント計算機120(複数)とサーバ計算機100との間に介在し、サーバ計算機100内のディスク装置136と、各クライアント計算機120との間のキャッシュメモリとして機能するものであり、キャッシュした内容を格納するためのディスクキャッシュ144と、ファイル入出力要求手段154およびファイル入出力応答手段134の間に介在するキャッシュ管理手段142とを含む。 The gateway computer 110 is interposed between the client computers 120 (plural) and the server computer 100, and functions as a cache memory between the disk device 136 in the server computer 100 and each client computer 120. And a cache management means 142 interposed between the file input / output request means 154 and the file input / output response means 134.

 このシステムは次のように動作する。まず、クライアント計算機120がサーバ計算機100内のディスク装置136内のファイルにアクセスして1つのブロックを読込む場合の動作について説明する。ブロック情報要求手段152は、ゲートウェイ計算機110を介してサーバ計算機100に対して読込対象のブロックにかかるブロック情報の取得を要求するブロック情報要求メッセージを発行する。 This system works as follows. First, an operation when the client computer 120 accesses a file in the disk device 136 in the server computer 100 and reads one block will be described. The block information requesting unit 152 issues a block information request message requesting the server computer 100 via the gateway computer 110 to obtain block information on the block to be read.

 サーバ計算機100内のブロック情報応答手段132は、このメッセージに応答して、ディスク装置136から該当するブロック情報を取出し、そのブロック情報を有するブロック情報応答メッセージをゲートウェイ計算機110を介してクライアント計算機120内のブロック情報要求手段152に返却する。 In response to this message, the block information responding unit 132 in the server computer 100 extracts the corresponding block information from the disk device 136, and sends a block information response message having the block information to the client computer 120 via the gateway computer 110. Is returned to the block information requesting means 152.

 クライアント計算機120のファイル入出力要求手段154は、返却されたブロック情報に基づいて読込対象のブロックの読込を要求するファイルアクセス要求を、ゲートウェイ計算機110内のキャッシュ管理手段142に対して発行する。 (4) The file input / output request unit 154 of the client computer 120 issues a file access request to read the block to be read based on the returned block information to the cache management unit 142 in the gateway computer 110.

 このファイルアクセス要求を受取ったキャッシュ管理手段142は、そのファイルアクセス要求にかかるブロック情報とディスクキャッシュ144に記憶されている読込対象のブロックにかかるブロック情報との比較を行なう。そしてディスクキャッシュ144に、該当するブロック情報が存在しない場合、または両方のブロック情報の内容(更新時間)が異なる場合(読込対象のブロックのキャッシュが有効でない場合)には、キャッシュ管理手段142は上述のファイルアクセス要求をサーバ計算機100のファイル入出力応答手段134に対して発行する。 (4) The cache management unit 142 that has received the file access request compares the block information relating to the file access request with the block information relating to the block to be read stored in the disk cache 144. When the corresponding block information does not exist in the disk cache 144, or when the contents (update time) of both block information are different (when the cache of the block to be read is not valid), the cache management unit 142 Is issued to the file input / output response means 134 of the server computer 100.

 サーバ計算機100のファイル入出力応答手段134は、このファイルアクセス要求に応答して、ディスク装置136内のファイルをアクセスして、該当するブロックを読込み、ゲートウェイ計算機110にそのブロックを転送する。 In response to the file access request, the file input / output response unit 134 of the server computer 100 accesses the file in the disk device 136, reads the corresponding block, and transfers the block to the gateway computer 110.

 キャッシュ管理手段142は、このブロックをディスクキャッシュ144に格納し、そのブロックにかかるブロック情報のディスクキャッシュ144への設定または更新を行なう。キャッシュ管理手段142は同時に、そのブロックをクライアント計算機120のファイル入出力要求手段154に対して転送する。 The cache management unit 142 stores the block in the disk cache 144, and sets or updates the block information for the block in the disk cache 144. At the same time, the cache management unit 142 transfers the block to the file input / output request unit 154 of the client computer 120.

 以上でディスクキャッシュ144内に有効なファイルが存在しない場合のこのシステムの動作について説明した。 The operation of this system when there is no valid file in the disk cache 144 has been described above.

 次回に同一ファイルに対するアクセス要求があった場合には、ゲートウェイ計算機110のキャッシュ管理手段142は、ディスクキャッシュ144から当該ブロックを取出し、アクセス要求を発行したクライアント計算機120のファイル入出力要求手段154に対して当該ブロックを転送する。したがってこの場合、ゲートウェイ計算機110からサーバ計算機100に対する転送要求は発行されない。したがって中継アクセスの高速化が図られる。 Next time, when there is an access request for the same file, the cache management unit 142 of the gateway computer 110 fetches the block from the disk cache 144 and sends it to the file input / output request unit 154 of the client computer 120 that issued the access request. To transfer the block. Therefore, in this case, a transfer request from the gateway computer 110 to the server computer 100 is not issued. Therefore, the speed of the relay access is increased.

 類似の技術が、特開昭63−200244号公報(発明の名称「ファイル・アクセス・システム」)や、特開昭63−20184号公報(発明の名称「遠隔ファイル・アクセス・システム」)にも開示されている。いずれの技術においても、あるファイルオブジェクトに対するアクセス要求が発行された場合に、当該ファイルオブジェクトの内容が更新されているかどうかを確認するために、サーバ計算機の保持するファイルオブジェクトの変更時刻をキャッシュファイルの変更時刻と比較する。そしてキャッシュファイルの内容が古い場合には、クライアント計算機は更新されたサーバ計算機の内容を読出すようになっている。しかし、これら2件の公報に記載された技術では、キャッシュファイルはクライアント計算機内に存在しており、特開平4−313126号公報に開示されたシステムのようにシステム内にゲートウェイ計算機が含まれているわけではない。 A similar technique is disclosed in Japanese Patent Application Laid-Open No. 63-200244 (named "File Access System") and Japanese Patent Application Laid-Open No. 63-20184 ("Remote File Access System"). It has been disclosed. In any of the techniques, when an access request for a file object is issued, the modification time of the file object held by the server computer is checked in order to confirm whether the content of the file object has been updated. Compare with the change time. If the contents of the cache file are old, the client computer reads the updated contents of the server computer. However, in the techniques described in these two publications, the cache file exists in the client computer, and the gateway computer is included in the system as in the system disclosed in JP-A-4-313126. Not necessarily.

 しかし、これら3件の従来技術文献は、サーバ計算機のファイルオブジェクトと、キャッシュされたファイルオブジェクトとの内容が食い違わないような工夫をしているという共通点を持っている。 However, these three prior art documents have a common feature that the content of the file object of the server computer and the content of the cached file object are not conflicted.

 このように本来同一であるべきファイルの食い違いを防ぐことをインテグリティ(Integrity )を保つという。また、食い違いの起きたファイルのデータをステールデータ(stale data)と呼ぶ。 防 ぐ Preserving the integrity of files that should be the same in this way is called prevention of discrepancies. The data of the file in which the discrepancy has occurred is called stale data.

 上述した従来の技術の基本は、ネットワーク経由でサーバ計算機の、該当するファイルオブジェクトの変更時刻を調べ、対応するキャッシュファイルの内容の変更時刻と比較するアルゴリズムを使用している。そのため、サーバ計算機に対するネットワーク経由の問合せを必ず行なわなければならない。ネットワークの実効的な転送速度が小さい場合や、該当するファイルオブジェクトを有するサーバ計算機にかかっている負荷が高くて即座に応答できない場合には、そうした問合せ自体にかなり時間がかかってしまうことがある。そのためネットワークファイルシステムによっては、このようなファイルキャッシュのシステムを採用していない場合もある。すなわちこうしたシステムでは、サーバ計算機の保持するファイルオブジェクトが更新されているにもかかわらず、ゲートウェイ計算機の持つキャッシュ内の対応するファイルオブジェクトは必ずしも更新されていない。このようなネットワークファイルシステム方式の代表的なものとして、いわゆるインターネットにおけるHTTP(Hyper Text Transfer Protocol)を使った広域分散型マルチメディア情報システムがある。 The basics of the above-described conventional technology use an algorithm for checking the change time of a corresponding file object of a server computer via a network and comparing the change time with the change time of the contents of a corresponding cache file. Therefore, the server computer must be inquired via the network. If the effective transfer speed of the network is low, or if the load on the server computer having the corresponding file object is too high to respond immediately, such a query itself may take a considerable time. Therefore, some network file systems do not employ such a file cache system. That is, in such a system, the corresponding file object in the cache of the gateway computer is not necessarily updated even though the file object held by the server computer is updated. As a typical example of such a network file system, there is a widely distributed multimedia information system using HTTP (Hyper Text Transfer Protocol) in the so-called Internet.

 インターネットは、その基本プロトコルとしてTCP/IPプロトコルを利用した、グローバルなネットワークである。インターネット上に構築された地域分散型マルチメディア情報提供システムは、World Wide Wed(WWW)と呼ばれる。WWWは、ネットワーク上に分散したファイルオブジェクトを扱うことができる。これらのファイルオブジェクトは、単なるテキストデータにとどまらず、画像データ、音声データ、ビデオ画像データなどさまざまな種類のものを含む。WWWは、情報提供側にとっても、情報利用者(ユーザ)にとっても魅力的であるため、ネットワーク上のWWWに関するトラフィックが爆発的に増加している。WWWシステムでは、クライアント計算機のユーザは、グラフィカルユーザインタフェースを持ったブラウザソフトウェアをクライアント計算機上で実行させるだけで、ネットワーク上に分散したサーバ計算機の保持するさまざまなファイルオブジェクトで構成された情報を次々とアクセスすることができる。WWWは、このような操作の簡単さのために近時めざましい普及をみせている。 The Internet is a global network that uses the TCP / IP protocol as its basic protocol. A regional distributed multimedia information providing system built on the Internet is called World Wide Wed (WWW). WWW can handle file objects distributed on a network. These file objects include not only text data but also various types such as image data, audio data, and video image data. Since WWW is attractive to both information providers and information users (users), traffic related to WWW on the network is explosively increasing. In the WWW system, a user of a client computer simply executes browser software having a graphical user interface on the client computer, and successively transmits information composed of various file objects held by a server computer distributed on a network. Can be accessed. WWW has been remarkably popular recently due to such simplicity of operation.

 そしてこのWWWシステムは、TCP/IPプロトコルの上に構築されたHTTPプロトコルでファイルオブジェクトを転送している。 And this WWW system transfers file objects by the HTTP protocol built on the TCP / IP protocol.

 HTTPプロトコルを実施する上においては、特開平4−313126号公報に記載されたようなゲートウェイ計算機によりファイルオブジェクトを中継転送することが広く行なわれている。データは、ゲートウェイ装置にキャッシュされる。またWWWシステムでは、ファイルオブジェクトの中継転送においてステールデータが発生することは容認されている。すなわちゲートウェイ計算機にキャッシュされている内容が、サーバ計算機の当該ファイルオブジェクトと一致していない場合を許容している。 In implementing the HTTP protocol, relaying and transferring file objects by a gateway computer as described in JP-A-4-313126 is widely performed. The data is cached on the gateway device. Further, in the WWW system, occurrence of stall data in relay transfer of a file object is permitted. That is, the case where the content cached in the gateway computer does not match the file object of the server computer is permitted.

 キャッシュファイル内のステールデータの率をステールデータ率と呼ぶこととする。何らかの方式でキャッシュファイルの内容を更新しない限り、ステールデータ率は増加する。一般にキャッシュファイルのステールデータ率が増加すると、クライアント計算機を操作しているユーザは、内容が古いと自主的に判断して、ファイルオブジェクトをサーバ計算機から再度ロードすることを試みる。この場合、キャッシュファイルの内容を利用しないプロトコルが用いられる。この結果、ゲートウェイ計算機内のキャッシュファイルシステムが意味を持たなくなる傾向がある。 ス The ratio of the stale data in the cache file is called the stale data ratio. Unless the contents of the cache file are updated in any way, the steal data rate will increase. Generally, when the steal data rate of the cache file increases, the user operating the client computer voluntarily determines that the content is old, and tries to load the file object again from the server computer. In this case, a protocol that does not use the contents of the cache file is used. As a result, the cache file system in the gateway computer tends to be meaningless.

 一方で、このようなステールデータの発生を容認するプロトコルの利点もある。クライアント計算機が、サーバ計算機のファイルオブジェクトのアクセスをゲートウェイ計算機に中継依頼してアクセスを行なった場合、ゲートウェイ計算機のキャッシュファイルにヒットした場合には、キャッシュファイルからファイルオブジェクトが読出されてクライアント計算機に転送される。サーバ装置に対する当該ファイルオブジェクトの変更時刻の問合せは不要である。そのため短時間にファイルオブジェクトがキャッシュから取出され、クライアントに返送される。 On the other hand, there is an advantage of a protocol that allows the generation of such stale data. If the client computer requests access to the file object of the server computer by relaying it to the gateway computer, and accesses the cache file of the gateway computer, the file object is read from the cache file and transferred to the client computer. Is done. It is not necessary to inquire the server device about the change time of the file object. Therefore, the file object is retrieved from the cache in a short time and returned to the client.

 HTTPプロトコルのようにステールデータを容認するネットワークファイルプロトコルは、全地球的な広域ネットワークで利用される上で有利な点を有している。すなわち、ゲートウェイ装置のキャッシュに当該ファイルオブジェクトがキャッシュされていれば、サーバ装置に対するアクセスが発生しない。その結果応答時間短縮を図ることができるという有利な点を持っている。 Network file protocols that accept steal data, such as the HTTP protocol, have advantages when used in global wide area networks. That is, if the file object is cached in the cache of the gateway device, no access to the server device occurs. As a result, there is an advantage that the response time can be shortened.

 上述のようにネットワーク上のファイルオブジェクトのアクセスを高速化し、かつインターネットのトラフィックを低減させるゲートウェイ計算機は特に「proxyサーバ装置」とも呼ばれている。 As described above, a gateway computer that speeds up access to file objects on a network and reduces Internet traffic is also particularly called a “proxy server device”.

 「proxy」とは「代理人」という意味である。proxyサーバ装置は、その名のとおり、クライアント計算機がネットワーク上のサーバ計算機のファイルオブジェクトにアクセスする場合に、そのアクセス要求をサーバ計算機を代理して受付け、ファイルオブジェクトの転送を中継する機能を果たす。proxyサーバ装置の概念を図16を参照して説明する。 “Proxy” means “agent”. As the name implies, when a client computer accesses a file object of a server computer on a network, the proxy server device receives the access request on behalf of the server computer and relays the transfer of the file object. The concept of the proxy server device will be described with reference to FIG.

 proxyサーバ装置13は、たとえばある企業内に用いられた内部ネットワーク23と、その企業外の外部ネットワーク(インターネットなど)25との間に介在して設けられるものである。内部ネットワーク23は複数個のクライアント計算機24を含み、外部ネットワーク25は、同じく複数個のサーバ計算機11を含んでいる。各サーバ計算機11は、ファイルオブジェクト12を保有している。 The @proxy server device 13 is provided, for example, between an internal network 23 used in a certain company and an external network (such as the Internet) 25 outside the company. The internal network 23 includes a plurality of client computers 24, and the external network 25 also includes a plurality of server computers 11. Each server computer 11 has a file object 12.

 proxyサーバ装置13は、キャッシュファイル16と、クライアント計算機からリード要求19を受け、キャッシュファイル16内に当該ファイルオブジェクトが存在する場合にはそのファイルオブジェクトをデータ20として返送し、キャッシュファイル16内に当該ファイルオブジェクトの有効なものが存在しない場合には外部ネットワーク25を介してサーバ計算機11に対するリード要求17を発行し、対応するファイルオブジェクトをデータ18として受けてクライアント計算機24に対して返送するproxyプロセス14と、proxyプロセス14によるファイルオブジェクトの転送記録を記録するアクセスログ15とを含む。proxyプロセス14は、サーバ計算機11からファイルオブジェクトを取得したときには、当該ファイルオブジェクトをキャッシュファイル16にも新たに書込む機能を有している。 The proxy server device 13 receives the cache file 16 and the read request 19 from the client computer, and if the file object exists in the cache file 16, returns the file object as data 20, and stores the file object in the cache file 16. If there is no valid file object, the proxy process 14 issues a read request 17 to the server computer 11 via the external network 25, receives the corresponding file object as data 18, and returns it to the client computer 24. And an access log 15 for recording the transfer record of the file object by the proxy process 14. The proxy process 14 has a function of newly writing the file object in the cache file 16 when the file object is acquired from the server computer 11.

 このproxyサーバ装置13は次のように動作する。まず、内部ネットワーク23内のクライアント計算機24が、外部ネットワーク25上のサーバ計算機11のファイルオブジェクト12に対するリード要求19をproxyサーバ装置13内のproxyプロセス14に対して発行する。proxyプロセス14はこのリード要求19に応答して、キャッシュファイル16をアクセスし、キャッシュファイル中に当該ファイルオブジェクトのキャッシュデータがあるか否かを判定する。当該ファイルオブジェクトがキャッシュされていれば、proxyサーバ装置13固有のキャッシュファイル有効期限と、キャッシュされたファイルオブジェクトの最終変更時刻とを比較する。キャッシュが有効期限内であれば、キャッシュファイルからファイルオブジェクト読出(22)、そのデータ20を内部ネットワーク23のリード要求19を発行したクライアント計算機24に対して返送する。 This proxy server device 13 operates as follows. First, the client computer 24 in the internal network 23 issues a read request 19 for the file object 12 of the server computer 11 on the external network 25 to the proxy process 14 in the proxy server device 13. In response to the read request 19, the proxy process 14 accesses the cache file 16 and determines whether or not the cache file contains cache data of the file object. If the file object is cached, the validity period of the cache file unique to the proxy server device 13 is compared with the last modification time of the cached file object. If the cache has not expired, the file object is read from the cache file (22), and the data 20 is returned to the client computer 24 which issued the read request 19 of the internal network 23.

 キャッシュファイル16内に該当ファイルオブジェクトが存在しない場合、および存在していたとしても有効期限が過ぎている場合には、キャッシュファイル16内に有効なファイルオブジェクトが存在しないものと判定される。その場合、proxyプロセス14は、外部ネットワーク25のサーバ計算機11に対して、ファイルオブジェクト12の読出要求17を発行する。これに応答してサーバ計算機11は、ファイルオブジェクト12をデータ18としてproxyプロセス14に返送する。proxyプロセス14は、ログファイル15にアクセスログとして、ファイルオブジェクト名称(すなわちネットワークプロトコル名称と、サーバ計算機のネットワークアドレス名称と、ファイル名称との組)と、ファイルオブジェクトのデータの実体(すなわちファイルオブジェクトそのもの)と、書込時刻とを書込む(26)。 (4) If the corresponding file object does not exist in the cache file 16, and if the validity period has passed even if it does exist, it is determined that there is no valid file object in the cache file 16. In this case, the proxy process 14 issues a read request 17 for the file object 12 to the server computer 11 on the external network 25. In response, the server computer 11 returns the file object 12 as data 18 to the proxy process 14. The proxy process 14 stores, as an access log in the log file 15, a file object name (that is, a set of a network protocol name, a network address name of a server computer, and a file name), and the substance of the file object data (that is, the file object itself) ) And the writing time are written (26).

 proxyプロセス14はさらに、内部ネットワーク23内のクライアント計算機24にデータ20を転送し、かつキャッシュファイル16に、当該ファイルオブジェクトを書込む(21)。 The $ proxy process 14 further transfers the data 20 to the client computer 24 in the internal network 23, and writes the file object in the cache file 16 (21).

 したがってキャッシュファイル16内には、ファイルオブジェクト名称と、ファイルオブジェクトの実体と、ファイルオブジェクトをサーバ装置から取得した時刻(最終変更時刻)とが記録されている。 Therefore, in the cache file 16, the file object name, the entity of the file object, and the time when the file object was obtained from the server device (the last change time) are recorded.

 proxyサーバ装置は、ヨーロッパ原子核物理研究所CERNで開発されたhttpdや、日本の電子技術総合研究所の佐藤豊氏の開発されたDeleGateなどのソフトウェアを、ネットワーク接続されたUNIX(R)の動くコンピュータ上で実行することにより実現されることが一般的である。 The proxy server device is a computer running UNIX (R) that connects software such as httpd developed by the European Institute for Nuclear Physics CERN, and DeleGate developed by Yutaka Sato of the Electronic Technology Research Institute of Japan. It is generally realized by executing on the above.

 proxyサーバ装置の物理構成を図17に示す。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が接続されている。 FIG. 17 shows the physical configuration of the $ proxy server device. The proxy server device includes a workstation 200 on which UNIX (R) operates. The workstation 200 includes a CPU (Central Processing Unit) 202, a memory 206 connected to the CPU 202 by an internal bus 204, an I / O (input / output) device 208 for files, and an external network via a router 210. And a second network I / O interface 214 connected to the internal network. The I / O device 208 is connected to a file unit 216 used as a storage location for cache files, access logs, and various work files.

 このワークステーション200は、CPU202が、上述したhttpdやDeleGateというソフトウェアを実行することによりproxyサーバ装置13を実現する。 The workstation 200 implements the proxy server device 13 by the CPU 202 executing the above-described software such as httpd and DeleteGate.

 図18は、proxyサーバ装置の他の構成例を示す図である。このproxyサーバ装置はワークステーション300からなっている。ワークステーション300は、概略、図17のワークステーション200と同様の構成であるが、図17の第2ネットワークI/Oインタフェース214に代えて、モデム装置304に接続されるシリアルポート302を有している点が異なっている。そしてこのワークステーション300は、モデム装置304および公衆電話回線網306を介して内部ネットワークに接続されている。 FIG. 18 is a diagram showing another configuration example of the proxy server device. The proxy server device comprises a workstation 300. The workstation 300 has a configuration substantially similar to that of the workstation 200 in FIG. 17, but includes a serial port 302 connected to a modem device 304 instead of the second network I / O interface 214 in FIG. 17. Is different. The workstation 300 is connected to an internal network via a modem device 304 and a public telephone network 306.

 図18において、図17と同一の部品には同一の参照番号を付している。それらの名称および機能も同一である。したがって、ここではそれらについての詳しい説明は繰返さない。 に お い て In FIG. 18, the same parts as those in FIG. 17 are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed description thereof will not be repeated here.

 図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のサーバ計算機11と通信するとともに、内部ネットワーク23およびクライアント計算機24を介してユーザ31と通信することができる。 FIG. 19 shows still another configuration example of the proxy server device. The proxy server device of FIG. 19 is also realized by the workstation 400. The workstation 400 has a configuration similar to that of the workstation 200 shown in FIG. 17 except that the workstation 400 is connected to the internal network 23 instead of the first network I / O interface 212 and the second network I / O interface 214. In that it has a single network I / O interface 402. The internal network 23 is connected to an external network 25 via a router 210, and is also connected to a plurality of client computers 24. The workstation 400 can communicate with the server computer 11 on the external network 25 via the internal network 23 and the router 210, and can communicate with the user 31 via the internal network 23 and the client computer 24.

 図19と図17とにおいて、同一の部品には同一の参照符号および名称を与えている。それらの機能も同一である。したがって、ここではそれらについての詳しい説明は繰返さない。 と In FIGS. 19 and 17, the same components are given the same reference numerals and names. Their functions are the same. Therefore, detailed description thereof will not be repeated here.

 proxyサーバ装置は、既に述べたように中継データのキャッシュ機構を有する。すなわち、proxyサーバ装置はその内部に存在するキャッシュファイル装置に、中継するファイルオブジェクトのデータをキャッシュする。 The @proxy server device has a relay data caching mechanism as described above. That is, the proxy server device caches the data of the file object to be relayed in the cache file device existing therein.

 proxyサーバ装置のキャッシュファイルには、proxyサーバ装置固有の有効期限が定められている。ファイルオブジェクトがキャッシュに書込まれてから有効期限内に、同じサーバ計算機上のファイルオブジェクトへのアクセス要求をクライアント計算機から受取った場合には、キャッシュファイルに以前に書込まれたファイルオブジェクトを取出してクライアント計算機に転送する。これによりサーバ計算機に対するアクセスは発生しない。 The cache server of the proxy server device has an expiration date unique to the proxy server device. If a request to access a file object on the same server computer is received from a client computer within the expiration date after the file object has been written to the cache, the file object previously written to the cache file is retrieved. Transfer to client computer. Thus, access to the server computer does not occur.

 このようなゲートウェイ装置によるキャッシュの効果を以下具体的に説明する。proxyサーバ装置はある会社組織に設置し、外部のネットワークとは64kbpsの速度で接続するものとする。また、このproxyサーバ装置は一方で、10Mbpsの速度の会社組織内のローカルエリアネットワークに接続されるものとする。外部と内部のネットワークの速度差は1桁以上ある。このような例はよく見られる例であり、その典型的な例が図19に示す構成である。 (4) The effect of the cache by such a gateway device will be specifically described below. The proxy server device is installed in a certain company organization, and connects to an external network at a speed of 64 kbps. In addition, this proxy server device is connected to a local area network in a company organization at a speed of 10 Mbps. The speed difference between the external and internal networks is more than an order of magnitude. Such an example is a common example, and a typical example is the configuration shown in FIG.

 このとき、proxyサーバ装置で中継ファイルオブジェクトをキャッシュするものとして、キャッシュのヒット率をHitrateとする。Hitrateは、ファイルオブジェクトに対するアクセス要求に対してキャッシュが100%ヒットするとき1であり、0%ヒットするとき0になる指数である。 At this time, assuming that the relay file object is cached in the proxy server device, the hit rate of the cache is set to Hitrate. Hitrate is an exponent that is 1 when the cache hits 100% for an access request for a file object and becomes 0 when the cache hits 0%.

 なお、proxyサーバ装置におけるキャッシュファイルからのデータ読出およびキャッシュファイルへのデータ書込速度は、ネットワーク速度に比べて十分高速であるものとする。すなわち、キャッシュファイルに対するファイルオブジェクトの入出力に要する時間は無視できるものとする。 Note that the speed of reading data from the cache file and writing data to the cache file in the proxy server device is sufficiently higher than the network speed. That is, it is assumed that the time required for inputting / outputting the file object to / from the cache file can be ignored.

 このとき、外部ネットワークにあるファイルオブジェクトを内部からアクセスするときの平均アクセス速度Vaveは次の数1によって表わされる。 {At this time, the average access speed Vave for accessing the file object in the external network from the inside is represented by the following equation 1.

Figure 2004030690
Figure 2004030690

 キャッシュファイルが存在しない場合、Hitrateは0である。したがって平均速度(kbps)は、数1から外部ネットワークのアクセス速度64kbpsと等しくなる。また、Hitrateが1であれば、すなわち100%キャッシュファイルにヒットするのであれば、平均速度(kbps)は、内部ネットワークの速度と等しく10,000kbps(=10Mbps)となる。つまり、ヒット率が高いほどクライアント計算機から見た平均アクセス速度は高くなる。ヒット率と平均アクセス速度との関係を示す数1をグラフ化したものを図20に示す。 If no cache file exists, Hitrate is 0. Therefore, the average speed (kbps) is equal to the access speed of the external network of 64 kbps from Equation 1. If Hitrate is 1, that is, if the cache file hits 100%, the average speed (kbps) is 10,000 kbps (= 10 Mbps) equal to the speed of the internal network. In other words, the higher the hit rate, the higher the average access speed seen from the client computer. FIG. 20 is a graph of Equation 1 showing the relationship between the hit ratio and the average access speed.

 ところで、キャッシュヒット率は、キャッシュファイルの量に依存している。すなわち、ファイルオブジェクトをなるべくたくさんキャッシュファイルの中に蓄積しておけば、再びアクセスされたファイルオブジェクトやキャッシュファイル中に含まれる確率は高く、ヒット率は高くなる。そうした関係を示すものとして、キャッシュヒット率と、キャッシュファイルの蓄積量との関係を図21にグラフとして示す。図21に示すように、キャッシュファイルサイズを小さくすればキャッシュヒット率は0に近く、キャッシュファイルサイズを大きくすればキャッシュヒット率は徐々に上昇する。 By the way, the cache hit rate depends on the amount of the cache file. That is, if as many file objects as possible are stored in the cache file, the probability of being included in the accessed file object or cache file again is high, and the hit rate is high. FIG. 21 is a graph showing the relationship between the cache hit ratio and the amount of stored cache files as an example of such a relationship. As shown in FIG. 21, when the cache file size is reduced, the cache hit rate is close to 0, and when the cache file size is increased, the cache hit rate gradually increases.

 proxyプロセスにおいては、キャッシュファイルの内容を維持する方式として、最初のファイルアクセスによる書込が起きてから一定期間経過したファイルオブジェクトを無効としていく制御方式が取られている。この一定期間を有効期限と呼んでいる。この有効期限は、proxyサーバ装置を管理する者が実情に合わせて適切な値を設定する。有効期限を長く取れば、キャッシュファイルに蓄積されるデータ量は増加する。その結果、キャッシュのヒット率は高くなる。すなわち、キャッシュのヒット率を上げるには、キャッシュの有効期限を長く取ればよい。 In the $ proxy process, as a method of maintaining the contents of the cache file, a control method of invalidating a file object that has been passed for a predetermined period since writing by the first file access occurs. This fixed period is called an expiration date. The person who manages the proxy server device sets an appropriate value for this expiration date according to the actual situation. If the expiration date is set longer, the amount of data stored in the cache file increases. As a result, the cache hit rate increases. That is, to increase the cache hit rate, the cache expiration date may be extended.

 なお、キャッシュファイルを格納するファイル装置の記憶容量は有限であるから、有効期限を無制限に長くするわけにはいかない。有効期限が過ぎたキャッシュファイルは、何らかのタイミングで消去される。このようにキャッシュファイルを消去するまでの時間を、この明細書では消去時間と呼ぶことにする。 フ ァ イ ル Since the storage capacity of the file device for storing the cache file is limited, the expiration date cannot be extended without limit. An expired cache file is deleted at some timing. In this specification, the time until the cache file is erased is referred to as an erase time.

 本願発明者の実験によれば、キャッシュ有効期限とキャッシュファイルに蓄積されるファイル量とほぼ比例する。この関係を図22に示す。これは、内部ネットワークから外部ネットワークへのアクセス量が、日によらずほぼ一定であるためである。したがって次のような関係が成り立つ。 According to the experiment performed by the inventor of the present application, the cache expiration date is substantially proportional to the amount of files stored in the cache file. This relationship is shown in FIG. This is because the amount of access from the internal network to the external network is almost constant regardless of the day. Therefore, the following relationship is established.

Figure 2004030690
Figure 2004030690

 この関係から、図22に示したように、キャッシュ有効期限を増やすとキャッシュのヒット率が高まることがわかる。 関係 From this relationship, as shown in FIG. 22, it can be seen that increasing the cache expiration date increases the cache hit rate.

 キャッシュ有効期限とファイルオブジェクトの量との関係は、クライアント計算機を利用する内部ユーザが、外部ネットワーク上のサーバ計算機のファイルオブジェクトをアクセスする頻度によって異なる。キャッシュ有効期限とキャッシュファイル蓄積量とは、ほぼ比例するものの、その比例係数はネットワーク速度、内部クライアント計算機ユーザ数などの使用環境により変動する。 (4) The relationship between the cache expiration date and the amount of file objects differs depending on the frequency with which the internal users using the client computer access the file objects of the server computer on the external network. Although the cache expiration date and the cache file storage amount are almost proportional, the proportional coefficient varies depending on the use environment such as the network speed and the number of internal client computer users.

 なお、キャッシュファイル1日程度の有効期限では、キャッシュヒット率は12%程度である。有効期限を14日にするとキャッシュヒット率は41%程度になることが経験されている。有効期限14日のときにはファイルオブジェクトが700MB程度キャッシュファイルに蓄積されていることが観察されている。 (4) The cache hit rate is about 12% when the validity period of the cache file is about one day. Experience has shown that a cache hit rate of about 41% with an expiration date of 14 days. When the expiration date is 14 days, it has been observed that about 700 MB of the file object is stored in the cache file.

 また、近年ローカルネットワークの規模が大きくなり、接続されるクライアント計算機の数が増大するにつれ、またはクライアント計算機の読出要求が増大するにつれて、単一のproxyサーバ計算機では、各クライアント計算機からの要求に十分に応えることが難しくなってきている。そこで、複数のproxyサーバ計算機を組合せて、ファイルオブジェクトに対するアクセス処理の効率の向上を図る方式が提案されており実施されている。 In addition, as the size of the local network increases in recent years, and the number of connected client computers increases, or as the read requests of the client computers increase, a single proxy server computer is not sufficient for the requests from each client computer. It's getting harder to respond. Therefore, a method of improving the efficiency of access processing to a file object by combining a plurality of proxy server computers has been proposed and implemented.

 図23は、複数のproxyサーバ計算機を用いたシステムの構成例である。proxyサーバ計算機501は、広域ネットワークとローカルネットワーク間の中継を行ない、ファイルオブジェクトをキャッシュする。このproxyサーバ計算機501は、以後2次キャッシュproxyサーバ計算機と呼ぶ。これに対して、proxyサーバ計算機503〜508は、1次キャッシュproxyサーバ計算機と呼ばれ、さらに分割されたローカルネットワークに接続されるクライアント計算機24と2次キャッシュproxyサーバ計算機501間の中継およびファイルオブジェクトのキャッシュを行なう。 FIG. 23 is a configuration example of a system using a plurality of proxy server computers. The proxy server computer 501 relays between the wide area network and the local network, and caches file objects. This proxy server computer 501 is hereinafter referred to as a secondary cache proxy server computer. On the other hand, the proxy server computers 503 to 508 are called primary cache proxy server computers, and relay and file objects between the client computer 24 and the secondary cache proxy server computer 501 connected to the divided local network. Cache.

 たとえば、クライアント計算機24から1次キャッシュproxyサーバ計算機504に対してファイルオブジェクトに対する読出要求を出力したとする。このとき、1次キャッシュproxyサーバ計算機504のキャッシュファイル510内に有効なファイルオブジェクトが存在する場合、1次キャッシュproxyサーバ計算機504は、キャッシュファイル510よりファイルオブジェクトを取出し、読出要求を出したクライアント計算機24に送信する。 For example, assume that a read request for a file object is output from the client computer 24 to the primary cache proxy server computer 504. At this time, if a valid file object exists in the cache file 510 of the primary cache proxy server computer 504, the primary cache proxy server computer 504 fetches the file object from the cache file 510 and issues a read request to the client computer. 24.

 また、1次キャッシュproxyサーバ計算機504に有効なファイルオブジェクトが存在しなかった場合、クライアント計算機24からの読出要求は2次キャッシュproxyサーバ計算機501に中継される。2次キャッシュproxyサーバ計算機501は、同様にキャッシュファイル502内の有効なファイルオブジェクトの有無をチェックし、当該ファイルオブジェクトが存在すれば1次キャッシュproxyサーバ計算機504に送出し、存在しなければ読出要求を広域ネットワーク61を介してサーバ計算機11に中継する。 If the valid file object does not exist in the primary cache proxy server computer 504, the read request from the client computer 24 is relayed to the secondary cache proxy server computer 501. The secondary cache proxy server computer 501 similarly checks the presence or absence of a valid file object in the cache file 502, and sends the file object to the primary cache proxy server computer 504 if the file object exists. Through the wide area network 61 to the server computer 11.

 以降の処理は、単体のproxyサーバ計算機と同様であるので、ここではその詳しい説明は繰返さない。 (4) The subsequent processing is the same as that of a single proxy server computer, and therefore, detailed description thereof will not be repeated here.

 この方式によって、各々の1次キャッシュproxyサーバ計算機503〜508は、クライアント計算機を分担して受け持つことができ、負荷の分散が図れる。また、2次キャッシュproxyサーバ計算機501も、各1次キャッシュproxyサーバ計算機503〜508でキャッシュされていなかったファイルオブジェクトに関してのみ処理を行なえばよいので、負荷の軽減が図れる。具体的には、全体でN台のクライアント計算機24が存在する場合、従来の方式ではproxyサーバ計算機は、N台のクライアント計算機の要求を処理する必要があったが、この方式では数3で算出される台数分のクライアント計算機からの要求を処理すればよいことになる。 According to this method, each of the primary cache proxy server computers 503 to 508 can share and take charge of a client computer, thereby distributing the load. In addition, the secondary cache proxy server computer 501 only needs to perform processing on file objects that have not been cached in each of the primary cache proxy server computers 503 to 508, so that the load can be reduced. Specifically, when there are N client computers 24 in total, the proxy server computer needs to process the requests of the N client computers in the conventional method. It is sufficient to process the requests from the client computers for the number of client computers.

Figure 2004030690
Figure 2004030690

 しかしながら、この方式では1台の2次キャッシュproxyサーバ計算機501が広域ネットワーク61に接続されるサーバ計算機11との中継をすべて行なっており、本質的な負荷の分散が達成されているとは言い難い。 However, in this method, one secondary cache proxy server computer 501 performs all relays with the server computer 11 connected to the wide area network 61, and it cannot be said that the essential load distribution is achieved. .

 また、キャッシュファイルの使用にも無駄が多い。すなわち、1次キャッシュproxyサーバ計算機群503〜508の有するファイルオブジェクトの内容はすべて2次キャッシュproxyサーバ計算機501も保持していると考えられる。これは、中継経路上にある2次キャッシュproxyサーバ計算機501と1次キャッシュproxyサーバ計算503〜508では必ずファイルオブジェクトがキャッシュされるからである。また、各1次キャッシュproxyサーバ計算機同士でも、別の1次キャッシュproxyサーバ計算機に接続されるクライアント計算機が同一のファイルオブジェクトを読出している場合、同一のファイルオブジェクトを重複して持っている可能性が高い。 There is also a lot of waste in using cache files. That is, it is considered that all the contents of the file objects of the primary cache proxy server computer groups 503 to 508 are also held by the secondary cache proxy server computer 501. This is because the file objects are always cached in the secondary cache proxy server computer 501 and the primary cache proxy server computers 503 to 508 on the relay route. In addition, even if each primary cache proxy server computer reads the same file object from a client computer connected to another primary cache proxy server computer, the same file object may be duplicated. Is high.

 したがって、分散ファイルシステム全体でのキャッシュ容量は2次キャッシュproxyサーバ計算機501のキャッシュファイル502の容量であるといえるので、1台の2次キャッシュproxyサーバ計算機だけではキャッシュファイルの容量には限界があるといえる。 Therefore, it can be said that the cache capacity of the entire distributed file system is the capacity of the cache file 502 of the secondary cache proxy server computer 501, and there is a limit to the cache file capacity with only one secondary cache proxy server computer. It can be said that.

 このような問題を解決するために、図24のような方式が提案され実施されている。 方式 In order to solve such a problem, a system as shown in FIG. 24 has been proposed and implemented.

 この方式では、図23の2次キャッシュproxyサーバ計算機501に相当するproxyサーバ計算機は存在しない。各proxyサーバ計算機601〜606は、クライアント計算機群を分担して受け持っている。たとえば、proxyサーバ計算機602に接続されたクライアント計算機24からの読出要求は、proxyサーバ計算機602に受信される。ここで、proxyサーバ計算機602のキャッシュファイル608に有効なファイルオブジェクトが存在する場合、当該ファイルオブジェクトを取出し、読出要求を出したクライアント計算機24に送出する。 In this method, there is no proxy server computer corresponding to the secondary cache proxy server computer 501 in FIG. Each of the proxy server computers 601 to 606 is in charge of a group of client computers. For example, a read request from the client computer 24 connected to the proxy server computer 602 is received by the proxy server computer 602. Here, when a valid file object exists in the cache file 608 of the proxy server computer 602, the file object is extracted and sent to the client computer 24 that issued the read request.

 proxyサーバ計算機602のキャッシュファイル608に有効なファイルオブジェクトが存在しなかった場合、proxyサーバ計算機602はローカルネットワーク600に接続される他のproxyサーバ計算機601,603〜606に対し、それぞれに接続されるキャッシュファイル607,609〜612内に有効なファイルオブジェクトを保持しているかどうかを問合せる。有効なファイルオブジェクトを保持しているproxyサーバ計算機が存在する場合には、たとえば、proxyサーバ計算機605がキャッシュファイル611に有効なファイルオブジェクトを保持している場合、proxyサーバ計算機605はproxyサーバ計算機602に対してファイルオブジェクトを送信し、proxyサーバ計算機602は当該ファイルオブジェクトを読出要求を出したクライアント計算機24に送出する。 If there is no valid file object in the cache file 608 of the proxy server computer 602, the proxy server computer 602 is connected to each of the other proxy server computers 601, 603 to 606 connected to the local network 600. It is inquired whether a valid file object is held in the cache files 607, 609 to 612. When there is a proxy server computer holding a valid file object, for example, when the proxy server computer 605 holds a valid file object in the cache file 611, the proxy server computer 605 becomes a proxy server computer 602. , The proxy server computer 602 sends the file object to the client computer 24 that issued the read request.

 ローカルネットワーク600に接続されたproxyサーバ計算機601,603〜606のキャッシュファイル607,609〜612に有効なファイルオブジェクトが存在しなかった場合、proxyサーバ計算機602は広域ネットワーク61を経由して、サーバ計算機11にクライアント計算機24からの読出要求を中継する。 If there is no valid file object in the cache files 607 and 609 to 612 of the proxy server computers 601 and 603 to 606 connected to the local network 600, the proxy server computer 602 transmits the server computer via the wide area network 61. 11, the read request from the client computer 24 is relayed.

 以降の処理は、単体のproxyサーバ計算機と同様であるので、ここでの詳細な説明は繰返さない。 (4) The subsequent processing is the same as that of a single proxy server computer, and thus detailed description thereof will not be repeated.

 この方式により、同一のファイルオブジェクトを複数のproxyサーバ計算機が保持することがなくなり、キャッシュファイルの有効利用が図れる。また、分散ファイルシステム全体でのキャッシュ容量は、全proxyサーバ計算機601〜606のキャッシュファイル607〜612の容量の合計となり、キャッシュの大容量化が図れる。したがって、高いキャッシュヒット率が期待でき、実行転送速度の向上が期待できる。 (4) According to this method, the same file object is not held by a plurality of proxy server computers, and the effective use of the cache file can be achieved. Further, the cache capacity of the entire distributed file system is the sum of the capacities of the cache files 607 to 612 of all the proxy server computers 601 to 606, so that the cache capacity can be increased. Therefore, a high cache hit rate can be expected, and an improvement in the execution transfer speed can be expected.

 また、図25のような方式も提案され実施されている。図23の方式との違いは、2次キャッシュproxyサーバ計算機705〜707が複数台用意され、1次キャッシュproxyサーバ計算機711〜716が2次キャッシュproxyサーバ計算機705〜707にクライアント計算機群からの読出要求を中継する場合、その読出要求の要求先であるサーバ計算機701,702のアドレス名称によって、たとえば、名称がxxx.eduならばeduドメインサーバ計算機702に対する読出要求と判断して、proxyサーバ計算機705にアクセス要求を出力する。また、名称がyyy.comならばcomドメインサーバ計算機702に対する読出要求と判断してproxyサーバ計算機706にアクセス要求を出力する。このように、末尾のドメイン名称(edu,com等)による簡単なルールでアクセス要求を中継する2次キャッシュproxyサーバ計算機705〜707を選択している。 方式 Also, a method as shown in FIG. 25 has been proposed and implemented. 23 is different from the method of FIG. 23 in that a plurality of secondary cache proxy server computers 705 to 707 are prepared, and primary cache proxy server computers 711 to 716 are read from the client computer group by the secondary cache proxy server computers 705 to 707. When the request is relayed, for example, if the name is xxx.xxx depending on the address name of the server computer 701 or 702 to which the read request is requested. If it is edu, it judges that the request is a read request to the edu domain server computer 702, and outputs an access request to the proxy server computer 705. The name is yyy. If it is “com”, the access request is determined to be a read request to the com domain server computer 702, and an access request is output to the proxy server computer 706. As described above, the secondary cache proxy server computers 705 to 707 that relay the access request by a simple rule based on the end domain name (edu, com, etc.) are selected.

 その他の処理は単一のproxyサーバ計算機と同一であるので、ここでの詳細な説明は繰返さない。 {Other processing is the same as that of a single proxy server computer, and therefore, detailed description thereof will not be repeated.

 これにより、同一の2次キャッシュproxyサーバ計算機に読出要求が集中することがなくなり、負荷の分散が図れる。この方式においても、同一のファイルオブジェクトを複数の2次キャッシュproxyサーバ計算機が保持する必要はなく、キャッシュファイルの有効利用が図れる。また、分散ファイルシステム全体でのキャッシュ容量は全2次キャッシュproxyサーバ計算機のキャッシュファイルの容量の合計となり、キャッシュの大容量化が図れる。したがって、高いキャッシュヒット率が期待でき、実行転送速度の向上が期待できる。
特開平4−313126号公報 特開昭63−200244号公報 特開昭63−20184号公報
As a result, read requests do not concentrate on the same secondary cache proxy server computer, and the load can be distributed. Also in this method, it is not necessary for a plurality of secondary cache proxy server computers to hold the same file object, and the cache file can be effectively used. Further, the cache capacity of the entire distributed file system is the sum of the cache file capacities of all the secondary cache proxy server computers, and the cache capacity can be increased. Therefore, a high cache hit rate can be expected, and an improvement in the execution transfer speed can be expected.
JP-A-4-313126 JP-A-63-200244 JP-A-63-20184

 上述したproxyサーバ装置においては、キャッシュ有効期限をある程度の長さに設定することによりキャッシュファイルに蓄積されるファイルオブジェクトの容量が増え、キャッシュヒット率が高まり効率的なファイルオブジェクトの転送が可能になる。 In the above proxy server device, by setting the cache expiration date to a certain length, the capacity of file objects stored in the cache file increases, the cache hit rate increases, and efficient file object transfer becomes possible. .

 しかし、一方、サーバ計算機のファイルオブジェクトの内容は、修正変更されることがあるため、キャッシュファイルの有効期限が長いと、その期間内はサーバ計算機内のファイルオブジェクトの内容が変更されているにもかかわらず、内部ネットワークのクライアント計算機のユーザはキャッシュファイルに蓄積された古い内容のファイルオブジェクトを読出すことになる。 However, on the other hand, the contents of the file object in the server computer may be modified and changed. Therefore, if the expiration date of the cache file is long, the contents of the file object in the server computer may be changed during that period. Regardless, the user of the client computer in the internal network reads out the file object having the old contents stored in the cache file.

 たとえば、天気図や電子新聞等のファイルオブジェクトは、同一のファイルオブジェクト名称でありながら数時間おきに情報更新されるものが多い。したがって、たとえば、キャッシュ有効期限を24時間とすると、3時間おきに更新される天気図、電子新聞などの情報は7/8以上の確率で古くて役に立たない情報となってしまう。 For example, many file objects such as weather charts and electronic newspapers have the same file object name but are updated every few hours. Therefore, for example, if the cache expiration date is set to 24 hours, information such as weather charts and electronic newspapers updated every three hours becomes old and useless information with a probability of 7/8 or more.

 図26は、このような従来のproxyサーバ装置におけるキャッシュ制御のデータの流れをタイムチャートにしたものである。A,B,C,D,E等の名称は同一ファイルオブジェクト名称でありながら内容が異なるデータであることを示している。クライアント計算機がproxyサーバ装置経由でアクセス(ユーザアクセス(1))すると、サーバ計算機のファイルオブジェクトの内容Bがproxyサーバ計算機によってキャッシュされ、クライアント計算機にはBが転送される。次に、クライアント計算機からユーザアクセス(2)が送信されると、proxyサーバ装置にキャッシュされている内容Bは24時間有効なので、キャッシュヒットしてファイルオブジェクトの内容Bがクライアント計算機に転送される。しかしこのときには、既にサーバ計算機内では内容がEとなっているのに、クライアント計算機はBという内容の古いデータを見ていることになる。 FIG. 26 is a time chart showing the data flow of cache control in such a conventional proxy server device. Names such as A, B, C, D, and E indicate that they are data having the same file object name but different contents. When the client computer accesses (user access (1)) via the proxy server device, the content B of the file object of the server computer is cached by the proxy server computer, and B is transferred to the client computer. Next, when the user access (2) is transmitted from the client computer, since the content B cached in the proxy server device is valid for 24 hours, a cache hit occurs and the content B of the file object is transferred to the client computer. However, at this time, although the content is already E in the server computer, the client computer sees old data having the content B.

 このようなキャッシュファイルの内容のうち、外部ネットワークに接続されたサーバ計算機内に存在する元のデータが変更されている割合をステールデータ率(stale date rate )と呼ぶ。したがって、キャッシュ有効期限を増やすとキャッシュファイルに蓄積されるファイルオブジェクトの容量が増加してキャッシュヒット率が高くなるが、キャッシュファイル内の内容のステールデータ率が増加することになる。 (5) Among the contents of such a cache file, the rate at which the original data existing in the server computer connected to the external network is changed is called the stale date rate. Therefore, increasing the cache expiration date increases the capacity of file objects stored in the cache file and increases the cache hit rate, but increases the stale data rate of the contents in the cache file.

 上述したCERNのhttpdソフトウェアで構成されるproxyサーバ装置であれば、特定のサーバ計算機のファイルオブジェクトのキャッシュ有効期限を小さくできるが、この方法ではクライアント計算機がファイルオブジェクトにアクセスを行なうと、キャッシュ有効期限が短いためキャッシュにミスヒットしてからサーバ計算機にファイルオブジェクトに対するアクセスを行なうことになる。したがって、クライアント計算機のユーザは、proxyサーバ計算機によるキャッシュの恩恵を受けられず、広域ネットワークによる低速なファイルオブジェクト転送が終了するまで待たされることになる。 With a proxy server device composed of the above-mentioned CERN httpd software, the cache expiration date of a file object of a specific server computer can be reduced. However, in this method, when a client computer accesses a file object, the cache expiration date is reduced. Is short, the server computer accesses the file object after a mishit in the cache. Therefore, the user of the client computer cannot receive the benefit of the cache by the proxy server computer and waits until the low-speed file object transfer by the wide area network is completed.

 したがって上述した従来の技術では、キャッシュファイルの中のファイルオブジェクトの内容の新鮮さとキャッシュヒット率の維持はそれぞれ相反する問題となる。 Therefore, in the above-described conventional technology, the freshness of the content of the file object in the cache file and the maintenance of the cache hit ratio are mutually contradictory problems.

 一般に、キャッシュファイルのステールデータ率が増加すると、クライアント計算機のユーザは内容が古いはずであると自主的に判断してファイルオブジェクトをサーバ計算機から直接ロードするようになる。この場合キャッシュファイルを通り越して、実際にサーバ計算機からロードすることを指定するプロトコルが利用される。その結果、proxyサーバ計算機のキャッシュファイルが意味を持たなくなることになる。 Generally, when the steal data rate of the cache file increases, the user of the client computer voluntarily determines that the contents should be old and loads the file object directly from the server computer. In this case, a protocol is used that specifies that the data should be actually loaded from the server computer, passing through the cache file. As a result, the cache file of the proxy server computer becomes meaningless.

 また、従来よりproxyサーバ計算機の負荷を分散する方法として、上述したように図23〜図25の方式が提案されている。しかしいずれの場合にも十分に負荷が分散されているとはいえない。図23に示す方式では、1台の2次キャッシュproxyサーバ計算機501が広域ネットワークに接続されているサーバ計算機との中継をすべて行なっているので、負荷の分散が達成されているとはいえない。 As a method of distributing the load on the proxy server computer, the methods shown in FIGS. 23 to 25 have been proposed as described above. However, in any case, it cannot be said that the load is sufficiently distributed. In the method shown in FIG. 23, since one secondary cache proxy server computer 501 performs all relays with server computers connected to the wide area network, it cannot be said that load distribution is achieved.

 図24の方式では、proxyサーバ計算機601〜606と広域ネットワーク61との間の経路が多重化されていない。また、ローカルネットワーク600に接続されるproxyサーバ計算機601〜606は、この方式に対応した特殊なプロトコルを理解するものに置き換える必要がある。 In the method of FIG. 24, the paths between the proxy server computers 601 to 606 and the wide area network 61 are not multiplexed. Also, the proxy server computers 601 to 606 connected to the local network 600 need to be replaced with those that understand a special protocol corresponding to this method.

 図25の方式では、1次キャッシュproxyサーバ計算機711〜716は、ドメイン名等の単純なルールで分散を行なうので、2次キャッシュproxyサーバ計算機705〜707間での負荷の偏りが生じる。 In the method of FIG. 25, the primary cache proxy server computers 711 to 716 perform distribution according to simple rules such as domain names, so that the load is uneven among the secondary cache proxy server computers 705 to 707.

 本発明は、上記問題点を解決するためになされたもので、その目的は、ファイルオブジェクトに対するアクセス要求を分散して経路を有効に利用し、スループットを向上させ、さらにローカルネットワーク上の通信量を削減することである。 SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to distribute a request for accessing a file object, effectively use a path, improve a throughput, and further reduce a traffic on a local network. It is to reduce.

 請求項1に記載の発明は、クライアント計算機と、クライアント計算機からの情報提供要求に応じて情報を提供するサーバ計算機と、サーバ計算機のファイルオブジェクトを制御するゲートウェイ装置と、クライアント計算機からの情報提供要求に基づくファイルオブジェクトの転送を中継するproxyサーバ計算機とからなるシステムにおけるゲートウェイ装置であって、情報提供要求に含まれる文字列とシステム内のproxyサーバ計算機の数とを用いた所定の演算による演算結果に基づいて、要求した情報を格納するproxyサーバ計算機を決めることで、proxyサーバ計算機毎に格納される情報量を分散させる制御をすることを特徴とする。 According to the first aspect of the present invention, a client computer, a server computer that provides information in response to an information provision request from the client computer, a gateway device that controls a file object of the server computer, and an information provision request from the client computer Device in a system consisting of a proxy server computer that relays the transfer of file objects based on the information, and a calculation result by a predetermined calculation using a character string included in the information provision request and the number of the proxy server computers in the system , A proxy server computer that stores the requested information is determined, thereby controlling the amount of information stored for each proxy server computer.

 請求項2に記載の発明は、請求項1記載のゲートウェイ装置であって、所定の演算が、情報提供要求に含まれるURL文字列の文字コードを加算してシステム内のproxyサーバ計算機の数で割った剰余を用いたハッシュ演算であることを特徴とする。 The invention according to claim 2 is the gateway device according to claim 1, wherein the predetermined operation is performed by adding the character code of the URL character string included in the information provision request and calculating the number of proxy server computers in the system. It is a hash operation using the remainder of the division.

 請求項3に記載の発明は、請求項1または2記載のゲートウェイ装置であって、所定の演算は、システム内の他のゲートウェイ装置と同じ計算式を用い、同一の情報提供要求による演算結果は同一のproxyサーバ計算機を決定することを特徴とする。 The invention according to claim 3 is the gateway device according to claim 1 or 2, wherein the predetermined calculation uses the same formula as another gateway device in the system, and the calculation result by the same information provision request is It is characterized in that the same proxy server computer is determined.

 請求項4に記載の発明は、クライアント計算機と、クライアント計算機からの情報提供要求に応じて情報を提供するサーバ計算機と、サーバ計算機のファイルオブジェクトの制御とクライアント計算機からの情報提供要求に基づくファイルオブジェクトの転送の中継とを行なうproxyサーバ計算機とからなるシステムにおけるproxyサーバ計算機であって、情報提供要求に含まれる文字列とシステム内のproxyサーバ計算機の数とを用いた所定の演算による演算結果に基づいて、要求した情報を格納するproxyサーバ計算機を自機を含めて決めることで、proxyサーバ計算機毎に格納される情報量を分散させる制御をすることを特徴とする。 According to a fourth aspect of the present invention, there is provided a client computer, a server computer for providing information in response to an information provision request from the client computer, a file object control of the server computer, and a file object based on the information provision request from the client computer. A proxy server computer in a system comprising a proxy server computer for relaying the transfer of the information, and a calculation result obtained by a predetermined calculation using a character string included in the information provision request and the number of the proxy server computers in the system. Based on this, the proxy server computers that store the requested information are determined by including the own device, thereby controlling the amount of information stored for each proxy server computer to be dispersed.

 請求項5に記載の発明は、請求項4記載のproxyサーバ計算機であって、所定の演算が、情報提供要求に含まれるURL文字列の文字コードを加算してシステム内のproxyサーバ計算機の数で割った剰余を用いたハッシュ演算であることを特徴とする。 The invention according to claim 5 is the proxy server computer according to claim 4, wherein the predetermined operation is to add the character code of the URL character string included in the information provision request and to determine the number of proxy server computers in the system. Is a hash operation using the remainder divided by.

 請求項6に記載の発明は、請求項4または5記載のproxyサーバ計算機であって、所定の演算は、システム内の他のproxyサーバ計算機と同じ計算式を用い、同一の情報提供要求による演算結果は同一のproxyサーバ計算機を決定することを特徴とする。 According to a sixth aspect of the present invention, there is provided the proxy server computer according to the fourth or fifth aspect, wherein the predetermined operation uses the same calculation formula as another proxy server computer in the system and is operated by the same information provision request. The result is characterized by determining the same proxy server computer.

 請求項7に記載の発明は、クライアント計算機と、クライアント計算機からの情報提供要求に応じて情報を提供するサーバ計算機と、クライアント計算機からの情報提供要求に基づくファイルオブジェクトの転送を中継するproxyサーバ計算機とからなるシステムにおけるクライアント計算機であって、情報提供要求に含まれる文字列とシステム内のproxyサーバ計算機の数とを用いた所定の演算による演算結果に基づいて、要求した情報を格納するproxyサーバ計算機を決めることで、proxyサーバ計算機毎に格納される情報量を分散させる制御をすることを特徴とする。 According to a seventh aspect of the present invention, there is provided a client computer, a server computer for providing information in response to an information provision request from the client computer, and a proxy server computer for relaying a transfer of a file object based on the information provision request from the client computer. A proxy server that stores requested information based on a calculation result of a predetermined calculation using a character string included in the information provision request and the number of proxy server computers in the system. By determining the computer, the amount of information stored for each proxy server computer is controlled to be dispersed.

 請求項8に記載の発明は、請求項7記載のクライアント計算機であって、所定の演算が、情報提供要求に含まれるURL文字列の文字コードを加算してシステム内のproxyサーバ計算機の数で割った剰余を用いたハッシュ演算であることを特徴とする。 The invention according to claim 8 is the client computer according to claim 7, wherein the predetermined operation is to add a character code of a URL character string included in the information provision request and calculate the number of proxy server computers in the system. It is a hash operation using the remainder of the division.

 請求項9に記載の発明は、請求項7または8記載のクライアント計算機であって、所定の演算は、システム内の他のクライアント計算機と同じ計算式を用い、同一の情報提供要求による演算結果は同一のproxyサーバ計算機を決定することを特徴とする。 According to a ninth aspect of the present invention, there is provided the client computer according to the seventh or eighth aspect, wherein the predetermined operation uses the same calculation formula as another client computer in the system, and the operation result by the same information provision request is It is characterized in that the same proxy server computer is determined.

 [実施の形態1]
 本発明が適用されるゲートウェイ装置(proxyサーバ装置と呼ぶ)は、ネットワークインタフェースを備えたUNIX(R) OSの動作する計算機によって、以下の説明および図面を参照すれば容易に実現可能である。そうしたproxyサーバ装置の構成の一例は、図19に示したとおりである。図19のproxyサーバ装置については既に説明したので、その構成についての詳細な説明はここでは繰返さない。
[Embodiment 1]
A gateway device (referred to as a proxy server device) to which the present invention is applied can be easily realized by a computer running a UNIX® OS having a network interface, with reference to the following description and drawings. An example of the configuration of such a proxy server device is as shown in FIG. Since the proxy server device of FIG. 19 has already been described, detailed description of its configuration will not be repeated here.

 通常は、ユーザ31がクライアント計算機24を使用してproxyサーバ装置(図19におけるproxyサーバ装置400)に対して、サーバ計算機11のファイルオブジェクト10にを取得するようネットワーク23を経由して依頼を出す。ファイルオブジェクト12は、前述したようにプロトコル名称と、サーバ計算機のネットワークアドレスと、ファイルオブジェクトの名称と、ファイルデータの実体との組からなっている。 Normally, the user 31 sends a request via the network 23 to the proxy server device (the proxy server device 400 in FIG. 19) using the client computer 24 to acquire the file object 10 of the server computer 11. . As described above, the file object 12 includes a set of the protocol name, the network address of the server computer, the name of the file object, and the file data entity.

 図1に本願発明に係るproxyサーバ装置の第1の実施の形態における装置53のシステム構成を示す。proxyサーバ装置53は、内部ネットワーク23および外部ネットワーク25に接続された第1のproxyプロセス14と、第1のproxyプロセス14が使用するキャッシュファイル16と、第1のproxyプロセス14が、アクセスログ(転送記録)としてファイルの名称を記録するアクセスログ15と、アクセスログ15の末尾から順次取出して格納し、先に格納されたアクセスログから順に出力するFIFOバッファ35と、予め作成されたアクセスパターンリストを格納するパターンファイル30と、FIFOバッファ35からアクセスログを取出してパターンファイル30に格納されたアクセスパターンと比較し一致する場合にはこのアクセスログをメモリバッファURLBUF(URLについては後述する)に格納するキャッシュ更新プロセス36と、URLBUFに格納されたアクセスログに含まれるファイルオブジェクト名称をもとに、当該ファイルオブジェクトをサーバ計算機11から取得してキャッシュファイル16に格納する第2のproxyプロセス34とを含む。 FIG. 1 shows a system configuration of the device 53 in the first embodiment of the proxy server device according to the present invention. The proxy server device 53 includes a first proxy process 14 connected to the internal network 23 and the external network 25, a cache file 16 used by the first proxy process 14, and an access log ( An access log 15 for recording a file name as a transfer record), a FIFO buffer 35 for sequentially taking out and storing the access log 15 from the end thereof, and sequentially outputting the stored access log, and an access pattern list created in advance Is stored in the memory buffer URLBUF (URL will be described later) if the access log is extracted from the FIFO buffer 35 and compared with the access pattern stored in the pattern file 30 and they match. And a second proxy process 34 that acquires the file object from the server computer 11 and stores the file object in the cache file 16 based on the file object name included in the access log stored in the URL BUF. Including.

 第1のproxyプロセス14と、第2のproxyプロセス34と、キャッシュ更新プロセス36とはいずれも、たとえば図19に示すメモリ206内にプログラムとして格納され、CPU202によってこれを実行することにより実現される。 Each of the first proxy process 14, the second proxy process 34, and the cache update process 36 is stored as a program in the memory 206 shown in FIG. 19, for example, and is realized by the CPU 202 executing the program. .

 第1のproxyプロセス14が、特許請求の範囲に記載の転送手段に相当し、キャッシュファイル16がキャッシュファイル手段に相当し、アクセスログ15がファイル転送記録手段に相当する。また、キャッシュ更新プロセス36と、パターンファイル30と、FIFOバッファ35と、第2のproxyプロセス34とによりキャッシュ更新手段が構成される。 The first proxy process 14 corresponds to a transfer unit described in claims, the cache file 16 corresponds to a cache file unit, and the access log 15 corresponds to a file transfer recording unit. The cache update unit 36 includes the cache update process 36, the pattern file 30, the FIFO buffer 35, and the second proxy process 34.

 第2のproxyプロセス34は、本願発明に係るゲートウェイ装置に特有なものであるが、次のような条件に従って起動される。 The second proxy process 34 is specific to the gateway device according to the present invention, and is activated under the following conditions.

 (1) 第2のproxyプロセス34は、第1のproxyプロセス14と共通のキャッシュファイル16を使用する。 {(1)} The second proxy process 34 uses the same cache file 16 as the first proxy process 14.

 (2) 第2のproxyプロセス34のキャッシュ有効期限は0に設定される。すなわち、第2のproxyプロセスを経由するサーバ計算機11へのアクセスは、必ず外部ネットワーク25内のサーバ計算機11に対して行なわれ、ファイルオブジェクトを取得してキャッシュファイル16に格納する。 {(2)} The cache expiration date of the second proxy process 34 is set to 0. That is, access to the server computer 11 via the second proxy process is always performed to the server computer 11 in the external network 25, and a file object is acquired and stored in the cache file 16.

 図1に示すproxyサーバ装置53の動作について以下説明する。内部ネットワーク23内のクライアント計算機24が、このproxyサーバ装置53に対してネットワークアクセス要求19を与えるものとする。第1のproxyプロセス14が、このネットワークアクセス要求19を受け取り、まずI/Oインタフェース202(図17、図18、図19参照)を経由してファイル装置216内に存在するキャッシュファイル16をアクセスする(21)。また第1のproxyプロセス14は、このネットワークアクセス要求とキャッシュファイル16内のファイルオブジェクト名称とを比較し(22)、一致しているか否かを判定する。一致したものがあれば第1のproxyプロセス14はさらに、当該ファイルオブジェクトのキャッシュファイル16内の最終変更時刻を抽出し(22)、現在の時刻と比較する。そして現在の時刻が、当該ファイルオブジェクトの最終変更時刻を起点とする有効期限内であれば、キャッシュファイル16から当該ファイルオブジェクトを抽出し(22)、ネットワークI/Oインタフェース402を経由してクライアント計算機24にファイルオブジェクトを返す(20)。 The operation of the proxy server device 53 shown in FIG. 1 will be described below. It is assumed that the client computer 24 in the internal network 23 sends a network access request 19 to the proxy server device 53. The first proxy process 14 receives the network access request 19, and first accesses the cache file 16 existing in the file device 216 via the I / O interface 202 (see FIGS. 17, 18, and 19). (21). Further, the first proxy process 14 compares the network access request with the file object name in the cache file 16 (22), and determines whether or not they match. If there is a match, the first proxy process 14 further extracts the last modification time of the file object in the cache file 16 (22) and compares it with the current time. If the current time is within the expiration date starting from the last change time of the file object, the file object is extracted from the cache file 16 (22), and is sent to the client computer via the network I / O interface 402. The file object is returned to 24 (20).

 該当するファイルオブジェクトがキャッシュファイル16内に存在していない場合、または存在していてもそのキャッシュ有効期限が切れている場合には、第1のproxyプロセス14は、ネットワークI/Oインタフェース402を経由して外部ネットワーク25のサーバ計算機11にファイルオブジェクト転送要求17を送る。このときのサーバ計算機11は、当該ファイルオブジェクト内のネットワークアドレス名称により特定される。 If the file object does not exist in the cache file 16, or if the cache object has expired, the first proxy process 14 sends the file object via the network I / O interface 402. Then, a file object transfer request 17 is sent to the server computer 11 on the external network 25. At this time, the server computer 11 is specified by the network address name in the file object.

 該当するサーバ計算機11は、要求されたファイルオブジェクトを第1のproxyプロセス14に返送する(18)。すなわちこのファイルオブジェクトが第1のproxyプロセス14により取得される。 (4) The corresponding server computer 11 returns the requested file object to the first proxy process 14 (18). That is, the file object is acquired by the first proxy process 14.

 第1のproxyプロセス14は、このファイルオブジェクトをキャッシュファイル16にその最終変更時刻とともに書込み(21)、アクセスログ15にこのファイルオブジェクトの名称を記録する(26)。 The first proxy process 14 writes this file object in the cache file 16 together with its last modification time (21), and records the name of this file object in the access log 15 (26).

 一方、本願発明のproxyサーバ装置53は、キャッシュ更新プロセス36と第2のproxyプロセス34とをCPU202により処理走行させてファイルオブジェクトを更新する点において従来のproxyサーバ装置と相違する。 On the other hand, the proxy server device 53 of the present invention is different from the conventional proxy server device in that the cache update process 36 and the second proxy process 34 are processed and run by the CPU 202 to update file objects.

 キャッシュ更新プロセス36および第2のproxyプロセス34は次のように動作する。第1のproxyプロセス14によってアクセスログファイル15に格納されたアクセスログの末尾からFIFOバッファ35に順に格納される(28)。FIFOバッファ35は、先に格納されたアクセスログから順に出力する(27)。キャッシュ更新プロセス36は、FIFOバッファ35からアクセスログを1行ずつ抽出し、メモリバッファに格納する。キャッシュ更新プロセス36は、メモリバッファからアクセスログを取出し、それぞれのアクセスログをもとにキャッシュにヒットしているか否かを判定する。キャッシュにヒットしていればさらに、パターンファイル30からアクセスパターンリストを抽出し(29)、アクセスログに含まれるファイルオブジェクト名称がアクセスパターンリストと一致しているものを抽出する。またキャッシュ更新プロセス36は、抽出したファイルオブジェクトのうちファイルオブジェクト名称が特定のパターンに一致するものは除外して、これをメモリバッファURLBUFに格納する。 The cache update process 36 and the second proxy process 34 operate as follows. The access logs stored in the access log file 15 by the first proxy process 14 are sequentially stored in the FIFO buffer 35 from the end (28). The FIFO buffer 35 sequentially outputs the access log stored first (27). The cache update process 36 extracts the access log line by line from the FIFO buffer 35 and stores it in the memory buffer. The cache update process 36 extracts the access log from the memory buffer and determines whether or not the cache has been hit based on each access log. If the cache hits, an access pattern list is further extracted from the pattern file 30 (29), and a file whose file object name included in the access log matches the access pattern list is extracted. In addition, the cache update process 36 excludes the extracted file objects whose file object names match the specific pattern, and stores them in the memory buffer URLBUF.

 第2のproxyプロセス34は、URLBUFが空でないならば、URLBUFに格納されたファイルオブジェクト名称をもとに(31)、サーバ計算機11にアクセスし(32)、当該ファイルオブジェクトを取得して(33)キャッシュファイル16に格納する(37)。これによりキャッシュファイル16内のファイルオブジェクトが最新の内容に維持される。 If the URL BUFF is not empty, the second proxy process 34 accesses the server computer 11 (32) based on the file object name stored in the URL BUF (32) and acquires the file object (33). ) Store in the cache file 16 (37). As a result, the file object in the cache file 16 is maintained at the latest content.

 このように、第2のproxyプロセス34を起動すると、大きく次の2つの効果を得ることができる。 起動 Thus, when the second proxy process 34 is activated, the following two effects can be largely obtained.

 (1) 第1のproxyプロセス14では、キャッシュファイルの有効期限がある値に設定されており、ファイルオブジェクトのキャッシュ更新処理をこの第1のproxyプロセス14を用いて行なったとすると、キャッシュファイル16にヒットしてしまう可能性が高い。これでは、外部ネットワーク25のサーバ計算機11のファイルオブジェクトに対するアクセスが行なわれないので、キャッシュファイル16の更新が実現できない。 (1) In the first proxy process 14, the expiration date of the cache file is set to a certain value. If the cache update processing of the file object is performed by using the first proxy process 14, the cache file 16 There is a high possibility of hitting. In this case, since the access to the file object of the server computer 11 on the external network 25 is not performed, the update of the cache file 16 cannot be realized.

 一方、第2のproxyプロセス36は、キャッシュ有効期限が0になっており、第2のproxyプロセス36に対してアクセス要求を出せば、このキャッシュファイルはミスヒットしたことになるので、外部ネットワーク25を介してサーバ計算機11に対するファイルオブジェクトのアクセスが行なわれ(32)、当該ファイルオブジェクトは第2のproxyプロセス34に転送される(33)ことによって、キャッシュファイル16中のファイルオブジェクトは最新の状態に更新される。 On the other hand, the second proxy process 36 has a cache expiration date of 0, and if the second proxy process 36 issues an access request to the second proxy process 36, this cache file is a mishit. (32), the file object is transferred to the second proxy process 34 (33), and the file object in the cache file 16 is updated to the latest state. Be updated.

 (2) 第1のproxyプロセス14は、アクセスログを残すが、このアクセスログをもとにキャッシュ更新アクセスをするべきファイルオブジェクトが抽出される。したがって、もしキャッシュ更新プロセス36が第1のproxyプロセス14を使用してサーバ計算機11のファイルオブジェクトのアクセスを行なうと、その結果として生成されるアクセスログがアクセスファイル15に記録されてしまう。キャッシュ更新プロセス36は、次回の更新アクセス動作においてアクセスログファイル15に格納されたアクセスログをもとにアクセスすべきファイルオブジェクト名称を抽出する。したがって、再度同じファイルオブジェクトをサーバ計算機11から取得することになり、同一のファイルオブジェクトが多重に出現するループ動作が起きてしまうことになる。これを避けるために第2のproxyプロセス34を動作させ、第2のproxyプロセス34を利用したキャッシュ更新アクセス動作を行なう。 {(2)} The first proxy process 14 leaves an access log, and a file object to be accessed for cache update is extracted based on the access log. Therefore, if the cache update process 36 accesses the file object of the server computer 11 using the first proxy process 14, an access log generated as a result is recorded in the access file 15. The cache update process 36 extracts a file object name to be accessed based on the access log stored in the access log file 15 in the next update access operation. Therefore, the same file object is obtained again from the server computer 11, and a loop operation in which the same file object appears multiple times occurs. In order to avoid this, the second proxy process 34 is operated, and a cache update access operation using the second proxy process 34 is performed.

 本発明を非常に有効に適用できる例として、インターネット上のWWWシステムがある。WWWシステム上でのproxyサーバ装置において、本願発明のキャッシュ更新プロセスを行なう手順を以下に説明する。 A WWW system on the Internet is an example to which the present invention can be applied very effectively. The procedure for performing the cache update process of the present invention in the proxy server device on the WWW system will be described below.

 WWWシステムでは、ネットワーク上に分散したファイルオブジェクト名称はUniform Resource Locator(URL)と呼ばれる形式で表現され、特定される。URLの一例を次に示す。 In the WWW system, file object names distributed on a network are expressed and specified in a format called Uniform Resource Locator (URL). An example of the URL is shown below.

Figure 2004030690
Figure 2004030690

 数4においては「http」は使用するプロトコルを示す。「www.xxx.co.jp」は、ネットワーク上のHTTPサーバ計算機のアドレスを示すものであり、ネットワーク上で同一のものはないよう選ばれている。また「/test/index.html」はサーバ計算機内のファイル名称を示す。 に お い て In Equation 4, “http” indicates a protocol to be used. “Www.xxx.co.jp” indicates the address of the HTTP server computer on the network, and is selected so that there is no identical one on the network. “/Test/index.html” indicates a file name in the server computer.

 第1のproxyプロセス14として一般に利用されているDeleGateを使用する場合は、そのアクセスログの例は次のように、クライアント計算機名称、時刻、“HTTPプロトコル(ファイル取得要求)”、その他、およびキャッシュヒット状況(キャッシュヒットした場合H)などとなる。以下に、そのアクセスログの例を示す。 When using generally used DeleGate as the first proxy process 14, examples of the access log include the client computer name, time, "HTTP protocol (file acquisition request)", other information, and cache. Hit status (H if cache hit). The following is an example of the access log.

Figure 2004030690
Figure 2004030690

 数5に示すアクセスログは、図2に示すような、出願人がインターネット上で公開している情報ページへアクセスした場合のアクセスログに相当する。図2に示されるページは、テキストと、6個のグラフィックデータとから構成されているので、このページに対するアクセスを1回行なうと、6個のグラフィックデータに対するアクセスを含む7つのアクセスログが形成される。すなわち、上述のアクセスログにおいて第1行目はこの情報ページのテキストに対するアクセス要求であり、残りの6行は表紙に貼り込まれた出願人会社のロゴのグラフィックデータ(sharpcolor.gif)、出願人会社内の情報システム事業本部と呼ばれる事業部のロゴ(isg.gif)、出願人会社の4つの製品の写真のグラフィックデータ(Zaurus.gif,Shoin.gif,Prostation.gif,S2.gif)の取得要求を示している。 The access log shown in Equation 5 corresponds to an access log when the applicant accesses an information page published on the Internet as shown in FIG. Since the page shown in FIG. 2 is composed of text and six pieces of graphic data, once access to this page is made, seven access logs including access to six pieces of graphic data are formed. You. That is, in the above access log, the first line is an access request to the text of this information page, and the remaining six lines are graphic data (sharpcolor.gif) of the logo of the applicant company pasted on the cover and the applicant. Acquisition of a logo (isg.gif) of a division called Information System Business Division in the company, and graphic data of photographs of four products of the applicant company (Zarus.gif, Shoin.gif, Prostation.gif, S2.gif) Indicates a request.

 HTTPプロトコルは、コマンド文字列(GET等)と、URLと、プロトコルバージョン(「HTTP/1.0」等)から構成されている。以下はその一例である。 The HTTP protocol is composed of a command character string (such as GET), a URL, and a protocol version (such as "HTTP / 1.0"). The following is an example.

Figure 2004030690
Figure 2004030690

 HTTPプロトコルについては、最後に掲げる表内に示された参考文献のうち、参考文献3および参考文献4に記載されている。キャッシュ更新プロセスの実施手順について以下に説明するが、そのための前提条件は次の(1)および(2)となっている。 The HTTP protocol is described in References 3 and 4 among the references shown in the last table. The procedure for performing the cache update process will be described below. The prerequisites for that are as follows (1) and (2).

 (1) 第1のproxyプロセス14は、キャッシュ有効期限M(時間)で起動する。たとえばM=24時間とする。 {(1)} The first proxy process 14 starts with a cache expiration time M (time). For example, M = 24 hours.

 (2) 第2のproxyプロセス34は、(i)キャッシュファイルを第1のproxyプロセス14のものと共有し、(ii)キャッシュ有効期限を0に設定する、という2つの条件に従って起動される。 {(2)} The second proxy process 34 is activated according to two conditions: (i) sharing the cache file with that of the first proxy process 14 and (ii) setting the cache expiration date to 0.

 このような条件の下に、本願発明のキャッシュ更新プロセスを毎日一定時刻に起動し、一定時刻に終了する。毎日一定時刻にキャッシュ更新プロセスを自動起動するには、UNIX(R) OSに備わっているタイマ機能(cron)を使用する。これは、UNIX(R) OSに関連してよく知られている機能であるので、その詳細についてはここでは説明しない。なお、UNIX(R) OS以外のOSでも、同様の機能が提供されていることが多い。 (5) Under such conditions, the cache update process of the present invention is started at a fixed time every day and ends at a fixed time. To automatically start the cache update process at a fixed time every day, a timer function (cron) provided in UNIX® OS is used. This is a well-known function related to the UNIX (R) OS, and therefore, its details will not be described here. It should be noted that similar functions are often provided in OSs other than UNIX (R) @OS.

 図3は、本願発明のキャッシュ更新プロセスの処理手順を示すフローチャートである。このプロセスを実現するためのプログラムは、たとえば図19のメモリ206内に配置され、CPU202によって実行される。このプロセスとネットワークおよびファイル装置216との入出力には、それぞれネットワークI/Oインタフェース402とI/Oインタフェース208とが使用される。 FIG. 3 is a flowchart showing the processing procedure of the cache update process of the present invention. A program for implementing this process is arranged, for example, in the memory 206 of FIG. A network I / O interface 402 and an I / O interface 208 are used for input and output between this process and the network and file device 216, respectively.

 まず、ステップS1において第1のproxyプロセス14が、アクセスログファイル15に格納されるアクセスログの末尾を1行読出す。読出せない場合は、アクセスログが読めるまで待機する。UNIX(R)では、このようなアクセスログの末尾を呼出す機能は、OSとともに提供されているコマンドtailで可能であり、その標準出力から1行読出し、メモリ内に確保された文字列バッファであるLINEバッファに1行格納するには、以下のように行なう。ここで、第1のproxyプロセス14が格納したアクセスログが/usr/local/etc/telegated/logs/10001.httpであるとする。これは図1のアクセスログファイル15に格納されるアクセスログに相当する。 First, in step S1, the first proxy process 14 reads one line from the end of the access log stored in the access log file 15. If it cannot be read, it waits until the access log can be read. In UNIX (R), such a function of calling the end of the access log can be performed by a command tail provided with the OS, and is a character string buffer secured in a memory by reading one line from its standard output. To store one line in the LINE buffer, the following is performed. Here, the access log stored by the first proxy process 14 is / usr / local / etc / telegate / logs / 10000. http. This corresponds to the access log stored in the access log file 15 of FIG.

Figure 2004030690
Figure 2004030690

 数7のtail −fによる1行読出は、図1の27に相当するが、これはソフトウェアによるFIFOバッファ35を構成しており、読出ポインタおよび書込ポインタをそれぞれ有している。 1-row reading by {7 tail} -f corresponds to 27 in FIG. 1. This constitutes a FIFO buffer 35 by software, and has a read pointer and a write pointer, respectively.

Figure 2004030690
Figure 2004030690

 すなわち、第1のproxyプロセス14が書込むアクセスログは、1個のファイルオブジェクト転送ごとに1行発生するが、このとき書込ポインタ(wp)を1行進める。また、ソフトウェアによるFIFOバッファ35がtail −fでアクセスログを1行読出せば、読出ポインタ(rp)を1行進める。第1のproxyプロセス14による書込速度(行/秒)と、キャッシュ更新プロセス36におけるtail −fによる1行読出速度(行/秒)が一致していなくてもよい。第1のproxyプロセス14によるアクセスログ書込速度が大きくなると、書込ポインタ(wp)は先に進むが、キャッシュ更新プロセス34によってこれを読出ポインタ(rp)が追いかけながらアクセスログが読出される。アクセスログ書込速度が小さいか、読出側のキャッシュ更新プロセス34の処理が進行すれば、やがて読出ポインタ(rp)が書込ポインタ(wp)に追いつくことになる。これが、ソフトウェアFIFOバッファとしての動作である。 {1} That is, the access log written by the first proxy process 14 occurs one line for each transfer of one file object. At this time, the write pointer (wp) is advanced by one line. If the FIFO buffer 35 by software reads one line of the access log by tail $ -f, the read pointer (rp) is advanced by one line. The writing speed (line / second) by the first proxy process 14 and the one-line reading speed (line / second) by tail # -f in the cache update process 36 may not be the same. When the access log writing speed by the first proxy process 14 increases, the write pointer (wp) advances, but the access log is read by the cache update process 34 while the read pointer (rp) follows it. If the access log writing speed is low or if the processing of the cache update process 34 on the reading side progresses, the read pointer (rp) will eventually catch up with the write pointer (wp). This is the operation as a software FIFO buffer.

 次に、LINEバッファに格納された1行のアクセスログ情報は過去にアクセスされたファイルオブジェクトの記録であるので、以下のような条件でキャッシュ更新アクセスを行なうべきファイルオブジェクト名称を含むものを選択する。この選択処理を、以後フィルタリングと呼び、図3に示すフローチャートのステップS2に相当する。このフィルタリングのルールは以下のとおりである。 Next, since the one-line access log information stored in the LINE buffer is a record of a file object that has been accessed in the past, a file containing a file object name to be accessed for cache update under the following conditions is selected. . This selection process is hereinafter referred to as filtering, and corresponds to step S2 in the flowchart shown in FIG. The rules for this filtering are as follows.

 (1) HTTPコマンド文字列がファイルオブジェクトに対するリード要求(GET)であるもの。 {(1)} An HTTP command character string is a read request (GET) for a file object.

 (2) ファイルオブジェクト名称のプロトコル部分がhttpであるもの。 {(2)} The protocol part of the file object name is http.

 (3) キャッシュにヒットしたアクセスであるもの。 {(3)} An access that hits the cache.

 (4) ファイルオブジェクト名称がキャッシュ更新アクセスに適さないものを除外する。 {(4)} Exclude files whose file object names are not suitable for cache update access.

 (5) 特定の文字列パターンを含むアクセスリストとファイルオブジェクト名称が一致するもの。 {(5)} An access list including a specific character string pattern matches a file object name.

 以上の(1)〜(5)の条件を用いてフィルタリングを行ない、ファイルオブジェクト名称のフィールドだけを取出して、キャッシュ更新アクセスでファイルオブジェクト名称を抽出する。 (4) Filtering is performed using the above conditions (1) to (5), only the file object name field is extracted, and the file object name is extracted by cache update access.

 ファイルオブジェクト名称のプロトコル部分がhttpのもののみ抽出するのは、第1のproxyプロセス14および第2のproxyプロセス34として一般的に利用されているDeleGateソフトウェアがキャッシュファイルを生成するプロトコルはhttpプロトコルのみであるので、そのファイルオブジェクトのみはキャッシュ更新アクセスする意味があるからである。それ以外のプロトコルによるアクセスはファイルオブジェクトがキャッシュされないので、キャッシュ更新アクセスをする意味がない。 Only the protocol part of the file object name which is http is extracted because only the http protocol is used by the DeleteGate software generally used as the first proxy process 14 and the second proxy process 34 to generate a cache file. This is because only that file object is meaningful for cache update access. Since access by other protocols is not cached, there is no point in performing cache update access.

 キャッシュにヒットしたもののみを抽出するのは、キャッシュにヒットしていないファイルオブジェクトはサーバ計算機11へのアクセスが行なわれたものと解釈されるので、その直後にキャッシュ更新アクセスを行なう必要はないと判断されるからである。 The reason that only those that hit the cache are extracted is that it is interpreted that the file object that has not hit the cache has been accessed to the server computer 11, so it is not necessary to perform the cache update access immediately after that. It is because it is judged.

 ファイルオブジェクト名称が、キャッシュ更新アクセスに適さないものとしては、URL中に「?」を含むものなどがある。「?」を含むURL表記は、サーバ計算機11に対してクライアント計算機24を使用するユーザが文字列を人手で入力する場合などに使われるため、この文字を含むURL表記を有するファイルオブジェクトをキャッシュ更新アクセスの対象とすると、予期せぬ結果を招くおそれがある。 File objects whose names are not suitable for cache update access include those that include “?” In the URL. Since the URL notation including “?” Is used when a user using the client computer 24 manually inputs a character string to the server computer 11, the file object having the URL notation including this character is updated in the cache. If accessed, unexpected results may occur.

 特定の文字列パターンを含むアクセスリストと一致するもののみを選ぶのは、サーバ計算機において頻繁に内容更新が行なわれるものである天気図、電子新聞等を提供しているサーバ計算機など特定のものであることが多い。そこで、そのようなサーバ計算機のファイルオブジェクトを指定するような文字列パターンを格納したアクセスリストと一致したものだけをキャッシュ更新アクセスの対象とすることによって、不要なキャッシュ更新アクセスを極力削減するためのものである。 Only those that match the access list that contains the specific character string pattern are selected by the server computer that provides the weather map, electronic newspaper, etc., whose contents are frequently updated in the server computer. There are many. Therefore, by limiting only those that match the access list that stores such a character string pattern that specifies the file object of the server computer to the cache update access, unnecessary cache update access is reduced as much as possible. Things.

 このような文字列パターンを格納したパターンファイル30を、ここでpattern.txtとし、その内容を数9に示すものとする。 {The pattern file 30 storing such a character string pattern is stored in the pattern. txt, and its contents are shown in Expression 9.

Figure 2004030690
Figure 2004030690

 UNIX(R)では、このようなファイルオブジェクト名称の抽出作業は、OSとともに提供されているコマンド群である数10を用いて行なうことができる。 In UNIX (R), such a file object name extraction operation can be performed using Expression 10 which is a command group provided with the OS.

Figure 2004030690
Figure 2004030690

 たとえば、次のようなコマンドを入力することにより、ステップS2の処理を経たものがメモリ上の文字列バッファURLBUFに出力される。 {For example, by inputting the following command, the one that has undergone the processing in step S2 is output to the character string buffer URLBUF on the memory.

Figure 2004030690
Figure 2004030690

 なお、上述したフィルタリングルールに反していれば、文字列バッファURLBUFは空になる。この間の経過を以下に説明する。第1のproxyプロセス14により作成されたアクセスログファイル15の形式は既に述べたように次のとおりである。 If the above filtering rule is violated, the character string buffer URLBUF becomes empty. The progress during this time will be described below. The format of the access log file 15 created by the first proxy process 14 is as follows, as described above.

Figure 2004030690
Figure 2004030690

 キャッシュヒット時には“H”という文字がキャッシュヒット状況として行の末尾に出力される。 @ When a cache hit occurs, the character "H" is output at the end of the line as a cache hit status.

 まず、grep −v”\?”に入力することで、?を含まない行を抽出し標準出力に出力する。それをさらにgrep”\”GET”でその行がファイルオブジェクト取得要求であるGETコマンドである行のみ抽出し、標準出力に出力する。さらにgrep’H$’に入力することで行末が「H」で終了する、すなわちキャッシュにヒットしたものを選び標準出力に出力する。ここで、$は行の末尾を表現する正規表現である。 First, by inputting grep -v “\?”,? Extract the lines that do not contain and output to the standard output. Further, only the line which is a GET command, which is a file object acquisition request, is extracted with grep "@" GET "and output to the standard output. , That is, select a hit in the cache and output it to the standard output. Here, $ is a regular expression representing the end of a line.

 さらに空白がフィールド間の区切であると考えると、7番目のフィールドがファイルオブジェクト名称に相当するので、awk’{print$7}’を使ってファイルオブジェクト名称のみを抽出している。 Assuming that the blank is a delimiter between the fields, the seventh field corresponds to the file object name, so that only the file object name is extracted by using awk 'print' 7 '.

 さらに、ファイルオブジェクト名称部分が、予め用意されたパターンファイルpattern.txtの中のいずれかの行に一致するか否かをfgrep −f pattern.txtによりマッチングを行なってその結果を文字列バッファURLBUFに出力する。 {Furthermore, the file object name part is a pattern file pattern. txt and whether or not it matches any of the lines in fgrep {-f} pattern. The matching is performed by txt and the result is output to the character string buffer URLBUF.

 ステップS3では、文字列バッファURLBUFが空でないか否かを判定する。もし文字列バッファURLBUFが空の場合には、ステップS1に戻り、空でない場合にはステップS4へ進む。 In step S3, it is determined whether or not the character string buffer URLBUF is not empty. If the character string buffer URLBUF is empty, the process returns to step S1, and if not, the process proceeds to step S4.

 ステップS4では、第2のproxyプロセス34によって、キャッシュ更新プロセス36で抽出されたファイルオブジェクトをサーバ計算機11から取得する。文字列バッファURLBUFに格納されたキャッシュ更新アクセスの対象であるファイルオブジェクト名称に基づいて、第2のproxyプロセス34はサーバ計算機11へアクセスするための子プロセスを起動する。子プロセスをキャッシュ更新子プロセスと呼ぶ。キャッシュ更新子プロセスは、第2のproxyプロセス34を通じてネットワーク接続をサーバ計算機11に対して行なう。これにより、サーバ計算機11に格納されるファイルオブジェクトへのアクセスが発生し、キャッシュファイル16の内容が更新される。この処理の詳細は後述する。 In step S4, the second proxy process 34 acquires the file object extracted in the cache update process 36 from the server computer 11. The second proxy process 34 activates a child process for accessing the server computer 11 based on the file object name for cache update access stored in the character string buffer URLBUF. The child process is called a cache update child process. The cache updater process makes a network connection to the server computer 11 through the second proxy process 34. As a result, access to the file object stored in the server computer 11 occurs, and the content of the cache file 16 is updated. Details of this processing will be described later.

 ステップS5では、現在の時刻を調べ、指定時刻が過ぎていればプロセスを終了する。指定時刻を過ぎていなければステップS1に戻り、以上の処理を繰返す。 In step S5, the current time is checked, and if the specified time has passed, the process ends. If the specified time has not passed, the process returns to step S1, and the above processing is repeated.

 以上が、本願発明の第1の実施の形態におけるproxyサーバ装置におけるアルゴリズムである。図7は、proxyサーバ計算機53のキャッシュ有効期限が24時間で、サーバ計算機11のファイルオブジェクトが同一名称でありながら、内容が3時間おきに更新される場合のファイルオブジェクトのデータがキャッシュされるようすを示している。 The above is the algorithm in the proxy server device according to the first embodiment of the present invention. FIG. 7 shows that the data of the file object in the case where the cache expiration date of the proxy server computer 53 is 24 hours and the contents are updated every three hours while the file object of the server computer 11 has the same name, is cached. Is shown.

 まず、ユーザアクセス(1)が発生したときに、キャッシュファイル16に該当するファイルオブジェクトがなかったとすると、サーバ計算機11からデータBがアクセスされ、キャッシュファイル16に書込まれるとともに、クライアント計算機24に転送される。 First, if there is no corresponding file object in the cache file 16 when the user access (1) occurs, the data B is accessed from the server computer 11 and written into the cache file 16 and transferred to the client computer 24. Is done.

 次に、ユーザアクセス(2)が発生すると、キャッシュにヒットしたデータBがクライアント計算機24に転送される。このとき、サーバ計算機11はデータDになっているので、クライアント計算機24は3時間程度古いステールデータを読んだことになる。しかし、この動作の結果アクセスログファイル15にファイルオブジェクト名称とキャッシュにヒットしたという情報を含むアクセスログが記録されるので、図3を用いて説明した動作に従い、proxyサーバ装置53が自発的にサーバ装置11にアクセスし、データEを読出しキャッシュファイル16を更新する。 Next, when the user access (2) occurs, the data B hit in the cache is transferred to the client computer 24. At this time, since the server computer 11 has the data D, the client computer 24 has read the old stale data of about 3 hours. However, as a result of this operation, the access log including the file object name and the information that the cache hit has been recorded in the access log file 15, and the proxy server device 53 voluntarily operates the server according to the operation described with reference to FIG. Access the device 11, read the data E, and update the cache file 16.

 さらに、ユーザアクセス(3)が起きると、キャッシュされたデータEがクライアント計算機24に転送される。この動作をきっかけにしてアクセスログファイル15にファイルオブジェクト名称とキャッシュにヒットしたという情報を含むアクセスログが記録されるので、図3を用いて説明した動作に従い、proxyサーバ装置53が自発的にサーバ計算機11にアクセスし、データIを読出してキャッシュファイル16を更新する。 (4) Further, when the user access (3) occurs, the cached data E is transferred to the client computer 24. This operation triggers the access log including the file object name and the information that the cache hit has been recorded in the access log file 15, and the proxy server device 53 voluntarily operates the server according to the operation described with reference to FIG. It accesses the computer 11, reads out the data I, and updates the cache file 16.

 したがって、ユーザアクセス(4)が起きると、キャッシュされたデータIがクライアント計算機24に転送される。 Therefore, when the user access (4) occurs, the cached data I is transferred to the client computer 24.

 以上の動作からわかるように、クライアント計算機24はステールデータを読んでいることに変わりがないが、図26の場合に比べると最新に近い情報を読んでいることになる。ユーザによるアクセスの間隔が3時間以内であれば、ステールデータは発生する確率が非常に低くなり、サーバ計算機11の最新の情報を得ることが可能になることが理解できる。 As can be seen from the above operation, the client computer 24 is still reading the stale data, but it is reading information that is closer to the latest than the case of FIG. If the interval between accesses by the user is within 3 hours, the probability of occurrence of stale data is extremely low, and it can be understood that the latest information of the server computer 11 can be obtained.

 なお、図3のステップS4のネットワークアクセス部の実現方法としては、キャッシュ更新プロセスから直接HTTPプロトコルを発生させればよいが、UNIX(R)では広く一般に利用されているlynx等のWWWクライアントプログラムを利用すれば、HTTPを発生するキャッシュ更新プロセスを新たに製作しなくてもHTTPに従ったネットワークアクセスを行なうキャッシュ更新プロセス操作を実現できる。その方法を以下に説明する。 As a method of realizing the network access unit in step S4 in FIG. 3, the HTTP protocol may be directly generated from the cache update process, but a UNIX (R) WWW client program such as lynx widely used is generally used. If used, a cache update process operation for performing network access according to HTTP can be realized without newly manufacturing a cache update process that generates HTTP. The method will be described below.

 lynxはUNIX(R) OSの上で動作するプログラムであるので、以下の説明ではUNIX(R)の記述を使用する。 Since \ lynx is a program that runs on the UNIX (R) OS, the description of UNIX (R) will be used in the following description.

 lynxでは次のコマンドを指定すれば、指定URLを読出してtemp_fileというファイルに書込むことができる。 By specifying the following command in $ lynx, the specified URL can be read and written to a file named temp_file.

Figure 2004030690
Figure 2004030690

 さらに、proxyプロセス経由のアクセスも、UNIX(R) OSの環境変数http_proxyを設定することにより、lynxから利用可能である。また、proxyプロセスがDeleGateのようなproxyソフトウェアであれば、URL表記にproxyを指定することによりproxy経由のアクセスが可能である。これについては参考文献12を参照されたい。 {Furthermore, access via the proxy process can be used from lynx by setting the environment variable http_proxy of the UNIX® OS. In addition, if the proxy process is proxy software such as DeleGate, access via proxy is possible by specifying proxy in the URL notation. See reference 12 for this.

 後者の方式を採用する場合について以下に説明する。proxyプロセスが、ネットワークアドレスがproxyserverであるゲートウェイ計算機のTCP/IPの10001番のポート番号を利用しているプロセスであるならば、このproxyプロセス経由でサーバ計算機11のファイルオブジェクトhttp://www.xxx.co.jp/test/index.htmlにアクセスするためには次の数14のコマンドを指定すればよい。 場合 The case where the latter method is adopted will be described below. If the proxy process is a process using the TCP / IP port number 10001 of the gateway computer whose network address is proxyserver, the file object of the server computer 11 via this proxy process http: // www. xxx. co. jp / test / index. In order to access html, the following command of Expression 14 may be specified.

Figure 2004030690
Figure 2004030690

 したがって、本願発明を実施する際には、同様にしてproxyプロセスを第2のproxyプロセス34のポート番号に設定すればよい。 Therefore, when implementing the present invention, the proxy process may be set to the port number of the second proxy process 34 in the same manner.

Figure 2004030690
Figure 2004030690

 本願発明では、このようなファイルオブジェクト(URL)のキャッシュ更新アクセスにより、第1のproxyプロセス14の管理するキャッシュファイル16を最新状態に保つことが目的である。したがって、temp_file自体は利用しないので捨ててよい。OSがUNIX(R)であれば、空ファイルとして/dev/nullが準備されているので、このファイルに書込むようにすれば実際にはファイルの生成は行なわないので効率的である。 The object of the present invention is to keep the cache file 16 managed by the first proxy process 14 up to date by such a cache object update access of the file object (URL). Therefore, temp_file itself is not used and may be discarded. If the OS is UNIX (R), / dev / null is prepared as an empty file, and writing to this file is efficient because no file is actually generated.

 次に、第1のproxyプロセス14および第2のproxyプロセス34のキャッシュ管理手法について説明する。proxyプロセスのキャッシュ管理手法は、参考文献5、参考文献12にあるような公知の技術であるキャッシュ制御機能を持ったDeleGateなどにおけるものである。DeleGateにおけるキャッシュ管理手法は、ソースコードの形で公開されているので以下にその手法を述べる。なお、本願発明はこれと同様のキャッシュ管理手法が使われているキャッシュ機能付proxyサーバソフトウェアであれば、第1のproxyプロセス14および第2のproxyプロセス34として適用可能である。 Next, a cache management method of the first proxy process 14 and the second proxy process 34 will be described. The cache management method of the proxy process is based on a well-known technique such as DeleGate having a cache control function as described in Reference Documents 5 and 12. The cache management method in DeleteGate is disclosed in the form of source code, and the method will be described below. The present invention can be applied to the first proxy process 14 and the second proxy process 34 as long as the proxy server software with a cache function uses the same cache management method.

 上述したように、第2のproxyプロセス34がproxyserverという名称のシステムで動作しており、TCP/IPの10001番でURL取得要求を受付けるものとする。このとき、文字列バッファURLBUFに指定URL表記が格納されている場合に、キャッシュ更新プロセス36は、数16に記載のコマンドを実行することでtemp_fileに指定URLのファイルオブジェクトが格納されると述べた。 As described above, it is assumed that the second proxy process 34 is operating in the system named proxyserver, and accepts a URL acquisition request with TCP / IP number 10001. At this time, when the specified URL notation is stored in the character string buffer URLBUF, the cache update process 36 has described that the file object of the specified URL is stored in the temp_file by executing the command described in Expression 16. .

Figure 2004030690
Figure 2004030690

 なお、第2のproxyプロセス34とキャッシュ更新プロセス36の通信はTCP/IP、たとえばUNIX(R)のメッセージ通信で行なわれる。 The communication between the second proxy process 34 and the cache update process 36 is performed by TCP / IP, for example, UNIX (R) message communication.

 たとえば、文字列バッファURLBUFにhttp://www.sharp.co.jp/sample/test.htmlという文字列が格納されているとする。キャッシュ更新プロセス36が数16のコマンドを実行すると、キャッシュ更新プロセス36はURL取得要求を第2のproxyプロセス34に出力する。第2のproxyプロセス34は、子プロセスを生成し、この子プロセスにURL取得の処理を任せて自身のプロセスは再びキャッシュ更新プロセス36からのURL出力要求を待つ。キャッシュ更新プロセス34による数16の実行によりURL取得を実行する第2のproxyプロセス34が生成した子プロセスは、図4のフローチャートに示す処理を行なう。 {For example, in the character string buffer URLBUF, http: // www. sharp. co. jp / sample / test. It is assumed that a character string “html” is stored. When the cache update process 36 executes the command of Expression 16, the cache update process 36 outputs a URL acquisition request to the second proxy process 34. The second proxy process 34 generates a child process, leaves the process of acquiring a URL to the child process, and waits for a URL output request from the cache update process 36 again. The child process generated by the second proxy process 34 for executing the URL acquisition by executing the equation 16 by the cache update process 34 performs the processing shown in the flowchart of FIG.

 以下、第2のproxyプロセス34が生成した子プロセスの動作を図4のフローチャートを用いて説明する。 Hereinafter, the operation of the child process generated by the second proxy process 34 will be described with reference to the flowchart of FIG.

 proxyプロセスでは、キャッシュファイル16を持っているが、それは通常のUNIX(R)ファイルシステムの一部として作られる。キャッシュ用ディレクトリとして/cacheというパーティションを使用するとすると、数17に示すようにプロトコル名称がhttp、サーバ計算機名称www.sharp.co.jp、ファイルオブジェクトの実体部分がsample/test.htmlとなる。 The $ proxy process has a cache file 16, which is created as part of the regular UNIX file system. Assuming that a partition named / cache is used as the cache directory, the protocol name is http and the server computer name www. sharp. co. jp, the actual part of the file object is sample / test. html.

Figure 2004030690
Figure 2004030690

 このとき、キャッシュファイルは次の数18に示す名称規則でキャッシュファイルを生成しようとする。 At this time, the cache file attempts to generate a cache file according to the naming rule shown in the following Expression 18.

Figure 2004030690
Figure 2004030690

 したがって、http://www.sharp.co.jp/sample/test.htmlは数19に示すファイルとなる(S11)。 {Therefore, http: // www. sharp. co. jp / sample / test. The html is a file shown in Expression 19 (S11).

Figure 2004030690
Figure 2004030690

 proxyプロセスはまず、数19に示すファイル名称に変換し、そのファイルが存在するかどうかOSのopen( )のシステムコールにより既存のファイルがオープンできるかどうかにより調べる(S12)。ファイルが存在しなければ、ファイル新規作成モードで数19に示すファイル名のキャッシュファイルを作成する(S13)。また、キャッシュファイルに対して排他制御を行なって、他のプロセスが書込めないように排他ロックする(S14)。 The $ proxy process first converts the file name into the file name shown in Expression 19, and checks whether the file exists by checking whether an existing file can be opened by the OS open ($) system call (S12). If the file does not exist, a cache file having the file name shown in Expression 19 is created in the new file creation mode (S13). In addition, exclusive control is performed on the cache file, and exclusive locking is performed so that other processes cannot write (S14).

 次に、ネットワークを経由してURLで指定されたファイルオブジェクトをサーバ計算機11から取得する(S15)。取得したファイルオブジェクトをクライアント計算機24へ転送するとともにファイルオブジェクトを数19に示すファイル名称のキャッシュファイルに書込む(S16)。続いて、キャッシュファイルをクローズして排他ロックを解除する(S17)。 Next, a file object specified by the URL is obtained from the server computer 11 via the network (S15). The obtained file object is transferred to the client computer 24, and the file object is written in the cache file having the file name shown in Expression 19 (S16). Subsequently, the cache file is closed to release the exclusive lock (S17).

 上記処理では、キャッシュファイルを排他ロックしているが、この排他制御はOSがUNIX(R)であればシステムコールであるflock( )関数を使って排他ロックできる。排他制御を使用する理由は、proxyプロセスは1つのファイルオブジェクトの転送ごとに子プロセスを起動してその子プロセスにキャッシュ制御を行なわせるため、同じキャッシュファイルシステムに対して子プロセス間で競合が発生する場合があるからである。 In the above processing, the cache file is exclusively locked, but this exclusive control can be exclusively locked by using the system call "flock (@) function" when the OS is UNIX (R). The reason for using exclusive control is that the proxy process activates a child process each time one file object is transferred and causes the child process to perform cache control, so that conflict occurs between the child processes for the same cache file system. This is because there are cases.

 なお、キャッシュファイルに書込んだとき、ファイル変更時刻Tmがファイル(数19)の属性として記録される。ファイル更新時刻Tmは、UNIX(R) OSのファイルシステムを管理するOSがファイルの属性として必ず付加するものである。すなわち、キャッシュファイルは通常のOSのファイルシステムをそのまま使用しており、何ら特殊なファイルシステムではない。 When writing to the cache file, the file change time Tm is recorded as the attribute of the file (Equation 19). The file update time Tm is always added as an attribute of the file by the OS managing the file system of the UNIX® OS. That is, the cache file uses the file system of the normal OS as it is, and is not a special file system at all.

 次に、キャッシュファイルが既に存在した場合を説明する(S19〜S26)。 Next, a case where a cache file already exists will be described (S19 to S26).

 キャッシュファイル/cache/http/www.sharp.co.jp/sample/test.htmlの最終変更時刻TmをOSから読出す。最終変更時刻は、UNIX(R)であれば、fstat( )システムコールで得られるもので、過去から未来に向かって単調に増加する関数である(S19)。 {Cache file / cache / http / www. sharp. co. jp / sample / test. The last change time Tm of the html is read from the OS. In the case of UNIX (R), the last change time is obtained by the fstat () system call, and is a function that monotonically increases from the past to the future (S19).

 現在時刻をシステムコールから読出しTnowという変数に格納する(S20)。現在時刻Tnowは、OSのシステムコールから得られる。最終変更時刻Tmと、現在時刻Tnowを比較し、キャッシュ有効期限以内かどうかを判定する(S21)。キャッシュ有効期限以内であれば、キャッシュファイルを共有排他ロックして他のプロセスからの書込はできないが、読出はできるようにする(S22)。そして、既にあるキャッシュファイルを読出し、クライアント計算機24に転送する(S23)。さらに、キャッシュファイルをクローズし、共有排他ロックを解除する(S17)。 (4) The current time is read from the system call and stored in a variable called Tnow (S20). The current time Tnow is obtained from a system call of the OS. The last change time Tm is compared with the current time Tnow to determine whether or not it is within the cache expiration date (S21). If it is within the cache expiration date, the cache file is shared-exclusive locked and cannot be written by another process, but can be read (S22). Then, the existing cache file is read and transferred to the client computer 24 (S23). Further, the cache file is closed and the shared exclusive lock is released (S17).

 また、キャッシュ有効期限を過ぎている場合は、キャッシュファイルに対して排他制御を行なって、他のプロセスが書込めないように排他ロックする(S24)。次に、ネットワーク経由でURLで指定されたファイルオブジェクトをサーバ計算機11から取得する(S25)。取得したファイルオブジェクトをクライアント計算機24へ転送するとともに、ファイルオブジェクトをキャッシュファイル(数19)に書込む(S26)。そして、キャッシュファイルをクローズして排他ロックを解除する(S17)。 If the cache expiration date has passed, exclusive control is performed on the cache file, and exclusive locking is performed so that other processes cannot write (S24). Next, a file object specified by the URL is acquired from the server computer 11 via the network (S25). The obtained file object is transferred to the client computer 24, and the file object is written in the cache file (Equation 19) (S26). Then, the cache file is closed to release the exclusive lock (S17).

 以上が、一般にソースコードが公開され、よく知られているproxyプロセスのキャッシュ制御手順であるが、本願発明ではこの性質を利用して、キャッシュファイル16を第1のproxyプロセス14と第2のproxyプロセス34で共有している。第2のproxyプロセス34は、キャッシュ有効期限0であるから、図3のフローチャートのS4により、第2のproxyプロセス34経由のサーバ計算機11へのアクセスがキャッシュファイル16の更新が必ず行なえることがわかる。 The above is the cache control procedure of the well-known proxy process whose source code is generally released. In the present invention, the cache file 16 is stored in the first proxy process 14 and the second proxy process by utilizing this property. Shared by the process 34. Since the second proxy process 34 has a cache expiration date of 0, access to the server computer 11 via the second proxy process 34 can always update the cache file 16 in S4 of the flowchart of FIG. Understand.

 第1の実施形態においては、クライアント計算機24の利用が始まる7時00分より起動し、クライアント計算機24の利用が少なくなる夜21時00分には終了するよう実施した。これにより、クライアント計算機24の利用のない時間帯には、キャッシュ更新プロセス36を排除し、当制御方式を採用した計算機のメモリ資源を無駄にしないようにしている。 In the first embodiment, the operation is started at 7:00 when the use of the client computer 24 starts, and is ended at 21:00 at night when the use of the client computer 24 is reduced. As a result, the cache update process 36 is eliminated during a time period when the client computer 24 is not used, so that the memory resources of the computer employing this control method are not wasted.

 以上説明したように、proxyサーバ計算機53はユーザが行なったファイルオブジェクトに対するアクセス要求がキャッシュヒットすれば、その直後にサーバ計算機11から当該ファイルオブジェクトを取得してキャッシュファイル16を更新するので、別のユーザが同一ファイルオブジェクトをアクセスした場合に、最新のファイルオブジェクトが既にキャッシュファイル16に格納されていることになる。したがって、キャッシュ有効期限を長めに取っておいても、キャッシュの有効期限よりも短い間隔で変更されるサーバ計算機のファイルオブジェクトがキャッシュに反映される確率が高くなる。 As described above, the proxy server computer 53 obtains the file object from the server computer 11 and updates the cache file 16 immediately after the cache hit of the access request for the file object made by the user. When the user accesses the same file object, the latest file object is already stored in the cache file 16. Therefore, even if the cache expiration date is set longer, the probability that the file object of the server computer, which is changed at intervals shorter than the cache expiration date, is reflected in the cache increases.

 また、同一ユーザが時間をおいてから同一ファイルオブジェクトをアクセスし直すと、キャッシュの内容が最新のものに更新されていることになる。また、特定のパターンに一致するファイルオブジェクトのみ更新アクセスの対象となるので、予めファイルオブジェクトの更新頻度の高いサーバ計算機を登録しておけば不要なキャッシュ更新アクセスを削減でき、無駄なトラフィックを抑制して回線を有効に利用することができる。 同一 Also, if the same user accesses the same file object again after a while, the contents of the cache will be updated to the latest one. Also, since only file objects that match a specific pattern are subject to update access, unnecessary cache update access can be reduced by registering server computers with frequently updated file objects in advance, thus suppressing unnecessary traffic. The line can be used effectively.

 [実施の形態2]
 次に、本願発明のゲートウェイ装置の第2の実施形態を説明する。この実施形態2は、実施形態1と同様であるが、実施形態1に対応するフローチャート(図3)のステップS4を改良したものである。実施形態1では、ステップS4においてアクセスログファイル15からファイルオブジェクト名称を文字列格納バッファURLBUFに格納して、第2のproxyプロセス34を介してサーバ計算機11にアクセスしているが、第2の実施形態では処理の高速化を図るため複数のファイルオブジェクトに対するアクセスを、順不同で同時並列的に実行するものである。
[Embodiment 2]
Next, a second embodiment of the gateway device of the present invention will be described. The second embodiment is the same as the first embodiment, except that step S4 in the flowchart (FIG. 3) corresponding to the first embodiment is improved. In the first embodiment, the file object name is stored in the character string storage buffer URLBUF from the access log file 15 in step S4, and the server computer 11 is accessed via the second proxy process 34. In the embodiment, access to a plurality of file objects is executed in an unordered manner and simultaneously in parallel in order to speed up processing.

 本発明が実施できるTCP/IPのネットワークでは、通信はパケット単位で行なわれるため、外部ネットワークの複数のサーバ計算機との同時通信が見掛け上可能である。したがって、ステップS4におけるキャッシュ更新子プロセスを複数同時に実施することができる。 In a TCP / IP network in which the present invention can be implemented, since communication is performed in units of packets, it is apparently possible to simultaneously communicate with a plurality of server computers in an external network. Therefore, a plurality of cache updater processes in step S4 can be performed simultaneously.

 内部ネットワーク23には複数のクライアント計算機24が接続されるので、proxyサーバ装置53によるファイルオブジェクトの中継転送要求は、外部ネットワーク25上の異なる複数のサーバ計算機11へのアクセスが入り交じって行なわれる。したがって、ファイルオブジェクトに対するアクセスは外部ネットワーク25上のさまざまな経路を通じて行なわれるため、実際のファイルオブジェクトの転送速度は、経路の途中のボトルネックによって決まる。 (2) Since a plurality of client computers 24 are connected to the internal network 23, the proxy transfer request of the file object by the proxy server device 53 is performed by intermingling access to a plurality of different server computers 11 on the external network 25. Therefore, since the access to the file object is performed through various routes on the external network 25, the actual transfer speed of the file object is determined by the bottleneck in the middle of the route.

 そのうちの1つのボトルネックは、proxyサーバ装置53と外部ネットワーク25を結ぶ最初の通信路(図19における通信路127)である。さらには、外部ネットワーク25上への複数のサーバ計算機11への経路にはさまざまなボトルネックが存在する。このため、外部ネットワーク25からproxyサーバ計算機53への転送速度は、この通信路の最大転送速度より小さい転送速度となるのが常である。たとえば、proxyサーバ装置53と外部ネットワーク25を結ぶ通信路(図19における通信路127)の最大転送速度が64kbpsであっても、海外にあるサーバ計算機からの転送速度はその10分の1以下であることがしばしばである。 One of the bottlenecks is the first communication path (the communication path 127 in FIG. 19) connecting the proxy server device 53 and the external network 25. Furthermore, there are various bottlenecks in the route to the plurality of server computers 11 on the external network 25. For this reason, the transfer speed from the external network 25 to the proxy server computer 53 is usually lower than the maximum transfer speed of this communication path. For example, even if the maximum transfer rate of the communication path (the communication path 127 in FIG. 19) connecting the proxy server device 53 and the external network 25 is 64 kbps, the transfer rate from the server computer overseas is one tenth or less. Often there are.

 したがって、proxyサーバ装置53と外部ネットワーク25を結ぶ最初の通信路127の最大転送容量に近い転送を行なうように、同時に複数のネットワーク接続を実施することで転送のスループットを上げることが可能になる。すなわちこのネットワーク接続を1個の子プロセスに対応させるとして、複数のキャッシュ更新子プロセスを起動し、この通信路127の転送容量が100%近く使用されるように、複数のネットワーク接続を並列に実施した方が処理が高速化される。 Therefore, it is possible to increase the transfer throughput by simultaneously performing a plurality of network connections so as to perform transfer close to the maximum transfer capacity of the first communication path 127 connecting the proxy server device 53 and the external network 25. That is, assuming that this network connection corresponds to one child process, a plurality of cache updater processes are started, and a plurality of network connections are performed in parallel so that the transfer capacity of the communication path 127 is used close to 100%. This speeds up the processing.

 そこで、同時に複数のキャッシュ更新アクセスを実行するように、キャッシュ更新子プロセスの最大並列実行数をMAXPROCESS数と定める。これは、以下に説明するフローチャートではメモリ(図19のメモリ206)に置かれる定数である。この値をあまり大きく取ると、OSのプロセス手順などの管理資源(メモリ)を消費することになるので、システムの動作状況によって決める必要がある。この実施形態2では10とした。 Therefore, the maximum number of parallel executions of the cache updater process is determined as the MAXPROCESS number so that a plurality of cache update accesses are executed simultaneously. This is a constant stored in the memory (the memory 206 in FIG. 19) in the flowchart described below. If this value is too large, management resources (memory) such as the OS process procedure are consumed, so it is necessary to determine the value depending on the operation state of the system. In the second embodiment, the number is set to 10.

 以下、具体的な処理手順を図5を参照しながら説明する。まず、変数としてメモリ206中にprocesses変数を定義する。バックグラウンドで、現在走行しているキャッシュ更新子プロセスの数を求めてprocesses変数に代入する。プロセスの数はOSのプロセス管理テーブルから得られる(S421)。次にprocesses変数と指定された最大子プロセス数MAXPROCESSを比較する。もし、processes≧MAXPROCESSならばS423に移り、一定時間休止(sleep)する(たとえば10秒)。これは、先に走行しているキャッシュ更新子プロセスの処理を終了するのを待つために行なわれる(S423)。 Hereinafter, a specific processing procedure will be described with reference to FIG. First, a processes variable is defined in the memory 206 as a variable. In the background, the number of currently running cache updater processes is determined and assigned to the processes variable. The number of processes is obtained from the process management table of the OS (S421). Next, the processes variable is compared with the specified maximum number of child processes MAXPROCESS. If processes ≧ MAXPROCESS, the process moves to S423 and sleeps for a predetermined time (for example, 10 seconds). This is performed in order to wait for the process of the cache updater process running first to end (S423).

 次に、指定の終了時刻になったかどうかの判定を行なう。指定時刻を過ぎていれば、キャッシュ更新プロセスは処理を終了する。指定時刻を過ぎていなければ、S421以下の処理を繰返す(S424)。 Next, it is determined whether or not the specified end time has come. If the specified time has passed, the cache update process ends the processing. If the specified time has not passed, the processing of S421 and subsequent steps is repeated (S424).

 また、S423でprocesses<MAXPROCESSならば、第2のproxyプロセス34にアクセス要求を出力することによって、第2のproxyプロセス34はキャッシュ更新子プロセスをバックグラウンドプロセスとして1つ起動する(S425)。UNIX(R) OSにおいて、プロセスをバックグラウンドで実行させるには、コマンドラインに&の記号を付けて起動すればよい。文字列バッファURLBUFには、S2により取得されたファイルオブジェクト名称が格納されているので、数20に示すコマンドを実行すれば、キャッシュ更新子プロセスがバックグラウンドプロセスとして実施される。 Also, if processes <MAXPROCESS in S423, by outputting an access request to the second proxy process 34, the second proxy process 34 starts one cache updater process as a background process (S425). In the UNIX (R) OS, the process can be executed in the background by starting the command line with an & symbol. Since the file object name acquired in S2 is stored in the character string buffer URLBUF, if the command shown in Expression 20 is executed, the cache updater process is executed as a background process.

Figure 2004030690
Figure 2004030690

 最後に、指定の終了時刻になったかどうかを判定し、指定時刻をすぎていればキャッシュ更新プロセスは処理を終了し、指定の終了時刻を過ぎていなければS1以下の処理を繰返す(S426)。 Finally, it is determined whether or not the specified end time has been reached. If the specified time has passed, the cache update process ends the processing, and if the specified end time has not passed, the processing from S1 onward is repeated (S426).

 以上のような処理により、MAXPROCESS以下のプロセスで同時並列実行が可能になる。 処理 By the processing described above, simultaneous processing can be performed in a process less than MAXPROCESS.

 この実施形態2により、キャッシュ更新処理速度を速め、常にキャッシュ更新処理を待つ状態にすることでキャッシュ更新処理の遅滞の拡大を防止することが可能となる。なお、パターンファイル30を用意して、特定ファイルオブジェクトだけを更新対象にしているS2の処理も効果を上げている。 According to the second embodiment, it is possible to prevent a delay in the cache update process from increasing by increasing the cache update process speed and always waiting for the cache update process. It should be noted that the processing in S2 in which the pattern file 30 is prepared and only the specific file object is to be updated is also effective.

 以上説明したように、実施の形態2では、キャッシュ更新処理を同時に行なうことで、キャッシュ更新の開始から終了までが短縮されるので、第1のproxyプロセス14によるユーザからのアクセス処理の頻度に追随してキャッシュ更新処理を進めることが可能となる。 As described above, in the second embodiment, since the cache update process is performed simultaneously, the time from the start to the end of the cache update is reduced, so that it follows the frequency of the access process from the user by the first proxy process 14. Then, the cache update processing can be advanced.

 [実施の形態3]
 実施の形態3においては、実施の形態2と同様に、キャッシュ更新子プロセスの並列実行を行なうが、さらにプロセスの制御を行なうことにより、内部ネットワーク23のクライアント計算機24を使用するユーザが第1のproxyプロセス14を使用して外部ネットワーク25のサーバ計算機11に頻繁にアクセスしている時間帯に、キャッシュ更新プロセス36を実行しても、キャッシュ更新子プロセスの数が抑制される。すなわち、キャッシュ更新子プロセスには低い優先権が与えられることで、クライアント計算機24を使用するユーザのネットワーク利用を妨げないようにしたものである。
[Embodiment 3]
In the third embodiment, as in the second embodiment, the cache updater process is executed in parallel, but by further controlling the process, the user using the client computer 24 of the internal network 23 can execute the first process. Even if the cache update process 36 is executed during a time period when the server computer 11 of the external network 25 is frequently accessed using the proxy process 14, the number of cache update child processes is suppressed. In other words, a low priority is given to the cache updater process so that the user of the client computer 24 does not hinder the use of the network.

 また、第1のproxyプロセス14を利用するユーザのネットワークアクセスは、通常1つのページが複数のファイルオブジェクトから構成されているため(たとえば、図2に示す情報ページ)、1つのページのアクセスにおいては、複数のファイルオブジェクトのアクセスが時間的に連続して発生する。したがって、キャッシュ更新アクセスの子プロセスの起動において、休止時間を設けて子プロセス起動を遅延させることにより、ユーザのページアクセスが終了してからキャッシュ更新アクセスが起きる確率を高めることができる。 In addition, the network access of the user using the first proxy process 14 usually includes one page composed of a plurality of file objects (for example, an information page shown in FIG. 2). Access to a plurality of file objects occurs consecutively in time. Therefore, in the activation of the child process of the cache update access, by providing an idle time and delaying the activation of the child process, it is possible to increase the probability that the cache update access will occur after the user completes the page access.

 また、同一のファイルオブジェクトに対するキャッシュ更新アクセスの条件が揃ったとき、すなわち、実施形態1および2のURLBUFが空でないとき(図3および図4のS3がyesの場合)一定時間の無効時間を設け、前回キャッシュが更新されてから所定時間以内であればサーバ計算機11に対するキャッシュ更新アクセスを行なわないことで、クライアント計算機24が頻繁にファイルオブジェクトアクセスを行なっているときに、キャッシュ更新アクセスでサーバ計算機11に対するアクセスが頻繁に発生することを防止するものである。 Further, when the cache update access conditions for the same file object are met, that is, when the URLBUF of the first and second embodiments is not empty (when S3 in FIGS. 3 and 4 is yes), a fixed invalid time is provided. The cache update access to the server computer 11 is not performed within a predetermined time since the last time the cache was updated, so that when the client computer 24 frequently accesses the file object, the server update is performed by the cache update access. Is prevented from frequently occurring.

 この処理の簡単な実現方法として、第2のproxyプロセス34のキャッシュ有効期限を0ではなく、無効時間を設定して起動すればよい。この無効時間として、30分または1時間等とし、サーバ計算機11の変更頻度の平均の最小時間程度にすればよい。これにより、無効時間以内に実施形態1、2または3の方式でキャッシュ更新アクセスを行なっても、キャッシュにヒットすることになるのでサーバ計算機11にアクセスが発生しなくなる。 As a simple method of realizing this processing, the second proxy process 34 may be activated by setting the cache expiration date to an invalid time instead of 0. The invalid time may be 30 minutes, 1 hour, or the like, and may be about the minimum time of the average change frequency of the server computer 11. As a result, even if the cache update access is performed by the method of the first, second, or third embodiment within the invalid time, the cache will be hit, and the server computer 11 will not be accessed.

 図6は、実施の形態3の処理を示すフローチャートである。図6は、実施形態2の処理を示すフローチャートである図5のS421とS425をS431とS435に置き換えたものである。 FIG. 6 is a flowchart showing the processing of the third embodiment. FIG. 6 is a flowchart showing the processing of the second embodiment, in which S421 and S425 in FIG. 5 are replaced with S431 and S435.

 図6に示す処理を行なうに先立って、最大ネットワーク接続個数MAXPROCESSという定数を定める。この定数は、キャッシュ更新子プロセスの数と第1のproxyプロセス14がネットワークアクセスの中継のために起動した子プロセスの数を加算した値の最大を示す定数である。したがって、proxyサーバ装置53は、なるべくのMAXPROCESS以下にサーバ計算機11へのネットワークアクセスを制限しようとする。図6のS1〜S3の処理は、実施形態1、2と同様であるのでここでの説明は繰返さない。 (4) Prior to performing the processing shown in FIG. 6, a constant called the maximum network connection number MAXPROCESS is determined. This constant is a constant indicating the maximum value obtained by adding the number of cache update child processes and the number of child processes activated by the first proxy process 14 for relaying network access. Therefore, the proxy server device 53 tries to restrict network access to the server computer 11 to MAXPROCESS or less. The processes in S1 to S3 in FIG. 6 are the same as those in the first and second embodiments, and thus description thereof will not be repeated.

 バックグラウンドで走行しているキャッシュ更新子プロセスの数と、第1のproxyプロセス14のネットワークアクセス中継子プロセスの数を求めて加算してprocesses変数(数21)とする(S431)。 (4) The number of cache updater processes running in the background and the number of network access relay processes of the first proxy process 14 are obtained and added to make a processes variable (Equation 21) (S431).

Figure 2004030690
Figure 2004030690

 processes変数と指定された最大子プロセスMAXPROCESSを比較し、processes≧MAXPROCESSならばS433へ移り、一定時間休止(sleep)する(たとえば10秒)。これは、先に起動されたキャッシュ更新子プロセス数の処理が終了するのを待つものである。 The $ processes variable is compared with the specified maximum child process MAXPROCESS, and if processes≥MAXPROCESS, the process proceeds to S433 and sleeps for a predetermined time (for example, 10 seconds). This waits until the processing of the number of cache updater processes started first is completed.

 次に、指定の終了時刻になったか否かを判定し、指定時刻を過ぎていればキャッシュ更新プロセスは処理を終了する。指定の終了時刻になっていなければ、S431に戻って処理を続行する(S434)。また、S432でprocesses<MAXPROCESSならば、抽出したファイルオブジェクト名称(URLBUFに格納されたもの)をもとに、第2のproxyプロセス36を用いてアクセスするキャッシュ更新子プロセスをバックグラウンドプロセスとして1つ起動する。 Next, it is determined whether or not the specified end time has been reached, and if the specified time has passed, the cache update process ends the processing. If the end time has not been reached, the process returns to S431 and continues (S434). If processes <MAXPROCESS in S432, one cache updater process accessed using the second proxy process 36 is used as a background process based on the extracted file object name (stored in the URLBUF). to start.

 このとき、子プロセスは数22に示すように、休止時間をDELAYTIME変数(単位は秒)としてOSの休止機能をsleepを使ってDELAYTIME秒間休止してからキャッシュ更新アクセスを行なうようにする。1ページWWWデータは、図2に示すように複数の画像ファイルオブジェクトからなる場合、キャッシュヒット時は10秒以下でproxyサーバ装置53からクライアント計算機24に転送可能であることが経験的に知られているので、DELAYTIMEは10秒程度としている。 At this time, as shown in Expression 22, the child process sets the pause time to a DELAYTIME variable (unit: second), sleeps the OS pause function for DELAYTIME seconds using sleep, and then performs cache update access. When one page WWW data is composed of a plurality of image file objects as shown in FIG. 2, it is empirically known that a cache hit can be transferred from the proxy server device 53 to the client computer 24 in 10 seconds or less. Therefore, DELAYTIME is set to about 10 seconds.

Figure 2004030690
Figure 2004030690

 最後に、指定の終了時刻になったかどうかを判定し、指定時刻を過ぎていればキャッシュ更新プロセスは処理を終了し、指定終了時刻を過ぎていなければ、S1へ戻り処理を繰返す(S436)。 Finally, it is determined whether or not the specified end time has been reached. If the specified time has passed, the cache update process ends the process. If the specified end time has not passed, the process returns to S1 and repeats the process (S436).

 以上のように、キャッシュ更新子プロセスの個数と第1のproxyプロセス14を利用しているユーザのネットワークアクセスの中継子プロセス数の合計を制限しながらキャッシュ更新子プロセスを制御する。この結果、第1のproxyプロセス14を利用しているユーザによるネットワークアクセスの数が増えると、キャッシュ更新子プロセスは起動されにくくなる。したがって、ユーザが第1のproxyプロセス14を利用している時間帯に、キャッシュ更新プロセス36を実行しても、キャッシュ更新子プロセスには低い優先権が与えられることで、ユーザのネットワーク活動を妨げないようにすることができる。 As described above, the cache updater process is controlled while limiting the total number of cache updater processes and the total number of network access relay processes of the user using the first proxy process 14. As a result, when the number of network accesses by the user using the first proxy process 14 increases, the cache updater process is less likely to be activated. Therefore, even if the cache update process 36 is executed during the time when the user is using the first proxy process 14, the cache updater process is given a low priority, thereby preventing the network activity of the user. Can not be.

 また、ユーザのファイルオブジェクトに対するアクセスがキャッシュにヒットした場合は、通常1ページの転送は、数秒以内に終了するが、キャッシュ更新子プロセスはDELAYTIME(秒)遅延してから起動されるので、DELAYTIMEを10秒程度に設定すればユーザのファイルオブジェクトアクセスとキャッシュ更新アクセスは時間的にずれて実施される(すなわちパイプライン)ので、proxyサーバ計算機53への負担を減らし、ユーザに快適なネットワーク利用を提供することが可能となる。 Also, when the user accesses the file object in the cache, the transfer of one page normally ends within a few seconds. However, the cache updater process is started after a delay of DELAYTIME (seconds). If it is set to about 10 seconds, the user's file object access and cache update access are performed with a time lag (that is, pipeline), so that the load on the proxy server computer 53 is reduced and the user is provided with a comfortable network use. It is possible to do.

 以上説明したように、実施の形態3ではユーザが第1のproxyプロセス14を利用している時間帯に、キャッシュ更新プロセス36を実行しても、キャッシュ更新子プロセスには低い優先権が与えられることで、ユーザのネットワーク利用を妨げない効果がある。また、遅延時間を導入することで、キャッシュ更新処理はユーザの連続したファイルオブジェクト転送処理が終了してから行なわれるので、proxyサーバ計算機53の処理負担を軽減し、ユーザへのファイルオブジェクト転送を最優先できる。また、無効時間が設定されるため、クライアント計算機24が無効時間以内に同一ファイルオブジェクトに対してアクセスを行ない、キャッシュ更新アクセスの条件が揃ってもキャッシュ更新アクセスはキャッシュにヒットすることになり、実質的にサーバ計算機11に対するアクセスが発生しない。これにより、クライアント計算機24が同一ファイルオブジェクトを頻繁にアクセスしても、時間のかかるサーバ計算機11へのキャッシュ更新アクセスが抑制されるのでサーバ計算機11への負担の軽減とキャッシュ更新処理の効率化が図れる。 As described above, in the third embodiment, even when the cache update process 36 is executed during the time when the user is using the first proxy process 14, a low priority is given to the cache update child process. This has the effect of not hindering the user from using the network. Also, by introducing the delay time, the cache update process is performed after the user's continuous file object transfer process is completed, so the processing load on the proxy server computer 53 is reduced, and the file object transfer to the user is minimized. You can give priority. Further, since the invalid time is set, the client computer 24 accesses the same file object within the invalid time, and the cache update access hits the cache even if the cache update access conditions are met. No access to the server computer 11 occurs. As a result, even if the client computer 24 frequently accesses the same file object, time-consuming cache update access to the server computer 11 is suppressed, so that the load on the server computer 11 is reduced and the cache update process is made more efficient. I can do it.

 [実施の形態4]
 実施の形態1〜3は、proxyサーバ計算機に関するものであったが、実施の形態4ではファイルオブジェクトの中継制御のみを行なうゲートウェイ装置(redirector計算機)について説明する。図8は、キャッシュサーバ計算機(proxyサーバ計算機)65〜67およびredirector計算機72〜77をローカルネットワーク71で接続する構成を示す図である。
[Embodiment 4]
The first to third embodiments relate to a proxy server computer. In the fourth embodiment, a gateway device (redirector computer) that performs only relay control of a file object will be described. FIG. 8 is a diagram showing a configuration in which cache server computers (proxy server computers) 65 to 67 and redirector computers 72 to 77 are connected via a local network 71.

 redirector計算機72〜77は、proxyサーバ計算機の1種でもあるが、実施の形態4のredirector計算機72〜77は、proxyサーバ計算機65〜67への中継のみを行ないキャッシュは行なわない。 The redirector computers 72 to 77 are one type of proxy server computers, but the redirector computers 72 to 77 according to the fourth embodiment only relay to the proxy server computers 65 to 67 and do not perform caching.

 以下、redirector計算機72〜77の動作について詳細に説明する。 Hereinafter, the operation of the redirector computers 72 to 77 will be described in detail.

 redirector計算機72〜77は、複数のproxyサーバ計算機65〜67とクライアント計算機群との間に介在し、proxyサーバ計算機65〜67とはローカルネットワーク71で接続され、クライアント計算機群とはローカルネットワーク78で接続される。また、ファイルオブジェクトを提供するサーバ計算機11とproxyサーバ計算機65〜67とは、広域ネットワーク61で接続される。 The redirector computers 72 to 77 are interposed between the plurality of proxy server computers 65 to 67 and the client computer group, are connected to the proxy server computers 65 to 67 via the local network 71, and are connected to the client computer group via the local network 78. Connected. The server computer 11 that provides the file object and the proxy server computers 65 to 67 are connected by the wide area network 61.

 まず、クライアント計算機24からのファイルオブジェクトに対する読出要求をローカルネットワーク78を介してredirector計算機73内のredirectorプロセスが受信する。redirector計算機は、上述した図17〜19に示すワークステーション200〜400で実現可能である。すなわち、redirectorプロセスに相当するプログラムをメモリ206内に格納し、そのプログラムをCPU202が実行することによってこのredirector計算機の機能が実現される。redirectorプロセスは、受信した読出要求の内容に基づいてハッシュ関数の計算を行ないその計算結果に従って中継するproxyサーバ計算機65〜67を選択する。そしてredirectorプロセスは、読出要求を選択されたproxyサーバ計算機65〜67内のproxyプロセスに中継する。 First, the redirector process in the redirector computer 73 receives the read request for the file object from the client computer 24 via the local network 78. The redirector computer can be realized by the workstations 200 to 400 shown in FIGS. In other words, a program corresponding to the redirector process is stored in the memory 206, and the function of the redirector computer is realized by the CPU 202 executing the program. The redirector process calculates the hash function based on the content of the received read request, and selects the proxy server computers 65 to 67 to relay according to the calculation result. Then, the redirector process relays the read request to the proxy process in the selected proxy server computer 65 to 67.

 本発明を非常に有効に適用できる例として、前述したインターネット上のWWWシステムがある。図9は、WWWシステム上でのredirector計算機の処理手順を示すフローチャートである。 As an example to which the present invention can be applied very effectively, there is the WWW system on the Internet described above. FIG. 9 is a flowchart illustrating a processing procedure of the redirector computer on the WWW system.

 WWWシステムではネットワーク上に分散したファイルオブジェクト名称はUniform Resource Locator(URL)と呼ばれる形式で表現され特定される。 In the WWW system, file object names distributed on a network are expressed and specified in a format called Uniform Resource Locator (URL).

 たとえば、redirector計算機73が、クライアント計算機24からの読出要求を受信したとすると、redirector計算機73は要求に含まれるURLを取出す(S31)。取出されたURLに基づいてハッシュ関数による計算を行なう。ここで、ハッシュ関数にはさまざまなものが考えられるが、実施の形態4ではURL形式で表現されたファイルオブジェクト名称に含まれる文字の文字コードをすべて加算し、proxyサーバ計算機65から67の台数で割った剰余を使用した(S33)。 {For example, assuming that the redirector computer 73 receives the read request from the client computer 24, the redirector computer 73 extracts the URL included in the request (S31). A calculation by a hash function is performed based on the extracted URL. Here, various hash functions can be considered. In the fourth embodiment, all the character codes of the characters included in the file object name expressed in the URL format are added, and the number of the proxy server computers 65 to 67 is calculated. The divided remainder was used (S33).

 このハッシュ関数によって算出された値によって、読出要求を中継するproxyサーバ計算機65〜67の番号を決定する(S34)。そして、選択されたproxyサーバ計算機65〜67に読出要求が中継される(S35)。 (4) The numbers of the proxy server computers 65 to 67 that relay the read request are determined based on the value calculated by the hash function (S34). Then, the read request is relayed to the selected proxy server computers 65 to 67 (S35).

 同一のファイルオブジェクトの読出要求は、すべて同一のproxyサーバ計算機65〜67で中継されることが、キャッシュの有効利用の観点からは望ましい。なぜなら、同一のファイルオブジェクトを異なるproxyサーバ計算機で重複して保持すると、キャッシュ容量が減少し、キャッシュファイルの有効利用が図れなくなるからである。そのためには、ハッシュ関数がすべてのredirector計算機72〜77内のredirectorプロセスで同一のものである必要がある。 From the viewpoint of effective use of the cache, it is preferable that all read requests for the same file object are relayed by the same proxy server computers 65 to 67. This is because if the same file object is redundantly stored in different proxy server computers, the cache capacity is reduced and the effective use of the cache file cannot be achieved. For that purpose, the hash function needs to be the same in the redirector processes in all the redirector computers 72 to 77.

 上述したハッシュ関数は、各proxyサーバ計算機65〜67が均等に選択されるため、それぞれのproxyサーバ計算機65〜67に対する負荷は均等になるが、適切にハッシュ関数を選ぶことにより、各proxyサーバ計算機65〜67の能力に応じて意図的に均等でなく負荷を分散することも容易に実現できる。すなわち、処理能力の高いproxyサーバ計算機に対しては、選択される可能性を高くし、処理能力の低いproxyサーバ計算機に対しては、選択される可能性を低くすることによって各proxyサーバ計算機の処理速度を均等にするものである。 In the above-described hash function, since the proxy server computers 65 to 67 are equally selected, the load on each of the proxy server computers 65 to 67 is equal. However, by appropriately selecting the hash function, each of the proxy server computers 65 to 67 is selected. It is also easy to intentionally distribute the load unevenly according to the capabilities of 65 to 67. That is, for a proxy server computer with a high processing capacity, the probability of being selected is increased, and for a proxy server computer with a low processing capacity, the probability of being selected is lowered, so that each proxy server computer has This is to equalize the processing speed.

 このようにして算出された番号により示されるproxyサーバ計算機が、選択されたproxyサーバ計算機となり、redirectorプロセスは選択されたproxyサーバ計算機内のproxyプロセスにクライアント計算機24からの読出要求を中継する。proxyサーバ計算機65〜67内のproxyプロセスは、redirector計算機73内のredirectorプロセスにより中継されたクライアント計算機24からの読出要求を広域ネットワーク61を介してサーバ計算機11に中継し、転送されたファイルオブジェクトをキャッシュする。 (4) The proxy server computer indicated by the number calculated in this manner becomes the selected proxy server computer, and the redirector process relays the read request from the client computer 24 to the proxy process in the selected proxy server computer. The proxy process in the proxy server computers 65 to 67 relays the read request from the client computer 24 relayed by the redirector process in the redirector computer 73 to the server computer 11 via the wide area network 61, and transfers the transferred file object. Cache.

 redirectorプロセスは、広く一般に利用されているDeleGateを利用して実施することが可能である。実施の形態4のredirectorプロセスは、DeleGateの中継記法とフィルタ機能を利用して実現されている。以下に、中継記法の例を示す。 The redirector process can be implemented using a widely used DeleGate. The redirector process according to the fourth embodiment is realized by using the relay notation of the DeleGate and the filter function. The following is an example of relay notation.

Figure 2004030690
Figure 2004030690

 数23の記述のうち、最初のhttpは使用するプロトコル名を示し、proxyserverはネットワーク上のproxyサーバ計算機のアドレスを示すものである。また、10080はTCP/IP接続のポート番号と呼ばれ、proxyサーバ計算機上のどのプロセスに対し読出要求を送るのかを示す。−_−は、これがDeleGateの中継記法であることを示す。残りのhttp://www.xxx.co.jp/test/index.htmlが、本来の読出要求のURLである。 In the expression 23, the first http indicates the name of the protocol to be used, and the proxyserver indicates the address of the proxy server computer on the network. Also, 10080 is called a TCP / IP connection port number and indicates to which process on the proxy server computer the read request is sent. -_- indicates that this is a DeleGate relay notation. The remaining http: // www. xxx. co. jp / test / index. html is the original read request URL.

 DeleGateが上記読出要求を受信すると、proxyサーバ計算機proxyserverのポート番号10080で示されるproxyプロセスに対し、URLで示されるファイルオブジェクトの読出要求を中継する。すなわち、読出要求の中で、中継するproxyサーバ計算機を指定することが可能である。 When the DeleGate receives the above read request, it relays the read request of the file object indicated by the URL to the proxy process indicated by the port number 10080 of the proxy server computer proxyserver. That is, the proxy server computer to be relayed can be specified in the read request.

 フィルタ機能は、外部プログラムを利用してDeleGate機能を拡張するための仕組みである。DeleGateはクライアント計算機もしくは他のproxyサーバ計算機からの読出要求を受信すると、受信した読出要求を一旦外部プログラムに引渡し、この外部プログラムによって処理された読出要求を再び受取って中継等の処理を行なうことが可能である。 The filter function is a mechanism for extending the DeleteGate function using an external program. When the DeleGate receives a read request from a client computer or another proxy server computer, it temporarily passes the received read request to an external program, and receives the read request processed by the external program again to perform processing such as relaying. It is possible.

 図11は、redirector計算機の内部構成を示す図である。実施の形態4において、DeleGateによって実現されるredirectorプロセス81が、たとえば、数24に示すURLを含む読出要求を受信したとする。 FIG. 11 is a diagram showing the internal configuration of the redirector computer. In the fourth embodiment, it is assumed that the redirector process 81 realized by the DeleGate receives a read request including the URL shown in Expression 24, for example.

Figure 2004030690
Figure 2004030690

 これは、www.xxx.co.jpで表わされるサーバ計算機11にこの読出要求を送信することを示している。 This is www. xxx. co. jp indicates that this read request is transmitted to the server computer 11.

 しかし、実施の形態4ではDeleGateのフィルタ機能により、外部プログラムとして実現されたproxy切換制御部82においてURLをもとにハッシュ関数の計算を行ない(図9のS32〜S33)、その演算結果によってproxyサーバ計算機proxyserver1が選択されたとすると、上記読出要求内のURLを数25のように書替える(図9のS34)。 However, in the fourth embodiment, the proxy switching control unit 82 implemented as an external program calculates the hash function based on the URL (S32 to S33 in FIG. 9) by the filter function of the DeleteGate, and determines the proxy by the calculation result. Assuming that the server computer proxyserver1 is selected, the URL in the read request is rewritten as shown in Equation 25 (S34 in FIG. 9).

Figure 2004030690
Figure 2004030690

 外部プログラムであるproxy切換制御部82によって書替えられた読出要求を受取ったredirectorプロセス81は、proxysever1で表わされるproxyサーバ計算機にwww.xxx.co.jpで表わされるサーバ計算機11に対する読出要求を中継する(図9のS35)。 The redirector process 81 that has received the read request rewritten by the proxy switching control unit 82, which is an external program, sends the proxy server computer represented by proxyserver1 to www.proxyserver1. xxx. co. The read request to the server computer 11 represented by jp is relayed (S35 in FIG. 9).

 したがって、ハッシュ関数で計算された結果に基づいてURL中のproxyサーバ計算機のアドレスをproxyserver1に変えることにより、元の読出要求のURLに基づいて中継するproxyサーバ計算機を選択することができる。実際に、2台のproxyサーバ計算機を用意し、ハッシュ関数はURLに含まれるファイルオブジェクト名称の文字の文字コードをすべて加算し(図8のS32)、proxyサーバ計算機の台数2で割った剰余を使用した(図8のS33)。すなわち、ハッシュ関数の計算結果が0であった場合proxyserver0により中継し、1であった場合はproxyserver1で中継を行なうものとする。 {Accordingly, by changing the address of the proxy server computer in the URL to proxyserver1 based on the result calculated by the hash function, it is possible to select the proxy server computer to relay based on the URL of the original read request. Actually, two proxy server computers are prepared, and the hash function adds all the character codes of the characters of the file object names included in the URL (S32 in FIG. 8), and divides the remainder by dividing the number of proxy server computers by two. It was used (S33 in FIG. 8). That is, if the calculation result of the hash function is 0, relaying is performed by proxyserver0, and if it is 1, relaying is performed by proxyserver1.

 図10は、図2に示す同一ページのファイルオブジェクトが、2台のproxyサーバ計算機に分散されるようすを示したものである。図10の上段は、本来の読出要求のURL、ファイルオブジェクト名称の文字コードの総計(check sum)、文字コードの総計をproxyサーバ計算機の台数である2で割った余りおよび選択されたproxyサーバ計算機のアドレスを示している。図10の下段は、proxy切換制御部82で書替られたURLを示している。この例では、ハッシュ関数の結果が0の方が多くなっており、proxyserver0への中継が多くなってしまうが、これはサンプル数が少ないことによるものである。実際の運用では膨大なアクセスが、ハッシュ関数による分散が確率的に均等になるという性質のもとに、ほぼ2分の1ずつ均等に分散されることが確認されている。 FIG. 10 shows how the file objects of the same page shown in FIG. 2 are distributed to two proxy server computers. The upper part of FIG. 10 shows the URL of the original read request, the total character code of the file object name (check @ sum), the remainder obtained by dividing the total character code by 2 which is the number of proxy server computers, and the selected proxy server computer. Is shown. The lower part of FIG. 10 shows the URL rewritten by the proxy switching control unit 82. In this example, when the result of the hash function is 0, the number of relays to the proxy server 0 is increased. This is due to the small number of samples. In actual operation, it has been confirmed that an enormous number of accesses are evenly distributed approximately by half under the property that the distribution by the hash function is stochastically uniform.

 以上説明したように、複数あるproxyサーバ計算機が別々な経路で広域ネットワークに接続されている場合、クライアント計算機からのアクセス要求を複数あるproxyサーバ計算機に分散することは、複数ある経路に分散することでもある。したがって経路の有効利用が可能となり、スループットが向上する。proxyサーバ計算機の処理能力には限界があるが、クライアント計算機からのアクセス要求が複数のproxyサーバ計算機に分散されることにより、proxyサーバ計算機1台で処理されるアクセス要求数が減少し、スループットが向上する。 As described above, when a plurality of proxy server computers are connected to the wide area network via different routes, distributing the access request from the client computer to the plurality of proxy server computers means distributing the request to the plurality of proxy server computers. But also. Therefore, the route can be effectively used, and the throughput is improved. Although the processing capacity of the proxy server computer is limited, access requests from the client computer are distributed to a plurality of proxy server computers, so that the number of access requests processed by one proxy server computer is reduced and throughput is reduced. improves.

 また、同一ページ内に複数のファイルオブジェクトが含まれている場合、それらのファイルオブジェクトに対するアクセス要求も複数のproxyサーバ計算機によって分散して処理されるので、単一ページのアクセス速度も向上する。 {Circle over (2)} When a plurality of file objects are included in the same page, access requests to those file objects are also processed in a distributed manner by a plurality of proxy server computers, so that the access speed of a single page is improved.

 また、どのクライアント計算機からの中継要求であっても、同一URLに対するハッシュ関数が同じであるので、常に同じproxyサーバ計算機が選択されることになり、同一URLのアクセスが2回以上あればキャッシュによるアクセスの高速化が図れる。さらに、ハッシュ関数が一意にきまるものであれば任意の関数が選択できるので、proxyサーバ計算機の数もまた任意の台数が使用できる。 Also, regardless of the relay request from any client computer, since the hash function for the same URL is the same, the same proxy server computer is always selected. If the same URL is accessed twice or more, the cache Access can be speeded up. Furthermore, since any function can be selected as long as the hash function is uniquely determined, any number of proxy server computers can be used.

 実施の形態4において、ハッシュ関数内で使われているURLに含まれる文字の文字コードをすべて加算した値(check sum)は、平均して数千程度になることが確かめられている。たとえば、シャープ奈良工場における実施においては、1996年3月13日に実測された30481件のファイルオブジェクトに対するアクセス要求のURLに含まれる文字や文字コードの合計の平均は4438(小数点以下四捨五入)であった。 In the fourth embodiment, it has been confirmed that the value obtained by adding all the character codes of the characters included in the URL used in the hash function (check @ sum) is about several thousands on average. For example, in the implementation at the Sharp Nara factory, the average of the total of characters and character codes included in the URL of the access request for 30,481 file objects measured on March 13, 1996 was 4438 (rounded to the decimal point). Was.

 前述したとおり、実施の形態4ではこのアクセス要求のURLに含まれる文字や文字コードの合計をproxyサーバ計算機の台数で割った剰余をハッシュ関数として使用し、proxyサーバ計算機の選択に使用している。したがって、図10の例ではproxyサーバ計算機は2台であるが、この台数が数千程度であっても、ハッシュ関数によるproxyサーバ計算機の選択はほぼ均等に行なわれると考えられる。 As described above, in the fourth embodiment, the remainder obtained by dividing the total number of characters and character codes included in the URL of the access request by the number of proxy server computers is used as a hash function, and is used for selecting the proxy server computer. . Therefore, although the number of the proxy server computers is two in the example of FIG. 10, even if the number is about several thousands, it is considered that the selection of the proxy server computers by the hash function is performed almost equally.

 また、同一のハッシュ関数であれば、redirector計算機の数は任意である。したがって、本方式ではスケーラビリティも非常に優れている。 Also, if the hash function is the same, the number of redirector computers is arbitrary. Therefore, the scalability is very excellent in this method.

 また、本方式ではキャッシュ付のproxyサーバ計算機は既存のものをそのまま使用することが可能である。したがって、図24の従来の方式に比べ導入が容易で経済的である。また、クライアント計算機に関しても、既存のクライアント計算機を使用して、redirector計算機を既存のproxyサーバ計算機に見立てて設定を行なうだけでよく、特殊なクライアント計算機を用意する必要はない。 で は Also, in this method, the existing proxy server computer with cache can be used as it is. Therefore, the introduction is easier and more economical than the conventional method shown in FIG. Also, with regard to the client computer, it is only necessary to use the existing client computer and set the redirector computer as an existing proxy server computer, and it is not necessary to prepare a special client computer.

 [実施の形態5]
 実施の形態5は、実施の形態4において独立した計算機上で実行していたredirectorプロセスを、クライアント計算機24上で実行する。図12は、実施の形態5における装置の内部構成を示す図であり、クライアント計算機24内のクライアントプロセス84(図8のクライアント計算機24と同じ動作をするプロセス)からの読出要求は、ローカルネットワーク上には送出されず、クライアント計算機24内部のredirectorプロセス85に直接送信される。この送信は、たとえばUNIX(R)のメッセージ通信によって行なわれる。
[Embodiment 5]
In the fifth embodiment, the redirector process executed on the independent computer in the fourth embodiment is executed on the client computer 24. FIG. 12 is a diagram showing the internal configuration of the device according to the fifth embodiment. A read request from a client process 84 (a process that operates in the same manner as the client computer 24 in FIG. 8) in the client computer 24 is transmitted on a local network. , And is directly transmitted to the redirector process 85 inside the client computer 24. This transmission is performed by, for example, UNIX (R) message communication.

 redirectorプロセス85がアクセス要求を受信した後の処理は、上述したredirector計算機72〜77内で動作するredirectorプロセス81と同様であり、ローカルネットワークを介する他のクライアント計算機からのアクセス要求を受信して処理することも可能である。したがって、ここでの詳細な説明は繰返さない。また、このredirectorプロセス85の機能をクライアントプロセス84のプログラムに直接組込むことも可能である。 The processing after the redirector process 85 receives the access request is the same as the redirector process 81 operating in the above-described redirector computers 72 to 77, and receives and processes an access request from another client computer via the local network. It is also possible. Therefore, detailed description will not be repeated here. Further, the function of the redirector process 85 can be directly incorporated into the program of the client process 84.

 図8に示す実施の形態4のクライアント計算機24とredirector計算機72〜77との通信が、実施の形態5では同じクライアント計算機24内部で処理されるため、ローカルネットワーク上での通信量が削減できる。したがって、独立したredirector計算機を用意する必要がなく、クライアント計算機24を利用してredirector計算機の機能を実現できるためコストの削減が可能となる。 In the fifth embodiment, the communication between the client computer 24 and the redirector computers 72 to 77 shown in FIG. 8 is processed within the same client computer 24 in the fifth embodiment, so that the traffic on the local network can be reduced. Therefore, it is not necessary to prepare an independent redirector computer, and the function of the redirector computer can be realized by using the client computer 24, so that the cost can be reduced.

 [実施の形態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である場合、読出要求の中継はネットワーク上に送出されずproxyサーバ計算機99内部で直接行なわれる(93)。そして、proxyプロセス(86または89)が広域ネットワーク61を介してサーバ計算機11に対してアクセス要求を送出する(62または63)。
Embodiment 6
In the sixth embodiment, the redirector process executed on an independent computer in the fourth embodiment is executed on a proxy server computer. FIG. 13 is a diagram showing the internal configuration of the device according to the sixth embodiment. For example, when there is a read request from the client computer 24b, the read request is received by the redirector process 91 in the proxy server computer 99. . Thereafter, the redirector process 91 selects a proxy server computer that relays the access request as described with reference to FIG. 9, and if the selected proxy server computer is 98, the redirector process 91 sends the proxy process to the proxy process 86 of the proxy server computer 98. The access request is relayed (92). If both the proxy server computer on which the received redirector process is operating and the selected proxy server computer are 99, the read request is not transmitted over the network but is directly performed inside the proxy server computer 99 (93). ). Then, the proxy process (86 or 89) sends an access request to the server computer 11 via the wide area network 61 (62 or 63).

 同様に、クライアント計算機24aから読出要求があった場合に、その読出要求は、proxyサーバ計算機98上のredirectorプロセス96で受信される。その後、redirectorプロセスは、proxyサーバ計算機の選択を行ない、その選択されたproxyサーバ計算機が99であれば、proxyサーバ計算機99のproxyプロセス89に対してアクセス要求を中継する(95)。 Similarly, when there is a read request from the client computer 24a, the read request is received by the redirector process 96 on the proxy server computer 98. Thereafter, the redirector process selects a proxy server computer, and if the selected proxy server computer is 99, relays an access request to the proxy process 89 of the proxy server computer 99 (95).

 また、受信したredirectorプロセスの動作しているproxyサーバ計算機と選択されたproxyサーバ計算機がともに98である場合、読出要求の中継はネットワーク上に送出されずproxyサーバ計算機98内部で直接行なわれる(96)。そして、proxyプロセス(86または89)が広域ネットワーク61を介してサーバ計算機11に対してアクセス要求を送出する(62または63)。 If the proxy server computer on which the received redirector process is operating and the selected proxy server computer are both 98, the read request is not sent out over the network but is directly transmitted inside the proxy server computer 98 (96 ). Then, the proxy process (86 or 89) sends an access request to the server computer 11 via the wide area network 61 (62 or 63).

 サーバ計算機11から取得したファイルオブジェクトをキャッシュファイル(87または90)に格納する処理は、上述した処理と同様であるので詳細な説明は繰返さない。 The process of storing the file object acquired from the server computer 11 in the cache file (87 or 90) is the same as the above-described process, and therefore the detailed description will not be repeated.

 また、このredirectorプロセスの機能を、proxyサーバ計算機上でproxyサーバとしての機能を実現しているプログラムに直接組込むことも可能である。 {Also, it is possible to directly incorporate the function of the redirector process into a program that realizes the function as a proxy server on the proxy server computer.

 したがって、redirector計算機とproxyサーバ計算機の通信の一部がproxyサーバ計算機内部で処理されるため、ローカルネットワーク上での通信量が削減できる。また、独立したredirector計算機を用意する必要がなく、proxyサーバ計算機を利用してredirector計算機の機能を実現できるためコストを削減することが可能になる。 Therefore, part of the communication between the redirector computer and the proxy server computer is processed inside the proxy server computer, so that the amount of communication on the local network can be reduced. In addition, there is no need to prepare an independent redirector computer, and the function of the redirector computer can be realized using the proxy server computer, so that the cost can be reduced.

 [実施の形態7]
 実施の形態4のredirector計算機72〜77はアクセス要求の中継のみを行なっていた。しかし、図23で説明したようなツリー状の構成が有効であるような大規模なローカルネットワークでは、1次キャッシュproxyサーバ計算機503〜508の持つキャッシュ機能をredirector計算機に持たせることによって、ネットワーク上の通信量およびproxyサーバ計算機の負荷を軽減することが可能となる。図14は、そのシステム構成を示す図である。redirectorサーバ計算機40〜45は、図11に示すredirector計算機80と図16に示すproxyサーバ計算機13を組合せることにより可能である。すなわち、図16のリード要求17を図11のredirectorプロセス81が受信することによって実現可能であるので、ここでの詳細な説明は繰返さない。また、実施の形態5におけるクライアント計算機内部でキャッシュを行なうことによっても、ローカルネットワーク上の通信量の削減とproxyサーバ計算機の負荷を軽減することが可能となる。
Embodiment 7
The redirector computers 72 to 77 according to the fourth embodiment only relay access requests. However, in a large-scale local network in which the tree-like configuration described with reference to FIG. 23 is effective, by providing the cache function of the primary cache proxy server computers 503 to 508 to the redirector computer, And the load on the proxy server computer can be reduced. FIG. 14 is a diagram showing the system configuration. The redirector server computers 40 to 45 can be realized by combining the redirector computer 80 shown in FIG. 11 and the proxy server computer 13 shown in FIG. That is, since it can be realized by receiving the read request 17 of FIG. 16 by the redirector process 81 of FIG. 11, detailed description thereof will not be repeated. Also, by caching inside the client computer according to the fifth embodiment, it is possible to reduce the traffic on the local network and the load on the proxy server computer.

 上述したように、redirector計算機においてキャッシュすることにより、ローカルネットワーク上のでの通信量およびproxyサーバ計算機の負荷を軽減することができる。 As described above, by caching in the redirector computer, the traffic on the local network and the load on the proxy server computer can be reduced.

 [実施の形態8]
 上述した実施の形態4から7は、排他的に使用されなければいけないものではない。すなわち、実施の形態8においてはredirector機能を実現するすべての計算機(proxyサーバ計算機、クライアント計算機、redirector計算機)において、redirector機能の使用するハッシュ関数が同一であり、すべてのアクセス要求がそれぞれ同一のproxyサーバ計算機等のキャッシュ機能を有する計算機で中継およびキャッシュされれば、実施の形態4〜7に記載された各種の計算機は、単一のネットワーク内に混在して使用されても全く問題はない。したがって、それぞれの会社等の組織におけるさまざまなネットワークや計算機の運用事情に応じ、非常に柔軟なネットワーク運用を行なうことが可能となる。
Embodiment 8
Embodiments 4 to 7 described above do not have to be used exclusively. That is, in the eighth embodiment, the hash function used by the redirector function is the same in all the computers (proxy server computer, client computer, and redirector computer) that realize the redirector function, and all the access requests have the same proxy. Various computers described in the fourth to seventh embodiments can be used in a single network without any problem as long as the computers are relayed and cached by a computer having a cache function such as a server computer. Therefore, extremely flexible network operation can be performed in accordance with the operation circumstances of various networks and computers in each organization such as a company.

 ある程度以上の大規模なローカルネットワークでは、広域ネットワークとの接続が複数の経路(図8の62〜64)からなる場合もある。そのような場合、proxyサーバ計算機ごとに異なる経路を使用すると、クライアント計算機からのアクセス要求を複数ある経路に分散して中継することになる。したがって、複数ある広域ネットワークとの通信経路を有効利用し、広域ネットワークとローカルネットワークとの通信のスループット向上が図れる。 で は In a large-scale local network of a certain size or more, the connection to the wide area network may be made up of a plurality of routes (62 to 64 in FIG. 8). In such a case, if a different path is used for each proxy server computer, an access request from a client computer is distributed and relayed to a plurality of paths. Accordingly, the communication paths between the wide area network and the local network can be effectively used, and the throughput of communication between the wide area network and the local network can be improved.

 実際の運用においては、すべての計算機の設定を一度に変えることは現実的ではない。移行には暫く時間がかかることが普通である。より効率のよい運用を図るためには、すべてのredirector機能を有する計算機内でハッシュ関数を一致させる必要があるため、すべてのクライアント計算機がredirector計算機を利用するようシステムを構築するか、クライアント計算機がredirector機能を持つ必要がある。しかし、そのようなシステムを構築しなくてもredirector機能を有する計算機を使用することは可能である。すなわち、本発明の各方式では、従来のproxyサーバ計算機やクライアント計算機を全く手を付けない状態で、システムの一部にredirector機能を持たせて、システム全体はそのまま使用することも可能である。 に お い て In actual operation, it is not realistic to change the settings of all the computers at once. The transition usually takes a while. In order to achieve more efficient operation, it is necessary to make the hash functions identical in all computers having the redirector function. Therefore, either construct a system so that all the client computers use the redirector computer, or It is necessary to have a redirector function. However, it is possible to use a computer having a redirector function without constructing such a system. That is, in each system of the present invention, a part of the system can be provided with a redirector function without using a conventional proxy server computer or client computer at all, and the entire system can be used as it is.

 同様に、システムの再構築の際、複数のredirector機能におけるハッシュ関数が一致しない場合もあり得る。このような場合でも、システム全体の動作自体には影響はないので、通常と同様に利用が可能である。上述したいずれの場合も利用は可能であるが、proxyサーバ計算機その他の有効利用の観点からは望ましい状況とはいえない。したがって、できるだけ早い時期にすべてのredirector機能を有する計算機での設定を統一させることが望ましい。しかし移行期に新旧の設定を混在していても不必要な混乱を起こさず、スムーズに移行することが可能である。 Similarly, when the system is reconfigured, hash functions of a plurality of redirector functions may not match. Even in such a case, the operation of the entire system itself is not affected, so that it can be used as usual. Although use is possible in any of the above cases, it is not a desirable situation from the viewpoint of the proxy server computer and other effective use. Therefore, it is desirable to unify settings in computers having all the redirector functions as early as possible. However, even if the old and new settings are mixed during the transition period, the transition can be performed smoothly without causing unnecessary confusion.

 なお、httpプロトコルを含めた参考文献リストを以下に示す。 The reference list including the http protocol is shown below.

Figure 2004030690
Figure 2004030690

Figure 2004030690
Figure 2004030690

本発明におけるゲートウェイ装置の一例であるproxyサーバ計算機の動作概念図である。It is an operation | movement conceptual diagram of the proxy server computer which is an example of the gateway apparatus in this invention. WWWサーバ内の情報ページをクライアント計算機に読出したときの表示画面を示す図である。FIG. 11 is a diagram showing a display screen when an information page in a WWW server is read out to a client computer. 実施の形態1のゲートウェイ装置であるproxyサーバ計算機で行なわれるキャッシュ更新プロセスの処理手順を示すフローチャートである。6 is a flowchart illustrating a processing procedure of a cache update process performed by the proxy server computer that is the gateway device according to the first embodiment. proxyプロセスにおけるキャッシュファイル管理の処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure of the cache file management in a proxy process. 実施の形態2のゲートウェイ装置であるproxyサーバ装置で行なわれるキャッシュ更新プロセスの処理手順を示すフローチャートである。11 is a flowchart illustrating a processing procedure of a cache update process performed by a proxy server device that is a gateway device according to the second embodiment. 実施の形態3のゲートウェイ装置であるproxyサーバ装置で行なわれるキャッシュ更新プロセスの処理手順を示すフローチャートである。15 is a flowchart illustrating a processing procedure of a cache update process performed by a proxy server device that is a gateway device according to the third embodiment. 本発明を実施した場合のサーバ計算機とクライアント計算機の間で転送されるデータのタイムチャートである。6 is a time chart of data transferred between a server computer and a client computer when the present invention is implemented. 実施の形態4における分散ファイルシステムの全体構成を示す図である。FIG. 14 is a diagram illustrating an entire configuration of a distributed file system according to a fourth embodiment. 実施の形態4におけるredirector計算機の処理手順を示すフローチャートである。15 is a flowchart illustrating a processing procedure of a redirector computer according to the fourth embodiment. 図2に示す同一ページのファイルオブジェクトに対するアクセス要求が2台のサーバ計算機に分散されるようすを示す図である。FIG. 3 is a diagram showing how access requests to file objects of the same page shown in FIG. 2 are distributed to two server computers. 実施の形態4におけるredirector計算機の内部構成を示す図である。FIG. 21 is a diagram illustrating an internal configuration of a redirector computer according to a fourth embodiment. 実施の形態5におけるクライアント計算機の内部構成を示す図である。FIG. 21 is a diagram illustrating an internal configuration of a client computer according to a fifth embodiment. 実施の形態6におけるproxyサーバ計算機の内部構成を示す図である。FIG. 21 is a diagram illustrating an internal configuration of a proxy server computer according to a sixth embodiment. 実施の形態7における分散ファイルシステムの全体構成を示す図である。146 is a diagram illustrating an entire configuration of a distributed file system in Embodiment 7. [FIG. 従来のゲートウェイ計算機の構成を示す図である。FIG. 9 is a diagram showing a configuration of a conventional gateway computer. proxyサーバ装置の概念図である。It is a conceptual diagram of a proxy server apparatus. proxyサーバ装置の回路構成の第1の例を示す図である。FIG. 3 is a diagram illustrating a first example of a circuit configuration of a proxy server device. proxyサーバ装置の回路構成の第2の例を示す図である。FIG. 9 is a diagram illustrating a second example of the circuit configuration of the proxy server device. proxyサーバ装置の回路構成の第3の例であって、本願発明の実施の形態でproxyサーバ装置としても使用されるproxyサーバ装置の回路構成を示す図である。FIG. 13 is a third example of the circuit configuration of the proxy server device, and is a diagram illustrating the circuit configuration of the proxy server device that is also used as the proxy server device in the embodiment of the present invention. キャッシュヒット率と平均アクセス速度との関係を示すグラフである。9 is a graph showing a relationship between a cache hit rate and an average access speed. キャッシュファイルサイズとキャッシュヒット率との関係を示すグラフである。9 is a graph showing a relationship between a cache file size and a cache hit rate. キャッシュ有効期限とキャッシュファイルの大きさとの関係を示すグラフである。9 is a graph showing a relationship between a cache expiration date and the size of a cache file. 従来の分散ファイルシステムの全体構成の第1の例を示す図である。FIG. 11 is a diagram illustrating a first example of the overall configuration of a conventional distributed file system. 従来の分散ファイルシステムの全体構成の第2の例を示す図である。FIG. 11 is a diagram illustrating a second example of the overall configuration of a conventional distributed file system. 従来の分散ファイルシステムの全体構成の第3の例を示す図である。FIG. 11 is a diagram illustrating a third example of the overall configuration of a conventional distributed file system. 従来の分散ファイルシステムにおけるサーバ計算機内のデータの更新とクライアント計算機が読出したデータとの関係を示すタイムチャートである。9 is a time chart showing a relationship between updating data in a server computer and data read by a client computer in a conventional distributed file system.

符号の説明Explanation of reference numerals

 11 サーバ計算機、14 第1のproxyプロセス、15 アクセスログ、16 キャッシュファイル、30 パターンファイル、34 第2のproxyプロセス、35 FIFOバッファ、36 キャッシュ更新プロセス、72〜77 redirector計算機。 {11} server computer, 14} first proxy process, 15 access log, 16 cache file, 30 pattern file, 34 second proxy process, 35 FIFO buffer, 36 cache update process, 72-77 redirector computer.

Claims (9)

 クライアント計算機と、前記クライアント計算機からの情報提供要求に応じて情報を提供するサーバ計算機と、前記サーバ計算機のファイルオブジェクトを制御するゲートウェイ装置と、前記クライアント計算機からの情報提供要求に基づくファイルオブジェクトの転送を中継するproxyサーバ計算機とからなるシステムにおけるゲートウェイ装置であって、
 前記情報提供要求に含まれる文字列とシステム内のproxyサーバ計算機の数とを用いた所定の演算による演算結果に基づいて、要求した情報を格納するproxyサーバ計算機を決めることで、proxyサーバ計算機毎に格納される情報量を分散させる制御をすることを特徴とするゲートウェイ装置。
A client computer, a server computer for providing information in response to an information provision request from the client computer, a gateway device for controlling a file object of the server computer, and transfer of a file object based on the information provision request from the client computer And a proxy server computer that relays the information.
By determining a proxy server computer that stores requested information based on a calculation result of a predetermined calculation using a character string included in the information provision request and the number of proxy server computers in the system, each proxy server computer A gateway device for controlling the amount of information stored in the gateway.
 前記所定の演算が、情報提供要求に含まれるURL文字列の文字コードを加算してシステム内のproxyサーバ計算機の数で割った剰余を用いたハッシュ演算であることを特徴とする請求項1記載のゲートウェイ装置。 2. The predetermined operation is a hash operation using a remainder obtained by adding a character code of a URL character string included in the information provision request and dividing the result by the number of proxy server computers in the system. Gateway device.  前記所定の演算は、システム内の他のゲートウェイ装置と同じ計算式を用い、同一の情報提供要求による演算結果は同一のproxyサーバ計算機を決定することを特徴とする請求項1または2記載のゲートウェイ装置。 The gateway according to claim 1 or 2, wherein the predetermined calculation uses the same calculation formula as another gateway device in the system, and the calculation result by the same information provision request determines the same proxy server computer. apparatus.  クライアント計算機と、前記クライアント計算機からの情報提供要求に応じて情報を提供するサーバ計算機と、前記サーバ計算機のファイルオブジェクトの制御と前記クライアント計算機からの情報提供要求に基づくファイルオブジェクトの転送の中継とを行なうproxyサーバ計算機とからなるシステムにおけるproxyサーバ計算機であって、
 前記情報提供要求に含まれる文字列とシステム内のproxyサーバ計算機の数とを用いた所定の演算による演算結果に基づいて、要求した情報を格納するproxyサーバ計算機を自機を含めて決めることで、proxyサーバ計算機毎に格納される情報量を分散させる制御をすることを特徴とするproxyサーバ計算機。
A client computer, a server computer that provides information in response to an information provision request from the client computer, a control of a file object of the server computer, and a transfer of a file object transfer based on the information provision request from the client computer. A proxy server computer in a system consisting of a proxy server computer to perform.
By determining the proxy server computer that stores the requested information, including the own device, based on an operation result of a predetermined operation using the character string included in the information provision request and the number of the proxy server computers in the system. A proxy server computer for controlling the amount of information stored in each proxy server computer to be distributed.
 前記所定の演算が、情報提供要求に含まれるURL文字列の文字コードを加算してシステム内のproxyサーバ計算機の数で割った剰余を用いたハッシュ演算であることを特徴とする請求項4記載のproxyサーバ計算機。 5. The hash value calculation method according to claim 4, wherein the predetermined calculation is a hash calculation using a remainder obtained by adding a character code of a URL character string included in the information provision request and dividing the result by the number of proxy server computers in the system. Proxy server calculator.  前記所定の演算は、システム内の他のproxyサーバ計算機と同じ計算式を用い、同一の情報提供要求による演算結果は同一のproxyサーバ計算機を決定することを特徴とする請求項4または5記載のproxyサーバ計算機。 The said predetermined | prescribed operation | movement uses the same formula as another proxy server computer in a system, The operation result by the same information provision request determines the same proxy server computer, The Claims 4 or 5 characterized by the above-mentioned. proxy server computer.  クライアント計算機と、前記クライアント計算機からの情報提供要求に応じて情報を提供するサーバ計算機と、前記クライアント計算機からの情報提供要求に基づくファイルオブジェクトの転送を中継するproxyサーバ計算機とからなるシステムにおけるクライアント計算機であって、
 前記情報提供要求に含まれる文字列とシステム内のproxyサーバ計算機の数とを用いた所定の演算による演算結果に基づいて、要求した情報を格納するproxyサーバ計算機を決めることで、proxyサーバ計算機毎に格納される情報量を分散させる制御をすることを特徴とするクライアント計算機。
A client computer in a system comprising a client computer, a server computer that provides information in response to an information provision request from the client computer, and a proxy server computer that relays transfer of file objects based on the information provision request from the client computer And
The proxy server computer that stores the requested information is determined based on the result of a predetermined operation using the character string included in the information provision request and the number of the proxy server computers in the system. A client computer for controlling the amount of information stored in the client computer.
 前記所定の演算が、情報提供要求に含まれるURL文字列の文字コードを加算してシステム内のproxyサーバ計算機の数で割った剰余を用いたハッシュ演算であることを特徴とする請求項7記載のクライアント計算機。 8. The hash calculation using a remainder obtained by adding a character code of a URL character string included in an information provision request and dividing the result by the number of proxy server computers in the system. Client calculator.  前記所定の演算は、システム内の他のクライアント計算機と同じ計算式を用い、同一の情報提供要求による演算結果は同一のproxyサーバ計算機を決定することを特徴とする請求項7または8記載のクライアント計算機。 9. The client according to claim 7, wherein the predetermined calculation uses the same calculation formula as another client computer in the system, and a calculation result based on the same information provision request determines the same proxy server computer. calculator.
JP2003292960A 2003-08-13 2003-08-13 Gateway device, client computer and proxy server computer Expired - Fee Related JP3485915B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003292960A JP3485915B1 (en) 2003-08-13 2003-08-13 Gateway device, client computer and proxy server computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003292960A JP3485915B1 (en) 2003-08-13 2003-08-13 Gateway device, client computer and proxy server computer

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP17456196A Division JP3481054B2 (en) 1996-07-04 1996-07-04 Gateway device, client computer and distributed file system connecting them

Publications (2)

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

Family

ID=30438853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003292960A Expired - Fee Related JP3485915B1 (en) 2003-08-13 2003-08-13 Gateway device, client computer and proxy server computer

Country Status (1)

Country Link
JP (1) JP3485915B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205232A (en) * 2009-03-06 2010-09-16 Yahoo Japan Corp Server and program
EP2285071A1 (en) 2009-08-10 2011-02-16 Hitachi Ltd. Gateway system and control method for proxy servers load balancing
JP2012073777A (en) * 2010-09-28 2012-04-12 Kddi Corp Distributed file system control apparatus
US9891961B2 (en) 2013-06-13 2018-02-13 Nec Corporation Load distribution apparatus, load distribution method, storage medium, and event-processing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03263940A (en) * 1990-03-14 1991-11-25 Fuji Xerox Co Ltd Network system
JPH0855072A (en) * 1994-08-12 1996-02-27 Matsushita Electric Ind Co Ltd Network system, data processing system, and data storage method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03263940A (en) * 1990-03-14 1991-11-25 Fuji Xerox Co Ltd Network system
JPH0855072A (en) * 1994-08-12 1996-02-27 Matsushita Electric Ind Co Ltd Network system, data processing system, and data storage method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205232A (en) * 2009-03-06 2010-09-16 Yahoo Japan Corp Server and program
EP2285071A1 (en) 2009-08-10 2011-02-16 Hitachi Ltd. Gateway system and control method for proxy servers load balancing
CN101997785A (en) * 2009-08-10 2011-03-30 株式会社日立制作所 Gateway system and control method
US8510372B2 (en) 2009-08-10 2013-08-13 Hitachi, Ltd. Gateway system and control method
CN101997785B (en) * 2009-08-10 2014-01-22 株式会社日立制作所 Gateway system and control method
JP2012073777A (en) * 2010-09-28 2012-04-12 Kddi Corp Distributed file system control apparatus
US9891961B2 (en) 2013-06-13 2018-02-13 Nec Corporation Load distribution apparatus, load distribution method, storage medium, and event-processing system

Also Published As

Publication number Publication date
JP3485915B1 (en) 2004-01-13

Similar Documents

Publication Publication Date Title
JP3481054B2 (en) Gateway device, client computer and distributed file system connecting them
US20210203742A1 (en) Providing access to managed content
US9509748B2 (en) Efficient storage and retrieval of resources for rendering structured documents
US6192398B1 (en) Remote/shared browser cache
US6182111B1 (en) Method and system for managing distributed data
JP3978185B2 (en) Fragment linking and fragment caching methods and systems
JP5193056B2 (en) Method and system for maintaining up-to-date data of wireless devices
EP2266043B1 (en) Cache optimzation
US7047485B1 (en) Intelligent pre-caching on a network
JP5842816B2 (en) Cache server with extensible programming framework
US6801927B1 (en) Network adaptor card with reverse proxy and cache and method implemented therewith
US8078686B2 (en) High performance file fragment cache
US20100325363A1 (en) Hierarchical object caching based on object version
US10133744B2 (en) Composite execution of rename operations in wide area file systems
JP2004094805A (en) Network system, reverse proxy, computer device, deta processing method and program
KR20080028869A (en) Content syndication platform
JP2004280826A (en) Protocol-independent client-side caching system and method
CN1234086C (en) System and method for high speed buffer storage file information
US7069297B2 (en) Data transfer scheme using re-direct response message for reducing network load
JP2000181843A (en) Information repeater and storage medium
US9489456B1 (en) Previewing file information over a network
JPH08185348A (en) Method and device for processing information
US7448032B2 (en) Method and apparatus for integration of URL into standard file systems
JP3485915B1 (en) Gateway device, client computer and proxy server computer
JP4256297B2 (en) Information relay device

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