(57)【特許請求の範囲】
【請求項１】
アプリケーション間で送受信される通信パケットの命令パターンを記憶する記憶部と、
前記通信パケットを中継する際に、中継する通信パケットの命令パターンが前記記憶部に記憶されていない場合、前記命令パターンと類似した命令パターンから、次に実行される命令パターンを予測する予測部と、
予測された前記命令パターンを代理要求した場合における前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻が、前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻よりも早い場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付ける処理部と、
を備えることを特徴とする中継装置。
【請求項２】
前記処理部は、
前記類似したパターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記記憶部に記憶させる
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
アプリケーション間で送受信される通信パケットを中継する際に、前記中継する通信パケットの命令パターンと類似した命令パターンから次に実行されると予測される命令パターンの送受信の終了時刻である第１の終了時刻と、前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻とを比較する判定部と、
前記第１の終了時刻が前記第２の終了時刻よりも早い場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて記憶する命令パターンを他の中継装置に通知する送受信部と、
を備えることを特徴とする中継装置。
【請求項４】
アプリケーション間で送受信される通信パケットを中継する第１と第２の中継装置を含む中継システムであって、
前記第１の中継装置は、
前記通信パケットを中継する際に、中継する通信パケットの命令パターンと類似した命令パターンから、次に実行される命令パターンを予測し、
予測処理が終了した第１の時刻を取得し、
前記命令パターンと、前記中継する通信パケットの命令パターンの次に実際に中継する命令パターンとが一致する場合、前記第１の時刻を前記第２の中継装置に送信し、
前記第２の中継装置は、
前記第１の時刻を受信すると、予測された前記命令パターンを代理で送信した場合に、前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻を前記第１の時刻に基づいて算出し、
前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻を算出し、
前記第２の終了時刻が前記第１の終了時刻よりも後である場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて前記第１の中継装置に記憶するように通知する
ことを特徴とする中継システム。
【請求項５】
前記第２の中継装置は、
前記類似した命令パターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記第１の中継装置に記憶させる
ことを特徴とする請求項４に記載の中継システム。
【請求項６】
アプリケーション間の命令を中継する際に、中継する通信パケットの命令パターンがメモリに記憶されていない場合に、前記中継する通信パケットの命令パターンと類似した命令パターンから、次に実行される命令パターンを予測し、予測された前記命令パターンを代理で送信した場合に、前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻を予測し、
前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻が第１の終了時刻よりも後である場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて前記メモリに記憶させる
ことを特徴とする通信パケットの制御方法。
【請求項７】
前記類似した命令パターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記メモリに記憶させる
ことを特徴とする請求項６に記載の制御方法。
【請求項８】
アプリケーション間の命令を中継する際に、中継する通信パケットの命令パターンがメモリに記憶されていない場合に、前記中継する通信パケットの命令パターンと類似した命令パターンから、次に実行される命令パターンを予測し、予測された前記命令パターンを代理で送信した場合に、前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻を予測し、
前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻が第１の終了時刻よりも後である場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて前記メモリに記憶させる
処理を情報処理装置に実行させるプログラム。
【請求項９】
前記類似した命令パターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記メモリに記憶させる
処理を情報処理装置に実行させる請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置間の通信に関する。
【背景技術】
【０００２】
ファイル共有システムは、あるサーバに記憶されているファイルに対して、クライアントや他のサーバなどから該ファイルにアクセス可能に提供する。ファイル共有は、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）やＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ）などのプロトコルを用いて行われる。これらのプロトコルを使用するために、サーバとクライアントには、専用のアプリケーションが使用される。
【０００３】
ファイル共有に用いられるプロトコルであるＣＩＦＳやＳＭＢでは、サーバとクライアント間の通信メッセージのやりとりが多いため、クライアントとサーバの物理的な距離の影響を受ける。クライアントとサーバの距離が遠くなるにつれ、やりとりに係る時間が増え、結果的にファイル共有に係る速度が低下してしまう。この問題を解決するために、サーバとクライアントの間に中継装置を設置する方法が知られている。
【０００４】
中継装置は、サーバと物理的に近い距離に設置されるものとする。クライアントから送信される要求命令＃１は、中継装置を介してサーバに送信される。サーバはクライアントに要求命令＃１に対応する応答＃１を返信する。クライアントは、該応答を受信したら、次に、要求命令＃２を送信するものとする。
【０００５】
ここで、クライアントは、応答＃１を受信するまで待機する。サーバとクライアント間の物理的な距離が遠ければ遠いほど、この待機時間は長くなり無駄な時間が生じてしまう。この対策として、中継装置が、クライアントの代わりに要求命令＃２を先にサーバ側に送信しておく「代理要求」などの技術が知られている。代理要求により、サーバは、クライアントからの要求命令＃２が到着する前に、応答＃２をクライアント側に送信することができ、ＣＩＦＳ通信を高速化することができる。
【０００６】
代理要求に関連する技術として、ＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）プロトコルでの応答速度を高速化するために、要求と関連度の高い応答を予め高速なメモリに格納しておく技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−２２５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
サーバやクライアント間でファイル共有をする場合、サーバとクライアントには専用のアプリケーションが使用される。これらのアプリケーションやファイル共有に用いられる通信プロトコルは、随時アップデートされ、バージョンが変更されていく。
【０００９】
中継装置が代理要求を実行するために、管理者は、アプリケーションやファイル共有に用いられる通信プロトコルのバージョンが上がっていく毎に、中継装置に代理要求を実行するための命令パターンを予め登録しておく。バージョンに対応した命令パターンが登録されていない場合、中継装置は、代理要求を実行できない。そのため、高速化可能な命令パターンがきても登録されていないパターンである場合、中継装置は、通信速度の高速化の処理を実行できない。
【００１０】
本発明は１つの側面において、高速化可能な命令パターンを予測することを目的とする。
【課題を解決するための手段】
【００１１】
中継装置は、記憶部、予測部、処理部を備える。記憶部は、アプリケーション間で送受信される通信パケットの命令パターンを記憶する。予測部は、通信パケットを中継する際に、中継する通信パケットの命令パターンが記憶部に記憶されていない場合、命令パターンと類似した命令パターンから、次に実行される命令パターンを予測する。処理部は、第１の終了時刻が第２の終了時刻よりも早い場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付ける。第１の終了時刻は、予測された命令パターンを代理要求した場合におけるアプリケーション間での命令パターンの送受信の終了時刻である。第２の終了時刻は、中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻である。
【発明の効果】
【００１２】
本発明によれば、高速化可能な命令パターンを予測することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態にかかるファイル共有システムの処理の例を説明するシーケンス図である。
【図２】中継装置の機能ブロック図の例である。
【図３】中継装置のハードウェア構成の例を説明する図
【図４】中継装置の処理（その１）の例を説明するフローチャートである。
【図５】中継装置の処理（その２）の例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
本実施形態に係る中継装置は、サーバとクライアントの両方で使用されるアプリケーション間の通信を高速化する。そのためにまず中継装置は、通信パケットを中継する際に、高速化可能な命令パターンが記憶されているかを判定する。高速化可能な命令パターンが記憶されている場合、中継装置は、該命令パターンに対応づけられた代理要求命令をサーバ側に代理で先行して送信し、ファイル共有にかかる通信時間の高速化を図る。
【００１５】
高速化可能な命令パターンが記憶されていない場合、中継装置は、高速化可能な命令パターンに類似したパターンに対応づけられた代理要求（命令）を検出する。中継装置は、該代理要求の命令を用いて通信を行った場合の時間を予測する。該類似したパターンに対応づけられた代理要求を用いることで通信の高速化が可能であると予測される場合、中継装置は、中継している通信の命令パターンに対応付けて該代理要求を登録する。これにより、中継装置は、高速化可能な命令パターンと代理要求を自動的に判定し、登録することができる。
【００１６】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、本実施形態にかかるファイル共有システムの処理の例を説明するシーケンス図である。ファイル共有システムは、クライアント１１、中継装置１２、中継装置１３、サーバ１４を含む。ファイル共有システムは、クライアント１１がアクセス可能なファイルをサーバ１４が記憶しており、クライアント１１の要求により適宜サーバ１４が要求に応じたファイルを共有するシステムである。中継装置１２０と中継装置１３０は、クライアント１１とサーバ１４間の通信パケットを中継する。中継装置１２は、クライアント１１との物理的な距離が近い箇所に設置されているものとする。中継装置１３は、サーバ１４との物理的な距離が近い箇所に設置されているものとする。なお、クライアント１１とサーバ１４とは、ファイル共有をするために、専用のアプリケーションを使用するものとする。
【００１７】
＜命令パターン記憶済み＞
例えば、クライアント１１は、サーバ１４に記憶されているファイルをダウンロードする場合、Ｃ１〜Ｃ３の命令をサーバ１４宛に順次送信するものとする。Ｃ１（Ｏｐｅｎ）は、クライアント１１からサーバ１４に記憶されているファイルにアクセスする要求命令である。Ｃ２（Ｉｎｆｏ）は、ダウンロードするファイルに関する情報を取得する要求命令である。Ｃ３（Ｒｅａｄ）は、実際に該ファイルをダウンロードするための要求命令である。
【００１８】
ここで、中継装置１３は、サーバ１４とクライアント１１間（アプリケーション、プロトコルを含む）で送受信される通信の命令パターンを記憶する。例えば、中継装置１３は、Ｃ１とＣ２の一連の命令パターンを記憶しており、該命令パターンに対応付けて、その後にＣ３の命令が送信されてくることを記憶している。そのため、中継装置１３は、Ｃ１とＣ２とを中継した場合、Ｃ３を次の命令とした代理要求をサーバ１４に送ることができる。
【００１９】
該代理要求に係る処理を、処理１０１〜処理１１８を用いて説明する。クライアント１１は、サーバ１４に記憶されているファイルにアクセスする要求命令であるＣ１をサーバ１４宛に送信する（処理１０１）。中継装置１２は、クライアント１１からのＣ１を中継し、中継装置１３に送信する（処理１０２）。中継装置１３は、Ｃ１を中継し、サーバ１４に送信する（処理１０３）。サーバ１４は、Ｃ１の命令に対応する応答であるＲ１を中継装置１３に送信する（処理１０４）。中継装置１３は、Ｒ１を中継し、中継装置１２に送信する（処理１０５）。中継装置１２は、中継装置１３からのＲ１を中継し、クライアント１１に送信する（処理１０６）。
【００２０】
クライアント１１は、サーバ１４に記憶されているダウンロードするファイルに関する情報を取得する要求命令であるＣ２をサーバ１４宛に送信する（処理１０７）。中継装置１２は、クライアント１１からのＣ２を中継し、中継装置１３に送信する（処理１０８）。中継装置１３は、Ｃ２を中継し、サーバ１４に送信する（処理１０９）。サーバ１４は、Ｃ２の命令に対応する応答であるＲ２を中継装置１３に送信する（処理１１０）。中継装置１３は、Ｒ２を中継し、中継装置１２に送信する（処理１１１）。中継装置１２は、中継装置１３からのＲ２を中継し、クライアント１１に送信する（処理１１２）。
【００２１】
中継装置１３は、Ｃ１とＣ２の一連の命令パターンの後に、Ｃ３の命令が実行されることを記憶している。そのため、中継装置１３は、Ｃ３が送信されてくるのを待たずに、Ｃ３の命令をサーバ１４に送信する（処理１１３）。処理１１３は、Ｃ３の「代理要求」である。中継装置１３は、Ｃ３をサーバ１４に代理で要求したことを中継装置１２に通知する（処理１１４）。
【００２２】
処理１１２でＲ２を受信すると、クライアント１１は、実際にファイルをダウンロードするための要求命令であるＣ３をサーバ１４宛に送信する（処理１１５）。中継装置１２は、処理１１４でＣ３の代理要求が実施済みであることを受信しているため、Ｃ３に対応する応答であるＲ３を受信するまで待機する。中継装置１２は、Ｃ３をサーバ１４宛に送信しない。サーバ１４は、処理１１３の代理要求でＣ３を受信すると、Ｒ３をクライアント１１宛に送信する（処理１１６）。中継装置１３は、Ｒ３を中継し、中継装置１２に送信する（処理１１７）。中継装置１２は、Ｒ３を中継し、クライアント１１に送信する（処理１１８）。
【００２３】
このように、中継装置１３が、クライアント１１からのＣ３の命令を待たずに、代理で要求命令を出すことで、ファイル共有システムの通信にかかる時間を高速化することができる。
【００２４】
＜命令パターン記憶なし＞
処理１０１〜処理１１８では、Ｃ１、Ｃ２の命令パターンの次にＣ３の命令が送信されてくることが中継装置１３に記憶されていた。一方、以下に示す処理２０１〜処理２２２では、登録されていない命令パターンを中継装置１３が中継する場合の例である。
【００２５】
処理２０１〜処理２２２においてクライアント１１は、Ｃ２、Ｃ２、Ｃ３の順で命令を送信するファイル共有システムにおける処理の例である。なお、中継装置１３は、Ｃ２、Ｃ２、Ｃ３の一連の命令パターンを記憶していないものとする。
【００２６】
クライアント１１は、サーバ１４に記憶されているダウンロードするファイルに関する情報を取得する要求命令であるＣ２をサーバ１４宛に送信する（処理２０１）。中継装置１２は、クライアント１１からのＣ２を中継し、中継装置１３に送信する（処理２０２）。中継装置１３は、Ｃ２を中継し、サーバ１４に送信する（処理２０３）。サーバ１４は、Ｃ２の命令に対応する応答であるＲ２を中継装置１３に送信する（処理２０４）。中継装置１３は、Ｒ２を中継し、中継装置１２に送信する（処理２０５）。中継装置１２は、中継装置１３からのＲ２を中継し、クライアント１１に送信する（処理２０６）。クライアント１１は、サーバ１４に記憶されているダウンロードするファイルに関する情報を取得する要求命令であるＣ２をサーバ１４宛に送信する（処理２０７）。中継装置１２は、クライアント１１からのＣ２を中継し、中継装置１３に送信する（処理２０８）。中継装置１３は、Ｃ２を中継し、サーバ１４に送信する（処理２０９）。サーバ１４は、Ｃ２の処理に対応する応答であるＲ２を中継装置１３に送信する（処理２１０）。中継装置１３は、Ｒ２を中継し、中継装置１２に送信する（処理２１１）。中継装置１２は、中継装置１３からのＲ２を中継し、クライアント１１に送信する（処理２１２）。
【００２７】
中継装置１３は、Ｃ２、Ｃ２の一連の命令に合致する命令パターンが自身のメモリに記憶されているかを判定する。しかし、Ｃ２、Ｃ２の一連の命令に対応する命令パターンは、中継装置１３に記憶されていない。そのため、中継装置１３は、代理要求の命令を送信しない。ここで、本実施形態に係る中継装置１３は、Ｃ２、Ｃ２などの一連の命令と類似した命令パターンを検出する。例えば、中継装置１３は、Ｃ２、Ｃ２の一連の命令と、Ｃ１、Ｃ２の一連の命令が類似している判定する。ここで、中継装置１３は、命令パターンに含まれる命令が一部一致（Ｃ２）しているため、類似と判定している。類似の判定基準は、一部一致に限らない。
【００２８】
中継装置１３は、Ｃ１とＣ２の類似命令パターンに対応付けられた次の命令であるＣ３が次に送信されてくると予測する。中継装置１３は、類似命令パターンを判定した場合に現在の時刻「ｔ１」を取得する（処理２１３）。
【００２９】
処理２１２でＲ２を受信すると、クライアント１１は、実際にファイルをダウンロードするための要求命令であるＣ３をサーバ１４宛に送信する（処理２１４）。中継装置１２は、クライアント１１からのＣ３を中継し、中継装置１３に送信する（処理２１５）。中継装置１３は、Ｃ３を中継し、サーバ１４に送信する（処理２１６）。サーバ１４は、Ｃ３の命令に対応する応答であるＲ３を中継装置１３に送信する（処理２１７）。中継装置１３は、Ｒ３を中継し、中継装置１２に送信する（処理２１８）。中継装置１２は、中継装置１３からのＲ３を中継し、クライアント１１に送信する（処理２１９）。
【００３０】
中継装置１３は、まず、次に実行されると予測された命令（Ｃ３）と、実際に要求のあった命令（Ｃ３）とを比較し、同じ命令であるかを判定する。予測された命令と実際に要求のあった命令が同じである場合、中継装置１３は、時刻「ｔ１」を中継装置１２に送信する（処理２２０）。
【００３１】
ここで、中継装置１２は、代理要求をした場合の予測終了時刻（第１の時間）と代理要求をしない場合の実際の終了時刻（第２の時間）とを比較するため、予測終了時刻と実際の終了時刻を算出する。中継装置１２は、処理２１５において中継する命令を送信する送信時刻「ｔ２」と処理２１８において中継する応答の受信時刻「ｔ３」を取得する。
【００３２】
中継装置１２は、送信時刻「ｔ２」と受信時刻「ｔ３」とからＣ３の命令のクライアント１１からサーバ１４の間の往復にかかった時間を算出する。なお、中継装置１２とクライアント１１、中継装置１３とサーバ１４とは、近距離に設置されるため、通信時間はないものとみなすこともできる。中継装置１２は、該往復にかかった時間の半分（片道にかかった時間）を、代理要求をした場合にかかる時間として仮定する。そのため、中継装置１２は、予測終了時刻を以下の式１として算出する。
予測終了時刻＝ｔ１＋（ｔ3−ｔ２）／２      ・・・式１
【００３３】
中継装置１２は、代理要求をした場合の予測終了時刻（第１の時間）と代理要求をしない場合の実際の終了時刻（第２の時間）とを比較する。中継装置１２は、予測終了時刻よりも実際の終了時刻のほうが後である場合、予測した命令（Ｃ３）を代理要求した方がファイル共有の処理を高速化できると判定する。中継装置１２は、予測に用いた命令パターンに対応させてＣ３を代理要求できるよう登録する要求を中継装置１３に送信する（処理２２１）。中継装置１３は、類似した命令パターンに対応づけて予測に用いた命令（Ｃ３）を記憶する（処理２２２）。具体的には、中継装置１３は、Ｃ２、Ｃ２の一連の命令パターンに対応づけてＣ３を記憶する。又、中継装置１３は、Ｃ２を命令パターンとし、該命令パターンに対応づけてＣ３を記憶してもよい。
【００３４】
なお、中継装置１３が、予測終了時刻と実際の終了時刻を算出し、それらを比較してもよい。その場合、中継装置１２は、送信時刻「ｔ２」と受信時刻「ｔ３」を処理２２１で中継装置１３に送信する。その後、予測終了時刻と実際の終了時刻の算出を中継装置１３が行えばよい。
【００３５】
このように、中継装置１３は、記憶されていなかったＣ２、Ｃ２の一連の命令パターンを、高速化可能な命令パターンとし、その後に命令Ｃ３が送信されてくるものと登録する。すると、以降、Ｃ２、Ｃ２の命令パターンを中継する場合、中継装置１３は、代理要求を先行して実行し、クライアント１１とサーバ１４間のファイル共有の速度を高速化させることができる。
【００３６】
通信プロトコルやアプリケーションのバージョンアップなどによる、軽微な変更であっても、これまで通信のシーケンスを網羅的に再調査し、中継装置１３に命令パターンを登録していた。これが自動化されることで、人手の処理を軽減することもできる。
【００３７】
なお、図１における中継装置１３は、Ｃ２、Ｃ２の一連の命令パターンから、命令Ｃ２を予測したものの、複数の命令を含む命令パターンを予測してもよい。その場合、中継装置１３は、予測された命令パターンを実行した場合の予測終了時刻と、該命令パターンに係る送受信の実際の終了時刻とを比較する。中継装置１３は、予測終了時刻が実際の終了時刻よりも早い場合、予測された命令パターンを、一連の命令パターンと対応づけてメモリに記憶する。
【００３８】
図２は、中継装置の機能ブロック図の例である。中継装置１２と中継装置１３は、同じ構成を備える。アプリケーション１５は、サーバ１４又はクライアント１１がファイル共有に使用するソフトウェアである。
【００３９】
送受信部３０１は、アプリケーション１５からの要求と応答を送受信する。送受信部３０６は、ネットワークを介して、もう１つの中継装置と、要求と応答とを送受信する。送受信部３０１で受信した通信パケットは、送受信部３０６に中継されて転送される。送受信部３０６で受信した通信パケットは、送受信部３０１に中継されて転送される。記憶部３０２は、サーバ１４とクライアント１１間の通信における命令パターン、該命令パターン毎の次に実行される命令を記憶する。
【００４０】
判定部３０３は、中継する通信パケットの一連の命令に合致する命令パターンが、記憶部３０２に記憶されているかを判定する。判定部３０３は、中継する通信パケットの一連の命令に合致する命令パターンが、記憶部３０２に記憶されていない場合、中継している通信パケットの一連の命令に類似する命令パターンを判定する。
【００４１】
予測部３０４は、判定部３０３が類似する命令パターンと判定したパターンに基づいた代理要求をしたと仮定し、その場合に予測される終了時刻を予測する。判定部３０３は、予測部３０４で予測された予測終了時刻と、実際に処理が終了した終了時刻とを比較する。
【００４２】
処理部３０５は、代理要求の通信パケットを生成し、代理要求を送受信部３０１又は３０６に送信させる。予測された予測終了時刻のほうが先の場合（高速化が図れる）場合、処理部３０５は、予測部３０４で予測に用いられた命令（Ｃ３）と、中継した通信パケットの命令パターン（Ｃ２、Ｃ２）とを対応付けて記憶部３０２に記憶させる。
【００４３】
図３は、中継装置のハードウェア構成の例を説明する図である。中継装置は、プロセッサ２１、メモリ２２、バス２５、外部記憶装置２６、ネットワーク接続装置２９を備える。さらにオプションとして、中継装置は、入力装置２３、出力装置２４、媒体駆動装置２７を備えても良い。中継装置は、例えば、サーバ、コンピュータなどで実現されることがある。
【００４４】
プロセッサ２１は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）を含む任意の処理回路とすることができる。プロセッサ２１は、判定部３０３、予測部３０４、処理部３０５として動作する。なお、プロセッサ２１は、例えば、外部記憶装置２６に記憶されたプログラムを実行することができる。メモリ２２は、記憶部３０２として動作する。さらに、メモリ２２は、プロセッサ２１の動作により得られたデータや、プロセッサ２１の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置２９は、他の装置との通信に使用され、送受信部３０１、送受信部３０６として動作する。
【００４５】
入力装置２３は、例えば、ボタン、キーボード、マウス等として実現され、出力装置２４は、ディスプレイなどとして実現される。バス２５は、プロセッサ２１、メモリ２２、入力装置２３、出力装置２４、外部記憶装置２６、媒体駆動装置２７、ネットワーク接続装置２９の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置２６は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ２１などに提供する。媒体駆動装置２７は、メモリ２２や外部記憶装置２６のデータを可搬記憶媒体２８に出力することができ、また、可搬記憶媒体２８からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体２８は、フレキシブルディスク、Ｍａｇｎｅｔ-Ｏｐｔｉｃａｌ（ＭＯ）ディスク、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ（ＣＤ−Ｒ）やＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ（ＤＶＤ−Ｒ）を含む、持ち運びが可能な任意の記憶媒体とすることができる。
【００４６】
図４は、中継装置の処理（その１）の例を説明するフローチャートである。図４に係るフローチャートは、中継装置１３が実行する処理の例である。送受信部３０６は、クライアント１１側からの命令を受信する（ステップＳ１０１）。送受信部３０１は、送受信部３０６が受信した命令を、サーバ１４側に中継する（ステップＳ１０２）。送受信部３０１は、サーバ１４側から命令に対応する応答を受信する（ステップＳ１０３）。判定部３０３は、中継した通信パケットの命令と一致する命令パターンが記憶部３０２に記憶されているか否かを判定する（ステップＳ１０４）。
【００４７】
一致する命令パターンが記憶部３０２に記憶されている場合（ステップＳ１０４でＹＥＳ）、送受信部３０１は、代理要求をサーバ１４側に送信する（ステップＳ１０５）。送受信部３０１は、代理要求に対応する応答を受信する（ステップＳ１０６）。送受信部３０６は、応答をクライアント１１側に転送する（ステップＳ１０７）。ステップＳ１０７の処理が終了すると、中継装置１３は、処理をステップＳ１０１から繰り返す。
【００４８】
一致する命令パターンが記憶部３０２に記憶されていない場合（ステップＳ１０４でＮＯ）、判定部３０３は、中継した通信パケットの命令と記憶部３０２に記憶されている命令パターンの一部と一致するか否かを判定する（ステップＳ１０８）。部分一致する命令パターンがある場合（ステップＳ１０８でＹＥＳ）、送受信部３０６は、現在の時刻「ｔ１」を取得する（ステップＳ１０９）。判定部１１０は、予測した命令と実際に送受信された命令とが一致する命令か否かを判定する（ステップＳ１１０）。予測した命令と実際に送受信された命令とが一致する命令である場合（ステップＳ１１０でＹＥＳ）、送受信部３０６は、クライアント１１側に時刻「ｔ１」を送信する（ステップＳ１１１）。
【００４９】
ステップＳ１１１の処理を終了すると、中継装置１３は、処理をステップＳ１０１から繰り返す。部分一致する命令パターンがない場合（ステップＳ１０８でＮＯ）、中継装置１３は、処理をステップＳ１０１から繰り返す。予測した命令と実際に送受信された命令とが一致する命令でない場合（ステップＳ１１０でＮＯ）、中継装置１３は、処理をステップＳ１０１から繰り返す。
【００５０】
図５は、中継装置の処理（その２）の例を説明するフローチャートである。図５に係るフローチャートは、中継装置１２が実行する処理の例である。該中継装置１２の処理を、図２の機能ブロック図を用いて説明する。送受信部３０１は、クライアント１１から命令を受信する（ステップＳ２０１）。処理部３０５は、命令の送信時刻「ｔ２」として、現在の時刻を取得する（ステップＳ２０２）。送受信部３０６は、サーバ１４宛に該命令を転送する（ステップＳ２０３）。送受信部３０６は、サーバ１４側の中継装置１３から該命令に対応する応答を受信する（ステップＳ２０４）。処理部３０５は、応答の受信時刻「ｔ３」として現在時刻を取得する（ステップＳ２０５）。送受信部３０１は、クライアント１１側に応答を中継する（ステップＳ２０６）。処理部３０５は、送受信部３０６が中継装置１３側から時刻「ｔ１」を受信したか否かを判定する（ステップＳ２０７）。
【００５１】
中継装置１３側から時刻「ｔ１」を受信した場合（ステップＳ２０７でＹＥＳ）、処理部３０５は、予測終了時刻を算出する（ステップＳ２０８）。判定部３０３は、予測終了時刻と実際の終了時刻とを比較し、高速化可能か否かを判定する（ステップＳ２０９）。高速化可能である場合（ステップＳ２０９でＹＥＳ）、処理部３０５は、記憶されていなかった命令パターンを、高速化可能な命令パターンとし、その後に予測した命令を記憶部に登録する（ステップＳ２１０）。送受信部３０６は、中継装置１３側に同じ情報を登録するよう通知する（ステップＳ２１１）。このように、中継装置１２側でも高速化可能な命令パターンと予測した命令を記憶することで代理応答が可能となる。具体的には、中継装置１２は、クライアント１１から記憶された予測された命令又は命令パターンを新たに受信すると、中継装置１３側の代理要求をした結果受信する応答を、クライアント１１に代理応答することができる。
【００５２】
中継装置１３側から時刻「ｔ１」を受信できない場合（ステップＳ２０７でＮＯ）、中継装置１２は、処理をステップＳ２０１から繰り返す。高速化可能でない場合（ステップＳ２０９でＮＯ）、中継装置１２は、処理をステップＳ２０１から繰り返す。ステップＳ２１１の処理が終了すると、中継装置１２は、処理をステップＳ２０１から繰り返す。
【００５３】
このように、中継装置１３は、記憶されていなかったＣ２、Ｃ２の一連の命令パターンを、高速化可能な命令パターンとし、その後に命令Ｃ３が送信されてくるものとして登録する。すると、以降、Ｃ２、Ｃ２の命令パターンを中継した場合、中継装置１３は、代理要求（Ｃ３）を実行し、クライアント１１とサーバ１４間のファイル共有に係る通信時間を短縮させることができる。
【００５４】
通信プロトコルやアプリケーションのバージョンアップなどによる、軽微な変更であっても、これまで通信のシーケンスを網羅的に再調査し、中継装置１３に命令パターンを登録していた。これが自動化されることで、人手の処理を軽減することもできる。
【００５５】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
アプリケーション間で送受信される通信パケットの命令パターンを記憶する記憶部と、
前記通信パケットを中継する際に、中継する通信パケットの命令パターンが前記記憶部に記憶されていない場合、前記命令パターンと類似した命令パターンから、次に実行される命令パターンを予測する予測部と、
予測された前記命令パターンを代理要求した場合における前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻が、前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻よりも早い場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付ける処理部と、
を備えることを特徴とする中継装置。
（付記２）
前記処理部は、
前記類似したパターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記記憶部に記憶させる
ことを特徴とする付記１に記載の中継装置。
（付記３）
アプリケーション間で送受信される通信パケットを中継する際に、前記中継する通信パケットの命令パターンと類似した命令パターンから次に実行されると予測される命令パターンの送受信の終了時刻である第１の終了時刻と、前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻とを比較する判定部と、
前記第１の終了時刻が前記第２の終了時刻よりも早い場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて記憶する命令パターンを他の中継装置に通知する送受信部と、
を備えることを特徴とする中継装置。
（付記４）
予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて記憶する記憶部と、を更に備え、
前記送受信部は、
前記記憶部に記憶された予測された前記命令パターンを新たに受信すると、
前記他の中継装置が、予測された前記命令パターンを用いた代理要求をした結果受信する応答を用いて、代理応答をする
ことを特徴とする付記３に記載の中継装置。
（付記５）
アプリケーション間で送受信される通信パケットを中継する第１と第２の中継装置を含む中継システムであって、
前記第１の中継装置は、
前記通信パケットを中継する際に、中継する通信パケットの命令パターンと類似した命令パターンから、次に実行される命令パターンを予測し、
予測処理が終了した第１の時刻を取得し、
前記命令パターンと、前記中継する通信パケットの命令パターンの次に実際に中継する命令パターンとが一致する場合、前記第１の時刻を前記第２の中継装置（図１、１２）に送信し、
前記第２の中継装置は、
前記第１の時刻を受信すると、予測された前記命令パターンを代理で送信した場合に、前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻を前記第１の時刻に基づいて算出し、
前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻を算出し、
前記第２の終了時刻が前記第１の終了時刻よりも後である場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて前記第１の中継装置に記憶するように通知する
ことを特徴とする中継システム。
（付記６）
前記第２の中継装置は、
前記類似した命令パターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記第１の中継装置に記憶させる
ことを特徴とする付記５に記載の中継システム。
（付記７）
アプリケーション間の命令を中継する際に、中継する通信パケットの命令パターンがメモリに記憶されていない場合に、前記中継する通信パケットの命令パターンと類似した命令パターンから、次に実行される命令パターンを予測し、予測された前記命令パターンを代理で送信した場合に、前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻を予測し、
前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻が第１の終了時刻よりも後である場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて前記メモリに記憶させる
ことを特徴とする通信パケットの制御方法。
（付記８）
前記類似した命令パターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記メモリに記憶させる
ことを特徴とする付記７に記載の制御方法。
（付記９）
アプリケーション間の命令を中継する際に、中継する通信パケットの命令パターンがメモリに記憶されていない場合に、前記中継する通信パケットの命令パターンと類似した命令パターンから、次に実行される命令パターンを予測し、予測された前記命令パターンを代理で送信した場合に、前記アプリケーション間での前記命令パターンの送受信の終了時刻である第１の終了時刻を予測し、
前記中継する通信パケットの命令パターンの次に実際に中継する前記命令パターンの送受信の終了時刻である第２の終了時刻が第１の終了時刻よりも後である場合、予測された前記命令パターンを、前記中継する通信パケットの命令パターンに対応付けて前記メモリに記憶させる
処理を実行させるプログラムを記憶した記録媒体。
（付記１０）
前記類似した命令パターンのうち、部分的に命令パターンが一致している場合、該部分的に命令パターンが一致している部分と、予測された前記命令パターンを対応づけて前記メモリに記憶させる
処理を実行させるプログラムを記憶した付記９に記載の記録媒体。
【符号の説明】
【００５６】
１１  クライアント
１２、１３  中継装置
１４  サーバ
１５  アプリケーション
３０１、３０６  送受信部
３０２  記憶部
３０３  判定部
３０４  予測部
３０５  処理部
【図１】
0006515761.tif 000002
【図２】
0006515761.tif 000003
【図３】
0006515761.tif 000004
【図４】
0006515761.tif 000005
【図５】
0006515761.tif 000006