JP2002268937A - データ転送装置、データ転送方法及びプログラム - Google Patents

データ転送装置、データ転送方法及びプログラム

Info

Publication number
JP2002268937A
JP2002268937A JP2001069286A JP2001069286A JP2002268937A JP 2002268937 A JP2002268937 A JP 2002268937A JP 2001069286 A JP2001069286 A JP 2001069286A JP 2001069286 A JP2001069286 A JP 2001069286A JP 2002268937 A JP2002268937 A JP 2002268937A
Authority
JP
Japan
Prior art keywords
data
name
received
transfer device
compressed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001069286A
Other languages
English (en)
Other versions
JP3990115B2 (ja
Inventor
Tatsunori Kanai
達徳 金井
Hideki Yoshida
英樹 吉田
Toshibumi Seki
俊文 關
Kenichiro Yoshii
謙一郎 吉井
Hideaki Sato
英昭 佐藤
Takayuki Miyazawa
隆幸 宮澤
Yasuhiro Kimura
康浩 木村
Haruhiko Toyama
春彦 外山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001069286A priority Critical patent/JP3990115B2/ja
Priority to US10/094,462 priority patent/US7359956B2/en
Publication of JP2002268937A publication Critical patent/JP2002268937A/ja
Application granted granted Critical
Publication of JP3990115B2 publication Critical patent/JP3990115B2/ja
Priority to US11/967,435 priority patent/US20080250119A1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

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)

Abstract

(57)【要約】 【課題】 ネットワークの負荷を軽減できるプロキシ装
置を提供すること。 【解決手段】 サーバ側プロキシ230からクライアン
ト側プロキシ240へ新たな内容のリプライデータを転
送するにあたって、両プロキシ2にて、該データと該デ
ータにハッシュ関数を適用して算出したフィンガープリ
ントとを対応付けて、フィンガープリント・キャッシュ
に登録しておく。サーバ側プロキシ230からクライア
ント側プロキシ240へフィンガープリント・キャッシ
ュに登録されたフィンガープリントと同じフィンガープ
リントを持つリプライデータを転送するにあたっては、
該リプライデータの代わりに該フィンガープリントを転
送し、同じフィンガープリントが登録されていないが、
他の登録データを参照データとして参照データのフィン
ガープリントを利用することによって転送すべきデータ
を圧縮して表現できるならば、圧縮データを転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、他の装置のために
データ転送を行うデータ転送装置、データ転送方法及び
プログラムに関する。
【0002】
【従来の技術】ネットワークを介して様々なサービスを
提供するサーバと、所望のサービスをサーバに対して要
求するクライアントとから構成される、クライアント・
サーバ型の情報システムが広く利用されている。特に、
インターネット上でHTTPプロトコルを使って通信す
るWEBサーバとクライアントとからなるWORLDW
IDE WEBシステム(あるいは単にWEBとも呼ば
れる)は、大変広く利用されているクライアント・サー
バ型の情報システムである。通常、サーバ上ではサーバ
プログラムが動作し、クライアント上ではブラウザなど
の所定のツール(プログラム)が動作する。インターネ
ット上で提供されるサービスの内容も多岐に渡ってお
り、ネットワーク経由で文字、静止画像、動画像、音声
等の情報(例えば、ホームページ、電子メール、デジタ
ルコンテンツなど)や、プログラムなどを提供、配信あ
るいは転送などするサービス、また商品を販売するため
の電子店舗サービス、座席や部屋等の予約サービス、種
々の契約の仲介サービスなど、種々のサービスが既に存
在し、また次々と新たな形態のサービスが出現してい
る。
【0003】ところで、WEBのようなクライアント・
サーバ型の情報システムにおいては、提供されるサービ
スがどのような形態のものであろうと、基本的にはクラ
イアント・サーバ間でデータ転送が行われることによっ
てサービスが提供される。したがって、クライアントと
サーバとの間で通信に用いるネットワークの容量(バン
ド幅)が、システム全体のボトルネックになりやすい。
そこで、通常、ネットワークの負荷を軽減させるために
キャッシュ技術が用いられる。
【0004】WEBシステムの場合、クライアント上で
動作するブラウザ等はキャッシュ機構を使用するものが
多く、最近アクセスしたデータをキャッシュしている。
WEBではURLと呼ばれる名前で情報やサービスを指
定してアクセスがなされるので、クライアント上のキャ
ッシュは、過去にWEBサーバに要求した情報やサービ
スの結果として返されるデータのうちでキャッシュ可能
なものを、そのURLと対応させてキャッシュに記録し
ている。この場合、キャッシュ内にあるものと同じUR
Lの情報やサービスのリクエストがあった際に、そのキ
ャッシュ内の応答データが古くなっていないと判断でき
るならば、そのデータを返すことで、WEBサーバとの
間の通信を無くすことができる。
【0005】企業のオフィス内のLANあるいは研究機
関におけるLANあるいは家庭内のLANなどで複数の
ユーザがいる場合、該LANとインターネットとの間に
プロキシサーバを置き、プロキシサーバにキャッシュ機
構を設けるようにすることも多い。クライアント内のキ
ャッシュ(例えば、ブラウザのキャッシュ)は、当該ク
ライアント・ユーザに専用のキャッシュとして動作する
が、LAN上のプロキシサーバのキャッシュは、複数の
クライアント・ユーザに共有のキャッシュとして動作す
る。そのため、後者では、過去に他人(他クライアン
ト)がアクセスしたURLに対してアクセスする際にも
キャッシュが効く。
【0006】さて、WEBにおいて、クライアントとサ
ーバとの間は、HTTPと呼ぶプロトコルで通信が行わ
れる。HTTPプロトコルは、クライアントからサーバ
へ送る「リクエストメッセージ」と、それに答えてサー
バからクライアントへ応答を返す「リプライメッセー
ジ」とが組になっている。
【0007】リクエストメッセージは、「リクエストヘ
ッダ」と「リクエストボディ」からなる。リクエストヘ
ッダには、アクセスしたい情報やサービスを指定するU
RLやアクセスの種類を示すメソッド名、その他アクセ
スに必要な各種の情報が入る。リクエストボディには、
サーバに送るデータを入れる。リクエストボディに入っ
ているデータを「リクエストデータ」とも呼ぶ。
【0008】リプライメッセージは、「リプライヘッ
ダ」と「リプライボディ」からなる。リプライヘッダに
は、処理結果のステータスなどの情報が入り、リプライ
ボディには要求された情報や要求されたサービスの処理
結果などのデータが入る。リプライボディに入っている
データを「リプライデータ」とも呼ぶ。
【0009】リクエストメッセージのメソッドとして
は、サーバ上の情報を読み出す「GETメソッド」、ユ
ーザの持つデータをサーバに書き込む「PUTメソッ
ド」、リクエストの応じて処理した結果を送り返しても
らう「POSTメソッド」が、情報やサービスのアクセ
スに用いられる主要なものである。その他、DELET
Eなどのメソッドが定義されている。
【0010】多くの場合、GETメソッドのリクエスト
メッセージのリクエストボディ、PUTメソッドのリプ
ライメッセージのリプライボディは空である。POST
メソッドのリクエストメッセージのリクエストボディに
は、必要に応じてサーバ側での処理に用いる情報が入
り、POSTメソッドのリプライメッセージのリプライ
ボディには、その処理の結果のデータが入る。
【0011】GETメソッドでサーバから読み出すデー
タは、読み出す毎にサーバ側で生成する「動的データ」
と、既にサーバ側で記憶しているデータをそのまま送り
返す「静的データ」に分けることができる。これらのう
ち、動的データについては、同じURLでも読み出す度
に内容が異なる可能性があるので、多くの場合、サーバ
はキャッシュ不可の指定をそのリプライメッセージのヘ
ッダに入れて送り返す。したがって、WEBのデータで
キャッシュの対象になるのは、静的データの部分であ
る。この静的データは、不特定多数のユーザが参照して
構わない「共有データ」と、ユーザ認証することで特定
のユーザだけがアクセスできるようにアクセス制御を行
う「プライベートデータ」に分けることができる。前者
の共有データは、どのようなキャッシュでもキャッシュ
可能である。しかしながら、後者のプライベートデータ
は、プロキシサーバなどの共有キャッシュでは、キャッ
シュ不可である(プライベートデータは必ずサーバで認
証して送り返す必要があるので)。ただし、ブラウザな
どの個人専用のキャッシュの場合には、プライベートデ
ータでもキャッシュは可能である。
【0012】POSTメソッドは、サーバ側で処理をし
た結果を返すので、一般的にサーバはキャッシュ不可の
指定をリプライメッセージのヘッダに入れて結果を送り
返す。そのため、通常はキャッシュの対象にはならな
い。
【0013】PUTメソッドは、データをサーバに送る
ものなので、キャッシュは何も処理をしない。
【0014】
【発明が解決しようとする課題】従来のWEBのキャッ
シュは、静的コンテンツをキャッシュの対象にしてい
る。かつては、WEBで公開される情報やサービスに
は、情報の更新頻度がそれほど高くなく、不特定多数の
人に公開されているものが多かったため、静的コンテン
ツの割合は非常に高く、従来のキャッシュ技術でもネッ
トワークの負荷の軽減に有効であった。
【0015】しかしながら、WEBベースのASP(A
pplication Service Provid
er)のように、ユーザがWEBブラウザを使って、ネ
ットワーク経由でサーバ上の情報やサービスにアクセス
するシステムが普及するにつれて、下記のように従来の
キャッシュ技術では対応できないデータが増加してい
る。 ・ユーザの認証を行い、アクセスできるユーザを制限し
ているので、プライベートデータが多い。 ・バックエンドのデータベースを参照して生成する動的
データが多い。 ・帳票処理や検索などPOSTメソッドを使う場合が多
い。 ・グループ内の情報共有のためにPUTメソッドを使う
場合が多い。 この結果、キャッシュ技術のみではネットワークの負荷
を軽減する手法として有効に機能しなくなってきてい
る。
【0016】本発明は、上記事情を考慮してなされたも
ので、データ転送装置間を接続するネットワークの負荷
をより軽減することができるキャッシュ技術・圧縮技術
を備えたデータ転送装置、データ転送方法及びプログラ
ムを提供することを目的とする。
【0017】
【課題を解決するための手段】本発明は、第1の通信装
置から送信されたデータを受信し、該データをその宛先
となる第2の通信装置に通ずる他のデータ転送装置へ送
信するとともに、該第2の通信装置から送信されたデー
タを該他のデータ転送装置を介して受信し、該データを
その宛先となる該第1の通信装置へ送信するデータ転送
装置であって、前記第1の通信装置から前記データを受
信するための受信手段と、過去に前記他のデータ転送装
置へ送信したデータと、該データの内容をもとに生成し
て該データに割り当てた名前とを対応付けて保持するた
めの保持手段と、前記第1の通信装置から送信されたデ
ータを受信した際に、該受信したデータの内容をもとに
生成した該データに割り当てるべき名前が、前記保持手
段に保持されている場合には、該データの代わりに該名
前を送信するための処理を行い、該受信したデータに割
り当てられるべき名前が、前記保持手段に保持されてい
ない場合には、該受信したデータと該名前とを対応付け
て前記保持手段に保持するための処理を行うとともに、
前記保持手段に保持されている他のデータを参照データ
とし、該参照データに対応する前記名前を利用して、該
受信したデータを圧縮して表現することが可能であるな
らば、該受信したデータを圧縮して表現した圧縮データ
を送信するための処理を行い、圧縮して表現することが
可能でないならば、該受信したデータを送信するための
処理を行う処理手段と、前記処理手段の処理に応じて前
記名前、前記圧縮データまたは前記受信したデータを、
前記他のデータ転送装置へ送信するための送信手段とを
備えたことを特徴とする。
【0018】本発明は、第1の通信装置から送信された
データを他のデータ転送装置を介して受信し、該データ
をその宛先となる第2の通信装置へ送信するとともに、
該第2の通信装置から送信されたデータを受信し、該デ
ータをその宛先となる第1の通信装置に通ずる他のデー
タ転送装置へ送信するデータ転送装置であって、前記他
のデータ転送装置から、前記データ、当該データの代わ
りに当該データの内容をもとに生成して該データに割り
当てられた名前、または当該データの代わりに他のデー
タを参照データとし、該参照データの内容をもとに生成
して該参照データに割り当てられた名前を利用して当該
データを圧縮して表現した圧縮データを受信するための
受信手段と、過去に前記他のデータ転送装置から受信し
たデータと、該データの内容をもとに生成して該データ
に割り当てられた名前とを対応付けて保持するための保
持手段と、前記他のデータ転送装置から前記名前を受信
した場合には、前記保持手段から該受信した名前に対応
付けて保持されているデータを取得し、該取得したデー
タを送信するための処理を行い、前記他のデータ転送装
置から前記データを受信した場合には、該受信したデー
タと該データに割り当てられるべき名前とを対応付けて
前記保持手段に保持するための処理を行うとともに、該
受信したデータを送信するための処理を行い、前記他の
データ転送装置から前記圧縮データを受信した場合に
は、該圧縮データに含まれる参照データに対応する名前
と同一の名前に対応付けて前記保持手段に保持されてい
るデータを取得し、該取得したデータを前記参照データ
として該圧縮データの元となったデータを解凍するとと
もに、該解凍したデータと該データに割り当てられるべ
き名前とを対応付けて前記保持手段に保持するための処
理を行い、該解凍したデータを送信するための処理を行
う処理手段と、前記処理手段の処理に応じて前記取得し
たデータ、前記受信したデータまたは前記解凍したデー
タを、前記第2の通信装置へ送信するための送信手段と
を備えたことを特徴とする。
【0019】好ましくは、前記名前は、所定の方法によ
って前記データを圧縮して得た値であるようにしてもよ
い。好ましくは、前記名前は、前記データに所定のハッ
シュ関数を適用して得られた値であるようにしてもよ
い。
【0020】好ましくは、前記圧縮データは、1又は複
数の前記参照データに対応する前記名前と、当該各参照
データのうち使用する部分を示す情報と、該使用する部
分の接続方法を示す情報とを含むものであるようにして
もよい。好ましくは、前記圧縮データは、1つの前記参
照データに対応する前記名前と、該参照データのうち該
圧縮データの元となったデータと相違する部分を示す情
報と、該相違する部分に嵌め込むべき内容とを含むもの
であるようにしてもよい。
【0021】好ましくは、前記データ転送装置は、ロー
カルエリアネットワークを介して前記第1の通信装置と
接続されたものであるようにしてもよい。好ましくは、
前記データ転送装置は、前記第1の通信装置上にソフト
ウェアとして搭載されたものであるようにしてもよい。
好ましくは、前記データ転送装置は、ローカルエリアネ
ットワークを介して前記第2の通信装置と接続されたも
のであるようにしてもよい。好ましくは、前記データ転
送装置は、前記第2の通信装置上にソフトウェアとして
搭載されたものであるようにしてもよい。
【0022】また、本発明は、第1の通信装置から送信
されたデータを受信し、該データをその宛先となる第2
の通信装置に通ずる他のデータ転送装置へ送信するとと
もに、該第2の通信装置から送信されたデータを該他の
データ転送装置を介して受信し、該データをその宛先と
なる該第1の通信装置へ送信するデータ転送装置におけ
るデータ転送方法であって、前記第1の通信装置から送
信されたデータを受信し、受信された前記データの内容
をもとに生成した該データに割り当てるべき名前が、過
去に前記他のデータ転送装置へ送信したデータと該デー
タの内容をもとに生成して該データに割り当てた名前と
を対応付けて保持するための保持手段に保持されている
か否か判断し、保持されている場合には、受信された前
記データの代わりに前記名前を送信するための処理を行
い、保持されていない場合には、前記受信したデータと
前記名前とを対応付けて前記保持手段に保持するための
処理を行うとともに、前記保持手段に保持されている他
のデータを参照データとし、該参照データに対応する前
記名前を利用して、該受信したデータを圧縮して表現す
ることが可能であるならば、該受信したデータを圧縮し
て表現した圧縮データを送信するための処理を行い、圧
縮して表現することが可能でないならば、該受信したデ
ータを送信するための処理を行うことを特徴とする。
【0023】また、本発明は、第1の通信装置から送信
されたデータを他のデータ転送装置を介して受信し、該
データをその宛先となる第2の通信装置へ送信するとと
もに、該第2の通信装置から送信されたデータを受信
し、該データをその宛先となる第1の通信装置に通ずる
他のデータ転送装置へ送信するデータ転送装置における
データ転送方法であって、前記他のデータ転送装置か
ら、前記データ、当該データの代わりに当該データの内
容をもとに生成して該データに割り当てられた名前、ま
たは当該データの代わりに他のデータを参照データと
し、該参照データの内容をもとに生成して該参照データ
に割り当てられた名前を利用して当該データを圧縮して
表現した圧縮データを受信し、前記他のデータ転送装置
から前記データの代わりに該データの内容をもとに生成
して該データに割り当てられた名前を受信した場合に
は、過去に前記他のデータ転送装置から受信されたデー
タと該データの内容をもとに生成して該データに割り当
てられた名前とを対応付けて保持するための保持手段か
ら、受信された前記名前に対応付けて保持されているデ
ータを取得し、該取得したデータを送信するための処理
を行い、前記他のデータ転送装置から前記データを受信
した場合には、該受信したデータと該データに割り当て
られるべき名前とを対応付けて前記保持手段に保持する
ための処理を行うとともに、該受信したデータを送信す
るための処理を行い、前記他のデータ転送装置から前記
圧縮データを受信した場合には、該圧縮データに含まれ
る参照データに対応する名前と同一の名前に対応付けて
前記保持手段に保持されているデータを取得し、該取得
したデータを前記参照データとして該圧縮データの元と
なったデータを解凍するとともに、該解凍したデータと
該データに割り当てられるべき名前とを対応付けて前記
保持手段に保持するための処理を行い、該解凍したデー
タを送信するための処理を行うことを特徴とする。
【0024】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。また、装置または方法に係る本発明
は、コンピュータに当該発明に相当する手順を実行させ
るための(あるいはコンピュータを当該発明に相当する
手段として機能させるための、あるいはコンピュータに
当該発明に相当する機能を実現させるための)プログラ
ムとしても成立し、該プログラムを記録したコンピュー
タ読取り可能な記録媒体としても成立する。
【0025】本発明によれば、データ転送装置間でデー
タとその名前との対応を保持し、この対応を保持してい
るデータについては、データを転送するの代わりに対応
する名前を転送することで、データ転送装置間の転送デ
ータ量を削減することができる。
【0026】例えば、GETメソッドのリプライメッセ
ージがプライベートデータであっても、これをフィンガ
ープリントにより圧縮してデータ転送装置間を転送する
ことができるようになる。また、例えば、GETメソッ
ドのリプライメッセージが動的データであっても、内容
が同じデータなら、これをフィンガープリントにより圧
縮してデータ転送装置間を転送することができるように
なる。また、例えば、POSTメソッドであっても、結
果が同じデータなら、これをフィンガープリントにより
圧縮してデータ転送装置間を転送することができるよう
になる。
【0027】また、本発明によれば、データに対応する
名前が保持されていないために、データを転送するの代
わりに対応する名前を転送することができない場合であ
っても、保持されている参照データに対応する名前を利
用して当該データを圧縮して表現した圧縮データを転送
することによって、データ転送装置間の転送データ量を
削減することができる。
【0028】例えば、GETメソッドやPOSTメソッ
ドのリプライデータが以前にアクセスしたデータと一部
が異なる場合には、差分転送することで、データ量を削
減することができる。また、例えば、PUTメソッドや
POSTメソッドのリクエストデータが以前に送ったデ
ータと一部が異なる場合には、差分転送することでデー
タ量を削減することができる。
【0029】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0030】以下では、WANがインターネットであ
り、クライアントはユーザオフィスLANに接続された
ものであり、HTTPプロトコルが使用されるような場
合を例にとって説明するが、もちろん、本発明は、WA
Nがインターネット以外のものであっても、クライアン
トがオフィス以外の例えば家庭内LAN等に設置された
ものであっても、HTTPプロトコル以外のプロトコル
が使用されるものであっても適用可能である。
【0031】図38に本発明を適用するコンピュータ・
ネットワーク・システムの基本的な構成例を示す。この
構成例では、ASPサーバセンター202内のローカル
エリアネットワーク(LAN)212と、ユーザオフィ
ス204内のローカルエリアネットワーク(LAN)2
16との間が、インターネットや専用回線などの広域ネ
ットワーク(WAN)214を介して接続されており、
ASPサーバセンター202内のサーバ220と、ユー
ザオフィス204内のクライアント250とが、LAN
212・WAN214・LAN216を介して通信可能
になっている。ASPサーバセンター内LANには1ま
たは複数のサーバが接続され、ユーザオフィス内LAN
には1または複数のクライアントが接続される。
【0032】WEBベースのASPは、サーバセンター
202に設置したサーバ220から、WAN214を介
して、様々なアプリケーションプログラムによるサービ
スを提供し、ユーザはオフィス204に設置されたクラ
イアント上のWEBブラウザ等を使ってそれらのサービ
スにアクセスする。
【0033】このような利用形態においては、ユーザオ
フィス内LAN216とサーバセンター内LAN212
とをつなぐネットワーク、特にインターネットなどの広
域ネットワーク214の実効的な通信容量(バンド幅)
は、サーバセンター内LAN212やユーザオフィス内
LAN216よりも低く、そこが性能上のボトルネック
になって通信遅延が発生し、アプリケーションの応答性
能が低下するという問題が発生する。
【0034】そこで、本実施形態では、図1に示すよう
に、サーバセンター内LAN212とユーザオフィス内
LAN216とをつなぐ広域ネットワーク214の両端
に、サーバ側プロキシ230およびクライアント側プロ
キシ240という2つのモジュールを設置し、それらの
間で後述するフィンガープリント圧縮(FP圧縮)また
は後述する差分圧縮を行って通信データ量を低減するこ
とで、広域ネットワークのボトルネックを解消する。
【0035】本実施形態のサーバ220、サーバ側プロ
キシ230、クライアント側プロキシ240、クライア
ント250は、いずれも、計算機上でソフトウェア(サ
ーバ・プログラム、サーバ側プロキシ・プログラム、ク
ライアント側プロキシ・プログラム、クライアント・プ
ログラム)を動作させる形で実現することができる。こ
の場合に、必要に応じて計算機所望の機能を有するOS
やドライバソフト、パケット通信用ソフト、暗号ソフト
等といったソフトウェア、あるいは通信インタフェース
装置や外部記憶装置や入出力装置等といったハードウェ
アが搭載あるいは接続される。また、この場合に、ユー
ザあるいは管理者からの情報の入力やユーザへの情報の
呈示等のために、グラフィカル・ユーザ・インタフェー
ス(GUI)を用いると好ましい。
【0036】サービスを利用するためにユーザが使用す
るクライアント250上では、その目的に応じて例えば
WEBブラウザ等のプログラムが動作する。ユーザは、
例えば、WEBブラウザからインターネットを介し情報
転送あるいは注文受付等の所望のサービスを提供するサ
ーバにリクエストメッセージを出し、リプライメッセー
ジを受けることによって、またはこれを適宜繰り返すこ
とによって、サービスを利用する。もちろん、WEBブ
ラウザ等の汎用のソフトウェアではなく、特定のサービ
スを利用するための専用のソフトウェアなどの他のもの
が用いられても構わない。また、クライアントは、汎用
の計算機ではなく、例えばインターネット機能を有する
携帯電話端末等でもよい。
【0037】サーバ220上では、所定のサーバ・プロ
グラムが動作し、クライアント220のユーザに対し
て、当該サーバ・サイトに固有のサービスを提供する。
【0038】サーバ側プロキシ230は、図1のよう
に、サーバセンター内LAN212とWAN214との
両方に接続し、トランスペアレント・プロキシとして動
作するように設置して実施することができる。また、図
2のように、サーバセンター内LAN212上に設置し
て実施することもできる。また、図3のように、サーバ
側プロキシ230の機能をサーバ220に内蔵するよう
に実施することもできる。
【0039】同様に、クライアント側プロキシ240
は、図1のように、ユーザオフィス内LAN216とW
AN214との両方に接続し、トランスペアレント・プ
ロキシとして動作するように設置して実施することがで
きる。また、図2のように、ユーザオフィス内LAN2
16上に設置して実施することもできる。また、図3の
ように、クライアント側プロキシ240の機能をクライ
アント250上で動作するブラウザ等に内蔵するように
実施することもできる。あるいは、ブラウザ等の動作す
るクライアント250上に、個人用のクライアント側プ
ロキシ240を動作させるように実施することもでき
る。
【0040】なお、サーバ側プロキシ230とクライア
ント側プロキシ240とは、図1〜図3などのように同
じ形態であってもよいし、異なる形態であってもよい。
【0041】以下では、フィンガープリント・キャッシ
ュやこれを利用したFP圧縮について説明し、次いで差
分圧縮について説明する。
【0042】本実施形態のサーバ側プロキシ230およ
びクライアント側プロキシ240は、いずれも、フィン
ガープリント・キャッシュ(FPキャッシュ)と呼ぶキ
ャッシュ機構を持つ。フィンガープリント・キャッシュ
は、フィンガープリント(FP)と呼ぶ名前によって、
HTTPプロトコルでやりとりされるデータを記録・管
理する。
【0043】フィンガープリントは、図4に例示するよ
うに、HTTPプロトコルでやり取りされるデータ(図
4の例ではコンテンツ)の内容から、あらかじめ決めら
れた計算方法(図4の例ではハッシュ関数)で決定され
る、短い数値である。この数値は、可変長でもよいが、
処理の容易さの観点では、固定長の数値の方が扱いやす
い。
【0044】フィンガープリントを計算する方法として
は、良く知られている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に対してそれぞれ計算したハッ
シュ値が同じになる場合があるが、その確率は実用上無
視できるくらいに小さい)。
【0045】図5に示すように、サーバ側プロキシ23
0やクライアント側プロキシ240の持つフィンガープ
リント・キャッシュ(図中の60)は、過去にHTTP
プロトコルでやり取りされたデータ本体(図中の61)
を、そのデータから計算して求めたフィンガープリント
の値(図中の62)を名前として、記録・管理してい
る。
【0046】例えばHTTPプロトコルでサーバ側プロ
キシ230からクライアント側プロキシ240へデータ
を転送するときに、サーバ側プロキシ230は、当該デ
ータのフィンガープリントを計算し、そのフィンガープ
リントに対応するデータがフィンガープリント・キャッ
シュに入っていれば、当該データ(と同じ内容のデー
タ)は過去に転送したことがあるので、当該データを転
送せずに、対応するフィンガープリントの値を転送す
る。フィンガープリントを受け取ったクライアント側プ
ロキシ240は、当該フィンガープリントの値に対応す
るデータをフィンガープリント・キャッシュから取り出
すことで、転送すべきデータを再現することができる。
このような方式(すなわち、データ圧縮→データ転送→
データ解凍)により、過去に送ったものと同じデータな
らばフィンガープリントの値を送るだけでよいので、ネ
ットワークを流れるデータ量を大幅に削減することがで
きる。もちろん、クライアント側プロキシ240からサ
ーバ側プロキシ230へデータを転送するときも同様で
ある。
【0047】説明上、サーバ側プロキシ230とクライ
アント側プロキシ240との間でのデータ転送にあた
り、フィンガープリント・キャッシュを利用してメッセ
ージ・ボディーのデータをフィンガープリントに置き換
えて転送情報量を圧縮することを、フィンガープリント
圧縮(FP圧縮)と呼ぶものとする。
【0048】なお、サーバ側プロキシ230とクライア
ント側プロキシ240との間において、すべてのメッセ
ージをFP圧縮を適用する対象(すなわち、フィンガー
プリント・キャッシュを利用してデータをフィンガープ
リントに置き換えるための処理を行う対象)としてもよ
いが、例えばフィンガープリント・キャッシュの効果が
期待できないものなどに対する適用を除外するために、
予め定められた条件を満たすメッセージについては、こ
れをFP圧縮の適用対象外とする(常にFP圧縮しない
で転送する)ようにしてもよい。この場合の予め定めら
れた条件とは、例えば、メッセージ・ヘッダに予め定め
られた情報が記述されていることである。具体的には、
例えば、メッセージ・ヘッダにGETメソッドを示す情
報およびリクエストを示す情報が記述されていることで
ある。また、予め定められた条件の他の例としては、転
送されるデータが空(null)あるいは非常に短いサ
イズであることである。もちろん、それらの他にも種々
のバリエーションがある。また、複数の条件を組み合わ
せて使用するようにしてもよい。
【0049】続いて、差分圧縮について説明する。
【0050】前述のFP圧縮では、データに対するフィ
ンガープリントを用いてデータの同一性を高速に判断
し、フィンガープリント・キャッシュに登録されている
データと同じデータはプロキシ間で転送しないようにし
て(代わりに当該データに対するフィンガープリントを
転送するようにして)、ネットワークの負荷を低減させ
る。
【0051】しかし、フィンガープリント・キャッシュ
に登録されているデータと異なるデータは、たとえ大部
分は同じ内容であってもFP圧縮を適用できない。そこ
で、本実施形態では、FP圧縮できない場合であって
も、フィンガープリント・キャッシュに登録されている
1または複数のデータを参照データとして、参照データ
のフィンガープリントや、参照データに対する差分情報
など転送すべきデータを復元するための情報によって、
転送データを表現することによって、少ない情報量で転
送データを表現し、なるべく転送データ量を減らすよう
にしている。すなわち、フィンガープリント・キャッシ
ュの中のデータを辞書として使って、その中から取り出
せるデータは送らないようにするのが基本的なアイデア
である。
【0052】例えば、WEBベースのASPのような応
用では、大部分は同じ内容であるが一部分だけが異なっ
ているようなデータが多く使われる。例えば、帳票のデ
ータなどは、多くのフィールドに同じ情報が記入されて
いて、一部分だけが違うようなものが多数存在する。ま
た、例えば、Webページで日付もしくは時刻のみ異な
るものや、総アクセス回数のカウンタ値のみ異なるもの
などもある。このような場合には、特に有効になる。
【0053】また、このようなフィンガープリントを利
用した差分圧縮は、転送すべきデータと参照データとの
間の関係を予め取り決めておく必要がなという利点も得
られる。すなわち、従来の差分転送の方法の場合には、
予め双方で何をベースに差分を取るかを決める必要があ
ったため、差分転送をWEBシステムに実際に用いよう
とすると、このURLのデータはこのデータをベースに
差分を取るというようなルールを、双方に登録する手段
が必要であり、任意のデータに対して有効に機能させる
ことは不可能であった。これに対して、本差分圧縮方法
は、フィンガープリント・キャッシュの中にあるデータ
を参照データとして差分を取ることで、差分のベースを
予め決めておかなくても、差分によるデータの圧縮の効
果を得ることができる。
【0054】説明上、サーバ側プロキシ230とクライ
アント側プロキシ240との間でのデータ転送にあた
り、フィンガープリント・キャッシュを利用してメッセ
ージ・ボディーのデータを参照データのフィンガープリ
ント等に置き換えて転送情報量を圧縮することを、差分
圧縮と呼ぶものとする。
【0055】なお、ここでは、FP圧縮の適用対象のメ
ッセージをすべて差分圧縮の適用対象にするものとする
場合を例にとって説明する。もちろん、前述と同様に、
FP圧縮の適用対象のメッセージのうち、予め定められ
た条件を満たすメッセージについては、これを差分圧縮
の適用対象外とするようにしてもよい(この場合、差分
圧縮を適用される条件が、FP圧縮を適用される条件に
対して更に他の条件を加重したものになる)。例えば、
FP圧縮しないデータサイズの上限値U1よりも、差分
圧縮しないデータサイズの上限値U2を大きくする(F
P圧縮すべきデータサイズの下限値L1よりも、差分圧
縮すべきデータサイズの下限L2を大きくする)という
方法や、FP圧縮の適用対象か否かはデータサイズで判
断するが、差分圧縮の適用対象か否かについては、FP
圧縮の適用対象のうちHTMLやXML以外のデータを
適用対象外とする(HTMLやXMLのデータに対して
のみ差分圧縮を行う)という方法等、種々の方法があ
る。
【0056】本実施形態では、圧縮対象のメッセージ
は、結果的に、データがFP圧縮されたメッセージ、デ
ータが差分圧縮されたメッセージ、またはデータが圧縮
されていないメッセージのいずれかとして、サーバ側プ
ロキシ230とクライアント側プロキシ240との間を
転送されることになる。
【0057】ここで、差分圧縮の方法について説明す
る。
【0058】フィンガープリント・キャッシュを利用し
た差分圧縮の方法には次に例示するものなど種々の方法
がある。 ・フィンガープリント・キャッシュに登録されているデ
ータのうちの1つを参照データとする。プロキシ間で
は、参照データに対応するフィンガープリントの値と、
転送データと参照データとの差分を示す情報とを転送す
る。 ・上記の方法において、参照データとの差分の全部また
は一部についても、フィンガープリント・キャッシュに
登録されているデータを利用する。あるいは、フィンガ
ープリント・キャッシュに登録されているデータ(の全
体または部分)を組み合わせることによって転送データ
の全部または一部を表現する。例えば、フィンガープリ
ント・キャッシュに登録されているデータのうち任意数
のものを参照データとする。プロキシ間では、参照デー
タに対応するフィンガープリントの値と、参照データの
うち転送データの復元に使用する部分を示す情報と、そ
の部分をもとにした転送データの復元方法を示す情報と
を転送する。
【0059】以下では、差分圧縮データの表現方法の一
例を示す。
【0060】図6に、転送すべきデータを表現するため
の3種類の指示を示す。データの代わりに転送される差
分圧縮データは、これら指示の並びで構成する。
【0061】(a)は、フィンガープリント・キャッシ
ュ内のデータを参照するときに、参照データに番号を付
けて定義する指示である。1バイト目の8n(図6の例
では、n=0)は指示識別子である。この指示識別子の
うちnは、そのフィンガープリントで指定されるデータ
をn番の参照データとして扱うことを示す。2バイト目
から始まる16バイトが当該参照データに対するフィン
ガープリントの値を示す。この例では、80〜8Fによ
ってそれぞれ0番の参照データから、最大15番までの
参照データが扱えるようになっている。もちろん、扱え
る参照データの最大数は、実装によって多くも少なくも
できる。
【0062】(b)は、(a)で定義された参照データ
の中から部分データをコピーする指示を表す。1バイト
目の9n(図6の例では、n=0)は指示識別子であ
る。この指示識別子のうちnは、(a)の指示で定義さ
れたn番の参照データを使用することを示す。2バイト
目からの4バイトは、そのn番の参照データ中のオフセ
ット位置を、6バイト目からの4バイトでデータの長さ
をそれぞれ指示する。そして、それらによって、n番の
参照データの中の指定オフセット位置から指定長さのデ
ータを、この指示の並びの位置(順番)に従って(転送
データの構成部分として)コピーすべきことを示す。
【0063】(c)は、データを直接指定するための指
示である。1バイト目のA0は、指示識別子である。2
バイト目からの4バイトは、データの長さを示す。6バ
イト目以降に、その長さで指定されたバイト数のデータ
が続く。そして、それらによって、6バイト目以降のデ
ータを、この指示の並びの位置(順番)に従って(転送
データの構成部分として)コピーすることを示す。
【0064】このような指示の並びで構成された差分圧
縮データは、フィンガープリント・キャッシュを参照し
ながら、指示された順にデータをコピーして接続してい
くだけで解凍することができる。
【0065】次に、上記の方法に従った差分圧縮の例を
示す。
【0066】図7に示すようなデータがフィンガープリ
ント5E83…B6としてフィンガープリント・キャッ
シュに入っていたとする。
【0067】このとき、図8のようなデータが与えられ
ると、図7のデータを参照データとして、図9のように
差分圧縮することができる。
【0068】すなわち、図8のデータは、図7のデータ
と比較すると、図7のデータの『TOKYO』が『OS
AKA』に変わっているだけである。そこで、図9のよ
うに、まず、0バイト目でフィンガープリント“5E8
3…B6”のデータを0番参照データとして定義するこ
とを指示し、17バイト目で0番参照データの0バイト
目から60バイトをコピーすることを指示し、次に26
バイト目で『OSAKA』の5文字をコピーすることを
指示し、最後に36バイト目で0番参照データの65バ
イト目から51バイトをコピーすることを指示してい
る。
【0069】この指示の通りに解凍すれば、図8のデー
タを再現することができる。
【0070】この例では、参照データを1つしか使わな
かったが、複数個使うことも可能である。
【0071】次に、上記の方法に従った差分圧縮の他の
例を示す。
【0072】図10に示すようなデータがフィンガープ
リント82F3…38としてフィンガープリント・キャ
ッシュに入っており、図11に示すようなデータがフィ
ンガープリントA20D…CBとしてフィンガープリン
ト・キャッシュに入っていたとする。このとき、図12
のようなデータが与えられると、図10のデータと図1
1のデータを参照データとして、図13のように差分圧
縮することができる。
【0073】図13では、まず、0バイト目でフィンガ
ープリント“82F3…38”のデータを0番参照デー
タとして定義することを指示し、17バイト目で0番参
照データの0バイト目から53バイトをコピーすること
を指示し、26バイト目でフィンガープリント“A20
D…CB”のデータを1番参照データとして定義するこ
とを指示し、43バイト目で1番参照データの96バイ
ト目から55バイトをコピーすることを指示している。
【0074】この指示の通りに解凍すれば、図12のデ
ータを再現することができる。
【0075】なお、上記した方法では、参照データの使
用すべき部分の指示と、使用すべきデータの直接指定を
行う方法(方法1)であったが、その代わりに、参照デ
ータのうち使用しない部分(直接指示データで置き換え
る部分)の指示と、その使用しない部分に嵌め込むデー
タの直接指定を行う方法(方法2)も可能である。
【0076】また、方法1と方法2を併用することも可
能である。
【0077】次に、図14〜図18を参照しながら、サ
ーバ側プロキシ230とクライアント側プロキシ240
との間でデータ転送する際の(FP圧縮の適用対象のメ
ッセージについての)プロキシ間メッセージ・フォーマ
ットについて説明する。
【0078】サーバ側プロキシ230とクライアント側
プロキシ240との間でデータ転送する場合、FP圧縮
の適用対象のメッセージには、データがFP圧縮されて
フィンガープリントに置き換えられたメッセージ(FP
圧縮時のメッセージ)と、FP圧縮されいないが、差分
圧縮されたデータが搭載されているメッセージ(差分圧
縮時のメッセージ)と、FP圧縮も差分圧縮もされてい
ないデータが搭載されているメッセージ(非圧縮時のメ
ッセージ)とがある。すべてのメッセージをFP圧縮の
適用対象とするのではない構成の場合には、これら3つ
のメッセージに加えて、FP圧縮の適用対象外のメッセ
ージがある。
【0079】両プロキシのうち送信側プロキシにおい
て、FP圧縮時のメッセージでは、データが削除され、
フィンガープリントが付加され、差分圧縮時のメッセー
ジでは、データが削除され、参照データのフィンガープ
リントなど当該データを復元するための情報が付加され
る。非圧縮時のメッセージおよび圧縮適用対象外のメッ
セージでは、データは削除されない。
【0080】両プロキシのうち受信側プロキシにおいて
は、上記の3種もしくは4種のメッセージを識別できる
必要がある。FP圧縮時のメッセージ受信時は、フィン
ガープリントをデータに戻し、差分圧縮時のメッセージ
受信時は、データを復元する。また、差分圧縮時または
非圧縮時のメッセージ受信時は、フィンガープリント・
キャッシュの登録を行う。
【0081】図14に、メッセージ・フォーマットの一
例を示す。(a)は非圧縮時のメッセージであり、
(b)は差分圧縮時のメッセージであり、(c)はFP
圧縮時のメッセージである。
【0082】(a)ではメッセージ・ボディーにデータ
が載せられ、(b)ではメッセージ・ボディーにデータ
の代わりに当該データを復元するための情報が載せら
れ、(c)ではメッセージ・ボディーにデータの代わり
にフィンガープリント(FP)が載せられる。
【0083】また、この例では、メッセージ・ヘッダ
に、メッセージの種類を識別可能とする識別情報が(圧
縮側のプロキシにおいて)記述され、この識別情報に基
づいて(解凍側のプロキシにおいて)FP圧縮の有無を
識別する(例えば、01ならば非圧縮なし、10ならば
差分圧縮、11ならばFP圧縮)。なお、識別情報は、
プロキシ間で使用される特別のものであってもよいし、
もともと通常のHTTPメッセージ・ヘッダに存在する
フィールドを利用あるいは併用したものであってもよ
い。
【0084】なお、FP圧縮の適用対象外のメッセージ
が存在し得る構成の場合には、圧縮側(送信側)のプロ
キシにおいて、図14(d)に示すように、FP圧縮の
適用対象外のメッセージのメッセージ・ヘッダに上記の
識別情報(例えば、00とする)を含めればよい。
【0085】また、FP圧縮の適用対象外のメッセージ
が存在し得る構成の場合に、解凍側(受信側)プロキシ
において、メッセージ・ヘッダに含まれる何らかの情報
によって当該メッセージがFP圧縮の適用対象外のメッ
セージであることを判断できるとき、あるいはメッセー
ジ・ボディーが空(null)のときに当該メッセージ
がFP圧縮の適用対象外のメッセージであることを判断
するようにしたときなどには、FP圧縮の適用対象外の
メッセージのメッセージ・ヘッダには識別情報を含めな
いようにすることも可能である。
【0086】ここで、図39に図14(a)のフォーマ
ットのメッセージの具体例を示し、図40に図14
(b)のフォーマットのメッセージの具体例を示し、図
41に図14(c)のフォーマットのメッセージの具体
例を示し、図42に図14(d)のフォーマットのメッ
セージの具体例を示す。各図のヘッダ中の“Finge
rprint−Mode:…”が識別情報に相当し、図
41のボディの“6E39…0128”がフィンガープ
リントに相当する。
【0087】なお、非圧縮時や差分圧縮時には、図14
(a),(b)の例では、メッセージに当該データに対
するフィンガープリントを含ませなかったが、メッセー
ジ・ヘッダにフィンガープリントを含ませるようにして
もよい(あるいは、メッセージ・ボディーに当該データ
に対するフィンガープリントを含ませるようにしてもよ
い)。図15(a)〜(c)は、非圧縮時や差分圧縮時
には、メッセージ・ヘッダにフィンガープリントを含ま
せ、FP圧縮時には、メッセージ・ボディーにフィンガ
ープリントを含ませる場合の一例である。このようにす
れば、解凍側で当該データについてフィンガープリント
・キャッシュの登録を行う際に、該フィンガープリント
を利用することによって、あらためて当該データからフ
ィンガープリントを求める手間が省ける。
【0088】図43に図15(a)のフォーマットのメ
ッセージの具体例を示し、図44に、図15(b)のフ
ォーマットのメッセージの具体例を示す。図15(c)
のフォーマットのメッセージの具体例は図41と同様で
ある。図43、図44のヘッダ中の“Fingerpr
int:…”がフィンガープリントに相当する。
【0089】なお、以上のいずれの場合においても、図
16に示すように、FP圧縮時のメッセージでは、メッ
セージ・ヘッダにフィンガープリント(FP)を含め、
メッセージ・ボディーを空(null)にしてもよい。
【0090】図45に、図16のフォーマットのメッセ
ージの具体例を示す。
【0091】なお、以上の他にも、種々のメッセージ・
フォーマットが可能である。
【0092】例えば、図17では、(a)の非圧縮時の
メッセージのヘッダに非圧縮フラグを記述し且つフィン
ガープリントは記述せず、(b)の差分圧縮時のメッセ
ージのヘッダに差分圧縮フラグを記述し且つフィンガー
プリントは記述せず、(c)のFP圧縮時のメッセージ
のヘッダにフィンガープリントは記述し且つボディーは
空(null)にする。
【0093】この場合には、メッセージ・ボディーが空
(null)であることあるいはメッセージのヘッダに
フィンガープリントが記述されていることを検出するに
よって、当該メッセージがFP圧縮時のメッセージであ
ることを識別することができる。また、非圧縮時のメッ
セージや差分圧縮時のメッセージは、ヘッダに非圧縮フ
ラグや差分圧縮フラグが記述されていることを検出する
ことによって、識別することができる。
【0094】図46に図17(a)のフォーマットのメ
ッセージの具体例を示し、図47に、図17(b)のフ
ォーマットのメッセージの具体例を示し、図48に図1
7(c)のフォーマットのメッセージの具体例を示す。
図46のヘッダ中の“Non−Compressio
n:…”が非圧縮フラグに相当し、図47のヘッダ中の
“Differencial−Compressio
n:…”が差分縮フラグに相当する。
【0095】なお、FP圧縮の適用対象外のメッセージ
が存在し得る構成の場合には、圧縮側(送信側)のプロ
キシにおいて、図18の(a),(b)に示すように
((a)はデータが空(null)でない場合、(b)
はデータが空(null)である場合)、FP圧縮の適
用対象外のメッセージのメッセージ・ヘッダに対象外フ
ラグを含めればよい。
【0096】また、FP圧縮の適用対象外のメッセージ
が存在し得る構成の場合に、解凍側(受信側)プロキシ
において、メッセージ・ヘッダに含まれる何らかの情報
によって当該メッセージがFP圧縮の適用対象外のメッ
セージであることを判断できるときなどには、図18の
(c),(d)に示すように((c)はデータが空(n
ull)でない場合、(d)はデータが空(null)
である場合)FP圧縮の適用対象外のメッセージのメッ
セージ・ヘッダには対象外フラグを含めないようにする
ことも可能である。
【0097】図49に図18(a)のフォーマットのメ
ッセージの具体例を示し、図50に図18(b)のフォ
ーマットのメッセージの具体例を示し、図51に図18
(c)のフォーマットのメッセージの具体例を示し、図
52に図18(d)のフォーマットのメッセージの具体
例を示す。図49、図50のヘッダ中の“No−FP−
Compression:…”が対象外フラグに相当す
る。
【0098】以下では、サーバ側プロキシ230からク
ライアント側プロキシ240へリプライメッセージを転
送するときにそのリプライデータをFP圧縮・解凍する
場合を中心に本実施形態について詳しく説明する。
【0099】図19に本実施形態のサーバ側プロキシ2
30の構成例を示し、図20に本実施形態のクライアン
ト側プロキシ240の構成例を示す。なお、図19や図
20は、サーバ側プロキシ230からクライアント側プ
ロキシ240へデータを転送する際の構成を中心に示し
てある。
【0100】図19に示されるように、本サーバ側プロ
キシ230は、サーバセンター内LAN212または広
域ネットワーク214から転送メッセージを受信するた
めの処理を行う受信部231、転送メッセージに含まれ
るデータに対してFP圧縮、差分圧縮を施すための処理
部232、サーバセンター内LAN212または広域ネ
ットワーク214へ転送メッセージを送信するための処
理を行う送信部233、フィンガープリントとそのもと
となったデータとを対応付けて記憶するためのフィンガ
ープリント・キャッシュ(FPキャッシュ)234を備
えている。また、処理部232は、転送メッセージに含
まれるデータを圧縮対象とすべきか否かを判定するため
のフィンガープリント(FP)圧縮判定部2321、フ
ィンガープリント・キャッシュ234に対する検索や登
録などを行うためのフィンガープリント・キャッシュ
(FPキャッシュ)管理部2322、転送メッセージに
含まれるデータを対応するフィンガープリントで置き換
えるなどの処理を行うためのフィンガープリント(F
P)圧縮処理部2323、転送メッセージに含まれるデ
ータを差分圧縮データで置き換えるなどの処理を行うた
めの差分圧縮処理部2324を含む。
【0101】図20に示されるように、本クライアント
側プロキシ240は、ユーザオフィス内LAN216ま
たは広域ネットワーク214から転送メッセージを受信
するための処理を行う受信部241、転送メッセージに
含まれるデータに対してFP解凍を施すための処理部2
42、ユーザオフィス内LAN216または広域ネット
ワーク214へ転送メッセージを送信するための処理を
行う送信部243、フィンガープリントとそのもととな
ったデータとを対応付けて記憶するためのフィンガープ
リント・キャッシュ(FP・キャッシュ)244を備え
ている。また、処理部242は、転送メッセージに含ま
れるデータを圧縮対象とすべきか否か並びに転送メッセ
ージに対するFP圧縮および差分圧縮の有無を判定する
ためのフィンガープリント(FP)圧縮判定部242
1、フィンガープリント・キャッシュ234に対する検
索や登録などを行うためのフィンガープリント・キャッ
シュ(FPキャッシュ)管理部2422、FP圧縮され
た転送メッセージに含まれるフィンガープリントから元
のデータを解凍するなどの処理を行うためのフィンガー
プリント(FP)解凍処理部2423、差分圧縮された
転送メッセージに含まれる差分圧縮データから元のデー
タを解凍するなどの処理を行うための差分解凍処理部2
424を含む。
【0102】なお、圧縮側のFP圧縮判定部2321と
解凍側のFP圧縮判定部2421は、前述したようにメ
ッセージが予め定められた条件を満たすか否かを調べる
ことによって、そのメッセージに含まれるデータをFP
圧縮の適用対象とするか否かを判断する(すべてのメッ
セージをFP圧縮の適用対象にする場合には、圧縮側の
FP圧縮判定部2321および後に示す手順例の該当部
分は不要であり、解凍側のFP圧縮判定部2421の該
当判断の部分および後に示す手順例の該当部分は不要で
ある)。また、解凍側のFP圧縮判定部2421は、F
P圧縮の適用対象のメッセージについて、そのデータが
FP圧縮されたものか否かを判定する。以下では、FP
圧縮の適用対象となるメッセージを転送する場合(FP
圧縮の適用対象とすると判断された場合、またはすべて
のメッセージをFP圧縮の適用対象にする場合)を中心
に説明する。
【0103】図21及び図22に、サーバ側プロキシ3
0からクライアント側プロキシ240へリプライメッセ
ージを転送する際のサーバ側プロキシ230の処理手順
の一例を示す。なお、図21及び図22は、1つのリプ
ライメッセージを受けたときの処理を記述しているが、
実際はサーバ側プロキシ230が受け取ったリプライメ
ッセージ全てに対して、図21及び図22に例示する処
理を行う。
【0104】サーバ側プロキシ230は、受信部231
により、サーバ220からリプライメッセージを受信す
る(ステップS201)。
【0105】FP圧縮判定部2321は、該リプライメ
ッセージのリプライデータがFP圧縮対象のものである
か否か調べ、判断する(ステップS202)。リプライ
データがFP圧縮対象外のものと判断されたならば(ス
テップS202)、受信したリプライメッセージを送信
部33からクライアント側プロキシ240へ転送する
(ステップS212)。
【0106】ステップS202にて該リプライメッセー
ジのリプライデータがFP圧縮対象のものであると判断
されたならば、FPキャッシュ管理部322にて、該リ
プライデータのフィンガープリントの値を計算し(ステ
ップS203)、該フィンガープリントの値をキーとし
てフィンガープリント・キャッシュ234を検索する
(ステップS204)。
【0107】そして、該フィンガープリントの値とこれ
に対応するデータとの組がフィンガープリント・キャッ
シュ234に登録されていたならば(ステップS20
5)、FP圧縮処理部2323にて、受信したリプライ
メッセージを、該フィンガープリントの値を用いてFP
圧縮時のフォーマットにして(例えば図16等)、送信
部233から、クライアント側プロキシ240へ送信す
る(ステップS206)。
【0108】一方、ステップS204の検索の結果、該
フィンガープリントの値とこれに対応するデータとの組
がフィンガープリント・キャッシュ234に登録されて
いなかったならば(ステップS205)、差分圧縮処理
部2324にて、差分圧縮を行い(ステップS20
7)、差分圧縮に成功したか否か判定する(ステップS
208)。
【0109】差分圧縮に成功したか否かは、例えば、差
分圧縮の対象とした元のデータのデータ量r0と、差分
圧縮データのデータ量r1とを比較し、r0−r1>d
を満たすならば、成功したと判断する。ここで、定数d
は、予め定められた0以上の整数である。
【0110】ステップS208にて差分圧縮に成功した
と判断されたならば、次の2つの作業を行う。 (1−1)差分圧縮処理部2324にて、受信したリプ
ライメッセージを、(必要に応じて該フィンガープリン
トの値を用いて)差分圧縮時のフォーマットにして(例
えば図15(b)等)、送信部233から、クライアン
ト側プロキシ240へ送信する(ステップS209)。 (1−2)FPキャッシュ管理部2322にて、該フィ
ンガープリントの値と、該リプライメッセージとを対応
付けて(フィンガープリントの値をキーにして)、フィ
ンガープリント・キャッシュ234に登録する(ステッ
プS211)。
【0111】なお、上記の(1−1)と(1−2)は、
いずれを先に行ってもよいし、並行して行ってもよい。
【0112】一方、ステップS208にて差分圧縮に失
敗したと判断されたならば、次の2つの作業を行う。 (2−1)差分圧縮処理部2324にて、受信したリプ
ライメッセージを、非圧縮時のフォーマットにして(例
えば図15(a)等)、送信部233から、クライアン
ト側プロキシ240へ送信する(ステップS210)。 (2−2)FPキャッシュ管理部2322にて、該フィ
ンガープリントの値と、該リプライメッセージとを対応
付けて(フィンガープリントの値をキーにして)、フィ
ンガープリント・キャッシュ234に登録する(ステッ
プS211)。
【0113】なお、上記の(2−1)では、差分圧縮処
理部2324ではなく、FP圧縮処理部2323にて受
信リプライメッセージを非圧縮時のフォーマットにする
ようにしてもよい。
【0114】また、上記の(2−1)と(2−2)は、
いずれを先に行ってもよいし、並行して行ってもよい。
【0115】次に、図23及び図24に、サーバ側プロ
キシ230からクライアント側プロキシ240へリプラ
イメッセージを転送する際のクライアント側プロキシ2
40の処理手順の一例を示す。なお、図23及び図24
は、1つのリクエストメッセージを受けたときの処理を
記述しているが、実際はクライアント側プロキシ240
が受け取ったリクエストメッセージ全てに対して、図2
3及び図24に例示する処理を行う。
【0116】クライアント側プロキシ240は、受信部
241により、サーバ側プロキシ230からリプライメ
ッセージを受信する(ステップS211)。
【0117】FP圧縮判定部2421は、該リプライメ
ッセージのリプライデータがFP圧縮対象のものである
か否か調べ、判断する(ステップS212)。リプライ
データがFP圧縮対象外のものと判断されたならば(ス
テップS212)、受信したリプライメッセージを送信
部43からクライアント250へ転送する(ステップS
224)。
【0118】ステップS212にて該リプライメッセー
ジのリプライデータがFP圧縮対象のものであると判断
されたならば、FP圧縮判定部2421は、さらに、リ
プライデータがFP圧縮されているか否か調べ、判断す
る(ステップS213)。
【0119】ステップS213にて該リプライメッセー
ジのリプライデータがFP圧縮されているものと判断さ
れたならば(例えば図16等の場合)、FPキャッシュ
管理部2422にて、該リプライデータのフィンガープ
リントの値を求め(ステップS214)、該フィンガー
プリントの値をキーとしてフィンガープリント・キャッ
シュ244を検索する(ステップS215)。
【0120】そして、FP解凍処理部2423にて、受
信リプライメッセージに対して、フィンガープリント・
キャッシュ234から検索された該フィンガープリント
の値に対応するデータを付加し、プロキシ間で特別の情
報を使用する場合には該情報を削除した後に、これを送
信部243からクライアント250へ送信する(ステッ
プS216)。
【0121】一方、ステップS213にて該リプライメ
ッセージのリプライデータがFP圧縮されていないもの
と判断されたならば(例えば図15(a),(b)等の
場合)、FP圧縮判定部2421は、さらに、該リプラ
イデータが差分圧縮されているか否か判定する(ステッ
プS217)。
【0122】ステップS217にて差分圧縮されている
と判断されたならば(例えば図15(b)等の場合)、
次の2つの作業を行う。 (1−1)差分解凍処理部2424にて、(FPキャッ
シュ管理部2422によりし参照データを検索・取得し
た後に)差分圧縮データを解凍して元のリプライデータ
を復元し(ステップS218)、該復元したリプライデ
ータをリプライメッセージに付加し、またプロキシ間で
特別の情報を使用する場合には受信リプライメッセージ
から該情報を削除し、該リプライメッセージを送信部2
43からクライアント250へ送信する(ステップS2
19)。 (1−2)FPキャッシュ管理部2422にて、該リプ
ライデータのフィンガープリントの値を求め(ステップ
S220)、該フィンガープリントの値と、該リプライ
メッセージとを対応付けて(フィンガープリントの値を
キーにして)、フィンガープリント・キャッシュ234
に登録する(ステップS223)。
【0123】一方、ステップS217にて差分圧縮され
ていないと判断されたならば(例えば図15(a)等の
場合)、次の2つの作業を行う。 (2−1)差分解凍処理部2424にて、プロキシ間で
特別の情報を使用する場合には受信リプライメッセージ
から該情報を削除した後に、これを送信部243からク
ライアント250へ送信する(ステップS222)。 (2−2)FPキャッシュ管理部2422にて、該リプ
ライデータのフィンガープリントの値を求め(ステップ
S221)、該フィンガープリントの値と、該リプライ
メッセージとを対応付けて(フィンガープリントの値を
キーにして)、フィンガープリント・キャッシュ234
に登録する(ステップS223)。
【0124】なお、上記の(2−1)では、差分解凍処
理部2424ではなく、FP解凍処理部2423にて処
理するようにしてもよい。
【0125】また、上記の(1−1)と(1−2)は、
いずれを先に行ってもよいし、並行して行ってもよい。
上記の(2−1)と(2−2)についても同様である。
【0126】ところで、ステップS214/ステップS
220/ステップS221では、メッセージにフィンガ
ープリントが記述されている場合に、該メッセージから
フィンガープリントを得る方法と、メッセージにフィン
ガープリントが記述されてない場合に、リプライデータ
をもとにハッシュ関数等によってフィンガープリントの
値を計算する方法とがある。なお、メッセージにフィン
ガープリントが記述されている場合であっても、リプラ
イデータをもとにフィンガープリントの値を計算する方
法も可能である。また、ステップS214/ステップS
220/ステップS221は、フィンガープリントを使
用する以前の任意のタイミングで行って構わない。ただ
し、後者の方法の場合には、ステップS220の計算
は、ステップS218より後に行う必要がある。
【0127】また、ステップS212、S213、S2
17の判断は、同時に行ってもよい。
【0128】次に、差分圧縮を行う手順について説明す
る。
【0129】図25に、差分圧縮手順の一例を示す。こ
れは、先に説明した3種類の指定を用いる場合の手順例
である。
【0130】ここでは、差分圧縮を行うために、フィン
ガープリント・キャッシュに入っているデータのうち、
最近アクセスしたものを順に並べた履歴表を利用するも
のとする。この履歴表には、必ずしもフィンガープリン
ト・キャッシュに入っている全てのデータのフィンガー
プリントが記録されている必要は無い。例えば、予め定
められた個数が記録されていればよい(この場合、個数
は、例えば差分圧縮の参照データとして使用するに有効
な個数を想定して予め決定する)。もちろん、履歴表へ
の記録の基準として、最近のアクセスの順以外の1又は
複数の基準を用いてもよいし、最近のアクセスの順の基
準に加えて他に1又は複数の基準を併用してもよい。
【0131】なお、履歴表は、フィンガープリント・キ
ャッシュと一体化して構成する方法もある。
【0132】(ステップS231)まず、作業用のコピ
ーバッファおよび指示バッファを空にする。
【0133】このコピーバッファにコピーされた内容を
もとに、図6(a)〜(c)の指示が作成され、これが
指示バッファに書き出される。最終的に、指示バッファ
に書き出された指示の並びが、差分圧縮データになる。
【0134】(ステップS232)差分圧縮の対象とす
るデータを文字列として扱い、その文字列上を指すポイ
ンタを用意する。まず、ポインタが当該文字列のうちの
最初の文字を指すように設定する。
【0135】以下では、ステップS241でポインタが
当該文字列のうちの最後の文字に辿りついたと判断され
るまで、ループ処理を実行することになる。
【0136】(ステップS233)履歴表に記録されて
いるフィンガープリントに対応するデータを、新しいも
のから順に取り出し、その中に、差分圧縮したいデータ
の中のポインタの指す場所から予め定められた長さ以上
マッチするデータを参照データとして取り出す。
【0137】なお、参照データと決定方法としては、種
々の方法がある。例えば、履歴表に記録されているフィ
ンガープリントに対応するデータを最新の順に調べてい
き、最初に予め定めた長さ以上マッチしたデータを参照
データとして取り出す方法、履歴表に記録されているフ
ィンガープリントに対応するデータの全てを調べ、その
中でマッチした長さが最も長かったデータ(ただし、予
め定めた長さ以上マッチしたことを条件とする)を参照
データとして取り出す方法などがある。
【0138】(ステップS234)参照データが見つけ
られたらならば、ステップS237へ移る。参照データ
が見つけられなかったならば、ステップS235へ移
る。
【0139】(ステップS237)ステップS234に
て参照データが見つけられた場合に、コピーバッファが
空でなければ、コピーバッファ中の文字列に対応する、
図6の(c)の直接指定によるコピー指示を作成し、こ
れを指示バッファに書き出す。コピーバッファは、空に
する。なお、コピーバッファが空ならば、何もしない。
【0140】(ステップS238)ステップS233に
て見つかった参照データに対応する図6の(a)の参照
データ定義が未だ指示バッファに書き出されていなけれ
ば、指示バッファに当該参照データ定義の指示を書き出
す。
【0141】(ステップS239)参照データからマッ
チした文字列のコピー指示を、図6の(b)のコピー指
示として指示バッファに書き出す。
【0142】(ステップS240)ポインタを参照デー
タとマッチした文字列の長さ分だけ進める。
【0143】(ステップS235)一方、ステップS2
34にて参照データが見つけられた場合に、ポインタの
指す文字をコピーバッファに入れる。
【0144】(ステップS236)ポインタを1文字分
だけ進める。
【0145】(ステップS241)差分圧縮の対象とす
るデータの最後までポインタが来ていなければ(処理し
ていないデータ部分が残っていれば)、ステップS23
3へ戻る。差分圧縮の対象とするデータの最後までポイ
ンタが来ていたら(処理していないデータ部分が残って
いなければ)、処理ループを抜けて、ステップS242
へ移る。
【0146】(ステップS242)コピーバッファが空
でなければ、コピーバッファ中の文字列に対応する、図
6の(c)の直接指定によるコピー指示を作成し、これ
を指示バッファに書き出す。コピーバッファは、空にす
る。なお、コピーバッファが空ならば、何もしない。
【0147】このときの指示バッファの内容が、差分圧
縮データとなる。
【0148】なお、前述のように、実際には、このよう
にして差分圧縮を行った後、差分圧縮を行った結果のデ
ータサイズが、行う前のデータサイズよりも小さくなっ
ている(あるいは一定基準(一定の圧縮量)を超えて小
さくなっている)ことを確認する。差分圧縮によってデ
ータサイズが小さくならない(あるいは一定基準(一定
の圧縮量)を超えては小さくならない)場合には、差分
圧縮しない方が良いので、データはそのまま転送する。
【0149】ところで、上記の差分圧縮の処理におい
て、ステップS233の予め定められた長さ以上マッチ
する文字列を持つ最新のデータを選び出す処理が、最も
時間がかかる処理であると考えられる。この処理をより
高速化するために、ハッシュ表を利用することができ
る。履歴表に入れるデータから、その中の全ての予め定
められた長さの文字列を取り出し、そのハッシュ値(例
えば、全ての文字のコードを足したものなど)を計算
し、ハッシュ表に登録しておく。このハッシュ表は、同
じハッシュ値を持つデータがあればより最新のデータに
よって上書きされるようにしておく。このハッシュ表を
使って、差分圧縮したいデータの現在のポインタの位置
から予め定められた長さの文字列のハッシュ値を求め、
そのハッシュ値を使ってハッシュ表を引いて求めたデー
タが、ステップS233で選ぶべきデータの第1の候補
になる。ここで、異なる文字列でも同じハッシュ値を生
成する場合があるので、本当に同じかどうかは文字列を
実際に比較して確認し、同じでなければ、履歴表のデー
タを順に見るなど方法で次の候補を探す。
【0150】ステップS233の処理を高速化する他の
方法は、行を単位として比較処理を行う方法である。図
25の手順では文字を単位として比較処理をしていた
が、履歴表にあるすべてのデータに対して、そのデータ
内の各行のハッシュ値の列を計算しておく。差分圧縮し
たいデータからも、まず、各行のハッシュ値の列を計算
する。以降は、図25の手順と同様であるが、比較は文
字単位ではなく、行のハッシュ値を単位として行う。こ
の方法は、行を単位としているため、文字単位よりも比
較回数を減らすことができる。ただし、ハッシュ値で比
較するために、異なる行でも同じハッシュ値を持つ場合
があるので、最終的にはハッシュ値が同じだと判断した
後に、実際に行の中も比較して本当に同じかどうかを判
断するのが望ましい。もちろん、このように行を単位と
して比較する構成についても、上記のハッシュ技法を組
み合わせることができる。この場合、連続する複数行を
組み合わせて、予め定められた長さと同じか長くなる最
少の行数を単位としてハッシュ表に登録すればよい。
【0151】次に、図26に、差分圧縮手順の他の例を
示す。これは、フィンガープリント・キャッシュに登録
されているデータのうちの1つを参照データとし、プロ
キシ間では、参照データに対応するフィンガープリント
の値と、転送データと参照データとの差分を示す情報と
を転送する場合の手順例である。
【0152】ここでも、前述したような履歴表を用いる
ものとする。
【0153】まず、履歴表に記録されているフィンガー
プリントに対応するデータのうち、所定の基準を満たす
一つを、参照データとして選択する(ステップS24
5)。
【0154】所定の基準は、例えば、差分圧縮の対象と
するデータのうち、参照データとするデータとの間でマ
ッチしなかった部分のデータ量が、予め定められたデー
タ量以下であって、かつ、参照データをそのマッチしな
かった部分によって複数の塊に分断したときにおけるそ
の分断された塊の数が、予め定められた数以下である場
合に、これを参照データとして選択可能とする。
【0155】そして、参照データとして決定する方法と
しては、前述のように、例えば、履歴表に記録されてい
るフィンガープリントに対応するデータを最新の順に調
べていき、最初に予め定めた長さ以上マッチしたデータ
を参照データとして取り出す方法、履歴表に記録されて
いるフィンガープリントに対応するデータの全てを調
べ、その中でマッチしなかったデータ量や分断数が最も
少なかったデータを参照データとして取り出す方法な
ど、種々の方法がある。
【0156】参照データが見つけられたらならば(ステ
ップS246)、参照データ定義の指示(例えば図6の
(a))を、指示バッファに書き出す(ステップS24
7)。
【0157】参照データのうち、マッチしなかった部分
(直接指定データで置換する部分)を示す指示(例えば
図6の(b)と同じフォーマットの指示で1バイト目の
指示識別子を変えたもの)を、指示バッファに書き出す
(ステップS248)。
【0158】参照データのマッチしなかった部分に嵌め
込むべきデータを示す直接指定する指示(例えば図6の
(c))を、指示バッファに書き出す(ステップS24
9)。
【0159】なお、置換部分が複数個所ある場合には、
その分だけステップS248とステップS249を実行
する。
【0160】このときの指示バッファの内容が、差分圧
縮データとなる。
【0161】一方、参照データが見つけられたらならば
(ステップS246)、差分圧縮はしないことになる。
【0162】なお、上記の図25や図26の説明では、
履歴表をフィンガープリント・キャッシュとは別に設け
るものとしたが、履歴表は、フィンガープリント・キャ
ッシュと一体化して構成する方法もある。
【0163】また、上記の説明では、履歴表を用いるも
のとしたが、履歴表を用いない方法もある。例えば、フ
ィンガープリント・キャッシュを所定の順番で(例え
ば、エントリ順にあるいはランダムに)予め定められた
上限数だけ調べ、それらのうちで最良のものを使用する
ようにする方法や、フィンガープリント・キャッシュを
所定の順番で(例えば、エントリ順にあるいはランダム
に)調べ、予め定められた条件を満たす参照データが初
めて得られた時点で、参照データを決定してしまう方法
など、種々の方法がある。
【0164】また、履歴表またはフィンガープリント・
キャッシュに、フィンガープリントに加えて、そのフィ
ンガープリントを登録したときに元となったリプライデ
ータを含んでいたリプライメッセージについてのURL
をも保持しておき、参照データを探索する際に、まず差
分圧縮対象のリプライデータを含むリプライメッセージ
についてのURLと同じURLを持つデータが、履歴表
またはフィンガープリント・キャッシュに登録されてい
ないかどうか調べ、登録されているならば当該URLと
同じURLを持つデータを他のものよりも優先して、参
照データとして使用できないかどうか調べるようにして
もよい。
【0165】もちろん、図25や図26の他にも、種々
の差分圧縮の手順が可能である。
【0166】なお、クライアント側プロキシ240から
サーバ側プロキシ230へリクエストメッセージを転送
する際にはフィンガープリント・キャッシュを用いない
ものとする場合には、サーバ側プロキシ230は、図2
7に例示するように、クライアント側プロキシ240か
らリクエストメッセージを受信し(ステップS22
5)、これをサーバ220へ送信する(ステップS22
6)、という手順で構わない。同様に、クライアント側
プロキシ240は、図28に例示するように、クライア
ント250からリクエストメッセージを受信し(ステッ
プS227)、これをサーバ側プロキシ230へ送信す
る(ステップS228)、という手順で構わない。
【0167】以下では、図29(登録時すなわち非圧縮
時)、図30(FP圧縮時)および図31(登録時すな
わち差分圧縮時)を参照しながら、フィンガープリント
・キャッシュを利用したデータ転送についてより具体的
に説明する。
【0168】まず、図29を参照しながら、サーバ側プ
ロキシ230からクライアント側プロキシ240へ、フ
ィンガープリント・キャッシュ登録されていないデータ
であって且つ差分圧縮も成功しなかったデータを転送す
るとともに、該データについてフィンガープリント・キ
ャッシュ登録する場合の動作について説明する。
【0169】(1)クライアント250上のブラウザ等
は、例えば“/A.cgi”というURLでサーバ22
0に、POSTメソッドのリクエストメッセージを出し
たとする。サーバ220へのリクエストメッセージは、
まず、クライアント側プロキシ240に送られるよう
に、ブラウザ等を設定しておく。
【0170】(2)クライアント250からリクエスト
メッセージを受け取ったクライアント側プロキシ240
は、そのリクエストメッセージをサーバ側プロキシ23
0に転送する。
【0171】(3)リクエストメッセージを受け取った
サーバ側プロキシ230は、そのリクエストメッセージ
をサーバ250へ転送する。
【0172】(4)サーバ220は、該リクエストメッ
セージに対する処理を行った後、サーバ側プロキシ23
0に、そのリプライメッセージを送り返す。
【0173】(5)リプライメッセージを受け取ったサ
ーバ側プロキシ230は、まず、受信リプライメッセー
ジの持つリプライデータのフィンガープリントを計算
し、そのフィンガープリント名を持ったデータがフィン
ガープリント・キャッシュ234に入っているかどうか
を調べる。ここでは、入っておらず、初めてのデータ
(一旦フィンガープリント・キャッシュ登録されたもの
がその後に削除あるいは無効化されることがある構成の
場合に、一旦フィンガープリント・キャッシュ登録され
たが削除あるいは無効化され、その後において初めてで
ある場合を含む)であるので、そのデータをフィンガー
プリントを名前としてフィンガープリント・キャッシュ
234に入れる(登録する)。
【0174】なお、圧縮対象になるデータをFP圧縮で
きなかった場合には、差分圧縮処理を行い、リプライデ
ータを差分圧縮してデータ量を減らすことができるなら
ば、差分圧縮するが、ここでは、リプライデータを差分
圧縮してデータ量を減らすことができなかったものとし
ている。
【0175】(6)サーバ側プロキシ230は、データ
を載せたリプライメッセージをクライアント側プロキシ
240に転送する。なお、前述したように、リプライデ
ータから計算したフィンガープリントの値を、リプライ
ヘッダ等に入れて送ると、クライアント側プロキシ24
0で再度フィンガープリントを計算する手間を省くこと
が出来る。
【0176】(7)リプライメッセージを受け取ったク
ライアント側プロキシ240は、初めてのデータである
ので、リプライデータをフィンガープリント・キャッシ
ュ244に登録する。なお、前述したように、リプライ
データからフィンガープリントを計算するか、あるいは
サーバ側プロキシがリプライヘッダ等に入れたフィンガ
ープリントを取り出し、これを名前として入れる。
【0177】(8)クライアント側プロキシ240は、
(リプライヘッダ等にフィンガープリントの値などのサ
ーバ側プロキシ230とクライアント側プロキシ240
との間だけで使用される情報が存在する構成の場合に
は、これを削除した後に、)リプライメッセージを、ク
ライアント250(上で動作するブラウザ等)へ送り返
す。
【0178】なお、サーバ側プロキシ230において、
上記の(5)のフィンガープリント・キャッシュ登録
は、(6)の動作の後に行っても構わない。また、クラ
イアント側プロキシ240において、(7)のフィンガ
ープリント・キャッシュ登録は、(8)の動作の後に行
っても構わない。
【0179】次に、図30を参照しながら、図29の動
作が行われてキャッシュ登録されているデータを、サー
バ側プロキシ230からクライアント側プロキシ240
へ転送する場合の動作について説明する。
【0180】(1)〜(4)は、図29を参照して説明
した動作における(1)〜(4)と同様である。
【0181】(5)サーバ250からリプライメッセー
ジを受け取ったサーバ側プロキシ240は、まず、受信
リプライメッセージの持つリプライデータのフィンガー
プリントを計算し、そのフィンガープリント名を持った
データがフィンガープリント・キャッシュ234に入っ
ているかどうかを調べる。ここではフィンガープリント
・キャッシュ登録されているので、(前述したように例
えばフィンガープリントの値をリプライヘッダ等に入れ
且つリプライボディを空にするなどして)リプライボデ
ィのデータをフィンガープリントで置き換える。
【0182】(6)サーバ側プロキシ230は、リプラ
イボディをフィンガープリントで置き換えたリプライメ
ッセージをクライアント側プロキシ240に転送する。
【0183】(7)リプライメッセージを受け取ったク
ライアント側プロキシ240は、リプライデータがフィ
ンガープリントで置き換えられていることを検出し、
(前述したように例えばリプライヘッダなどにて)指定
されたフィンガープリントを使ってフィンガープリント
・キャッシュ244から対応するデータを取り出し、こ
れをリプライボディに入れる。また、リプライヘッダ等
にフィンガープリントの値などのサーバ側プロキシ23
0とクライアント側プロキシ240との間だけで使用さ
れる情報が存在する構成の場合には、これを削除する。
【0184】(8)そして、クライアント側プロキシ2
30は、リプライメッセージを、クライアント(上で動
作するブラウザ等)へ送り返す。
【0185】ところで、サーバ側プロキシ230および
クライアント側プロキシ240のフィンガープリント・
キャッシュは、その容量に上限があるため、所定のアル
ゴリズムに従いガーベジコレクションを行って、例えば
古いデータや使いそうに無いデータを消して行くのが好
ましい。
【0186】ただし、このようにすると、サーバ側プロ
キシ230のフィンガープリント・キャッシュ234は
持っていてもクライアント側プロキシ240のフィンガ
ープリント・キャッシュ244では既に消されてしまっ
ているデータが発生し得ることになるので、上記の
(7)で、クライアント側プロキシ240において、フ
ィンガープリントをもとにしてフィンガープリント・キ
ャッシュ244からリプライデータを置き換えるべきデ
ータを取り出そうとしたが、フィンガープリント・キャ
ッシュ244に該当するフィンガープリントとデータの
組が存在しない場合がある。このような場合には、例え
ば、クライアント側プロキシ240は、サーバ側プロキ
シ230に対して、指定したフィンガープリントのデー
タを送るように依頼し、依頼されたサーバ側プロキシ2
30は、指定されたフィンガープリントのデータをフィ
ンガープリント・キャッシュ234から取り出して送り
返すような仕組みを設ければよい。
【0187】なお、逆に、サーバ側プロキシ230のフ
ィンガープリント・キャッシュ234では既に消されて
しまっているがクライアント側プロキシ240のフィン
ガープリント・キャッシュ244はまだ持っていてるデ
ータが存在する場合には、図29を参照して説明した動
作における(7)で、クライアント側プロキシ240に
おいて、フィンガープリント/リプライデータをフィン
ガープリント・キャッシュ244に登録する際に、その
時点で登録されていたフィンガープリント/リプライデ
ータに対して上書きしてもよい。
【0188】図30を参照して説明した動作における
(5)で、サーバ側プロキシ230において、リプライ
データのフィンガープリントを求め、該フィンガープリ
ントがフィンガープリント・キャッシュ234に入って
いれば、当該プライデータと同じデータが該フィンガー
プリントと組になってフィンガープリント・キャッシュ
234に入っているものとみなして処理している。実用
上、異なるデータから同じフィンガープリントが生成さ
れないことを前提にすれば、この方法で十分であるが、
非常に小さな確率で異なるデータのフィンガープリント
が偶々同じ値になってしまった場合に生じるエラーを取
り除くようにする方法もある。この場合には、リプライ
データから求めたフィンガープリントがフィンガープリ
ント・キャッシュ234に入っているときに、該フィン
ガープリントと組になってフィンガープリント・キャッ
シュ234に入っているデータと、当該プライデータと
を比較して、同じか否かを判断するようにすればよい。
このとき、もしフィンガープリントは同じであるが内容
が異なるデータが登録されていると判断された場合の処
理は、以下に例示するような方法が考えられる。 ・そのフィンガープリントは以降使用しないものとする
(そのフィンガープリントを与えるデータは以後キャッ
シュされないことになる)。 ・先に登録されているフィンガープリント/データを優
先する(登録中のフィンガープリントと同じ値のフィン
ガープリントを与える他のデータは、その登録中はキャ
ッシュされないことになる)。 ・現在登録対象となっているフィンガープリント/デー
タを優先する(登録中のフィンガープリント/データ
は、同じ値のフィンガープリントを与える他のデータに
よって次々と更新されていくことになる)。
【0189】図31を用いて、差分転送を行う本実施形
態の動作を説明する。
【0190】(1)〜(4)は、図29を参照して説明
した動作における(1)〜(4)と同様である。
【0191】(5)リプライメッセージを受け取ったサ
ーバ側プロキシ230は、まず、受信リプライメッセー
ジの持つリプライデータのフィンガープリントを計算
し、そのフィンガープリント名を持ったデータがフィン
ガープリント・キャッシュ234に入っているかどうか
を調べる。ここでは、入っておらず、初めてのデータで
あるので、そのデータをフィンガープリントを名前とし
てフィンガープリント・キャッシュ234に入れる(登
録する)。
【0192】(6)圧縮対象になるデータをFP圧縮で
きなかった場合には、差分圧縮処理を行い、リプライデ
ータを差分圧縮してデータ量を減らすことができるなら
ば、差分圧縮する。ここでは、フィンガープリントが
“71F0…73E6”のデータを参照データとした場
合に、リプライデータを差分圧縮してデータ量を減らす
ことができたものとする。リプライデータを差分圧縮デ
ータに置き換え、リプライヘッダ等に差分圧縮したこと
を示す情報を入れる。
【0193】(7)サーバ側プロキシ230は、リプラ
イメッセージをクライアント側プロキシに転送する。
【0194】(8)クライアント側プロキシ240は、
リプライヘッダ等を見て、リプライデータが差分圧縮さ
れていることを知り、圧縮の解凍を行う。このとき、ま
ず、圧縮されたデータ内に指定されている参照データの
フィンガープリント“71F0…73E6”を取り出
し、次に、該フィンガープリントに対応するデータをフ
ィンガープリント・キャッシュから取り出して使用す
る。解凍したデータをリプライデータに入れ、リプライ
ヘッダのコンテンツサイズなど必要なヘッダを書き換え
る。
【0195】(9)また、リプライメッセージを受け取
ったクライアント側プロキシ240は、初めてのデータ
であるので、解凍したリプライデータをフィンガープリ
ント・キャッシュ244に登録する。また、リプライヘ
ッダ等にフィンガープリントの値などのサーバ側プロキ
シ230とクライアント側プロキシ240との間だけで
使用される情報が存在する構成の場合には、これを削除
する。なお、前述したように、リプライデータからフィ
ンガープリントを計算するか、あるいはサーバ側プロキ
シがリプライヘッダ等に入れたフィンガープリントを取
り出し、これを名前として入れる。
【0196】(10)クライアント側プロキシ240
は、リプライメッセージを、クライアント250(上で
動作するブラウザ等)へ送り返す。
【0197】なお、上記の(5)では、圧縮対象で未登
録のデータは、すべてフィンガープリント・キャッシュ
に登録するものとし、また、上記の(6)で参照データ
に用いたデータは、すべてフィンガープリント・キャッ
シュの登録を維持するものとしたが、参照データに唯一
のデータを使用した場合であって、かつ、差分圧縮対象
となったデータと、その差分圧縮に用いた参照データと
が、ほとんど同じ内容(例えば、両者でマッチしないデ
ータ量が基準以下)である場合には、(i)圧縮対象で
未登録のデータはフィンガープリント・キャッシュに登
録せず、参照データはフィンガープリント・キャッシュ
の登録を維持する、あるいは(ii)圧縮対象で未登録の
データをフィンガープリント・キャッシュに登録し、参
照データはフィンガープリント・キャッシュから削除す
る、などの方法も可能である。また、参照データに唯一
のデータを使用した場合であって、かつ、差分圧縮対象
となったデータと、その差分圧縮に用いた参照データと
が、ほとんど同じ内容であって、かつ、URLが同一の
場合には、データが更新されたものとして、圧縮対象で
未登録のデータをフィンガープリント・キャッシュに登
録し、参照データはフィンガープリント・キャッシュか
ら削除する、などの方法も可能である。その他にも種々
のバリエーションがある。
【0198】ところで、これまで説明した例では、サー
バ側プロキシ230からクライアント側プロキシ240
へリプライデータを転送する際にフィンガープリント・
キャッシュを利用するものとし、あるデータとこれに対
するフィンガープリントとの組をフィンガープリント・
キャッシュに登録するタイミングは、そのデータが初め
てサーバ側プロキシ230からクライアント側プロキシ
240へ転送されるときとしている。しかし、例えばW
EBベースのASPのような利用法では、データはまず
ユーザオフィス等で作成されてサーバに登録され、それ
をブラウザ等からアクセスするような場合が多いため、
このような場合には、当該データをサーバに登録する時
点でクライアント側プロキシおよびサーバ側プロキシの
フィンガープリント・キャッシュに登録しておくと、そ
れ以降のアクセスを高速化することができる。そこで、
サーバが送信するリプライデータが、もともとはクライ
アントからサーバへ転送されたデータ(ただし、この転
送のときはリクエストデータ)である場合には、登録タ
イミングを、該リプライデータとなる元のリクエストデ
ータが初めてクライアント側プロキシ140からサーバ
側プロキシ130へ転送されるときとするようにしても
よい(この場合、当該データがリプライデータとなって
初めてサーバ側プロキシ130からクライアント側プロ
キシ140へ転送される際には、すでにフィンガープリ
ント・キャッシュへの登録が完了していることになるの
で、リプライデータとしては初めての転送であっても、
フィンガープリント・キャッシュを利用して、転送デー
タ量を削減することができる)。
【0199】さて、これまで説明した例では、サーバ側
プロキシ230からクライアント側プロキシ240へリ
プライデータを転送するときに、該リプライデータがフ
ィンガープリント・キャッシュに登録されているデータ
と同じものである場合には、該リプライデータに代え
て、対応するフィンガープリントを転送し、または差分
圧縮データを転送することで、ネットワークのトラフィ
ックを軽減しているが、本発明は、クライアント側プロ
キシ240からサーバ側プロキシ230へリクエストデ
ータを転送する場合についてさらに適用することが可能
である。
【0200】なお、FP圧縮を両方に適用する場合に、
差分圧縮をいずれか一方についてのみ適用することも可
能である。
【0201】また、FP圧縮および差分圧縮を、クライ
アント側プロキシ240からサーバ側プロキシ230へ
リクエストデータを転送する場合についてのみ適用する
ことも可能である。
【0202】FP圧縮および差分圧縮をクライアント側
プロキシ240からサーバ側プロキシ230へのリクエ
ストデータ転送に適用する場合、すでに説明したリプラ
イデータに対するサーバ側プロキシ230とクライアン
ト側プロキシ240との役割を逆にすればよいので、F
P圧縮および差分圧縮を両データ転送に適用する場合に
は、サーバ側プロキシ230は図19の構成に加えて、
更に処理部232にフィンガープリント解凍処理部およ
び差分解凍処理部を備え、クライアント側プロキシ24
0は図20の構成に加えて、更に処理部242にフィン
ガープリント圧縮処理部および差分圧縮処理部を備えれ
ばよい。
【0203】なお、いずれのプロキシにおいても、フィ
ンガープリント圧縮処理部とフィンガープリント解凍処
理部とを併せて、フィンガープリント(FP)圧縮・解
凍処理部としてもよい。同様に、差分圧縮処理部と差分
解凍処理部とを併せて、差分圧縮・解凍処理部としても
よい。
【0204】また、サーバ側プロキシ230やクライア
ント側プロキシ240は、リプライデータ転送に対する
フィンガープリント・キャッシュとは独立にリクエスト
データ転送に対するフィンガープリント・キャッシュを
設けてもよいが、リプライデータ転送とクエストデータ
転送とで同じフィンガープリント・キャッシュを共用し
てもよい。差分圧縮の際に前述した履歴表を使用する構
成の場合には、履歴表についても同様に独立して設けて
もよいし、共用してもよい。
【0205】図32に、この場合のプロキシ(サーバ側
プロキシ、クライアント側プロキシ)の構成例を示す。
【0206】また、図33及び図34に、クライアント
側プロキシ240からサーバ側プロキシ230へリクエ
ストメッセージを転送する際のクライアント側プロキシ
240の処理手順の一例を示す。図33及び図34は、
図21及び図22において、転送するメッセージがリプ
ライメッセージからリクエストメッセージになり、メッ
セージ送信元がサーバからクライアントになり、メッセ
ージ送信先がクライアントからサーバになり、サーバ側
プロキシ40の動作とクライアント側プロキシ40の動
作とを入れ替えたものに相当する。
【0207】また、図35及び図36に、クライアント
側プロキシ240からサーバ側プロキシ230へリクエ
ストメッセージを転送する際のサーバ側プロキシ230
の処理手順の一例を示す。
【0208】図35及び図36は、図23及び図24に
おいて、転送するメッセージがリプライメッセージから
リクエストメッセージになり、メッセージ送信元がサー
バからクライアントになり、メッセージ送信先がクライ
アントからサーバになり、サーバ側プロキシ40の動作
とクライアント側プロキシ40の動作とを入れ替えたも
のに相当する。
【0209】このようにリクエストデータに対してもフ
ィンガープリントまたは差分圧縮データで置き換えられ
るように実施すると、例えば、同じファイルを何度もサ
ーバにアップロードする際ときには、2回目以降フィン
ガープリントを送るだけで済むので、ネットワークのト
ラフィックを軽減させることができる。
【0210】なお、本実施形態では、クライアント側プ
ロセスからサーバ側プロキシへ転送されるリクエストメ
ッセージや、サーバ側プロキシからクライアント側プロ
セスへ転送されるリプライメッセージを対象とする場合
について示してきたが、あるプロキシに、リクエストメ
ッセージを送信する装置とリプライメッセージを送信す
る装置との両方、あるいはリクエストメッセージおよび
リプライメッセージの両方を送信する装置が接続されて
いる場合には、もちろん、クライアント側プロセスから
サーバ側プロキシへ転送されるリクエストメッセージお
よびリプライメッセージならびにサーバ側プロキシから
クライアント側プロセスへ転送されるリクエストメッセ
ージおよびリプライメッセージを対象とすることや、ク
ライアント側プロセスからサーバ側プロキシへ転送され
るリクエストメッセージおよびサーバ側プロキシからク
ライアント側プロセスへ転送されるリクエストメッセー
ジのみ対象とすることなども可能である。
【0211】ところで、これまでは1つのサーバ側プロ
キシと1つのクライアント側プロキシとの間の1対1の
通信に着目して説明してきたが、本発明の適用範囲はも
ちろんサーバ側プロキシとクライアント側プロキシとが
1対1で通信するシステムには限定されるものではない
く、サーバ側プロキシとクライアント側プロキシとが1
対多で通信するシステム、サーバ側プロキシとクライア
ント側プロキシとが多対1で通信するシステム、あるい
はサーバ側プロキシとクライアント側プロキシとが多対
多で通信するシステムにも適用可能である。例えば、図
37のように、複数のユーザオフィスに設置したクライ
アント側プロキシや、モバイルユーザが利用する個人用
プロキシなどがサーバ側プロキシを共有して使用するよ
うに実施することも可能である。
【0212】また、これまでは、1つのメッセージに含
まれるデータ全体をFP圧縮する対象(フィンガープリ
ント・キャッシュに登録する対象)にしていたが、例え
ば、1つのメッセージに含まれるデータが所定の単位の
データの集合で構成される場合には、1つのメッセージ
に含まれる一部の単位データのみFP圧縮する対象(フ
ィンガープリント・キャッシュに登録する対象)にする
構成も可能である。
【0213】また、本実施形態のサーバ側プロキシある
いはクライアント側プロキシ(一方でも両方でもよい)
に、プロキシの共有キャッシュ機構でキャッシュ可能と
されているリプライデータについて、クライアントが出
したリクエストメッセージにおいて指定されていたUR
Lと、該リクエストメッセージに対応するリプライメッ
セージに含まれていたリプライデータと、該リプライデ
ータに対応するフィンガープリントと、該リプライメッ
セージのリプライ・ヘッダに入れられて来たMIMEタ
イプなどのリクエスト・ヘッダを構成するのに必要な情
報や有効期間の判定に使うためのタイムスタンプなどの
情報を対応付けてキャッシュしておき(フィンガープリ
ント・キャッシュにすべて保持してもよいし、リプライ
データを除く情報(URLとフィンガープリントと他の
情報)を保持する対応テーブルを別途設けてもよい)、
これとフィンガープリント・キャッシュとを併用するこ
とで、プロキシサーバの共有キャッシュの動作をも行う
ようにすることができる。例えば、クライアント側プロ
キシに該キャッシュ機能を設けた場合、クライアントが
送信したリクエストメッセージにて指定されているUR
Lに対するリプライデータがキャッシュされており且つ
該データが有効である場合には、該クライアント側プロ
キシが、URLに対応するデータをフィンガープリント
・キャッシュから取得して、リプライメッセージを作成
して、これをクライアントに応答することができる。
【0214】なお、以上の各機能は、ソフトウェアとし
て実現可能である。また、本実施形態は、コンピュータ
に所定の手段を実行させるための(あるいはコンピュー
タを所定の手段として機能させるための、あるいはコン
ピュータに所定の機能を実現させるための)プログラム
として実施することもでき、該プログラムを記録したコ
ンピュータ読取り可能な記録媒体として実施することも
できる。
【0215】なお、この発明の実施の形態で例示した構
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。また、この
発明の実施の形態で例示した各種構成部分についての各
種バリエーションは、適宜組み合わせて実施することが
可能である。また、この発明の実施の形態は、個別装置
としての発明、関連を持つ2以上の装置についての発
明、システム全体としての発明、個別装置内部の構成部
分についての発明、またはそれらに対応する方法の発明
等、種々の観点、段階、概念またはカテゴリに係る発明
を包含・内在するものである。従って、この発明の実施
の形態に開示した内容からは、例示した構成に限定され
ることなく発明を抽出することができるものである。
【0216】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0217】
【発明の効果】本発明によれば、データ転送装置間でデ
ータとその名前との対応を保持し、この対応を保持して
いるデータについては、データを転送するの代わりに対
応する名前を転送することで、データ転送装置間の転送
データ量を削減することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るコンピュータ・ネッ
トワーク・システムの構成例を示す図
【図2】同実施形態に係るコンピュータ・ネットワーク
・システムの他の構成例を示す図
【図3】同実施形態に係るコンピュータ・ネットワーク
・システムのさらに他の構成例を示す図
【図4】同実施形態で使用するフィンガープリントにつ
いて説明するための図
【図5】同実施形態で使用するフィンガープリント・キ
ャッシュについて説明するための図
【図6】同実施形態で使用する差分圧縮の指示方法につ
いて説明するための図
【図7】同実施形態の差分圧縮の具体例について説明す
るための図
【図8】同実施形態の差分圧縮の具体例について説明す
るための図
【図9】同実施形態の差分圧縮の具体例について説明す
るための図
【図10】同実施形態の差分圧縮の他の具体例について
説明するための図
【図11】同実施形態の差分圧縮の他の具体例について
説明するための図
【図12】同実施形態の差分圧縮の他の具体例について
説明するための図
【図13】同実施形態の差分圧縮の他の具体例について
説明するための図
【図14】同実施形態で使用するメッセージ・フォーマ
ットの一例を示す図
【図15】同実施形態で使用するメッセージ・フォーマ
ットの他の例を示す図
【図16】同実施形態で使用するメッセージ・フォーマ
ットのさらに他の例を示す図
【図17】同実施形態で使用するメッセージ・フォーマ
ットのさらに他の例を示す図
【図18】同実施形態で使用するメッセージ・フォーマ
ットのさらに他の例を示す図
【図19】同実施形態に係るサーバ側プロキシの構成例
を示す図
【図20】同実施形態に係るクライアント側プロキシの
構成例を示す図
【図21】同実施形態に係るサーバ側プロキシの手順例
を示すフローチャート
【図22】同実施形態に係るサーバ側プロキシの手順例
を示すフローチャート
【図23】同実施形態に係るクライアント側プロキシの
手順例を示すフローチャート
【図24】同実施形態に係るクライアント側プロキシの
手順例を示すフローチャート
【図25】同実施形態の差分圧縮の処理手順の一例を示
すフローチャート
【図26】同実施形態の差分圧縮の処理手順の他の例を
示すフローチャート
【図27】同実施形態に係るサーバ側プロキシの手順例
を示すフローチャート
【図28】同実施形態に係るクライアント側プロキシの
手順例を示すフローチャート
【図29】同実施形態に係るサーバ側プロキシとクライ
アント側プロキシとの間のデータ転送について説明する
ための図
【図30】同実施形態に係るサーバ側プロキシとクライ
アント側プロキシとの間のデータ転送について説明する
ための図
【図31】同実施形態に係るサーバ側プロキシとクライ
アント側プロキシとの間のデータ転送について説明する
ための図
【図32】同実施形態にプロキシの他の構成例を示す図
【図33】同実施形態に係るクライアント側プロキシの
他の手順例を示すフローチャート
【図34】同実施形態に係るクライアント側プロキシの
他の手順例を示すフローチャート
【図35】同実施形態に係るサーバ側プロキシの他の手
順例を示すフローチャート
【図36】同実施形態に係るサーバ側プロキシの他の手
順例を示すフローチャート
【図37】同実施形態に係るコンピュータ・ネットワー
ク・システムのさらに他の構成例を示す図
【図38】従来のコンピュータ・ネットワーク・システ
ムについて説明するための図
【図39】図14(a)のフォーマットのメッセージの
具体例を示す図
【図40】図14(b)のフォーマットのメッセージの
具体例を示す図
【図41】図14(c)、図15(c)のフォーマット
のメッセージの具体例を示す図
【図42】図14(d)のフォーマットのメッセージの
具体例を示す図
【図43】図15(a)のフォーマットのメッセージの
具体例を示す図
【図44】図15(b)のフォーマットのメッセージの
具体例を示す図
【図45】図16のフォーマットのメッセージの具体例
を示す図
【図46】図17(a)のフォーマットのメッセージの
具体例を示す図
【図47】図17(b)のフォーマットのメッセージの
具体例を示す図
【図48】図17(c)のフォーマットのメッセージの
具体例を示す図
【図49】図18(a)のフォーマットのメッセージの
具体例を示す図
【図50】図18(b)のフォーマットのメッセージの
具体例を示す図
【図51】図18(c)のフォーマットのメッセージの
具体例を示す図
【図52】図18(d)のフォーマットのメッセージの
具体例を示す図
【符号の説明】
202…ASPサーバセンター 204…ユーザオフィス 212…ASPサーバセンター内LAN 214…WAN 216…ユーザオフィス内LAN 220…サーバ装置 230…サーバ側プロキシ装置 240…クライアント側プロキシ装置 250…クライアント装置 231,241…受信部 232,242…処理部 233,243…送信部 234,244…フィンガープリント・キャッシュ 2321,2421…FP圧縮判定部 2322,2422…フィンガープリント・キャッシュ
管理部 2323…FP圧縮処理部 2423…FP解凍処理部 2324…差分圧縮処理部 2424…差分解凍処理部 2325,2425…FP解凍・解凍処理部 2326,2426…差分解凍・解凍処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 關 俊文 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 吉井 謙一郎 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 佐藤 英昭 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 宮澤 隆幸 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 木村 康浩 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 外山 春彦 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5B082 EA09 GA01 HA02 HA05 HA08

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】第1の通信装置から送信されたデータを受
    信し、該データをその宛先となる第2の通信装置に通ず
    る他のデータ転送装置へ送信するとともに、該第2の通
    信装置から送信されたデータを該他のデータ転送装置を
    介して受信し、該データをその宛先となる該第1の通信
    装置へ送信するデータ転送装置であって、 前記第1の通信装置から前記データを受信するための受
    信手段と、 過去に前記他のデータ転送装置へ送信したデータと、該
    データの内容をもとに生成して該データに割り当てた名
    前とを対応付けて保持するための保持手段と、 前記第1の通信装置から送信されたデータを受信した際
    に、該受信したデータの内容をもとに生成した該データ
    に割り当てるべき名前が、前記保持手段に保持されてい
    る場合には、該データの代わりに該名前を送信するため
    の処理を行い、該受信したデータに割り当てられるべき
    名前が、前記保持手段に保持されていない場合には、該
    受信したデータと該名前とを対応付けて前記保持手段に
    保持するための処理を行うとともに、前記保持手段に保
    持されている他のデータを参照データとし、該参照デー
    タに対応する前記名前を利用して、該受信したデータを
    圧縮して表現することが可能であるならば、該受信した
    データを圧縮して表現した圧縮データを送信するための
    処理を行い、圧縮して表現することが可能でないなら
    ば、該受信したデータを送信するための処理を行う処理
    手段と、 前記処理手段の処理に応じて前記名前、前記圧縮データ
    または前記受信したデータを、前記他のデータ転送装置
    へ送信するための送信手段とを備えたことを特徴とする
    データ転送装置。
  2. 【請求項2】第1の通信装置から送信されたデータを他
    のデータ転送装置を介して受信し、該データをその宛先
    となる第2の通信装置へ送信するとともに、該第2の通
    信装置から送信されたデータを受信し、該データをその
    宛先となる第1の通信装置に通ずる他のデータ転送装置
    へ送信するデータ転送装置であって、 前記他のデータ転送装置から、前記データ、当該データ
    の代わりに当該データの内容をもとに生成して該データ
    に割り当てられた名前、または当該データの代わりに他
    のデータを参照データとし、該参照データの内容をもと
    に生成して該参照データに割り当てられた名前を利用し
    て当該データを圧縮して表現した圧縮データを受信する
    ための受信手段と、 過去に前記他のデータ転送装置から受信したデータと、
    該データの内容をもとに生成して該データに割り当てら
    れた名前とを対応付けて保持するための保持手段と、 前記他のデータ転送装置から前記名前を受信した場合に
    は、前記保持手段から該受信した名前に対応付けて保持
    されているデータを取得し、該取得したデータを送信す
    るための処理を行い、前記他のデータ転送装置から前記
    データを受信した場合には、該受信したデータと該デー
    タに割り当てられるべき名前とを対応付けて前記保持手
    段に保持するための処理を行うとともに、該受信したデ
    ータを送信するための処理を行い、前記他のデータ転送
    装置から前記圧縮データを受信した場合には、該圧縮デ
    ータに含まれる参照データに対応する名前と同一の名前
    に対応付けて前記保持手段に保持されているデータを取
    得し、該取得したデータを前記参照データとして該圧縮
    データの元となったデータを解凍するとともに、該解凍
    したデータと該データに割り当てられるべき名前とを対
    応付けて前記保持手段に保持するための処理を行い、該
    解凍したデータを送信するための処理を行う処理手段
    と、 前記処理手段の処理に応じて前記取得したデータ、前記
    受信したデータまたは前記解凍したデータを、前記第2
    の通信装置へ送信するための送信手段とを備えたことを
    特徴とするデータ転送装置。
  3. 【請求項3】前記名前は、所定の方法によって前記デー
    タを圧縮して得た値であることを特徴とする請求項1ま
    たは2に記載のデータ転送装置。
  4. 【請求項4】前記名前は、前記データに所定のハッシュ
    関数を適用して得られた値であることを特徴とする請求
    項1または2に記載のデータ転送装置。
  5. 【請求項5】前記圧縮データは、1又は複数の前記参照
    データに対応する前記名前と、当該各参照データのうち
    使用する部分を示す情報と、該使用する部分の接続方法
    を示す情報とを含むものであることを特徴とする請求項
    1または2に記載のデータ転送装置。
  6. 【請求項6】前記圧縮データは、1つの前記参照データ
    に対応する前記名前と、該参照データのうち該圧縮デー
    タの元となったデータと相違する部分を示す情報と、該
    相違する部分に嵌め込むべき内容とを含むものであるこ
    とを特徴とする請求項1または2に記載のデータ転送装
    置。
  7. 【請求項7】前記受信したデータに割り当てられるべき
    前記名前が前記保持手段に保持されていなかったため
    に、該受信したデータを前記他のデータ転送装置へ送信
    する際には、該受信したデータに割り当てられるべき前
    記名前をも併せて送信することを特徴とする請求項1に
    記載のデータ転送装置。
  8. 【請求項8】前記他のデータ転送装置から前記データと
    ともに該データに割り当てられるべき前記名前を受信し
    た場合に、該受信したデータと該受信した名前とを対応
    付けて前記保持手段に保持することを特徴とする請求項
    2に記載のデータ転送装置。
  9. 【請求項9】少なくともリプライメッセージのデータで
    あって空でないものを対象として前記保持手段への保持
    及び前記名前の転送を行うことを特徴とする請求項1ま
    たは2に記載のデータ転送装置。
  10. 【請求項10】予め定められた条件を満たすデータは、
    前記保持手段への保持を行う対象から除外することを特
    徴とする請求項1または2に記載のデータ転送装置。
  11. 【請求項11】前記データ転送装置は、ローカルエリア
    ネットワークを介して前記第1の通信装置と接続された
    ものであることを特徴とする請求項1に記載のデータ転
    送装置。
  12. 【請求項12】前記データ転送装置は、前記第1の通信
    装置上にソフトウェアとして搭載されたものであること
    を特徴とする請求項1に記載のデータ転送装置。
  13. 【請求項13】前記データ転送装置は、ローカルエリア
    ネットワークを介して前記第2の通信装置と接続された
    ものであることを特徴とする請求項2に記載のデータ転
    送装置。
  14. 【請求項14】前記データ転送装置は、前記第2の通信
    装置上にソフトウェアとして搭載されたものであること
    を特徴とする請求項2に記載のデータ転送装置。
  15. 【請求項15】前記第1の通信装置はサーバ装置であ
    り、前記第2の通信装置はクライアント装置であること
    を特徴とする請求項1または2に記載のデータ転送装
    置。
  16. 【請求項16】第1の通信装置から送信されたデータを
    受信し、該データをその宛先となる第2の通信装置に通
    ずる他のデータ転送装置へ送信するとともに、該第2の
    通信装置から送信されたデータを該他のデータ転送装置
    を介して受信し、該データをその宛先となる該第1の通
    信装置へ送信するデータ転送装置におけるデータ転送方
    法であって、 前記第1の通信装置から送信されたデータを受信し、 受信された前記データの内容をもとに生成した該データ
    に割り当てるべき名前が、過去に前記他のデータ転送装
    置へ送信したデータと該データの内容をもとに生成して
    該データに割り当てた名前とを対応付けて保持するため
    の保持手段に保持されているか否か判断し、 保持されている場合には、受信された前記データの代わ
    りに前記名前を送信するための処理を行い、 保持されていない場合には、前記受信したデータと前記
    名前とを対応付けて前記保持手段に保持するための処理
    を行うとともに、前記保持手段に保持されている他のデ
    ータを参照データとし、該参照データに対応する前記名
    前を利用して、該受信したデータを圧縮して表現するこ
    とが可能であるならば、該受信したデータを圧縮して表
    現した圧縮データを送信するための処理を行い、圧縮し
    て表現することが可能でないならば、該受信したデータ
    を送信するための処理を行うことを特徴とするデータ転
    送方法。
  17. 【請求項17】第1の通信装置から送信されたデータを
    他のデータ転送装置を介して受信し、該データをその宛
    先となる第2の通信装置へ送信するとともに、該第2の
    通信装置から送信されたデータを受信し、該データをそ
    の宛先となる第1の通信装置に通ずる他のデータ転送装
    置へ送信するデータ転送装置におけるデータ転送方法で
    あって、 前記他のデータ転送装置から、前記データ、当該データ
    の代わりに当該データの内容をもとに生成して該データ
    に割り当てられた名前、または当該データの代わりに他
    のデータを参照データとし、該参照データの内容をもと
    に生成して該参照データに割り当てられた名前を利用し
    て当該データを圧縮して表現した圧縮データを受信し、 前記他のデータ転送装置から前記データの代わりに該デ
    ータの内容をもとに生成して該データに割り当てられた
    名前を受信した場合には、過去に前記他のデータ転送装
    置から受信されたデータと該データの内容をもとに生成
    して該データに割り当てられた名前とを対応付けて保持
    するための保持手段から、受信された前記名前に対応付
    けて保持されているデータを取得し、該取得したデータ
    を送信するための処理を行い、前記他のデータ転送装置
    から前記データを受信した場合には、該受信したデータ
    と該データに割り当てられるべき名前とを対応付けて前
    記保持手段に保持するための処理を行うとともに、該受
    信したデータを送信するための処理を行い、前記他のデ
    ータ転送装置から前記圧縮データを受信した場合には、
    該圧縮データに含まれる参照データに対応する名前と同
    一の名前に対応付けて前記保持手段に保持されているデ
    ータを取得し、該取得したデータを前記参照データとし
    て該圧縮データの元となったデータを解凍するととも
    に、該解凍したデータと該データに割り当てられるべき
    名前とを対応付けて前記保持手段に保持するための処理
    を行い、該解凍したデータを送信するための処理を行う
    ことを特徴とするデータ転送方法。
  18. 【請求項18】第1の通信装置から送信されたデータを
    受信し、該データをその宛先となる第2の通信装置に通
    ずる他のデータ転送装置へ送信するとともに、該第2の
    通信装置から送信されたデータを該他のデータ転送装置
    を介して受信し、該データをその宛先となる該第1の通
    信装置へ送信するデータ転送装置としてコンピュータを
    機能させるためのプログラムであって、 過去に前記他のデータ転送装置へ送信したデータと、該
    データの内容をもとに生成して該データに割り当てた名
    前とを対応付けて記憶装置に保持するための機能と、 前記第1の通信装置から送信されたデータを受信した際
    に、該受信したデータの内容をもとに生成した該データ
    に割り当てるべき名前が、前記記憶装置に保持されてい
    る場合には、該データの代わりに該名前を送信するため
    の処理を行い、該受信したデータに割り当てられるべき
    名前が、前記記憶装置に保持されていない場合には、該
    受信したデータと該名前とを対応付けて前記記憶装置に
    保持するための処理を行うとともに、前記記憶装置に保
    持されている他のデータを参照データとし、該参照デー
    タに対応する前記名前を利用して、該受信したデータを
    圧縮して表現することが可能であるならば、該受信した
    データを圧縮して表現した圧縮データを送信するための
    処理を行い、圧縮して表現することが可能でないなら
    ば、該受信したデータを送信するための処理を行う機能
    とをコンピュータに実現させるためのプログラム。
  19. 【請求項19】第1の通信装置から送信されたデータを
    他のデータ転送装置を介して受信し、該データをその宛
    先となる第2の通信装置へ送信するとともに、該第2の
    通信装置から送信されたデータを受信し、該データをそ
    の宛先となる第1の通信装置に通ずる他のデータ転送装
    置へ送信するデータ転送装置としてコンピュータを機能
    させるためのプログラムであって、 過去に前記他のデータ転送装置から受信したデータと、
    該データの内容をもとに生成して該データに割り当てら
    れた名前とを対応付けて記憶装置に保持するための機能
    と、 前記他のデータ転送装置から前記データを受信したか、
    当該データの代わりに当該データの内容をもとに生成し
    て該データに割り当てられた名前を受信したか、または
    当該データの代わりに他のデータを参照データとし、該
    参照データの内容をもとに生成して該参照データに割り
    当てられた名前を利用して当該データを圧縮して表現し
    た圧縮データを受信したかを判断するための機能と、 前記他のデータ転送装置から前記名前を受信した場合に
    は、前記記憶装置から該受信した名前に対応付けて保持
    されているデータを取得し、該取得したデータを送信す
    るための処理を行い、前記他のデータ転送装置から前記
    データを受信した場合には、該受信したデータと該デー
    タに割り当てられるべき名前とを対応付けて前記記憶装
    置に保持するための処理を行うとともに、該受信したデ
    ータを送信するための処理を行い、前記他のデータ転送
    装置から前記圧縮データを受信した場合には、該圧縮デ
    ータに含まれる参照データに対応する名前と同一の名前
    に対応付けて前記記憶装置に保持されているデータを取
    得し、該取得したデータを前記参照データとして該圧縮
    データの元となったデータを解凍するとともに、該解凍
    したデータと該データに割り当てられるべき名前とを対
    応付けて前記記憶装置に保持するための処理を行い、該
    解凍したデータを送信するための処理を行う機能とをコ
    ンピュータに実現させるためのプログラム。
JP2001069286A 2001-03-12 2001-03-12 サーバ側プロキシ装置及びプログラム Expired - Fee Related JP3990115B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001069286A JP3990115B2 (ja) 2001-03-12 2001-03-12 サーバ側プロキシ装置及びプログラム
US10/094,462 US7359956B2 (en) 2001-03-12 2002-03-11 Data transfer scheme using caching and differential compression techniques for reducing network load
US11/967,435 US20080250119A1 (en) 2001-03-12 2007-12-31 Data transfer scheme using caching and differential compression techniques for reducing network load

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001069286A JP3990115B2 (ja) 2001-03-12 2001-03-12 サーバ側プロキシ装置及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007154535A Division JP4157585B2 (ja) 2007-06-11 2007-06-11 サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2002268937A true JP2002268937A (ja) 2002-09-20
JP3990115B2 JP3990115B2 (ja) 2007-10-10

Family

ID=18927341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001069286A Expired - Fee Related JP3990115B2 (ja) 2001-03-12 2001-03-12 サーバ側プロキシ装置及びプログラム

Country Status (2)

Country Link
US (2) US7359956B2 (ja)
JP (1) JP3990115B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009519508A (ja) * 2005-12-05 2009-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法
WO2009091485A1 (en) * 2008-01-18 2009-07-23 Microsoft Corporation Content compression in networks
JP2015055877A (ja) * 2013-09-10 2015-03-23 日本電気株式会社 送信装置、送信方法、送信プログラム、及び、中継システム
US9083708B2 (en) 2010-05-17 2015-07-14 Microsoft Technology Licensing, Llc Asymmetric end host redundancy elimination for networks

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054912B2 (en) * 2001-03-12 2006-05-30 Kabushiki Kaisha Toshiba Data transfer scheme using caching technique for reducing network load
US7484007B2 (en) * 2002-02-01 2009-01-27 Codekko Inc. System and method for partial data compression and data transfer
US8205009B2 (en) * 2002-04-25 2012-06-19 Emc Israel Development Center, Ltd. Apparatus for continuous compression of large volumes of data
US20040151187A1 (en) * 2003-01-31 2004-08-05 Lichtenstein Walter D. Scheduling data transfers for multiple use requests
US20040153567A1 (en) * 2003-01-31 2004-08-05 Lichtenstein Walter D. Scheduling data transfers using virtual nodes
US7478096B2 (en) * 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US20050086306A1 (en) * 2003-03-14 2005-04-21 Lemke Ralph E. Providing background delivery of messages over a network
GB0315154D0 (en) * 2003-06-28 2003-08-06 Ibm Improvements to hypertext integrity
GB0315155D0 (en) * 2003-06-28 2003-08-06 Ibm Improvements to hypertext request integrity and user experience
US7398325B2 (en) * 2003-09-04 2008-07-08 International Business Machines Corporation Header compression in messages
JP4057989B2 (ja) * 2003-09-26 2008-03-05 株式会社東芝 スケジューリング方法および情報処理システム
US20050188089A1 (en) * 2004-02-24 2005-08-25 Lichtenstein Walter D. Managing reservations for resources
US7539776B1 (en) * 2004-06-17 2009-05-26 Sun Microsystems, Inc. Dynamic uniform resource locator compression
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US7756826B2 (en) * 2006-06-30 2010-07-13 Citrix Systems, Inc. Method and systems for efficient delivery of previously stored content
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US8060713B1 (en) 2005-12-21 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Consolidating snapshots in a continuous data protection system using journaling
US7774565B2 (en) * 2005-12-21 2010-08-10 Emc Israel Development Center, Ltd. Methods and apparatus for point in time data access and recovery
US7849361B2 (en) * 2005-12-22 2010-12-07 Emc Corporation Methods and apparatus for multiple point in time data access
US7912089B2 (en) * 2005-12-30 2011-03-22 Qurio Holdings, Inc. Methods, systems, and products for condensing messages
US7782904B2 (en) * 2005-12-30 2010-08-24 Qurio Holdings, Inc. Methods, systems, and products for condensing messages
US20070276912A1 (en) * 2006-05-05 2007-11-29 Mike Rybak Apparatus and method for forming and communicating a responsive data message
US7627612B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for optimal journaling for continuous data replication
US7627687B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for managing data flow in a continuous data replication system having journaling
US20090094349A1 (en) * 2007-03-14 2009-04-09 Amx, Llc Device roaming on a zigbee network
US7941764B2 (en) 2007-04-04 2011-05-10 Abo Enterprises, Llc System and method for assigning user preference settings for a category, and in particular a media category
US8832220B2 (en) * 2007-05-29 2014-09-09 Domingo Enterprises, Llc System and method for increasing data availability on a mobile device based on operating mode
US20080307316A1 (en) * 2007-06-07 2008-12-11 Concert Technology Corporation System and method for assigning user preference settings to fields in a category, particularly a media category
US8224856B2 (en) 2007-11-26 2012-07-17 Abo Enterprises, Llc Intelligent default weighting process for criteria utilized to score media content items
US20090138457A1 (en) * 2007-11-26 2009-05-28 Concert Technology Corporation Grouping and weighting media categories with time periods
US20090158146A1 (en) * 2007-12-13 2009-06-18 Concert Technology Corporation Resizing tag representations or tag group representations to control relative importance
US7840536B1 (en) 2007-12-26 2010-11-23 Emc (Benelux) B.V., S.A.R.L. Methods and apparatus for dynamic journal expansion
US8041940B1 (en) 2007-12-26 2011-10-18 Emc Corporation Offloading encryption processing in a storage area network
US7860836B1 (en) 2007-12-26 2010-12-28 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to recover data in a continuous data protection environment using a journal
US7958372B1 (en) 2007-12-26 2011-06-07 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to convert a logical unit from a first encryption state to a second encryption state using a journal in a continuous data protection environment
US7836053B2 (en) * 2007-12-28 2010-11-16 Group Logic, Inc. Apparatus and methods of identifying potentially similar content for data reduction
US9501542B1 (en) 2008-03-11 2016-11-22 Emc Corporation Methods and apparatus for volume synchronization
US20090287140A1 (en) * 2008-05-16 2009-11-19 Rittman Iii William J Electrical stimulation and infusion introducer assembly
US7719443B1 (en) 2008-06-27 2010-05-18 Emc Corporation Compressing data in a continuous data protection environment
US8108634B1 (en) 2008-06-27 2012-01-31 Emc B.V., S.A.R.L. Replicating a thin logical unit
US7882286B1 (en) 2008-09-26 2011-02-01 EMC (Benelux)B.V., S.A.R.L. Synchronizing volumes for replication
US8060714B1 (en) 2008-09-26 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Initializing volumes in a replication system
US20100179984A1 (en) 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
US20140040353A1 (en) * 2009-01-13 2014-02-06 Viasat, Inc. Return-link optimization for file-sharing traffic
WO2010104927A2 (en) 2009-03-10 2010-09-16 Viasat, Inc. Internet protocol broadcasting
US8301798B2 (en) * 2009-06-12 2012-10-30 Barclays Captial Inc. System and method for processing large amounts of transactional data
US8750370B2 (en) * 2009-09-04 2014-06-10 Brocade Communications Systems, Inc. Congestion-adaptive compression
EP2312464A1 (en) * 2009-10-14 2011-04-20 Amadeus S.A.S. Method of and apparatus for operating on data in a distributed client-server architecture comprising heterogeneous platforms
US8516253B1 (en) 2010-01-18 2013-08-20 Viasat, Inc. Self-keyed protection of anticipatory content
US8392680B1 (en) 2010-03-30 2013-03-05 Emc International Company Accessing a volume in a distributed environment
US9307003B1 (en) 2010-04-18 2016-04-05 Viasat, Inc. Web hierarchy modeling
US8332687B1 (en) 2010-06-23 2012-12-11 Emc Corporation Splitter used in a continuous data protection environment
KR101064201B1 (ko) * 2010-07-27 2011-09-14 주식회사 파수닷컴 웹 데이터의 권한 관리 장치, 웹 데이터의 권한 관리 방법을 컴퓨터에서 실행시키기 위한 기록매체, 그리고 권한 관리 정보 제공 장치 및 방법
US8433869B1 (en) 2010-09-27 2013-04-30 Emc International Company Virtualized consistency group using an enhanced splitter
US8478955B1 (en) 2010-09-27 2013-07-02 Emc International Company Virtualized consistency group using more than one data protection appliance
US8335771B1 (en) 2010-09-29 2012-12-18 Emc Corporation Storage array snapshots for logged access replication in a continuous data protection system
US8694700B1 (en) 2010-09-29 2014-04-08 Emc Corporation Using I/O track information for continuous push with splitter for storage device
US20120131432A1 (en) * 2010-11-24 2012-05-24 Edward Wayne Goddard Systems and methods for delta encoding, transmission and decoding of html forms
US8335761B1 (en) 2010-12-02 2012-12-18 Emc International Company Replicating in a multi-copy environment
US8943216B2 (en) * 2011-02-24 2015-01-27 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for caching content
US9037638B1 (en) 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US11983233B2 (en) 2011-04-11 2024-05-14 Viasat, Inc. Browser based feedback for optimized web browsing
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
EP2536065B1 (en) 2011-06-14 2019-11-27 ViaSat, Inc. Transport protocol for anticipatory content
US9256605B1 (en) 2011-08-03 2016-02-09 Emc Corporation Reading and writing to an unexposed device
US8898112B1 (en) 2011-09-07 2014-11-25 Emc Corporation Write signature command
US9407355B1 (en) 2011-10-25 2016-08-02 Viasat Inc. Opportunistic content delivery using delta coding
US8432808B1 (en) 2012-06-15 2013-04-30 Viasat Inc. Opportunistically delayed delivery in a satellite network
US9223659B1 (en) 2012-06-28 2015-12-29 Emc International Company Generating and accessing a virtual volume snapshot in a continuous data protection system
US9336094B1 (en) 2012-09-13 2016-05-10 Emc International Company Scaleout replication of an application
US10235145B1 (en) 2012-09-13 2019-03-19 Emc International Company Distributed scale-out replication
CN103873443B (zh) * 2012-12-13 2018-04-27 联想(北京)有限公司 信息处理方法、本地代理服务器和网络代理服务器
US8996460B1 (en) 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
US9696939B1 (en) 2013-03-14 2017-07-04 EMC IP Holding Company LLC Replicating data using deduplication-based arrays using network-based replication
US9383937B1 (en) 2013-03-14 2016-07-05 Emc Corporation Journal tiering in a continuous data protection system using deduplication-based storage
US9110914B1 (en) 2013-03-14 2015-08-18 Emc Corporation Continuous data protection using deduplication-based storage
US9244997B1 (en) 2013-03-15 2016-01-26 Emc Corporation Asymmetric active-active access of asynchronously-protected data storage
US9081842B1 (en) 2013-03-15 2015-07-14 Emc Corporation Synchronous and asymmetric asynchronous active-active-active data access
US9152339B1 (en) 2013-03-15 2015-10-06 Emc Corporation Synchronization of asymmetric active-active, asynchronously-protected storage
US9087112B1 (en) 2013-06-24 2015-07-21 Emc International Company Consistency across snapshot shipping and continuous replication
US9069709B1 (en) 2013-06-24 2015-06-30 Emc International Company Dynamic granularity in data replication
US9146878B1 (en) 2013-06-25 2015-09-29 Emc Corporation Storage recovery from total cache loss using journal-based replication
US9367260B1 (en) 2013-12-13 2016-06-14 Emc Corporation Dynamic replication system
US9405765B1 (en) 2013-12-17 2016-08-02 Emc Corporation Replication of virtual machines
US9158630B1 (en) 2013-12-19 2015-10-13 Emc Corporation Testing integrity of replicated storage
US9189339B1 (en) 2014-03-28 2015-11-17 Emc Corporation Replication of a virtual distributed volume with virtual machine granualarity
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
US10082980B1 (en) 2014-06-20 2018-09-25 EMC IP Holding Company LLC Migration of snapshot in replication system using a log
US9274718B1 (en) 2014-06-20 2016-03-01 Emc Corporation Migration in replication system
US9619543B1 (en) 2014-06-23 2017-04-11 EMC IP Holding Company LLC Replicating in virtual desktop infrastructure
US10462258B2 (en) * 2014-08-27 2019-10-29 Huawei Technologies Co., Ltd. Resource download method, electronic device, and apparatus
US10324798B1 (en) 2014-09-25 2019-06-18 EMC IP Holding Company LLC Restoring active areas of a logical unit
US10101943B1 (en) 2014-09-25 2018-10-16 EMC IP Holding Company LLC Realigning data in replication system
US10437783B1 (en) 2014-09-25 2019-10-08 EMC IP Holding Company LLC Recover storage array using remote deduplication device
US9910621B1 (en) 2014-09-29 2018-03-06 EMC IP Holding Company LLC Backlogging I/O metadata utilizing counters to monitor write acknowledgements and no acknowledgements
US9529885B1 (en) 2014-09-29 2016-12-27 EMC IP Holding Company LLC Maintaining consistent point-in-time in asynchronous replication during virtual machine relocation
US9600377B1 (en) 2014-12-03 2017-03-21 EMC IP Holding Company LLC Providing data protection using point-in-time images from multiple types of storage devices
US10496487B1 (en) 2014-12-03 2019-12-03 EMC IP Holding Company LLC Storing snapshot changes with snapshots
US9405481B1 (en) 2014-12-17 2016-08-02 Emc Corporation Replicating using volume multiplexing with consistency group file
US9632881B1 (en) 2015-03-24 2017-04-25 EMC IP Holding Company LLC Replication of a virtual distributed volume
US9411535B1 (en) 2015-03-27 2016-08-09 Emc Corporation Accessing multiple virtual devices
US10296419B1 (en) 2015-03-27 2019-05-21 EMC IP Holding Company LLC Accessing a virtual device using a kernel
US9678680B1 (en) 2015-03-30 2017-06-13 EMC IP Holding Company LLC Forming a protection domain in a storage architecture
US10241960B2 (en) 2015-05-14 2019-03-26 Deephaven Data Labs Llc Historical data replay utilizing a computer system
US10853181B1 (en) 2015-06-29 2020-12-01 EMC IP Holding Company LLC Backing up volumes using fragment files
US9740809B2 (en) * 2015-08-27 2017-08-22 Altera Corporation Efficient integrated circuits configuration data management
BR112018007818B1 (pt) 2015-10-20 2023-10-17 Viasat, Inc. Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina
US9684576B1 (en) 2015-12-21 2017-06-20 EMC IP Holding Company LLC Replication using a virtual distributed volume
US10067837B1 (en) 2015-12-28 2018-09-04 EMC IP Holding Company LLC Continuous data protection with cloud resources
US10133874B1 (en) 2015-12-28 2018-11-20 EMC IP Holding Company LLC Performing snapshot replication on a storage system not configured to support snapshot replication
US10235196B1 (en) 2015-12-28 2019-03-19 EMC IP Holding Company LLC Virtual machine joining or separating
US10152267B1 (en) 2016-03-30 2018-12-11 Emc Corporation Replication data pull
US10579282B1 (en) 2016-03-30 2020-03-03 EMC IP Holding Company LLC Distributed copy in multi-copy replication where offset and size of I/O requests to replication site is half offset and size of I/O request to production volume
US10235087B1 (en) 2016-03-30 2019-03-19 EMC IP Holding Company LLC Distributing journal data over multiple journals
US10235060B1 (en) 2016-04-14 2019-03-19 EMC IP Holding Company, LLC Multilevel snapshot replication for hot and cold regions of a storage system
US10235091B1 (en) 2016-09-23 2019-03-19 EMC IP Holding Company LLC Full sweep disk synchronization in a storage system
US10019194B1 (en) 2016-09-23 2018-07-10 EMC IP Holding Company LLC Eventually consistent synchronous data replication in a storage system
US10235090B1 (en) 2016-09-23 2019-03-19 EMC IP Holding Company LLC Validating replication copy consistency using a hash function in a storage system
US10146961B1 (en) 2016-09-23 2018-12-04 EMC IP Holding Company LLC Encrypting replication journals in a storage system
US10210073B1 (en) 2016-09-23 2019-02-19 EMC IP Holding Company, LLC Real time debugging of production replicated data with data obfuscation in a storage system
US10567539B2 (en) * 2016-11-23 2020-02-18 Cisco Technology, Inc. Managing metadata in cloud driven, thin client video applications
US10963450B2 (en) 2017-01-25 2021-03-30 Apple Inc. Optimizing offline map data updates
US10198469B1 (en) 2017-08-24 2019-02-05 Deephaven Data Labs Llc Computer data system data source refreshing using an update propagation graph having a merged join listener
CN111177362B (zh) * 2019-12-30 2023-08-22 深圳市梦网科技发展有限公司 一种信息处理方法、装置、服务器及介质
CN113268453A (zh) * 2021-05-27 2021-08-17 杭州迪普科技股份有限公司 日志信息压缩存储方法及装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US5521597A (en) * 1993-08-02 1996-05-28 Mircosoft Corporation Data compression for network transport
US5627533A (en) * 1994-08-05 1997-05-06 Hayes Microcomputer Products, Inc. Adjusting encoding table size and memory allocation for data compression in response to input data
US5701432A (en) * 1995-10-13 1997-12-23 Sun Microsystems, Inc. Multi-threaded processing system having a cache that is commonly accessible to each thread
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
US5878213A (en) 1996-02-15 1999-03-02 International Business Machines Corporation Methods, systems and computer program products for the synchronization of time coherent caching system
JPH09251414A (ja) 1996-03-15 1997-09-22 N T T Data Tsushin Kk ネットワーク通信システム及び方法
US6112250A (en) * 1996-04-11 2000-08-29 America Online, Inc. Recompression of files at an intermediate node in a network system
US5654703A (en) * 1996-06-17 1997-08-05 Hewlett-Packard Company Parallel data compression and decompression
US6173311B1 (en) * 1997-02-13 2001-01-09 Pointcast, Inc. Apparatus, method and article of manufacture for servicing client requests on a network
US5946697A (en) * 1997-04-22 1999-08-31 Microsoft Corporation Rapid transfer of HTML files
US6292115B1 (en) * 1997-12-02 2001-09-18 Hughes Electronics Corporation Data compression for use with a communications channel
US6721740B1 (en) * 1998-05-29 2004-04-13 Sun Microsystems, Inc. Method and apparatus of performing active update notification
US6590588B2 (en) * 1998-05-29 2003-07-08 Palm, Inc. Wireless, radio-frequency communications using a handheld computer
US6263348B1 (en) * 1998-07-01 2001-07-17 Serena Software International, Inc. Method and apparatus for identifying the existence of differences between two files
US6427187B2 (en) * 1998-07-31 2002-07-30 Cache Flow, Inc. Multiple cache communication
GB9821103D0 (en) * 1998-09-30 1998-11-18 Xerox Corp Mobile Email document transaction service
US6697844B1 (en) * 1998-12-08 2004-02-24 Lucent Technologies, Inc. Internet browsing using cache-based compaction
JP2000222273A (ja) 1999-02-03 2000-08-11 Nec Software Shikoku Ltd ドキュメントダウンロードシステム
US20010034839A1 (en) * 1999-12-24 2001-10-25 Guenter Karjoth Method and apparatus for secure transmission of data and applications
US20040049598A1 (en) * 2000-02-24 2004-03-11 Dennis Tucker Content distribution system
US7035902B1 (en) * 2000-08-11 2006-04-25 International Business Machines Corporation Method, article of manufacture and apparatus for processing an electronic mail document
US20020078371A1 (en) * 2000-08-17 2002-06-20 Sun Microsystems, Inc. User Access system using proxies for accessing a network
US20020059463A1 (en) * 2000-11-10 2002-05-16 Leonid Goldstein Method and system for accelerating internet access through data compression
US6877025B2 (en) * 2000-12-18 2005-04-05 International Business Machines Corp. Integrated JSP and command cache for web applications with dynamic content
US6754799B2 (en) * 2001-05-16 2004-06-22 Microsoft Corporation System and method for indexing and retrieving cached objects

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009519508A (ja) * 2005-12-05 2009-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法
WO2009091485A1 (en) * 2008-01-18 2009-07-23 Microsoft Corporation Content compression in networks
US7975071B2 (en) 2008-01-18 2011-07-05 Microsoft Corporation Content compression in networks
US9083708B2 (en) 2010-05-17 2015-07-14 Microsoft Technology Licensing, Llc Asymmetric end host redundancy elimination for networks
JP2015055877A (ja) * 2013-09-10 2015-03-23 日本電気株式会社 送信装置、送信方法、送信プログラム、及び、中継システム
US9742832B2 (en) 2013-09-10 2017-08-22 Nec Corporation Transmission apparatus, transmission method, computer-readable storage medium storing transmission program, and relay system

Also Published As

Publication number Publication date
US7359956B2 (en) 2008-04-15
JP3990115B2 (ja) 2007-10-10
US20020129168A1 (en) 2002-09-12
US20080250119A1 (en) 2008-10-09

Similar Documents

Publication Publication Date Title
JP3990115B2 (ja) サーバ側プロキシ装置及びプログラム
US7636765B2 (en) Data transfer scheme using caching technique for reducing network load
US7383348B2 (en) Data transfer scheme using caching technique for reducing network load
US6892206B2 (en) Reduction of meta data in a network
CN104081739B (zh) 在覆盖网络中利用压缩和差异化引擎的基于主机/路径的数据差异化装置和系统
JP4671332B2 (ja) ユーザ識別情報を変換するファイルサーバ
US20090271527A1 (en) Caching signatures
US20050027731A1 (en) Compression dictionaries
JP3848209B2 (ja) データ転送装置、データ転送方法及びプログラム
JP3984086B2 (ja) キャッシュサーバ、データ転送装置及びプログラム
JP2004310371A (ja) ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体
JP4031516B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
US20020107986A1 (en) Methods and systems for replacing data transmission request expressions
JP4053269B2 (ja) データ転送装置およびデータ転送方法
JP3983987B2 (ja) サーバ側プロキシ装置、データ転送方法及びプログラム
JP3943867B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP2003108464A (ja) データ転送装置およびデータ転送方法
JP4157585B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP3943868B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP4041157B2 (ja) クライアント側プロキシ装置、データ転送方法及びプログラム
JP2003108462A (ja) データ転送装置およびデータ転送方法
JP3977651B2 (ja) データ転送方法、サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム
JP4300220B2 (ja) データ転送装置およびデータ転送方法
JP3977601B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム
JP2003122730A (ja) 情報処理方法、エージェントシステム、エージェントシステムプログラム及びエージェントシステムプログラムが記録された記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070611

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070628

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: 20070717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070719

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

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees