(57)【特許請求の範囲】
【請求項１】
クライアントとサーバとの間の通信を中継する中継装置であって、
第１のコンテンツを要求した要求元を識別する要求元識別情報を取得する取得手段と、
前記取得手段が取得した前記要求元識別情報と前記第１のコンテンツの次に取得すべき第２のコンテンツの取得先とを含むリクエストを前記サーバに送信するリクエスト送信手段と、
前記リクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報に基づいて前記サーバで生成された前記第２のコンテンツを前記サーバから取得するコンテンツ取得手段と、
前記リクエスト送信手段が送信した前記リクエストと前記第２のコンテンツの取得先及び前記要求元識別情報が一致するリクエストを前記クライアントから受信した場合に、前記コンテンツ取得手段が取得した前記第２のコンテンツを前記クライアントに送信するコンテンツ送信手段と、を備え、
前記取得手段は、前記要求元識別情報に基づいて動的に変化する前記第２のコンテンツの取得先を取得し、
前記リクエスト送信手段は、前記要求元識別情報と前記取得手段が取得した前記第２のコンテンツの取得先とを含むリクエストを前記サーバに送信する、
ことを特徴とする中継装置。
【請求項２】
前記第２のコンテンツの取得先及び前記要求元識別情報を、前記コンテンツ取得手段が取得した前記第２のコンテンツと対応付けて記憶するコンテンツ記憶手段を備え、
前記コンテンツ送信手段は、前記クライアントから受信したリクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報が前記コンテンツ記憶手段に記憶されている場合に、当該第２のコンテンツの取得先及び要求元識別情報に対応付けられた前記第２のコンテンツを前記コンテンツ記憶手段から読み出し、読み出した前記第２のコンテンツを前記クライアントに送信する、
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
クライアントとサーバとの間の通信を中継する中継方法であって、
第１のコンテンツを要求した要求元を識別する要求元識別情報に基づいて動的に変化する、前記第１のコンテンツの次に取得すべき第２のコンテンツの取得先を取得する取得ステップと、
前記要求元識別情報と前記第２のコンテンツの取得先とを含むリクエストを前記サーバに送信するリクエスト送信ステップと、
前記リクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報に基づいて前記サーバで生成された前記第２のコンテンツを前記サーバから取得するコンテンツ取得ステップと、
前記リクエスト送信ステップで送信した前記リクエストと実質的に同一のリクエストを前記クライアントから受信した場合に、前記コンテンツ取得ステップで取得した前記第２のコンテンツを前記クライアントに送信するコンテンツ送信ステップと、を有する、
ことを特徴とする中継方法。
【請求項４】
クライアントとサーバとの間の通信を中継するプログラムであって、
コンピュータを、
第１のコンテンツを要求した要求元を識別する要求元識別情報に基づいて動的に変化する、前記第１のコンテンツの次に取得すべき第２のコンテンツの取得先を取得する取得手段、
前記要求元識別情報と前記第２のコンテンツの取得先とを含むリクエストを前記サーバに送信するリクエスト送信手段、
前記リクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報に基づいて前記サーバで生成された前記第２のコンテンツを前記サーバから取得するコンテンツ取得手段、
前記リクエスト送信手段が送信した前記リクエストと実質的に同一のリクエストを前記クライアントから受信した場合に、前記コンテンツ取得手段が取得した前記第２のコンテンツを前記クライアントに送信するコンテンツ送信手段、として機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、中継方法、及びプログラムに関する。
【背景技術】
【０００２】
ＨＴＴＰ（Hyper Text Transfer Protocol）通信を行うクライアントとサーバとの間に中継装置を配置し、サーバから提供されたコンテンツを中継装置にキャッシュする技術が知られている。中継装置は、キャッシュされたコンテンツの要求を受け付けた場合に、その要求をサーバへ中継しないで、キャッシュされたコンテンツをクライアントに送信する。これにより、クライアントへの応答速度（ユーザエクスペリエンス）の向上やサーバとの間で行われる通信負荷の軽減を図ることができる。中継装置は、一般的には、クライアントからの要求によって内容が変化しないコンテンツ（静的コンテンツ）をキャッシュ対象としている。
【０００３】
一方、特許文献１には、サーブレットやＪＳＰ（Java（登録商標） Server Pages）のように、クライアントからの要求に応じて内容が動的に変化するコンテンツ（動的コンテンツ）をキャッシュする中継装置が開示されている。この中継装置は、サーバから提供された動的コンテンツにキャッシュ可能情報が付与されていた場合に、当該動的コンテンツをキャッシュする。キャッシュ可能情報は、クライアントからサーバに同じ内容の要求が何度もされるような利用可能性が高い動的コンテンツに付与される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−７６０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
動的コンテンツには、クライアントとの間で通信を確立するために、サーバで発行されたセッションＩＤに基づいて生成されるものがある。セッションＩＤは、クライアントを識別する情報であるため、セッションＩＤに基づいて生成される動的コンテンツは、他のクライアントからの要求によって同じものは生成されない。よって、セッションＩＤに基づいて生成される動的コンテンツは、過去に同じ要求がされていない場合は中継装置でキャッシュされることはなく、当該動的コンテンツを取得するためには、クライアントは、サーバとの間で通信を行わなければならない。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、要求元を識別する識別情報に基づいて生成されるコンテンツがクライアントから要求された際に、そのコンテンツをクライアントに提供するまでの時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る中継装置は、
クライアントとサーバとの間の通信を中継する中継装置であって、
第１のコンテンツを要求した要求元を識別する要求元識別情報を取得する取得手段と、
前記取得手段が取得した前記要求元識別情報と前記第１のコンテンツの次に取得すべき第２のコンテンツの取得先とを含むリクエストを前記サーバに送信するリクエスト送信手段と、
前記リクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報に基づいて前記サーバで生成された前記第２のコンテンツを前記サーバから取得するコンテンツ取得手段と、
前記リクエスト送信手段が送信した前記リクエストと前記第２のコンテンツの取得先及び前記要求元識別情報が一致するリクエストを前記クライアントから受信した場合に、前記コンテンツ取得手段が取得した前記第２のコンテンツを前記クライアントに送信するコンテンツ送信手段と、を備え、
前記取得手段は、前記要求元識別情報に基づいて動的に変化する前記第２のコンテンツの取得先を取得し、
前記リクエスト送信手段は、前記要求元識別情報と前記取得手段が取得した前記第２のコンテンツの取得先とを含むリクエストを前記サーバに送信する、
ことを特徴とする。
【０００８】
また、中継装置は、前記第２のコンテンツの取得先及び前記要求元識別情報を、前記コンテンツ取得手段が取得した前記第２のコンテンツと対応付けて記憶するコンテンツ記憶手段を備え、前記コンテンツ送信手段は、前記クライアントから受信したリクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報が前記コンテンツ記憶手段に記憶されている場合に、当該第２のコンテンツの取得先及び要求元識別情報に対応付けられた前記第２のコンテンツを前記コンテンツ記憶手段から読み出し、読み出した前記第２のコンテンツを前記クライアントに送信してもよい。
【００１１】
本発明に係る中継方法は、
クライアントとサーバとの間の通信を中継する中継方法であって、
第１のコンテンツを要求した要求元を識別する要求元識別情報に基づいて動的に変化する、前記第１のコンテンツの次に取得すべき第２のコンテンツの取得先を取得する取得ステップと、
前記要求元識別情報と前記第２のコンテンツの取得先とを含むリクエストを前記サーバに送信するリクエスト送信ステップと、
前記リクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報に基づいて前記サーバで生成された前記第２のコンテンツを前記サーバから取得するコンテンツ取得ステップと、
前記リクエスト送信ステップで送信した前記リクエストと実質的に同一のリクエストを前記クライアントから受信した場合に、前記コンテンツ取得ステップで取得した前記第２のコンテンツを前記クライアントに送信するコンテンツ送信ステップと、を有する、
ことを特徴とする。
【００１２】
本発明に係るプログラムは、
クライアントとサーバとの間の通信を中継するプログラムであって、
コンピュータを、
第１のコンテンツを要求した要求元を識別する要求元識別情報に基づいて動的に変化する、前記第１のコンテンツの次に取得すべき第２のコンテンツの取得先を取得する取得手段、
前記要求元識別情報と前記第２のコンテンツの取得先とを含むリクエストを前記サーバに送信するリクエスト送信手段、
前記リクエストに含まれた前記第２のコンテンツの取得先及び前記要求元識別情報に基づいて前記サーバで生成された前記第２のコンテンツを前記サーバから取得するコンテンツ取得手段、
前記リクエスト送信手段が送信した前記リクエストと実質的に同一のリクエストを前記クライアントから受信した場合に、前記コンテンツ取得手段が取得した前記第２のコンテンツを前記クライアントに送信するコンテンツ送信手段、として機能させる、
ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、要求元を識別する識別情報に基づいて生成されるコンテンツがクライアントから要求された際に、そのコンテンツをクライアントに提供するまでの時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係る中継装置を備えたシステムの構成を示した図である。
【図２】図１に示した中継装置の構成を示した図である。
【図３】取得先情報の構成を示した図である。
【図４】（ａ）はプリフェッチ対象の動的コンテンツを記憶する前のコンテンツテーブルの構成を示した図である。（ｂ）はプリフェッチ対象の動的コンテンツを記憶した後のコンテンツテーブルの構成を示した図である。
【図５】クライアント、中継装置、及びサーバの間で行われる通信の流れの一例を示した図である。
【図６】中継装置が実行する中継制御処理を示したフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施の形態に係る中継装置、中継方法及びプログラムを説明する。
【００１６】
図１に示すように、本実施の形態に係る中継装置１０は、クライアントＣ１，Ｃ２・・・と、サーバＳ１，Ｓ２・・・との間に配置される。中継装置１０は、例えば負荷分散装置（ロードバランサ）やプロキシサーバ等から構成される。中継装置１０は、ネットワークＮ１を介してクライアントＣとＨＴＴＰ通信（以下、通信という）を行い、ネットワークＮ２を介してサーバＳと通信を行う。ネットワークＮ１，Ｎ２は、例えばインターネットやＬＡＮ（Local Area Network）等である。なお、以下の説明において、クライアントＣ１，Ｃ２・・・を区別しない場合は、それぞれをクライアントＣと総称し、サーバＳ１，Ｓ２・・・を区別しない場合は、それぞれをサーバＳと総称する。
【００１７】
中継装置１０は、クライアントＣとサーバＳとの間で行われる通信を中継する。具体的には、中継装置１０は、クライアントＣの要求を表すＨＴＴＰリクエスト（以下、リクエストという）をクライアントＣから受信し、受信したリクエストをサーバＳに送信する（中継する）。また、中継装置１０は、サーバＳの応答を表すＨＴＴＰレスポンス（以下、レスポンスという）をサーバＳから受信し、受信したリクエストをクライアントＣに送信する（中継する）。
【００１８】
また、中継装置１０は、サーバＳにおいてクライアントＣの認証が正常に行われた場合に発行されたセッションＩＤをサーバＳから取得する。セッションＩＤは、クライアントＣとのセッションを特定するための識別情報であり、セッションＩＤによりクライアントＣが識別される。
【００１９】
また、中継装置１０は、クライアントＣから動的コンテンツが要求された場合に、要求された動的コンテンツをサーバＳから取得するほか、その次に取得すべき動的コンテンツをサーバＳからプリフェッチ（先取り）する機能を備える。プリフェッチされる動的コンテンツは、利用可能性が高いものが対象となる。具体的には、サーバＳがポータルサイトを運用するものである場合、そのサイトのトップページ(index.html)からは、メール、オークション、スケジュール、天気予報等の複数のページが利用できるが、そのうち利用頻度が高いコンテンツ（ページ）が対象となり、その取得先を表すＵＲＬ（Uniform Resource Locator）が設定されている。例えば、各サーバＳは、自己の学習機能によって、コンテンツの取得先（ＵＲＬ）毎に、その次に要求されるコンテンツの取得先を学習し、その中で要求される回数が多い一定の順位までのコンテンツの取得先をプリフェッチ対象として設定する。中継装置１０の管理者は、各サーバＳの学習機能によって設定された、コンテンツの取得先（ＵＲＬ）と、その次に要求されるコンテンツの取得先とを対にした情報（取得先情報）を各サーバＳからダウンロード等して取得し、これを中継装置１０に設定しておく。
【００２０】
動的コンテンツは、その取得先を表すＵＲＬ及びセッションＩＤに基づいて生成される。動的コンテンツは、クライアント固有のものであり、例えば、クライアントＣ１，Ｃ２から同じ取得先が指定されたリクエストがサーバＳに送信されても、セッションＩＤが異なるので、クライアントＣ１，Ｃ２に提供される動的コンテンツはそれぞれ異なる。
【００２１】
クライアントＣは、ＰＣ（パーソナルコンピュータ）から構成される。クライアントＣは、ユーザの操作に従ってリクエストを生成し、生成したリクエストを中継装置１０に送信する。また、クライアントＣは、中継装置１０からレスポンスを受信し、レスポンスに含まれるＨＴＭＬファイルや画像ファイル等の動的コンテンツを出力する。
【００２２】
サーバＳは、ウェブサーバから構成される。サーバＳは、中継装置１０からリクエストを受信する。サーバＳは、受信したリクエストに基づいてレスポンスを生成し、生成したレスポンスを中継装置１０に送信する。また、サーバＳは、中継装置１０から受信したリクエストに含まれた認証情報（ユーザＩＤ、パスワード等）に基づいて認証処理を行い、ユーザの認証が正常に行われると上述したセッションＩＤを発行する。
【００２３】
つづいて、図２を参照して中継装置１０の構成を説明する。中継装置１０は、制御部１１と、記憶部１２と、通信部１３とを備える。
【００２４】
通信部１３は、例えばネットワークアダプタ等の通信インタフェース装置から構成される。通信部１３は、制御部１１の制御に従って、ネットワークＮ１を介して接続されたクライアントＣと通信を行う。また、通信部１３は、制御部１１の制御に従って、ネットワークＮ２を介して接続されたサーバＳと通信を行う。なお、通信部１３とネットワークＮ１，Ｎ２との接続は、有線または無線のどちらでもよい。
【００２５】
記憶部１２は、例えば、ＨＤＤ（Hard disk drive）、ＲＯＭ（Read Only Memory）、フラッシュメモリ等の記憶装置から構成される。記憶部１２は、制御部１１が各種処理を行うために使用する各種プログラムおよびデータ、制御部１１が各種処理を行うことにより生成又は取得した各種データを記憶する。
【００２６】
また、記憶部１２は、特徴的には、中継制御プログラム１２ａ、取得先情報１２ｂおよびコンテンツテーブル１２ｃを記憶する。なお、本発明に係るコンテンツ記憶手段及び取得先情報記憶手段は、記憶部１２の機能によって実現される。
【００２７】
中継制御プログラム１２ａは、クライアントＣとサーバＳとの間で行われる通信を制御するための制御プログラムであり、制御部１１によって実行される。
【００２８】
取得先情報１２ｂは、図３に示すように、動的コンテンツの取得先（ＵＲＬ）と、その次に取得すべき動的コンテンツ（プリフェッチ対象）の取得先との対応関係を表す。プリフェッチ対象である動的コンテンツの取得先は、上述したように利用可能性が高いものである。
【００２９】
コンテンツテーブル１２ｃは、セッションＩＤ、プリフェッチ対象である動的コンテンツの取得先（ＵＲＬ）、及びプリフェッチされた動的コンテンツを格納するものである。中継装置１０は、セッションＩＤと、プリフェッチ対象である動的コンテンツの取得先とを含むリクエストを生成し、これをサーバＳに送信する。このとき、中継装置１０は、図４（ａ）に示すように、リクエストに含まれたセッションＩＤ及び動的コンテンツの取得先をコンテンツテーブル１２ｃに記憶する。コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先は、サーバＳから受信したレスポンスがプリフェッチ対象のリクエストに対するレスポンスか否かを判別するために用いられる。具体的には、中継装置１０は、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがサーバＳから受信したレスポンスに含まれている場合、当該レスポンスがプリフェッチ対象のリクエストに対するレスポンスであると判別する。一方、中継装置１０は、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがサーバＳから受信したレスポンスに含まれていない場合、当該レスポンスがプリフェッチ対象のリクエストに対するレスポンスではないと判別する。中継装置１０は、サーバＳから受信したレスポンスがプリフェッチ対象のリクエストに対するレスポンスであると判別した場合、図４（ｂ）に示すように、コンテンツテーブル１２ｃにおいてレスポンスと一致するセッションＩＤ及び動的コンテンツの取得先を、そのレスポンスに含まれた動的コンテンツと対応付けてコンテンツテーブル１２ｃに記憶する。さらに、中継装置１０は、クライアントＣから受信したリクエストにおいて、コンテンツテーブル１２ｃに記憶された動的コンテンツの取得先及びセッションＩＤと一致するものが含まれていた場合、その取得先及びセッションＩＤに対応付けられた動的コンテンツをコンテンツテーブル１２ｃから読み出し、読み出した動的コンテンツをクライアントＣに送信する。
【００３０】
制御部１１は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵのメインメモリとして機能するＲＡＭ（Random Access Memory）等から構成される。なお、制御部１１は、一部がＡＳＩＣ（Application Specific Integrated Circuit）等の専用回路から構成されてもよい。制御部１１は、中継装置１０全体を制御する。
【００３１】
また、制御部１１は、記憶部１２に記憶された中継制御プログラム１２ａを実行することにより、取得部１１ａ、リクエスト送信部１１ｂ、コンテンツ取得部１１ｃ、コンテンツ送信部１１ｄとして機能し、それぞれの機能によって後述の中継制御処理が行われる。本発明に係る取得手段は取得部１１ａの機能によって実現され、本発明に係るリクエスト送信手段はリクエスト送信部１１ｂの機能によって実現され、本発明に係るコンテンツ取得手段はコンテンツ取得部１１ｃの機能によって実現され、本発明に係るコンテンツ送信手段はコンテンツ送信部１１ｄの機能によって実現される。
【００３２】
以上のように構成された中継装置１０は、セッションＩＤと動的コンテンツの取得先（ＵＲＬ）とに基づいて生成される動的コンテンツをプリフェッチする処理を行う。また、中継装置１０は、クライアントＣから要求された動的コンテンツがプリフェッチされている場合は、サーバＳとの通信を行わず、プリフェッチされた動的コンテンツをクライアントＣに送信する処理を行う。
【００３３】
次に、図５を参照して中継装置１０が、クライアントＣ及びサーバＳとの間で行う通信の流れを説明する。
【００３４】
クライアントＣは、中継装置１０を介して、一のサーバＳ（例えばサーバＳ１）と接続されており、サーバＳから提供されたログイン画面（login.html）を表示している。クライアントＣのユーザは、ログイン画面が表示されている状態で、自身の認証情報（ユーザＩＤ、パスワード）を入力する操作を行うと、クライアントＣは、認証情報及び動的コンテンツの取得先「ＵＲＬ１」を含むリクエストを中継装置１０に送信する（ステップＣＳ１）。
【００３５】
中継装置１０は、クライアントＣから送信されたリクエストを受信し（ステップＳ１０１）、そのリクエストにセッションＩＤが含まれていない場合には、受信したリクエストをサーバＳに中継する（ステップＳ１０２）。
【００３６】
サーバＳは、中継装置１０から送信されたリクエストを受信すると（ステップＳＳ１）、リクエストに含まれた認証情報と、自身に記憶された認証情報とを参照してユーザ認証を行う。サーバＳは、ユーザ認証が正常にできた場合にセッションＩＤ「ＡＡＡ」を発行する。また、サーバＳは、サーブレットやＪＳＰ（Java（登録商標） Server Pages）等の動的コンテンツを生成するプログラムを、動的コンテンツの取得先「ＵＲＬ１」及びセッションＩＤ「ＡＡＡ」を表す各パラメータで実行し、動的コンテンツ「Ｘ１」を生成する。動的コンテンツ「Ｘ１」は、例えばウェブサーバのトップページ画面(index.html)を表すＨＴＭＬファイル（index.html）であり、具体的には「こんにちは、○○さん」のように、クライアントＣを使用するユーザへのメッセージが含まれている。また、サーバＳは、発行したセッションＩＤ「ＡＡＡ」をＳｅｔ−Ｃｏｏｋｉｅと呼ばれるヘッダに設定し、生成した動的コンテンツ「Ｘ１」を含むレスポンスを中継装置１０に送信する（ステップＳＳ２）。
【００３７】
中継装置１０は、サーバＳから送信されたレスポンスを受信すると（ステップＳ１０３）、受信したレスポンスをクライアントＣに中継する（ステップＳ１０４）。これにより、クライアントＣは、中継装置１０から送信されたレスポンスを受信し（ステップＣＳ２）、レスポンスに含まれたセッションＩＤ「ＡＡＡ」をブラウザのクッキーに記憶する。セッションＩＤ「ＡＡＡ」をクッキーに記憶することにより、クライアントＣは、以降の処理ではステップＣＳ１で送信したリクエストを送信せずに（認証を行わずに）サーバＳとの通信を行うことができる。
【００３８】
また、中継装置１０は、記憶部１２に記憶された取得先情報１２ｂから、動的コンテンツ「Ｘ１」の次に取得すべき動的コンテンツ（プリフェッチ対象）の取得先「ＵＲＬ２」、「ＵＲＬ３」、及び「ＵＲＬ４」を抽出し、図４（ａ）に示すように、レスポンスに含まれたセッションＩＤ「ＡＡＡ」を、取得先「ＵＲＬ２」、「ＵＲＬ３」及び「ＵＲＬ４」のそれぞれと対応付けてコンテンツテーブル１２ｃに記憶する。また、中継装置１０は、取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」を含むリクエスト、取得先「ＵＲＬ３」及びセッションＩＤ「ＡＡＡ」を含むリクエスト、取得先「ＵＲＬ４」及びセッションＩＤ「ＡＡＡ」を含むリクエストを生成し、それぞれをサーバＳに送信する（ステップＳ１０５）。
【００３９】
サーバＳは、中継装置１０から送信された各リクエストを受信すると（ステップＳＳ３）、各リクエストに基づいて動的コンテンツ「Ｘ２」、「Ｘ３」及び「Ｘ４」を生成する。具体的には、サーバＳは、動的コンテンツを生成するプログラムを、取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」を表す各パラメータで実行することにより動的コンテンツ「Ｘ２」を生成する。また、サーバＳは、動的コンテンツを生成するプログラムを、取得先「ＵＲＬ３」及びセッションＩＤ「ＡＡＡ」を表す各パラメータで実行することにより、動的コンテンツ「Ｘ３」を生成する。さらに、サーバＳは、動的コンテンツを生成するプログラムを、取得先「ＵＲＬ４」及びセッションＩＤ「ＡＡＡ」を表す各パラメータで実行することにより、動的コンテンツ「Ｘ４」を生成する。動的コンテンツ「Ｘ２」、「Ｘ３」及び「Ｘ４」は、例えばトップページの次に取得可能なメール、オークション、スケジュール等の画面を表すＨＴＭＬファイルである。サーバＳは、各リクエストに含まれた取得先及びセッションＩＤと、生成した動的コンテンツとを含むレスポンスを生成し、これを中継装置１０に送信する（ステップＳＳ４）。具体的には、サーバＳは、取得先「ＵＲＬ２」とセッションＩＤ「ＡＡＡ」と動的コンテンツ「Ｘ２」とを含むレスポンス、取得先「ＵＲＬ３」とセッションＩＤ「ＡＡＡ」と動的コンテンツ「Ｘ３」とを含むレスポンス、及び、取得先「ＵＲＬ４」とセッションＩＤ「ＡＡＡ」と動的コンテンツ「Ｘ４」とを含むレスポンスを生成し、それぞれを中継装置１０に送信する。
【００４０】
中継装置１０は、サーバＳから各レスポンスを受信すると（ステップＳ１０６）、コンテンツテーブル１２ｃを参照し、受信したレスポンスがプリフェッチ対象のリクエストに対するレスポンスか否かを判別する。プリフェッチ対象のリクエストに対するレスポンスか否かの判別は、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがレスポンスに含まれているか否かによって行われる。例えば、上述した各レスポンスには、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するもの（取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」、取得先「ＵＲＬ３」及びセッションＩＤ「ＡＡＡ」、取得先「ＵＲＬ４」及びセッションＩＤ「ＡＡＡ」）が含まれている。この場合、中継装置１０は、受信したレスポンスがプリフェッチ対象のリクエストに対するレスポンスであると判別し、図４（ｂ）に示すように、コンテンツテーブル１２ｃにおいてレスポンスと一致するセッションＩＤ及び動的コンテンツの取得先を、そのレスポンスに含まれた動的コンテンツ（「Ｘ２」、「Ｘ３」、「Ｘ４」）と対応付けてコンテンツテーブル１２ｃに記憶する（ステップＳ９）。これにより、動的コンテンツ「Ｘ１」の次に取得すべき動的コンテンツ「Ｘ２」、「Ｘ３」及び「Ｘ４」がプリフェッチされる。
【００４１】
その後、クライアントＣに動的コンテンツ「Ｘ１」（トップページ画面）が表示されている状態で、クライアントＣを使用するユーザがメールのページを表示する操作を行った場合、クライアントＣは、その取得先「ＵＲＬ２」とブラウザのクッキーに記憶されたセッションＩＤ「ＡＡＡ」とを含むリクエストを生成し、これを中継装置１０に送信する（ステップＣＳ３）。
【００４２】
中継装置１０は、クライアントＣからリクエストを受信すると（ステップＳ１０７）、コンテンツテーブル１２ｃを参照し、当該リクエストがプリフェッチ対象のリクエストであるか否かを判別する。プリフェッチ対象のリクエストであるか否かの判別は、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがリクエストに含まれているか否かによって行われる。例えば、上述したリクエストには、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するもの（取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」）が含まれている。この場合、中継装置１０は、当該リクエストがプリフェッチ対象のリクエストであると判別し、その取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」に対応付けられた動的コンテンツ「Ｘ２」をコンテンツテーブル１２ｃから読み出す。中継装置１０は、リクエストに含まれた取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」と、読み出した動的コンテンツ「Ｘ２」とを含むレスポンスを生成し、これをクライアントＣに送信する（ステップＳ１０８）。つまり、この場合、中継装置１０は、サーバＳにリクエストを中継しないで、プリフェッチされた動的コンテンツ「Ｘ２」をクライアントＣに提供する。クライアントＣは、中継装置１０から送信されたレスポンスを受信し（ステップＣＳ４）、ユーザによって要求された動的コンテンツ「Ｘ２」（例えばメールのページ画面）を取得する。
【００４３】
また、中継装置１０は、プリフェッチされた動的コンテンツ「Ｘ２」がクライアントＣに送信された場合、動的コンテンツ「Ｘ２」の次に取得すべき動的コンテンツ（プリフェッチ対象）の取得先「ＵＲＬ５」及び「ＵＲＬ６」を抽出し、セッションＩＤ「ＡＡＡ」を、取得先「ＵＲＬ５」及び「ＵＲＬ６」のそれぞれと対応付けてコンテンツテーブル１２ｃに記憶する。また、中継装置１０は、上記ステップＳ１０５と同様に、取得先「ＵＲＬ５」及びセッションＩＤ「ＡＡＡ」を含むリクエスト、取得先「ＵＲＬ６」及びセッションＩＤ「ＡＡＡ」を含むリクエストを生成し、それぞれをサーバＳに送信することにより、さらに次の動的コンテンツをプリフェッチするための処理を行う（ステップＳ１０９）。
【００４４】
サーバＳは、中継装置１０から送信された各リクエストを受信すると（ステップＳＳ５）、上記ステップＳＳ４と同様に、各リクエストに基づいて動的コンテンツ「Ｘ５」及び「Ｘ６」を生成し、取得先「ＵＲＬ５」とセッションＩＤ「ＡＡＡ」と動的コンテンツ「Ｘ５」とを含むレスポンス、及び、取得先「ＵＲＬ６」とセッションＩＤ「ＡＡＡ」と動的コンテンツ「Ｘ６」とを含むレスポンスを生成し、それぞれを中継装置１０に送信する（ステップＳＳ６）。
【００４５】
中継装置１０は、サーバＳから各レスポンスを受信し（ステップＳ１１０）、上記ステップＳ１０６と同様に、当該レスポンスはプリフェッチ対象のリクエストに対するレスポンスであると判別し、プリフェッチ対象のリクエストに対するレスポンスであると判別した場合、コンテンツテーブル１２ｃにおいてレスポンスと一致するセッションＩＤ及び動的コンテンツの取得先を、そのレスポンスに含まれた動的コンテンツ（「Ｘ５」、「Ｘ６」）と対応付けてコンテンツテーブル１２ｃに記憶する。このように、プリフェッチされた動的コンテンツ「Ｘ２」がクライアントＣに送信された場合には、さらに、その次に取得可能な動的コンテンツ「Ｘ５」及び「Ｘ６」がプリフェッチされる。
【００４６】
一方、クライアントＣから中継装置１０に送信されたリクエストにおいて、コンテンツテーブル１２ｃに記憶されていない取得先「ＵＲＬ１１」及びセッションＩＤ「ＡＡＡ」が含まれていた場合（ステップＣＳ５，Ｓ１１１）、中継装置１０は、当該リクエストがプリフェッチ対象のリクエストではないと判別する。この場合、中継装置１０は、クライアントＣから受信した、取得先「ＵＲＬ１１」及びセッションＩＤ「ＡＡＡ」を含むリクエストをサーバＳに中継する（ステップＳ１１２）。サーバＳは、中継装置１０から送信されたリクエストを受信すると（ステップＳＳ７）、そのリクエストに基づいて動的コンテンツ「Ｘ１１」を生成する。サーバＳは、リクエストに含まれた取得先「ＵＲＬ１１」及びセッションＩＤ「ＡＡＡ」と、生成した動的コンテンツ「Ｘ１１」とを含むレスポンスを生成し、これを中継装置１０に送信する（ステップＳＳ８）。中継装置１０は、サーバＳから受信したレスポンスにおいて、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものが含まれていない場合（ステップＳ１１３）、当該レスポンスはプリフェッチ対象のリクエストに対するレスポンスではないと判別し、サーバＳから受信したレスポンスをクライアントＣに中継する（ステップＳ１１４）。つまり、この場合は、サーバＳから受信したレスポンスを、そのままクライアントＣに中継し、レスポンスに含まれた動的コンテンツ「Ｘ１１」はコンテンツテーブル１２ｃに記憶されない。クライアントＣは、中継装置１０から送信されたレスポンスを受信し（ステップＣＳ６）、ユーザによって要求された動的コンテンツ「Ｘ１１」を取得する。
【００４７】
このようにして、中継装置１０は、セッションＩＤと動的コンテンツの取得先（ＵＲＬ）とに基づいて生成される動的コンテンツをプリフェッチし、プリフェッチした動的コンテンツがクライアントＣから要求された場合には、その動的コンテンツをクライアントＣに送信する。
【００４８】
次に、図６を参照して、上記動作を行う中継装置１０が実行する中継制御処理を説明する。中継装置１０に電源が供給されると、制御部１１は、記憶部１２に記憶された中継制御プログラム１２ａを読み出して実行する。これにより、制御部１１は、取得部１１ａ、リクエスト送信部１１ｂ、コンテンツ取得部１１ｃ、コンテンツ送信部１１ｄとして機能する。
【００４９】
取得部１１ａは、クライアントＣからリクエストを受信したか否かを判別し（ステップＳ１）、クライアントＣからリクエストを受信していないと判別した場合には（ステップＳ１；ＮＯ）、サーバＳからレスポンスを受信したか否かを判別する（ステップＳ２）。サーバＳからレスポンスを受信していないと判別した場合には（ステップＳ２；ＮＯ）、ステップＳ１に戻る。つまり、取得部１１ａは、リクエスト及びレスポンスの何れも受信していない場合は待機状態を維持する。
【００５０】
取得部１１ａは、クライアントＣからリクエストを受信したと判別した場合（ステップＳ１；ＹＥＳ）、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがリクエストに含まれているか否かによって、当該リクエストがプリフェッチ対象のリクエストであるか否かを判別する（ステップＳ３）。例えば図５に示したステップＳ１０１やステップＳ１１１のように、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがリクエストに含まれていない場合、取得部１１ａは、プリフェッチ対象のリクエストではないと判別する（ステップＳ３；ＮＯ）。この場合、リクエスト送信部１１ｂは、受信したリクエストをサーバＳに送信し（ステップＳ７）、その後はサーバＳからのレスポンスを待つ。
【００５１】
一方、図５に示したステップＳ１０７のように、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するもの（取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」）がリクエストに含まれている場合、コンテンツ送信部１１ｄは、その取得先及びセッションＩＤに対応付けられた動的コンテンツ（動的コンテンツ「Ｘ２」）をコンテンツテーブル１２ｃから読み出す。コンテンツ送信部１１ｄは、リクエストに含まれた取得先「ＵＲＬ２」及びセッションＩＤ「ＡＡＡ」と、読み出した動的コンテンツ「Ｘ２」とを含むレスポンスを生成し、これをクライアントＣに送信する（ステップＳ４）。
【００５２】
ステップＳ５でコンテンツ送信部１１ｄがレスポンスを送信した後、リクエスト送信部１１ｂは、取得先情報１２ｂを参照し、次の取得先があるか否かを判別する（ステップＳ５）。例えば取得先情報１２ｂにおいて、動的コンテンツの取得先「ＵＲＬ２」の次に取得すべき動的コンテンツ（プリフェッチ対象）の取得先は「ＵＲＬ５」及び「ＵＲＬ６」がある。よって、この場合、リクエスト送信部１１ｂは、次の取得先があると判別し（ステップＳ５；ＹＥＳ）、プリフェッチ対象のリクエストをサーバＳに送信する（ステップＳ６）。リクエスト送信部１１ｂは、その後はサーバＳからのレスポンスを待機する。一方、リクエスト送信部１１ｂは、次の取得先がないと判別した場合には（ステップＳ５；ＮＯ）、ステップＳ１に戻り、クライアントＣからのリクエストを待つ。
【００５３】
また、ステップＳ２において取得部１１ａがサーバＳからレスポンスを受信したと判別した場合に（ステップＳ２；ＹＥＳ）、コンテンツ取得部１１ｃは、当該レスポンスがプリフェッチ対象のリクエストに対するレスポンスか否かを判別する（ステップＳ８）。例えば、図５に示したステップＳ１０６またはＳ１１０のように、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがレスポンスに含まれている場合、コンテンツ取得部１１ｃは、当該レスポンスがプリフェッチ対象のリクエストに対するレスポンスであると判別する（ステップＳ８；ＹＥＳ）。この場合、コンテンツ取得部１１ｃは、コンテンツテーブル１２ｃにおいてレスポンスと一致するセッションＩＤ及び動的コンテンツの取得先を、そのレスポンスに含まれた動的コンテンツと対応付けてコンテンツテーブル１２ｃに記憶する（ステップＳ９）。
【００５４】
一方、取得部１１ａは、図５に示したステップＳ１０３またはＳ１１３のように、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがレスポンスに含まれていない場合、当該レスポンスがプリフェッチ対象のリクエストに対するレスポンスではないと判別する（ステップＳ８；ＮＯ）。この場合、コンテンツ送信部１１ｄは、受信したレスポンスをクライアントＣに送信する（ステップＳ１０）。
【００５５】
また、リクエスト送信部１１ｂは、サーバＳから受信したレスポンスによって動的コンテンツをプリフェッチできるか否かを判別する（ステップＳ１２）。例えば図５のステップＳ１０３に示したように、サーバＳから受信したレスポンスにセッションＩＤ「ＡＡＡ」が含まれ、レスポンスに含まれた動的コンテンツの取得先「ＵＲＬ１」に対応付けられた、次に取得すべき動的コンテンツの取得先（「ＵＲＬ２」、「ＵＲＬ３」及び「ＵＲＬ４」）がある場合、リクエスト送信部１１ｂは、動的コンテンツをプリフェッチできると判別する（ステップＳ１１；ＹＥＳ）。この場合、リクエスト送信部１１ｂは、図５のステップＳ１０５に示したように、プリフェッチ対象の動的コンテンツをサーバＳに要求する（ステップＳ１２）。リクエスト送信部１１ｂは、その後はサーバＳからのレスポンスを待機する。一方、サーバＳから受信したレスポンスにセッションＩＤが含まれていない場合や、取得先情報１２ｂにおいて、レスポンスに含まれた動的コンテンツの取得先に対応付けられた、次に取得すべき動的コンテンツの取得先がない場合、リクエスト送信部１１ｂは、動的コンテンツをプリフェッチできないと判別し（ステップＳ１１；ＮＯ）、ステップＳ１に戻り、クライアントＣからのリクエストを待つ。
以上により中継装置１０が実行する一連の中継制御処理は終了する。
【００５６】
以上説明したように、本実施の形態に係る中継装置１０は、サーバＳにおいて発行されたセッションＩＤと、クライアントＣから要求された動的コンテンツの次に取得すべき動的コンテンツの取得先とを含むリクエストをサーバＳに送信し、そのリクエストに従ってサーバＳで生成された動的コンテンツを、クライアントＣが要求する前にプリフェッチして記憶する。また、中継装置１０は、記憶された動的コンテンツの要求を受け付けた場合に、その要求をサーバＳへ中継しないで、記憶された動的コンテンツをクライアントに送信する。これにより、セッションＩＤに基づいて生成される動的コンテンツが要求された場合に、その動的コンテンツをクライアントに提供するまでの時間を短縮することができる。
【００５７】
なお、上記実施の形態では、クライアントＣから受信したリクエストがプリフェッチ対象のリクエストであるか否かを、コンテンツテーブル１２ｃに記憶されたセッションＩＤ及び動的コンテンツの取得先と一致するものがリクエストに含まれているか否かによって判別する例を説明したが、クライアントＣから受信したリクエストとサーバＳに送信したプリフェッチ対象のリクエストとが実質的に同一か否かによって、クライアントＣから受信したリクエストがプリフェッチ対象のリクエストであるか否かを判別してもよい。なお、ここでいう実質的に同一とは、クライアントＣから受信したリクエストに含まれたセッションＩＤ及び動的コンテンツの取得先と、サーバＳに送信したプリフェッチ対象のリクエストに含まれたセッションＩＤ及び動的コンテンツの取得先とが一致すればよく、その他の情報は異なってもよいことを意味する。
【００５８】
また、リクエスト送信部１１ｂは、コンテンツ送信部１１ｄによって、クライアントＣからプリフェッチされた動的コンテンツが要求されたときに、その次に取得可能な動的コンテンツの取得先を含むリクエストをサーバＳに送信したが、クライアントＣからの要求を待たなくてもよい。例えば、リクエスト送信部１１ｂは、サーバＳからプリフェッチ対象の動的コンテンツを含むレスポンスを受信した場合に、その次の動的コンテンツを要求するリクエストを送信し、取得先情報１２ｂにより表される全ての取得先に対応する動的コンテンツを順次取得してもよい。
【００５９】
また、リクエスト送信部１１ｂは、プリフェッチされた動的コンテンツが、例えば、メール、天気予報等のように、逐次更新されるものである場合、再度、同じリクエストをサーバＳに送信することにより、新たな動的コンテンツを取得してもよい。
【００６０】
なお、コンテンツテーブル１２ｃの記憶容量が一定値以下となった場合には、一定時間を超えて要求がない動的コンテンツを含むエントリや、記憶日時が古いエントリを消去することにより、プリフェッチ対象である新たな動的コンテンツをコンテンツテーブル１２ｃに記憶してもよい。
【００６１】
また、上記実施の形態において、中継装置１０は、各サーバＳから取得先情報１２ｂを事前に取得し、これを記憶部１２に備えた例を説明したが、自己の学習機能によってログを解析し、コンテンツの取得先（ＵＲＬ）毎に、その次に要求されるコンテンツの取得先を学習し、その中で要求される回数が多い一定の順位までのコンテンツの取得先をプリフェッチ対象として設定した取得先情報１２ｂを生成し、これを記憶してもよい。また、この場合、取得先情報１２ｂは、自動的に更新されてもよい。
【００６２】
また、プリフェッチ対象の取得先は、サーバＳにおいて生成されるレスポンスに含ませてもよい。この場合、取得先情報１２ｂはサーバＳに記憶され、中継装置１０には記憶されない。具体的には、サーバＳは、中継装置１０から送信されたリクエストを受信すると、リクエストに含まれた動的コンテンツの取得先（例えば「ＵＲＬ２」）とセッションＩＤ（例えば「ＡＡＡ」）とに基づいて動的コンテンツ（例えば「Ｘ２」）を生成するほか、取得先情報１２ｂを参照し、リクエストに含まれた取得先に対応付けられたプリフェッチ対象の取得先（「ＵＲＬ５」、「ＵＲＬ６」）を読み出す。サーバＳは、動的コンテンツ「Ｘ２」、セッションＩＤ「ＡＡＡ」、及びプリフェッチ対象の取得先「ＵＲＬ５」「ＵＲＬ６」を含むレスポンスを生成し、これを中継装置１０に送信する。これにより、中継装置１０は、サーバＳから受信したレスポンスからプリフェッチ対象の取得先「ＵＲＬ５」、「ＵＲＬ６」を抽出し、取得先「ＵＲＬ５」及びセッションＩＤ「ＡＡＡ」を含むリクエストと、取得先「ＵＲＬ６」及びセッションＩＤ「ＡＡＡ」を含むリクエストとを生成し、それぞれをサーバＳに送信することにより、サーバＳから取得したプリフェッチ対象の取得先によって、動的コンテンツをプリフェッチするための処理を行うことができる。
【００６３】
また、上記実施の形態では、動的コンテンツは、サーバＳで発行されたセッションＩＤに基づいて生成されるものを例に説明したが、要求元を識別できる情報に基づいて生成されるものであればよい。セッションＩＤ以外の要求元を識別できる情報には、例えば、ＳＳＬ（Secure Sockets Layer）セッションＩＤ、クライアントＣのＩＰ（Internet Protocol）アドレス、ＭＡＣ（Media Access Control）アドレス、ポート番号、クライアントＣを利用するユーザの認証情報（ユーザＩＤ、パスワード）等がある。
【００６４】
なお、本発明に係る中継装置は、一般的なＰＣ（パーソナルコンピュータ）等により実現できる。この場合、上記実施の形態で説明した動作を実行するためのプログラムをＰＣ等にインストールし、このプログラムをＰＣ等が実行することにより本発明に係る中継装置として機能させることができる。このようなプログラムは、例えば、持ち運び可能な記録媒体等に記録されて配布される。持ち運び可能な記録媒体には、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＢＤ−ＲＯＭ、ＭＯ等がある。
【００６５】
また、ＰＣ等にプログラムを提供する方法は任意である。例えば、プログラムを通信回線の掲示板（ＢＢＳ）にアップロードし、通信回線を介してＰＣ等に配信してもよい。また、プログラムは、プログラムを表す信号により搬送波を変調した変調波により伝送され、この変調波を受信した装置が変調波を復調してプログラムを復元するようにしてもよい。そして、ＰＣ等は、このプログラムを起動して、ＯＳの制御のもと、他のアプリケーションと同様に実行する。これにより、ＰＣ等は、本発明に係る中継装置として機能する。
【００６６】
その他、本発明は、上記実施の形態の説明および図面によって限定されるものではなく、上記実施の形態および図面に適宜変更等を加えることは可能である。
【符号の説明】
【００６７】
１０  中継装置
１１  制御部
１１ａ  取得部
１１ｂ  リクエスト送信部
１１ｃ  コンテンツ取得部
１１ｄ  コンテンツ送信部
１２  記憶部
１２ａ  中継制御プログラム
１２ｂ  取得先情報
１２ｃ  コンテンツテーブル
１３  通信部
Ｓ（Ｓ１、Ｓ２）  サーバ
Ｃ（Ｃ１、Ｃ２）  クライアント
Ｎ  ネットワーク
【図１】
0006374719.tif 000002
【図２】
0006374719.tif 000003
【図３】
0006374719.tif 000004
【図４】
0006374719.tif 000005
【図５】
0006374719.tif 000006
【図６】
0006374719.tif 000007