JP2006216081A - Data transfer device and its method - Google Patents

Data transfer device and its method Download PDF

Info

Publication number
JP2006216081A
JP2006216081A JP2006121214A JP2006121214A JP2006216081A JP 2006216081 A JP2006216081 A JP 2006216081A JP 2006121214 A JP2006121214 A JP 2006121214A JP 2006121214 A JP2006121214 A JP 2006121214A JP 2006216081 A JP2006216081 A JP 2006216081A
Authority
JP
Japan
Prior art keywords
reply
cache
header
identification information
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006121214A
Other languages
Japanese (ja)
Other versions
JP4300220B2 (en
Inventor
Hideaki Sato
英昭 佐藤
Tatsunori Kanai
達徳 金井
Hideki Yoshida
英樹 吉田
Toshibumi Seki
俊文 關
Kenichiro Yoshii
謙一郎 吉井
Takayuki Miyazawa
隆幸 宮澤
Yasuhiro Kimura
康浩 木村
Haruhiko Toyama
春彦 外山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006121214A priority Critical patent/JP4300220B2/en
Publication of JP2006216081A publication Critical patent/JP2006216081A/en
Application granted granted Critical
Publication of JP4300220B2 publication Critical patent/JP4300220B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a proxy device for reducing load on a network without causing troubles in operation during multi-stage connection. <P>SOLUTION: A client side proxy 40 analyzes a received request header and checks whether a FP_USE header is added thereto or not. If the FP_USE header is not added thereto, the FP_USE header is added thereto and its information is stored in a header information storage part 403. With reference to the header information storage part 403 during reply, an owned proxy 40 is found to be most approximate to a client device 50 and such operation is performed. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、他の装置のためにデータ転送を行うデータ転送装置およびデータ転送方法に
関する。
The present invention relates to a data transfer apparatus and a data transfer method for transferring data for another apparatus.

ネットワークを介して様々なサービスを提供するサーバと、所望のサービスをサーバに
対して要求するクライアントとから構成される、クライアント・サーバ型の情報システム
が広く利用されている。特に、インターネット上でHTTPプロトコルを使って通信する
WEBサーバとクライアントとからなるWORLD WIDE WEBシステム(あるい
は単にWEBとも呼ばれる)は、大変広く利用されているクライアント・サーバ型の情報
システムである。通常、サーバ上ではサーバプログラムが動作し、クライアント上ではブ
ラウザなどの所定のツール(プログラム)が動作する。インターネット上で提供されるサ
ービスの内容も多岐に渡っており、ネットワーク経由で文字、静止画像、動画像、音声等
の情報(例えば、ホームページ、電子メール、デジタルコンテンツなど)や、プログラム
などを提供、配信あるいは転送などするサービス、また商品を販売するための電子店舗サ
ービス、座席や部屋等の予約サービス、種々の契約の仲介サービスなど、種々のサービス
が既に存在し、また次々と新たな形態のサービスが出現している。
2. Description of the Related Art A client / server type information system is widely used, which includes a server that provides various services via a network and a client that requests a desired service from the server. In particular, the WORLD WIDE WEB system (or simply referred to as WEB) composed of a WEB server and a client that communicate using the HTTP protocol on the Internet is a client-server type information system that is very widely used. Normally, a server program operates on the server, and a predetermined tool (program) such as a browser operates on the client. The contents of services provided on the Internet are also diverse, providing information such as text, still images, moving images, audio (such as homepages, e-mails, digital contents, etc.) and programs via the network. Various services such as distribution or transfer services, electronic store services for selling products, reservation services for seats and rooms, mediation services for various contracts, etc., and new forms of services one after another Has appeared.

ところで、WEBのようなクライアント・サーバ型の情報システムにおいては、提供さ
れるサービスがどのような形態のものであろうと、基本的にはクライアント・サーバ間で
データ転送が行われることによってサービスが提供される。したがって、クライアントと
サーバとの間で通信に用いるネットワークの容量(バンド幅)が、システム全体のボトル
ネックになりやすい。そこで、通常、ネットワークの負荷を軽減させるためにキャッシュ
技術が用いられる。
By the way, in a client-server type information system such as WEB, whatever service is provided, the service is basically provided by data transfer between the client and the server. Is done. Therefore, the capacity (bandwidth) of the network used for communication between the client and the server tends to become a bottleneck of the entire system. Therefore, a cache technique is usually used to reduce the load on the network.

WEBシステムの場合、クライアント上で動作するブラウザ等はキャッシュ機構を使用
するものが多く、最近アクセスしたデータをキャッシュしている。WEBではURLと呼
ばれる名前で情報やサービスを指定してアクセスがなされるので、クライアント上のキャ
ッシュは、過去にWEBサーバに要求した情報やサービスの結果として返されるデータの
うちでキャッシュ可能なものを、そのURLと対応させてキャッシュに記録している。こ
の場合、キャッシュ内にあるものと同じURLの情報やサービスのリクエストがあった際
に、そのキャッシュ内の応答データが古くなっていないと判断できるならば、そのデータ
を返すことで、WEBサーバとの間の通信を無くすことができる。
In the case of a WEB system, browsers and the like that operate on a client often use a cache mechanism, and cache recently accessed data. In WEB, access is made by designating information or service with a name called URL, so that the cache on the client is the information that has been requested to the WEB server in the past and the data returned as a result of the service can be cached. The URL is recorded in the cache in association with the URL. In this case, if there is a request for the same URL information or service as that in the cache and it can be determined that the response data in the cache is not stale, by returning that data, Communication between can be eliminated.

企業のオフィス内のLANあるいは研究機関におけるLANあるいは家庭内のLANな
どで複数のユーザがいる場合、該LANとインターネットとの間にプロキシサーバを置き
、プロキシサーバにキャッシュ機構を設けるようにすることも多い。クライアント内のキ
ャッシュ(例えば、ブラウザのキャッシュ)は、当該クライアント・ユーザに専用のキャ
ッシュとして動作するが、LAN上のプロキシサーバのキャッシュは、複数のクライアン
ト・ユーザに共有のキャッシュとして動作する。そのため、後者では、過去に他人(他ク
ライアント)がアクセスしたURLに対してアクセスする際にもキャッシュが効く。
When there are a plurality of users in a corporate office LAN, a research institution LAN, or a home LAN, a proxy server may be placed between the LAN and the Internet, and a cache mechanism may be provided in the proxy server. Many. The cache in the client (for example, the browser cache) operates as a cache dedicated to the client user, while the proxy server cache on the LAN operates as a shared cache for a plurality of client users. For this reason, in the latter case, the cache is effective even when accessing a URL accessed by another person (another client) in the past.

さて、WEBにおいて、クライアントとサーバとの間は、HTTPと呼ぶプロトコルで
通信が行われる。HTTPプロトコルは、クライアントからサーバへ送る「リクエストメ
ッセージ」と、それに答えてサーバからクライアントへ応答を返す「リプライメッセージ
」とが組になっている。
Now, in WEB, communication is performed between a client and a server using a protocol called HTTP. The HTTP protocol is a combination of a “request message” sent from the client to the server and a “reply message” that returns a response from the server to the client.

リクエストメッセージは、「リクエストヘッダ」と「リクエストボディ」からなる。リ
クエストヘッダには、アクセスしたい情報やサービスを指定するURLやアクセスの種類
を示すメソッド名、その他アクセスに必要な各種の情報が入る。リクエストボディには、
サーバに送るデータを入れる。リクエストボディに入っているデータを「リクエストデー
タ」とも呼ぶ。
The request message consists of a “request header” and a “request body”. The request header includes a URL for designating information to be accessed and a service, a method name indicating the type of access, and other various information necessary for access. In the request body,
Enter the data to send to the server. The data contained in the request body is also called “request data”.

リプライメッセージは、「リプライヘッダ」と「リプライボディ」からなる。   The reply message includes a “reply header” and a “reply body”.

リプライヘッダには、処理結果のステータスなどの情報が入り、リプライボディには要求
された情報や要求されたサービスの処理結果などのデータが入る。リプライボディに入っ
ているデータを「リプライデータ」とも呼ぶ。
Information such as the status of the processing result is entered in the reply header, and data such as the requested information and the processing result of the requested service is entered in the reply body. The data contained in the reply body is also called “reply data”.

リクエストメッセージのメソッドとしては、サーバ上の情報を読み出す「GETメソッ
ド」、ユーザの持つデータをサーバに書き込む「PUTメソッド」、リクエストに応じて
処理した結果を送り返してもらう「POSTメソッド」が、情報やサービスのアクセスに
用いられる主要なものである。その他、DELETEなどのメソッドが定義されている。
As a request message method, there are a “GET method” for reading information on the server, a “PUT method” for writing data held by the user to the server, and a “POST method” for sending back the result of processing in response to the request. It is the main thing used to access services. In addition, a method such as DELETE is defined.

多くの場合、GETメソッドのリクエストメッセージのリクエストボディ、PUTメソ
ッドのリプライメッセージのリプライボディは空である。POSTメソッドのリクエスト
メッセージのリクエストボディには、必要に応じてサーバ側での処理に用いる情報が入り
、POSTメソッドのリプライメッセージのリプライボディには、その処理の結果のデー
タが入る。
In many cases, the request body of the request message of the GET method and the reply body of the reply message of the PUT method are empty. The request body of the POST method request message contains information used for processing on the server side as necessary, and the reply body of the POST method reply message contains data of the processing result.

GETメソッドでサーバから読み出すデータは、読み出す毎にサーバ側で生成する「動
的データ」と、既にサーバ側で記憶しているデータをそのまま送り返す「静的データ」に
分けることができる。これらのうち、動的データについては、同じURLでも読み出す度
に内容が異なる可能性があるので、多くの場合、サーバはキャッシュ不可の指定をそのリ
プライメッセージのヘッダに入れて送り返す。したがって、WEBのデータでキャッシュ
の対象になるのは、静的データの部分である。この静的データは、不特定多数のユーザが
参照して構わない「共有データ」と、ユーザ認証することで特定のユーザだけがアクセス
できるようにアクセス制御を行う「プライベートデータ」に分けることができる。前者の
共有データは、どのようなキャッシュでもキャッシュ可能である。しかしながら、後者の
プライベートデータは、プロキシサーバなどの共有キャッシュでは、キャッシュ不可であ
る(プライベートデータは必ずサーバでユーザを認証して送り返す必要があるので)。た
だし、ブラウザなどの個人専用のキャッシュの場合には、プライベートデータでもキャッ
シュは可能である。
Data read from the server by the GET method can be divided into “dynamic data” generated on the server side each time it is read, and “static data” that returns data already stored on the server side as it is. Of these, the contents of dynamic data may be different each time the same URL is read, and in many cases, the server sends back a specification indicating that caching is impossible in the header of the reply message. Therefore, it is a portion of static data that is subject to caching with WEB data. This static data can be divided into “shared data” that can be referenced by an unspecified number of users and “private data” that performs access control so that only specific users can access by authenticating users. . The former shared data can be cached in any cache. However, the latter private data cannot be cached in a shared cache such as a proxy server (because private data must be authenticated and sent back by the server). However, in the case of a personal cache such as a browser, even private data can be cached.

POSTメソッドは、サーバ側で処理をした結果を返すので、一般的にサーバはキャッ
シュ不可の指定をリプライメッセージのヘッダに入れて結果を送り返す。そのため、通常
はキャッシュの対象にはならない。
Since the POST method returns the result of processing on the server side, in general, the server sends back the result with a specification indicating that caching is impossible in the header of the reply message. Therefore, it is not normally subject to caching.

PUTメソッドは、データをサーバに送るものなので、キャッシュは何も処理をしない

特開平11−025010号公報
Since the PUT method sends data to the server, the cache does nothing.
Japanese Patent Laid-Open No. 11-025010

従来のWEBのキャッシュは、静的コンテンツをキャッシュの対象にしている。かつて
は、WEBで公開される情報やサービスには、情報の更新頻度がそれほど高くなく、不特
定多数の人に公開されているものが多かったため、静的コンテンツの割合は非常に高く、
従来のキャッシュ技術でもネットワークの負荷の軽減に有効であった。
The conventional WEB cache targets static content as a cache target. In the past, information and services published on the WEB were not so frequently updated, and many were published to an unspecified number of people, so the proportion of static content was very high.
Even the conventional cache technology was effective in reducing the load on the network.

しかしながら、WEBベースのASP(Application Service P
rovider)のように、ユーザがWEBブラウザを使って、ネットワーク経由でサー
バ上の情報やサービスにアクセスするシステムが普及するにつれて、下記のように従来の
キャッシュ技術では対応できないデータが増加している。
However, WEB-based ASP (Application Service P)
As a system in which users use a WEB browser to access information and services on a server via a network has become widespread, data that cannot be handled by the conventional cache technology is increasing as described below.

・ユーザの認証を行い、アクセスできるユーザを制限しているので、プライベートデー
タが多い。
-Since the user is authenticated and the user who can access is restricted, there is much private data.

・バックエンドのデータベースを参照して生成する動的データが多い。
・帳票処理や検索などPOSTメソッドを使う場合が多い。
-Many dynamic data are generated by referring to the backend database.
-In many cases, the POST method is used for form processing and search.

・グループ内の情報共有のためにPUTメソッドを使う場合が多い。   -The PUT method is often used to share information within a group.

この結果、キャッシュ技術のみではネットワークの負荷を軽減する手法として有効に機
能しなくなってきている。
本発明は、上記事情を考慮してなされたもので、データ転送装置間を接続するネットワ
ークの負荷をより軽減することができるキャッシュ技術・圧縮技術を備えたデータ転送装
置、および、データ転送方法を提供することを目的とする。
As a result, the cache technology alone has not functioned effectively as a technique for reducing the load on the network.
The present invention has been made in view of the above circumstances, and provides a data transfer apparatus and a data transfer method including a cache technique and a compression technique that can further reduce the load on a network connecting data transfer apparatuses. The purpose is to provide.

上記課題を解決するために本発明のデータ転送装置は、 第1の装置と第2の装置との
通信を中継するデータ転送装置において、キャッシュデータと、該キャッシュデータの識
別情報であるキャッシュ識別情報とを関連付けて記憶する識別情報キャッシュを行う識別
情報キャッシュ手段と、第2の装置への所望データの送信要求を示し、リクエストヘッダ
を有するリクエストメッセージを、前記第1の装置から受信するリクエスト受信手段と、
前記リクエストヘッダを解析し、識別情報キャッシュを行う識別情報キャッシュ装置を前
記リクエストメッセージが経由してきたか否かを解析する解析手段と、前記リクエストメ
ッセージが識別情報キャッシュ装置を経由してきたか否かを示す経由情報を保持する保持
手段と、前記リクエストメッセージを前記第2の装置へ送信するリクエスト送信手段と、
前記リクエストメッセージに対応しリプライヘッダとリプライボディとを有するリプライ
メッセージを、前記第2の装置から受信するリプライ受信手段と、前記保持手段に保持さ
れた前記経由情報に基づいて、前記リプライメッセージに対応する前記リクエストメッセ
ージが前記識別情報キャッシュ装置を経由してきたか否かを判定する判定手段と、前記キ
ャッシュ識別情報のなかに前記リプライボディ識別情報がある場合に、前記リプライヘッ
ダに、前記リプライメッセージをキャッシュすべきでないことを示すNo−chache
情報を与えるNo−chache情報付加手段と、前記No−chache情報が与えら
れたリプライヘッダを有するリプライメッセージを前記第1の装置へ送信するリプライ送
信手段とを備える。
In order to solve the above problems, a data transfer device according to the present invention provides a cache data and cache identification information that is identification information of the cache data in the data transfer device that relays communication between the first device and the second device. ID information cache means for performing an identification information cache for storing the information in association with each other, and a request receiving means for receiving a request message having a request header indicating a request for transmitting desired data to the second apparatus from the first apparatus When,
Analyzing means for analyzing the request header and analyzing whether or not the request message has passed through an identification information cache device for performing identification information caching, and via indicating whether or not the request message has passed through the identification information cache device Holding means for holding information; request transmitting means for sending the request message to the second device;
Corresponding to the reply message based on the reply receiving means for receiving from the second device a reply message corresponding to the request message and having a reply header and a reply body, and the route information held in the holding means. And determining means for determining whether or not the request message has passed through the identification information cache device, and when there is the reply body identification information in the cache identification information, the reply message is cached in the reply header. No-chat indicating that it should not
No-cha information adding means for giving information, and reply sending means for sending a reply message having a reply header to which the No-cha information is given to the first device.

これにより、リクエストメッセージに対応するリプライメッセージに、リクエストメッ
セージにおいて付加される情報を反映することができるようになった。
As a result, the information added in the request message can be reflected in the reply message corresponding to the request message.

特に、システム構成等の問題点などが解消できるようになった。 In particular, problems such as system configuration can be solved.

また、誤動作することなく、複数のデータ転送装置間を接続するネットワークの負荷を
より軽減することができるキャッシュ技術・圧縮技術を備えることができる。
In addition, it is possible to provide a cache technique / compression technique that can further reduce the load on the network connecting a plurality of data transfer apparatuses without malfunctioning.

これにより、リクエストメッセージに対応するリプライメッセージに、リクエストメッ
セージにおいて付加される情報を反映することができるようになった。
As a result, the information added in the request message can be reflected in the reply message corresponding to the request message.

特に、システム構成等の問題点などが解消できるようになった。 In particular, problems such as system configuration can be solved.

なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に
係る発明としても成立する。
The present invention relating to the apparatus is also established as an invention relating to a method, and the present invention relating to a method is also established as an invention relating to an apparatus.

また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行
させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための
、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとし
ても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立す
る。
Further, the present invention relating to an apparatus or a method has a function for causing a computer to execute a procedure corresponding to the invention (or for causing a computer to function as a means corresponding to the invention, or for a computer to have a function corresponding to the invention. It is also established as a program (for realizing) and also as a computer-readable recording medium on which the program is recorded.

本発明によれば、データ転送装置間でデータとその名前との対応を保持し、この対応を
保持しているデータについては、データを転送する代わりに対応する名前を転送すること
で、データ転送装置間の転送データ量を削減することができる。
According to the present invention, the correspondence between data and its name is held between data transfer devices, and the data having this correspondence is transferred by transferring the corresponding name instead of transferring the data. The amount of data transferred between devices can be reduced.

以下、図面を参照しながら発明の実施の形態を説明する。   Hereinafter, embodiments of the invention will be described with reference to the drawings.

以下では、WANがインターネットであり、クライアントは支社4内のLANに接続さ
れたものであり、HTTPプロトコルが使用されるような場合を例にとって説明するが、
もちろん、本発明は、WANがインターネット以外のものであっても、クライアントが支
社以外の例えば家庭内LAN等に設置されたものであっても、HTTPプロトコル以外の
プロトコルが使用されるものであっても適用可能である。
In the following, a case where the WAN is the Internet, the client is connected to a LAN in the branch office 4 and the HTTP protocol is used will be described as an example.
Of course, the present invention uses a protocol other than the HTTP protocol regardless of whether the WAN is other than the Internet or the client is installed in a home LAN other than the branch office. Is also applicable.

図1は、本発明を適用するコンピュータ・ネットワーク・システムの全体構成例を示す
ものであり、特にここでは様々なネッワーク形態があることを示すためにそれぞれ異なる
ネットワーク形態を備える3つの会社を例示している。
FIG. 1 shows an example of the overall configuration of a computer network system to which the present invention is applied. In particular, three companies having different network configurations are illustrated here to show that there are various network configurations. ing.

ASPサーバセンター2内のローカルエリアネットワーク(LAN)12と、各会社の
支社内のローカルエリアネットワーク(LAN)16との間はそれぞれ、インターネット
や専用回線などの広域ネットワーク(WAN)14、支社間を接続する全社のLAN18
、通常プロキシ70、クライアント側プロキシ40等を介して接続されており、ASPサ
ーバセンター2内のサーバ20と、各支社4内のクライアント50とが、通信可能になっ
ている。ASPサーバセンター2内LAN12には1または複数のサーバが接続され、支
社内LAN16には1または複数のクライアントが接続される。また、各会社内の他のL
AN18にも、通常プロキシ70やクライアント側プロキシ40を介して、または直接、
複数のクライアント(図示しない)が接続される。
Between the local area network (LAN) 12 in the ASP server center 2 and the local area network (LAN) 16 in each company branch, a wide area network (WAN) 14 such as the Internet or a dedicated line is connected between the branches. Company-wide LAN 18 to be connected
The server 20 in the ASP server center 2 and the client 50 in each branch office 4 can communicate with each other through the normal proxy 70 and the client-side proxy 40. One or more servers are connected to the LAN 12 within the ASP server center 2, and one or more clients are connected to the branch office LAN 16. In addition, other L in each company
The AN 18 is also usually connected via the proxy 70, the client side proxy 40, or directly.
A plurality of clients (not shown) are connected.

WEBベースのASPは、サーバセンター2に設置したサーバ20から、WAN14を
介して、様々なアプリケーションプログラムによるサービスを各会社へ提供し、ユーザは
支社4内に設置されたクライアント上のWEBブラウザ等を使ってそれらのサービスにア
クセスする。
The WEB-based ASP provides services by various application programs from the server 20 installed in the server center 2 via the WAN 14 to each company, and the user uses a WEB browser on the client installed in the branch office 4. To access those services.

このような利用形態においては、ユーザオフィス内LAN16とサーバセンター内LA
N12との間のネットワークのうち、特にインターネットなどの広域ネットワーク14の
実効的な通信容量(バンド幅)は、サーバセンター内LAN12やユーザオフィス内LA
N16等よりも低く、そこが性能上のボトルネックになって通信遅延が発生し、アプリケ
ーションの応答性能が低下するという問題が発生する。
In this type of usage, the LAN 16 in the user office and the LA in the server center
The effective communication capacity (bandwidth) of the wide area network 14 such as the Internet among the networks with the N12 is the LAN 12 in the server center or the LA in the user office.
It is lower than N16 and the like, and this becomes a bottleneck in performance, causing a communication delay, resulting in a problem that the response performance of the application is lowered.

そこで、本実施形態では、サーバ20とWAN14間、およびクライアント50とWA
N14間に、サーバ側プロキシ30およびクライアント側プロキシ40という2つのモジ
ュールを設置し、それらの間で後述するフィンガープリント圧縮(FP圧縮)を行って通
信データ量を低減することで、広域ネットワーク40のボトルネックを解消する。
Therefore, in this embodiment, between the server 20 and the WAN 14 and between the client 50 and the WA.
By installing two modules, the server-side proxy 30 and the client-side proxy 40, between N14 and performing fingerprint compression (FP compression), which will be described later, between them, the amount of communication data is reduced. Eliminate bottlenecks.

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

サービスを利用するためにユーザが使用するクライアント50上では、その目的に応じ
て例えばWEBブラウザ等のプログラムが動作する。ユーザは、例えば、WEBブラウザ
からインターネットを介し情報転送あるいは注文受付等の所望のサービスを提供するサー
バにリクエストメッセージを出し、リプライメッセージを受けることによって、またはこ
れを適宜繰り返すことによって、サービスを利用する。もちろん、WEBブラウザ等の汎
用のソフトウェアではなく、特定のサービスを利用するための専用のソフトウェアなどの
他のものが用いられても構わない。また、クライアントは、汎用の計算機ではなく、例え
ばインターネット機能を有する携帯電話端末等でもよい。
On the client 50 used by the user to use the service, a program such as a WEB browser operates according to the purpose. A user uses a service by, for example, issuing a request message to a server that provides a desired service such as information transfer or order reception from the WEB browser, receiving a reply message, or repeating this appropriately. . Of course, instead of general-purpose software such as a WEB browser, other software such as dedicated software for using a specific service may be used. Further, the client may be not a general-purpose computer but a mobile phone terminal having an Internet function, for example.

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

サーバ側プロキシ30は、図1のように、サーバセンター内LAN12とWAN14と
の両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施する
ことができる。また、図2(a)のように、サーバセンター内LAN12上に設置して実
施することもできる。また、図3(a)のように、サーバ側プロキシ30の機能をサーバ
20に内蔵するように実施することもできる。
As shown in FIG. 1, the server-side proxy 30 is connected to both the intra-server center LAN 12 and the WAN 14 and can be installed and operated so as to operate as a transparent proxy. Further, as shown in FIG. 2A, it can be installed on the server center LAN 12 and implemented. Further, as shown in FIG. 3A, the server-side proxy 30 can be implemented in the server 20.

同様に、クライアント側プロキシ40は、図1のように、支社内のLAN16とLAN
18との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実
施することができる。また、図2(b)のように、支社内のLAN16上に設置して実施
することもできる。また、図3(b)のように、クライアント側プロキシ40の機能をク
ライアント50上で動作するブラウザ等に内蔵するように実施することもできる。あるい
は、ブラウザ等の動作するクライアント50上に、個人用のクライアント側プロキシ40
を動作させるように実施することもできる。
Similarly, as shown in FIG. 1, the client-side proxy 40 is connected to the LAN 16 in the branch office and the LAN.
18 can be installed and implemented to operate as a transparent proxy. Further, as shown in FIG. 2B, it can be installed on the LAN 16 in the branch office. Further, as shown in FIG. 3B, the function of the client side proxy 40 can be implemented in a browser or the like that operates on the client 50. Alternatively, a personal client-side proxy 40 on a client 50 such as a browser.
Can also be implemented.

また、クライアント側プロキシ40は、例えば、WAN14とLAN18との間に、W
AN14とLAN18との中継を行うとともに、本社の複数のクライアント50(図示し
ない)のプロキシとして、更に設けられることもある(例えば、図1の真中の会社)。
Further, the client side proxy 40 is connected between the WAN 14 and the LAN 18, for example.
In addition to relaying between the AN 14 and the LAN 18, it may be further provided as a proxy for a plurality of clients 50 (not shown) at the head office (for example, the middle company in FIG. 1).

通常プロキシ70も、例えば、WAN14とLAN18との間に、WAN14とLAN
18との間の中継を行うとともに、本社の複数のクライアント50(図示しない)のプロ
キシとして、更に設けられることもある(例えば、図1の上の会社)。なお、通常プロキ
シ70は、現在一般的に用いられているHTTPプロキシサーバのことを指しており、一
方サーバ側プロキシ30、クライアント側プロキシ40は、後述するFP圧縮を行って通
信データを削減する機能を有する新規のHTTPプロキシサーバのことを指している。
The normal proxy 70 is also, for example, between the WAN 14 and the LAN 18 and between the WAN 14 and the LAN 18.
18 may be further provided as a proxy for a plurality of clients 50 (not shown) at the head office (for example, the upper company in FIG. 1). The normal proxy 70 refers to an HTTP proxy server that is generally used at present. The server-side proxy 30 and the client-side proxy 40 have a function of reducing communication data by performing FP compression described later. It refers to a new HTTP proxy server having

上記のコンピュータ・ネットワーク・システムにおいて、本実施の形態の概念的なフロ
ーについて、図4及び図5を用いて説明する。
In the above computer network system, the conceptual flow of the present embodiment will be described with reference to FIGS.

図4は、サーバ20上のWebコンテンツをサーバ側プロキシ30およびクライアント
側プロキシ40へキャッシュする際の動作フローを示している。
FIG. 4 shows an operation flow when the Web content on the server 20 is cached in the server side proxy 30 and the client side proxy 40.

まず、ユーザは、支店4内のクライアント50のブラウザから、所望のサーバ20に記
憶されるWebコンテンツを読み出すために、そのWebコンテンツのURLを指定して
、リクエストを行う。
First, in order to read out the Web content stored in the desired server 20 from the browser of the client 50 in the branch 4, the user designates the URL of the Web content and makes a request.

このリクエストは、ネットワークを介して、サーバ20へ通知される(図4−1)。こ
の通知を受け取ったサーバ20はリクエストされたWebコンテンツを読み出して、サー
バ側プロキシ30へ送信する(図4−2)。サーバ側プロキシ30は、受け取ったWeb
コンテンツのフィンガープリント(FP)を計算する(図4−3)。計算されたFPをW
ebコンテンツと対応で受けて保存する(図4−4)。また、サーバ側プロキシ30は受
け取ったWebコンテンツを支社へリプライする(図4−5)。
This request is notified to the server 20 via the network (FIG. 4A). Upon receiving this notification, the server 20 reads the requested Web content and transmits it to the server-side proxy 30 (FIG. 4-2). The server-side proxy 30 receives the received Web
The content fingerprint (FP) is calculated (FIG. 4-3). Calculated FP as W
It is received and stored in correspondence with the eb content (FIG. 4-4). Further, the server-side proxy 30 replies the received Web content to the branch office (FIG. 4-5).

クライアント側プロキシ40は、受け取ったWebコンテンツのフィンガープリント(
FP)を計算する(図4−6)。計算されたFPをWebコンテンツと対応で受けて保存
する(図4−7)。クライアント側プロキシ40は、Webコンテンツをクライアント5
0へ送信する(図4−8)。以上により、Webコンテンツがサーバ側プロキシ30およ
びクライアント側プロキシ40へそれぞれキャッシュされる。
The client side proxy 40 prints the fingerprint of the received Web content (
FP) is calculated (FIGS. 4-6). The calculated FP is received in correspondence with the Web content and stored (FIGS. 4-7). The client-side proxy 40 sends Web content to the client 5
Transmit to 0 (FIGS. 4-8). As described above, the Web contents are cached in the server side proxy 30 and the client side proxy 40, respectively.

次に、図5は、Webコンテンツがサーバ側プロキシ30およびクライアント側プロキ
シ40に、既にキャッシュされている際の動作フローを示している。
Next, FIG. 5 shows an operation flow when Web contents are already cached in the server side proxy 30 and the client side proxy 40.

まず、ユーザは、支店4内のクライアント50のブラウザから、所望のサーバ20に記
憶されるWebコンンテンツを読み出すために、そのWebコンテンツのURLを指定し
て、リクエストを行う。
First, in order to read out the Web content stored in the desired server 20 from the browser of the client 50 in the branch 4, the user designates the URL of the Web content and makes a request.

このリクエストは、ネットワークを介して、サーバ20へ通知される(図5−1)。こ
の通知を受け取ったサーバ20はリクエストされたWebコンテンツを読み出して、サー
バ側プロキシ30へ送信する(図5−2)。サーバ側プロキシ30は、受け取ったWeb
ページのフィンガープリント(FP)を計算する(図5−3)。計算されたFPと同じF
Pが既にサーバ側プロキシ30内に保存されているか否かの検索を行う(図5−4)。こ
こでは、計算されたFPと同じFPが保存済みであるため、サーバ側プロキシ30は、受
け取ったWebコンテンツを支店へ送信するのではなく、代わりに、そのFPを支店へリ
プライする(図5−5)。クライアント側プロキシ40は、受け取ったFPで自装置内を
検索する(図5−6)。検索されて見つかったFPに対応付けて保存されるWebコンテ
ンツを読み出す(図5−7)。クライアント側プロキシ40は、自装置内から読み出した
Webページをクライアント50へ送信する(図5−8)。以上により、サーバ側プロキ
シ30からクライアント側プロキシ40へ送信されるべきWebコンテンツを少量のFP
に替えて送るから、特に、広域ネットワークのボトルネックを解消できる。
This request is notified to the server 20 via the network (FIG. 5-1). Upon receiving this notification, the server 20 reads out the requested Web content and transmits it to the server-side proxy 30 (FIG. 5-2). The server-side proxy 30 receives the received Web
The page fingerprint (FP) is calculated (FIG. 5-3). Same F as the calculated FP
A search is performed to determine whether P is already stored in the server-side proxy 30 (FIG. 5-4). Here, since the same FP as the calculated FP has been stored, the server-side proxy 30 does not transmit the received Web content to the branch, but instead replies the FP to the branch (FIG. 5). 5). The client side proxy 40 searches the own apparatus with the received FP (FIG. 5-6). The Web content stored in association with the found FP is retrieved (FIGS. 5-7). The client-side proxy 40 transmits the Web page read from its own device to the client 50 (FIGS. 5-8). As described above, the Web content to be transmitted from the server side proxy 30 to the client side proxy 40 is converted into a small amount of FP.
In particular, the bottleneck of the wide area network can be eliminated.

さて、ここでフィンガープリントについて、詳細に説明する。   Now, the fingerprint will be described in detail.

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

フィンガープリントは、図6に例示するように、HTTPプロトコルでやり取りされる
データ(図6の例ではコンテンツ)の内容から、あらかじめ決められた計算方法(図6の
例ではハッシュ関数)で決定される、短い数値である。この数値は、可変長でもよいが、
処理の容易さの観点では、固定長の数値の方が扱いやすい。
As illustrated in FIG. 6, the fingerprint is determined by a predetermined calculation method (hash function in the example of FIG. 6) from the contents of data exchanged by the HTTP protocol (content in the example of FIG. 6). It ’s a short number. This number may be variable length,
From the viewpoint of ease of processing, fixed-length numerical values are easier to handle.

フィンガープリントを計算する方法としては、良く知られているMD−5やSHA−1
などのハッシュ関数を用いることができる。これらのハッシュ関数は、データに対する電
子署名などに使われており、任意のデータが与えられると、MD−5の場合は128ビッ
トの数値に、SHA−1の場合は160ビットの数値に、変換することができる。これら
のハッシュ関数の特徴は、2つのデータX1,X2が与えられ、データX1とデータX2
とが同じであれば、データX1に対して計算したハッシュ値とデータX2に対して計算し
たハッシュ値とは等しくなるが、異なる2つのデータA,Bが与えられた場合には、デー
タAに対して計算したハッシュ値とデータBに対して計算したハッシュ値とは、非常に高
い確率で異なるものになることである(原理上は、異なる2つのデータA,Bに対してそ
れぞれ計算したハッシュ値が同じになる場合があるが、その確率は実用上無視できるくら
いに小さい)。
As a method for calculating the fingerprint, well-known MD-5 and SHA-1
A hash function such as can be used. These hash functions are used for digital signatures on data, and when given data is converted into a 128-bit number for MD-5 and a 160-bit number for SHA-1. can do. The features of these hash functions are given two data X1 and X2, and data X1 and data X2
Are the same as the hash value calculated for the data X1 and the hash value calculated for the data X2, but if two different data A and B are given, the data A The hash value calculated for the data B and the hash value calculated for the data B are different with a very high probability (in principle, the hash values calculated for two different data A and B, respectively). The values may be the same, but the probability is small enough to be ignored in practice).

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

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

説明上、サーバ側プロキシ30とクライアント側プロキシ40との間でのデータ転送に
あたり、フィンガープリントキャッシュを利用してメッセージ・ボディーのデータをフィ
ンガープリントに置き換えて転送情報量を圧縮することを、フィンガープリント圧縮(F
P圧縮)と呼ぶものとする。
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 and compress the transfer information amount. Compression (F
This is called P compression).

なお、サーバ側プロキシ30とクライアント側プロキシ40との間において、すべての
メッセージを、FP圧縮を適用する対象(すなわち、フィンガープリントキャッシュを利
用してデータをフィンガープリントに置き換えるための処理を行う対象)としてもよいが
、例えばフィンガープリントキャッシュの効果が期待できないものなどに対する適用を除
外するために、予め定められた条件を満たすメッセージについては、これをFP圧縮の適
用対象外とする(常にFP圧縮しないで転送する)ようにしてもよい。
It should be noted that FP compression is applied to all messages between the server-side proxy 30 and the client-side proxy 40 (that is, a process for replacing data with a fingerprint using a fingerprint cache). However, for example, in order to exclude application to a message that cannot be expected to have a fingerprint cache effect, a message that satisfies a predetermined condition is excluded from the application target of FP compression (always FP compression is not performed). May be transferred).

この場合の予め定められた条件とは、例えば、メッセージ・ヘッダに予め定められた情
報が記述されていることである。具体的には、例えば、メッセージ・ヘッダにGETメソ
ッドを示す情報およびリクエストを示す情報が記述されていることである。また、予め定
められた条件の他の例としては、転送されるデータが空(null)あるいは非常に短い
サイズであることである。
The predetermined condition in this case is, for example, that predetermined information is described in the message header. Specifically, for example, information indicating a GET method and information indicating a request are described in a message header. Another example of the predetermined condition is that the data to be transferred is null or has a very short size.

もちろん、それらの他にも種々のバリエーションがある。また、複数の条件を組み合わ
せて使用するようにしてもよい。
Of course, there are various other variations. A plurality of conditions may be used in combination.

ところで、クライアント50−サーバ20間では、図1の本発明を適用するコンピュー
タ・ネットワーク・システムの全体構成例にも示したように、支社4とASPサーバセン
ター2との中間には、様々な他のプロキシ装置が介在し、経由することが一般的である。
ここでは、例えば、図1においては、支社4とASPサーバセンター2との中間に、
1)通常プロキシを経由する場合(図1右上)、
2)クライアント側プロキシを経由する場合(図1右中)、
3)クライアント側プロキシ及び通常プロキシを経由する場合(図1右下)、
の3通りを示している。なお、図示しないが、WAN14と接続される別の会社におい
ては、クライアント側プロキシ40を導入することなく通常プロキシ70のみを介して複
数のクライアント(ブラウザ)が接続されるといった(現状の一般的なネットワーク形態
で構成される)、別の会社も存在しうる。
By the way, between the client 50 and the server 20, as shown in the overall configuration example of the computer network system to which the present invention of FIG. 1 is applied, there are various others between the branch office 4 and the ASP server center 2. In general, the proxy device is interposed.
Here, for example, in FIG. 1, between the branch office 4 and the ASP server center 2,
1) When going through a normal proxy (upper right of Fig. 1),
2) When going through the client-side proxy (middle right in Fig. 1)
3) When going through the client side proxy and the normal proxy (lower right of Fig. 1)
The three types are shown. Although not shown, in another company connected to the WAN 14, a plurality of clients (browser) are connected only through the normal proxy 70 without introducing the client-side proxy 40 (currently common) There may be another company (configured in network form).

このように、支社4とASPサーバセンター2との中間にプロキシが介在する場合には
、支社4のクライアント側プロキシ40とASPサーバセンター2のサーバ側プロキシ3
0で、単に上記で説明したようなフィンガープリント圧縮を適用するだけでは、以下のよ
うな問題が生じる。
As described above, when a proxy is interposed between the branch office 4 and the ASP server center 2, the client-side proxy 40 of the branch office 4 and the server-side proxy 3 of the ASP server center 2.
At 0, simply applying fingerprint compression as described above causes the following problems.

a)リクエストに対するリプライメッセージを受け取ったサーバ側プロキシ30は、リ
プライメッセージを(可能ならば)FPに変換して送信すべきか、FPに変換せずに送信
すべきか判断できない。つまり、リクエストが通常プロキシ70だけを経由してきたので
あれば、通常プロキシ70にはFP機能が無いので、変換したものを送付してはいけない
が、クライアント側プロキシ40を経由してきたものであれば、送信すべきリプライメッ
セージのFPを保存していれば、FPを送ればよい。しかし、現状ではFPを送付すべき
か否かを判別することができない。
a) The server-side proxy 30 that has received the reply message for the request cannot determine whether the reply message should be converted into FP (if possible) or transmitted without being converted into FP. In other words, if the request is via the normal proxy 70 only, the normal proxy 70 does not have the FP function, so the converted version must not be sent, but if the request is via the client side proxy 40. If the FP of the reply message to be transmitted is stored, the FP may be sent. However, at present, it cannot be determined whether or not the FP should be sent.

b)更に、例えば、サーバ側プロキシ30とクライアント側プロキシ40との間に通常
プロキシ70が介在している場合、通常プロキシ70が備えるキャッシュ機能で、利用で
きないフィンガープリントをもキャッシュしてしまう。
b) Further, for example, when the normal proxy 70 is interposed between the server-side proxy 30 and the client-side proxy 40, the fingerprint function that is not available with the cache function provided in the normal proxy 70 is also cached.

c)例えば、支社4とASPサーバセンター2との中間にクライアント側プロキシ40
が介在している場合、その中間のクライアント側プロキシ40は、自身が中間のプロキシ
であることを判別ができないため、復元して返してしまう。
c) For example, the client-side proxy 40 is located between the branch office 4 and the ASP server center 2.
Is present, the intermediate client-side proxy 40 cannot recover that it is an intermediate proxy, and thus restores and returns it.

そこで、本実施の形態のサーバ側プロキシ及びクライアント側プロキシは、これらの問
題点を解決するようにした。
Therefore, the server-side proxy and client-side proxy of the present embodiment solve these problems.

図8、および図9に、本実施の形態のクライアント側プロキシ40及びサーバ側プロキ
シ30の機能ブロック図を示し、詳細に説明する。なお、図8や図9は、クライアント側
プロキシ40とサーバ側プロキシ30との間のデータ転送の際の機能構成を中心に示して
ある。
FIG. 8 and FIG. 9 show functional block diagrams of the client side proxy 40 and the server side proxy 30 of this embodiment, and will be described in detail. 8 and 9 mainly show the functional configuration when transferring data between the client-side proxy 40 and the server-side proxy 30. FIG.

ここで、まず、リクエストメッセージおよびリプライメッセージについて説明する。   Here, first, a request message and a reply message will be described.

リクエストメッセージは、[従来の技術]欄で示したようにリクエストヘッダとリクエ
ストボディからなっており、リクエストヘッダには、予め決められた情報が格納される領
域の他に、利用者によって書き込む情報が定義可能な領域を含んでいる。本実施の形態で
は、この利用者によって定義可能な領域に、リクエストメッセージがクライアント側プロ
キシ40によって転送される際に、FP圧縮を行うプロキシを通過した旨を示す情報を書
き込むようにした。ここではFP_USEと書き込むようにし、これをFP_USEヘッ
ダと呼ぶこととする。
The request message is composed of a request header and a request body as shown in the [Prior Art] column, and the request header contains information to be written by the user in addition to an area for storing predetermined information. Includes definable areas. In this embodiment, when a request message is transferred by the client-side proxy 40, information indicating that it has passed through a proxy that performs FP compression is written in an area definable by the user. Here, FP_USE is written, and this is called an FP_USE header.

リプライメッセージは、[従来の技術]欄で示したようにリプライヘッダとリプライボ
ディからなっており、リプライヘッダには、予め決められた情報が格納される領域に、H
TTPプロトコル対応の装置で認識可能なNO_CACHEヘッダを付加することができ
る。このNO_CACHEヘッダは、リプライボディのキャッシュを禁止する旨を意味す
る。本実施の形態では、サーバ側プロキシ30が、この領域にNO_CACHEと書き込
むようにした。よって、HTTPプロトコル対応の装置は、受信したリプライメッセージ
にNO_CACHEヘッダがあれば、FPをキャッシュすることは無くなる。また、リプ
ライヘッダには、予め決められた情報が格納される領域の他に、利用者によって書き込む
情報が定義可能な領域を含んでいる。本実施の形態では、リプライボディを、FP圧縮を
行ったFP値とする場合には、この利用者によって定義可能な領域に、FPヘッダを付加
するようにした。
The reply message is composed of a reply header and a reply body as shown in the [Prior Art] column, and the reply header contains an H in an area where predetermined information is stored.
A NO_CACHE header that can be recognized by a device compatible with the TTP protocol can be added. This NO_CACHE header means that reply body caching is prohibited. In the present embodiment, the server side proxy 30 writes NO_CACHE in this area. Therefore, an apparatus compatible with the HTTP protocol does not cache the FP if the received reply message has a NO_CACHE header. The reply header includes an area in which information to be written by the user can be defined in addition to an area in which predetermined information is stored. In the present embodiment, when the reply body is an FP value subjected to FP compression, an FP header is added to an area definable by the user.

以下では図8を用い、クライアント側プロキシ40の構成について説明する。   The configuration of the client side proxy 40 will be described below using FIG.

受信部401は、クライアント50からのリクエストメッセージを受信するものである
。ヘッダ解析部402は、受信部401にて受信したリクエストメッセージを受け、リク
エストヘッダを解析し、前記FP_USEヘッダの有無を検出するものである。ヘッダ情
報保存部403は、ヘッダ解析部402でFP_USEヘッダを備えたリクエストメッセ
ージを検出した際に、このリクエストメッセージがFP_USEヘッダを備えていたこと
を示す情報を保存するものである。
The receiving unit 401 receives a request message from the client 50. The header analysis unit 402 receives the request message received by the reception unit 401, analyzes the request header, and detects the presence or absence of the FP_USE header. When the header analysis unit 402 detects a request message having an FP_USE header, the header information storage unit 403 stores information indicating that the request message has an FP_USE header.

ヘッダ付加部404は、ヘッダ解析部402で、FP_USEヘッダを備えていないリ
クエストメッセージを検出した際に、リクエストメッセージのリクエストヘッダにFP_
USEヘッダを付加するものである。送信部405は、ヘッダ解析部402またはヘッダ
付加部404から送られてきたリクエストメッセージをサーバ20へ向けて送信するもの
である。
When the header analysis unit 402 detects a request message that does not include the FP_USE header, the header addition unit 404 adds FP_ to the request header of the request message.
A USE header is added. The transmission unit 405 transmits the request message sent from the header analysis unit 402 or the header addition unit 404 to the server 20.

受信部406は、リクエストメッセージに対する応答であるリプライメッセージを受信
するものである。ヘッダ判定部407は、リプライメッセージを受信すると、このリプラ
イメッセージに対応するリクエストメッセージにFP_USEヘッダが含まれていたか否
かを、ヘッダ情報保存部403を参照し判定するものである。なお、ヘッダ情報保存部4
03は、リクエストメッセージ時に示したように、リクエストメッセージのヘッダにFP
_USEが含まれているときに保存されるものであるから、情報がヘッダ情報保存部40
3にあるということは、このクライアント側プロキシ40が、要求のあったクライアント
50に最も近いクライアント側プロキシ40ではないということを意味し、また、情報が
ヘッダ情報保存部403にないということは、このクライアント側プロキシ40が、要求
のあったクライアント50に最も近いクライアント側プロキシ40であることを意味する
The receiving unit 406 receives a reply message that is a response to the request message. When the header determination unit 407 receives the reply message, the header determination unit 407 determines whether or not the FP_USE header is included in the request message corresponding to the reply message with reference to the header information storage unit 403. The header information storage unit 4
03 is FP in the header of the request message as shown in the request message.
Since it is stored when _USE is included, the header information storage unit 40
3 means that this client-side proxy 40 is not the client-side proxy 40 closest to the requested client 50, and that no information is in the header information storage unit 403. This means that the client-side proxy 40 is the client-side proxy 40 that is closest to the requested client 50.

ヘッダ判定部407は、このクライアント側プロキシ40が、クライアント50に最も
近いクライアント側プロキシ40でないと判断すれば、受け取ったリプライメッセージを
、そのまま送信部413へ送る。また、ヘッダ判定部407は、このクライアント側プロ
キシ40が、クライアント50に最も近いクライアント側プロキシ40であると判断すれ
ば、そのリプライメッセージをFP圧縮判定部408へ供給する。
If the header determination unit 407 determines that the client side proxy 40 is not the client side proxy 40 closest to the client 50, the header determination unit 407 transmits the received reply message to the transmission unit 413 as it is. If the header determination unit 407 determines that the client side proxy 40 is the client side proxy 40 closest to the client 50, the header determination unit 407 supplies the reply message to the FP compression determination unit 408.

FP圧縮判定部408は、受け取ったリプライメッセージにFPヘッダが含まれている
か否かを検出することによって、そのリプライメッセージがFP圧縮されたものか否かを
判定するものである。FP圧縮判定部408は、FP圧縮されていれば、FPキャッシュ
管理部409へ、FP圧縮されていなければFP圧縮処理部414へリプライメッセージ
を送る。
The FP compression determination unit 408 determines whether or not the reply message is FP compressed by detecting whether or not the received reply message includes an FP header. The FP compression determination unit 408 sends a reply message to the FP cache management unit 409 if the FP compression is performed, and to the FP compression processing unit 414 if the FP compression is not performed.

FPキャッシュ411は、以前にFP圧縮したFPと、そのFPの圧縮前のコンテンツ
とを対応づけて記憶するものである。
The FP cache 411 stores the FP that has been previously FP compressed and the content before compression of the FP in association with each other.

FP圧縮処理部414は、フィンガープリント圧縮するものである。FP圧縮されたF
P値は、コンテンツと共にFPキャッシュ登録部410によって、FPキャッシュ411
に登録される。
The FP compression processing unit 414 performs fingerprint compression. FP compressed F
The P value is stored together with the content by the FP cache registration unit 410 by the FP cache 411.
Registered in

FPキャッシュ管理部409は、そのリプライメッセージ内のFPでFPキャッシュ4
11を検索し、検索されたFPに対応するコンテンツを得て、リプライメッセージのリプ
ライデータをこの得られたコンテンツに変更して、送信部413へ送るものである。FP
キャッシュ登録部410は、FP圧縮判定部408からのリプライメッセージを受け取り
、このリプライデータ(コンテンツ)のFPを求め、FPとコンテンツとを対応付けてF
Pキャッシュ411に登録する。その後、リプライメッセージを送信部413へ送る。
The FP cache management unit 409 uses the FP in the reply message as the FP cache 4
11, the content corresponding to the searched FP is obtained, the reply data of the reply message is changed to the obtained content, and sent to the transmission unit 413. FP
The cache registration unit 410 receives the reply message from the FP compression determination unit 408, obtains the FP of the reply data (content), associates the FP with the content, and sets the F.
Register in the P cache 411. Thereafter, a reply message is sent to the transmission unit 413.

送信部413は、受け取ったリプライメッセージをクライアント50へ送信するもので
ある。
The transmission unit 413 transmits the received reply message to the client 50.

なお、機能ブロックとして、受信部401と受信部406、送信部405と送信部41
3、を別々のブロック構成として図示したが、同じ構成であっても良く、また受信部40
1と送信部413、受信部405と受信部406、を送受信部として同じ構成としても良
いことは勿論である。
Note that, as functional blocks, the receiving unit 401 and the receiving unit 406, the transmitting unit 405 and the transmitting unit 41 are used.
3 are illustrated as separate block configurations, but the same configuration may be used, and the receiving unit 40 may be the same.
Of course, 1 and the transmission unit 413, and the reception unit 405 and the reception unit 406 may be the same as the transmission / reception unit.

以上が、クライアント側プロキシ40の構成である。   The above is the configuration of the client side proxy 40.

次に、サーバ側プロキシ30の構成について説明する。   Next, the configuration of the server side proxy 30 will be described.

受信部301は、リクエストメッセージを受信するものである。ヘッダ解析部302は
、リクエストメッセージのリクエストヘッダを解析し、FP_USEヘッダが付加されて
いるか否かを確認し、FP_USEヘッダが付加されている場合にヘッダ情報保存部30
3へ通知するものである。
The receiving unit 301 receives a request message. The header analysis unit 302 analyzes the request header of the request message, checks whether or not the FP_USE header is added, and if the FP_USE header is added, the header information storage unit 30
3 is notified.

ヘッダ情報保存部303は、このリクエストメッセージにFP_USEヘッダがついて
いる旨を示す情報を保存する。そして、リクエストメッセージは、送信部304からサー
バ20へ送信される。なお、サーバ20は、リクエストメッセージを受け取って、クライ
アント50から要求された所望のコンテンツを取り出して、リプライメッセージとして、
クライアント50へ向けて送信する。
The header information storage unit 303 stores information indicating that the FP_USE header is attached to the request message. Then, the request message is transmitted from the transmission unit 304 to the server 20. The server 20 receives the request message, takes out the desired content requested from the client 50, and uses it as a reply message.
Transmit to the client 50.

受信部305は、サーバ20からのリプライメッセージを受信部305で受信するもの
である。ヘッダ判定部306は、受信部305からリプライメッセージを受けると、ヘッ
ダ情報保存部303を参照し、そのリプライメッセージに対応するリクエストメッセージ
にFP_USEヘッダが付加されていたか否かを判定するものである。この判定は、リク
エストメッセージが辿ってきた間に、クライアント側プロキシ40が存在したか否かを判
定していることに相当する。ヘッダ判定部306は、ヘッダが無かった(クライアント側
プロキシが存在しなかった)場合には、そのままリプライメッセージを送信部311へ送
る。ヘッダ判定部306は、ヘッダがあったと判断した場合は、リプライメッセージをF
P圧縮処理部307へ送る。
The receiving unit 305 receives the reply message from the server 20 by the receiving unit 305. When the header determination unit 306 receives the reply message from the reception unit 305, the header determination unit 306 refers to the header information storage unit 303 and determines whether an FP_USE header is added to the request message corresponding to the reply message. This determination corresponds to determining whether or not the client side proxy 40 exists while the request message is traced. If there is no header (there is no client-side proxy), the header determination unit 306 sends a reply message to the transmission unit 311 as it is. When the header determination unit 306 determines that there is a header, the header determination unit 306 sends a reply message to F
The data is sent to the P compression processing unit 307.

FP圧縮処理部307は、先に説明したフィンガープリント圧縮の方法でFP圧縮し、
FPを生成するものである。FPキャッシュ管理部308は、FP圧縮処理部307から
受け取ったFPでFPキャッシュ309を検索するものである。見つかった際に、リプラ
イメッセージのリプライデータをFPに変えてヘッダ付加部310へ送る。FPキャッシ
ュ登録部312は、FPキャッシュ管理部308でFPがFPキャッシュ309で見つか
らなかった場合に、FPとデータとを対応付けてFPキャッシュ309へ登録し、リプラ
イメッセージをそのまま送信部311へ送る。ヘッダ付加部310は、FPキャッシュ管
理部308からのリプライメッセージのヘッダにNO_CACHEヘッダを付加し、送信
部311へ供給するものである。
The FP compression processing unit 307 performs FP compression using the fingerprint compression method described above,
An FP is generated. The FP cache management unit 308 searches the FP cache 309 with the FP received from the FP compression processing unit 307. When found, the reply data of the reply message is changed to FP and sent to the header adding unit 310. If the FP cache management unit 308 does not find the FP in the FP cache 309, the FP cache registration unit 312 registers the FP and data in association with each other in the FP cache 309, and sends the reply message to the transmission unit 311 as it is. The header adding unit 310 adds a NO_CACHE header to the header of the reply message from the FP cache management unit 308 and supplies the NO_CACHE header to the transmission unit 311.

以上が、サーバ側プロキシ30の構成である。   The above is the configuration of the server-side proxy 30.

図10は、クライアントからの一つのリクエストメッセージを受けた際のクライアント
側プロキシ40の処理手順の一例を示している。
FIG. 10 shows an example of the processing procedure of the client side proxy 40 when receiving one request message from the client.

クライアント側プロキシ40は、受信部401により、クライアントからのリクエスト
メッセージをLAN16、または、LAN18から受信する(ステップS101)。ヘッ
ダ解析部402は、受信したリクエストメッセージのリクエストヘッダを解析し、FP_
USEヘッダが付加されているか否かを検出する(ステップS102)。ステップS10
2の結果、FP_USEヘッダが付加されていれば、ヘッダ情報保存部403は、このリ
クエストメッセージにFP_USEヘッダがついていた旨を示す情報を保存し(ステップ
S103)、また、受信したリクエストメッセージをそのまま送信部405へ供給し、送
信部405は、このリクエストメッセージを、サーバ側プロキシ30に向けて送信する。
The client side proxy 40 receives the request message from the client from the LAN 16 or the LAN 18 by the receiving unit 401 (step S101). The header analysis unit 402 analyzes the request header of the received request message, and performs FP_
It is detected whether or not a USE header is added (step S102). Step S10
If the FP_USE header is added as a result of 2, the header information storage unit 403 stores information indicating that the FP_USE header is attached to the request message (step S103), and transmits the received request message as it is. The transmission unit 405 transmits the request message to the server-side proxy 30.

一方、ステップS102の結果、FP_USEヘッダが付加されていなければ、ヘッダ
付加部404は、このリクエストメッセージのリクエストヘッダの所定エリアにFP_U
SEヘッダを付加し、送信部405は、このFP_USEを付加したリクエストメッセー
ジを、サーバ側プロキシ30に向けて送信する(ステップS105)。
On the other hand, as a result of step S102, if the FP_USE header is not added, the header adding unit 404 adds FP_U to the predetermined area of the request header of this request message.
The SE header is added, and the transmission unit 405 transmits the request message with the FP_USE added to the server side proxy 30 (step S105).

この実施の形態では、クライアント50がリクエストメッセージを送信してから、リプ
ライメッセージを受けるまでコネクションが張られた状態を維持する通信方式を想定して
いる。そのため、ヘッダ情報保存部403ではリクエストメッセージにFP_USEヘッ
ダがついていたか否かを示す最小1ビットのフラグを備えるようにすればよい。なお、こ
の通信方式に限定されること無く、複数のコネクションを並列的に切り替え処理して扱う
ような方式であれば、先のフラグとリクエストメッセージを識別する識別情報などとを対
応付けて保存するようにしても良い、等、様々な方法が適用可能である。
In this embodiment, a communication method is assumed in which a connection is maintained until a reply message is received after the client 50 transmits a request message. For this reason, the header information storage unit 403 may be provided with a minimum 1-bit flag indicating whether or not the request message has an FP_USE header. Note that the present invention is not limited to this communication method, and if it is a method that handles a plurality of connections by switching them in parallel, the previous flag and the identification information for identifying the request message are stored in association with each other. Various methods can be applied, such as, for example.

図11は、一つのリクエストメッセージを、WAN14を介して受けた際のサーバ側プ
ロキシ30の処理手順の一例を示している。
FIG. 11 shows an example of a processing procedure of the server side proxy 30 when one request message is received via the WAN 14.

サーバ側プロキシ30は、受信部301により、リクエストメッセージを受信する(ス
テップS201)。ヘッダ解析部302は、受信したリクエストメッセージのリクエスト
ヘッダを解析し、FP_USEヘッダが付加されているか否かを検出する(ステップS2
02)。ステップS202の結果、FP_USEヘッダが付加されていれば、ヘッダ情報
保存部303は、このリクエストメッセージにFP_USEヘッダがついていた旨を示す
情報を保存する(ステップS203)。受信したリクエストメッセージは、送信部304
からサーバ20へ送信する(S204)。
The server side proxy 30 receives a request message by the receiving unit 301 (step S201). The header analysis unit 302 analyzes the request header of the received request message and detects whether or not the FP_USE header is added (step S2).
02). If the FP_USE header is added as a result of step S202, the header information storage unit 303 stores information indicating that the FP_USE header is attached to the request message (step S203). The received request message is sent to the transmission unit 304.
To the server 20 (S204).

サーバ20は、リクエストメッセージを受け、既知の方法で処理を行って、リクエスト
メッセージが発行されたクライアントへ向けて、リプライメッセージを送信する。
The server 20 receives the request message, performs processing by a known method, and transmits a reply message to the client from which the request message is issued.

図12に、サーバ20から一つのリプライメッセージを受けた際のサーバ側プロキシ3
0の処理手順の一例を示している。
FIG. 12 shows the server-side proxy 3 when one reply message is received from the server 20.
An example of the processing procedure of 0 is shown.

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

ヘッダ判定部306は、ヘッダ情報保存部303を参照して(ステップS302)、こ
のリプライメッセージに対応するリクエストメッセージにFP_USEヘッダが付加され
ていたか否かを判定する(ステップS303)。これはつまり、クライアント50−サー
バ20(サーバ側プロキシ30)間にクライアント側プロキシ40が少なとも1台は存在
しているか否かを判別している。
The header determination unit 306 refers to the header information storage unit 303 (step S302) and determines whether an FP_USE header has been added to the request message corresponding to the reply message (step S303). In other words, it is determined whether or not at least one client side proxy 40 exists between the client 50 and the server 20 (server side proxy 30).

ステップS303の結果、FP_USEが付加されていないと判断すると、そのままリ
プライメッセージを送信部311によって、WAN14を介して、クライアント50へ向
けて送信する(ステップS309)。
As a result of step S303, if it is determined that FP_USE is not added, the reply message is transmitted as it is to the client 50 via the WAN 14 by the transmission unit 311 (step S309).

一方、ステップS303の結果、FP_USEが付加されていたと判断すると、FP圧
縮処理部307は、リプライメッセージのリプライデータ(=コンテンツ)のFPを求め
る(ステップS304)。そして、FPキャッシュ管理部308にて、求められた該FP
をキーとしてフィンガープリントキャッシュ309を検索し(ステップS305)、該F
Pの値とこれに対応するデータとの組がフィンガープリントキャッシュ309に登録され
ているか否かを確認する(ステップS306)。
On the other hand, if it is determined in step S303 that FP_USE has been added, the FP compression processing unit 307 obtains the FP of the reply data (= content) of the reply message (step S304). Then, the FP cache management unit 308 obtains the obtained FP.
The fingerprint cache 309 is searched using as a key (step S305), and the F
It is confirmed whether or not a set of the value of P and the data corresponding thereto is registered in the fingerprint cache 309 (step S306).

ステップS306の結果、FPキャッシュ309にFPが登録されていれば、ヘッダ付
加部310は、リプライメッセージのヘッダにNO_CACHEを付加する(ステップS
307)。そして、リプライメッセージのリプライデータをステップS304で求められ
たFPに変更するとともに、FPヘッダを付加して、送信部311は、WAN14を介し
て、クライアント50へ向けて送信する(ステップS308)。
As a result of step S306, if the FP is registered in the FP cache 309, the header adding unit 310 adds NO_CACHE to the header of the reply message (step S).
307). Then, the reply data of the reply message is changed to the FP obtained in step S304, and an FP header is added, and the transmission unit 311 transmits the data to the client 50 via the WAN 14 (step S308).

ステップS306の結果、 FPキャッシュ309にFPが登録されていなければ、F
Pキャッシュ登録部312は、該フィンガープリントの値と、該リプライデータとを対応
付けて(フィンガープリントの値をキーとして)、フィンガープリントキャッシュ309
に登録する(ステップS310)。そして、送信部311は、そのままリプライメッセー
ジを、WAN14を介して、クライアント50へ向けて送信する(ステップS311)。
As a result of step S306, if the FP is not registered in the FP cache 309, F
The P cache registration unit 312 associates the fingerprint value with the reply data (using the fingerprint value as a key), and prints the fingerprint cache 309.
(Step S310). Then, the transmitting unit 311 transmits the reply message as it is to the client 50 via the WAN 14 (step S311).

図13に、一つのリプライメッセージを受けた際のクライアント側プロキシ40の処理
手順の一例を示している。
FIG. 13 shows an example of the processing procedure of the client side proxy 40 when one reply message is received.

クライアント側プロキシ40は、受信部406により、リプライメッセージを受信する
(ステップS401)。
The client side proxy 40 receives the reply message by the receiving unit 406 (step S401).

ヘッダ判定部407は、ヘッダ情報保存部403を参照して(ステップS402)、こ
のリプライメッセージに対応するリクエストメッセージにFP_USEが付加されていた
か否かを判定する(ステップS403)。これはつまり、本クライアント側プロキシ40
とクライアント50との間にクライアント側プロキシ40が存在しているか、いないかを
判別するものである。例えば、図1の右中の2つのクライアント側プロキシ40のうち、
左側のクライアント側プロキシ40のヘッダ情報保存部403には、FP_USEが付加
されていたことを保存しており、右側のクライアント側プロキシ40のヘッダ情報保存部
403には、FP_USEが付加されていなかったので、何も保存しない。
The header determination unit 407 refers to the header information storage unit 403 (step S402) and determines whether FP_USE has been added to the request message corresponding to the reply message (step S403). This means that the client side proxy 40
It is determined whether or not the client side proxy 40 exists between the client 50 and the client 50. For example, of the two client side proxies 40 in the middle right of FIG.
The header information storage unit 403 of the left client side proxy 40 stores that FP_USE was added, and the header information storage unit 403 of the right client side proxy 40 did not have FP_USE added. So do not save anything.

ステップS403の結果、FP_USEが付加されていると判断すると、リプライメッ
セージをそのまま送信部413によって、LAN14等を介して、クライアント50へ向
けて送信する(ステップS411)。
If it is determined in step S403 that FP_USE has been added, the reply message is transmitted as it is to the client 50 via the LAN 14 or the like by the transmission unit 413 (step S411).

ステップS403の結果、FP_USEが付加されていないと判断すると、FP圧縮判
定部408は、リプライヘッダのFPヘッダの有無を確認することによって、リプライデ
ータがFP圧縮されているか否かを判定する(S404)。NO_CACHEヘッダがあ
れば、FP圧縮されていることになる。
If it is determined in step S403 that FP_USE is not added, the FP compression determination unit 408 determines whether or not the reply data is FP compressed by checking the presence or absence of the FP header of the reply header (S404). ). If there is a NO_CACHE header, FP compression has been performed.

ステップS404の結果、FP圧縮されていれば、リプライメッセージのリプライデー
タはFPであるから、FPキャッシュ管理部409にて、該リプライデータ(=FP)を
キーとしてフィンガープリントキャッシュ411を検索する(ステップS405)。この
検索によって、見つけられた該フィンガープリントに対応するコンテンツを読み出し、リ
プライメッセージのリプライデータをこのコンテンツに変更する(ステップS406)。
送信部413は、この変更されたリプライメッセージをクライアント50へ向けて送信す
る(ステップS407)。
If the FP compression is performed as a result of step S404, the reply data of the reply message is FP, and the FP cache management unit 409 searches the fingerprint cache 411 using the reply data (= FP) as a key (step S404). S405). The content corresponding to the fingerprint found by this search is read, and the reply data of the reply message is changed to this content (step S406).
The transmission unit 413 transmits the changed reply message to the client 50 (step S407).

ステップS404の結果、FP圧縮されていなければ、FP圧縮処理部414によって
、リプライデータ(=コンテンツ)のFPを求める(ステップS408)。FPキャッシ
ュ登録部410は、求めた該フィンガープリントと、該リプライデータ(=コンテンツ)
とを対応付けて(フィンガープリントの値をキーとして)、フィンガープリントキャッシ
ュ411に登録する(ステップS409)。そして、送信部413は、そのままのリプラ
イメッセージを、クライアント50へ向けて送信する(ステップS410)。
As a result of step S404, if FP compression is not performed, the FP compression processing unit 414 calculates the FP of reply data (= content) (step S408). The FP cache registration unit 410 calculates the obtained fingerprint and the reply data (= content)
Are registered in the fingerprint cache 411 (using the fingerprint value as a key) (step S409). Then, the transmission unit 413 transmits the reply message as it is to the client 50 (step S410).

以上説明してきた本発明の実施形態によれば、上記したクライアント側プロキシ40は
、その配置箇所に応じて動作する。例えば、クライアント側プロキシ40がクライアント
50に最も近い、クライアント側プロキシであれば、クライアントへ送信するリプライデ
ータは、必ず(FP非圧縮の)生のデータを供給する。また、例えば、クライアント側プ
ロキシ40が中間プロキシであれば、リプライデータを何も処理することなく転送のみを
行うように動作する。このように動作するから、サーバ側プロキシ30とクライアント側
プロキシ40との間に、クライアント側プロキシ40や、通常プロキシ70などが接続さ
れても正常に動作するようなシステムが構築できるようになった。
According to the embodiment of the present invention that has been described above, the client-side proxy 40 operates according to the arrangement location. For example, if the client side proxy 40 is the client side proxy closest to the client 50, the reply data to be transmitted to the client always supplies raw data (FP uncompressed). Further, for example, if the client side proxy 40 is an intermediate proxy, the client side proxy 40 operates to transfer only without processing any reply data. Since it operates in this way, a system that can operate normally even when the client side proxy 40 or the normal proxy 70 is connected between the server side proxy 30 and the client side proxy 40 can be constructed. .

また、通常プロキシが存在しても、誤ってFPデータをキャッシュすることなく、正常
に動作する。
Even if a normal proxy exists, it operates normally without erroneously caching FP data.

なお、本実施の形態のクライアント側プロキシ40は、リクエストメッセージにFP_
USEヘッダが付いている時に、FP_USEヘッダがついていたことを示す情報を保存
するようにしたが、その逆で、リクエストメッセージにFP_USEヘッダが付いていな
い時に、FP_USEヘッダが付いていないことを示す情報を保存するようにしても良い
。同様に、リクエストメッセージにFP_USEヘッダが付いていない時に、(このクラ
イアント側プロキシ40で)FP_USEヘッダを付けたことを示す情報を保存するよう
にしても良い。このような場合には、ヘッダ判定部407は、ヘッダ情報保存部403に
情報が保存されていたときに、クライアント50に最も近いクライアント側プロキシ40
として扱えば良い。また、ヘッダ情報保存部403を、FP_USEヘッダの有無を示す
ようなフラグとし、ヘッダ判定部407ではそのフラグのオン/オフによって、クライア
ント50に最も近いクライアント側プロキシ40であるか否かを判定するようにしても良
いだろう。
Note that the client-side proxy 40 of the present embodiment adds FP_
When the USE header is attached, the information indicating that the FP_USE header is attached is stored. Conversely, when the FP_USE header is not attached to the request message, the information indicating that the FP_USE header is not attached. May be saved. Similarly, when the request message does not have the FP_USE header, information indicating that the FP_USE header has been added (by the client side proxy 40) may be stored. In such a case, the header determination unit 407 causes the client-side proxy 40 closest to the client 50 when the information is stored in the header information storage unit 403.
Can be treated as Further, the header information storage unit 403 is set as a flag indicating the presence or absence of the FP_USE header, and the header determination unit 407 determines whether or not the client side proxy 40 is closest to the client 50 by turning on / off the flag. It may be good.

また、本実施の形態のサーバ側プロキシ30は、送信するリプライメッセージにデータ
またはFP値の何れかのみを付加して送付するようにしていたが、FP値を保存しデータ
を送信する場合(S306のNOの場合)、FP値もリプライメッセージに付けて送るよ
うにしても良い。このような構成にすれば、クライアント側プロキシ40内には、受信し
たリプライメッセージからFP値を抽出する機能を有する必要があるが、FP圧縮を行う
機能は不要となり、全体の速度の高速化が可能になるだろう。
Further, the server-side proxy 30 according to the present embodiment is configured to transmit only the data or the FP value to the reply message to be transmitted, but when the FP value is stored and the data is transmitted (S306). In the case of NO), the FP value may be sent along with the reply message. With such a configuration, the client-side proxy 40 needs to have a function of extracting the FP value from the received reply message, but the function of performing the FP compression becomes unnecessary, and the overall speed is increased. It will be possible.

ところで、これまでは、1つのメッセージに含まれるデータ全体をFP圧縮する対象(
フィンガープリントキャッシュに登録する対象)にしていたが、例えば、1つのメッセー
ジに含まれるデータが所定の単位のデータの集合で構成される場合には、1つのメッセー
ジに含まれる一部の単位データのみFP圧縮する対象(フィンガープリントキャッシュに
登録する対象)にする構成も可能である。
By the way, until now, all data included in one message is subject to FP compression (
For example, when the data included in one message is composed of a set of data in a predetermined unit, only a part of the unit data included in one message is registered. It is also possible to adopt a configuration that is a target for FP compression (a target to be registered in the fingerprint cache).

なお、以上の各機能は、ソフトウェアとして実現可能である。   Each function described above can be realized as software.

また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピ
ュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現
させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュ
ータ読取り可能な記録媒体として実施することもできる。
The present embodiment can also be implemented as a program for causing a computer to execute predetermined means (or for causing a computer to function as predetermined means, or for causing a computer to realize predetermined functions), The present invention can also be implemented as a computer-readable recording medium on which the program is recorded.

なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除す
る趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の
一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理
的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成
の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは
類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構
成なども可能である。
Note that the configuration illustrated in the embodiment of the present invention is an example, and is not intended to exclude other configurations, and a part of the illustrated configuration may be replaced with another or one of the illustrated configurations. Other configurations obtained by omitting a part, adding another function or element to the illustrated configuration, or combining them are also possible. Also, another configuration that is logically equivalent to the exemplified configuration, another configuration that includes a portion that is logically equivalent to the exemplified configuration, another configuration that is logically equivalent to the main part of the illustrated configuration, and the like are possible. is there. Further, another configuration that achieves the same or similar purpose as the illustrated configuration, another configuration that achieves the same or similar effect as the illustrated configuration, and the like are possible.

また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは
、適宜組み合わせて実施することが可能である。
In addition, various variations of various components illustrated in the embodiment of the present invention can be implemented in appropriate combination.

また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置につ
いての発明、システム全体としての発明、個別装置内部の構成部分についての発明、また
はそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を
包含・内在するものである。
Further, the embodiment of the present invention is an invention of an invention as an individual device, an invention of two or more related devices, an invention of the entire system, an invention of components within an individual device, or a method corresponding thereto. The invention includes inventions according to various viewpoints, stages, concepts, or categories.

従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されること
なく発明を抽出することができるものである。
Therefore, the present invention can be extracted from the contents disclosed in the embodiments of the present invention without being limited to the exemplified configuration.

本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種
々変形して実施することができる。
The present invention is not limited to the embodiment described above, and can be implemented with various modifications within the technical scope thereof.

本発明の一実施形態に係るコンピュータ・ネットワーク・システムの構成例を示す図。The figure which shows the structural example of the computer network system which concerns on one Embodiment of this invention. 同実施形態に係るコンピュータ・ネットワーク・システムの他の構成例を示す図。The figure which shows the other structural example of the computer network system which concerns on the embodiment. 同実施形態に係るコンピュータ・ネットワーク・システムのさらに他の構成例を示す図。The figure which shows the further another structural example of the computer network system which concerns on the embodiment. 同実施形態に係るコンピュータ・ネットワーク・システムの基本概念を示す図。The figure which shows the basic concept of the computer network system which concerns on the embodiment. 同実施形態に係るコンピュータ・ネットワーク・システムの基本概念を示す図。The figure which shows the basic concept of the computer network system which concerns on the embodiment. 同実施の形態のフィンガープリントを示す図。The figure which shows the fingerprint of the embodiment. 同実施の形態のフィンガープリントキャッシュを示す図。The figure which shows the fingerprint cache of the embodiment. 同実施の形態のクライアント側プロキシ30の機能ブロック図。The functional block diagram of the client side proxy 30 of the embodiment. 同実施の形態のサーバ側プロキシ30の機能ブロック図。The functional block diagram of the server side proxy 30 of the embodiment. 同実施形態に係るクライアント側プロキシの手順例を示すフローチャート。6 is a flowchart showing a procedure example of a client side proxy according to the embodiment. 同実施形態に係るサーバ側プロキシの手順例を示すフローチャート。The flowchart which shows the example of a procedure of the server side proxy which concerns on the same embodiment. 同実施形態に係るサーバ側プロキシの手順例を示すフローチャート。The flowchart which shows the example of a procedure of the server side proxy which concerns on the same embodiment. 同実施形態に係るクライアント側プロキシの手順例を示すフローチャート。6 is a flowchart showing a procedure example of a client side proxy according to the embodiment.

符号の説明Explanation of symbols

2…ASPサーバセンター
4…支社
12、16、18…LAN
14…WAN
16…ユーザオフィス内LAN
20…サーバ装置
30…サーバ側プロキシ装置
40…クライアント側プロキシ装置
50…クライアント装置
60…通常プロキシ装置
301,305,401,406…受信部
302,402…ヘッダ解析部
303,403…ヘッダ情報保存部
304,311,405,413…送信部
306,407…ヘッダ判定部
307,414…FP圧縮処理部
308,409…フィンガープリントキャッシュ管理部
309,411…FPキャッシュ
310,404…ヘッダ付加部
312,410…フィンガープリントキャッシュ登録部
408…フィンガープリント圧縮判定部
2 ... ASP server center 4 ... Branch offices 12, 16, 18 ... LAN
14 ... WAN
16 ... LAN in user office
DESCRIPTION OF SYMBOLS 20 ... Server apparatus 30 ... Server side proxy apparatus 40 ... Client side proxy apparatus 50 ... Client apparatus 60 ... Normal proxy apparatus 301,305,401,406 ... Receiving part 302,402 ... Header analysis part 303,403 ... Header information storage part 304, 311, 405, 413 ... transmission unit 306, 407 ... header determination unit 307, 414 ... FP compression processing unit 308, 409 ... fingerprint cache management unit 309, 411 ... FP cache 310, 404 ... header addition unit 312, 410 ... Fingerprint cache registration unit 408 ... Fingerprint compression determination unit

Claims (3)

第1の装置と第2の装置との通信を中継するデータ転送装置において、
キャッシュデータと、該キャッシュデータの識別情報であるキャッシュ識別情報とを関
連付けて記憶する識別情報キャッシュを行う識別情報キャッシュ手段と、
第2の装置への所望データの送信要求を示し、リクエストヘッダを有するリクエストメ
ッセージを、前記第1の装置から受信するリクエスト受信手段と、
前記リクエストヘッダを解析し、識別情報キャッシュを行う識別情報キャッシュ装置を
前記リクエストメッセージが経由してきたか否かを解析する解析手段と、
前記リクエストメッセージが識別情報キャッシュ装置を経由してきたか否かを示す経由
情報を保持する保持手段と、
前記リクエストメッセージを前記第2の装置へ送信するリクエスト送信手段と、
前記リクエストメッセージに対応しリプライヘッダとリプライボディとを有するリプラ
イメッセージを、前記第2の装置から受信するリプライ受信手段と、
前記保持手段に保持された前記経由情報に基づいて、前記リプライメッセージに対応す
る前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたか否かを判定
する判定手段と、
前記キャッシュ識別情報のなかに前記リプライボディ識別情報がある場合に、前記リプ
ライヘッダに、前記リプライメッセージをキャッシュすべきでないことを示すNo−ch
ache情報を与えるNo−chache情報付加手段と、
前記No−chache情報が与えられたリプライヘッダを有するリプライメッセージ
を前記第1の装置へ送信するリプライ送信手段と
を備えることを特徴とするデータ転送装置。
In a data transfer device that relays communication between a first device and a second device,
Identification information cache means for performing an identification information cache for storing cache data in association with cache identification information that is identification information of the cache data;
Request receiving means for receiving a request message having a request header indicating a request for transmitting desired data to the second device from the first device;
Analyzing means for analyzing the request header and analyzing whether the request message has passed through an identification information cache device for performing identification information cache;
Holding means for holding route information indicating whether or not the request message has passed through the identification information cache device;
Request transmission means for transmitting the request message to the second device;
A reply receiving means for receiving a reply message corresponding to the request message and having a reply header and a reply body from the second device;
Determining means for determining whether or not the request message corresponding to the reply message has passed through the identification information cache device based on the route information held in the holding means;
No-ch indicating that the reply message should not be cached in the reply header when the reply body identification information is included in the cache identification information.
No-chae information adding means for giving ache information;
A data transfer apparatus comprising: a reply transmission unit configured to transmit a reply message having a reply header to which the No-chach information is given to the first apparatus.
前記No−chache情報は、HTTPプロトコルを扱うことが可能な装置での前記
リプライメッセージに含まれるデータのキャッシュを禁止する命令であることを特徴とす
る請求項1記載のデータ転送装置。
2. The data transfer apparatus according to claim 1, wherein the No-chach information is an instruction for prohibiting caching of data included in the reply message in an apparatus capable of handling an HTTP protocol.
第1の装置と第2の装置との通信を中継するデータ転送方法において、
識別情報キャッシュ手段に、キャッシュデータと、該キャッシュデータの識別情報であ
るキャッシュ識別情報とを関連付けて記憶する識別情報キャッシュを行い、
リクエスト受信手段で、第2の装置への所望データの送信要求を示し、リクエストヘッ
ダを有するリクエストメッセージを、前記第1の装置から受信し、
解析手段で、前記リクエストヘッダを解析し、識別情報キャッシュを行う識別情報キャ
ッシュ装置を前記リクエストメッセージが経由してきたか否かを解析し、
保持手段で、前記リクエストメッセージが識別情報キャッシュ装置を経由してきたか否
かを示す経由情報を保持し、
リクエスト送信手段で、前記リクエストメッセージを前記第2の装置へ送信し、
リプライ受信手段で、前記リクエストメッセージに対応しリプライヘッダとリプライボ
ディとを有するリプライメッセージを、前記第2の装置から受信し、
判定手段で、前記保持手段に保持された前記経由情報に基づいて、前記リプライメッセ
ージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきた
か否かを判定し、
るNo−chache情報付加手段で、前記キャッシュ識別情報のなかに前記リプライ
ボディ識別情報がある場合に、前記リプライヘッダに、前記リプライメッセージをキャッ
シュすべきでないことを示すNo−chache情報を与え、
リプライ送信手段で、前記No−chache情報が与えられたリプライヘッダを有す
るリプライメッセージを前記第1の装置へ送信することを特徴とするデータ転送方法。
In a data transfer method for relaying communication between a first device and a second device,
An identification information cache that stores cache data and cache identification information that is identification information of the cache data in association with each other is stored in the identification information cache means,
A request receiving means indicates a request to transmit desired data to the second device, receives a request message having a request header from the first device,
Analyzing means, analyzing the request header, analyzing whether the request message has passed through the identification information cache device for performing identification information cache,
Holding means for holding route information indicating whether or not the request message has passed through the identification information cache device;
A request transmission means for transmitting the request message to the second device;
A reply receiving unit receives a reply message corresponding to the request message and having a reply header and a reply body from the second device,
In the determination unit, based on the route information held in the holding unit, determine whether the request message corresponding to the reply message has passed through the identification information cache device,
When the reply body identification information is included in the cache identification information, the reply header is provided with No-chach information indicating that the reply message should not be cached.
A data transfer method characterized in that a reply transmission means transmits a reply message having a reply header provided with the No-chach information to the first device.
JP2006121214A 2006-04-25 2006-04-25 Data transfer apparatus and data transfer method Expired - Fee Related JP4300220B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006121214A JP4300220B2 (en) 2006-04-25 2006-04-25 Data transfer apparatus and data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006121214A JP4300220B2 (en) 2006-04-25 2006-04-25 Data transfer apparatus and data transfer method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001295364A Division JP4053269B2 (en) 2001-09-27 2001-09-27 Data transfer apparatus and data transfer method

Publications (2)

Publication Number Publication Date
JP2006216081A true JP2006216081A (en) 2006-08-17
JP4300220B2 JP4300220B2 (en) 2009-07-22

Family

ID=36979201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006121214A Expired - Fee Related JP4300220B2 (en) 2006-04-25 2006-04-25 Data transfer apparatus and data transfer method

Country Status (1)

Country Link
JP (1) JP4300220B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056479A (en) * 2012-09-13 2014-03-27 Konica Minolta Inc Browser device, browser program, browser system, and image forming apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056479A (en) * 2012-09-13 2014-03-27 Konica Minolta Inc Browser device, browser program, browser system, and image forming apparatus

Also Published As

Publication number Publication date
JP4300220B2 (en) 2009-07-22

Similar Documents

Publication Publication Date Title
JP3990115B2 (en) Server-side proxy device and program
US7636765B2 (en) Data transfer scheme using caching technique for reducing network load
US7383348B2 (en) Data transfer scheme using caching technique for reducing network load
US8024484B2 (en) Caching signatures
US7558854B2 (en) Access relaying apparatus
US20080183838A1 (en) Method, system and computer program product for delivering data to a storage buffer assigned to an application
JP2004164630A (en) Client/server communication system
CN105812351A (en) Method and system for sharing session
JP3984086B2 (en) Cache server, data transfer device, and program
JP3848209B2 (en) Data transfer device, data transfer method and program
KR20090009804A (en) Managing network response buffering behavior
JP4053269B2 (en) Data transfer apparatus and data transfer method
JP4031516B2 (en) Server side proxy device, client side proxy device, data transfer method and program
JP4300220B2 (en) Data transfer apparatus and data transfer method
JP3983987B2 (en) Server-side proxy device, data transfer method, and program
JP3943867B2 (en) Server-side proxy, data transfer method and program
JP3913508B2 (en) Data transfer apparatus and data transfer method
JP3943868B2 (en) Server-side proxy, data transfer method and program
JP2003108464A (en) Device and method for transferring data
JP4041157B2 (en) Client side proxy device, data transfer method and program
JP4157585B2 (en) Server side proxy device, client side proxy device, data transfer method and program
JP3977601B2 (en) Server side proxy device, client side proxy device and program
JP3977651B2 (en) Data transfer method, server side proxy device, client side proxy device and program
JP2002024191A (en) Www system, traffic relief method for www server and www server

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080926

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090327

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090420

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees