(57)【要約】  中継装置は、サーバと接続する第１の中継装置と、クライアントと接続する第２の中継装置とを有する。第１の中継装置は、要求部と、制御部と、通知部とを有する。要求部は、クライアントからの要求に応じてサーバに対してデータの先読みを要求する。制御部は、先読み要求で得た先読みデータを第１のキャッシュにキャッシュする。通知部は、クライアントから今回の要求に応じてサーバに対して先読みを要求し、その先読みデータと第１のキャッシュにキャッシュ中の先読みデータとが一致した場合に所定信号を第２の中継装置に通知する。第２の中継装置は、第２のキャッシュと、応答部とを有する。第２のキャッシュは、第１のキャッシュにキャッシュ中の先読みデータの一部をキャッシュする。応答部は、所定信号を検出した場合にクライアントからのデータ要求に応じて第２のキャッシュにキャッシュ中の先読みデータでクライアントに代理応答する。
2017163426.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置と接続する第１の中継装置と、第２の通信装置と接続する第２の中継装置とを有し、前記第２の通信装置からのデータ要求に応じて前記第１の通信装置からデータを読み出し、その読み出したデータを前記第２の通信装置に中継する中継装置であって、
前記第１の中継装置は、
前記第２の通信装置からの要求に応じて前記第１の通信装置に対してデータの先読みを要求する要求部と、
前記要求部の先読み要求で得た先読みデータを第１のキャッシュにキャッシュする制御部と、
前記第２の通信装置から次回の要求に応じて、前記要求部で前記第１の通信装置に対して前記データの先読みを要求し、先読み要求で得た先読みデータと前記第１のキャッシュにキャッシュ中の先読みデータとが一致した場合に所定信号を前記第２の中継装置に通知する通知部と
を有し、
前記第２の中継装置は、
前記第１のキャッシュにキャッシュ中の先読みデータの一部をキャッシュする第２のキャッシュと、
前記所定信号を検出した場合に、前記第２の通信装置からのデータ要求に応じて前記第２のキャッシュにキャッシュ中の先読みデータで前記第２の通信装置に対して代理応答する応答部と
を有することを特徴とする中継装置。
【請求項２】
前記第２のキャッシュは、
前記第２の通信装置から前記第１の通信装置へのデータ要求の開始から前記第１の通信装置から前記第２の通信装置へのデータ取得までの処理に要する処理時間以上、前記第２の通信装置に対する代理応答が可能なデータ量の前記先読みデータをキャッシュすることを特徴とする請求項１に記載の中継装置。
【請求項３】
第１の通信装置と接続すると共に、第２の通信装置からのデータ要求に応じてデータを前記第１の通信装置から読み出し、その読み出したデータを前記第２の通信装置に中継する中継装置であって、
前記第２の通信装置からの要求に応じて前記第１の通信装置に対してデータの先読みを要求する要求部と、
前記要求部の先読み要求で得た先読みデータを第１のキャッシュにキャッシュする制御部と、
前記第２の通信装置から今回の要求に応じて、前記要求部で前記第１の通信装置に対して前記データの先読みを要求し、先読み要求で得た今回の先読みデータと前記第１のキャッシュにキャッシュ中の先読みデータとが一致した場合に、前記第２の通信装置からのデータ要求に応じて、当該第２の通信装置に接続する第２の中継装置内の第２のキャッシュにキャッシュ中の先読みデータで前記第２の通信装置に対する代理応答を指示する所定信号を前記第２の中継装置に通知する通知部と
を有することを特徴とする中継装置。
【請求項４】
第１の通信装置と接続すると共に、第２の通信装置からのデータ要求に応じてデータを前記第１の通信装置から読み出し、その読み出したデータを前記第２の通信装置に中継する中継装置の中継方法であって、
前記中継装置は、
前記第２の通信装置からの要求に応じて前記第１の通信装置に対してデータの先読みを要求し、
先読み要求で得た先読みデータを第１のキャッシュにキャッシュし、
前記第２の通信装置から今回の要求に応じて前記第１の通信装置に対して前記データの先読みを要求し、先読み要求で得た今回の先読みデータと前記第１のキャッシュにキャッシュ中の先読みデータとが一致した場合に、前記第２の通信装置からのデータ要求に応じて、当該第２の通信装置に接続する第２の中継装置内の第２のキャッシュにキャッシュ中の先読みデータで前記第２の通信装置に対する代理応答を指示する所定信号を前記第２の中継装置に通知する
処理を実行することを特徴とする中継方法。
【請求項５】
第１の通信装置と接続すると共に、第２の通信装置からのデータ要求に応じてデータを前記第１の通信装置から読み出し、その読み出したデータを前記第２の通信装置に中継する中継装置のプロセッサに、
前記第２の通信装置からの要求に応じて前記第１の通信装置に対してデータの先読みを要求し、
先読み要求で得た先読みデータをキャッシュにキャッシュし、
前記第２の通信装置から今回の要求に応じて前記第１の通信装置に対して前記データの先読みを要求し、先読み要求で得た今回の先読みデータと前記キャッシュにキャッシュ中の先読みデータとが一致した場合に、前記第２の通信装置からのデータ要求に応じて、当該第２の通信装置に接続する他の中継装置内のキャッシュにキャッシュ中の先読みデータで前記第２の通信装置に対する代理応答を指示する所定信号を前記他の中継装置に通知する
処理を実行させることを特徴とする中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、中継方法及び中継プログラムに関する。
【背景技術】
【０００２】
近年、ファイル共有システムでは、遠隔地のクライアントがサーバからファイルをダウンロード又は、サーバに対してファイルをアップロードできるシステムが知られている。そして、クライアントとサーバとの間のデータ要求からデータ取得までに要する処理速度を高速化する方法が求められている。【０００３】
ファイル共有に使用するファイル共有プロトコルとしては、ＣＩＦＳ（Common  Internet  File  System）／ＳＭＢ(Server  Message  Block)等がある。ＣＩＦＳでは、サーバとクライアントとの間で通信メッセージのネゴが多く、サーバとクライアントとの間の通信距離が長くなるに連れて、ネゴに要する処理時間が増える。その結果、サーバとクライアントとの間でファイル共有に関わるデータ要求から、当該データ要求に対するデータ取得までの処理速度が低下してしまう。【０００４】
そこで、このような事態に対処すべく、データ要求からデータ取得までの処理速度の高速化を図るべく高速伝送システムが知られている。図７は、中継処理に関わる高速伝送システム２００の処理動作の一例を示すシーケンス図である。図７に示す高速伝送システム２００は、サーバ２０１と、サーバ側中継装置２０２と、クライアント側中継装置２０３と、クライアント２０４とを有する。【０００５】
クライアント２０４は、情報取得コマンド（GetInfo）をクライアント側中継装置２０３に送信する（ステップＳ２０１）。クライアント側中継装置２０３は、受信した情報取得コマンドをサーバ側中継装置２０２に送信する（ステップＳ２０２）。サーバ側中継装置２０２は、受信した情報取得コマンドをサーバ２０１に送信する（ステップＳ２０３）。【０００６】
サーバ２０１は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置２０２に送信する（ステップＳ２０４）。サーバ側中継装置２０２は、受信した情報取得応答をクライアント側中継装置２０３に送信する（ステップＳ２０５）。更に、クライアント側中継装置２０３は、受信した情報取得応答をクライアント２０４に送信する（ステップＳ２０６）。【０００７】
クライアント２０４は、情報取得応答に応じて読出しコマンド（ｒｅａｄ０−９９）をクライアント側中継装置２０３に送信する（ステップＳ２０７）。クライアント側中継装置２０３は、読出しコマンド（ｒｅａｄ０−９９）を受信した場合、その読出しコマンド（ｒｅａｄ０−９９）をサーバ側中継装置２０２に送信する（ステップＳ２０８）。サーバ側中継装置２０２は、読出しコマンド（ｒｅａｄ０−９９）を受信した場合、その読出しコマンド（ｒｅａｄ０−９９）をサーバ２０１に送信する（ステップＳ２０９）。【０００８】
サーバ２０１は、読出しコマンド（ｒｅａｄ０−９９）に応じてデータ（ｄａｔａ０−９９）を読み出し、読み出したデータ（ｄａｔａ０−９９）をサーバ側中継装置２０２に送信する（ステップＳ２１０）。更に、サーバ側中継装置２０２は、データ（ｄａｔａ０−９９）をクライアント側中継装置２０３に送信する（ステップＳ２１１）。更に、クライアント側中継装置２０３は、データ（ｄａｔａ０−９９）をクライアント２０４に送信する（ステップＳ２１２）。【０００９】
また、サーバ側中継装置２０２は、ステップＳ２１１にてデータ（ｄａｔａ０−９９）をクライアント側中継装置２０３に送信した場合、先読みコマンド（ｒｅａｄ１００−１９９）をサーバ２０１に送信する（ステップＳ２１３）。サーバ２０１は、先読みコマンド（ｒｅａｄ１００−１９９）に応じてデータ（ｄａｔａ１００−１９９）を読み出し、読み出したデータ（ｄａｔａ１００−１９９）をサーバ側中継装置２０２に送信する（ステップＳ２１４）。更に、サーバ側中継装置２０２は、データ（ｄａｔａ１００−１９９）をクライアント側中継装置２０３に送信する（ステップＳ２１５）。【００１０】
また、サーバ側中継装置２０２は、ステップＳ２１５にてデータ（ｄａｔａ１００−１９９）をクライアント側中継装置２０３に送信した場合、先読みコマンド（ｒｅａｄ２００−２９９）をサーバ２０１に送信する（ステップＳ２１６）。サーバ２０１は、先読みコマンド（ｒｅａｄ２００−２９９）に応じてデータ（ｄａｔａ２００−２９９）を読み出し、読み出したデータ（ｄａｔａ２００−２９９）をサーバ側中継装置２０２に送信する（ステップＳ２１７）。更に、サーバ側中継装置２０２は、データ（ｄａｔａ２００−２９９）をクライアント側中継装置２０３に送信する（ステップＳ２１８）。【００１１】
また、サーバ側中継装置２０２は、ステップＳ２１８にてデータ（ｄａｔａ２００−２９９）をクライアント側中継装置２０３に送信した場合、先読みコマンド（ｒｅａｄ３００−３９９）をサーバ２０１に送信する（ステップＳ２１９）。サーバ２０１は、先読みコマンド（ｒｅａｄ３００−３９９）に応じてデータ（ｄａｔａ３００−３９９）を読み出し、読み出したデータ（ｄａｔａ３００−３９９）をサーバ側中継装置２０２に送信する（ステップＳ２２０）。更に、サーバ側中継装置２０２は、データ（ｄａｔａ３００−３９９）をクライアント側中継装置２０３に送信する（ステップＳ２２１）。【００１２】
また、サーバ側中継装置２０２は、ステップＳ２２１にてデータ（ｄａｔａ３００−３９９）をクライアント側中継装置２０３に送信した場合、先読みコマンド（ｒｅａｄ４００−４９９）をサーバ２０１に送信する（ステップＳ２２２）。サーバ２０１は、先読みコマンド（ｒｅａｄ４００−４９９）に応じてデータ（ｄａｔａ４００−４９９）を読み出し、読み出したデータ（ｄａｔａ４００−４９９）をサーバ側中継装置２０２に送信する（ステップＳ２２３）。更に、サーバ側中継装置２０２は、データ（ｄａｔａ４００−４９９）をクライアント側中継装置２０３に送信する（ステップＳ２２４）。【００１３】
また、クライアント２０４は、ステップＳ２１２にてデータ（ｄａｔａ０−９９）を受信した場合、読出しコマンド（ｒｅａｄ１００−１９９）をクライアント側中継装置２０３に送信する（ステップＳ２２５）。クライアント側中継装置２０３は、読出しコマンド（ｒｅａｄ１００−１９９）に応じて、ステップＳ２１５で受信したデータ（ｄａｔａ１００−１９９）を代理応答としてクライアント２０４に送信する（ステップＳ２２６）。【００１４】
クライアント２０４は、ステップＳ２２６にてデータ（ｄａｔａ１００−１９９）を受信した場合、読出しコマンド（ｒｅａｄ２００−２９９）をクライアント側中継装置２０３に送信する（ステップＳ２２７）。クライアント側中継装置２０３は、読出しコマンド（ｒｅａｄ２００−２９９）に応じて、受信したデータ（ｄａｔａ２００−２９９）を代理応答としてクライアント２０４に送信する（ステップＳ２２８）。【００１５】
クライアント２０４は、ステップＳ２２８にてデータ（ｄａｔａ２００−２９９）を受信した場合、読出しコマンド（ｒｅａｄ３００−３９９）をクライアント側中継装置２０３に送信する（ステップＳ２２９）。クライアント側中継装置２０３は、読出しコマンド（ｒｅａｄ３００−３９９）に応じて、受信したデータ（ｄａｔａ３００−３９９）を代理応答としてクライアント２０４に送信する（ステップＳ２３０）。【００１６】
クライアントは、ステップＳ２３０にてデータ（ｄａｔａ３００−３９９）を受信した場合、読出しコマンド（ｒｅａｄ４００−４９９）をクライアント側中継装置２０３に送信する（ステップＳ２３１）。クライアント側中継装置２０３は、読出しコマンド（ｒｅａｄ４００−４９９）に応じて、受信したデータ（ｄａｔａ４００−４９９）を代理応答としてクライアント２０４に送信する（ステップＳ２３２）。クライアント２０４は、サーバ２０１から所望のデータが取得し終えるまで、これら一連の処理を繰り返し実行する。【００１７】
サーバ側中継装置２０２では、クライアント２０４からの読出しコマンドに応じて先読みコマンドをサーバ２０１に要求し、その先読みコマンドで得たデータをクライアント側中継装置２０３に送信する。更に、クライアント側中継装置２０３は、クライアント２０４からの読出しコマンドに応じて先読みコマンドで得たデータをクライアント２０４に順次送信する。その結果、データ要求からデータ取得までに要する処理速度を高速化できる。【００１８】
図８は、中継処理に関わる高速伝送システム３００の処理動作の一例を示すシーケンス図である。図８に示す高速伝送システム３００は、サーバ３０１と、サーバ側中継装置３０２と、クライアント側中継装置３０３と、クライアント３０４とを有する。【００１９】
クライアント３０４は、１度目の読出しコマンド（ｒｅａｄ０−９９）をクライアント側中継装置３０３に送信する（ステップＳ３０１）。クライアント側中継装置３０３は、受信した読出しコマンド（ｒｅａｄ０−９９）をサーバ側中継装置３０２に送信する（ステップＳ３０２）。サーバ側中継装置３０２は、受信した読出しコマンド（ｒｅａｄ０−９９）をサーバ３０１に送信する（ステップＳ３０３）。サーバ３０１は、読出しコマンド（ｒｅａｄ０−９９）に応じてデータ（ｄａｔａ０−９９）を読み出し、読み出したデータ（ｄａｔａ０−９９）をサーバ側中継装置３０２に送信する（ステップＳ３０４）。サーバ側中継装置３０２は、データ（ｄａｔａ０−９９）をクライアント側中継装置３０３に送信する（ステップＳ３０５）。クライアント側中継装置３０３は、受信したデータ（ｄａｔａ０−９９）をキャッシュにキャッシュし（ステップＳ３０６）、キャッシュ中のデータ（ｄａｔａ０−９９）をクライアント３０４に送信する（ステップＳ３０７）。【００２０】
また、クライアント３０４は、２度目の読出しコマンド（ｒｅａｄ０−９９）をクライアント側中継装置３０３に送信する（ステップＳ３０８）。クライアント側中継装置３０３は、読出しコマンド（ｒｅａｄ０−９９）を受信した場合、キャッシュにキャッシュ中のデータ（ｄａｔａ０−９９）をクライアント３０４に送信する（ステップＳ３０９）。【００２１】
クライアント側中継装置３０３では、クライアント３０４からの２度目以降の読出しコマンドを検出した場合、サーバ３０１に読出しコマンドを転送することなく、キャッシュにキャッシュ中のデータをクライアント３０４に送信する。その結果、データ要求からデータ取得までに要する処理速度を高速化できる。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】国際公開第２０１２／０４２６１７号
【特許文献２】特開２００１−３１８９０２号公報
【特許文献３】特開２０１３−２１８５０５号公報
【特許文献４】特開２００６−２５２０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【００２３】
しかしながら、図７に示す高速伝送システム２００では、ステップＳ２０７のクライアント２０４の読出しコマンド送信開始からステップＳ２１２の読出しコマンドに対応する読出しデータを取得するまでの期間は先読みデータがない状態となる。つまり、クライアント側中継装置２０３は、ステップＳ２１２にてサーバ側中継装置２０２から先読みデータが得られるまでの期間は待機中になる。その結果、データ要求からデータ取得までに要する処理速度を高速化できない。【００２４】
図８に示す高速伝送システム３００内のクライアント側中継装置３０３では、１度目のデータ要求（読出しコマンド）に応じて読出しデータをキャッシュに保存し、２度目以降のデータ要求ではキャッシュにキャッシュ中のデータをクライアント３０４に送信する。しかしながら、クライアント側中継装置３０３では、キャッシュ内のダウンロード対象のデータが１度目と２度目とで同一データであることが前提となるため、キャッシュ内の更新有無を判定する仕組みが必要となる。【００２５】
一つの側面では、データ要求からデータ取得までに要する処理速度を高速化できる中継装置、中継方法及び中継プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
一つの態様では、中継装置は、第１の通信装置と接続する第１の中継装置と、第２の通信装置と接続する第２の中継装置とを有する。中継装置は、第２の通信装置からのデータ要求に応じて第１の通信装置からデータを読み出し、その読み出したデータを第２の通信装置に中継する。第１の中継装置は、要求部と、制御部と、通知部とを有する。要求部は、第２の通信装置からの要求に応じて第１の通信装置に対してデータの先読みを要求する。制御部は、要求部の先読み要求で得た先読みデータを第１のキャッシュにキャッシュする。通知部は、第２の通信装置から次回の要求に応じて、要求部で第１の通信装置に対してデータの先読みを要求し、先読み要求で得た先読みデータと第１のキャッシュにキャッシュ中の先読みデータとが一致した場合に所定信号を第２の中継装置に通知する。第２の中継装置は、第２のキャッシュと、応答部とを有する。第２のキャッシュは、第１のキャッシュにキャッシュ中の先読みデータの一部をキャッシュする。応答部は、所定信号を検出した場合に、第２の通信装置からのデータ要求に応じて第２のキャッシュにキャッシュ中の先読みデータで第２の通信装置に対して代理応答する。
【発明の効果】
【００２７】
一つの側面として、データ要求からデータ取得までに要する処理速度を高速化できる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本実施例の高速伝送システムの一例を示す説明図である。
【図２】図２は、キャッシュ空時の中継処理に関わる高速伝送システムの処理動作の一例を示すシーケンス図である。
【図３】図３は、キャッシュＯＫ時の中継処理に関わる高速伝送システムの処理動作の一例を示すシーケンス図である。
【図４】図４は、キャッシュＮＧ時の中継処理に関わる高速伝送システムの処理動作の一例を示すシーケンス図である。
【図５】図５は、中継処理に関わるサーバ側中継装置の処理動作の一例を示すフローチャートである。
【図６】図６は、中継プログラムを実行する情報処理装置の一例を示す説明図である。
【図７】図７は、中継処理に関わる高速伝送システムの処理動作の一例を示すシーケンス図である。
【図８】図８は、中継処理に関わる高速伝送システムの処理動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【００２９】
以下、図面に基づいて、本願の開示する中継装置、中継方法及び中継プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例】
【００３０】
図１は、本実施例の高速伝送システム１の一例を示す説明図である。図１に示す高速伝送システム１は、サーバ２と、サーバ側中継装置３と、クライアント側中継装置４と、クライアント５とを有する。尚、サーバ側中継装置３とクライアント側中継装置４との間は、例えば、インターネットやＬＡＮ（Local  Area  Network）等の通信網６で接続されている。サーバ２とクライアント５との間のデータ通信は、例えば、ＣＩＦＳ／ＳＭＢの通信プロトコルを使用するものとする。【００３１】
サーバ２は、クライアント５が要求する、例えばダウンロードデータが格納されたデータベースを管理するコンピュータ等の第１の通信装置である。サーバ側中継装置３は、サーバ２に接続すると共に、通信網６と接続する第１の中継装置である。尚、説明の便宜上、サーバ側中継装置３は、例えば、サーバ２近傍に配置されるものとするが、例えば、サーバ２内部に内蔵しても良いし、サーバ２内部の図示せぬＣＰＵで展開するアプリケーションであっても良い。サーバ側中継装置３は、通信部１１と、メモリ１２と、記憶部１３と、ＣＰＵ（Central  Processing  Unit）１４と、第１の高速化部１５とを有する。通信部１１は、サーバ２との間及び、通信網６との間の通信を司る通信インタフェースである。記憶部１３は、各種情報を記憶する領域である。メモリ１２は、各種情報を記憶し、ＣＰＵ１４の処理を実行する作業領域である。尚、メモリ１２には、後述する先頭データをキャッシュする第１のキャッシュ１２Ａを有する。ＣＰＵ１４は、サーバ側中継装置３全体を制御する。第１の高速化部１５は、サーバ２側の中継処理を実現するアプリケーションである。【００３２】
第１の高速化部１５は、要求部２１と、第１の制御部２２と、通知部２３とを有する。要求部２１は、サーバ２から情報取得コマンドに対する情報取得応答をクライアント側中継装置４に送信する際に、先頭データの先読みを要求する初回先読みコマンドをサーバ２に要求する。尚、初回先読みコマンドは、例えば、先頭データ（ｄａｔａ０−３９９）の先読みを要求するコマンドである。また、要求部２１は、次のデータ（例えば、ｄａｔａ４００−４９９）の先読みを要求する先読みコマンドをサーバ２に要求する。【００３３】
第１の制御部２２は、第１のキャッシュ１２Ａを制御する。第１の制御部２２は、第１のキャッシュ１２Ａ内に先読みの先頭データがない場合、初回先読みコマンドで取得した先読みの先頭データを第１のキャッシュ１２Ａにキャッシュする。【００３４】
通知部２３は、要求部２１にて初回先読みコマンドに応じて先頭データを取得した場合、取得した先読みの先頭データと第１のキャッシュ１２Ａにキャッシュ中の先頭データとを比較する。通知部２３は、取得した先頭データと第１のキャッシュ１２Ａにキャッシュ中の先頭データとが一致する場合、クライアント側中継装置４に対してキャッシュＯＫを通知する。尚、キャッシュＯＫは、クライアント側中継装置４内の後述する第２のキャッシュ３２Ａにキャッシュ中の先頭データを利用してクライアント５に代理応答すべく、第２のキャッシュ３２Ａのキャッシュデータの利用を許可する所定信号である。【００３５】
通知部２３は、取得した先頭データと第１のキャッシュ１２Ａにキャッシュ中の先頭データとが一致しない場合、クライアント側中継装置４にキャッシュＮＧを通知する。尚、キャッシュＮＧは、クライアント側中継装置４内の第２のキャッシュ３２Ａにキャッシュを利用してのクライアント５への代理応答を禁止すべく、第２のキャッシュ３２Ａのキャッシュデータの利用を禁止する信号である。【００３６】
クライアント５は、例えば、パソコン等のクライアント５近傍の第２の通信装置である。クライアント側中継装置４は、クライアント５に接続すると共に、通信網６と接続する第２の中継装置である。尚、説明の便宜上、クライアント側中継装置４は、例えば、クライアント５近傍に配置されるものとするが、例えば、クライアント５内部に内蔵しても良いし、クライアント５内部の図示せぬＣＰＵで展開するアプリケーションであっても良い。クライアント側中継装置４は、通信部３１と、メモリ３２と、記憶部３３と、ＣＰＵ３４と、第２の高速化部３５とを有する。通信部３１は、クライアント５との間及び、通信網６との間の通信を司る通信インタフェースである。記憶部３３は、各種情報を記憶する領域である。メモリ３２は、各種情報を記憶し、ＣＰＵ３４の処理を実行する作業領域である。尚、メモリ３２には、第２のキャッシュ３２Ａを有する。ＣＰＵ３４は、クライアント側中継装置４全体を制御する。第２の高速化部３５は、クライアント５側の中継処理を実現するアプリケーションである。【００３７】
第２の高速化部３５は、第２の制御部４１と、応答部４２とを有する。第２の制御部４１は、第２のキャッシュ３２Ａを制御する。第２の制御部４１は、サーバ側中継装置３内の第１のキャッシュ１２Ａにキャッシュ中の先頭データを第２のキャッシュ３２Ａにキャッシュする。第２のキャッシュ３２Ａのキャッシュ量は、クライアント５から１回目の読出しコマンドの送信から当該読出しコマンドに対応するデータをサーバ２から取得するまでの処理に要するＲＴＴ（Round  Trip  Time）以上、クライアント５に対する代理応答が可能な先読みデータ量である。すなわち、第２のキャッシュ３２Ａのキャッシュ量は、クライアント５の読出しコマンドの速度（ｂｐｓ）×ＲＴＴ（ｍｓｅｃ）×１０００で算出できる。尚、説明の便宜上、第２のキャッシュ３２Ａは、第１のキャッシュ１２Ａにキャッシュ中の先読みの先頭データ（ｄａｔａ０−３９９）をキャッシュしているものとする。応答部４２は、第２のキャッシュ３２Ａ内に先頭データがある場合、クライアント５からの読出しコマンドに応じて第２のキャッシュ３２Ａ内の先頭データをクライアント５に対して代理応答する。【００３８】
次に本実施例の高速伝送システム１の動作について説明する。図２は、キャッシュ空時の中継処理に関わる高速伝送システム１の処理動作の一例を示すシーケンス図である。尚、説明の便宜上、サーバ側中継装置３内の第１のキャッシュ１２Ａ及びクライアント側中継装置４内の第２のキャッシュ３２Ａ内には、先頭データがキャッシュされていない空の状態となる。【００３９】
クライアント５は、情報取得コマンドをクライアント側中継装置４に送信する（ステップＳ３１）。クライアント側中継装置４は、受信した情報取得コマンドをサーバ側中継装置３に送信する（ステップＳ３２）。サーバ側中継装置３は、受信した情報取得コマンドをサーバ２に送信する（ステップＳ３３）。【００４０】
サーバ２は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置３に送信する（ステップＳ３４）。サーバ側中継装置３は、受信した情報取得応答をクライアント側中継装置４に送信する（ステップＳ３５）。更に、クライアント側中継装置４は、受信した情報取得応答をクライアント５に送信する（ステップＳ３６）。【００４１】
サーバ側中継装置３は、ステップＳ３５にて情報取得応答をクライアント側中継装置４に送信する場合、初回先読みコマンド（ｒｅａｄ０−３９９）をサーバ２に要求する（ステップＳ３７）。サーバ２は、初回先読みコマンド（ｒｅａｄ０−３９９）に応じて先頭データ（ｄａｔａ０−３９９）を読み出し、読み出した先頭データ（ｄａｔａ０−３９９）をサーバ側中継装置３に送信する（ステップＳ３８）。【００４２】
サーバ側中継装置３は、第１のキャッシュ１２Ａ内に先頭データがないため、ステップＳ３８で受信した先頭データ（ｄａｔａ０−３９９）を第１のキャッシュ１２Ａにキャッシュする（ステップＳ３９）。その結果、第１のキャッシュ１２Ａ内には、先頭データ（ｄａｔａ０−３９９）が格納されることになる。【００４３】
クライアント５は、ステップＳ３６にて情報取得応答を受信した場合、読出しコマンド（ｒｅａｄ０−９９）をクライアント側中継装置４に送信する（ステップＳ４０）。クライアント側中継装置４は、受信した読出しコマンド（ｒｅａｄ０−９９）をサーバ側中継装置３に送信する（ステップＳ４１）。【００４４】
サーバ側中継装置３は、ステップＳ４１にて読出しコマンド（ｒｅａｄ０−９９）を受信した場合、読出しコマンド（ｒｅａｄ０−９９）に対応するデータ（ｄａｔａ０−９９）を第１のキャッシュ１２Ａから読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ０−９９）をクライアント側中継装置４に送信する（ステップＳ４２）。そして、クライアント側中継装置４は、受信したデータ（ｄａｔａ０−９９）を第２のキャッシュ３２Ａにキャッシュすると共に（ステップＳ４３）、そのデータ（ｄａｔａ０−９９）をクライアント５に送信する（ステップＳ４４）。【００４５】
サーバ側中継装置３は、ステップＳ４２にて第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ０−９９）をクライアント側中継装置４に送信した後、第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ１００−１９９）を読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ１００−１９９）をクライアント側中継装置４に送信する（ステップＳ４５）。そして、クライアント側中継装置４は、受信した（ｄａｔａ１００−１９９）を第２のキャッシュ３２Ａにキャッシュする（ステップＳ４３Ａ）。【００４６】
サーバ側中継装置３は、ステップＳ４５にて第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ１００−１９９）をクライアント側中継装置４に送信した後、第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ２００−２９９）を読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ２００−２９９）をクライアント側中継装置４に送信する（ステップＳ４６）。そして、クライアント側中継装置４は、受信したデータ（ｄａｔａ２００−２９９）を第２のキャッシュ３２Ａにキャッシュする（ステップＳ４３Ｂ）。【００４７】
サーバ側中継装置３は、ステップＳ４６にて第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ２００−２９９）をクライアント側中継装置４に送信した後、第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ３００−３９９）を読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ３００−３９９）をクライアント側中継装置４に送信する（ステップＳ４７）。そして、クライアント側中継装置４は、受信した（ｄａｔａ３００−３９９）を第２のキャッシュ３２Ａにキャッシュする（ステップＳ４３Ｃ）。その結果、第２のキャッシュ３２Ａには、第１のキャッシュ１２Ａと同一の先頭データ（ｄａｔａ０−３９９）がキャッシュされたことになる。【００４８】
また、クライアント５は、ステップＳ４４にてデータ（ｄａｔａ０−９９）を受信した場合、次の読出しコマンド（ｒｅａｄ１００−１９９）をクライアント側中継装置４に送信する（ステップＳ４８）。クライアント側中継装置４は、受信した読出しコマンド（ｒｅａｄ１００−１９９）に対応するデータ（ｄａｔａ１００−１９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ１００−１９９）を代理応答としてクライアント５に送信する（ステップＳ４９）。【００４９】
また、クライアント５は、ステップＳ４９にてデータ（ｄａｔａ１００−１９９）を受信した場合、次の読出しコマンド（ｒｅａｄ２００−２９９）をクライアント側中継装置４に送信する（ステップＳ５０）。クライアント側中継装置４は、受信した読出しコマンド（ｒｅａｄ２００−２９９）に対応するデータ（ｄａｔａ２００−２９９）を第２のキャッシュ３２Ａから読み出す。クライアント側中継装置４は、読み出したデータ（ｄａｔａ２００−２９９）を代理応答としてクライアント５に送信する（ステップＳ５１）。【００５０】
また、クライアント５は、ステップＳ５１にてデータ（ｄａｔａ２００−２９９）を受信した場合、次の読出しコマンド（ｒｅａｄ３００−３９９）をクライアント側中継装置４に送信する（ステップＳ５２）。クライアント側中継装置４は、受信した読出しコマンド（ｒｅａｄ３００−３９９）に対応するデータ（ｄａｔａ３００−３９９）を第２のキャッシュ３２Ａから読み出す。クライアント側中継装置４は、読み出したデータ（ｄａｔａ３００−３９９）を代理応答としてクライアント５に送信する（ステップＳ５３）。【００５１】
また、サーバ側中継装置３は、ステップＳ５３にてデータ（ｄａｔａ３００−３９９）をクライアント側中継装置４に送信した後、先読みコマンド（ｒｅａｄ４００−４９９）をサーバ２に送信する（ステップＳ５４）。サーバ２は、先読みコマンド（ｒｅａｄ４００−４９９）に応じてデータ（ｄａｔａ４００−４９９）を読み出し、読み出したデータ（ｄａｔａ４００−４９９）をサーバ側中継装置３に送信する（ステップＳ５５）。【００５２】
更に、サーバ側中継装置３は、読み出しデータ（ｄａｔａ４００−４９９）をクライアント側中継装置４に送信する（ステップＳ５６）。そして、クライアント５は、ステップＳ５３にて代理応答（ｄａｔａ３００−３９９）を受信した場合、次の読出しコマンド（ｒｅａｄ４００−４９９）をクライアント側中継装置４に送信する（ステップＳ５７）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ４００−４９９）に対する受信データ（ｄａｔａ４００−４９９）を代理応答としてクライアント５に送信する（ステップＳ５８）。クライアント５は、サーバ２に対して所望の全てのデータを取得できるまで、これら一連の処理を繰り返し実行することになる。【００５３】
図２に示すサーバ側中継装置３は、情報取得コマンドの情報取得応答をクライアント側中継装置４に送信した場合に初回先読みコマンドをサーバ２に要求し、初回先読みコマンドに対応する先読みデータを取得する。更に、サーバ側中継装置３は、第１のキャッシュ１２Ａが空の場合、その取得した先読みデータを第１のキャッシュ１２Ａにキャッシュする。更に、クライアント側中継装置４は、第１のキャッシュ１２Ａから先読みデータを順次取得し、順次取得した先読みデータを第２のキャッシュ３２Ａにキャッシュする。その結果、サーバ側中継装置３内の第１のキャッシュ１２Ａ及びクライアント側中継装置４内の第２のキャッシュ３２Ａは、同一の先読みデータをキャッシュできる。そして、クライアント側中継装置４は、第２のキャッシュ３２Ａにキャッシュ中の先頭データを使用してクライアント５に対して代理応答ができるため、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。【００５４】
図３は、キャッシュＯＫ時の中継処理に関わる高速伝送システム１の処理動作の一例を示すシーケンス図である。尚、説明の便宜上、サーバ側中継装置３内の第１のキャッシュ１２Ａ及びクライアント側中継装置４内の第２のキャッシュ３２Ａ内には同一の先頭データ（ｄａｔａ０−３９９）がキャッシュされているものとする。【００５５】
クライアント５は、情報取得コマンドをクライアント側中継装置４に送信する（ステップＳ６１）。クライアント側中継装置４は、受信した情報取得コマンドをサーバ側中継装置３に送信する（ステップＳ６２）。サーバ側中継装置３は、受信した情報取得コマンドをサーバ２に送信する（ステップＳ６３）。【００５６】
サーバ２は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置３に送信する（ステップＳ６４）。サーバ側中継装置３は、受信した情報取得応答をクライアント側中継装置４に送信する（ステップＳ６５）。更に、クライアント側中継装置４は、受信した情報取得応答を受信する（ステップＳ６６）。【００５７】
サーバ側中継装置３は、ステップＳ６５にて情報取得応答をクライアント側中継装置４に送信した場合、初回先読みコマンド（ｒｅａｄ０−３９９）をサーバ２に送信する（ステップＳ６７）。サーバ２は、初回先読みコマンド（ｒｅａｄ０−３９９）に応じて先頭データ（ｄａｔａ０−３９９）を読み出し、読み出した先頭データ（ｄａｔａ０−３９９）をサーバ側中継装置３に送信する（ステップＳ６８）。【００５８】
サーバ側中継装置３は、受信した先頭データ（ｄａｔａ０−３９９）と第１のキャッシュ１２Ａにキャッシュ中の先頭データとを比較する。サーバ側中継装置３は、受信した先頭データが第１のキャッシュ１２Ａにキャッシュ中の先頭データと一致した場合、キャッシュＯＫをクライアント側中継装置４に送信する（ステップＳ６９）。【００５９】
クライアント５は、ステップＳ６６にて情報取得応答を受信した場合、読出しコマンド（ｒｅａｄ０−９９）をクライアント側中継装置４に送信する（ステップＳ７０）。クライアント側中継装置４は、受信した読出しコマンド（ｒｅａｄ０−９９）をサーバ側中継装置３に送信する（ステップＳ７１）。【００６０】
クライアント側中継装置４は、ステップＳ６９にてキャッシュＯＫを受信した場合、第２のキャッシュ３２Ａにキャッシュ中の先頭データで代理応答する。つまり、クライアント側中継装置４は、ステップＳ７０にて読出しコマンド（ｒｅａｄ０−９９）を受信した場合、読出しコマンド（ｒｅａｄ０−９９）に対応するデータ（ｄａｔａ０−９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ０−９９）をクライアント５に送信する（ステップＳ７２）。【００６１】
また、クライアント５は、ステップＳ７２にてデータ（ｄａｔａ０−９９）を受信した場合、次の読出しコマンド（ｒｅａｄ１００−１９９）をクライアント側中継装置４に送信する（ステップＳ７３）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ１００−１９９）を受信した場合、読出しコマンド（ｒｅａｄ１００−１９９）に対応するデータ（ｄａｔａ１００−１９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ１００−１９９）を代理応答としてクライアント５に送信する（ステップＳ７４）。【００６２】
また、クライアント５は、ステップＳ７４にてデータ（ｄａｔａ１００−１９９）を受信した場合、次の読出しコマンド（ｒｅａｄ２００−２９９）をクライアント側中継装置４に送信する（ステップＳ７５）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ２００−２９９）に対応するデータ（ｄａｔａ２００−２９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ２００−２９９）を代理応答としてクライアント５に送信する（ステップＳ７６）。【００６３】
また、クライアント５は、ステップＳ７６にてデータ（ｄａｔａ２００−２９９）を受信した場合、次の読出しコマンド（ｒｅａｄ３００−３９９）をクライアント側中継装置４に送信する（ステップＳ７７）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ３００−３９９）に対応するデータ（ｄａｔａ３００−３９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ３００−３９９）を代理応答としてクライアント５に送信する（ステップＳ７８）。【００６４】
また、サーバ側中継装置３は、ステップＳ７１にて読出しコマンド（ｒｅａｄ０−９９）を受信した後、先読みコマンド（ｒｅａｄ４００−４９９）をサーバ２に送信する（ステップＳ７９）。サーバ２は、先読みコマンド（ｒｅａｄ４００−４９９）に応じてデータ（ｄａｔａ４００−４９９）を読み出し、読み出したデータ（ｄａｔａ４００−４９９）をサーバ側中継装置３に送信する（ステップＳ８０）。【００６５】
更に、サーバ側中継装置３は、読み出しデータ（ｄａｔａ４００−４９９）をクライアント側中継装置４に送信する（ステップＳ８１）。そして、クライアント５は、ステップＳ７８にて代理応答（ｄａｔａ３００−３９９）を受信した場合、読出しコマンド（ｒｅａｄ４００−４９９）をクライアント側中継装置４に送信する（ステップＳ８２）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ４００−４９９）に対する受信データ（ｄａｔａ４００−４９９）を代理応答としてクライアント５に送信する（ステップＳ８３）。クライアント５は、サーバ２から所望の全てのデータを取得できるまで、これら一連の処理を繰り返し実行する。【００６６】
図３に示すサーバ側中継装置３は、初回先読みコマンドに応じて取得した先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとを比較する。サーバ側中継装置３は、先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが一致した場合にキャッシュＯＫをクライアント側中継装置４に通知する。クライアント側中継装置４は、キャッシュＯＫを受信した場合、クライアント５からの読出しコマンドに応じて第２のキャッシュ３２Ａにキャッシュ中の先読みデータで代理応答する。その結果、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。初回段階に限定されることなく、クライアント５とサーバ２との間のデータ要求からデータ取得までの処理速度を高速化できる。【００６７】
図４は、キャッシュＮＧ時の中継処理に関わる高速伝送システム１の処理動作の一例を示すシーケンス図である。尚、説明の便宜上、サーバ側中継装置３内の第１のキャッシュ１２Ａ及びクライアント側中継装置４内の第２のキャッシュ３２Ａ内には先頭データがキャッシュされているものとする。【００６８】
クライアント５は、情報取得コマンドをクライアント側中継装置４に送信する（ステップＳ９１）。クライアント側中継装置４は、受信した情報取得コマンドをサーバ側中継装置３に送信する（ステップＳ９２）。サーバ側中継装置３は、受信した情報取得コマンドをサーバ２に送信する（ステップＳ９３）。【００６９】
サーバ２は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置３に送信する（ステップＳ９４）。サーバ側中継装置３は、受信した情報取得応答をクライアント側中継装置４に送信する（ステップＳ９５）。更に、クライアント側中継装置４は、受信した情報取得応答をクライアント５に送信する（ステップＳ９６）。【００７０】
サーバ側中継装置３は、ステップＳ９５にて情報取得応答をクライアント側中継装置４に送信した場合、初回先読みコマンド（ｒｅａｄ０−３９９）をサーバ２に要求する（ステップＳ９７）。サーバ２は、初回先読みコマンド（ｒｅａｄ０−３９９）に応じて先頭データ（ｄａｔａ０−３９９）を読み出し、読み出した先頭データ（ｄａｔａ０−３９９）をサーバ側中継装置３に送信する（ステップＳ９８）。【００７１】
サーバ側中継装置３は、受信した先頭データ（ｄａｔａ０−３９９）と第１のキャッシュ１２Ａにキャッシュ中の先頭データとを比較する。サーバ側中継装置３は、受信した先頭データが第１のキャッシュ１２Ａにキャッシュ中の先頭データと異なる場合、キャッシュＮＧをクライアント側中継装置４に送信する（ステップＳ９９）。サーバ側中継装置３は、受信した先頭データ（ｄａｔａ０−３９９）を第１のキャッシュ１２Ａにキャッシュ更新する（ステップＳ１００）。クライアント側中継装置４は、サーバ側中継装置３からキャッシュＮＧを受信した場合、第２のキャッシュ３２Ａのキャッシュ内容を消去する。【００７２】
そして、クライアント５は、ステップＳ９６にて情報取得応答を受信した場合、読出しコマンド（ｒｅａｄ０−９９）をクライアント側中継装置４に送信する（ステップＳ１０１）。クライアント側中継装置４は、受信した読出しコマンド（ｒｅａｄ０−９９）をサーバ側中継装置３に送信する（ステップＳ１０２）。【００７３】
サーバ側中継装置３は、ステップＳ１０２にて読出しコマンド（ｒｅａｄ０−９９）を受信した場合、読出しコマンド（ｒｅａｄ０−９９）に対応するデータ（ｄａｔａ０−９９）を第１のキャッシュ１２Ａから読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ０−９９）をクライアント側中継装置４に送信する（ステップＳ１０３）。そして、クライアント側中継装置４は、受信したデータ（ｄａｔａ０−９９）を第２のキャッシュ３２Ａにキャッシュすると共に（ステップＳ１０４）、そのデータ（ｄａｔａ０−９９）をクライアント５に送信する（ステップＳ１０５）。【００７４】
サーバ側中継装置３は、ステップＳ１０３にて第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ０−９９）をクライアント側中継装置４に送信した後、第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ１００−１９９）を読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ１００−１９９）をクライアント側中継装置４に送信する（ステップＳ１０６）。そして、クライアント側中継装置４は、受信したデータ（ｄａｔａ１００−１９９）を第２のキャッシュ３１Ａにキャッシュする（ステップＳ１０４Ａ）。【００７５】
サーバ側中継装置３は、ステップＳ１０６にて第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ１００−１９９）をクライアント側中継装置４に送信した後、第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ２００−２９９）を読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ２００−２９９）をクライアント側中継装置４に送信する（ステップＳ１０７）。そして、クライアント側中継装置４は、受信したデータ（ｄａｔａ２００−２９９）を第２のキャッシュ３２Ａにキャッシュする（ステップＳ１０４Ｂ）。【００７６】
サーバ側中継装置３は、ステップＳ１０７にて第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ２００−２９９）をクライアント側中継装置４に送信した後、第１のキャッシュ１２Ａにキャッシュ中のデータ（ｄａｔａ３００−３９９）を読み出す。そして、サーバ側中継装置３は、読み出したデータ（ｄａｔａ３００−３９９）をクライアント側中継装置４に送信する（ステップＳ１０８）。そして、クライアント側中継装置４は、受信したデータ（ｄａｔａ３００−３９９）を第２のキャッシュ３２Ａにキャッシュする（ステップＳ１０４Ｃ）。その結果、第２のキャッシュ３２Ａには、第１のキャッシュ１２Ａと同一の先頭データ（ｄａｔａ０−３９９）をキャッシュした状態となる。【００７７】
また、クライアント５は、ステップＳ１０５にてデータ（ｄａｔａ０−９９）を受信した場合、次の読出しコマンド（ｒｅａｄ１００−１９９）をクライアント側中継装置４に送信する（ステップＳ１０９）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ１００−１９９）を受信した場合、読出しコマンド（ｒｅａｄ１００−１９９）に対応するデータ（ｄａｔａ１００−１９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ１００−１９９）を代理応答としてクライアント５に送信する（ステップＳ１１０）。【００７８】
また、クライアント５は、ステップＳ１１０にてデータ（ｄａｔａ１００−１９９）を受信した場合、次の読出しコマンド（ｒｅａｄ２００−２９９）をクライアント側中継装置４に送信する（ステップＳ１１１）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ２００−２９９）を受信した場合、読出しコマンド（ｒｅａｄ２００−２９９）に対応するデータ（ｄａｔａ２００−２９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ２００−２９９）を代理応答としてクライアント５に送信する（ステップＳ１１２）。【００７９】
また、クライアント５は、ステップＳ１１２にてデータ（ｄａｔａ２００−２９９）を受信した場合、次の読出しコマンド（ｒｅａｄ３００−３９９）をクライアント側中継装置４に送信する（ステップＳ１１３）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ３００−３９９）を受信した場合、読出しコマンド（ｒｅａｄ３００−３９９）に対応するデータ（ｄａｔａ３００−３９９）を第２のキャッシュ３２Ａから読み出す。そして、クライアント側中継装置４は、読み出したデータ（ｄａｔａ３００−３９９）を代理応答としてクライアント５に送信する（ステップＳ１１４）。【００８０】
また、サーバ側中継装置３は、ステップＳ１０８にてデータ（ｄａｔａ３００−３９９）をクライアント側中継装置４に送信した後、先読みコマンド（ｒｅａｄ４００−４９９）をサーバ２に送信する（ステップＳ１１５）。サーバ２は、先読みコマンド（ｒｅａｄ４００−４９９）に応じてデータ（ｄａｔａ４００−４９９）を読み出し、読み出したデータ（ｄａｔａ４００−４９９）をサーバ側中継装置３に送信する（ステップＳ１１６）。【００８１】
更に、サーバ側中継装置３は、読み出したデータ（ｄａｔａ４００−４９９）をクライアント側中継装置４に送信する（ステップＳ１１７）。また、クライアント５は、ステップＳ１１４にて代理応答（ｄａｔａ３００−３９９）を受信した場合、読出しコマンド（ｒｅａｄ４００−４９９）をクライアント側中継装置４に送信する（ステップＳ１１８）。クライアント側中継装置４は、読出しコマンド（ｒｅａｄ４００−４９９）に対する受信データ（ｄａｔａ４００−４９９）を代理応答としてクライアント５に送信する（ステップＳ１１９）。クライアント５は、サーバ２から所望の全てのデータを取得できるまで、これら一連の処理を繰り返し実行する。【００８２】
図４に示すサーバ側中継装置３は、初回先読みコマンドに応じて取得した今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとを比較する。サーバ側中継装置３は、今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが一致しなかった場合にキャッシュＮＧをクライアント側中継装置４に通知する。サーバ側中継装置３は、今回の先読みデータを第１のキャッシュにキャッシュ更新する。そして、クライアント側中継装置４は、キャッシュ更新後の第１のキャッシュ１２Ａから先読みデータを順次取得し、順次取得した先読みデータを第２のキャッシュ３２Ａにキャッシュ更新する。その結果、サーバ側中継装置３内の第１のキャッシュ１２Ａ及びクライアント側中継装置４内の第２のキャッシュ３２Ａは、同一の先読みデータをキャッシュできる。そして、クライアント側中継装置４は、第２のキャッシュ３２Ａにキャッシュ中の先頭データを使用してクライアント５に対して代理応答ができるため、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。【００８３】
図５は、中継処理に関わるサーバ側中継装置３の処理動作の一例を示すフローチャートである。図５においてサーバ側中継装置３内の第１高速化部１５は、クライアント側中継装置４から情報取得コマンドを受信したか否かを判定する（ステップＳ１１）。第１の高速化部１５は、情報取得コマンドを受信した場合（ステップＳ１１肯定）、情報取得コマンドをサーバ２に送信する（ステップＳ１２）。【００８４】
第１の高速化部１５は、情報取得コマンドに対する情報取得応答をサーバ２から受信したか否かを判定する（ステップＳ１３）。第１の高速化部１５は、情報取得応答を受信した場合（ステップＳ１３肯定）、情報取得応答をクライアント側中継装置４に送信する（ステップＳ１４）。【００８５】
第１の高速化部１５内の要求部２１は、初回先読みコマンドをサーバ２に送信し（ステップＳ１５）、初回先読みコマンドに対する先読みデータを受信したか否かを判定する（ステップＳ１６）。第１の高速化部１５内の第１の制御部２２は、先読みデータを受信した場合（ステップＳ１６肯定）、第１のキャッシュ１２Ａ内に先頭データがあるか否かを判定する（ステップＳ１７）。【００８６】
第１の高速化部１５内の通知部２３は、第１のキャッシュ１２Ａ内に先頭データがある場合（ステップＳ１７肯定）、第１のキャッシュ１２Ａ内の先頭データと受信した先読みデータとを比較する（ステップＳ１８）。通知部２３は、第１のキャッシュ１２Ａ内の先頭データと受信した先読みデータとが一致しているか否かを判定する（ステップＳ１９）。【００８７】
通知部２３は、第１のキャッシュ１２Ａ内の先頭データと受信した先読みデータとが一致している場合、キャッシュＯＫをクライアント側中継装置４に通知する（ステップＳ２０）。要求部２１は、クライアント側中継装置４から読出しコマンドを受信したか否かを判定する（ステップＳ２１）。要求部２１は、読出しコマンドを受信した場合（ステップＳ２１肯定）、続きのデータの先読みコマンドをサーバ２に送信する（ステップＳ２２）。【００８８】
第１の高速化部１５は、先読みコマンドに対する先読みデータを受信したか否かを判定する（ステップＳ２３）。第１の高速化部１５は、先読みデータを受信した場合（ステップＳ２３肯定）、受信した先読みデータをクライアント側中継装置４に送信する（ステップＳ２４）。そして、第１の高速化部１５は、先読みデータがなしか否かを判定する（ステップＳ２５）。第１の高速化部１５は、先読みデータがなしの場合（ステップＳ２５肯定）、図５に示す処理動作を終了する。【００８９】
第１の高速化部１５は、先読みデータがなしでない場合（ステップＳ２５否定）、続きデータの先読みコマンドをサーバ２に送信すべく、ステップＳ２２に移行する。第１の高速部１５は、クライアント側中継装置４から情報取得コマンドを受信しなかった場合（ステップＳ１１否定）、図５に示す処理動作を終了する。第１の高速化部１５は、サーバから情報取得応答を受信しなかった場合（ステップＳ１３否定）、情報取得応答を受信したか否かを判定すべく、ステップＳ１３に移行する。【００９０】
第１の高速化部１５は、初回先読みコマンドに対する先読みデータを受信しなかった場合（ステップＳ１６否定）、初回先読みコマンドに対する先読みデータを受信したか否かを判定すべく、ステップＳ１６に移行する。【００９１】
第１の制御部２２は、第１のキャッシュ１２Ａ内に先頭データがない場合（ステップＳ１７否定）、先読みの先頭データを第１のキャッシュ１２Ａ内に更新する（ステップＳ２６）。そして、第１の高速化部１５は、第１のキャッシュ１２Ａ内の先読みデータをクライアント側中継装置４に送信し（ステップＳ２７）、先読みデータなしであるか否かを判定すべく、ステップＳ２５に移行する。【００９２】
第１の制御部２２は、比較結果が一致していない場合（ステップＳ１９否定）、先読みの先頭データを第１のキャッシュ１２Ａに更新すべく、ステップＳ２６に移行する。第１の高速化部１５は、クライアント側中継装置から読出しコマンドを受信しなかった場合（ステップＳ２１否定）、読出しコマンドを受信したか否かを判定すべく、ステップＳ２１に移行する。第１の高速化部１５は、先読みコマンドに対する先読みデータを受信しなかった場合（ステップＳ２３否定）、先読みコマンドに対する先読みデータを受信したか否かを判定すべく、ステップＳ２３に移行する。【００９３】
サーバ側中継装置３は、初回先読みコマンドに応じて取得した先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとを比較する。サーバ側中継装置３は、先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが一致した場合にキャッシュＯＫをクライアント側中継装置４に通知する。クライアント側中継装置４は、キャッシュＯＫを受信した場合、クライアント５からの読出しコマンドに応じて第２のキャッシュ３２Ａにキャッシュ中のデータで代理応答する。その結果、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。【００９４】
本実施例の高速伝送システム１内のサーバ側中継装置３は、初回先読みコマンドに応じて取得した今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとを比較する。サーバ側中継装置３は、今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが一致した場合にキャッシュＯＫをクライアント側中継装置４に通知する。クライアント側中継装置４は、キャッシュＯＫを受信した場合、クライアント５からの読出しコマンドに応じて第２のキャッシュ３２Ａにキャッシュ中のデータで代理応答する。その結果、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。【００９５】
高速伝送システム１では、遠隔地間のファイル共有システムに適用した場合、データ要求からデータ取得までの処理速度（ダウンロード速度）を高速化する。そして、高速伝送システム１は、ダウンロード対象のデータサイズが小さくなるに連れてデータ要求からデータ取得までの処理速度の高速化の効果が大きくなる。例えば、クライアント５とサーバ２との間のＲＴＴが１００ｍ秒で１００ＫＢｙｔｅのデータをダウンロードする場合に、その処理時間が０．２秒から０．１秒に短縮化できる。例えば、データ数が１００個の場合、２０秒が１０秒に短縮化できる。【００９６】
図８に示す従来の高速伝送システム３００に比較して、クライアント側中継装置４では、ファイル全体をキャッシュする必要がないため、キャッシュに要するストレージ量を小さくできる。【００９７】
上記実施例のサーバ側中継装置３では、初回先読みコマンドとして、０−３９９のデータの先読みをサーバ２に要求したが、先読みのデータ量は０−３９９に限定されるものではなく、適宜変更可能である。【００９８】
第２のキャッシュ３２Ａは、第１のキャッシュ１２Ａにキャッシュ中の先頭データ０−３９９と同一のデータをキャッシュする場合を例示した。しかしながら、第２のキャッシュ３２Ａは、第１のキャッシュ１２Ａのキャッシュ中の先頭データの一部、例えば、０−２９９のデータをキャッシュする場合でも良く。前述したデータ要求からデータ取得までのＲＴＴを考慮して適宜変更可能である。サーバ側中継装置３は、情報取得応答をクライアント側中継装置４に送信した場合に初回先読みコマンドをサーバ２に要求したが、このタイミングに限定されるものではなく、情報取得応答をサーバ２から受信したタイミングでも良く、適宜変更可能である。【００９９】
サーバ側中継装置３は、要求部２１で取得した今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが異なる場合に第１のキャッシュ１２Ａの内容を消去し、今回の先読みデータを第１のキャッシュ１２Ａにキャッシュした。しかしながら、サーバ側中継装置３は、今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが異なる場合に第１のキャッシュ１２Ａのキャッシュを消去せず、アラームをクライアント５に通知しても良い。また、サーバ側中継装置３は、今回の先読みデータと第１のキャッシュ１２Ａにキャッシュ中の先読みデータとが異なる場合に、所定条件を満たした場合にのみ、第１のキャッシュ１２Ａのキャッシュを消去し、今回の先読みデータを第１のキャッシュ１２にキャッシュしても良い。【０１００】
上記実施例では、サーバ２をコンピュータ等の通信装置としたが、サーバ２の各種機能や情報をクラウドコンピューティングで実現しても良い。【０１０１】
上記実施例の高速伝送システム１では、ＣＩＦＳ／ＳＭＢのファイル共有プロトコルを採用したが、これらに限定されるものではなく、例えば、ＮＦＳ（Network  File  System）やＡＦＰ（Apple  Filing  Protocol）でも良く、適宜変更可能である。【０１０２】
高速伝送システム１では、ファイル共有プロトコルとしてＣＩＦＳ／ＳＭＢを例示した。しかしながら、ファイル共有プロトコルに限定されるものではなく、ＨＴＴＰ(Hypertext  Transfer  Protocol)、ＦＴＰ（File  Transfer  Protocol）、ＭＡＰＩ（Messaging  Application  Programming  Interface）のプロトコルにも適用可能である。また、ＩＭＡＰ（Internet  Message  Access  Protocol）、ＰＯＰ（Post  Office  Protocol）、ＳＭＴＰ（Simple  Mail  Transfer  Protocol）やＬＤＡＰ（Lightweight  Directory  Access  Protocol）のプロトコルにも適用可能である。【０１０３】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。【０１０４】
更に、サーバ側中継装置３で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。【０１０５】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータ等の情報処理装置の一例を説明する。図６は、中継プログラムを実行する情報処理装置１００の一例を示す説明図である。【０１０６】
図６において中継プログラムを実行する情報処理装置１００では、通信部１０１と、キャッシュ１０２と、ＲＯＭ１０３、ＲＡＭ１０４、プロセッサ１０５、バス１０６とを有する。情報処理装置１００は、第１の通信装置と接続すると共に、第２の通信装置からのデータ要求に応じてデータを第１の通信装置から読み出し、その読み出したデータを第２の通信装置に中継する。【０１０７】
そして、ＲＯＭ１０３には、上記実施例と同様の機能を発揮する中継プログラムが予め記憶されている。尚、ＲＯＭ１０３ではなく、図示せぬドライブで読取可能な記録媒体に処理プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ、ＳＤカード等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。処理プログラムとしては、要求プログラム１０３Ａ、制御プログラム１０３Ｂ及び通知プログラム１０３Ｃである。尚、要求プログラム１０３Ａ、制御プログラム１０３Ｂ及び通知プログラム１０３Ｃについては、適宜統合又は分散しても良い。情報処理装置１００が、これらの可搬用の物理媒体から中継プログラムを取得して実行するようにしても良い。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮ等を介して情報処理装置１００に接続される他のコンピュータ等に中継プログラムを記憶させておき、情報処理装置１００がこれらから中継プログラムを取得して実行するようにしても良い。【０１０８】
そして、プロセッサ１０５は、これらの要求プログラム１０３Ａ、制御プログラム１０３Ｂ及び通知プログラム１０３ＣをＲＯＭ１０３から読み出し、これら読み出された各プログラムをＲＡＭ１０４上に展開する。プロセッサ１０５は、要求プログラム１０３Ａ、制御プログラム１０３Ｂ及び通知プログラム１０３ＣをＲＡＭ１０４上で要求プロセス１０４Ａ、制御プロセス１０４Ｂ及び通知プロセス１０４Ｃとして機能させる。尚、プロセッサ１０５では、必ずしも本実施例で示した全ての処理部が動作しなくてもよく、実行対象とする処理に対応する処理部が仮想的に実現されれば良い。【０１０９】
プロセッサ１０５は、第２の通信装置からの要求に応じて第１の通信装置に対してデータの先読みを要求する。プロセッサ１０５は、先読み要求で得た先読みデータをキャッシュ１０２にキャッシュする。プロセッサ１０５は、第２の通信装置から今回の要求に応じて第１の通信装置に対してデータの先読みを要求する。プロセッサ１０５は、先読み要求で得た今回の先読みデータとキャッシュ１０２にキャッシュ中の先読みデータとが一致した場合に、第２の通信装置からのデータ要求に応じて、当該第２の通信装置に接続する他の中継装置内のキャッシュにキャッシュ中の先読みデータで第２の通信装置に対する代理応答を指示する所定信号を他の中継装置に通知する。その結果、データ要求からデータ取得までに要する処理時間を高速化できる。
【符号の説明】
【０１１０】
１  高速伝送システム
２  サーバ
３  サーバ側中継装置
４  クライアント側中継装置
５  クライアント
１２Ａ  第１のキャッシュ
２１  要求部
２２  第１の制御部
２３  通知部
３２Ａ  第２のキャッシュ
４２  応答部
【図１】
2017163426.tif 000003
【図２】
2017163426.tif 000004
【図３】
2017163426.tif 000005
【図４】
2017163426.tif 000006
【図５】
2017163426.tif 000007
【図６】
2017163426.tif 000008
【図７】
2017163426.tif 000009
【図８】
2017163426.tif 000010
【国際調査報告】
2017163426.tif 000011
2017163426.tif 000012
2017163426.tif 000013
2017163426.tif 000014