(57)【要約】クライアントからのＷｅｂコンテンツ取得要求と、Ｗｅｂコンテンツの先読みを行う先読み処理部からの先読み要求とを受信するクライアント接続部と、Ｗｅｂコンテンツ取得要求および先読み要求に対する応答として取得したＷｅｂコンテンツを保存するとともに当該応答を送信するキャッシュ管理部と、キャッシュ管理部から応答を受信し、当該応答のうちＷｅｂコンテンツ取得要求に対する応答を複製する応答複製部と、複製されたＷｅｂコンテンツ取得要求に対する応答を先読み処理部に送信する先読み接続部とを備え、クライアント接続部及びクライアント間の通信と、クライアント接続部及び先読み処理部間の通信と、先読み接続部及び先読み処理部間の通信とは、それぞれ、同じ通信プロトコルにより行われる。
2014034001.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂコンテンツを保存するＷｅｂサーバとネットワークを介して接続され、クライアントが前記Ｗｅｂサーバに要求したＷｅｂコンテンツにリンクするＷｅｂコンテンツの先読みを制御するＷｅｂコンテンツ先読み制御装置であって、
前記クライアントからのＷｅｂコンテンツ取得要求と、前記先読みを行う先読み処理部から送信された先読み要求とを受信するクライアント接続部と、
前記Ｗｅｂコンテンツ取得要求及び前記先読み要求に対する応答として前記Ｗｅｂサーバから取得したＷｅｂコンテンツを保存するとともに当該応答を送信するキャッシュ管理部と、
前記キャッシュ管理部から送信された前記応答を受信し、当該応答のうち前記Ｗｅｂコンテンツ取得要求に対する応答を複製する応答複製部と、
前記複製されたＷｅｂコンテンツ取得要求に対する応答を前記先読み処理部に送信する先読み接続部とを備え、
前記クライアント接続部及び前記クライアント間の通信と、前記クライアント接続部及び前記先読み処理部間の通信と、前記先読み接続部及び前記先読み処理部間の通信とは、それぞれ、同じ通信プロトコルにより行われるＷｅｂコンテンツ先読み制御装置。
【請求項２】
前記先読み要求には、先読み要求であることを示す種別情報が含まれており、
前記応答複製部は、前記先読み要求に対する応答を受信した場合、前記種別情報に基づいて、前記受信した応答が前記先読み要求に対する応答であるか否かを判定し、前記先読み要求に対する応答であると判定した場合、当該受信した応答を複製しない請求項１記載のＷｅｂコンテンツ先読み制御装置。
【請求項３】
前記応答複製部は、前記種別情報に基づいて、前記受信した応答が先読み要求に対する応答でないと判定した場合、当該受信した応答を複製する請求項２記載のＷｅｂコンテンツ先読み制御装置。
【請求項４】
前記先読み要求は、ＨＴＴＰメッセージであり、
前記種別情報は、前記ＨＴＴＰメッセージのＨＴＴＰヘッダに記述された所定の文字列であり、
前記応答複製部は、前記文字列が前記ＨＴＴＰヘッダに含まれている場合、前記ＨＴＴＰメッセージが前記先読み要求であると判定する請求項２又は３記載のＷｅｂコンテンツ先読み制御装置。
【請求項５】
前記先読み要求は、前記先読み処理部及び前記先読み接続部間の通信接続を確立するための第１先読み要求を含み、
前記応答複製部は、前記クライアント接続部により前記第１先読み要求が受信されると、前記先読み接続部及び前記先読み処理部間の通信接続を確立する請求項１〜４のいずれかに記載のＷｅｂコンテンツ先読み制御装置。
【請求項６】
前記先読み要求は、前記Ｗｅｂコンテンツを先読みするための第２先読み要求を含み、
前記応答複製部は、前記キャッシュ管理部から受信した応答が前記第２先読み要求に対する応答であれば、当該応答を複製しない請求項５記載のＷｅｂコンテンツ先読み制御装置。
【請求項７】
前記キャッシュ管理部は、前記第２先読み要求に対する応答を保存していれば、前記保存している応答を前記応答複製部に送信する請求項６記載のＷｅｂコンテンツ先読み制御装置。
【請求項８】
前記Ｗｅｂコンテンツ先読み制御装置は、前記クライアントを更に備え、
前記クライアント接続部は、前記Ｗｅｂコンテンツ先読み制御装置が備えるクライアントから前記Ｗｅｂコンテンツ取得要求を受信する請求項１〜７のいずれかに記載のＷｅｂコンテンツ先読み制御装置。
【請求項９】
前記クライアントは、前記Ｗｅｂコンテンツ先読み制御装置とネットワークを介して接続された計算機が備え、
前記クライアント接続部は、前記クライアントから前記Ｗｅｂコンテンツ取得要求を受信する請求項１〜７のいずれかに記載のＷｅｂコンテンツ先読み制御装置。
【請求項１０】
前記Ｗｅｂコンテンツ先読み制御装置は、前記先読み処理部を更に備え、
前記先読み接続部は、前記複製されたＷｅｂコンテンツ取得要求に対する応答を、前記Ｗｅｂコンテンツ先読み制御装置が備える先読み処理部に送信する請求項１〜７のいずれかに記載のＷｅｂコンテンツ先読み制御装置。
【請求項１１】
前記先読み処理部は、前記Ｗｅｂコンテンツ先読み制御装置とネットワークを介して接続された計算機が備え、
前記先読み接続部は、前記複製されたＷｅｂコンテンツ取得要求に対する応答を、前記先読み処理部に送信する請求項１〜７のいずれかに記載のＷｅｂコンテンツ先読み制御装置。
【請求項１２】
前記Ｗｅｂコンテンツ取得要求及び前記先読み要求を前記Ｗｅｂサーバに送信することで、前記Ｗｅｂサーバからの応答を取得し、取得した応答を前記キャッシュ管理部に送信するサーバ接続部を更に備える請求項１〜１１のいずれかに記載のＷｅｂコンテンツ先読み制御装置。
【請求項１３】
コンピュータを、Ｗｅｂコンテンツを保存するＷｅｂサーバとネットワークを介して接続され、クライアントが前記Ｗｅｂサーバに要求したＷｅｂコンテンツにリンクするＷｅｂコンテンツの先読みを制御するＷｅｂコンテンツ先読み制御装置として機能させるＷｅｂコンテンツ先読み制御プログラムであって、
前記コンピュータを、
前記クライアントからのＷｅｂコンテンツ取得要求と、前記先読みを行う先読み処理部から送信された先読み要求とを受信するクライアント接続部と、
前記Ｗｅｂコンテンツ取得要求及び前記先読み要求に対する応答として前記Ｗｅｂサーバから取得したＷｅｂコンテンツを保存するとともに当該応答を送信するキャッシュ管理部と、
前記キャッシュ管理部から送信された前記応答を受信し、当該応答のうち前記Ｗｅｂコンテンツ取得要求に対する応答を複製する応答複製部と、
前記複製されたＷｅｂコンテンツ取得要求に対する応答を前記先読み処理部に送信する先読み接続部として機能させ、
前記クライアント接続部及び前記クライアント間の通信と、前記クライアント接続部及び前記先読み処理部間の通信と、前記先読み接続部及び前記先読み処理部間の通信とは、それぞれ、同じ通信プロトコルにより行われるＷｅｂコンテンツ先読み制御プログラム。
【請求項１４】
Ｗｅｂコンテンツを保存するＷｅｂサーバとネットワークを介して接続され、クライアントが前記Ｗｅｂサーバに要求したＷｅｂコンテンツにリンクするＷｅｂコンテンツの先読みを制御するＷｅｂコンテンツ先読み制御装置におけるＷｅｂコンテンツ先読み制御方法であって、
前記クライアントからのＷｅｂコンテンツ取得要求と、前記先読みを行う先読み処理部から送信された先読み要求とを受信するクライアント接続ステップと、
前記Ｗｅｂコンテンツ取得要求及び前記先読み要求に対する応答として前記Ｗｅｂサーバから取得したＷｅｂコンテンツを保存するとともに当該応答を送信するキャッシュ管理ステップと、
前記キャッシュ管理ステップにより送信された前記応答を受信し、当該応答のうち前記Ｗｅｂコンテンツ取得要求に対する応答を複製する応答複製ステップと、
前記複製されたＷｅｂコンテンツ取得要求に対する応答を前記先読み処理部に送信する先読み接続ステップとを備え、
前記クライアント接続ステップを行う前記クライアント接続部及び前記クライアント間の通信と、前記クライアント接続部及び前記先読み処理部間の通信と、前記先読み接続ステップを行う前記先読み接続部及び前記先読み処理部間の通信とは、それぞれ、同じ通信プロトコルにより行われるＷｅｂコンテンツ先読み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを先行して取得しキャッシュすることでユーザのウェブページ閲覧を高速化するＷｅｂコンテンツ先読み制御装置に関するものである。
【背景技術】
【０００２】
ＷＷＷシステムにおいて、Ｗｅｂコンテンツ取得の際に生じる遅延を解消する技術として、先読み技術がある。先読み技術では、例えば、ユーザが将来アクセスすると予測されるコンテンツをユーザの閲覧履歴などから抽出し、ネットワーク的に遠隔のＷｅｂサーバからコンテンツを読み出して、プロキシサーバやＷｅｂブラウザ内部にキャッシュ（一時的に保存）しておくことで、Ｗｅｂアクセスが安定且つ高速化される。【０００３】
例えば、特許文献１は、ウェブブラウザがウェブサーバから取得したページを解析し、そのページに動的コンテンツがリンクされていれば、ダミーリクエストをウェブサーバに送信し、ダミーリクエストを受信したウェブサーバがページを作成し、作成したページをウェブブラウザに送信せずにキャッシュに格納する技術を開示する。【０００４】
また、特許文献２は、先読み代理サーバとＰＣとのネットワーク遅延時間を短縮するために、先読み代理サーバとＰＣとの間に、先読み代理サーバが先読みしたＷｅｂ情報を予め蓄積する情報蓄積サーバを介在させた技術を開示する。【０００５】
ところで、先読み技術を実現する上では、汎用性の確保や開発負荷の低減の観点から、プロキシサーバやＷｅｂブラウザに対する変更量はできる限り低減する必要がある。しかしながら、特許文献１では、単に動的リンクを先読みすることが開示されているにすぎない。また、特許文献２では、情報蓄積サーバの通信インタフェースを特殊なインタフェースで実装する必要があり、既存のプロキシサーバを大幅に変更しなければ情報蓄積サーバを構築できないという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１０８１０２号公報
【特許文献２】特開２０１２−３６５２号公報
【発明の概要】
【０００７】
本発明は、係る課題を鑑みてなされたものであり、プロキシサーバの変更量を低減した上で先読み機能を備えることを可能とするＷｅｂコンテンツ先読み制御装置等を提供することを目的とする。
【０００８】
本発明の一態様によるＷｅｂコンテンツ先読み制御装置は、Ｗｅｂコンテンツを保存するＷｅｂサーバとネットワークを介して接続され、クライアントが前記Ｗｅｂサーバに要求したＷｅｂコンテンツにリンクするＷｅｂコンテンツの先読みを制御するＷｅｂコンテンツ先読み制御装置であって、前記クライアントからのＷｅｂコンテンツ取得要求と、前記先読みを行う先読み処理部から送信された先読み要求とを受信するクライアント接続部と、前記Ｗｅｂコンテンツ取得要求及び前記先読み要求に対する応答として前記Ｗｅｂサーバから取得したＷｅｂコンテンツを保存するとともに当該応答を送信するキャッシュ管理部と、前記キャッシュ管理部から送信された前記応答を受信し、当該応答のうち前記Ｗｅｂコンテンツ取得要求に対する応答を複製する応答複製部と、前記複製されたＷｅｂコンテンツ取得要求に対する応答を前記先読み処理部に送信する先読み接続部とを備え、前記クライアント接続部及び前記クライアント間の通信と、前記クライアント接続部及び前記先読み処理部間の通信と、前記先読み接続部及び前記先読み処理部間の通信とは、それぞれ、同じ通信プロトコルにより行われる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態におけるＷｅｂコンテンツ先読み制御装置を含むシステム全体の構成の一例を示す図である。
【図２】実施の形態における接続オブジェクトのデータ構成の一例を示す図である。
【図３】実施の形態における要求オブジェクトのデータ構成の一例を示す図である。
【図４】実施の形態におけるキャッシュオブジェクトのデータ構成の一例を示す図である。
【図５】実施の形態におけるシステムの全体動作の一例を示すシーケンス図である。
【図６Ａ】実施の形態における先読み接続部及び先読み処理部間の通信接続を確立するための先読み要求メッセージの一例を示す図である。
【図６Ｂ】Ｗｅｂコンテンツを先読みするための先読み要求メッセージの一例を示す図である。
【図７】実施の形態における要求処理の一例を示すフローチャートである。
【図８】実施の形態におけるサーバ要求処理の一例を示すフローチャートである。
【図９】実施の形態における応答処理の一例を示すフローチャートである。
【図１０】実施の形態における複製準備処理の一例を示すフローチャートである。
【図１１】実施の形態における複製処理の一例を示すフローチャートである。
【図１２】実施の形態における切断処理の一例を示すフローチャートである。
【図１３】実施の形態におけるリンク解析処理の一例を示すフローチャートである。
【図１４】実施の形態における先読み要求処理の一例を示すフローチャートである。
【図１５】クライアントをＷｅｂコンテンツ先読み制御装置に含めた場合のＷｅｂコンテンツ先読み制御装置を含むシステムの構成の一例を示す図である。
【図１６】情報蓄積部、先読み処理部、及びクライアントをそれぞれ異なる計算機で構成した場合のＷｅｂコンテンツ先読み制御装置を含むシステムの構成の一例を示す図である。
【図１７】情報蓄積部と、クライアント及び先読み処理部とをそれぞれ別の計算機で構成した場合のＷｅｂコンテンツ先読み制御装置を含むシステムの構成の一例を示す図である。
【図１８】Ｗｅｂコンテンツ先読み制御装置を計算機で実現した場合の計算機のハードウェア構成の一例を示す図である。
【図１９】従来のＷｅｂコンテンツ先読み制御装置の構成図である。
【発明を実施するための形態】
【００１０】
（本発明に係る一形態を得るに至った経緯）
図１９は、前述した特許文献２に記載されるような従来のＷｅｂコンテンツ先読み制御装置のブロック図である。Ｗｅｂコンテンツ先読み制御装置は、先読み代理サーバ１５０２及び情報蓄積サーバ１５０３を備える。サーバ１５０１はＷｅｂサーバであり、インターネットを介して先読み代理サーバ１５０２と接続されている。先読み代理サーバ１５０２は、インターネットやＬＡＮに比べて低速な超遅延ネットワークを介して情報蓄積サーバ１５０３と接続されている。情報蓄積サーバ１５０３はＬＡＮを介してクライアント１５１２と接続されている。
【００１１】
情報蓄積サーバ１５０３は、クライアント１５１２のＷｅｂ情報を取得するための要求データを受け付け、サーバ１５０１からＷｅｂ情報を取得してクライアント１５１２に返すプロキシサーバである。ここで、情報蓄積サーバ１５０３は、先読み代理サーバ１５０２がサーバ１５０１から先読みしたＷｅｂ情報を予めキャッシュしている。そのため、情報蓄積サーバ１５０３は、クライアント１５１２から要求データが発行された場合、該当するＷｅｂ情報をキャッシュしていれば、そのＷｅｂ情報をクライアント１５１２に速やかに送信できる。
【００１２】
以下、具体的に説明する。図１９において、クライアント１５１２がＷｅｂ情報を取得するための要求データを発行すると、情報蓄積サーバ１５０３の要求データ受信部１５０５は、ネットワークインタフェース部１５０４を介してその要求データを受信する。そして、要求データ比較部１５０８は、その要求データと同じ要求データが要求データ蓄積部１５０９に蓄積されているか否かを判定する。
【００１３】
要求データ比較部１５０８は、同じ要求データが要求データ蓄積部１５０９に蓄積されていると判定すると、Ｗｅｂ情報蓄積部１５０７に要求データが要求するＷｅｂ情報が格納されているかを問い合わせ、格納されていれば、当該Ｗｅｂ情報をクライアント１５１２に送信するようにＷｅｂ情報送出部１５１１に命令する。命令を受けたＷｅｂ情報送出部１５１１は、Ｗｅｂ情報蓄積部１５０７よりＷｅｂ情報を取り出し、ネットワークインタフェース部１５０４を用いてクライアント１５１２に送信する。
【００１４】
一方、要求データ比較部１５０８は、同じ要求データが要求データ蓄積部１５０９に蓄積されていないと判定すると、要求データ送出部１５１０及びネットワークインタフェース部１５０４を介して、その要求データを先読み代理サーバ１５０２に送信する。要求データを受信した先読み代理サーバ１５０２は、その要求データによって取得されるＷｅｂ情報に関連するＷｅｂ情報をサーバ１５０１から先読みし、先読みしたＷｅｂ情報を情報蓄積サーバ１５０３に一括して送信する。
【００１５】
以上のように従来のＷｅｂコンテンツ先読み制御装置では、プロキシサーバである情報蓄積サーバ１５０３は、先読み代理サーバ１５０２とは完全に独立している。しかしながら、情報蓄積サーバ１５０３は、クライアント１５１２に対してはサーバとして機能すればよいが、先読み代理サーバ１５０２に対してはクライアントとして機能しなければならない。よって、情報蓄積サーバ１５０３は、先読み代理サーバ１５０２と通信するために独自の通信手段を用いる必要が生じ、これを実現するために、ネットワークインタフェース部１５０４を特別なインタフェースで実装しなければならない。よって、従来のＷｅｂコンテンツ先読み制御装置では、既存のプロキシサーバに対して、大幅な変更をしなければ、情報蓄積サーバ１５０３を実現できないという課題がある。
【００１６】
そこで、本発明者は、この課題を解決するために、以下に示す実施の形態に開示する手法を見出した。以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１７】
（実施の形態）
図１は、実施の形態に係るＷｅｂコンテンツ先読み制御装置１００を含むシステムの全体構成の一例を示すブロック図である。
【００１８】
Ｗｅｂコンテンツ先読み制御装置１００は、端末１３０及びＷｅｂサーバ１４０のそれぞれとネットワークを介して接続されている。ここで、Ｗｅｂコンテンツ先読み制御装置１００及びＷｅｂサーバ１４０間のネットワークとしては、例えば、インターネットが採用される。また、Ｗｅｂコンテンツ先読み制御装置１００及び端末１３０間のネットワークとしては、例えば、ＬＡＮ（Local Area Network）であってもよいし、インターネットであってもよい。いずれにしても、ネットワークとしては、ＴＣＰ／ＩＰ等のインターネットのプロトコルを採用するものであれば、どのようなネットワークが採用されてもよい。
【００１９】
端末１３０は、例えば、計算機により構成され、クライアント１３１を備える。クライアント１３１は、端末１３０のプロセッサが所定のプログラムを実行することで実現され、利用者の要求に応じてＨＴＴＰ（Hypertext Transfer Protocol）要求を生成して送信する機能と、ＨＴＴＰ応答（応答の一例）を解釈して利用者に提示する機能とを有する。クライアント１３１の一例としてＷｅｂブラウザが挙げられる。ここで、クライアント１３１は、ＨＴＴＰ応答を解釈して画像データや音声データを生成し、端末１３０の表示部に表示したり、音声をスピーカから出力したりすることで、ＨＴＴＰ応答を利用者に提示すればよい。
【００２０】
Ｗｅｂサーバ１４０は、例えば、計算機により構成され、オリジナルのＷｅｂコンテンツを保持し、クライアント１３１から送信されるＨＴＴＰ要求を受信し、受信したＨＴＴＰ要求を解釈してＨＴＴＰ要求が取得を要求するＷｅｂコンテンツを特定し、特定したＷｅｂコンテンツをＨＴＴＰ応答としてクライアント１３１に返信する。
【００２１】
Ｗｅｂコンテンツ先読み制御装置１００は、例えば、計算機により構成され、クライアント１３１からＷｅｂサーバ１４０へのＷｅｂアクセスを受け付けると、クライアント１３１を代理してＷｅｂサーバ１４０にアクセスし、Ｗｅｂサーバ１４０からＨＴＴＰ応答を取得してクライアント１３１に送信する。また、Ｗｅｂコンテンツ先読み制御装置１００は、Ｗｅｂサーバ１４０からのＨＴＴＰ応答として取得したＷｅｂコンテンツにリンクするＷｅｂコンテンツの先読みを行う。
【００２２】
Ｗｅｂコンテンツ先読み制御装置１００は、情報蓄積部１１０及び先読み処理部１２０を備える。
【００２３】
情報蓄積部１１０は、クライアント１３１からＷｅｂコンテンツ取得要求又は先読み処理部１２０から先読み要求を受信すると、Ｗｅｂサーバ１４０にアクセスし、Ｗｅｂサーバ１４０からＨＴＴＰ応答を取得する。情報蓄積部１１０は、Ｗｅｂサーバ１４０からＨＴＴＰ応答として取得したＷｅｂコンテンツを保存するとともに、必要に応じてクライアント１３１及び先読み処理部１２０に送信する。このとき、情報蓄積部１１０は、クライアント１３１、Ｗｅｂサーバ１４０、及び先読み処理部１２０のそれぞれと、ＨＴＴＰにより通信する。本実施の形態では、情報蓄積部１１０は、プロキシサーバとして機能する。
【００２４】
情報蓄積部１１０は、サーバ接続部１１１、キャッシュ管理部１１２、クライアント接続部１１３、応答複製部１１４、及び先読み接続部１１５を備える。
【００２５】
サーバ接続部１１１は、Ｗｅｂサーバ１４０との通信接続を管理し、ＨＴＴＰメッセージをＷｅｂサーバ１４０と送受信する機能を有する。具体的には、キャッシュ管理部１１２からＨＴＴＰ要求を受信してＷｅｂサーバ１４０に送信するとともに、Ｗｅｂサーバ１４０からＨＴＴＰ応答を受信してキャッシュ管理部１１２に送信する。なお、ＨＴＴＰメッセージとしては、例えば、ＨＴＴＰ要求と、ＨＴＴＰ要求に対する応答であるＨＴＴＰ応答とが含まれる。ＨＴＴＰメッセージとしては、典型的にはＲＦＣ２６１６の規定に則したメッセージが採用される。
【００２６】
Ｗｅｂコンテンツ先読み制御装置１００はメインメモリまたはハードディスクなどの記憶装置（図示せず）を備え、この記憶装置には、例えば専用のキャッシュ領域が設けられている。
【００２７】
キャッシュ管理部１１２は、Ｗｅｂサーバ１４０から取得したＨＴＴＰ応答をキャッシュ領域に保存する。キャッシュ管理部１１２は、クライアント接続部１１３からＨＴＴＰ要求を受信すると、キャッシュ領域に保存したＨＴＴＰ応答の中からＨＴＴＰ要求に対するＨＴＴＰ応答を検索する。検索の結果、受信したＨＴＴＰ要求に対するＨＴＴＰ応答が存在する場合、キャッシュ管理部１１２は、そのＨＴＴＰ応答を応答複製部１１４に送信する。一方、受信したＨＴＴＰ要求に対するＨＴＴＰ応答が存在しない場合、キャッシュ管理部１１２は、受信したＨＴＴＰ要求をサーバ接続部１１１に送信する。
【００２８】
クライアント接続部１１３は、ＨＴＴＰメッセージを、クライアント１３１と、先読み処理部１２０とのそれぞれの間で送受信する機能を有する。具体的には、クライアント接続部１１３は、クライアント１３１から通常のＨＴＴＰ要求（Ｗｅｂコンテンツ取得要求の一例）と、先読み処理部１２０から先読みに関するＨＴＴＰ要求とを受信し、キャッシュ管理部１１２に送信する。このとき、クライアント接続部１１３は、ＨＴＴＰ要求を、キャッシュ管理部１１２に直接送信してもよいし、応答複製部１１４を介して送信してもよい。応答複製部１１４を介して送信を行う場合、応答複製部１１４は、受信したＨＴＴＰ要求を処理することなくそのままキャッシュ管理部１１２へ送信する。
【００２９】
また、クライアント接続部１１３は、応答複製部１１４から、通常のＨＴＴＰ応答を受信し、クライアント１３１及び先読み処理部１２０に送信する。
【００３０】
また、クライアント接続部１１３は、クライアント１３１にＨＴＴＰメッセージを送受信する際のクライアント１３１との通信接続を管理すると共に、先読み処理部１２０にＨＴＴＰメッセージを送受信する際の先読み処理部１２０との通信接続を管理する。具体的にはクライアント接続部１１３は、ＨＴＴＰメッセージを送受信する際に確立される通信接続を表す接続オブジェクトを用いてクライアント１３１及び先読み処理部１２０との通信接続を管理する。接続オブジェクトの具体例については後述する。
【００３１】
応答複製部１１４は、キャッシュ管理部１１２からＨＴＴＰ応答を受信し、クライアント接続部１１３に送信する。このとき、応答複製部１１４は、受信したＨＴＴＰ応答が通常のＨＴＴＰ要求に対する通常のＨＴＴＰ応答である場合、この通常のＨＴＴＰ応答を複製し、先読み接続部１１５に送信する。つまり、応答複製部１１４は、キャッシュ管理部１１２から通常のＨＴＴＰ応答を受信すると、通常のＨＴＴＰ応答をクライアント接続部１１３に送信すると共に、複製した通常のＨＴＴＰ応答を先読み接続部１１５に送信する。これにより、通常のＨＴＴＰ応答がクライアント接続部１１３を介してクライアント１３１に送信され、クライアント１３１は受信した通常のＨＴＴＰ応答を表示部に表示する。また、通常のＨＴＴＰ応答が先読み接続部１１５を介して先読み処理部１２０に送信され、先読み処理部１２０はＨＴＴＰ応答のリンク先を解析する。
【００３２】
一方、受信したＨＴＴＰ応答が、先読みに関するＨＴＴＰ要求に対するＨＴＴＰ応答（以下、「先読みに関するＨＴＴＰ応答」と称する。）である場合、応答複製部１１４は、この先読みに関するＨＴＴＰ応答を複製せず、先読み接続部１１５に送信しない。これにより、先読みされたＨＴＴＰ応答に対して更に先読みが行われ、先読みの連鎖が無限に続くことを防止できる。
【００３３】
なお、応答複製部１１４は、クライアント接続部１１３からＨＴＴＰ要求を受信してもよいし、受信しなくてもよい。応答複製部１１４は、クライアント接続部１１３からＨＴＴＰ要求を受信する場合は、そのＨＴＴＰ要求を処理することなくそのままキャッシュ管理部１１２へ送信すればよい。
【００３４】
先読み接続部１１５は、応答複製部１１４から受信した通常のＨＴＴＰ応答を先読み処理部１２０へ送信する。また、先読み接続部１１５は、先読み処理部１２０にＨＴＴＰ応答を送信する際の先読み処理部１２０との通信接続を管理する。ここで、先読み接続部１１５は、先読み接続部１１５及び先読み処理部１２０間で確立される通信接続を表す接続オブジェクトを用いて通信接続を管理すればよい。接続オブジェクトの具体例については後述する。
【００３５】
また、本実施の形態においては、クライアント接続部１１３と先読み接続部１１５とは異なる機能ブロックとしているが、先読み接続部１１５は、先読みに関するＨＴＴＰ応答を先読み処理部１２０に送信する以外は、クライアント接続部１１３と同様である。そのため、クライアント接続部１１３に先読み接続部１１５の機能を持たせ、先読み接続部１１５をＷｅｂコンテンツ先読み制御装置１００から省いてもよい。
【００３６】
以上に説明したＷｅｂコンテンツ先読み制御装置１００は、クライアント接続部１１３及びクライアント１３１間の通信と、クライアント接続部１１３及び先読み処理部１２０間の通信と、先読み接続部１１５及び先読み処理部１２０間の通信とが同じ通信プロトコル（例えば、前述したＨＴＴＰ）を用いて行われる。
【００３７】
そのため、サーバ接続部１１１、キャッシュ管理部１１２、及びクライアント接続部１１３を備える従来のプロキシサーバに、応答複製部１１４及び先読み接続部１１５を追加することで情報蓄積部１１０を実現できる。更に、プロキシサーバは、先読み処理部１２０を独立したプロセスとして取り扱い、クライアント１３１と同様にクライアントとして取り扱うことができる。したがって、従来のプロキシサーバに対する変更量を小さくして、Ｗｅｂコンテンツ先読み制御装置１００を構築できる。
【００３８】
なお、情報蓄積部１１０及び先読み処理部１２０は、計算機上で独立して動作するプロセスとして実現できる。そして、これらのプロセスは所定の通信プロトコルを用いて相互に通信できる。所定の通信プロトコルとしてはＨＴＴＰを採用すればよい。
【００３９】
先読み処理部１２０は、先読み接続部１１５から受信した、先読みに関するＨＴＴＰ応答を解析し、先読みに関するＨＴＴＰ要求をクライアント接続部１１３に送信する。先読み処理部１２０は、リンク処理部１２１及び要求生成部１２２を備える。
【００４０】
リンク処理部１２１は、先読み接続部１１５から受信したＨＴＴＰ応答内に含まれるリンクを抽出し、抽出したリンクを示すリンク情報を要求生成部１２２に渡す。リンク処理部１２１は、ＨＴＴＰ応答内に複数のリンクが含まれる場合は、それら複数のリンクを抽出する。
【００４１】
要求生成部１２２は、リンク処理部１２１から受け取ったリンク情報に基づいて、そのリンク情報が示すリンクへのＨＴＴＰ要求を生成し、クライアント接続部１１３に送信する。要求生成部１２２は、リンク処理部１２１から複数のリンク情報を受け取った場合、１つのリンクに対して１つのＨＴＴＰ要求を生成する。
【００４２】
図２は、クライアント接続部１１３及び先読み接続部１１５が管理する接続オブジェクトのデータ構成の一例を示す図である。接続オブジェクトは、「ファイルディスクリプタ」のフィールドを備える。「ファイルディスクリプタ」のフィールドには、通信接続の識別子であるファイルディスクリプタが登録されている。図２の例では、ファイルディスクリプタのフィールドには「５０」が登録されている。
【００４３】
図３は、情報蓄積部１１０がＨＴＴＰ要求を内部で処理するための要求オブジェクトのデータ構成の一例を示す図である。要求オブジェクトは、「ヘッダ」、「ボディ」、及び「接続オブジェクト」のフィールドを備える。「ヘッダ」のフィールドにはＨＴＴＰ要求を構成するヘッダ部を保持するメモリアドレスが登録されている。「ボディ」のフィールドにはＨＴＴＰ要求を構成するボディ部を保持するメモリアドレスが登録されている。「接続オブジェクト」のフィールドにはＨＴＴＰ要求を受信した通信接続に対してＨＴＴＰ応答を送信するために、その通信接続を示す接続オブジェクトのポインタが登録されている。図３の例では、「ヘッダ」のフィールドには、ヘッダ部を保持するメモリアドレスとして「０ｘ８００Ｆ０１００」が登録され、「ボディ」のフィールドにはボディ部を保持するメモリアドレスとして「０ｘ８００Ｆ１３００」が登録され、「接続オブジェクト」のフィールドには接続オブジェクトへのポインタとして「０ｘ９０１１７７２０」が登録されている。
【００４４】
図４は、キャッシュ管理部１１２が管理するキャッシュオブジェクト４０１のデータ構成の一例を示す図である。キャッシュオブジェクト４０１は、「要求オブジェクト」、「応答ヘッダ」、「応答ボディ」、及び「メッセージ処理」のフィールドを備える。「要求オブジェクト」のフィールド４０２には、要求オブジェクトリスト４０４へのポインタが登録されている。「応答ヘッダ」のフィールドにはＷｅｂサーバ１４０から送信されたＨＴＴＰ応答を構成するヘッダ部へのポインタが登録されている。「応答ボディ」のフィールドにはＨＴＴＰ応答を構成するボディ部へのポインタが登録されている。「メッセージ処理」のフィールド４０３には、手続きリスト４０９へのポインタが登録されている。
【００４５】
図４の例では、「要求オブジェクト」のフィールドには、要求オブジェクトリスト４０４へのポインタとして「０ｘ９０１０６Ａ００」が登録され、「応答ヘッダ」のフィールドには応答ヘッダのメモリアドレスとして「０ｘ８０１０Ｃ０００」が登録され、「応答ボディ」のフィールドには応答ボディのメモリアドレスとして「０ｘ８０１０Ｃ８００」が登録され、「メッセージ処理」のフィールドには、手続きリスト４０９へのポインタとして「０ｘ９０１００２３４」が登録されている。
【００４６】
要求オブジェクトリスト４０４は、キャッシュオブジェクト４０１の「要求オブジェクト」のフィールド４０２に登録されたポインタによってキャッシュオブジェクト４０１と関連付けられている。図４の例では、要求オブジェクトリスト４０４は、要求オブジェクト４０５及び要求オブジェクト４０６の２つの要求オブジェクトを含んでおり、これら２つの要求オブジェクトがキャッシュオブジェクト４０１と関連付けられている。また、図４の例では、要求オブジェクト４０５及び要求オブジェクト４０６には、それぞれ、接続オブジェクト４０７及び接続オブジェクト４０８へのポインタが登録されている。これにより、要求オブジェクト４０５は接続オブジェクト４０７と関連付けられ、要求オブジェクト４０６は接続オブジェクト４０８と関連付けられている。
【００４７】
また、図４の例では、手続きリスト４０９は、キャッシュオブジェクト４０１の「メッセージ処理」のフィールド４０３に登録されたポインタによってキャッシュオブジェクト４０１と関連付けられている。手続きリスト４０９は、サーバ要求処理及び応答処理が登録されている。サーバ要求処理は要求オブジェクト４０５、４０６に示されるＨＴＴＰ要求に対するＨＴＴＰ応答をＷｅｂサーバ１４０から取得するための処理である。応答処理は要求オブジェクト４０５、４０６に示されるＨＴＴＰ要求に対するＨＴＴＰ応答をクライアント１３１及び先読み処理部１２０に送信するための処理である。
【００４８】
図５は、実施の形態に係るＷｅｂコンテンツ先読み制御装置１００を含むシステム全体の動作の一例を表すシーケンス図である。
【００４９】
クライアント１３１、先読み処理部１２０、情報蓄積部１１０、及びＷｅｂサーバ１４０は、図１に示すように構成されており、互いにＨＴＴＰで通信するものとする。図５の例では、Ｗｅｂサーバ１４０は「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ」のドメイン名によって識別され、クライアント１３１は、Ｗｅｂサーバ１４０に格納された、ファイル名が「ｉｎｄｅｘ．ｈｔｍｌ」のコンテンツにアクセスするものとする。
【００５０】
また、「ｉｎｄｅｘ．ｈｔｍｌ」は、「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｅｘａｍｐｌｅ．ｍｏｖ」へのリンクを含むものとする。また、図５の例で示す動作の開始前には、「ｉｎｄｅｘ．ｈｔｍｌ」及び「ｅｘａｍｐｌｅ．ｍｏｖ」は、情報蓄積部１１０に保存されていないものとする。
【００５１】
まず、クライアント１３１は、「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」で参照されるＷｅｂコンテンツを取得するための通常のＨＴＴＰ要求を情報蓄積部１１０に送信する（ステップ５０１）。
【００５２】
情報蓄積部１１０は、自身が管理するキャッシュの中から該当するＷｅｂコンテンツを検索する。図５の例では、「ｉｎｄｅｘ．ｈｔｍｌ」のエントリが存在しないため、情報蓄積部１１０は、「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ」で参照されるＷｅｂサーバ１４０へ通常のＨＴＴＰ要求を転送する（ステップ５０２）。
【００５３】
Ｗｅｂサーバ１４０には「ｉｎｄｅｘ．ｈｔｍｌ」で参照されるＷｅｂコンテンツが存在するため、Ｗｅｂサーバ１４０は、要求が成功した旨のステータスコード（２００  ＯＫ）とともに「ｉｎｄｅｘ．ｈｔｍｌ」を情報蓄積部１１０に返信する（ステップ５０３）。
【００５４】
情報蓄積部１１０は、Ｗｅｂサーバ１４０から受信したＷｅｂコンテンツ（ｉｎｄｅｘ．ｈｔｍｌ）をＷｅｂコンテンツ先読み制御装置１００が有するメインメモリまたはハードディスクなどの記憶装置（図示せず）に設けた専用のキャッシュ領域に保存し、このＷｅｂコンテンツをクライアント１３１に返信する（ステップ５０４）。
【００５５】
このとき、情報蓄積部１１０は、ステップ５０３で受信したＷｅｂコンテンツを複製し、先読み処理部１２０へも送信する（ステップ５０５）。
【００５６】
先読み処理部１２０は、受信したコンテンツのリンク（ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｅｘａｍｐｌｅ．ｍｏｖ）を抽出し、先読みに関するＨＴＴＰ要求を生成し、情報蓄積部１１０へ送信する（ステップ５０６）。
【００５７】
情報蓄積部１１０は、先読み処理部１２０から先読み要求に関するＨＴＴＰ要求を受信すると、クライアント１３１から送信された通常のＨＴＴＰ要求と同様に自身が管理するキャッシュ領域を検索する。図５の例では、「ｅｘａｍｐｌｅ．ｍｏｖ」のエントリが見つからないため、情報蓄積部１１０は、Ｗｅｂサーバ１４０へ先読みに関するＨＴＴＰ要求を転送する（ステップ５０７）。
【００５８】
Ｗｅｂサーバ１４０には「ｅｘａｍｐｌｅ．ｍｏｖ」で参照されるコンテンツが存在するため、Ｗｅｂサーバ１４０は、要求が成功した旨のステータスコード（２００  ＯＫ）とともに「ｅｘａｍｐｌｅ．ｍｏｖ」で参照されるＷｅｂコンテンツを情報蓄積部１１０に返信する（ステップ５０８）。
【００５９】
情報蓄積部１１０は、Ｗｅｂサーバ１４０から受信したコンテンツ（ｅｘａｍｐｌｅ．ｍｏｖ）を自身が管理するキャッシュ領域に保存する。なお、ステップ５０６において情報蓄積部１１０が受信するＨＴＴＰ要求は先読みに関するＨＴＴＰ要求であるため、ステップ５０８が終了した時点では、情報蓄積部１１０は、ＨＴＴＰ要求に成功した旨の返答を先読み処理部１２０に送信しない。但し、これは一例であり、ステップ５０８が終了した時点で、情報蓄積部１１０は、当該返答を先読み処理部１２０に送信してもよい。
【００６０】
次に、クライアント１３１は、「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｅｘａｍｐｌｅ．ｍｏｖ」で参照されるコンテンツを取得するための通常のＨＴＴＰ要求を情報蓄積部１１０に送信する（ステップ５０９）。この通常のＨＴＴＰ要求は、例えば、ステップ５０４でクライアント１３１が受信した「ｉｎｄｅｘ．ｈｔｍｌ」に含まれる「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｅｘａｍｐｌｅ．ｍｏｖ」へのリンクを利用者が入力装置を用いてクリックすることで行われる。
【００６１】
情報蓄積部１１０は、自身が管理するキャッシュ領域を検索する。この場合、先読み処理部１２０がステップ５０６において、先読みに関するＨＴＴＰ要求を送信したため、Ｗｅｂコンテンツ（ｅｘａｍｐｌｅ．ｍｏｖ）がキャッシュされている。そのため、情報蓄積部１１０は、Ｗｅｂサーバ１４０にＨＴＴＰ要求を転送せず、キャッシュされているＷｅｂコンテンツをクライアント１３１に返信する（ステップ５１０）。
【００６２】
図５の例では、以上のような動作により、クライアント１３１から発行される「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を取得するためのＨＴＴＰ要求に伴って、「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｅｘａｍｐｌｅ．ｍｏｖ」で参照されるＷｅｂコンテンツが先読みされて、情報蓄積部１１０にキャッシュされる。そのため、「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｅｘａｍｐｌｅ．ｍｏｖ」で参照されるＷｅｂコンテンツは、このＷｅｂコンテンツを取得するための通常のＨＴＴＰ要求がクライアント１３１から発行される前に情報蓄積部１１０にキャッシュされる。
【００６３】
図６Ａ、図６Ｂは、先読み処理部１２０の生成する情報蓄積部１１０へのＨＴＴＰ要求の一例を示す図である。
【００６４】
図６Ａは、先読み接続部１１５及び先読み処理部１２０間の通信接続を確立するための先読み要求メッセージ６０１（第１先読み要求）の一例を示す図である。先読み要求メッセージ６０１は、先読み接続部１１５との通信接続を確立するために、先読み処理部１２０がクライアント接続部１１３に送信するＨＴＴＰ要求である。先読み要求メッセージ６０１は、クライアント１３１から送信される通常のＨＴＴＰ要求や、図６Ｂに示すＷｅｂコンテンツを先読みするための先読み要求メッセージ６０２と区別される必要がある。ＲＦＣ２６１６で定義されるＨＴＴＰ要求の形式では、先読み要求メッセージ６０１であることを示す文字列をヘッダ部に定義できる。本実施の形態では、先読み要求メッセージ６０１であることを示す文字列として、例えば、「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」を用いる。一方、クライアント１３１からの通常のＨＴＴＰ要求や、後述する先読み要求メッセージ６０２のヘッダ部には、「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」は記述されない。これにより、クライアント接続部１１３は、「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」の有無により、先読み要求メッセージ６０１を区別できる。なお、先読み要求メッセージ６０１を区別するための文字列である「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」は一例にすぎず、他の要求メッセージと区別できる文字列であればどのような文字列が採用されてもよい。
【００６５】
図６Ｂは、Ｗｅｂコンテンツを先読みするための先読み要求メッセージ６０２の一例を示す図である。先読み要求メッセージ６０２は、先読み処理部１２０が情報蓄積部１１０に対して先読みを指示するために送信するＨＴＴＰ要求である。なお、先読み要求メッセージ６０２は、先読み要求メッセージ６０１により先読み処理部１２０及び先読み接続部１１５間の通信接続が確立された後に先読み処理部１２０からクライアント接続部１１３に送信される。
【００６６】
先読み要求メッセージ６０２は、クライアント１３１から送信される通常のＨＴＴＰ要求と区別される必要がある。ＲＦＣ２６１６で定義されるＨＴＴＰ要求の形式では、先読み要求メッセージ６０２であることを示す文字列をＨＴＴＰヘッダに定義できる。本実施の形態では、先読み要求メッセージ６０２であることを示すＨＴＴＰヘッダの文字列として「ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」（種別情報の一例）を用いる。一方、クライアント１３１からの通常のＨＴＴＰ要求のヘッダ部には、「ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」は記述されない。これにより、応答複製部１１４は、「ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」の有無により、先読み要求メッセージ６０２を区別できる。なお、先読み要求メッセージ６０２を区別するための文字列である「ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」は一例にすぎず、他の要求メッセージと区別できる文字列であればどのような文字列が採用されてもよい。
【００６７】
情報蓄積部１１０は、図６Ｂに示す先読み要求メッセージ６０２を受信した場合、クライアント１３１から送信された通常のＨＴＴＰ要求を受信した場合と同様、キャッシュ管理部１１２に検索処理を実行させたり、Ｗｅｂサーバ１４０にＨＴＴＰ要求を送信したりするが、先読み要求メッセージ６０２に対するＨＴＴＰ応答を複製しない。したがって、先読み処理部１２０が、先読み要求メッセージ６０２に対するＨＴＴＰ応答から更に先読み要求メッセージ６０２を生成するといった処理を繰り返すことを防止できる。そのため、先読みの連鎖が無限に続くことを防止でき、必要以上に先読みが行われることが防止され、Ｗｅｂコンテンツ先読み制御装置１００の処理負担を軽減できる。
【００６８】
図７は、キャッシュ管理部１１２が行う要求処理の一例を示すフローチャートである。
【００６９】
キャッシュ管理部１１２は、クライアント接続部１１３を介してＨＴＴＰ要求を受信すると、図３に示す要求オブジェクトを生成し、当該ＨＴＴＰ要求の内容を、生成した要求オブジェクトの「ヘッダ」及び「ボディ」のそれぞれのフィールドに登録する（ステップ７０１）。具体的には、キャッシュ管理部１１２は、ＨＴＴＰ要求を構成するヘッダ部及びボディ部をメモリに保存し、ヘッダ部を保存するメモリアドレスを「ヘッダ」のフィールドに登録し、ボディ部を保存するメモリアドレスを「ボディ」のフィールドに登録する。
【００７０】
次に、キャッシュ管理部１１２は、クライアント接続部１１３がＨＴＴＰ要求を受信した際の通信接続を示す接続オブジェクトを、そのＨＴＴＰ要求に対応する要求オブジェクトに登録する（ステップ７０２）。図４において、要求オブジェクト４０５が生成されたとすると、キャッシュ管理部１１２は、要求オブジェクト４０５の「接続オブジェクト」のフィールドに接続オブジェクト４０７のポインタを登録する。
【００７１】
次に、キャッシュ管理部１１２は、受信したＨＴＴＰ要求が先読み要求メッセージ６０１であるか否かを判定する（ステップ７０３）。具体的には、キャッシュ管理部１１２は、受信したＨＴＴＰ要求に対応する要求オブジェクトの「ヘッダ」のフィールドに登録されたメモリアドレスに保存されたヘッダ部を読み出し、読み出したヘッダ部に、図６Ａで示した「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」が記述されているか否かにより、受信したＨＴＴＰ要求が先読み要求メッセージ６０１であるか否かを判定する。
【００７２】
受信したＨＴＴＰ要求のヘッダ部に「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」が含まれている場合（ステップ７０３がＮｏ）、キャッシュ管理部１１２は、受信したＨＴＴＰ要求が先読み要求メッセージ６０１であると判定し、応答複製部１１４に複製準備処理を依頼する（ステップ７０４）。そして、複製準備処理が終了すると処理が終了される。これにより、先読み接続部１１５及び先読み処理部１２０間の通信接続が確立される。
【００７３】
一方、受信したＨＴＴＰ要求のヘッダ部に「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」が含まれていない場合（ステップ７０３がＹｅｓ）、キャッシュ管理部１１２は、受信したＨＴＴＰ要求が先読み要求メッセージ６０１でないと判定し、処理をステップ７０５に進める。
【００７４】
次に、キャッシュ管理部１１２は、ステップ７０１で生成した要求オブジェクトを用いてキャッシュ領域に保存されたキャッシュオブジェクトを検索する（ステップ７０５）。
【００７５】
キャッシュ管理部１１２は、要求オブジェクトに対応するキャッシュオブジェクト４０１がキャッシュ領域に保存されている場合（ステップ７０５がＹｅｓ）、当該キャッシュオブジェクト４０１に応答処理を登録する（ステップ７０８）。具体的には、キャッシュ管理部１１２は、図４に示すようにキャッシュオブジェクト４０１の「メッセージ処理」のフィールド４０３に登録されたポインタが指示する手続きリスト４０９に応答処理を登録する（ステップ７０８）。
【００７６】
なお、ステップ７０８において、受信したＨＴＴＰ要求のヘッダ部に「ｘ−ｐｒｅｆｅｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」が含まれており、そのＨＴＴＰ要求が先読み要求メッセージ６０２である場合、クライアント１３１及び先読み処理部１２０にＨＴＴＰ応答を送信する必要がないため、キャッシュ管理部１１２は、応答処理の登録を行わない。つまり、ステップ７０８において、キャッシュ管理部１１２は、受信したＨＴＴＰ要求が通常のＨＴＴＰ要求である場合にのみ応答処理を登録する。
【００７７】
一方、要求オブジェクトに対応するキャッシュオブジェクトがキャッシュ領域に保存されていない場合（ステップ７０５がＮｏ）、キャッシュ管理部１１２は、キャッシュオブジェクト４０１を新規に作成する（ステップ７０６）。そして、キャッシュ管理部１１２は、新規に作成したキャッシュオブジェクト４０１の「メッセージ処理」のフィールド４０３に登録されたポインタが指示する手続きリスト４０９にサーバ要求処理を登録（ステップ７０７）した後、要求オブジェクトが通常のＨＴＴＰ要求であれば、この手続きリスト４０９に応答処理を登録する（ステップ７０８）。
【００７８】
次に、キャッシュ管理部１１２は、応答複製部１１４に複製処理を依頼し、その完了を待つ（ステップ７０９）。
【００７９】
次に、キャッシュ管理部１１２は、ステップ７０８で応答処理を登録したキャッシュオブジェクト４０１について、「メッセージ処理」のフィールド４０３に登録されたポインタが指示する手続きリスト４０９に登録されている処理を登録された順に実行する（ステップ７１０）。例えば、ステップ７０５においてキャッシュ検索にミスした場合、キャッシュ管理部１１２は、サーバ要求処理と応答処理とを順に実行し、キャッシュ検索がヒットした場合、キャッシュ管理部１１２は、応答処理のみを実行する。
【００８０】
図８は、情報蓄積部１１０がＷｅｂサーバ１４０からＷｅｂコンテンツを取得するためのサーバ要求処理の一例を示すフローチャートである。
【００８１】
サーバ要求処理は、キャッシュにＷｅｂサーバ１４０からのＨＴＴＰ応答が保存されていない場合に実行される。したがって、この処理が実行されるときは、図７のステップ７０１で生成された要求オブジェクトのＨＴＴＰ応答がキャッシュオブジェクト４０１に登録されていない状態にある。なお、サーバ要求処理は図７のステップ７１０で実行される処理である。
【００８２】
まず、サーバ接続部１１１は、キャッシュ管理部１１２から要求オブジェクトを受信し、Ｗｅｂサーバ１４０からＷｅｂコンテンツを取得するためのＨＴＴＰ要求を生成する（ステップ８０１）。
【００８３】
次に、サーバ接続部１１１は、生成したＨＴＴＰ要求をＷｅｂサーバ１４０へ送信し、Ｗｅｂサーバ１４０からのＨＴＴＰ応答を待つ（ステップ８０２）。
【００８４】
次に、サーバ接続部１１１は、Ｗｅｂサーバ１４０からのＨＴＴＰ応答を受信すると（ステップ８０３）、キャッシュ管理部１１２は、そのＨＴＴＰ応答の内容をキャッシュオブジェクト４０１に書き込む（ステップ８０４）。図４の例では、キャッシュ管理部１１２は、まず、ＨＴＴＰ応答をメモリに保存する。そして、キャッシュ管理部１１２は、キャッシュオブジェクト４０１の「応答ヘッダ」のフィールドにＨＴＴＰ応答のヘッダ部を保存するメモリアドレスを登録し、「応答ボディ」のフィールドにＨＴＴＰ応答のボディ部を保存するメモリアドレスを登録することで、ＨＴＴＰ応答の内容をキャッシュオブジェクト４０１に書き込む。
【００８５】
次に、キャッシュ管理部１１２は、ＨＴＴＰ応答の内容を書き込んだキャッシュオブジェクトをキャッシュ領域に登録し（ステップ８０５）、処理を終了する。
【００８６】
図９は、情報蓄積部１１０からクライアント１３１への応答処理の一例を示すフローチャートである。なお、応答処理は、図７のステップ７１０で実行される処理である。
【００８７】
以下のステップは、キャッシュオブジェクト４０１に関連付けられた要求オブジェクトリスト４０４に含まれる要求オブジェクトそれぞれに適用される。
【００８８】
キャッシュ管理部１１２は、要求オブジェクトリスト４０４に含まれる要求オブジェクトをそれぞれ取得し（ステップ９０１）、取得した要求オブジェクトのそれぞれに関連付けられた接続オブジェクトを取得する（ステップ９０２）。図４の例では、要求オブジェクトリスト４０４には要求オブジェクト４０５、４０６が含まれているため、キャッシュ管理部１１２は、要求オブジェクト４０５に関連付けられた接続オブジェクト４０７と、要求オブジェクト４０６に関連付けられた接続オブジェクト４０８とを取得する。
【００８９】
次に、キャッシュ管理部１１２は、該当するキャッシュオブジェクトからＨＴＴＰ応答を生成する（ステップ９０３）。生成されたＨＴＴＰ応答は、取得された接続オブジェクトと併せて応答複製部１１４を介してクライアント接続部１１３に送信される。
【００９０】
次に、クライアント接続部１１３は、受信したＨＴＴＰ応答を、受信した接続オブジェクトが示す通信接続を介してクライアント１３１に送信する（ステップ９０４）。図４の例では、キャッシュオブジェクト４０１の「応答ヘッダ」や「応答ボディ」のフィールドに登録された内容を含むＨＴＴＰ応答が生成され、そのＨＴＴＰ応答が接続オブジェクト４０７で指示する通信接続に送信され、接続オブジェクト４０８で指示する通信接続に送信される。
【００９１】
図１０は、図７のステップ７０４の複製準備処理の一例を示すフローチャートである。この処理は、先読み要求メッセージ６０１、すなわち、「ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ」の文字列が記載されたＨＴＴＰ要求が受信された場合に実行される。
【００９２】
まず、応答複製部１１４は、後述する複製処理で利用するために現在の接続オブジェクトをメモリ上に保存する（ステップ１００１）。ここで、現在の接続オブジェクトとは、先読み処理部１２０が先読み要求メッセージ６０１をクライアント接続部１１３に送信したした際に使用した通信接続を示す接続オブジェクトである。
【００９３】
次に、応答複製部１１４は、先読み要求メッセージ６０１の受信処理が正常に完了した旨のＨＴＴＰ応答を作成し（ステップ１００２）、そのＨＴＴＰ応答を、先読み接続部１１５を介して先読み処理部１２０に返信する（ステップ１００３）。これにより、先読み接続部１１５及び先読み処理部１２０間の通信接続が確立される。
【００９４】
ＨＴＴＰでは、ＨＴＴＰ要求に対するＨＴＴＰ応答が得られると通信接続が切断される。したがって、ステップ１００３でＨＴＴＰ応答が先読み処理部１２０に送信されると先読み処理部１２０及び先読み接続部１１５間の通信接続が切断されてしまう。これでは、後述する複製処理において、応答複製部１１４は先読み接続部１１５を介してＨＴＴＰ応答を先読み処理部１２０に送信できなくなる。また、複製処理において、先読み接続部１１５から先読み処理部１２０にＨＴＴＰ要求を送信して、先読み接続部１１５及び先読み処理部１２０間の通信接続を確立することも考えられるが、これでは、先読み処理部１２０がサーバ、先読み接続部１１５がクライアントになってしまい、先読み接続部１１５の設計が複雑化する。そこで、本実施の形態では、ステップ１００１において、接続オブジェクトをメモリに保存し、複製準備処理が終了した際に先読み接続部１１５及び先読み処理部１２０間の通信接続が切断されることを防止している。
【００９５】
図１１は、図７のステップ７０９に示す応答複製部１１４による複製処理の一例を示すフローチャートである。
【００９６】
まず、応答複製部１１４は、受信したＨＴＴＰ要求が、先読み要求メッセージ６０２であるか否かを判定する（ステップ１１０１）。具体的には、応答複製部１１４は、受信したＨＴＴＰ要求のヘッダ部に「ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」が含まれている否かにより、ＨＴＴＰ要求が先読み要求メッセージ６０２であるかを判定する。
【００９７】
そして、受信したＨＴＴＰ要求のヘッダ部に「ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」が含まれている場合（ステップ１１０１がＮｏ）、応答複製部１１４は、受信したＨＴＴＰ要求は、先読み要求メッセージ６０２であると判定し、複製処理を終了し、処理を図７のステップ７１０に返す。
【００９８】
この場合、ステップ７１０では、先読みに関するＨＴＴＰ応答をキャッシュ領域にキャッシュさせるための処理が実行される。図４の例において、要求オブジェクト４０５が先読み要求メッセージ６０２の要求オブジェクトであるとすると、要求オブジェクト４０５に対するＨＴＴＰ応答がキャッシュ領域に保存されていれば、キャッシュオブジェクト４０１にはサーバ要求処理及び応答処理が登録されないことになるため、ステップ７１０ではサーバ要求処理及び応答処理は実行されない。これにより、先読みに関するＨＴＴＰ応答が先読み処理部１２０に送信されず、先読みの先読みを防止できる。
【００９９】
一方、要求オブジェクト４０５に対応するＨＴＴＰ応答がキャッシュ領域に保存されていなければ、キャッシュオブジェクト４０１にはサーバ要求処理が登録されることになるため、図８に示すサーバ要求処理が実行される。これにより、先読みに関するＨＴＴＰ応答がＷｅｂサーバ１４０から取得され、キャッシュ領域に保存されるが、応答処理は登録されていないことになるため、応答処理は実行されない。これにより先読み要求に関するＨＴＴＰ応答が先読み処理部１２０に送信されず、先読みの先読みを防止できる。
【０１００】
ステップ１１０１に戻り、受信したＨＴＴＰ要求のヘッダ部に「ｘ−ｐｒｅｆｅｔｃｈｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ」が含まれていない場合（ステップ１１０１がＹｅｓ）、応答複製部１１４は、受信したＨＴＴＰ要求は、クライアント１３１から送信された通常のＨＴＴＰ要求であると判定し、自身が保存する先読み処理部１２０の接続オブジェクトがあるか否かを判定する（ステップ１１０２）。ここで、応答複製部１１４が保存する接続オブジェクトは、図１０のステップ１００１で保存された接続オブジェクト、つまり、先読み接続部１１５及び先読み処理部１２０間で確立された通信接続を示す接続オブジェクトである。
【０１０１】
なお、先読み接続部１１５及び先読み処理部１２０間の通信接続が確立されていなくても、先読み処理部１２０からｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅをヘッダ部に含む先読み要求メッセージ６０２をクライアント接続部１１３に送信することも可能であり、この場合、応答複製部１１４は、複製処理をする必要がなくなる。そこで、図１１では、ステップ１１０２の判定処理が設けられている。
【０１０２】
次に、保存する接続オブジェクトがある場合（ステップ１１０２がＹｅｓ）、応答複製部１１４は、処理をステップ１１０３に進める。
【０１０３】
一方、保存する接続オブジェクトがない場合（ステップ１１０２がＮｏ）、複製処理が終了され、処理が図７のステップ７１０に進められる。
【０１０４】
次に、応答複製部１１４は、保存する接続オブジェクトを複製する（ステップ１１０３）。次に、応答複製部１１４は、要求オブジェクトを複製する（ステップ１１０４）。ここで複製される要求オブジェクトは、通常のＨＴＴＰ要求の要求オブジェクトである。
【０１０５】
次に、応答複製部１１４は、複製した接続オブジェクトを、複製した要求オブジェクトに登録する（ステップ１１０５）。図４において、要求オブジェクト４０５が通常のＨＴＴＰ要求の要求オブジェクトであるとすると、応答複製部１１４は、この要求オブジェクトを複製し、複製した要求オブジェクトの「接続オブジェクト」のフィールドに接続オブジェクトのポインタを登録することで、複製した要求オブジェクトに複製した接続オブジェクトを登録する。
【０１０６】
次に、応答複製部１１４は、複製処理の前にキャッシュ管理部１１２から取得したキャッシュオブジェクトに、複製した要求オブジェクトを登録し（ステップ１１０６）、複製処理を終了する。図４を用いた先の例では、応答複製部１１４は、要求オブジェクトリスト４０４に複製した要求オブジェクトを含めることで、キャッシュオブジェクト４０１に複製した要求オブジェクトを登録する。
【０１０７】
ステップ１１０６が終了すると処理が図７のステップ７１０に進められる。この場合、要求オブジェクトリスト４０４には、通常のＨＴＴＰ要求の要求オブジェクトに加えてその要求オブジェクトを複製した要求オブジェクトが含まれている。よって、両要求オブジェクトのＨＴＴＰ応答がキャッシュされていなければ、サーバ要求処理（図８）によりＷｅｂサーバ１４０から通常のＨＴＴＰ応答が取得され、取得された通常のＨＴＴＰ応答が応答処理（図９）によりクライアント１３１及び先読み処理部１２０に送信される。この場合、クライアント接続部１１３がクライアント１３１に通常のＨＴＴＰ応答を送信し、先読み接続部１１５が通常のＨＴＴＰ応答を送信する。これにより、通常のＨＴＴＰ応答がクライアント１３１及び先読み処理部１２０に送信される。また、両要求オブジェクトのＨＴＴＰ応答がキャッシュされていれば、応答処理（図９）のみが実行され、キャッシュされていない場合と同様にして、通常のＨＴＴＰ応答がクライアント１３１及び先読み処理部１２０に送信される。
【０１０８】
図１２は、先読み接続部１１５及び先読み処理部１２０間の通信接続の切断処理の一例を示すフローチャートである。
【０１０９】
先読み処理部１２０は、自身の障害を検知した場合などに自ら通信接続を切断する場合がある。例えば、先読み処理部１２０が外部のプロセスと連携している場合において、外部のプロセスに回復不可能な障害が発生した場合、先読み処理部１２０は、先読み処理部１２０及び外部のプロセスを再起動するしか回復手段がないと判定する。このような場合に、先読み処理部１２０は先読み接続部１１５との通信接続を切断する。或いは、処理負荷の観点から、先読み処理を一時的に中断したい場合に、先読み処理部１２０が自ら先読み接続部１１５との通信接続を切断する仕組みを設けるということも考えられる。
【０１１０】
まず、先読み処理部１２０が先読み接続部１１５との通信接続を切断すると、先読み接続部１１５は、その切断を検知する（ステップ１２０１）。例えば、ソケットを用いた通信においては、一方のノードがソケットを閉じた場合、他方のノードに通信エラーを通知する仕組みが備わっている。したがって、先読み接続部１１５は、先読み処理部１２０がソケットを閉じた際に送信する通信エラーを受信した場合、先読み処理部１２０との通信接続が切断されたことを検知すればよい。
【０１１１】
次に、先読み接続部１１５は、応答複製部１１４に対して保存している接続オブジェクトを破棄するよう指示する（ステップ１２０２）。
【０１１２】
次に、応答複製部１１４が保存している接続オブジェクトを破棄した後、先読み接続部１１５は処理を終了する。
【０１１３】
この処理の際、複製された要求オブジェクトや複製された接続オブジェクトは、応答処理が実行されるまで情報蓄積部１１０内に確保された状態である。よって、キャッシュ管理部１１２は、応答処理（図９）のステップ９０２において、接続オブジェクトを取得できなければ、複製された要求オブジェクトと複製された接続オブジェクトとを破棄すればよい。
【０１１４】
次に、図１３及び図１４を用いて先読み処理部１２０の処理を説明する。図１３は、リンク解析処理の一例を示すフローチャートである。
【０１１５】
まず、リンク処理部１２１は、先読み接続部１１５からＨＴＴＰ応答を受信すると（ステップ１３０１）、そのＨＴＴＰ応答に含まれるリンクを抽出する（ステップ１３０２）。
【０１１６】
次に、リンク処理部１２１は、抽出したリンクを示すリンク情報を要求生成部１２２に引き渡し（ステップ１３０３）、処理を終了する。リンクの抽出方法としては、例えば正規表現を用いたテキスト処理が考えられる。例えば、リンク処理部１２１は、テキスト処理により、ダブルクオーテーションで囲まれ、且つ、ｈｔｔｐという文字列で始まる文字列を検出し、検出した文字列をリンクとして抽出すればよい。
【０１１７】
図１４は、先読み要求処理の一例を示すフローチャートである。要求生成部１２２は、リンク処理部１２１からリンク情報を受け取り、受け取ったリンク情報が示すリンクに対応するＨＴＴＰ要求を生成する（ステップ１４０１）。このとき、受け取ったリンク情報が複数ある場合、要求生成部１２２は、受け取ったリンクの数と同じ数のＨＴＴＰ要求を生成する。
【０１１８】
また、このとき、要求生成部１２２は、生成したＨＴＴＰ要求が先読み要求メッセージ６０２であることを識別できるようにＨＴＴＰ要求を生成する。例えば、要求生成部１２２は、図６Ｂに示すようにヘッダ部に所定の文字列（ｘ−ｐｒｅｆｅｔｃｈ−ｒｅｓｐｏｎｓｅ：  ｆａｌｓｅ）を記述したＨＴＴＰ要求を生成する。なお、先読み要求メッセージ６０１の場合は、要求生成部１２２は、図６Ａに示すようにヘッダ部に所定の文字列（ｘ−ｐｒｅｆｅｔｃｈ−ｃｏｎｎｅｃｔ：  ｏｐｅｎ）を記述すればよい。なお、要求生成部１２２は、先読み要求メッセージ６０１を例えば、定期的に送信し、先読み接続部１１５との通信接続を確立すればよい。
【０１１９】
次に、要求生成部１２２は、ステップ１４０１で生成したＨＴＴＰ要求、すなわち、先読み要求メッセージ６０２をクライアント接続部１１３に送信する（ステップ１４０２）。
【０１２０】
クライアント接続部１１３が先読み要求メッセージ６０２を受信すると、情報蓄積部１１０は、先読み要求メッセージ６０１をＷｅｂサーバ１４０に転送し、Ｗｅｂサーバ１４０から先読みに関するＨＴＴＰ応答を取得し、キャッシュする。これ以降、クライアント１３１が通常のＨＴＴＰ要求を情報蓄積部１１０に送信した場合、情報蓄積部１１０は、先読みに関するＨＴＴＰ要求によって受信した通常のＨＴＴＰ要求に対するＨＴＴＰ応答をキャッシュしていれば、そのＨＴＴＰ応答をクライアント１３１に返信するので、クライアント１３１は速やかにＨＴＴＰ応答を取得できる。
【０１２１】
このように、本実施の形態によれば、応答複製部１１４は、クライアント１３１からの通常のＨＴＴＰ要求に対する通常のＨＴＴＰ応答を複製し、先読み接続部１１５を介して先読み処理部１２０に送信できる。また、先読み処理部１２０は複製されたＨＴＴＰ応答を受信し、その内容を解析し、先読み要求メッセージ６０２を通常のＨＴＴＰ要求と同等の形式で情報蓄積部１１０に送信できる。また、応答複製部１１４は、先読み要求メッセージ６０２に対するＨＴＴＰ応答を受信した場合、そのＨＴＴＰ応答を先読み処理部１２０に送信せずにキャッシュしている。したがって、先読みの先読みを防止できる。
【０１２２】
以上、本発明の一態様に係るＷｅｂコンテンツ先読み制御装置について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０１２３】
例えば、クライアント１３１と情報蓄積部１１０と先読み処理部１２０とは、それぞれ独立したプロセスとして実行可能に構成されていれば、全て同じ計算機に備えられていてもよいし、いずれかは異なる計算機に備えられていてもよい。
【０１２４】
また、実施の形態においては、クライアント接続部１１３及びクライアント１３１間の通信と、クライアント接続部１１３及び先読み処理部１２０間の通信と、先読み接続部１１５及び先読み処理部１２０間の通信とはＨＴＴＰにより行うものとしたが、これらの通信は、クライアント１３１及びクライアント接続部１１３間の通信と同じ手段を用いるのであれば、どのような手段であってもよい。他の通信手段としては例えば、ＦＴＰ（File Transfer Protocol）が挙げられる。このように、通信手段を従来と同じ手段とすることにより、従来のプロキシサーバに相当する構成（実施の形態におけるサーバ接続部１１１、キャッシュ管理部１１２、及びクライアント接続部１１３）の変更量を最小限にとどめた上で、先読み機能を備える構成を実現できる。
【０１２５】
また、本実施の形態においては、情報蓄積部１１０は、従来のプロキシサーバが備える機能に相当するサーバ接続部１１１、キャッシュ管理部１１２、及びクライアント接続部１１３に加え、応答複製部１１４及び先読み接続部１１５を備える構成としたが、応答複製部１１４及び先読み接続部１１５は、先読み処理部１２０が備える構成としてもよい。
【０１２６】
この場合、応答複製部１１４は、キャッシュ管理部１１２が送信するＨＴＴＰ応答を監視し、ＨＴＴＰ応答のうち先読み関するＨＴＴＰ応答を取得して複製するようにすればよい。このような構成によれば、従来のプロキシサーバに対する変更をさらに小さくすることが可能となる。
【０１２７】
また、図１の例では、クライアント１３１は、Ｗｅｂコンテンツ先読み制御装置１００とは別の計算機に設けられていたが、図１５に示すように、Ｗｅｂコンテンツ先読み制御装置１００に含めてもよい。図１５は、クライアント１３１をＷｅｂコンテンツ先読み制御装置１００に含めた場合のＷｅｂコンテンツ先読み制御装置１００を含むシステムの構成の一例を示す図である。
【０１２８】
この構成によれば、Ｗｅｂコンテンツ先読み制御装置１００とクライアント１３１とを同一の計算機上で構成した場合においても、先読みに係る処理をブラウザ（クライアント１３１）とプロキシサーバ（情報蓄積部１１０）との双方から独立したプロセス（先読み処理部１２０）に実行できる。また、既存のインタフェース（通信プロトコル）を流用した先読みのインタフェース（先読み接続部１１５）を設けることでプロキシサーバの変更量を最小限にとどめることができる。
【０１２９】
また、図１６に示すように、情報蓄積部１１０、先読み処理部１２０、及びクライアント１３１をそれぞれ異なる計算機で構成してもよい。図１６は、情報蓄積部１１０、先読み処理部１２０、及びクライアント１３１をそれぞれ異なる計算機で構成した場合のＷｅｂコンテンツ先読み制御装置１００を含むシステムの構成の一例を示す図である。図１６では、情報蓄積部１１０によりＷｅｂコンテンツ先読み制御装置１００が構成され、Ｗｅｂコンテンツ先読み制御装置１００を構成する計算機と、先読み処理部１２０を構成する計算機と、クライアント１３１を構成する計算機とがそれぞれネットワークを介して通信可能に接続されている。
【０１３０】
また、図１７に示すように、情報蓄積部１１０と、クライアント１３１及び先読み処理部１２０とをそれぞれ別の計算機で構成してもよい。図１７は、情報蓄積部１１０と、クライアント１３１及び先読み処理部１２０とをそれぞれ別の計算機で構成した場合のＷｅｂコンテンツ先読み制御装置１００を含むシステムの構成の一例を示す図である。
【０１３１】
図１７では、情報蓄積部１１０によりＷｅｂコンテンツ先読み制御装置１００が構成されている。また、端末１３０は、先読み処理部１２０及びクライアント１３１を備えている。そして、Ｗｅｂコンテンツ先読み制御装置１００を構成する計算機と端末１３０を構成する計算機とはネットワークを介して通信可能に接続されている。
【０１３２】
また、本実施の形態においては、先読み要求メッセージを識別するために、図６Ａ、図６Ｂに示す所定の文字列をヘッダ部に記述する例を示した。しかしながら、先読み要求メッセージを識別する方法は、上記の例に限らない。例えば、先読み要求メッセージ６０１、６０２を送信する際に用いる１以上のＴＣＰのポート番号を予め設定しておき、このポート番号を用いて先読み要求メッセージ６０１、６０２は識別されてもよい。この場合、ＨＴＴＰ要求には、先読み要求メッセージ６０１、６０２であることを示す所定の文字列を記述しなくてもよくなる。
【０１３３】
また、本実施の形態に係るＷｅｂコンテンツ先読み制御装置１００は、あらゆる計算機、電子機器、情報機器、ＡＶ機器、通信機器及び家電機器にも適用可能であり、例えば、ＰＣ（パーソナルコンピュータ）、携帯情報端末（携帯電話、スマートフォン及びＰＤＡなど）、テレビ、ハーディスクレコーダー、ＤＶＤ及びブルーレイディスクなどを用いた各種ディスクレコーダー、ＤＶＤ及びブルーレイディスクなどを用いた各種ディスクプレイヤー、並びにカーナビゲーションシステムなどにも適用できる。
【０１３４】
また、本実施の形態は、このような特徴的な処理部を備える、Ｗｅｂコンテンツ先読み制御装置１００として実現することができるだけでなく、Ｗｅｂコンテンツ先読み制御装置１００に含まれる特徴的な処理部をステップとするＷｅｂコンテンツ先読み制御方法等として実現することもできる。また、そのような方法に含まれる特徴的な各ステップをコンピュータに実行させるコンピュータプログラムとして実現することもできる。そして、そのようなコンピュータプログラムを、ＣＤ−ＲＯＭ等のコンピュータ読取可能な非一時的な記録媒体あるいはインターネット等の通信ネットワークを介して流通させることができる。
【０１３５】
図１８は、Ｗｅｂコンテンツ先読み制御装置１００を計算機で実現した場合の計算機のハードウェア構成の一例を示す図である。
【０１３６】
計算機は、入力装置１９０１、ＲＯＭ（リードオンリメモリ）１９０２、ＣＰＵ（中央演算処理装置）１９０３、ＲＡＭ（ランダムアクセスメモリ）１９０４、外部記憶装置１９０５、表示装置１９０６、記録媒体駆動装置１９０７、及び通信装置１９０８を備える。各ブロックは内部のバスに接続され、このバスを介して種々のデータ等が入出され、ＣＰＵ１９０３の制御の下、種々の処理が実行される。
【０１３７】
入力装置１９０１は、キーボード、マウス等から構成され、ユーザが種々のデータを入力するために使用される。ＲＯＭ１９０２には、ＢＩＯＳ（Basic Input/Output System）等のシステムプログラムが記憶される。外部記憶装置１９０５は、ハードディスクドライブ等から構成され、所定のＯＳ（Operating System）、コンピュータをＷｅｂコンテンツ先読み制御装置１００として機能させるＷｅｂコンテンツ先読み制御プログラム等が記憶される。ＣＰＵ１９０３は、外部記憶装置１９０５からＯＳを読み出し、各ブロックの動作を制御する。ＲＡＭ１９０４は、ＣＰＵ１９０３の作業領域等として用いられる。
【０１３８】
表示装置１９０６は、例えば液晶ディスプレイや有機ＥＬディスプレイにより構成され、ＣＰＵ１９０３の制御の下に種々の画像を表示する。記録媒体駆動装置１９０７は、ＤＶＤ−ＲＯＭドライブ、フレキシブルディスクドライブ等から構成される。
【０１３９】
なお、Ｗｅｂコンテンツ先読み制御プログラムは、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体１９０９に格納されてユーザに提供される。ユーザはこの記録媒体１９０９を記録媒体駆動装置１９０７に読み込ませることで、Ｗｅｂコンテンツ先読み制御プログラムを計算機にインストールする。また、Ｗｅｂコンテンツ先読み制御プログラムをインターネット上のサーバに格納し、このサーバからダウンロードすることで、Ｗｅｂコンテンツ先読み制御プログラムを計算機にインストールしてもよい。
【０１４０】
通信装置１９０８は、例えば、計算機をＬＡＮやインターネットに接続するための通信装置により構成され、ＣＰＵ１９０３の制御の下、インターネットを介して他の機器との間でデータを送受する。
【０１４１】
なお、図１に示すサーバ接続部１１１及びクライアント接続部１１３は、通信装置１９０８をサーバ接続部１１１及びクライアント接続部１１３として機能させるＷｅｂコンテンツ先読み制御プログラムのプログラムモジュールをＣＰＵ１９０３が実行することで実現される。なお、図１６、図１７の場合では、先読み接続部１１５は、通信装置１９０８を先読み接続部１１５として機能させるＷｅｂコンテンツ先読み制御プログラムのプログラムモジュールをＣＰＵ１９０３が実行することで実現される。
【０１４２】
また、図１に示すキャッシュ管理部１１２、応答複製部１１４、及び先読み接続部１１５は、ＣＰＵ１９０３がＷｅｂコンテンツ先読み制御プログラムを実行することで実現される。
【０１４３】
また、図１に示すキャッシュ管理部１１２は、ＲＡＭ１９０４や外部記憶装置１９０５の一部をキャッシュ領域として機能させるＷｅｂコンテンツ先読み制御プログラムのプログラムモジュールをＣＰＵ１９０３が実行することで実現される。
【０１４４】
また、図１５に示す先読み処理部１２０は、Ｗｅｂコンテンツ先読み制御プログラムのプログラムモジュールをＣＰＵ１９０３が実行することで実現される。また、図１５に示すクライアント１３１は、ＣＰＵ１９０３がブラウザプログラムを実行することで実現される。
【０１４５】
また、図１に示す、本実施の形態に係るＷｅｂコンテンツ先読み制御装置の各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現されるが、集積回路であるＬＳＩで実現してもよい。これらの各機能ブロックは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。
【０１４６】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１４７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０１４８】
また、実施の形態におけるＷｅｂコンテンツ先読み制御装置が備える構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。
【０１４９】
システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｍｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含んで構成されるコンピュータシステムである。前記ＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０１５０】
なお、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、あるいはＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１５１】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１５２】
（実施の形態のまとめ）
上記実施の形態の技術的特徴は以下のようにまとめることができる。
【０１５３】
（１）本発明の一態様に係る仮想計算機システムは、Ｗｅｂコンテンツを保存するＷｅｂサーバとネットワークを介して接続され、クライアントが前記Ｗｅｂサーバに要求したＷｅｂコンテンツにリンクするＷｅｂコンテンツの先読みを制御するＷｅｂコンテンツ先読み制御装置であって、前記クライアントからのＷｅｂコンテンツ取得要求と、前記先読みを行う先読み処理部から送信された先読み要求とを受信するクライアント接続部と、前記Ｗｅｂコンテンツ取得要求及び前記先読み要求に対する応答として前記Ｗｅｂサーバから取得したＷｅｂコンテンツを保存するとともに当該応答を送信するキャッシュ管理部と、前記キャッシュ管理部から送信された前記応答を受信し、当該応答のうち前記Ｗｅｂコンテンツ取得要求に対する応答を複製する応答複製部と、前記複製されたＷｅｂコンテンツ取得要求に対する応答を前記先読み処理部に送信する先読み接続部とを備え、前記クライアント接続部及び前記クライアント間の通信と、前記クライアント接続部及び前記先読み処理部間の通信と、前記先読み接続部及び前記先読み処理部間の通信とは、それぞれ、同じ通信プロトコルにより行われる。
【０１５４】
この構成によれば、先読み接続部は、クライアント接続部及びクライアント間の通信で使用される通信プロトコルと同じ通信プロトコルを用いて、複製されたＷｅｂコンテンツを先読み処理部に送信する。そのため、キャッシュ管理部、応答複製部、クライアント接続部、及び先読み接続部により構成されるプロキシサーバは、クライアント及び先読み処理部の双方をクライアントとして取り扱うことが可能となる。よって、先読み接続部を既存の通信インタフェースであるクライアント接続部を流用して実現できる。その結果、プロキシサーバに、応答複製部と既存の通信インタフェースを流用した先読み接続部とを設けるだけで、Ｗｅｂコンテンツ先読み制御装置を構築でき、プロキシサーバの変更量を最小限にとどめてＷｅｂコンテンツ先読み制御装置を構築できる。
【０１５５】
（２）前記先読み要求には、先読み要求であることを示す種別情報が含まれており、前記応答複製部は、前記先読み要求に対する応答を受信した場合、前記種別情報に基づいて、前記受信した応答が前記先読み要求に対する応答であるか否かを判定し、前記先読み要求に対する応答であると判定した場合、当該受信した応答を複製しなくてもよい。
【０１５６】
この構成によれば、先読み要求にはその旨を示す種別情報が含まれているため、応答複製部は受信した応答が先読み要求であるか否かを容易に判定できる。また、先読み要求に対する応答が複製されて先読み処理部に送信されないため、先読み要求の応答に対して先読みがされることが防止され、先読みの連鎖を断つことができる。よって、クライアントで閲覧される可能性が高いＷｅｂコンテンツのみ先読みできる。また、クライアントで閲覧される可能性の低いＷｅｂコンテンツは先読みされてキャッシュされず、メモリリソースの無駄な消費を抑制できる。
【０１５７】
（３）前記応答複製部は、前記種別情報に基づいて、前記受信した応答が先読み要求に対する応答でないと判定した場合、当該受信した応答を複製してもよい。
【０１５８】
この構成によれば、受信した応答が先読み要求に対する応答でない、すなわち、Ｗｅｂコンテンツ取得要求に対する応答であると判定された場合に、受信した応答が複製されて先読み処理部に送信される。よって、クライアントで閲覧される可能性の高い応答のみを先読みしてキャッシュすることができる。
【０１５９】
（４）前記先読み要求は、ＨＴＴＰメッセージであり、前記種別情報は、前記ＨＴＴＰメッセージのＨＴＴＰヘッダに記述された所定の文字列であり、前記応答複製部は、前記文字列が前記ＨＴＴＰヘッダに含まれている場合、前記ＨＴＴＰメッセージが前記先読み要求であると判定してもよい。
【０１６０】
この構成によれば、ＨＴＴＰメッセージのＨＴＴＰヘッダに記述された所定の文字列の有無により、ＨＴＴＰメッセージが先読み要求であるか否かを判定できる。
【０１６１】
（５）前記先読み要求は、前記先読み処理部及び前記先読み接続部間の通信接続を確立するための第１先読み要求を含み、前記応答複製部は、前記クライアント接続部により前記第１先読み要求が受信されると、前記先読み接続部及び前記先読み処理部間の通信接続を確立してもよい。
【０１６２】
この構成によれば、先読み処理部から送信された第１先読み要求がクライアント接続部に受信されることで、先読み接続部及び先読み処理部間の通信接続が確立されるため、先読み接続部は自ら接続要求を先読み処理部に送信して先読み処理部との通信を確立する必要がない。よって、先読み処理部をクライアントとして取り扱うことができ、先読み接続部を特別な通信インタフェースを用いることなく、クライアント接続部と同様、既存の通信インタフェースを用いて実現できる。
【０１６３】
（６）前記先読み要求は、前記Ｗｅｂコンテンツを先読みするための第２先読み要求を含み、前記応答複製部は、前記キャッシュ管理部から受信した応答が前記第２先読み要求に対する応答であれば、当該応答を複製しなくてもよい。
【０１６４】
この構成によれば、第２先読み要求に対する応答が複製されて先読み処理部に送信されることが防止され、第２先読み要求の応答に対して更に第２先読み要求がされることを防止できる。
【０１６５】
（７）前記キャッシュ管理部は、前記第２先読み要求に対する応答を保存していれば、前記保存している応答を前記応答複製部に送信してもよい。
【０１６６】
この構成によれば、第２先読み要求の応答がキャッシュされていれば、Ｗｅｂサーバにアクセスすることなくその応答が応答複製部に送信されるため、応答複製部はその応答を速やかに受信できる。但し、この応答は第２先読み要求に対する応答であるため、応答複製部により複製されない。よって、キャッシュ管理部を既存のプロキシサーバが備えるキャッシュ管理部で実現できる。
【０１６７】
（８）前記Ｗｅｂコンテンツ先読み制御装置は、前記クライアントを更に備え、前記クライアント接続部は、前記Ｗｅｂコンテンツ先読み制御装置が備えるクライアントから前記Ｗｅｂコンテンツ取得要求を受信してもよい。
【０１６８】
この構成によれば、Ｗｅｂコンテンツ先読み制御装置とクライアントとが同一の計算機上で実現される構成においても、（１）と同じ効果が得られる。
【０１６９】
（９）前記クライアントは、前記Ｗｅｂコンテンツ先読み制御装置とネットワークを介して接続された計算機が備え、前記クライアント接続部は、前記クライアントから前記Ｗｅｂコンテンツ取得要求を受信してもよい。
【０１７０】
この構成によれば、Ｗｅｂコンテンツ先読み制御装置とクライアントとが異なる計算機で実現される構成においても、（１）と同じ効果が得られる。
【０１７１】
（１０）前記Ｗｅｂコンテンツ先読み制御装置は、前記先読み処理部を更に備え、前記先読み接続部は、前記複製されたＷｅｂコンテンツ取得要求に対する応答を、前記Ｗｅｂコンテンツ先読み制御装置が備える先読み処理部に送信してもよい。
【０１７２】
この構成によれば、Ｗｅｂコンテンツ先読み制御装置と先読み処理部とが同一の計算機で実現される構成においても、（１）と同じ効果が得られる。
【０１７３】
（１１）前記先読み処理部は、前記Ｗｅｂコンテンツ先読み制御装置とネットワークを介して接続された計算機が備え、前記先読み接続部は、前記複製されたＷｅｂコンテンツ取得要求に対する応答を、前記先読み処理部に送信してもよい。
【０１７４】
この構成によれば、Ｗｅｂコンテンツ先読み制御装置と先読み処理部とが異なる計算機で実現される構成においても、（１）と同じ効果が得られる。
【０１７５】
（１２）前記Ｗｅｂコンテンツ取得要求及び前記先読み要求を前記Ｗｅｂサーバに送信することで、前記Ｗｅｂサーバからの応答を取得し、取得した応答を前記キャッシュ管理部に送信するサーバ接続部を更に備えてもよい。
【０１７６】
この構成によれば、サーバ接続部を介してＷｅｂコンテンツが取得される。
【産業上の利用可能性】
【０１７７】
本発明にかかるＷｅｂコンテンツ先読み制御装置は、移動端末など遅延の大きいネットワークに属する端末において、Ｗｅｂコンテンツへのアクセスを見かけ上高速化する装置として有用である。
【図１】
2014034001.tif 000003
【図２】
2014034001.tif 000004
【図３】
2014034001.tif 000005
【図４】
2014034001.tif 000006
【図５】
2014034001.tif 000007
【図６Ａ】
2014034001.tif 000008
【図６Ｂ】
2014034001.tif 000009
【図７】
2014034001.tif 000010
【図８】
2014034001.tif 000011
【図９】
2014034001.tif 000012
【図１０】
2014034001.tif 000013
【図１１】
2014034001.tif 000014
【図１２】
2014034001.tif 000015
【図１３】
2014034001.tif 000016
【図１４】
2014034001.tif 000017
【図１５】
2014034001.tif 000018
【図１６】
2014034001.tif 000019
【図１７】
2014034001.tif 000020
【図１８】
2014034001.tif 000021
【図１９】
2014034001.tif 000022
【国際調査報告】
2014034001.tif 000023
2014034001.tif 000024