JP4157585B2 - Server side proxy device, client side proxy device, data transfer method and program - Google Patents

Server side proxy device, client side proxy device, data transfer method and program Download PDF

Info

Publication number
JP4157585B2
JP4157585B2 JP2007154535A JP2007154535A JP4157585B2 JP 4157585 B2 JP4157585 B2 JP 4157585B2 JP 2007154535 A JP2007154535 A JP 2007154535A JP 2007154535 A JP2007154535 A JP 2007154535A JP 4157585 B2 JP4157585 B2 JP 4157585B2
Authority
JP
Japan
Prior art keywords
data
fingerprint
compression
client
differential
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007154535A
Other languages
Japanese (ja)
Other versions
JP2007293894A (en
Inventor
達徳 金井
英樹 吉田
俊文 關
謙一郎 吉井
英昭 佐藤
隆幸 宮澤
康浩 木村
春彦 外山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007154535A priority Critical patent/JP4157585B2/en
Publication of JP2007293894A publication Critical patent/JP2007293894A/en
Application granted granted Critical
Publication of JP4157585B2 publication Critical patent/JP4157585B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、他の装置のためにデータ転送を行うサーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラムに関する。   The present invention relates to a server-side proxy device, a client-side proxy device, a data transfer method, and a program that perform data transfer for other devices.

ネットワークを介して様々なサービスを提供するサーバと、所望のサービスをサーバに対して要求するクライアントとから構成される、クライアント・サーバ型の情報システムが広く利用されている。特に、インターネット上でHTTPプロトコルを使って通信するWEBサーバとクライアントとからなるWORLD WIDE 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 WORLD WIDE 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 consideration of the above circumstances, and a server-side proxy device, a client-side proxy device having a cache technology / compression technology that can further reduce the load on the network connecting the data transfer devices, It is an object to provide a data transfer method and program.

本発明は、サーバ装置から送信されたデータを受信し、該データをその宛先となるクライアント装置に通ずるクライアント側プロキシ装置へ送信するサーバ側プロキシ装置であって、前記サーバ装置から前記データを受信する受信手段と、この受信手段が受信したデータのフィンガープリントを生成するフィンガープリント生成手段と、前記受信手段が受信した前記データを参照データとして、該参照データに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該参照データに関連付けてフィンガープリント・キャッシュとして保持するための保持手段と、前記受信手段が受信したデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントが、前記フィンガープリント・キャッシュに保持されているか否か判定する第1の判定手段と、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと前記第1の判定手段が判定した場合に、前記受信手段が受信した前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する第2の判定手段と、前記受信手段が前記データを受信した際に、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていると前記第1の判定手段が判定した場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと前記第1の判定手段が判定した場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記第2の判定手段が判定したときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記第2の判定手段が判定したときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する送信手段とを備えたことを特徴とする。   The present invention is a server-side proxy device that receives data transmitted from a server device and transmits the data to a client-side proxy device that communicates with the client device that is the destination, and receives the data from the server device Receiving means; fingerprint generating means for generating a fingerprint of data received by the receiving means; and the data received by the receiving means as reference data generated by the fingerprint generating means based on the reference data Holding means for holding the fingerprint in association with the reference data as a fingerprint cache; and the fingerprint generated by the fingerprint generating means based on data received by the receiving means is the fingerprint ·cache A first determination unit configured to determine whether the fingerprint is held; and the data received by the reception unit when the first determination unit determines that the fingerprint is not stored in the fingerprint cache. For one part or a plurality of parts, a fingerprint associated with reference data including the same content as the part of the reference data held in the fingerprint cache for each part, and In the reference data, compression information consisting of a pair of location information that can identify the location where the same content exists is obtained, and a portion corresponding to the compression information is obtained from the compression information and the data received by the receiving means. Differential compression processing means for generating differential compression expression data including direct designation information indicating the remaining excluded content; For the data amount of the differential compression representation data generated by the differential compression processing means, the compression amount calculated by the data amount of the data that was the source of the differential compression representation data and the data amount of the differential compression representation data A second determination unit that determines whether or not a value indicating the degree is equal to or greater than a reference value; and the fingerprint is held in the fingerprint cache when the reception unit receives the data If the first determination means determines that the fingerprint compression data including the fingerprint is used as the destination client device instead of the original data of the fingerprint as the client side proxy. Before sending to the device and the fingerprint is not held in the fingerprint cache When the first determination means determines, the second determination means determines that the value indicating the degree of compression of the differential compression expression data generated by the differential compression processing means is greater than or equal to the reference value. When the determination is made, the fingerprint and the data that is the source of the fingerprint are associated and added to the fingerprint cache, and the differential compression is used instead of the data that is the source of the differential compression expression data. Differential compression data including representation data is transmitted to the client side proxy device as the destination client device, and the differential compression representation data generated by the differential compression processing means has a value indicating the degree of compression. When the second determination means determines that the reference value is not greater than or equal to the reference value, the fingerprint and the source of the fingerprint Transmitting means for associating the received data with the fingerprint cache and transmitting the uncompressed data including the received data to the client-side proxy device as the destination client device. It is characterized by having.

本発明は、サーバ装置から送信されたデータをサーバ側プロキシ装置を介して受信し、該データをその宛先となるクライアント装置へ送信するクライアント側プロキシ装置であって、前記データを参照データとして、該参照データのフィンガープリントを、該参照データに関連付けてクライアント側フィンガープリント・キャッシュとして保持するための保持手段と、前記サーバ側プロキシ装置から、前記データの代わりに当該データのフィンガープリントを含むフィンガープリント圧縮時データ、当該データの代わりに、該データの一つの部分若しくは複数の部分について、当該部分ごとに指定された、当該部分と同一の内容を含む参照データのフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報と、該データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを含む差分圧縮時データ、又は当該データを含む非圧縮時データを受信するための受信手段と、この受信手段が受信したデータが、前記フィンガープリント圧縮時データであるか、前記差分圧縮時データであるか又は前記非圧縮時データであるかを判定する種別判定手段と、前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合に、該差分圧縮時データに含まれる前記差分圧縮表現データが含む、該差分圧縮表現データの元であったデータにおける前記部分に対応する前記圧縮情報が含む前記フィンガープリントと前記箇所情報との組を参照して、当該部分ごとに、前記クライアント側フィンガープリント・キャッシュから当該フィンガープリント及び当該箇所情報をもとに当該部分と同一の内容を取得し、取得した当該部分と同一の内容と、前記差分圧縮表現データが含む直接指定情報とを用いて、該差分圧縮表現データの元であったデータを復元する復元処理手段と、前記受信手段が前記フィンガープリント圧縮時データを受信したと、前記種別判定手段が判定した場合には、該圧縮データに含まれるフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに保持されているデータを、前記宛先となる前記クライアント装置へ送信し、前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合には、前記復元処理手段が該差分圧縮時データに含まれる差分圧縮表現データに基づいて復元したデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信し、前記受信手段が前記非圧縮時データを受信したと、前記種別判定手段が判定した場合には、該非圧縮時データに含まれるデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信する送信手段とを備え、前記サーバ側プロキシ装置は、前記サーバ装置から前記データを受信する手段と、受信された前記データのフィンガープリントを生成する手段と、前記受信する手段が受信した前記データを参照データとして、該参照データに基づいて前記生成する手段が生成した前記フィンガープリントを、該参照データに関連付けてサーバ側フィンガープリント・キャッシュとして保持する手段と、受信された前記データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合に、受信された前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記サーバ側フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する差分表現可否判定手段と、前記データを受信した際に、該データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されている場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する手段とを有するものであることを特徴とする。 The present invention is a client-side proxy device that receives data transmitted from a server device via a server-side proxy device, and transmits the data to a client device that is a destination thereof. A holding unit for holding a fingerprint of the reference data as a client side fingerprint cache in association with the reference data, and a fingerprint compression including the fingerprint of the data instead of the data from the server side proxy device Time data, instead of the data, for one part or a plurality of parts of the data, the fingerprint of the reference data specified for each part and including the same contents as the part, and the same in the reference data The location where the contents of Data at the time of differential compression including differential compression expression data including compression information consisting of a set of location information and direct designation information indicating the remaining contents excluding a portion corresponding to the compression information from the data, or the data Receiving means for receiving uncompressed data, and the data received by the receiving means is the fingerprint compressed data, the differential compressed data, or the uncompressed data When the type determination means determines that the type determination means and the reception means have received the differential compression time data, the differential compression expression data included in the differential compression time data includes With reference to a set of the fingerprint and the location information included in the compression information corresponding to the portion in the data that was the source of the differential compression expression data, Each, the client-side the fingerprint and the location information from the fingerprint cache obtains the same contents as the part based on a corresponding portion the same content as the acquired, the difference compressed representation data directly include When the type determination means determines that the restoration processing means for restoring the original data of the differential compression expression data using the designation information and the reception means has received the fingerprint compression data Transmits the data held in the client-side fingerprint cache in association with the fingerprint included in the compressed data to the client device as the destination, and the receiving means receives the differential compression data If the type determination means determines, the restoration processing means Data restored based on the differentially compressed representation data included in the data is added to the client-side fingerprint cache in association with the fingerprint generated based on the data, and the data is added to the destination When the type determining unit determines that the receiving unit has received the uncompressed data, the data included in the uncompressed data is generated based on the data. in association with the fingerprint in addition to the client-side fingerprint cache was, and, the data, e Bei and transmission means for transmitting to the said destination said client device, before Symbol server side proxy device, wherein Means for receiving the data from a server device; and a finger for the received data. Means for generating a print, as reference data to said data unit is received to the receiving, the fingerprint means has generated said generated based on the reference data, the server-side finger print in association with the reference data Means for holding as a cache and one or more parts of the received data if the fingerprint generated based on the received data is not held in the server-side fingerprint cache For each of the parts, among the reference data held in the server-side fingerprint cache, the fingerprint associated with the reference data including the same content as the part, and the same in the reference data The location where the content exists can be identified Differential compression including compression information, and direct designation information indicating the remaining contents excluding a portion corresponding to the compression information from the data received by the receiving unit Differential compression processing means for generating representation data, and the data amount of the differential compressed expression data generated by the differential compression processing means and the data amount of the data that was the source of the differential compressed expression data and the differential compressed expression data And a difference expression availability determination means for determining whether or not a value indicating the degree of compression calculated by the amount of data is equal to or greater than a reference value, and is generated based on the data when the data is received If the fingerprint is held in the server-side fingerprint cache, the fingerprint is used instead of the data that was the source of the fingerprint. When the fingerprint compression data including print is transmitted to the client side proxy device as the destination client device, and the fingerprint is not held in the server side fingerprint cache, the differential compression is performed. When the differential representation availability determination unit determines that the value indicating the degree of compression is greater than or equal to the reference value for the differential compression representation data generated by the processing unit, the fingerprint and the source of the fingerprint are the same. The data at the time of differential compression including the differential compression expression data instead of the data that was the source of the differential compression expression data becomes the destination. Send to the client side proxy device as addressed to the client device When the differential representation availability determination unit determines that the value indicating the degree of compression is not equal to or greater than the reference value for the differential compression representation data generated by the differential compression processing unit, the fingerprint and the fingerprint The original data is associated and added to the server-side fingerprint cache, and uncompressed data including the received data is transmitted to the client-side proxy device as the destination client device. characterized in der Rukoto having a unit.

なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。   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 correspondence between the data and the fingerprint is maintained between the server side proxy device and the client side proxy device, and the data having this correspondence is handled instead of transferring the data. By transferring the fingerprint to be transferred, the amount of data transferred between the server side proxy device and the client side proxy device 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.

また、本発明によれば、データに対応するフィンガープリントが保持されていないために、データを転送する代わりに対応するフィンガープリントを転送することができない場合であっても、保持されているデータに対応するフィンガープリントを利用して当該データを圧縮して表現したデータを転送することによって、プロキシ装置間の転送データ量を削減することができる。   In addition, according to the present invention, since the fingerprint corresponding to the data is not held, even if the corresponding fingerprint cannot be transferred instead of transferring the data, By transferring the data expressed by compressing the data using the corresponding fingerprint, the amount of transfer data between the proxy devices can be reduced.

例えば、GETメソッドやPOSTメソッドのリプライデータが以前にアクセスしたデータと一部が異なる場合には、差分転送することで、データ量を削減することができる。また、例えば、PUTメソッドやPOSTメソッドのリクエストデータが以前に送ったデータと一部が異なる場合には、差分転送することでデータ量を削減することができる。   For example, if the reply data of the GET method or the POST method is partially different from the previously accessed data, the data amount can be reduced by differential transfer. Also, for example, if the PUT method or POST method request data is partially different from the previously sent data, the amount of data can be reduced by differential transfer.

本発明によれば、サーバ側プロキシ装置とクライアント側プロキシ装置との間で、データとそのフィンガープリントとの対応を保持し、この対応を保持しているデータについては、データを転送する代わりに対応するフィンガープリントを転送することで、サーバ側プロキシ装置とクライアント側プロキシ装置との間の転送データ量を削減することができる。   According to the present invention, the correspondence between the data and the fingerprint is maintained between the server side proxy device and the client side proxy device, and the data having this correspondence is handled instead of transferring the data. By transferring the fingerprint to be transferred, the amount of data transferred between the server side proxy device and the client side proxy device 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.

図38に本発明を適用するコンピュータ・ネットワーク・システムの基本的な構成例を示す。この構成例では、ASPサーバセンター202内のローカルエリアネットワーク(LAN)212と、ユーザオフィス204内のローカルエリアネットワーク(LAN)216との間が、インターネットや専用回線などの広域ネットワーク(WAN)214を介して接続されており、ASPサーバセンター202内のサーバ220と、ユーザオフィス204内のクライアント250とが、LAN212・WAN214・LAN216を介して通信可能になっている。ASPサーバセンター内LANには1または複数のサーバが接続され、ユーザオフィス内LANには1または複数のクライアントが接続される。   FIG. 38 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) 214 such as the Internet or a dedicated line is connected between a local area network (LAN) 212 in the ASP server center 202 and a local area network (LAN) 216 in the user office 204. The server 220 in the ASP server center 202 and the client 250 in the user office 204 can communicate with each other via a LAN 212, a WAN 214, and a LAN 216. One or more servers are connected to the ASP server center LAN, and one or more clients are connected to the user office LAN.

WEBベースのASPは、サーバセンター202に設置したサーバ220から、WAN214を介して、様々なアプリケーションプログラムによるサービスを提供し、ユーザはオフィス204に設置されたクライアント上のWEBブラウザ等を使ってそれらのサービスにアクセスする。   The WEB-based ASP provides services by various application programs from the server 220 installed in the server center 202 via the WAN 214, and the user uses a WEB browser on the client installed in the office 204. Access the service.

このような利用形態においては、ユーザオフィス内LAN216とサーバセンター内LAN212とをつなぐネットワーク、特にインターネットなどの広域ネットワーク214の実効的な通信容量(バンド幅)は、サーバセンター内LAN212やユーザオフィス内LAN216よりも低く、そこが性能上のボトルネックになって通信遅延が発生し、アプリケーションの応答性能が低下するという問題が発生する。   In such a usage form, the effective communication capacity (bandwidth) of the network connecting the user office LAN 216 and the server center LAN 212, particularly the wide area network 214 such as the Internet, is the server center LAN 212 or the user office LAN 216. Lower than that, which becomes a bottleneck in performance, causing a communication delay, resulting in a problem that the response performance of the application is lowered.

そこで、本実施形態では、図1に示すように、サーバセンター内LAN212とユーザオフィス内LAN216とをつなぐ広域ネットワーク214の両端に、サーバ側プロキシ230およびクライアント側プロキシ240という2つのモジュールを設置し、それらの間で後述するフィンガープリント圧縮(FP圧縮)または後述する差分圧縮を行って通信データ量を低減することで、広域ネットワークのボトルネックを解消する。   Therefore, in this embodiment, as shown in FIG. 1, two modules, a server-side proxy 230 and a client-side proxy 240, are installed at both ends of the wide area network 214 that connects the server center LAN 212 and the user office LAN 216. The bottleneck of the wide area network is eliminated by reducing the amount of communication data by performing fingerprint compression (FP compression) described later or differential compression described later between them.

本実施形態のサーバ220、サーバ側プロキシ230、クライアント側プロキシ240、クライアント250は、いずれも、計算機上でソフトウェア(サーバ・プログラム、サーバ側プロキシ・プログラム、クライアント側プロキシ・プログラム、クライアント・プログラム)を動作させる形で実現することができる。この場合に、必要に応じて計算機所望の機能を有するOSやドライバソフト、パケット通信用ソフト、暗号ソフト等といったソフトウェア、あるいは通信インタフェース装置や外部記憶装置や入出力装置等といったハードウェアが搭載あるいは接続される。また、この場合に、ユーザあるいは管理者からの情報の入力やユーザへの情報の呈示等のために、グラフィカル・ユーザ・インタフェース(GUI)を用いると好ましい。   The server 220, the server-side proxy 230, the client-side proxy 240, and the client 250 of this embodiment all have software (server program, server-side proxy program, client-side proxy program, client program) on the computer. It can be realized by operating it. In this case, an OS having a desired function of the computer, driver software, software such as packet communication software, encryption software, etc., or hardware such as a communication interface device, an external storage device, and an input / output device is mounted or connected as necessary. Is done. In this case, it is preferable to use a graphical user interface (GUI) for inputting information from the user or the administrator or presenting information to the user.

サービスを利用するためにユーザが使用するクライアント250上では、その目的に応じて例えばWEBブラウザ等のプログラムが動作する。ユーザは、例えば、WEBブラウザからインターネットを介し情報転送あるいは注文受付等の所望のサービスを提供するサーバにリクエストメッセージを出し、リプライメッセージを受けることによって、またはこれを適宜繰り返すことによって、サービスを利用する。もちろん、WEBブラウザ等の汎用のソフトウェアではなく、特定のサービスを利用するための専用のソフトウェアなどの他のものが用いられても構わない。また、クライアントは、汎用の計算機ではなく、例えばインターネット機能を有する携帯電話端末等でもよい。   On the client 250 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.

サーバ220上では、所定のサーバ・プログラムが動作し、クライアント220のユーザに対して、当該サーバ・サイトに固有のサービスを提供する。   A predetermined server program runs on the server 220 and provides a service specific to the server site to the user of the client 220.

サーバ側プロキシ230は、図1のように、サーバセンター内LAN212とWAN214との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図2のように、サーバセンター内LAN212上に設置して実施することもできる。また、図3のように、サーバ側プロキシ230の機能をサーバ220に内蔵するように実施することもできる。   As shown in FIG. 1, the server-side proxy 230 can be implemented by connecting to both the intra-server center LAN 212 and the WAN 214 so as to operate as a transparent proxy. Moreover, as shown in FIG. 2, it can also be installed on the server center LAN 212. Further, as shown in FIG. 3, the function of the server side proxy 230 can be implemented in the server 220.

同様に、クライアント側プロキシ240は、図1のように、ユーザオフィス内LAN216とWAN214との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図2のように、ユーザオフィス内LAN216上に設置して実施することもできる。また、図3のように、クライアント側プロキシ240の機能をクライアント250上で動作するブラウザ等に内蔵するように実施することもできる。あるいは、ブラウザ等の動作するクライアント250上に、個人用のクライアント側プロキシ240を動作させるように実施することもできる。   Similarly, as shown in FIG. 1, the client-side proxy 240 is connected to both the intra-user office LAN 216 and the WAN 214, and can be installed and implemented so as to operate as a transparent proxy. In addition, as shown in FIG. 2, it can be installed on the user office LAN 216 and implemented. Further, as shown in FIG. 3, the function of the client side proxy 240 can be implemented in a browser or the like that operates on the client 250. Alternatively, the client-side proxy 240 for personal use may be operated on the client 250 such as a browser.

なお、サーバ側プロキシ230とクライアント側プロキシ240とは、図1〜図3などのように同じ形態であってもよいし、異なる形態であってもよい。   Note that the server-side proxy 230 and the client-side proxy 240 may have the same form as shown in FIGS. 1 to 3 or different forms.

以下では、フィンガープリント・キャッシュやこれを利用したFP圧縮について説明し、次いで差分圧縮について説明する。   Hereinafter, the fingerprint cache and FP compression using the fingerprint cache will be described, and then differential compression will be described.

本実施形態のサーバ側プロキシ230およびクライアント側プロキシ240は、いずれも、フィンガープリント・キャッシュ(FPキャッシュ)と呼ぶキャッシュ機構を持つ。フィンガープリント・キャッシュは、フィンガープリント(FP)と呼ぶ名前によって、HTTPプロトコルでやりとりされるデータを記録・管理する。   Both the server-side proxy 230 and the client-side proxy 240 of the present embodiment have a cache mechanism called a fingerprint cache (FP cache). The fingerprint cache records and manages data exchanged by the HTTP protocol by a name called a fingerprint (FP).

フィンガープリントは、図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に示すように、サーバ側プロキシ230やクライアント側プロキシ240の持つフィンガープリント・キャッシュ(図中の60)は、過去にHTTPプロトコルでやり取りされたデータ本体(図中の61)を、そのデータから計算して求めたフィンガープリントの値(図中の62)を名前として、記録・管理している。   As shown in FIG. 5, the fingerprint cache (60 in the figure) of the server-side proxy 230 and the client-side proxy 240 has a data body (61 in the figure) exchanged in the past by the HTTP protocol. The fingerprint value (62 in the figure) calculated from the above is recorded and managed as a name.

例えばHTTPプロトコルでサーバ側プロキシ230からクライアント側プロキシ240へデータを転送するときに、サーバ側プロキシ230は、当該データのフィンガープリントを計算し、そのフィンガープリントに対応するデータがフィンガープリント・キャッシュに入っていれば、当該データ(と同じ内容のデータ)は過去に転送したことがあるので、当該データを転送せずに、対応するフィンガープリントの値を転送する。フィンガープリントを受け取ったクライアント側プロキシ240は、当該フィンガープリントの値に対応するデータをフィンガープリント・キャッシュから取り出すことで、転送すべきデータを再現することができる。このような方式(すなわち、データ圧縮→データ転送→データ解凍)により、過去に送ったものと同じデータならばフィンガープリントの値を送るだけでよいので、ネットワークを流れるデータ量を大幅に削減することができる。もちろん、クライアント側プロキシ240からサーバ側プロキシ230へデータを転送するときも同様である。   For example, when data is transferred from the server-side proxy 230 to the client-side proxy 240 using the HTTP protocol, the server-side proxy 230 calculates a fingerprint of the data, and the data corresponding to the fingerprint enters the fingerprint cache. If so, since the data (data having the same content) has been transferred in the past, the corresponding fingerprint value is transferred without transferring the data. The client-side proxy 240 that has received the fingerprint can reproduce the data to be transferred by extracting the data corresponding to the fingerprint value from the fingerprint cache. By using this method (ie, data compression-> data transfer-> data decompression), it is only necessary to send the fingerprint value if it is the same data that was sent in the past. Can do. Of course, the same applies when transferring data from the client-side proxy 240 to the server-side proxy 230.

説明上、サーバ側プロキシ230とクライアント側プロキシ240との間でのデータ転送にあたり、フィンガープリント・キャッシュを利用してメッセージ・ボディーのデータをフィンガープリントに置き換えて転送情報量を圧縮することを、フィンガープリント圧縮(FP圧縮)と呼ぶものとする。   For explanation, when transferring data between the server-side proxy 230 and the client-side proxy 240, the fingerprint cache is used to replace the message body data with the fingerprint to compress the transfer information amount. This is called print compression (FP compression).

なお、サーバ側プロキシ230とクライアント側プロキシ240との間において、すべてのメッセージをFP圧縮を適用する対象(すなわち、フィンガープリント・キャッシュを利用してデータをフィンガープリントに置き換えるための処理を行う対象)としてもよいが、例えばフィンガープリント・キャッシュの効果が期待できないものなどに対する適用を除外するために、予め定められた条件を満たすメッセージについては、これをFP圧縮の適用対象外とする(常にFP圧縮しないで転送する)ようにしてもよい。この場合の予め定められた条件とは、例えば、メッセージ・ヘッダに予め定められた情報が記述されていることである。具体的には、例えば、メッセージ・ヘッダにGETメソッドを示す情報およびリクエストを示す情報が記述されていることである。また、予め定められた条件の他の例としては、転送されるデータが空(null)あるいは非常に短いサイズであることである。もちろん、それらの他にも種々のバリエーションがある。また、複数の条件を組み合わせて使用するようにしてもよい。   It should be noted that between the server-side proxy 230 and the client-side proxy 240, an object to which FP compression is applied to all messages (that is, an object for performing processing for replacing data with a fingerprint using a fingerprint cache). However, for example, in order to exclude the application to a message that cannot be expected to have a fingerprint cache effect, a message that satisfies a predetermined condition is excluded from the application target of FP compression (always FP compression). May be transferred). 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.

続いて、差分圧縮について説明する。   Subsequently, differential compression will be described.

前述のFP圧縮では、データに対するフィンガープリントを用いてデータの同一性を高速に判断し、フィンガープリント・キャッシュに登録されているデータと同じデータはプロキシ間で転送しないようにして(代わりに当該データに対するフィンガープリントを転送するようにして)、ネットワークの負荷を低減させる。   In the above-mentioned FP compression, the identity of the data is judged at high speed using the fingerprint for the data, and the same data as the data registered in the fingerprint cache is not transferred between the proxies (instead of the data) Reduce the load on the network).

しかし、フィンガープリント・キャッシュに登録されているデータと異なるデータは、たとえ大部分は同じ内容であってもFP圧縮を適用できない。そこで、本実施形態では、FP圧縮できない場合であっても、フィンガープリント・キャッシュに登録されている1または複数のデータを参照データとして、参照データのフィンガープリントや、参照データに対する差分情報など転送すべきデータを復元するための情報によって、転送データを表現することによって、少ない情報量で転送データを表現し、なるべく転送データ量を減らすようにしている。すなわち、フィンガープリント・キャッシュの中のデータを辞書として使って、その中から取り出せるデータは送らないようにするのが基本的なアイデアである。   However, FP compression cannot be applied to data that is different from data registered in the fingerprint cache, even if most of the data has the same contents. Therefore, in this embodiment, even when FP compression is not possible, one or more data registered in the fingerprint cache is used as reference data to transfer the reference data fingerprint, difference information for the reference data, or the like. By expressing transfer data with information for restoring power data, the transfer data is expressed with a small amount of information, and the transfer data amount is reduced as much as possible. In other words, the basic idea is to use the data in the fingerprint cache as a dictionary and not send data that can be retrieved from it.

例えば、WEBベースのASPのような応用では、大部分は同じ内容であるが一部分だけが異なっているようなデータが多く使われる。例えば、帳票のデータなどは、多くのフィールドに同じ情報が記入されていて、一部分だけが違うようなものが多数存在する。また、例えば、Webページで日付もしくは時刻のみ異なるものや、総アクセス回数のカウンタ値のみ異なるものなどもある。このような場合には、特に有効になる。   For example, in an application such as a WEB-based ASP, most of the data has the same contents but only a part is different. For example, there are many forms of data that have the same information written in many fields but differ only in part. Further, for example, there are Web pages that differ only in date or time, and those that differ only in the total access count counter value. In such a case, it is particularly effective.

また、このようなフィンガープリントを利用した差分圧縮は、転送すべきデータと参照データとの間の関係を予め取り決めておく必要がなという利点も得られる。すなわち、従来の差分転送の方法の場合には、予め双方で何をベースに差分を取るかを決める必要があったため、差分転送をWEBシステムに実際に用いようとすると、このURLのデータはこのデータをベースに差分を取るというようなルールを、双方に登録する手段が必要であり、任意のデータに対して有効に機能させることは不可能であった。これに対して、本差分圧縮方法は、フィンガープリント・キャッシュの中にあるデータを参照データとして差分を取ることで、差分のベースを予め決めておかなくても、差分によるデータの圧縮の効果を得ることができる。   Further, differential compression using such a fingerprint also provides an advantage that it is not necessary to predetermine the relationship between data to be transferred and reference data. In other words, in the case of the conventional differential transfer method, it is necessary to decide in advance what the difference is to be taken in both sides. Therefore, if the differential transfer is actually used in the WEB system, the data of this URL is A means for registering a rule such as taking a difference based on data on both sides is necessary, and it has been impossible to function effectively for arbitrary data. On the other hand, this differential compression method takes the difference in the fingerprint cache data as reference data, so that the effect of compressing the data by the difference can be obtained even if the base of the difference is not determined in advance. Obtainable.

説明上、サーバ側プロキシ230とクライアント側プロキシ240との間でのデータ転送にあたり、フィンガープリント・キャッシュを利用してメッセージ・ボディーのデータを参照データのフィンガープリント等に置き換えて転送情報量を圧縮することを、差分圧縮と呼ぶものとする。   For explanation, when transferring data between the server-side proxy 230 and the client-side proxy 240, the amount of transfer information is compressed by replacing the message body data with the fingerprint of the reference data using a fingerprint cache. This is called differential compression.

なお、ここでは、FP圧縮の適用対象のメッセージをすべて差分圧縮の適用対象にするものとする場合を例にとって説明する。もちろん、前述と同様に、FP圧縮の適用対象のメッセージのうち、予め定められた条件を満たすメッセージについては、これを差分圧縮の適用対象外とするようにしてもよい(この場合、差分圧縮を適用される条件が、FP圧縮を適用される条件に対して更に他の条件を加重したものになる)。例えば、FP圧縮しないデータサイズの上限値U1よりも、差分圧縮しないデータサイズの上限値U2を大きくする(FP圧縮すべきデータサイズの下限値L1よりも、差分圧縮すべきデータサイズの下限L2を大きくする)という方法や、FP圧縮の適用対象か否かはデータサイズで判断するが、差分圧縮の適用対象か否かについては、FP圧縮の適用対象のうちHTMLやXML以外のデータを適用対象外とする(HTMLやXMLのデータに対してのみ差分圧縮を行う)という方法等、種々の方法がある。   Here, a case will be described as an example where all the messages to be applied to FP compression are to be applied to differential compression. Of course, in the same manner as described above, among messages to which FP compression is applied, a message that satisfies a predetermined condition may be excluded from the application of differential compression (in this case, the difference compression may be performed). The applied condition is obtained by adding another condition to the condition to which FP compression is applied). For example, the upper limit value U2 of the data size not subjected to differential compression is set larger than the upper limit value U1 of the data size not subjected to FP compression (the lower limit L2 of the data size to be differentially compressed is set lower than the lower limit value L1 of the data size to be FP compressed). It is determined by the data size whether it is an application target of FP compression, or whether it is an application target of differential compression, but data other than HTML or XML is an application target of the application target of FP compression. There are various methods, such as a method of performing external compression (differential compression is performed only on HTML or XML data).

本実施形態では、圧縮対象のメッセージは、結果的に、データがFP圧縮されたメッセージ、データが差分圧縮されたメッセージ、またはデータが圧縮されていないメッセージのいずれかとして、サーバ側プロキシ230とクライアント側プロキシ240との間を転送されることになる。   In this embodiment, as a result, the server-side proxy 230 and the client are compressed as either a message whose data is FP compressed, a message whose data is differentially compressed, or a message whose data is not compressed. It is transferred to and from the side proxy 240.

ここで、差分圧縮の方法について説明する。   Here, a differential compression method will be described.

フィンガープリント・キャッシュを利用した差分圧縮の方法には次に例示するものなど種々の方法がある。
・フィンガープリント・キャッシュに登録されているデータのうちの1つを参照データとする。プロキシ間では、参照データに対応するフィンガープリントの値と、転送データと参照データとの差分を示す情報とを転送する。
・上記の方法において、参照データとの差分の全部または一部についても、フィンガープリント・キャッシュに登録されているデータを利用する。あるいは、フィンガープリント・キャッシュに登録されているデータ(の全体または部分)を組み合わせることによって転送データの全部または一部を表現する。例えば、フィンガープリント・キャッシュに登録されているデータのうち任意数のものを参照データとする。プロキシ間では、参照データに対応するフィンガープリントの値と、参照データのうち転送データの復元に使用する部分を示す情報と、その部分をもとにした転送データの復元方法を示す情報とを転送する。
There are various methods of differential compression using a fingerprint cache such as the following.
One of the data registered in the fingerprint cache is used as reference data. Between the proxies, a fingerprint value corresponding to the reference data and information indicating a difference between the transfer data and the reference data are transferred.
In the above method, the data registered in the fingerprint cache is used for all or part of the difference from the reference data. Alternatively, all or part of the transfer data is expressed by combining data (entire or part) registered in the fingerprint cache. For example, any number of data registered in the fingerprint cache is used as reference data. Between the proxies, the fingerprint value corresponding to the reference data, the information indicating the portion of the reference data used for restoring the transfer data, and the information indicating the method for restoring the transfer data based on that portion are transferred. To do.

以下では、差分圧縮データの表現方法の一例を示す。   Below, an example of the expression method of differential compression data is shown.

図6に、転送すべきデータを表現するための3種類の指示を示す。データの代わりに転送される差分圧縮データは、これら指示の並びで構成する。   FIG. 6 shows three types of instructions for expressing data to be transferred. The differentially compressed data transferred instead of the data is composed of a sequence of these instructions.

(a)は、フィンガープリント・キャッシュ内のデータを参照するときに、参照データに番号を付けて定義する指示である。1バイト目の8n(図6の例では、n=0)は指示識別子である。この指示識別子のうちnは、そのフィンガープリントで指定されるデータをn番の参照データとして扱うことを示す。2バイト目から始まる16バイトが当該参照データに対するフィンガープリントの値を示す。この例では、80〜8Fによってそれぞれ0番の参照データから、最大15番までの参照データが扱えるようになっている。もちろん、扱える参照データの最大数は、実装によって多くも少なくもできる。   (A) is an instruction for defining the reference data with a number when referring to the data in the fingerprint cache. The first byte 8n (n = 0 in the example of FIG. 6) is an instruction identifier. Among the instruction identifiers, n indicates that data designated by the fingerprint is handled as nth reference data. 16 bytes starting from the second byte indicate a fingerprint value for the reference data. In this example, 80 to 8F can handle reference data from 0th reference data to 15th maximum. Of course, the maximum number of reference data that can be handled can be more or less depending on the implementation.

(b)は、(a)で定義された参照データの中から部分データをコピーする指示を表す。1バイト目の9n(図6の例では、n=0)は指示識別子である。この指示識別子のうちnは、(a)の指示で定義されたn番の参照データを使用することを示す。2バイト目からの4バイトは、そのn番の参照データ中のオフセット位置を、6バイト目からの4バイトでデータの長さをそれぞれ指示する。そして、それらによって、n番の参照データの中の指定オフセット位置から指定長さのデータを、この指示の並びの位置(順番)に従って(転送データの構成部分として)コピーすべきことを示す。   (B) represents an instruction to copy partial data from the reference data defined in (a). 9n in the first byte (n = 0 in the example of FIG. 6) is an instruction identifier. Among the instruction identifiers, n indicates that the nth reference data defined by the instruction (a) is used. The 4 bytes from the 2nd byte indicate the offset position in the nth reference data, and the 4 bytes from the 6th byte indicate the data length. These indicate that data of a specified length from the specified offset position in the nth reference data should be copied (as a constituent part of the transfer data) in accordance with the position (order) of this instruction sequence.

(c)は、データを直接指定するための指示である。1バイト目のA0は、指示識別子である。2バイト目からの4バイトは、データの長さを示す。6バイト目以降に、その長さで指定されたバイト数のデータが続く。そして、それらによって、6バイト目以降のデータを、この指示の並びの位置(順番)に従って(転送データの構成部分として)コピーすることを示す。   (C) is an instruction for directly specifying data. A0 in the first byte is an instruction identifier. Four bytes from the second byte indicate the length of the data. The number of bytes specified by the length follows the 6th byte. Then, they indicate that the data after the 6th byte is copied (as a constituent part of the transfer data) in accordance with the position (order) of this instruction sequence.

このような指示の並びで構成された差分圧縮データは、フィンガープリント・キャッシュを参照しながら、指示された順にデータをコピーして接続していくだけで解凍することができる。   The differentially compressed data composed of such a sequence of instructions can be decompressed by simply copying and connecting the data in the order in which they are instructed while referring to the fingerprint cache.

次に、上記の方法に従った差分圧縮の例を示す。   Next, an example of differential compression according to the above method is shown.

図7に示すようなデータがフィンガープリント5E83…B6としてフィンガープリント・キャッシュに入っていたとする。   Assume that data as shown in FIG. 7 is stored in the fingerprint cache as fingerprints 5E83... B6.

このとき、図8のようなデータが与えられると、図7のデータを参照データとして、図9のように差分圧縮することができる。   At this time, if data as shown in FIG. 8 is given, differential compression can be performed as shown in FIG. 9 using the data in FIG. 7 as reference data.

すなわち、図8のデータは、図7のデータと比較すると、図7のデータの『TOKYO』が『OSAKA』に変わっているだけである。そこで、図9のように、まず、0バイト目でフィンガープリント“5E83…B6”のデータを0番参照データとして定義することを指示し、17バイト目で0番参照データの0バイト目から60バイトをコピーすることを指示し、次に26バイト目で『OSAKA』の5文字をコピーすることを指示し、最後に36バイト目で0番参照データの65バイト目から51バイトをコピーすることを指示している。   That is, the data in FIG. 8 is merely changed from “TOYO” in FIG. 7 to “OSAKA” as compared with the data in FIG. Therefore, as shown in FIG. 9, first, it is instructed to define the data of fingerprint “5E83... B6” as the 0th reference data at the 0th byte, and from the 0th byte of the 0th reference data to the 17th byte. Instruct to copy bytes, then instruct to copy 5 characters of “OSAKA” at 26th byte, and finally copy 51 bytes from 65th byte of 0th reference data at 36th byte Is instructing.

この指示の通りに解凍すれば、図8のデータを再現することができる。   If decompression is performed according to this instruction, the data in FIG. 8 can be reproduced.

この例では、参照データを1つしか使わなかったが、複数個使うことも可能である。   In this example, only one reference data is used, but a plurality of reference data can be used.

次に、上記の方法に従った差分圧縮の他の例を示す。   Next, another example of differential compression according to the above method will be shown.

図10に示すようなデータがフィンガープリント82F3…38としてフィンガープリント・キャッシュに入っており、図11に示すようなデータがフィンガープリントA20D…CBとしてフィンガープリント・キャッシュに入っていたとする。このとき、図12のようなデータが与えられると、図10のデータと図11のデータを参照データとして、図13のように差分圧縮することができる。   Assume that data as shown in FIG. 10 is in the fingerprint cache as fingerprints 82F3... 38 and data as shown in FIG. 11 is in the fingerprint cache as fingerprints A20D. At this time, if data as shown in FIG. 12 is given, differential compression can be performed as shown in FIG. 13 using the data in FIG. 10 and the data in FIG. 11 as reference data.

図13では、まず、0バイト目でフィンガープリント“82F3…38”のデータを0番参照データとして定義することを指示し、17バイト目で0番参照データの0バイト目から53バイトをコピーすることを指示し、26バイト目でフィンガープリント“A20D…CB”のデータを1番参照データとして定義することを指示し、43バイト目で1番参照データの96バイト目から55バイトをコピーすることを指示している。   In FIG. 13, first, it is instructed to define the data of the fingerprint “82F3... 38” as 0th reference data at the 0th byte, and 53 bytes from the 0th byte of the 0th reference data are copied at the 17th byte. And instructing to define the fingerprint “A20D... CB” data as the first reference data at the 26th byte, and copying the 55th byte from the 96th byte of the first reference data at the 43rd byte. Is instructing.

この指示の通りに解凍すれば、図12のデータを再現することができる。   If decompression is performed according to this instruction, the data in FIG. 12 can be reproduced.

なお、上記した方法では、参照データの使用すべき部分の指示と、使用すべきデータの直接指定を行う方法(方法1)であったが、その代わりに、参照データのうち使用しない部分(直接指示データで置き換える部分)の指示と、その使用しない部分に嵌め込むデータの直接指定を行う方法(方法2)も可能である。   In the above-described method, the method of specifying the portion to be used of the reference data and directly specifying the data to be used (method 1) is used. Instead, the portion of the reference data that is not used (directly). A method (method 2) in which an instruction of a part to be replaced with instruction data and direct designation of data to be inserted into the unused part is also possible.

また、方法1と方法2を併用することも可能である。   It is also possible to use method 1 and method 2 in combination.

次に、図14〜図18を参照しながら、サーバ側プロキシ230とクライアント側プロキシ240との間でデータ転送する際の(FP圧縮の適用対象のメッセージについての)プロキシ間メッセージ・フォーマットについて説明する。   Next, an inter-proxy message format (for a message to which FP compression is applied) when data is transferred between the server-side proxy 230 and the client-side proxy 240 will be described with reference to FIGS. .

サーバ側プロキシ230とクライアント側プロキシ240との間でデータ転送する場合、FP圧縮の適用対象のメッセージには、データがFP圧縮されてフィンガープリントに置き換えられたメッセージ(FP圧縮時のメッセージ)と、FP圧縮されいないが、差分圧縮されたデータが搭載されているメッセージ(差分圧縮時のメッセージ)と、FP圧縮も差分圧縮もされていないデータが搭載されているメッセージ(非圧縮時のメッセージ)とがある。すべてのメッセージをFP圧縮の適用対象とするのではない構成の場合には、これら3つのメッセージに加えて、FP圧縮の適用対象外のメッセージがある。   When data is transferred between the server-side proxy 230 and the client-side proxy 240, a message to which FP compression is applied includes a message in which data is FP compressed and replaced with a fingerprint (message at the time of FP compression), A message that is not FP-compressed but has differential-compressed data (message at the time of differential compression), and a message that has data that has not been FP-compressed or differential-compressed (message at the time of non-compression) There is. In the case of a configuration in which not all messages are subject to FP compression, there are messages that are not subject to FP compression in addition to these three messages.

両プロキシのうち送信側プロキシにおいて、FP圧縮時のメッセージでは、データが削除され、フィンガープリントが付加され、差分圧縮時のメッセージでは、データが削除され、参照データのフィンガープリントなど当該データを復元するための情報が付加される。非圧縮時のメッセージおよび圧縮適用対象外のメッセージでは、データは削除されない。   In the proxy on the transmission side of both proxies, the data is deleted and the fingerprint is added in the message at the time of FP compression, the data is deleted in the message at the time of differential compression, and the data such as the fingerprint of the reference data is restored. Information is added. Data is not deleted for uncompressed messages and messages not subject to compression.

両プロキシのうち受信側プロキシにおいては、上記の3種もしくは4種のメッセージを識別できる必要がある。FP圧縮時のメッセージ受信時は、フィンガープリントをデータに戻し、差分圧縮時のメッセージ受信時は、データを復元する。また、差分圧縮時または非圧縮時のメッセージ受信時は、フィンガープリント・キャッシュの登録を行う。   Of the two proxies, the receiving proxy needs to be able to identify the above three or four types of messages. When a message is received during FP compression, the fingerprint is returned to data, and when a message is received during differential compression, the data is restored. When a message is received at the time of differential compression or non-compression, the fingerprint cache is registered.

図14に、メッセージ・フォーマットの一例を示す。(a)は非圧縮時のメッセージであり、(b)は差分圧縮時のメッセージであり、(c)はFP圧縮時のメッセージである。   FIG. 14 shows an example of the message format. (A) is a message at the time of non-compression, (b) is a message at the time of differential compression, and (c) is a message at the time of FP compression.

(a)ではメッセージ・ボディーにデータが載せられ、(b)ではメッセージ・ボディーにデータの代わりに当該データを復元するための情報が載せられ、(c)ではメッセージ・ボディーにデータの代わりにフィンガープリント(FP)が載せられる。   In (a), data is placed in the message body, in (b) information for restoring the data is placed in the message body instead of data, and in (c), a finger is substituted in the message body instead of data. A print (FP) is placed.

また、この例では、メッセージ・ヘッダに、メッセージの種類を識別可能とする識別情報が(圧縮側のプロキシにおいて)記述され、この識別情報に基づいて(解凍側のプロキシにおいて)FP圧縮の有無を識別する(例えば、01ならば非圧縮なし、10ならば差分圧縮、11ならばFP圧縮)。なお、識別情報は、プロキシ間で使用される特別のものであってもよいし、もともと通常のHTTPメッセージ・ヘッダに存在するフィールドを利用あるいは併用したものであってもよい。   Also, in this example, identification information for identifying the type of message is described (in the compression proxy) in the message header, and whether or not FP compression is performed based on this identification information (in the decompression proxy). Identify (for example, 01 means no compression, 10 means differential compression, 11 means FP 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.

なお、FP圧縮の適用対象外のメッセージが存在し得る構成の場合には、圧縮側(送信側)のプロキシにおいて、図14(d)に示すように、FP圧縮の適用対象外のメッセージのメッセージ・ヘッダに上記の識別情報(例えば、00とする)を含めればよい。   Note that, in a configuration in which a message that is not subject to FP compression may exist, a message of a message that is not subject to FP compression, as shown in FIG. 14D, in the proxy on the compression side (transmission side). -The identification information (for example, 00) may be included in the header.

また、FP圧縮の適用対象外のメッセージが存在し得る構成の場合に、解凍側(受信側)プロキシにおいて、メッセージ・ヘッダに含まれる何らかの情報によって当該メッセージがFP圧縮の適用対象外のメッセージであることを判断できるとき、あるいはメッセージ・ボディーが空(null)のときに当該メッセージがFP圧縮の適用対象外のメッセージであることを判断するようにしたときなどには、FP圧縮の適用対象外のメッセージのメッセージ・ヘッダには識別情報を含めないようにすることも可能である。   Further, in a configuration in which a message that is not subject to FP compression may exist, the message on the decompression side (reception side) proxy is a message that is not subject to FP compression due to some information included in the message header. When it is possible to determine whether or not the message body is null and the message is determined not to be subject to FP compression, the FP compression is not applicable. It is also possible not to include identification information in the message header of the message.

ここで、図39に図14(a)のフォーマットのメッセージの具体例を示し、図40に図14(b)のフォーマットのメッセージの具体例を示し、図41に図14(c)のフォーマットのメッセージの具体例を示し、図42に図14(d)のフォーマットのメッセージの具体例を示す。各図のヘッダ中の“Fingerprint−Mode:…”が識別情報に相当し、図41のボディの“6E39…0128”がフィンガープリントに相当する。   Here, FIG. 39 shows a specific example of the message in the format of FIG. 14A, FIG. 40 shows a specific example of the message in the format of FIG. 14B, and FIG. 41 shows the format of the message in FIG. A specific example of the message is shown, and FIG. 42 shows a specific example of the message in the format of FIG. “Fingerprint-Mode:...” In the header of each figure corresponds to the identification information, and “6E39... 0128” in the body in FIG. 41 corresponds to the fingerprint.

なお、非圧縮時や差分圧縮時には、図14(a),(b)の例では、メッセージに当該データに対するフィンガープリントを含ませなかったが、メッセージ・ヘッダにフィンガープリントを含ませるようにしてもよい(あるいは、メッセージ・ボディーに当該データに対するフィンガープリントを含ませるようにしてもよい)。図15(a)〜(c)は、非圧縮時や差分圧縮時には、メッセージ・ヘッダにフィンガープリントを含ませ、FP圧縮時には、メッセージ・ボディーにフィンガープリントを含ませる場合の一例である。このようにすれば、解凍側で当該データについてフィンガープリント・キャッシュの登録を行う際に、該フィンガープリントを利用することによって、あらためて当該データからフィンガープリントを求める手間が省ける。   In the example of FIGS. 14A and 14B, the fingerprint for the data is not included in the message at the time of non-compression or differential compression. However, the fingerprint may be included in the message header. Good (or a fingerprint for the data may be included in the message body). FIGS. 15A to 15C show an example in which a fingerprint is included in the message header at the time of non-compression or differential compression, and a fingerprint is included in the message body at the time of FP compression. 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.

図43に図15(a)のフォーマットのメッセージの具体例を示し、図44に、図15(b)のフォーマットのメッセージの具体例を示す。図15(c)のフォーマットのメッセージの具体例は図41と同様である。図43、図44のヘッダ中の“Fingerprint:…”がフィンガープリントに相当する。   FIG. 43 shows a specific example of the message in the format of FIG. 15A, and FIG. 44 shows a specific example of the message in the format of FIG. A specific example of the message in the format of FIG. 15C is the same as that in FIG. “Fingerprint:...” In the headers of FIGS. 43 and 44 corresponds to a fingerprint.

なお、以上のいずれの場合においても、図16に示すように、FP圧縮時のメッセージでは、メッセージ・ヘッダにフィンガープリント(FP)を含め、メッセージ・ボディーを空(null)にしてもよい。   In any of the above cases, as shown in FIG. 16, in the message at the time of FP compression, a fingerprint (FP) may be included in the message header, and the message body may be null.

図45に、図16のフォーマットのメッセージの具体例を示す。   FIG. 45 shows a specific example of the message in the format of FIG.

なお、以上の他にも、種々のメッセージ・フォーマットが可能である。   In addition to the above, various message formats are possible.

例えば、図17では、(a)の非圧縮時のメッセージのヘッダに非圧縮フラグを記述し且つフィンガープリントは記述せず、(b)の差分圧縮時のメッセージのヘッダに差分圧縮フラグを記述し且つフィンガープリントは記述せず、(c)のFP圧縮時のメッセージのヘッダにフィンガープリントは記述し且つボディーは空(null)にする。   For example, in FIG. 17, the uncompressed flag is described in the header of the message at the time of (a) uncompressed and the fingerprint is not described, and the differential compression flag is described in the header of the message at the time of differential compression of (b). Also, the fingerprint is not described, the fingerprint is described in the header of the message at the time of FP compression in (c), and the body is null.

この場合には、メッセージ・ボディーが空(null)であることあるいはメッセージのヘッダにフィンガープリントが記述されていることを検出するによって、当該メッセージがFP圧縮時のメッセージであることを識別することができる。また、非圧縮時のメッセージや差分圧縮時のメッセージは、ヘッダに非圧縮フラグや差分圧縮フラグが記述されていることを検出することによって、識別することができる。   In this case, it is possible to identify that the message is a message at the time of FP compression by detecting that the message body is null or the fingerprint is described in the header of the message. it can. Further, a message at the time of non-compression and a message at the time of differential compression can be identified by detecting that a non-compression flag or a differential compression flag is described in the header.

図46に図17(a)のフォーマットのメッセージの具体例を示し、図47に、図17(b)のフォーマットのメッセージの具体例を示し、図48に図17(c)のフォーマットのメッセージの具体例を示す。図46のヘッダ中の“Non−Compression:…”が非圧縮フラグに相当し、図47のヘッダ中の“Differencial−Compression:…”が差分縮フラグに相当する。   46 shows a specific example of the message in the format of FIG. 17A, FIG. 47 shows a specific example of the message in the format of FIG. 17B, and FIG. 48 shows the message of the format in FIG. A specific example is shown. “Non-Compression:...” In the header of FIG. 46 corresponds to an uncompressed flag, and “Differential-Compression:...” In the header of FIG.

なお、FP圧縮の適用対象外のメッセージが存在し得る構成の場合には、圧縮側(送信側)のプロキシにおいて、図18の(a),(b)に示すように((a)はデータが空(null)でない場合、(b)はデータが空(null)である場合)、FP圧縮の適用対象外のメッセージのメッセージ・ヘッダに対象外フラグを含めればよい。   In the case of a configuration in which a message that is not subject to FP compression may exist, in the proxy on the compression side (transmission side), as shown in (a) and (b) of FIG. If (b) is not null (if the data is null), a non-target flag may be included in the message header of a message that is not subject to FP compression.

また、FP圧縮の適用対象外のメッセージが存在し得る構成の場合に、解凍側(受信側)プロキシにおいて、メッセージ・ヘッダに含まれる何らかの情報によって当該メッセージがFP圧縮の適用対象外のメッセージであることを判断できるときなどには、図18の(c),(d)に示すように((c)はデータが空(null)でない場合、(d)はデータが空(null)である場合)FP圧縮の適用対象外のメッセージのメッセージ・ヘッダには対象外フラグを含めないようにすることも可能である。   Further, in a configuration in which a message that is not subject to FP compression may exist, the message on the decompression side (reception side) proxy is a message that is not subject to FP compression due to some information included in the message header. 18 (c) and 18 (d), (c) indicates that the data is not empty (null), and (d) indicates that the data is empty (null). ) It is also possible not to include a non-target flag in the message header of a message that is not subject to FP compression.

図49に図18(a)のフォーマットのメッセージの具体例を示し、図50に図18(b)のフォーマットのメッセージの具体例を示し、図51に図18(c)のフォーマットのメッセージの具体例を示し、図52に図18(d)のフォーマットのメッセージの具体例を示す。図49、図50のヘッダ中の“No−FP−Compression:…”が対象外フラグに相当する。   FIG. 49 shows a specific example of a message in the format of FIG. 18A, FIG. 50 shows a specific example of a message in the format of FIG. 18B, and FIG. 51 shows a specific example of a message in the format of FIG. An example is shown, and FIG. 52 shows a specific example of the message in the format of FIG. “No-FP-Compression:...” In the headers of FIGS. 49 and 50 corresponds to the non-target flag.

以下では、サーバ側プロキシ230からクライアント側プロキシ240へリプライメッセージを転送するときにそのリプライデータをFP圧縮・解凍する場合を中心に本実施形態について詳しく説明する。   In the following, the present embodiment will be described in detail with a focus on the case where the reply data is transferred to the client side proxy 240 from the server side proxy 230 and the reply data is FP compressed / decompressed.

図19に本実施形態のサーバ側プロキシ230の構成例を示し、図20に本実施形態のクライアント側プロキシ240の構成例を示す。なお、図19や図20は、サーバ側プロキシ230からクライアント側プロキシ240へデータを転送する際の構成を中心に示してある。   FIG. 19 shows a configuration example of the server-side proxy 230 of this embodiment, and FIG. 20 shows a configuration example of the client-side proxy 240 of this embodiment. 19 and 20 mainly show the configuration when data is transferred from the server-side proxy 230 to the client-side proxy 240.

図19に示されるように、本サーバ側プロキシ230は、サーバセンター内LAN212または広域ネットワーク214から転送メッセージを受信するための処理を行う受信部231、転送メッセージに含まれるデータに対してFP圧縮、差分圧縮を施すための処理部232、サーバセンター内LAN212または広域ネットワーク214へ転送メッセージを送信するための処理を行う送信部233、フィンガープリントとそのもととなったデータとを対応付けて記憶するためのフィンガープリント・キャッシュ(FPキャッシュ)234を備えている。また、処理部232は、転送メッセージに含まれるデータを圧縮対象とすべきか否かを判定するためのフィンガープリント(FP)圧縮判定部2321、フィンガープリント・キャッシュ234に対する検索や登録などを行うためのフィンガープリント・キャッシュ(FPキャッシュ)管理部2322、転送メッセージに含まれるデータを対応するフィンガープリントで置き換えるなどの処理を行うためのフィンガープリント(FP)圧縮処理部2323、転送メッセージに含まれるデータを差分圧縮データで置き換えるなどの処理を行うための差分圧縮処理部2324を含む。   As shown in FIG. 19, the server-side proxy 230 includes a receiving unit 231 that performs processing for receiving a transfer message from the intra-server center LAN 212 or the wide area network 214, FP compression on the data included in the transfer message, A processing unit 232 for performing differential compression, a transmission unit 233 for performing processing for transmitting a transfer message to the intra-server center LAN 212 or the wide area network 214, and storing fingerprints in association with the original data A fingerprint cache (FP cache) 234 is provided. In addition, the processing unit 232 performs search and registration for the fingerprint (FP) compression determination unit 2321 and the fingerprint cache 234 for determining whether or not the data included in the transfer message is to be compressed. Fingerprint cache (FP cache) management unit 2322, fingerprint (FP) compression processing unit 2323 for performing processing such as replacing the data included in the transfer message with the corresponding fingerprint, and the difference between the data included in the transfer message A differential compression processing unit 2324 for performing processing such as replacement with compressed data is included.

図20に示されるように、本クライアント側プロキシ240は、ユーザオフィス内LAN216または広域ネットワーク214から転送メッセージを受信するための処理を行う受信部241、転送メッセージに含まれるデータに対してFP解凍を施すための処理部242、ユーザオフィス内LAN216または広域ネットワーク214へ転送メッセージを送信するための処理を行う送信部243、フィンガープリントとそのもととなったデータとを対応付けて記憶するためのフィンガープリント・キャッシュ(FP・キャッシュ)244を備えている。また、処理部242は、転送メッセージに含まれるデータを圧縮対象とすべきか否か並びに転送メッセージに対するFP圧縮および差分圧縮の有無を判定するためのフィンガープリント(FP)圧縮判定部2421、フィンガープリント・キャッシュ234に対する検索や登録などを行うためのフィンガープリント・キャッシュ(FPキャッシュ)管理部2422、FP圧縮された転送メッセージに含まれるフィンガープリントから元のデータを解凍するなどの処理を行うためのフィンガープリント(FP)解凍処理部2423、差分圧縮された転送メッセージに含まれる差分圧縮データから元のデータを解凍するなどの処理を行うための差分解凍処理部2424を含む。   As shown in FIG. 20, the client-side proxy 240 includes a receiving unit 241 that performs processing for receiving a transfer message from the user office LAN 216 or the wide area network 214, and performs FP decompression on the data included in the transfer message. A processing unit 242 for performing processing, a transmission unit 243 for performing processing for transmitting a transfer message to the LAN 216 in the user office or the wide area network 214, and a finger for associating and storing the fingerprint and the data on which the fingerprint is generated A print cache (FP cache) 244 is provided. Further, the processing unit 242 determines whether or not the data included in the transfer message should be compressed, and includes a fingerprint (FP) compression determination unit 2421 for determining whether there is FP compression and differential compression for the transfer message. Fingerprint cache (FP cache) management unit 2422 for performing search and registration for the cache 234, fingerprint for performing processing such as decompressing the original data from the fingerprint included in the FP compressed transfer message The (FP) decompression processing unit 2423 includes a differential decompression processing unit 2424 for performing processing such as decompressing the original data from the differentially compressed data included in the differentially compressed transfer message.

なお、圧縮側のFP圧縮判定部2321と解凍側のFP圧縮判定部2421は、前述したようにメッセージが予め定められた条件を満たすか否かを調べることによって、そのメッセージに含まれるデータをFP圧縮の適用対象とするか否かを判断する(すべてのメッセージをFP圧縮の適用対象にする場合には、圧縮側のFP圧縮判定部2321および後に示す手順例の該当部分は不要であり、解凍側のFP圧縮判定部2421の該当判断の部分および後に示す手順例の該当部分は不要である)。また、解凍側のFP圧縮判定部2421は、FP圧縮の適用対象のメッセージについて、そのデータがFP圧縮されたものか否かを判定する。以下では、FP圧縮の適用対象となるメッセージを転送する場合(FP圧縮の適用対象とすると判断された場合、またはすべてのメッセージをFP圧縮の適用対象にする場合)を中心に説明する。   Note that the compression side FP compression determination unit 2321 and the decompression side FP compression determination unit 2421 check whether the message satisfies a predetermined condition as described above, thereby converting the data included in the message into the FP. It is determined whether or not to apply compression (when all messages are to be applied to FP compression, the FP compression determination unit 2321 on the compression side and the corresponding part of the procedure example shown below are unnecessary, and decompression is performed. The corresponding determination part of the FP compression determination unit 2421 on the side and the corresponding part of the procedure example shown later are unnecessary). Further, the decompression-side FP compression determination unit 2421 determines whether or not the data of the FP compression target message is FP compressed. In the following, description will be focused on the case of transferring a message to which FP compression is applied (when it is determined that FP compression is to be applied, or when all messages are to be applied to FP compression).

図21及び図22に、サーバ側プロキシ30からクライアント側プロキシ240へリプライメッセージを転送する際のサーバ側プロキシ230の処理手順の一例を示す。なお、図21及び図22は、1つのリプライメッセージを受けたときの処理を記述しているが、実際はサーバ側プロキシ230が受け取ったリプライメッセージ全てに対して、図21及び図22に例示する処理を行う。   FIG. 21 and FIG. 22 show an example of the processing procedure of the server-side proxy 230 when the reply message is transferred from the server-side proxy 30 to the client-side proxy 240. 21 and 22 describe the processing when one reply message is received, but the processing illustrated in FIGS. 21 and 22 is actually performed for all reply messages received by the server-side proxy 230. I do.

サーバ側プロキシ230は、受信部231により、サーバ220からリプライメッセージを受信する(ステップS201)。   The server-side proxy 230 receives a reply message from the server 220 by the receiving unit 231 (step S201).

FP圧縮判定部2321は、該リプライメッセージのリプライデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS202)。リプライデータがFP圧縮対象外のものと判断されたならば(ステップS202)、受信したリプライメッセージを送信部33からクライアント側プロキシ240へ転送する(ステップS212)。   The FP compression determination unit 2321 checks and determines whether the reply data of the reply message is for FP compression (step S202). If it is determined that the reply data is not subject to FP compression (step S202), the received reply message is transferred from the transmission unit 33 to the client side proxy 240 (step S212).

ステップS202にて該リプライメッセージのリプライデータがFP圧縮対象のものであると判断されたならば、FPキャッシュ管理部322にて、該リプライデータのフィンガープリントの値を計算し(ステップS203)、該フィンガープリントの値をキーとしてフィンガープリント・キャッシュ234を検索する(ステップS204)。   If it is determined in step S202 that the reply data of the reply message is for FP compression, the FP cache management unit 322 calculates a fingerprint value of the reply data (step S203). The fingerprint cache 234 is searched using the fingerprint value as a key (step S204).

そして、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ234に登録されていたならば(ステップS205)、FP圧縮処理部2323にて、受信したリプライメッセージを、該フィンガープリントの値を用いてFP圧縮時のフォーマットにして(例えば図16等)、送信部233から、クライアント側プロキシ240へ送信する(ステップS206)。   If a set of the fingerprint value and the data corresponding to the fingerprint value is registered in the fingerprint cache 234 (step S205), the FP compression processing unit 2323 sends the received reply message to the fingerprint cache. The print value is used for the FP compression format (for example, FIG. 16) and transmitted from the transmission unit 233 to the client-side proxy 240 (step S206).

一方、ステップS204の検索の結果、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ234に登録されていなかったならば(ステップS205)、差分圧縮処理部2324にて、差分圧縮を行い(ステップS207)、差分圧縮に成功したか否か判定する(ステップS208)。   On the other hand, as a result of the search in step S204, if the set of the fingerprint value and the corresponding data is not registered in the fingerprint cache 234 (step S205), the differential compression processing unit 2324 Differential compression is performed (step S207), and it is determined whether or not the differential compression is successful (step S208).

差分圧縮に成功したか否かは、例えば、差分圧縮の対象とした元のデータのデータ量r0と、差分圧縮データのデータ量r1とを比較し、r0−r1>dを満たすならば、成功したと判断する。ここで、定数dは、予め定められた0以上の整数である。   Whether or not the differential compression has succeeded is determined if, for example, the data amount r0 of the original data targeted for differential compression is compared with the data amount r1 of the differential compression data, and if r0−r1> d is satisfied, Judge that Here, the constant d is a predetermined integer of 0 or more.

ステップS208にて差分圧縮に成功したと判断されたならば、次の2つの作業を行う。
(1−1)差分圧縮処理部2324にて、受信したリプライメッセージを、(必要に応じて該フィンガープリントの値を用いて)差分圧縮時のフォーマットにして(例えば図15(b)等)、送信部233から、クライアント側プロキシ240へ送信する(ステップS209)。
(1−2)FPキャッシュ管理部2322にて、該フィンガープリントの値と、該リプライメッセージとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ234に登録する(ステップS211)。
If it is determined in step S208 that the differential compression is successful, the following two operations are performed.
(1-1) In the differential compression processing unit 2324, the received reply message is converted into a format at the time of differential compression (for example, using the fingerprint value if necessary) (for example, FIG. 15B). The transmission unit 233 transmits to the client side proxy 240 (step S209).
(1-2) The FP cache management unit 2322 associates the fingerprint value with the reply message (using the fingerprint value as a key) and registers the fingerprint value in the fingerprint cache 234 (step S211). ).

なお、上記の(1−1)と(1−2)は、いずれを先に行ってもよいし、並行して行ってもよい。   Note that either (1-1) and (1-2) may be performed first or in parallel.

一方、ステップS208にて差分圧縮に失敗したと判断されたならば、次の2つの作業を行う。
(2−1)差分圧縮処理部2324にて、受信したリプライメッセージを、非圧縮時のフォーマットにして(例えば図15(a)等)、送信部233から、クライアント側プロキシ240へ送信する(ステップS210)。
(2−2)FPキャッシュ管理部2322にて、該フィンガープリントの値と、該リプライメッセージとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ234に登録する(ステップS211)。
On the other hand, if it is determined in step S208 that the differential compression has failed, the following two operations are performed.
(2-1) The differential compression processing unit 2324 converts the received reply message into a non-compressed format (for example, FIG. 15A) and transmits it from the transmission unit 233 to the client side proxy 240 (step) S210).
(2-2) The FP cache management unit 2322 associates the fingerprint value with the reply message (using the fingerprint value as a key) and registers it in the fingerprint cache 234 (step S211). ).

なお、上記の(2−1)では、差分圧縮処理部2324ではなく、FP圧縮処理部2323にて受信リプライメッセージを非圧縮時のフォーマットにするようにしてもよい。   In (2-1) above, the received reply message may be in a non-compressed format in the FP compression processing unit 2323 instead of the differential compression processing unit 2324.

また、上記の(2−1)と(2−2)は、いずれを先に行ってもよいし、並行して行ってもよい。   Moreover, either (2-1) and (2-2) may be performed first or in parallel.

次に、図23及び図24に、サーバ側プロキシ230からクライアント側プロキシ240へリプライメッセージを転送する際のクライアント側プロキシ240の処理手順の一例を示す。なお、図23及び図24は、1つのリクエストメッセージを受けたときの処理を記述しているが、実際はクライアント側プロキシ240が受け取ったリクエストメッセージ全てに対して、図23及び図24に例示する処理を行う。   Next, FIG. 23 and FIG. 24 show an example of the processing procedure of the client side proxy 240 when the reply message is transferred from the server side proxy 230 to the client side proxy 240. 23 and 24 describe the processing when one request message is received. Actually, the processing illustrated in FIGS. 23 and 24 is performed for all the request messages received by the client-side proxy 240. I do.

クライアント側プロキシ240は、受信部241により、サーバ側プロキシ230からリプライメッセージを受信する(ステップS211)。   The client side proxy 240 receives a reply message from the server side proxy 230 by the receiving unit 241 (step S211).

FP圧縮判定部2421は、該リプライメッセージのリプライデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS212)。リプライデータがFP圧縮対象外のものと判断されたならば(ステップS212)、受信したリプライメッセージを送信部43からクライアント250へ転送する(ステップS224)。   The FP compression determination unit 2421 determines whether or not the reply data of the reply message is for FP compression (step S212). If it is determined that the reply data is not subject to FP compression (step S212), the received reply message is transferred from the transmission unit 43 to the client 250 (step S224).

ステップS212にて該リプライメッセージのリプライデータがFP圧縮対象のものであると判断されたならば、FP圧縮判定部2421は、さらに、リプライデータがFP圧縮されているか否か調べ、判断する(ステップS213)。   If it is determined in step S212 that the reply data of the reply message is for FP compression, the FP compression determination unit 2421 further checks whether or not the reply data is FP compressed (step S212). S213).

ステップS213にて該リプライメッセージのリプライデータがFP圧縮されているものと判断されたならば(例えば図16等の場合)、FPキャッシュ管理部2422にて、該リプライデータのフィンガープリントの値を求め(ステップS214)、該フィンガープリントの値をキーとしてフィンガープリント・キャッシュ244を検索する(ステップS215)。   If it is determined in step S213 that the reply data of the reply message is FP-compressed (for example, in the case of FIG. 16 or the like), the FP cache management unit 2422 obtains the fingerprint value of the reply data. (Step S214), the fingerprint cache 244 is searched using the fingerprint value as a key (Step S215).

そして、FP解凍処理部2423にて、受信リプライメッセージに対して、フィンガープリント・キャッシュ234から検索された該フィンガープリントの値に対応するデータを付加し、プロキシ間で特別の情報を使用する場合には該情報を削除した後に、これを送信部243からクライアント250へ送信する(ステップS216)。   When the FP decompression processing unit 2423 adds data corresponding to the fingerprint value retrieved from the fingerprint cache 234 to the received reply message and uses special information between proxies. After deleting the information, transmits the information from the transmission unit 243 to the client 250 (step S216).

一方、ステップS213にて該リプライメッセージのリプライデータがFP圧縮されていないものと判断されたならば(例えば図15(a),(b)等の場合)、FP圧縮判定部2421は、さらに、該リプライデータが差分圧縮されているか否か判定する(ステップS217)。   On the other hand, if it is determined in step S213 that the reply data of the reply message is not FP-compressed (for example, in the case of FIGS. 15A and 15B), the FP compression determination unit 2421 further It is determined whether or not the reply data is differentially compressed (step S217).

ステップS217にて差分圧縮されていると判断されたならば(例えば図15(b)等の場合)、次の2つの作業を行う。
(1−1)差分解凍処理部2424にて、(FPキャッシュ管理部2422によりし参照データを検索・取得した後に)差分圧縮データを解凍して元のリプライデータを復元し(ステップS218)、該復元したリプライデータをリプライメッセージに付加し、またプロキシ間で特別の情報を使用する場合には受信リプライメッセージから該情報を削除し、該リプライメッセージを送信部243からクライアント250へ送信する(ステップS219)。
(1−2)FPキャッシュ管理部2422にて、該リプライデータのフィンガープリントの値を求め(ステップS220)、該フィンガープリントの値と、該リプライメッセージとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ234に登録する(ステップS223)。
If it is determined in step S217 that differential compression has been performed (for example, in the case of FIG. 15B), the following two operations are performed.
(1-1) The differential decompression processing unit 2424 decompresses the differential compressed data (after retrieving and acquiring the reference data by the FP cache management unit 2422) to restore the original reply data (step S218), When the restored reply data is added to the reply message, or when special information is used between proxies, the information is deleted from the received reply message, and the reply message is transmitted from the transmission unit 243 to the client 250 (step S219). ).
(1-2) The FP cache management unit 2422 obtains the fingerprint value of the reply data (step S220), associates the fingerprint value with the reply message (uses the fingerprint value as a key) And register it in the fingerprint cache 234 (step S223).

一方、ステップS217にて差分圧縮されていないと判断されたならば(例えば図15(a)等の場合)、次の2つの作業を行う。
(2−1)差分解凍処理部2424にて、プロキシ間で特別の情報を使用する場合には受信リプライメッセージから該情報を削除した後に、これを送信部243からクライアント250へ送信する(ステップS222)。
(2−2)FPキャッシュ管理部2422にて、該リプライデータのフィンガープリントの値を求め(ステップS221)、該フィンガープリントの値と、該リプライメッセージとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ234に登録する(ステップS223)。
On the other hand, if it is determined in step S217 that differential compression has not been performed (for example, in the case of FIG. 15A), the following two operations are performed.
(2-1) In the case where the difference decompression processing unit 2424 uses special information between proxies, the information is deleted from the received reply message and then transmitted from the transmission unit 243 to the client 250 (step S222). ).
(2-2) The FP cache management unit 2422 obtains the fingerprint value of the reply data (step S221), associates the fingerprint value with the reply message (uses the fingerprint value as a key) And register it in the fingerprint cache 234 (step S223).

なお、上記の(2−1)では、差分解凍処理部2424ではなく、FP解凍処理部2423にて処理するようにしてもよい。   In (2-1) above, the processing may be performed not by the differential decompression processing unit 2424 but by the FP decompression processing unit 2423.

また、上記の(1−1)と(1−2)は、いずれを先に行ってもよいし、並行して行ってもよい。上記の(2−1)と(2−2)についても同様である。   In addition, (1-1) and (1-2) may be performed first or in parallel. The same applies to the above (2-1) and (2-2).

ところで、ステップS214/ステップS220/ステップS221では、メッセージにフィンガープリントが記述されている場合に、該メッセージからフィンガープリントを得る方法と、メッセージにフィンガープリントが記述されてない場合に、リプライデータをもとにハッシュ関数等によってフィンガープリントの値を計算する方法とがある。なお、メッセージにフィンガープリントが記述されている場合であっても、リプライデータをもとにフィンガープリントの値を計算する方法も可能である。また、ステップS214/ステップS220/ステップS221は、フィンガープリントを使用する以前の任意のタイミングで行って構わない。ただし、後者の方法の場合には、ステップS220の計算は、ステップS218より後に行う必要がある。   By the way, in step S214 / step S220 / step S221, when the fingerprint is described in the message, the method for obtaining the fingerprint from the message, and when the fingerprint is not described in the message, the reply data is also stored. In addition, there is a method of calculating a fingerprint value by a hash function or the like. 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 S214 / step S220 / step S221 may be performed at an arbitrary timing before the fingerprint is used. However, in the latter method, the calculation in step S220 needs to be performed after step S218.

また、ステップS212、S213、S217の判断は、同時に行ってもよい。   The determinations in steps S212, S213, and S217 may be performed simultaneously.

次に、差分圧縮を行う手順について説明する。   Next, a procedure for performing differential compression will be described.

図25に、差分圧縮手順の一例を示す。これは、先に説明した3種類の指定を用いる場合の手順例である。   FIG. 25 shows an example of the differential compression procedure. This is a procedure example in the case of using the three types of designation described above.

ここでは、差分圧縮を行うために、フィンガープリント・キャッシュに入っているデータのうち、最近アクセスしたものを順に並べた履歴表を利用するものとする。この履歴表には、必ずしもフィンガープリント・キャッシュに入っている全てのデータのフィンガープリントが記録されている必要は無い。例えば、予め定められた個数が記録されていればよい(この場合、個数は、例えば差分圧縮の参照データとして使用するに有効な個数を想定して予め決定する)。もちろん、履歴表への記録の基準として、最近のアクセスの順以外の1又は複数の基準を用いてもよいし、最近のアクセスの順の基準に加えて他に1又は複数の基準を併用してもよい。   Here, in order to perform differential compression, it is assumed that a history table in which recently accessed data is sequentially arranged among the data stored in the fingerprint cache is used. This history table does not necessarily need to record the fingerprints of all data stored in the fingerprint cache. For example, a predetermined number may be recorded (in this case, the number is determined in advance assuming a number effective for use as reference data for differential compression, for example). Of course, one or a plurality of criteria other than the order of recent access may be used as the criteria for recording in the history table, and one or more other criteria may be used in addition to the criteria of the order of recent access. May be.

なお、履歴表は、フィンガープリント・キャッシュと一体化して構成する方法もある。   There is also a method in which the history table is configured integrally with the fingerprint cache.

(ステップS231)まず、作業用のコピーバッファおよび指示バッファを空にする。   (Step S231) First, the working copy buffer and instruction buffer are emptied.

このコピーバッファにコピーされた内容をもとに、図6(a)〜(c)の指示が作成され、これが指示バッファに書き出される。最終的に、指示バッファに書き出された指示の並びが、差分圧縮データになる。   Based on the contents copied to the copy buffer, the instructions in FIGS. 6A to 6C are created and written to the instruction buffer. Finally, the sequence of instructions written in the instruction buffer becomes differentially compressed data.

(ステップS232)差分圧縮の対象とするデータを文字列として扱い、その文字列上を指すポインタを用意する。まず、ポインタが当該文字列のうちの最初の文字を指すように設定する。   (Step S232) Data to be subjected to differential compression is handled as a character string, and a pointer pointing to the character string is prepared. First, the pointer is set to point to the first character in the character string.

以下では、ステップS241でポインタが当該文字列のうちの最後の文字に辿りついたと判断されるまで、ループ処理を実行することになる。   In the following, loop processing is executed until it is determined in step S241 that the pointer has reached the last character in the character string.

(ステップS233)履歴表に記録されているフィンガープリントに対応するデータを、新しいものから順に取り出し、その中に、差分圧縮したいデータの中のポインタの指す場所から予め定められた長さ以上マッチするデータを参照データとして取り出す。   (Step S233) The data corresponding to the fingerprints recorded in the history table are taken out in order from the newest one, and the data matches the predetermined length from the location indicated by the pointer in the data to be differentially compressed. Retrieve data as reference data.

なお、参照データと決定方法としては、種々の方法がある。例えば、履歴表に記録されているフィンガープリントに対応するデータを最新の順に調べていき、最初に予め定めた長さ以上マッチしたデータを参照データとして取り出す方法、履歴表に記録されているフィンガープリントに対応するデータの全てを調べ、その中でマッチした長さが最も長かったデータ(ただし、予め定めた長さ以上マッチしたことを条件とする)を参照データとして取り出す方法などがある。   There are various reference data and determination methods. For example, a method of examining data corresponding to fingerprints recorded in the history table in the latest order, and first extracting data that matches a predetermined length or more as reference data, fingerprints recorded in the history table There is a method in which all of the data corresponding to the above are examined, and the data having the longest matching length (provided that the matching is longer than a predetermined length) is taken out as reference data.

(ステップS234)参照データが見つけられたらならば、ステップS237へ移る。参照データが見つけられなかったならば、ステップS235へ移る。   (Step S234) If the reference data is found, the process proceeds to Step S237. If the reference data is not found, the process proceeds to step S235.

(ステップS237)ステップS234にて参照データが見つけられた場合に、コピーバッファが空でなければ、コピーバッファ中の文字列に対応する、図6の(c)の直接指定によるコピー指示を作成し、これを指示バッファに書き出す。コピーバッファは、空にする。なお、コピーバッファが空ならば、何もしない。   (Step S237) When the reference data is found in Step S234, if the copy buffer is not empty, a copy instruction by direct designation in FIG. 6C corresponding to the character string in the copy buffer is created. Write this to the instruction buffer. The copy buffer is emptied. If the copy buffer is empty, nothing is done.

(ステップS238)ステップS233にて見つかった参照データに対応する図6の(a)の参照データ定義が未だ指示バッファに書き出されていなければ、指示バッファに当該参照データ定義の指示を書き出す。   (Step S238) If the reference data definition in FIG. 6A corresponding to the reference data found in step S233 has not yet been written to the instruction buffer, the reference data definition instruction is written to the instruction buffer.

(ステップS239)参照データからマッチした文字列のコピー指示を、図6の(b)のコピー指示として指示バッファに書き出す。   (Step S239) The copy instruction of the matched character string from the reference data is written in the instruction buffer as the copy instruction of FIG.

(ステップS240)ポインタを参照データとマッチした文字列の長さ分だけ進める。   (Step S240) The pointer is advanced by the length of the character string that matches the reference data.

(ステップS235)一方、ステップS234にて参照データが見つけられた場合に、ポインタの指す文字をコピーバッファに入れる。   (Step S235) On the other hand, when the reference data is found in Step S234, the character pointed to by the pointer is placed in the copy buffer.

(ステップS236)ポインタを1文字分だけ進める。   (Step S236) The pointer is advanced by one character.

(ステップS241)差分圧縮の対象とするデータの最後までポインタが来ていなければ(処理していないデータ部分が残っていれば)、ステップS233へ戻る。差分圧縮の対象とするデータの最後までポインタが来ていたら(処理していないデータ部分が残っていなければ)、処理ループを抜けて、ステップS242へ移る。   (Step S241) If the pointer has not come to the end of the data to be subjected to differential compression (if there is an unprocessed data portion), the process returns to Step S233. If the pointer has come to the end of the data to be subjected to differential compression (if no unprocessed data portion remains), the processing loop is exited and the process proceeds to step S242.

(ステップS242)コピーバッファが空でなければ、コピーバッファ中の文字列に対応する、図6の(c)の直接指定によるコピー指示を作成し、これを指示バッファに書き出す。コピーバッファは、空にする。なお、コピーバッファが空ならば、何もしない。   (Step S242) If the copy buffer is not empty, a copy instruction by direct designation in FIG. 6C corresponding to the character string in the copy buffer is created and written to the instruction buffer. The copy buffer is emptied. If the copy buffer is empty, nothing is done.

このときの指示バッファの内容が、差分圧縮データとなる。   The contents of the instruction buffer at this time become differentially compressed data.

なお、前述のように、実際には、このようにして差分圧縮を行った後、差分圧縮を行った結果のデータサイズが、行う前のデータサイズよりも小さくなっている(あるいは一定基準(一定の圧縮量)を超えて小さくなっている)ことを確認する。差分圧縮によってデータサイズが小さくならない(あるいは一定基準(一定の圧縮量)を超えては小さくならない)場合には、差分圧縮しない方が良いので、データはそのまま転送する。   In addition, as described above, after the differential compression is actually performed in this way, the data size as a result of the differential compression is smaller than the data size before the execution (or a constant standard (constant Confirm that it is smaller than the compression amount). If the data size is not reduced by differential compression (or if it does not decrease beyond a certain standard (a certain amount of compression)), it is better not to perform differential compression, so the data is transferred as it is.

ところで、上記の差分圧縮の処理において、ステップS233の予め定められた長さ以上マッチする文字列を持つ最新のデータを選び出す処理が、最も時間がかかる処理であると考えられる。この処理をより高速化するために、ハッシュ表を利用することができる。履歴表に入れるデータから、その中の全ての予め定められた長さの文字列を取り出し、そのハッシュ値(例えば、全ての文字のコードを足したものなど)を計算し、ハッシュ表に登録しておく。このハッシュ表は、同じハッシュ値を持つデータがあればより最新のデータによって上書きされるようにしておく。
このハッシュ表を使って、差分圧縮したいデータの現在のポインタの位置から予め定められた長さの文字列のハッシュ値を求め、そのハッシュ値を使ってハッシュ表を引いて求めたデータが、ステップS233で選ぶべきデータの第1の候補になる。ここで、異なる文字列でも同じハッシュ値を生成する場合があるので、本当に同じかどうかは文字列を実際に比較して確認し、同じでなければ、履歴表のデータを順に見るなど方法で次の候補を探す。
By the way, in the differential compression process described above, the process of selecting the latest data having a character string that matches the predetermined length or more in step S233 is considered to be the process that takes the longest time. To speed up this process, a hash table can be used. Extract all the character strings of a predetermined length from the data to be entered in the history table, calculate the hash value (for example, the sum of all the character codes), and register it in the hash table. Keep it. This hash table is overwritten with the latest data if there is data having the same hash value.
Using this hash table, the hash value of a character string of a predetermined length is obtained from the current pointer position of the data to be differentially compressed, and the data obtained by subtracting the hash table using the hash value is the step It becomes the first candidate of data to be selected in S233. Here, since the same hash value may be generated even in different character strings, whether or not they are really the same is confirmed by actually comparing the character strings. Search for candidates.

ステップS233の処理を高速化する他の方法は、行を単位として比較処理を行う方法である。図25の手順では文字を単位として比較処理をしていたが、履歴表にあるすべてのデータに対して、そのデータ内の各行のハッシュ値の列を計算しておく。差分圧縮したいデータからも、まず、各行のハッシュ値の列を計算する。以降は、図25の手順と同様であるが、比較は文字単位ではなく、行のハッシュ値を単位として行う。この方法は、行を単位としているため、文字単位よりも比較回数を減らすことができる。ただし、ハッシュ値で比較するために、異なる行でも同じハッシュ値を持つ場合があるので、最終的にはハッシュ値が同じだと判断した後に、実際に行の中も比較して本当に同じかどうかを判断するのが望ましい。
もちろん、このように行を単位として比較する構成についても、上記のハッシュ技法を組み合わせることができる。この場合、連続する複数行を組み合わせて、予め定められた長さと同じか長くなる最少の行数を単位としてハッシュ表に登録すればよい。
Another method for speeding up the processing in step S233 is a method of performing comparison processing in units of rows. In the procedure of FIG. 25, comparison processing is performed in units of characters. For all data in the history table, a hash value column for each row in the data is calculated. First, a column of hash values of each row is calculated from data to be differentially compressed. The subsequent steps are the same as those in FIG. 25, but the comparison is performed not in units of characters but in units of row hash values. Since this method uses a line as a unit, the number of comparisons can be reduced as compared with a character unit. However, in order to compare by hash value, there may be the same hash value in different rows, so after finally judging that the hash values are the same, whether or not they are really the same by actually comparing the rows It is desirable to judge.
Of course, the above-described hash technique can be combined for such a configuration in which the comparison is performed in units of rows. In this case, a plurality of consecutive rows may be combined and registered in the hash table in units of the minimum number of rows that is the same as or longer than a predetermined length.

次に、図26に、差分圧縮手順の他の例を示す。これは、フィンガープリント・キャッシュに登録されているデータのうちの1つを参照データとし、プロキシ間では、参照データに対応するフィンガープリントの値と、転送データと参照データとの差分を示す情報とを転送する場合の手順例である。   Next, FIG. 26 shows another example of the differential compression procedure. This uses one of the data registered in the fingerprint cache as reference data, and between the proxies, the fingerprint value corresponding to the reference data, and information indicating the difference between the transfer data and the reference data It is an example of a procedure when transferring.

ここでも、前述したような履歴表を用いるものとする。   Again, the history table as described above is used.

まず、履歴表に記録されているフィンガープリントに対応するデータのうち、所定の基準を満たす一つを、参照データとして選択する(ステップS245)。   First, of the data corresponding to the fingerprints recorded in the history table, one satisfying a predetermined standard is selected as reference data (step S245).

所定の基準は、例えば、差分圧縮の対象とするデータのうち、参照データとするデータとの間でマッチしなかった部分のデータ量が、予め定められたデータ量以下であって、かつ、参照データをそのマッチしなかった部分によって複数の塊に分断したときにおけるその分断された塊の数が、予め定められた数以下である場合に、これを参照データとして選択可能とする。   The predetermined standard is, for example, that the data amount of a portion that does not match the reference data among the data to be subjected to differential compression is equal to or less than a predetermined data amount, and the reference When the data is divided into a plurality of chunks by the unmatched portion, if the number of the divided chunks is equal to or less than a predetermined number, this can be selected as reference data.

そして、参照データとして決定する方法としては、前述のように、例えば、履歴表に記録されているフィンガープリントに対応するデータを最新の順に調べていき、最初に予め定めた長さ以上マッチしたデータを参照データとして取り出す方法、履歴表に記録されているフィンガープリントに対応するデータの全てを調べ、その中でマッチしなかったデータ量や分断数が最も少なかったデータを参照データとして取り出す方法など、種々の方法がある。   As a method for determining the reference data, as described above, for example, the data corresponding to the fingerprints recorded in the history table are checked in the latest order, and the data that matches the predetermined length or more at first As a reference data, to examine all of the data corresponding to the fingerprint recorded in the history table, to extract the data that did not match and the data with the least number of divisions as reference data, etc. There are various methods.

参照データが見つけられたらならば(ステップS246)、参照データ定義の指示(例えば図6の(a))を、指示バッファに書き出す(ステップS247)。   If reference data is found (step S246), a reference data definition instruction (for example, FIG. 6A) is written to the instruction buffer (step S247).

参照データのうち、マッチしなかった部分(直接指定データで置換する部分)を示す指示(例えば図6の(b)と同じフォーマットの指示で1バイト目の指示識別子を変えたもの)を、指示バッファに書き出す(ステップS248)。   An instruction indicating a part of the reference data that has not been matched (a part to be replaced with the directly specified data) (for example, an instruction having the same format as that of FIG. Writing to the buffer (step S248).

参照データのマッチしなかった部分に嵌め込むべきデータを示す直接指定する指示(例えば図6の(c))を、指示バッファに書き出す(ステップS249)。   A direct designation instruction (for example, (c) in FIG. 6) indicating data to be inserted into the unmatched portion of the reference data is written to the instruction buffer (step S249).

なお、置換部分が複数個所ある場合には、その分だけステップS248とステップS249を実行する。   If there are a plurality of replacement parts, step S248 and step S249 are executed accordingly.

このときの指示バッファの内容が、差分圧縮データとなる。   The contents of the instruction buffer at this time become differentially compressed data.

一方、参照データが見つけられたらならば(ステップS246)、差分圧縮はしないことになる。   On the other hand, if reference data is found (step S246), differential compression is not performed.

なお、上記の図25や図26の説明では、履歴表をフィンガープリント・キャッシュとは別に設けるものとしたが、履歴表は、フィンガープリント・キャッシュと一体化して構成する方法もある。   In the description of FIG. 25 and FIG. 26 described above, the history table is provided separately from the fingerprint cache. However, there is a method in which the history table is integrated with the fingerprint cache.

また、上記の説明では、履歴表を用いるものとしたが、履歴表を用いない方法もある。例えば、フィンガープリント・キャッシュを所定の順番で(例えば、エントリ順にあるいはランダムに)予め定められた上限数だけ調べ、それらのうちで最良のものを使用するようにする方法や、フィンガープリント・キャッシュを所定の順番で(例えば、エントリ順にあるいはランダムに)調べ、予め定められた条件を満たす参照データが初めて得られた時点で、参照データを決定してしまう方法など、種々の方法がある。   In the above description, the history table is used. However, there is a method that does not use the history table. For example, the fingerprint cache is checked in a predetermined order (for example, in order of entry or at random) by a predetermined upper limit number, and the best one of them is used. There are various methods such as a method in which reference data is determined in a predetermined order (for example, in order of entry or randomly), and the reference data satisfying a predetermined condition is obtained for the first time.

また、履歴表またはフィンガープリント・キャッシュに、フィンガープリントに加えて、そのフィンガープリントを登録したときに元となったリプライデータを含んでいたリプライメッセージについてのURLをも保持しておき、参照データを探索する際に、まず差分圧縮対象のリプライデータを含むリプライメッセージについてのURLと同じURLを持つデータが、履歴表またはフィンガープリント・キャッシュに登録されていないかどうか調べ、登録されているならば当該URLと同じURLを持つデータを他のものよりも優先して、参照データとして使用できないかどうか調べるようにしてもよい。   In addition to the fingerprint, the history table or fingerprint cache also stores the URL of the reply message that included the reply data that was the original when the fingerprint was registered, and stores the reference data. When searching, first, it is checked whether or not data having the same URL as the reply message including the reply data to be subjected to differential compression is registered in the history table or the fingerprint cache. Data having the same URL as the URL may be prioritized over other data to check whether it can be used as reference data.

もちろん、図25や図26の他にも、種々の差分圧縮の手順が可能である。   Of course, in addition to FIG. 25 and FIG. 26, various differential compression procedures are possible.

なお、クライアント側プロキシ240からサーバ側プロキシ230へリクエストメッセージを転送する際にはフィンガープリント・キャッシュを用いないものとする場合には、サーバ側プロキシ230は、図27に例示するように、クライアント側プロキシ240からリクエストメッセージを受信し(ステップS225)、これをサーバ220へ送信する(ステップS226)、という手順で構わない。同様に、クライアント側プロキシ240は、図28に例示するように、クライアント250からリクエストメッセージを受信し(ステップS227)、これをサーバ側プロキシ230へ送信する(ステップS228)、という手順で構わない。   In the case where the fingerprint cache is not used when the request message is transferred from the client side proxy 240 to the server side proxy 230, the server side proxy 230, as illustrated in FIG. The procedure of receiving a request message from the proxy 240 (step S225) and transmitting it to the server 220 (step S226) may be used. Similarly, as illustrated in FIG. 28, the client-side proxy 240 may receive a request message from the client 250 (step S227) and transmit it to the server-side proxy 230 (step S228).

以下では、図29(登録時すなわち非圧縮時)、図30(FP圧縮時)および図31(登録時すなわち差分圧縮時)を参照しながら、フィンガープリント・キャッシュを利用したデータ転送についてより具体的に説明する。   Hereinafter, with reference to FIG. 29 (during registration, ie, uncompressed), FIG. 30 (during FP compression), and FIG. 31 (during registration, ie, differential compression), more specific data transfer using the fingerprint cache will be described. Explained.

まず、図29を参照しながら、サーバ側プロキシ230からクライアント側プロキシ240へ、フィンガープリント・キャッシュ登録されていないデータであって且つ差分圧縮も成功しなかったデータを転送するとともに、該データについてフィンガープリント・キャッシュ登録する場合の動作について説明する。   First, referring to FIG. 29, data that has not been registered in the fingerprint cache and that has not been successfully compressed is transferred from the server-side proxy 230 to the client-side proxy 240. The operation when registering a print cache will be described.

(1)クライアント250上のブラウザ等は、例えば“/A.cgi”というURLでサーバ220に、POSTメソッドのリクエストメッセージを出したとする。サーバ220へのリクエストメッセージは、まず、クライアント側プロキシ240に送られるように、ブラウザ等を設定しておく。   (1) It is assumed that the browser or the like on the client 250 issues a POST method request message to the server 220 with a URL of “/A.cgi”, for example. First, a browser or the like is set so that a request message to the server 220 is sent to the client-side proxy 240.

(2)クライアント250からリクエストメッセージを受け取ったクライアント側プロキシ240は、そのリクエストメッセージをサーバ側プロキシ230に転送する。   (2) The client-side proxy 240 that has received the request message from the client 250 transfers the request message to the server-side proxy 230.

(3)リクエストメッセージを受け取ったサーバ側プロキシ230は、そのリクエストメッセージをサーバ250へ転送する。   (3) The server-side proxy 230 that has received the request message transfers the request message to the server 250.

(4)サーバ220は、該リクエストメッセージに対する処理を行った後、サーバ側プロキシ230に、そのリプライメッセージを送り返す。   (4) After processing the request message, the server 220 sends the reply message back to the server-side proxy 230.

(5)リプライメッセージを受け取ったサーバ側プロキシ230は、まず、受信リプライメッセージの持つリプライデータのフィンガープリントを計算し、そのフィンガープリント名を持ったデータがフィンガープリント・キャッシュ234に入っているかどうかを調べる。ここでは、入っておらず、初めてのデータ(一旦フィンガープリント・キャッシュ登録されたものがその後に削除あるいは無効化されることがある構成の場合に、一旦フィンガープリント・キャッシュ登録されたが削除あるいは無効化され、その後において初めてである場合を含む)であるので、そのデータをフィンガープリントを名前としてフィンガープリント・キャッシュ234に入れる(登録する)。   (5) Upon receiving the reply message, the server-side proxy 230 first calculates the fingerprint of the reply data included in the received reply message, and determines whether the data having the fingerprint name is in the fingerprint cache 234. Investigate. Here, for the first time not entered, the data that was registered in the fingerprint cache is deleted or invalidated in the case of the configuration that may be deleted or invalidated afterwards. Therefore, the data is put (registered) in the fingerprint cache 234 with the fingerprint as a name.

なお、圧縮対象になるデータをFP圧縮できなかった場合には、差分圧縮処理を行い、リプライデータを差分圧縮してデータ量を減らすことができるならば、差分圧縮するが、ここでは、リプライデータを差分圧縮してデータ量を減らすことができなかったものとしている。   If the data to be compressed cannot be FP-compressed, differential compression processing is performed, and if the reply data can be differentially compressed to reduce the amount of data, differential compression is performed. The amount of data could not be reduced by differential compression.

(6)サーバ側プロキシ230は、データを載せたリプライメッセージをクライアント側プロキシ240に転送する。なお、前述したように、リプライデータから計算したフィンガープリントの値を、リプライヘッダ等に入れて送ると、クライアント側プロキシ240で再度フィンガープリントを計算する手間を省くことが出来る。   (6) The server-side proxy 230 transfers a reply message carrying data to the client-side proxy 240. As described above, when the fingerprint value calculated from the reply data is sent in the reply header or the like, the trouble of calculating the fingerprint again by the client side proxy 240 can be saved.

(7)リプライメッセージを受け取ったクライアント側プロキシ240は、初めてのデータであるので、リプライデータをフィンガープリント・キャッシュ244に登録する。なお、前述したように、リプライデータからフィンガープリントを計算するか、あるいはサーバ側プロキシがリプライヘッダ等に入れたフィンガープリントを取り出し、これを名前として入れる。   (7) Since the client-side proxy 240 that has received the reply message is the first data, it registers the reply data in the fingerprint cache 244. As described above, the fingerprint is calculated from the reply data, or the fingerprint put in the reply header or the like by the server side proxy is taken out and this is entered as a name.

(8)クライアント側プロキシ240は、(リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ230とクライアント側プロキシ240との間だけで使用される情報が存在する構成の場合には、これを削除した後に、)リプライメッセージを、クライアント250(上で動作するブラウザ等)へ送り返す。   (8) The client-side proxy 240 deletes (in the case of a configuration in which information used only between the server-side proxy 230 and the client-side proxy 240 such as a fingerprint value exists in the reply header or the like) After that, a reply message is sent back to the client 250 (such as a browser operating on the client 250).

なお、サーバ側プロキシ230において、上記の(5)のフィンガープリント・キャッシュ登録は、(6)の動作の後に行っても構わない。また、クライアント側プロキシ240において、(7)のフィンガープリント・キャッシュ登録は、(8)の動作の後に行っても構わない。   The server-side proxy 230 may perform the above-described fingerprint cache registration (5) after the operation (6). In the client-side proxy 240, the fingerprint cache registration of (7) may be performed after the operation of (8).

次に、図30を参照しながら、図29の動作が行われてキャッシュ登録されているデータを、サーバ側プロキシ230からクライアント側プロキシ240へ転送する場合の動作について説明する。   Next, with reference to FIG. 30, an operation in the case where the data registered in the cache by performing the operation of FIG. 29 is transferred from the server-side proxy 230 to the client-side proxy 240 will be described.

(1)〜(4)は、図29を参照して説明した動作における(1)〜(4)と同様である。   (1) to (4) are the same as (1) to (4) in the operation described with reference to FIG.

(5)サーバ250からリプライメッセージを受け取ったサーバ側プロキシ240は、まず、受信リプライメッセージの持つリプライデータのフィンガープリントを計算し、そのフィンガープリント名を持ったデータがフィンガープリント・キャッシュ234に入っているかどうかを調べる。ここではフィンガープリント・キャッシュ登録されているので、(前述したように例えばフィンガープリントの値をリプライヘッダ等に入れ且つリプライボディを空にするなどして)リプライボディのデータをフィンガープリントで置き換える。   (5) Upon receiving the reply message from the server 250, the server-side proxy 240 first calculates the fingerprint of the reply data included in the received reply message, and the data having the fingerprint name enters the fingerprint cache 234. Find out if it is. Since the fingerprint cache is registered here, the reply body data is replaced with the fingerprint (for example, by inserting the fingerprint value into the reply header or the like and emptying the reply body as described above).

(6)サーバ側プロキシ230は、リプライボディをフィンガープリントで置き換えたリプライメッセージをクライアント側プロキシ240に転送する。   (6) The server-side proxy 230 transfers a reply message in which the reply body is replaced with a fingerprint to the client-side proxy 240.

(7)リプライメッセージを受け取ったクライアント側プロキシ240は、リプライデータがフィンガープリントで置き換えられていることを検出し、(前述したように例えばリプライヘッダなどにて)指定されたフィンガープリントを使ってフィンガープリント・キャッシュ244から対応するデータを取り出し、これをリプライボディに入れる。また、リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ230とクライアント側プロキシ240との間だけで使用される情報が存在する構成の場合には、これを削除する。   (7) Upon receiving the reply message, the client-side proxy 240 detects that the reply data has been replaced with the fingerprint, and uses the specified fingerprint (for example, in the reply header as described above) The corresponding data is fetched from the print cache 244 and placed in the reply body. In addition, in the case where the information used only between the server-side proxy 230 and the client-side proxy 240 is present in the reply header or the like, such as a fingerprint value, this is deleted.

(8)そして、クライアント側プロキシ230は、リプライメッセージを、クライアント(上で動作するブラウザ等)へ送り返す。   (8) Then, the client-side proxy 230 returns a reply message to the client (such as a browser operating on the client).

ところで、サーバ側プロキシ230およびクライアント側プロキシ240のフィンガープリント・キャッシュは、その容量に上限があるため、所定のアルゴリズムに従いガーベジコレクションを行って、例えば古いデータや使いそうに無いデータを消して行くのが好ましい。   By the way, since the fingerprint caches of the server side proxy 230 and the client side proxy 240 have an upper limit in capacity, garbage collection is performed according to a predetermined algorithm, for example, erasing old data or data that is unlikely to be used. Is preferred.

ただし、このようにすると、サーバ側プロキシ230のフィンガープリント・キャッシュ234は持っていてもクライアント側プロキシ240のフィンガープリント・キャッシュ244では既に消されてしまっているデータが発生し得ることになるので、上記の(7)で、クライアント側プロキシ240において、フィンガープリントをもとにしてフィンガープリント・キャッシュ244からリプライデータを置き換えるべきデータを取り出そうとしたが、フィンガープリント・キャッシュ244に該当するフィンガープリントとデータの組が存在しない場合がある。このような場合には、例えば、クライアント側プロキシ240は、サーバ側プロキシ230に対して、指定したフィンガープリントのデータを送るように依頼し、依頼されたサーバ側プロキシ230は、指定されたフィンガープリントのデータをフィンガープリント・キャッシュ234から取り出して送り返すような仕組みを設ければよい。   However, in this case, even if the fingerprint cache 234 of the server-side proxy 230 is held, data that has been deleted in the fingerprint cache 244 of the client-side proxy 240 can be generated. In the above (7), the client-side proxy 240 tried to extract data to replace the reply data from the fingerprint cache 244 based on the fingerprint, but the fingerprint and data corresponding to the fingerprint cache 244 May not exist. In such a case, for example, the client-side proxy 240 requests the server-side proxy 230 to send data of the designated fingerprint, and the requested server-side proxy 230 sends the designated fingerprint. It is sufficient to provide a mechanism for fetching the data from the fingerprint cache 234 and sending it back.

なお、逆に、サーバ側プロキシ230のフィンガープリント・キャッシュ234では既に消されてしまっているがクライアント側プロキシ240のフィンガープリント・キャッシュ244はまだ持っていてるデータが存在する場合には、図29を参照して説明した動作における(7)で、クライアント側プロキシ240において、フィンガープリント/リプライデータをフィンガープリント・キャッシュ244に登録する際に、その時点で登録されていたフィンガープリント/リプライデータに対して上書きしてもよい。   On the other hand, when there is data already deleted in the fingerprint cache 234 of the server side proxy 230 but still in the fingerprint cache 244 of the client side proxy 240, FIG. When the fingerprint / reply data is registered in the fingerprint cache 244 in the client-side proxy 240 in (7) in the operation described with reference to the fingerprint / reply data registered at that time. May be overwritten.

図30を参照して説明した動作における(5)で、サーバ側プロキシ230において、リプライデータのフィンガープリントを求め、該フィンガープリントがフィンガープリント・キャッシュ234に入っていれば、当該プライデータと同じデータが該フィンガープリントと組になってフィンガープリント・キャッシュ234に入っているものとみなして処理している。実用上、異なるデータから同じフィンガープリントが生成されないことを前提にすれば、この方法で十分であるが、非常に小さな確率で異なるデータのフィンガープリントが偶々同じ値になってしまった場合に生じるエラーを取り除くようにする方法もある。この場合には、リプライデータから求めたフィンガープリントがフィンガープリント・キャッシュ234に入っているときに、該フィンガープリントと組になってフィンガープリント・キャッシュ234に入っているデータと、当該プライデータとを比較して、同じか否かを判断するようにすればよい。このとき、もしフィンガープリントは同じであるが内容が異なるデータが登録されていると判断された場合の処理は、以下に例示するような方法が考えられる。
・そのフィンガープリントは以降使用しないものとする(そのフィンガープリントを与えるデータは以後キャッシュされないことになる)。
・先に登録されているフィンガープリント/データを優先する(登録中のフィンガープリントと同じ値のフィンガープリントを与える他のデータは、その登録中はキャッシュされないことになる)。
・現在登録対象となっているフィンガープリント/データを優先する(登録中のフィンガープリント/データは、同じ値のフィンガープリントを与える他のデータによって次々と更新されていくことになる)。
In the operation (5) described with reference to FIG. 30, the server-side proxy 230 obtains the fingerprint of the reply data, and if the fingerprint is in the fingerprint cache 234, the same data as the corresponding ply data. Are processed in the fingerprint cache 234 as a pair with the fingerprint. In practice, this method is sufficient if the same fingerprint is not generated from different data, but an error that occurs when the fingerprints of different data accidentally become the same value with a very small probability. There is also a way to get rid of. In this case, when the fingerprint obtained from the reply data is stored in the fingerprint cache 234, the data paired with the fingerprint and stored in the fingerprint cache 234 and the ply data are combined. What is necessary is just to judge whether it is the same by comparing. At this time, if it is determined that data having the same fingerprint but different contents is registered, a method exemplified below can be considered.
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).

図31を用いて、差分転送を行う本実施形態の動作を説明する。   The operation of this embodiment for performing differential transfer will be described with reference to FIG.

(1)〜(4)は、図29を参照して説明した動作における(1)〜(4)と同様である。   (1) to (4) are the same as (1) to (4) in the operation described with reference to FIG.

(5)リプライメッセージを受け取ったサーバ側プロキシ230は、まず、受信リプライメッセージの持つリプライデータのフィンガープリントを計算し、そのフィンガープリント名を持ったデータがフィンガープリント・キャッシュ234に入っているかどうかを調べる。ここでは、入っておらず、初めてのデータであるので、そのデータをフィンガープリントを名前としてフィンガープリント・キャッシュ234に入れる(登録する)。   (5) Upon receiving the reply message, the server-side proxy 230 first calculates the fingerprint of the reply data included in the received reply message, and determines whether the data having the fingerprint name is in the fingerprint cache 234. Investigate. Here, since it is not entered and is the first data, the data is entered (registered) in the fingerprint cache 234 with the fingerprint as a name.

(6)圧縮対象になるデータをFP圧縮できなかった場合には、差分圧縮処理を行い、リプライデータを差分圧縮してデータ量を減らすことができるならば、差分圧縮する。ここでは、フィンガープリントが“71F0…73E6”のデータを参照データとした場合に、リプライデータを差分圧縮してデータ量を減らすことができたものとする。リプライデータを差分圧縮データに置き換え、リプライヘッダ等に差分圧縮したことを示す情報を入れる。   (6) If the data to be compressed cannot be FP compressed, differential compression processing is performed, and if the reply data can be differentially compressed to reduce the data amount, differential compression is performed. Here, it is assumed that when data having a fingerprint of “71F0... 73E6” is used as reference data, the reply data is differentially compressed to reduce the data amount. Reply data is replaced with differential compression data, and information indicating that differential compression has been performed is put in a reply header or the like.

(7)サーバ側プロキシ230は、リプライメッセージをクライアント側プロキシに転送する。   (7) The server side proxy 230 transfers the reply message to the client side proxy.

(8)クライアント側プロキシ240は、リプライヘッダ等を見て、リプライデータが差分圧縮されていることを知り、圧縮の解凍を行う。このとき、まず、圧縮されたデータ内に指定されている参照データのフィンガープリント“71F0…73E6”を取り出し、次に、該フィンガープリントに対応するデータをフィンガープリント・キャッシュから取り出して使用する。解凍したデータをリプライデータに入れ、リプライヘッダのコンテンツサイズなど必要なヘッダを書き換える。   (8) The client-side proxy 240 sees the reply header and the like, knows that the reply data is differentially compressed, and decompresses the compression. At this time, first, the fingerprint “71F0... 73E6” of the reference data designated in the compressed data is extracted, and then the data corresponding to the fingerprint is extracted from the fingerprint cache and used. Put the decompressed data in the reply data and rewrite the necessary headers such as the content size of the reply header.

(9)また、リプライメッセージを受け取ったクライアント側プロキシ240は、初めてのデータであるので、解凍したリプライデータをフィンガープリント・キャッシュ244に登録する。また、リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ230とクライアント側プロキシ240との間だけで使用される情報が存在する構成の場合には、これを削除する。なお、前述したように、リプライデータからフィンガープリントを計算するか、あるいはサーバ側プロキシがリプライヘッダ等に入れたフィンガープリントを取り出し、これを名前として入れる。   (9) Since the client side proxy 240 receiving the reply message is the first data, it registers the decompressed reply data in the fingerprint cache 244. In addition, in the case where the information used only between the server-side proxy 230 and the client-side proxy 240 is present in the reply header or the like, such as a fingerprint value, this is deleted. As described above, the fingerprint is calculated from the reply data, or the fingerprint put in the reply header or the like by the server side proxy is taken out and this is entered as a name.

(10)クライアント側プロキシ240は、リプライメッセージを、クライアント250(上で動作するブラウザ等)へ送り返す。   (10) The client-side proxy 240 sends a reply message back to the client 250 (such as a browser operating on the client 250).

なお、上記の(5)では、圧縮対象で未登録のデータは、すべてフィンガープリント・キャッシュに登録するものとし、また、上記の(6)で参照データに用いたデータは、すべてフィンガープリント・キャッシュの登録を維持するものとしたが、参照データに唯一のデータを使用した場合であって、かつ、差分圧縮対象となったデータと、その差分圧縮に用いた参照データとが、ほとんど同じ内容(例えば、両者でマッチしないデータ量が基準以下)である場合には、(i)圧縮対象で未登録のデータはフィンガープリント・キャッシュに登録せず、参照データはフィンガープリント・キャッシュの登録を維持する、あるいは(ii)圧縮対象で未登録のデータをフィンガープリント・キャッシュに登録し、参照データはフィンガープリント・キャッシュから削除する、などの方法も可能である。また、参照データに唯一のデータを使用した場合であって、かつ、差分圧縮対象となったデータと、その差分圧縮に用いた参照データとが、ほとんど同じ内容であって、かつ、URLが同一の場合には、データが更新されたものとして、圧縮対象で未登録のデータをフィンガープリント・キャッシュに登録し、参照データはフィンガープリント・キャッシュから削除する、などの方法も可能である。その他にも種々のバリエーションがある。   In (5) above, all unregistered data to be compressed is registered in the fingerprint cache, and all the data used as reference data in (6) above is the fingerprint cache. However, when the only data is used for the reference data and the data subject to differential compression is almost the same as the reference data used for the differential compression ( For example, if the amount of data that does not match is below the standard), (i) unregistered data to be compressed is not registered in the fingerprint cache, and the reference data maintains the fingerprint cache registration Or (ii) Register unregistered data to be compressed in the fingerprint cache and reference data as fingerprint To remove from the cache, it is also possible to methods such as. In addition, when the only data is used for the reference data, the data subject to differential compression and the reference data used for the differential compression have almost the same contents and the same URL. In this case, it is possible to register the unregistered data to be compressed in the fingerprint cache and delete the reference data from the fingerprint cache, assuming that the data has been updated. There are various other variations.

ところで、これまで説明した例では、サーバ側プロキシ230からクライアント側プロキシ240へリプライデータを転送する際にフィンガープリント・キャッシュを利用するものとし、あるデータとこれに対するフィンガープリントとの組をフィンガープリント・キャッシュに登録するタイミングは、そのデータが初めてサーバ側プロキシ230からクライアント側プロキシ240へ転送されるときとしている。しかし、例えばWEBベースのASPのような利用法では、データはまずユーザオフィス等で作成されてサーバに登録され、それをブラウザ等からアクセスするような場合が多いため、このような場合には、当該データをサーバに登録する時点でクライアント側プロキシおよびサーバ側プロキシのフィンガープリント・キャッシュに登録しておくと、それ以降のアクセスを高速化することができる。そこで、サーバが送信するリプライデータが、もともとはクライアントからサーバへ転送されたデータ(ただし、この転送のときはリクエストデータ)である場合には、登録タイミングを、該リプライデータとなる元のリクエストデータが初めてクライアント側プロキシ140からサーバ側プロキシ130へ転送されるときとするようにしてもよい(この場合、当該データがリプライデータとなって初めてサーバ側プロキシ130からクライアント側プロキシ140へ転送される際には、すでにフィンガープリント・キャッシュへの登録が完了していることになるので、リプライデータとしては初めての転送であっても、フィンガープリント・キャッシュを利用して、転送データ量を削減することができる)。   By the way, in the example described so far, when the reply data is transferred from the server-side proxy 230 to the client-side proxy 240, the fingerprint cache is used, and a set of a certain data and a fingerprint corresponding thereto is used as a fingerprint. The data is registered in the cache when the data is transferred from the server side proxy 230 to the client side proxy 240 for the first time. However, in the usage such as WEB-based ASP, for example, the data is first created in the user office or the like and registered in the server and accessed from the browser or the like in many cases. If the data is registered in the fingerprint cache of the client-side proxy and the server-side proxy at the time when the data is registered in the server, subsequent access can be speeded up. Therefore, if the reply data sent by the server is data originally transferred from the client to the server (however, in this case, request data), the registration request is sent to the original request data as the reply data. May be transferred from the client side proxy 140 to the server side proxy 130 for the first time (in this case, when the data becomes reply data and is transferred from the server side proxy 130 to the client side proxy 140 for the first time). Since the registration to the fingerprint cache has already been completed, even if it is the first transfer of reply data, the amount of transferred data can be reduced by using the fingerprint cache. it can).

さて、これまで説明した例では、サーバ側プロキシ230からクライアント側プロキシ240へリプライデータを転送するときに、該リプライデータがフィンガープリント・キャッシュに登録されているデータと同じものである場合には、該リプライデータに代えて、対応するフィンガープリントを転送し、または差分圧縮データを転送することで、ネットワークのトラフィックを軽減しているが、本発明は、クライアント側プロキシ240からサーバ側プロキシ230へリクエストデータを転送する場合についてさらに適用することが可能である。   In the example described so far, when the reply data is transferred from the server-side proxy 230 to the client-side proxy 240, if the reply data is the same as the data registered in the fingerprint cache, The network traffic is reduced by transferring a corresponding fingerprint or differentially compressed data instead of the reply data, but the present invention reduces the request from the client side proxy 240 to the server side proxy 230. The present invention can be further applied to the case of transferring data.

なお、FP圧縮を両方に適用する場合に、差分圧縮をいずれか一方についてのみ適用することも可能である。   In addition, when applying FP compression to both, it is also possible to apply differential compression only about either one.

また、FP圧縮および差分圧縮を、クライアント側プロキシ240からサーバ側プロキシ230へリクエストデータを転送する場合についてのみ適用することも可能である。   It is also possible to apply FP compression and differential compression only when request data is transferred from the client side proxy 240 to the server side proxy 230.

FP圧縮および差分圧縮をクライアント側プロキシ240からサーバ側プロキシ230へのリクエストデータ転送に適用する場合、すでに説明したリプライデータに対するサーバ側プロキシ230とクライアント側プロキシ240との役割を逆にすればよいので、FP圧縮および差分圧縮を両データ転送に適用する場合には、サーバ側プロキシ230は図19の構成に加えて、更に処理部232にフィンガープリント解凍処理部および差分解凍処理部を備え、クライアント側プロキシ240は図20の構成に加えて、更に処理部242にフィンガープリント圧縮処理部および差分圧縮処理部を備えればよい。   When FP compression and differential compression are applied to request data transfer from the client-side proxy 240 to the server-side proxy 230, the roles of the server-side proxy 230 and the client-side proxy 240 for the reply data already described may be reversed. When the FP compression and differential compression are applied to both data transfers, the server-side proxy 230 further includes a fingerprint decompression processing unit and a differential decompression processing unit in the processing unit 232 in addition to the configuration of FIG. In addition to the configuration of FIG. 20, the proxy 240 may further include a fingerprint compression processing unit and a differential compression processing unit in the processing unit 242.

なお、いずれのプロキシにおいても、フィンガープリント圧縮処理部とフィンガープリント解凍処理部とを併せて、フィンガープリント(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. Similarly, the differential compression processing unit and the differential decompression processing unit may be combined into a differential compression / decompression processing unit.

また、サーバ側プロキシ230やクライアント側プロキシ240は、リプライデータ転送に対するフィンガープリント・キャッシュとは独立にリクエストデータ転送に対するフィンガープリント・キャッシュを設けてもよいが、リプライデータ転送とクエストデータ転送とで同じフィンガープリント・キャッシュを共用してもよい。差分圧縮の際に前述した履歴表を使用する構成の場合には、履歴表についても同様に独立して設けてもよいし、共用してもよい。   In addition, the server-side proxy 230 and the client-side proxy 240 may be provided with a fingerprint cache for request data transfer independently of the fingerprint cache for reply data transfer, but the same for reply data transfer and quest data transfer The fingerprint cache may be shared. In the case of the configuration using the above-described history table at the time of differential compression, the history table may be provided independently as well, or may be shared.

図32に、この場合のプロキシ(サーバ側プロキシ、クライアント側プロキシ)の構成例を示す。   FIG. 32 shows a configuration example of the proxy (server side proxy, client side proxy) in this case.

また、図33及び図34に、クライアント側プロキシ240からサーバ側プロキシ230へリクエストメッセージを転送する際のクライアント側プロキシ240の処理手順の一例を示す。図33及び図34は、図21及び図22において、転送するメッセージがリプライメッセージからリクエストメッセージになり、メッセージ送信元がサーバからクライアントになり、メッセージ送信先がクライアントからサーバになり、サーバ側プロキシ40の動作とクライアント側プロキシ40の動作とを入れ替えたものに相当する。   FIG. 33 and FIG. 34 show an example of a processing procedure of the client side proxy 240 when transferring a request message from the client side proxy 240 to the server side proxy 230. 33 and 34 are the same as in FIG. 21 and FIG. 22, in which the message to be transferred changes from the reply message to the request message, the message transmission source changes from the server to the client, the message transmission destination changes from the client to the server, and the server side proxy 40 And the operation of the client side proxy 40 are interchanged.

また、図35及び図36に、クライアント側プロキシ240からサーバ側プロキシ230へリクエストメッセージを転送する際のサーバ側プロキシ230の処理手順の一例を示す。   35 and 36 show an example of a processing procedure of the server side proxy 230 when transferring a request message from the client side proxy 240 to the server side proxy 230.

図35及び図36は、図23及び図24において、転送するメッセージがリプライメッセージからリクエストメッセージになり、メッセージ送信元がサーバからクライアントになり、メッセージ送信先がクライアントからサーバになり、サーバ側プロキシ40の動作とクライアント側プロキシ40の動作とを入れ替えたものに相当する。   35 and 36, in FIG. 23 and FIG. 24, the message to be transferred changes from the reply message to the request message, the message transmission source changes from the server to the client, the message transmission destination changes from the client to the server, and the server side proxy 40 And the operation of the client side proxy 40 are interchanged.

このようにリクエストデータに対してもフィンガープリントまたは差分圧縮データで置き換えられるように実施すると、例えば、同じファイルを何度もサーバにアップロードする際ときには、2回目以降フィンガープリントを送るだけで済むので、ネットワークのトラフィックを軽減させることができる。   In this way, if the request data is also replaced with fingerprints or differentially compressed data, for example, when uploading the same file to the server many times, it is only necessary to send the fingerprint after the second time. Network traffic can be reduced.

なお、本実施形態では、クライアント側プロセスからサーバ側プロキシへ転送されるリクエストメッセージや、サーバ側プロキシからクライアント側プロセスへ転送されるリプライメッセージを対象とする場合について示してきたが、あるプロキシに、リクエストメッセージを送信する装置とリプライメッセージを送信する装置との両方、あるいはリクエストメッセージおよびリプライメッセージの両方を送信する装置が接続されている場合には、もちろん、クライアント側プロセスからサーバ側プロキシへ転送されるリクエストメッセージおよびリプライメッセージならびにサーバ側プロキシからクライアント側プロセスへ転送されるリクエストメッセージおよびリプライメッセージを対象とすることや、クライアント側プロセスからサーバ側プロキシへ転送されるリクエストメッセージおよびサーバ側プロキシからクライアント側プロセスへ転送されるリクエストメッセージのみ対象とすることなども可能である。   In the present embodiment, the request message transferred from the client-side process to the server-side proxy and the reply message transferred from the server-side proxy to the client-side process 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 process to the server side proxy. Target request messages and reply messages, and request messages and reply messages transferred from the server side proxy to the client side process. 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 process.

ところで、これまでは1つのサーバ側プロキシと1つのクライアント側プロキシとの間の1対1の通信に着目して説明してきたが、本発明の適用範囲はもちろんサーバ側プロキシとクライアント側プロキシとが1対1で通信するシステムには限定されるものではないく、サーバ側プロキシとクライアント側プロキシとが1対多で通信するシステム、サーバ側プロキシとクライアント側プロキシとが多対1で通信するシステム、あるいはサーバ側プロキシとクライアント側プロキシとが多対多で通信するシステムにも適用可能である。例えば、図37のように、複数のユーザオフィスに設置したクライアント側プロキシや、モバイルユーザが利用する個人用プロキシなどがサーバ側プロキシを共有して使用するように実施することも可能である。   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. 37, 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.

また、本実施形態のサーバ側プロキシあるいはクライアント側プロキシ(一方でも両方でもよい)に、プロキシの共有キャッシュ機構でキャッシュ可能とされているリプライデータについて、クライアントが出したリクエストメッセージにおいて指定されていたURLと、該リクエストメッセージに対応するリプライメッセージに含まれていたリプライデータと、該リプライデータに対応するフィンガープリントと、該リプライメッセージのリプライ・ヘッダに入れられて来たMIMEタイプなどのリクエスト・ヘッダを構成するのに必要な情報や有効期間の判定に使うためのタイムスタンプなどの情報を対応付けてキャッシュしておき(フィンガープリント・キャッシュにすべて保持してもよいし、リプライデータを除く情報(URLとフィンガープリントと他の情報)を保持する対応テーブルを別途設けてもよい)、これとフィンガープリント・キャッシュとを併用することで、プロキシサーバの共有キャッシュの動作をも行うようにすることができる。例えば、クライアント側プロキシに該キャッシュ機能を設けた場合、クライアントが送信したリクエストメッセージにて指定されているURLに対するリプライデータがキャッシュされており且つ該データが有効である場合には、該クライアント側プロキシが、URLに対応するデータをフィンガープリント・キャッシュから取得して、リプライメッセージを作成して、これをクライアントに応答することができる。   The URL specified in the request message issued by the client for the reply data that can be cached by the shared cache mechanism of the proxy in the server side proxy or the client side proxy (or both) of the present embodiment A reply data included in the reply message corresponding to the request message, a fingerprint corresponding to the reply data, and a request header such as the MIME type included in the reply header of the reply message. Information necessary for configuration and information such as a time stamp to be used for determining the validity period are cached in association with each other (may be stored in the fingerprint cache or information excluding reply data (URL) And fu Emissions fingerprinting and may be separately provided a correspondence table that holds other information)), by a combination of this with fingerprint cache, it is possible to perform also an operation of the shared cache of the proxy server. For example, when the cache function is provided in the client-side proxy, when the reply data for the URL specified in the request message transmitted by the client is cached and the data is valid, the client-side proxy Can retrieve data corresponding to the URL from the fingerprint cache, create a reply message, and respond to the client.

なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
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.

なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
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.

また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
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.

本発明の一実施形態に係るコンピュータ・ネットワーク・システムの構成例を示す図The figure which shows the structural example of the computer network system which concerns on one Embodiment of this invention. 同実施形態に係るコンピュータ・ネットワーク・システムの他の構成例を示す図The figure which shows the other structural example of the computer network system which concerns on the embodiment 同実施形態に係るコンピュータ・ネットワーク・システムのさらに他の構成例を示す図The figure which shows the further another structural example of the computer network system which concerns on the embodiment 同実施形態で使用するフィンガープリントについて説明するための図The figure for demonstrating the fingerprint used in the embodiment 同実施形態で使用するフィンガープリント・キャッシュについて説明するための図The figure for demonstrating the fingerprint cache used in the embodiment 同実施形態で使用する差分圧縮の指示方法について説明するための図The figure for demonstrating the instruction | indication method of the differential compression used in the embodiment 同実施形態の差分圧縮の具体例について説明するための図The figure for demonstrating the specific example of the differential compression of the embodiment 同実施形態の差分圧縮の具体例について説明するための図The figure for demonstrating the specific example of the differential compression of the embodiment 同実施形態の差分圧縮の具体例について説明するための図The figure for demonstrating the specific example of the differential compression of the embodiment 同実施形態の差分圧縮の他の具体例について説明するための図The figure for demonstrating the other specific example of the differential compression of the embodiment 同実施形態の差分圧縮の他の具体例について説明するための図The figure for demonstrating the other specific example of the differential compression of the embodiment 同実施形態の差分圧縮の他の具体例について説明するための図The figure for demonstrating the other specific example of the differential compression of the embodiment 同実施形態の差分圧縮の他の具体例について説明するための図The figure for demonstrating the other specific example of the differential compression of the embodiment 同実施形態で使用するメッセージ・フォーマットの一例を示す図A diagram showing an example of a message format used in the embodiment 同実施形態で使用するメッセージ・フォーマットの他の例を示す図A diagram showing another example of a message format used in the embodiment 同実施形態で使用するメッセージ・フォーマットのさらに他の例を示す図A diagram showing still another example of a message format used in the embodiment 同実施形態で使用するメッセージ・フォーマットのさらに他の例を示す図A diagram showing still another example of a message format used in the embodiment 同実施形態で使用するメッセージ・フォーマットのさらに他の例を示す図A diagram showing still another example of a message format used in the embodiment 同実施形態に係るサーバ側プロキシの構成例を示す図The figure which shows the structural example of the server side proxy which concerns on the same embodiment 同実施形態に係るクライアント側プロキシの構成例を示す図The figure which shows the structural example of the client side proxy which concerns on the same embodiment 同実施形態に係るサーバ側プロキシの手順例を示すフローチャートThe flowchart which shows the example of a procedure of the server side proxy which concerns on the same embodiment 同実施形態に係るサーバ側プロキシの手順例を示すフローチャートThe flowchart which shows the example of a procedure of the server side proxy which concerns on the same embodiment 同実施形態に係るクライアント側プロキシの手順例を示すフローチャートThe flowchart which shows the example of a procedure of the client side proxy which concerns on the same embodiment 同実施形態に係るクライアント側プロキシの手順例を示すフローチャートThe flowchart which shows the example of a procedure of the client side proxy which concerns on the same embodiment 同実施形態の差分圧縮の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the differential compression of the embodiment 同実施形態の差分圧縮の処理手順の他の例を示すフローチャートThe flowchart which shows the other example of the process sequence of the differential compression of the embodiment 同実施形態に係るサーバ側プロキシの手順例を示すフローチャートThe flowchart which shows the example of a procedure of the server side proxy which concerns on the same embodiment 同実施形態に係るクライアント側プロキシの手順例を示すフローチャートThe flowchart which shows the example of a procedure of the client side proxy which concerns on the same embodiment 同実施形態に係るサーバ側プロキシとクライアント側プロキシとの間のデータ転送について説明するための図The figure for demonstrating the data transfer between the server side proxy and client side proxy which concern on the embodiment 同実施形態に係るサーバ側プロキシとクライアント側プロキシとの間のデータ転送について説明するための図The figure for demonstrating the data transfer between the server side proxy and client side proxy which concern on the embodiment 同実施形態に係るサーバ側プロキシとクライアント側プロキシとの間のデータ転送について説明するための図The figure for demonstrating the data transfer between the server side proxy and client side proxy which concern on the embodiment 同実施形態にプロキシの他の構成例を示す図The figure which shows the other structural example of a proxy in the embodiment 同実施形態に係るクライアント側プロキシの他の手順例を示すフローチャートThe flowchart which shows the other example of a procedure of the client side proxy which concerns on the same embodiment 同実施形態に係るクライアント側プロキシの他の手順例を示すフローチャートThe flowchart which shows the other example of a procedure of the client side proxy which concerns on the same embodiment 同実施形態に係るサーバ側プロキシの他の手順例を示すフローチャートThe flowchart which shows the other example of a procedure of the server side proxy which concerns on the same embodiment 同実施形態に係るサーバ側プロキシの他の手順例を示すフローチャートThe flowchart which shows the other example of a procedure of the server side proxy which concerns on the same embodiment 同実施形態に係るコンピュータ・ネットワーク・システムのさらに他の構成例を示す図The figure which shows the further another structural example of the computer network system which concerns on the embodiment 従来のコンピュータ・ネットワーク・システムについて説明するための図Diagram for explaining a conventional computer network system 図14(a)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of Fig.14 (a) 図14(b)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.14 (b) 図14(c)、図15(c)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.14 (c), FIG.15 (c) 図14(d)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.14 (d) 図15(a)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of Fig.15 (a) 図15(b)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.15 (b) 図16のフォーマットのメッセージの具体例を示す図The figure which shows the example of the message of the format of FIG. 図17(a)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of Fig.17 (a) 図17(b)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.17 (b) 図17(c)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.17 (c) 図18(a)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of Fig.18 (a) 図18(b)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.18 (b) 図18(c)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.18 (c). 図18(d)のフォーマットのメッセージの具体例を示す図The figure which shows the specific example of the message of the format of FIG.18 (d)

符号の説明Explanation of symbols

202…ASPサーバセンター、204…ユーザオフィス、212…ASPサーバセンター内LAN、214…WAN、216…ユーザオフィス内LAN、220…サーバ装置、
230…サーバ側プロキシ装置、240…クライアント側プロキシ装置、250…クライアント装置、231,241…受信部、232,242…処理部、233,243…送信部、234,244…フィンガープリント・キャッシュ、2321,2421…FP圧縮判定部、2322,2422…フィンガープリント・キャッシュ管理部、2323…FP圧縮処理部、2423…FP解凍処理部、2324…差分圧縮処理部、2424…差分解凍処理部、2325,2425…FP解凍・解凍処理部、2326,2426…差分解凍・解凍処理部
202 ... ASP server center, 204 ... user office, 212 ... ASP server center LAN, 214 ... WAN, 216 ... user office LAN, 220 ... server device,
230 ... Server side proxy device, 240 ... Client side proxy device, 250 ... Client device, 231, 241 ... Reception unit, 232, 242 ... Processing unit, 233, 243 ... Transmission unit, 234, 244 ... Fingerprint cache, 2321 , 2421 ... FP compression determination unit, 2322, 2422 ... fingerprint cache management unit, 2323 ... FP compression processing unit, 2423 ... FP decompression processing unit, 2324 ... differential compression processing unit, 2424 ... differential decompression processing unit, 2325, 2425 ... FP decompression / decompression processing unit, 2326, 2426 ... Differential decompression / decompression processing unit

Claims (22)

サーバ装置から送信されたデータを受信し、該データをその宛先となるクライアント装置に通ずるクライアント側プロキシ装置へ送信するサーバ側プロキシ装置であって、
前記サーバ装置から前記データを受信する受信手段と、
この受信手段が受信したデータのフィンガープリントを生成するフィンガープリント生成手段と、
前記受信手段が受信した前記データを参照データとして、該参照データに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該参照データに関連付けてフィンガープリント・キャッシュとして保持するための保持手段と、
前記受信手段が受信したデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントが、前記フィンガープリント・キャッシュに保持されているか否か判定する第1の判定手段と、
前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと前記第1の判定手段が判定した場合に、前記受信手段が受信した前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、
この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する第2の判定手段と、
前記受信手段が前記データを受信した際に、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていると前記第1の判定手段が判定した場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと前記第1の判定手段が判定した場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記第2の判定手段が判定したときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記第2の判定手段が判定したときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する送信手段とを備えたことを特徴とするサーバ側プロキシ装置。
A server-side proxy device that receives data transmitted from a server device and transmits the data to a client-side proxy device that communicates with the client device that is the destination,
Receiving means for receiving the data from the server device;
Fingerprint generating means for generating a fingerprint of the data received by the receiving means;
Holding means for holding the data received by the receiving means as reference data and holding the fingerprint generated by the fingerprint generating means based on the reference data as a fingerprint cache in association with the reference data; ,
First determination means for determining whether the fingerprint generated by the fingerprint generation means based on the data received by the reception means is held in the fingerprint cache;
When the first determination means determines that the fingerprint is not held in the fingerprint cache, for each part or part of the data received by the reception means, Among the reference data held in the fingerprint cache, it is possible to identify a fingerprint associated with reference data including the same content as the portion and a location where the same content exists in the reference data Differential compression including compression information obtained from a set of location information to be performed, and the compression information and direct designation information indicating the remaining contents excluding a portion corresponding to the compression information from the data received by the receiving unit Differential compression processing means for generating expression data;
For the data amount of the differential compression representation data generated by the differential compression processing means, the compression amount calculated by the data amount of the data that was the source of the differential compression representation data and the data amount of the differential compression representation data Second determination means for determining whether or not the value indicating the degree is equal to or greater than a reference value;
When the first determining unit determines that the fingerprint is held in the fingerprint cache when the receiving unit receives the data, the data of the original data of the fingerprint is stored. Instead, the compressed fingerprint data including the fingerprint is transmitted to the client-side proxy device as the destination client device, and the first fingerprint is not held in the fingerprint cache. When the determination means determines, when the second determination means determines that the value indicating the degree of compression of the differential compression expression data generated by the differential compression processing means is greater than or equal to the reference value The fingerprint and the data that was the source of the fingerprint. In addition, the client adds the data at the time of differential compression including the differential compression expression data instead of the data that was the source of the differential compression expression data to the client device as the destination. When the second determination unit determines that the value indicating the degree of compression is not equal to or greater than the reference value for the differential compression expression data transmitted to the side proxy device and generated by the differential compression processing unit, the finger The client side proxy adds the uncompressed data including the received data to the client device serving as the destination by adding the print and the data that is the source of the fingerprint in association with each other to the fingerprint cache Server-side proxy, comprising: a transmission means for transmitting to the apparatus Apparatus.
前記送信手段は、前記差分圧縮時データ又は前記非圧縮時データを送信する際には、前記差分圧縮時データと前記非圧縮時データとの少なくとも一方について、前記差分圧縮時データにあっては該差分圧縮時データに含まれる差分圧縮表現データの元であったデータのフィンガープリントを付加し、前記非圧縮時データにあっては該非圧縮時データに含まれるデータのフィンガープリントを付加して送信することを特徴とする請求項1に記載のサーバ側プロキシ装置。   When transmitting the differential compression data or the non-compression data, the transmission means includes at least one of the differential compression data and the non-compression data in the differential compression data. The fingerprint of the data that was the source of the differential compression expression data included in the data at the time of differential compression is added, and the fingerprint of the data included in the data at the time of non-compression is added to the data at the time of non-compression. The server-side proxy device according to claim 1. 前記送信手段は、前記差分圧縮時データ又は前記非圧縮時データを送信する際には、前記差分圧縮時データと前記非圧縮時データとのいずれについても、前記フィンガープリントを付加しないで送信することを特徴とする請求項1に記載のサーバ側プロキシ装置。   When transmitting the differential compression data or the non-compression data, the transmission means transmits the differential compression data and the non-compression data without adding the fingerprint. The server side proxy apparatus of Claim 1 characterized by these. 前記差分圧縮時データに含まれる前記差分圧縮表現データは、前記圧縮情報として、1又は複数の前記参照データに対応する前記フィンガープリントと、当該各参照データからコピーすべき内容のオフセット及び長さを示す箇所情報とを含ものであるとともに、前記圧縮情報及び前記直接指定情報に加えて、当該各参照データからコピーした内容及び前記直接指定情報が示す内容の接続方法を示す情報を含むものであることを特徴とする請求項1に記載のサーバ側プロキシ装置。   The differential compression expression data included in the differential compression data includes, as the compression information, the fingerprint corresponding to one or a plurality of the reference data, and the offset and length of the content to be copied from each reference data. In addition to the compressed information and the direct designation information, the content information copied from the reference data and information indicating the connection method of the content indicated by the direct designation information are included. The server-side proxy device according to claim 1, wherein 前記差分圧縮時データに含まれる前記差分圧縮表現データは、前記圧縮情報として、1つの前記参照データに対応する前記フィンガープリントと、該参照データのうち該差分圧縮表現データの元となったデータと相違する部分を示す箇所情報とを含み、前記直接指定情報として、該相違する部分に嵌め込むべき内容を含むものであることを特徴とする請求項1に記載のサーバ側プロキシ装置。   The differential compression representation data included in the differential compression data includes, as the compression information, the fingerprint corresponding to one reference data, and the data that is the source of the differential compression representation data among the reference data, 2. The server-side proxy device according to claim 1, wherein the server-side proxy device includes location information indicating a different portion, and includes the contents to be inserted into the different portion as the direct designation information. 前記サーバ側プロキシ装置は、ローカルエリアネットワークを介して前記サーバ装置と接続されたものであることを特徴とする請求項1に記載のサーバ側プロキシ装置。   The server-side proxy device according to claim 1, wherein the server-side proxy device is connected to the server device via a local area network. 前記サーバ装置から受信する前記データは、前記クライアント装置が送信し前記クライアント側プロキシ装置及び前記サーバ側プロキシ装置を介して該サーバ装置へ転送されたリクエストデータへの返答として、該サーバ装置が送信するリプライデータであることを特徴とする請求項1ないし6のいずれか1項に記載のサーバ側プロキシ装置。   The data received from the server device is transmitted by the server device as a reply to request data transmitted by the client device and transferred to the server device via the client-side proxy device and the server-side proxy device. The server-side proxy device according to claim 1, wherein the server-side proxy device is reply data. サーバ装置から送信されたデータをサーバ側プロキシ装置を介して受信し、該データをその宛先となるクライアント装置へ送信するクライアント側プロキシ装置であって、
前記データを参照データとして、該参照データのフィンガープリントを、該参照データに関連付けてクライアント側フィンガープリント・キャッシュとして保持するための保持手段と、
前記サーバ側プロキシ装置から、前記データの代わりに当該データのフィンガープリントを含むフィンガープリント圧縮時データ、当該データの代わりに、該データの一つの部分若しくは複数の部分について、当該部分ごとに指定された、当該部分と同一の内容を含む参照データのフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報と、該データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを含む差分圧縮時データ、又は当該データを含む非圧縮時データを受信するための受信手段と、
この受信手段が受信したデータが、前記フィンガープリント圧縮時データであるか、前記差分圧縮時データであるか又は前記非圧縮時データであるかを判定する種別判定手段と、
前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合に、該差分圧縮時データに含まれる前記差分圧縮表現データが含む、該差分圧縮表現データの元であったデータにおける前記部分に対応する前記圧縮情報が含む前記フィンガープリントと前記箇所情報との組を参照して、当該部分ごとに、前記クライアント側フィンガープリント・キャッシュから当該フィンガープリント及び当該箇所情報をもとに当該部分と同一の内容を取得し、取得した当該部分と同一の内容と、前記差分圧縮表現データが含む直接指定情報とを用いて、該差分圧縮表現データの元であったデータを復元する復元処理手段と、
前記受信手段が前記フィンガープリント圧縮時データを受信したと、前記種別判定手段が判定した場合には、該圧縮データに含まれるフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに保持されているデータを、前記宛先となる前記クライアント装置へ送信し、前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合には、前記復元処理手段が該差分圧縮時データに含まれる差分圧縮表現データに基づいて復元したデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信し、前記受信手段が前記非圧縮時データを受信したと、前記種別判定手段が判定した場合には、該非圧縮時データに含まれるデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信する送信手段とを備え、
前記サーバ側プロキシ装置は、
前記サーバ装置から前記データを受信する手段と、
受信された前記データのフィンガープリントを生成する手段と、
前記受信する手段が受信した前記データを参照データとして、該参照データに基づいて前記生成する手段が生成した前記フィンガープリントを、該参照データに関連付けてサーバ側フィンガープリント・キャッシュとして保持する手段と、
受信された前記データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合に、受信された前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記サーバ側フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、
この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する差分表現可否判定手段と、
前記データを受信した際に、該データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されている場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する手段とを有するものであることを特徴とするクライアント側プロキシ装置。
A client-side proxy device that receives data transmitted from a server device via a server-side proxy device and transmits the data to a destination client device,
Holding means for holding the data as reference data and the fingerprint of the reference data in association with the reference data as a client-side fingerprint cache;
The server side proxy device designates the fingerprint compression data including the fingerprint of the data instead of the data, one part or a plurality of parts of the data instead of the data for each part. , Compression information consisting of a set of fingerprints of reference data including the same content as the part, and location information that makes it possible to specify a location where the same content exists in the reference data, and the compression information from the data Receiving means for receiving differential compression data including differential compression expression data including direct designation information indicating the remaining content excluding the portion corresponding to the data, or uncompressed data including the data;
Type determination means for determining whether the data received by the receiving means is the fingerprint compression data, the differential compression data, or the non-compression data;
When the type determining means determines that the receiving means has received the differential compression time data, the differential compression expression data included in the differential compression data included in the differential compression data is the source of the differential compression expression data With reference to a set of the fingerprint and the location information included in the compression information corresponding to the portion in the data, for each portion, the fingerprint and the location information are obtained from the client-side fingerprint cache. The same content as the part is acquired, and the original data of the differential compressed expression data is restored using the same content as the acquired part and the direct designation information included in the differential compressed expression data. Restoration processing means,
Data stored in the client-side fingerprint cache in association with a fingerprint included in the compressed data when the type determining unit determines that the receiving unit has received the fingerprint compression data. Is transmitted to the client device serving as the destination, and when the type determination unit determines that the reception unit has received the differential compression data, the restoration processing unit includes the differential compression data in the differential compression data Data restored based on the differentially compressed representation data to be added to the client-side fingerprint cache in association with the fingerprint generated based on the data, and the data as the destination client And the receiving means receives the uncompressed data. And when the type determination means determines, the data included in the uncompressed data is added to the client-side fingerprint cache in association with the fingerprint generated based on the data, and Transmission means for transmitting the data to the client device as the destination,
The server side proxy device is:
Means for receiving the data from the server device;
Means for generating a fingerprint of the received data;
As reference data the data which said means for receiving receives, means for holding the fingerprint means has generated said generated based on the reference data, as a server-side fingerprint cache in association with said reference data,
If the fingerprint generated based on the received data is not held in the server-side fingerprint cache, for each part or parts of the received data, Among the reference data held in the server-side fingerprint cache, the fingerprint associated with the reference data including the same contents as the part and the location where the same contents exist in the reference data are specified. Compression information consisting of a set of possible location information is obtained, and includes the compression information and direct designation information indicating the remaining contents excluding the portion corresponding to the compression information from the data received by the receiving means Differential compression processing means for generating differential compressed expression data;
For the data amount of the differential compression representation data generated by the differential compression processing means, the compression amount calculated by the data amount of the data that was the source of the differential compression representation data and the data amount of the differential compression representation data A difference expression availability determination unit that determines whether or not a value indicating the degree is equal to or greater than a reference value;
When the fingerprint generated based on the data is stored in the server-side fingerprint cache when the data is received, the fingerprint is used instead of the data that is the source of the fingerprint. When the fingerprint compression data including print is transmitted to the client side proxy device as the destination client device, and the fingerprint is not held in the server side fingerprint cache, the differential compression is performed. When the differential representation availability determination unit determines that the value indicating the degree of compression is greater than or equal to the reference value for the differential compression representation data generated by the processing unit, the fingerprint and the source of the fingerprint are the same. The server-side finger The data at the time of differential compression that is added to the print cache and includes the differential compression representation data instead of the data that was the source of the differential compression representation data is sent to the client side proxy device as the destination of the client device When the differential representation availability determination unit determines that the value indicating the degree of compression is not equal to or greater than the reference value for the differential compression representation data transmitted and generated by the differential compression processing unit, the fingerprint and the fingerprint The data that was the source of printing is associated with the data and added to the server-side fingerprint cache, and uncompressed data including the received data is sent to the client-side proxy device as the destination client device. features and to torque client side flop that is one having a means for transmitting Carboxymethyl apparatus.
前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合に、前記復元処理手段が該差分圧縮時データに含まれる差分圧縮表現データに基づいて復元したデータに基づいて、該データのフィンガープリントを生成し、前記受信手段が前記非圧縮時データを受信したと、前記種別判定手段が判定した場合に、該非圧縮時データに含まれるデータに基づいて、該データのフィンガープリントを生成するフィンガープリント生成手段を更に備え、
前記送信手段は、受信した前記差分圧縮時データについては、該差分圧縮時データに含まれる差分圧縮表現データに基づいて前記復元処理手段が復元したデータを、該データに基づいて前記フィンガープリント生成手段が生成したフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、受信した前記非圧縮時データについては、該非圧縮時データに含まれるデータを、該データに基づいてフィンガープリント生成手段が生成したフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加することを特徴とする請求項8に記載のクライアント側プロキシ装置。
Based on the data restored by the decompression processing unit based on the differential compression expression data included in the differential compression data when the type determination unit determines that the reception unit has received the differential compression data. Generating a fingerprint of the data, and when the type determining unit determines that the receiving unit has received the uncompressed data, the fingerprint of the data is based on the data included in the uncompressed data. A fingerprint generating means for generating a print;
For the received data at the time of differential compression, the transmission means restores the data restored by the restoration processing means based on the differential compression expression data included in the data at the time of differential compression, and the fingerprint generation means based on the data Is added to the client-side fingerprint cache in association with the generated fingerprint, and for the received uncompressed data, the fingerprint generation means generates the data included in the uncompressed data based on the data 9. The client side proxy device according to claim 8, wherein the client side proxy device is added to the client side fingerprint cache in association with the fingerprint.
前記受信手段が受信した前記差分圧縮時データには、該差分圧縮時データに含まれる差分圧縮表現データの元であったデータに基づいて生成されたフィンガープリントが含まれ、
前記クライアント側プロキシ装置は、前記受信手段が前記非圧縮時データを受信したと、前記種別判定手段が判定した場合に、該非圧縮時データに含まれる前記データに基づいて、該データのフィンガープリントを生成するフィンガープリント生成手段を更に備え、
前記送信手段は、受信した前記差分圧縮時データについては、該差分圧縮時データに含まれる差分圧縮表現データに基づいて前記復元処理手段が復元したデータを、該差分圧縮時データに含まれるフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、受信した前記非圧縮時データについては、該非圧縮時データに含まれるデータを、該データに基づいてフィンガープリント生成手段が生成した前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加することを特徴とする請求項8に記載のクライアント側プロキシ装置。
The differential compression time data received by the receiving unit includes a fingerprint generated based on the data that was the source of the differential compression expression data included in the differential compression time data,
The client-side proxy device, when the type determining unit determines that the receiving unit has received the uncompressed data, performs a fingerprint of the data based on the data included in the uncompressed data. Further comprising a fingerprint generating means for generating,
For the received data at the time of differential compression, the transmitting means converts the data restored by the restoration processing means based on the differential compression expression data included in the data at the time of differential compression, to the fingerprint included in the data at the time of differential compression Add to the client-side fingerprint cache in association with, for said received uncompressed data, the data contained in data uncompressed, the fingerprint fingerprint generating unit has generated based on the data 9. The client side proxy device according to claim 8, wherein the client side proxy device is associated and added to the client side fingerprint cache.
前記受信手段が受信した前記非圧縮時データには、該非圧縮時データに含まれるデータに基づいて生成されたフィンガープリントが含まれ、
前記クライアント側プロキシ装置は、前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合に、該差分圧縮時データに含まれる差分圧縮表現データに基づいて前記復元処理手段が復元した前記データに基づいて、該データのフィンガープリントを生成するフィンガープリント生成手段を更に備え、
前記送信手段は、受信した前記差分圧縮データについては、該差分圧縮時データに含まれる差分圧縮表現データに基づいて前記復元処理手段が復元した前記データを、該データに基づいてフィンガープリント生成手段が生成した前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、受信した前記非圧縮時データについては、前記データを、該非圧縮時データに含まれる前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加することを特徴とする請求項8に記載のクライアント側プロキシ装置。
The uncompressed data received by the receiving means includes a fingerprint generated based on the data included in the uncompressed data,
The client-side proxy device, when the type determining unit determines that the receiving unit has received the differential compression data, the restoration processing unit based on differential compression expression data included in the differential compression data Further comprising fingerprint generation means for generating a fingerprint of the data based on the data restored by
For the received data at the time of differential compression, the transmission means regenerates the data restored by the restoration processing means based on the differential compression expression data included in the data at the time of differential compression, and generates fingerprints based on the data. Is added to the client-side fingerprint cache in association with the generated fingerprint, and for the received uncompressed data, the data is associated with the fingerprint included in the uncompressed data in the client-side 9. The client side proxy device according to claim 8, wherein the client side proxy device is added to a fingerprint cache.
前記受信手段が受信した前記差分圧縮時データには、該差分圧縮時データに含まれる差分圧縮表現データの元であったデータに基づいて生成されたフィンガープリントが含まれ、
前記受信手段が受信した前記非圧縮時データには、該非圧縮時データに含まれるデータに基づいて生成されたフィンガープリントが含まれ、
前記送信手段は、受信した前記差分圧縮時データについては、該差分圧縮時データに含まれる差分圧縮表現データに基づいて前記復元処理手段が復元したデータを、該差分圧縮時データに含まれるフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、受信した前記非圧縮時データについては、前記データを、該非圧縮時データに含まれる前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加することを特徴とする請求項8に記載のクライアント側プロキシ装置。
The differential compression time data received by the receiving unit includes a fingerprint generated based on the data that was the source of the differential compression expression data included in the differential compression time data,
The uncompressed data received by the receiving means includes a fingerprint generated based on the data included in the uncompressed data,
For the received data at the time of differential compression, the transmitting means converts the data restored by the restoration processing means based on the differential compression expression data included in the data at the time of differential compression, to the fingerprint included in the data at the time of differential compression Add to the client-side fingerprint cache in association with, for said received uncompressed data, adds the data to the client-side fingerprint cache in association with the fingerprint included in data uncompressed the client-side proxy device according to claim 8, characterized in that.
前記フィンガープリント圧縮時データは、それがフィンガープリント圧縮時データであることを示す識別情報を含むものであり、前記差分圧縮時データは、それが差分圧縮時データであることを示す識別情報を含むものであり、前記非圧縮時データは、それが非圧縮時データであることを示す識別情報を含むものであり、
前記種別判定手段は、前記識別情報に基づいて前記判定を行うことを特徴とする請求項8に記載のクライアント側プロキシ装置。
The fingerprint compression data includes identification information indicating that it is fingerprint compression data, and the differential compression data includes identification information indicating that it is differential compression data. The uncompressed data includes identification information indicating that it is uncompressed data,
9. The client side proxy device according to claim 8, wherein the type determination unit performs the determination based on the identification information.
前記フィンガープリント圧縮時データは、そのヘッダに前記フィンガープリントを含み、そのボディーはNULLであり、前記差分圧縮時データは、それが差分圧縮時データであることを示す差分圧縮フラグをそのヘッダに含み、前記差分圧縮表現データをそのボディーに含み、且つ、そのヘッダとボディーのいずれにも前記フィンガープリントを含まないものであり、前記非圧縮時データは、それが非圧縮時データであることを示す非圧縮フラグをそのヘッダに含み、前記データをそのボディーに含み、且つ、そのヘッダとボディーのいずれにも前記フィンガープリントを含まないものであり、
前記種別判定手段は、前記ヘッダに前記フィンガープリントが含まれるか又は前記ボディーがNULLであることを検出した場合に、前記受信手段が受信したデータが、前記フィンガープリント圧縮時データであると判断し、前記ヘッダに前記差分圧縮フラグを検出した場合に、前記受信手段が受信したデータが、前記差分圧縮時データであると判断し、前記ヘッダに前記非圧縮フラグを検出した場合に、前記受信手段が受信したデータが、前記非圧縮時データであると判断することを特徴とする請求項8に記載のクライアント側プロキシ装置。
The fingerprint compression data includes the fingerprint in its header, its body is NULL, and the differential compression data includes a differential compression flag in its header indicating that it is differential compression data. The differentially compressed representation data is included in the body, and neither the header nor the body includes the fingerprint, and the uncompressed data indicates that it is uncompressed data. An uncompressed flag is included in the header, the data is included in the body, and neither the header nor the body includes the fingerprint.
The type determining unit determines that the data received by the receiving unit is the data at the time of fingerprint compression when it is detected that the fingerprint is included in the header or the body is NULL. When the differential compression flag is detected in the header, it is determined that the data received by the reception unit is the data at the time of differential compression, and when the non-compression flag is detected in the header, the reception unit data but received by the client-side proxy device according to claim 8, characterized in that it is determined that the an uncompressed data.
前記差分圧縮時データに含まれる前記差分圧縮表現データは、前記圧縮情報として、1又は複数の前記参照データに対応する前記フィンガープリントと、当該各参照データからコピーすべき内容のオフセット及び長さを示す箇所情報とを含ものであるとともに、前記圧縮情報及び前記直接指定情報に加えて、当該各参照データからコピーした内容及び前記直接指定情報が示す内容の接続方法を示す情報を含むものであることを特徴とする請求項8に記載のクライアント側プロキシ装置。 The differential compression expression data included in the differential compression data includes, as the compression information, the fingerprint corresponding to one or a plurality of the reference data, and the offset and length of the content to be copied from each reference data. In addition to the compressed information and the direct designation information, the content information copied from the reference data and information indicating the connection method of the content indicated by the direct designation information are included. The client-side proxy device according to claim 8, wherein: 前記差分圧縮時データに含まれる前記差分圧縮表現データは、前記圧縮情報として、1つの前記参照データに対応する前記フィンガープリントと、該参照データのうち該差分圧縮表現データの元となったデータと相違する部分を示す箇所情報とを含み、前記直接指定情報として、該相違する部分に嵌め込むべき内容を含むものであることを特徴とする請求項8に記載のクライアント側プロキシ装置。 The differential compression representation data included in the differential compression data includes, as the compression information, the fingerprint corresponding to one reference data, and the data that is the source of the differential compression representation data among the reference data, 9. The client side proxy device according to claim 8, wherein the client side proxy device includes location information indicating a different portion, and the direct designation information includes contents to be fitted into the different portion. 前記クライアント側プロキシ装置は、ローカルエリアネットワークを介して前記クライアント装置と接続されたものであることを特徴とする請求項8に記載のクライアント側プロキシ装置。 9. The client side proxy device according to claim 8, wherein the client side proxy device is connected to the client device via a local area network. 前記サーバ装置から受信する前記データは、前記クライアント装置が送信し前記クライアント側プロキシ装置及び前記サーバ側プロキシ装置を介して該サーバ装置へ転送されたリクエストデータへの返答として、該サーバ装置が送信するリプライデータであることを特徴とする請求項8ないし17のいずれか1項に記載のクライアント側プロキシ装置。 The data received from the server device is transmitted by the server device as a reply to request data transmitted by the client device and transferred to the server device via the client-side proxy device and the server-side proxy device. the client-side proxy device according to any one of claims 8 to 17 characterized in that it is a reply data. サーバ装置から送信されたデータを受信し、該データをその宛先となるクライアント装置に通ずるクライアント側プロキシ装置へ送信するものであるとともに、前記データを参照データとして、該参照データのフィンガープリントを、該参照データに関連付けてフィンガープリント・キャッシュとして保持するための保持手段を備えたサーバ側プロキシ装置のデータ転送方法であって、
前記サーバ装置から前記データを受信し、
受信した前記データのフィンガープリントを生成し、
受信した前記データに基づいて生成された前記フィンガープリントが、前記フィンガープリント・キャッシュに保持されているか否か判定し、
前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと判定された場合に、受信した前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成し、
生成された前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定し、
前記データを受信した際に、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていると判定された場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと判定された場合には、生成された前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると判定されたときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、生成された前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと判定されたときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信することを特徴とするデータ転送方法。
Receives data transmitted from the server device, transmits the data to a client-side proxy device that communicates with the client device that is the destination, and uses the data as reference data, the fingerprint of the reference data, A data transfer method for a server-side proxy device comprising holding means for holding as a fingerprint cache in association with reference data,
Receiving the data from the server device;
Generate a fingerprint of the received data;
Determining whether the fingerprint generated based on the received data is held in the fingerprint cache;
When it is determined that the fingerprint is not held in the fingerprint cache, one or more portions of the received data are held in the fingerprint cache for each portion. Compressed information comprising a set of fingerprints associated with reference data including the same content as the portion of the reference data and location information that makes it possible to identify the location where the same content exists in the reference data And generating differential compression representation data including the compression information and direct designation information indicating the remaining contents excluding the portion corresponding to the compression information from the received data,
For the data amount of the generated differential compressed representation data, a value indicating the degree of compression calculated by the data amount of the data that was the source of the differential compressed representation data and the data amount of the differential compressed representation data is , Determine whether it is above the reference value,
When the data is received, if it is determined that the fingerprint is held in the fingerprint cache, the fingerprint compression including the fingerprint instead of the data that is the source of the fingerprint If the time data is transmitted to the client-side proxy device as the destination client device and it is determined that the fingerprint is not held in the fingerprint cache, the generated differential compression representation When it is determined that the value indicating the degree of compression of the data is equal to or greater than the reference value, the fingerprint is associated with the original data of the fingerprint and added to the fingerprint cache; And the source of the differential compression expression data. Data at the time of differential compression including the differential compression representation data instead of data is transmitted to the client side proxy device as the destination client device, and the degree of compression is indicated for the generated differential compression representation data When it is determined that the value is not equal to or greater than the reference value, the fingerprint is associated with the original data of the fingerprint, added to the fingerprint cache, and uncompressed including the received data A data transfer method comprising transmitting time data to the client side proxy device as the destination client device.
サーバ装置から送信されたデータをサーバ側プロキシ装置を介して受信し、該データをその宛先となるクライアント装置へ送信するものであるとともに、前記データを参照データとして、該参照データのフィンガープリントを、該参照データに関連付けてクライアント側フィンガープリント・キャッシュとして保持するための保持手段を備えたクライアント側プロキシ装置のデータ転送方法であって、
前記サーバ側プロキシ装置から、前記データの代わりに当該データのフィンガープリントを含むフィンガープリント圧縮時データ、当該データの代わりに、該データの一つの部分若しくは複数の部分について、当該部分ごとに指定された、当該部分と同一の内容を含む参照データのフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報と、該データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを含む差分圧縮時データ、又は当該データを含む非圧縮時データを受信し、
受信された前記データが、前記フィンガープリント圧縮時データであるか、前記差分圧縮時データであるか又は前記非圧縮時データであるかを判定し、
前記差分圧縮時データを受信したと判定された場合に、該差分圧縮時データに含まれる前記差分圧縮表現データが含む、該差分圧縮表現データの元であったデータにおける前記部分に対応する前記圧縮情報が含む前記フィンガープリントと前記箇所情報との組を参照して、当該部分ごとに、前記クライアント側フィンガープリント・キャッシュから当該フィンガープリント及び当該箇所情報をもとに当該部分と同一の内容を取得し、取得した当該部分と同一の内容と、前記差分圧縮表現データが含む直接指定情報とを用いて、該差分圧縮表現データの元であったデータを復元し、
前記フィンガープリント圧縮時データを受信したと判定された場合には、該圧縮データに含まれるフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに保持されているデータを、前記宛先となる前記クライアント装置へ送信し、前記差分圧縮時データを受信したと判定された場合には、該差分圧縮時データに含まれる差分圧縮表現データに基づいて復元された前記データを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信し、前記非圧縮時データを受信したと判定された場合には、該非圧縮時データに含まれるデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信するものであり、
前記サーバ側プロキシ装置は、
前記サーバ装置から前記データを受信する手段と、
受信された前記データのフィンガープリントを生成する手段と、
前記受信する手段が受信した前記データを参照データとして、該参照データに基づいて前記生成する手段が生成した前記フィンガープリントを、該参照データに関連付けてサーバ側フィンガープリント・キャッシュとして保持する手段と、
受信された前記データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合に、受信された前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記サーバ側フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、
この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する差分表現可否判定手段と、
前記データを受信した際に、該データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されている場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する手段とを有するものであることを特徴とするデータ転送方法。
The data transmitted from the server device is received via the server-side proxy device, and the data is transmitted to the client device that is the destination, and the fingerprint of the reference data is used as the reference data. A data transfer method for a client-side proxy device comprising holding means for holding as a client-side fingerprint cache in association with the reference data,
The server side proxy device designates the fingerprint compression data including the fingerprint of the data instead of the data, one part or a plurality of parts of the data instead of the data for each part. , Compression information consisting of a set of fingerprints of reference data including the same content as the part, and location information that makes it possible to specify a location where the same content exists in the reference data, and the compression information from the data Receiving differential compression data including differential compression expression data including direct designation information indicating the remaining contents excluding the portion corresponding to, or uncompressed data including the data,
Determining whether the received data is the fingerprint compression data, the differential compression data, or the uncompressed data;
When it is determined that the differential compression time data has been received, the compression corresponding to the portion of the original data of the differential compression representation data included in the differential compression representation data included in the differential compression time data Referring to the set of the fingerprint and location information included in the information, the same content as that portion is obtained from the client-side fingerprint cache based on the fingerprint and location information for each portion. Then, using the same content as the acquired part and the direct designation information included in the differential compression expression data, the original data of the differential compression expression data is restored,
The fingerprint when the compressed time data is determined to be received, the data in association with the fingerprint that is included in the compressed data held in the client-side fingerprint cache, serving as the destination the client device When it is determined that the data at the time of differential compression has been received, the data restored based on the differential compression expression data included in the data at the time of differential compression is generated based on the data When it is determined that the uncompressed data has been received by adding the data to the client-side fingerprint cache in association with the fingerprint and transmitting the data to the destination client device. Before the data included in the uncompressed data is generated based on the data In association with the fingerprint in addition to the client-side fingerprint cache, and, the data is shall be transmitted to the said destination said client device,
The server side proxy device is:
Means for receiving the data from the server device;
Means for generating a fingerprint of the received data;
Means for holding, as reference data, the data received by the means for receiving, the fingerprint generated by the means for generating based on the reference data as a server side fingerprint cache in association with the reference data;
If the fingerprint generated based on the received data is not held in the server-side fingerprint cache, for each part or parts of the received data, Among the reference data held in the server-side fingerprint cache, the fingerprint associated with the reference data including the same contents as the part and the location where the same contents exist in the reference data are specified. Compression information consisting of a set of possible location information is obtained, and includes the compression information and direct designation information indicating the remaining contents excluding the portion corresponding to the compression information from the data received by the receiving means Differential compression processing means for generating differential compressed expression data;
For the data amount of the differential compression representation data generated by the differential compression processing means, the compression amount calculated by the data amount of the data that was the source of the differential compression representation data and the data amount of the differential compression representation data A difference expression availability determination unit that determines whether or not a value indicating the degree is equal to or greater than a reference value;
When the fingerprint generated based on the data is stored in the server-side fingerprint cache when the data is received, the fingerprint is used instead of the data that is the source of the fingerprint. When the fingerprint compression data including print is transmitted to the client side proxy device as the destination client device, and the fingerprint is not held in the server side fingerprint cache, the differential compression is performed. When the differential representation availability determination unit determines that the value indicating the degree of compression is greater than or equal to the reference value for the differential compression representation data generated by the processing unit, the fingerprint and the source of the fingerprint are the same. The server-side finger The data at the time of differential compression that is added to the print cache and includes the differential compression representation data instead of the data that was the source of the differential compression representation data is sent to the client side proxy device as the destination of the client device When the differential representation availability determination unit determines that the value indicating the degree of compression is not equal to or greater than the reference value for the differential compression representation data transmitted and generated by the differential compression processing unit, the fingerprint and the fingerprint The data that was the source of printing is associated with the data and added to the server-side fingerprint cache, and uncompressed data including the received data is sent to the client-side proxy device as the destination client device. data transfer wherein the this and has a means for transmitting.
サーバ装置から送信されたデータを受信し、該データをその宛先となるクライアント装置に通ずるクライアント側プロキシ装置へ送信するサーバ側プロキシ装置としてコンピュータを機能させるためのプログラムであって、
前記サーバ装置から前記データを受信する受信手段と、
この受信手段が受信したデータのフィンガープリントを生成するフィンガープリント生成手段と、
前記受信手段が受信した前記データを参照データとして、該参照データに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントを、該参照データに関連付けてフィンガープリント・キャッシュとして保持するための保持手段と、
前記受信手段が受信したデータに基づいて前記フィンガープリント生成手段が生成した前記フィンガープリントが、前記フィンガープリント・キャッシュに保持されているか否か判定する第1の判定手段と、
前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと前記第1の判定手段が判定した場合に、前記受信手段が受信した前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、
この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する第2の判定手段と、
前記受信手段が前記データを受信した際に、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていると前記第1の判定手段が判定した場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記フィンガープリント・キャッシュに保持されていないと前記第1の判定手段が判定した場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記第2の判定手段が判定したときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記第2の判定手段が判定したときは、前記フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する送信手段としてコンピュータを機能させるためのプログラム。
A program for causing a computer to function as a server-side proxy device that receives data transmitted from a server device and transmits the data to a client-side proxy device that communicates with the client device that is the destination,
Receiving means for receiving the data from the server device;
Fingerprint generating means for generating a fingerprint of the data received by the receiving means;
Holding means for holding the data received by the receiving means as reference data and holding the fingerprint generated by the fingerprint generating means based on the reference data as a fingerprint cache in association with the reference data; ,
First determination means for determining whether the fingerprint generated by the fingerprint generation means based on the data received by the reception means is held in the fingerprint cache;
When the first determination means determines that the fingerprint is not held in the fingerprint cache, for each part or part of the data received by the reception means, Among the reference data held in the fingerprint cache, it is possible to identify a fingerprint associated with reference data including the same content as the portion and a location where the same content exists in the reference data Differential compression including compression information obtained from a set of location information to be performed, and the compression information and direct designation information indicating the remaining contents excluding a portion corresponding to the compression information from the data received by the receiving unit Differential compression processing means for generating expression data;
For the data amount of the differential compression representation data generated by the differential compression processing means, the compression amount calculated by the data amount of the data that was the source of the differential compression representation data and the data amount of the differential compression representation data Second determination means for determining whether or not the value indicating the degree is equal to or greater than a reference value;
When the first determining unit determines that the fingerprint is held in the fingerprint cache when the receiving unit receives the data, the data of the original data of the fingerprint is stored. Instead, the compressed fingerprint data including the fingerprint is transmitted to the client-side proxy device as the destination client device, and the first fingerprint is not held in the fingerprint cache. When the determination means determines, when the second determination means determines that the value indicating the degree of compression of the differential compression expression data generated by the differential compression processing means is greater than or equal to the reference value The fingerprint and the data that was the source of the fingerprint. In addition, the client adds the data at the time of differential compression including the differential compression expression data instead of the data that was the source of the differential compression expression data to the client device as the destination. When the second determination unit determines that the value indicating the degree of compression is not equal to or greater than the reference value for the differential compression expression data transmitted to the side proxy device and generated by the differential compression processing unit, the finger The client side proxy adds the uncompressed data including the received data to the client device serving as the destination by adding the print and the data that is the source of the fingerprint in association with each other to the fingerprint cache Pro for operating a computer as a transmission means for transmitting to a device Lamb.
サーバ装置から送信されたデータをサーバ側プロキシ装置を介して受信し、該データをその宛先となるクライアント装置へ送信するクライアント側プロキシ装置としてコンピュータを機能させるためのプログラムであって、
前記プログラムは、
前記データを参照データとして、該参照データのフィンガープリントを、該参照データに関連付けてクライアント側フィンガープリント・キャッシュとして保持するための保持手段と、
前記サーバ側プロキシ装置から、前記データの代わりに当該データのフィンガープリントを含むフィンガープリント圧縮時データ、当該データの代わりに、該データの一つの部分若しくは複数の部分について、当該部分ごとに指定された、当該部分と同一の内容を含む参照データのフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報と、該データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを含む差分圧縮時データ、又は当該データを含む非圧縮時データを受信するための受信手段と、
この受信手段が受信したデータが、前記フィンガープリント圧縮時データであるか、前記差分圧縮時データであるか又は前記非圧縮時データであるかを判定する種別判定手段と、
前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合に、該差分圧縮時データに含まれる前記差分圧縮表現データが含む、該差分圧縮表現データの元であったデータにおける前記部分に対応する前記圧縮情報が含む前記フィンガープリントと前記箇所情報との組を参照して、当該部分ごとに、前記クライアント側フィンガープリント・キャッシュから当該フィンガープリント及び当該箇所情報をもとに当該部分と同一の内容を取得し、取得した当該部分と同一の内容と、前記差分圧縮表現データが含む直接指定情報とを用いて、該差分圧縮表現データの元であったデータを復元する復元処理手段と、
前記受信手段が前記フィンガープリント圧縮時データを受信したと、前記種別判定手段が判定した場合には、該圧縮データに含まれるフィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに保持されているデータを、前記宛先となる前記クライアント装置へ送信し、前記受信手段が前記差分圧縮時データを受信したと、前記種別判定手段が判定した場合には、前記復元処理手段が該差分圧縮時データに含まれる差分圧縮表現データに基づいて復元したデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信し、前記受信手段が前記非圧縮時データを受信したと、前記種別判定手段が判定した場合には、該非圧縮時データに含まれるデータを、該データに基づいて生成された前記フィンガープリントに関連付けて前記クライアント側フィンガープリント・キャッシュに追加し、且つ、該データを、前記宛先となる前記クライアント装置へ送信する送信手段としてコンピュータを機能させるためのものであり、
前記サーバ側プロキシ装置は、
前記サーバ装置から前記データを受信する手段と、
受信された前記データのフィンガープリントを生成する手段と、
前記受信する手段が受信した前記データを参照データとして、該参照データに基づいて前記生成する手段が生成した前記フィンガープリントを、該参照データに関連付けてサーバ側フィンガープリント・キャッシュとして保持する手段と、
受信された前記データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合に、受信された前記データの一つの部分若しくは複数の部分について、当該部分ごとに、前記サーバ側フィンガープリント・キャッシュに保持されている前記参照データのうち、当該部分と同一の内容を含む参照データに関連付けられたフィンガープリントと、当該参照データにおいて当該同一の内容の存在する箇所を特定可能とする箇所情報との組からなる圧縮情報を求め、該圧縮情報と、前記受信手段が受信した前記データから該圧縮情報に対応する部分を除外した残りの内容を示す直接指定情報とを含む差分圧縮表現データを生成する差分圧縮処理手段と、
この差分圧縮処理手段が生成した前記差分圧縮表現データのデータ量につき、該差分圧縮表現データの元であった前記データのデータ量と該差分圧縮表現データのデータ量とにより算出される、圧縮の程度を示す値が、基準値以上であるか否かを判定する差分表現可否判定手段と、
前記データを受信した際に、該データに基づいて生成された前記フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されている場合には、該フィンガープリントの元であったデータの代わりに該フィンガープリントを含むフィンガープリント圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、該フィンガープリントが前記サーバ側フィンガープリント・キャッシュに保持されていない場合には、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上であると前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、該差分圧縮表現データの元であったデータの代わりに該差分圧縮表現データを含む差分圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記差分圧縮処理手段が生成した前記差分圧縮表現データにつき、前記圧縮の程度を示す値が前記基準値以上でないと前記差分表現可否判定手段が判定したときは、該フィンガープリントと該フィンガープリントの元であったデータとを関連付けて前記サーバ側フィンガープリント・キャッシュに追加し、且つ、当該受信したデータを含む非圧縮時データを、前記宛先となるクライアント装置宛として前記クライアント側プロキシ装置へ送信する手段とを有するものであることを特徴とするプログラム。
A program for causing a computer to function as a client-side proxy device that receives data transmitted from a server device via a server-side proxy device and transmits the data to a destination client device,
The program is
Holding means for holding the data as reference data and the fingerprint of the reference data in association with the reference data as a client-side fingerprint cache;
The server side proxy device designates the fingerprint compression data including the fingerprint of the data instead of the data, one part or a plurality of parts of the data instead of the data for each part. , Compression information consisting of a set of fingerprints of reference data including the same content as the part, and location information that makes it possible to specify a location where the same content exists in the reference data, and the compression information from the data Receiving means for receiving differential compression data including differential compression expression data including direct designation information indicating the remaining content excluding the portion corresponding to the data, or uncompressed data including the data;
Type determination means for determining whether the data received by the receiving means is the fingerprint compression data, the differential compression data, or the non-compression data;
When the type determining means determines that the receiving means has received the differential compression time data, the differential compression expression data included in the differential compression data included in the differential compression data is the source of the differential compression expression data based with reference to the set of the said fingerprint with the location information the compressed information corresponding to the portion in the data includes, for each said portion, the fingerprint and the location information from the client-side fingerprint cache The same content as the part is acquired, and the original data of the differential compressed expression data is restored using the same content as the acquired part and the direct designation information included in the differential compressed expression data. Restoration processing means,
Data stored in the client-side fingerprint cache in association with a fingerprint included in the compressed data when the type determining unit determines that the receiving unit has received the fingerprint compression data. Is transmitted to the client device serving as the destination, and when the type determination unit determines that the reception unit has received the differential compression data, the restoration processing unit includes the differential compression data in the differential compression data Data restored based on the differentially compressed representation data to be added to the client-side fingerprint cache in association with the fingerprint generated based on the data, and the data as the destination client And the receiving means receives the uncompressed data. If, when the type determination means determines the data contained in data uncompressed, in association with the fingerprint generated based on the data added to the client-side fingerprint cache, and, For causing the computer to function as transmission means for transmitting the data to the client device as the destination ;
The server side proxy device is:
Means for receiving the data from the server device;
Means for generating a fingerprint of the received data;
Means for holding, as reference data, the data received by the means for receiving, the fingerprint generated by the means for generating based on the reference data as a server side fingerprint cache in association with the reference data;
If the fingerprint generated based on the received data is not held in the server-side fingerprint cache, for each part or parts of the received data, Among the reference data held in the server-side fingerprint cache, the fingerprint associated with the reference data including the same contents as the part and the location where the same contents exist in the reference data are specified. Compression information consisting of a set of possible location information is obtained, and includes the compression information and direct designation information indicating the remaining contents excluding the portion corresponding to the compression information from the data received by the receiving means Differential compression processing means for generating differential compressed expression data;
For the data amount of the differential compression representation data generated by the differential compression processing means, the compression amount calculated by the data amount of the data that was the source of the differential compression representation data and the data amount of the differential compression representation data A difference expression availability determination unit that determines whether or not a value indicating the degree is equal to or greater than a reference value;
When the fingerprint generated based on the data is stored in the server-side fingerprint cache when the data is received, the fingerprint is used instead of the data that is the source of the fingerprint. When the fingerprint compression data including print is transmitted to the client side proxy device as the destination client device, and the fingerprint is not held in the server side fingerprint cache, the differential compression is performed. When the differential representation availability determination unit determines that the value indicating the degree of compression is greater than or equal to the reference value for the differential compression representation data generated by the processing unit, the fingerprint and the source of the fingerprint are the same. The server-side finger The data at the time of differential compression that is added to the print cache and includes the differential compression representation data instead of the data that was the source of the differential compression representation data is sent to the client side proxy device as the destination of the client device When the differential representation availability determination unit determines that the value indicating the degree of compression is not equal to or greater than the reference value for the differential compression representation data transmitted and generated by the differential compression processing unit, the fingerprint and the fingerprint The data that was the source of printing is associated with the data and added to the server-side fingerprint cache, and uncompressed data including the received data is sent to the client-side proxy device as the destination client device. program, characterized in that those having a means for transmitting.
JP2007154535A 2007-06-11 2007-06-11 Server side proxy device, client side proxy device, data transfer method and program Expired - Fee Related JP4157585B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007154535A JP4157585B2 (en) 2007-06-11 2007-06-11 Server side proxy device, client side proxy device, data transfer method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007154535A JP4157585B2 (en) 2007-06-11 2007-06-11 Server side proxy device, client side proxy device, data transfer method and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001069286A Division JP3990115B2 (en) 2001-03-12 2001-03-12 Server-side proxy device and program

Publications (2)

Publication Number Publication Date
JP2007293894A JP2007293894A (en) 2007-11-08
JP4157585B2 true JP4157585B2 (en) 2008-10-01

Family

ID=38764387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007154535A Expired - Fee Related JP4157585B2 (en) 2007-06-11 2007-06-11 Server side proxy device, client side proxy device, data transfer method and program

Country Status (1)

Country Link
JP (1) JP4157585B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5430370B2 (en) * 2009-11-30 2014-02-26 三菱電機株式会社 Log compression apparatus, log collection system, computer program, and log compression method

Also Published As

Publication number Publication date
JP2007293894A (en) 2007-11-08

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
CN104081739B (en) Compression and the data difference device and system in Intrusion Detection based on host/path of differentiation engine are utilized in overlay network
US8112477B2 (en) Content identification for peer-to-peer content retrieval
US8024484B2 (en) Caching signatures
US7383348B2 (en) Data transfer scheme using caching technique for reducing network load
CN103348334B (en) Cloud system and the compressing file in cloud system and transfer approach
US20060167969A1 (en) Data caching based on data contents
US20050027731A1 (en) Compression dictionaries
CA2655020A1 (en) Method and systems for efficient delivery of previously stored content
JP2013512514A (en) System and method for efficient media distribution using cache
US20090049243A1 (en) Caching Dynamic Content
JP3848209B2 (en) Data transfer device, data transfer method and program
JP2004310371A (en) System, method, server for sharing file and client terminal for file sharing service, file sharing program and recording medium with program recorded
JP3984086B2 (en) Cache server, data transfer device, 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
JP4157585B2 (en) Server side proxy device, client side proxy device, data transfer method and program
US20020107986A1 (en) Methods and systems for replacing data transmission request expressions
JP4053269B2 (en) Data transfer apparatus and data transfer method
JP2003108464A (en) Device and method for transferring data
JP3913508B2 (en) Data transfer apparatus and data transfer method
JP4041157B2 (en) Client side proxy device, data transfer method and program
JP2002373107A (en) Device and method for transferring data and its program
JP3977601B2 (en) Server side proxy device, client side proxy device and program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080616

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: 20080708

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080711

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees