JP2002268935A - データ転送装置、データ転送方法及びプログラム - Google Patents
データ転送装置、データ転送方法及びプログラムInfo
- Publication number
- JP2002268935A JP2002268935A JP2001069284A JP2001069284A JP2002268935A JP 2002268935 A JP2002268935 A JP 2002268935A JP 2001069284 A JP2001069284 A JP 2001069284A JP 2001069284 A JP2001069284 A JP 2001069284A JP 2002268935 A JP2002268935 A JP 2002268935A
- Authority
- JP
- Japan
- Prior art keywords
- data
- name
- received
- communication device
- transfer device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
置を提供すること。 【解決手段】 サーバ側プロキシ30からクライアント
側プロキシ40へ新たな内容のリプライデータを転送す
るにあたって、両プロキシにて、該データと該データに
ハッシュ関数を適用して算出したフィンガープリントと
を対応付けて、フィンガープリント・キャッシュに登録
しておく。サーバ側プロキシ30からクライアント側プ
ロキシ40へフィンガープリント・キャッシュに登録さ
れたフィンガープリントと同じフィンガープリントを持
つリプライデータを転送するにあたっては、該リプライ
データの代わりに該フィンガープリントを転送する。
Description
データ転送を行うデータ転送装置、データ転送方法及び
プログラムに関する。
提供するサーバと、所望のサービスをサーバに対して要
求するクライアントとから構成される、クライアント・
サーバ型の情報システムが広く利用されている。特に、
インターネット上でHTTPプロトコルを使って通信す
るWEBサーバとクライアントとからなるWORLDW
IDE WEBシステム(あるいは単にWEBとも呼ば
れる)は、大変広く利用されているクライアント・サー
バ型の情報システムである。通常、サーバ上ではサーバ
プログラムが動作し、クライアント上ではブラウザなど
の所定のツール(プログラム)が動作する。インターネ
ット上で提供されるサービスの内容も多岐に渡ってお
り、ネットワーク経由で文字、静止画像、動画像、音声
等の情報(例えば、ホームページ、電子メール、デジタ
ルコンテンツなど)や、プログラムなどを提供、配信あ
るいは転送などするサービス、また商品を販売するため
の電子店舗サービス、座席や部屋等の予約サービス、種
々の契約の仲介サービスなど、種々のサービスが既に存
在し、また次々と新たな形態のサービスが出現してい
る。
サーバ型の情報システムにおいては、提供されるサービ
スがどのような形態のものであろうと、基本的にはクラ
イアント・サーバ間でデータ転送が行われることによっ
てサービスが提供される。したがって、クライアントと
サーバとの間で通信に用いるネットワークの容量(バン
ド幅)が、システム全体のボトルネックになりやすい。
そこで、通常、ネットワークの負荷を軽減させるために
キャッシュ技術が用いられる。
動作するブラウザ等はキャッシュ機構を使用するものが
多く、最近アクセスしたデータをキャッシュしている。
WEBではURLと呼ばれる名前で情報やサービスを指
定してアクセスがなされるので、クライアント上のキャ
ッシュは、過去にWEBサーバに要求した情報やサービ
スの結果として返されるデータのうちでキャッシュ可能
なものを、そのURLと対応させてキャッシュに記録し
ている。この場合、キャッシュ内にあるものと同じUR
Lの情報やサービスのリクエストがあった際に、そのキ
ャッシュ内の応答データが古くなっていないと判断でき
るならば、そのデータを返すことで、WEBサーバとの
間の通信を無くすことができる。
関におけるLANあるいは家庭内のLANなどで複数の
ユーザがいる場合、該LANとインターネットとの間に
プロキシサーバを置き、プロキシサーバにキャッシュ機
構を設けるようにすることも多い。クライアント内のキ
ャッシュ(例えば、ブラウザのキャッシュ)は、当該ク
ライアント・ユーザに専用のキャッシュとして動作する
が、LAN上のプロキシサーバのキャッシュは、複数の
クライアント・ユーザに共有のキャッシュとして動作す
る。そのため、後者では、過去に他人(他クライアン
ト)がアクセスしたURLに対してアクセスする際にも
キャッシュが効く。
ーバとの間は、HTTPと呼ぶプロトコルで通信が行わ
れる。HTTPプロトコルは、クライアントからサーバ
へ送る「リクエストメッセージ」と、それに答えてサー
バからクライアントへ応答を返す「リプライメッセー
ジ」とが組になっている。
ッダ」と「リクエストボディ」からなる。リクエストヘ
ッダには、アクセスしたい情報やサービスを指定するU
RLやアクセスの種類を示すメソッド名、その他アクセ
スに必要な各種の情報が入る。リクエストボディには、
サーバに送るデータを入れる。リクエストボディに入っ
ているデータを「リクエストデータ」とも呼ぶ。
ダ」と「リプライボディ」からなる。リプライヘッダに
は、処理結果のステータスなどの情報が入り、リプライ
ボディには要求された情報や要求されたサービスの処理
結果などのデータが入る。リプライボディに入っている
データを「リプライデータ」とも呼ぶ。
は、サーバ上の情報を読み出す「GETメソッド」、ユ
ーザの持つデータをサーバに書き込む「PUTメソッ
ド」、リクエストの応じて処理した結果を送り返しても
らう「POSTメソッド」が、情報やサービスのアクセ
スに用いられる主要なものである。その他、DELET
Eなどのメソッドが定義されている。
メッセージのリクエストボディ、PUTメソッドのリプ
ライメッセージのリプライボディは空である。POST
メソッドのリクエストメッセージのリクエストボディに
は、必要に応じてサーバ側での処理に用いる情報が入
り、POSTメソッドのリプライメッセージのリプライ
ボディには、その処理の結果のデータが入る。
タは、読み出す毎にサーバ側で生成する「動的データ」
と、既にサーバ側で記憶しているデータをそのまま送り
返す「静的データ」に分けることができる。これらのう
ち、動的データについては、同じURLでも読み出す度
に内容が異なる可能性があるので、多くの場合、サーバ
はキャッシュ不可の指定をそのリプライメッセージのヘ
ッダに入れて送り返す。したがって、WEBのデータで
キャッシュの対象になるのは、静的データの部分であ
る。この静的データは、不特定多数のユーザが参照して
構わない「共有データ」と、ユーザ認証することで特定
のユーザだけがアクセスできるようにアクセス制御を行
う「プライベートデータ」に分けることができる。前者
の共有データは、どのようなキャッシュでもキャッシュ
可能である。しかしながら、後者のプライベートデータ
は、プロキシサーバなどの共有キャッシュでは、キャッ
シュ不可である(プライベートデータは必ずサーバでユ
ーザを認証して送り返す必要があるので)。ただし、ブ
ラウザなどの個人専用のキャッシュの場合には、プライ
ベートデータでもキャッシュは可能である。
た結果を返すので、一般的にサーバはキャッシュ不可の
指定をリプライメッセージのヘッダに入れて結果を送り
返す。そのため、通常はキャッシュの対象にはならな
い。
ものなので、キャッシュは何も処理をしない。
シュは、静的コンテンツをキャッシュの対象にしてい
る。かつては、WEBで公開される情報やサービスに
は、情報の更新頻度がそれほど高くなく、不特定多数の
人に公開されているものが多かったため、静的コンテン
ツの割合は非常に高く、従来のキャッシュ技術でもネッ
トワークの負荷の軽減に有効であった。
pplication Service Provid
er)のように、ユーザがWEBブラウザを使って、ネ
ットワーク経由でサーバ上の情報やサービスにアクセス
するシステムが普及するにつれて、下記のように従来の
キャッシュ技術では対応できないデータが増加してい
る。 ・ユーザの認証を行い、アクセスできるユーザを制限し
ているので、プライベートデータが多い。 ・バックエンドのデータベースを参照して生成する動的
データが多い。 ・帳票処理や検索などPOSTメソッドを使う場合が多
い。 ・グループ内の情報共有のためにPUTメソッドを使う
場合が多い。 この結果、キャッシュ技術のみではネットワークの負荷
を軽減する手法として有効に機能しなくなってきてい
る。
ので、データ転送装置間を接続するネットワークの負荷
をより軽減することができるキャッシュ技術・圧縮技術
を備えたデータ転送装置、データ転送方法及びプログラ
ムを提供することを目的とする。
置から送信されたデータを受信し、該データをその宛先
となる第2の通信装置に通ずる他のデータ転送装置へ送
信するとともに、該第2の通信装置から送信されたデー
タを該他のデータ転送装置を介して受信し、該データを
その宛先となる該第1の通信装置へ送信するデータ転送
装置であって、前記第1の通信装置から前記データを受
信するための受信手段と、過去に前記他のデータ転送装
置へ送信したデータと、該データの内容をもとに生成し
て該データに割り当てた名前とを対応付けて保持するた
めの保持手段と、前記第1の通信装置から送信されたデ
ータを受信した際に、該受信したデータの内容をもとに
生成した該データに割り当てるべき名前が、前記保持手
段に保持されている場合には、該データの代わりに該名
前を送信するための処理を行い、該受信したデータに割
り当てられるべき名前が、前記保持手段に保持されてい
ない場合には、該受信したデータと該名前とを対応付け
て前記保持手段に保持するための処理を行うとともに、
該データを送信するための処理を行う処理手段と、前記
処理手段の処理に応じて前記名前または前記受信したデ
ータを、前記他のデータ転送装置へ送信するための送信
手段とを備えたことを特徴とする。
データを他のデータ転送装置を介して受信し、該データ
をその宛先となる第2の通信装置へ送信するとともに、
該第2の通信装置から送信されたデータを受信し、該デ
ータをその宛先となる第1の通信装置に通ずる他のデー
タ転送装置へ送信するデータ転送装置であって、前記他
のデータ転送装置から前記データまたは該データの代わ
りに該データの内容をもとに生成して該データに割り当
てられた名前を受信するための受信手段と、過去に前記
他のデータ転送装置から受信したデータと、該データの
内容をもとに生成して該データに割り当てられた名前と
を対応付けて保持するための保持手段と、前記他のデー
タ転送装置から前記名前を受信した場合には、前記保持
手段から該受信した名前に対応付けて保持されているデ
ータを取得し、該取得したデータを送信するための処理
を行い、前記他のデータ転送装置から前記データを受信
した場合には、該受信したデータと該データに割り当て
られるべき名前とを対応付けて前記保持手段に保持する
ための処理を行うとともに、該受信したデータを送信す
るための処理を行う処理手段と、前記処理手段の処理に
応じて前記取得したデータまたは前記受信したデータ
を、前記第2の通信装置へ送信するための送信手段とを
備えたことを特徴とする。
って前記データを圧縮して得た値であるようにしてもよ
い。好ましくは、前記名前は、前記データに所定のハッ
シュ関数を適用して得られた値であるようにしてもよ
い。
カルエリアネットワークを介して前記第1の通信装置と
接続されたものであるようにしてもよい。好ましくは、
前記データ転送装置は、前記第1の通信装置上にソフト
ウェアとして搭載されたものであるようにしてもよい。
好ましくは、前記データ転送装置は、ローカルエリアネ
ットワークを介して前記第2の通信装置と接続されたも
のであるようにしてもよい。好ましくは、前記データ転
送装置は、前記第2の通信装置上にソフトウェアとして
搭載されたものであるようにしてもよい。
ら受信したデータについて前記保持手段への保持を行う
場合に、該受信したデータが、前記第2の通信装置から
該第1の通信装置へのリクエストメッセージに対するリ
プライメッセージのデータであるときに、該リプライメ
ッセージに対応するリクエストメッセージが要求するデ
ータについてのURLと、該データに割り当てられた前
記名前とを対応付けて、前記保持手段または別の保持手
段に保持しておき、前記他のデータ転送装置から前記第
2の通信装置が送信したリクエストメッセージを受信し
た場合に、該リクエストメッセージが要求するデータに
ついてのURLが前記保持手段または別の保持手段に保
持されているときに、該URLに対応する前記名前に対
応付けて前記保持手段に保持されている前記データをも
とに前記リクエストメッセージに対するリプライメッセ
ージであって前記第2の通信装置に宛てたものを作成
し、作成した前記リプライメッセージを前記他のデータ
転送装置へ送信するようにしてもよい。
置から受信したデータについて前記保持手段への保持を
行う場合に、該受信したデータが、前記第2の通信装置
から前記第1の通信装置への所定のリクエストメッセー
ジに対するリプライメッセージのデータであるときに、
該リプライメッセージに対応するリクエストメッセージ
が要求するデータについてのURLと、該データに割り
当てられた前記名前とを対応付けて、前記保持手段また
は別の保持手段に保持しておき、前記第2の通信装置か
ら前記所定のリクエストメッセージを受信した場合に、
該リクエストメッセージが要求するデータについてのU
RLが前記保持手段または別の保持手段に保持されてい
るときに、該URLに対応する前記名前に対応付けて前
記保持手段に保持されている前記データをもとに前記リ
クエストメッセージに対するリプライメッセージを作成
し、作成した前記リプライメッセージを前記第2の通信
装置へ送信するようにしてもよい。
されたデータを受信し、該データをその宛先となる第2
の通信装置に通ずる他のデータ転送装置へ送信するとと
もに、該第2の通信装置から送信されたデータを該他の
データ転送装置を介して受信し、該データをその宛先と
なる該第1の通信装置へ送信するデータ転送装置におけ
るデータ転送方法であって、前記第1の通信装置から送
信されたデータを受信し、受信された前記データの内容
をもとに生成した該データに割り当てるべき名前が、過
去に前記他のデータ転送装置へ送信したデータと該デー
タの内容をもとに生成して該データに割り当てた名前と
を対応付けて保持するための保持手段に保持されている
か否か判断し、保持されている場合には、受信された前
記データの代わりに前記名前を送信するための処理を行
い、保持されていない場合には、受信された該データと
前記名前とを対応付けて前記保持手段に保持するための
処理を行うとともに、該データを送信するための処理を
行うことを特徴とする。
されたデータを他のデータ転送装置を介して受信し、該
データをその宛先となる第2の通信装置へ送信するとと
もに、該第2の通信装置から送信されたデータを受信
し、該データをその宛先となる第1の通信装置に通ずる
他のデータ転送装置へ送信するデータ転送装置における
データ転送方法であって、前記他のデータ転送装置から
前記データまたは該データの代わりに該データの内容を
もとに生成して該データに割り当てられた名前を受信
し、前記他のデータ転送装置から前記データの代わりに
該データの内容をもとに生成して該データに割り当てら
れた名前を受信した場合には、過去に前記他のデータ転
送装置から受信されたデータと該データの内容をもとに
生成して該データに割り当てられた名前とを対応付けて
保持するための保持手段から、受信された前記名前に対
応付けて保持されているデータを取得し、該取得したデ
ータを送信するための処理を行い、前記他のデータ転送
装置から前記データを受信した場合には、受信された該
データと該データに割り当てられるべき名前とを対応付
けて前記保持手段に保持するための処理を行うととも
に、受信された該データを送信するための処理を行うこ
とを特徴とする。
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。また、装置または方法に係る本発明
は、コンピュータに当該発明に相当する手順を実行させ
るための(あるいはコンピュータを当該発明に相当する
手段として機能させるための、あるいはコンピュータに
当該発明に相当する機能を実現させるための)プログラ
ムとしても成立し、該プログラムを記録したコンピュー
タ読取り可能な記録媒体としても成立する。
タとその名前との対応を保持し、この対応を保持してい
るデータについては、データを転送するの代わりに対応
する名前を転送することで、データ転送装置間の転送デ
ータ量を削減することができる。
ージがプライベートデータであっても、これをフィンガ
ープリントにより圧縮してデータ転送装置間を転送する
ことができるようになる。また、例えば、GETメソッ
ドのリプライメッセージが動的データであっても、内容
が同じデータなら、これをフィンガープリントにより圧
縮してデータ転送装置間を転送することができるように
なる。また、例えば、POSTメソッドであっても、結
果が同じデータなら、これをフィンガープリントにより
圧縮してデータ転送装置間を転送することができるよう
になる。
実施の形態を説明する。
り、クライアントはユーザオフィスLANに接続された
ものであり、HTTPプロトコルが使用されるような場
合を例にとって説明するが、もちろん、本発明は、WA
Nがインターネット以外のものであっても、クライアン
トがオフィス以外の例えば家庭内LAN等に設置された
ものであっても、HTTPプロトコル以外のプロトコル
が使用されるものであっても適用可能である。
ネットワーク・システムの基本的な構成例を示す。この
構成例では、ASPサーバセンター2内のローカルエリ
アネットワーク(LAN)12と、ユーザオフィス4内
のローカルエリアネットワーク(LAN)16との間
が、インターネットや専用回線などの広域ネットワーク
(WAN)14を介して接続されており、ASPサーバ
センター2内のサーバ20と、ユーザオフィス4内のク
ライアント50とが、LAN12・WAN14・LAN
16を介して通信可能になっている。ASPサーバセン
ター内LANには1または複数のサーバが接続され、ユ
ーザオフィス内LANには1または複数のクライアント
が接続される。
2に設置したサーバ20から、WAN14を介して、様
々なアプリケーションプログラムによるサービスを提供
し、ユーザはオフィス4に設置されたクライアント上の
WEBブラウザ等を使ってそれらのサービスにアクセス
する。
フィス内LAN16とサーバセンター内LAN12とを
つなぐネットワーク、特にインターネットなどの広域ネ
ットワーク14の実効的な通信容量(バンド幅)は、サ
ーバセンター内LAN12やユーザオフィス内LAN1
6よりも低く、そこが性能上のボトルネックになって通
信遅延が発生し、アプリケーションの応答性能が低下す
るという問題が発生する。
に、サーバセンター内LAN12とユーザオフィス内L
AN16とをつなぐ広域ネットワーク14の両端に、サ
ーバ側プロキシ30およびクライアント側プロキシ40
という2つのモジュールを設置し、それらの間で後述す
るフィンガープリント圧縮(FP圧縮)を行って通信デ
ータ量を低減することで、広域ネットワークのボトルネ
ックを解消する。
シ30、クライアント側プロキシ40、クライアント5
0は、いずれも、計算機上でソフトウェア(サーバ・プ
ログラム、サーバ側プロキシ・プログラム、クライアン
ト側プロキシ・プログラム、クライアント・プログラ
ム)を動作させる形で実現することができる。この場合
に、必要に応じて計算機所望の機能を有するOSやドラ
イバソフト、パケット通信用ソフト、暗号ソフト等とい
ったソフトウェア、あるいは通信インタフェース装置や
外部記憶装置や入出力装置等といったハードウェアが搭
載あるいは接続される。また、この場合に、ユーザある
いは管理者からの情報の入力やユーザへの情報の呈示等
のために、グラフィカル・ユーザ・インタフェース(G
UI)を用いると好ましい。
るクライアント50上では、その目的に応じて例えばW
EBブラウザ等のプログラムが動作する。ユーザは、例
えば、WEBブラウザからインターネットを介し情報転
送あるいは注文受付等の所望のサービスを提供するサー
バにリクエストメッセージを出し、リプライメッセージ
を受けることによって、またはこれを適宜繰り返すこと
によって、サービスを利用する。もちろん、WEBブラ
ウザ等の汎用のソフトウェアではなく、特定のサービス
を利用するための専用のソフトウェアなどの他のものが
用いられても構わない。また、クライアントは、汎用の
計算機ではなく、例えばインターネット機能を有する携
帯電話端末等でもよい。
ラムが動作し、クライアント20のユーザに対して、当
該サーバ・サイトに固有のサービスを提供する。
サーバセンター内LAN12とWAN14との両方に接
続し、トランスペアレント・プロキシとして動作するよ
うに設置して実施することができる。また、図2のよう
に、サーバセンター内LAN12上に設置して実施する
こともできる。また、図3のように、サーバ側プロキシ
30の機能をサーバ20に内蔵するように実施すること
もできる。
図1のように、ユーザオフィス内LAN16とWAN1
4との両方に接続し、トランスペアレント・プロキシと
して動作するように設置して実施することができる。ま
た、図2のように、ユーザオフィス内LAN16上に設
置して実施することもできる。また、図3のように、ク
ライアント側プロキシ40の機能をクライアント50上
で動作するブラウザ等に内蔵するように実施することも
できる。あるいは、ブラウザ等の動作するクライアント
50上に、個人用のクライアント側プロキシ40を動作
させるように実施することもできる。
ト側プロキシ40とは、図1〜図3などのように同じ形
態であってもよいし、異なる形態であってもよい。
クライアント側プロキシ40は、いずれも、フィンガー
プリント・キャッシュ(FPキャッシュ)と呼ぶキャッ
シュ機構を持つ。フィンガープリント・キャッシュは、
フィンガープリント(FP)と呼ぶ名前によって、HT
TPプロトコルでやりとりされるデータを記録・管理す
る。
うに、HTTPプロトコルでやり取りされるデータ(図
4の例ではコンテンツ)の内容から、あらかじめ決めら
れた計算方法(図4の例ではハッシュ関数)で決定され
る、短い数値である。この数値は、可変長でもよいが、
処理の容易さの観点では、固定長の数値の方が扱いやす
い。
は、良く知られている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に対してそれぞれ計算したハッ
シュ値が同じになる場合があるが、その確率は実用上無
視できるくらいに小さい)。
やクライアント側プロキシ40の持つフィンガープリン
ト・キャッシュ(図中の60)は、過去にHTTPプロ
トコルでやり取りされたデータ本体(図中の61)を、
そのデータから計算して求めたフィンガープリントの値
(図中の62)を名前として、記録・管理している。
キシ30からクライアント側プロキシ40へデータを転
送するときに、サーバ側プロキシ30は、当該データの
フィンガープリントを計算し、そのフィンガープリント
に対応するデータがフィンガープリント・キャッシュに
入っていれば、当該データ(と同じ内容のデータ)は過
去に転送したことがあるので、当該データを転送せず
に、対応するフィンガープリントの値を転送する。フィ
ンガープリントを受け取ったクライアント側プロキシ4
0は、当該フィンガープリントの値に対応するデータを
フィンガープリント・キャッシュから取り出すことで、
転送すべきデータを再現することができる。このような
方式(すなわち、データ圧縮→データ転送→データ解
凍)により、過去に送ったものと同じデータならばフィ
ンガープリントの値を送るだけでよいので、ネットワー
クを流れるデータ量を大幅に削減することができる。も
ちろん、クライアント側プロキシ40からサーバ側プロ
キシ30へデータを転送するときも同様である。
ント側プロキシ40との間でのデータ転送にあたり、フ
ィンガープリント・キャッシュを利用してメッセージ・
ボディーのデータをフィンガープリントに置き換えて転
送情報量を圧縮することを、フィンガープリント圧縮
(FP圧縮)と呼ぶものとする。
ト側プロキシ40との間において、すべてのメッセージ
をFP圧縮を適用する対象(すなわち、フィンガープリ
ント・キャッシュを利用してデータをフィンガープリン
トに置き換えるための処理を行う対象)としてもよい
が、例えばフィンガープリント・キャッシュの効果が期
待できないものなどに対する適用を除外するために、予
め定められた条件を満たすメッセージについては、これ
をFP圧縮の適用対象外とする(常にFP圧縮しないで
転送する)ようにしてもよい。この場合の予め定められ
た条件とは、例えば、メッセージ・ヘッダに予め定めら
れた情報が記述されていることである。具体的には、例
えば、メッセージ・ヘッダにGETメソッドを示す情報
およびリクエストを示す情報が記述されていることであ
る。また、予め定められた条件の他の例としては、転送
されるデータが空(null)あるいは非常に短いサイ
ズであることである。もちろん、それらの他にも種々の
バリエーションがある。また、複数の条件を組み合わせ
て使用するようにしてもよい。
バ側プロキシ30とクライアント側プロキシ40との間
でデータ転送する際の(FP圧縮の適用対象のメッセー
ジについての)プロキシ間メッセージ・フォーマットに
ついて説明する。
は、FP圧縮については、何もせずにそのままの(FP
圧縮側(送信側)のプロキシが受信した際の)メッセー
ジ・フォーマットでプロキシ間を転送して構わない。あ
るいは、FP圧縮側(送信側)のプロキシが、例えばそ
のメッセージ・ヘッダに当該メッセージがFP圧縮の適
用対象外を識別可能とする情報を持つようにして転送す
ることも可能である。
ト側プロキシ40との間でデータ転送する場合、FP圧
縮の適用対象のメッセージには、データがFP圧縮され
てフィンガープリントに置き換えられたメッセージ(圧
縮時のメッセージ)と、FP圧縮されおらず、データが
搭載されているメッセージ(非圧縮時のメッセージ)と
がある。
メッセージに含まれるデータがフィンガープリントキャ
ッシュに登録されていない場合に使用される。一方、圧
縮時のメッセージ・フォーマットは、メッセージに含ま
れるデータがフィンガープリントキャッシュに登録され
ている場合に使用される。
マットのメッセージを受信したことを契機として、当該
データについてフィンガープリントキャッシュへの登録
を行うことができる。
を示す。(a)は非圧縮時のメッセージであり、(b)
は圧縮時のメッセージである。
が載せられ、(b)ではメッセージ・ボディーにデータ
の代わりにフィンガープリント(FP)が載せられる。
また、この例では、メッセージ・ヘッダに、FP圧縮の
有無を識別可能とする識別情報が(圧縮側のプロキシに
おいて)記述され、この識別情報に基づいて(解凍側の
プロキシにおいて)FP圧縮の有無を識別する(例え
ば、0ならば圧縮なし、1ならば圧縮あり)。なお、識
別情報は、プロキシ間で使用される特別のものであって
もよいし、もともと通常のHTTPメッセージ・ヘッダ
に存在するフィールドを利用あるいは併用したものであ
ってもよい。
は、メッセージにフィンガープリントを含ませなかった
が、メッセージ・ボディーにデータに加えてフィンガー
プリントを含ませるようにしてもよいし、または図7に
示すように、メッセージ・ヘッダにフィンガープリント
を含ませるようにしてもよい。このようにすれば、解凍
側で当該データについてフィンガープリント・キャッシ
ュの登録を行う際に、該フィンガープリントを利用する
ことによって、あらためて当該データからフィンガープ
リントを求める手間が省ける。
が存在し得る場合には、解凍側(受信側)では、メッセ
ージ・ヘッダに上記の識別情報が含まれるか否かで、F
P圧縮の適用対象のメッセージか適用対象外のメッセー
ジかを判断することもできる。また、FP圧縮の適用対
象外のメッセージのヘッダにも識別情報を設け、該識別
情報によって3種類のメッセージを識別するようにして
もよい(例えば、01ならば適用対象外、10なら(適
用対象であって且つ)圧縮なし、11なら(適用対象で
あって且つ)圧縮あり)。
トのメッセージの具体例を示し、図33に図6(b)の
フォーマットのメッセージの具体例を示す。各図のヘッ
ダ中の“Fingerprint−Mode:…”が識
別情報に相当し、図33のボディの“6E39…012
8”がフィンガープリントに相当する。
ッセージの具体例を示す。ヘッダ中の“Fingerp
rint:…”がフィンガープリントに相当する。
例を示す。(a)は非圧縮時のメッセージであり、
(b)は圧縮時のメッセージである。(a)ではメッセ
ージ・ボディーにデータが載せられ、(b)ではメッセ
ージ・ボディーは空(null)である。また、この例
では、(a),(b)ともにメッセージ・ヘッダにフィ
ンガープリント(FP)が記述される。FP圧縮の有無
を識別可能とする識別情報について上記の例と同様であ
る。
(a)と同様のメッセージ・フォーマット(フィンガー
プリントを含まないフォーマット)を用いる方法もあ
る。
が存在し得る場合には、上記した識別情報に基づく方法
の他に、圧縮側(送信側)のプロキシがFP圧縮の適用
対象のメッセージ・ヘッダに常にフィンガープリントを
記述する構成の場合には、解凍側(受信側)では、メッ
セージ・ヘッダにフィンガープリントが含まれるか否か
で判断することもできる。
トのメッセージの具体例を示し、図36に図8(b)の
フォーマットのメッセージの具体例を示す。
に他の例を示す。(a)は非圧縮時のメッセージであ
り、(b)は圧縮時のメッセージである。(a)ではメ
ッセージ・ボディーにデータが載せられ、(b)ではメ
ッセージ・ボディーは空(null)である。また、こ
の例では、(a),(b)ともにメッセージ・ヘッダに
フィンガープリント(FP)が記述される。ただし、こ
の例では、FP圧縮の有無を識別可能とする識別情報は
使用しない。
(null)か否かによって、FP圧縮の有無を識別す
ることができる。ただし、FP圧縮の適用対象外のメッ
セージでメッセージ・ボディーが空(null)のもの
が存在し得る場合には、例えば、メッセージ・ヘッダに
フィンガープリント(FP)が存在するか否かによっ
て、FP圧縮の適用対象で圧縮時のメッセージか、FP
圧縮の適用対象外でメッセージ・ボディーが空(nul
l)のメッセージかを識別する(あるいは、メッセージ
・ヘッダにFP圧縮の適用対象か適用対象外かを示す情
報を設けてもよい)。
ッセージにフィンガープリントを記述しないフォーマッ
トを用いる方法もある。この場合には、メッセージ・ヘ
ッダにフィンガープリントが含まれるか否かによって、
FP圧縮の有無を識別することができる。ただし、FP
圧縮の適用対象外のメッセージが存在し得る場合には、
例えば、メッセージ・ヘッダにFP圧縮の適用対象か適
用対象外かを示す情報を設ければよい。
トのメッセージの具体例を示し、図38に図9(b)の
フォーマットのメッセージの具体例を示す。
メッセージの具体例を示す。
イアント側プロキシ40へリプライメッセージを転送す
るときにそのリプライデータをFP圧縮・解凍する場合
を中心に本実施形態について詳しく説明する。
0の構成例を示し、図12に本実施形態のクライアント
側プロキシ40の構成例を示す。なお、図11や図12
は、サーバ側プロキシ30からクライアント側プロキシ
40へデータを転送する際の構成を中心に示してある。
キシ30は、サーバセンター内LAN12または広域ネ
ットワーク14から転送メッセージを受信するための処
理を行う受信部31、転送メッセージに含まれるデータ
に対してFP圧縮を施すための処理部32、サーバセン
ター内LAN12または広域ネットワーク14へ転送メ
ッセージを送信するための処理を行う送信部33、フィ
ンガープリントとそのもととなったデータとを対応付け
て記憶するためのフィンガープリント・キャッシュ(F
Pキャッシュ)34を備えている。また、処理部32
は、転送メッセージに含まれるデータを圧縮対象とすべ
きか否かを判定するためのフィンガープリント(FP)
圧縮判定部321、フィンガープリント・キャッシュ3
4に対する検索や登録などを行うためのフィンガープリ
ント・キャッシュ(FPキャッシュ)管理部322、転
送メッセージに含まれるデータを対応するフィンガープ
リントで置き換えるなどの処理を行うためのフィンガー
プリント(FP)圧縮処理部323を含む。
側プロキシ40は、ユーザオフィス内LAN16または
広域ネットワーク14から転送メッセージを受信するた
めの処理を行う受信部41、転送メッセージに含まれる
データに対してFP解凍を施すための処理部42、ユー
ザオフィス内LAN16または広域ネットワーク14へ
転送メッセージを送信するための処理を行う送信部4
3、フィンガープリントとそのもととなったデータとを
対応付けて記憶するためのフィンガープリント・キャッ
シュ(FP・キャッシュ)44を備えている。また、処
理部42は、転送メッセージに含まれるデータを圧縮対
象とすべきか否かおよび転送メッセージに対するFP圧
縮の有無を判定するためのフィンガープリント(FP)
圧縮判定部421、フィンガープリント・キャッシュ3
4に対する検索や登録などを行うためのフィンガープリ
ント・キャッシュ(FPキャッシュ)管理部422、F
P圧縮された転送メッセージに含まれるフィンガープリ
ントから元のデータを解凍するなどの処理を行うための
フィンガープリント(FP)解凍処理部423を含む。
凍側のFP圧縮判定部421は、前述したようにメッセ
ージが予め定められた条件を満たすか否かを調べること
によって、そのメッセージに含まれるデータをFP圧縮
の適用対象とするか否かを判断する(すべてのメッセー
ジをFP圧縮の適用対象にする場合には、圧縮側のFP
圧縮判定部321および後に示す手順例の該当部分は不
要であり、解凍側のFP圧縮判定部421の該当判断の
部分および後に示す手順例の該当部分は不要である)。
また、解凍側のFP圧縮判定部421は、FP圧縮の適
用対象のメッセージについて、そのデータがFP圧縮さ
れたものか否かを判定する。以下では、FP圧縮の適用
対象となるメッセージを転送する場合(FP圧縮の適用
対象とすると判断された場合、またはすべてのメッセー
ジをFP圧縮の適用対象にする場合)を中心に説明す
る。
イアント側プロキシ40へリプライメッセージを転送す
る際のサーバ側プロキシ30の処理手順の一例を示す。
なお、図13は、1つのリプライメッセージを受けたと
きの処理を記述しているが、実際はサーバ側プロキシ3
0が受け取ったリプライメッセージ全てに対して、図1
3に例示する処理を行う。
り、サーバ20からリプライメッセージを受信する(ス
テップS1)。
セージのリプライデータがFP圧縮対象のものであるか
否か調べ、判断する(ステップS2)。リプライデータ
がFP圧縮対象外のものと判断されたならば(ステップ
S2)、受信したリプライメッセージを送信部33から
クライアント側プロキシ40へ転送する(ステップS
9)。
リプライデータがFP圧縮対象のものであると判断され
たならば、FPキャッシュ管理部322にて、該リプラ
イデータのフィンガープリントの値を計算し(ステップ
S3)、該フィンガープリントの値をキーとしてフィン
ガープリント・キャッシュ34を検索する(ステップS
4)。
に対応するデータとの組がフィンガープリント・キャッ
シュ34に登録されていたならば(ステップS5)、F
P圧縮処理部323にて、受信したリプライメッセージ
を、該フィンガープリントの値を用いてFP圧縮時のフ
ォーマットにして(例えば図8(b)等)、送信部33
から、クライアント側プロキシ40へ送信する(ステッ
プS6)。このとき、必要に応じて、リプライヘッダ内
のデータ長を表すフィールド(Content−Len
gth:フィールド)の値を、FP圧縮時のフォーマッ
トにあわせて設定する。
ンガープリントの値とこれに対応するデータとの組がフ
ィンガープリント・キャッシュ34に登録されていなか
ったならば(ステップS5)、次の2つの作業を行う。 (1)FP圧縮処理部323にて、受信したリプライメ
ッセージを、(必要に応じて該フィンガープリントの値
を用いて)非FP圧縮時のフォーマットにして(例えば
図8(a)等)、送信部33から、クライアント側プロ
キシ40へ送信する(ステップS7)。 (2)FPキャッシュ管理部322にて、該フィンガー
プリントの値と、該リプライデータとを対応付けて(フ
ィンガープリントの値をキーにして)、フィンガープリ
ント・キャッシュ34に登録する(ステップS8)。
先に行ってもよいし、並行して行ってもよい。
らクライアント側プロキシ40へリプライメッセージを
転送する際のクライアント側プロキシ40の処理手順の
一例を示す。なお、図14は、1つのリクエストメッセ
ージを受けたときの処理を記述しているが、実際はクラ
イアント側プロキシ40が受け取ったリクエストメッセ
ージ全てに対して、図14に例示する処理を行う。
1により、サーバ側プロキシ30からリプライメッセー
ジを受信する(ステップS11)。
セージのリプライデータがFP圧縮対象のものであるか
否か調べ、判断する(ステップS12)。リプライデー
タがFP圧縮対象外のものと判断されたならば(ステッ
プS12)、受信したリプライメッセージを送信部43
からクライアント50へ転送する(ステップS20)。
のリプライデータがFP圧縮対象のものであると判断さ
れたならば、FP圧縮判定部421は、さらに、リプラ
イデータがFP圧縮されているか否か調べ、判断する
(ステップS13)。
のリプライデータがFP圧縮されているものと判断され
たならば(例えば図8(b)等の場合)、FPキャッシ
ュ管理部422にて、該リプライデータのフィンガープ
リントの値を求め(ステップS14)、該フィンガープ
リントの値をキーとしてフィンガープリント・キャッシ
ュ44を検索する(ステップS15)。
リプライメッセージに対して、フィンガープリント・キ
ャッシュ34から検索された該フィンガープリントの値
に対応するデータを付加し、プロキシ間で特別の情報を
使用する場合には該情報を削除した後に、これを送信部
43からクライアント50へ送信する(ステップS1
6)。このとき、必要に応じて、リプライヘッダ内のデ
ータ長を表すフィールド(Content−Lengt
h:フィールド)の値を、該フィンガープリントの値に
対応するデータの長さに設定する。
セージのリプライデータがFP圧縮されていないものと
判断されたならば(例えば図8(a)等の場合)、次の
2つの作業を行う。 (1)FP解凍処理部423にて、プロキシ間で特別の
情報を使用する場合には受信リプライメッセージから該
情報を削除した後に、これを送信部43からクライアン
ト50へ送信する(ステップS18)。 (2)FPキャッシュ管理部422にて、該リプライデ
ータのフィンガープリントの値を求め(ステップS1
7)、該フィンガープリントの値と、該リプライデータ
とを対応付けて(フィンガープリントの値をキーにし
て)、フィンガープリント・キャッシュ34に登録する
(ステップS19)。
先に行ってもよいし、並行して行ってもよい。
ジにフィンガープリントが記述されている。しかし、ス
テップS17では、メッセージにフィンガープリントが
記述されている場合に、該メッセージからフィンガープ
リントを得る方法と、メッセージにフィンガープリント
が記述されてない場合に、リプライデータをもとにハッ
シュ関数等によってフィンガープリントの値を計算する
方法とがある。なお、メッセージにフィンガープリント
が記述されている場合であっても、リプライデータをも
とにフィンガープリントの値を計算する方法も可能であ
る。また、ステップS14/ステップS17は、ステッ
プS12とステップS13の間にて行うようにしても構
わないし、ステップS17は、ステップS18とステッ
プS19の間にて行うようにしても構わない。
13の判断は、同時に行ってもよい。
ーバ側プロキシ30へリクエストメッセージを転送する
際にはフィンガープリント・キャッシュを用いないもの
とする場合には、サーバ側プロキシ30は、図15に例
示するように、クライアント側プロキシ40からリクエ
ストメッセージを受信し(ステップS21)、これをサ
ーバ20へ送信する(ステップS22)、という手順で
構わない。同様に、クライアント側プロキシ40は、図
16に例示するように、クライアント50からリクエス
トメッセージを受信し(ステップS23)、これをサー
バ側プロキシ30へ送信する(ステップS24)、とい
う手順で構わない。
圧縮時)および図18(FP圧縮時)を参照しながら、
フィンガープリント・キャッシュを利用したデータ転送
についてより具体的に説明する。
ロキシ30からクライアント側プロキシ40へ、フィン
ガープリント・キャッシュ登録されていないデータを転
送するとともに、フィンガープリント・キャッシュ登録
する場合の動作について説明する。
は、例えば“/A.cgi”というURLでサーバ20
に、POSTメソッドのリクエストメッセージを出した
とする。サーバ20へのリクエストメッセージは、ま
ず、クライアント側プロキシ40に送られるように、ブ
ラウザ等を設定しておく。
ッセージを受け取ったクライアント側プロキシ40は、
そのリクエストメッセージをサーバ側プロキシ30に転
送する。
サーバ側プロキシ30は、そのリクエストメッセージを
サーバ50へ転送する。
ージに対する処理を行った後、サーバ側プロキシ30
に、そのリプライメッセージを送り返す。
ーバ側プロキシ30は、まず、受信リプライメッセージ
の持つリプライデータのフィンガープリントを計算し、
そのフィンガープリント名を持ったデータがフィンガー
プリント・キャッシュ34に入っているかどうかを調べ
る。入っていなければ、初めてのデータ(一旦フィンガ
ープリント・キャッシュ登録されたものがその後に削除
あるいは無効化されることがある構成の場合に、一旦フ
ィンガープリント・キャッシュ登録されたが削除あるい
は無効化され、その後において初めてである場合を含
む)であるので、そのデータをフィンガープリントを名
前としてフィンガープリント・キャッシュ34に入れる
(登録する)。
メッセージをクライアント側プロキシ40に転送する。
なお、前述したように、リプライデータから計算したフ
ィンガープリントの値を、リプライヘッダ等に入れて送
ると、クライアント側プロキシ40で再度フィンガープ
リントを計算する手間を省くことが出来る。
ライアント側プロキシ40は、初めてのデータであるの
で、リプライデータをフィンガープリント・キャッシュ
44に登録する。なお、前述したように、リプライデー
タからフィンガープリントを計算するか、あるいはサー
バ側プロキシがリプライヘッダ等に入れたフィンガープ
リントを取り出し、これを名前として入れる。
(リプライヘッダ等にフィンガープリントの値などのサ
ーバ側プロキシ30とクライアント側プロキシ40との
間だけで使用される情報が存在する構成の場合には、こ
れを削除した後に、)リプライメッセージを、クライア
ント50(上で動作するブラウザ等)へ送り返す。
記の(5)のフィンガープリント・キャッシュ登録は、
(6)の動作の後に行っても構わない。また、クライア
ント側プロキシ40において、(7)のフィンガープリ
ント・キャッシュ登録は、(8)の動作の後に行っても
構わない。
作が行われてキャッシュ登録されているデータを、サー
バ側プロキシ30からクライアント側プロキシ40へ転
送する場合の動作について説明する。
した動作における(1)〜(4)と同様である。
を受け取ったサーバ側プロキシ40は、まず、受信リプ
ライメッセージの持つリプライデータのフィンガープリ
ントを計算し、そのフィンガープリント名を持ったデー
タがフィンガープリント・キャッシュ34に入っている
かどうかを調べる。入っていれば、過去に送ったことの
あるデータ(フィンガープリント・キャッシュ登録され
ているデータ)なので、(前述したように例えばフィン
ガープリントの値をリプライヘッダに入れ且つリプライ
ボディを空にするなどして)リプライボディのデータを
フィンガープリントで置き換える。
ボディをフィンガープリントで置き換えたリプライメッ
セージをクライアント側プロキシ40に転送する。
ライアント側プロキシ40は、リプライデータがフィン
ガープリントで置き換えられていることを検出し、(前
述したように例えばリプライヘッダなどにて)指定され
たフィンガープリントを使ってフィンガープリント・キ
ャッシュ44から対応するデータを取り出し、これをリ
プライボディに入れる。
0は、(リプライヘッダ等にフィンガープリントの値な
どのサーバ側プロキシ30とクライアント側プロキシ4
0との間だけで使用される情報が存在する構成の場合に
は、これを削除した後に、)リプライメッセージを、ク
ライアント(上で動作するブラウザ等)へ送り返す。
ライアント側プロキシ40のフィンガープリント・キャ
ッシュは、その容量に上限があるため、所定のアルゴリ
ズムに従いガーベジコレクションを行って、例えば古い
データや使いそうに無いデータを消して行くのが好まし
い。
キシ30のフィンガープリント・キャッシュ34は持っ
ていてもクライアント側プロキシ40のフィンガープリ
ント・キャッシュ44では既に消されてしまっているデ
ータが発生し得ることになるので、上記の(7)で、ク
ライアント側プロキシ40において、フィンガープリン
トをもとにしてフィンガープリント・キャッシュ44か
らリプライデータを置き換えるべきデータを取り出そう
としたが、フィンガープリント・キャッシュ44に該当
するフィンガープリントとデータの組が存在しない場合
がある。このような場合には、例えば、クライアント側
プロキシ40は、サーバ側プロキシ30に対して、指定
したフィンガープリントのデータを送るように依頼し、
依頼されたサーバ側プロキシ30は、指定されたフィン
ガープリントのデータをフィンガープリント・キャッシ
ュ34から取り出して送り返すような仕組みを設ければ
よい。
ンガープリント・キャッシュ34では既に消されてしま
っているがクライアント側プロキシ40のフィンガープ
リント・キャッシュ44はまだ持っていてるデータが存
在する場合には、図17を参照して説明した動作におけ
る(7)で、クライアント側プロキシ40において、フ
ィンガープリント/リプライデータをフィンガープリン
ト・キャッシュ44に登録する際に、その時点で登録さ
れていたフィンガープリント/リプライデータに対して
上書きしてもよい。
(5)で、サーバ側プロキシ30において、リプライデ
ータのフィンガープリントを求め、該フィンガープリン
トがフィンガープリント・キャッシュ34に入っていれ
ば、当該リプライデータと同じデータが該フィンガープ
リントと組になってフィンガープリント・キャッシュ3
4に入っているものとみなして処理している。実用上、
異なるデータから同じフィンガープリントが生成されな
いことを前提にすれば、この方法で十分であるが、非常
に小さな確率で異なるデータのフィンガープリントが偶
々同じ値になってしまった場合に生じるエラーを取り除
くようにする方法もある。この場合には、リプライデー
タから求めたフィンガープリントがフィンガープリント
・キャッシュ34に入っているときに、該フィンガープ
リントと組になってフィンガープリント・キャッシュ3
4に入っているデータと、当該プライデータとを比較し
て、同じか否かを判断するようにすればよい。このと
き、もしフィンガープリントは同じであるが内容が異な
るデータが登録されていると判断された場合の処理は、
以下に例示するような方法が考えられる。・そのフィン
ガープリントは以降使用しないものとする(そのフィン
ガープリントを与えるデータは以後キャッシュされない
ことになる)。・先に登録されているフィンガープリン
ト/データを優先する(登録中のフィンガープリントと
同じ値のフィンガープリントを与える他のデータは、そ
の登録中はキャッシュされないことになる)。・現在登
録対象となっているフィンガープリント/データを優先
する(登録中のフィンガープリント/データは、同じ値
のフィンガープリントを与える他のデータによって次々
と更新されていくことになる)。
30あるいはクライアント側プロキシ40に、後述する
URLとフィンガープリントとの対応テーブル(URL
・FPテーブル)を設け、これとフィンガープリント・
キャッシュとを併用することで、プロキシサーバの共有
キャッシュの動作をも行うようにすることができる。こ
の機能は、個々のサーバ側プロキシ30毎に、また個々
のクライアント側プロキシ40毎に、設けるか否かを定
めることができる。
ロキシ40について説明する。
キシ40の構成例を示す。このクライアント側プロキシ
40は、図12の構成・機能に加えて、更に過去にアク
セスしたURLと、そのリプライデータのフィンガープ
リントとの対応を保持するURL・フィンガープリント
・テーブル(URL・FPテーブル)45と、URLキ
ャッシュ処理部424とを備えている。
RLおよびフィンガープリント以外に、そのURLでア
クセスしたときにリプライヘッダに入れられて来たMI
MEタイプや、有効期間の判定に使うためのタイムスタ
ンプなどの情報も併せて記録する。また、URL・FP
テーブル45には、従来の共有キャッシュがキャッシュ
できる場合にのみ必要な情報を記録する。
イアント側プロキシ40へリプライメッセージを転送す
る際のクライアント側プロキシ40の処理手順の一例を
示す。
順のステップS16およびS19の後に追加される以外
は、図14の手順と同じであり、図20では、図14の
手順のステップS16およびS19より後の処理手順の
部分を示してある。ここでは、図14で説明した手順に
追加する部分を中心に説明する。
3により、クライアント50にリプライメッセージを送
信(ステップS16またはS18)した後、URLキャ
ッシュ処理部424にて、該リプライメッセージがキャ
ッシュ対象のものであるか否か調べ、判断する(ステッ
プS27)。キャッシュ対象であると判断されたなら
ば、URLキャッシュ処理部424にて、URLとフィ
ンガープリントとリプライヘッダを構成するのに必要な
情報等を対応付けて(URLをキーにして)をURL・
FPテーブル45に登録する(ステップS28)。キャ
ッシュ対象でないと判断されたならば、何もしない。
プS28のURL・FPテーブルへの登録は、ステップ
S13とステップS16あるいはS19の間にて行うよ
うにしても構わない。
キャッシュ対象のものであるか否かの判断方法は、従来
の登録時の手法と同様で構わない(例えば、GETメソ
ッドのリプライデータであって、かつ、そのヘッダにキ
ャッシュ不可を示す情報が記述されていないものをキャ
ッシュ対象とする等)。
信したリクエストメッセージをクライアント側プロキシ
40からサーバ側プロキシ30へ転送する際のクライア
ント側プロキシ40におけるプロキシサーバの共有キャ
ッシュの動作に関する処理手順の一例を示す。
1により、クライアント50からリクエストメッセージ
を受信する(ステップS31)。
ストメッセージに対するリプライメッセージがキャッシ
ュ対象のものであるか否か調べ、判断する(ステップS
32)。なお、応答時のキャッシュ対象か否かの判断方
法は、従来の応答時の手法と同様で構わない(例えば、
受信リクエストメッセージがGETメソッドのものであ
るか否か)。
のと判断されたならば(ステップS32)、受信したリ
クエストメッセージを送信部43からサーバ側プロキシ
30へ転送する(ステップS38)。
ジに対するリプライメッセージがキャッシュ対象のもの
であると判断されたならば、URLキャッシュ処理部4
24は、さらに、該リクエストメッセージに指定されて
いるURLを取り出し(ステップS33)、そのURL
をキーとしてURL・FPテーブル45を検索する(ス
テップS34)。
ィンガープリントがキャッシュされていなければ(ステ
ップS35)、受信したリクエストメッセージを送信部
43からサーバ側プロキシ30へ転送する(ステップS
38)。このとき、現在保持しているデータのタイムス
タンプをリクエストメッセージのIf−Modifie
d−Sinceヘッダに記入してサーバ側プロキシ30
へ転送し、サーバ側プロキシ30から現在保持している
データが有効であるとのリプライメッセージを受け取る
と、ステップS37へ行くように実施することもでき
る。
タのフィンガープリントが登録されていても(ステップ
S35)、併せて保持されている有効期間の判定のため
の情報に基づいてそのデータが無効になっていると判断
されれば(ステップS36)、受信したリクエストメッ
セージを送信部43からサーバ側プロキシ30へ転送す
る(ステップS38)。
タのフィンガープリントが登録されており(ステップS
35)、かつ、併せて保持されている有効期間の判定の
ための情報に基づいてそのデータが有効であると判断さ
れれば(ステップS36)、URLキャッシュ処理部4
24は、URL・FPテーブル45からリプライデータ
を構成するのに必要な情報を得るとともに、当該URL
に対応するリプライデータのフィンガープリントをキー
としてフィンガープリント・キャッシュ44を検索して
リプライデータを取得し、それらをもとにリプライメッ
セージを生成して、これを送信部43からクライアント
50へ転送する(ステップS37)。
ら、共有キャッシュの動作についてより具体的に説明す
る。
は、例えば“/C.html”というURLでサーバ2
0に、GETメソッドのリクエストメッセージを出した
とする。
きに、そのURLがURL・FPテーブル45に載って
いれば、従来の共有キャッシュと同様に有効期間の判定
を行い、有効と判断できれば、そのURLに対応するフ
ィンガープリントをURL・FPテーブル45を引いて
求め、それを名前とするデータをフィンガープリント・
キャッシュ44から取り出してリプライデータとし、さ
らに、URL・FPテーブル45からMIMEタイプ等
のリプライヘッダを構成するのに必要な情報を取り出し
てリプライヘッダを作成する。
ライアント20(上で動作するブラウザ等)へ送り返
す。
降に更新されている場合にのみデータを送ることを依頼
するIf−Modified−Sinceヘッダを持っ
たリクエストメッセージの場合も、まずURL・FPテ
ーブルを参照して更新されていないことが判断できれ
ば、そこでリプライメッセージを作成して返し、そうで
なければサーバまで再びIf−Modified−Si
nceの情報を書き直して聞きに行くように実施するこ
ともできる。
ロキシ30について説明する。
ャッシュ機能について説明したが、サーバ側プロキシ3
0も同様に実施可能である。
対するメッセージ転送元のクライアント50とメッセー
ジ転送先のサーバ側プロキシ30が、サーバ側プロキシ
30に対してはそれぞれクライアント側プロキシ40
(転送元)とサーバ20(転送先)になり、キャッシュ
に関係する構成・手順は同様である。
0の構成例を示す。このサーバ側プロキシ30は、図1
1の構成・機能に加えて、更に過去にアクセスしたUR
Lと、そのリプライデータのフィンガープリントとの対
応を保持するURL・フィンガープリント・テーブル
(URL・FPテーブル)35と、URLキャッシュ処
理部324とを備えている。
イアント側プロキシ40へリプライメッセージを転送す
る際のサーバ側プロキシ30の処理手順の一例を示す。
順のステップS6およびS8の後に追加される以外は、
図13の手順と同じであり、図24では、図13の手順
のステップS6およびS8より後の処理手順の部分を示
してある。ここでは、図13で説明した手順と相違する
部分を中心に説明する。
り、クライアント側プロキシ40にリプライメッセージ
を送信(ステップS6またはS8)した後、URLキャ
ッシュ処理部324にて、該リプライメッセージのリプ
ライデータがキャッシュ対象のものであるか否か調べ、
判断する(ステップS39−2)。キャッシュ対象であ
ると判断されたならば、URLキャッシュ処理部324
にて、URLとフィンガープリントとリプライヘッダを
構成するのに必要な情報等を対応付けて(URLをキー
にして)をURL・FPテーブル35に登録する(ステ
ップS39−3)。キャッシュ対象でないと判断された
ならば、何もしない。
変形することが可能である。
ら受信したリクエストメッセージをサーバ側プロキシ3
0からサーバ20へ転送する際のサーバ側プロキシ30
におけるプロキシサーバの共有キャッシュの動作に関す
る処理手順の一例を示す。
の手順と同様である。なお、図21のS37ではリプラ
イデータを作成してクライアント50へ転送するが、こ
れに対応する図25のS47ではFP圧縮時のフォーマ
ット(例えば図8(b)等)でリプライデータを作成し
てクライアント側プロキシ40へ転送することになる。
・FPテーブル表を持ってキャッシュの処理をする構成
は、一つのサーバ側プロキシが複数のクライアント側プ
ロキシから使われているときに有効に働く。すなわち、
あるクライアント側プロキシから要求のあったキャッシ
ュ可能なデータが既に他のクライアント側プロキシによ
ってアクセスされている場合には、サーバ側プロキシに
もキャッシュされているので、そのデータを送り返すだ
けで処理が完了する。
をフィンガープリント・キャッシュとは別途に設ける場
合について説明したが、URL・FPテーブル表をフィ
ンガープリント・キャッシュと一体化して構成すること
も可能である。
プロキシ30からクライアント側プロキシ40へリプラ
イデータを転送するときに、該リプライデータがフィン
ガープリント・キャッシュに登録されているデータと同
じものである場合には、該リプライデータに代えて、対
応するフィンガープリントを転送することで、ネットワ
ークのトラフィックを軽減しているが、FP圧縮は、ク
ライアント側プロキシ40からサーバ側プロキシ30へ
リクエストデータを転送する場合についてさらに適用す
ることが可能である。なお、FP圧縮を、クライアント
側プロキシ240からサーバ側プロキシ230へリクエ
ストデータを転送する場合についてのみ適用することも
可能である。
のみに適用した場合、FP圧縮を該リプライデータ転送
のみに適用した場合、FP圧縮を該リクエストデータ転
送および該リプライデータ転送に適用した場合のいずれ
においても、リクエストメッセージが指定するURLに
対応するリプライデータに対する共用キャッシュ機能に
関する構成をクライアント側プロキシのみに設けること
も、サーバ側プロキシのみに設けることも、両プロキシ
に設けることも可能である。
らサーバ側プロキシ30へのリクエストデータ転送に適
用する場合、すでに説明したリプライデータに対するサ
ーバ側プロキシ30とクライアント側プロキシ40との
役割を逆にすればよいので、FP圧縮を両データ転送に
適用する場合には、サーバ側プロキシ30は図11の構
成に加えて、更に処理部32にフィンガープリント解凍
処理部を備え、クライアント側プロキシ40は図12の
構成に加えて、更に処理部42にフィンガープリント圧
縮処理部を備えればよい。
ンガープリント圧縮処理部とフィンガープリント解凍処
理部とを併せて、フィンガープリント(FP)圧縮・解
凍処理部としてもよい。
ト側プロキシ40は、リプライデータ転送に対するフィ
ンガープリント・キャッシュとは独立にリクエストデー
タ転送に対するフィンガープリント・キャッシュを設け
てもよいが、リプライデータ転送とクエストデータ転送
とで同じフィンガープリント・キャッシュを共用しても
よい。
プロキシ、クライアント側プロキシ)の構成例を示す。
40からサーバ側プロキシ30へリクエストメッセージ
を転送する際のクライアント側プロキシ40の処理手順
の一例を示す。
1により、クライアント50からリクエストメッセージ
を受信する(ステップS51)。
ッセージのリクエストデータがFP圧縮対象のものであ
るか否か調べ、判断する(ステップS52)。リクエス
トデータがFP圧縮対象外のものと判断されたならば
(ステップS52)、受信したリクエストメッセージを
送信部43からサーバ側プロキシ30へ転送する(ステ
ップS59)。
ジのリクエストデータがFP圧縮対象のものであると判
断されたならば、FPキャッシュ管理部422にて、該
リクエストデータのフィンガープリントの値を計算し
(ステップS53)、該フィンガープリントの値をキー
としてフィンガープリント・キャッシュ44を検索する
(ステップS54)。
に対応するデータとの組がフィンガープリント・キャッ
シュ44に登録されていたならば(ステップS55)、
FP圧縮・解凍処理部425にて、受信したリクエスト
メッセージを、該フィンガープリントの値を用いてFP
圧縮時のフォーマットにして(例えば図8(b)等)、
送信部43から、サーバ側プロキシ30へ送信する(ス
テップS56)。
ィンガープリントの値とこれに対応するデータとの組が
フィンガープリント・キャッシュ44に登録されていな
かったならば(ステップS55)、次の2つの作業を行
う。 (1)FP圧縮・解凍処理部425にて、受信したリク
エストメッセージを、(必要に応じて該フィンガープリ
ントの値を用いて)非FP圧縮時のフォーマットにして
(例えば図8(a)等)、送信部43から、サーバ側プ
ロキシ30へ送信する(ステップS57)。 (2)FPキャッシュ管理部422にて、該フィンガー
プリントの値と、該リクエストデータとを対応付けて
(フィンガープリントの値をキーにして)、フィンガー
プリント・キャッシュ44に登録する(ステップS5
8)。
先に行ってもよいし、並行して行ってもよい。
40からサーバ側プロキシ30へリクエストメッセージ
を転送する際のサーバ側プロキシ30の処理手順の一例
を示す。
り、クライアント側プロキシ40からリクエストメッセ
ージを受信する(ステップS61)。
ッセージのリクエストデータがFP圧縮対象のものであ
るか否か調べ、判断する(ステップS62)。リクエス
トデータがFP圧縮対象外のものと判断されたならば
(ステップS62)、受信したリクエストメッセージを
送信部33からサーバ20へ転送する(ステップS7
0)。
ジのリクエストデータがFP圧縮対象のものであると判
断されたならば、FP圧縮判定部321は、さらに、リ
クエストデータがFP圧縮されているか否か調べ、判断
する(ステップS63)。
ジのリクエストデータがFP圧縮されているものと判断
されたならば(例えば図8(b)等の場合)、FPキャ
ッシュ管理部322にて、該リクエストデータのフィン
ガープリントの値を求め(ステップS64)、該フィン
ガープリントの値をキーとしてフィンガープリント・キ
ャッシュ34を検索する(ステップS65)。
て、受信リプライメッセージに対して、フィンガープリ
ント・キャッシュ34から検索された該フィンガープリ
ントの値に対応するデータを付加し、プロキシ間で特別
の情報を使用する場合には該情報を削除した後に、これ
を送信部33からサーバ20へ送信する(ステップS6
6)。
ッセージのリクエストデータがFP圧縮されていないも
のと判断されたならば(例えば図8(a)等の場合)、
次の2つの作業を行う。 (1)FP圧縮・解凍処理部325にて、プロキシ間で
特別の情報を使用する場合には受信リプライメッセージ
から該情報を削除した後に、これを送信部33からサー
バ20へ送信する(ステップS68)。 (2)FPキャッシュ管理部322にて、該リクエスト
データのフィンガープリントの値を求め(ステップS6
7)、該フィンガープリントの値と、該リクエストデー
タとを対応付けて(フィンガープリントの値をキーにし
て)、フィンガープリント・キャッシュ34に登録する
(ステップS69)。
先に行ってもよいし、並行して行ってもよい。
ージにフィンガープリントが記述されている場合に、該
メッセージからフィンガープリントを得る方法と、メッ
セージにフィンガープリントが記述されてない場合に、
リクエストデータをもとにハッシュ関数等によってフィ
ンガープリントの値を計算する方法とがある。なお、メ
ッセージにフィンガープリントが記述されている場合で
あっても、リクエストデータをもとにフィンガープリン
トの値を計算する方法も可能である。また、ステップS
64/ステップS67は、ステップS62とステップS
63の間にて行うようにしても構わないし、ステップS
67は、ステップS68とステップS69の間にて行う
ようにしても構わない。
63の判断は、同時に行ってもよい。
ィンガープリントで置き換えられるように実施すると、
例えば、同じファイルを何度もサーバにアップロードす
る際ときには、2回目以降フィンガープリントを送るだ
けで済むので、ネットワークのトラフィックを軽減させ
ることができる。
ントが送信したリクエストメッセージが指定するURL
に対応するリプライデータに対する共用キャッシュ機能
に関する構成をサーバ側プロキシやクライアント側プロ
キシに対して併せて実施することも可能である。この場
合のプロキシ(サーバ側プロキシ、クライアント側プロ
キシ)の構成例を図29に示す。この場合のサーバ側プ
ロキシやクライアント側プロキシの動作は既に説明した
ものと同様である。
ロキシからサーバ側プロキシへ転送されるリクエストメ
ッセージや、サーバ側プロキシからクライアント側プロ
キシへ転送されるリプライメッセージを対象とする場合
について示してきたが、あるプロキシに、リクエストメ
ッセージを送信する装置とリプライメッセージを送信す
る装置との両方、あるいはリクエストメッセージおよび
リプライメッセージの両方を送信する装置が接続されて
いる場合には、もちろん、クライアント側プロキシから
サーバ側プロキシへ転送されるリクエストメッセージお
よびリプライメッセージならびにサーバ側プロキシから
クライアント側プロキシへ転送されるリクエストメッセ
ージおよびリプライメッセージを対象とすることや、ク
ライアント側プロキシからサーバ側プロキシへ転送され
るリクエストメッセージおよびサーバ側プロキシからク
ライアント側プロキシへ転送されるリクエストメッセー
ジのみ対象とすることなども可能である。
キシと1つのクライアント側プロキシとの間の1対1の
通信に着目して説明してきたが、本発明の適用範囲はも
ちろんサーバ側プロキシとクライアント側プロキシとが
1対1で通信するシステムには限定されるものではない
く、サーバ側プロキシとクライアント側プロキシとが1
対多で通信するシステム、サーバ側プロキシとクライア
ント側プロキシとが多対1で通信するシステム、あるい
はサーバ側プロキシとクライアント側プロキシとが多対
多で通信するシステムにも適用可能である。例えば、図
30のように、複数のユーザオフィスに設置したクライ
アント側プロキシや、モバイルユーザが利用する個人用
プロキシなどがサーバ側プロキシを共有して使用するよ
うに実施することも可能である。
まれるデータ全体をFP圧縮する対象(フィンガープリ
ント・キャッシュに登録する対象)にしていたが、例え
ば、1つのメッセージに含まれるデータが所定の単位の
データの集合で構成される場合には、1つのメッセージ
に含まれる一部の単位データのみFP圧縮する対象(フ
ィンガープリント・キャッシュに登録する対象)にする
構成も可能である。
て実現可能である。また、本実施形態は、コンピュータ
に所定の手段を実行させるための(あるいはコンピュー
タを所定の手段として機能させるための、あるいはコン
ピュータに所定の機能を実現させるための)プログラム
として実施することもでき、該プログラムを記録したコ
ンピュータ読取り可能な記録媒体として実施することも
できる。
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。また、この
発明の実施の形態で例示した各種構成部分についての各
種バリエーションは、適宜組み合わせて実施することが
可能である。また、この発明の実施の形態は、個別装置
としての発明、関連を持つ2以上の装置についての発
明、システム全体としての発明、個別装置内部の構成部
分についての発明、またはそれらに対応する方法の発明
等、種々の観点、段階、概念またはカテゴリに係る発明
を包含・内在するものである。従って、この発明の実施
の形態に開示した内容からは、例示した構成に限定され
ることなく発明を抽出することができるものである。
るものではなく、その技術的範囲において種々変形して
実施することができる。
ータとその名前との対応を保持し、この対応を保持して
いるデータについては、データを転送するの代わりに対
応する名前を転送することで、データ転送装置間の転送
データ量を削減することができる。
トワーク・システムの構成例を示す図
・システムの他の構成例を示す図
・システムのさらに他の構成例を示す図
いて説明するための図
ャッシュについて説明するための図
トの一例を示す図
トの他の例を示す図
トのさらに他の例を示す図
トのさらに他の例を示す図
ットのさらに他の例を示す図
を示す図
構成例を示す図
を示すフローチャート
手順例を示すフローチャート
を示すフローチャート
手順例を示すフローチャート
アント側プロキシとの間のデータ転送について説明する
ための図
アント側プロキシとの間のデータ転送について説明する
ための図
他の構成例を示す図
他の手順例を示すフローチャート
他の手順例を示すフローチャート
ト側プロキシとの間のデータ転送について説明するため
の図
成例を示す図
順例を示すフローチャート
順例を示すフローチャート
示す図
さらに他の手順例を示すフローチャート
他の手順例を示すフローチャート
示す図
ク・システムのさらに他の構成例を示す図
ムについて説明するための図
体例を示す図
体例を示す図
示す図
体例を示す図
体例を示す図
体例を示す図
体例を示す図
を示す図
部 323…FP圧縮処理部 423…FP解凍処理部 324,424…URLキャッシュ処理部 325,425…FP解凍・解凍処理部
Claims (24)
- 【請求項1】第1の通信装置から送信されたデータを受
信し、該データをその宛先となる第2の通信装置に通ず
る他のデータ転送装置へ送信するとともに、該第2の通
信装置から送信されたデータを該他のデータ転送装置を
介して受信し、該データをその宛先となる該第1の通信
装置へ送信するデータ転送装置であって、 前記第1の通信装置から前記データを受信するための受
信手段と、 過去に前記他のデータ転送装置へ送信したデータと、該
データの内容をもとに生成して該データに割り当てた名
前とを対応付けて保持するための保持手段と、前記第1
の通信装置から送信されたデータを受信した際に、該受
信したデータの内容をもとに生成した該データに割り当
てるべき名前が、前記保持手段に保持されている場合に
は、該データの代わりに該名前を送信するための処理を
行い、該受信したデータに割り当てられるべき名前が、
前記保持手段に保持されていない場合には、該受信した
データと該名前とを対応付けて前記保持手段に保持する
ための処理を行うとともに、該データを送信するための
処理を行う処理手段と、 前記処理手段の処理に応じて前記名前または前記受信し
たデータを、前記他のデータ転送装置へ送信するための
送信手段とを備えたことを特徴とするデータ転送装置。 - 【請求項2】第1の通信装置から送信されたデータを他
のデータ転送装置を介して受信し、該データをその宛先
となる第2の通信装置へ送信するとともに、該第2の通
信装置から送信されたデータを受信し、該データをその
宛先となる第1の通信装置に通ずる他のデータ転送装置
へ送信するデータ転送装置であって、 前記他のデータ転送装置から前記データまたは該データ
の代わりに該データの内容をもとに生成して該データに
割り当てられた名前を受信するための受信手段と、 過去に前記他のデータ転送装置から受信したデータと、
該データの内容をもとに生成して該データに割り当てら
れた名前とを対応付けて保持するための保持手段と、 前記他のデータ転送装置から前記名前を受信した場合に
は、前記保持手段から該受信した名前に対応付けて保持
されているデータを取得し、該取得したデータを送信す
るための処理を行い、前記他のデータ転送装置から前記
データを受信した場合には、該受信したデータと該デー
タに割り当てられるべき名前とを対応付けて前記保持手
段に保持するための処理を行うとともに、該受信したデ
ータを送信するための処理を行う処理手段と、 前記処理手段の処理に応じて前記取得したデータまたは
前記受信したデータを、前記第2の通信装置へ送信する
ための送信手段とを備えたことを特徴とするデータ転送
装置。 - 【請求項3】前記名前は、所定の方法によって前記デー
タを圧縮して得た値であることを特徴とする請求項1ま
たは2に記載のデータ転送装置。 - 【請求項4】前記名前は、前記データに所定のハッシュ
関数を適用して得られた値であることを特徴とする請求
項1または2に記載のデータ転送装置。 - 【請求項5】前記受信したデータに割り当てられるべき
前記名前が前記保持手段に保持されていなかったため
に、該受信したデータを前記他のデータ転送装置へ送信
する際には、該受信したデータに割り当てられるべき前
記名前をも併せて送信することを特徴とする請求項1に
記載のデータ転送装置。 - 【請求項6】前記他のデータ転送装置から前記データと
ともに該データに割り当てられるべき前記名前を受信し
た場合に、該受信したデータと該受信した名前とを対応
付けて前記保持手段に保持することを特徴とする請求項
2に記載のデータ転送装置。 - 【請求項7】少なくともリプライメッセージのデータで
あって空でないものを対象として前記保持手段への保持
及び前記名前の転送を行うことを特徴とする請求項1ま
たは2に記載のデータ転送装置。 - 【請求項8】予め定められた条件を満たすデータは、前
記保持手段への保持を行う対象から除外することを特徴
とする請求項1または2に記載のデータ転送装置。 - 【請求項9】前記データ転送装置は、ローカルエリアネ
ットワークを介して前記第1の通信装置と接続されたも
のであることを特徴とする請求項1に記載のデータ転送
装置。 - 【請求項10】前記データ転送装置は、前記第1の通信
装置上にソフトウェアとして搭載されたものであること
を特徴とする請求項1に記載のデータ転送装置。 - 【請求項11】前記データ転送装置は、ローカルエリア
ネットワークを介して前記第2の通信装置と接続された
ものであることを特徴とする請求項2に記載のデータ転
送装置。 - 【請求項12】前記データ転送装置は、前記第2の通信
装置上にソフトウェアとして搭載されたものであること
を特徴とする請求項2に記載のデータ転送装置。 - 【請求項13】前記第1の通信装置から受信したデータ
について前記保持手段への保持を行う場合に、該受信し
たデータが、前記第2の通信装置から該第1の通信装置
へのリクエストメッセージに対するリプライメッセージ
のデータであるときに、該リプライメッセージに対応す
るリクエストメッセージが要求するデータについてのU
RLと、該データに割り当てられた前記名前とを対応付
けて、前記保持手段または別の保持手段に保持してお
き、 前記他のデータ転送装置から前記第2の通信装置が送信
したリクエストメッセージを受信した場合に、該リクエ
ストメッセージが要求するデータについてのURLが前
記保持手段または別の保持手段に保持されているとき
に、該URLに対応する前記名前に対応付けて前記保持
手段に保持されている前記データをもとに前記リクエス
トメッセージに対するリプライメッセージであって前記
第2の通信装置に宛てたものを作成し、 作成した前記リプライメッセージを前記他のデータ転送
装置へ送信することを特徴とする請求項1に記載のデー
タ転送装置。 - 【請求項14】前記他のデータ転送装置から受信したデ
ータについて前記保持手段への保持を行う場合に、該受
信したデータが、前記第2の通信装置から前記第1の通
信装置への所定のリクエストメッセージに対するリプラ
イメッセージのデータであるときに、該リプライメッセ
ージに対応するリクエストメッセージが要求するデータ
についてのURLと、該データに割り当てられた前記名
前とを対応付けて、前記保持手段または別の保持手段に
保持しておき、 前記第2の通信装置から前記所定のリクエストメッセー
ジを受信した場合に、該リクエストメッセージが要求す
るデータについてのURLが前記保持手段または別の保
持手段に保持されているときに、該URLに対応する前
記名前に対応付けて前記保持手段に保持されている前記
データをもとに前記リクエストメッセージに対するリプ
ライメッセージを作成し、 作成した前記リプライメッセージを前記第2の通信装置
へ送信することを特徴とする請求項2に記載のデータ転
送装置。 - 【請求項15】前記第1の通信装置はサーバ装置であ
り、前記第2の通信装置はクライアント装置であること
を特徴とする請求項1、2、13または14に記載のデ
ータ転送装置。 - 【請求項16】前記所定のリクエストメッセージは、G
ETメソッドのリクエストメッセージであることを特徴
とする請求項13または14に記載のデータ転送装置。 - 【請求項17】第1の通信装置から送信されたデータを
受信し、該データをその宛先となる第2の通信装置に通
ずる他のデータ転送装置へ送信するとともに、該第2の
通信装置から送信されたデータを該他のデータ転送装置
を介して受信し、該データをその宛先となる該第1の通
信装置へ送信するデータ転送装置におけるデータ転送方
法であって、 前記第1の通信装置から送信されたデータを受信し、 受信された前記データの内容をもとに生成した該データ
に割り当てるべき名前が、過去に前記他のデータ転送装
置へ送信したデータと該データの内容をもとに生成して
該データに割り当てた名前とを対応付けて保持するため
の保持手段に保持されているか否か判断し、 保持されている場合には、受信された前記データの代わ
りに前記名前を送信するための処理を行い、保持されて
いない場合には、受信された該データと前記名前とを対
応付けて前記保持手段に保持するための処理を行うとと
もに、該データを送信するための処理を行うことを特徴
とするデータ転送方法。 - 【請求項18】第1の通信装置から送信されたデータを
他のデータ転送装置を介して受信し、該データをその宛
先となる第2の通信装置へ送信するとともに、該第2の
通信装置から送信されたデータを受信し、該データをそ
の宛先となる第1の通信装置に通ずる他のデータ転送装
置へ送信するデータ転送装置におけるデータ転送方法で
あって、 前記他のデータ転送装置から前記データまたは該データ
の代わりに該データの内容をもとに生成して該データに
割り当てられた名前を受信し、 前記他のデータ転送装置から前記データの代わりに該デ
ータの内容をもとに生成して該データに割り当てられた
名前を受信した場合には、過去に前記他のデータ転送装
置から受信されたデータと該データの内容をもとに生成
して該データに割り当てられた名前とを対応付けて保持
するための保持手段から、受信された前記名前に対応付
けて保持されているデータを取得し、該取得したデータ
を送信するための処理を行い、前記他のデータ転送装置
から前記データを受信した場合には、受信された該デー
タと該データに割り当てられるべき名前とを対応付けて
前記保持手段に保持するための処理を行うとともに、受
信された該データを送信するための処理を行うことを特
徴とするデータ転送方法。 - 【請求項19】前記第1の通信装置から受信されたデー
タについて前記保持手段への保持を行う場合に、受信さ
れた前記データが、前記第2の通信装置から該第1の通
信装置へのリクエストメッセージに対するリプライメッ
セージのデータであるときに、該リプライメッセージに
対応するリクエストメッセージが要求するデータについ
てのURLと、該データに割り当てられた前記名前とを
対応付けて、前記保持手段または別の保持手段に保持し
ておき、 前記他のデータ転送装置から前記第2の通信装置が送信
したリクエストメッセージを受信した場合に、該リクエ
ストメッセージが要求するデータについてのURLが前
記保持手段または別の保持手段に保持されているとき
に、該URLに対応する前記名前に対応付けて前記保持
手段に保持されている前記データをもとに前記リクエス
トメッセージに対するリプライメッセージであって前記
第2の通信装置に宛てたものを作成し、 作成した前記リプライメッセージを前記他のデータ転送
装置へ送信することを特徴とする請求項17に記載のデ
ータ転送方法。 - 【請求項20】前記他のデータ転送装置から受信された
データについて前記保持手段への保持を行う場合に、受
信された前記データが、前記第2の通信装置から前記第
1の通信装置への所定のリクエストメッセージに対する
リプライメッセージのデータであるときに、該リプライ
メッセージに対応するリクエストメッセージが要求する
データについてのURLと、該データに割り当てられた
前記名前とを対応付けて、前記保持手段または別の保持
手段に保持しておき、 前記第2の通信装置から前記所定のリクエストメッセー
ジを受信した場合に、該リクエストメッセージが要求す
るデータについてのURLが前記保持手段または別の保
持手段に保持されているときに、該URLに対応する前
記名前に対応付けて前記保持手段に保持されている前記
データをもとに前記リクエストメッセージに対するリプ
ライメッセージを作成し、 作成した前記リプライメッセージを前記第2の通信装置
へ送信することを特徴とする請求項18に記載のデータ
転送方法。 - 【請求項21】第1の通信装置から送信されたデータを
受信し、該データをその宛先となる第2の通信装置に通
ずる他のデータ転送装置へ送信するとともに、該第2の
通信装置から送信されたデータを該他のデータ転送装置
を介して受信し、該データをその宛先となる該第1の通
信装置へ送信するデータ転送装置としてコンピュータを
機能させるためのプログラムであって、 過去に前記他のデータ転送装置へ送信したデータと、該
データの内容をもとに生成して該データに割り当てた名
前とを対応付けて記憶装置に保持するための機能と、 前記第1の通信装置から送信されたデータを受信した際
に、該受信したデータの内容をもとに生成した該データ
に割り当てるべき名前が、前記記憶装置に保持されてい
る場合には、該データの代わりに該名前を送信するため
の処理を行い、該受信したデータに割り当てられるべき
名前が、前記記憶装置に保持されていない場合には、該
受信したデータと該名前とを対応付けて前記記憶装置に
保持するための処理を行うとともに、該データを送信す
るための処理を行う機能とをコンピュータに実現させる
ためのプログラム。 - 【請求項22】第1の通信装置から送信されたデータを
他のデータ転送装置を介して受信し、該データをその宛
先となる第2の通信装置へ送信するとともに、該第2の
通信装置から送信されたデータを受信し、該データをそ
の宛先となる第1の通信装置に通ずる他のデータ転送装
置へ送信するデータ転送装置としてコンピュータを機能
させるためのプログラムであって、 過去に前記他のデータ転送装置から受信したデータと、
該データの内容をもとに生成して該データに割り当てら
れた名前とを対応付けて記憶装置に保持するための機能
と、 前記他のデータ転送装置から前記データを受信したか、
または該データの代わりに該データの内容をもとに生成
して該データに割り当てられた名前を受信したかを判断
するための機能と、 前記他のデータ転送装置から前記データの代わりに該デ
ータの内容をもとに生成して該データに割り当てられた
名前を受信した場合には、前記記憶装置から該受信した
名前に対応付けて保持されているデータを取得し、該取
得したデータを送信するための処理を行い、前記他のデ
ータ転送装置から前記データを受信した場合には、該受
信したデータと該データに割り当てられるべき名前とを
対応付けて前記記憶装置に保持するための処理を行うと
ともに、該受信したデータを送信するための処理を行う
機能とをコンピュータに実現させるためのプログラム。 - 【請求項23】前記第1の通信装置から受信したデータ
について前記記憶装置への保持を行う場合に、該受信し
たデータが、前記第2の通信装置から該第1の通信装置
へのリクエストメッセージに対するリプライメッセージ
のデータであるときに、該リプライメッセージに対応す
るリクエストメッセージが要求するデータについてのU
RLと、該データに割り当てられた前記名前とを対応付
けて前記記憶装置に保持するための機能と、 前記他のデータ転送装置からリクエストメッセージを受
信した場合に、該リクエストメッセージが要求するデー
タについてのURLが前記記憶装置に保持されていると
きに、該URLに対応する前記名前に対応付けて前記記
憶装置に保持されている前記データをもとに前記リクエ
ストメッセージに対するリプライメッセージであって前
記第2の通信装置に宛てたものを作成する機能とを更に
コンピュータに実現させるための請求項21に記載のプ
ログラム。 - 【請求項24】前記他のデータ転送装置から受信したデ
ータについて前記記憶装置への保持を行う場合に、該受
信したデータが、前記第2の通信装置から該第1の通信
装置へのリクエストメッセージに対するリプライメッセ
ージのデータであるときに、該リプライメッセージに対
応するリクエストメッセージが要求するデータについて
のURLと、該データに割り当てられた前記名前とを対
応付けて前記記憶装置に保持するための機能と、 前記第2の通信装置からリクエストメッセージを受信し
た場合に、該リクエストメッセージが要求するデータに
ついてのURLが前記記憶装置に保持されているとき
に、該URLに対応する前記名前に対応付けて前記記憶
装置に保持されている前記データをもとに前記リクエス
トメッセージに対するリプライメッセージであって前記
第2の通信装置に宛てたものを作成する機能とを更にコ
ンピュータに実現させるための請求項22に記載のプロ
グラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001069284A JP3983987B2 (ja) | 2001-03-12 | 2001-03-12 | サーバ側プロキシ装置、データ転送方法及びプログラム |
US10/092,540 US7054912B2 (en) | 2001-03-12 | 2002-03-08 | Data transfer scheme using caching technique for reducing network load |
US11/353,935 US7636765B2 (en) | 2001-03-12 | 2006-02-15 | Data transfer scheme using caching technique for reducing network load |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001069284A JP3983987B2 (ja) | 2001-03-12 | 2001-03-12 | サーバ側プロキシ装置、データ転送方法及びプログラム |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007032640A Division JP4031516B2 (ja) | 2007-02-13 | 2007-02-13 | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム |
JP2007154496A Division JP4041157B2 (ja) | 2007-06-11 | 2007-06-11 | クライアント側プロキシ装置、データ転送方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002268935A true JP2002268935A (ja) | 2002-09-20 |
JP3983987B2 JP3983987B2 (ja) | 2007-09-26 |
Family
ID=18927339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001069284A Expired - Fee Related JP3983987B2 (ja) | 2001-03-12 | 2001-03-12 | サーバ側プロキシ装置、データ転送方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3983987B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009110407A (ja) * | 2007-10-31 | 2009-05-21 | Toshiba Corp | キャッシュ方法及びキャッシュ装置 |
JP2009110406A (ja) * | 2007-10-31 | 2009-05-21 | Toshiba Corp | データ転送方法及びデータ転送システム |
JP2014511129A (ja) * | 2010-12-29 | 2014-05-08 | アマゾン・テクノロジーズ・インコーポレーテッド | データシステムにおける受信器側データの重複排除 |
US8830247B2 (en) | 2006-05-24 | 2014-09-09 | Nec Display Solutions, Ltd. | Image displaying device having image cache memory |
US8943023B2 (en) | 2010-12-29 | 2015-01-27 | Amazon Technologies, Inc. | Receiver-side data deduplication in data systems |
US9116909B2 (en) | 2010-12-29 | 2015-08-25 | Amazon Technologies, Inc. | Reduced bandwidth data uploading in data systems |
US9235651B2 (en) | 2012-12-28 | 2016-01-12 | Fujitsu Limited | Data retrieval apparatus, data storage method and data retrieval method |
-
2001
- 2001-03-12 JP JP2001069284A patent/JP3983987B2/ja not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8830247B2 (en) | 2006-05-24 | 2014-09-09 | Nec Display Solutions, Ltd. | Image displaying device having image cache memory |
JP2009110407A (ja) * | 2007-10-31 | 2009-05-21 | Toshiba Corp | キャッシュ方法及びキャッシュ装置 |
JP2009110406A (ja) * | 2007-10-31 | 2009-05-21 | Toshiba Corp | データ転送方法及びデータ転送システム |
JP4607936B2 (ja) * | 2007-10-31 | 2011-01-05 | 株式会社東芝 | データ転送方法及びデータ転送システム |
JP4607937B2 (ja) * | 2007-10-31 | 2011-01-05 | 株式会社東芝 | キャッシュ方法及びキャッシュ装置 |
JP2014511129A (ja) * | 2010-12-29 | 2014-05-08 | アマゾン・テクノロジーズ・インコーポレーテッド | データシステムにおける受信器側データの重複排除 |
US8943023B2 (en) | 2010-12-29 | 2015-01-27 | Amazon Technologies, Inc. | Receiver-side data deduplication in data systems |
US9116909B2 (en) | 2010-12-29 | 2015-08-25 | Amazon Technologies, Inc. | Reduced bandwidth data uploading in data systems |
US9794191B2 (en) | 2010-12-29 | 2017-10-17 | Amazon Technologies, Inc. | Reduced bandwidth data uploading in data systems |
US10180953B2 (en) | 2010-12-29 | 2019-01-15 | Amazon Technologies Inc. | Receiver-side data deduplication in data systems |
US9235651B2 (en) | 2012-12-28 | 2016-01-12 | Fujitsu Limited | Data retrieval apparatus, data storage method and data retrieval method |
Also Published As
Publication number | Publication date |
---|---|
JP3983987B2 (ja) | 2007-09-26 |
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 | |
JP3491011B2 (ja) | 差分化通信システム | |
JP2003271441A (ja) | データ処理方法、これを用いたネットワークサービスシステム及びプログラム | |
JP3984086B2 (ja) | キャッシュサーバ、データ転送装置及びプログラム | |
US20020032781A1 (en) | Intermediary server apparatus and an information providing method | |
JP3848209B2 (ja) | データ転送装置、データ転送方法及びプログラム | |
JP2003209661A (ja) | 通信ネットワーク上でデジタル画像を送信し同画像にアクセスするシステムとその方法 | |
JP4031516B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP3983987B2 (ja) | サーバ側プロキシ装置、データ転送方法及びプログラム | |
JP4053269B2 (ja) | データ転送装置およびデータ転送方法 | |
JP3943867B2 (ja) | サーバ側プロキシ、データ転送方法及びプログラム | |
JP3943868B2 (ja) | サーバ側プロキシ、データ転送方法及びプログラム | |
JP2003108464A (ja) | データ転送装置およびデータ転送方法 | |
JP4041157B2 (ja) | クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP3913508B2 (ja) | データ転送装置およびデータ転送方法 | |
JP3977601B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム | |
JP4157585B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP3977651B2 (ja) | データ転送方法、サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム | |
JP4300220B2 (ja) | データ転送装置およびデータ転送方法 | |
JP2001290741A (ja) | ネットワークシステム | |
JP2003122730A (ja) | 情報処理方法、エージェントシステム、エージェントシステムプログラム及びエージェントシステムプログラムが記録された記録媒体 | |
KR20010059623A (ko) | 다중 경로 접속이 허용된 개인정보 관리 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070213 |
|
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: 20070611 |
|
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: 20070703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070705 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130713 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |