Device, method and program for transferring data
Abstract
Problem to be solved.To provide a proxy device capable of reducing the load of a network.
Solution.When a server side proxy 30 transfers new contents data to a client side proxy 40, the both proxies associate the data with its fingerprint and register the data associated with the fingerprint. However, if the data can be compressed on the basis of another registered data, the compressed data are registered instead of the data. When the proxy 30 transfers to the proxy 40 data having the same fingerprint as the registered fingerprint, the fingerprint is transferred instead of the data. The proxy 40 extracts the data registered in association with the received fingerprint, and decompresses the compressed data to restore the original data when the data are the compressed data.
Copyright (C)2004,JPO
Term
Term ended
Projected expiry passed 23 May 2022, 4.3 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
22 claims: 7 independent, 15 dependent
- 1[Claims] 1. The data transmitted to another data transfer device in the past or the compressed data expressed by compressing the data and the name generated based on the data and assigned to the data are held in association with each other. Holding means to A receiving means for receiving data from the first communication device to the second communication device via the other data transfer device, and When the data is received by the receiving means, if the name generated based on the contents of the received data is held by the holding means, the name is transmitted instead of the received data. If the name is not held by the holding means, other data held by the holding means is used as reference data, and the name corresponding to the reference data is used. If it is possible to compress and express the received data, the compressed data expressed by compressing the received data and the name are associated with each other and held in the holding means, and the reception is performed. If it is not possible to perform a process for transmitting the compressed data in place of the generated data and express the compressed data, the received data and the name are associated with each other and held in the holding means, and the data is held in the holding means. A processing means for performing processing for transmitting received data, and Data including the name instead of the data, the compressed data in place of the data, or a transmission means for transmitting the data to the other data transfer device according to the processing of the processing means. Transfer device. 【特許請求の範囲】 【請求項1】過去に他のデータ転送装置へ送信したデータ又は該データを圧縮して表現した圧縮データと、該データをもとに生成して該データに割り当てた名前とを対応付けて保持する保持手段と、 第1の通信装置から、前記他のデータ転送装置を介した第2の通信装置を宛先とするデータを受信する受信手段と、 この受信手段により前記データを受信した際に、該受信したデータの内容をもとに生成した名前が、前記保持手段に保持されている場合には、該受信したデータの代わりに該名前を送信するための処理を行い、該名前が、前記保持手段に保持されていない場合には、前記保持手段に保持されている他のデータを参照データとし、該参照データに対応する前記名前を利用して、該受信したデータを圧縮して表現することが可能であるならば、該受信したデータを圧縮して表現した圧縮データと該名前とを対応付けて前記保持手段に保持するとともに、該受信したデータの代わりに該圧縮データを送信するための処理を行い、圧縮して表現することが可能でないならば、該受信したデータと該名前とを対応付けて前記保持手段に保持するとともに、該受信したデータを送信するための処理を行う処理手段と、 前記処理手段の処理に応じて前記データの代わりの前記名前、前記データの代わりの前記圧縮データ又は前記データを、前記他のデータ転送装置へ送信する送信手段とを備えたことを特徴とするデータ転送装置。
- 2The data received from another data transfer device in the past or compressed data expressed by compressing the data, a name generated based on the data and assigned to the data, and compressed data. A holding means for holding the identification information indicating whether or not the data is associated with the data, and Generated based on the data transmitted from the first communication device and destined for the second communication device, the compressed data expressed by compressing the data instead of the data, or the content of the data instead of the data. The receiving means for receiving the name assigned to the data via the other data transfer device, and When the data is received by the receiving means, the received data is held in the holding means in association with the name to be assigned to the data and the identification information indicating that the data is not compressed data, and the data is received. When processing for transmitting data is performed and the compressed data is received instead of the data, the received data corresponds to the name to be assigned to the data and the identification information indicating that the data is compressed. It is attached and held in the holding means, the received compressed data is decompressed, a process for transmitting the decompressed data is performed, and when the name is received instead of the data, the holding means is used. The identification information held in association with the received name is referred to, and if the data is not compressed data, the data held in association with the received name is acquired from the holding means, and the data is obtained. A process for transmitting the acquired data is performed, and if the data is compressed data, the compressed data held in association with the received name is acquired from the holding means, and the acquired compressed data is used. A processing means for decompressing and performing a process for transmitting the decompressed data, A data transfer device including a transmission means for transmitting the received data, the decompressed data, or the acquired data to the second communication device according to the processing of the processing means. 【請求項2】過去に他のデータ転送装置から受信したデータ又は該データを圧縮して表現した圧縮データと、該データをもとに生成して該データに割り当てた名前と、圧縮データであるか否か示す識別情報とを対応付けて保持する保持手段と、 第1の通信装置から送信され、第2の通信装置を宛先とするデータ、該データの代わりに該データを圧縮して表現した圧縮データ又は該データの代わりに該データの内容をもとに生成して該データに割り当てられた名前を、前記他のデータ転送装置を介して受信する受信手段と、 この受信手段により前記データを受信した場合には、該受信したデータと該データに割り当てられるべき名前と圧縮データでないことを示す識別情報とを対応付けて前記保持手段に保持するとともに、該受信したデータを送信するための処理を行い、前記データの代わりに前記圧縮データを受信した場合には、該受信したデータと該データに割り当てられるべき名前と圧縮データであることを示す識別情報とを対応付けて前記保持手段に保持するとともに、該受信した圧縮データを解凍し、該解凍したデータを送信するための処理を行い、前記データの代わりに前記名前を受信した場合には、前記保持手段に該受信した名前に対応付けて保持されている前記識別情報を参照し、該データが圧縮データでないならば、該保持手段から該受信した名前に対応付けて保持されているデータを取得し、該取得したデータを送信するための処理を行い、該データが圧縮データであるならば、該保持手段から該受信した名前に対応付けて保持されている圧縮データを取得し、該取得した圧縮データを解凍し、該解凍したデータを送信するための処理を行う処理手段と、 前記処理手段の処理に応じて前記受信したデータ、前記解凍したデータ又は前記取得したデータを、前記第2の通信装置へ送信する送信手段とを備えたことを特徴とするデータ転送装置。
- 3The compressed data is characterized in that other data held in the holding means is used as reference data and is expressed by using the name corresponding to the reference data. The data transfer device described in 2. 【請求項3】前記圧縮データは、前記保持手段に保持されている他のデータを参照データとし、該参照データに対応する前記名前を利用して表現したものであることを特徴とする請求項2に記載のデータ転送装置。
- 15A data to a second communication device via another data transfer device is received from the first communication device, and the data is received. The name generated based on the contents of the received data is the data transmitted to the other data transfer device in the past or the compressed data expressed by compressing the data and the data generated based on the data. It is determined whether or not the data is held by the holding means that holds the data in association with the name assigned to the data. If retained, the name is transmitted to the other data transfer device in place of the received data. When it is not held, other data held in the holding means may be used as reference data, and the received data may be compressed and expressed by using the name corresponding to the reference data. It is determined whether or not it is possible, and if possible, the compressed data expressed by compressing the received data is associated with the name and held in the holding means, and the received data is held. Instead, the compressed data is transmitted to the other data transfer device, and if it is not possible to compress and represent the compressed data, the received data and the name are associated with each other and held in the holding means, and received. A data transfer method, characterized in that the data is transmitted to the other data transfer device. 【請求項15】第1の通信装置から、他のデータ転送装置を介した第2の通信装置を宛先とするデータを受信し、 受信された前記データの内容をもとに生成した名前が、過去に前記他のデータ転送装置へ送信したデータ又は該データを圧縮して表現した圧縮データと該データをもとに生成して該データに割り当てた名前とを対応付けて保持する前記保持手段に保持されているか否か判断し、 保持されている場合には、受信された前記データの代わりに前記名前を前記他のデータ転送装置へ送信し、 保持されていない場合には、前記保持手段に保持されている他のデータを参照データとし、該参照データに対応する前記名前を利用して、受信された前記データを圧縮して表現することが可能であるか否か判断し、可能であるならば、受信された前記データを圧縮して表現した圧縮データと前記名前とを対応付けて前記保持手段に保持するとともに、受信された前記データの代わりに該圧縮データを前記他のデータ転送装置へ送信し、圧縮して表現することが可能でないならば、受信された前記データと該名前とを対応付けて前記保持手段に保持するとともに、受信された前記データを前記他のデータ転送装置へ送信することを特徴とするデータ転送方法。
- 17Data transmitted from a first communication device and destined for a second communication device, compressed data expressed by compressing the data instead of the data, or contents of the data instead of the data. The name assigned to the data generated based on the above is received via another data transfer device. When the data is received from the other data transfer device, the data is generated based on the data received from the other data transfer device in the past or the compressed data expressed by compressing the data and the data. The holding means that holds the name assigned to the data in association with the identification information indicating whether or not the data is compressed corresponds to the received data, the name to be assigned to the data, and the identification information indicating that the data is not compressed data. It is attached and held, and the received data is transmitted to the second communication device. When the compressed data is received instead of the data, the received data is associated with the name to be assigned to the data and the identification information indicating that the data is compressed, and the data is held in the holding means. The received compressed data is decompressed, and the decompressed data is transmitted to the second communication device. When the name is received instead of the data, the identification information held in association with the received name is referred to by the holding means, and if the data is not compressed data, the holding means is used. The data held in association with the received name is acquired, the acquired data is transmitted to the second communication device, and if the data is compressed data, the received name from the holding means. A data transfer method comprising acquiring compressed data held in association with the data, decompressing the acquired compressed data, and transmitting the decompressed data to the second communication device. 【請求項17】第1の通信装置から送信され、第2の通信装置を宛先とするデータ、該データの代わりに該データを圧縮して表現した圧縮データ又は該データの代わりに該データの内容をもとに生成して該データに割り当てられた名前を、他のデータ転送装置を介して受信し、 前記他のデータ転送装置から前記データを受信した場合には、過去に他のデータ転送装置から受信したデータ又は該データを圧縮して表現した圧縮データと該データをもとに生成して該データに割り当てた名前と圧縮データであるか否か示す識別情報とを対応付けて保持する保持手段に、該受信したデータと該データに割り当てられるべき名前と圧縮データでないことを示す識別情報とを対応付けて保持するとともに、該受信したデータを前記第2の通信装置へ送信し、 前記データの代わりに前記圧縮データを受信した場合には、該受信したデータと該データに割り当てられるべき名前と圧縮データであることを示す識別情報とを対応付けて前記保持手段に保持するとともに、該受信した圧縮データを解凍し、該解凍したデータを前記第2の通信装置へ送信し、 前記データの代わりに前記名前を受信した場合には、前記保持手段に該受信した名前に対応付けて保持されている前記識別情報を参照し、該データが圧縮データでないならば、該保持手段から該受信した名前に対応付けて保持されているデータを取得し、該取得したデータを前記第2の通信装置へ送信し、該データが圧縮データであるならば、該保持手段から該受信した名前に対応付けて保持されている圧縮データを取得し、該取得した圧縮データを解凍し、該解凍したデータを前記第2の通信装置へ送信することを特徴とするデータ転送方法。
- 19Data stored in association with data previously transmitted to another data transfer device or compressed data expressed by compressing the data and a name generated based on the data and assigned to the data. The function to hold in the device and When data destined for the second communication device via the other data transfer device is received from the first communication device, the name generated based on the contents of the received data is the storage device. If it is held in, a process for transmitting the name is performed instead of the received data, and if the name is not held in the storage device, it is held in the storage device. If it is possible to compress and express the received data by using the other data as reference data and using the name corresponding to the reference data, the received data is compressed and expressed. If it is not possible to associate the compressed data with the name and hold it in the storage device, perform a process for transmitting the compressed data in place of the received data, and express the compressed data in a compressed manner. A program for causing a computer to realize a function of associating received data with the name and holding the data in the storage device and performing processing for transmitting the received data. 【請求項19】過去に他のデータ転送装置へ送信したデータ又は該データを圧縮して表現した圧縮データと、該データをもとに生成して該データに割り当てた名前とを対応付けて記憶装置に保持する機能と、 第1の通信装置から、前記他のデータ転送装置を介した第2の通信装置を宛先とするデータを受信した際に、該受信したデータの内容をもとに生成した名前が、前記記憶装置に保持されている場合には、該受信したデータの代わりに該名前を送信するための処理を行い、該名前が、前記記憶装置に保持されていない場合には、前記記憶装置に保持されている他のデータを参照データとし、該参照データに対応する前記名前を利用して、該受信したデータを圧縮して表現することが可能であるならば、該受信したデータを圧縮して表現した圧縮データと該名前とを対応付けて前記記憶装置に保持するとともに、該受信したデータの代わりに該圧縮データを送信するための処理を行い、圧縮して表現することが可能でないならば、該受信したデータと該名前とを対応付けて前記記憶装置に保持するとともに、該受信したデータを送信するための処理を行う機能とをコンピュータに実現させるためのプログラム。
- 21Data received from another data transfer device in the past, compressed data expressed by compressing the data, a name generated based on the data and assigned to the data, and compressed data. The function of associating with the identification information indicating whether or not the data is stored in the storage device, and Generated based on the data transmitted from the first communication device and destined for the second communication device, the compressed data expressed by compressing the data instead of the data, or the content of the data instead of the data. The function of receiving the name assigned to the data via the other data transfer device, and When the data is received by this reception function, the received data is stored in the storage device in association with the name to be assigned to the data and the identification information indicating that the data is not compressed data, and the data is received. When processing for transmitting data is performed and the compressed data is received instead of the data, the received data corresponds to the name to be assigned to the data and the identification information indicating that the data is compressed. It is attached and held in the storage device, the received compressed data is decompressed, processing for transmitting the decompressed data is performed, and when the name is received instead of the data, the storage device is used. The identification information held in association with the received name is referred to, and if the data is not compressed data, the data held in association with the received name is acquired from the storage device, and the data is obtained. A process for transmitting the acquired data is performed, and if the data is compressed data, the compressed data held in association with the received name is acquired from the storage device, and the acquired compressed data is used. A program for realizing a function of decompressing and performing a process for transmitting the decompressed data on a computer. 【請求項21】過去に他のデータ転送装置から受信したデータ又は該データを圧縮して表現した圧縮データと、該データをもとに生成して該データに割り当てた名前と、圧縮データであるか否か示す識別情報とを対応付けて記憶装置に保持する機能と、 第1の通信装置から送信され、第2の通信装置を宛先とするデータ、該データの代わりに該データを圧縮して表現した圧縮データ又は該データの代わりに該データの内容をもとに生成して該データに割り当てられた名前を、前記他のデータ転送装置を介して受信する機能と、 この受信機能により前記データを受信した場合には、該受信したデータと該データに割り当てられるべき名前と圧縮データでないことを示す識別情報とを対応付けて前記記憶装置に保持するとともに、該受信したデータを送信するための処理を行い、前記データの代わりに前記圧縮データを受信した場合には、該受信したデータと該データに割り当てられるべき名前と圧縮データであることを示す識別情報とを対応付けて前記記憶装置に保持するとともに、該受信した圧縮データを解凍し、該解凍したデータを送信するための処理を行い、前記データの代わりに前記名前を受信した場合には、前記記憶装置に該受信した名前に対応付けて保持されている前記識別情報を参照し、該データが圧縮データでないならば、該記憶装置から該受信した名前に対応付けて保持されているデータを取得し、該取得したデータを送信するための処理を行い、該データが圧縮データであるならば、該記憶装置から該受信した名前に対応付けて保持されている圧縮データを取得し、該取得した圧縮データを解凍し、該解凍したデータを送信するための処理を行う機能とをコンピュータに実現させるためのプログラム。
Independent claims7
580 paragraphs in 1 section, as filed
Description: TECHNICAL FIELD [Detailed description of the invention]
【0001】
[Technical field to which the invention belongs]
The present invention relates to data transfer devices, data transfer methods and programs that transfer data for other devices.
【0002】
[Conventional technology]
A client-server type information system is widely used, which is composed of 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 called the Web), which consists of a Web server and a client that communicate using the HTTP protocol on the Internet, is a very widely used client-server type information system. Normally, a server program runs on the server, and a predetermined tool (program) such as a browser runs on the client. The contents of services provided on the Internet are also diverse, providing information such as characters, still images, moving images, voices (for example, homepages, e-mails, digital contents, etc.) and programs via the network. Various services such as delivery or transfer services, electronic store services for selling products, reservation services for seats and rooms, mediation services for various contracts, etc. already exist, and new forms of services are being created one after another. Has appeared.
【0003】
By the way, in a client-server type information system such as the Web, regardless of the form of the service provided, the service is basically provided by data transfer between the client and server. Will be 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, cache technology is usually used to reduce the load on the network.
【0004】
In the case of a Web system, many browsers running on the client use a cache mechanism and cache recently accessed data. Since access is performed by specifying information and services with a name called a URL on the Web, the cache on the client is the cacheable data returned as a result of the information and services requested to the Web server in the past. , Corresponds to the URL and records it in the cache. In this case, when there is a request for information or service with the same URL as the one in the cache, if it can be determined that the response data in the cache is not out of date, that data is returned to the Web server. Communication between can be eliminated.
【0005】
If there are multiple users on 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 on the proxy server. There are many. The cache in the client (for example, the cache of the browser) operates as a cache dedicated to the client user, while the cache of the proxy server on the LAN operates as a cache shared by a plurality of client users. Therefore, in the latter case, the cache is effective even when accessing a URL accessed by another person (another client) in the past.
【0006】
By the way, on the Web, communication is performed between the client and the server by a protocol called HTTP. The HTTP protocol is a set of a "request message" sent from the client to the server and a "reply message" that responds and returns a response from the server to the client.
【0007】
The request message consists of a "request header" and a "request body". The request header contains information that you want to access, a URL that specifies the service, a method name that indicates the type of access, and various other information required for access. The request body contains the data to be sent to the server. The data contained in the request body is also called "request data".
【0008】
The reply message consists of a "reply header" and a "reply body". The reply header contains information such as the status of the processing result, and the reply body contains data such as the requested information and the processing result of the requested service. The data contained in the reply body is also called "reply data".
【0009】
Request message methods include the "GET method" that reads information on the server, the "PUT method" that writes user data to the server, and the "POST method" that sends back the processing results in response to the request. It is the main one used to access the service. Other methods such as DELETE are defined.
【0010】
In most 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 request message of the POST method contains information used for processing on the server side as needed, and the reply body of the reply message of the POST method contains the data of the result of the processing.
【0011】
The 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 sends back the data already stored on the server side as it is. Of these, the contents of dynamic data may differ each time the same URL is read, so in many cases, the server sends back a non-cacheable specification in the header of the reply message. Therefore, it is the static data part that is cached in the 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 controls access so that only specific users can access it by user authentication. .. 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 (since private data must be authenticated by the server and sent back). However, in the case of a personal cache such as a browser, private data can also be cached.
【0012】
Since the POST method returns the result of processing on the server side, the server generally puts the non-cacheable specification in the header of the reply message and sends back the result. Therefore, it is usually not cached.
【0013】
The PUT method sends the data to the server, so the cache does nothing.
【0014】
[Problems to be Solved by the Invention]
Traditional Web caches cache static content. In the past, information and services published on the Web were not updated very frequently and were often published to an unspecified number of people, so the ratio of static content was very high, and conventional Cache technology was also effective in reducing the load on the network.
【0015】
However, as systems such as Web-based ASPs (Application Service Providers) that allow users to access information and services on servers via a network using a Web browser have become widespread, conventional cache technologies have been used as described below. The amount of data that cannot be handled is increasing. -Since the user is authenticated and the users who can access it are restricted, there is a lot of private data. -Many dynamic data are generated by referring to the back-end database. -In many cases, POST methods such as form processing and search are used. -PUT methods are often used to share information within groups. As a result, cache technology alone is no longer effective as a method for reducing the load on the network.
【0016】
The present invention has been made in consideration of the above circumstances, and provides a data transfer device, a data transfer method, and a program equipped with a cache technology / compression technology that can further reduce the load on the network connecting the data transfer devices. The purpose is to provide.
【0017】
[Means for solving problems]
The data transfer device according to the present invention has data transmitted to another data transfer device in the past or compressed data expressed by compressing the data, and a name generated based on the data and assigned to the data. The holding means for holding the data in association with each other, the receiving means for receiving data from the first communication device to the second communication device via the other data transfer device, and the receiving means for receiving the data. When the name generated based on the contents of the received data is held by the holding means, a process for transmitting the name instead of the received data is performed, and the process is performed. When the name is not held by the holding means, other data held by the holding means is used as reference data, and the received data is compressed by using the name corresponding to the reference data. If it is possible to express the received data, the compressed data expressed by compressing the received data is associated with the name and held in the holding means, and the compressed data is replaced with the received data. If it is not possible to perform a process for transmitting the data and express it in a compressed manner, the received data and the name are associated with each other and held in the holding means, and the received data is transmitted. A processing means for performing processing and a transmission means for transmitting the name instead of the data, the compressed data in place of the data, or the data to the other data transfer device according to the processing of the processing means. It is characterized by that.
【0018】
Further, the data transfer device according to the present invention includes data received from another data transfer device in the past or compressed data expressed by compressing the data, and a name generated based on the data and assigned to the data. And the holding means for holding the identification information indicating whether or not the data is compressed data in association with each other, the data transmitted from the first communication device and destined for the second communication device, and the data instead of the data. And a receiving means for receiving the compressed data expressed by compressing the data or the name assigned to the data generated based on the contents of the data instead of the data via the other data transfer device. When the data is received by the receiving means, the received data is held in the holding means in association with the name to be assigned to the data and the identification information indicating that the data is not compressed data, and the received data is held. When the compressed data is received instead of the data, the received data is associated with the name to be assigned to the data and the identification information indicating that the data is compressed. The data is held in the holding means, the received compressed data is decompressed, a process for transmitting the decompressed data is performed, and when the name is received instead of the data, the holding means is used. The identification information held in association with the received name is referred to, and if the data is not compressed data, the data held in association with the received name is acquired from the holding means, and the acquisition is performed. If the data is compressed data, the compressed data held in association with the received name is acquired from the holding means, and the acquired compressed data is decompressed. Then, the processing means for transmitting the decompressed data, the received data, the decompressed data, or the acquired data according to the processing of the processing means are transmitted to the second communication device. It is characterized by being provided with a transmission means for performing data.
【0019】
Further, the data transfer method according to the present invention receives data from the first communication device to the second communication device via another data transfer device, and based on the contents of the received data. The name generated in is associated with the data previously transmitted to the other data transfer device or the compressed data expressed by compressing the data and the name generated based on the data and assigned to the data. It is determined whether or not it is held by the holding means to be held, and if it is held, the name is transmitted to the other data transfer device instead of the received data, and if it is not held. Is capable of compressing and expressing the received data by using other data held in the holding means as reference data and using the name corresponding to the reference data. Judging, if possible, the compressed data expressed by compressing the received data is associated with the name and held in the holding means, and the compressed data is stored in place of the received data. If it is not possible to transmit the data to the other data transfer device and express it in a compressed manner, the received data and the name are associated with each other and held in the holding means, and the received data is held in the holding means. It is characterized by transmitting to another data transfer device.
【0020】
Further, the data transfer method according to the present invention is the data transmitted from the first communication device and destined for the second communication device, the compressed data expressed by compressing the data instead of the data, or the data. Instead, when the name generated based on the content of the data and assigned to the data is received via another data transfer device and the data is received from the other data transfer device, the past Data received from another data transfer device or compressed data expressed by compressing the data, a name generated based on the data and assigned to the data, and identification information indicating whether or not the data is compressed. The holding means for holding the received data in association with the received data, the name to be assigned to the data, and the identification information indicating that the data is not compressed data are held in association with each other, and the received data is held in the second communication device. When the compressed data is received instead of the data, the received data is associated with the name to be assigned to the data and the identification information indicating that the data is compressed, and the holding means is used. While holding, the received compressed data is decompressed, the decompressed data is transmitted to the second communication device, and when the name is received instead of the data, the received name is sent to the holding means. If the data is not compressed data, the data held in association with the received name is acquired from the holding means, and the acquired data is obtained. When the data is transmitted to the second communication device and the data is compressed data, the compressed data held in association with the received name is acquired from the holding means, and the acquired compressed data is decompressed. The decompressed data is transmitted to the second communication device.
【0021】
Further, in the present invention, data transmitted to another data transfer device in the past or compressed data expressed by compressing the data is associated with a name generated based on the data and assigned to the data. Based on the function held in the storage device and the content of the received data when data is received from the first communication device to the second communication device via the other data transfer device. When the generated name is held in the storage device, a process for transmitting the name is performed instead of the received data, and when the name is not held in the storage device, the process is performed. If other data stored in the storage device can be used as reference data and the received data can be compressed and expressed by using the name corresponding to the reference data, the reception The compressed data expressed by compressing the data is stored in the storage device in association with the compressed data, and a process for transmitting the compressed data instead of the received data is performed and the compressed data is compressed and expressed. If it is not possible, a program for realizing a function of associating the received data with the name and holding the received data in the storage device and performing a process for transmitting the received data in the computer. is there.
【0022】
Further, the present invention uses data received from another data transfer device in the past or compressed data expressed by compressing the data, a name generated based on the data and assigned to the data, and compressed data. The function of associating the identification information indicating the presence or absence and holding it in the storage device, the data transmitted from the first communication device and destined for the second communication device, and compressing the data instead of the data. The function of receiving the compressed data expressed in the above-mentioned data or the name assigned to the data generated based on the contents of the data instead of the data via the other data transfer device, and the function of receiving the data. When the data is received, the received data is stored in the storage device in association with the name to be assigned to the data and the identification information indicating that the data is not compressed data, and the received data is transmitted. When the compressed data is received instead of the data, the storage device associates the received data with a name to be assigned to the data and identification information indicating that the data is compressed data. When the received compressed data is decompressed and the decompressed data is transmitted, and the name is received instead of the data, the received name is sent to the storage device. With reference to the identification information held in association with each other, if the data is not compressed data, the data held in association with the received name is acquired from the storage device, and the acquired data is transmitted. If the data is compressed data, the compressed data held in association with the received name is acquired from the storage device, the acquired compressed data is decompressed, and the decompression is performed. It is a program to realize a function to perform processing for transmitting the data.
【0023】
The present invention relating to the device is also valid as an invention relating to the method, and the present invention relating to the method is also valid as an invention relating to the device. In addition, the present invention relating to an apparatus or method provides a function for causing a computer to perform a procedure corresponding to the present invention (or for causing the computer to function as a means corresponding to the present invention, or for causing the computer to perform a function corresponding to the present invention. It also holds as a program (for realization), and also as a computer-readable recording medium on which the program is recorded.
【0024】
According to the present invention, the correspondence between the data and the name is maintained between the data transfer devices, and for the data holding this correspondence, the corresponding name is transferred instead of transferring the data body. The amount of data transferred between transfer devices can be reduced. For example, even if the reply message of the GET method is private data, it can be compressed by fingerprinting and transferred between data transfer devices. Further, for example, even if the reply message of the GET method is dynamic data, if the contents are the same data, it can be compressed by fingerprinting and transferred between data transfer devices. Further, for example, even if the POST method is used, if the results are the same data, it can be compressed by fingerprinting and transferred between data transfer devices.
【0025】
Further, according to the present invention, even if the corresponding name cannot be transferred instead of transferring the data because the name corresponding to the data is not retained, the retained reference data can be used. By transferring the compressed data expressed by compressing the data using the corresponding name, the amount of data transferred between the data transfer devices can be reduced. For example, if the reply data of the GET method or POST method is partially different from the previously accessed data, the amount of data can be reduced by performing differential transfer. Further, for example, when the request data of the PUT method or the POST method is partially different from the previously sent data, the amount of data can be reduced by performing the differential transfer.
【0026】
Further, according to the present invention, when the data can be compressed, the storage device (memory, hard disk, etc.) can be effectively used by storing the compressed data instead of the data.
【0027】
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the invention will be described with reference to the drawings.
【0028】
In the following, the case where the WAN is the Internet, the client is connected to the user office LAN, and the HTTP protocol is used will be described as an example. However, the present invention describes the case where the WAN is other than the Internet. It can be applied even if the client is installed in a home LAN other than the office, or if a protocol other than HTTP is used.
【0029】
FIG. 49 shows a basic configuration example of a computer network system to which the present invention is applied. In this configuration example, the local area network (LAN) 12 in the ASP server center 2 and the local area network (LAN) 16 in the user office 4 are connected via a wide area network (WAN) 14 such as the Internet or a dedicated line. The server 20 and the client 50 can communicate via LAN12, WAN14, and LAN16. One or more servers are connected to LAN12, and one or more clients are connected to LAN16.
【0030】
The Web-based ASP provides services by various application programs from the server 20 installed in the center 2 via WAN14, and the user accesses those services using the Web browser etc. on the client installed in the office 4. To do. In such a usage pattern, the effective communication capacity (bandwidth) of the network connecting the office LAN 16 and the center LAN 12, especially the WAN 14 such as the Internet, is lower than that of the LAN 12 and LAN 16, which is a bottleneck in terms of performance. There is a problem that communication delay occurs as a bottleneck and the response performance of the application deteriorates. Therefore, in the present embodiment, for example, as shown in FIG. 1, two modules, a server-side proxy 30 and a client-side proxy 40, are installed at both ends of the WAN 14 connecting the center LAN 12 and the office LAN 16, and the server 20 and the client are installed. When 50 communicates via LAN12, proxy 30, WAN14, proxy 40, and LAN16, a wide area network is created by reducing the amount of communication data by performing fingerprint compression (FP compression) or differential compression, which will be described later, between these proxies. Eliminate the bottleneck. Further, these proxies reduce the required cache amount by holding a part of the data required for compression by the difference information, as will be described in detail later.
【0031】
The server 20, the server-side proxy 30, the client-side proxy 40, and the client 50 of the present embodiment all use 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, software such as OS, driver software, packet communication software, encryption software, etc., or hardware such as communication interface device, external storage device, input / output device, etc., which have desired functions, can be added to the computer as needed. Installed or connected. Further, in this case, it is preferable to use a graphical user interface (GUI) for inputting information from a user or an administrator, presenting information to the user, and the like.
【0032】
On the client 50 used by the user to use the service, a program such as a Web browser runs according to the purpose. The user uses the service, for example, by issuing a request message from a Web browser to a server that provides a desired service such as information transfer or order reception via the Internet, receiving a reply message, or repeating this as appropriate. .. It should be noted that, 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, for example, a mobile phone terminal having an Internet function, or the like, instead of a general-purpose calculator.
【0033】
A predetermined server program runs on the server 20, and provides a service unique to the server site to the user of the client 50.
【0034】
As shown in FIG. 1, the server-side proxy 30 may be installed and implemented so as to operate as a transparent proxy by connecting to both LAN12 and WAN14 in the server center. Further, as shown in Fig. 2, it may be installed on LAN12 in the server center. Further, as shown in FIG. 3, the function of the server-side proxy 30 may be implemented so as to be built in the server 20.
【0035】
Similarly, the client-side proxy 40 may be installed and implemented so as to operate as a transparent proxy by connecting to both LAN 16 and WAN 14 in the user office as shown in FIG. Further, as shown in FIG. 2, it may be installed on the LAN 16 in the user office. Further, as shown in FIG. 3, the function of the client-side proxy 40 may be incorporated in a browser or the like running on the client 50. Alternatively, the personal client-side proxy 40 may be operated on the operating client 50 such as a browser.
【0036】
The server-side proxy 30 and the client-side proxy 40 may have the same form as shown in FIGS. 1 to 3, or may have different forms.
【0037】
The outline of the fingerprint cache, FP compression and differential compression using the fingerprint cache, and data management will be described below.
【0038】
In the following description, when one of the data transfer directions between the server-side proxy 30 and the client-side proxy 40 is described as an example, the case where data is transferred from the server-side proxy 30 to the client-side proxy 40 is described. As an example, the same can be done when transferring data from the client-side proxy 40 to the server-side proxy 30.
【0039】
The server-side proxy 30 and the client-side proxy 40 of the present embodiment have a cache mechanism called a fingerprint cache. The fingerprint cache records and manages the data exchanged by the HTTP protocol by the name called fingerprint (FP).
【0040】
As illustrated in Fig. 4, the fingerprint is a short numerical value determined by a predetermined calculation method (hash function in Fig. 4) from the contents of the data (content in Fig. 4) exchanged by the HTTP protocol. is there. This numerical value may have a variable length, but from the viewpoint of ease of processing, a fixed length numerical value is easier to handle.
【0041】
As a method of 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, etc., and when arbitrary data is given, they are converted to 128-bit numbers for MD-5 and 160-bit numbers for SHA-1. can do. The characteristics of these hash functions are that if two data X1 and X2 are given and data X1 and data X2 are the same, the hash value calculated for data X1 and the hash value calculated for data X2 Are equal, but given two different data A, B, the hash value calculated for data A and the hash value calculated for data B are very likely to be different. (In principle, the hash values calculated for two different data A and B may be the same, but the probability is so small that it can be ignored in practice).
【0042】
As shown in FIG. 5, the fingerprint cache (260) of the server-side proxy 30 and the client-side proxy 40 is the data body (261) exchanged by the HTTP protocol in the past or the data generated by the differential compression described later. Difference compression data indicating whether the recorded data is the data itself or the data generated by difference compression, using (264) as the name of the fingerprint value (262) obtained by calculating from the exchanged data. Record and manage with an identifier (hereinafter referred to as a compressed identifier) (263). In the following, the identifier = 0 indicates that "the recorded data is the data body", and the identifier = 1 indicates that "the recorded data is the data generated by differential compression". The following is an example, but the present invention is not limited to this.
【0043】
For example, when transferring data from the server-side proxy 30 to the client-side proxy 40 using the HTTP protocol, the server-side proxy 30 calculates the fingerprint of the data, and the data corresponding to that fingerprint is stored in the fingerprint cache. If it is included and the compression proxy is 0, the data existing in the cache is not the data generated by differential compression, but the data (data with the same contents) has been transferred in the past, so the data Transfer the corresponding fingerprint value without transferring. Upon receiving the fingerprint, the client-side proxy 40 can reproduce the data to be transferred by extracting the data corresponding to the value of the fingerprint from the fingerprint cache.
【0044】
Further, for example, in the above case, if the data corresponding to the calculated fingerprint is stored in the fingerprint cache and the compression identifier is 1, the server-side proxy 30 generates the data existing in the cache by differential compression. It is found that the difference compression has succeeded in the past for the received data (data with the same content) and the difference information has been transferred, and the corresponding finger is used without transferring the data. Transfer print values. The client-side proxy 40 that receives the fingerprint can reproduce the data to be transferred by extracting the data corresponding to the value of the fingerprint from the fingerprint cache and decompressing the differentially compressed data. ..
【0045】
If the same data (data body or data generated by differential compression) sent in the past by such a method (that is, data compression by fingerprint transfer of fingerprint decompression of data by fingerprint) Since it is only necessary to send the fingerprint value, the amount of data flowing through the network can be significantly reduced.
【0046】
In the above case, if the data corresponding to the calculated fingerprint is not stored in the fingerprint cache, this time, the data generated by the differential compression described later or the data body is transferred and the fingerprint is printed. -By registering in the cache, you will be able to transfer fingerprints by FP compression from the next time.
【0047】
For the sake of explanation, when transferring data between the server-side proxy 30 and the client-side proxy 40, it is a finger to use the fingerprint cache to replace the message body data with a fingerprint to compress the amount of transfer information. It shall be called print compression (FP compression).
【0048】
Next, differential compression will be described.
【0049】
In the above FP compression, the identity of the data is determined at high speed by using the fingerprint on the data, and the same data as the data registered in the fingerprint cache is not transferred between the proxies. Instead, the finger on the data is used. Transfer prints to reduce network load. However, FP compression cannot be applied to data that is different from the data registered in the fingerprint cache, even if most of the data is the same. Therefore, in the present embodiment, even when FP compression cannot be performed, one or a plurality of data registered in the fingerprint cache are used as reference data, and the fingerprint of the reference data and the difference information with respect to the reference data are transferred. By expressing the transferred data with the information for restoring the data to be transferred, the transferred data is expressed with a small amount of information, and the amount of transferred data is reduced as much as possible. That is, the data in the fingerprint cache is used as a dictionary, and the data that can be retrieved from it is not sent.
【0050】
For the sake of explanation, when transferring data between the server-side proxy 30 and the client-side proxy 40, the fingerprint cache is used to replace the message body data with the fingerprint of the reference data to compress the amount of transfer information. This is called differential compression. Further, the transfer data generated by this differential compression is referred to as differential compressed data.
【0051】
Note that the differential compression using such a fingerprint also has an advantage that it is necessary to predetermine the relationship between the data to be transferred and the reference data. That is, in the conventional difference transfer, it is necessary to decide in advance what to base the difference on both sides, so when the difference transfer is actually used in the Web system, the data of this URL is the difference based on this data. It was impossible to make it work effectively for arbitrary data because it was necessary to have a means to register the rule such as taking. On the other hand, in this difference compression method, the data in the fingerprint cache is used as reference data to take the difference, so that the effect of data compression due to the difference can be obtained even if the base of the difference is not determined in advance. Obtainable.
【0052】
Next, the data management method of the present embodiment will be described.
【0053】
In the present embodiment, when the server-side proxy 30 succeeds in differential compression of the reply data received from the server 20, the server-side proxy 30 transmits the differential compressed data generated by the differential compression to the client-side proxy 40. , The fingerprint cache 260 of its own records and manages the fingerprint acquired from the reply data and the differential compressed data. At this time, the compression identifier is set to 1 to indicate that the recorded / managed data is differentially compressed data.
【0054】
In the client-side proxy 40, when the reply data received from the server-side proxy 30 is differential compressed data, the reply data received by the server-side proxy 30 is generated from the differential compressed data and transmitted to the client 50. In its own fingerprint cache 260, the fingerprint for the reply data generated from the differential compressed data and the differential compressed data received from the server-side proxy 30 are recorded and managed. At this time, the compression identifier is set to 1 to indicate that the recorded / managed data is differentially compressed data.
【0055】
On the other hand, if the reply data received from the server 20 by the server-side proxy 30 is the first data and both FP compression and differential compression fail, the server-side proxy 30 sends the reply data to the client-side proxy 40. Is transmitted, and the fingerprint acquired from the reply data and the reply data are recorded and managed in the own fingerprint cache 260. At this time, the compression identifier is set to 0 to indicate that the recorded / managed data is not differentially compressed data.
【0056】
When the client-side proxy 40 detects that the reply data received from the server-side proxy 30 is data that is neither FP-compressed nor differential-compressed, the reply data is transmitted to the client 50 as well. , The fingerprint cache 260 of its own records and manages the fingerprint acquired from the reply data and the reply data. At this time, the compression identifier is set to 0 to indicate that the recorded / managed data is not differentially compressed data.
【0057】
As a result, for the data for which the differential compression is successful, only the differential compression data is stored in the fingerprint cache 260 of both the server-side proxy 30 and the client-side proxy 40.
【0058】
By the way, in applications such as Web-based ASP, a lot of data is used in which most of the contents are the same but only a part is different. For example, there are many forms of data in which the same information is entered in many fields and only a part of them is different. Further, for example, some Web pages differ only in date or time, and some Web pages differ only in the counter value of the total number of accesses. In such a case, the transfer or storage by the differential compressed data is particularly effective, and the transfer or storage by the data body can be effectively reduced.
【0059】
All messages may be applied to FP compression between the proxies 30 and 40, but for example, messages that satisfy predetermined conditions are excluded from FP compression (always FP compression). (Transfer without). The predetermined conditions are, for example, that the message header describes predetermined information (for example, information indicating a GET method and information indicating a request), and the data to be transferred is empty (null) or very very. Various variations are possible, such as being short in size.
【0060】
In addition, all the messages to which FP compression is applied may be applied to the differential compression, but among the messages to which the FP compression is applied, the messages satisfying the predetermined conditions are excluded from the application of the differential compression. (In this case, the condition to which the differential compression is applied is the condition to which the FP compression is applied, and other conditions are weighted). For example, make the upper limit U2 of the data size that is not differentially compressed larger than the upper limit U1 of the data size that is not FP compressed (the lower limit L2 of the data size that should be differentially compressed than the lower limit L1 of the data size that should be FP compressed). The method of increasing the size and whether or not FP compression is applied is determined by the data size, but regarding whether or not differential compression is applied, data other than HTML or XML among the FP compression is applied. Various variations are conceivable, such as the method of making it outside (differential compression is performed only for HTML and XML data). In the following, a case where all the messages to which the FP compression is applied are the targets to which the differential compression is applied will be described as an example.
【0061】
In the present embodiment, the messages to be FP-compressed and to be differentially compressed are messages in which the data is FP-compressed (however, the compression identifier may be 0 or 1), and the data is differentially compressed. , Or the data will be forwarded between the server-side proxy 30 and the client-side proxy 40 as either uncompressed messages.
【0062】
If there is a message that is subject to FP compression and is not subject to differential compression, the message is either a message in which the data is FP-compressed (compression identifier = 0) or a message in which the data is not compressed. It will be transferred between the server-side proxy 30 and the client-side proxy 40.
【0063】
If there is a message that is not the target of FP compression, the message is forwarded between the server-side proxy 30 and the client-side proxy 40 as a message whose data is not compressed.
【0064】
Here, the method of differential compression will be described.
【0065】
There are various methods of differential compression using the fingerprint cache, such as those shown below. -Use one of the data registered in the fingerprint cache as reference data. Between the proxies, the fingerprint value corresponding to the reference data and the information indicating the 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 transferred data is represented by combining (all or part of) the data 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 part of the reference data used for restoring the transferred data, and the information indicating how to restore the transferred data based on that part are transferred. To do.
【0066】
The following is an example of how to represent the differentially compressed data.
【0067】
Figure 6 shows three types of instructions for expressing the data to be transferred. The differentially compressed data to be transferred instead of the data is composed of a sequence of these instructions.
【0068】
(a) is an instruction to number and define the reference data when referencing the data in the fingerprint cache. The first byte, 8n (n = 0 in the example of FIG. 6), is an indicator identifier. Of this instruction identifier, n indicates that the data specified by the fingerprint is treated as the nth reference data. The 16 bytes starting from the second byte indicate the fingerprint value for the reference data. In this example, 80 to 8F can handle reference data from 0 to 15 at maximum. The maximum number of reference data that can be handled can be large or small depending on the implementation.
【0069】
(b) represents an instruction to copy partial data from the reference data defined in (a). The first byte, 9n (n = 0 in the example of FIG. 6), is an indicator identifier. Of this instruction identifier, n indicates that the reference data of number n defined in the instruction of (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 length of the data. Then, they indicate that the data of the specified length from the specified offset position in the reference data of the nth should be copied (as a component of the transfer data) according to the position (order) of the sequence of the instructions.
【0070】
(c) is an instruction for directly specifying the data. A0 in the first byte is an indicator identifier. The 4 bytes from the 2nd byte indicate the length of the data. After the 6th byte, the data of the number of bytes specified by the length continues. Then, it indicates that the data after the 6th byte is copied (as a component of the transfer data) according to the position (order) of the sequence of the instructions.
【0071】
The differential compressed data composed of such a sequence of instructions can be decompressed by simply copying and connecting the data in the order instructed while referring to the fingerprint cache.
【0072】
Next, an example of differential compression according to the above method is shown.
【0073】
Assume that the data shown in Fig. 7 is stored in the fingerprint cache as fingerprints 5E83 ... B6.
【0074】
At this time, if the data shown in FIG. 8 is given, the data shown in FIG. 7 can be used as reference data for differential compression as shown in FIG.
【0075】
That is, when compared with the data in FIG. 7, the data in FIG. 8 is only changed from "TOKYO" in the data in FIG. 7 to "OSAKA". Therefore, as shown in Fig. 9, first, the 0th byte is instructed to define the data of the fingerprint "5E83 ... B6" as the 0th reference data, and the 17th byte is the 0th byte of the 0th reference data. Instructed to copy 60 bytes from, then instructed to copy the 5 characters of "OSAKA" at the 26th byte, and finally copied the 0th reference data from the 65th byte to the 51st byte at the 36th byte. Instructed to do.
【0076】
The data in FIG. 8 can be reproduced by decompressing according to this instruction.
【0077】
In this example, only one reference data is used, but multiple reference data can be used.
【0078】
Next, another example of differential compression according to the above method is shown.
【0079】
Assume that the data shown in FIG. 10 is stored in the fingerprint cache as fingerprint 82F3 ... 38, and the data shown in FIG. 11 is stored in the fingerprint cache as fingerprint A20D ... CB. .. At this time, if the data shown in FIG. 12 is given, the data shown in FIG. 10 and the data shown in FIG. 11 can be used as reference data for differential compression as shown in FIG.
【0080】
In FIG. 13, first, the 0th byte is instructed to define the data of the fingerprint 82F3 ... 38 as the 0th reference data, and the 17th byte is the 0th to 53rd bytes of the 0th reference data. Instructed to copy, instructed to define the data of the fingerprint "A20D ... CB" as the first reference data at the 26th byte, and at the 43rd byte, the 96th to 55th bytes of the first reference data. Is instructed to copy.
【0081】
The data in FIG. 12 can be reproduced by decompressing according to this instruction.
【0082】
In the above method, the part to be used of the reference data is instructed and the data to be used is directly specified (method 1), but instead, the unused part of the reference data (directly) is used. It is also possible to instruct the part to be replaced with the instruction data) and directly specify the data to be fitted in the unused part (method 2).
【0083】
It is also possible to use method 1 and method 2 together.
【0084】
Next, the inter-proxy message format (for the message to which FP compression is applied) when transferring data between the server-side proxy 30 and the client-side proxy 40 will be described with reference to FIGS. 14 to 18. ..
【0085】
When transferring data between the server-side proxy 30 and the client-side proxy 40, the messages to which FP compression is applied include messages in which the data is FP-compressed and replaced with fingerprints (messages during FP compression). A message that is not FP-compressed but contains differentially compressed data (message that is differentially compressed) and a message that is loaded with data that is neither FP-compressed nor differentially compressed (message when uncompressed). There is. In the case of a configuration in which not all messages are applied to FP compression, in addition to these three messages, there are messages not covered by FP compression.
【0086】
In the sending proxy of both proxies, the data is deleted and the fingerprint is added in the message at the time of FP compression, and the data is deleted in the message at the time of differential compression, and the relevant data such as the fingerprint of the reference data is restored. Information is added. Data is not deleted for uncompressed messages and messages that are not subject to compression.
【0087】
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 the data (however, if the compression identifier is 0, the data body is retained, but if the compression identifier is 1, by differential compression. Since the generated data is retained, the data is restored based on this), and when a message is received during differential compression, the data is restored. In addition, the fingerprint cache is registered when a message is received during differential compression or uncompression.
【0088】
Figure 14 shows an example of the message format. (a) is a message at the time of uncompressed, (b) is a message at the time of differential compression, and (c) is a message at the time of FP compression.
【0089】
In (a), the data is placed in the message body, in (b), the information for restoring the data is placed in the message body instead of the data, and in (c), the finger is placed in the message body instead of the data. A print (FP) is placed.
【0090】
Also, in this example, the message header describes the identification information that makes it possible to identify the type of message (in the proxy on the compression side), and based on this identification information (in the proxy on the decompression side) whether or not FP compression is performed. Identify (for example, 01 for no uncompressed, 10 for differential compression, 11 for FP compression). The identification information may be a special one used between proxies, or may be one that uses or uses a field that originally exists in a normal HTTP message header.
【0091】
In the case of a configuration in which messages not covered by FP compression may exist, the message of the message not covered by FP compression is displayed in the proxy on the compression side (sending side) as shown in Fig. 14 (d). -The above identification information (for example, 00) may be included in the header.
【0092】
In addition, in the case of a configuration in which a message that is not applicable to FP compression may exist, the message is a message that is not applicable to FP compression due to some information contained in the message header in the decompression side (reception side) proxy. When it can be determined that the message is not applicable to FP compression when the message body is empty (null), or when it is determined that the message is not applicable to FP compression, it is not applicable to FP compression. It is also possible not to include the identification information in the message header of the message.
【0093】
In the example of FIGS. 14 (a) and 14 (b), the message did not include the fingerprint for the data at the time of uncompression or differential compression, but the message header may include the fingerprint. You may (or you may want the message body to include a header for that data). FIGS. 15 (a) to 15 (c) show an example in which a fingerprint is included in the message header during uncompressed or differential compression, and a fingerprint is included in the message body during FP compression. By doing so, when registering the fingerprint cache for the data on the decompression side, by using the fingerprint, it is possible to save the trouble of obtaining the fingerprint from the data again.
【0094】
In any of the above cases, as shown in FIG. 16, in the message at the time of FP compression, the fingerprint (FP) may be included in the message header and the message body may be empty (null).
【0095】
In addition to the above, various message formats are possible.
【0096】
For example, in FIG. 17, the uncompressed flag is described in the header of the uncompressed message in (a) and the fingerprint is not described, and the differential compression flag is described in the header of the message during differential compression in (b). Moreover, 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 empty (null).
【0097】
In this case, it is possible to identify that the message is a FP compressed message by detecting that the message body is null or that the header of the message contains a fingerprint. it can. Further, the uncompressed message and the differentially compressed message can be identified by detecting that the uncompressed flag or the differentially compressed flag is described in the header.
【0098】
In the case of a configuration in which messages not covered by FP compression may exist, in the proxy on the compression side (sending side), as shown in (a) and (b) of FIG. 18, ((a) is data. If is not empty (null), (b) is if the data is empty)), the non-target flag may be included in the message header of the message that is not applicable to FP compression.
【0099】
In addition, in the case of a configuration in which a message that is not applicable to FP compression may exist, the message is a message that is not applicable to FP compression due to some information contained in the message header in the decompression side (reception side) proxy. When it can be determined that, as shown in (c) and (d) of Fig. 18, ((c) is when the data is not empty (null), and (d) is when the data is empty (null). It is also possible not to include the non-target flag in the message header of messages that are not covered by FP compression.
【0100】
Hereinafter, the present embodiment will be described in detail mainly in the case where the reply data is FP-compressed / decompressed when the reply message is transferred from the server-side proxy 30 to the client-side proxy 40.
【0101】
FIG. 19 shows a configuration example of the server-side proxy 30 in the present embodiment, and FIG. 20 shows a configuration example of the client-side proxy 40 in the present embodiment. Note that FIGS. 19 and 20 mainly show the configuration when data is transferred from the server-side proxy 30 to the client-side proxy 40.
【0102】
The server-side proxy 30 in FIG. 19 is a receiver 31 that performs processing for receiving a forwarded message from the LAN 12 in the server center or the wide area network 14, and FP compression and differential compression for the data contained in the forwarded message. Processing unit 32, transmission unit 33 that performs processing for sending a forwarding message to LAN 12 in the server center or wide area network 14, for storing the fingerprint and the underlying data or differential compressed data in association with each other. It has a fingerprint cache (FP cache) 34. Further, the processing unit 32 searches and registers the fingerprint compression determination unit (FP compression determination unit) 321 and the FP cache 34 for determining whether or not the data included in the transfer message should be compressed. Fingerprint cache management unit (FP cache management unit) 322, fingerprint compression processing unit (FP compression processing unit) 323 for performing processing such as replacing the data contained in the transferred message with the corresponding fingerprint, transferred message Includes a differential compression processing unit 324 for performing processing such as replacing the data contained in the data with differential compressed data.
【0103】
The client-side proxy 40 in FIG. 20 is a receiving unit 41 that performs processing for receiving a transferred message from the LAN 16 in the user office or the wide area network 14, and a processing unit 42 for performing FP decompression on the data contained in the transferred message. , Transmitter 43 that performs processing to send a transfer message to LAN 16 in the user office or wide area network 14, Fingerprint for storing the fingerprint and the underlying data or differential compressed data in association with each other. It has a cache (FP cache) 44. Further, the processing unit 42 determines whether or not the data included in the transferred message should be compressed, and whether or not the transferred message has FP compression and differential compression. Fingerprint compression determination unit (FP compression determination unit) 421, Fingerprint cache management unit (FP cache management unit) 422 for searching and registering for FP cache 44, for processing such as decompressing the original data from the fingerprint included in the FP compressed transfer message. Includes the fingerprint decompression processing unit (FP decompression processing unit) 423 and the differential decompression processing unit 424 for performing processing such as decompressing the original data from the differential compression data included in the differentially compressed transfer message.
【0104】
The FP compression determination unit 321 on the compression side and the FP compression determination unit 421 on the decompression side examine the data contained in the message by checking whether or not the message satisfies a predetermined condition as described above. Determine whether or not to apply compression (when all messages are to be applied to FP compression, the FP compression determination unit 321 on the compression side, the relevant part of the procedure example shown later, and the FP compression determination on the decompression side The relevant part of Part 421 and the relevant part of the procedure example shown later are unnecessary). Further, the FP compression determination unit 421 on the decompression side determines whether or not the data of the message to which the FP compression is applied is FP-compressed. In the following, the case of transferring a message to which FP compression is applied (when it is determined that the message is to be applied to FP compression, or the case where all messages are to be applied to FP compression) will be mainly described.
【0105】
21 and 22 show an example of the processing procedure of the server-side proxy 30 when transferring a reply message from the server-side proxy 30 to the client-side proxy 40. Note that FIGS. 21 and 22 describe the processing when one reply message is received, but in reality, the processing illustrated in FIGS. 21 and 22 is performed for all the reply messages received by the server-side proxy 30. I do.
【0106】
The server-side proxy 30 receives the reply message from the server 20 by the receiving unit 31 (step S1).
【0107】
The FP compression determination unit 321 examines and determines whether or not the reply data of the reply message is the target of FP compression (S2). If it is determined that the reply data is not subject to FP compression (S2), the received reply message is transferred from the transmitter 33 to the client-side proxy 40 (S13).
【0108】
If it is determined in step S2 that the reply data of the reply message is the one to be compressed by the FP, the FP cache management unit 322 calculates the value of the fingerprint of the reply data (S3), and the finger Search the FP cache 34 using the print value as a key (S4).
【0109】
Then, if a set of the fingerprint value and the corresponding data (data body or differential compression data) is registered in the FP cache 34 (S5), the FP compression processing unit 323 receives the reply. The message is formatted at the time of FP compression using the value of the fingerprint, and is transmitted from the transmission unit 33 to the client-side proxy 40 (S6).
【0110】
On the other hand, as a result of the search in step S4, if the set of the fingerprint value and the corresponding data is not registered in the FP cache 34 (S5), the differential compression processing unit 324 performs differential compression. Perform (S7) and determine whether or not differential compression was successful (S8).
【0111】
Whether or not the differential compression is successful is determined, for example, by comparing the data amount r0 of the original data targeted for the differential compression with the data amount r1 of the differential compression data and satisfying r0-r1> d. Judge that it was done. Here, the constant d is a predetermined integer of 0 or more.
【0112】
If it is determined in step S8 that the differential compression is successful, perform the following two operations (either 1-1 or 1-2 may be performed first, or in parallel). (1-1) The reply message received by the differential compression processing unit 324 is formatted for differential compression (using the value of the fingerprint if necessary), and the transmission unit 33 sends the client-side proxy 40. Send to (S9). (1-2) In the FP cache management unit 322, the fingerprint value is associated with the differential compression data generated in step S7 (using the fingerprint value as a key) and registered in the FP cache 34. (S10). At this time, since the data to be registered is the differential compressed data, the compression identifier is set to 1.
【0113】
In (1-2) above, all the differential compressed data is registered in the FP cache, but (i) the size of the differential compressed data and the size of the data that is the source of the differential compressed data are almost different. If not, save the data that is the source of the differential compressed data instead of the differential compressed data. (Ii) If the size of the differential compressed data is very small compared to the size of the data that is the source of the differential compressed data. It is also possible to maintain the registration of the data used as reference data when creating the differential compressed data in the FP cache without saving the differential compressed data and the data that is the source of the differential compressed data. .. There are many other variations. Further, this point is the same as in the case of registering the differential compressed data in the FP cache in another processing procedure example described later (note that also in the later description, all the differential compressed data are registered in the FP cache). The case where it is assumed is explained as an example).
【0114】
On the other hand, if it is determined in step S8 that the differential compression has failed, the following two operations are performed (either 2-1 or 2-2 may be performed first, or they may be performed in parallel). .. (2-1) The differential compression processing unit 324 (or FP compression processing unit 323) converts the received reply message into the uncompressed format and sends it from the transmission unit 33 to the client-side proxy 40 (S11). .. (2-2) The FP cache management unit 322 associates the fingerprint value with the reply message (using the fingerprint value as a key) and registers it in the FP cache 34 (S12). At this time, since the data to be registered is not differentially compressed data, the compression identifier is set to 0.
【0115】
Next, FIGS. 23 to 25 show an example of the processing procedure of the client-side proxy 40 when the reply message is transferred from the server-side proxy 30 to the client-side proxy 40. Note that FIGS. 23 to 25 describe the processing when one request message is received, but in reality, the processing illustrated in FIGS. 23 to 25 is performed for all the request messages received by the client-side proxy 40. I do.
【0116】
The client-side proxy 40 receives a reply message from the server-side proxy 30 by the receiving unit 41 (step S21).
【0117】
The FP compression determination unit 421 examines and determines whether or not the reply data of the reply message is the target of FP compression (S22). If it is determined that the reply data is not subject to FP compression (S22), the received reply message is transferred from the transmitter 43 to the client 50 (S38).
【0118】
If it is determined in step S22 that the reply data of the reply message is to be FP-compressed, the FP compression determination unit 421 further examines and determines whether the reply data is FP-compressed (S23). ).
【0119】
If it is determined in step S23 that the reply data of the reply message is FP-compressed, the FP cache management unit 422 obtains the fingerprint value of the reply data (S24), and the reply data of the fingerprint is obtained. Search FP cache 44 using the value as a key (S25).
【0120】
Next, whether or not the data obtained as a result of the search in step S25 is differentially compressed data is examined by the FP cache management unit 422 using the compressed identifier of the data and determined (S26).
【0121】
If it is determined in step S26 that the data is differentially compressed data (in this example, the compression identifier is 1), the differential decompression processing unit 424 searches (searches and acquires the reference data in the FP cache management unit 422). Decompress the differential compressed data (after) to restore the original reply data (S27), add the restored reply data to the reply message, and if special information is used between the proxy, from the received reply message. The information is deleted, and the reply message is transmitted from the transmission unit 43 to the client 50 (S28).
【0122】
If it is determined in step S26 that the data is not differentially compressed data (in this example, the compression identifier is 0), the FP decompression processing unit 423 searches the FP cache 44 for the received reply message. When data corresponding to the value of the fingerprint is added and special information is used between proxies, the information is deleted and then transmitted from the transmission unit 43 to the client 50 (S29).
【0123】
On the other hand, if it is determined in step S23 that the reply data of the reply message is not FP-compressed, the FP compression determination unit 421 further determines whether or not the reply data is differentially compressed (S30). ).
【0124】
If it is determined in step S30 that the differential compression is performed, the following two operations are performed (either 1-1 or 1-2 may be performed first, or they may be performed in parallel). (1-1) The differential decompression processing unit 424 decompresses the differential compressed data (after searching / acquiring the reference data by the FP cache management unit 422) and restores the original reply data (S31), and the restoration is performed. When the reply data is added to the reply message and special information is used between the proxies, the information is deleted from the received reply message, and the reply message is transmitted from the transmission unit 43 to the client 50 (S32). (1-2) The FP cache management unit 422 obtains the fingerprint value of the reply data (S33), associates the fingerprint value with the differentially compressed data (using the fingerprint value as a key). ), Register in FP cache 44 (S34). At this time, in the registration in the FP cache 44, since the reply message is the differentially compressed data, the compression identifier is set to 1.
【0125】
On the other hand, if it is determined in step S30 that the differential compression is not performed, the following two operations are performed (either 2-1 or 2-2 may be performed first, or may be performed in parallel). .. (2-1) When special information is used between proxies in the differential decompression processing unit 424 (or FP decompression processing unit 423), after deleting the information from the received reply message, this is sent from the transmission unit 43. Send to client 50 (S35). (2-2) The FP cache management unit 422 obtains the fingerprint value of the reply data (S36), associates the fingerprint value with the reply message (using the fingerprint value as a key). ), Register in FP cache 44 (S37). At this time, in the registration in the FP cache 44, since the reply message is not the differentially compressed data, the compression identifier is set to 0.
【0126】
In steps S24 / S33 / S36, the method of obtaining the fingerprint from the message when the fingerprint is described in the message and the reply data when the fingerprint is not described in the message are used. There is a method of calculating the fingerprint value by a hash function or the like. Even if the fingerprint is described in the message, it is possible to calculate the fingerprint value based on the reply data. Further, steps S24 / S33 / S36 may be performed at other timings before the fingerprint is used. In addition, all or part of the determinations in steps S22, S23, S26, and S30 may be performed at the same time.
【0127】
Next, the procedure for performing differential compression will be described.
【0128】
FIG. 26 shows an example of the differential compression procedure. This is an example of the procedure when the three types of specifications described above are used.
【0129】
Here, in order to perform differential compression, it is assumed that a history table in which recently accessed data among the data stored in the fingerprint cache are arranged in order is used. This history table does not necessarily have to record the fingerprints of all the data 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 more criteria other than the order of recent access may be used as the criteria for recording in the history table, and one or more criteria may be used in combination with the criteria in the order of recent access. You may.
【0130】
There is also a method in which the history table is integrated with the fingerprint cache.
【0131】
(Step S231) First, empty the working copy buffer and instruction buffer.
【0132】
Based on the contents copied to this copy buffer, the instructions shown in FIGS. 6 (a) to 6 (c) are created and written to the instruction buffer. Finally, the sequence of instructions written in the instruction buffer becomes the differential compressed data.
【0133】
(Step S232) Treat the data to be differentially compressed as a character string, and prepare a pointer that points to the character string. First, the pointer is set to point to the first character in the character string.
【0134】
In the following, the loop process will be executed until it is determined in step S241 that the pointer has reached the last character in the character string.
【0135】
(Step S233) The data corresponding to the fingerprint recorded in the history table is taken out in order from the newest one, and the data corresponding to the fingerprint is matched in the data with a predetermined length or more from the position pointed by the pointer in the data to be differentially compressed. Extract the data as reference data.
【0136】
There are various methods as the reference data and the determination method. For example, a method of examining the data corresponding to the fingerprint recorded in the history table in the latest order, and first extracting the data matching by a predetermined length or more as reference data, the fingerprint recorded in the history table. There is a method of examining all the data corresponding to the above and extracting the data having the longest matching length (provided that the matching length is longer than a predetermined length) as reference data.
【0137】
(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.
【0138】
(Step S237) When the reference data is found in step S234, if the copy buffer is not empty, a copy instruction by direct specification in (c) of FIG. 6 corresponding to the character string in the copy buffer is created. , Write this to the instruction buffer. Empty the copy buffer. If the copy buffer is empty, nothing is done.
【0139】
(Step S238) If the reference data definition of (a) in FIG. 6 corresponding to the reference data found in step S233 has not yet been written to the instruction buffer, the instruction of the reference data definition is written to the instruction buffer.
【0140】
(Step S239) The copy instruction of the character string matched from the reference data is written to the instruction buffer as the copy instruction of (b) of FIG.
【0141】
(Step S240) Advance the pointer by the length of the character string that matches the reference data.
【0142】
(Step S235) On the other hand, when the reference data is found in step S234, the character pointed to by the pointer is put in the copy buffer.
【0143】
(Step S236) Advance the pointer by one character.
【0144】
(Step S241) If the pointer does not reach the end of the data to be differentially compressed (if the unprocessed data part remains), the process returns to step S233. When the pointer reaches the end of the data to be differentially compressed (if there is no unprocessed data part remaining), the process loop is exited and the process proceeds to step S242.
【0145】
(Step S242) If the copy buffer is not empty, a copy instruction by direct specification in (c) of FIG. 6 corresponding to the character string in the copy buffer is created, and this is written to the instruction buffer. Empty the copy buffer. If the copy buffer is empty, nothing is done.
【0146】
The content of the instruction buffer at this time is the differentially compressed data.
【0147】
As described above, in reality, after the differential compression is performed in this way, the data size as a result of the differential compression is smaller than the data size before the differential compression (or a certain standard (constant). Make sure that it is smaller than the amount of compression). If the data size does not decrease due to differential compression (or 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.
【0148】
By the way, in the above-mentioned differential compression process, 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. A hash table can be used to speed up this process. From the data to be entered in the history table, all the character strings of the predetermined length are extracted, the hash value (for example, the sum of the codes of all the characters) is calculated, and registered in the hash table. Keep it. This hash table should be overwritten with the latest data if there is data with 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 that hash value is the step. It becomes the first candidate for the data to be selected in S233. Here, because it may also generate the same hash value in different strings, present such equality to those checks by comparing the character string actually, if not identical, in sequence see the data in the history table method Search for the next candidate.
【0149】
Another method for speeding up the processing in step S233 is to perform comparison processing in units of rows. In the procedure of FIG. 26, the comparison process was performed in units of characters, but for all the data in the history table, the hash value column of each row in the data is calculated. First, the hash value column of each row is calculated from the data to be differentially compressed. After that, the procedure is the same as in FIG. 26, but the comparison is performed not in character units but in line 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, different rows may have the same hash value, so after finally judging that the hash values are the same, actually compare the inside of the row and see if they are really the same. It is desirable to judge. Of course, the above hashing technique can be combined with the structure for comparing rows as a unit in this way. 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 are the same as or longer than the predetermined length.
【0150】
Next, FIG. 27 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 proxy, the fingerprint value corresponding to the reference data and the information indicating the difference between the transfer data and the reference data. This is an example of the procedure for transferring data.
【0151】
Here, too, the history table as described above is used.
【0152】
First, among the data corresponding to the fingerprints recorded in the history table, one that meets a predetermined criterion is selected as reference data (step S245).
【0153】
The predetermined standard is, for example, that the amount of data in the portion of the data to be differentially compressed that does not match the data to be referred to is less than or equal to the predetermined amount of data and is referred to. When the number of divided lumps when the data is divided into a plurality of lumps by the unmatched portion is less than or equal to a predetermined number, this can be selected as reference data.
【0154】
Then, as a method of determining as reference data, as described above, for example, the data corresponding to the fingerprint recorded in the history table is examined in the latest order, and the data that matches at least the predetermined length at the beginning is examined. As reference data, how to check all the data corresponding to the fingerprint recorded in the history table, and how to retrieve the data that did not match or the number of divisions was the smallest as reference data, etc. There are various methods.
【0155】
If the reference data is found (S246), the reference data definition instruction (for example, (a) in FIG. 6) is written to the instruction buffer (S247).
【0156】
An instruction indicating the part of the reference data that did not match (the part to be directly replaced with the specified data) (for example, the instruction in the same format as (b) in FIG. 6 but the instruction identifier of the first byte is changed) is instructed. Write to buffer (S248).
【0157】
A direct specification instruction (for example, (c) in FIG. 6) indicating the data to be fitted in the unmatched part of the reference data is written to the instruction buffer (S249).
【0158】
If there are a plurality of replacement portions, step S248 and step S249 are executed accordingly.
【0159】
The content of the instruction buffer at this time is the differentially compressed data.
【0160】
On the other hand, if the reference data is found (S246), differential compression will not be performed.
【0161】
In the above description of FIGS. 26 and 27, the history table is provided separately from the fingerprint cache, but there is also a method in which the history table is integrated with the fingerprint cache.
【0162】
Further, in the above description, the history table is used, but there is also a method in which the history table is not used. For example, a method of examining the fingerprint cache in a predetermined order (for example, in the order of entries or randomly) up to a predetermined number, and using the best of them, or a fingerprint cache. There are various methods such as a method of checking in a predetermined order (for example, in the order of entry or randomly) and determining the reference data when the reference data satisfying a predetermined condition is obtained for the first time.
【0163】
Also, in the history table or fingerprint cache, in addition to the fingerprint, the URL for the reply message that included the reply data that was the source when the fingerprint was registered is also stored, and the reference data is stored. When searching, first check whether the data with the same URL as the URL for the reply message containing the reply data to be differentially compressed is not registered in the history table or fingerprint cache, and if so, the relevant data. Data with the same URL as the URL may be prioritized over others to see if it can be used as reference data.
【0164】
Of course, in addition to FIGS. 26 and 27, various differential compression procedures are possible.
【0165】
If the fingerprint cache is not used when transferring the request message from the client-side proxy 40 to the server-side proxy 30, the server-side proxy 30 uses the client-side proxy 30 as illustrated in FIG. 28. The procedure may be that the request message is received from the proxy 40 (step S60) and sent to the server 20 (step S61). Similarly, the client-side proxy 40 may receive a request message from the client 50 (step S62) and send it to the server-side proxy 30 (step S63), as illustrated in FIG. 29.
【0166】
In the following, data transfer using the fingerprint cache will be described in more detail with reference to FIGS. 30 to 32.
【0167】
First, referring to FIG. 30, data that is not registered in the fingerprint cache and that has not been successfully differentially compressed is transferred from the server-side proxy 30 to the client-side proxy 40, and the data is fingered. The operation when registering the print cache will be described.
【0168】
(1) It is assumed that the browser or the like on the client 50 issues a POST method request message to the server 20 with the URL "/A.cgi", for example. First, the browser and the like are set so that the request message to the server 20 is sent to the client-side proxy 40.
【0169】
(2) The client-side proxy 40 that receives the request message from the client 50 forwards the request message to the server-side proxy 30.
【0170】
(3) The server-side proxy 30 that receives the request message forwards the request message to the server 20.
【0171】
(4) The server 20 processes the request message and then sends the reply message back to the server-side proxy 30.
【0172】
(5) The server-side proxy 30 that receives the reply message first calculates the fingerprint of the reply data of the received reply message, and checks whether the data having the fingerprint name is stored in the FP cache 34. Here, the data is not included and is registered for the first time (in the case of a configuration in which the data once registered in the fingerprint cache may be deleted or invalidated afterwards, the data once registered in the fingerprint cache is deleted or invalidated. Since it is the first time since it has been converted), put (register) the data in the FP cache 34 with the fingerprint as the name. Here, it is assumed that the reply data cannot be differentially compressed to reduce the amount of data. At this time, in the registration in the FP cache 34, the compression identifier is set to 0 because the data is not the differentially compressed data.
【0173】
(6) The server-side proxy 30 forwards the reply message containing the data to the client-side proxy 40. If the fingerprint value calculated from the reply data is put in the reply header or the like and sent, the trouble of calculating the fingerprint again by the client-side proxy 40 can be saved.
【0174】
(7) Since the client-side proxy 40 that received the reply message is the first data, the reply data is registered in the FP cache 44. At this time, in the registration in the FP cache 44, the compression identifier is set to 0 because the reply data is not the differential compression data. As described above, the fingerprint is calculated from the reply data, or the server-side proxy takes out the fingerprint put in the reply header or the like and puts it as a name.
【0175】
(8) The client-side proxy 40 deletes (if the reply header etc. contains information used only between the server-side proxy 30 and the client-side proxy 40 such as the fingerprint value, it is deleted. After that, send the reply message back to client 50 (browser running on it, etc.).
【0176】
In the server-side proxy 30, the fingerprint cache registration in (5) above may be performed after the operation in (6). Further, in the client-side proxy 40, the fingerprint cache registration of (7) may be performed after the operation of (8).
【0177】
Next, referring to FIG. 31, the data that is not registered in the fingerprint cache and that has been successfully differentially compressed is transferred from the server-side proxy 30 to the client-side proxy 40, and the data is fingerprinted. -Explain the operation when registering in the cache.
【0178】
(1) to (4) are the same as (1) to (4) in the operation described with reference to FIG. 30.
【0179】
(5) The server-side proxy 30 that receives the reply message first calculates the fingerprint of the reply data of the received reply message, and checks whether the data having the fingerprint name is stored in the FP cache 34. Here, it is judged that the data is not included and is the first data. Then, when 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. Here, it is assumed that the reply data can be differentially compressed to reduce the amount of data when the data whose fingerprint is 71F0 ... 73E6 is used as the reference data. Replace the reply data with the differentially compressed data, and put the information indicating that the reply header or the like is differentially compressed.
【0180】
(6) The server-side proxy 30 puts (registers) the differential compressed data generated in (5) into the FP cache 34 with the fingerprint calculated in (5) as the name. At this time, in the registration in the FP cache 34, since the data is the differential compressed data, the compression identifier is set to 1.
【0181】
(7) The server-side proxy 30 forwards the reply message to the client-side proxy 40.
【0182】
(8) The client-side proxy 40 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 specified in the compressed data is taken out, and then the data corresponding to the fingerprint is taken out from the FP cache 44 and used. Then, the decompressed data is put into the reply data, and the necessary headers such as the content size of the reply header are rewritten.
【0183】
(9) Since the client-side proxy 40 that received the reply message is the first data, the differential compressed data received from the server-side proxy 30 is registered in the FP cache 44. At this time, in the registration to the FP cache 44, since the data to be registered is the differential compressed data, the compression identifier is set to 1. If the reply header or the like contains information such as a fingerprint value that is used only between the server-side proxy 30 and the client-side proxy 40, this is deleted. As mentioned above, the fingerprint is calculated from the reply data (data obtained by decompressing the differential compressed data), or the server-side proxy takes out the fingerprint put in the reply header etc. and uses this as the name. Put in.
【0184】
(10) The client-side proxy 40 sends a reply message back to the client 50 (browser running on it, etc.).
【0185】
In (5) above, all unregistered data to be compressed shall be registered in the fingerprint cache, and all the data used as reference data in (6) above shall be registered in the fingerprint cache. However, when the only data is used for the reference data, the data that is the target of differential compression and the reference data used for the differential compression have almost the same contents ( For example, if the amount of data that does not match between the two is less than the standard), (i) the unregistered data to be compressed is not registered in the fingerprint cache, and the reference data is kept registered in the fingerprint cache. Alternatively, (ii) the unregistered data to be compressed is registered in the fingerprint cache, and the reference data is deleted from the fingerprint cache. In addition, when only one data is used for the reference data, the data targeted for differential compression and the reference data used for the differential compression have almost the same contents and the same URL. In the case of, it is also possible to register the unregistered data to be compressed in the fingerprint cache as if the data has been updated, and delete the reference data from the fingerprint cache. There are many other variations.
【0186】
Next, with reference to FIG. 32, the operation when the operation of FIG. 30 or 31 is performed and the cache-registered data is transferred from the server-side proxy 30 to the client-side proxy 40 will be described.
【0187】
(1) to (4) are the same as (1) to (4) in the operation described with reference to FIG. 30.
【0188】
(5) The server-side proxy 40 that receives the reply message from the server 50 first calculates the fingerprint of the reply data of the received reply message, and whether or not the data having the fingerprint name is stored in the FP cache 34. To find out. Since the fingerprint cache is registered here, the data of the reply body is replaced with the fingerprint (for example, the fingerprint value is put in the reply header or the like and the reply body is emptied).
【0189】
(6) The server-side proxy 30 forwards the reply message in which the reply body is replaced with a fingerprint to the client-side proxy 40.
【0190】
(7) Upon receiving the reply message, the client-side proxy 40 detects that the reply data has been replaced with a fingerprint, and uses the specified fingerprint (for example, in the reply header as described above) to FP. Fetch the corresponding data from cache 44. Here, when the compression identifier of the data is 0, the data is not differentially compressed data, so this is put in the reply body. On the other hand, when the compression identifier of the data is 1, since the data is differentially compressed data, the original reply data is restored by decompressing the data, and this is put in the reply body. Note that FIG. 32 illustrates the former case. If the reply header or the like contains information such as a fingerprint value that is used only between the server-side proxy 30 and the client-side proxy 40, this is deleted.
【0191】
(8) Then, the client-side proxy 30 sends the reply message back to the client 50 (browser running on it, etc.).
【0192】
By the way, since the fingerprint cache of the server-side proxy 30 and the client-side proxy 40 has an upper limit, garbage collection is performed according to a predetermined algorithm to erase old data or data that is unlikely to be used. Is preferable.
【0193】
However, if you do this, even if you have the FP cache 34 of the server-side proxy 30, data that has already been erased in the FP cache 44 of the client-side proxy 40 can occur, so see Figure 32. In (7) in the operation described above, the client-side proxy 40 tried to obtain data to replace the reply data from the FP cache 44 based on the fingerprint, but the fingerprint corresponding to the FP cache 44 was obtained. The set of data may not exist. In such a case, for example, the client-side proxy 40 requests the server-side proxy 30 to send the data of the specified fingerprint, and the requested server-side proxy 30 has the specified fingerprint. A mechanism may be provided to retrieve the data from the FP cache 34 and send it back.
【0194】
On the contrary, if there is data that has already been deleted in the FP cache 34 of the server-side proxy 30 but still has the FP cache 44 of the client-side proxy 40, it will be explained with reference to FIG. In (7) in the operation performed and (9) in the operation described with reference to FIG. 31, when registering the fingerprint / data in the FP cache 44 in the client-side proxy 40, the finger registered at that time. The print / reply data may be overwritten.
【0195】
In (5) in the operation described with reference to FIG. 32, the server-side proxy 30 requests the fingerprint of the reply data, and if the fingerprint is in the FP cache 34, the same data as the ply data is the same. It is processed as if it is in the FP cache 34 in combination with the fingerprint. Practically, this method is sufficient, assuming that different data do not generate the same fingerprint, but with a very small probability an error will occur if the fingerprints of different data happen to have the same value. There is also a way to get rid of. In this case, when the fingerprint obtained from the reply data is stored in the FP cache 34, the data stored in the FP cache 34 in combination with the fingerprint is compared with the ply data. You should try to judge whether they are the same or not. At this time, if it is determined that data having the same fingerprint but different contents is registered, a method as illustrated below can be considered. -The fingerprint shall not be used anymore (the data giving that fingerprint will no longer be cached). -Prioritize the fingerprint / data registered earlier (other data that gives a fingerprint with the same value as the fingerprint being registered will not be cached during the registration) -Priority is given to the fingerprint / data currently being registered (the fingerprint / data being registered will be updated one after another by other data that gives the fingerprint of the same value). By the way, in the examples described so far, the fingerprint cache is used when transferring the reply data from the server-side proxy 30 to the client-side proxy 40, and a pair of a certain data and a fingerprint for the data is fingerprinted. The timing of registration in the cache is when the data is transferred from the server-side proxy 30 to the client-side proxy 40 for the first time. However, in usage such as Web-based ASP, data is often created in the user office, etc., registered in the server, and then accessed from a browser, etc., so in such a case, If the data is registered in the fingerprint cache of the client-side proxy and the server-side proxy at the time of registering the data in the server (as the data body or differential compressed data), the subsequent access can be speeded up. Therefore, if the reply data transmitted by the server is originally the data transferred from the client to the server (however, the request data at the time of this transfer), the registration timing is set to the original request data that becomes the reply data. May be the first time that is transferred from the client-side proxy 40 to the server-side proxy 30 (in this case, when the data is transferred from the server-side proxy 30 to the client-side proxy 40 for the first time as reply data). Since the registration to the fingerprint cache has already been completed, it is possible to reduce the amount of transferred data by using the fingerprint cache even if it is the first transfer of reply data. it can).
【0196】
Now, in the example described so far, when the reply data is transferred from the server-side proxy 30 to the client-side proxy 40, if the reply data is the same as the data registered in the fingerprint cache, The network traffic is reduced by transferring the corresponding fingerprint or the differential compressed data instead of the reply data, but the present invention requests from the client-side proxy 40 to the server-side proxy 30. It can be further applied to the case of transferring data.
【0197】
When applying FP compression to both, it is also possible to apply differential compression to only one of them.
【0198】
It is also possible to apply FP compression and differential compression only when transferring request data from the client-side proxy 40 to the server-side proxy 30.
【0199】
When applying FP compression and differential compression to the request data transfer from the client-side proxy 40 to the server-side proxy 30, the roles of the server-side proxy 30 and the client-side proxy 40 for the reply data described above can be reversed. When applying FP compression and differential compression to both data transfers, the server-side proxy 30 is provided with a fingerprint decompression processing unit and a differential decompression processing unit in the processing unit 32 in addition to the configuration shown in FIG. In addition to the configuration shown in FIG. 20, the proxy 40 may further include a fingerprint compression processing unit and a differential compression processing unit in the processing unit 42.
【0200】
In any proxy, the fingerprint compression processing unit and the fingerprint decompression processing unit may be combined to form a fingerprint (FP) compression / decompression processing unit. Similarly, the differential compression processing unit and the differential decompression processing unit may be combined to form the differential compression / decompression processing unit.
【0201】
Further, the server-side proxy 30 and the client-side proxy 40 may provide a fingerprint cache for request data transfer independently of the fingerprint cache for reply data transfer, but the same applies to reply data transfer and quest data transfer. The fingerprint cache may be shared. In the case of a configuration in which the history table described above is used for differential compression, the history table may be provided independently or shared in the same manner.
【0202】
FIG. 33 shows a configuration example of a proxy (server-side proxy, client-side proxy) when the same fingerprint cache is shared between the reply data transfer and the quest data transfer.
【0203】
Further, FIGS. 34 and 35 show an example of the processing procedure of the client-side proxy 40 when transferring a request message from the client-side proxy 40 to the server-side proxy 30. In FIGS. 34 and 35, in FIGS. 21 and 22, the message to be transferred changes from the reply message to the request message, the message source changes from the server to the client, the message destination changes from the client to the server, and the server-side proxy 30. It corresponds to the operation of the client side proxy 40 interchanged with the operation of.
【0204】
Further, FIGS. 36 to 38 show an example of the processing procedure of the server-side proxy 30 when the request message is transferred from the client-side proxy 40 to the server-side proxy 30.
【0205】
In FIGS. 36 to 38, in FIGS. 23 to 25, the message to be transferred changes from the reply message to the request message, the message source changes from the server to the client, the message destination changes from the client to the server, and the server-side proxy 30. It corresponds to the operation of the client side proxy 40 interchanged with the operation of.
【0206】
If the request data is also replaced with the fingerprint or the differential compressed data in this way, for example, when uploading the same file to the server many times, it is only necessary to send the fingerprint from the second time onward, so the network. Traffic can be reduced.
【0207】
In the present embodiment, the case where 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 proxy are targeted has been described. 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, they are, of course, forwarded from the client-side process to the server-side proxy. Request messages and reply messages and request messages and reply messages that are forwarded from the server-side proxy to the client-side process, and request messages that are forwarded from the client-side process to the server-side proxy and from the server-side proxy to the client-side. It is also possible to target only the request message transferred to the process.
【0208】
By the way, so far, the explanation has focused on one-to-one communication between one server-side proxy and one client-side proxy, but the scope of the present invention is, of course, the server-side proxy and the client-side proxy. The system is not limited to one-to-one communication, but a system in which a server-side proxy and a client-side proxy communicate in a one-to-many manner, and a system in which a server-side proxy and a client-side proxy communicate in a many-to-one manner. Alternatively, it can be applied to a system in which a server-side proxy and a client-side proxy communicate in a many-to-many manner. For example, as shown in FIG. 39, it is possible to implement so that client-side proxies installed in a plurality of user offices, personal proxies used by mobile users, and the like share and use server-side proxies.
【0209】
Also, until now, the entire data contained in one message was targeted for FP compression (target registered in the fingerprint cache), but for example, the data contained in one message is the data of a predetermined unit. When composed of a set, it is possible to configure only a part of the unit data included in one message to be FP-compressed (the target to be registered in the fingerprint cache).
【0210】
By the way, 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 to the server-side proxy or the client-side proxy (either one or both) of the present embodiment. And the reply data included in the reply message corresponding to the request message, the fingerprint corresponding to the reply data, and the request header such as the MIME type included in the reply header of the reply message. Information required for configuration and information such as time stamps used to determine the validity period are associated and cached (all may be retained in the fingerprint cache, or information excluding reply data (URL). And a corresponding table that holds the fingerprint and other information) may be provided separately), and by using this together with the fingerprint cache, it is possible to operate the shared cache of the proxy server as well. .. For example, when the cache function is provided in the client-side proxy, if the reply data for the URL specified in the request message sent by the client is cached and the data is valid, the client-side proxy Can get the data corresponding to the URL from the fingerprint cache, compose a reply message, and respond to the client.
【0211】
Whether or not this function is provided can be determined for each server-side proxy 30 and for each individual client-side proxy 40.
【0212】
First, the client-side proxy 40 provided with the above function will be described.
【0213】
FIG. 40 shows a configuration example of the client-side proxy 40 in this case. This client-side proxy 40 has a URL / fingerprint table (URL / FP table) 45 that holds the correspondence between the URL accessed in the past and the fingerprint of the reply data, in addition to the configuration / function shown in FIG. And the URL cache processing unit 427.
【0214】
In addition to the URL and fingerprint, the URL / FP table 45 also contains information such as the MIME type that was included in the reply header when accessing with that URL, and the time stamp used to determine the validity period. Also record. In addition, the URL / FP table 45 records necessary information only when the conventional shared cache can be cached.
【0215】
Figure 41 shows an example of the processing procedure of the client-side proxy 40 when forwarding a reply message from the server-side proxy 30 to the client-side proxy 40.
【0216】
The processing procedure in this case is the same as the procedure of FIGS. 23 to 25 except that it is added after the terminals 4 and 6 and step S38 of the procedure of FIGS. 23 to 25. The processing procedure part after terminal 4 and terminal 6 and step S38 of the procedure of 23 to 25 is shown. Here, the parts to be added to the procedures described in FIGS. 23 to 25 will be mainly described.
【0217】
The client-side proxy 40 sends a reply message to the client 50 by the transmission unit 43 (steps S28, S29, S32, S35 or S38 in FIGS. 23 to 25), and then the URL cache processing unit 427 sends the reply message. Investigate and determine if is a cache target (S39). If it is determined that the URL is to be cached, the URL cache processing unit 427 associates the URL with the information required to configure the fingerprint and reply header (using the URL as a key) in the URL / FP. Register in Table 45 (S40). If it is determined that it is not cached, do nothing.
【0218】
The determination in step S39 and the registration in the URL / FP table of step S40 may be performed between step S23 and step S28 or S29, and step S23 and step S32 or step S35.
【0219】
The method of determining whether or not the received reply message at the time of registration is the cache target may be the same as the conventional method at the time of registration (for example, the reply data of the GET method and its header). The data that does not contain information indicating that it cannot be cached is targeted for caching, etc.).
【0220】
Next, FIGS. 42 and 43 show an example of a processing procedure regarding the operation of the shared cache of the proxy server in the client-side proxy 40 when the request message received from the client 250 is transferred from the client-side proxy 40 to the server-side proxy 30. Shown.
【0221】
The client-side proxy 40 receives the request message from the client 50 by the receiver 41 (step S141).
【0222】
The URL cache processing unit 427 examines and determines whether the reply message for the request message is the cache target (S142). The method of determining whether or not the cache target is used at the time of response may be the same as the conventional method at the time of response (for example, whether or not the received request message belongs to the GET method).
【0223】
If it is determined that the request data is not cached (S142), the received request message is forwarded from the transmitter 43 to the server-side proxy 30 (S151).
【0224】
If it is determined in step S142 that the reply message to the request message is to be cached, the URL cache processing unit 427 further extracts the URL specified in the request message (S143), and the URL is extracted. Search the URL / FP table 45 using the key (S144).
【0225】
If the fingerprint of the reply data corresponding to the URL is not cached (S145), the received request message is forwarded from the transmitter 43 to the server-side proxy 30 (S151). At this time, the time stamp of the currently held data is entered in the If-Modified-Since header of the request message and transferred to the server-side proxy 30, indicating that the currently held data from the server-side proxy 30 is valid. When you receive the reply message of, you can also execute to go to step S147.
【0226】
In addition, even if the fingerprint of the reply data corresponding to the URL is registered (S145), it is determined that the data is invalid based on the information for determining the validity period that is also held. If so (S146), the received request message is forwarded from the transmitter 43 to the server-side proxy 30 (S151).
【0227】
On the other hand, the fingerprint of the reply data corresponding to the URL is registered (S145), and it is judged that the data is valid based on the information for determining the validity period held together. In the case of (S146), the URL cache processing unit 427 obtains the information necessary for constructing the reply data from the URL / FP table 45, and searches the FP cache 44 using the fingerprint of the reply data corresponding to the URL as a key. (S147).
【0228】
Next, the FP cache management unit 422 determines whether or not the data acquired in step S147 is differentially compressed data based on whether the compression identifier is 0 or 1 (S148). If the compression identifier is 0, it is determined that the data is not differentially compressed data, and if it is 1, it is determined that the data is differentially compressed data.
【0229】
When the data is found to be differentially compressed data (S148), the differential decompression processing unit 424 decompresses the data and generates reply data (S149). Then, a reply message is generated from the reply data and transferred from the transmission unit 43 to the client (S150).
【0230】
On the other hand, when it is found that the data is not differentially compressed data (S148), the FP compression / decompression unit 423 generates reply data from the data and transfers it from the transmission unit 43 to the client (S150).
【0231】
In the following, the operation of the shared cache will be described more specifically with reference to FIG. 44 (at the time of response).
【0232】
(1) It is assumed that the browser or the like on the client 50 issues a request message for the GET method to the server 20 with the URL "/C.html", for example.
【0233】
(2) When a request comes in with a new URL, if that URL is listed in the URL / FP table 45, the validity period is judged in the same way as the conventional shared cache, and if it is judged to be valid, that URL is supported. Find the fingerprint to be created by looking up the URL / FP table 45, and retrieve the data with that name from the FP cache 44. Then, the compression identifier is used to check whether the data is differentially compressed data. In the example of FIG. 44, since the compression identifier is 1, it is differentially compressed data. Then, the differential compression is decompressed (in FIG. 44, since there is reference information to the data whose fingerprint is 71F0 ... 73E6 in the differential compression data, the already cached data is referred to. It is decompressed), and this is used as reply data. Furthermore, the information necessary for constructing the reply header such as the MIME type is extracted from the URL / FP table 45, and the reply header is created.
【0234】
(3) Send the created reply message back to client 50 (browser running on it, etc.).
【0235】
Even in the case of a request message with an If-Modified-Since header that requests data to be sent only when the cache contents have been updated after the specified time, the URL / FP table is first referenced and updated. If it can be determined that there is no reply message, a reply message can be created and returned, and if not, the If-Modified-Since information can be rewritten and asked to the server again.
【0236】
Next, the server-side proxy 30 provided with the cache function will be described.
【0237】
Although the cache function of the client-side proxy 40 has been described above, the server-side proxy 30 can also be implemented in the same manner.
【0238】
In this case, the client 50 of the message transfer source and the server side proxy 30 of the message transfer destination for the client side proxy 40 are sent to the client side proxy 40 (transfer source) and the server 20 (transfer destination) for the server side proxy 30, respectively. Therefore, the configuration and procedure related to the cache are the same.
【0239】
FIG. 45 shows a configuration example of the server-side proxy 30 in this case. This server-side proxy 30 has a URL / fingerprint table (URL / FP table) 35 that holds the correspondence between the URL accessed in the past and the fingerprint of the reply data, in addition to the configuration / function shown in FIG. And the URL cache processing unit 327.
【0240】
FIG. 46 shows an example of the processing procedure of the server-side proxy 30 when forwarding a reply message from the server-side proxy 30 to the client-side proxy 40.
【0241】
The processing procedure in this case is the same as the procedure of FIGS. 21 and 22 except that it is added after steps S6 and terminals 2 and S13 of the procedure of FIGS. 21 and 22, and in FIG. 46, FIG. 21 And the part of the processing procedure after step S6 and terminals 2 and S13 of the procedure of FIG. 22 is shown. Here, the parts different from the procedures described with reference to FIGS. 21 and 22 will be mainly described.
【0242】
The server-side proxy 30 sends a reply message to the client-side proxy 40 by the transmission unit 33 (steps S6, S9, S11, or S13 in FIGS. 21 and 22), and then the URL cache processing unit 327 sends the reply message. Checks and determines whether the reply data of the message is cached (S14). If it is determined that the URL is to be cached, the URL cache processing unit 327 associates the URL with the information required to configure the fingerprint and reply header (using the URL as a key) in the URL / FP. Register in Table 35 (S15). If it is determined that it is not cached, do nothing.
【0243】
Of course, as described above, this procedure can also be modified in various ways.
【0244】
FIG. 47 shows an example of a processing procedure related to the operation of the shared cache of the proxy server in the server-side proxy 30 when the request message received from the client-side proxy 40 is transferred from the server-side proxy 30 to the server 20.
【0245】
The server-side proxy 30 receives the request message from the client-side proxy 40 by the receiving unit 31 (step S161).
【0246】
The URL cache processing unit 327 examines and determines whether or not the reply message for the request message is the cache target (S162). The method of determining whether or not the cache target is used at the time of response may be the same as that of the conventional method at the time of response (for example, whether or not the received request message is of the GET method).
【0247】
If it is determined that the request data is not cached (S162), the received request message is transferred from the transmitter 33 to the server 20 (S169).
【0248】
If it is determined in step S162 that the reply message to the request message is to be cached, the URL cache processing unit 327 further extracts the URL specified in the request message (S163), and the URL is extracted. Search the URL / FP table 35 using the key (S164).
【0249】
If the fingerprint of the reply data corresponding to the URL is not cached (S165), the received request message is forwarded from the transmitter 33 to the server 20 (S169). At this time, the time stamp of the currently held data is entered in the If-Modified-Since header of the request message and transferred to the server 20, and a reply message is sent from the server 20 that the currently held data is valid. Upon receipt, it can be carried out to go to step S167.
【0250】
In addition, even if the fingerprint of the reply data corresponding to the URL is registered (S165), it is determined that the data is invalid based on the information for determining the validity period that is also held. If so (S166), the received request message is forwarded from the transmitter 33 to the server 20 (S169).
【0251】
On the other hand, the fingerprint of the reply data corresponding to the URL is registered (S165), and it is judged that the data is valid based on the information for determining the validity period held together. In the case of (S166), the URL cache processing unit 327 obtains the information necessary for constructing the reply data from the URL / FP table 35, and searches the FP cache 34 using the fingerprint of the reply data corresponding to the URL as a key. (S167).
【0252】
The FP cache management unit 322 generates a reply message in the format at the time of FP compression from the data acquired from the FP cache 34 using the value of the fingerprint, and transmits the reply message from the transmission unit 33 to the client side proxy 40 (S168). ).
【0253】
In this way, the configuration that has the URL / FP table table in the server-side proxy and processes the cache works effectively when one server-side proxy is used by a plurality of client-side proxies. That is, if the cacheable data requested by one client-side proxy is already accessed by another client-side proxy, it is also cached by the server-side proxy, so the process can be performed simply by sending back that data. Complete.
【0254】
In this way, the configuration that has the URL / FP table table in the server-side proxy and processes the cache works effectively when one server-side proxy is used by a plurality of client-side proxies. That is, if the cacheable data requested by one client-side proxy is already accessed by another client-side proxy, it is also cached by the server-side proxy, so the process can be performed simply by sending back that data. Complete.
【0255】
In the above, the case where the URL / FP table is provided separately from the fingerprint cache has been described, but the URL / FP table can be integrated with the fingerprint cache.
【0256】
In any proxy, the fingerprint compression processing unit and the fingerprint decompression processing unit may be combined to form a fingerprint (FP) compression / decompression processing unit. Further, in any proxy, the differential compression processing unit and the differential decompression processing unit may be combined to form the differential compression / decompression processing unit. FIG. 48 shows a configuration example of the proxy (server-side proxy, client-side proxy) in this case.
【0257】
Whether FP compression is applied only to the request data transfer, FP compression is applied only to the reply data transfer, or FP compression is applied to the request data transfer and the reply data transfer, the request message is The configuration related to the shared cache function for the reply data corresponding to the specified URL can be provided only in the client-side proxy, only in the server-side proxy, or in both proxys.
【0258】
It should be noted that the present embodiment may also be implemented as a program for causing the computer to execute a predetermined means (or for causing the computer to function as a predetermined means, or for causing the computer to realize a predetermined function). It can also be implemented as a computer-readable recording medium on which the program is recorded.
【0259】
It should be noted 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. It is also possible to obtain another configuration by omitting a part, adding another function or element to the illustrated configuration, or combining them. In addition, another configuration that is logically equivalent to the illustrated configuration, another configuration that includes a part that is logically equivalent to the illustrated configuration, another configuration that is logically equivalent to the main part of the illustrated configuration, and the like are also possible. is there. Further, another configuration that achieves the same or similar purpose as the illustrated configuration, another configuration that has the same or similar effect as the illustrated configuration, and the like are also possible. In addition, various variations of the various constituent parts illustrated in the embodiment of the present invention can be appropriately combined and implemented. Moreover, the embodiment of this invention is an invention as an individual device, an invention about two or more related devices, an invention as a whole system, an invention about a component inside an individual device, or a method corresponding thereto. It includes / inherently inventions related to various viewpoints, stages, concepts or categories such as inventions. Therefore, the invention can be extracted from the contents disclosed in the embodiment of the present invention without being limited to the illustrated configuration.
【0260】
The present invention is not limited to the above-described embodiment, and can be implemented with various modifications within the technical scope thereof.
【0261】
[Effect of the invention]
According to the present invention, the correspondence between the data and the name is maintained between the data transfer devices, and for the data holding this correspondence, the corresponding name is transferred instead of transferring the data body. The amount of data transferred between transfer devices can be reduced.
[Simple explanation of drawings]
[Figure 1]
The figure which shows the structural example of the network system which concerns on one Embodiment of this invention. [Figure 2]
The figure which shows the other configuration example of the network system which concerns on this embodiment. [Fig. 3]
The figure which shows still another configuration example of the network system which concerns on this embodiment. [Fig. 4]
Diagram to illustrate fingerprints [Fig. 5]
The figure for demonstrating the fingerprint cache which concerns on this embodiment. [Fig. 6]
The figure for demonstrating the instruction method of the differential compression used in the same embodiment. [Fig. 7]
The figure for demonstrating the specific example of the differential compression of the same embodiment. [Fig. 8]
The figure for demonstrating the specific example of the differential compression of the same embodiment. [Fig. 9]
The figure for demonstrating the specific example of the differential compression of the same embodiment. [Fig. 10]
The figure for demonstrating another specific example of the differential compression of the same embodiment. [Fig. 11]
The figure for demonstrating another specific example of the differential compression of the same embodiment. [Fig. 12]
The figure for demonstrating another specific example of the differential compression of the same embodiment. [Fig. 13]
The figure for demonstrating another specific example of the differential compression of the same embodiment. [Fig. 14]
The figure which shows an example of the message format used in the same embodiment. [Fig. 15]
The figure which shows another example of the message format used in the same embodiment. [Fig. 16]
The figure which shows still another example of the message format used in the same embodiment. [Fig. 17]
The figure which shows still another example of the message format used in the same embodiment. [Fig. 18]
The figure which shows still another example of the message format used in the same embodiment. [Fig. 19]
The figure which shows the configuration example of the server-side proxy which concerns on the same embodiment [Fig. 20]
The figure which shows the configuration example of the client side proxy which concerns on the same embodiment [Fig. 21]
A flowchart showing an example of a server-side proxy procedure according to the same embodiment. [Fig. 22]
A flowchart showing an example of a server-side proxy procedure according to the same embodiment. [Fig. 23]
A flowchart showing an example of a client-side proxy procedure according to the same embodiment. [Fig. 24]
A flowchart showing an example of a client-side proxy procedure according to the same embodiment. [Fig. 25]
A flowchart showing an example of a client-side proxy procedure according to the same embodiment. [Fig. 26]
A flowchart showing an example of the differential compression processing procedure of the same embodiment. [Fig. 27]
A flowchart showing another example of the differential compression processing procedure of the same embodiment. [Fig. 28]
A flowchart showing an example of a server-side proxy procedure according to the same embodiment. [Fig. 29]
A flowchart showing an example of a client-side proxy procedure according to the same embodiment. [Fig. 30]
The figure for demonstrating the data transfer between proxies which concerns on the same embodiment. [Fig. 31]
The figure for demonstrating the data transfer between proxies which concerns on the same embodiment. [Fig. 32]
The figure for demonstrating the data transfer between proxies which concerns on the same embodiment. [Fig. 33]
The figure which shows the other configuration example of the proxy in the same embodiment [Fig. 34]
A flowchart showing another procedure example of the client-side proxy according to the same embodiment. [Fig. 35]
A flowchart showing another procedure example of the client-side proxy according to the same embodiment. [Fig. 36]
A flowchart showing another procedure example of the server-side proxy according to the same embodiment. [Fig. 37]
A flowchart showing another procedure example of the server-side proxy according to the same embodiment. [Fig. 38]
A flowchart showing another procedure example of the server-side proxy according to the same embodiment. [Fig. 39]
The figure which shows still another configuration example of the network system which concerns on this embodiment. [Fig. 40]
The figure which shows the other configuration example of the client side proxy which concerns on the same embodiment. [Fig. 41]
A flowchart showing another procedure example of the client-side proxy according to the same embodiment. [Fig. 42]
A flowchart showing another procedure example of the client-side proxy according to the same embodiment. [Fig. 43]
A flowchart showing another procedure example of the client-side proxy according to the same embodiment. [Fig. 44]
The figure for demonstrating the data transfer between the client and the client side proxy which concerns on this embodiment. [Fig. 45]
The figure which shows the other configuration example of the server-side proxy which concerns on the same embodiment. [Fig. 46]
A flowchart showing another procedure example of the server-side proxy according to the same embodiment. [Fig. 47]
A flowchart showing another procedure example of the server-side proxy according to the same embodiment. [Fig. 48]
The figure which shows still another configuration example of the proxy which concerns on the same embodiment. [Fig. 49]
Diagram to illustrate a traditional computer network system [Explanation of symbols]
2 ... ASP Server Center 4 ... User office 12 ... LAN in ASP Server Center 14 ... WAN 16 ... LAN in the user office 20 ... Server device 30 ... Server-side proxy device 40 ... Client-side proxy device 31,41 ... Receiver 32,42 ... Processing unit 33,43 ... Transmitter 34,44 ... Fingerprint cache 35,45 ... URL / FP table 321,421 ... FP compression judgment unit 322,422 ... Fingerprint Cache Management Department 323 ... FP compression processing unit 423 ... FP decompression processing unit 324 ... Differential compression processing unit 424 ... Difference decompression processing unit 325,425 ... FP compression / decompression processing unit 326,426 ... Differential compression / decompression processing unit 327,427 ... URL cache processing unit 50 ... client device
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| JP2013061993A | Cited by | Japan | Examiner |
| US9336231B2 | Cited by | United States of America | Applicant |
| JP2005302004A | Cited by | Japan | Examiner |
| JP2016071811A | Cited by | Japan | Search report |
| JP2011510572A | Cited by | Japan | Search report |
| US10614032B2 | Cited by | United States of America | Applicant |
| JP2008225833A | Cited by | Japan | Examiner |
| JP2007226635A | Cited by | Japan | Examiner |
| US10303650B2 | Cited by | United States of America | Applicant |
| JP2016071811A | Cited by | Japan | Search report |
| JP2016071811A | Cited by | Japan | Search report |
| US10474641B2 | Cited by | United States of America | Applicant |
| US9639554B2 | Cited by | United States of America | Applicant |
| JP2009093314A | Cited by | Japan | Search report |
| US8706746B2 | Cited by | United States of America | Applicant |
| US10585868B2 | Cited by | United States of America | Applicant |
| JP2007080223A | Cited by | Japan | Search report |
| JP2009246816A | Cited by | Japan | Examiner |
| JP2002055870A | Cites | Japan | Search report |
| JPH10214239A | Cites | Japan | Search report |
| JPH10240604A | Cites | Japan | Search report |
2 priority claims, no other members on record
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2002149131 | Japan | A | |
| JP20020149131 | – | – | – |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| First payment of annual fees (during grant procedure)A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentA521 | A521 | |
| Notification of reasons for refusalA131 | A131 | |
| Report on retrievalA977 | A977 |
Numbers
- Publication
- 2003-345708
- Publication, DOCDB
- 2003345708
- Publication, EPODOC
- JP2003345708
- Application
- 149131
- Application, DOCDB
- 2002149131
- Application, EPODOC
- JP20020149131
Titles2
- Japanese
- 【発明の名称】データ転送装置、データ転送方法及びプログラム
- English
- INDUSTRIAL APPLICABILITY: Data transfer device, data transfer method and program
Classification
- IPC, 2
- G06F12 00
- G06F13 00