JP4041157B2 - Client side proxy device, data transfer method and program - Google Patents
Client side proxy device, data transfer method and program Download PDFInfo
- Publication number
- JP4041157B2 JP4041157B2 JP2007154496A JP2007154496A JP4041157B2 JP 4041157 B2 JP4041157 B2 JP 4041157B2 JP 2007154496 A JP2007154496 A JP 2007154496A JP 2007154496 A JP2007154496 A JP 2007154496A JP 4041157 B2 JP4041157 B2 JP 4041157B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- fingerprint
- client
- reply
- side proxy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、他の装置のためにデータ転送を行うクライアント側プロキシ装置、データ転送方法及びプログラムに関する。 The present invention relates to a client-side proxy device that performs data transfer for another device, a data transfer method, and a program.
ネットワークを介して様々なサービスを提供するサーバと、所望のサービスをサーバに対して要求するクライアントとから構成される、クライアント・サーバ型の情報システムが広く利用されている。特に、インターネット上でHTTPプロトコルを使って通信するWEBサーバとクライアントとからなるWORLDWIDE WEBシステム(あるいは単にWEBとも呼ばれる)は、大変広く利用されているクライアント・サーバ型の情報システムである。通常、サーバ上ではサーバプログラムが動作し、クライアント上ではブラウザなどの所定のツール(プログラム)が動作する。インターネット上で提供されるサービスの内容も多岐に渡っており、ネットワーク経由で文字、静止画像、動画像、音声等の情報(例えば、ホームページ、電子メール、デジタルコンテンツなど)や、プログラムなどを提供、配信あるいは転送などするサービス、また商品を販売するための電子店舗サービス、座席や部屋等の予約サービス、種々の契約の仲介サービスなど、種々のサービスが既に存在し、また次々と新たな形態のサービスが出現している。 2. Description of the Related Art A client / server type information system is widely used, which includes a server that provides various services via a network and a client that requests a desired service from the server. In particular, the WORLDWIDE WEB system (or simply referred to as WEB) composed of a WEB server and a client that communicate using the HTTP protocol on the Internet is a client-server type information system that is very widely used. Normally, a server program operates on the server, and a predetermined tool (program) such as a browser operates on the client. The contents of services provided on the Internet are also diverse, providing information such as text, still images, moving images, audio (such as homepages, e-mails, digital contents, etc.) and programs via the network. Various services such as distribution or transfer services, electronic store services for selling products, reservation services for seats and rooms, mediation services for various contracts, etc., and new forms of services one after another Has appeared.
ところで、WEBのようなクライアント・サーバ型の情報システムにおいては、提供されるサービスがどのような形態のものであろうと、基本的にはクライアント・サーバ間でデータ転送が行われることによってサービスが提供される。したがって、クライアントとサーバとの間で通信に用いるネットワークの容量(バンド幅)が、システム全体のボトルネックになりやすい。そこで、通常、ネットワークの負荷を軽減させるためにキャッシュ技術が用いられる。 By the way, in a client-server type information system such as WEB, whatever service is provided, the service is basically provided by data transfer between the client and the server. Is done. Therefore, the capacity (bandwidth) of the network used for communication between the client and the server tends to become a bottleneck of the entire system. Therefore, a cache technique is usually used to reduce the load on the network.
WEBシステムの場合、クライアント上で動作するブラウザ等はキャッシュ機構を使用するものが多く、最近アクセスしたデータをキャッシュしている。WEBではURLと呼ばれる名前で情報やサービスを指定してアクセスがなされるので、クライアント上のキャッシュは、過去にWEBサーバに要求した情報やサービスの結果として返されるデータのうちでキャッシュ可能なものを、そのURLと対応させてキャッシュに記録している。この場合、キャッシュ内にあるものと同じURLの情報やサービスのリクエストがあった際に、そのキャッシュ内の応答データが古くなっていないと判断できるならば、そのデータを返すことで、WEBサーバとの間の通信を無くすことができる。 In the case of a WEB system, browsers and the like that operate on a client often use a cache mechanism, and cache recently accessed data. In WEB, access is made by designating information or service with a name called URL, so that the cache on the client is the information that has been requested to the WEB server in the past and the data returned as a result of the service can be cached. The URL is recorded in the cache in association with the URL. In this case, if there is a request for the same URL information or service as that in the cache and it can be determined that the response data in the cache is not stale, by returning that data, Communication between can be eliminated.
企業のオフィス内のLANあるいは研究機関におけるLANあるいは家庭内のLANなどで複数のユーザがいる場合、該LANとインターネットとの間にプロキシサーバを置き、プロキシサーバにキャッシュ機構を設けるようにすることも多い。クライアント内のキャッシュ(例えば、ブラウザのキャッシュ)は、当該クライアント・ユーザに専用のキャッシュとして動作するが、LAN上のプロキシサーバのキャッシュは、複数のクライアント・ユーザに共有のキャッシュとして動作する。そのため、後者では、過去に他人(他クライアント)がアクセスしたURLに対してアクセスする際にもキャッシュが効く。 When there are a plurality of users in a corporate office LAN, a research institution LAN, or a home LAN, a proxy server may be placed between the LAN and the Internet, and a cache mechanism may be provided in the proxy server. Many. The cache in the client (for example, the browser cache) operates as a cache dedicated to the client user, while the proxy server cache on the LAN operates as a shared cache for a plurality of client users. For this reason, in the latter case, the cache is effective even when accessing a URL accessed by another person (another client) in the past.
さて、WEBにおいて、クライアントとサーバとの間は、HTTPと呼ぶプロトコルで通信が行われる。HTTPプロトコルは、クライアントからサーバへ送る「リクエストメッセージ」と、それに答えてサーバからクライアントへ応答を返す「リプライメッセージ」とが組になっている。 Now, in WEB, communication is performed between a client and a server using a protocol called HTTP. The HTTP protocol is a combination of a “request message” sent from the client to the server and a “reply message” that returns a response from the server to the client.
リクエストメッセージは、「リクエストヘッダ」と「リクエストボディ」からなる。リクエストヘッダには、アクセスしたい情報やサービスを指定するURLやアクセスの種類を示すメソッド名、その他アクセスに必要な各種の情報が入る。リクエストボディには、サーバに送るデータを入れる。リクエストボディに入っているデータを「リクエストデータ」とも呼ぶ。 The request message consists of a “request header” and a “request body”. The request header includes a URL for designating information to be accessed and a service, a method name indicating the type of access, and other various information necessary for access. The data to be sent to the server is entered in the request body. The data contained in the request body is also called “request data”.
リプライメッセージは、「リプライヘッダ」と「リプライボディ」からなる。リプライヘッダには、処理結果のステータスなどの情報が入り、リプライボディには要求された情報や要求されたサービスの処理結果などのデータが入る。リプライボディに入っているデータを「リプライデータ」とも呼ぶ。 The reply message includes a “reply header” and a “reply body”. Information such as the status of the processing result is entered in the reply header, and data such as the requested information and the processing result of the requested service is entered in the reply body. The data contained in the reply body is also called “reply data”.
リクエストメッセージのメソッドとしては、サーバ上の情報を読み出す「GETメソッド」、ユーザの持つデータをサーバに書き込む「PUTメソッド」、リクエストの応じて処理した結果を送り返してもらう「POSTメソッド」が、情報やサービスのアクセスに用いられる主要なものである。その他、DELETEなどのメソッドが定義されている。 As a request message method, there are a “GET method” that reads information on the server, a “PUT method” that writes data held by the user to the server, and a “POST method” that sends back the result processed in response to the request. It is the main thing used to access services. In addition, a method such as DELETE is defined.
多くの場合、GETメソッドのリクエストメッセージのリクエストボディ、PUTメソッドのリプライメッセージのリプライボディは空である。POSTメソッドのリクエストメッセージのリクエストボディには、必要に応じてサーバ側での処理に用いる情報が入り、POSTメソッドのリプライメッセージのリプライボディには、その処理の結果のデータが入る。 In many cases, the request body of the request message of the GET method and the reply body of the reply message of the PUT method are empty. The request body of the POST method request message contains information used for processing on the server side as necessary, and the reply body of the POST method reply message contains data of the processing result.
GETメソッドでサーバから読み出すデータは、読み出す毎にサーバ側で生成する「動的データ」と、既にサーバ側で記憶しているデータをそのまま送り返す「静的データ」に分けることができる。これらのうち、動的データについては、同じURLでも読み出す度に内容が異なる可能性があるので、多くの場合、サーバはキャッシュ不可の指定をそのリプライメッセージのヘッダに入れて送り返す。したがって、WEBのデータでキャッシュの対象になるのは、静的データの部分である。この静的データは、不特定多数のユーザが参照して構わない「共有データ」と、ユーザ認証することで特定のユーザだけがアクセスできるようにアクセス制御を行う「プライベートデータ」に分けることができる。前者の共有データは、どのようなキャッシュでもキャッシュ可能である。しかしながら、後者のプライベートデータは、プロキシサーバなどの共有キャッシュでは、キャッシュ不可である(プライベートデータは必ずサーバでユーザを認証して送り返す必要があるので)。ただし、ブラウザなどの個人専用のキャッシュの場合には、プライベートデータでもキャッシュは可能である。 Data read from the server by the GET method can be divided into “dynamic data” generated on the server side each time it is read, and “static data” that returns data already stored on the server side as it is. Of these, the contents of dynamic data may be different each time the same URL is read, and in many cases, the server sends back a specification indicating that caching is impossible in the header of the reply message. Therefore, it is a portion of static data that is subject to caching with WEB data. This static data can be divided into “shared data” that can be referenced by an unspecified number of users and “private data” that performs access control so that only specific users can access by authenticating users. . The former shared data can be cached in any cache. However, the latter private data cannot be cached in a shared cache such as a proxy server (because private data must be authenticated and sent back by the server). However, in the case of a personal cache such as a browser, even private data can be cached.
POSTメソッドは、サーバ側で処理をした結果を返すので、一般的にサーバはキャッシュ不可の指定をリプライメッセージのヘッダに入れて結果を送り返す。そのため、通常はキャッシュの対象にはならない。 Since the POST method returns the result of processing on the server side, in general, the server sends back the result with a specification indicating that caching is impossible in the header of the reply message. Therefore, it is not normally subject to caching.
PUTメソッドは、データをサーバに送るものなので、キャッシュは何も処理をしない。 Since the PUT method sends data to the server, the cache does nothing.
従来のWEBのキャッシュは、静的コンテンツをキャッシュの対象にしている。かつては、WEBで公開される情報やサービスには、情報の更新頻度がそれほど高くなく、不特定多数の人に公開されているものが多かったため、静的コンテンツの割合は非常に高く、従来のキャッシュ技術でもネットワークの負荷の軽減に有効であった。 The conventional WEB cache targets static content as a cache target. In the past, information and services published on the WEB were not so frequently updated, and many were published to an unspecified number of people, so the proportion of static content was very high. Cache technology was also effective in reducing network load.
しかしながら、WEBベースのASP(Application Service Provider)のように、ユーザがWEBブラウザを使って、ネットワーク経由でサーバ上の情報やサービスにアクセスするシステムが普及するにつれて、下記のように従来のキャッシュ技術では対応できないデータが増加している。
・ユーザの認証を行い、アクセスできるユーザを制限しているので、プライベートデータが多い。
・バックエンドのデータベースを参照して生成する動的データが多い。
・帳票処理や検索などPOSTメソッドを使う場合が多い。
・グループ内の情報共有のためにPUTメソッドを使う場合が多い。
この結果、キャッシュ技術のみではネットワークの負荷を軽減する手法として有効に機能しなくなってきている。
However, as a system in which a user accesses information and services on a server via a network using a WEB browser, such as a WEB-based ASP (Application Service Provider), a conventional cache technology as described below. The data that cannot be handled is increasing.
-Since the user is authenticated and the user who can access is restricted, there is much private data.
-Many dynamic data are generated by referring to the backend database.
-In many cases, the POST method is used for form processing and search.
-The PUT method is often used to share information within a group.
As a result, the cache technology alone has not functioned effectively as a technique for reducing the load on the network.
本発明は、上記事情を考慮してなされたもので、プロキシ装置間を接続するネットワークの負荷をより軽減することができるキャッシュ技術・圧縮技術を備えたクライアント側プロキシ装置、データ転送方法及びプログラムを提供することを目的とする。 The present invention has been made in view of the above circumstances, and provides a client-side proxy device, a data transfer method, and a program provided with a cache technology and a compression technology that can further reduce the load on the network connecting the proxy devices. The purpose is to provide.
本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信された複数のリクエストデータを受信して、該リクエストデータの宛先たるサーバ装置へのアクセスの代理を担当するサーバ側プロキシ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記サーバ側プロキシ装置を介して前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置へ転送するクライアント側プロキシ装置であって、前記サーバ側プロキシ装置は、前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、前記クライアント側プロキシ装置は、前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段と、前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信する第2の受信手段と、この第2の受信手段が受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定する判定手段と、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるリプライデータのフィンガープリントを生成するフィンガープリント生成手段と、前記第2の受信手段が前記圧縮データを受信したと、前記判定手段が判定した場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるリプライデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信する第2の送信手段とを備えたことを特徴とする。 The present invention receives a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transfers the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed A client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to the request data, to the client device that is the destination of the reply data. The server-side proxy device includes a first holding unit for holding the fingerprint of the reply data as a first fingerprint cache in association with the reply data, and is transmitted from the client device to the client-side By proxy device First reply means for receiving reply data from the server apparatus in response to the requested data, and a fingerprint generated based on the reply data received by the first reception means. When held in the first fingerprint cache, compressed data including a fingerprint generated based on the reply data instead of the reply data is addressed to the client device that is the transmission source of the request data Send to the client-side proxy device and associate the fingerprint with the reply data and add to the first fingerprint cache if the fingerprint is not held in the first fingerprint cache And including the reply data First transmission means for transmitting the reduced data to the client-side proxy device as the client device that is the transmission source of the request data, and the client-side proxy device uses a fingerprint of the reply data as follows: Second holding means for holding as a second fingerprint cache in association with the reply data; second receiving means for receiving the compressed data or the uncompressed data from the server-side proxy device; A determination means for determining whether the data received by the second receiving means is the compressed data or the uncompressed data; and when the second receiving means receives the uncompressed data, When the determination means determines, the fingerprint of the reply data included in the uncompressed data is generated. And the second fingerprint cache associated with the fingerprint included in the compressed data when the determination unit determines that the compressed data is received by the second reception unit. When the determination unit determines that the reply data held in the request data is transmitted to the client device that is the transmission source of the request data, and the second reception unit receives the uncompressed data, the uncompressed data The fingerprint generated by the fingerprint generation means based on the reply data included in the request is added to the second fingerprint cache in association with the reply data included in the uncompressed data, and the reply data is added to the request Sent to the client device of the data transmission source Characterized in that a second transmission means for.
また、本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信された複数のリクエストデータを受信して、該リクエストデータの宛先たるサーバ装置へのアクセスの代理を担当するサーバ側プロキシ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記サーバ側プロキシ装置を介して前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置へ転送するクライアント側プロキシ装置であって、前記サーバ側プロキシ装置は、前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含み且つ該リプライデータに基づいて生成されたフィンガープリントを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、前記クライアント側プロキシ装置は、前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段と、前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信する第2の受信手段と、この第2の受信手段が受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定する判定手段と、前記第2の受信手段が前記圧縮データを受信したと、前記判定手段が判定した場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるフィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信する第2の送信手段とを備えたことを特徴とする。 The present invention also provides a server-side proxy device that receives a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices and takes charge of access to the server device that is the destination of the request data. A client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a reply to the request data to the client device that is the destination of the reply data The server-side proxy device transmits a fingerprint of the reply data in association with the reply data as a first fingerprint cache, and is transmitted from the client device and transmitted from the client device. On the client side proxy device First reply means for receiving reply data from the server apparatus to request data transferred from the server apparatus, and a finger generated based on the reply data received by the first reception means When a print is held in the first fingerprint cache, the client device that is the transmission source of the request data uses compressed data including a fingerprint generated based on the reply data instead of the reply data. To the client-side proxy device, and when the fingerprint is not held in the first fingerprint cache, the fingerprint is associated with the reply data and the first fingerprint cache Added to the reply data And a first transmission means for transmitting uncompressed data including a fingerprint generated based on the reply data to the client-side proxy device as the client device that is the transmission source of the request data. And the client-side proxy device includes a second holding unit for holding the fingerprint of the reply data as a second fingerprint cache in association with the reply data, and the compressed data or the non-compressed data. A second receiving means for receiving the data from the server-side proxy device, and a determining means for determining whether the data received by the second receiving means is the compressed data or the uncompressed data; The determination means determines that the second reception means has received the compressed data. In this case, the reply data stored in the second fingerprint cache in association with the fingerprint included in the compressed data is transmitted to the client device that is the transmission source of the request data, and the second receiving means When the determination unit determines that the uncompressed data has been received, the fingerprint included in the uncompressed data is added to the second fingerprint cache in association with the reply data included in the uncompressed data. And second transmission means for transmitting the reply data to the client device that is the transmission source of the request data.
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。 The present invention relating to the apparatus is also established as an invention relating to a method, and the present invention relating to a method is also established as an invention relating to an apparatus. Further, the present invention relating to an apparatus or a method has a function for causing a computer to execute a procedure corresponding to the invention (or for causing a computer to function as a means corresponding to the invention, or for a computer to have a function corresponding to the invention. It is also established as a program (for realizing) and also as a computer-readable recording medium on which the program is recorded.
本発明によれば、サーバ側プロキシ装置とクライアント側プロキシ装置との間でリプライメッセージに含まれるリプライデータとそのフィンガープリントとの対応を保持し、この対応を保持しているリプライデータを含むリプライメッセージについては、リプライデータを転送する代わりに対応するフィンガープリントを転送することで、プロキシ装置間の転送データ量を削減することができる。 According to the present invention, the reply message including the reply data that retains the correspondence between the reply data included in the reply message and the fingerprint between the server-side proxy device and the client-side proxy device. With respect to, by transferring the corresponding fingerprint instead of transferring the reply data, the amount of transfer data between the proxy devices can be reduced.
例えば、GETメソッドのリプライメッセージがプライベートデータであっても、これをフィンガープリントにより圧縮してプロキシ装置間を転送することができるようになる。また、例えば、GETメソッドのリプライメッセージが動的データであっても、内容が同じデータなら、これをフィンガープリントにより圧縮してプロキシ装置間を転送することができるようになる。また、例えば、POSTメソッドであっても、結果が同じデータなら、これをフィンガープリントにより圧縮してプロキシ装置間を転送することができるようになる。 For example, even if the reply message of the GET method is private data, it can be compressed between fingerprints and transferred between proxy devices. Further, for example, even if the reply message of the GET method is dynamic data, if the content is the same, it can be compressed by a fingerprint and transferred between proxy devices. Further, for example, even in the case of the POST method, if the result is the same data, the data can be compressed between fingerprints and transferred between proxy devices.
本発明によれば、プロキシ装置間でリプライデータとそのフィンガープリントとの対応を保持し、この対応を保持しているリプライデータについては、データを転送する代わりに対応するフィンガープリントを転送することで、プロキシ装置間の転送データ量を削減することができる。 According to the present invention, the correspondence between the reply data and the fingerprint is held between the proxy devices, and for the reply data holding this correspondence, the corresponding fingerprint is transferred instead of the data. The amount of data transferred between proxy devices can be reduced.
以下、図面を参照しながら発明の実施の形態を説明する。 Hereinafter, embodiments of the invention will be described with reference to the drawings.
以下では、WANがインターネットであり、クライアントはユーザオフィスLANに接続されたものであり、HTTPプロトコルが使用されるような場合を例にとって説明するが、もちろん、本発明は、WANがインターネット以外のものであっても、クライアントがオフィス以外の例えば家庭内LAN等に設置されたものであっても、HTTPプロトコル以外のプロトコルが使用されるものであっても適用可能である。 In the following, a case where the WAN is the Internet and the client is connected to the user office LAN and the HTTP protocol is used will be described as an example. Even if the client is installed in a home LAN other than the office, for example, it can be applied even if a protocol other than the HTTP protocol is used.
図31に本発明を適用するコンピュータ・ネットワーク・システムの基本的な構成例を示す。この構成例では、ASPサーバセンター2内のローカルエリアネットワーク(LAN)12と、ユーザオフィス4内のローカルエリアネットワーク(LAN)16との間が、インターネットや専用回線などの広域ネットワーク(WAN)14を介して接続されており、ASPサーバセンター2内のサーバ20と、ユーザオフィス4内のクライアント50とが、LAN12・WAN14・LAN16を介して通信可能になっている。ASPサーバセンター内LANには1または複数のサーバが接続され、ユーザオフィス内LANには1または複数のクライアントが接続される。
FIG. 31 shows a basic configuration example of a computer network system to which the present invention is applied. In this configuration example, a wide area network (WAN) 14 such as the Internet or a dedicated line is connected between a local area network (LAN) 12 in the ASP server center 2 and a local area network (LAN) 16 in the
WEBベースのASPは、サーバセンター2に設置したサーバ20から、WAN14を介して、様々なアプリケーションプログラムによるサービスを提供し、ユーザはオフィス4に設置されたクライアント上のWEBブラウザ等を使ってそれらのサービスにアクセスする。
The WEB-based ASP provides services based on various application programs from the
このような利用形態においては、ユーザオフィス内LAN16とサーバセンター内LAN12とをつなぐネットワーク、特にインターネットなどの広域ネットワーク14の実効的な通信容量(バンド幅)は、サーバセンター内LAN12やユーザオフィス内LAN16よりも低く、そこが性能上のボトルネックになって通信遅延が発生し、アプリケーションの応答性能が低下するという問題が発生する。
In such a usage mode, the effective communication capacity (bandwidth) of the network connecting the
そこで、本実施形態では、図1に示すように、サーバセンター内LAN12とユーザオフィス内LAN16とをつなぐ広域ネットワーク14の両端に、サーバ側プロキシ30およびクライアント側プロキシ40という2つのモジュールを設置し、それらの間で後述するフィンガープリント圧縮(FP圧縮)を行って通信データ量を低減することで、広域ネットワークのボトルネックを解消する。
Therefore, in this embodiment, as shown in FIG. 1, two modules, a server-
本実施形態のサーバ20、サーバ側プロキシ30、クライアント側プロキシ40、クライアント50は、いずれも、計算機上でソフトウェア(サーバ・プログラム、サーバ側プロキシ・プログラム、クライアント側プロキシ・プログラム、クライアント・プログラム)を動作させる形で実現することができる。この場合に、必要に応じて計算機所望の機能を有するOSやドライバソフト、パケット通信用ソフト、暗号ソフト等といったソフトウェア、あるいは通信インタフェース装置や外部記憶装置や入出力装置等といったハードウェアが搭載あるいは接続される。また、この場合に、ユーザあるいは管理者からの情報の入力やユーザへの情報の呈示等のために、グラフィカル・ユーザ・インタフェース(GUI)を用いると好ましい。
The
サービスを利用するためにユーザが使用するクライアント50上では、その目的に応じて例えばWEBブラウザ等のプログラムが動作する。ユーザは、例えば、WEBブラウザからインターネットを介し情報転送あるいは注文受付等の所望のサービスを提供するサーバにリクエストメッセージを出し、リプライメッセージを受けることによって、またはこれを適宜繰り返すことによって、サービスを利用する。もちろん、WEBブラウザ等の汎用のソフトウェアではなく、特定のサービスを利用するための専用のソフトウェアなどの他のものが用いられても構わない。また、クライアントは、汎用の計算機ではなく、例えばインターネット機能を有する携帯電話端末等でもよい。 On the client 50 used by the user to use the service, a program such as a WEB browser operates according to the purpose. A user uses a service by, for example, issuing a request message to a server that provides a desired service such as information transfer or order reception from the WEB browser, receiving a reply message, or repeating this appropriately. . Of course, instead of general-purpose software such as a WEB browser, other software such as dedicated software for using a specific service may be used. Further, the client may be not a general-purpose computer but a mobile phone terminal having an Internet function, for example.
サーバ20上では、所定のサーバ・プログラムが動作し、クライアント20のユーザに対して、当該サーバ・サイトに固有のサービスを提供する。
A predetermined server program operates on the
サーバ側プロキシ30は、図1のように、サーバセンター内LAN12とWAN14との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図2のように、サーバセンター内LAN12上に設置して実施することもできる。また、図3のように、サーバ側プロキシ30の機能をサーバ20に内蔵するように実施することもできる。
As shown in FIG. 1, the server-
同様に、クライアント側プロキシ40は、図1のように、ユーザオフィス内LAN16とWAN14との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図2のように、ユーザオフィス内LAN16上に設置して実施することもできる。また、図3のように、クライアント側プロキシ40の機能をクライアント50上で動作するブラウザ等に内蔵するように実施することもできる。あるいは、ブラウザ等の動作するクライアント50上に、個人用のクライアント側プロキシ40を動作させるように実施することもできる。
Similarly, as shown in FIG. 1, the client-
なお、サーバ側プロキシ30とクライアント側プロキシ40とは、図1〜図3などのように同じ形態であってもよいし、異なる形態であってもよい。
Note that the server-
本実施形態のサーバ側プロキシ30およびクライアント側プロキシ40は、いずれも、フィンガープリント・キャッシュ(FPキャッシュ)と呼ぶキャッシュ機構を持つ。フィンガープリント・キャッシュは、フィンガープリント(FP)と呼ぶ名前によって、HTTPプロトコルでやりとりされるデータを記録・管理する。
Both the
フィンガープリントは、図4に例示するように、HTTPプロトコルでやり取りされるデータ(図4の例ではコンテンツ)の内容から、あらかじめ決められた計算方法(図4の例ではハッシュ関数)で決定される、短い数値である。この数値は、可変長でもよいが、処理の容易さの観点では、固定長の数値の方が扱いやすい。 As illustrated in FIG. 4, the fingerprint is determined by a predetermined calculation method (hash function in the example of FIG. 4) from the contents of data exchanged by the HTTP protocol (content in the example of FIG. 4). It ’s a short number. This numerical value may be a variable length, but a fixed-length numerical value is easier to handle from the viewpoint of ease of processing.
フィンガープリントを計算する方法としては、良く知られているMD−5やSHA−1などのハッシュ関数を用いることができる。これらのハッシュ関数は、データに対する電子署名などに使われており、任意のデータが与えられると、MD−5の場合は128ビットの数値に、SHA−1の場合は160ビットの数値に、変換することができる。これらのハッシュ関数の特徴は、2つのデータX1,X2が与えられ、データX1とデータX2とが同じであれば、データX1に対して計算したハッシュ値とデータX2に対して計算したハッシュ値とは等しくなるが、異なる2つのデータA,Bが与えられた場合には、データAに対して計算したハッシュ値とデータBに対して計算したハッシュ値とは、非常に高い確率で異なるものになることである(原理上は、異なる2つのデータA,Bに対してそれぞれ計算したハッシュ値が同じになる場合があるが、その確率は実用上無視できるくらいに小さい)。 As a method for calculating the fingerprint, a well-known hash function such as MD-5 or SHA-1 can be used. These hash functions are used for digital signatures on data, and when given data is converted into a 128-bit number for MD-5 and a 160-bit number for SHA-1. can do. The feature of these hash functions is that if two data X1 and X2 are given and the data X1 and the data X2 are the same, the hash value calculated for the data X1 and the hash value calculated for the data X2 However, when two different data A and B are given, the hash value calculated for data A and the hash value calculated for data B are different with a very high probability. (In principle, the hash values calculated for two different data A and B may be the same, but the probability is small enough to be ignored in practice).
図5に示すように、サーバ側プロキシ30やクライアント側プロキシ40の持つフィンガープリント・キャッシュ(図中の60)は、過去にHTTPプロトコルでやり取りされたデータ本体(図中の61)を、そのデータから計算して求めたフィンガープリントの値(図中の62)を名前として、記録・管理している。
As shown in FIG. 5, the fingerprint cache (60 in the figure) of the server-
例えばHTTPプロトコルでサーバ側プロキシ30からクライアント側プロキシ40へデータを転送するときに、サーバ側プロキシ30は、当該データのフィンガープリントを計算し、そのフィンガープリントに対応するデータがフィンガープリント・キャッシュに入っていれば、当該データ(と同じ内容のデータ)は過去に転送したことがあるので、当該データを転送せずに、対応するフィンガープリントの値を転送する。フィンガープリントを受け取ったクライアント側プロキシ40は、当該フィンガープリントの値に対応するデータをフィンガープリント・キャッシュから取り出すことで、転送すべきデータを再現することができる。このような方式(すなわち、データ圧縮→データ転送→データ解凍)により、過去に送ったものと同じデータならばフィンガープリントの値を送るだけでよいので、ネットワークを流れるデータ量を大幅に削減することができる。もちろん、クライアント側プロキシ40からサーバ側プロキシ30へデータを転送するときも同様である。
For example, when data is transferred from the server-
説明上、サーバ側プロキシ30とクライアント側プロキシ40との間でのデータ転送にあたり、フィンガープリント・キャッシュを利用してメッセージ・ボディーのデータをフィンガープリントに置き換えて転送情報量を圧縮することを、フィンガープリント圧縮(FP圧縮)と呼ぶものとする。
For explanation, when transferring data between the server-
なお、サーバ側プロキシ30とクライアント側プロキシ40との間において、すべてのメッセージをFP圧縮を適用する対象(すなわち、フィンガープリント・キャッシュを利用してデータをフィンガープリントに置き換えるための処理を行う対象)としてもよいが、例えばフィンガープリント・キャッシュの効果が期待できないものなどに対する適用を除外するために、予め定められた条件を満たすメッセージについては、これをFP圧縮の適用対象外とする(常にFP圧縮しないで転送する)ようにしてもよい。
In addition, between the server-
この場合の予め定められた条件とは、例えば、メッセージ・ヘッダに予め定められた情報が記述されていることである。具体的には、例えば、メッセージ・ヘッダにGETメソッドを示す情報およびリクエストを示す情報が記述されていることである。また、予め定められた条件の他の例としては、転送されるデータが空(null)あるいは非常に短いサイズであることである。もちろん、それらの他にも種々のバリエーションがある。また、複数の条件を組み合わせて使用するようにしてもよい。 The predetermined condition in this case is, for example, that predetermined information is described in the message header. Specifically, for example, information indicating a GET method and information indicating a request are described in a message header. Another example of the predetermined condition is that the data to be transferred is null or has a very short size. Of course, there are various other variations. A plurality of conditions may be used in combination.
次に、図6〜図10を参照しながら、サーバ側プロキシ30とクライアント側プロキシ40との間でデータ転送する際の(FP圧縮の適用対象のメッセージについての)プロキシ間メッセージ・フォーマットについて説明する。
Next, an inter-proxy message format (for a message to which FP compression is applied) when data is transferred between the server-
なお、FP圧縮の適用対象外のメッセージは、FP圧縮については、何もせずにそのままの(FP圧縮側(送信側)のプロキシが受信した際の)メッセージ・フォーマットでプロキシ間を転送して構わない。あるいは、FP圧縮側(送信側)のプロキシが、例えばそのメッセージ・ヘッダに当該メッセージがFP圧縮の適用対象外を識別可能とする情報を持つようにして転送することも可能である。 Messages that are not subject to FP compression may be transferred between proxies in the message format (when received by the proxy on the FP compression side (transmission side)) without doing anything for FP compression. Absent. Alternatively, the proxy on the FP compression side (transmission side) can transfer the message header, for example, with information that makes it possible to identify that the message is not subject to FP compression.
さて、サーバ側プロキシ30とクライアント側プロキシ40との間でデータ転送する場合、FP圧縮の適用対象のメッセージには、データがFP圧縮されてフィンガープリントに置き換えられたメッセージ(圧縮時のメッセージ)と、FP圧縮されおらず、データが搭載されているメッセージ(非圧縮時のメッセージ)とがある。
When data is transferred between the server-
非圧縮時のメッセージ・フォーマットは、メッセージに含まれるデータがフィンガープリントキャッシュに登録されていない場合に使用される。一方、圧縮時のメッセージ・フォーマットは、メッセージに含まれるデータがフィンガープリントキャッシュに登録されている場合に使用される。 The uncompressed message format is used when data included in the message is not registered in the fingerprint cache. On the other hand, the message format at the time of compression is used when data included in the message is registered in the fingerprint cache.
解凍側(受信側)では、非圧縮時のフォーマットのメッセージを受信したことを契機として、当該データについてフィンガープリントキャッシュへの登録を行うことができる。 On the decompression side (reception side), the data can be registered in the fingerprint cache when the uncompressed format message is received.
図6に、メッセージ・フォーマットの一例を示す。(a)は非圧縮時のメッセージであり、(b)は圧縮時のメッセージである。 FIG. 6 shows an example of the message format. (A) is an uncompressed message, and (b) is a compressed message.
(a)ではメッセージ・ボディーにデータが載せられ、(b)ではメッセージ・ボディーにデータの代わりにフィンガープリント(FP)が載せられる。また、この例では、メッセージ・ヘッダに、FP圧縮の有無を識別可能とする識別情報が(圧縮側のプロキシにおいて)記述され、この識別情報に基づいて(解凍側のプロキシにおいて)FP圧縮の有無を識別する(例えば、0ならば圧縮なし、1ならば圧縮あり)。なお、識別情報は、プロキシ間で使用される特別のものであってもよいし、もともと通常のHTTPメッセージ・ヘッダに存在するフィールドを利用あるいは併用したものであってもよい。 In (a), data is placed in the message body, and in (b), a fingerprint (FP) is placed in the message body instead of data. Further, in this example, identification information that enables identification of the presence or absence of FP compression is described in the message header (in the compression proxy), and whether or not FP compression is performed based on this identification information (in the decompression proxy) (For example, 0 means no compression, 1 means compression). The identification information may be special information used between proxies, or may be information that uses or uses a field originally present in a normal HTTP message header.
なお、非圧縮時には、図6(a)の例では、メッセージにフィンガープリントを含ませなかったが、メッセージ・ボディーにデータに加えてフィンガープリントを含ませるようにしてもよいし、または図7に示すように、メッセージ・ヘッダにフィンガープリントを含ませるようにしてもよい。このようにすれば、解凍側で当該データについてフィンガープリント・キャッシュの登録を行う際に、該フィンガープリントを利用することによって、あらためて当該データからフィンガープリントを求める手間が省ける。 At the time of non-compression, the fingerprint is not included in the message in the example of FIG. 6A, but the message body may include the fingerprint in addition to the data, or FIG. As shown, the message header may include a fingerprint. In this way, when the fingerprint cache is registered for the data on the decompression side, it is possible to save time and effort for obtaining the fingerprint from the data again by using the fingerprint.
なお、FP圧縮の適用対象外のメッセージが存在し得る場合には、解凍側(受信側)では、メッセージ・ヘッダに上記の識別情報が含まれるか否かで、FP圧縮の適用対象のメッセージか適用対象外のメッセージかを判断することもできる。また、FP圧縮の適用対象外のメッセージのヘッダにも識別情報を設け、該識別情報によって3種類のメッセージを識別するようにしてもよい(例えば、01ならば適用対象外、10なら(適用対象であって且つ)圧縮なし、11なら(適用対象であって且つ)圧縮あり)。 If there is a message that is not subject to FP compression, the decompression side (reception side) determines whether the message is subject to FP compression depending on whether or not the identification information is included in the message header. It is also possible to determine whether the message is not applicable. Also, identification information may be provided in a header of a message that is not subject to FP compression, and three types of messages may be identified based on the identification information (for example, 01 is not applicable, and 10 is applicable (applicable). And) no compression, 11 (applicable and) with compression).
ここで、図32に図6(a)のフォーマットのメッセージの具体例を示し、図33に図6(b)のフォーマットのメッセージの具体例を示す。各図のヘッダ中の“Fingerprint−Mode:…”が識別情報に相当し、図33のボディの“6E39…0128”がフィンガープリントに相当する。 Here, FIG. 32 shows a specific example of the message in the format of FIG. 6A, and FIG. 33 shows a specific example of the message in the format of FIG. 6B. “Fingerprint-Mode:...” In the header of each figure corresponds to identification information, and “6E39... 0128” in the body in FIG. 33 corresponds to a fingerprint.
また、図34に、図7のフォーマットのメッセージの具体例を示す。ヘッダ中の“Fingerprint:…”がフィンガープリントに相当する。 FIG. 34 shows a specific example of the message in the format of FIG. “Fingerprint:...” In the header corresponds to the fingerprint.
図8に、メッセージ・フォーマットの他の例を示す。(a)は非圧縮時のメッセージであり、(b)は圧縮時のメッセージである。(a)ではメッセージ・ボディーにデータが載せられ、(b)ではメッセージ・ボディーは空(null)である。また、この例では、(a),(b)ともにメッセージ・ヘッダにフィンガープリント(FP)が記述される。FP圧縮の有無を識別可能とする識別情報について上記の例と同様である。 FIG. 8 shows another example of the message format. (A) is an uncompressed message, and (b) is a compressed message. In (a), data is put on the message body, and in (b), the message body is null. In this example, the fingerprint (FP) is described in the message header in both (a) and (b). The identification information that can identify the presence or absence of FP compression is the same as in the above example.
なお、この場合に、非圧縮時には図6の(a)と同様のメッセージ・フォーマット(フィンガープリントを含まないフォーマット)を用いる方法もある。 In this case, there is also a method of using the same message format (format not including the fingerprint) as shown in FIG.
なお、FP圧縮の適用対象外のメッセージが存在し得る場合には、上記した識別情報に基づく方法の他に、圧縮側(送信側)のプロキシがFP圧縮の適用対象のメッセージ・ヘッダに常にフィンガープリントを記述する構成の場合には、解凍側(受信側)では、メッセージ・ヘッダにフィンガープリントが含まれるか否かで判断することもできる。 If there is a message that is not subject to FP compression, the proxy on the compression side (transmission side) always applies a finger to the message header that is subject to FP compression, in addition to the method based on the identification information described above. In the case of a configuration describing a print, the decompression side (reception side) can also determine whether or not a fingerprint is included in the message header.
ここで、図35に図8(a)のフォーマットのメッセージの具体例を示し、図36に図8(b)のフォーマットのメッセージの具体例を示す。 Here, FIG. 35 shows a specific example of the message in the format of FIG. 8A, and FIG. 36 shows a specific example of the message in the format of FIG. 8B.
図9に、メッセージ・フォーマットのさらに他の例を示す。(a)は非圧縮時のメッセージであり、(b)は圧縮時のメッセージである。(a)ではメッセージ・ボディーにデータが載せられ、(b)ではメッセージ・ボディーは空(null)である。また、この例では、(a),(b)ともにメッセージ・ヘッダにフィンガープリント(FP)が記述される。ただし、この例では、FP圧縮の有無を識別可能とする識別情報は使用しない。 FIG. 9 shows still another example of the message format. (A) is an uncompressed message, and (b) is a compressed message. In (a), data is put on the message body, and in (b), the message body is null. In this example, the fingerprint (FP) is described in the message header in both (a) and (b). However, in this example, identification information that enables identification of the presence or absence of FP compression is not used.
この例では、メッセージ・ボディーが空(null)か否かによって、FP圧縮の有無を識別することができる。ただし、FP圧縮の適用対象外のメッセージでメッセージ・ボディーが空(null)のものが存在し得る場合には、例えば、メッセージ・ヘッダにフィンガープリント(FP)が存在するか否かによって、FP圧縮の適用対象で圧縮時のメッセージか、FP圧縮の適用対象外でメッセージ・ボディーが空(null)のメッセージかを識別する(あるいは、メッセージ・ヘッダにFP圧縮の適用対象か適用対象外かを示す情報を設けてもよい)。 In this example, whether or not FP compression is performed can be identified based on whether or not the message body is null. However, if a message that is not subject to FP compression and whose message body is null may exist, for example, depending on whether a fingerprint (FP) exists in the message header, FP compression is performed. To identify whether the message is a compressed message or an FP compression not applicable message body and a null message body (or indicates whether the message header is an FP compression applicable or not applicable) Information may be provided).
なお、非圧縮時には図10に示すようにメッセージにフィンガープリントを記述しないフォーマットを用いる方法もある。この場合には、メッセージ・ヘッダにフィンガープリントが含まれるか否かによって、FP圧縮の有無を識別することができる。ただし、FP圧縮の適用対象外のメッセージが存在し得る場合には、例えば、メッセージ・ヘッダにFP圧縮の適用対象か適用対象外かを示す情報を設ければよい。 Note that there is a method of using a format that does not describe a fingerprint in a message as shown in FIG. In this case, the presence or absence of FP compression can be identified by whether or not the fingerprint is included in the message header. However, if there is a message that is not subject to FP compression, for example, information indicating whether the message is subject to FP compression or not may be provided in the message header.
ここで、図37に図9(a)のフォーマットのメッセージの具体例を示し、図38に図9(b)のフォーマットのメッセージの具体例を示す。 Here, FIG. 37 shows a specific example of the message in the format of FIG. 9A, and FIG. 38 shows a specific example of the message in the format of FIG. 9B.
また、図39に、図10のフォーマットのメッセージの具体例を示す。 FIG. 39 shows a specific example of the message in the format of FIG.
以下では、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送するときにそのリプライデータをFP圧縮・解凍する場合を中心に本実施形態について詳しく説明する。
In the following, the present embodiment will be described in detail with a focus on the case where the reply data is transferred from the server-
図11に本実施形態のサーバ側プロキシ30の構成例を示し、図12に本実施形態のクライアント側プロキシ40の構成例を示す。なお、図11や図12は、サーバ側プロキシ30からクライアント側プロキシ40へデータを転送する際の構成を中心に示してある。
FIG. 11 shows a configuration example of the server-
図11に示されるように、本サーバ側プロキシ30は、サーバセンター内LAN12または広域ネットワーク14から転送メッセージを受信するための処理を行う受信部31、転送メッセージに含まれるデータに対してFP圧縮を施すための処理部32、サーバセンター内LAN12または広域ネットワーク14へ転送メッセージを送信するための処理を行う送信部33、フィンガープリントとそのもととなったデータとを対応付けて記憶するためのフィンガープリント・キャッシュ(FPキャッシュ)34を備えている。また、処理部32は、転送メッセージに含まれるデータを圧縮対象とすべきか否かを判定するためのフィンガープリント(FP)圧縮判定部321、フィンガープリント・キャッシュ34に対する検索や登録などを行うためのフィンガープリント・キャッシュ(FPキャッシュ)管理部322、転送メッセージに含まれるデータを対応するフィンガープリントで置き換えるなどの処理を行うためのフィンガープリント(FP)圧縮処理部323を含む。
As shown in FIG. 11, the server-
図12に示されるように、本クライアント側プロキシ40は、ユーザオフィス内LAN16または広域ネットワーク14から転送メッセージを受信するための処理を行う受信部41、転送メッセージに含まれるデータに対してFP解凍を施すための処理部42、ユーザオフィス内LAN16または広域ネットワーク14へ転送メッセージを送信するための処理を行う送信部43、フィンガープリントとそのもととなったデータとを対応付けて記憶するためのフィンガープリント・キャッシュ(FP・キャッシュ)44を備えている。また、処理部42は、転送メッセージに含まれるデータを圧縮対象とすべきか否かおよび転送メッセージに対するFP圧縮の有無を判定するためのフィンガープリント(FP)圧縮判定部421、フィンガープリント・キャッシュ34に対する検索や登録などを行うためのフィンガープリント・キャッシュ(FPキャッシュ)管理部422、FP圧縮された転送メッセージに含まれるフィンガープリントから元のデータを解凍するなどの処理を行うためのフィンガープリント(FP)解凍処理部423を含む。
As shown in FIG. 12, the
なお、圧縮側のFP圧縮判定部321と解凍側のFP圧縮判定部421は、前述したようにメッセージが予め定められた条件を満たすか否かを調べることによって、そのメッセージに含まれるデータをFP圧縮の適用対象とするか否かを判断する(すべてのメッセージをFP圧縮の適用対象にする場合には、圧縮側のFP圧縮判定部321および後に示す手順例の該当部分は不要であり、解凍側のFP圧縮判定部421の該当判断の部分および後に示す手順例の該当部分は不要である)。また、解凍側のFP圧縮判定部421は、FP圧縮の適用対象のメッセージについて、そのデータがFP圧縮されたものか否かを判定する。以下では、FP圧縮の適用対象となるメッセージを転送する場合(FP圧縮の適用対象とすると判断された場合、またはすべてのメッセージをFP圧縮の適用対象にする場合)を中心に説明する。
Note that the compression-side FP
図13に、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送する際のサーバ側プロキシ30の処理手順の一例を示す。なお、図13は、1つのリプライメッセージを受けたときの処理を記述しているが、実際はサーバ側プロキシ30が受け取ったリプライメッセージ全てに対して、図13に例示する処理を行う。
FIG. 13 shows an example of the processing procedure of the
サーバ側プロキシ30は、受信部31により、サーバ20からリプライメッセージを受信する(ステップS1)。
The
FP圧縮判定部321は、該リプライメッセージのリプライデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS2)。リプライデータがFP圧縮対象外のものと判断されたならば(ステップS2)、受信したリプライメッセージを送信部33からクライアント側プロキシ40へ転送する(ステップS9)。
The FP
ステップS2にて該リプライメッセージのリプライデータがFP圧縮対象のものであると判断されたならば、FPキャッシュ管理部322にて、該リプライデータのフィンガープリントの値を計算し(ステップS3)、該フィンガープリントの値をキーとしてフィンガープリント・キャッシュ34を検索する(ステップS4)。
If it is determined in step S2 that the reply data of the reply message is for FP compression, the FP
そして、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ34に登録されていたならば(ステップS5)、FP圧縮処理部323にて、受信したリプライメッセージを、該フィンガープリントの値を用いてFP圧縮時のフォーマットにして(例えば図8(b)等)、送信部33から、クライアント側プロキシ40へ送信する(ステップS6)。このとき、必要に応じて、リプライヘッダ内のデータ長を表すフィールド(Content−Length:フィールド)の値を、FP圧縮時のフォーマットにあわせて設定する。
If a pair of the fingerprint value and the data corresponding to the fingerprint value is registered in the fingerprint cache 34 (step S5), the FP
一方、ステップS4の検索の結果、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ34に登録されていなかったならば(ステップS5)、次の2つの作業を行う。
(1)FP圧縮処理部323にて、受信したリプライメッセージを、(必要に応じて該フィンガープリントの値を用いて)非FP圧縮時のフォーマットにして(例えば図8(a)等)、送信部33から、クライアント側プロキシ40へ送信する(ステップS7)。
(2)FPキャッシュ管理部322にて、該フィンガープリントの値と、該リプライデータとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ34に登録する(ステップS8)。
On the other hand, as a result of the search in step S4, if the set of the fingerprint value and the corresponding data is not registered in the fingerprint cache 34 (step S5), the following two operations are performed.
(1) In the FP
(2) The FP
なお、上記の(1)と(2)は、いずれを先に行ってもよいし、並行して行ってもよい。 Note that either of (1) and (2) may be performed first or in parallel.
次に、図14に、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送する際のクライアント側プロキシ40の処理手順の一例を示す。なお、図14は、1つのリクエストメッセージを受けたときの処理を記述しているが、実際はクライアント側プロキシ40が受け取ったリクエストメッセージ全てに対して、図14に例示する処理を行う。
Next, FIG. 14 shows an example of the processing procedure of the
クライアント側プロキシ40は、受信部41により、サーバ側プロキシ30からリプライメッセージを受信する(ステップS11)。
The
FP圧縮判定部421は、該リプライメッセージのリプライデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS12)。リプライデータがFP圧縮対象外のものと判断されたならば(ステップS12)、受信したリプライメッセージを送信部43からクライアント50へ転送する(ステップS20)。
The FP
ステップS12にて該リプライメッセージのリプライデータがFP圧縮対象のものであると判断されたならば、FP圧縮判定部421は、さらに、リプライデータがFP圧縮されているか否か調べ、判断する(ステップS13)。
If it is determined in step S12 that the reply data of the reply message is for FP compression, the FP
ステップS13にて該リプライメッセージのリプライデータがFP圧縮されているものと判断されたならば(例えば図8(b)等の場合)、FPキャッシュ管理部422にて、該リプライデータのフィンガープリントの値を求め(ステップS14)、該フィンガープリントの値をキーとしてフィンガープリント・キャッシュ44を検索する(ステップS15)。
If it is determined in step S13 that the reply data of the reply message is FP-compressed (for example, in the case of FIG. 8B), the FP
そして、FP解凍処理部423にて、受信リプライメッセージに対して、フィンガープリント・キャッシュ34から検索された該フィンガープリントの値に対応するデータを付加し、プロキシ間で特別の情報を使用する場合には該情報を削除した後に、これを送信部43からクライアント50へ送信する(ステップS16)。このとき、必要に応じて、リプライヘッダ内のデータ長を表すフィールド(Content−Length:フィールド)の値を、該フィンガープリントの値に対応するデータの長さに設定する。
When the FP
一方、ステップS13にて該リプライメッセージのリプライデータがFP圧縮されていないものと判断されたならば(例えば図8(a)等の場合)、次の2つの作業を行う。
(1)FP解凍処理部423にて、プロキシ間で特別の情報を使用する場合には受信リプライメッセージから該情報を削除した後に、これを送信部43からクライアント50へ送信する(ステップS18)。
(2)FPキャッシュ管理部422にて、該リプライデータのフィンガープリントの値を求め(ステップS17)、該フィンガープリントの値と、該リプライデータとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ34に登録する(ステップS19)。
On the other hand, if it is determined in step S13 that the reply data of the reply message is not FP compressed (for example, in the case of FIG. 8A), the following two operations are performed.
(1) When using special information between proxies in the FP
(2) The FP
なお、上記の(1)と(2)は、いずれを先に行ってもよいし、並行して行ってもよい。 Note that either of (1) and (2) may be performed first or in parallel.
ところで、ステップS14では、メッセージにフィンガープリントが記述されている。しかし、ステップS17では、メッセージにフィンガープリントが記述されている場合に、該メッセージからフィンガープリントを得る方法と、メッセージにフィンガープリントが記述されてない場合に、リプライデータをもとにハッシュ関数等によってフィンガープリントの値を計算する方法とがある。なお、メッセージにフィンガープリントが記述されている場合であっても、リプライデータをもとにフィンガープリントの値を計算する方法も可能である。また、ステップS14/ステップS17は、ステップS12とステップS13の間にて行うようにしても構わないし、ステップS17は、ステップS18とステップS19の間にて行うようにしても構わない。 By the way, in step S14, the fingerprint is described in the message. However, in step S17, when a fingerprint is described in the message, a method for obtaining the fingerprint from the message, and when no fingerprint is described in the message, a hash function or the like is used based on the reply data. There is a method of calculating a fingerprint value. Even when the fingerprint is described in the message, a method of calculating the fingerprint value based on the reply data is also possible. Further, step S14 / step S17 may be performed between step S12 and step S13, and step S17 may be performed between step S18 and step S19.
また、ステップS12の判断とステップS13の判断は、同時に行ってもよい。 Further, the determination in step S12 and the determination in step S13 may be performed simultaneously.
なお、クライアント側プロキシ40からサーバ側プロキシ30へリクエストメッセージを転送する際にはフィンガープリント・キャッシュを用いないものとする場合には、サーバ側プロキシ30は、図15に例示するように、クライアント側プロキシ40からリクエストメッセージを受信し(ステップS21)、これをサーバ20へ送信する(ステップS22)、という手順で構わない。同様に、クライアント側プロキシ40は、図16に例示するように、クライアント50からリクエストメッセージを受信し(ステップS23)、これをサーバ側プロキシ30へ送信する(ステップS24)、という手順で構わない。
In the case where the fingerprint cache is not used when the request message is transferred from the
以下では、図17(登録時すなわち非FP圧縮時)および図18(FP圧縮時)を参照しながら、フィンガープリント・キャッシュを利用したデータ転送についてより具体的に説明する。 Hereinafter, data transfer using the fingerprint cache will be described in more detail with reference to FIG. 17 (during registration, that is, non-FP compression) and FIG. 18 (during FP compression).
まず、図17を参照しながら、サーバ側プロキシ30からクライアント側プロキシ40へ、フィンガープリント・キャッシュ登録されていないデータを転送するとともに、フィンガープリント・キャッシュ登録する場合の動作について説明する。
First, with reference to FIG. 17, an operation when transferring data not registered in the fingerprint cache from the
(1)クライアント50上のブラウザ等は、例えば“/A.cgi”というURLでサーバ20に、POSTメソッドのリクエストメッセージを出したとする。サーバ20へのリクエストメッセージは、まず、クライアント側プロキシ40に送られるように、ブラウザ等を設定しておく。
(1) It is assumed that the browser or the like on the client 50 issues a POST method request message to the
(2)クライアント50からリクエストメッセージを受け取ったクライアント側プロキシ40は、そのリクエストメッセージをサーバ側プロキシ30に転送する。
(2) The client-
(3)リクエストメッセージを受け取ったサーバ側プロキシ30は、そのリクエストメッセージをサーバ50へ転送する。
(3) The server-
(4)サーバ20は、該リクエストメッセージに対する処理を行った後、サーバ側プロキシ30に、そのリプライメッセージを送り返す。
(4) After processing the request message, the
(5)リプライメッセージを受け取ったサーバ側プロキシ30は、まず、受信リプライメッセージの持つリプライデータのフィンガープリントを計算し、そのフィンガープリント名を持ったデータがフィンガープリント・キャッシュ34に入っているかどうかを調べる。入っていなければ、初めてのデータ(一旦フィンガープリント・キャッシュ登録されたものがその後に削除あるいは無効化されることがある構成の場合に、一旦フィンガープリント・キャッシュ登録されたが削除あるいは無効化され、その後において初めてである場合を含む)であるので、そのデータをフィンガープリントを名前としてフィンガープリント・キャッシュ34に入れる(登録する)。
(5) The server-
(6)サーバ側プロキシ30は、リプライメッセージをクライアント側プロキシ40に転送する。なお、前述したように、リプライデータから計算したフィンガープリントの値を、リプライヘッダ等に入れて送ると、クライアント側プロキシ40で再度フィンガープリントを計算する手間を省くことが出来る。
(6) The
(7)リプライメッセージを受け取ったクライアント側プロキシ40は、初めてのデータであるので、リプライデータをフィンガープリント・キャッシュ44に登録する。なお、前述したように、リプライデータからフィンガープリントを計算するか、あるいはサーバ側プロキシがリプライヘッダ等に入れたフィンガープリントを取り出し、これを名前として入れる。
(7) Since the client-
(8)クライアント側プロキシ40は、(リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ30とクライアント側プロキシ40との間だけで使用される情報が存在する構成の場合には、これを削除した後に、)リプライメッセージを、クライアント50(上で動作するブラウザ等)へ送り返す。
(8) The client-
なお、サーバ側プロキシ30において、上記の(5)のフィンガープリント・キャッシュ登録は、(6)の動作の後に行っても構わない。また、クライアント側プロキシ40において、(7)のフィンガープリント・キャッシュ登録は、(8)の動作の後に行っても構わない。
The server-
次に、図18を参照しながら、図17の動作が行われてキャッシュ登録されているデータを、サーバ側プロキシ30からクライアント側プロキシ40へ転送する場合の動作について説明する。
Next, with reference to FIG. 18, an operation in the case of transferring the data registered in the cache by performing the operation of FIG. 17 from the
(1)〜(4)は、図17を参照して説明した動作における(1)〜(4)と同様である。 (1) to (4) are the same as (1) to (4) in the operation described with reference to FIG.
(5)サーバ50からリプライメッセージを受け取ったサーバ側プロキシ40は、まず、受信リプライメッセージの持つリプライデータのフィンガープリントを計算し、そのフィンガープリント名を持ったデータがフィンガープリント・キャッシュ34に入っているかどうかを調べる。入っていれば、過去に送ったことのあるデータ(フィンガープリント・キャッシュ登録されているデータ)なので、(前述したように例えばフィンガープリントの値をリプライヘッダに入れ且つリプライボディを空にするなどして)リプライボディのデータをフィンガープリントで置き換える。
(5) Upon receiving the reply message from the server 50, the server-
(6)サーバ側プロキシ30は、リプライボディをフィンガープリントで置き換えたリプライメッセージをクライアント側プロキシ40に転送する。
(6) The
(7)リプライメッセージを受け取ったクライアント側プロキシ40は、リプライデータがフィンガープリントで置き換えられていることを検出し、(前述したように例えばリプライヘッダなどにて)指定されたフィンガープリントを使ってフィンガープリント・キャッシュ44から対応するデータを取り出し、これをリプライボディに入れる。
(7) Upon receiving the reply message, the client-
(8)そして、クライアント側プロキシ30は、(リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ30とクライアント側プロキシ40との間だけで使用される情報が存在する構成の場合には、これを削除した後に、)リプライメッセージを、クライアント(上で動作するブラウザ等)へ送り返す。
(8) Then, the client-side proxy 30 (in the case of a configuration in which information used only between the server-
ところで、サーバ側プロキシ30およびクライアント側プロキシ40のフィンガープリント・キャッシュは、その容量に上限があるため、所定のアルゴリズムに従いガーベジコレクションを行って、例えば古いデータや使いそうに無いデータを消して行くのが好ましい。
By the way, since the fingerprint caches of the
ただし、このようにすると、サーバ側プロキシ30のフィンガープリント・キャッシュ34は持っていてもクライアント側プロキシ40のフィンガープリント・キャッシュ44では既に消されてしまっているデータが発生し得ることになるので、上記の(7)で、クライアント側プロキシ40において、フィンガープリントをもとにしてフィンガープリント・キャッシュ44からリプライデータを置き換えるべきデータを取り出そうとしたが、フィンガープリント・キャッシュ44に該当するフィンガープリントとデータの組が存在しない場合がある。このような場合には、例えば、クライアント側プロキシ40は、サーバ側プロキシ30に対して、指定したフィンガープリントのデータを送るように依頼し、依頼されたサーバ側プロキシ30は、指定されたフィンガープリントのデータをフィンガープリント・キャッシュ34から取り出して送り返すような仕組みを設ければよい。
However, if this is done, data that has already been deleted in the
なお、逆に、サーバ側プロキシ30のフィンガープリント・キャッシュ34では既に消されてしまっているがクライアント側プロキシ40のフィンガープリント・キャッシュ44はまだ持っていてるデータが存在する場合には、図17を参照して説明した動作における(7)で、クライアント側プロキシ40において、フィンガープリント/リプライデータをフィンガープリント・キャッシュ44に登録する際に、その時点で登録されていたフィンガープリント/リプライデータに対して上書きしてもよい。
Conversely, if there is data already deleted in the
図18を参照して説明した動作における(5)で、サーバ側プロキシ30において、リプライデータのフィンガープリントを求め、該フィンガープリントがフィンガープリント・キャッシュ34に入っていれば、当該リプライデータと同じデータが該フィンガープリントと組になってフィンガープリント・キャッシュ34に入っているものとみなして処理している。実用上、異なるデータから同じフィンガープリントが生成されないことを前提にすれば、この方法で十分であるが、非常に小さな確率で異なるデータのフィンガープリントが偶々同じ値になってしまった場合に生じるエラーを取り除くようにする方法もある。この場合には、リプライデータから求めたフィンガープリントがフィンガープリント・キャッシュ34に入っているときに、該フィンガープリントと組になってフィンガープリント・キャッシュ34に入っているデータと、当該プライデータとを比較して、同じか否かを判断するようにすればよい。このとき、もしフィンガープリントは同じであるが内容が異なるデータが登録されていると判断された場合の処理は、以下に例示するような方法が考えられる。
・そのフィンガープリントは以降使用しないものとする(そのフィンガープリントを与えるデータは以後キャッシュされないことになる)。
・先に登録されているフィンガープリント/データを優先する(登録中のフィンガープリントと同じ値のフィンガープリントを与える他のデータは、その登録中はキャッシュされないことになる)。
・現在登録対象となっているフィンガープリント/データを優先する(登録中のフィンガープリント/データは、同じ値のフィンガープリントを与える他のデータによって次々と更新されていくことになる)。
In (5) in the operation described with reference to FIG. 18, the server-
The fingerprint is not used anymore (the data giving the fingerprint will not be cached thereafter).
Prioritize the previously registered fingerprint / data (other data giving the same fingerprint value as the fingerprint being registered will not be cached during the registration).
Prioritize the fingerprint / data that is currently registered (the fingerprint / data being registered will be updated one after another by other data giving the same value fingerprint).
ところで、本実施形態のサーバ側プロキシ30あるいはクライアント側プロキシ40に、後述するURLとフィンガープリントとの対応テーブル(URL・FPテーブル)を設け、これとフィンガープリント・キャッシュとを併用することで、プロキシサーバの共有キャッシュの動作をも行うようにすることができる。この機能は、個々のサーバ側プロキシ30毎に、また個々のクライアント側プロキシ40毎に、設けるか否かを定めることができる。
By the way, the server-
まず、上記機能を設けたクライアント側プロキシ40について説明する。
First, the
図19に、この場合のクライアント側プロキシ40の構成例を示す。このクライアント側プロキシ40は、図12の構成・機能に加えて、更に過去にアクセスしたURLと、そのリプライデータのフィンガープリントとの対応を保持するURL・フィンガープリント・テーブル(URL・FPテーブル)45と、URLキャッシュ処理部424とを備えている。
FIG. 19 shows a configuration example of the
なお、URL・FPテーブル45には、URLおよびフィンガープリント以外に、そのURLでアクセスしたときにリプライヘッダに入れられて来たMIMEタイプや、有効期間の判定に使うためのタイムスタンプなどの情報も併せて記録する。また、URL・FPテーブル45には、従来の共有キャッシュがキャッシュできる場合にのみ必要な情報を記録する。 In addition to the URL and fingerprint, the URL / FP table 45 also includes information such as the MIME type entered in the reply header when accessed with the URL, and a time stamp used to determine the validity period. Also record. The URL / FP table 45 records information necessary only when the conventional shared cache can be cached.
図20に、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送する際のクライアント側プロキシ40の処理手順の一例を示す。
FIG. 20 shows an example of the processing procedure of the
なお、この場合の処理手順は、図14の手順のステップS16およびS19の後に追加される以外は、図14の手順と同じであり、図20では、図14の手順のステップS16およびS19より後の処理手順の部分を示してある。ここでは、図14で説明した手順に追加する部分を中心に説明する。 The processing procedure in this case is the same as the procedure in FIG. 14 except that it is added after steps S16 and S19 in the procedure in FIG. 14, and in FIG. 20, after steps S16 and S19 in the procedure in FIG. The part of the processing procedure is shown. Here, the description will focus on the part added to the procedure described in FIG.
クライアント側プロキシ40は、送信部43により、クライアント50にリプライメッセージを送信(ステップS16またはS18)した後、URLキャッシュ処理部424にて、該リプライメッセージがキャッシュ対象のものであるか否か調べ、判断する(ステップS27)。キャッシュ対象であると判断されたならば、URLキャッシュ処理部424にて、URLとフィンガープリントとリプライヘッダを構成するのに必要な情報等を対応付けて(URLをキーにして)をURL・FPテーブル45に登録する(ステップS28)。キャッシュ対象でないと判断されたならば、何もしない。
The client-
なお、ステップS27の判断およびステップS28のURL・FPテーブルへの登録は、ステップS13とステップS16あるいはS19の間にて行うようにしても構わない。 The determination in step S27 and the registration in the URL / FP table in step S28 may be performed between step S13 and step S16 or S19.
なお、登録時の受信リプライメッセージがキャッシュ対象のものであるか否かの判断方法は、従来の登録時の手法と同様で構わない(例えば、GETメソッドのリプライデータであって、かつ、そのヘッダにキャッシュ不可を示す情報が記述されていないものをキャッシュ対象とする等)。 Note that the method for determining whether or not the received reply message at the time of registration is a cache target may be the same as the conventional method at the time of registration (for example, the reply data of the GET method and its header) That are not described as information that cannot be cached).
次に、図21に、クライアント50から受信したリクエストメッセージをクライアント側プロキシ40からサーバ側プロキシ30へ転送する際のクライアント側プロキシ40におけるプロキシサーバの共有キャッシュの動作に関する処理手順の一例を示す。
Next, FIG. 21 shows an example of a processing procedure related to the operation of the shared cache of the proxy server in the
クライアント側プロキシ40は、受信部41により、クライアント50からリクエストメッセージを受信する(ステップS31)。
The
URLキャッシュ処理部424は、リクエストメッセージに対するリプライメッセージがキャッシュ対象のものであるか否か調べ、判断する(ステップS32)。なお、応答時のキャッシュ対象か否かの判断方法は、従来の応答時の手法と同様で構わない(例えば、受信リクエストメッセージがGETメソッドのものであるか否か)。
The URL
リクエストデータがキャッシュ対象外のものと判断されたならば(ステップS32)、受信したリクエストメッセージを送信部43からサーバ側プロキシ30へ転送する(ステップS38)。
If it is determined that the request data is not cacheable (step S32), the received request message is transferred from the
ステップS32にて該リクエストメッセージに対するリプライメッセージがキャッシュ対象のものであると判断されたならば、URLキャッシュ処理部424は、さらに、該リクエストメッセージに指定されているURLを取り出し(ステップS33)、そのURLをキーとしてURL・FPテーブル45を検索する(ステップS34)。
If it is determined in step S32 that the reply message for the request message is to be cached, the URL
そのURLに対応するリプライデータのフィンガープリントがキャッシュされていなければ(ステップS35)、受信したリクエストメッセージを送信部43からサーバ側プロキシ30へ転送する(ステップS38)。このとき、現在保持しているデータのタイムスタンプをリクエストメッセージのIf−Modified−Sinceヘッダに記入してサーバ側プロキシ30へ転送し、サーバ側プロキシ30から現在保持しているデータが有効であるとのリプライメッセージを受け取ると、ステップS37へ行くように実施することもできる。
If the fingerprint of the reply data corresponding to the URL is not cached (step S35), the received request message is transferred from the
また、そのURLに対応するリプライデータのフィンガープリントが登録されていても(ステップS35)、併せて保持されている有効期間の判定のための情報に基づいてそのデータが無効になっていると判断されれば(ステップS36)、受信したリクエストメッセージを送信部43からサーバ側プロキシ30へ転送する(ステップS38)。
Further, even if the fingerprint of the reply data corresponding to the URL is registered (step S35), it is determined that the data is invalid based on the information for determining the validity period held together. If so (step S36), the received request message is transferred from the
一方、そのURLに対応するリプライデータのフィンガープリントが登録されており(ステップS35)、かつ、併せて保持されている有効期間の判定のための情報に基づいてそのデータが有効であると判断されれば(ステップS36)、URLキャッシュ処理部424は、URL・FPテーブル45からリプライデータを構成するのに必要な情報を得るとともに、当該URLに対応するリプライデータのフィンガープリントをキーとしてフィンガープリント・キャッシュ44を検索してリプライデータを取得し、それらをもとにリプライメッセージを生成して、これを送信部43からクライアント50へ転送する(ステップS37)。
On the other hand, the fingerprint of the reply data corresponding to the URL is registered (step S35), and it is determined that the data is valid based on the information for determining the validity period held together. Then, the URL
以下では、図22(応答時)を参照しながら、共有キャッシュの動作についてより具体的に説明する。 Hereinafter, the operation of the shared cache will be described more specifically with reference to FIG. 22 (during response).
(1)クライアント50上のブラウザ等は、例えば“/C.html”というURLでサーバ20に、GETメソッドのリクエストメッセージを出したとする。
(1) It is assumed that the browser or the like on the client 50 issues a GET method request message to the
(2)新しいURLでリクエストが来たときに、そのURLがURL・FPテーブル45に載っていれば、従来の共有キャッシュと同様に有効期間の判定を行い、有効と判断できれば、そのURLに対応するフィンガープリントをURL・FPテーブル45を引いて求め、それを名前とするデータをフィンガープリント・キャッシュ44から取り出してリプライデータとし、さらに、URL・FPテーブル45からMIMEタイプ等のリプライヘッダを構成するのに必要な情報を取り出してリプライヘッダを作成する。
(2) When a request is received with a new URL, if the URL is listed in the URL / FP table 45, the validity period is determined in the same manner as in the conventional shared cache. The URL / FP table 45 is retrieved from the fingerprint / cache table 44 and the data having the name is extracted from the
(3)作成したリプライメッセージを、クライアント20(上で動作するブラウザ等)へ送り返す。 (3) The created reply message is sent back to the client 20 (such as a browser operating on the client 20).
なお、キャッシュの内容が指定した時間以降に更新されている場合にのみデータを送ることを依頼するIf−Modified−Sinceヘッダを持ったリクエストメッセージの場合も、まずURL・FPテーブルを参照して更新されていないことが判断できれば、そこでリプライメッセージを作成して返し、そうでなければサーバまで再びIf−Modified−Sinceの情報を書き直して聞きに行くように実施することもできる。 Even in the case of a request message having an If-Modified-Since header that requests to send data only when the contents of the cache have been updated after the specified time, the update is first made with reference to the URL / FP table. If it can be determined that it has not been performed, a reply message is created and returned, and if not, the information of If-Modified-Since can be rewritten to the server again to go to listen.
次に、キャッシュ機能を設けたサーバ側プロキシ30について説明する。
Next, the
上記ではクライアント側プロキシ40のキャッシュ機能について説明したが、サーバ側プロキシ30も同様に実施可能である。
Although the cache function of the client-
この場合、クライアント側プロキシ40に対するメッセージ転送元のクライアント50とメッセージ転送先のサーバ側プロキシ30が、サーバ側プロキシ30に対してはそれぞれクライアント側プロキシ40(転送元)とサーバ20(転送先)になり、キャッシュに関係する構成・手順は同様である。
In this case, the message transfer source client 50 and the message transfer destination
図23に、この場合のサーバ側プロキシ30の構成例を示す。このサーバ側プロキシ30は、図11の構成・機能に加えて、更に過去にアクセスしたURLと、そのリプライデータのフィンガープリントとの対応を保持するURL・フィンガープリント・テーブル(URL・FPテーブル)35と、URLキャッシュ処理部324とを備えている。
FIG. 23 shows a configuration example of the
図24に、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送する際のサーバ側プロキシ30の処理手順の一例を示す。
FIG. 24 shows an example of the processing procedure of the
なお、この場合の処理手順は、図13の手順のステップS6およびS8の後に追加される以外は、図13の手順と同じであり、図24では、図13の手順のステップS6およびS8より後の処理手順の部分を示してある。ここでは、図13で説明した手順と相違する部分を中心に説明する。 The processing procedure in this case is the same as the procedure in FIG. 13 except that it is added after steps S6 and S8 in the procedure in FIG. 13, and in FIG. 24, after steps S6 and S8 in the procedure in FIG. The part of the processing procedure is shown. Here, the description will focus on parts that are different from the procedure described in FIG.
サーバ側プロキシ30は、送信部33により、クライアント側プロキシ40にリプライメッセージを送信(ステップS6またはS8)した後、URLキャッシュ処理部324にて、該リプライメッセージのリプライデータがキャッシュ対象のものであるか否か調べ、判断する(ステップS39−2)。キャッシュ対象であると判断されたならば、URLキャッシュ処理部324にて、URLとフィンガープリントとリプライヘッダを構成するのに必要な情報等を対応付けて(URLをキーにして)をURL・FPテーブル35に登録する(ステップS39−3)。キャッシュ対象でないと判断されたならば、何もしない。
After the server-
もちろん、前述と同様に、この手順も種々変形することが可能である。 Of course, as described above, this procedure can be variously modified.
図25に、クライアント側プロキシ40から受信したリクエストメッセージをサーバ側プロキシ30からサーバ20へ転送する際のサーバ側プロキシ30におけるプロキシサーバの共有キャッシュの動作に関する処理手順の一例を示す。
FIG. 25 shows an example of a processing procedure related to the operation of the shared cache of the proxy server in the
この場合の処理手順は、基本的には図21の手順と同様である。なお、図21のS37ではリプライデータを作成してクライアント50へ転送するが、これに対応する図25のS47ではFP圧縮時のフォーマット(例えば図8(b)等)でリプライデータを作成してクライアント側プロキシ40へ転送することになる。
The processing procedure in this case is basically the same as the procedure in FIG. In S37 of FIG. 21, reply data is created and transferred to the client 50. In S47 of FIG. 25 corresponding to this, reply data is created in a format (for example, FIG. 8B) at the time of FP compression. It is transferred to the
このように、サーバ側プロキシにもURL・FPテーブル表を持ってキャッシュの処理をする構成は、一つのサーバ側プロキシが複数のクライアント側プロキシから使われているときに有効に働く。すなわち、あるクライアント側プロキシから要求のあったキャッシュ可能なデータが既に他のクライアント側プロキシによってアクセスされている場合には、サーバ側プロキシにもキャッシュされているので、そのデータを送り返すだけで処理が完了する。 As described above, the configuration in which the server side proxy also has the URL / FP table table to perform the cache processing works effectively when one server side proxy is used by a plurality of client side proxies. In other words, if cacheable data requested by a client-side proxy is already being accessed by another client-side proxy, it is also cached by the server-side proxy. Complete.
なお、以上では、URL・FPテーブル表をフィンガープリント・キャッシュとは別途に設ける場合について説明したが、URL・FPテーブル表をフィンガープリント・キャッシュと一体化して構成することも可能である。 In the above description, the URL / FP table table is provided separately from the fingerprint cache. However, the URL / FP table table may be integrated with the fingerprint cache.
さて、これまで説明した例では、サーバ側プロキシ30からクライアント側プロキシ40へリプライデータを転送するときに、該リプライデータがフィンガープリント・キャッシュに登録されているデータと同じものである場合には、該リプライデータに代えて、対応するフィンガープリントを転送することで、ネットワークのトラフィックを軽減しているが、FP圧縮は、クライアント側プロキシ40からサーバ側プロキシ30へリクエストデータを転送する場合についてさらに適用することが可能である。なお、FP圧縮を、クライアント側プロキシ240からサーバ側プロキシ230へリクエストデータを転送する場合についてのみ適用することも可能である。
In the example described so far, when the reply data is transferred from the
また、FP圧縮を該リクエストデータ転送のみに適用した場合、FP圧縮を該リプライデータ転送のみに適用した場合、FP圧縮を該リクエストデータ転送および該リプライデータ転送に適用した場合のいずれにおいても、リクエストメッセージが指定するURLに対応するリプライデータに対する共用キャッシュ機能に関する構成をクライアント側プロキシのみに設けることも、サーバ側プロキシのみに設けることも、両プロキシに設けることも可能である。 In addition, when FP compression is applied only to the request data transfer, FP compression is applied only to the reply data transfer, or FP compression is applied to the request data transfer and the reply data transfer. The configuration related to the shared cache function for the reply data corresponding to the URL specified by the message can be provided only in the client side proxy, only in the server side proxy, or in both proxies.
FP圧縮をクライアント側プロキシ40からサーバ側プロキシ30へのリクエストデータ転送に適用する場合、すでに説明したリプライデータに対するサーバ側プロキシ30とクライアント側プロキシ40との役割を逆にすればよいので、FP圧縮を両データ転送に適用する場合には、サーバ側プロキシ30は図11の構成に加えて、更に処理部32にフィンガープリント解凍処理部を備え、クライアント側プロキシ40は図12の構成に加えて、更に処理部42にフィンガープリント圧縮処理部を備えればよい。
When FP compression is applied to request data transfer from the
なお、いずれのプロキシにおいても、フィンガープリント圧縮処理部とフィンガープリント解凍処理部とを併せて、フィンガープリント(FP)圧縮・解凍処理部としてもよい。 In any proxy, the fingerprint compression processing unit and the fingerprint decompression processing unit may be combined into a fingerprint (FP) compression / decompression processing unit.
また、サーバ側プロキシ30やクライアント側プロキシ40は、リプライデータ転送に対するフィンガープリント・キャッシュとは独立にリクエストデータ転送に対するフィンガープリント・キャッシュを設けてもよいが、リプライデータ転送とクエストデータ転送とで同じフィンガープリント・キャッシュを共用してもよい。
The server-
図26に、この場合のプロキシ(サーバ側プロキシ、クライアント側プロキシ)の構成例を示す。 FIG. 26 shows a configuration example of the proxy (server side proxy, client side proxy) in this case.
また、図27に、クライアント側プロキシ40からサーバ側プロキシ30へリクエストメッセージを転送する際のクライアント側プロキシ40の処理手順の一例を示す。
FIG. 27 shows an example of a processing procedure of the
クライアント側プロキシ40は、受信部41により、クライアント50からリクエストメッセージを受信する(ステップS51)。
The
FP圧縮判定部421は、該リクエストメッセージのリクエストデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS52)。リクエストデータがFP圧縮対象外のものと判断されたならば(ステップS52)、受信したリクエストメッセージを送信部43からサーバ側プロキシ30へ転送する(ステップS59)。
The FP
ステップS52にて該リクエストメッセージのリクエストデータがFP圧縮対象のものであると判断されたならば、FPキャッシュ管理部422にて、該リクエストデータのフィンガープリントの値を計算し(ステップS53)、該フィンガープリントの値をキーとしてフィンガープリント・キャッシュ44を検索する(ステップS54)。
If it is determined in step S52 that the request data of the request message is for FP compression, the FP
そして、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ44に登録されていたならば(ステップS55)、FP圧縮・解凍処理部425にて、受信したリクエストメッセージを、該フィンガープリントの値を用いてFP圧縮時のフォーマットにして(例えば図8(b)等)、送信部43から、サーバ側プロキシ30へ送信する(ステップS56)。
If the set of the fingerprint value and the corresponding data is registered in the fingerprint cache 44 (step S55), the FP compression /
一方、ステップS54の検索の結果、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ44に登録されていなかったならば(ステップS55)、次の2つの作業を行う。
(1)FP圧縮・解凍処理部425にて、受信したリクエストメッセージを、(必要に応じて該フィンガープリントの値を用いて)非FP圧縮時のフォーマットにして(例えば図8(a)等)、送信部43から、サーバ側プロキシ30へ送信する(ステップS57)。
(2)FPキャッシュ管理部422にて、該フィンガープリントの値と、該リクエストデータとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ44に登録する(ステップS58)。
On the other hand, as a result of the search in step S54, if the set of the fingerprint value and the corresponding data is not registered in the fingerprint cache 44 (step S55), the following two operations are performed.
(1) In the FP compression /
(2) The FP
なお、上記の(1)と(2)は、いずれを先に行ってもよいし、並行して行ってもよい。 Note that either of (1) and (2) may be performed first or in parallel.
次に、図28に、クライアント側プロキシ40からサーバ側プロキシ30へリクエストメッセージを転送する際のサーバ側プロキシ30の処理手順の一例を示す。
Next, FIG. 28 shows an example of a processing procedure of the
サーバ側プロキシ30は、受信部31により、クライアント側プロキシ40からリクエストメッセージを受信する(ステップS61)。
The
FP圧縮判定部321は、該リクエストメッセージのリクエストデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS62)。リクエストデータがFP圧縮対象外のものと判断されたならば(ステップS62)、受信したリクエストメッセージを送信部33からサーバ20へ転送する(ステップS70)。
The FP
ステップS62にて該リクエストメッセージのリクエストデータがFP圧縮対象のものであると判断されたならば、FP圧縮判定部321は、さらに、リクエストデータがFP圧縮されているか否か調べ、判断する(ステップS63)。
If it is determined in step S62 that the request data of the request message is subject to FP compression, the FP
ステップS63にて該リクエストメッセージのリクエストデータがFP圧縮されているものと判断されたならば(例えば図8(b)等の場合)、FPキャッシュ管理部322にて、該リクエストデータのフィンガープリントの値を求め(ステップS64)、該フィンガープリントの値をキーとしてフィンガープリント・キャッシュ34を検索する(ステップS65)。
If it is determined in step S63 that the request data of the request message is FP-compressed (for example, in the case of FIG. 8B), the FP
そして、FP圧縮・解凍処理部325にて、受信リプライメッセージに対して、フィンガープリント・キャッシュ34から検索された該フィンガープリントの値に対応するデータを付加し、プロキシ間で特別の情報を使用する場合には該情報を削除した後に、これを送信部33からサーバ20へ送信する(ステップS66)。
Then, the FP compression /
一方、ステップS63にて該リクエストメッセージのリクエストデータがFP圧縮されていないものと判断されたならば(例えば図8(a)等の場合)、次の2つの作業を行う。
(1)FP圧縮・解凍処理部325にて、プロキシ間で特別の情報を使用する場合には受信リプライメッセージから該情報を削除した後に、これを送信部33からサーバ20へ送信する(ステップS68)。
(2)FPキャッシュ管理部322にて、該リクエストデータのフィンガープリントの値を求め(ステップS67)、該フィンガープリントの値と、該リクエストデータとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ34に登録する(ステップS69)。
On the other hand, if it is determined in step S63 that the request data of the request message is not FP compressed (for example, in the case of FIG. 8A), the following two operations are performed.
(1) When using special information between proxies in the FP compression /
(2) The FP
なお、上記の(1)と(2)は、いずれを先に行ってもよいし、並行して行ってもよい。 Note that either of (1) and (2) may be performed first or in parallel.
前述と同様、ステップS67では、メッセージにフィンガープリントが記述されている場合に、該メッセージからフィンガープリントを得る方法と、メッセージにフィンガープリントが記述されてない場合に、リクエストデータをもとにハッシュ関数等によってフィンガープリントの値を計算する方法とがある。なお、メッセージにフィンガープリントが記述されている場合であっても、リクエストデータをもとにフィンガープリントの値を計算する方法も可能である。また、ステップS64/ステップS67は、ステップS62とステップS63の間にて行うようにしても構わないし、ステップS67は、ステップS68とステップS69の間にて行うようにしても構わない。 As described above, in step S67, when a fingerprint is described in the message, a method for obtaining the fingerprint from the message, and when no fingerprint is described in the message, a hash function is obtained based on the request data. There is a method of calculating a fingerprint value by, for example. Even when the fingerprint is described in the message, a method of calculating the fingerprint value based on the request data is also possible. Moreover, step S64 / step S67 may be performed between step S62 and step S63, and step S67 may be performed between step S68 and step S69.
また、ステップS62の判断とステップS63の判断は、同時に行ってもよい。 Further, the determination in step S62 and the determination in step S63 may be performed simultaneously.
このようにリクエストデータに対してもフィンガープリントで置き換えられるように実施すると、例えば、同じファイルを何度もサーバにアップロードする際ときには、2回目以降フィンガープリントを送るだけで済むので、ネットワークのトラフィックを軽減させることができる。 If the request data is replaced with the fingerprint in this way, for example, when uploading the same file to the server many times, it is only necessary to send the fingerprint for the second and subsequent times. It can be reduced.
もちろん、この場合に、前述したクライアントが送信したリクエストメッセージが指定するURLに対応するリプライデータに対する共用キャッシュ機能に関する構成をサーバ側プロキシやクライアント側プロキシに対して併せて実施することも可能である。この場合のプロキシ(サーバ側プロキシ、クライアント側プロキシ)の構成例を図29に示す。この場合のサーバ側プロキシやクライアント側プロキシの動作は既に説明したものと同様である。 Of course, in this case, the above-described configuration related to the shared cache function for the reply data corresponding to the URL specified by the request message transmitted by the client can be implemented for the server-side proxy and the client-side proxy. A configuration example of the proxy (server side proxy, client side proxy) in this case is shown in FIG. The operations of the server side proxy and client side proxy in this case are the same as those already described.
なお、本実施形態では、クライアント側プロキシからサーバ側プロキシへ転送されるリクエストメッセージや、サーバ側プロキシからクライアント側プロキシへ転送されるリプライメッセージを対象とする場合について示してきたが、あるプロキシに、リクエストメッセージを送信する装置とリプライメッセージを送信する装置との両方、あるいはリクエストメッセージおよびリプライメッセージの両方を送信する装置が接続されている場合には、もちろん、クライアント側プロキシからサーバ側プロキシへ転送されるリクエストメッセージおよびリプライメッセージならびにサーバ側プロキシからクライアント側プロキシへ転送されるリクエストメッセージおよびリプライメッセージを対象とすることや、クライアント側プロキシからサーバ側プロキシへ転送されるリクエストメッセージおよびサーバ側プロキシからクライアント側プロキシへ転送されるリクエストメッセージのみ対象とすることなども可能である。 In the present embodiment, the request message transferred from the client-side proxy to the server-side proxy and the reply message transferred from the server-side proxy to the client-side proxy have been shown. If both the device that sends the request message and the device that sends the reply message, or the device that sends both the request message and the reply message are connected, of course, it is transferred from the client side proxy to the server side proxy. Request messages and reply messages, and request messages and reply messages that are forwarded from the server-side proxy to the client-side proxy. It is also such that the target only request message transmitted from the request message and the server side proxy is transferred to the side proxy to the client side proxy.
ところで、これまでは1つのサーバ側プロキシと1つのクライアント側プロキシとの間の1対1の通信に着目して説明してきたが、本発明の適用範囲はもちろんサーバ側プロキシとクライアント側プロキシとが1対1で通信するシステムには限定されるものではないく、サーバ側プロキシとクライアント側プロキシとが1対多で通信するシステム、サーバ側プロキシとクライアント側プロキシとが多対1で通信するシステム、あるいはサーバ側プロキシとクライアント側プロキシとが多対多で通信するシステムにも適用可能である。例えば、図30のように、複数のユーザオフィスに設置したクライアント側プロキシや、モバイルユーザが利用する個人用プロキシなどがサーバ側プロキシを共有して使用するように実施することも可能である。 By the way, the description has so far been focused on the one-to-one communication between one server-side proxy and one client-side proxy. Of course, the scope of the present invention is not limited to the server-side proxy and the client-side proxy. The system is not limited to a one-to-one communication system, but a server-side proxy and a client-side proxy communicate one-to-many, and a server-side proxy and a client-side proxy communicate many-to-one. Alternatively, the present invention can be applied to a system in which a server-side proxy and a client-side proxy communicate many-to-many. For example, as shown in FIG. 30, a client-side proxy installed in a plurality of user offices, a personal proxy used by a mobile user, or the like can be implemented so as to share and use the server-side proxy.
また、これまでは、1つのメッセージに含まれるデータ全体をFP圧縮する対象(フィンガープリント・キャッシュに登録する対象)にしていたが、例えば、1つのメッセージに含まれるデータが所定の単位のデータの集合で構成される場合には、1つのメッセージに含まれる一部の単位データのみFP圧縮する対象(フィンガープリント・キャッシュに登録する対象)にする構成も可能である。 In the past, the entire data included in one message was subject to FP compression (target to be registered in the fingerprint cache). For example, the data included in one message is the data of a predetermined unit. In the case of being configured as a set, a configuration in which only a part of unit data included in one message is subject to FP compression (target to be registered in the fingerprint cache) is also possible.
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
Each function described above can be realized as software.
The present embodiment can also be implemented as a program for causing a computer to execute predetermined means (or for causing a computer to function as predetermined means, or for causing a computer to realize predetermined functions), The present invention can also be implemented as a computer-readable recording medium on which the program is recorded.
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。 Note that the configuration illustrated in the embodiment of the present invention is an example, and is not intended to exclude other configurations, and a part of the illustrated configuration may be replaced with another or one of the illustrated configurations. Other configurations obtained by omitting a part, adding another function or element to the illustrated configuration, or combining them are also possible. Also, another configuration that is logically equivalent to the exemplified configuration, another configuration that includes a portion that is logically equivalent to the exemplified configuration, another configuration that is logically equivalent to the main part of the illustrated configuration, and the like are possible. is there. Further, another configuration that achieves the same or similar purpose as the illustrated configuration, another configuration that achieves the same or similar effect as the illustrated configuration, and the like are possible. In addition, various variations of various components illustrated in the embodiment of the present invention can be implemented in appropriate combination. Further, the embodiment of the present invention is an invention of an invention as an individual device, an invention of two or more related devices, an invention of the entire system, an invention of components within an individual device, or a method corresponding thereto. The invention includes inventions according to various viewpoints, stages, concepts, or categories. Therefore, the present invention can be extracted from the contents disclosed in the embodiments of the present invention without being limited to the exemplified configuration.
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。 The present invention is not limited to the embodiment described above, and can be implemented with various modifications within the technical scope thereof.
2…ASPサーバセンター、4…ユーザオフィス、12…ASPサーバセンター内LAN、14…WAN、16…ユーザオフィス内LAN、20…サーバ装置、30…サーバ側プロキシ装置、40…クライアント側プロキシ装置、50…クライアント装置、31,41…受信部、32,42…処理部、33,43…送信部、34,44…フィンガープリント・キャッシュ、35,45…URL・FPテーブル、321,421…FP圧縮判定部、322,422…フィンガープリント・キャッシュ管理部、323…FP圧縮処理部、423…FP解凍処理部、324,424…URLキャッシュ処理部、325,425…FP解凍・解凍処理部
2 ... ASP server center, 4 ... user office, 12 ... ASP server center LAN, 14 ... WAN, 16 ... user office LAN, 20 ... server device, 30 ... server side proxy device, 40 ... client side proxy device, 50 ...
Claims (13)
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、
前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、
この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、
前記クライアント側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段と、
前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信する第2の受信手段と、
この第2の受信手段が受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定する判定手段と、
前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるリプライデータのフィンガープリントを生成するフィンガープリント生成手段と、
前記第2の受信手段が前記圧縮データを受信したと、前記判定手段が判定した場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるリプライデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信する第2の送信手段とを備えたことを特徴とするクライアント側プロキシ装置。 Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; A client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to data, to the client device that is the destination of the reply data,
The server side proxy device is:
First holding means for holding the fingerprint of the reply data in association with the reply data as a first fingerprint cache;
First receiving means for receiving reply data from the server device, which is a response from the server device to request data transmitted from the client device and transferred by the client side proxy device;
When the fingerprint generated based on the reply data received by the first receiving means is held in the first fingerprint cache, it is generated based on the reply data instead of the reply data. When the compressed data including a fingerprint is transmitted to the client-side proxy device as the client device that is the transmission source of the request data, and the fingerprint is not held in the first fingerprint cache, the fingerprint The print data and the reply data are associated with each other and added to the first fingerprint cache, and uncompressed data including the reply data is transmitted to the client side proxy device as the client device that is the transmission source of the request data. First It is those having a signal unit,
The client side proxy device is:
Second holding means for holding the fingerprint of the reply data in association with the reply data as a second fingerprint cache;
Second receiving means for receiving the compressed data or the uncompressed data from the server-side proxy device;
Determining means for determining whether the data received by the second receiving means is the compressed data or the uncompressed data;
A fingerprint generating means for generating a fingerprint of reply data included in the uncompressed data when the determining means determines that the second receiving means has received the uncompressed data;
Reply data held in the second fingerprint cache in association with the fingerprint included in the compressed data when the determination unit determines that the second reception unit has received the compressed data. Based on the reply data included in the uncompressed data when the determination unit determines that the second reception unit has received the uncompressed data. The fingerprint generated by the fingerprint generation means is added to the second fingerprint cache in association with the reply data included in the uncompressed data, and the reply data is added to the client of the request data transmission source. And a second transmission means for transmitting to the apparatus. The client-side proxy device to butterflies.
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、
前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、
この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含み且つ該リプライデータに基づいて生成されたフィンガープリントを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、
前記クライアント側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段と、
前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信する第2の受信手段と、
この第2の受信手段が受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定する判定手段と、
前記第2の受信手段が前記圧縮データを受信したと、前記判定手段が判定した場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるフィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信する第2の送信手段とを備えたことを特徴とするクライアント側プロキシ装置。 Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; A client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to data, to the client device that is the destination of the reply data,
The server side proxy device is:
First holding means for holding a fingerprint of the reply data in association with the reply data as a first fingerprint cache;
First receiving means for receiving reply data from the server device, which is a response from the server device to request data transmitted from the client device and transferred by the client side proxy device;
When the fingerprint generated based on the reply data received by the first receiving means is held in the first fingerprint cache, it is generated based on the reply data instead of the reply data. When the compressed data including a fingerprint is transmitted to the client-side proxy device as the client device that is the transmission source of the request data, and the fingerprint is not held in the first fingerprint cache, the fingerprint The request data source includes uncompressed data that includes the reply data and includes the fingerprint that is generated based on the reply data and that is added to the first fingerprint cache in association with the print and the reply data Of the class It is those having a first transmitting means for transmitting the addressed Ant device wherein the client-side proxy device,
The client side proxy device is:
Second holding means for holding the fingerprint of the reply data in association with the reply data as a second fingerprint cache;
Second receiving means for receiving the compressed data or the uncompressed data from the server-side proxy device;
Determining means for determining whether the data received by the second receiving means is the compressed data or the uncompressed data;
Reply data held in the second fingerprint cache in association with the fingerprint included in the compressed data when the determination unit determines that the second reception unit has received the compressed data. To the client device that is the transmission source of the request data, and when the determination unit determines that the second reception unit has received the uncompressed data, the fingerprint included in the uncompressed data is: Second transmission means for adding to the second fingerprint cache in association with reply data included in the uncompressed data and transmitting the reply data to the client device that is the transmission source of the request data. A client-side proxy device.
前記判定手段は、前記識別情報に基づいて前記判定を行うことを特徴とする請求項1または2に記載のクライアント側プロキシ装置。 The compressed data includes identification information indicating that it is compressed data, and the uncompressed data includes identification information indicating that it is uncompressed data;
The client-side proxy device according to claim 1, wherein the determination unit performs the determination based on the identification information.
前記判定手段は、前記ヘッダに前記フィンガープリントが含まれるか否かに基づいて前記判定を行うことを特徴とする請求項1に記載のクライアント側プロキシ装置。 The compressed data includes the fingerprint in its header, its body is NULL, and the uncompressed data does not include the fingerprint in either its header or body, and the reply data is included in its body. Including
The client-side proxy device according to claim 1, wherein the determination unit performs the determination based on whether the fingerprint is included in the header.
前記判定手段は、前記ボディーがNULLか否かに基づいて前記判定を行うことを特徴とする請求項1または2に記載のクライアント側プロキシ装置。 The compressed data includes the fingerprint in its header, its body is NULL, and the uncompressed data includes the fingerprint in its header and includes the reply data in its body,
The client-side proxy device according to claim 1, wherein the determination unit performs the determination based on whether or not the body is NULL.
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、
前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、
この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、
前記クライアント側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段を有するものであり、
前記クライアント側プロキシ装置のデータ転送方法は、
前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信し、
受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定し、
前記非圧縮データを受信したと判定された場合に、該非圧縮データに含まれるリプライデータのフィンガープリントを生成し、
前記圧縮データを受信したと判定された場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記非圧縮データを受信したと判定された場合に、該非圧縮データに含まれるリプライデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信することを特徴とするデータ転送方法。 Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; A data transfer method for a client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to data, to the client device that is the destination of the reply data. ,
The server side proxy device is:
First holding means for holding the fingerprint of the reply data in association with the reply data as a first fingerprint cache;
First receiving means for receiving reply data from the server device, which is a response from the server device to request data transmitted from the client device and transferred by the client side proxy device;
When the fingerprint generated based on the reply data received by the first receiving means is held in the first fingerprint cache, it is generated based on the reply data instead of the reply data. When the compressed data including a fingerprint is transmitted to the client-side proxy device as the client device that is the transmission source of the request data, and the fingerprint is not held in the first fingerprint cache, the fingerprint The print data and the reply data are associated with each other and added to the first fingerprint cache, and uncompressed data including the reply data is transmitted to the client side proxy device as the client device that is the transmission source of the request data. First It is those having a signal unit,
The client side proxy device is:
A second holding means for holding the fingerprint of the reply data in association with the reply data as a second fingerprint cache;
The data transfer method of the client side proxy device is:
Receiving the compressed data or the uncompressed data from the server-side proxy device;
Determining whether the received data is the compressed data or the uncompressed data;
When it is determined that the uncompressed data is received, a fingerprint of the reply data included in the uncompressed data is generated,
When it is determined that the compressed data has been received, the reply data stored in the second fingerprint cache in association with the fingerprint included in the compressed data is used as the client device that is the transmission source of the request data When it is determined that the uncompressed data is received, the fingerprint generated by the fingerprint generation unit based on the reply data included in the uncompressed data is used as the reply data included in the uncompressed data. A data transfer method comprising: adding to the second fingerprint cache in association with the request data and transmitting the reply data to the client device that is the transmission source of the request data.
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、
前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、
この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含み且つ該リプライデータに基づいて生成されたフィンガープリントを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、
前記クライアント側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段を有するものであり、
前記クライアント側プロキシ装置のデータ転送方法は、
前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信し、
受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定し、
前記圧縮データを受信したと判定された場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記非圧縮データを受信したと判定された場合に、該非圧縮データに含まれるフィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信することを特徴とするデータ転送方法。 Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; A data transfer method for a client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to data, to the client device that is the destination of the reply data. ,
The server side proxy device is:
First retention means for retaining the fingerprint of the reply data as a first fingerprint cache in association with the reply data;
First receiving means for receiving reply data from the server device, which is a response from the server device to request data transmitted from the client device and transferred by the client side proxy device;
When the fingerprint generated based on the reply data received by the first receiving means is held in the first fingerprint cache, it is generated based on the reply data instead of the reply data. When the compressed data including a fingerprint is transmitted to the client-side proxy device as the client device that is the transmission source of the request data, and the fingerprint is not held in the first fingerprint cache, the fingerprint The request data source includes uncompressed data that includes the reply data and includes the fingerprint that is generated based on the reply data and that is added to the first fingerprint cache in association with the print and the reply data Of the class It is those having a first transmitting means for transmitting the addressed Ant device wherein the client-side proxy device,
The client side proxy device is:
A second holding means for holding the fingerprint of the reply data in association with the reply data as a second fingerprint cache;
The data transfer method of the client side proxy device is:
Receiving the compressed data or the uncompressed data from the server-side proxy device;
Determining whether the received data is the compressed data or the uncompressed data;
When it is determined that the compressed data has been received, the reply data stored in the second fingerprint cache in association with the fingerprint included in the compressed data is used as the client device that is the transmission source of the request data When it is determined that the uncompressed data is received, the fingerprint included in the uncompressed data is added to the second fingerprint cache in association with the reply data included in the uncompressed data. And transmitting the reply data to the client device that is the transmission source of the request data.
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、
前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、
この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、
前記プログラムは、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段と、
前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信する第2の受信手段と、
この第2の受信手段が受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定する判定手段と、
前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるリプライデータのフィンガープリントを生成するフィンガープリント生成手段と、
前記第2の受信手段が前記圧縮データを受信したと、前記判定手段が判定した場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるリプライデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信する第2の送信手段とをコンピュータに機能させるためのものであることを特徴とするプログラム。 Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; For causing a computer to function as a client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a reply to data, to the client device that is the destination of the reply data A program,
The server side proxy device is:
First holding means for holding the fingerprint of the reply data as a first fingerprint cache in association with the reply data;
First receiving means for receiving reply data from the server device, which is a response from the server device to request data transmitted from the client device and transferred by the client side proxy device;
When the fingerprint generated based on the reply data received by the first receiving means is held in the first fingerprint cache, the fingerprint is generated based on the reply data instead of the reply data. When the compressed data including a fingerprint is transmitted to the client side proxy device as the client device that is the transmission source of the request data, and the fingerprint is not held in the first fingerprint cache, the fingerprint data A print and the reply data are associated with each other and added to the first fingerprint cache, and uncompressed data including the reply data is transmitted to the client side proxy device as the client device that is the transmission source of the request data. First 1 transmission means, and
The program is
Second holding means for holding the fingerprint of the reply data in association with the reply data as a second fingerprint cache;
Second receiving means for receiving the compressed data or the uncompressed data from the server-side proxy device;
Determining means for determining whether the data received by the second receiving means is the compressed data or the uncompressed data;
A fingerprint generating means for generating a fingerprint of reply data included in the uncompressed data when the determining means determines that the second receiving means has received the uncompressed data;
Reply data held in the second fingerprint cache in association with the fingerprint included in the compressed data when the determination unit determines that the second reception unit has received the compressed data. Based on the reply data included in the uncompressed data when the determination unit determines that the second reception unit has received the uncompressed data. The fingerprint generated by the fingerprint generation means is added to the second fingerprint cache in association with the reply data included in the uncompressed data, and the reply data is added to the client of the request data transmission source. A second transmission means for transmitting to the apparatus; Program characterized in that to function.
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第1のフィンガープリント・キャッシュとして保持するための第1の保持手段と、
前記クライアント装置から送信され前記クライアント側プロキシ装置により転送されるリクエストデータへの前記サーバ装置からの返答であるリプライデータを、該サーバ装置から受信する第1の受信手段と、
この第1の受信手段が受信したリプライデータに基づいて生成したフィンガープリントが前記第1のフィンガープリント・キャッシュに保持されている場合に、該リプライデータの代わりに該リプライデータに基づいて生成されたフィンガープリントを含む圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記第1のフィンガープリント・キャッシュに保持されていない場合に、該フィンガープリントと該リプライデータとを関連付けて前記第1のフィンガープリント・キャッシュに追加しかつ該リプライデータを含み且つ該リプライデータに基づいて生成されたフィンガープリントを含む非圧縮データを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する第1の送信手段とを有するものであり、
前記プログラムは、
前記リプライデータのフィンガープリントを、該リプライデータに関連付けて第2のフィンガープリント・キャッシュとして保持するための第2の保持手段と、
前記圧縮データ又は前記非圧縮データを、前記サーバ側プロキシ装置から受信する第2の受信手段と、
この第2の受信手段が受信したデータが、前記圧縮データであるか又は前記非圧縮データであるかを判定する判定手段と、
前記第2の受信手段が前記圧縮データを受信したと、前記判定手段が判定した場合に、該圧縮データに含まれるフィンガープリントに関連付けて前記第2のフィンガープリント・キャッシュに保持されているリプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信し、前記第2の受信手段が前記非圧縮データを受信したと、前記判定手段が判定した場合に、該非圧縮データに含まれるフィンガープリントを、該非圧縮データに含まれるリプライデータに関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ該リプライデータを前記リクエストデータの送信元の前記クライアント装置へ送信する第2の送信手段とをコンピュータに機能させるためのものであることを特徴とするプログラム。 Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; For causing a computer to function as a client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a reply to data, to the client device that is the destination of the reply data A program,
The server side proxy device is:
First holding means for holding the fingerprint of the reply data in association with the reply data as a first fingerprint cache;
First receiving means for receiving reply data from the server device, which is a response from the server device to request data transmitted from the client device and transferred by the client side proxy device;
When the fingerprint generated based on the reply data received by the first receiving means is held in the first fingerprint cache, the fingerprint is generated based on the reply data instead of the reply data. When the compressed data including a fingerprint is transmitted to the client side proxy device as the client device that is the transmission source of the request data, and the fingerprint is not held in the first fingerprint cache, the fingerprint data The request data source includes uncompressed data that is added to the first fingerprint cache in association with the print data and the reply data, includes the reply data, and includes a fingerprint generated based on the reply data. Of the above A first transmission means for transmitting to the client side proxy device as addressed to the client device,
The program is
Second holding means for holding the fingerprint of the reply data in association with the reply data as a second fingerprint cache;
Second receiving means for receiving the compressed data or the uncompressed data from the server-side proxy device;
Determining means for determining whether the data received by the second receiving means is the compressed data or the uncompressed data;
Reply data held in the second fingerprint cache in association with the fingerprint included in the compressed data when the determination unit determines that the second reception unit has received the compressed data. To the client device that is the transmission source of the request data, and when the determination unit determines that the second reception unit has received the uncompressed data, the fingerprint included in the uncompressed data is: A second transmission means for adding to the second fingerprint cache in association with the reply data included in the uncompressed data and transmitting the reply data to the client device that is the transmission source of the request data; A program characterized in that
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007154496A JP4041157B2 (en) | 2007-06-11 | 2007-06-11 | Client side proxy device, data transfer method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007154496A JP4041157B2 (en) | 2007-06-11 | 2007-06-11 | Client side proxy device, data transfer method and program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001069284A Division JP3983987B2 (en) | 2001-03-12 | 2001-03-12 | Server-side proxy device, data transfer method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007287167A JP2007287167A (en) | 2007-11-01 |
JP4041157B2 true JP4041157B2 (en) | 2008-01-30 |
Family
ID=38758819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007154496A Expired - Fee Related JP4041157B2 (en) | 2007-06-11 | 2007-06-11 | Client side proxy device, data transfer method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4041157B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874793B2 (en) * | 2009-11-30 | 2014-10-28 | Qualcomm Innovation Center, Inc. | Methods and apparatus for improving header compression |
-
2007
- 2007-06-11 JP JP2007154496A patent/JP4041157B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007287167A (en) | 2007-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3990115B2 (en) | Server-side proxy device and program | |
US7636765B2 (en) | Data transfer scheme using caching technique for reducing network load | |
US7383348B2 (en) | Data transfer scheme using caching technique for reducing network load | |
EP1908213B1 (en) | A secure method of synchronizing cache contents of a mobile browser with a server field | |
US8024484B2 (en) | Caching signatures | |
JP3984086B2 (en) | Cache server, data transfer device, and program | |
JP3848209B2 (en) | Data transfer device, data transfer method and program | |
JP4031516B2 (en) | Server side proxy device, client side proxy device, data transfer method and program | |
JP3983987B2 (en) | Server-side proxy device, data transfer method, and program | |
JP4053269B2 (en) | Data transfer apparatus and data transfer method | |
JP3943867B2 (en) | Server-side proxy, data transfer method and program | |
JP4041157B2 (en) | Client side proxy device, data transfer method and program | |
JP3943868B2 (en) | Server-side proxy, data transfer method and program | |
JP2003044346A (en) | Contents providing method and network connecting device | |
JP3913508B2 (en) | Data transfer apparatus and data transfer method | |
JP2003108464A (en) | Device and method for transferring data | |
JP3977601B2 (en) | Server side proxy device, client side proxy device and program | |
JP4157585B2 (en) | Server side proxy device, client side proxy device, data transfer method and program | |
JP4300220B2 (en) | Data transfer apparatus and data transfer method | |
JP3977651B2 (en) | Data transfer method, server side proxy device, client side proxy device and program | |
WO2008034149A2 (en) | Data hosting and dissemination system for mobile devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071108 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131116 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |