JP4053269B2 - データ転送装置およびデータ転送方法 - Google Patents
データ転送装置およびデータ転送方法 Download PDFInfo
- Publication number
- JP4053269B2 JP4053269B2 JP2001295364A JP2001295364A JP4053269B2 JP 4053269 B2 JP4053269 B2 JP 4053269B2 JP 2001295364 A JP2001295364 A JP 2001295364A JP 2001295364 A JP2001295364 A JP 2001295364A JP 4053269 B2 JP4053269 B2 JP 4053269B2
- Authority
- JP
- Japan
- Prior art keywords
- identification information
- reply
- cache
- message
- request message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 48
- 238000012546 transfer Methods 0.000 title claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 13
- 230000006835 compression Effects 0.000 description 40
- 238000007906 compression Methods 0.000 description 40
- 238000012545 processing Methods 0.000 description 23
- 238000004458 analytical method Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、他の装置のためにデータ転送を行うデータ転送装置およびデータ転送方法に関する。
【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ブラウザを使って、ネットワーク経由でサーバ上の情報やサービスにアクセスするシステムが普及するにつれて、下記のように従来のキャッシュ技術では対応できないデータが増加している。
【0016】
・ユーザの認証を行い、アクセスできるユーザを制限しているので、プライベートデータが多い。
【0017】
・バックエンドのデータベースを参照して生成する動的データが多い。
【0018】
・帳票処理や検索などPOSTメソッドを使う場合が多い。
【0019】
・グループ内の情報共有のためにPUTメソッドを使う場合が多い。
【0020】
この結果、キャッシュ技術のみではネットワークの負荷を軽減する手法として有効に機能しなくなってきている。
【0021】
本発明は、上記事情を考慮してなされたもので、データ転送装置間を接続するネットワークの負荷をより軽減することができるキャッシュ技術・圧縮技術を備えたデータ転送装置、および、データ転送方法を提供することを目的とする。
【0022】
【課題を解決するための手段】
上記課題を解決するために本発明のデータ転送装置は、第1の装置と第2の装置との通信を中継するデータ転送装置において、キャッシュデータと、該キャッシュデータの識別情報であるキャッシュ識別情報とを関連付けて記憶する識別情報キャッシュを行う識別情報キャッシュ手段と、第2の装置への所望データの送信要求を示し、リクエストヘッダを有するリクエストメッセージを、第1の装置から受信するリクエスト受信手段と、リクエストヘッダを解析し、識別情報キャッシュを行う識別情報キャッシュ装置をリクエストメッセージが経由してきたか否かを解析する解析手段と、リクエストメッセージが識別情報キャッシュ装置を経由してきたか否かを示す経由情報を保持する保持手段と、リクエストメッセージを第2の装置へ送信するリクエスト送信手段と、リクエストメッセージに対応しリプライヘッダとリプライボディとを有するリプライメッセージを、第2の装置から受信するリプライ受信手段と、保持手段に保持された経由情報に基づいて、リプライメッセージに対応するリクエストメッセージが識別情報キャッシュ装置を経由してきたか否かを判定する判定手段と、リプライボディの識別情報であるリプライボディ識別情報を定める識別情報決定手段と、識別情報キャッシュ手段に記憶されたキャッシュ識別情報のなかからリプライボディ識別情報を検索する識別情報キャッシュ検索手段と、リプライメッセージに対応するリクエストメッセージが識別情報キャッシュ装置を経由してきたと判定された場合に該リプライボディ識別情報とリプライボディとを関連付けて識別情報キャッシュ手段に記憶させ、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由しなかったと判定された場合に該リプライボディ識別情報と前記リプライボディとを関連付けて前記識別情報キャッシュ手段に記憶させない識別情報キャッシュ登録手段と、リプライメッセージに対応するリクエストメッセージが識別情報キャッシュ装置を経由しなかったと判定された場合あるいはリプライメッセージに対応するリクエストメッセージが識別情報キャッシュ装置を経由してきたと判定されかつキャッシュ識別情報のなかにリプライボディ識別情報がない場合にリプライメッセージを第1の装置へ送信し、リプライメッセージに対応するリクエストメッセージが識別情報キャッシュ装置を経由してきたと判定されかつキャッシュ識別情報のなかにリプライボディ識別情報がある場合にリプライメッセージのリプライボディをリプライボディ識別情報に置き換えた識別情報リプライメッセージを第1の装置へ送信するリプライ送信手段とを備える。
【0023】
識別情報キャッシュ登録手段は、キャッシュ識別情報のなかにリプライボディ識別情報がない場合に、リプライボディと、そのリプライボディ識別情報とを関連付けて識別情報キャッシュ手段に記憶させる構成としてもよい。
【0024】
キャッシュ識別情報は、キャッシュデータから求められたキャッシュデータのFPであり、リプライボディ識別情報は、リプライボディから求められたリプライボディのFPであってもよい。
【0025】
これらにより、リクエストメッセージに対応するリプライメッセージに、リクエストメッセージにおいて付加される情報を反映することができるようになった。
【0026】
特に、システム構成等の問題点などが解消できるようになった。
【0027】
またこれにより、誤動作することなく、複数のデータ転送装置間を接続するネットワークの負荷をより軽減することができるキャッシュ技術・圧縮技術を備えることができる。
【0028】
またこれにより、リクエストメッセージに対応するリプライメッセージに、リクエストメッセージにおいて付加される情報を反映することができるようになった。
【0029】
特に、システム構成等の問題点などが解消できるようになった。
【0030】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【0031】
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【0032】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0033】
以下では、WANがインターネットであり、クライアントは支社4内のLANに接続されたものであり、HTTPプロトコルが使用されるような場合を例にとって説明するが、もちろん、本発明は、WANがインターネット以外のものであっても、クライアントが支社以外の例えば家庭内LAN等に設置されたものであっても、HTTPプロトコル以外のプロトコルが使用されるものであっても適用可能である。
【0034】
図1は、本発明を適用するコンピュータ・ネットワーク・システムの全体構成例を示すものであり、特にここでは様々なネッワーク形態があることを示すためにそれぞれ異なるネットワーク形態を備える3つの会社を例示している。
【0035】
ASPサーバセンター2内のローカルエリアネットワーク(LAN)12と、各会社の支社内のローカルエリアネットワーク(LAN)16との間はそれぞれ、インターネットや専用回線などの広域ネットワーク(WAN)14、支社間を接続する全社のLAN18、通常プロキシ70、クライアント側プロキシ40等を介して接続されており、ASPサーバセンター2内のサーバ20と、各支社4内のクライアント50とが、通信可能になっている。ASPサーバセンター2内LAN12には1または複数のサーバが接続され、支社内LAN16には1または複数のクライアントが接続される。また、各会社内の他のLAN18にも、通常プロキシ70やクライアント側プロキシ40を介して、または直接、複数のクライアント(図示しない)が接続される。
【0036】
WEBベースのASPは、サーバセンター2に設置したサーバ20から、WAN14を介して、様々なアプリケーションプログラムによるサービスを各会社へ提供し、ユーザは支社4内に設置されたクライアント上のWEBブラウザ等を使ってそれらのサービスにアクセスする。
【0037】
このような利用形態においては、ユーザオフィス内LAN16とサーバセンター内LAN12との間のネットワークのうち、特にインターネットなどの広域ネットワーク14の実効的な通信容量(バンド幅)は、サーバセンター内LAN12やユーザオフィス内LAN16等よりも低く、そこが性能上のボトルネックになって通信遅延が発生し、アプリケーションの応答性能が低下するという問題が発生する。
【0038】
そこで、本実施形態では、サーバ20とWAN14間、およびクライアント50とWAN14間に、サーバ側プロキシ30およびクライアント側プロキシ40という2つのモジュールを設置し、それらの間で後述するフィンガープリント圧縮(FP圧縮)を行って通信データ量を低減することで、広域ネットワーク40のボトルネックを解消する。
【0039】
本実施形態のサーバ20、サーバ側プロキシ30、クライアント側プロキシ40、クライアント50、通常プロキシ70は、いずれも、計算機上でソフトウェア(サーバプログラム、サーバ側プロキシ・プログラム、クライアント側プロキシ・プログラム、クライアント・プログラム、通常プロキシ・プログラム)を動作させる形で実現することができる。この場合に、必要に応じて計算機所望の機能を有するOSやドライバソフト、パケット通信用ソフト、暗号ソフト等といったソフトウェア、あるいは通信インタフェース装置や外部記憶装置や入出力装置等といったハードウェアが搭載あるいは接続される。また、この場合に、ユーザあるいは管理者からの情報の入力やユーザへの情報の呈示等のために、グラフィカル・ユーザ・インタフェース(GUI)を用いると好ましい。
【0040】
サービスを利用するためにユーザが使用するクライアント50上では、その目的に応じて例えばWEBブラウザ等のプログラムが動作する。ユーザは、例えば、WEBブラウザからインターネットを介し情報転送あるいは注文受付等の所望のサービスを提供するサーバにリクエストメッセージを出し、リプライメッセージを受けることによって、またはこれを適宜繰り返すことによって、サービスを利用する。もちろん、WEBブラウザ等の汎用のソフトウェアではなく、特定のサービスを利用するための専用のソフトウェアなどの他のものが用いられても構わない。また、クライアントは、汎用の計算機ではなく、例えばインターネット機能を有する携帯電話端末等でもよい。
【0041】
サーバ20上では、所定のサーバプログラムが動作し、クライアント50のユーザに対して、当該サーバ・サイトに固有のサービスを提供する。
【0042】
サーバ側プロキシ30は、図1のように、サーバセンター内LAN12とWAN14との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図2(a)のように、サーバセンター内LAN12上に設置して実施することもできる。また、図3(a)のように、サーバ側プロキシ30の機能をサーバ20に内蔵するように実施することもできる。
【0043】
同様に、クライアント側プロキシ40は、図1のように、支社内のLAN16とLAN18との両方に接続し、トランスペアレント・プロキシとして動作するように設置して実施することができる。また、図2(b)のように、支社内のLAN16上に設置して実施することもできる。また、図3(b)のように、クライアント側プロキシ40の機能をクライアント50上で動作するブラウザ等に内蔵するように実施することもできる。あるいは、ブラウザ等の動作するクライアント50上に、個人用のクライアント側プロキシ40を動作させるように実施することもできる。
【0044】
また、クライアント側プロキシ40は、例えば、WAN14とLAN18との間に、WAN14とLAN18との中継を行うとともに、本社の複数のクライアント50(図示しない)のプロキシとして、更に設けられることもある(例えば、図1の真中の会社)。
【0045】
通常プロキシ70も、例えば、WAN14とLAN18との間に、WAN14とLAN18との間の中継を行うとともに、本社の複数のクライアント50(図示しない)のプロキシとして、更に設けられることもある(例えば、図1の上の会社)。なお、通常プロキシ70は、現在一般的に用いられているHTTPプロキシサーバのことを指しており、一方サーバ側プロキシ30、クライアント側プロキシ40は、後述するFP圧縮を行って通信データを削減する機能を有する新規のHTTPプロキシサーバのことを指している。
【0046】
上記のコンピュータ・ネットワーク・システムにおいて、本実施の形態の概念的なフローについて、図4及び図5を用いて説明する。
【0047】
図4は、サーバ20上のWebコンテンツをサーバ側プロキシ30およびクライアント側プロキシ40へキャッシュする際の動作フローを示している。
【0048】
まず、ユーザは、支店4内のクライアント50のブラウザから、所望のサーバ20に記憶されるWebコンテンツを読み出すために、そのWebコンテンツのURLを指定して、リクエストを行う。
【0049】
このリクエストは、ネットワークを介して、サーバ20へ通知される(図4−1)。この通知を受け取ったサーバ20はリクエストされたWebコンテンツを読み出して、サーバ側プロキシ30へ送信する(図4−2)。サーバ側プロキシ30は、受け取ったWebコンテンツのフィンガープリント(FP)を計算する(図4−3)。計算されたFPをWebコンテンツと対応で受けて保存する(図4−4)。また、サーバ側プロキシ30は受け取ったWebコンテンツを支社へリプライする(図4−5)。
【0050】
クライアント側プロキシ40は、受け取ったWebコンテンツのフィンガープリント(FP)を計算する(図4−6)。計算されたFPをWebコンテンツと対応で受けて保存する(図4−7)。クライアント側プロキシ40は、Webコンテンツをクライアント50へ送信する(図4−8)。以上により、Webコンテンツがサーバ側プロキシ30およびクライアント側プロキシ40へそれぞれキャッシュされる。
【0051】
次に、図5は、Webコンテンツがサーバ側プロキシ30およびクライアント側プロキシ40に、既にキャッシュされている際の動作フローを示している。
【0052】
まず、ユーザは、支店4内のクライアント50のブラウザから、所望のサーバ20に記憶されるWebコンンテンツを読み出すために、そのWebコンテンツのURLを指定して、リクエストを行う。
【0053】
このリクエストは、ネットワークを介して、サーバ20へ通知される(図5−1)。この通知を受け取ったサーバ20はリクエストされたWebコンテンツを読み出して、サーバ側プロキシ30へ送信する(図5−2)。サーバ側プロキシ30は、受け取ったWebページのフィンガープリント(FP)を計算する(図5−3)。計算されたFPと同じFPが既にサーバ側プロキシ30内に保存されているか否かの検索を行う(図5−4)。ここでは、計算されたFPと同じFPが保存済みであるため、サーバ側プロキシ30は、受け取ったWebコンテンツを支店へ送信するのではなく、代わりに、そのFPを支店へリプライする(図5−5)。クライアント側プロキシ40は、受け取ったFPで自装置内を検索する(図5−6)。検索されて見つかったFPに対応付けて保存されるWebコンテンツを読み出す(図5−7)。クライアント側プロキシ40は、自装置内から読み出したWebページをクライアント50へ送信する(図5−8)。以上により、サーバ側プロキシ30からクライアント側プロキシ40へ送信されるべきWebコンテンツを少量のFPに替えて送るから、特に、広域ネットワークのボトルネックを解消できる。
【0054】
さて、ここでフィンガープリントについて、詳細に説明する。
【0055】
本実施形態のサーバ側プロキシ30およびクライアント側プロキシ40は、いずれも、フィンガープリント・キャッシュ(FPキャッシュ)と呼ぶキャッシュ機構を持つ。フィンガープリントキャッシュは、フィンガープリント(FP)と呼ぶ名前によって、HTTPプロトコルでやりとりされるデータを記録・管理する。
【0056】
フィンガープリントは、図6に例示するように、HTTPプロトコルでやり取りされるデータ(図6の例ではコンテンツ)の内容から、あらかじめ決められた計算方法(図6の例ではハッシュ関数)で決定される、短い数値である。この数値は、可変長でもよいが、処理の容易さの観点では、固定長の数値の方が扱いやすい。
【0057】
フィンガープリントを計算する方法としては、良く知られている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に対してそれぞれ計算したハッシュ値が同じになる場合があるが、その確率は実用上無視できるくらいに小さい)。
【0058】
図7に示すように、サーバ側プロキシ30やクライアント側プロキシ40の持つフィンガープリント・キャッシュ(図中の60)は、過去にHTTPプロトコルでやり取りされたデータ本体(図中の61)を、そのデータから計算して求めたフィンガープリントの値(図中の62)を名前として、記録・管理している。
【0059】
例えばHTTPプロトコルでサーバ側プロキシ30からクライアント側プロキシ40へデータを転送するときに、サーバ側プロキシ30は、当該データのフィンガープリントを計算し、そのフィンガープリントに対応するデータがフィンガープリントキャッシュに入っていれば、当該データ(と同じ内容のデータ)は過去に転送したことがあるので、当該データを転送せずに、対応するフィンガープリントの値を転送する。フィンガープリントを受け取ったクライアント側プロキシ40は、当該フィンガープリントの値に対応するデータをフィンガープリントキャッシュから取り出すことで、転送すべきデータを再現することができる。このような方式(すなわち、データ圧縮→データ転送→データ解凍)により、過去に送ったものと同じデータならばフィンガープリントの値を送るだけでよいので、ネットワークを流れるデータ量を大幅に削減することができる。もちろん、クライアント側プロキシ40からサーバ側プロキシ30へデータを転送するときも同様である。
【0060】
説明上、サーバ側プロキシ30とクライアント側プロキシ40との間でのデータ転送にあたり、フィンガープリントキャッシュを利用してメッセージ・ボディーのデータをフィンガープリントに置き換えて転送情報量を圧縮することを、フィンガープリント圧縮(FP圧縮)と呼ぶものとする。
【0061】
なお、サーバ側プロキシ30とクライアント側プロキシ40との間において、すべてのメッセージを、FP圧縮を適用する対象(すなわち、フィンガープリント・キャッシュを利用してデータをフィンガープリントに置き換えるための処理を行う対象)としてもよいが、例えばフィンガープリント・キャッシュの効果が期待できないものなどに対する適用を除外するために、予め定められた条件を満たすメッセージについては、これをFP圧縮の適用対象外とする(常にFP圧縮しないで転送する)ようにしてもよい。
【0062】
この場合の予め定められた条件とは、例えば、メッセージ・ヘッダに予め定められた情報が記述されていることである。具体的には、例えば、メッセージ・ヘッダにGETメソッドを示す情報およびリクエストを示す情報が記述されていることである。また、予め定められた条件の他の例としては、転送されるデータが空(null)あるいは非常に短いサイズであることである。
【0063】
もちろん、それらの他にも種々のバリエーションがある。また、複数の条件を組み合わせて使用するようにしてもよい。
【0064】
ところで、クライアント50−サーバ20間では、図1の本発明を適用するコンピュータ・ネットワーク・システムの全体構成例にも示したように、支社4とASPサーバセンター2との中間には、様々な他のプロキシ装置が介在し、経由することが一般的である。ここでは、例えば、図1においては、支社4とASPサーバセンター2との中間に、
1)通常プロキシを経由する場合(図1右上)、
2)クライアント側プロキシを経由する場合(図1右中)、
3)クライアント側プロキシ及び通常プロキシを経由する場合(図1右下)、
の3通りを示している。なお、図示しないが、WAN14と接続される別の会社においては、
クライアント側プロキシ40を導入することなく通常プロキシ70のみを介して複数のクライアント(ブラウザ)が接続されるといった(現状の一般的なネットワーク形態で構成される)、別の会社も存在しうる。
【0065】
このように、支社4とASPサーバセンター2との中間にプロキシが介在する場合には、支社4のクライアント側プロキシ40とASPサーバセンター2のサーバ側プロキシ30で、単に上記で説明したようなフィンガープリント圧縮を適用するだけでは、以下のような問題が生じる。
a)リクエストに対するリプライメッセージを受け取ったサーバ側プロキシ30は、リプライメッセージを(可能ならば)FPに変換して送信すべきか、FPに変換せずに送信すべきか判断できない。つまり、リクエストが通常プロキシ70だけを経由してきたのであれば、通常プロキシ70にはFP機能が無いので、変換したものを送付してはいけないが、クライアント側プロキシ40を経由してきたものであれば、送信すべきリプライメッセージのFPを保存していれば、FPを送ればよい。しかし、現状ではFPを送付すべきか否かを判別することができない。
b)更に、例えば、サーバ側プロキシ30とクライアント側プロキシ40との間に通常プロキシ70が介在している場合、通常プロキシ70が備えるキャッシュ機能で、利用できないフィンガープリントをもキャッシュしてしまう。
c)例えば、支社4とASPサーバセンター2との中間にクライアント側プロキシ40が介在している場合、その中間のクライアント側プロキシ40は、自身が中間のプロキシであることを判別ができないため、復元して返してしまう。
【0066】
そこで、本実施の形態のサーバ側プロキシ及びクライアント側プロキシは、これらの問題点を解決するようにした。
【0067】
図8、および図9に、本実施の形態のクライアント側プロキシ40及びサーバ側プロキシ30の機能ブロック図を示し、詳細に説明する。なお、図8や図9は、クライアント側プロキシ40とサーバ側プロキシ30との間のデータ転送の際の機能構成を中心に示してある。
【0068】
ここで、まず、リクエストメッセージおよびリプライメッセージについて説明する。
【0069】
リクエストメッセージは、[従来の技術]欄で示したようにリクエストヘッダとリクエストボディからなっており、リクエストヘッダには、予め決められた情報が格納される領域の他に、利用者によって書き込む情報が定義可能な領域を含んでいる。本実施の形態では、この利用者によって定義可能な領域に、リクエストメッセージがクライアント側プロキシ40によって転送される際に、FP圧縮を行うプロキシを通過した旨を示す情報を書き込むようにした。ここではFP_USEと書き込むようにし、これをFP_USEヘッダと呼ぶこととする。
【0070】
リプライメッセージは、[従来の技術]欄で示したようにリプライヘッダとリプライボディからなっており、リプライヘッダには、予め決められた情報が格納される領域に、HTTPプロトコル対応の装置で認識可能なNO_CACHEヘッダを付加することができる。このNO_CACHEヘッダは、リプライボディのキャッシュを禁止する旨を意味する。本実施の形態では、サーバ側プロキシ30が、この領域にNO_CACHEと書き込むようにした。よって、HTTPプロトコル対応の装置は、受信したリプライメッセージにNO_CACHEヘッダがあれば、FPをキャッシュすることは無くなる。また、リプライヘッダには、予め決められた情報が格納される領域の他に、利用者によって書き込む情報が定義可能な領域を含んでいる。本実施の形態では、リプライボディを、FP圧縮を行ったFP値とする場合には、この利用者によって定義可能な領域に、FPヘッダを付加するようにした。
【0071】
以下では図8を用い、クライアント側プロキシ40の構成について説明する。
【0072】
受信部401は、クライアント50からのリクエストメッセージを受信するものである。ヘッダ解析部402は、受信部401にて受信したリクエストメッセージを受け、リクエストヘッダを解析し、前記FP_USEヘッダの有無を検出するものである。ヘッダ情報保存部403は、ヘッダ解析部402でFP_USEヘッダを備えたリクエストメッセージを検出した際に、このリクエストメッセージがFP_USEヘッダを備えていたことを示す情報を保存するものである。
ヘッダ付加部404は、ヘッダ解析部402で、FP_USEヘッダを備えていないリクエストメッセージを検出した際に、リクエストメッセージのリクエストヘッダにFP_USEヘッダを付加するものである。送信部405は、ヘッダ解析部402またはヘッダ付加部404から送られてきたリクエストメッセージをサーバ20へ向けて送信するものである。
【0073】
受信部406は、リクエストメッセージに対する応答であるリプライメッセージを受信するものである。ヘッダ判定部407は、リプライメッセージを受信すると、このリプライメッセージに対応するリクエストメッセージにFP_USEヘッダが含まれていたか否かを、ヘッダ情報保存部403を参照し判定するものである。なお、ヘッダ情報保存部403は、リクエストメッセージ時に示したように、リクエストメッセージのヘッダにFP_USEが含まれているときに保存されるものであるから、情報がヘッダ情報保存部403にあるということは、このクライアント側プロキシ40が、要求のあったクライアント50に最も近いクライアント側プロキシ40ではないということを意味し、また、情報がヘッダ情報保存部403にないということは、このクライアント側プロキシ40が、要求のあったクライアント50に最も近いクライアント側プロキシ40であることを意味する。
【0074】
ヘッダ判定部407は、このクライアント側プロキシ40が、クライアント50に最も近いクライアント側プロキシ40でないと判断すれば、受け取ったリプライメッセージを、そのまま送信部413へ送る。また、ヘッダ判定部407は、このクライアント側プロキシ40が、クライアント50に最も近いクライアント側プロキシ40であると判断すれば、そのリプライメッセージをFP圧縮判定部408へ供給する。
【0075】
FP圧縮判定部408は、受け取ったリプライメッセージにFPヘッダが含まれているか否かを検出することによって、そのリプライメッセージがFP圧縮されたものか否かを判定するものである。FP圧縮判定部408は、FP圧縮されていれば、FPキャッシュ管理部409へ、FP圧縮されていなければFP圧縮処理部414へリプライメッセージを送る。
【0076】
FPキャッシュ411は、以前にFP圧縮したFPと、そのFPの圧縮前のコンテンツとを対応づけて記憶するものである。
【0077】
FP圧縮処理部414は、フィンガープリント圧縮するものである。FP圧縮されたFP値は、コンテンツと共にFPキャッシュ登録部410によって、FPキャッシュ411に登録される。
【0078】
FPキャッシュ管理部409は、そのリプライメッセージ内のFPでFPキャッシュ411を検索し、検索されたFPに対応するコンテンツを得て、リプライメッセージのリプライデータをこの得られたコンテンツに変更して、送信部413へ送るものである。FPキャッシュ登録部410は、FP圧縮判定部408からのリプライメッセージを受け取り、このリプライデータ(コンテンツ)のFPを求め、FPとコンテンツとを対応付けてFPキャッシュ411に登録する。その後、リプライメッセージを送信部413へ送る。
【0079】
送信部413は、受け取ったリプライメッセージをクライアント50へ送信するものである。
【0080】
なお、機能ブロックとして、受信部401と受信部406、送信部405と送信部413、を別々のブロック構成として図示したが、同じ構成であっても良く、また受信部401と送信部413、受信部405と受信部406、を送受信部として同じ構成としても良いことは勿論である。
【0081】
以上が、クライアント側プロキシ40の構成である。
【0082】
次に、サーバ側プロキシ30の構成について説明する。
【0083】
受信部301は、リクエストメッセージを受信するものである。ヘッダ解析部302は、リクエストメッセージのリクエストヘッダを解析し、FP_USEヘッダが付加されているか否かを確認し、FP_USEヘッダが付加されている場合にヘッダ情報保存部303へ通知するものである。
【0084】
ヘッダ情報保存部303は、このリクエストメッセージにFP_USEヘッダがついている旨を示す情報を保存する。そして、リクエストメッセージは、送信部304からサーバ20へ送信される。なお、サーバ20は、リクエストメッセージを受け取って、クライアント50から要求された所望のコンテンツを取り出して、リプライメッセージとして、クライアント50へ向けて送信する。
【0085】
受信部305は、サーバ20からのリプライメッセージを受信部305で受信するものである。ヘッダ判定部306は、受信部305からリプライメッセージを受けると、ヘッダ情報保存部303を参照し、そのリプライメッセージに対応するリクエストメッセージにFP_USEヘッダが付加されていたか否かを判定するものである。この判定は、リクエストメッセージが辿ってきた間に、クライアント側プロキシ40が存在したか否かを判定していることに相当する。ヘッダ判定部306は、ヘッダが無かった(クライアント側プロキシが存在しなかった)場合には、そのままリプライメッセージを送信部311へ送る。ヘッダ判定部306は、ヘッダがあったと判断した場合は、リプライメッセージをFP圧縮処理部307へ送る。
【0086】
FP圧縮処理部307は、先に説明したフィンガープリント圧縮の方法でFP圧縮し、FPを生成するものである。FPキャッシュ管理部308は、FP圧縮処理部307から受け取ったFPでFPキャッシュ309を検索するものである。見つかった際に、リプライメッセージのリプライデータをFPに変えてヘッダ付加部310へ送る。FPキャッシュ登録部312は、FPキャッシュ管理部308でFPがFPキャッシュ309で見つからなかった場合に、FPとデータとを対応付けてFPキャッシュ309へ登録し、リプライメッセージをそのまま送信部311へ送る。ヘッダ付加部310は、FPキャッシュ管理部308からのリプライメッセージのヘッダにNO_CACHEヘッダを付加し、送信部311へ供給するものである。
【0087】
以上が、サーバ側プロキシ30の構成である。
【0088】
図10は、クライアントからの一つのリクエストメッセージを受けた際のクライアント側プロキシ40の処理手順の一例を示している。
【0089】
クライアント側プロキシ40は、受信部401により、クライアントからのリクエストメッセージをLAN16、または、LAN18から受信する(ステップS101)。ヘッダ解析部402は、受信したリクエストメッセージのリクエストヘッダを解析し、FP_USEヘッダが付加されているか否かを検出する(ステップS102)。ステップS102の結果、FP_USEヘッダが付加されていれば、ヘッダ情報保存部403は、このリクエストメッセージにFP_USEヘッダがついていた旨を示す情報を保存し(ステップS103)、また、受信したリクエストメッセージをそのまま送信部405へ供給し、送信部405は、このリクエストメッセージを、サーバ側プロキシ30に向けて送信する。
【0090】
一方、ステップS102の結果、FP_USEヘッダが付加されていなければ、ヘッダ付加部404は、このリクエストメッセージのリクエストヘッダの所定エリアにFP_USEヘッダを付加し、送信部405は、このFP_USEを付加したリクエストメッセージを、サーバ側プロキシ30に向けて送信する(ステップS105)。
【0091】
この実施の形態では、クライアント50がリクエストメッセージを送信してから、リプライメッセージを受けるまでコネクションが張られた状態を維持する通信方式を想定している。そのため、ヘッダ情報保存部403ではリクエストメッセージにFP_USEヘッダがついていたか否かを示す最小1ビットのフラグを備えるようにすればよい。なお、この通信方式に限定されること無く、複数のコネクションを並列的に切り替え処理して扱うような方式であれば、先のフラグとリクエストメッセージを識別する識別情報などとを対応付けて保存するようにしても良い、等、様々な方法が適用可能である。
【0092】
図11は、一つのリクエストメッセージを、WAN14を介して受けた際のサーバ側プロキシ30の処理手順の一例を示している
【0093】
サーバ側プロキシ30は、受信部301により、リクエストメッセージを受信する(ステップS201)。ヘッダ解析部302は、受信したリクエストメッセージのリクエストヘッダを解析し、FP_USEヘッダが付加されているか否かを検出する(ステップS202)。ステップS202の結果、FP_USEヘッダが付加されていれば、ヘッダ情報保存部303は、このリクエストメッセージにFP_USEヘッダがついていた旨を示す情報を保存する(ステップS203)。受信したリクエストメッセージは、送信部304からサーバ20へ送信する(S204)。
【0094】
サーバ20は、リクエストメッセージを受け、既知の方法で処理を行って、リクエストメッセージが発行されたクライアントへ向けて、リプライメッセージを送信する。
【0095】
図12に、サーバ20から一つのリプライメッセージを受けた際のサーバ側プロキシ30の処理手順の一例を示している。
【0096】
サーバ側プロキシ30は、受信部305により、サーバ20からリプライメッセージを受信する(ステップS301)。
【0097】
ヘッダ判定部306は、ヘッダ情報保存部303を参照して(ステップS302)、このリプライメッセージに対応するリクエストメッセージにFP_USEヘッダが付加されていたか否かを判定する(ステップS303)。これはつまり、クライアント50−サーバ20(サーバ側プロキシ30)間にクライアント側プロキシ40が少なとも1台は存在しているか否かを判別している。
【0098】
ステップS303の結果、FP_USEが付加されていないと判断すると、そのままリプライメッセージを送信部311によって、WAN14を介して、クライアント50へ向けて送信する(ステップS309)。
【0099】
一方、ステップS303の結果、FP_USEが付加されていたと判断すると、FP圧縮処理部307は、リプライメッセージのリプライデータ(=コンテンツ)のFPを求める(ステップS304)。そして、FPキャッシュ管理部308にて、求められた該FPをキーとしてフィンガープリントキャッシュ309を検索し(ステップS305)、該FPの値とこれに対応するデータとの組がフィンガープリントキャッシュ309に登録されているか否かを確認する(ステップS306)。
【0100】
ステップS306の結果、FPキャッシュ309にFPが登録されていれば、ヘッダ付加部310は、リプライメッセージのヘッダにNO_CACHEを付加する(ステップS307)。そして、リプライメッセージのリプライデータをステップS304で求められたFPに変更するとともに、FPヘッダを付加して、送信部311は、WAN14を介して、クライアント50へ向けて送信する(ステップS308)。
【0101】
ステップS306の結果、 FPキャッシュ309にFPが登録されていなければ、FPキャッシュ登録部312は、該フィンガープリントの値と、該リプライデータとを対応付けて(フィンガープリントの値をキーとして)、フィンガープリントキャッシュ309に登録する(ステップS310)。そして、送信部311は、そのままリプライメッセージを、WAN14を介して、クライアント50へ向けて送信する(ステップS311)。
【0102】
図13に、一つのリプライメッセージを受けた際のクライアント側プロキシ40の処理手順の一例を示している。
【0103】
クライアント側プロキシ40は、受信部406により、リプライメッセージを受信する(ステップS401)。
【0104】
ヘッダ判定部407は、ヘッダ情報保存部403を参照して(ステップS402)、このリプライメッセージに対応するリクエストメッセージにFP_USEが付加されていたか否かを判定する(ステップS403)。これはつまり、本クライアント側プロキシ40とクライアント50との間にクライアント側プロキシ40が存在しているか、いないかを判別するものである。例えば、図1の右中の2つのクライアント側プロキシ40のうち、左側のクライアント側プロキシ40のヘッダ情報保存部403には、FP_USEが付加されていたことを保存しており、右側のクライアント側プロキシ40のヘッダ情報保存部403には、FP_USEが付加されていなかったので、何も保存しない。
【0105】
ステップS403の結果、FP_USEが付加されていると判断すると、リプライメッセージをそのまま送信部413によって、LAN14等を介して、クライアント50へ向けて送信する(ステップS411)。
【0106】
ステップS403の結果、FP_USEが付加されていないと判断すると、FP圧縮判定部408は、リプライヘッダのFPヘッダの有無を確認することによって、リプライデータがFP圧縮されているか否かを判定する(S404)。NO_CACHEヘッダがあれば、FP圧縮されていることになる。
【0107】
ステップS404の結果、FP圧縮されていれば、リプライメッセージのリプライデータはFPであるから、FPキャッシュ管理部409にて、該リプライデータ(=FP)をキーとしてフィンガープリントキャッシュ411を検索する(ステップS405)。この検索によって、見つけられた該フィンガープリントに対応するコンテンツを読み出し、リプライメッセージのリプライデータをこのコンテンツに変更する(ステップS406)。送信部413は、この変更されたリプライメッセージをクライアント50へ向けて送信する(ステップS407)。
【0108】
ステップS404の結果、FP圧縮されていなければ、FP圧縮処理部414によって、リプライデータ(=コンテンツ)のFPを求める(ステップS408)。FPキャッシュ登録部410は、求めた該フィンガープリントと、該リプライデータ(=コンテンツ)とを対応付けて(フィンガープリントの値をキーとして)、フィンガープリントキャッシュ411に登録する(ステップS409)。そして、送信部413は、そのままのリプライメッセージを、クライアント50へ向けて送信する(ステップS410)。
【0109】
以上説明してきた本発明の実施形態によれば、上記したクライアント側プロキシ40は、その配置箇所に応じて動作する。例えば、クライアント側プロキシ40がクライアント50に最も近い、クライアント側プロキシであれば、クライアントへ送信するリプライデータは、必ず(FP非圧縮の)生のデータを供給する。また、例えば、クライアント側プロキシ40が中間プロキシであれば、リプライデータを何も処理することなく転送のみを行うように動作する。このように動作するから、サーバ側プロキシ30とクライアント側プロキシ40との間に、クライアント側プロキシ40や、通常プロキシ70などが接続されても正常に動作するようなシステムが構築できるようになった。
【0110】
また、通常プロキシが存在しても、誤ってFPデータをキャッシュすることなく、正常に動作する。
【0111】
なお、本実施の形態のクライアント側プロキシ40は、リクエストメッセージにFP_USEヘッダが付いている時に、FP_USEヘッダがついていたことを示す情報を保存するようにしたが、その逆で、リクエストメッセージにFP_USEヘッダが付いていない時に、FP_USEヘッダが付いていないことを示す情報を保存するようにしても良い。同様に、リクエストメッセージにFP_USEヘッダが付いていない時に、(このクライアント側プロキシ40で)FP_USEヘッダを付けたことを示す情報を保存するようにしても良い。このような場合には、ヘッダ判定部407は、ヘッダ情報保存部403に情報が保存されていたときに、クライアント50に最も近いクライアント側プロキシ40として扱えば良い。また、ヘッダ情報保存部403を、FP_USEヘッダの有無を示すようなフラグとし、ヘッダ判定部407ではそのフラグのオン/オフによって、クライアント50に最も近いクライアント側プロキシ40であるか否かを判定するようにしても良いだろう。
【0112】
また、本実施の形態のサーバ側プロキシ30は、送信するリプライメッセージにデータまたはFP値の何れかのみを付加して送付するようにしていたが、FP値を保存しデータを送信する場合(S306のNOの場合)、FP値もリプライメッセージに付けて送るようにしても良い。このような構成にすれば、クライアント側プロキシ40内には、受信したリプライメッセージからFP値を抽出する機能を有する必要があるが、FP圧縮を行う機能は不要となり、全体の速度の高速化が可能になるだろう。
【0113】
ところで、これまでは、1つのメッセージに含まれるデータ全体をFP圧縮する対象(フィンガープリントキャッシュに登録する対象)にしていたが、例えば、1つのメッセージに含まれるデータが所定の単位のデータの集合で構成される場合には、1つのメッセージに含まれる一部の単位データのみFP圧縮する対象(フィンガープリントキャッシュに登録する対象)にする構成も可能である。
【0114】
なお、以上の各機能は、ソフトウェアとして実現可能である。
【0115】
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0116】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【0117】
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【0118】
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
【0119】
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0120】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0121】
【発明の効果】
本発明によれば、データ転送装置間でデータとその名前との対応を保持し、この対応を保持しているデータについては、データを転送する代わりに対応する名前を転送することで、データ転送装置間の転送データ量を削減することができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るコンピュータ・ネットワーク・システムの構成例を示す図。
【図2】 同実施形態に係るコンピュータ・ネットワーク・システムの他の構成例を示す図。
【図3】 同実施形態に係るコンピュータ・ネットワーク・システムのさらに他の構成例を示す図。
【図4】 同実施形態に係るコンピュータ・ネットワーク・システムの基本概念を示す図。
【図5】 同実施形態に係るコンピュータ・ネットワーク・システムの基本概念を示す図。
【図6】 同実施の形態のフィンガープリントを示す図。
【図7】 同実施の形態のフィンガープリントキャッシュを示す図。
【図8】 同実施の形態のクライアント側プロキシ30の機能ブロック図。
【図9】 同実施の形態のサーバ側プロキシ30の機能ブロック図。
【図10】 同実施形態に係るクライアント側プロキシの手順例を示すフローチャート。
【図11】 同実施形態に係るサーバ側プロキシの手順例を示すフローチャート。
【図12】 同実施形態に係るサーバ側プロキシの手順例を示すフローチャート。
【図13】 同実施形態に係るクライアント側プロキシの手順例を示すフローチャート。
【符号の説明】
2…ASPサーバセンター
4…支社
12、16、18…LAN
14…WAN
16…ユーザオフィス内LAN
20…サーバ装置
30…サーバ側プロキシ装置
40…クライアント側プロキシ装置
50…クライアント装置
60…通常プロキシ装置
301,305,401,406…受信部
302,402…ヘッダ解析部
303,403…ヘッダ情報保存部
304,311,405,413…送信部
306,407…ヘッダ判定部
307,414…FP圧縮処理部
308,409…フィンガープリントキャッシュ管理部
309,411…FPキャッシュ
310,404…ヘッダ付加部
312,410…フィンガープリントキャッシュ登録部
408…フィンガープリント圧縮判定部
Claims (4)
- 第1の装置と第2の装置との通信を中継するデータ転送装置において、
キャッシュデータと、該キャッシュデータの識別情報であるキャッシュ識別情報とを関連付けて記憶する識別情報キャッシュを行う識別情報キャッシュ手段と、
第2の装置への所望データの送信要求を示し、リクエストヘッダを有するリクエストメッセージを、前記第1の装置から受信するリクエスト受信手段と、
前記リクエストヘッダを解析し、識別情報キャッシュを行う識別情報キャッシュ装置を前記リクエストメッセージが経由してきたか否かを解析する解析手段と、
前記リクエストメッセージが識別情報キャッシュ装置を経由してきたか否かを示す経由情報を保持する保持手段と、
前記リクエストメッセージを前記第2の装置へ送信するリクエスト送信手段と、
前記リクエストメッセージに対応しリプライヘッダとリプライボディとを有するリプライメッセージを、前記第2の装置から受信するリプライ受信手段と、
前記保持手段に保持された前記経由情報に基づいて、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたか否かを判定する判定手段と、
前記リプライボディの識別情報であるリプライボディ識別情報を定める識別情報決定手段と、
前記識別情報キャッシュ手段に記憶された前記キャッシュ識別情報のなかから前記リプライボディ識別情報を検索する識別情報キャッシュ検索手段と、
前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたと判定された場合に該リプライボディ識別情報と前記リプライボディとを関連付けて前記識別情報キャッシュ手段に記憶させ、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由しなかったと判定された場合に該リプライボディ識別情報と前記リプライボディとを関連付けて前記識別情報キャッシュ手段に記憶させない識別情報キャッシュ登録手段と、
前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由しなかったと判定された場合あるいは前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたと判定されかつ前記キャッシュ識別情報のなかに前記リプライボディ識別情報がない場合に前記リプライメッセージを前記第1の装置へ送信し、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたと判定されかつ前記キャッシュ識別情報のなかに前記リプライボディ識別情報がある場合に前記リプライメッセージの前記リプライボディを前記リプライボディ識別情報に置き換えた識別情報リプライメッセージを前記第1の装置へ送信するリプライ送信手段と
を備えることを特徴とするデータ転送装置。 - 識別情報キャッシュ登録手段は、前記キャッシュ識別情報のなかに前記リプライボディ識別情報がない場合に、前記リプライボディと、該リプライボディ識別情報とを関連付けて前記識別情報キャッシュ手段に記憶させることを特徴とする請求項1記載のデータ転送装置。
- 前記キャッシュ識別情報は、前記キャッシュデータから求められた前記キャッシュデータのFPであり、
前記リプライボディ識別情報は、前記リプライボディから求められた前記リプライボディのFPであることを特徴とする請求項1記載のデータ転送装置。 - 第1の装置と第2の装置との通信を中継するデータ転送方法において、
識別情報キャッシュ手段に、キャッシュデータと、該キャッシュデータの識別情報であるキャッシュ識別情報とを関連付けて記憶する識別情報キャッシュを行い、
リクエスト受信手段で、第2の装置への所望データの送信要求を示しリクエストヘッダを有するリクエストメッセージを前記第1の装置から受信し、
解析手段で、前記リクエストヘッダを解析し、識別情報キャッシュを行う識別情報キャッシュ装置を前記リクエストメッセージが経由してきたか否かを解析し、
保持手段で、前記リクエストメッセージが識別情報キャッシュ装置を経由してきたか否かを示す経由情報を保持し、
リクエスト送信手段で、前記リクエストメッセージを前記第2の装置へ送信し、
リプライ受信手段で、前記リクエストメッセージに対応しリプライヘッダとリプライボディとを有するリプライメッセージを、前記第2の装置から受信し、
判定手段で、前記保持手段に保持された前記経由情報に基づいて、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたか否かを判定し、
識別情報決定手段で、前記リプライボディの識別情報であるリプライボディ識別情報を定め、
識別情報キャッシュ検索手段で、前記識別情報キャッシュ手段に記憶された前記キャッシュ識別情報のなかから前記リプライボディ識別情報を検索し、
前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由しなかったと判定された場合に該リプライボディ識別情報と前記リプライボディとを関連付けて前記識別情報キャッシュ手段に記憶させず、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたと判定された場合に識別情報キャッシュ登録手段で該リプライボディ識別情報と前記リプライボディとを関連付けて前記識別情報キャッシュ手段に記憶させ、
リプライ送信手段で、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由しなかったと判定された場合あるいは前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたと判定されかつ前記キャッシュ識別情報のなかに前記リプライボディ識別情報がない場合に、前記リプライメッセージを前記第1の装置へ送信し、前記リプライメッセージに対応する前記リクエストメッセージが前記識別情報キャッシュ装置を経由してきたと判定されかつ前記キャッシュ識別情報のなかに前記リプライボディ識別情報がある場合に、前記リプライメッセージの前記リプライボディを前記リプライボディ識別情報に置き換えた識別情報リプライメッセージを前記第1の装置へ送信することを特徴とするデータ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295364A JP4053269B2 (ja) | 2001-09-27 | 2001-09-27 | データ転送装置およびデータ転送方法 |
US10/253,517 US7441248B2 (en) | 2001-09-27 | 2002-09-25 | Data transfer scheme using caching technique for reducing network load |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295364A JP4053269B2 (ja) | 2001-09-27 | 2001-09-27 | データ転送装置およびデータ転送方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006121214A Division JP4300220B2 (ja) | 2006-04-25 | 2006-04-25 | データ転送装置およびデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003108455A JP2003108455A (ja) | 2003-04-11 |
JP4053269B2 true JP4053269B2 (ja) | 2008-02-27 |
Family
ID=19116810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001295364A Expired - Fee Related JP4053269B2 (ja) | 2001-09-27 | 2001-09-27 | データ転送装置およびデータ転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7441248B2 (ja) |
JP (1) | JP4053269B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512715B2 (en) | 2003-09-26 | 2009-03-31 | Nokia Corporation | System and method for requesting a resource over at least one network with reduced overhead |
US20060100997A1 (en) * | 2004-10-27 | 2006-05-11 | Wall Gary C | Data caching |
JP2009140290A (ja) * | 2007-12-07 | 2009-06-25 | Fujitsu Ltd | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム |
US8078870B2 (en) * | 2009-05-14 | 2011-12-13 | Microsoft Corporation | HTTP-based authentication |
EP2659623B1 (en) * | 2010-12-30 | 2019-03-20 | Peerapp, Ltd. | Methods and systems for transmission of data over computer networks |
WO2016029384A1 (zh) | 2014-08-27 | 2016-03-03 | 华为技术有限公司 | 一种资源下载方法、电子设备及装置 |
CN110224890A (zh) * | 2019-06-12 | 2019-09-10 | 中国神华能源股份有限公司 | 列车过车报文解析方法及解析装置 |
US11184389B2 (en) * | 2019-10-31 | 2021-11-23 | Visa International Service Association | Security mechanisms for preventing retry or replay attacks |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6427187B2 (en) * | 1998-07-31 | 2002-07-30 | Cache Flow, Inc. | Multiple cache communication |
US6606663B1 (en) * | 1998-09-29 | 2003-08-12 | Openwave Systems Inc. | Method and apparatus for caching credentials in proxy servers for wireless user agents |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6345307B1 (en) * | 1999-04-30 | 2002-02-05 | General Instrument Corporation | Method and apparatus for compressing hypertext transfer protocol (HTTP) messages |
US6801927B1 (en) * | 1999-09-24 | 2004-10-05 | Akamba Corporation | Network adaptor card with reverse proxy and cache and method implemented therewith |
US7103016B1 (en) * | 2000-08-11 | 2006-09-05 | Echelon Corporation | System and method for providing transaction control on a data network |
US7315884B2 (en) * | 2001-04-03 | 2008-01-01 | Hewlett-Packard Development Company, L.P. | Reduction of network retrieval latency using cache and digest |
US6912591B2 (en) * | 2001-05-02 | 2005-06-28 | Science Application International Corporation | System and method for patch enabled data transmissions |
US6754799B2 (en) * | 2001-05-16 | 2004-06-22 | Microsoft Corporation | System and method for indexing and retrieving cached objects |
-
2001
- 2001-09-27 JP JP2001295364A patent/JP4053269B2/ja not_active Expired - Fee Related
-
2002
- 2002-09-25 US US10/253,517 patent/US7441248B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030061337A1 (en) | 2003-03-27 |
JP2003108455A (ja) | 2003-04-11 |
US7441248B2 (en) | 2008-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3990115B2 (ja) | サーバ側プロキシ装置及びプログラム | |
US7383348B2 (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 | |
US6892206B2 (en) | Reduction of meta data in a network | |
US20020023159A1 (en) | HTTP redirector | |
KR20040044182A (ko) | 통신네트워크의 유효 대역폭 증가 시스템 및 방법 | |
JP3984086B2 (ja) | キャッシュサーバ、データ転送装置及びプログラム | |
JP4053269B2 (ja) | データ転送装置およびデータ転送方法 | |
JP3848209B2 (ja) | データ転送装置、データ転送方法及びプログラム | |
JP4031516B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP3983987B2 (ja) | サーバ側プロキシ装置、データ転送方法及びプログラム | |
JP3913508B2 (ja) | データ転送装置およびデータ転送方法 | |
JP3943867B2 (ja) | サーバ側プロキシ、データ転送方法及びプログラム | |
JP3943868B2 (ja) | サーバ側プロキシ、データ転送方法及びプログラム | |
JP4300220B2 (ja) | データ転送装置およびデータ転送方法 | |
JPH1155327A (ja) | 代理サーバの接続制御サーバ,代理サーバ,及びネットワーク制御方法 | |
JP2003108464A (ja) | データ転送装置およびデータ転送方法 | |
JP4041157B2 (ja) | クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP3977601B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム | |
JP4157585B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP3977651B2 (ja) | データ転送方法、サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム | |
Choi | Reading Course Paper Techniques to Improve Upon a User’s WWW Experience |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070326 |
|
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: 20071204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111214 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121214 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121214 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131214 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |