Nothing Special   »   [go: up one dir, main page]

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

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

Info

Publication number
JP2003288261A
JP2003288261A JP2002089949A JP2002089949A JP2003288261A JP 2003288261 A JP2003288261 A JP 2003288261A JP 2002089949 A JP2002089949 A JP 2002089949A JP 2002089949 A JP2002089949 A JP 2002089949A JP 2003288261 A JP2003288261 A JP 2003288261A
Authority
JP
Japan
Prior art keywords
response
data
communication device
request
identifier
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
JP2002089949A
Other languages
English (en)
Other versions
JP3984086B2 (ja
Inventor
Yasuhiro Kimura
康浩 木村
Yuichi Koba
雄一 木場
Kenichiro Yoshii
謙一郎 吉井
Tokuji Shono
篤司 庄野
Hideaki Sato
英昭 佐藤
Toshibumi Seki
俊文 關
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 JP2002089949A priority Critical patent/JP3984086B2/ja
Priority to US10/396,396 priority patent/US7069297B2/en
Publication of JP2003288261A publication Critical patent/JP2003288261A/ja
Application granted granted Critical
Publication of JP3984086B2 publication Critical patent/JP3984086B2/ja
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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • 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
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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/22Parsing or analysis of headers
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 通信装置間を接続するネットワークの負荷を
より軽減することができるデータ転送装置を提供するこ
と。 【解決手段】 キャッシュ・サーバ2は、Webサーバ
3からWebブラウザ3に転送すべきレスポンスを受信
した際に、該レスポンスを転送する代わりに、該レスポ
ンスに対するフィンガープリントを生成し、該フィンガ
ープリントとWebサーバ3からのレスポンスに含まれ
るレスポンスデータとを対応付けて保存し、該フィンガ
ープリントと自身のホスト名とを含むURLへのリダイ
レクトレスポンスを生成してWebブラウザ5に送信す
る。その後、Webブラウザ5から該フィンガープリン
トと自身のホスト名とを含むURLへのリクエストメッ
セージを受信したならば、該フィンガープリントに対応
付けて保存されているレスポンスデータを含むレスポン
スを生成して、該Webブラウザ5に送信する。

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】リクエストメッセージのメソッドとして
は、サーバ上の情報を読み出す「GETメソッド」、ユ
ーザの持つデータをサーバに書き込む「PUTメソッ
ド」、リクエストの応じて処理した結果を送り返しても
らう「POSTメソッド」が、情報やサービスのアクセ
スに用いられる主要なものである。その他、DELET
Eなどのメソッドが定義されている。
【0009】多くの場合、GETメソッドのリクエスト
メッセージのリクエストボディ、PUTメソッドのレス
ポンスメッセージのレスポンスボディは空である。PO
STメソッドのリクエストメッセージのリクエストボデ
ィには、必要に応じてサーバ側での処理に用いる情報が
入り、POSTメソッドのレスポンスメッセージのレス
ポンスボディには、その処理の結果のデータが入る。
【0010】GETメソッドでサーバから読み出すデー
タは、読み出す毎にサーバ側で生成する「動的データ」
と、既にサーバ側で記憶しているデータをそのまま送り
返す「静的データ」に分けることができる。これらのう
ち、動的データについては、同じURLでも読み出す度
に内容が異なる可能性があるので、多くの場合、サーバ
はキャッシュ不可の指定をそのレスポンスメッセージの
ヘッダに入れて送り返す。したがって、Webのデータ
でキャッシュの対象になるのは、静的データの部分であ
る。この静的データは、不特定多数のユーザが参照して
構わない「共有データ」と、ユーザ認証することで特定
のユーザだけがアクセスできるようにアクセス制御を行
う「プライベートデータ」に分けることができる。前者
の共有データは、どのようなキャッシュでもキャッシュ
可能である。しかしながら、後者のプライベートデータ
は、プロキシサーバなどの共有キャッシュでは、キャッ
シュ不可である(プライベートデータは必ずサーバでユ
ーザを認証して送り返す必要があるので)。ただし、ブ
ラウザなどの個人専用のキャッシュの場合には、プライ
ベートデータでもキャッシュは可能である。
【0011】POSTメソッドは、サーバ側で処理をし
た結果を返すので、一般的にサーバはキャッシュ不可の
指定をレスポンスメッセージのヘッダに入れて結果を送
り返す。そのため、通常はキャッシュの対象にはならな
い。
【0012】PUTメソッドは、データをサーバに送る
ものなので、キャッシュは何も処理をしない。
【0013】一方、レスポンスメッセージは、「レスポ
ンスヘッダ」と「レスポンスボディ」からなる。レスポ
ンスヘッダは、処理結果を表すステータスコードと、そ
れに付随する情報を伝えるための各種へッダから構成さ
れており、レスポンスボディには、要求された情報や要
求されたサービスの処理結果などのデータが入る。レス
ポンスボディに入っているデータを「レスポンスデー
タ」とも呼ぶ。
【0014】レスポンスへッダのステータスコードは、
三桁の数字によって構成される。ステータスコードの意
味は、数値ごとに異なるが、最初の一桁の数字の値によ
って大きく5つにクラス分けができる。
【0015】最初の一桁が1のクラスは、リクエストに
対応する処理がまだ続いている状況で用いられるクラス
である。例えば、ステータスコード“100”は、まさ
に処理が継続中であることを表し、ブラウザは、このス
テータスコードを受け取った後、更なるレスポンスがサ
ーバから送られてくるのを待つことになる。
【0016】最初の一桁が2のクラスは、一般的に成功
を表すクラスである。例えば、GETメソッドで指定さ
れたURLにあるデータへのアクセスが受理された場
合、サーバは、ステータスコード“200”を含むレス
ポンスへッダとURLに対応するデータとを含んだレス
ポンスボディからなるレスポンスメッセージを、クライ
アントに送信する。また、PUTで指定されたURLに
データを保存するのに成功した場合には、ステータスコ
ード“201”を含むレスポンスへッダが、クライアン
トに送信される。
【0017】最初の一桁が3のクラスは、リダイレクシ
ョンを表すクラスである。クライアントのリクエストに
対してサーバがこのクラスに属するステータスコードを
返した場合、それは、「このリクエストを送信した目的
を果たすためにはクライアント側で更に何らかのアクシ
ョンが必要である」、ということを示している。例え
ば、あるサーバマシンのトラブル等によって通常そのサ
ーバ上で提供されているサービスを一時的に提供できな
い場合に、他のサーバで代替的にサービスを提供すると
いうことはよく行われることであるが、この時トラブル
中のサーバはクライアントからのリクエストに対して、
「要求されたものは一時的に別の場所で提供されてい
る」ことを示すステータスコード“302”と、代替的
にサービスを提供している場所のURLを含むLoca
tionへッダとからなるレスポンスを返すことができ
る。クライアントは、ステータスコード“302”を含
むレスポンスを受け取ると、前述のLocationへ
ッダに書かれているURLを参照し、そのURLに対応
するサーバに対して再度リクエストを送信することによ
って、所望のサービスの提供を受けることができる。ま
た、前述のようにWebブラウザにはキャッシュ機能を
持つものが多くあるが、このようなキャッシュ機能を持
つWebブラウザが既にデータをキャッシュしているU
RLに対して再度GETリクエストを送信する場合、リ
クエストの中に前回このURLのデータを受け取った時
刻を付随情報として付加される。これは、サーバに対し
て、「URLに相当するデータがこの時刻より後に更新
されている場合にのみ、データを送信して欲しい」、と
要求していることを意味している。このような方法は一
般的にリバリデーションと呼ばれるが、このブラウザか
らのリバリデーション要求に対して、URLに相当する
データが指定された時刻より後に更新されてない場合、
サーバは、ブラウザに対してステータスコード“30
4”を返すことができる。これは、「ローカルコピーを
使え」、という意味のステータスコードで、このレスポ
ンスを受け取ったブラウザは、キャッシュしておいたデ
ータを再度取出し、それをGETリクエストの結果得ら
れたデータとして利用するのである。
【0018】最初の一桁が4のクラスは、クライアント
側が原因で何らかのエラーが発生したことを表すクラス
である。例えば、バグのあるクライアントプログラムが
HTTPの規約に従わないリクエストを送信した場合、
サーバは、ステータスコード“400”を返して、リク
エストがHTTPの規約からはずれていることを通知す
る。また、ユーザのミスタイプなどにより、存在しない
URLに対するリクエストが送信された場合、サーバ
は、ステータスコード“404”を返して、指定された
URLが存在しないことを通知する。
【0019】最初の一桁が5のクラスは、サーバ側が原
因で何らかのエラーが発生したことを表すクラスであ
る。例えば、サーバマシンのトラブル等によってそのマ
シンがサービスを一時的に提供できない状況に陥り、か
つ代替的にサービスを提供する他のマシンを用意するこ
とが出来ないような場合、サーバは、クライアントから
のリクエストに対してステータスコード“503”を返
して、サービスが一時的に提供できない状況であること
を通知する。
【0020】
【発明が解決しようとする課題】従来のWebのキャッ
シュは、静的コンテンツをキャッシュの対象にしてい
る。かつては、Webで公開される情報やサービスに
は、情報の更新頻度がそれほど高くなく、不特定多数の
人に公開されているものが多かったため、静的コンテン
ツの割合は非常に高く、従来のキャッシュ技術でもネッ
トワークの負荷の軽減に有効であった。
【0021】しかしながら、WebベースのASP(A
pplication Service Provid
er)のように、ユーザがWWebブラウザを使って、
ネットワーク経由でサーバ上の情報やサービスにアクセ
スするシステムが普及するにつれて、下記のように従来
のキャッシュ技術では対応できないデータが増加してい
る。 ・ユーザの認証を行い、アクセスできるユーザを制限し
ているので、プライベートデータが多い。 ・バックエンドのデータベースを参照して生成する動的
データが多い。 ・帳票処理や検索などPOSTメソッドを使う場合が多
い。 ・グループ内の情報共有のためにPUTメソッドを使う
場合が多い。
【0022】この結果、キャッシュ技術のみではネット
ワークの負荷を軽減する手法として有効に機能しなくな
ってきている。
【0023】本発明は、上記事情を考慮してなされたも
ので、第1の通信装置から第2の通信装置へ要求を行
い、この要求に応じて第2の通信装置から第1の通信装
置へ所定のデータを転送する場合において、第1の通信
装置とデータ転送装置との間を接続するネットワークの
負荷をより軽減することができるデータ転送装置及びデ
ータ転送方法を提供することを目的とする。
【0024】
【課題を解決するための手段】本発明は、第1の通信装
置から送信されたリクエストメッセージを受信する第1
の受信手段と、受信されたリクエストメッセージが第2
の通信装置へ転送すべきものである場合に、該リクエス
トメッセージを前記第2の通信装置へ送信する第1の送
信手段と、前記第2の通信装置から返送された前記レス
ポンスデータを含む前記レスポンスメッセージを受信す
る第2の受信手段と、受信された前記レスポンスメッセ
ージに含まれる前記レスポンスデータに割り当てるべき
識別子を、該レスポンスデータの内容に基づいて生成す
る手段と、少なくとも前記レスポンスデータと前記識別
子とを対応付けて保持する保持手段と、前記第2の通信
装置から前記レスポンスデータを含む前記レスポンスメ
ッセージを受信した場合に、前記第1の通信装置に対し
て、該レスポンスデータを含むレスポンスメッセージを
送信する代わりに、前記識別子を含む所定のURLへの
リダイレクトレスポンスメッセージを送信する第2の送
信手段とを備え、前記第2の送信手段は、前記第1の受
信手段を介して前記第1の通信装置からの前記識別子を
含む所定のURLへのリクエストメッセージが受信され
た場合には、該URLに含まれる該識別子に対応して前
記保持手段に保持されている前記レスポンスデータを含
むレスポンスメッセージを、前記第1の通信装置に送信
することを特徴とする。
【0025】また、本発明は、所定のネットワークを介
して第1の通信装置から送信されたリクエストメッセー
ジを受信して第2の通信装置に転送し、該リクエストメ
ッセージを受け付けた該第2の通信装置から返送された
レスポンスデータを含むレスポンスメッセージを受信し
て第1の通信装置に転送するデータ転送装置におけるデ
ータ転送方法であって、前記第1の通信装置から送信さ
れたリクエストメッセージを受信し、受信されたリクエ
ストメッセージを前記第2の通信装置へ送信し、前記第
2の通信装置から返送された前記レスポンスデータを含
む前記レスポンスメッセージを受信し、受信された前記
レスポンスメッセージに含まれる前記レスポンスデータ
に割り当てるべき識別子を、該レスポンスデータの内容
に基づいて生成し、少なくとも前記レスポンスデータと
前記識別子とを対応付けて保持手段に保持し、前記第2
の通信装置から前記レスポンスデータを含む前記レスポ
ンスメッセージを受信した場合に、前記第1の通信装置
に対して、該レスポンスデータを含むレスポンスメッセ
ージを送信する代わりに、前記識別子を含む所定のUR
Lへのリダイレクトレスポンスメッセージを送信し、前
記第1の通信装置から送信された前記識別子を含む所定
のURLへのリクエストメッセージを受信し、受信され
た前記リクエストメッセージの前記URLに含まれる前
記識別子に対応して前記保持手段に保持されている前記
レスポンスデータを含むレスポンスメッセージを、前記
第1の通信装置に送信することを特徴とする。
【0026】また、本発明は、所定のネットワークを介
して第1の通信装置から送信されたリクエストメッセー
ジを受信して第2の通信装置に転送し、該リクエストメ
ッセージを受け付けた該第2の通信装置から返送された
レスポンスデータを含むレスポンスメッセージを受信し
て第1の通信装置に転送するデータ転送装置としてコン
ピュータを機能させるためのプログラムであって、前記
第1の通信装置から送信されたリクエストメッセージを
受信する機能と、受信されたリクエストメッセージが前
記第2の通信装置へ転送すべきものである場合に、該リ
クエストメッセージを前記第2の通信装置へ送信する機
能と、前記第2の通信装置から返送された前記レスポン
スデータを含む前記レスポンスメッセージを受信する機
能と、受信された前記レスポンスメッセージに含まれる
前記レスポンスデータに割り当てるべき識別子を、該レ
スポンスデータの内容に基づいて生成する機能と、少な
くとも前記レスポンスデータと前記識別子とを対応付け
て保持する保持機能と、前記第2の通信装置から前記レ
スポンスデータを含む前記レスポンスメッセージを受信
した場合には、前記第1の通信装置に対して、該レスポ
ンスデータを含むレスポンスメッセージを送信する代わ
りに、前記識別子を含む所定のURLへのリダイレクト
レスポンスメッセージを送信し、前記第1の通信装置か
らの前記識別子を含む所定のURLへのリクエストメッ
セージが受信された場合には、該URLに含まれる該識
別子に対応して前記保持機能に保持されている前記レス
ポンスデータを含むレスポンスメッセージを、前記第1
の通信装置に送信する機能とをコンピュータに実現させ
るためのプログラムである。
【0027】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。また、装置または方法に係る本発明
は、コンピュータに当該発明に相当する手順を実行させ
るための(あるいはコンピュータを当該発明に相当する
手段として機能させるための、あるいはコンピュータに
当該発明に相当する機能を実現させるための)プログラ
ムとしても成立し、該プログラムを記録したコンピュー
タ読取り可能な記録媒体としても成立する。
【0028】本発明によれば、第2の通信装置からレス
ポンスデータを含むレスポンスメッセージを受信した場
合に、該レスポンスメッセージに含まれる該レスポンス
データに割り当てるべき識別子を、該レスポンスデータ
の内容に基づいて生成し、少なくとも該レスポンスデー
タと該識別子とを対応付けて保持し、第1の通信装置に
対して、該レスポンスデータを含むレスポンスメッセー
ジを送信する代わりに、該識別子を含む所定のURLへ
のリダイレクトレスポンスメッセージを送信し、該第1
の通信装置からの該識別子を含む所定のURLへのリク
エストメッセージが受信された場合には、該URLに含
まれる該識別子に対応して保持されている該レスポンス
データを含むレスポンスメッセージを、該第1の通信装
置に送信する。該第1の通信装置が内蔵のキャッシュ
(例えば、ブラウザキャッシュ)を持っていれば、該第
1の通信装置へ該識別子を含む所定のURLへのリダイ
レクトレスポンスメッセージを送信し、そして、該第1
の通信装置からの該識別子を含む所定のURLへのリク
エストメッセージが受信された場合に、該URLに含ま
れる該識別子に対応して保持されている該レスポンスデ
ータを含むレスポンスメッセージを、該第1の通信装置
に送信すると、該レスポンスについては該内蔵のキャッ
シュに保持されるので、以降は、同一のレスポンスデー
タについては、データ中継装置から該第1の通信装置へ
該識別子を含む所定のURLへのリダイレクトレスポン
スメッセージを送信するだけで済むことになる。これに
よって、データ中継装置から第1の通信装置へのレスポ
ンスデータのデータ転送量を削減することができる。
【0029】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0030】図1に、本発明の一実施形態に係るキャッ
シュ・サーバ(データ転送装置)を適用するコンピュー
タ・ネットワーク・システムの構成例を示す。
【0031】この構成例では、企業のオフィス100内
にLAN41が敷設されており、所定のサービスを提供
するWebサーバ3がLAN41に接続されている。こ
のLAN41にはモデム42が接続されており、電話な
どの公衆回線43を利用してオフィス100の外部から
このLAN41に接続出来るようになっている。ユーザ
はモデム44を利用して外部から公衆回線43経由でL
AN100に接続することができ、このモデム44とW
ebブラウザ5を繋ぐことによって公衆回線43経由で
オフィス100内のWebサーバ3にアクセスできる。
【0032】なお、WEBブラウザ5は、ユーザが使用
する携帯型PC(図示せず)あるいは情報処理機能を有
する携帯電話端末(図示せず)等の装置(以下、それら
を総称してユーザ端末と呼ぶ)上で動作する。モデム4
4は、携帯型PC等のようなユーザ端末に外付けする場
合、携帯電話端末等のようなユーザ端末に内蔵される場
合など、種々の形態がある。また、WEBブラウザ5
は、汎用のものであっても、特定のサービスを利用する
ための専用のものであっても構わない。
【0033】ここで、ユーザは、Webサーバ3のサー
ビスを利用するために、Webブラウザ5を使用する。
すなわち、ユーザがWebブラウザ5を操作すると、W
EBブラウザ5からWebサーバ3へリクエストメッセ
ージ(以下、リクエスト)が転送され、Webサーバ3
からWEBブラウザ5へレスポンスメッセージ(以下、
レスポンス)が転送され、WEBブラウザ5にて受信し
たレスポンスのデータについて表示やその他の処理が行
われ、またはこのような一連の手順が適宜繰り返される
ことになる。
【0034】しかして、その際、このような利用形態に
おいて、従来の技術では、ユーザ端末に接続又は内蔵さ
れたモデム44とオフィス100内のモデム42とを接
続する公衆回線43の通信速度は、オフィス100内の
LAN41の通信速度よりも遅いため、公衆回線43が
性能上のボトルネックとなって通信遅延が発生し、ユー
ザがWebブラウザ5を使ってWebサーバ3により提
供されるデータやサービスにアクセスする際に、レスポ
ンスやスループットの低下するという問題が発生する。
【0035】そこで、本実施形態では、図2に示すよう
に、オフィス100内のLAN41とモデム42との間
にキャッシュ・サーバ1を設置し、該キャッシュ・サー
バ1によって、Webサーバ3と、キャッシュ・サーバ
1と、ユーザ端末上のWebブラウザ5(以下、Web
ブラウザ5と略す)の三者の間にて後述するデータ転送
方式を実現させ、これによって通信データ量を削減さ
せ、公衆回線43のボトルネックを解消させるようにす
る。
【0036】なお、本実施形態のキャッシュ・サーバ1
の設置方法としては、図2のようにオフィス100側の
モデム42とLAN41との間に配置する他にも、種々
のバリエーションが可能であり、例えば、図3のように
LAN41に直接接続する形で配置する方法、LAN4
1上に存在する所定の機能を有する他のノード(Web
サーバ3でもよい)に搭載する方法なども可能である。
【0037】本実施形態のキャッシュ・サーバ1、We
bサーバ3、Webブラウザ5は、いずれも計算機上で
ソフトウェア(キャッシュ・プログラム、サーバ・プロ
グラム、Webブラウザ・プログラム)を動作させる形
で実現することができる。この場合に、必要に応じて計
算機所望の機能を有するOSやドライバソフト、パケッ
ト通信用ソフト、暗号ソフト等といったソフトウェア、
あるいは通信インタフェース装置や外部記憶装置や入出
力装置等といったハードウェアが搭載あるいは接続され
る。また、この場合に、ユーザあるいは管理者からの情
報の入力やユーザへの情報の呈示等のために、グラフィ
カル・ユーザ・インタフェース(GUI)を用いると好
ましい。もちろん、キャッシュ・サーバ1、Webサー
バ3、Webブラウザ5は、いずれもその全部または一
部の機能をチップ化して所定の装置に組み込むことも可
能である。また、Webブラウザ5やWebサーバ3
は、従来と同様のもので構わない。
【0038】本実施形態では、Webブラウザ5、キャ
ッシュ・サーバ1、Webサーバ3は、HTTPの最新
バージョンであるHTTP1.1に従った通信を行う場
合を例にとって説明する。
【0039】なお、本実施形態では、Webブラウザ5
は、キャッシュ機構(以下、ブラウザキャッシュと呼
ぶ)を持つものとする。すなわち、Webサーバ3に要
求した情報やサービスの結果として返されるデータのう
ちでキャッシュ可能なものを、そのURLと対応させて
ブラウザキャッシュにキャッシュしておき、その後ユー
ザが同じURLの情報やサービスにアクセスしようとし
た際に、ブラウザキャッシュ内の応答データが古くなっ
ていないと判断できるならば、そのデータを使うものと
する。
【0040】ここで、本実施形態では、キャッシュ・サ
ーバ1がWebサーバ3から受信したレスポンスデータ
に対してその内容を識別する識別子を割り当てる。ここ
では、そのような識別子として、フィンガープリント
(FP)を用いる場合を例にとって説明する。
【0041】図4に例示するように、あるデータ(図4
の例ではコンテンツ)に対応するフィンガープリントの
値は、そのデータの内容に、あらかじめ決められた計算
方法(図4の例ではハッシュ関数)を適用することによ
って、生成される。フィンガープリントの値は、もとの
データに比べて、短い数値である。この数値は、可変長
でもよいが、処理の容易さの観点では、固定長の数値の
方が扱いやすい。
【0042】フィンガープリントを計算する方法として
は、良く知られている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に対してそれぞれ計算したハッ
シュ値が同じになる場合があるが、その確率は実用上無
視できるくらいに小さい)。
【0043】本実施形態において、概略的には、キャッ
シュ・サーバ1(の後述するデータ管理部)は、まず、
図5に示すように、Webブラウザ5へ転送すべきレス
ポンスのボディに入っているデータ本体(図中の61)
(または、該データを含むレスポンス全体)と、該デー
タから計算して求めたフィンガープリントの値(図中の
62)とを対応付けて、キャッシュ情報(図中の60)
として、記録・管理する。そして、キャッシュ・サーバ
1は、従来ならば(キャッシュ・サーバ1がなければ)
Webサーバ3側からWebブラウザ5側へデータ本体
が転送されることになる場合であっても、その代わり
に、まずは、対応するフィンガープリントと自身のホス
ト名とを含むリダイレクトレスポンスメッセージ(以
下、リダイレクトレスポンス)を作成してWebブラウ
ザ5へ転送する。ここで、該リダイレクトレスポンスを
受信したWebブラウザ5のブラウザキャッシュに該当
するデータがあれば、該ブラウザキャッシュ内のデータ
が利用可能であるので、キャッシュ・サーバ1からWe
bブラウザ5へは、データ本体を転送せずに(特に、図
2の場合には、LAN41よりも通信速度の遅い公衆回
線43を介してデータ本体を転送せずに)、済む。そし
て、あるWebページへの最初のアクセス時など、該リ
ダイレクトレスポンスを受信したWebブラウザ5のブ
ラウザキャッシュに該当するデータがない場合にだけ、
キャッシュ・サーバ1からWebブラウザ5へ該当する
データ本体を転送すればよい。
【0044】以下、本実施形態についてさらに詳しく説
明する。
【0045】図6に、本実施形態に係るキャッシュ・サ
ーバ1の構成例を示す。
【0046】この構成例では、キャッシュ・サーバ1
は、リクエスト受信部11、リクエスト保存部12、リ
クエスト判別部13、リクエスト送信部14、レスポン
ス受信部15、FP生成部16、データ保存部17、デ
ータ取出部18、データ管理部19、レスポンス生成部
20、レスポンス送信部21とを備えている。
【0047】これらキャッシュ・サーバ1の各構成部分
の概要は、以下の通りである。
【0048】リクエスト受信部11は、Webブラウザ
5からのリクエストを受信する。
【0049】リクエスト保存部12は、リクエスト受信
部11が受信したリクエストを保存する。
【0050】リクエスト判別部13は、リクエスト受信
部11から受け取ったリクエストに含まれるURLを参
照し、そのリクエストをWebサーバ3に転送すべき
か、あるいはリクエストを転送せずにレスポンスをキャ
ッシュ・サーバ1内部で生成してWebブラウザ5に送
信すべきかを判断する。そして、転送すべきと判断した
ときは、リクエスト送信部14にリクエストを送信すべ
きことを指令し、そうでないと判断したときは、データ
取出部18に保存されているレスポンスの取り出しを指
令するとともに、取出されたレスポンス(のボディに入
っているレスポンスデータ)をもとにしてデータWeb
ブラウザ5へ送信するレスポンスを生成すべきことを、
レスポンス生成部20に指令する。
【0051】リクエスト送信部14は、リクエスト判別
部13がリクエストをWebサーバ3に転送すべきと判
断した際に、リクエストをWebサーバ3に送信する。
【0052】レスポンス受信部15は、Webサーバ3
からのレスポンスを受信する。
【0053】FP生成部16は、レスポンス受信部15
が受信したレスポンスを入力として受け取り、そのレス
ポンスのボディに入っているレスポンスデータに対する
フィンガープリントを生成する。
【0054】データ保存部17は、レスポンス受信部1
5が受信したレスポンスと、FP生成部16が生成した
フィンガープリントを受け取り、それらを対応付けて保
存すべきことを、データ管理部19に指令する。
【0055】データ取出部18は、リクエスト判別部1
3の指令によって、フィンガープリントに対応するレス
ポンスを取出すことを、データ管理部19に指令する。
【0056】データ管理部19は、データ保存部17の
指令により、フィンガープリントとレスポンスを対応付
けて保存する。
【0057】また、データ管理部19は、データ取出部
18の指令により、フィンガープリントを入力として受
け取って、それに対応したレスポンスを出力する。
【0058】レスポンス生成部20は、レスポンス受信
部15が受信したレスポンスと、FP生成部16が生成
したフィンガープリントと、リクエスト保存部12が保
存していたリクエストを受け取って、Webブラウザ5
に送信するリダイレクトレスポンスを生成する。また、
レスポンス生成部20は、リクエスト判別部13の指令
と、データ管理部19から受け取ったレスポンスから、
Webブラウザ5に送信するレスポンスを生成する。
【0059】レスポンス送信部21は、レスポンス生成
部20から受け取ったレスポンスをWebブラウザ5に
送信する。
【0060】なお、データ管理部19には、フィンガー
プリントとレスポンスを対応付けて保存する代わりに、
フィンガープリントとレスポンスのレスポンスデータの
部分とを対応付けて保存するように構成することも可能
である。
【0061】図7に、キャッシュ・サーバ1がWebブ
ラウザ5からのリクエストを受信した場合における概略
的な処理手順の一例を示す。
【0062】Webブラウザ5からのリクエストを受信
し(ステップS101)、詳しくは後述するように、受
信したリクエストが、特別なリクエストかどうか調べ、
特別なリクエストでなければ(ステップS102)、受
信したリクエストを、Webサーバ3へ送信する(ステ
ップS104)。一方、特別なリクエストであれば(ス
テップS102)、該当するレスポンスデータを含むリ
クエストを作成して、Webブラウザ5へ返信する(ス
テップS103)。
【0063】図8に、キャッシュ・サーバ1がWebサ
ーバ3からのレスポンスを受信した場合における概略的
な処理手順の一例を示す。
【0064】Webサーバ3からのレスポンスを受信し
(ステップS121)、受信したレスポンスのレスポン
スデータに対するフィンガープリントを求め、該フィン
ガープリントとレスポンスとを対応付けて保存し(ステ
ップS122)、該フィンガープリントと自身のホスト
名を含むリダイレクトレスポンスを作成して、Webブ
ラウザ5へ返信する(ステップS)。
【0065】次に、本実施形態におけるWebブラウザ
5、キャッシュ・サーバ1およびWebサーバ3の三者
間でのデータ転送および処理の流れについて詳しく説明
する。
【0066】図9に、Webブラウザ5があるURLに
対するリクエストを初めて発し、これに対応するレスポ
ンスを取得する場合の処理シーケンスの例を示す。
【0067】以下、処理の各段階を順番に説明する。
【0068】まず、ユーザの操作等を契機としてWeb
ブラウザ5がリクエストを送信する(ステップS1)。
すると、該リクエストは、公衆網43を転送された後
に、キャッシュ・サーバ1にて受信される(ステップS
1)。先に説明したように、HTTPのリクエストは、
リクエストヘッダとリクエストボディとから構成され、
リクエストヘッダには、メソッドとURLが含まれる。
【0069】ここでは、具体的な例として、メソッド
は、GETメソッドであり、URLは、 http://www.office.com/ind
ex.html であったとする。なお、GETメソッドの場合、リクエ
ストボディは空であるのが通常であるので、以下の説明
でもリクエストボディは空であるとする。
【0070】Webブラウザ5からのリクエストを受信
したキャッシュ・サーバ1では、図6のリクエスト受信
部11がこのリクエストを受け取り、その内容をリクエ
スト判別部13に渡すとともに、リクエスト保存部12
にも渡してリクエストの内容を保存させる。
【0071】リクエスト判別部13は、リクエストヘッ
ダのURLをチェックし、該URLの内容に基づいて、
該リクエストをWebサーバ3に転送するか否かを決定
する(ステップS2)。なお、詳しくは後述するよう
に、特定のURLへのリクエストに対しては、キャッシ
ュ・サーバ1は、それをWebサーバ3に転送せず、内
部でレスポンスを生成してWebブラウザ5に送信し、
特定のURL以外のURLへのリクエストに対しては、
それをWebサーバ3に転送するものとする。ここで
は、リクエストに含まれるURLは、 http://www.office.com/ind
ex.html であり、これは、特定のURLに該当しないので、リク
エスト判別部13は、該リクエストをWebサーバ3に
転送すると決定し、該リクエストの内容をリクエスト送
信部14に渡する。そして、リクエスト送信部14は、
該リクエストをWebサーバ3に転送する(ステップS
3)。
【0072】Webサーバ3は、このリクエストを受け
取ると(ステップS3)、当該リクエストに応じた処理
を行う。そして、その処理の結果得られるデータをレス
ポンスに載せて送信する(ステップS4)。すると、該
レスポンスは、キャッシュ・サーバ1にて受信される
(ステップS4)。
【0073】ここで、今回のリクエストの場合、Web
サーバ3上にあるHTMLドキュメントのデータを要求
している。ここでは、そのHTMLドキュメントは、あ
らかじめ作成された状態でWebサーバ3上にファイル
として保存されているものとする。この場合、Webサ
ーバ3は、ファイルからデータを読み出し、ステータス
コード“200”を含むレスポンスヘッダと、ファイル
から読み出したHTMLドキュメントのデータからなる
レスポンスボディとから構成されるレスポンスを、キャ
ッシュ・サーバ1に送信することになる。
【0074】キャッシュ・サーバ1は、レスポンス受信
部15がWebサーバ3からのレスポンスを受け取る
と、そのレスポンスをFP生成部16に送って、レスポ
ンスの内容を識別するためのフィンガープリントを生成
する(ステップS5)。ここでは、例えば、フィンガー
プリントの値が、 “01234567890abcdefghijklm
nopqrstu” であったものとする。
【0075】次に、レスポンス受信部15が受信したレ
スポンスと、FP生成部16が生成したフィンガープリ
ントは、データ保存部17に渡される。データ保存部1
7は、両者を対応付けて保存するようデータ管理部19
に指令する。データ管理部19は、両者を対応付けて保
存する(ステップS6)。
【0076】今回はフィンガープリントの値が、 “01234567890abcdefghijklm
nopqrstu” であったので、この値とレスポンス全体の内容とが対応
付けられて保存される。
【0077】次に、キャッシュ・サーバ1は、レスポン
ス生成部20でリダイレクトレスポンスを生成する(ス
テップS7)。
【0078】先に説明したように、レスポンスのステー
タスコードの最初の一桁が3の場合、それはリダイレク
ションを表す。ここでは、ステータスコード“302”
を返すこととする。
【0079】また、Locationヘッダに指定する
URLには、 ・キャッシュ・サーバのホスト名 ・Webサーバからのレスポンスに対するフィンガープ
リントの値 ・Webブラウザからのリクエストに含まれていたUR
Lのsuffix の3つから構成された、 http://(ホスト名)/(フィンカ゛ーフ゜リントの値).(suffix) というURLを指定するものとする。
【0080】キャッシュ・サーバ1のホスト名があらか
じめ決まっているものであるとすると、Webサーバ3
からのレスポンスに対するフィンガープリントの値は、
FP生成部16が生成しており、Webブラウザ5から
のリクエストに含まれていたURLのsuffixは、
リクエスト保存部12が保存していたリクエストの中か
ら取出すことができるので、レスポンス生成部20は、
FP生成部16とリクエスト保存部12から情報を受け
取ることによって、このURLを生成できることになる
(従って、リダイレクトレスポンスを生成できることに
なる)。
【0081】ここでは、具体的な例として、キャッシュ
・サーバ1のホスト名を、 cache.office.com とすると、このURLは、 http://cache.office.com/01234567890abcdefghijklmno
pqrstu.html となり、生成されるレスポンスのレスポンスヘッダは、 302 Found Location: http://cache.office.com/01234567890abcde
fghijklmnopqrstu.html のようになる。
【0082】そして、レスポンス送信部21は、生成さ
れたリダイレクトレスポンスをWebブラウザ5に送信
する(ステップS8)。
【0083】Webブラウザ5は、ステータスコード
“302”を含むレスポンスを受信すると(ステップS
8)。
【0084】ここで、受信したリダイレクトレスポンス
にて指定されたURLに該当するレスポンスがキャッシ
ュされているかどうか、Webブラウザ5のブラウザキ
ャッシュを検索し(ステップS9)、それがキャッシュ
されていれば、該ブラウザキャッシュから該レスポンス
のデータを取得して利用することができるが、今回は、
(あるURLに対するリクエストを初めて発した場合で
あるので)Webブラウザ5のブラウザキャッシュに該
当するレスポンスがないものとすると、実際に、Loc
ationに指定されたURLに対するリクエストを再
度送信することになる(ステップS10)。
【0085】この場合、最初に送信したリクエストのメ
ソッドがGETであるので、Webブラウザ5は、メソ
ッドに同じGETメソッドを、そしてURLには先ほど
受信したレスポンスのLocationヘッダに指定さ
れていた、 http://cache.office.com/01234567890abcdefghijklmno
pqrstu.html を指定してリクエストをキャッシュ・サーバ1に送信す
る。
【0086】なお、HTTP1.1の規約では、リクエ
ストに対してステータスコード“302”を含むレスポ
ンスが帰ってきた場合は、ExpireヘッダやCac
he−Controlヘッダによってキャッシュ可能な
ことが示されている場合を除き、そのステータスコード
“302”を含むレスポンスをキャッシュしてはいけな
いことになっている。ここでは、キャッシュ・サーバ1
は、レスポンスにそのようなキャッシュ可能を示すヘッ
ダを付加しておらず、従って、ブラウザ5のブラウザキ
ャッシュは、このレスポンスをキャッシュしなかったも
のとする。
【0087】キャッシュ・サーバ1では、リクエスト受
信部11がこのリクエストを受け取り(ステップS1
0)、その内容をリクエスト判別部13に渡すととも
に、リクエスト保存部12にも渡してリクエストの内容
を保存させる。
【0088】リクエスト判別部13は、リクエストヘッ
ダのURLをチェックし、このリクエストをWebサー
バ3に転送するか否かを決定する(ステップS11)。
【0089】今回のリクエストに含まれるURLは、 http://cache.office.com/01234567890abcdefghijklmno
pqrstu.html であるが、リクエスト判別部13は、このようなURL
へのリクエストを、Webサーバ3へは転送せずに、特
別なものとして通常のリクエストとは別の処理を行う。
【0090】なお、リクエスト判別部13が受け取った
リクエストを、Webサーバ3に転送するか、それとも
特別扱いするかについての判断は、例えば、URLのホ
スト部分を抽出し、それがあらかじめ定められたキャッ
シュ・サーバ1のホスト名(この場合は、cache.
office.com)と一致するかを調べることによ
って可能である。
【0091】上記のように、リクエストをWebサーバ
3へは転送しないすなわち特別扱いすると判定される
と、具体的には、このリクエストはWebサーバ3に転
送せず、URLの中に含まれるフィンガープリントを抽
出し、データ取出部18に、このフィンガープリントに
対応するレスポンスの取出しを指令し、データ取出部1
8は、このフィンガープリントに対応するレスポンスを
データ管理部19から取出す(ステップS12)。
【0092】そして、データ管理部19から取出された
レスポンスがレスポンス生成部20に渡され、保存され
ていたレスポンスと同じボディ(レスポンスデータ)を
持つレスポンス、すなわちWebサーバ3上にあったH
TMLドキュメントと同じ内容をボディに持つレスポン
スが生成される(ステップS13)。
【0093】生成されたレスポンスは、レスポンス送信
部21によってWebブラウザ5に送信される(ステッ
プS14)。
【0094】このようにして、データ本体を含むレスポ
ンスが、Webブラウザ5によって受信される(ステッ
プS14)。
【0095】しかして、このWebブラウザ5は、ブラ
ウザキャッシュを持つので、受信されたレスポンスは、
該ブラウザキャッシュに保存されることになる(ステッ
プS15)。
【0096】ブラウザキャッシュへのキャッシュの仕方
には種々の方法が考えられるが、例えば、「リクエスト
に含まれていたURL」と「そのリクエストに対するレ
スポンスの内容」とを対応付けて保存する。今回のこの
レスポンスに対応するのは、Webサーバ3からのリダ
イレクトレスポンスに対応するために発せられた、 http://cache.office.com/01234567890abcdefghijklmno
pqrstu.html へのGETリクエストである。従って、例えば、このU
RLとレスポンスの内容とが対応付けられて、ブラウザ
キャッシュに保存されることになる。
【0097】続いて、同じWebブラウザ5から、 http://www.office.com/index.html に対するGETのリクエストが再度発せられた場合につ
いて説明する。
【0098】図10に、この場合の処理シーケンスの例
を示す。
【0099】これを図9のケース(リクエストを初めて
発したケース)と比較した場合、図10のステップS2
1の「リクエストの送信」からステップS28「リダイ
レクトレスポンスの送信」までは図9のステップS1〜
ステップS8と全く同じ処理の流れであり、さらに図1
0のステップS24で送信されるレスポンスのボディに
含まれるデータの内容、ステップS25で生成されるF
Pの値、ステップS27で生成されステップS28で送
信されるリダイレクトレスポンスのLocationヘ
ッダに含まれるURLも全て図9のステップS24、ス
テップS25、ステップS27、ステップS28の場合
とそれぞれ同一である。すなわち、Webブラウザ5が
リダイレクトレスポンスを受け取るまでは、初めてリク
エストを発する場合と同じ手順が行われる。
【0100】しかし、Webブラウザ5がリダイレクト
レスポンスを受信した以降の処理は図9のケース(リク
エストを初めて発したケース)とは異なったものとな
る。
【0101】すなわち、リダイレクトレスポンスを受け
取った結果、Webブラウザ5は、 http://cache.office.com/01234567890abcdefghijklmno
pqrstu.html のURLに対するGETを実行しようとする。ところ
が、最初のときとは違って、Webブラウザ5のブラウ
ザキャッシュには、このURLに対するGETを実行し
た結果が保存されている。
【0102】従って、今回は、Webブラウザ5が、そ
のブラウザキャッシュを検索すると(ステップS2
9)、保存しておいたデータが得られるので、(指定さ
れたURLへのGETリクエストを発することなく)こ
の保存しておいたデータをGETの結果として利用する
(ステップS30)。このため、処理の流れは、これで
終了する。
【0103】ここで、あらためて図9と図10の処理の
流れを比較してみると、図9ではステップS14におい
て、HTMLドキュメントがレスポンスのボディとし
て、キャッシュ・サーバ1とWebブラウザ5との間を
転送されているのに対して、図10ではHTMLドキュ
メントはキャッシュ・サーバ1とWebブラウザ5との
間を転送されていない。すなわち、本実施形態によれ
ば、2回目以降のデータ転送が不要とるのである。これ
は、両者の間に存在するボトルネックすなわち図2の場
合における(LAN41よりも通信速度の遅い)公衆回
線43を流れるデータ量が削減されることを意味してお
り、つまり図1を参照しながら説明した従来の技術によ
るデータ転送のボトルネックが解消されることを意味し
ているのである。
【0104】ところで、以上の説明においては、Web
ブラウザ5が要求したURLのサービスは、あらかじめ
作成された状態でWebサーバ3上にファイルとして保
存されている「静的」なものであるとして説明してき
た。以下では、URLのサービスが「動的」なものであ
る場合について説明する。
【0105】ここでは、具体的な例として、Webサー
バ3上に一つのプログラムが置かれており、ユーザはこ
のプログラムが提供するサービスに、 http://www.office.com/program.cgi というURLに対するGETリクエストを発行すること
によってアクセスできるものとする。そして、このUR
Lへのリクエストに対しては、状況によって2種類の異
なるデータがレスポンスとして送信されるものとする。
以下の説明では、2種類のデータをそれぞれData−
A、Data−Bと表し、それぞれのデータに対応する
フィンガープリントの値をFP−A、FP−Bと表すも
のとする。
【0106】まず、ユーザが上記のURLのサービスに
初めてリクエストを発し、Webサーバ3は、レスポン
スとしてData−Aを返したとする。キャッシュ・サ
ーバ1のFP生成部16が生成するフィンガープリント
の値はFP−Aとなるので、(ここでは、データ管理部
19にはフィンガープリントの値とレスポンスデータと
が対応付けて保存されるとすると)データ管理部19に
は、(FP−A, Data−A)という対応付けでフ
ィンガープリントとレスポンスが保存される。また、レ
スポンス生成部20は、リダイレクトレスポンスを生成
するが、そのLocationヘッダには、 http://cache.office.com/FP-A.cgi というURLが指定される。
【0107】Webブラウザ5は、リダイレクトレスポ
ンスを受け取ると、上記のURLに対するGETリクエ
ストを実行しようとするが、その前に自らのブラウザキ
ャッシュに、このURLへのGETに対するレスポンス
が既にキャッシュされていないか確かめる。しかし、元
々のURLにアクセスしたのが初めてであるから、レス
ポンスは、キャッシュされていない。従って、リクエス
トをキャッシュ・サーバ1に送信する。
【0108】キャッシュ・サーバ1は、上記のURLへ
のリクエストを受け取ると、該リクエストに含まれるフ
ィンガープリントの値である“FP−A”に対応するレ
スポンス“Data−A”を取出し、それをレスポンス
としてWebブラウザ5に送信する。Webブラウザ5
は、このレスポンスを、 (http://cache.office.com/FP-A.cgi, Data-A) という対応付けでブラウザキャッシュに保存する。
【0109】その後、同じWebブラウザ5から、 http://www.office.com/program.cgi へのGETリクエストが発せられた場合を考えてみる。
このリクエストは、キャッシュ・サーバ1からWebサ
ーバ3へと転送され、それに対してWebサーバ3は、
レスポンスを返すが、このレスポンスの内容は状況に応
じてData−AであったりData−Bであったりす
る。以下、それぞれの場合について処理の流れを説明す
る。
【0110】まず、Webサーバ3がData−Aをレ
スポンスとして返した場合は、キャッシュ・サーバ1か
らWebブラウザ5にリダイレクトレスポンスが送信さ
れるまで最初と全く同じことの繰り返しになる。すなわ
ち、リダイレクトレスポンスのLocationヘッダ
には、 http://cache.office.com/FP-A.cgi が指定されている。
【0111】そして、Webブラウザ5は、このURL
に対するGETリクエストを実行しようとするが、最初
のリクエストでWebブラウザ5のブラウザキャッシュ
には、 (http://cache.office.com/FP-A.cgi, Data-A) という対応付けのエントリが生成されている。
【0112】そこで、Webブラウザ5は、GETリク
エストを発する代りに、Data−Aをそのリクエスト
に対するレスポンスとして利用する。
【0113】一方、Webサーバ3がData−Bをレ
スポンスとして返した場合は、キャッシュ・サーバ1の
データ管理部19には、(FP−B, Data−B)
というエントリが作成され、またキャッシュ・サーバ1
からWebブラウザ5に送信されるリダイレクトレスポ
ンスのLocationヘッダには、 http://cache.office.com/FP-B.cgi というURLが指定される。
【0114】Webブラウザ5は、このURLに対する
GETリクエストをハッスル前にブラウザキャッシュを
確認するが、上記のURLに対応するエントリは存在し
ない。そのため、上記URLへのGETリクエストが実
際にキャッシュ・サーバ1へと送信され、その結果、キ
ャッシュ・サーバ1に保存されていたData−Bがレ
スポンスとして送信される。
【0115】以上の結果を見ると、2回目のアクセスで
キャッシュ・サーバ1がData−Aをレスポンスとし
て返した場合には、1回目のアクセスでWebブラウザ
5のブラウザキャッシュに保存されていたData−A
が再利用され、一方Data−Bをレスポンスとして返
した場合には、キャッシュ・サーバ1からData−B
がレスポンスとして送信されている。すなわち、本実施
形態によれば、ブラウザキャッシュのような、URLと
レスポンスとを対応付けて保存するキャッシュではキャ
ッシュできなかった動的コンテンツでも、問題なくキャ
ッシュできるようになる。
【0116】さて、これまでの説明では、1つのWeb
サーバ3のみについて着目して説明してきた。しかし、
実際のWorld Wide Webシステムでは、W
ebサーバは複数存在し、それぞれのWebサーバがそ
れぞれのサービスを提供している、という状況が一般的
である。
【0117】そこで、以下では、1つのキャッシュ・サ
ーバ1が対象とするWebサーバが複数存在している場
合について考えてみる。
【0118】まず、図11に示すように、LAN41上
にWebサーバ3が2つ存在する場合を例にとって、従
来の技術の問題点について説明する。
【0119】図11に示すように2つのWebサーバが
存在する場合、その両方に同じデータが置かれていると
いうことは、よくあることである。例えば、画面の画像
に同じ画像データを使っている、といったような場合で
ある。この場合、同じ内容のデータが2つの異なるUR
Lで提供されていることになる。例えば、図中、#1で
示すWebサーバ3のホスト名を“www1.office.co
m”、図中、#2で示すWebサーバ3のホスト名を“w
ww2.office.com”とすると、各Webサーバ3上にある
画像データにアクセスするためのURLは、それぞれ、 http://www1.office.com/image-1.gif http://www2.office.com/image-2.gif のようになる。
【0120】このような状況において、Webブラウザ
が上記の2つのURLへのGETリクエストを順番に発
したものとする。従来の技術によれば、リクエストは、
直接、Webサーバ3に送信され、レスポンスは、直
接、Webブラウザ5に送信され、そして、リクエスト
のURLとレスポンスの内容とが対応付けられてブラウ
ザキャッシュに保存される。上記の2つのURLにアク
セスしたときのレスポンスの内容をそれぞれData−
1、Data−2とすると、ブラウザキャッシュには、 (http://www1.office.com/image-1.gif, Data-1) (http://www2.office.com/image-2.gif, Data-2) の2つのエントリが生成される。
【0121】ところが、2つのURLに置かれている画
像データは同じものであるから、Data−1とDat
a−2とは等しい。従って、Webブラウザ5のブラウ
ザキャッシュには、 (http://www1.office.com/image-1.gif, Data-1) (http://www2.office.com/image-2.gif, Data-1) の2つのエントリが存在することになるが、これは同一
のデータData−1が重複して保存されていること、
あるいは既に同一のデータがキャッシュされているにも
関わらずうまく再利用されていないことを示していると
言える。
【0122】次に、図12のように、図11のLAN4
1に本実施形態のキャッシュ・サーバ1を設置した場合
について考えてみる。なお、前述と同様に、キャッシュ
・サーバ1の設置方法としては、種々のバリエーション
が可能であり、例えば、図3のようにLAN41に直接
接続する形で配置する方法、LAN41上に存在する所
定の機能を有する他のノード(いずれかのWebサーバ
3でもよい)に搭載する方法なども可能である。
【0123】以下、図12において、上記の2つのUR
Lに対するGETリクエストを順番に発した場合の処理
の流れについて説明する。
【0124】まず、“http://www1.office.com/image-
1.gif”へのリクエストを初めて発したものとする。W
ebブラウザ5からキャッシュ・サーバ1に送信された
リクエストは、キャッシュ・サーバ1から“www1.offic
e.com”なるWebサーバ3に転送される。
【0125】Webサーバ3は、レスポンスとして“D
ata−1”をキャッシュ・サーバ1に返す。キャッシ
ュ・サーバ1のFP生成部16が生成するフィンガープ
リントをFP−1とすると、キャッシュ・サーバ1のデ
ータ管理部19には、(FP−1, Data−1)と
いうエントリが生成される。
【0126】そして、レスポンス生成部20が、Loc
ationヘッダに、 http://cache.office.com/FP-1.gif なるURLを指定したリダイレクトレスポンスを生成
し、レスポンス送信部21がこのリダイレクトレスポン
スをWebブラウザ5に送信する。
【0127】Webブラウザ5は、このURLに対する
GETリクエストを発する前に、ブラウザキャッシュ
に、このURLに対応するエントリが存在するか確認す
る。今回は最初のアクセスなのでエントリは存在せず、
従ってGETリクエストがキャッシュ・サーバ1に送信
される。
【0128】キャッシュ・サーバ1は、FP−1に対応
するレスポンスであるData−1を取出し、それをレ
スポンスとしてWebブラウザ5に送信する。
【0129】Webブラウザ5は、レスポンスを受け取
ると、内蔵ブラウザの中に、 (http://cache.office.com/FP-1.gif, Data-1) というエントリを作成する。
【0130】続いて、“http://www2.office.com/image
-2.gif”へのリクエストを初めて発したものとする。今
度は、リクエストは、“www2.office.com”なるWeb
サーバ3に転送される。
【0131】2つのURLに置かれている画像データの
内容は同一なので、Webサーバ3は、レスポンスとし
てData−1を返す。従って、キャッシュ・サーバ1
のFP生成部16は、このレスポンスに対するフィンガ
ープリントとしてFP−1を生成し、レスポンス生成部
20が生成するリダイレクトレスポンスのLocati
onヘッダには、 http://cache.office.com/FP-1.gif というURLが指定されることになる。
【0132】このリダイレクトレスポンスを受け取った
Webブラウザ5は、このURLへのGETリクエスト
を実行する前に、ブラウザキャッシュに、このURLに
対応するエントリが存在するか確認する。すると、先ほ
ど“http://www1.office.com/image-1.gif”へのGET
リクエストを発した際に、ブラウザキャッシュには、 (http://cache.office.com/FP-1.gif, Data-1) というエントリが生成されている。従って、Webブラ
ウザ5は、リクエストを発する代りに、ブラウザキャッ
シュに保存されていた“Data−1”をレスポンスと
して使用する。
【0133】以上の結果を見ると、1回目のリクエスト
のレスポンスとして転送されブラウザのブラウザキャッ
シュに保存されたデータが、2回目で違うURLへのリ
クエストであったにも関わらず再利用されている。すな
わち、異なるURLで内容の等しいデータが提供されて
いるような状況において、従来の技術によるのであれ
ば、ブラウザキャッシュのような、URLとレスポンス
とを対応付づけて保存するキャッシュではうまく取り扱
えなかった場合であっても、本実施形態によれば有効に
キャッシュできるようになる。
【0134】ところで、キャッシュ・サーバ1のデータ
管理部19においては、通常、キャッシュ情報の保存の
ための容量に上限があるため、所定のアルゴリズムに従
いガーベジコレクションを行って、例えば古いデータや
使いそうに無いデータを消して行くようにしてもよい。
【0135】ただし、この場合に、例えば、キャッシュ
・サーバ1において、フィンガープリントと自身のホス
ト名とを含むリダイレクトレスポンスをWebブラウザ
5へ送信した直後に、これに該当するフィンガープリン
トとデータの組をデータ管理部19から削除すると、キ
ャッシュ・サーバ1から上記のリダイレクトレスポンス
を受信したWebブラウザ5があらためてキャッシュ・
サーバ1へリクエストを送信しても、該キャッシュ・サ
ーバ1のデータ管理部19には該当するフィンガープリ
ントとデータの組が存在しないことになる。したがっ
て、どのようなアルゴリズムに従うにしても、キャッシ
ュ・サーバ1からWebブラウザ5へリダイレクトレス
ポンスを送信してから少なくとも一定の時間が経過する
までは、該当するフィンガープリントとデータの組を削
除しないようにするのが好ましい。
【0136】また、あるレスポンスのデータAに対する
フィンガープリントと、あるレスポンスのデータB(デ
ータAとは異なるものとする)に対するフィンガープリ
ントとが、非常に低い確率で一致することがあり得る
が、これに起因するエラーを回避する必要がある場合に
は、すべてのレスポンス(あるいは、例えばURLで規
定される重要なデータに係るレスポンス)について、キ
ャッシュ・サーバ1においてレスポンスを受信するごと
に、受信したレスポンスのデータに対応するフィンガー
プリントと対応付けてデータ管理部19に保存されてい
るデータがあれば、そのデータと、受信したレスポンス
のデータとを、比較して、データの不一致が発生してい
ないか、確認するようにしてもよい。もしデータの不一
致が発生している場合には、例えば次に例示するいずれ
かの方法で対処すればよい。・そのフィンガープリント
は以降使用禁止とする(そのフィンガープリントを与え
るデータは以後キャッシュされないことになる)。・先
に登録されているフィンガープリント/データを優先す
る(登録中のフィンガープリントと同じ値のフィンガー
プリントを与える他のデータは、その登録中はキャッシ
ュされないことになる)。・現在登録対象となっている
フィンガープリント/データを優先する(登録中のフィ
ンガープリント/データは、同じ値のフィンガープリン
トを与える他のデータによって次々と更新されていくこ
とになる)。
【0137】なお、以上では、LANに対する通信のボ
トルネットとなる公衆回線及びモデムを介して、企業オ
フィス内のLAN上のWebサーバとWebブラウザ
(ユーザ端末)との間で通信を行う場合を例にとって説
明してきたが、もちろん、本発明は、企業オフィス以外
のLANにも適用可能であるし、Webサーバ以外のデ
ータを提供するサーバ等の装置にも適用可能であるし、
Webブラウザ以外のデータの提供のサービスを受ける
クライアント等の装置にも適用可能であるし、どのよう
な公衆回線でも適用可能であるし、モデム以外の通信装
置でも適用可能である。
【0138】なお、以上の各機能は、ソフトウェアとし
て実現可能である。また、本実施形態は、コンピュータ
に所定の手段を実行させるための(あるいはコンピュー
タを所定の手段として機能させるための、あるいはコン
ピュータに所定の機能を実現させるための)プログラム
として実施することもでき、該プログラムを記録したコ
ンピュータ読取り可能な記録媒体として実施することも
できる。
【0139】なお、この発明の実施の形態で例示した構
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。また、この
発明の実施の形態で例示した各種構成部分についての各
種バリエーションは、適宜組み合わせて実施することが
可能である。また、この発明の実施の形態は、個別装置
としての発明、関連を持つ2以上の装置についての発
明、システム全体としての発明、個別装置内部の構成部
分についての発明、またはそれらに対応する方法の発明
等、種々の観点、段階、概念またはカテゴリに係る発明
を包含・内在するものである。従って、この発明の実施
の形態に開示した内容からは、例示した構成に限定され
ることなく発明を抽出することができるものである。
【0140】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0141】
【発明の効果】本発明によれば、Webブラウザ等を搭
載した通信装置とデータ転送装置との間を接続するネッ
トワークの負荷をより軽減することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るキャッシュ・サーバ
を設置する対象となるコンピュータ・ネットワーク・シ
ステムの構成例を示す図
【図2】同実施形態に係るキャッシュ・サーバを設置し
たコンピュータ・ネットワーク・システムの構成例を示
す図
【図3】同実施形態に係るキャッシュ・サーバを設置し
たコンピュータ・ネットワーク・システムの構成例を示
す図
【図4】同実施形態で使用するフィンガープリントにつ
いて説明するための図
【図5】同実施形態で使用するフィンガープリントにつ
いて説明するための図
【図6】同実施形態に係るキャッシュ・サーバの構成例
を示す図
【図7】同実施形態に係るキャッシュ・サーバがWeb
ブラウザからのリクエストを受信した場合における処理
手順の一例を示すフローチャート
【図8】同実施形態に係るキャッシュ・サーバがWeb
サーバからのレスポンスを受信した場合における処理手
順の一例を示すフローチャート
【図9】あるURLへのリクエストを初めて発したとき
の処理の流れを表す図
【図10】同一URLへのリクエストを再度発したとき
の処理の流れを表す図
【図11】同実施形態に係るキャッシュ・サーバを設置
する対象となるコンピュータ・ネットワーク・システム
の他の構成例を示す図
【図12】同実施形態に係るキャッシュ・サーバを設置
したコンピュータ・ネットワーク・システムの他の構成
例を示す図
【符号の説明】
1…キャッシュ・サーバ 3…Webサーバ 5…Webブラウザ 11…リクエスト受信部 12…リクエスト保存部 13…リクエスト判別部 14…リクエスト送信部 15…レスポンス受信部 16…FP生成部 17…データ保存部 18…データ取出部 19…データ管理部 20…レスポンス生成部 21…レスポンス送信部 41…LAN 42…モデム 43…公衆回線 44…モデム
フロントページの続き (72)発明者 吉井 謙一郎 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 庄野 篤司 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 佐藤 英昭 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 關 俊文 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5B082 HA02 HA08 5K034 AA07 DD01 HH01 HH02 HH11 MM39 NN12 NN26

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】第1の通信装置から送信されたリクエスト
    メッセージを受信する第1の受信手段と、 受信されたリクエストメッセージが第2の通信装置へ転
    送すべきものである場合に、該リクエストメッセージを
    前記第2の通信装置へ送信する第1の送信手段と、 前記第2の通信装置から返送された前記レスポンスデー
    タを含む前記レスポンスメッセージを受信する第2の受
    信手段と、 受信された前記レスポンスメッセージに含まれる前記レ
    スポンスデータに割り当てるべき識別子を、該レスポン
    スデータの内容に基づいて生成する手段と、 少なくとも前記レスポンスデータと前記識別子とを対応
    付けて保持する保持手段と、 前記第2の通信装置から前記レスポンスデータを含む前
    記レスポンスメッセージを受信した場合に、前記第1の
    通信装置に対して、該レスポンスデータを含むレスポン
    スメッセージを送信する代わりに、前記識別子を含む所
    定のURLへのリダイレクトレスポンスメッセージを送
    信する第2の送信手段とを備え、 前記第2の送信手段は、前記第1の受信手段を介して前
    記第1の通信装置からの前記識別子を含む所定のURL
    へのリクエストメッセージが受信された場合には、該U
    RLに含まれる該識別子に対応して前記保持手段に保持
    されている前記レスポンスデータを含むレスポンスメッ
    セージを、前記第1の通信装置に送信することを特徴と
    するデータ転送装置。
  2. 【請求項2】前記第1の受信手段により前記第1の通信
    装置から受信された前記リクエストメッセージが前記第
    2の通信装置へ転送すべきものであるか否かを判別する
    判別手段を更に備えたことを特徴とする請求項1に記載
    のデータ転送装置。
  3. 【請求項3】前記判別手段は、前記第1の通信装置から
    受信された前記リクエストメッセージが前記識別子を含
    む所定のURLへのリクエストメッセージである場合
    に、該リクエストメッセージが前記第2の通信装置へ転
    送すべきものでないと判断し、それ以外の場合に、該リ
    クエストメッセージが前記第2の通信装置へ転送すべき
    ものであると判断することを特徴とする請求項2に記載
    のデータ転送装置。
  4. 【請求項4】前記URLは、自データ転送装置のホスト
    名と、前記レスポンスデータに割り当てられた前記識別
    子とを用いて生成されたものであることを特徴とする請
    求項1ないし3のいずれか1項に記載のデータ転送装
    置。
  5. 【請求項5】前記識別子は、所定の方法によって前記デ
    ータを圧縮して得た値であることを特徴とする請求項1
    ないし3のいずれか1項に記載のデータ転送装置。
  6. 【請求項6】前記識別子は、前記データに所定のハッシ
    ュ関数を適用して得られた値であることを特徴とする請
    求項5に記載のデータ転送装置。
  7. 【請求項7】前記データ転送装置は、ローカルエリアネ
    ットワークに接続され、 前記ローカルエリアネットワークには、前記データ転送
    装置が対象とする1又は複数の前記第2の通信装置が接
    続されることを特徴とする請求項1ないし6のいずれか
    1項に記載のデータ転送装置。
  8. 【請求項8】前記データ転送装置は、ローカルエリアネ
    ットワークに接続され、 前記所定のネットワークは、前記ローカルエリアネット
    ワークの持つ通信速度よりも遅い通信速度を持つもので
    あることを特徴とする請求項1ないし7のいずれか1項
    に記載のデータ転送装置。
  9. 【請求項9】前記第1の通信装置はWebブラウザを起
    動可能なユーザ端末であり、前記第2の通信装置はWe
    bサーバであることを特徴とする請求項1ないし8のい
    ずれか1項に記載のデータ転送装置。
  10. 【請求項10】前記第1の通信装置は、通信装置を内蔵
    した若しくは外付け可能な携帯型PC又は情報処理機能
    を有する携帯電話端末であることを特徴とする請求項1
    ないし9のいずれか1項に記載のデータ転送装置。
  11. 【請求項11】所定のネットワークを介して第1の通信
    装置から送信されたリクエストメッセージを受信して第
    2の通信装置に転送し、該リクエストメッセージを受け
    付けた該第2の通信装置から返送されたレスポンスデー
    タを含むレスポンスメッセージを受信して第1の通信装
    置に転送するデータ転送装置におけるデータ転送方法で
    あって、 前記第1の通信装置から送信されたリクエストメッセー
    ジを受信し、 受信されたリクエストメッセージを前記第2の通信装置
    へ送信し、 前記第2の通信装置から返送された前記レスポンスデー
    タを含む前記レスポンスメッセージを受信し、 受信された前記レスポンスメッセージに含まれる前記レ
    スポンスデータに割り当てるべき識別子を、該レスポン
    スデータの内容に基づいて生成し、 少なくとも前記レスポンスデータと前記識別子とを対応
    付けて保持手段に保持し、 前記第2の通信装置から前記レスポンスデータを含む前
    記レスポンスメッセージを受信した場合に、前記第1の
    通信装置に対して、該レスポンスデータを含むレスポン
    スメッセージを送信する代わりに、前記識別子を含む所
    定のURLへのリダイレクトレスポンスメッセージを送
    信し、 前記第1の通信装置から送信された前記識別子を含む所
    定のURLへのリクエストメッセージを受信し、 受信された前記リクエストメッセージの前記URLに含
    まれる前記識別子に対応して前記保持手段に保持されて
    いる前記レスポンスデータを含むレスポンスメッセージ
    を、前記第1の通信装置に送信することを特徴とするデ
    ータ転送方法。
  12. 【請求項12】所定のネットワークを介して第1の通信
    装置から送信されたリクエストメッセージを受信して第
    2の通信装置に転送し、該リクエストメッセージを受け
    付けた該第2の通信装置から返送されたレスポンスデー
    タを含むレスポンスメッセージを受信して第1の通信装
    置に転送するデータ転送装置としてコンピュータを機能
    させるためのプログラムであって、 前記第1の通信装置から送信されたリクエストメッセー
    ジを受信する機能と、 受信されたリクエストメッセージが前記第2の通信装置
    へ転送すべきものである場合に、該リクエストメッセー
    ジを前記第2の通信装置へ送信する機能と、 前記第2の通信装置から返送された前記レスポンスデー
    タを含む前記レスポンスメッセージを受信する機能と、 受信された前記レスポンスメッセージに含まれる前記レ
    スポンスデータに割り当てるべき識別子を、該レスポン
    スデータの内容に基づいて生成する機能と、 少なくとも前記レスポンスデータと前記識別子とを対応
    付けて保持する保持機能と、 前記第2の通信装置から前記レスポンスデータを含む前
    記レスポンスメッセージを受信した場合には、前記第1
    の通信装置に対して、該レスポンスデータを含むレスポ
    ンスメッセージを送信する代わりに、前記識別子を含む
    所定のURLへのリダイレクトレスポンスメッセージを
    送信し、前記第1の通信装置からの前記識別子を含む所
    定のURLへのリクエストメッセージが受信された場合
    には、該URLに含まれる該識別子に対応して前記保持
    機能に保持されている前記レスポンスデータを含むレス
    ポンスメッセージを、前記第1の通信装置に送信する機
    能とをコンピュータに実現させるためのプログラム。
JP2002089949A 2002-03-27 2002-03-27 キャッシュサーバ、データ転送装置及びプログラム Expired - Fee Related JP3984086B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002089949A JP3984086B2 (ja) 2002-03-27 2002-03-27 キャッシュサーバ、データ転送装置及びプログラム
US10/396,396 US7069297B2 (en) 2002-03-27 2003-03-26 Data transfer scheme using re-direct response message for reducing network load

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002089949A JP3984086B2 (ja) 2002-03-27 2002-03-27 キャッシュサーバ、データ転送装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2003288261A true JP2003288261A (ja) 2003-10-10
JP3984086B2 JP3984086B2 (ja) 2007-09-26

Family

ID=28449545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002089949A Expired - Fee Related JP3984086B2 (ja) 2002-03-27 2002-03-27 キャッシュサーバ、データ転送装置及びプログラム

Country Status (2)

Country Link
US (1) US7069297B2 (ja)
JP (1) JP3984086B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3829125B2 (ja) * 2003-05-16 2006-10-04 株式会社コナミデジタルエンタテインメント ネットワークシステム、ネットワーク制御方法及びプログラム
US7711799B2 (en) * 2004-11-22 2010-05-04 Alcatel-Lucent Usa Inc. Method and apparatus for pre-packetized caching for network servers
US7716306B2 (en) * 2005-01-25 2010-05-11 International Business Machines Corporation Data caching based on data contents
US20070192324A1 (en) * 2006-01-31 2007-08-16 Opera Software Asa Method and device for advanced cache management in a user agent
US20090070336A1 (en) * 2007-09-07 2009-03-12 Sap Ag Method and system for managing transmitted requests
US8719216B2 (en) * 2007-10-24 2014-05-06 The Boeing Company Caching of web form post-query requests
US8244799B1 (en) * 2008-07-21 2012-08-14 Aol Inc. Client application fingerprinting based on analysis of client requests
JPWO2011148719A1 (ja) * 2010-05-28 2013-07-25 日本電気株式会社 情報処理装置、gui操作支援方法およびgui操作支援プログラム
US8856260B2 (en) 2011-06-14 2014-10-07 Microsoft Corporation Providing access to shared state data
US10776834B2 (en) * 2013-07-15 2020-09-15 Criteo Sa Domain selection for advertisement data
US10892968B2 (en) 2015-12-18 2021-01-12 Google Llc Systems and methods for latency reduction in content item interactions using client-generated click identifiers
US10277650B1 (en) * 2016-05-12 2019-04-30 Google Llc Parallel execution of request tracking and resource delivery
JP6747303B2 (ja) * 2017-01-13 2020-08-26 富士通株式会社 通信装置、通信システム、通信方法、および、通信プログラム
US11308524B2 (en) 2017-01-17 2022-04-19 Criteo Sa Risk-adjusted predictive bidding for electronic advertisements
US11120481B2 (en) 2017-10-27 2021-09-14 Criteo Sa Predictive adjusted bidding for electronic advertisements
US11049150B2 (en) 2018-06-22 2021-06-29 Criteo Sa Generation of incremental bidding and recommendations for electronic advertisements

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3167484B2 (ja) 1993-03-01 2001-05-21 富士通株式会社 送信側システム及び受信側システム並びにデータ転送処理システム
US6012085A (en) * 1995-11-30 2000-01-04 Stampede Technolgies, Inc. Apparatus and method for increased data access in a network file object oriented caching system
US5682514A (en) * 1995-11-30 1997-10-28 Stampede Technologies, Inc. Apparatus and method for increased data access in a network file oriented caching system
US5835943A (en) * 1995-11-30 1998-11-10 Stampede Technologies, Inc. Apparatus and method for increased data access in a network file oriented caching system
JP3102369B2 (ja) 1997-01-31 2000-10-23 富士通株式会社 データ処理装置
US5909569A (en) 1997-05-07 1999-06-01 International Business Machines Terminal emulator data stream differencing system
US6675161B1 (en) * 1999-05-04 2004-01-06 Inktomi Corporation Managing changes to a directory of electronic documents
US6990628B1 (en) * 1999-06-14 2006-01-24 Yahoo! Inc. Method and apparatus for measuring similarity among electronic documents
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US6775743B2 (en) * 2001-09-12 2004-08-10 International Business Machines Corporation Content caching with special handling of multiple identical requests for content

Also Published As

Publication number Publication date
US20030187923A1 (en) 2003-10-02
US7069297B2 (en) 2006-06-27
JP3984086B2 (ja) 2007-09-26

Similar Documents

Publication Publication Date Title
US8024484B2 (en) Caching signatures
JP3990115B2 (ja) サーバ側プロキシ装置及びプログラム
EP1429517B1 (en) Access relaying apparatus
US6237031B1 (en) System for dynamically controlling a network proxy
US7636765B2 (en) Data transfer scheme using caching technique for reducing network load
US7480731B2 (en) Data transfer scheme using caching technique for reducing network load
US20030061275A1 (en) Method and system for remotely managing persistent state data
JP3984086B2 (ja) キャッシュサーバ、データ転送装置及びプログラム
CN103051663A (zh) 图片共享对等网络中用于改进访客图像查看性能的代理高速缓存技术
CN1272279A (zh) 预取对象的分布系统和方法
JP2003281023A (ja) データ転送装置、データ転送方法、データ受信表示装置、プログラム
JP3848209B2 (ja) データ転送装置、データ転送方法及びプログラム
JP4031516B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP4053269B2 (ja) データ転送装置およびデータ転送方法
JP3983987B2 (ja) サーバ側プロキシ装置、データ転送方法及びプログラム
JP3943867B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP3943868B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP3913508B2 (ja) データ転送装置およびデータ転送方法
JP2003108464A (ja) データ転送装置およびデータ転送方法
JP4041157B2 (ja) クライアント側プロキシ装置、データ転送方法及びプログラム
JP3977651B2 (ja) データ転送方法、サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム
JP3977601B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置及びプログラム
JP4300220B2 (ja) データ転送装置およびデータ転送方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Request for written amendment filed

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