JP3977651B2 - Data transfer method, server side proxy device, client side proxy device and program - Google Patents
Data transfer method, server side proxy device, client side proxy device and program Download PDFInfo
- Publication number
- JP3977651B2 JP3977651B2 JP2002031909A JP2002031909A JP3977651B2 JP 3977651 B2 JP3977651 B2 JP 3977651B2 JP 2002031909 A JP2002031909 A JP 2002031909A JP 2002031909 A JP2002031909 A JP 2002031909A JP 3977651 B2 JP3977651 B2 JP 3977651B2
- Authority
- JP
- Japan
- Prior art keywords
- fingerprint
- client
- data
- generation method
- side proxy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、他の装置のためにデータ転送を行うデータ転送方法、データ転送装置及びプログラムに関する。
【0002】
【従来の技術】
ネットワークを介して様々なサービスを提供するサーバと、所望のサービスサーバに対して要求するクライアントとから構成される、クライアント・サーバ型の情報システムが広く利用されている。特に、インターネット上でHTTPプロトコルを使って通信するWEBサーバとクライアントとからなるWORLD WIDE WEBシステム(あるいは単にWEBとも呼ばれる)は、大変広く利用されているクライアント・サーバ型の情報システムである。通常、サーバ上ではサーバ・プログラムが動作し、クライアント上ではブラウザなどの所定のツール(プログラム)が動作する。インターネット上で提供されるサービスの内容も多岐に渡っており、ネットワーク経由で文字、静止画像、動画像、音声等の情報(例えば、ホームページ、電子メール、デジタルコンテンツなど)や、プログラムなどを提供、配信あるいは転送などするサービス、また商品を販売するための電子店舗サービス、座席や部屋等の予約サービス、種々の契約の仲介サービスなど、種々のサービスが既に存在し、また次々と新たな形態のサービスが出現している。
【0003】
ところで、WEBのようなクライアント・サーバ型の情報システムにおいては、提供されるサービスがどのような形態のものであろうと、基本的にはクライアント・サーバ間でデータ転送が行われることによってサービスが提供される。したがって、クライアントとサーバとの間で通信に用いるネットワークの容量(バンド幅)が、システム全体のボトルネックになりやすい。そこで、通常、ネットワークの負荷を軽減させるためにキャッシュ技術が用いられる。
【0004】
WEBシステムの場合、クライアント上で動作するブラウザ等はキャッシュ機構を使用するものが多く、最近アクセスしたデータをキャッシュしている。WEBではURLと呼ばれる名前で情報やサービスを指定してアクセスがなされるので、クライアント上のキャッシュは、過去にWEBサーバに要求した情報やサービスの結果として返されるデータのうちでキャッシュ可能なものを、そのURLと対応させてキャッシュに記録している。この場合、キャッシュ内にあるものと同じURLの情報やサービスのリクエストがあった際に、そのキャッシュ内の応答データが古くなっていないと判断できるならば、そのデータを返すことで、WEBサーバとの間の通信を無くすことができる。
【0005】
企業のオフィス内のLANあるいは研究機関におけるLANあるいは家庭内のLANなどで複数のユーザがいる場合、該LANとインターネットとの間にプロキシサーバを置き、プロキシサーバにキャッシュ機構を設けるようにすることも多い。クライアント内のキャッシュ(例えば、ブラウザのキャッシュ)は、当該クライアント・ユーザに専用のキャッシュとして動作するが、LAN上のプロキシサーバのキャッシュは、複数のクライアント・ユーザに共有のキャッシュとして動作する。そのため、後者では、過去に他人(他クライアント)がアクセスしたURLに対してアクセスする際にもキャッシュが効く。
【0006】
さて、WEBにおいて、クライアントとサーバとの間は、HTTPと呼ぶプロトコルで通信が行われる。HTTPプロトコルは、クライアントからサーバへ送る「リクエストメッセージ」と、それに答えてサーバからクライアントへ応答を返す「リプライメッセージ」とが組になっている。
【0007】
リクエストメッセージは、「リクエストヘッダ」と「リクエストボディ」からなる。リクエストヘッダには、アクセスしたい情報やサービスを指定するURLやアクセスの種類を示すメソッド名、その他アクセスに必要な各種の情報が入る。リクエストボディには、サーバに送るデータを入れる。リクエストボディに入っているデータを「リクエストデータ」とも呼ぶ。
【0008】
リプライメッセージは、「リプライヘッダ」と「リプライボディ」からなる。
リプライヘッダには、処理結果のステータスなどの情報が入り、リプライボディには要求された情報や要求されたサービスの処理結果などのデータが入る。リプライボディに入っているデータを「リプライデータ」とも呼ぶ。
【0009】
リクエストメッセージのメソッドとしては、サーバ上の情報を読み出す「GETメソッド」、ユーザの持つデータをサーバに書き込む「PUTメソッド」、リクエストに応じて処理した結果を送り返してもらう「POSTメソッド」が、情報やサービスのアクセスに用いられる主要なものである。その他、DELETEなどのメソッドが定義されている。
【0010】
多くの場合、GETメソッドのリクエストメッセージのリクエストボディ、PUTメソッドのリプライメッセージのリプライボディは空である。POSTメソッドのリクエストメッセージのリクエストボディには、必要に応じてサーバ側での処理に用いる情報が入り、POSTメソッドのリプライメッセージのリプライボディには、その処理の結果のデータが入る。
【0011】
GETメソッドでサーバから読み出すデータは、読み出す毎にサーバ側で生成する「動的データ」と、既にサーバ側で記憶しているデータをそのまま送り返す「静的データ」に分けることができる。これらのうち、動的データについては、同じURLでも読み出す度に内容が異なる可能性があるので、多くの場合、サーバはキャッシュ不可の指定をそのリプライメッセージのヘッダに入れて送り返す。したがって、WEBのデータでキャッシュの対象になるのは、静的データの部分である。この静的データは、不特定多数のユーザが参照して構わない「共有データ」と、ユーザ認証することで特定のユーザだけがアクセスできるようにアクセス制御を行う「プライベートデータ」に分けることができる。前者の共有データは、どのようなキャッシュでもキャッシュ可能である。しかしながら、後者のプライベートデータは、プロキシサーバなどの共有キャッシュでは、キャッシュ不可である(プライベートデータは必ずサーバでユーザを認証して送り返す必要があるので)。ただし、ブラウザなどの個人専用のキャッシュの場合には、プライベートデータでもキャッシュは可能である。
【0012】
POSTメソッドは、サーバ側で処理をした結果を返すので、一般的にサーバはキャッシュ不可の指定をリプライメッセージのヘッダに入れて結果を送り返す。そのため、通常はキャッシュの対象にはならない。
【0013】
PUTメソッドは、データをサーバに送るものなので、キャッシュは何も処理をしない。
【0014】
【発明が解決しようとする課題】
従来のWEBのキャッシュは、静的コンテンツをキャッシュの対象にしている。かつては、WEBで公開される情報やサービスには、情報の更新頻度がそれほど高くなく、不特定多数の人に公開されているものが多かったため、静的コンテンツの割合は非常に高く、従来のキャッシュ技術でもネットワークの負荷の軽減に有効であった。
【0015】
しかしながら、WEBベースのASP(Application Service Provider)のように、ユーザがWEBブラウザを使って、ネットワーク経由でサーバ上の情報やサービスにアクセスするシステムが普及するにつれて、下記のように従来のキャッシュ技術では対応できないデータが増加している。
・ユーザの認証を行い、アクセスできるユーザを制限しているので、プライベートデータが多い。
・バックエンドのデータベースを参照して生成する動的データが多い。
・帳票処理や検索などPOSTメソッドを使う場合が多い。
・グループ内の情報共有のためにPUTメソッドを使う場合が多い。
この結果、キャッシュ技術のみではネットワークの負荷を軽減する手法として有効に機能しなくなってきている。
【0016】
本発明は、上記事情を考慮してなされたもので、データ転送装置間を接続するネットワークの負荷をより軽減することができるキャッシュ技術・圧縮技術を備えたデータ転送方法、データ転送装置及びプログラムを提供することを目的とする。
【0017】
【課題を解決するための手段】
本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信され、複数のクライアント装置それぞれの前記複数のサーバ装置へのアクセスの代理を担当するクライアント側プロキシ装置に中継された、複数のリクエストデータを受信して前記複数のサーバのうち該リクエストデータの宛先たるサーバ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置の代理であるクライアント側プロキシ装置へ転送するサーバ側プロキシ装置のデータ転送方法であって、前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを前記サーバ装置から受信し、前記リプライデータのフィンガープリントを生成し、生成した前記フィンガープリントと該フィンガープリントの生成方法を示す生成方法識別子とを、該フィンガー プリントの元であった前記リプライデータに関連付けてフィンガープリント・キャッシュとして保持し、前記複数のクライアント側プロキシ装置のうちの或クライアント側プロキシ装置から転送された或リクエストデータへの返答である或リプライデータをも受信し、前記或リプライデータのフィンガープリントである或フィンガープリントを或生成方法で生成し、前記或フィンガープリントが前記或生成方法を示す或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されているか否か判定し、前記或フィンガープリントが前記或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていると前記判定手段が判定した場合に、前記或リプライデータの代わりに前記或フィンガープリントと前記或生成方法識別子とを前記或クライアント装置宛として前記或クライアント側プロキシ装置へ送信し、前記或フィンガープリントが前記或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていないと前記判定手段が判定した場合に、前記或フィンガープリントと前記或生成方法識別子と前記或リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記或リプライデータと前記或生成方法識別子とを前記或クライアント装置宛として前記或クライアント側プロキシ装置へ送信することを特徴とする。
【0018】
また本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信された複数のリクエストデータを受信して、該リクエストデータの宛先たるサーバ装置へのアクセスの代理を担当するサーバ側プロキシ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記サーバ側プロキシ装置を介して前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置へ転送するクライアント側プロキシ装置のデータ転送方法であって、前記クライアント装置から送信されるリクエストデータへの前記サーバ装置からの返答であるリプライデータと該リプライデータのフィンガープリントの生成方法を示す生成方法識別子とを前記サーバ側プロキシ装置から受信し、前記フィンガープリントと前記リプライデータと前記生成方法識別子とを互いに関連付けてフィンガープリント・キャッシュとして保持し、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータから生成された或フィンガープリントと該或フィンガープリントの生成方法を示す或生成方法識別子とを前記サーバ側プロキシ装置から受信した場合に、前記或フィンガープリントと前記或生成方法識別子とに関連付けられて前記フィンガープリント・キャッシュに保持されているリプライデータを前記或クライアント装置へ送信し、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータと該或リプライデータから生成する或フィンガープリントの生成方法を示す或生成方法識別子とを前記サーバ側プロキシ装置から受信した場合に、前記或フィンガープリントと前記或生成方法識別子と前記或リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記或リプライデータを前記或クライアント装置へ送信することを特徴とする。
【0019】
また本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信され、複数のクライアント装置それぞれの前記複数のサーバ装置へのアクセスの代理を担当するクライアント側プロキシ装置に中継された、複数のリクエストデータを受信して前記複数のサーバのうち該リクエストデータの宛先たるサーバ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置の代理であるクライアント側プロキシ装置へ転送するサーバ側プロキシ装置であって、前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを、前記サーバ装置から受信し、さらに、前記複数のクライアント側プロキシ装置のうちの或クライアント側プロキシ装置から転送された或リクエストデータへの返答である或リプライデータをも受信する受信手段と、前記リプライデータのフィンガープリントを生成し、さらに前記或リプライデータのフィンガープリントである或フィンガープリントを或生成方法で生成するフィンガー プリント生成手段と、生成した前記フィンガープリントと該フィンガープリントの生成方法を示す生成方法識別子とを、該フィンガープリントの元であった前記リプライデータに関連付けてフィンガープリント・キャッシュとして保持する保持手段と、前記或フィンガープリントが前記或生成方法を示す或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されているか否か判定する判定手段と、前記或フィンガープリントが前記或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていると前記判定手段が判定した場合に、前記或リプライデータの代わりに前記或フィンガープリントと前記或生成方法識別子とを前記或クライアント装置宛として前記或クライアント側プロキシ装置へ送信し、前記或フィンガープリントが前記或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていないと前記判定手段が判定した場合に、前記或フィンガープリントと前記或生成方法識別子と前記或リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記或リプライデータと前記或生成方法識別子とを前記或クライアント装置宛として前記或クライアント側プロキシ装置へ送信する送信手段とを備えたことを特徴とする。
また本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信された複数のリクエストデータを受信して、該リクエストデータの宛先たるサーバ装置へのアクセスの代理を担当するサーバ側プロキシ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記サーバ側プロキシ装置を介して前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置へ転送するクライアント側プロキシ装置であって、前記クライアント装置から送信されるリクエストデータへの前記サーバ装置からの返答であるリプライデータと該リプライデータのフィンガープリントと該フィンガープリントの生成方法を示す生成方法識別子とを前記サーバ側プロキシ装置から受信し、さらに、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータから生成された或フィンガープリントと該或フィンガープリントの生成方法を示す或生成方法識別子とをも前記サーバ側プロキシ装置から受信する受信手段と、前記フィンガープリントと前記リプライデータと前記生成方法識別子とを互いに関連付けてフィンガープリント・キャッシュとして保持する保持手段と、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータから生成された或フィンガープリントと該或フィンガープリントの生成方法を示す或生成方法識別子とを前記サーバ側プロキシ装置から受信した場合に、前記或フィンガープリントと前記或生成方法識別子とに関連付けられて前記フィンガープリント・キャッシュに保持されているリプライデータを前記或クライアント装置へ送信し、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータと該或リプライデータから生成する或フィンガープリントの生成方法を示す或生成方法識別子とを前記サーバ側プロキシ装置から受信した場合に、前記或フィンガープリントと前記或生成方法識別子と前記或リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記或リプライデータを前記或クライアント装置へ送信する送信手段とを備えたことを特徴とする。複数のクライアント装置それぞれから複数のサーバ装置宛に送信され、複数のクライアント装置それぞれの前記複数のサーバ装置へのアクセスの代理を担当するクライアント側プロキシ装置に中継された、複数のリクエストデータを受信して前記複数のサーバのうち該リクエストデータの宛先たるサーバ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置の代理であるクライアント側プロキシ装置へ転送するサーバ側プロキシ装置としてコンピュータを機能させるためのプログラムであって、前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを、前記サーバ装置から受信し、さらに、前記複数のクライアント側プロキシ装置のうちの或クライアント側プロキシ装置から転送された或リクエストデータへの返答である或リプライデータをも受信する受信手段、前記リプライデータのフィンガープリントを生成し、さらに前記或リプライデータのフィンガープリントである或 フィンガープリントを或生成方法で生成するフィンガープリント生成手段、生成した前記フィンガープリントと該フィンガープリントの生成方法を示す生成方法識別子とを、該フィンガープリントの元であった前記リプライデータに関連付けてフィンガープリント・キャッシュとして保持する保持手段、前記或フィンガープリントが前記或生成方法を示す或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されているか否か判定する判定手段、前記或フィンガープリントが前記或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていると前記判定手段が判定した場合に、前記或リプライデータの代わりに前記或フィンガープリントと前記或生成方法識別子とを前記或クライアント装置宛として前記或クライアント側プロキシ装置へ送信し、前記或フィンガープリントが前記或生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていないと前記判定手段が判定した場合に、前記或フィンガープリントと前記或生成方法識別子と前記或リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記或リプライデータと前記或生成方法識別子とを前記或クライアント装置宛として前記或クライアント側プロキシ装置へ送信する送信手段、としてコンピュータを機能させる。
また本発明は、複数のクライアント装置それぞれから複数のサーバ装置宛に送信された複数のリクエストデータを受信して、該リクエストデータの宛先たるサーバ装置へのアクセスの代理を担当するサーバ側プロキシ装置へ転送し、前記リクエストデータへの返答として前記サーバ装置から前記サーバ側プロキシ装置を介して前記クライアント装置宛に送信されるリプライデータを該リプライデータの宛先たるクライアント装置へ転送するクライアント側プロキシ装置としてコンピュータを機能させるためのプログラムであって、前記クライアント装置から送信されるリクエストデータへの前記サーバ装置からの返答であるリプライデータと該リプライデータのフィンガープリントと該フィンガープリントの生成方法を示す生成方法識別子とを前記サーバ側プロキシ装置から受信し、さらに、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータから生成された或フィンガープリントと該或フィンガープリントの生成方法を示す或生成方法識別子とをも前記サーバ側プロキシ装置から受信する受信手段、前記フィンガープリントと前記リプライデータと前記生成方法識別子とを互いに関連付けてフィンガープリント・キャッシュとして保持する保持手段、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータから生成された或フィンガープリントと該或フィンガープリントの生成方法を示す或生成方法識別子とを前記サーバ側プロキシ装置から受信した場合に、前記或フィンガープリントと前記或生成方法識別子とに関連付けられて前記フィンガープリント・キャッシュに保持されているリプライデータを前記或クライアント装置へ送信し、前記複数のクライアント装置のうちの或クライアント装置から送信された或リクエストデータへの返答である或リプライデータと該或リプライデータから生成する或フィンガープリントの生成方法を示す或生成方法識別子とを前記サーバ側プロキシ装置から受信した場合に、前記或フィンガープリントと前記或生成方法識別子と前記或リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記或リプライデータを前記或クライアント装置へ送信する送信手段、としてコンピュータを機能させる。
【0020】
本発明によれば、データ転送装置間でデータとその圧縮データとその圧縮データを生成した方式名とを対応付けて保持し、これらの対応を保持しているデータについては、データを転送する代わりにその圧縮データと方式名を転送することで、特に、方式のバージョンアップや複数の方式名が混在する場合であっても、データ転送装置間の転送データ量を削減することができる。
【0021】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0022】
以下では、WANがインターネットであり、クライアントはユーザオフィスLANに接続されたものであり、HTTPプロトコルが使用されるような場合を例にとって説明するが、もちろん、本発明は、WANがインターネット以外のものであっても、クライアントがオフィス以外の例えば家庭内LAN等に設置されたものであっても、HTTPプロトコル以外のプロトコルが使用されるものであっても適用可能である。
【0023】
図1に本発明を適用するコンピュータ・ネットワーク・システムの基本的な構成例を示す。この構成例では、ASPサーバセンター2内のローカルエリアネットワーク(LAN)12と、ユーザオフィス4内のローカルエリアネットワーク(LAN)16との間が、インターネットや専用回線などの広域ネットワーク(WAN)14を介して接続されており、ASPサーバセンター2内のサーバ20と、ユーザオフィス4内のクライアント50とが、LAN12・WAN14・LAN16を介して通信可能になっている。ASPサーバセンター内LANには1または複数のサーバが接続され、ユーザオフィス内LANには1または複数のクライアントが接続される。
【0024】
WEBベースのASPは、サーバセンター2に設置したサーバ20から、WAN14を介して、様々なアプリケーションプログラムによるサービスを提供し、ユーザはオフィス4に設置されたクライアント上のWEBブラウザ等を使ってそれらのサービスにアクセスする。
【0025】
このような利用形態においては、ユーザオフィス内LAN16とサーバセンター内LAN12とをつなぐネットワーク、特にインターネットなどの広域ネットワーク14の実効的な通信容量(バンド幅)は、サーバセンター内LAN12やユーザオフィス内LAN16よりも低く、そこが性能上のボトルネックになって通信遅延が発生し、アプリケーションの応答性能が低下するという問題が発生する。
【0026】
そこで、本実施形態では、図2に示すように、サーバセンター内LAN12とユーザオフィス内LAN16とをつなぐ広域ネットワーク14の両端に、サーバ側プロキシ30およびクライアント側プロキシ40という2つのモジュールを設置し、それらの間で後述するフィンガープリント圧縮(FP圧縮)を行って通信データ量を低減することで、広域ネットワークのボトルネックを解消する。
【0027】
本実施形態のサーバ20、サーバ側プロキシ30、クライアント側プロキシ40、クライアント50は、いずれも、計算機上でソフトウェア(サーバ・プログラム、サーバ側プロキシ・プログラム、クライアント側プロキシ・プログラム、クライアント・プログラム)を動作させる形で実現することができる。この場合に、必要に応じて計算機所望の機能を有するOSやドライバソフト、パケット通信用ソフト、暗号ソフト等といったソフトウェア、あるいは通信インタフェース装置や外部記憶装置や入出力装置等といったハードウェアが搭載あるいは接続される。また、この場合に、ユーザあるいは管理者からの情報の入力やユーザへの情報の呈示等のために、グラフィカル・ユーザ・インタフェース(GUI)を用いると好ましい。
【0028】
サービスを利用するためにユーザが使用するクライアント50上では、その目的に応じて例えばWEBブラウザ等のプログラムが動作する。ユーザは、例えば、WEBブラウザからインターネットを介し情報転送あるいは注文受付等の所望のサービスを提供するサーバにリクエストメッセージを出し、リプライメッセージを受けることによって、またはこれを適宜繰り返すことによって、サービスを利用する。もちろん、WEBブラウザ等の汎用のソフトウェアではなく、特定のサービスを利用するための専用のソフトウェアなどの他のものが用いられても構わない。また、クライアントは、汎用の計算機ではなく、例えばインターネット機能を有する携帯電話端末等でもよい。
【0029】
サーバ20上では、所定のサーバ・プログラムが動作し、クライアント20のユーザに対して、当該サーバ・サイトに固有のサービスを提供する。
【0030】
サーバ側プロキシ30は、図2のように、サーバセンター内LAN12とWAN14との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図3のように、サーバセンター内LAN12上に設置して実施することもできる。また、図4のように、サーバ側プロキシ30の機能をサーバ20に内蔵するように実施することもできる。
【0031】
同様に、クライアント側プロキシ40は、図2のように、ユーザオフィス内LAN16とWAN14との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図3のように、ユーザオフィス内LAN16上に設置して実施することもできる。また、図4のように、クライアント側プロキシ40の機能をクライアント50上で動作するブラウザ等に内蔵するように実施することもできる。あるいは、ブラウザ等の動作するクライアント50上に、個人用のクライアント側プロキシ40を動作させるように実施することもできる。
【0032】
なお、サーバ側プロキシ30とクライアント側プロキシ40とは、図2〜図4などのように同じ形態であってもよいし、異なる形態であってもよい。
【0033】
本実施形態のサーバ側プロキシ30およびクライアント側プロキシ40は、いずれも、フィンガープリント・キャッシュ(FPキャッシュ)と呼ぶキャッシュ機構を持つ。フィンガープリント・キャッシュは、フィンガープリント(FP)と呼ぶ名前によって、HTTPプロトコルでやりとりされるデータを記録・管理する。
【0034】
フィンガープリントは、図5に例示するように、HTTPプロトコルでやり取りされるデータ(図5の例ではコンテンツ)の内容から、あらかじめ決められた計算方法(図5の例ではハッシュ関数)で決定される、短い数値である。この数値は、可変長でもよいが、処理の容易さの観点では、固定長の数値の方が扱いやすい。
【0035】
フィンガープリントの計算方法としては、良く知られている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に対してそれぞれ計算したハッシュ値が同じになる場合があるが、その確率は実用上無視できるくらいに小さい)。
【0036】
本実施形態において、全てのサーバ側プロキシ30と全てのクライアント側プロキシ40に、単一の(所定の)フィンガープリントの計算方法を適用することができれば、該計算方法を意識することなく、扱える。しかしながら、現実的には、先に示したようにWAN14は、開かれた世界であるインターネットを想定しているから、本実施形態のサーバ側プロキシ30やクライアント側プロキシ40以外の様々な装置が接続されたり、また、本実施形態のサーバ側プロキシ30やクライアント側プロキシ40が接続されたとしても、個々の事情により、該計算方法が異なるものが用いられる可能性が高い。
【0037】
そこで、図6(a)に示すように、サーバ側プロキシ30やクライアント側プロキシ40の持つフィンガープリント・キャッシュ(図中の60)は、過去にHTTPプロトコルでやり取りされたデータ本体(図中の61)を、そのデータから計算して求めたフィンガープリントの値(図中の62)を名前として、記録・管理するとともに、更に、どのフィンガープリント方式で計算されたかを示すフィンガープリント方式(図中の63)も同時に管理している。図6(a)では、フィンガープリント62とデータ本体61ごとにフィンガープリント方式63を管理しているが、この方式に限定されるものではなく、例えば図6(b)のようにフィンガープリント方式63ごとにフィンガープリント62とデータ本体61を管理する方式でもよい。図6(b)の方式ではフィンガープリント62からデータ本体61を検索する場合、フィンガープリントの計算方式が分かれば、異なる計算方式のデータを検索する必要がないためより高速な処理が可能となる。
【0038】
このようなフィンガープリント・キャッシュ方式を適用し、例えばHTTPプロトコルでサーバ側プロキシ30からクライアント側プロキシ40へデータを転送するときに、サーバ側プロキシ30は、当該データのフィンガープリントを指定された計算方式で計算し、そのフィンガープリントに対応するデータがフィンガープリント・キャッシュに入っていれば、当該データ(と同じ内容のデータ)は過去に転送したことがあるので、当該データを転送せずに、対応するフィンガープリントの値と計算方式とを転送する。フィンガープリントの値と計算方法とを受け取ったクライアント側プロキシ40は、当該計算方法で当該フィンガープリントの値に対応するデータをフィンガープリント・キャッシュから取り出すことで、転送すべきデータを再現することができる。このような方式(すなわち、データ圧縮→データ転送→データ解凍)により、過去に送ったものと同じデータならば計算方法とフィンガープリントの値を送るだけでよいので、ネットワークを流れるデータ量を大幅に削減することができる。
【0039】
説明上、サーバ側プロキシ30とクライアント側プロキシ40との間でのデータ転送にあたり、フィンガープリント・キャッシュを利用してメッセージ・ボディーのデータをフィンガープリントに置き換えて転送情報量を圧縮することを、フィンガープリント圧縮(FP圧縮)と呼ぶものとする。
【0040】
なお、サーバ側プロキシ30とクライアント側プロキシ40との間において、すべてのメッセージをFP圧縮の適用対象(すなわち、フィンガープリント・キャッシュを利用してデータをフィンガープリントに置き換えるための処理を行う対象)としてもよいが、例えばフィンガープリント・キャッシュの効果が期待できないものなどに対する適用を除外するために、予め定められた条件を満たすメッセージについては、これをFP圧縮の適用対象外とする(常にFP圧縮しないで転送する)ようにしてもよい。
【0041】
この場合の予め定められた条件とは、例えば、メッセージ・ヘッダに予め定められた情報が記述されていることである。具体的には、例えば、メッセージ・ヘッダにGETメソッドを示す情報およびリクエストを示す情報が記述されていることである。また、予め定められた条件の他の例としては、転送されるデータが空(null)あるいは非常に短いサイズであることである。
【0042】
もちろん、それらの他にも種々のバリエーションがある。また、複数の条件を組み合わせて使用するようにしてもよい。
【0043】
次に、図7〜図13を参照しながら、サーバ側プロキシ30とクライアント側プロキシ40との間でデータ転送する際の(FP圧縮の適用対象のメッセージについての)プロキシ間メッセージ・フォーマットについて説明する。
【0044】
サーバ側プロキシ30とクライアント側プロキシ40との間でデータ転送する場合、FP圧縮の適用対象のメッセージには、データがFP圧縮されてフィンガープリントに置き換えられたメッセージ(圧縮時のメッセージ)と、FP圧縮されておらず、データが搭載されているメッセージ(非圧縮時のメッセージ)とがある。
【0045】
非圧縮時のメッセージ・フォーマットは、メッセージに含まれるデータがフィンガープリント・キャッシュに登録されていない場合に使用される。一方、圧縮時のメッセージ・フォーマットは、メッセージに含まれるデータがフィンガープリント・キャッシュに登録されている場合に使用される。
【0046】
解凍側(受信側)では、非圧縮時のフォーマットのメッセージを受信したことを契機として、当該データについてフィンガープリント・キャッシュへの登録を行うことができる。
【0047】
図7に、メッセージ・フォーマットの一例を示す。(a)は非圧縮時のメッセージであり、(b)は圧縮時のメッセージである。各ヘッダ部には、通常のリプライメッセージで用いられる各種ヘッダ情報の他に、このメッセージがFP方式によって圧縮されたもので有るか否かを示す識別情報を含んでいる。この例においては、(a)の識別情報が非圧縮時のメッセージを示す、“0”であり、(b)の識別情報が圧縮時のメッセージを示す、“1”となっている。一方、ボディ部は、非圧縮時と圧縮時とでは異なっている。すなわち、図7(a)の非圧縮時のボディ部は、データが載せられ、図7(b)の圧縮時のボディ部は、データの代わりにFPの計算方式を示すFP方式とその計算方式で求められたフィンガープリント(FP)値とが載せられる。
【0048】
また、非圧縮時には、図7(a)に代えて、図7(a’)に示すようにボディ部のデータに加えてフィンガープリント方式とフィンガープリントとを含ませるようにしてもよい。このようにすれば、解凍側で当該データについてフィンガープリント・キャッシュの登録を行う際に、該フィンガープリントを利用することによって、あらためて当該データからフィンガープリントを求める手間が省ける。
【0049】
また、クライアント側プロキシ40が、メッセージ・フォーマットの転送時に利用される所定のFP方式がわかっている場合には、図7(a’)のメッセージ・フォーマットからFP方式を除いたメッセージ・フォーマット(図示しない)にしても良い。同様に図7(b)のメッセージ・フォーマットからFP方式を除いたメッセージ・フォーマット(図示しない)にしても良い。
【0050】
ここで、図8に図7(a)のフォーマットのメッセージの具体例を示し、図9に図7(a’)のフォーマットのメッセージの具体例を示し、図10に図7(b)のフォーマットのメッセージの具体例を示す。各図のヘッダ部中の“Fingerprint−Mode:…”が識別情報に相当し、図9、図10のボディ部中の“Fingerprint−Type:…”がFP方式に、ボディ部中の“6E39…0128”がフィンガープリントに相当する。
【0051】
図11に、メッセージ・フォーマットの他の例を示す。(a)は非圧縮時のメッセージであり、(b)は圧縮時のメッセージである。図11(a)は、図7(a)と同じフォーマット形式で、ボディ部にはデータが載せられるが、図11(b)ではメッセージ・ボディーは空(null)である。また、図11(b)はヘッダ部にフィンガープリント(FP)の計算方式と、FP値が記述される。通常のヘッダ情報とFP圧縮の有無を識別可能とする識別情報とについては上記の例と同様である。
【0052】
また、非圧縮時には図11(a)に代え、FP方式及びフィンガープリントをヘッダ部に備える図11(a’)のメッセージ・フォーマットを用いる方法もある。
【0053】
なお、クライアント側プロキシ40がメッセージ・フォーマットの転送時に利用されるFP方式がわかっている場合には、図11(a’)のメッセージ・フォーマットからFP方式を除いたメッセージ・フォーマット(図示しない)にしても良い。同様に図11(b)のメッセージ・フォーマットからFP方式を除いたメッセージ・フォーマット(図示しない)にしても良い。
【0054】
図11(a)のフォーマットのメッセージの具体例は、先に示した図8と同じとなる。また、図11(b)のフォーマットのメッセージの具体例を図12で示し、図11(a‘)のフォーマットのメッセージの具体例を、図13で示す。
【0055】
以下では、上記で説明してきた本発明の実施形態を具現化したシステム構成例を説明する。
【0056】
クライアント50からサーバ20のWebページへアクセスされる場合、クライアント50とサーバ20とのコネクションが確立した後、サーバ20とクライアント50との間で、大きく分けると図14に示すように3つの処理が行なわれる。
【0057】
まず、クライアント50とサーバ20との間の各装置間(ここでは、クライアント50−クライアント側プロキシ間40、クライアント側プロキシ40−サーバ側プロキシ間30、サーバ側プロキシ30−サーバ20間)では、接続に必要な各種情報の交換等の初期化処理が行なわれる。
【0058】
次に、クライアント50からサーバ20へWebページのコンテンツを要求するためのリクエストメッセージ処理(以下、リクエスト処理)が行なわれる。
このリクエスト処理は、クライアント50からサーバ20への一方向へ、リクエストメッセージが転送されるものである。
【0059】
このリクエストメッセージに対応して、サーバ20からクライアント50への一方向へ、要求のあったWebページのコンテンツを転送するリプライメッセージ処理が行なわれる。
【0060】
なお、上記の各処理が上手く行かなかったときには、別の処理が行なわれる(例えば、リプライメッセージ処理が上手く行かなかったときに、再リクエストメッセージ処理が行なわれる)が、本発明の実施形態には直接関係するものではないので、説明を省略する。
【0061】
以下では、上記の初期化処理およびリクエスト処理と、リプライ処理とに分けて、サーバ側プロキシ30およびクライアント側プロキシ40間の本発明に係る点について詳細に説明する。なお、各処理において、サーバ側プロキシ30およびクライアント側プロキシ40間を除いては、従来から行なわれている各処理と何ら変更がない(既存通りの)ため説明を省略する。
【0062】
まず、初期化処理およびリクエスト処理の際の、本発明の実施形態に係る部分について、図15〜図18にて機能ブロックをそれぞれ例示し、説明する。
【0063】
図15において、クライアント側プロキシ40は、自身が所有するフィンガープリントの計算方式が示されているFP方式リストを記憶するFPリスト記憶部71を備えている。このクライアント側プロキシ40のFP方式リストは、クライアント側プロキシ40に新たなフィンガープリント計算方式が図示しない記憶装置に記憶(インストール)される際にそのFP方式名が追加され、クライアント側プロキシ40の該記憶装置に記憶されているフィンガープリント計算方式を削除(アンインストール)する際にFP方式名も削除される。
【0064】
同様に、サーバ側プロキシ30も、自身が所有するフィンガープリントの計算方式が示されているFP方式リストを記憶するFPリスト記憶部75を備えている。このサーバ側プロキシ30のFP方式リストも、サーバ側プロキシ30に新たなフィンガープリント計算方式が図示しない記憶装置に記憶(インストール)される際にそのFP方式名が追加され、サーバ側プロキシ30の該記憶装置に記憶されているフィンガープリント計算方式をプリント計算方式を削除(アンインストール)する際にFP方式名も削除される。
【0065】
初期化処理時には、サーバ側プロキシ30とクライアント側プロキシ40との間で、本接続時における、リプライメッセージの転送時に新たなメッセージからフィンガープリントを生成する場合のフィンガープリントの計算方式の取り決めがなされる。
【0066】
図15において、まず、クライアント側プロキシ40のFPリスト記憶部71からクライアント側プロキシ40のFP方式リストを読み出し、送信部72により、サーバ側プロキシ30へ送信する。サーバ側プロキシ30は、このクライアント側プロキシ40のFP方式リストを受信部73で受信し、FP方式決定部74へ供給する。また、FPリスト記憶部75からサーバ側プロキシ30のFP方式リストをFP方式決定部74へ供給する。
【0067】
FP方式決定部74は、サーバ側プロキシ30のFP方式リストと、クライアント側プロキシ40のFP方式リストとから、両者で一致するフィンガープリント計算方式名を1つ選択する。この選択は、例えば、クライアント側プロキシ40が保有するFP方式リスト72内の各FP方式に優先度を予め付けておき、前記で選択可能なもの中から一番優先度の高いものを選択するようにすればよい。
また、両者で一致するものがない場合には、無しを意味する“Null”を選択する。なお、ここでは一つ選択するとしたが、優先度を付加して複数選択するようにしても良い。
【0068】
選択したフィンガープリントの計算方式名(Nullを含む)は、FP方式登録部76へ一時登録する。また、この選択した計算方式名を送信部77を介して、クライアント側プロキシ40へ通知する。
【0069】
クライアント側プロキシ40の受信部78は、この選択された計算方式をFP方式登録部79へ一時登録(Nullを含む)する。これにより、クライアント側プロキシ40とサーバ側プロキシ30とは、本接続時に用いるフィンガープリントの計算方式(もしくは一致するFP方式が無いこと)がわかるようになる。
【0070】
初期化処理が終了するとリクエスト処理が行なわれる。クライアント側プロキシ40は、クライアント50からのリクエストメッセージを受信部80で受信し、そのまま、送信部81からサーバ側プロキシ30へ転送する。サーバ側プロキシ30は、転送されたリクエストメッセージを受信部82で受信し、そのまま、送信部83を介して、サーバ20へ転送する。ここで示したリクエスト処理は、従来の構成における処理と同等である。
【0071】
なお、便宜上、サーバ側プロキシ30の受信部73と受信部82とは異なるブロックで記載しているが、同じもので構成してよいことは勿論である。更に、サーバ側プロキシ30の送信部77と送信部83も異なるブロックで記載しているが、同じもので構成してよいことは勿論である。また、クライアント側プロキシ40の各受信部78、80および各送信部72、81についても同様であって良い。
【0072】
図16は、初期化処理およびリクエスト処理の際の、本発明の実施形態に係る部分について、図15とは異なる別の例を示したものである。
【0073】
図16の初期化処理は、図15の初期化処理と比較して、サーバ側プロキシ30にて、決定したフィンガープリントの計算方式名をサーバ側プロキシ30で一時登録しない点が異なっている。代わりに、クライアント側プロキシ40は、リクエスト処理時に、初期化処理時に決定され登録されたFP方式名をFP方式登録部79から読み出して、このFP方式名をクライアント50からのリクエストメッセージに付加するFP方式付加部84を新たに備えている。FP方式付加部84にてFP方式名が付加されたリクエストメッセージは、サーバ側プロキシ30に新たに追加したFP方式分離部85で、FP方式名が分離される。分離されたFP方式名は、図15と同様のサーバ側プロキシ30のFP方式登録部76に一時登録される。
【0074】
なお、この図16の場合には、リクエスト処理が行なわれて初めて、サーバ側プロキシ30が、決定されたフィンガープリントの計算方式を知ることになる。
また、両者で一致するFP方式がない場合には、Nullとして扱うことは図15の説明と同様である。また、FP方式名を一つ選択するとしたが、図15の説明と同様に優先度を付加して複数選択するようにしても良い。
【0075】
図17は、初期化処理およびリクエスト処理の際の、本発明の実施形態に係る部分について、図15および図16とは異なる更なる別の例を示したものである。
【0076】
図17の初期化処理は、図15の初期化処理と比較して、サーバ側プロキシ30にて、決定したフィンガープリントの計算方式名を、クライアント側プロキシ40へ送信しない点(かつ登録しない点)が異なっている。また、リクエスト処理は、何ら変更点がない。なお、両者で一致するFP方式がない場合には、Nullとして扱うことは図15と同様である。また、FP方式名を一つ選択するとしたが、図15の説明と同様に優先度を付加して複数選択するようにしても良い。
【0077】
この図17の場合には、リクエスト処理が終了しても、クライアント側プロキシ40は、決定されているフィンガープリントの計算方式名を知らないことになる。なお、フィンガープリントの計算は、後述するリプライ処理時に行なわれるので、その計算時までにわかれば良い。
【0078】
なお、図15〜図17は、何れもサーバ側プロキシ30でFP方式を決定していたが、これとは全く逆で、サーバ側プロキシ30のFP方式リストをクライアント側プロキシ40へ送信し、クライアント側プロキシ30でFP方式を決定するようにしても良いことは、勿論である。
【0079】
図18は、上記で説明した図15〜図17のように初期化処理時に、特に利用するフィンガープリントの計算方式を決定しない、別の実施形態を示している。
【0080】
図18では、初期化処理は、この後のリクエスト、リプライ処理の前処理となるユーザ認証処理などが行なわれているだけであり、そのために何ら処理を図示していない。
【0081】
サーバ側プロキシ30とクライアント側プロキシ40は、それぞれ自身が所有するフィンガープリントの計算方式が示されているFP方式リストを記憶するFPリスト記憶部71、75を備えている。なお、このFP方式リストの追加および削除は、上記した方法と同様でよい。
【0082】
リクエスト処理時において、クライアント側プロキシ40は、クライアント50からのリクエストメッセージを受信部80で受信する。クライアント側プロキシ40は、FPリスト記憶部75に記憶される、自身のFP方式リストの中から、所定の方法でフィンガープリント計算方式名を1つ選択し、FP方式登録部79へ一時登録し、また、FP方式付加部84によって、この一時登録されたFP方式名を読み出して、受信したリクエストメッセージへ付加する。この選択は、例えば、クライアント側プロキシ40自身が保有するFP方式リスト内の各FP方式に優先度を予め付けておき、一番優先度の高いものを選択するようにすればよい。
【0083】
FP計算の方式名が付加されたリクエストメッセージは、サーバ側プロキシ30のFP方式分離部85で、FP方式名が分離される。分離されたFP方式名は、サーバ側プロキシ30のFPリスト記憶部71に予め備えるサーバ側プロキシ30が備えるFP方式の名前が記載されるFP方式リストから一致するものがあるか否かを確認する。一致するものがあれば、そのFP方式名は、FP方式登録部76に一時登録される。一方、一致するものが無い場合には、Nullとして扱い、FP方式登録部76へ登録しない、あるいは無いことを示す情報を一時登録する。また、この実施形態ではFP方式名を一つ選択するとしたが、図15の説明と同様に優先度を付加して複数選択するようにしても良い。
【0084】
サーバ側プロキシ40は、分離したリクエストメッセージを送信部83を介して、サーバ20へ転送する。
【0085】
次に、リプライメッセージ処理について、図19〜図22を用いて説明する。
【0086】
まず、サーバ側プロキシ30がサーバ20からのリプライメッセージを受信した場合について説明する。
【0087】
図19に示されるように、本サーバ側プロキシ30は、サーバセンター内LAN12または広域ネットワーク14から転送メッセージを受信するための処理を行う受信部131、転送メッセージに含まれるデータに対してFP圧縮を施すための処理部132、サーバセンター内LAN12または広域ネットワーク14へ転送メッセージを送信するための処理を行う送信部133、フィンガープリントとそのもととなったデータとを対応付けて記憶するためのフィンガープリント・キャッシュ(FPキャッシュ)134、既説明の初期化処理およびリクエスト処理時にFP方式名を一時登録したFP方式登録部76を備える。また、処理部132は、転送メッセージに含まれるデータを圧縮対象とすべきか否かを判定するためのフィンガープリント(FP)圧縮判定部135、FP方式登録部76を参照してどの計算方式でフィンガープリントを計算するかを決定するFP方式決定部136、フィンガープリント・キャッシュ134に対する検索や登録などを行うためのフィンガープリント・キャッシュ(FPキャッシュ)管理部137、転送メッセージに含まれるデータを対応するフィンガープリントで置き換えるなどの処理を行うためのフィンガープリント(FP)圧縮処理部139を含む。また、既説明の初期化処理およびリクエスト処理時が図17、図18の場合には、リプライ処理時には、更にFPの計算に用いたFP方式をメッセージに付加するFP方式付加部138を備える。
【0088】
図20に、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送する際のサーバ側プロキシ30の処理手順の一例を示す。なお、図20は、一つのリプライメッセージを受けたときの処理を記述しているが、実際はサーバ側プロキシ30が受け取ったリプライメッセージ全てに対して、図20に例示する処理を行う。
【0089】
サーバ側プロキシ30は、受信部131により、サーバ20からリプライメッセージを受信する(ステップS1)。
【0090】
FP圧縮判定部135は、該リプライメッセージのリプライデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS2)。リプライデータがFP圧縮対象外のものと判断されたならば(ステップS2)、受信したリプライメッセージを送信部133からクライアント側プロキシ40へ転送する(ステップS12)。
【0091】
ステップS2にて該リプライメッセージのリプライデータがFP圧縮対象のものであると判断されたならば、FP方式決定部136はFP方式登録部76を参照し(ステップS3)、一時登録されるFP方式名のFP方式を、利用するFP方式として決定する(ステップS4)。次に、FPキャッシュ管理部137にて、ステップS4にて決定したFP方式を用いて該リプライデータのフィンガープリントの値を計算し(ステップS5)、該フィンガープリントの値と計算方式をキーとしてフィンガープリント・キャッシュ34を検索する(ステップS6)。
【0092】
そして、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ134に登録されていたならば(ステップS7)、FP圧縮処理部139にて、受信したリプライメッセージを、該フィンガープリントの値を用いてFP圧縮時のフォーマットにし、送信部133から、クライアント側プロキシ40へ送信する(ステップS9)。なお、既説明の初期化処理およびリクエスト処理時が図17または図18の場合には、ステップS9の際に、更にFP方式決定部136にて決定されたFP方式をメッセージに付加するようにすることが必要である(ステップS8)。なお、FP方式決定部136にて決定されたFP方式とキャッシュに保存されていたFP方式が異なった場合、(1)FP方式決定部136にて決定されたFP方式で再度FPを計算しなおす、(2)キャッシュに保存されていたFP方式を用いるなどの方法でメッセージに付加するFP方式を決定する。この場合のフォーマットは、例えば、図7(b)等である。なお、既説明の初期化処理およびリクエスト処理時が図15や図16の場合にも、このステップS8を実施しても構わない。
【0093】
また、ステップS9のとき、必要に応じて、リプライヘッダ内のデータ長を表すフィールド(Content−Length:フィールド)の値を、FP圧縮時のフォーマットにあわせて設定する。
【0094】
一方、ステップS6の検索の結果、該フィンガープリントの値とこれに対応するデータとの組がフィンガープリント・キャッシュ134に登録されていなかったならば(ステップS7)、次の2つの作業を行う。
【0095】
(1)FP圧縮処理部139にて、受信したリプライメッセージを、(必要に応じて該フィンガープリントの値と計算方式を用いて)非FP圧縮時のフォーマットにして(例えば図7(a)等)、送信部133から、クライアント側プロキシ40へ送信する(ステップS10)。
【0096】
(2)FPキャッシュ管理部137にて、該フィンガープリントの値と、計算方式、該リプライデータとを対応付けて(フィンガープリントの値をキーにして)、フィンガープリント・キャッシュ134に登録する(ステップS11)。
【0097】
なお、上記の(1)と(2)は、いずれを先に行ってもよいし、並行して行ってもよい。
【0098】
図21に示されるように、本クライアント側プロキシ40は、ユーザオフィス内LAN16または広域ネットワーク14から転送メッセージを受信するための処理を行う受信部141、転送メッセージに含まれるデータに対してFP解凍を施すための処理部142、ユーザオフィス内LAN16または広域ネットワーク14へ転送メッセージを送信するための処理を行う送信部143、フィンガープリントとそのもととなったデータとを対応付けて記憶するためのフィンガープリント・キャッシュ(FP・キャッシュ)144を備えている。また、処理部142は、転送メッセージに含まれるデータを圧縮対象とすべきか否かおよび転送メッセージに対するFP圧縮の有無を判定するためのフィンガープリント(FP)圧縮判定部145、FP方式登録部79にて一時記憶されているFP方式名を参照してFP圧縮方式を決定するFP方式決定部146、フィンガープリント・キャッシュ144に対する検索や登録などを行うためのフィンガープリント・キャッシュ(FPキャッシュ)管理部147、FP圧縮された転送メッセージに含まれるフィンガープリントから元のデータを解凍するなどの処理を行うためのフィンガープリント(FP)解凍処理部148を含む。なお、既説明の初期化処理およびリクエスト処理時が図17の場合には、FP方式登録部79は無い(または一時登録されていない)ので、FP方式決定部146は、リプライメッセージを解析し、該メッセージ内に含まれるFP方式を参照して、FP方式を決定するようにするものとする。また、図18の場合にも、FP方式登録部79には、サーバ側プロキシ30でサポートされるFP方式か否かを確認することなくFP方式が登録されているため、FP方式決定部146は、リプライメッセージを解析し、該メッセージ内に含まれるFP方式を参照して、FP方式を確認するような構成としたほうがよい。
【0099】
次に、図22に、サーバ側プロキシ30からクライアント側プロキシ40へリプライメッセージを転送する際のクライアント側プロキシ40の処理手順の一例を示す。なお、図21は、1つのリクエストメッセージを受けたときの処理を記述しているが、実際はクライアント側プロキシ40が受け取ったリクエストメッセージ全てに対して、図22に例示する処理を行う。
【0100】
クライアント側プロキシ40は、受信部141により、サーバ側プロキシ30からリプライメッセージを受信する(ステップS21)。
【0101】
FP圧縮判定部145は、該リプライメッセージのリプライデータがFP圧縮対象のものであるか否か調べ、判断する(ステップS22)。リプライデータがFP圧縮対象外のものと判断されたならば(ステップS22)、受信したリプライメッセージを送信部143からクライアント50へ転送する(ステップS31)。
【0102】
ステップS22にて該リプライメッセージのリプライデータがFP圧縮対象のものであると判断されたならば、FP圧縮判定部145は、さらに、リプライデータがFP圧縮されているか否か調べ、判断する(ステップS23)。
【0103】
ステップS23にて、該リプライメッセージのリプライデータがFP圧縮されているものと判断されたならば(例えば図7(b)等の場合)、FP方式登録部76に一時記憶されるFP方式名から、利用するFP方式を決定する(S24)。なお、ステップS24において、既説明の初期化処理およびリクエスト処理時が図17および図18の場合には、リプライメッセージに含まれるFP方式名から、利用するFP方式を決定する(ステップS24)。図18の場合にも、ステップS24を行なう理由は、サーバ側プロキシ30で、クライアント側プロキシ40から選択したFP方式をサポートしてない場合をも処理可能にするためである。
【0104】
次に、FPキャッシュ管理部147にて、ステップS24で決定したFP方式で該リプライデータのフィンガープリントの値を求め(ステップS25)、該フィンガープリントの値と計算方式をキーとしてフィンガープリント・キャッシュ144を検索する(ステップS26)。
【0105】
そして、FP解凍処理部148にて、受信リプライメッセージに対して、フィンガープリント・キャッシュ144から検索された該フィンガープリントの値に対応するデータを付加し、プロキシ間で特別の情報を使用する場合には該情報を削除した後に、これを送信部43からクライアント50へ送信する(ステップS27)。このとき、必要に応じて、リプライヘッダ内のデータ長を表すフィールド(Content−Length:フィールド)の値を、該フィンガープリントの値に対応するデータの長さに設定する。
【0106】
一方、ステップS23にて該リプライメッセージのリプライデータがFP圧縮されていないものと判断されたならば(例えば図7(a)等の場合)、次の2つの作業を行う。
【0107】
(1)FP解凍処理部148にて、プロキシ間で特別の情報を使用する場合には受信リプライメッセージから該情報を削除した後に、これを送信部143からクライアント50へ送信する(ステップS29)。
【0108】
(2)FPキャッシュ管理部147にて、該リプライデータのフィンガープリントの値と計算方式を求め(ステップS28)、該フィンガープリントの値と、該リプライデータとを対応付けて(フィンガープリントの値と計算方式をキーにして)、フィンガープリント・キャッシュ144に登録する(ステップS30)。
【0109】
上記の(1)と(2)は、いずれを先に行ってもよいし、並行して行ってもよい。
【0110】
なお、前述のように異なる2つのデータから得られるフィンガープリント値が一致する確率は実用上無視できるくらい小さいが、もし異なる2つのデータから得られるフィンガープリント値が一致してしまった場合、本発明の方式を用いて別のフィンガープリント計算方式でフィンガープリントを計算することでこの問題を解決することも可能である。
【0111】
以下では、図23(登録時すなわち非FP圧縮時)および図24(FP圧縮時)を参照しながら、フィンガープリント・キャッシュを利用したデータ転送についてより具体的に説明する。なお、前提条件として、初期化処理時にサーバ側プロキシ30およびクライアント側プロキシ40では、FP方式を一時登録する図15のシステムとして説明する。
【0112】
まず、図23を参照しながら、サーバ側プロキシ30からクライアント側プロキシ40へ、フィンガープリント・キャッシュ登録されていないデータを転送するとともに、フィンガープリント・キャッシュ登録する場合の動作について説明する。
【0113】
(1)クライアント50上のブラウザ等は、例えば“/A.cgi”というURLでサーバ20に、POSTメソッドのリクエストメッセージを出したとする。サーバ20へのリクエストメッセージは、まず、クライアント側プロキシ40に送られるように、ブラウザ等を設定しておく。
【0114】
(2)クライアント50からリクエストメッセージを受け取ったクライアント側プロキシ40は、そのリクエストメッセージをサーバ側プロキシ30に転送する。
【0115】
(3)リクエストメッセージを受け取ったサーバ側プロキシ30は、そのリクエストメッセージをサーバ50へ転送する。
【0116】
(4)サーバ20は、該リクエストメッセージに対する処理を行った後、サーバ側プロキシ30に、そのリプライメッセージを送り返す。
【0117】
(5)リプライメッセージを受け取ったサーバ側プロキシ30は、まず、受信したリプライメッセージに含まれるリプライデータを初期化処理時に決定したフィンガープリント方式を用いて、フィンガープリントを計算し、そのフィンガープリント名を持ったデータがフィンガープリント・キャッシュ34に入っているかどうかを調べる。入っていなければ、初めてのデータ(一旦フィンガープリント・キャッシュ登録されたものがその後に削除あるいは無効化されることがある構成の場合に、一旦フィンガープリント・キャッシュに登録されたが削除あるいは無効化され、その後において初めてである場合を含む)であるので、そのデータをフィンガープリントを名前としてフィンガープリント・キャッシュ34に入れる(登録する)。
【0118】
(6)サーバ側プロキシ30は、リプライメッセージをクライアント側プロキシ40に転送する。
【0119】
なお、前述したように、リプライデータから計算したフィンガープリントの値を、リプライヘッダ等に入れて送ると、クライアント側プロキシ40で再度フィンガープリントを計算する手間を省くことが出来る。
【0120】
(7)リプライメッセージを受け取ったクライアント側プロキシ40は、初めてのデータであるので、リプライデータを、一時登録済みまたはリプライヘッダ等に入れたフィンガープリント方式名を取り出して、併せてフィンガープリント・キャッシュ44に登録する。なお、前述したように、リプライデータからフィンガープリントを計算するか、あるいはサーバ側プロキシがリプライヘッダ等に入れたフィンガープリントを取り出し、これを名前として入れる。
【0121】
(8)クライアント側プロキシ40は、(リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ30とクライアント側プロキシ40との間だけで使用される情報が存在する構成の場合には、これを削除した後に、)リプライメッセージを、クライアント50(上で動作するブラウザ等)へ送り返す。
【0122】
なお、サーバ側プロキシ30において、上記の(5)のフィンガープリント・キャッシュ登録は、(6)の動作の後に行っても構わない。また、クライアント側プロキシ40において、(7)のフィンガープリント・キャッシュ登録は、(8)の動作の後に行っても構わない。
【0123】
次に、図24を参照しながら、図23の動作が行われてキャッシュ登録されているデータを、サーバ側プロキシ30からクライアント側プロキシ40へ転送する場合の動作について説明する。
【0124】
(1)〜(4)は、図23を参照して説明した動作における(1)〜(4)と同様である。
【0125】
(5)サーバ50からリプライメッセージを受け取ったサーバ側プロキシ40は、まず、受信リプライメッセージの持つリプライデータのフィンガープリントをコネクション時に既に決定済みのFP方式で計算し、そのFP方式およびフィンガープリント名を持ったデータがフィンガープリント・キャッシュ34に入っているかどうかを調べる。入っていれば、過去に送ったことのあるデータ(フィンガープリント・キャッシュ登録されているデータ)なので、(前述したように例えばフィンガープリントの値をリプライヘッダに入れ且つリプライボディを空にするなどして)リプライボディのデータをフィンガープリントで置き換える。
【0126】
(6)サーバ側プロキシ30は、リプライボディをフィンガープリントで置き換えたリプライメッセージをクライアント側プロキシ40に転送する。
【0127】
(7)リプライメッセージを受け取ったクライアント側プロキシ40は、リプライデータがフィンガープリントで置き換えられていることを検出し、(前述したように例えばリプライヘッダなどにて)指定されたフィンガープリントを使ってフィンガープリント・キャッシュ44から対応するデータを取り出し、これをリプライボディに入れる。
【0128】
(8)そして、クライアント側プロキシ30は、(リプライヘッダ等にフィンガープリントの値などのサーバ側プロキシ30とクライアント側プロキシ40との間だけで使用される情報が存在する構成の場合には、これを削除した後に、)リプライメッセージを、クライアント(上で動作するブラウザ等)へ送り返す。
【0129】
ところで、サーバ側プロキシ30およびクライアント側プロキシ40のフィンガープリント・キャッシュは、その容量に上限があるため、所定のアルゴリズムに従いガーベジコレクションを行って、例えば古いデータや使いそうに無いデータを消して行くのが好ましい。
【0130】
ただし、このようにすると、サーバ側プロキシ30のフィンガープリント・キャッシュ34は持っていてもクライアント側プロキシ40のフィンガープリント・キャッシュ44では既に消されてしまっているデータが発生し得ることになるので、上記の(7)で、クライアント側プロキシ40において、フィンガープリントをもとにしてフィンガープリント・キャッシュ44からリプライデータを置き換えるべきデータを取り出そうとしたが、フィンガープリント・キャッシュ44に該当するフィンガープリントとデータの組が存在しない場合がある。このような場合には、例えば、クライアント側プロキシ40は、サーバ側プロキシ30に対して、指定したフィンガープリントのデータを送るように依頼し、依頼されたサーバ側プロキシ30は、指定されたフィンガープリントのデータをフィンガープリント・キャッシュ34から取り出して送り返すような仕組みを設ければよい。
【0131】
なお、逆に、サーバ側プロキシ30のフィンガープリント・キャッシュ34では既に消されてしまっているがクライアント側プロキシ40のフィンガープリント・キャッシュ44はまだ持っているデータが存在する場合には、図23を参照して説明した動作における(7)で、クライアント側プロキシ40において、フィンガープリント/リプライデータをフィンガープリント・キャッシュ44に登録する際に、その時点で登録されていたフィンガープリント/リプライデータに対して上書きしてもよい。
【0132】
図24を参照して説明した動作における(5)で、サーバ側プロキシ30において、リプライデータのフィンガープリントを求め、該フィンガープリントがフィンガープリント・キャッシュ34に入っていれば、当該リプライデータと同じデータが該フィンガープリントと組になってフィンガープリント・キャッシュ34に入っているものとみなして処理している。実用上、異なるデータから同じフィンガープリントが生成されないことを前提にすれば、この方法で十分であるが、非常に小さな確率で異なるデータのフィンガープリントが偶々同じ値になってしまった場合に生じるエラーを取り除くようにする方法もある。この場合には、リプライデータから求めたフィンガープリントがフィンガープリント・キャッシュ34に入っているときに、該フィンガープリントと組になってフィンガープリント・キャッシュ34に入っているデータと、当該プライデータとを比較して、同じか否かを判断するようにすればよい。このとき、もしフィンガープリントは同じであるが内容が異なるデータが登録されていると判断された場合の処理は、以下に例示するような方法が考えられる。
・そのフィンガープリントは以降使用しないものとする(そのフィンガープリントを与えるデータは以後キャッシュされないことになる)。
・先に登録されているフィンガープリント/データを優先する(登録中のフィンガープリントと同じ値のフィンガープリントを与える他のデータは、その登録中はキャッシュされないことになる)。
・現在登録対象となっているフィンガープリント/データを優先する(登録中のフィンガープリント/データは、同じ値のフィンガープリントを与える他のデータによって次々と更新されていくことになる)。
・別のフィンガープリント方式を用いて、圧縮して利用する(優先度を付した複数のフィンガープリントが利用可能に選択されている場合に、特に有効である)。
【0133】
以上詳細に説明してきたように、本実施形態は、データ転送装置間でデータとその圧縮データとその圧縮データを生成した方式名とを対応付けて保持し、これらの対応を保持しているデータについては、データを転送する代わりにその圧縮データと方式名を転送することで、特に、方式のバージョンアップや複数の方式名が混在する場合であっても、データ転送装置間の転送データ量を削減することができる。
【0134】
また、本実施形態のサーバ側プロキシ30あるいはクライアント側プロキシ40に、URLとフィンガープリントとの対応テーブル(URL・FPテーブル)を設け、これとフィンガープリント・キャッシュとを併用することで、プロキシサーバの共有キャッシュの動作をも行うようにすることも可能である。
【0135】
なお、以上の各機能は、ソフトウェアとして実現可能である。
【0136】
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0137】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【0138】
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【0139】
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
【0140】
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0141】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0142】
【発明の効果】
本発明によれば、データ転送装置間でデータとその圧縮データとその圧縮データを生成した方式名とを対応付けて保持し、これらの対応を保持しているデータについては、データを転送する代わりにその圧縮データと方式名を転送することで、特に、方式のバージョンアップや複数の方式名が混在する場合であっても、データ転送装置間の転送データ量を削減することができる。
【図面の簡単な説明】
【図1】 従来のコンピュータ・ネットワーク・システムについて説明するための図
【図2】 本発明の一実施形態に係るコンピュータ・ネットワーク・システムの構成例を示す図
【図3】 同実施形態に係るコンピュータ・ネットワーク・システムの他の構成例を示す図
【図4】 同実施形態に係るコンピュータ・ネットワーク・システムのさらに他の構成例を示す図
【図5】 同実施形態で使用するフィンガープリントについて説明するための図
【図6】 同実施形態で使用するフィンガープリント・キャッシュについて説明するための図
【図7】 同実施形態で使用するメッセージ・フォーマットの一例を示す図
【図8】 図7(a)のフォーマットのメッセージの具体例を示す図
【図9】 図7(b)のフォーマットのメッセージの具体例を示す図
【図10】 図7(a’)のフォーマットのメッセージの具体例を示す図
【図11】 同実施形態で使用するメッセージ・フォーマットの他の例を示す図
【図12】 図11(b)のフォーマットのメッセージの具体例を示す図
【図13】 図11(a’)のフォーマットのメッセージの具体例を示す図
【図14】 同実施形態に係る3つの処理を示した図
【図15】 同実施形態に係る初期化処理およびリクエスト処理に関する機能ブロック図
【図16】 同実施形態に係る初期化処理およびリクエスト処理に関する、他の機能ブロック図
【図17】 同実施形態に係る初期化処理およびリクエスト処理に関する、更なる他の機能ブロック図
【図18】 同実施形態に係る初期化処理およびリクエスト処理に関する、更なる他の機能ブロック図
【図19】 同実施形態に係るリプライ時のサーバ側プロキシ30の機能ブロック図。
【図20】 同実施形態に係るリプライ時のサーバ側プロキシ30の動作手順を示す図。
【図21】 同実施形態に係るリプライ時のクライアント側プロキシ40の機能ブロック図。
【図22】 同実施形態に係るリプライ時のクライアント側プロキシ40の動作手順を示す図。
【図23】 同実施形態に係るサーバ側プロキシ30とクライアント側プロキシ40との間のデータ転送について説明するための図
【図24】 同実施形態に係るサーバ側プロキシ30とクライアント側プロキシ40との間のデータ転送について説明するための図
【符号の説明】
2…ASPサーバセンター
4…ユーザオフィス
12…ASPサーバセンター内LAN
14…WAN
16…ユーザオフィス内LAN
20…サーバ装置
30…サーバ側プロキシ装置
40…クライアント側プロキシ装置
50…クライアント装置
71…FPリスト記憶部
72,77,81,83,133,143…送信部
73,78,80,82,131,141…受信部
74…FP方式決定部
75…FPリスト記憶部
76,79…FP方式登録部
84…FP方式付加部
85…FP方式分離部
132,142…処理部
134,144…フィンガープリント・キャッシュ
135,145…FP圧縮判定部
136,146…FP方式決定部
137,147…フィンガープリント・キャッシュ管理部
138…FP方式付加部
139…FP圧縮処理部
148…FP解凍処理部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data transfer method, a data transfer apparatus, and a program for transferring data for another apparatus.
[0002]
[Prior art]
2. Description of the Related Art A client / server type information system including a server that provides various services via a network and a client that requests a desired service server is widely used. In particular, a WORLD WIDE WEB system (or simply referred to as WEB) composed of a WEB server and a client communicating with each other using the HTTP protocol on the Internet is a client-server type information system that is very widely used. Usually server on server・The program operates, 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.
[0003]
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.
[0004]
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.
[0005]
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.
[0006]
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.
[0007]
The request message consists of a “request header” and a “request body”. The request header includes a URL for designating information to be accessed and a service, a method name indicating the type of access, and other various information necessary for access. The data to be sent to the server is entered in the request body. The data contained in the request body is also called “request data”.
[0008]
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”.
[0009]
Request message methods include "GET method" for reading information on the server, "PUT method" for writing user data to the server, requestInThe “POST method” that sends back the processed result is the main one used for accessing information and services. In addition, a method such as DELETE is defined.
[0010]
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.
[0011]
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.
[0012]
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.
[0013]
Since the PUT method sends data to the server, the cache does nothing.
[0014]
[Problems to be solved by the invention]
The conventional WEB cache targets static content as a cache target. In the past, information and services published on the WEB were not so frequently updated, and many were published to an unspecified number of people, so the proportion of static content was very high. Cache technology was also effective in reducing network load.
[0015]
However, as a system in which a user accesses information and services on a server via a network using a WEB browser, such as WEB-based ASP (Application Service Provider), the conventional cache technology as described below. The data that cannot be handled is increasing.
-Since the user is authenticated and the user who can access is restricted, there is much private data.
-Many dynamic data are generated by referring to the backend database.
-In many cases, the POST method is used for form processing and search.
-The PUT method is often used to share information within a group.
As a result, the cache technology alone has not functioned effectively as a technique for reducing the load on the network.
[0016]
The present invention has been made in view of the above circumstances, and provides a data transfer method, a data transfer apparatus, and a program provided with a cache technique and a compression technique that can further reduce the load on the network connecting the data transfer apparatuses. The purpose is to provide.
[0017]
[Means for Solving the Problems]
The present inventionA plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices and relayed to a client side proxy device in charge of access to the plurality of server devices of each of the plurality of client devices is received. The reply data transmitted from the server device to the client device as a reply to the request data is transferred to the client device as a reply to the request data. A data transfer method for a server-side proxy device that transfers to a client-side proxy device that is a proxy, wherein reply data that is a reply to request data transferred from the client-side proxy device is received from the server device, and Data fins Generates over printing, the generated the fingerprint and the generation method identifier indicating a method of generating the fingerprint, the finger Reply data that is a reply to certain request data transferred from one of the plurality of client side proxy devices and held as a fingerprint cache in association with the reply data that was the source of printing And generating a fingerprint that is a fingerprint of the reply data with a generation method, and the fingerprint is associated with a generation method identifier indicating the generation method in the fingerprint cache. If the determination means determines that the fingerprint is stored in the fingerprint cache in association with the generation method identifier, instead of the reply data. Said finger pudding And the generation method identifier addressed to the client device to the client-side proxy device, and the fingerprint is associated with the generation method identifier and not held in the fingerprint cache. If the determination means determines, the fingerprint, the generation method identifier, and the reply data are associated with each other and added to the fingerprint cache, and the reply data and the generation method identifier are added to the Transmitting to the client-side proxy device as addressed to the client device.
[0018]
The present invention also receives a plurality of request data transmitted to a plurality of server devices from each of a plurality of client devices, to a server-side proxy device in charge of access to the server device that is the destination of the request data. Data of the client side proxy device that forwards and transmits reply data sent from the server device to the client device via the server side proxy device as a reply to the request data to the client device that is the destination of the reply data Reply data which is a response from the server device to request data transmitted from the client device and a generation method identifier indicating a method of generating a fingerprint of the reply data from the server side proxy device Receive the finger The reply, the reply data, and the generation method identifier are stored in association with each other as a fingerprint cache, and the reply data is a response to the request data transmitted from one of the plurality of client devices. When the generated fingerprint and the generation method identifier indicating the generation method of the fingerprint are received from the server-side proxy device, the fingerprint is associated with the fingerprint and the generation method identifier. Reply data held in the print cache is transmitted to the client device, and the reply data and the reply data are responses to the request data transmitted from the client device of the plurality of client devices. Raw When a generation method identifier indicating a generation method of a fingerprint is received from the server-side proxy device, the fingerprint cache is associated with the fingerprint, the generation method identifier, and the reply data. And the reply data is transmitted to the client device..
[0019]
Further, the present invention provides a plurality of client devices that are transmitted from a plurality of client devices to a plurality of server devices and relayed to a client-side proxy device that takes charge of access to the plurality of server devices of each of the plurality of client devices. The request data is received and transferred to the server device that is the destination of the request data among the plurality of servers, and the reply data transmitted from the server device to the client device as a reply to the request data is sent to the reply data A server-side proxy device that transfers to a client-side proxy device that is a proxy for the client device that is a destination, and receives reply data that is a response to request data transferred from the client-side proxy device from the server device, Further, the plurality of clients Receiving means that also receives reply data that is a response to some request data transferred from one of the client side proxy apparatuses, generates a fingerprint of the reply data, and further includes the one reply data A fingerprint that is a fingerprint of a fingerprint that is generated by a generation method Print generation means, and holding means for holding the generated fingerprint and a generation method identifier indicating the generation method of the fingerprint in association with the reply data that is the source of the fingerprint as a fingerprint cache; Determining means for determining whether the fingerprint is stored in the fingerprint cache in association with a generation method identifier indicating the generation method; and the fingerprint is associated with the generation method identifier. When the determination means determines that the data is stored in the fingerprint cache, the one side of the client side sends the one fingerprint and the one generation method identifier to the one client device instead of the one reply data. Proxy device And when the determination means determines that the fingerprint is not associated with the generation method identifier and stored in the fingerprint cache, the fingerprint, the generation method identifier, and the or Transmission means for associating reply data with the fingerprint cache and adding the reply data and the generation method identifier to the client device to the client-side proxy device. Features.
The present invention also receives a plurality of request data transmitted to a plurality of server devices from each of a plurality of client devices, to a server-side proxy device in charge of access to the server device that is the destination of the request data. A client-side proxy device that transfers the reply data transmitted from the server device to the client device via the server-side proxy device as a reply to the request data to the client device that is the destination of the reply data. Reply data that is a response from the server device to request data transmitted from the client device, a fingerprint of the reply data, and a generation method identifier indicating a method of generating the fingerprint are received from the server side proxy device. Receive, and Among the plurality of client devices, there is also a fingerprint generated from the reply data that is a response to the request data transmitted from the client device, and a generation method identifier indicating the generation method of the fingerprint. Receiving means for receiving from the server-side proxy device; holding means for associating the fingerprint, the reply data, and the generation method identifier with each other and holding them as a fingerprint cache; and a client of the plurality of client devices When a fingerprint generated from reply data, which is a response to request data transmitted from the device, and a generation method identifier indicating the generation method of the fingerprint are received from the server side proxy device, Said finger And reply data stored in the fingerprint cache in association with the generation method identifier and the generation method identifier is transmitted to the client device, and the request transmitted from a client device of the plurality of client devices is transmitted. When the reply data that is a reply to the data and the generation method identifier indicating the generation method of the fingerprint generated from the reply data are received from the server-side proxy device, the fingerprint and the generation The method further comprises transmission means for associating the method identifier with the certain reply data and adding it to the fingerprint cache and transmitting the certain reply data to the certain client device. A plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices and relayed to a client side proxy device in charge of access to the plurality of server devices of each of the plurality of client devices is received. The reply data transmitted from the server device to the client device as a reply to the request data is transferred to the client device as a reply to the request data. A program for causing a computer to function as a server-side proxy device that transfers to a proxy-side client-side proxy device, wherein reply data that is a response to request data transferred from the client-side proxy device is sent from the server device Receiving And receiving means for receiving reply data that is a reply to the request data transferred from the client-side proxy device among the plurality of client-side proxy devices, and generating a fingerprint of the reply data Furthermore, it is a fingerprint of the reply data or Fingerprint generation means for generating a fingerprint by a generation method, the generated fingerprint and a generation method identifier indicating the generation method of the fingerprint in association with the reply data that is the source of the fingerprint Holding means for holding as a cache; determination means for determining whether the fingerprint is stored in the fingerprint cache in association with a generation method identifier indicating the generation method; When the determination means determines that the generation method identifier is associated with the generation method identifier and is held in the fingerprint cache, the one or more fingerprints and the generation method identifier are used instead of the one reply data. When the determination means determines that the fingerprint is not associated with the generation method identifier and stored in the fingerprint cache. The print, the generation method identifier, and the reply data are associated and added to the fingerprint cache, and the reply data and the generation method identifier are addressed to the client device to the client-side proxy device. The computer is caused to function as transmission means for transmission.
The present invention also receives a plurality of request data transmitted to a plurality of server devices from each of a plurality of client devices, to a server-side proxy device in charge of access to the server device that is the destination of the request data. A computer as a client-side proxy device that forwards and transmits reply data sent from the server device to the client device via the server-side proxy device as a reply to the request data to the client device that is the destination of the reply data And a generation method identifier indicating reply data that is a response from the server device to request data transmitted from the client device, a fingerprint of the reply data, and a method of generating the fingerprint When A fingerprint generated from the reply data received from the server-side proxy device, and a reply to the request data transmitted from the client device of the plurality of client devices; Receiving means for receiving a generation method identifier indicating the generation method from the server side proxy device; holding means for holding the fingerprint, the reply data, and the generation method identifier in association with each other as a fingerprint cache; Among the plurality of client devices, the server generates a fingerprint generated from reply data, which is a response to the request data transmitted from the client device, and a generation method identifier indicating the generation method of the fingerprint. Side proxy The reply data stored in the fingerprint cache in association with the fingerprint and the generation method identifier is transmitted to the client device, and the client device includes: When a reply data that is a response to a request data transmitted from a client apparatus is received from the proxy apparatus on the server side and a generation method identifier indicating a generation method of a fingerprint generated from the reply data is received In addition, the computer functions as transmission means for associating the fingerprint, the generation method identifier, and the reply data in association with each other and adding the fingerprint data to the fingerprint cache and transmitting the reply data to the client device. .
[0020]
According to the present invention, the data, the compressed data, and the name of the method that generated the compressed data are held in association with each other between the data transfer apparatuses, and the data holding these correspondences is transferred instead of transferring the data. In addition, by transferring the compressed data and the system name, it is possible to reduce the amount of data transferred between the data transfer apparatuses, especially even when the system is upgraded or a plurality of system names are mixed.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the invention will be described with reference to the drawings.
[0022]
In the following, a case where the WAN is the Internet and the client is connected to the user office LAN and the HTTP protocol is used will be described as an example. Even if the client is installed in a home LAN other than the office, for example, it can be applied even if a protocol other than the HTTP protocol is used.
[0023]
FIG. 1 shows a basic configuration example of a computer network system to which the present invention is applied. In this configuration example, a wide area network (WAN) 14 such as the Internet or a dedicated line is connected between a local area network (LAN) 12 in the ASP server center 2 and a local area network (LAN) 16 in the user office 4. The
[0024]
The WEB-based ASP provides services based on various application programs from the
[0025]
In such a usage mode, the effective communication capacity (bandwidth) of the network connecting the
[0026]
Therefore, in this embodiment, as shown in FIG. 2, two modules, a server-
[0027]
The
[0028]
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.
[0029]
A predetermined server program operates on the
[0030]
As shown in FIG. 2, the server-
[0031]
Similarly, as shown in FIG. 2, the client-
[0032]
Note that the server-
[0033]
Both the
[0034]
As illustrated in FIG. 5, the fingerprint is determined by a predetermined calculation method (hash function in the example of FIG. 5) from the contents of data exchanged by the HTTP protocol (content in the example of FIG. 5). It ’s a short number. This numerical value may be a variable length, but a fixed-length numerical value is easier to handle from the viewpoint of ease of processing.
[0035]
As a fingerprint calculation method, a well-known hash function such as MD-5 or SHA-1 can be used. These hash functions are used for digital signatures on data, and when given data is converted into a 128-bit number for MD-5 and a 160-bit number for SHA-1. can do. The feature of these hash functions is that if two data X1 and X2 are given and the data X1 and the data X2 are the same, the hash value calculated for the data X1 and the hash value calculated for the data X2 However, when two different data A and B are given, the hash value calculated for data A and the hash value calculated for data B are different with a very high probability. (In principle, the hash values calculated for two different data A and B may be the same, but the probability is small enough to be ignored in practice).
[0036]
In the present embodiment, if a single (predetermined) fingerprint calculation method can be applied to all the server-
[0037]
Therefore, as shown in FIG. 6A, the fingerprint cache (60 in the figure) of the server-
[0038]
When such a fingerprint cache method is applied, for example, when data is transferred from the server-
[0039]
For explanation, when transferring data between the server-
[0040]
Note that, between the server-
[0041]
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.
[0042]
Of course, there are various other variations. A plurality of conditions may be used in combination.
[0043]
Next, an inter-proxy message format (for a message to which FP compression is applied) when data is transferred between the server-
[0044]
When data is transferred between the server-
[0045]
The message format when uncompressed is the fingerprint of the data contained in the message・Used when not registered in the cache. On the other hand, the message format at the time of compression is that the data contained in the message is fingerprinted.・Used when registered in the cache.
[0046]
On the decompression side (reception side), when the message in the uncompressed format is received, the fingerprint is printed on the data.・You can register in the cache.
[0047]
FIG. 7 shows an example of the message format. (A) is an uncompressed message, and (b) is a compressed message. Each header section has a normalImeIn addition to the various header information used in the message, it includes identification information indicating whether or not this message is compressed by the FP method. In this example, the identification information of (a) is “0” indicating a message at the time of non-compression, and the identification information of (b) is “1” indicating a message at the time of compression. On the other hand, the body portion is different between uncompressed and compressed. That is, data is placed on the uncompressed body portion in FIG. 7A, and the body portion in the compressed state in FIG.PartIn this case, an FP method indicating an FP calculation method and a fingerprint (FP) value obtained by the calculation method are placed instead of data.
[0048]
At the time of non-compression, the body is replaced with a body as shown in FIG. 7 (a ') instead of FIG. 7 (a).PartIn addition to the data, a fingerprint method and a fingerprint may be included. In this way, when the fingerprint cache is registered for the data on the decompression side, it is possible to save time and effort for obtaining the fingerprint from the data again by using the fingerprint.
[0049]
If the client-
[0050]
Here, FIG. 8 shows a specific example of the message in the format of FIG. 7A, FIG. 9 shows a specific example of the message in the format of FIG. 7A, and FIG. 10 shows the format of FIG. A specific example of the message is shown. “Fingerprint-Mode:...” In the header part of each figure corresponds to identification information, “Fingerprint-Type:...” In the body part in FIGS. 9 and 10 is FP, and “6E39. “0128” corresponds to the fingerprint.
[0051]
FIG. 11 shows another example of the message format. (A) is an uncompressed message, and (b) is a compressed message. FIG. 11A shows the same format as FIG. 7A, and data is placed on the body part. In FIG. 11B, the message body is null. In FIG. 11B, a fingerprint (FP) calculation method and an FP value are described in the header portion. The normal header information and the identification information that can identify the presence or absence of FP compression are the same as in the above example.
[0052]
In addition, there is a method of using the message format of FIG. 11 (a ') in which the FP method and the fingerprint are provided in the header portion instead of FIG. 11 (a) at the time of non-compression.
[0053]
If the client-
[0054]
A specific example of the message in the format shown in FIG. 11A is the same as that shown in FIG. FIG. 12 shows a specific example of the message in the format of FIG. 11B, and FIG. 13 shows a specific example of the message in the format of FIG.
[0055]
Hereinafter, a system configuration example embodying the embodiment of the present invention described above will be described.
[0056]
When the client 50 accesses the Web page of the
[0057]
First, connection between the devices between the client 50 and the server 20 (here, between the client 50 and the
[0058]
Next, a request for requesting web page content from the client 50 to the
This request processing is performed in one direction from the client 50 to the server 20.TomeMessage is transmitted.
[0059]
This requestTomeIn response to the message, the
[0060]
If each of the above processes does not go well, another process is performed (for example, theImeIf the message processing is not successful, re-requestTomeMessage processing is performed), but since it is not directly related to the embodiment of the present invention, description thereof is omitted.
[0061]
Below, the point which concerns on this invention between the
[0062]
First, the parts according to the embodiment of the present invention during the initialization process and the request process will be described with reference to functional blocks shown in FIGS.
[0063]
In FIG. 15, the client-
[0064]
Similarly, the server-
[0065]
At the time of initialization processing, the re-transmission between the server-
[0066]
In FIG. 15, first, the FP method list of the
[0067]
The FP
Also, if there is no match between the two, “Null” meaning none is selected. Although one is selected here, a plurality of selections may be made by adding priority.
[0068]
The calculation method name (including Null) of the selected fingerprint is temporarily registered in the FP
[0069]
The
[0070]
When the initialization process is completed, the request process is performed. The client-
[0071]
For the sake of convenience, the receiving
[0072]
FIG. 16 shows another example different from that shown in FIG. 15 for the part according to the embodiment of the present invention at the time of initialization processing and request processing.
[0073]
The initialization process of FIG. 16 differs from the initialization process of FIG. 15 in that the server-
[0074]
In the case of FIG. 16, the server-
Further, when there is no FP method that matches both, handling as Null is the same as in the description of FIG. Further, although one FP method name is selected, a plurality of selections may be made by adding priorities as in the description of FIG.
[0075]
FIG. 17 shows still another example different from FIGS. 15 and 16 regarding the part according to the embodiment of the present invention in the initialization process and the request process.
[0076]
The initialization process of FIG. 17 does not transmit (and does not register) the fingerprint calculation method name determined by the server-
[0077]
In the case of FIG. 17, even if the request processing is completed, the client-
[0078]
In each of FIGS. 15 to 17, the FP method is determined by the server-
[0079]
FIG. 18 shows another embodiment in which the fingerprint calculation method to be particularly used is not determined during the initialization process as in FIGS. 15 to 17 described above.
[0080]
In FIG. 18, the initialization process includes only a subsequent request, a user authentication process as a pre-process for the reply process, and the like, and therefore no process is shown.
[0081]
Each of the server-
[0082]
At the time of processing the request, the
[0083]
The request message to which the FP calculation method name is added is separated by the FP
[0084]
The server-
[0085]
Then,ImeThe message process will be described with reference to FIGS.
[0086]
First, a case where the
[0087]
As shown in FIG. 19, the server-
[0088]
FIG. 20 shows an example of the processing procedure of the
[0089]
The
[0090]
The FP
[0091]
If it is determined in step S2 that the reply data of the reply message is for FP compression, the FP
[0092]
If a set of the fingerprint value and the data corresponding to the fingerprint value is registered in the fingerprint cache 134 (step S7), the FP
[0093]
In step S9, the value of the field (Content-Length: field) indicating the data length in the reply header is set according to the format at the time of FP compression as necessary.
[0094]
On the other hand, as a result of the search in step S6, if the set of the fingerprint value and the corresponding data is not registered in the fingerprint cache 134 (step S7), the following two operations are performed.
[0095]
(1) In the FP
[0096]
(2) The FP
[0097]
Note that either of (1) and (2) may be performed first or in parallel.
[0098]
As shown in FIG. 21, the client-
[0099]
Next, FIG. 22 shows an example of the processing procedure of the
[0100]
The
[0101]
The FP
[0102]
If it is determined in step S22 that the reply data of the reply message is for FP compression, the FP
[0103]
If it is determined in step S23 that the reply data of the reply message is FP-compressed (for example, in the case of FIG. 7B), the FP method name temporarily stored in the FP
[0104]
Next, the FP
[0105]
When the FP
[0106]
On the other hand, if it is determined in step S23 that the reply data of the reply message is not FP compressed (for example, in the case of FIG. 7A), the following two operations are performed.
[0107]
(1) When using special information between proxies in the FP
[0108]
(2) The FP
[0109]
Either (1) and (2) may be performed first or in parallel.
[0110]
As described above, the probability that the fingerprint values obtained from two different data coincide with each other is so small as to be practically negligible. However, if the fingerprint values obtained from the two different data match, the present invention It is also possible to solve this problem by calculating the fingerprint by another fingerprint calculation method using this method.
[0111]
Hereinafter, data transfer using the fingerprint cache will be described more specifically with reference to FIG. 23 (during registration, that is, during non-FP compression) and FIG. 24 (during FP compression). As a precondition, the server-
[0112]
First, referring to FIG. 23, the operation when transferring data not registered in the fingerprint cache from the
[0113]
(1) It is assumed that the browser or the like on the client 50 issues a POST method request message to the
[0114]
(2) The client-
[0115]
(3) The server-
[0116]
(4) After processing the request message, the
[0117]
(5) The server-
[0118]
(6) The
[0119]
As described above, when the fingerprint value calculated from the reply data is sent in the reply header or the like, the trouble of calculating the fingerprint again by the
[0120]
(7) Since the client-
[0121]
(8) The client-
[0122]
The server-
[0123]
Next, with reference to FIG. 24, an operation in the case where the data registered in the cache by performing the operation of FIG. 23 is transferred from the
[0124]
(1) to (4) are the same as (1) to (4) in the operation described with reference to FIG.
[0125]
(5) Upon receiving the reply message from the server 50, the server-
[0126]
(6) The
[0127]
(7) Upon receiving the reply message, the client-
[0128]
(8) Then, the client-side proxy 30 (in the case of a configuration in which information used only between the server-
[0129]
By the way, since the fingerprint caches of the
[0130]
However, if this is done, data that has already been deleted in the fingerprint cache 44 of the client-
[0131]
Conversely, the fingerprint cache 34 of the server-
[0132]
In (5) in the operation described with reference to FIG. 24, the server-
The fingerprint is not used anymore (the data giving the fingerprint will not be cached thereafter).
Prioritize the previously registered fingerprint / data (other data giving the same fingerprint value as the fingerprint being registered will not be cached during the registration).
Prioritize the fingerprint / data that is currently registered (the fingerprint / data being registered will be updated one after another by other data giving the same value fingerprint).
• Use another fingerprinting method after compression (especially effective when multiple fingerprints with priorities are selected to be available).
[0133]
As described above in detail, in the present embodiment, the data, the compressed data, and the method name that generated the compressed data are stored in association with each other between the data transfer apparatuses, and the data that holds these correspondences. For the data transfer method, instead of transferring data, the compressed data and method name are transferred, and the amount of data transferred between data transfer devices can be reduced, especially even when method upgrades or method names are mixed. Can be reduced.
[0134]
In addition, the server-
[0135]
Each function described above can be realized as software.
[0136]
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 that records the program.
[0137]
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.
[0138]
In addition, various variations of various components illustrated in the embodiment of the present invention can be implemented in appropriate combination.
[0139]
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.
[0140]
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.
[0141]
The present invention is not limited to the embodiment described above, and can be implemented with various modifications within the technical scope thereof.
[0142]
【The invention's effect】
According to the present invention, the data, the compressed data, and the name of the method that generated the compressed data are held in association with each other between the data transfer apparatuses, and the data holding these correspondences is transferred instead of transferring the data. In addition, by transferring the compressed data and the system name, it is possible to reduce the amount of data transferred between the data transfer apparatuses, especially even when the system is upgraded or a plurality of system names are mixed.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining a conventional computer network system
FIG. 2 is a diagram showing a configuration example of a computer network system according to an embodiment of the present invention.
FIG. 3 is a view showing another configuration example of the computer network system according to the embodiment;
FIG. 4 is a view showing still another configuration example of the computer network system according to the embodiment;
FIG. 5 is a diagram for explaining a fingerprint used in the embodiment;
FIG. 6 is a diagram for explaining a fingerprint cache used in the embodiment;
FIG. 7 is a view showing an example of a message format used in the embodiment.
FIG. 8 is a diagram showing a specific example of a message in the format of FIG.
FIG. 9 is a diagram showing a specific example of a message in the format of FIG. 7B.
FIG. 10 is a diagram showing a specific example of a message in the format of FIG.
FIG. 11 is a view showing another example of the message format used in the embodiment.
FIG. 12 is a diagram showing a specific example of a message in the format of FIG.
FIG. 13 is a diagram showing a specific example of a message in the format of FIG.
FIG. 14 is a diagram showing three processes according to the embodiment
FIG. 15 is a functional block diagram related to initialization processing and request processing according to the embodiment;
FIG. 16 is another functional block diagram relating to initialization processing and request processing according to the embodiment;
FIG. 17 is still another functional block diagram regarding initialization processing and request processing according to the embodiment;
FIG. 18 is still another functional block diagram regarding initialization processing and request processing according to the embodiment;
FIG. 19 is a functional block diagram of the server-
FIG. 20 is a view showing an operation procedure of the
FIG. 21 is a functional block diagram of the
FIG. 22 is a view showing an operation procedure of the
FIG. 23 is a diagram for explaining data transfer between the server-
FIG. 24 is a diagram for explaining data transfer between the server-
[Explanation of symbols]
2 ... ASP server center
4. User office
12 ... ASP server center LAN
14 ... WAN
16 ... LAN in user office
20 ... Server device
30 ... Server-side proxy device
40 ... Client-side proxy device
50. Client device
71 ... FP list storage unit
72, 77, 81, 83, 133, 143 ... transmission section
73, 78, 80, 82, 131, 141 ... receiver
74: FP method determining unit
75 ... FP list storage
76,79 ... FP method registration part
84 ... FP method addition part
85 ... FP separation unit
132, 142 ... processing section
134, 144 ... Fingerprint cache
135, 145 ... FP compression determination unit
136, 146 ... FP method determining unit
137, 147 ... fingerprint cache management unit
138 ... FP method addition part
139 ... FP compression processing unit
148 ... FP decompression processing part
Claims (6)
前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを前記サーバ装置から受信し、
前記リプライデータのフィンガープリントを生成するための生成方法を決定し、前記リプライデータのフィンガープリントを前記生成方法で生成し、
生成した前記フィンガープリントが前記生成方法を示す生成方法識別子と関連付けられてフィンガープリント・キャッシュに保持されているか否か判定し、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていると判定した場合に、前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていないと判定した場合に、前記フィンガープリントと前記生成方法識別子と前記リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記リプライデータと前記生成方法識別子と前記フィンガープリントとを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信することを特徴とするデータ転送方法。 A plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices and relayed to a client side proxy device in charge of access to the plurality of server devices of each of the plurality of client devices is received. The reply data transmitted from the server device to the client device as a reply to the request data is transferred to the client device as a reply to the request data among the plurality of servers. A data transfer method for a server-side proxy device that transfers to a proxy-side client-side proxy device,
Receiving from the server device reply data that is a reply to the request data transferred from the client side proxy device;
Determining a generation method for generating a fingerprint of the reply data, generating a fingerprint of the reply data with the generation method;
Determining whether the generated fingerprint is associated with a generation method identifier indicating the generation method and held in a fingerprint cache;
When it is determined that the fingerprint is associated with the generation method identifier and held in the fingerprint cache, the request and the generation method identifier are used instead of the reply data. To the client-side proxy device as addressed to the client device,
When it is determined that the fingerprint is associated with the generation method identifier and is not held in the fingerprint cache, the fingerprint, the generation method identifier, and the reply data are associated with each other in the fingerprint cache. A data transfer method comprising: adding and transmitting the reply data, the generation method identifier, and the fingerprint to the client side proxy device as the client device that is the transmission source of the request data.
前記サーバ側プロキシ装置は、
前記リプライデータのフィンガープリントを生成するための生成方法を決定し、前記リプライデータのフィンガープリントを前記生成方法で生成し、
生成した前記フィンガープリントが前記生成方法を示す生成方法識別子と関連付けられて第 1 のフィンガープリント・キャッシュに保持されているか否か判定し、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記第 1 のフィンガープリント・キャッシュに保持されていると判定した場合に、前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記第 1 のフィンガープリント・キャッシュに保持されていないと判定した場合に、前記フィンガープリントと前記生成方法識別子と前記リプライデータとを関連付けて前記第 1 のフィンガープリント・キャッシュに追加しかつ前記リプライデータと前記生成方法識別子と前記フィンガープリントとを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、
前記クライアント側プロキシ装置は、
前記サーバ側プロキシ装置から前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを受信した場合、前記フィンガープリントと前記生成方法識別子と関連付けられて第2のフィンガープリント・キャッシュに保持している前記リプライデータを前記クライアント装置へ送信し、前記サーバ側プロキシ装置から前記リプライデー タと前記生成方法識別子と前記フィンガープリントとを受信した場合、受信した前記リプライデータと前記生成方法識別子と前記フィンガープリントとを関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ受信した前記リプライデータを前記クライアント装置へ送信することを特徴とするデータ転送方法。Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; A data transfer method for a client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to data, to the client device that is the destination of the reply data. ,
The server side proxy device
Determining a generation method for generating a fingerprint of the reply data, generating a fingerprint of the reply data with the generation method;
Determining whether the generated fingerprint is associated with a generation method identifier indicating the generation method and held in a first fingerprint cache;
When it is determined that the fingerprint is associated with the generation method identifier and held in the first fingerprint cache, the request data is replaced with the fingerprint and the generation method identifier instead of the reply data. To the client-side proxy device as the addressed to the client device,
If the fingerprint is judged to be associated with the generation method identifier not retained in the first fingerprint cache, the fingerprint and the generation method identifier and the first in association with the reply data And sending the reply data, the generation method identifier, and the fingerprint to the client-side proxy device as the client device that is the transmission source of the request data,
The client side proxy device is:
When the fingerprint and the generation method identifier are received from the server-side proxy device instead of the reply data, the fingerprint and the generation method identifier are associated with the fingerprint and the generation method identifier and held in the second fingerprint cache. transmitting the reply data to the client device, wherein when receiving from the server side proxy device and the reply data and the generation method identifier and the fingerprint, and received the reply data and the generation method identifier said fingerprint Is added to the second fingerprint cache in association with each other, and the received reply data is transmitted to the client device .
前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを前記サーバ装置から受信する受信手段と、
前記リプライデータのフィンガープリントを生成するための生成方法を決定し、前記リプライデータのフィンガープリントを前記生成方法で生成するフィンガープリント生成手段と、
生成した前記フィンガープリントが前記生成方法を示す生成方法識別子と関連付けられてフィンガープリント・キャッシュに保持されているか否かを判定する判定手段と、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていると判定した場合に、前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていないと判定した場合に、前記フィンガープリントと前記生成方法識別子と前記リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記リプライデータと前記生成方法識別子と前記フィンガープリントとを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する送信手段とを備えたことを特徴とするサーバ側プロキシ装置。 A plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices and relayed to a client side proxy device in charge of access to the plurality of server devices of each of the plurality of client devices is received. The reply data transmitted from the server device to the client device as a reply to the request data is transferred to the client device as a reply to the request data. A server-side proxy device that forwards to a proxy client-side proxy device,
Receiving means for receiving reply data, which is a reply to request data transferred from the client side proxy device, from the server device;
A fingerprint generation means for determining a generation method for generating a fingerprint of the reply data, and generating a fingerprint of the reply data by the generation method;
Determining means for determining whether or not the generated fingerprint is associated with a generation method identifier indicating the generation method and held in a fingerprint cache;
When it is determined that the fingerprint is associated with the generation method identifier and held in the fingerprint cache, the request and the generation method identifier are used instead of the reply data. To the client-side proxy device and when it is determined that the fingerprint is associated with the generation method identifier and is not held in the fingerprint cache, the fingerprint and the generation method An identifier and the reply data are associated and added to the fingerprint cache, and the reply data, the generation method identifier, and the fingerprint are addressed to the client device that is the transmission source of the request data The server-side proxy apparatus characterized by comprising a transmission means for transmitting the to the client side proxy device to.
前記サーバ側プロキシ装置は、
前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを前記サーバ装置から受信する受信手段と、
前記リプライデータのフィンガープリントを生成するための生成方法を決定し、前記リプライデータのフィンガープリントを前記生成方法で生成する生成手段と、
生成した前記フィンガープリントが前記生成方法を示す生成方法識別子と関連付けられて第 1 のフィンガープリント・キャッシュに保持されているか否か判定する判定手段と、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記第 1 のフィンガープリント・キャッシュに保持されていると判定した場合に、前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記生成方法識別子と関連付けられて前記第 1 のフィンガープリント・キャッシュに保持されていないと判定した場合に、前記フィンガープリントと前記生成方法識別子と前記リプライデータとを関連付けて前記第 1 のフィンガープリント・キャッシュに追加しかつ前記リプライデータと前記生成方法識別子と前記フィンガープリントとを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装 置へ送信する送信手段とを有し、
前記クライアント側プロキシ装置は、
前記サーバ側プロキシ装置から前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを受信した場合、前記フィンガープリントと前記生成方法識別子と関連付けられて第2のフィンガープリント・キャッシュに保持している前記リプライデータを前記クライアント装置へ送信し、前記サーバ側プロキシ装置から前記リプライデータと前記生成方法識別子と前記フィンガープリントとを受信した場合、受信した前記リプライデータと前記生成方法識別子と前記フィンガープリントとを関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ受信した前記リプライデータを前記クライアント装置へ送信することを特徴とするクライアント側プロキシ装置。Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; A client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a response to data, to the client device that is the destination of the reply data,
The server side proxy device
Receiving means for receiving reply data, which is a reply to request data transferred from the client side proxy device, from the server device;
A generation means for determining a generation method for generating a fingerprint of the reply data, and generating a fingerprint of the reply data by the generation method;
Determining means for determining whether the generated fingerprint is associated with a generation method identifier indicating the generation method and held in the first fingerprint cache;
If it is determined that the fingerprint is associated with the generation method identifier and held in the first fingerprint cache, the request data is replaced with the fingerprint and the generation method identifier instead of the reply data. When it is determined that the fingerprint is associated with the generation method identifier and not held in the first fingerprint cache. fingerprint with the generation method identifier and the reply data with said first fingerprint is added to the cache and the reply data and the generation method identifier and the fingerprint and the class of the sender of the request data to associate And a transmitting means for transmitting the addressed Ant device to the client side proxy equipment,
The client side proxy device is:
When the fingerprint and the generation method identifier are received from the server-side proxy device instead of the reply data, the fingerprint and the generation method identifier are associated with the fingerprint and the generation method identifier and stored in the second fingerprint cache. When the reply data is transmitted to the client device and the reply data, the generation method identifier, and the fingerprint are received from the server side proxy device, the received reply data, the generation method identifier, and the fingerprint A client-side proxy device , wherein the reply data is added to the second fingerprint cache and the received reply data is transmitted to the client device.
前記サーバ側プロキシ装置は、
前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを前記サーバ装置から受信する受信手段と、
前記リプライデータのフィンガープリントを生成するための生成方法を決定し、前記リプライデータのフィンガープリントを前記生成方法で生成するフィンガープリント生成手段と、
生成した前記フィンガープリントが前記生成方法を示す生成方法識別子と関連付けられてフィンガープリント・キャッシュに保持されているか否かを判定する判定手段と、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていると判定した場合に、前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記生成方法識別子と関連付けられて前記フィンガープリント・キャッシュに保持されていないと判定した場合に、前記フィンガープリントと前記生成方法識別子と前記リプライデータとを関連付けて前記フィンガープリント・キャッシュに追加しかつ前記リプライデータと前記生成方法識別子と前記フィンガープリントとを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する送信手段とを有することを特徴とするコンピュータを機能させるためのプログラム。 A plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices and relayed to a client side proxy device in charge of access to the plurality of server devices of each of the plurality of client devices is received. The reply data transmitted from the server device to the client device as a reply to the request data is transferred to the client device as a reply to the request data among the plurality of servers. A program for causing a computer to function as a server-side proxy device that transfers to a proxy-side client-side proxy device,
The server side proxy device
Receiving means for receiving reply data, which is a reply to request data transferred from the client side proxy device, from the server device;
A fingerprint generation means for determining a generation method for generating a fingerprint of the reply data, and generating a fingerprint of the reply data by the generation method;
Determining means for determining whether or not the generated fingerprint is associated with a generation method identifier indicating the generation method and held in a fingerprint cache;
When it is determined that the fingerprint is associated with the generation method identifier and held in the fingerprint cache, the request and the generation method identifier are used instead of the reply data. To the client-side proxy device and when it is determined that the fingerprint is associated with the generation method identifier and is not held in the fingerprint cache, the fingerprint and the generation method An identifier and the reply data are associated and added to the fingerprint cache, and the reply data, the generation method identifier, and the fingerprint are addressed to the client device that is the transmission source of the request data Program for causing a computer to function, characterized in that a transmission means for transmitting the to the client side proxy device to.
前記サーバ側プロキシ装置は、
前記クライアント側プロキシ装置から転送されるリクエストデータへの返答であるリプライデータを前記サーバ装置から受信する受信手段と、
前記リプライデータのフィンガープリントを生成するための生成方法を決定し、前記リプライデータのフィンガープリントを前記生成方法で生成する生成手段と、
生成した前記フィンガープリントが前記生成方法を示す生成方法識別子と関連付けられて第 1 のフィンガープリント・キャッシュに保持されているか否か判定する判定手段と、
前記フィンガープリントが前記生成方法識別子と関連付けられて前記第 1 のフィンガー プリント・キャッシュに保持されていると判定した場合に、前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信し、前記フィンガープリントが前記生成方法識別子と関連付けられて前記第 1 のフィンガープリント・キャッシュに保持されていないと判定した場合に、前記フィンガープリントと前記生成方法識別子と前記リプライデータとを関連付けて前記第 1 のフィンガープリント・キャッシュに追加しかつ前記リプライデータと前記生成方法識別子と前記フィンガープリントとを前記リクエストデータの送信元の前記クライアント装置宛として前記クライアント側プロキシ装置へ送信する送信手段とを有し、
前記クライアント側プロキシ装置は、
前記サーバ側プロキシ装置から前記リプライデータの代わりに前記フィンガープリントと前記生成方法識別子とを受信した場合、前記フィンガープリントと前記生成方法識別子と関連付けられて第2のフィンガープリント・キャッシュに保持している前記リプライデータを前記クライアント装置へ送信し、前記サーバ側プロキシ装置から前記リプライデータと前記生成方法識別子と前記フィンガープリントとを受信した場合、受信した前記リプライデータと前記生成方法識別子と前記フィンガープリントとを関連付けて前記第2のフィンガープリント・キャッシュに追加しかつ受信した前記リプライデータを前記クライアント装置へ送信する送信手段とを有することを特徴とするコンピュータを機能させるためのプログラム。Receiving a plurality of request data transmitted from each of a plurality of client devices to a plurality of server devices, and transferring the request data to a server-side proxy device in charge of access to the server device to which the request data is addressed; For causing a computer to function as a client-side proxy device that transfers reply data transmitted from the server device to the client device via the server-side proxy device as a reply to data, to the client device that is the destination of the reply data A program,
The server side proxy device
Receiving means for receiving reply data, which is a reply to request data transferred from the client side proxy device, from the server device;
A generation means for determining a generation method for generating a fingerprint of the reply data, and generating a fingerprint of the reply data by the generation method;
Determining means for determining whether the generated fingerprint is associated with a generation method identifier indicating the generation method and held in the first fingerprint cache;
When it is determined that the fingerprint is associated with the generation method identifier and held in the first fingerprint cache, the request data is replaced with the fingerprint and the generation method identifier instead of the reply data. When it is determined that the fingerprint is associated with the generation method identifier and not held in the first fingerprint cache. fingerprint with the generation method identifier and the reply data with said first fingerprint is added to the cache and the reply data and the generation method identifier and the fingerprint and the class of the sender of the request data to associate And a transmitting means for transmitting the to the client side proxy device as addressed Ant device,
The client side proxy device is:
When the fingerprint and the generation method identifier are received from the server-side proxy device instead of the reply data , the fingerprint and the generation method identifier are associated with the fingerprint and the generation method identifier and held in the second fingerprint cache. When the reply data is transmitted to the client device and the reply data, the generation method identifier, and the fingerprint are received from the server side proxy device, the received reply data, the generation method identifier, and the fingerprint And a transmission means for transmitting the received reply data to the client device in association with the second fingerprint cache .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002031909A JP3977651B2 (en) | 2002-02-08 | 2002-02-08 | Data transfer method, server side proxy device, client side proxy device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002031909A JP3977651B2 (en) | 2002-02-08 | 2002-02-08 | Data transfer method, server side proxy device, client side proxy device and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003233524A JP2003233524A (en) | 2003-08-22 |
JP3977651B2 true JP3977651B2 (en) | 2007-09-19 |
Family
ID=27775181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002031909A Expired - Fee Related JP3977651B2 (en) | 2002-02-08 | 2002-02-08 | Data transfer method, server side proxy device, client side proxy device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3977651B2 (en) |
-
2002
- 2002-02-08 JP JP2002031909A patent/JP3977651B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003233524A (en) | 2003-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3990115B2 (en) | Server-side proxy device and program | |
US7480731B2 (en) | Data transfer scheme using caching technique for reducing network load | |
US7636765B2 (en) | Data transfer scheme using caching technique for reducing network load | |
US8024484B2 (en) | Caching signatures | |
JP3984086B2 (en) | Cache server, data transfer device, and program | |
JP3848209B2 (en) | Data transfer device, data transfer method and program | |
JP4031516B2 (en) | Server side proxy device, client side proxy device, data transfer method and program | |
JP3983987B2 (en) | Server-side proxy device, data transfer method, and program | |
JP4053269B2 (en) | Data transfer apparatus and data transfer method | |
JP3943867B2 (en) | Server-side proxy, data transfer method and program | |
JP2003044346A (en) | Contents providing method and network connecting device | |
JP3943868B2 (en) | Server-side proxy, data transfer method and program | |
JP3977651B2 (en) | Data transfer method, server side proxy device, client side proxy device and program | |
JP3913508B2 (en) | Data transfer apparatus and data transfer method | |
JP2003108464A (en) | Device and method for transferring data | |
JP4041157B2 (en) | Client side proxy device, data transfer method and program | |
JP3977601B2 (en) | Server side proxy device, client side proxy device and program | |
JP4157585B2 (en) | Server side proxy device, client side proxy device, data transfer method and program | |
JP4045757B2 (en) | File transfer system | |
JP4300220B2 (en) | Data transfer apparatus and data transfer method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040225 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050414 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070410 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070525 |
|
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: 20070619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070621 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100629 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110629 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120629 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120629 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130629 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |