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 PDF

Info

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
Application number
JP2002031909A
Other languages
Japanese (ja)
Other versions
JP2003233524A (en
Inventor
英昭 佐藤
達徳 金井
英樹 吉田
俊文 關
謙一郎 吉井
隆幸 宮澤
康浩 木村
春彦 外山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002031909A priority Critical patent/JP3977651B2/en
Publication of JP2003233524A publication Critical patent/JP2003233524A/en
Application granted granted Critical
Publication of JP3977651B2 publication Critical patent/JP3977651B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 serverThe 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 server 20 in the ASP server center 2 and the client 50 in the user office 4 can communicate with each other via the LAN 12, the WAN 14, and the LAN 16. One or more servers are connected to the ASP server center LAN, and one or more clients are connected to the user office LAN.
[0024]
  The WEB-based ASP provides services based on various application programs from the server 20 installed in the server center 2 via the WAN 14, and the user uses the WEB browser on the client installed in the office 4. Access the service.
[0025]
  In such a usage mode, the effective communication capacity (bandwidth) of the network connecting the user office LAN 16 and the server center LAN 12, particularly the wide area network 14 such as the Internet, is the server center LAN 12 or the user office LAN 16. Lower than that, which becomes a bottleneck in performance, causing a communication delay, resulting in a problem that the response performance of the application is lowered.
[0026]
  Therefore, in this embodiment, as shown in FIG. 2, two modules, a server-side proxy 30 and a client-side proxy 40, are installed at both ends of the wide area network 14 that connects the server center LAN 12 and the user office LAN 16. By performing fingerprint compression (FP compression) described later between them to reduce the amount of communication data, the bottleneck of the wide area network is eliminated.
[0027]
  The server 20, the server-side proxy 30, the client-side proxy 40, and the client 50 of this embodiment all have software (server program, server-side proxy program, client-side proxy program, client program) on the computer. It can be realized by operating it. In this case, an OS having a desired function of the computer, driver software, software for packet communication, encryption software, etc., or hardware such as a communication interface device, an external storage device, an input / output device, etc. is mounted or connected as necessary Is done. In this case, it is preferable to use a graphical user interface (GUI) for inputting information from the user or the administrator or presenting information to the user.
[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 server 20 and provides a service specific to the server site to the user of the client 20.
[0030]
  As shown in FIG. 2, the server-side proxy 30 is connected to both the intra-server center LAN 12 and the WAN 14 and can be installed and operated so as to operate as a transparent proxy. Further, as shown in FIG. 3, it can be installed on the LAN 12 within the server center. Further, as shown in FIG. 4, the function of the server-side proxy 30 can be implemented in the server 20.
[0031]
  Similarly, as shown in FIG. 2, the client-side proxy 40 can be implemented by connecting to both the intra-user office LAN 16 and the WAN 14 so as to operate as a transparent proxy. Further, as shown in FIG. 3, it can be installed on the user office LAN 16 and implemented. Further, as shown in FIG. 4, the function of the client side proxy 40 can be implemented in a browser or the like that operates on the client 50. Alternatively, the client-side proxy 40 for personal use may be operated on the client 50 that operates such as a browser.
[0032]
  Note that the server-side proxy 30 and the client-side proxy 40 may have the same form as shown in FIGS. 2 to 4 or different forms.
[0033]
  Both the server side proxy 30 and the client side proxy 40 of this embodiment have a cache mechanism called a fingerprint cache (FP cache). The fingerprint cache records and manages data exchanged by the HTTP protocol by a name called a fingerprint (FP).
[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-side proxies 30 and all the client-side proxies 40, they can be handled without being aware of the calculation method. However, in reality, as described above, since the WAN 14 is assumed to be the open world, various devices other than the server-side proxy 30 and the client-side proxy 40 of this embodiment are connected. Even if the server-side proxy 30 and the client-side proxy 40 of the present embodiment are connected, there is a high possibility that a different calculation method is used depending on individual circumstances.
[0037]
  Therefore, as shown in FIG. 6A, the fingerprint cache (60 in the figure) of the server-side proxy 30 and the client-side proxy 40 has a data body (61 in the figure) exchanged in the past by the HTTP protocol. ) Is recorded and managed using the fingerprint value (62 in the figure) calculated from the data as a name, and the fingerprint method (in the figure) indicating which fingerprint method was used for the calculation. 63) is also managed at the same time. In FIG. 6A, the fingerprint method 63 is managed for each of the fingerprint 62 and the data body 61. However, the present invention is not limited to this method. For example, as shown in FIG. Alternatively, the fingerprint 62 and the data body 61 may be managed for each. In the method of FIG. 6B, when searching the data main body 61 from the fingerprint 62, if the fingerprint calculation method is known, it is not necessary to search for data of a different calculation method, so that higher speed processing is possible.
[0038]
  When such a fingerprint cache method is applied, for example, when data is transferred from the server-side proxy 30 to the client-side proxy 40 using the HTTP protocol, the server-side proxy 30 uses a calculation method in which the fingerprint of the data is designated. If the data corresponding to the fingerprint is in the fingerprint cache, the data (the data with the same contents) has been transferred in the past, so the corresponding data is not transferred. The fingerprint value and calculation method to be transferred are transferred. The client-side proxy 40 that has received the fingerprint value and the calculation method can reproduce the data to be transferred by extracting the data corresponding to the fingerprint value from the fingerprint cache by the calculation method. . With this method (ie, data compression → data transfer → data decompression), it is only necessary to send the calculation method and fingerprint value if the data is the same as that sent in the past. Can be reduced.
[0039]
  For explanation, when transferring data between the server-side proxy 30 and the client-side proxy 40, the fingerprint cache is used to replace the message body data with the fingerprint to compress the transfer information amount. This is called print compression (FP compression).
[0040]
  Note that, between the server-side proxy 30 and the client-side proxy 40, all messages are subject to application of FP compression (that is, subject to processing for replacing data with fingerprints using a fingerprint cache). However, for example, in order to exclude the application to the one where the effect of the fingerprint cache cannot be expected, the message that satisfies the predetermined condition is excluded from the application target of the FP compression (always FP compression is not performed). May be transferred).
[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-side proxy 30 and the client-side proxy 40 will be described with reference to FIGS. .
[0044]
  When data is transferred between the server-side proxy 30 and the client-side proxy 40, a message to which FP compression is applied includes a message in which data is FP compressed and replaced with a fingerprint (message at the time of compression), and FP There are messages that are not compressed and have data (uncompressed messages).
[0045]
  The message format when uncompressed is the fingerprint of the data contained in the messageUsed 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-side proxy 40 knows a predetermined FP method used when transferring the message format, a message format (illustrated) obtained by removing the FP method from the message format of FIG. Do not). Similarly, a message format (not shown) obtained by removing the FP method from the message format of FIG.
[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-side proxy 40 knows the FP method used when transferring the message format, the message format (not shown) is obtained by removing the FP method from the message format of FIG. May be. Similarly, a message format (not shown) obtained by removing the FP method from the message format of FIG.
[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 server 20, after the connection between the client 50 and the server 20 is established, the server 20 and the client 50 are roughly divided into three processes as shown in FIG. Done.
[0057]
  First, connection between the devices between the client 50 and the server 20 (here, between the client 50 and the client side proxy 40, between the client side proxy 40 and the server side proxy 30, and between the server side proxy 30 and the server 20) Initialization processing such as exchange of various information necessary for the process is performed.
[0058]
  Next, a request for requesting web page content from the client 50 to the server 20 is performed.TomeMessage processing (hereinafter, request processing) is performed.
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 server 20 transfers the requested web page content in one direction from the client 50 to the client 50.ImeMessage processing is performed.
[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 server side proxy 30 and the client side proxy 40 is demonstrated in detail, dividing into said initialization process and request process, and a reply process. In addition, in each process, except between the server side proxy 30 and the client side proxy 40, there is no change with each process performed conventionally (it is as it is), and description is abbreviate | omitted.
[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-side proxy 40 includes an FP list storage unit 71 that stores an FP method list indicating a fingerprint calculation method owned by itself. The FP method list of the client-side proxy 40 is added to the client-side proxy 40 when the new fingerprint calculation method is stored (installed) in a storage device (not shown). When the fingerprint calculation method stored in the storage device is deleted (uninstalled), the FP method name is also deleted.
[0064]
  Similarly, the server-side proxy 30 also includes an FP list storage unit 75 that stores an FP method list indicating a fingerprint calculation method owned by itself. This FP method list of the server-side proxy 30 is also added to the server-side proxy 30 when the new fingerprint calculation method is stored (installed) in a storage device (not shown). When the fingerprint calculation method stored in the storage device is deleted (uninstalled), the FP method name is also deleted.
[0065]
  At the time of initialization processing, the re-transmission between the server-side proxy 30 and the client-side proxy 40 at the time of this connectionImeNew message on message transferFromFingerprintGenerateAn agreement is made on how to calculate the fingerprint of the case.
[0066]
  In FIG. 15, first, the FP method list of the client side proxy 40 is read from the FP list storage unit 71 of the client side proxy 40, and is transmitted to the server side proxy 30 by the transmission unit 72. The server-side proxy 30 receives the FP method list of the client-side proxy 40 by the receiving unit 73 and supplies it to the FP method determining unit 74. Further, the FP method list of the server side proxy 30 is supplied from the FP list storage unit 75 to the FP method determination unit 74.
[0067]
  The FP method determination unit 74 selects one fingerprint calculation method name that matches between the FP method list of the server side proxy 30 and the FP method list of the client side proxy 40. In this selection, for example, a priority is assigned in advance to each FP method in the FP method list 72 held by the client side proxy 40, and the one having the highest priority is selected from the above selectable ones. You can do it.
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 method registration unit 76. In addition, the selected calculation method name is notified to the client-side proxy 40 via the transmission unit 77.
[0069]
  The reception unit 78 of the client side proxy 40 temporarily registers (including Null) the selected calculation method in the FP method registration unit 79. As a result, the client-side proxy 40 and the server-side proxy 30 can understand the fingerprint calculation method (or that there is no matching FP method) used at the time of this connection.
[0070]
  When the initialization process is completed, the request process is performed. The client-side proxy 40 requests the client 50TomeThe message is received by the receiving unit 80 and transferred from the transmitting unit 81 to the server-side proxy 30 as it is. The server-side proxy 30 sends the forwarded requestTomeThe message is received by the reception unit 82 and transferred to the server 20 via the transmission unit 83 as it is. The request processing shown here is equivalent to the processing in the conventional configuration.
[0071]
  For the sake of convenience, the receiving unit 73 and the receiving unit 82 of the server-side proxy 30 are described as different blocks. Furthermore, although the transmission unit 77 and the transmission unit 83 of the server-side proxy 30 are described in different blocks, it is needless to say that they may be configured in the same way. The same applies to the reception units 78 and 80 and the transmission units 72 and 81 of the client-side proxy 40.
[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-side proxy 30 does not temporarily register the fingerprint calculation method name determined by the server-side proxy 30. Instead, at the time of request processing, the client side proxy 40 reads the FP method name determined and registered at the time of initialization processing from the FP method registration unit 79, and requests this FP method name from the client 50.TomeAn FP method adding unit 84 for newly adding to a message is newly provided. Request to which FP method name is added by FP method adding unit 84TomeIn the message, the FP method name is separated by the FP method separation unit 85 newly added to the server-side proxy 30. The separated FP method name is temporarily registered in the FP method registration unit 76 of the server side proxy 30 as in FIG.
[0074]
  In the case of FIG. 16, the server-side proxy 30 knows the determined fingerprint calculation method only after the request processing is performed.
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-side proxy 30 to the client-side proxy 40, as compared to the initialization process of FIG. Is different. There is no change in the request processing. Note that if there is no FP scheme that matches the two, handling as Null is the same as in 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.
[0077]
  In the case of FIG. 17, even if the request processing is completed, the client-side proxy 40 does not know the determined fingerprint calculation method name. Since the fingerprint calculation is performed at the time of reply processing described later, it is sufficient to know by the calculation time.
[0078]
  In each of FIGS. 15 to 17, the FP method is determined by the server-side proxy 30. However, the FP method list of the server-side proxy 30 is transmitted to the client-side proxy 40 in the opposite manner. Of course, the side proxy 30 may determine the FP method.
[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-side proxy 30 and the client-side proxy 40 includes FP list storage units 71 and 75 that store an FP method list indicating a fingerprint calculation method owned by itself. The addition and deletion of this FP method list may be the same as the method described above.
[0082]
  At the time of processing the request, the client side proxy 40 requests the client 50.TomeThe message is received by the receiving unit 80. The client side proxy 40 selects one fingerprint calculation method name by a predetermined method from its own FP method list stored in the FP list storage unit 75, and temporarily registers it in the FP method registration unit 79. Further, the FP method adding unit 84 reads out the temporarily registered FP method name and receives the received request.TomeAppend to message. For this selection, for example, a priority is given in advance to each FP method in the FP method list held by the client side proxy 40 itself, and the one with the highest priority may be selected.
[0083]
  The request message to which the FP calculation method name is added is separated by the FP method separation unit 85 of the server side proxy 30. The separated FP method name confirms whether there is a match between the FP method lists in which the names of the FP methods included in the server-side proxy 30 provided in advance in the FP list storage unit 71 of the server-side proxy 30 are described. . If there is a match, the FP method name is temporarily registered in the FP method registration unit 76. On the other hand, if there is no match, it is treated as Null, and information indicating that it is not registered or not present in the FP method registration unit 76 is temporarily registered. Further, in this embodiment, one FP method name is selected, but a plurality of selections may be made by adding priorities as in the description of FIG.
[0084]
  The server-side proxy 40 is a separate requestTomeThe message is transferred to the server 20 via the transmission unit 83.
[0085]
  Then,ImeThe message process will be described with reference to FIGS.
[0086]
  First, a case where the server side proxy 30 receives a reply message from the server 20 will be described.
[0087]
  As shown in FIG. 19, the server-side proxy 30 includes a receiving unit 131 that performs processing for receiving a transfer message from the intra-server center LAN 12 or the wide area network 14, and FP compression for data included in the transfer message. A processing unit 132 for performing processing, a transmission unit 133 for performing processing for transmitting a transfer message to the LAN 12 in the server center or the wide area network 14, and a finger for storing fingerprints in association with the original data The print cache (FP cache) 134 includes an FP method registration unit 76 that temporarily registers the FP method name during the initialization process and the request process described above. Further, the processing unit 132 refers to a fingerprint (FP) compression determination unit 135 and an FP method registration unit 76 for determining whether or not the data included in the transfer message is to be compressed. FP method determination unit 136 for determining whether to calculate a print, fingerprint cache (FP cache) management unit 137 for performing search and registration with respect to the fingerprint cache 134, and a finger corresponding to data included in the transfer message A fingerprint (FP) compression processing unit 139 for performing processing such as replacement by printing is included. In the case of the initialization process and the request process already described in FIGS. 17 and 18, an FP method addition unit 138 that adds the FP method used for calculating the FP to the message is further provided during the reply process.
[0088]
  FIG. 20 shows an example of the processing procedure of the server side proxy 30 when the reply message is transferred from the server side proxy 30 to the client side proxy 40. Note that FIG. 20 describes processing when one reply message is received, but actually the processing illustrated in FIG. 20 is performed on all reply messages received by the server-side proxy 30.
[0089]
  The server side proxy 30 receives a reply message from the server 20 by the receiving unit 131 (step S1).
[0090]
  The FP compression determination unit 135 checks and determines whether the reply data of the reply message is for FP compression (step S2). If it is determined that the reply data is not subject to FP compression (step S2), the received reply message is transferred from the transmission unit 133 to the client side proxy 40 (step S12).
[0091]
  If it is determined in step S2 that the reply data of the reply message is for FP compression, the FP method determination unit 136 refers to the FP method registration unit 76 (step S3) and temporarily registers the FP method. The name FP method is determined as the FP method to be used (step S4). Next, the FP cache management unit 137 calculates the fingerprint value of the reply data using the FP method determined in step S4 (step S5), and uses the fingerprint value and the calculation method as a key to create a fingerprint. The print cache 34 is searched (step S6).
[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 compression processing unit 139 converts the received reply message into the fingerprint cache. The print value is used for the FP compression format and transmitted from the transmission unit 133 to the client side proxy 40 (step S9). If the initialization process and the request process already described are in FIG. 17 or FIG. 18, the FP system determined by the FP system determination unit 136 is further added to the message in step S9. Is necessary (step S8). When the FP method determined by the FP method determining unit 136 is different from the FP method stored in the cache, (1) FP is recalculated using the FP method determined by the FP method determining unit 136. (2) The FP method to be added to the message is determined by a method such as using the FP method stored in the cache. The format in this case is, for example, FIG. Note that step S8 may be performed even when the initialization process and the request process already described are in FIGS.
[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 compression processing unit 139, the received reply message is converted into a non-FP compression format (using the fingerprint value and calculation method as necessary) (for example, FIG. ), And is transmitted from the transmission unit 133 to the client side proxy 40 (step S10).
[0096]
  (2) The FP cache management unit 137 associates the fingerprint value with the calculation method and the reply data (using the fingerprint value as a key) and registers it in the fingerprint cache 134 (step S11).
[0097]
  Note that either of (1) and (2) may be performed first or in parallel.
[0098]
  As shown in FIG. 21, the client-side proxy 40 includes a receiving unit 141 that performs processing for receiving a transfer message from the user office LAN 16 or the wide area network 14, and performs FP decompression on the data included in the transfer message. A processing unit 142 for performing processing, a transmission unit 143 for performing processing for transmitting a transfer message to the user office LAN 16 or the wide area network 14, and a finger for storing the fingerprint and the original data in association with each other A print cache (FP cache) 144 is provided. Further, the processing unit 142 determines whether or not the data included in the transfer message should be subject to compression and the fingerprint (FP) compression determination unit 145 and the FP method registration unit 79 for determining whether or not FP compression is performed on the transfer message. An FP method determining unit 146 that determines an FP compression method with reference to the temporarily stored FP method name, and a fingerprint cache (FP cache) management unit 147 for performing search and registration with respect to the fingerprint cache 144 And a fingerprint (FP) decompression processing unit 148 for performing processing such as decompressing the original data from the fingerprint included in the FP-compressed transfer message. Note that when the initialization process and the request process already described are in FIG. 17, the FP method registration unit 79 is not (or has not been temporarily registered), so the FP method determination unit 146 analyzes the reply message, The FP method is determined with reference to the FP method included in the message. Also in the case of FIG. 18, since the FP method is registered in the FP method registration unit 79 without confirming whether or not the FP method is supported by the server side proxy 30, the FP method determination unit 146 It is preferable that the reply message is analyzed and the FP method is confirmed by referring to the FP method included in the message.
[0099]
  Next, FIG. 22 shows an example of the processing procedure of the client side proxy 40 when the reply message is transferred from the server side proxy 30 to the client side proxy 40. FIG. 21 describes the processing when one request message is received, but actually the processing illustrated in FIG. 22 is performed for all the request messages received by the client side proxy 40.
[0100]
  The client side proxy 40 receives a reply message from the server side proxy 30 by the receiving unit 141 (step S21).
[0101]
  The FP compression determination unit 145 checks and determines whether the reply data of the reply message is for FP compression (step S22). If it is determined that the reply data is not subject to FP compression (step S22), the received reply message is transferred from the transmission unit 143 to the client 50 (step S31).
[0102]
  If it is determined in step S22 that the reply data of the reply message is for FP compression, the FP compression determination unit 145 further checks to determine whether the reply data is FP compressed (step). S23).
[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 method registration unit 76 is used. The FP method to be used is determined (S24). In step S24, when the already described initialization process and request processing are in FIGS. 17 and 18, the FP method to be used is determined from the FP method name included in the reply message (step S24). In the case of FIG. 18 as well, the reason for performing step S24 is that the server side proxy 30 can process even the case where the FP method selected from the client side proxy 40 is not supported.
[0104]
  Next, the FP cache management unit 147 obtains the fingerprint value of the reply data by the FP method determined in step S24 (step S25), and uses the fingerprint value and the calculation method as a key to the fingerprint cache 144. Is searched (step S26).
[0105]
  When the FP decompression processing unit 148 adds data corresponding to the fingerprint value retrieved from the fingerprint cache 144 to the received reply message and uses special information between proxies. After deleting the information, transmits the information from the transmission unit 43 to the client 50 (step S27). At this time, if necessary, the value of the field (Content-Length: field) indicating the data length in the reply header is set to the length of the data corresponding to the value of the fingerprint.
[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 decompression processing unit 148, after deleting the information from the received reply message, the information is transmitted from the transmission unit 143 to the client 50 (step S29).
[0108]
  (2) The FP cache management unit 147 obtains the fingerprint value and calculation method of the reply data (step S28), and associates the fingerprint value with the reply data (fingerprint value and Using the calculation method as a key, registration is made in the fingerprint cache 144 (step S30).
[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-side proxy 30 and the client-side proxy 40 will be described as the system of FIG. 15 that temporarily registers the FP method during the initialization process.
[0112]
  First, referring to FIG. 23, the operation when transferring data not registered in the fingerprint cache from the server side proxy 30 to the client side proxy 40 and registering the fingerprint cache will be described.
[0113]
  (1) It is assumed that the browser or the like on the client 50 issues a POST method request message to the server 20 with the URL “/A.cgi”, for example. First, a browser or the like is set so that a request message to the server 20 is sent to the client-side proxy 40.
[0114]
  (2) The client-side proxy 40 that has received the request message from the client 50 transfers the request message to the server-side proxy 30.
[0115]
  (3) The server-side proxy 30 that has received the request message transfers the request message to the server 50.
[0116]
  (4) After processing the request message, the server 20 sends the reply message back to the server-side proxy 30.
[0117]
  (5) The server-side proxy 30 that has received the reply message first receives the reply message.TheA fingerprint is calculated using the fingerprint method determined at the time of initialization processing of the reply data included, and it is checked whether data having the fingerprint name is in the fingerprint cache. If not, the first data (if the fingerprint cache is registered in the configuration that may be deleted or invalidated later, once the fingerprint cacheInThe registered data is deleted or invalidated (including the first case after that), and the data is entered (registered) in the fingerprint cache 34 with the fingerprint as a name.
[0118]
  (6) The server side proxy 30 transfers the reply message to the client side proxy 40.
[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 client side proxy 40 can be saved.
[0120]
  (7) Since the client-side proxy 40 that has received the reply message is the first data, it extracts the fingerprint method name that has been temporarily registered or entered in the reply header or the like from the reply data, and also prints the fingerprint cache 44. Register with. As described above, the fingerprint is calculated from the reply data, or the fingerprint put in the reply header or the like by the server side proxy is taken out and this is entered as a name.
[0121]
  (8) The client-side proxy 40 deletes the information used only between the server-side proxy 30 and the client-side proxy 40 (such as a fingerprint value in the reply header). After that, a reply message is sent back to the client 50 (such as a browser operating on the client 50).
[0122]
  The server-side proxy 30 may perform the fingerprint cache registration (5) described above after the operation (6). Further, in the client side proxy 40, the fingerprint cache registration of (7) may be performed after the operation of (8).
[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 server side proxy 30 to the client side proxy 40 will be described.
[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-side proxy 40 first calculates the fingerprint of the reply data included in the received reply message using the FP method that has already been determined at the time of connection, and calculates the FP method and fingerprint name. It is checked whether or not the stored data is stored in the fingerprint cache 34. If it is, it is data that has been sent in the past (data registered in the fingerprint cache), so (for example, put the fingerprint value in the reply header and empty the reply body as described above) Replacing the reply body data with the fingerprint.
[0126]
  (6) The server side proxy 30 transfers the reply message in which the reply body is replaced with the fingerprint to the client side proxy 40.
[0127]
  (7) Upon receiving the reply message, the client-side proxy 40 detects that the reply data has been replaced with the fingerprint, and uses the specified fingerprint (for example, in the reply header as described above) The corresponding data is taken out from the print cache 44 and is put into the reply body.
[0128]
  (8) Then, the client-side proxy 30 (in the case of a configuration in which information used only between the server-side proxy 30 and the client-side proxy 40 such as a fingerprint value exists in the reply header or the like) After deleting), a reply message is sent back to the client (such as a browser operating on the above).
[0129]
  By the way, since the fingerprint caches of the server side proxy 30 and the client side proxy 40 have an upper limit in capacity, garbage collection is performed according to a predetermined algorithm, for example, erasing old data or data that is unlikely to be used. Is preferred.
[0130]
  However, if this is done, data that has already been deleted in the fingerprint cache 44 of the client-side proxy 40 can be generated even if the fingerprint cache 34 of the server-side proxy 30 is held. In the above (7), the client side proxy 40 tried to extract the data to replace the reply data from the fingerprint cache 44 based on the fingerprint, but the fingerprint and data corresponding to the fingerprint cache 44 May not exist. In such a case, for example, the client-side proxy 40 requests the server-side proxy 30 to send the specified fingerprint data, and the requested server-side proxy 30 receives the specified fingerprint. It is sufficient to provide a mechanism for fetching the data from the fingerprint cache 34 and sending it back.
[0131]
  Conversely, the fingerprint cache 34 of the server-side proxy 30 has already been deleted, but the fingerprint cache 44 of the client-side proxy 40 is still held.HaveIf there is data, the client side proxy 40 registers the fingerprint / reply data in the fingerprint cache 44 in step (7) in the operation described with reference to FIG. The fingerprint / reply data that has been made may be overwritten.
[0132]
  In (5) in the operation described with reference to FIG. 24, the server-side proxy 30 obtains the fingerprint of the reply data, and if the fingerprint is in the fingerprint cache 34, the same data as the reply data. Are processed in the fingerprint cache 34 as a pair with the fingerprint. In practice, this method is sufficient if it is assumed that the same fingerprint is not generated from different data. There is also a way to get rid of. In this case, when the fingerprint obtained from the reply data is in the fingerprint cache 34, the data in the fingerprint cache 34 paired with the fingerprint and the ply data are combined. What is necessary is just to judge whether it is the same by comparing. At this time, if it is determined that data having the same fingerprint but different contents is registered, a method exemplified below can be considered.
The fingerprint is not used anymore (the data giving the fingerprint will not be cached thereafter).
Prioritize the previously registered fingerprint / data (other data giving the same fingerprint value as the fingerprint being registered will not be cached during the registration).
Prioritize the fingerprint / data that is currently registered (the fingerprint / data being registered will be updated one after another by other data giving the same value fingerprint).
• 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-side proxy 30 or the client-side proxy 40 of the present embodiment is provided with a correspondence table (URL / FP table) between URLs and fingerprints, and by using this together with the fingerprint cache, It is also possible to perform a shared cache operation.
[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-side proxy 30 at the time of reply according to the embodiment.
FIG. 20 is a view showing an operation procedure of the server side proxy 30 at the time of reply according to the embodiment.
FIG. 21 is a functional block diagram of the client side proxy 40 at the time of reply according to the embodiment;
FIG. 22 is a view showing an operation procedure of the client side proxy 40 at the time of reply according to the embodiment.
FIG. 23 is a diagram for explaining data transfer between the server-side proxy 30 and the client-side proxy 40 according to the embodiment;
FIG. 24 is a diagram for explaining data transfer between the server-side proxy 30 and the client-side proxy 40 according to the embodiment;
[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 .
JP2002031909A 2002-02-08 2002-02-08 Data transfer method, server side proxy device, client side proxy device and program Expired - Fee Related JP3977651B2 (en)

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)

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