(57)【特許請求の範囲】
【請求項１】
接続先装置との間でセッションを確立する確立部と、
前記確立部によって確立済みのセッションであって、接続元装置によって発行されたコマンドに対して空きセッションがあるか否かを判定する判定部と、
前記接続元装置から前記コマンドを検出した際に、前記判定部によって空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信する通信部と、
前記接続先装置と接続するセッション確立可能な他の通信装置からの貸与要求を検出すると、当該通信装置自体がセッション確立を許可できる当該通信装置自体のセッション許可数の範囲内で未確立のセッションがある場合、当該未確立のセッションを、前記貸与要求を発行した前記他の通信装置に貸与する貸与部と、
他の通信装置から前記未確立のセッションの貸与を検出すると、貸与された未確立のセッション数に応じて当該通信装置自体の前記セッション許可数を決定する決定部と
を有することを特徴とする通信装置。
【請求項２】
前記通信部は、
前記接続元装置から前記コマンドを検出した際に、前記判定部によって空きセッションがないと判定された場合には、前記確立部によって新たに確立されたセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記接続先装置とセッション確立可能なセッション上限数と、当該接続先装置とセッション確立可能に接続した装置の接続台数とを収集し、収集された前記セッション上限数及び前記接続台数に基づき、当該通信装置自体がセッション確立を許可できるセッション許可数を算出する算出部をさらに有し、
前記確立部は、
前記算出部にて算出された前記セッション許可数の範囲内で前記セッションを確立することを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記接続先装置から前記コマンドのデータ送信に対する応答結果を受信すると、当該コマンドのデータ送信の内容に対応付けて前記応答結果を記憶する記憶部と、
前記コマンドを発行する接続元装置から前記コマンドのデータ送信を受信すると、当該コマンドのデータ送信の内容に対応した前記応答結果が前記記憶部内にある場合に、当該コマンドのデータ送信の内容に対応した前記応答結果を前記記憶部から読み出して前記接続元装置に返信する返信部と
をさらに有することを特徴とする請求項１〜３の何れか一つに記載の通信装置。
【請求項５】
接続先装置に対するコマンドを当該接続先装置との間で通信する通信装置の通信方法であって、
前記通信装置は、
前記接続先装置との間でセッションを確立し、
前記接続先装置との間で確立済みのセッションであって、接続元装置によって発行された前記コマンドに対して空きセッションがあるか否かを判定し、
前記接続元装置から前記コマンドを検出した際に、前記空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信し、
前記接続先装置と接続するセッション確立可能な他の通信装置からの貸与要求を検出すると、当該通信装置自体がセッション確立を許可できる当該通信装置自体のセッション許可数の範囲内で未確立のセッションがある場合、当該未確立のセッションを、前記貸与要求を発行した前記他の通信装置に貸与し、
他の通信装置から前記未確立のセッションの貸与を検出すると、貸与された未確立のセッション数に応じて当該通信装置自体の前記セッション許可数を決定する
ことを特徴とする通信方法。
【請求項６】
接続先装置に対するコマンドを当該接続先装置との間で通信するコンピュータの通信プログラムであって、
前記接続先装置との間でセッションを確立し、
前記接続先装置との間で確立済みのセッションであって、接続元装置によって発行された前記コマンドに対して空きセッションがあるか否かを判定し、
前記接続元装置から前記コマンドを検出した際に、前記空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信し、
前記接続先装置と接続するセッション確立可能な他の通信装置からの貸与要求を検出すると、当該通信装置自体がセッション確立を許可できる当該通信装置自体のセッション許可数の範囲内で未確立のセッションがある場合、当該未確立のセッションを、前記貸与要求を発行した前記他の通信装置に貸与し、
他の通信装置から前記未確立のセッションの貸与を検出すると、貸与された未確立のセッション数に応じて当該通信装置自体の前記セッション許可数を決定する
各処理をコンピュータに実行させることを特徴とする通信プログラム。
【請求項７】
接続元装置と、当該接続元装置のアプリによって発行されたコマンドを実行する接続先装置と、前記接続元装置と前記接続先装置との間で前記コマンドを通信する中継装置と有する通信システムであって、
前記接続元装置は、
前記アプリからの前記コマンドを発行すると、当該コマンドの宛先に基づき、前記中継装置との間で確立済みのセッションであって、他のアプリからのコマンドに対して空きセッションがあるか否かを判定する判定部と、
前記中継装置との間で前記空きセッションがあると判定された場合に、当該空きセッションを用いて前記中継装置との間で前記発行されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを当該中継装置に当該セッションを用いて送信する通信部と
を有し、
前記中継装置は、
前記接続元装置との間で確立済みのセッションを使用してコマンドを検出すると、当該コマンドの宛先に基づき、前記接続先装置との間で確立済みのセッションであって、他のアプリからのコマンドに対して空きセッションがあるか否かを判定する判定部と、
前記接続先装置との間で前記空きセッションがあると判定された場合に、当該空きセッションを用いて前記接続先装置との間で前記検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記所定時間内に、継続メッセージを当該接続先装置に当該セッションを用いて送信する通信部と、
前記接続先装置と接続するセッション確立可能な他の通信装置からの貸与要求を検出すると、当該通信装置自体がセッション確立を許可できる当該通信装置自体のセッション許可数の範囲内で未確立のセッションがある場合、当該未確立のセッションを、前記貸与要求を発行した前記他の通信装置に貸与する貸与部と、
他の通信装置から前記未確立のセッションの貸与を検出すると、貸与された未確立のセッション数に応じて当該通信装置自体の前記セッション許可数を決定する決定部と
を有することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、通信プログラム及び通信システムに関する。
【背景技術】
【０００２】
ネットワーク上の機器間で行う通信の内、通信に先立って、セッションを確立させることを要する通信がある。事前にセッション確立を要する通信には、例えば、ネットワーク上の他の機器を遠隔操作するtelnet等がある。
【０００３】
ここで、ネットワーク上の機器において同時に確立されるセッション上限数に限りがあるため、セッションを有効利用するセッション管理の技術がある。例えば、確立済みのセッションの内、使われていないセッションを切断することにより、上限あるセッションを有効活用する技術がある。
【０００４】
また、確立済みのセッション数がセッション上限数に至った状態で緊急呼が発生した場合、緊急呼以外のセッションを切断し、新規にセッションを確立して当該セッションを緊急呼に割り当てる技術がある。また、確立済みの各セッションの継続時間を監視し、継続時間が所定時間を超えたセッションを切断することで、上限あるセッションを有効活用する技術がある。
【０００５】
また、セッションを確立させる相手方の機器が、通信の応答に所定時間以上の時間を要すると判断された場合に、この相手方の機器とのセッション確立を制限することで、上限あるセッションを有効活用する技術がある。また、通信機器では、ｈｔｔｐ（Hypertext  transfer  Protocol）プロトコルにおいてタイムアウト条件により、使用中のセッションを切断することで、上限あるセッションを有効活用する技術がある。更に、通信機器では、タイムアウト条件による使用中のセッションの切断を回避するために、ハートビートメッセージを送信することで当該通信機器との確立済みのセッションを維持する技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２４４９６４号公報
【特許文献２】特開２００９−２１９０７６号公報
【特許文献３】特開２００９−２１７４４５号公報
【特許文献４】特開２００５−１８４１６５号公報
【特許文献５】特開２００６−２０３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記技術では、新規セッションの確立のために、既に確立されたセッションを切断した後、新たなセッションを確立させるため、セッションの切断及び確立に関して機器の処理負担が大きく、新規セッション確立までに時間を要する場合がある。
【０００８】
一つの側面では、新規セッションを確立する処理を省略できることを目的とする。
【課題を解決するための手段】
【０００９】
開示の装置は、一つの態様において、接続先装置との間でセッションを確立する確立部を有する。更に、開示の装置は、前記確立部によって確立済みのセッションであって、接続元装置によって発行されたコマンドに対して空きセッションがあるか否かを判定する判定部を有する。更に、開示の装置は、前記接続元装置から前記コマンドを検出した際に、前記判定部によって空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信する通信部を有する。
【発明の効果】
【００１０】
一つの側面では、新規セッションを確立する処理を省略できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１の中継システムの構成の一例を示すブロック図である。
【図２】図２は、接続元端末が有するエージェントの機能一例を示すブロック図である。
【図３】図３は、中継サーバが有するマネージャの機能一例を示すブロック図である。
【図４】図４は、管理テーブルのデータの一例を示す説明図である。
【図５】図５は、シーケンス番号及びＡＣＫ番号の関係の一例を示す説明図である。
【図６】図６は、コマンド通信に関わる中継システムの動作の一例を示すシーケンス図である。
【図７】図７は、コマンド通信に関わる中継システムの動作の一例を示すシーケンス図である。
【図８】図８は、コマンド通信に関わる中継システムの動作の一例を示すシーケンス図である。
【図９】図９は、コマンド通信に関わる中継システムの動作の一例を示すシーケンス図である。
【図１０】図１０は、コマンド通信に関わる中継システムの動作の一例を示すシーケンス図である。
【図１１】図１１は、コマンド通信に関わる中継システムの動作の一例を示すシーケンス図である。
【図１２】図１２は、セッション監視処理に関わるマネージャの処理動作の一例を示すフローチャートである。
【図１３】図１３は、エージェント側コマンド送信処理に関わるエージェントの処理動作の一例を示すフローチャートである。
【図１４】図１４は、マネージャ側コマンド送信処理に関わるマネージャの処理動作の一例を示すフローチャートである。
【図１５】図１５は、セッション許可数決定処理に関わるマネージャの処理動作の一例を示すフローチャートである。
【図１６】図１６は、セッション許可数調整処理に関わるマネージャの処理動作の一例を示すフローチャートである。
【図１７】図１７は、実施例２の中継システムに関わるマネージャの機能一例を示すブロック図である。
【図１８】図１８は、重複コマンド返信処理に関わるマネージャの処理動作の一例を示すフローチャートである。
【図１９】図１９は、通信プログラムを実行するコンピュータを示す説明図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本願の開示する通信装置、通信方法、通信プログラム及び通信システムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例１】
【００１３】
図１は、実施例１の中継システムの構成の一例を示すブロック図である。図１に示す中継システム１は、複数の接続元端末１０と、複数の中継サーバ２０と、複数のルータ３０とを有する。複数の接続元端末１０、複数の中継サーバ２０及び複数のルータ３０は、ネットワーク５を介して接続される。
【００１４】
接続元端末１０は、接続元装置であって、通信インタフェース１１と、メモリ１２と、ＣＰＵ（Central  Processing  Unit）１３とを有する。通信インタフェース１１は、接続元端末１０が中継サーバ２０と行う通信を制御するインタフェースである。メモリ１２には、各種プログラム等の各種情報が記憶されている。ＣＰＵ１３は、接続元端末１０全体を制御すると共に、例えば、メモリ１２に記憶されている各種プログラムに基づき各種制御を実行する。
【００１５】
ＣＰＵ１３は、ソフトウェア機能として、telnet実行部１４及びエージェント１５を含む。telnet実行部１４は、例えば、telnetプロトコルに関わるアプリのコマンドを実行する。エージェント１５は、例えば、telnet実行部１４と中継サーバ２０との間の通信を監視する。
【００１６】
中継サーバ２０は、通信インタフェース２１と、メモリ２２と、ＣＰＵ２３とを有する通信装置である。通信インタフェース２１は、中継サーバ２０が、接続元端末１０と行う通信を制御すると共に、ルータ３０と行う通信を制御するインタフェースである。メモリ２２には、各種プログラム等の各種情報が記憶されている。ＣＰＵ２３は、中継サーバ２０全体を制御すると共に、例えば、メモリ２２に記憶されている各種プログラムに基づき各種制御を実行する。ＣＰＵ２３は、ソフトウェア機能として、接続元端末１０と中継サーバ２０との間、中継サーバ２０とルータ３０との間の通信を監視するマネージャ２５を含む。ルータ３０は、接続先装置である。
【００１７】
尚、説明の便宜上、中継システム１の各接続元端末１０はエージェント１５を有し、例えば、接続元端末１０Ａはエージェント１５Ａ、接続元端末１０Ｂはエージェント１５Ｂ、接続元端末１０Ｃはエージェント１５Ｃを有する。また、中継システム１の各中継サーバ２０はマネージャ２５を有し、例えば、中継サーバ２０Ａはマネージャ２５Ａ、中継サーバ２０Ｂはマネージャ２５Ｂ、中継サーバ２０Ｃはマネージャ２５Ｃを有する。更に、中継システム１は、各ルータ３０（３０Ａ、３０Ｂ、３０Ｃ、・・・）を有する。
【００１８】
図２は、接続元端末１０が有するエージェント１５の機能の一例を示すブロック図である。図２に示すエージェント１５は、検出部５１と、分析部５２と、判定部５３と、通信部５４と、継続部５５と、制御部５６とを有する。検出部５１は、telnet実行部１４にて実行されたtelnetアプリのコマンドを検出する。
【００１９】
分析部５２は、検出部５１にて検出されたコマンドを送信する宛先の機器のアドレスを分析する。分析部５２は、分析結果に基づき、当該接続元端末１０と、コマンドの宛先の機器（ルータ３０）とのセッションを、接続元端末１０と中継サーバ２０との間のセッションと、中継サーバ２０とルータ３０との間のセッションとに分解する。
【００２０】
判定部５３は、後述するマネージャ２５内の管理テーブルの内容を参照し、分析部５２により分解された中継サーバ２０との間のセッションの使用状態を分析する。判定部５３は、例えば、中継サーバ２０と確立済みのセッションの内、使用状態が“空き”であるセッションが存在するか否かを判定する。尚、使用状態が“空き”とは、確立済みのセッションの内、コマンドのデータ送信応答が完了した、すなわちコマンドに応答済みの状態である。
【００２１】
通信部５４は、判定部５３にて中継サーバ２０と確立済みのセッションの内、使用状態が“空き”であるセッションが存在しないと判定された場合、中継サーバ２０と新規セッションを確立する。一方、通信部５４は、判定部５３にて中継サーバ２０と確立済みのセッションの内、使用状態が“空き”であるセッションが存在すると判定された場合、新規セッションを確立することなく、この“空き”であるセッションを使用する。そして、通信部５４は、使用状態が“空き”であるセッションが存在すると判定された場合に、この確立済みのセッションを使用して中継先で中継サーバ２０とルータ３０との間のセッションを示す確立情報を中継サーバ２０に送信する。
【００２２】
そして、通信部５４は、中継サーバ２０からセッション確立ＯＫの応答を受信した場合、この確立されたセッションを使用してコマンド通信、すなわちデータ送信及びデータ送信応答を実行する。尚、セッション確立ＯＫの応答は、接続元端末１０と接続先装置であるルータ３０との間のセッション、すなわち接続元端末１０と中継サーバ２０との間のセッション、及び中継サーバ２０とルータ３０との間のセッションが確立していることを示すメッセージである。
【００２３】
また、継続部５５は、中継サーバ２０に対してハートビートメッセージを送信することで、中継サーバ２０と確立済みのセッションを継続する。尚、ハートビートメッセージの送信タイミングは、ハートビートメッセージを受信するルータ３０側で確立済みのセッションを自動的に切断するタイムアウト時間よりも短い間隔に設定するのが良い。ハートビートメッセージは、例えば、半角空白文字のブランクメッセージとし、接続先装置であるルータ３０側でのメッセージ処理の負荷を軽減する。接続先装置であるルータ３０は、タイムアウト時間前に中継サーバ２０からハートビートメッセージを受信することで、例えば、タイムアウト時間カウントするカウンタの値をクリアする。その結果、ルータ３０は、ハートビートメッセージを受信する都度、タイムアウトを計測するカウンタがクリアされることになるため、中継サーバ２０を経由した接続元端末１０との間の確立済みのセッションを維持できる。
【００２４】
また、通信部５４は、中継サーバ２０内のマネージャ２５とのセッションが確立された後、この確立済みのセッションを使用して１回のデータ送信を実行する際の送信間隔を、例えば２秒間隔に設定する。このようにして、接続先であるルータ３０側のデータ送信に対する応答負荷を軽減することが可能となる。なお、制御部５６は、エージェント１５全体を制御する。
【００２５】
図３は、中継サーバ２０が有するマネージャ２５の機能の一例を示すブロック図である。図３に示すマネージャ２５は、通信部６１と、中継部６２と、分析部６３と、判定部６４と、管理テーブル６５と、登録部６６と、決定部６７と、貸与部６８と、制御部６９とを有する。
【００２６】
通信部６１は、例えば、接続先装置となりうるルータ３０、ルータ３０と接続する他の中継サーバ２０、接続元端末１０との通信を制御する。中継部６２は、接続元端末１０とルータ３０との間の通信を中継する。分析部６３は、接続元端末１０からのコマンド及びセッションの確立情報を分析する。そして、分析部６３は、分析結果に基づき、接続元端末１０と中継サーバ２０との間のセッション、及び中継サーバ２０とルータ３０との間のセッションを識別する。
【００２７】
中継部６２は、確立部６２Ａを有する。確立部６２Ａは、分析部６３により識別された接続元端末１０と接続先装置であるルータ３０との間のセッション、すなわち接続元端末１０と中継サーバ２０との間のセッション、及び中継サーバ２０とルータ３０との間のセッションを確立させる。そして、中継部６２は、セッション確立ＯＫの応答を接続元端末１０のエージェント１５に通知する。管理テーブル６５は、接続元端末１０とルータ３０との間の確立済みセッションの使用状態を管理するために使用される。
【００２８】
図４は、管理テーブル６５のデータの一例を示す説明図である。図４に示す管理テーブル６５には、当該管理テーブル６５を備えた中継サーバ２０が中継する各セッションの使用状態等が記憶されている。管理テーブル６５には、セッションＩＤ６５Ａと、セッション区間（始点／終点）６５Ｂと、使用状態６５Ｃと、シーケンス番号６５Ｄと、ＡＣＫ番号６５Ｅと、更新時刻６５Ｆとが対応付けられて記憶されている。
【００２９】
セッションＩＤ６５Ａは、接続元端末１０とルータ３０との間の確立済みのセッションを識別するＩＤを示す。セッション区間６５Ｂは、接続元端末１０とルータ３０との間に関わる、接続元端末１０と中継サーバ２０との間の確立済みのセッションの始点及び終点と、中継サーバ２０とルータ３０との間の確立済みのセッションの始点及び終点とを示す。使用状態６５Ｃは、該当セッション区間の確立済みのセッションの使用状態、例えば、“使用中”や“空き”を示す。シーケンス番号６５Ｄは、該当セッション区間の通信で使用した直近のシーケンス番号を示す。ＡＣＫ番号６５Ｅは、該当セッション区間のセッションで相手先から受信すべき開始のシーケンス番号を示す。更新時刻６５Ｆは、該当セッション区間のセッションで更新した時刻を示す。
【００３０】
尚、マネージャ２５は、管理テーブル６５を参照して、セッションＩＤ６５Ａ、セッション区間６５Ｂ、使用状態６５Ｃ、シーケンス番号６５Ｄ、ＡＣＫ番号６５Ｅ及び更新時刻６５Ｆを認識できる。例えば、マネージャ２５は、図４のセッションＩＤ６５Ａの“０２”に着目して、例えば、セッション区間「１５Ｂ／２５Ａ」のセッション及び、セッション区間「２５Ａ／３０Ａ」のセッションを認識する。尚、セッション区間「１５Ｂ／２５Ａ」は、接続元端末１０Ｂ内のエージェント１５Ｂと、当該中継サーバ２０Ａ内のマネージャ２５Ａとの間の確立済みのセッション区間を示している。また、セッション区間「２５Ａ／３０Ａ」のセッションとは、当該中継サーバ２０Ａ内のマネージャ２５Ａとルータ３０Ａとの間の確立済みのセッション区間を示している。
【００３１】
マネージャ２５は、セッション区間「１５Ｂ／２５Ａ」に着目すると、使用状態６５Ｃが“使用中”、シーケンス番号６５Ｄが“２００３１”、ＡＣＫ番号６５Ｅが“２９１”、更新時刻６５Ｆが“２０１１／０３／１４  １０：０２：０１００１”と認識する。マネージャ２５は、セッション区間「２５Ａ／３０Ａ」に着目すると、使用状態６５Ｃが“使用中”、シーケンス番号６５Ｄが“２０００１”、ＡＣＫ番号６５Ｅが“２０１”、更新時刻６５Ｆが“２０１１／０３／１４  １０：０３：０１００１”と認識する。また、エージェント１５は、マネージャ２５内の管理テーブル６５を参照して、同様に、各セッションのセッションＩＤ６５Ａ、セッション区間６５Ｂ、使用状態６５Ｃ、シーケンス番号６５Ｄ、ＡＣＫ番号６５Ｅ及び更新時刻６５Ｆを認識できる。
【００３２】
判定部６４は、分析部６３によるコマンド宛先の確立情報の分析結果に基づき、管理テーブル６５のテーブル内容を参照し、中継サーバ２０内のマネージャ１５とルータ３０との間で確立済みのセッションの使用状態を分析する。また、中継部６２は、確立済みのセッションを使用してエージェント１５からのハートビートメッセージをルータ３０に中継する。その結果、中継部６２は、エージェント１５とマネージャ２５との間のセッションは勿論のこと、マネージャ２５とルータ３０との間のセッションの確立を継続するものである。
【００３３】
また、登録部６６は、エージェント１５とマネージャ２５との間のセッションが確立すると共に、マネージャ２５とルータ３０との間のセッションが確立した後、これら確立済みのセッションを識別するセッションＩＤ６５Ａを付与する。登録部６６は、付与されたセッションＩＤ６５Ａに対応付けて、エージェント１５との間で確立済みのセッション区間を示すセッション区間６５Ｂと、ルータ３０との間で確立済みのセッション区間を示すセッション区間６５Ｂとを管理テーブル６５内に登録する。
【００３４】
更に、登録部６６は、セッション区間６５Ｂに対応した確立済みのセッションの使用状態、例えば、判定部６４の判定結果を使用状態６５Ｃとして管理テーブル６５内に登録する。更に、登録部６６は、確立済みのセッションを使用してコマンドに対応する応答結果、例えば、データ送信応答をルータ３０から受信する。更に、登録部６６は、ルータ３０から受信したデータ送信応答を接続元端末１０に中継するタイミングで、当該確立済みセッションの使用状態６５Ｃを“空き”として管理テーブル６５内に登録する。
【００３５】
決定部６７は、通信部６１を使用して、接続するルータ３０と通信し、ルータ３０側でセッションを確立できるセッション上限数を取得する。尚、決定部６７は、通信部６１を使用してルータ３０にコマンドを送信することで、例えば、“Show  running-config”から“Line  vty  0*”に基づきセッション上限数を取得する。更に、決定部６７は、通信部６１を使用して、当該ルータ３０と接続する各中継サーバ２０等にブロードキャスト通信する。更に、決定部６７は、ブロードキャスト通信に対する返信応答で、ルータ３０と接続する接続台数を認識する。決定部６７は、取得されたセッション上限数及び接続台数に基づき、（セッション上限数÷接続台数）の式を用いて、中継サーバ２０自体で確立可能なセッション許可数を決定する。
【００３６】
貸与部６８は、通信部６１を使用してルータ３０と接続する各中継サーバ２０に対してセッションの貸与要求をブロードキャスト送信する。尚、セッションの貸与要求は、他の中継サーバ２０に対して未確立の空きセッションの貸与を要求するものである。また、貸与部６８は、他の中継サーバ２０からの貸与要求を検出すると、自装置で自律的に決定したセッション許可数の範囲内で未確立のセッションを、貸与要求を発行した中継サーバ２０に貸与する。
【００３７】
決定部６７は、他の中継サーバ２０から未確立のセッションの貸与を検出すると、未確立のセッションの貸与数に応じて、自装置のセッション許可数を更新する。例えば、未確立のセッションが貸与された決定部６７は、現在のセッション許可数が“５”、貸与数が“１”の場合、現在のセッション許可数に貸与数を加算して、“５＋１”に応じてセッション許可数を“６”に更新する。
【００３８】
また、未確立のセッションを貸与する中継サーバ２０側の決定部６７は、現在のセッション許可数が“５”、自分が貸与した未確立のセッションの数が“１”の場合、現在のセッション許可数に貸与数を減算して、“５−１”に応じてセッション許可数を“４”に更新する。制御部６９は、マネージャ２５全体を制御すると共に、セッション許可数の範囲内で新規セッションの確立を制御する。
【００３９】
また、管理テーブル６５内のシーケンス番号６５ＤとＡＣＫ番号６５Ｅとの関係について説明する。図５は、シーケンス番号６５Ｄ及びＡＣＫ番号６５Ｅの関係の一例を示す説明図である。例えば、エージェント１５は、確立（ｓｙｎ）をマネージャ２５に送信する（ＳＱ１）。この際、確立（ｓｙｎ）には、シーケンス番号“１”としてランダム値と、次にマネージャ２５から受信すべき、開始シーケンス番号であるＡＣＫ番号“１”としてランダム値とを含む。従って、マネージャ２５は、ＡＣＫ番号“１”に基づき、エージェント１５に送信すべき、開始シーケンス番号を事前に認識できる。
【００４０】
更に、マネージャ２５は、確立（ｓｙｎ）を受信すると、確立応答（ｓｙｎ＋ａｃｋ）をエージェント１５に送信する（ＳＱ２）。この際、確立応答（ｓｙｎ＋ａｃｋ）には、シーケンス番号“２”としてランダム値と、次にエージェント１５から受信すべき、開始シーケンス番号であるＡＣＫ番号“２”としてシーケンス番号“１”＋１とを含む。従って、エージェント１５は、ＡＣＫ番号“２”に基づき、マネージャ２５に送信すべき、開始シーケンス番号を事前に認識できる。
【００４１】
更に、エージェント１５は、確立応答（ｓｙｎ＋ａｃｋ）を受信すると、確立（ａｃｋ）をマネージャ２５に送信する（ＳＱ３）。この際、確立（ａｃｋ）には、シーケンス番号“３”としてＡＣＫ番号“２”と、次にマネージャ２５から受信すべき、開始シーケンス番号であるＡＣＫ番号“３”としてシーケンス番号“２”＋１とを含む。従って、マネージャ２５は、ＡＣＫ番号“３”に基づき、エージェント１５に送信すべき、開始シーケンス番号を事前に認識できる。
【００４２】
更に、エージェント１５は、確立（ａｃｋ）を受信した後、データ送信（ｐｕｓｈ）をマネージャ２５に送信する（ＳＱ４）。この際、データ送信（ｐｕｓｈ）には、シーケンス番号“４”としてシーケンス番号“３”と、次にマネージャ２５から受信すべき、開始シーケンス番号であるＡＣＫ番号“４”としてＡＣＫ番号“３”とを含む。従って、マネージャ２５は、ＡＣＫ番号“４”に基づき、エージェント１５に送信すべき、開始シーケンス番号を事前に認識できる。更に、マネージャ２５は、データ送信（ｐｕｓｈ）を受信した後、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５に送信する（ＳＱ５）。この際、データ送信（ｐｕｓｈ＋ａｃｋ）には、シーケンス番号“５”としてＡＣＫ番号“４”と、次にエージェント１５から受信すべき、開始シーケンス番号であるＡＣＫ番号“５”としてシーケンス番号“４”＋当該データバイト数とを含む。従って、エージェント１５は、ＡＣＫ番号“５”に基づき、マネージャ２５に送信すべき、開始シーケンス番号を事前に認識できる。
【００４３】
更に、エージェント１５は、データ送信（ｐｕｓｈ）をマネージャ２５に送信する（ＳＱ６）。この際、データ送信（ｐｕｓｈ）には、シーケンス番号“６”としてシーケンス番号“５”と、次にマネージャ２５から受信すべき、開始シーケンス番号であるＡＣＫ番号“６”としてＡＣＫ番号“５”とを含む。従って、マネージャ２５は、ＡＣＫ番号“６”に基づき、同じ確立済みのセッションを使用して、エージェント１５に送信すべき、開始シーケンス番号を事前に認識できる。
【００４４】
更に、マネージャ２５は、データ送信（ｐｕｓｈ）を受信した後、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５に送信する（ＳＱ７）。この際、データ送信（ｐｕｓｈ＋ａｃｋ）には、シーケンス番号“７”としてＡＣＫ番号“６”と、次にエージェント１５から受信すべき、開始シーケンス番号であるＡＣＫ番号“７”としてシーケンス番号“６”＋当該データバイト数とを含む。従って、エージェント１５は、ＡＣＫ番号“６”に基づき、同じ確立済みのセッションを使用して、マネージャ２５に送信すべき、開始シーケンス番号を事前に認識できる。
【００４５】
登録部６６は、エージェント１５とマネージャ２５との間のセッション区間毎のシーケンスに関してシーケンス番号６５Ｄ及びＡＣＫ番号６５Ｅを管理テーブル６５内に登録する。従って、マネージャ２５及びエージェント１５は、管理テーブル６５内のシーケンス番号６５Ｄ及びＡＣＫ番号６５Ｅを参照して、当該確立済みのセッションに関わる開始シーケンス番号を事前に認識できる。その結果、マネージャ２５及びエージェント１５は、確立済みの“空き”セッションを使い回しても、円滑なコマンド通信、すなわちデータ送信及びデータ送信応答を実行できる。
【００４６】
尚、図５の例では、エージェント１５とマネージャ２５との間の確立済みのセッション毎のシーケンスに関してシーケンス番号６５Ｄ及びＡＣＫ番号６５Ｅを管理した。しかし、マネージャ２５とルータ３０との間の確立済みのセッション毎のシーケンスに関してシーケンス番号６５Ｄ及びＡＣＫ番号６５Ｅも管理する。つまり、マネージャ２５及びルータ３０は、管理テーブル６５内のシーケンス番号６５Ｄ及びＡＣＫ番号６５Ｅを参照して、確立済みのセッションの開始シーケンス番号を事前に認識できる。その結果、マネージャ２５及びルータ３０は、確立済みの“空き”セッションを使い回しても、円滑なデータ送信及びデータ送信応答を実行できる。
【００４７】
次に、実施例１の中継システム１の動作について説明する。図６は、コマンド通信に関わる中継システム１の動作の一例を示すシーケンス図である。図６に示す中継システム１では、エージェント１５Ａ／マネージャ２５Ａ間及び、マネージャ２５Ａ／ルータ３０Ａ間で確立済みの該当セッションがなく、新規セッションが確立できる状況下にあるものとする。尚、新規セッションが確立できる状況下とは、ルータ３０Ａのセッション上限数の範囲内、かつ中継サーバ２０Ａのセッション許可数の範囲内で新規セッションが確立可能な状況下である。すなわち、エージェント１５Ａ／マネージャ２５Ａ間、マネージャ２５Ａ／ルータ３０Ａ間で新規のセッションが確立可能な状況下である。
【００４８】
図６に示す接続元端末１０Ａのエージェント１５Ａの検出部５１は、telnet実行部１４から確立要求コマンドtelnet>open[15A,30A]を検出する（ステップＳ１１）。エージェント１５Ａの分析部５２は、確立要求コマンドを検出すると、確立要求コマンドを分析する（ステップＳ１２）。分析部５２は、確立要求コマンドの分析結果に基づき、確立要求コマンドtelnet>open[15A,30A]をtelnet>open[15A,25A]＋telnet>open[25A,30A]に分解する。すなわち、分析部５２は、エージェント１５Ａとルータ３０Ａとの間のセッションを、エージェント１５Ａとマネージャ２５Ａとの間のセッションと、マネージャ２５Ａとルータ３０Ａとの間のセッションとに分解する。
【００４９】
エージェント１５Ａの判定部５３は、マネージャ２５Ａ内の管理テーブル６５を参照して、コマンド宛先に対応するエージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッションを分析する。判定部５３は、分析結果に基づき、コマンド宛先に対応する確立済みのセッション（１５Ａ／２５Ａ）がないと判定する（ステップＳ１３）。更に、判定部５３は、確立済みのセッション（１５Ａ／２５Ａ）がないと判定されると、新規セッションが確立可能な状況下にあるか否かを判定する。
【００５０】
通信部５４は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ１４）、telnet>open[15A,25A]に基づき、新規セッションを確立すべく、マネージャ２５Ａに対して確立（ｓｙｎ）を送信する（ステップＳ１５）。更に、マネージャ２５Ａの中継部６２は、エージェント１５Ａから確立（ｓｙｎ）を受信すると、エージェント１５Ａに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ１６）。更に、エージェント１５Ａの通信部５４は、マネージャ２５Ａから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、マネージャ２５Ａに対して確立（ａｃｋ）を送信する（ステップＳ１７）。その結果、エージェント１５Ａとマネージャ２５Ａとの間の新規セッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、エージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッション（１５Ａ／２５Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【００５１】
更に、エージェント１５Ａの通信部５４は、ステップＳ１２にて分解したtelnet>open[25A,30A]のコマンド宛先の確立情報をマネージャ２５Ａに通知する（ステップＳ１８）。マネージャ２５Ａの分析部６３は、コマンド宛先の確立情報を分析する（ステップＳ１９）。マネージャ２５Ａの判定部６４は、管理テーブル６５を参照して、コマンド宛先に対応したマネージャ２５Ａとルータ３０Ａとの間の確立済みのセッションを分析する。そして、判定部６４は、コマンド宛先に対応した確立済みのセッション（２５Ａ／３０Ａ）がないと判定されると（ステップＳ２０）、新規セッションが確立可能な状況下にあるか否かを判定する。中継部６２は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ２１）、telnet>open[25A,30A]に基づき、新規セッションを確立すべく、ルータ３０Ａに対して確立（ｓｙｎ）を送信する（ステップＳ２２）。ルータ３０Ａは、マネージャ２５Ａから確立（ｓｙｎ）を受信すると、マネージャ２５Ａに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ２３）。
【００５２】
更に、マネージャ２５Ａの中継部６２は、ルータ３０Ａから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、ルータ３０Ａに対して確立（ａｃｋ）を送信する（ステップＳ２４）。その結果、マネージャ２５Ａとルータ３０Ａとの間の新規セッションが確立したことになる。つまり、マネージャ２５Ａを経由してエージェント１５Ａとルータ３０Ａとの間のセッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、マネージャ２５Ａとルータ３０Ａとの間の確立済みのセッション（２５Ａ／３０Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【００５３】
そして、中継部６２は、ルータ３０Ａに対して確立（ａｃｋ）を送信すると、エージェント１５Ａとマネージャ２５Ａとの間、及びマネージャ２５Ａとルータ３０Ａとの間の確立完了を示す確立ＯＫをエージェント１５Ａに送信する（ステップＳ２５）。更に、エージェント１５Ａの通信部５４は、確立ＯＫを受信した場合、確立済みの新規セッション（１５Ａ／２５Ａ）を使用して、コマンドに対応したデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ２６）。
【００５４】
更に、マネージャ２５Ａの中継部６２は、確立済みの新規セッション（２５Ａ／３０Ａ）を使用して、エージェント１５Ａからのデータ送信（ｐｕｓｈ）をルータ３０Ａに中継する（ステップＳ２７）。その結果、ルータ３０Ａは、データ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）に対応したコマンド内容を実行し、そのコマンド応答結果を取得する。
【００５５】
ルータ３０Ａは、確立済みのセッション（２５Ａ／３０Ａ）を使用して、コマンドに対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ２８）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）を受信すると、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継する（ステップＳ２９）。その結果、エージェント１５Ａは、新規セッションを使用してマネージャ２５Ａ経由でルータ３０Ａを遠隔操作したことになる。
【００５６】
マネージャ２５Ａの制御部６９は、ルータ３０Ａからのデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継すると、確立済みの新規セッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ３０）。そして、マネージャ２５Ａの登録部６６は、確立済みの新規セッションの使用状態６５Ｃを“空き”として管理テーブル６５に更新する（ステップＳ３１）。通信部６１は、管理テーブル６５のテーブル更新をエージェント１５Ａに送信する（ステップＳ３２）。その結果、エージェント１５Ａは、確立済みのセッションの使用状態が“空き”に更新されたことを認識できる。
【００５７】
図６の例では、確立済みの該当セッションがなく、新規セッションが確立可能な状況下では、エージェント１５Ａとマネージャ２５Ａとの間、マネージャ２５Ａとルータ３０Ａとの間で新規セッションを確立する。確立した新規セッションを使用して、エージェント１５Ａとルータ３０Ａとの間のコマンドに関わるデータ送信及びデータ送信応答を実行できる。
【００５８】
図７は、コマンド通信に関わる中継システム１の動作の一例を示すシーケンス図である。図７に示す中継システム１では、エージェント１５Ａとマネージャ２５Ａとの間、マネージャ２５Ａとルータ３０Ａとの間で確立済みのセッションの使用状態が“空き”の状況下にあるものとする。
【００５９】
図７に示すエージェント１５Ａの通信部５４は、確立済みのセッション（１５Ａ／２５Ａ）を使用して、コマンドに対応するデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ４１）。更に、マネージャ２５Ａの中継部６２は、エージェント１５Ａからのデータ送信（ｐｕｓｈ）を受信すると、確立済みのセッション（２５Ａ／３０Ａ）を使用して、データ送信（ｐｕｓｈ）をルータ３０Ａに中継する（ステップＳ４２）。その結果、ルータ３０Ａは、データ送信（ｐｕｓｈ）を受信すると、データ送信に対応したコマンド内容を実行することでコマンド応答結果を取得する。
【００６０】
更に、ルータ３０Ａは、確立済みのセッション（２５Ａ／３０Ａ）を使用して、コマンドに対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ４３）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）を受信すると、確立済みのセッション（２５Ａ／１５Ａ）を使用して、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継する（ステップＳ４４）。その結果、エージェント１５Ａは、確立済みのセッション（１５Ａ／２５Ａ、２５Ａ／３０Ａ）を使用してマネージャ２５Ａ経由でルータ３０Ａを遠隔操作することになる。
【００６１】
マネージャ２５Ａの制御部６９は、ルータ３０Ａからのデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継すると、確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ４５）。そして、マネージャ２５Ａの登録部６６は、確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態６５Ｃを“空き”として管理テーブル６５に更新する（ステップＳ４６）。マネージャ２５Ａの通信部６１は、テーブル更新をエージェント１５Ａに送信する（ステップＳ４７）。その結果、エージェント１５Ａは、確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態６５Ｃを“空き”に更新されたことを認識できる。
【００６２】
更に、エージェント１５Ａの継続部５５は、ルータ３０Ａ側の確立済みのセッションを継続できる時間の範囲内で定期的にハートビートメッセージをマネージャ２５Ａに送信する（ステップＳ４８）。従って、マネージャ２５Ａは、エージェント１５Ａとの間で確立済みのセッションを維持できる。更に、マネージャ２５Ａの中継部６２は、エージェント１５Ａからのハートビートメッセージをルータ３０Ａに中継する（ステップＳ４９）。ルータ３０Ａは、マネージャ２５Ａとの間で確立済みのセッションを維持できる。その結果、ルータ３０Ａは、中継サーバ２０Ａ経由で接続元端末１０との間で確立済みのセッション（１５Ａ／２５Ａ、２５Ａ／３０Ａ）を維持できる。
【００６３】
エージェント１５Ａの検出部５１は、telnet実行部１４から、他のアプリの新規の確立要求コマンドtelnet>open[15A,30A]を検出する（ステップＳ５０）。分析部５２は、確立要求コマンドを分析し、確立要求コマンドtelnet>open[15A,30A]をtelnet>open[15A,25A]＋telnet>open[25A,30A]に分解する（ステップＳ５１）。すなわち、分析部５２は、エージェント１５Ａとルータ３０Ａとの間のセッション区間を、エージェント１５Ａとマネージャ２５Ａとの間のセッションと、マネージャ２５Ａとルータ３０Ａとの間のセッションとに分解する。
【００６４】
エージェント１５Ａの判定部５３は、マネージャ２５Ａの管理テーブル６５を参照して、コマンド宛先に対応したエージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッションを分析する。判定部５３は、コマンド宛先に対応した確立済みの“空き”のセッションがあると判定する（ステップＳ５２）。この際、マネージャ２５Ａの登録部６６は、エージェント１５Ａとマネージャ２５Ａとの間に確立済みのセッションの使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。そして、通信部５４は、コマンド宛先に対応した確立済みの“空き”のセッションを使用して、ステップＳ５１にて分解したtelnet>open[25A,30A]の確立情報をマネージャ２５Ａに送信する（ステップＳ５３）。マネージャ２５Ａの分析部６３は、コマンド宛先の確立情報を分析する（ステップＳ５４）。マネージャ２５Ａの判定部６４は、管理テーブル６５を参照して、コマンド宛先に対応したマネージャ２５Ａとルータ３０Ａとの間の確立済みのセッションを分析する。判定部６４は、コマンド宛先に対応した確立済みの“空き”のセッションがあると判定する（ステップＳ５５）。中継部６２は、コマンド宛先に対応した確立済みの“空き”のセッションを使用する。この際、マネージャ２５Ａの登録部６６は、マネージャ２５Ａとルータ３０Ａとの間に確立済みのセッションの使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【００６５】
そして、中継部６２は、確立済みの“空き”のセッションがあると判定されると、エージェント１５Ａとマネージャ２５Ａとの間及び、マネージャ２５Ａとルータ３０Ａとの間の確立完了を示す確立ＯＫをエージェント１５Ａに送信する（ステップＳ５６）。更に、エージェント１５Ａの通信部５４は、確立ＯＫを受信した場合、確立済みの新規セッション（１５Ａ／２５Ａ）を使用して、コマンドに対応するデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ５７）。更に、マネージャ２５Ａの中継部６２は、確立済みの“空き”のセッション（２５Ａ／３０Ａ）を使用して、エージェント１５Ａからのデータ送信（ｐｕｓｈ）をルータ３０Ａに中継する（ステップＳ５８）。その結果、ルータ３０Ａは、データ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）に対応したコマンド内容を実行し、そのコマンド応答結果を取得する。
【００６６】
更に、ルータ３０Ａは、確立済みの“空き”のセッション（２５Ａ／３０Ａ）を使用して、コマンドに対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ５９）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）を受信すると、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継する（ステップＳ６０）。その結果、エージェント１５Ａは、確立済みの“空き”のセッションを使用してマネージャ２５Ａ経由でルータ３０Ａを遠隔操作したことになる。
【００６７】
マネージャ２５Ａの制御部６９は、ルータ３０Ａからのデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継すると、確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ６１）。そして、マネージャ２５Ａ内の登録部６６は、確立済みのセッションの使用状態６５Ｃを“空き”として管理テーブル６５に更新する（ステップＳ６２）。通信部６１は、テーブル更新をエージェント１５Ａに送信する（ステップＳ６３）。その結果、エージェント１５Ａは、確立済みのセッションの使用状態が“空き”に更新されたことを認識できる。
【００６８】
図７の例では、エージェント１５Ａとマネージャ２５Ａとの間、マネージャ２５Ａとルータ３０Ａとの間で確立済みのセッションが“空き”の状況下にある。この状況下で、中継システム１は、当該確立済みの“空き”のセッションを使用して、エージェント１５Ａとルータ３０Ａとの間で他のアプリのコマンドに関わるデータ送信及び送信応答を実行できる。
【００６９】
図８は、コマンド通信に関わる中継システム１の動作の一例を示すシーケンス図である。図８に示す中継システム１では、エージェント１５Ａとルータ３０Ａとの間で確立済みのセッションの使用状態が“使用中”で、更なる新規セッションが確立できる状況下にあるものとする。
【００７０】
図８に示すエージェント１５Ａの検出部５１は、telnet実行部１４から、他のアプリからの新規の確立要求コマンドtelnet>open[15A,30A]を検出する（ステップＳ７１）。エージェント１５Ａの分析部５２は、確立要求コマンドを分析し、確立要求コマンドtelnet>open[15A,30A]をtelnet>open[15A,25A]＋telnet>open[25A,30A]に分解する（ステップＳ７２）。すなわち、分析部５２は、エージェント１５Ａとルータ３０Ａとの間のセッション区間を、エージェント１５Ａとマネージャ２５Ａとの間のセッションと、マネージャ２５Ａとルータ３０Ａとの間のセッションとに分解する。
【００７１】
エージェント１５Ａの判定部５３は、マネージャ２５Ａの管理テーブル６５を参照してコマンド宛先に対応したエージェント１５Ａとマネージャ２５Ａとの間の確立済みの“空き”のセッションを分析する。判定部５３は、コマンド宛先に対応した確立済みの“空き”のセッション（１５Ａ／２５Ａ）がない、すなわち確立済みのセッションが“使用中”と判定すると（ステップＳ７３）、新規セッションが確立可能な状況下にあるか否かを判定する。
【００７２】
エージェント１５Ａの通信部５４は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ７４）、telnet>open[15A,25A]に基づき、新規セッションを確立すべく、マネージャ２５Ａに対して確立（ｓｙｎ）を送信する（ステップＳ７５）。更に、マネージャ２５Ａの中継部６２は、エージェント１５Ａから確立（ｓｙｎ）を受信すると、エージェント１５Ａに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ７６）。更に、エージェント１５Ａの通信部５４は、マネージャ２５Ａから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、マネージャ２５Ａに対して確立（ａｃｋ）を送信する（ステップＳ７７）。その結果、エージェント１５Ａとマネージャ２５Ａとの間の新規セッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、エージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッション（１５Ａ／２５Ａ）の使用状態を“使用中”として管理テーブル６５内に登録する。
【００７３】
更に、エージェント１５Ａの通信部５４は、ステップＳ７２にて分解したtelnet>open[25A,30A]のコマンド宛先の確立情報をマネージャ２５Ａに送信する（ステップＳ７８）。マネージャ２５Ａの分析部６３は、コマンド宛先の確立情報を分析する（ステップＳ７９）。マネージャ２５Ａの判定部６４は、管理テーブル６５を参照して、コマンド宛先に対応したマネージャ２５Ａとルータ３０Ａとの間の確立済みの“空き”のセッションを分析する。判定部６４は、コマンド宛先に対応した確立済みの“空き”のセッション（２５Ａ／３０Ａ）がない、すなわち“使用中”と判定すると（ステップＳ８０）、新規セッションが確立可能な状況下にあるか否かを判定する。
【００７４】
中継部６２は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ８１）、telnet>open[25A,30A]に基づき、新規セッションを確立すべく、ルータ３０Ａに対して確立（ｓｙｎ）を送信する（ステップＳ８２）。ルータ３０Ａは、マネージャ２５Ａから確立（ｓｙｎ）を受信すると、マネージャ２５Ａに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ８３）。更に、マネージャ２５Ａの中継部６２は、ルータ３０Ａから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、ルータ３０Ａに対して確立（ａｃｋ）を送信する（ステップＳ８４）。その結果、マネージャ２５Ａとルータ３０Ａとの間の新規セッションが確立する。つまり、マネージャ２５Ａを経由してエージェント１５Ａとルータ３０Ａとの間のセッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、マネージャ２５Ａとルータ３０Ａとの間の確立済みのセッション（２５Ａ／３０Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【００７５】
そして、中継部６２は、確立（ａｃｋ）を送信すると、確立完了を示す確立ＯＫをエージェント１５Ａに送信する（ステップＳ８５）。更に、エージェント１５Ａの通信部５４は、確立ＯＫを受信した場合、確立済みの新規セッション（１５Ａ／２５Ａ）を使用して、コマンドに対応するデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ８６）。更に、マネージャ２５Ａの中継部６２は、確立済みの新規セッション（２５Ａ／３０Ａ）を使用して、エージェント１５Ａからのデータ送信（ｐｕｓｈ）をルータ３０Ａに中継する（ステップＳ８７）。その結果、ルータ３０Ａは、データ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）に対応したコマンド内容を実行し、そのコマンド応答結果を取得する。
【００７６】
更に、ルータ３０Ａは、確立済みのセッション（２５Ａ／３０Ａ）を使用して、コマンドに対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ８８）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）を受信すると、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに送信する（ステップＳ８９）。その結果、エージェント１５Ａは、確立済みの新規セッションを使用してマネージャ２５Ａ経由でルータ３０Ａを遠隔操作したことになる。
【００７７】
マネージャ２５Ａの制御部６９は、ルータ３０Ａからのデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継すると、確立済みの新規セッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ９０）。そして、マネージャ２５Ａの登録部６６は、確立済みの新規セッションの使用状態６５Ｃを“空き”として管理テーブル６５に更新する（ステップＳ９１）。通信部６１は、テーブル更新をエージェント１５Ａに送信する（ステップＳ９２）。その結果、エージェント１５Ａは、確立済みのセッションの使用状態が“空き”に更新されたことを認識できる。
【００７８】
図８の例では、エージェント１５Ａとマネージャ２５Ａとの間、マネージャ２５Ａとルータ３０Ａとの間で確立済みのセッションが“使用中”で、新規セッションが確立可能な状況下である。この状況下で、中継システム１は、新規セッションを使用して、エージェント１５Ａとルータ３０Ａとの間で、他のアプリのコマンドに関わるデータ送信及び送信応答を実行できる。
【００７９】
図９は、コマンド通信に関わる中継システム１の動作の一例を示すシーケンス図である。図９に示す中継システム１では、エージェント１５Ａとマネージャ２５Ａとの間で確立済みのセッションが“使用中”、マネージャ２５Ａとルータ３０Ａとの間で確立済みのセッションが“空き”で、新規セッションが確立可能な状況下にあるものとする。
【００８０】
図９に示すエージェント１５Ａの検出部５１は、telnet実行部１４から他のアプリの確立要求コマンドtelnet>open[15A,30A]を検出する（ステップＳ１０１）。分析部５２は、確立要求コマンドを分析すると、確立要求コマンドtelnet>open[15A,30A]をtelnet>open[15A,25A]＋telnet>open[25A,30A]に分解する（ステップＳ１０２）。すなわち、分析部５２は、エージェント１５Ａとルータ３０Ａとの間のセッション区間を、エージェント１５Ａとマネージャ２５Ａとの間のセッションと、マネージャ２５Ａとルータ３０Ａとの間のセッションとに分解する。
【００８１】
エージェント１５Ａの判定部５３は、マネージャ２５Ａ内の管理テーブル６５を参照して、コマンド宛先に対応したエージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッション（１５Ａ／２５Ａ）を分析する。判定部５３は、確立済みの“空き”のセッションがないと判定すると（ステップＳ１０３）、新規セッションが確立可能な状況下にあるか否かを判定する。通信部５４は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ１０４）、telnet>open[15A,25A]に基づき、新規セッションを確立すべく、マネージャ２５Ａに対して確立（ｓｙｎ）を送信する（ステップＳ１０５）。
【００８２】
マネージャ２５Ａの中継部６２は、エージェント１５Ａから確立（ｓｙｎ）を受信すると、エージェント１５Ａに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ１０６）。更に、エージェント１５Ａの通信部５４は、マネージャ２５Ａから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、マネージャ２５Ａに対して確立（ａｃｋ）を送信する（ステップＳ１０７）。その結果、エージェント１５Ａとマネージャ２５Ａとの間のセッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、エージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッション（１５Ａ／２５Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【００８３】
更に、エージェント１５Ａの通信部５４は、ステップＳ１０２にて分解したtelnet>open[25A,30A]の確立情報をマネージャ２５Ａに送信する（ステップＳ１０８）。マネージャ２５Ａの分析部６３は、コマンド宛先に対応する確立情報を分析する（ステップＳ１０９）。マネージャ２５Ａの判定部６４は、管理テーブル６５を参照して、コマンド宛先に対応したエージェント１５Ａとルータ３０Ａとの間の確立済みのセッションを分析する。判定部６４は、コマンド宛先の確立済みの“空き”のセッションがあると判定する（ステップＳ１１０）。
【００８４】
中継部６２は、マネージャ２５Ａとルータ３０Ａとの間の確立済みのセッションを使用する。そして、マネージャ２５Ａを経由してエージェント１５Ａとルータ３０Ａとの間のセッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、マネージャ２５Ａとルータ３０Ａとの間の確立済みのセッション（２５Ａ／３０Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【００８５】
そして、中継部６２は、確立済みの“空き”のセッションがあると判定されると、確立完了を示す確立ＯＫをエージェント１５Ａに送信する（ステップＳ１１１）。更に、エージェント１５Ａの通信部５４は、確立ＯＫを受信した場合、確立済みの新規セッション（１５Ａ／２５Ａ）を使用して、コマンドに対応するデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ１１２）。更に、マネージャ２５Ａの中継部６２は、確立済みのセッション（２５Ａ／３０Ａ）を使用して、エージェント１５Ａからのデータ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）をルータ３０Ａに中継する（ステップＳ１１３）。その結果、ルータ３０Ａは、データ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）に対応したコマンド内容を実行し、そのコマンド応答結果を取得する。
【００８６】
ルータ３０Ａは、確立済みのセッション（２５Ａ／３０Ａ）を使用して、コマンドに対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ１１４）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）を受信すると、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに送信する（ステップＳ１１５）。その結果、エージェント１５Ａは、確立済みの“空き”のセッションを使用してマネージャ２５Ａ経由でルータ３０Ａを遠隔操作したことになる。
【００８７】
マネージャ２５Ａ内の制御部６９は、ルータ３０Ａからのデータ送信応答をエージェント１５Ａに中継すると、確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ１１６）。そして、マネージャ２５Ａ内の登録部６６は、確立済みのセッションの使用状態６５Ｃを“空き”として管理テーブル６５に更新する（ステップＳ１１７）。通信部６１は、管理テーブル６５のテーブル更新をエージェント１５Ａに送信する（ステップＳ１１８）。その結果、エージェント１５Ａは、確立済みのセッションの使用状態が“空き”に更新されたことを認識することができる。
【００８８】
図９の例では、エージェント１５Ａとマネージャ２５Ａとの間で確立済みのセッションが“使用中”、マネージャ２５Ａとルータ３０Ａとの間で確立済みのセッションが“空き”で、新規セッションが確立可能な状況下である。この状況下で、中継システム１は、新規セッション及び“空き”のセッションを使用して他のアプリのコマンドに関わるデータ送信及び送信応答を実行できる。
【００８９】
図１０は、コマンド通信に関わる中継システム１の動作の一例を示すシーケンス図である。図１０に示す中継システム１では、エージェント１５Ａとルータ３０Ａとの間で確立済みのセッションの使用状態が“空き”の状態でエージェント１５Ａからルータ３０Ｂに新規の確立要求コマンドを送信する状況下にあるものとする。
【００９０】
図１０に示すエージェント１５Ａの検出部５１は、telnet実行部１４から、他のアプリからの確立要求コマンドtelnet>open[15A,30B]を検出する（ステップＳ１２１）。分析部５２は、確立要求コマンドを分析し、確立要求コマンドtelnet>open[15A,30B]をtelnet>open[15A,25A]＋telnet>open[25A,30B]に分解する（ステップＳ１２２）。すなわち、分析部５２は、エージェント１５Ａとルータ３０Ｂとの間のセッション区間を、エージェント１５Ａとマネージャ２５Ａとの間のセッションと、マネージャ２５Ａとルータ３０Ｂとの間のセッションとに分解する。
【００９１】
エージェント１５Ａの判定部５３は、マネージャ２５Ａの管理テーブル６５を参照して、コマンド宛先に対応するエージェント１５Ａとマネージャ２５Ａとの間の確立済みのセッションを分析する。判定部５３は、確立済みの使用状態が“空き”のセッションがあると判定する（ステップＳ１２３）。通信部５４は、確立済みの“空き”のセッションを使用して、ステップＳ１２２にて分解したtelnet>open[25A,30B]のコマンド宛先の確立情報をマネージャ２５Ａに送信する（ステップＳ１２４）。分析部６３は、コマンド宛先の確立情報を分析する（ステップＳ１２５）。
【００９２】
判定部６４は、管理テーブル６５を参照して、コマンド宛先のエージェント１５Ａとルータ３０Ｂとの間の確立済みのセッションを分析する。判定部６４は、確立済みの該当セッション（２５Ａ／３０Ｂ）“なし”と判定すると（ステップＳ１２６）、新規セッションが確立可能な状況下にあるか否かを判定する。中継部６２は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ１２７）、telnet>open[25A,30B]に基づき、新規セッションを確立すべく、ルータ３０Ｂに対して確立（ｓｙｎ）を送信する（ステップＳ１２８）。更に、ルータ３０Ｂは、マネージャ２５Ａから確立（ｓｙｎ）を受信すると、マネージャ２５Ａに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ１２９）。
【００９３】
更に、マネージャ２５Ａの中継部６２は、ルータ３０Ｂから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、ルータ３０Ｂに対して確立（ａｃｋ）を送信する（ステップＳ１３０）。その結果、マネージャ２５Ａとルータ３０Ｂとの間の新規セッションが確立したことになる。つまり、マネージャ２５Ａを経由してエージェント１５Ａとルータ３０Ｂとの間のセッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、マネージャ２５Ａとルータ３０Ｂとの間の確立済みのセッション（２５Ａ／３０Ｂ）の使用状態を“使用中”として管理テーブル６５内に登録する。
【００９４】
そして、中継部６２は、ルータ３０Ｂに対して確立（ａｃｋ）を送信すると、確立完了を示す確立ＯＫをエージェント１５Ａに送信する（ステップＳ１３１）。更に、エージェント１５Ａの通信部５４は、確立ＯＫを受信した場合、確立済みの新規セッション（１５Ａ／２５Ａ）を使用して、コマンドに対応するデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ１３２）。
【００９５】
更に、マネージャ２５Ａの中継部６２は、確立済みの新規セッション（２５Ａ／３０Ｂ）を使用して、エージェント１５Ａからのデータ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）をルータ３０Ｂに送信する（ステップＳ１３３）。その結果、ルータ３０Ｂは、データ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）に対応したコマンド内容を実行し、そのコマンド応答結果を取得する。
【００９６】
ルータ３０Ｂは、確立済みのセッション（２５Ａ／３０Ｂ）を使用して、コマンドに対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ１３４）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）を受信すると、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継する（ステップＳ１３５）。その結果、エージェント１５Ａは、確立済みの“空き”のセッションを使用してマネージャ２５Ａ経由でルータ３０Ｂを遠隔操作したことになる。
【００９７】
マネージャ２５Ａ内の制御部６９は、ルータ３０Ｂからのデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ａに中継すると、使い回す前の確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ１３６）。そして、マネージャ２５Ａ内の登録部６６は、使い回す前の確立済みのセッションの使用状態６５Ｃを“空き”として管理テーブル６５に更新する（ステップＳ１３７）。通信部６１は、管理テーブル６５のテーブル更新をエージェント１５Ａに送信する（ステップＳ１３８）。その結果、エージェント１５Ａは、確立済みのセッションの使用状態が“空き”に更新されたことを認識できる。尚、登録部６６は、ステップＳ１３７にて使い回す前の確立済みのセッションの使用状態を更新するのではなく、使用後の確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ｂ）の使用状態を更新しても良い。
【００９８】
図１０の例では、エージェント１５Ａとマネージャ２５Ａとの間の確立済みの“空き”のセッション、マネージャ２５Ａとルータ３０Ｂとの間の新規セッションを使用して、他のアプリのコマンドに関わるデータ送信及び送信応答を実行できる。
【００９９】
図１１は、コマンド通信に関わる中継システム１の動作の一例を示すシーケンス図である。図１１に示す中継システム１では、エージェント１５Ａとルータ３０Ａとの間で確立済みのセッションの使用状態が“空き”の状態でエージェント１５Ｂからルータ３０Ａに新規の確立要求コマンドを送信する状況下にあるものとする。
【０１００】
図１１に示すエージェント１５Ｂの検出部５１は、telnet実行部１４から、他のクライアントの新規の確立要求コマンドtelnet>open[15B,30A]を検出する（ステップＳ１４１）。分析部５２は、確立要求コマンドを分析すると、確立要求コマンドtelnet>open[15B,30A]をtelnet>open[15B,25A]＋telnet>open[25A,30A]に分解する（ステップＳ１４２）。すなわち、分析部５２は、エージェント１５Ａとルータ３０Ａとの間のセッション区間を、エージェント１５Ｂとマネージャ２５Ａとの間のセッションと、マネージャ２５Ａとルータ３０Ａとの間のセッションとに分解する。
【０１０１】
エージェント１５Ｂの判定部５３は、マネージャ２５Ａ内の管理テーブル６５を参照して、コマンド宛先に対応したエージェント１５Ｂとマネージャ２５Ａとの間の確立済みのセッションを分析する。判定部５３は、コマンド宛先に対応する確立済みの“空き”のセッション（１５Ｂ／２５Ａ）がないと判定すると（ステップＳ１４３）、新規セッションが確立可能な状況下にあるか否かを判定する。
【０１０２】
通信部５４は、新規セッションが確立可能な状況下にあると判定されると（ステップＳ１４４）、telnet>open[15B,25A]に基づき、新規セッションを確立すべく、マネージャ２５Ａに対して確立（ｓｙｎ）を送信する（ステップＳ１４５）。更に、マネージャ２５Ａの中継部６２は、エージェント１５Ｂから確立（ｓｙｎ）を受信すると、エージェント１５Ｂに対して確立応答（ｓｙｎ＋ａｃｋ）を送信する（ステップＳ１４６）。
【０１０３】
更に、エージェント１５Ｂの通信部５４は、マネージャ２５Ａから確立応答（ｓｙｎ＋ａｃｋ）を受信すると、マネージャ２５Ａに対して確立（ａｃｋ）を送信する（ステップＳ１４７）。その結果、エージェント１５Ｂとマネージャ２５Ａとの間のセッションが確立したことになる。従って、マネージャ２５Ａの登録部６６は、エージェント１５Ｂとマネージャ２５Ａとの間の確立済みのセッション（１５Ｂ／２５Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【０１０４】
更に、エージェント１５Ｂの通信部５４は、ステップＳ１４２にて分解したtelnet>open[25A,30A]のコマンド宛先の確立情報をマネージャ２５Ａに送信する（ステップＳ１４８）。マネージャ２５Ａの分析部６３は、コマンド宛先に対応した確立情報を分析する（ステップＳ１４９）。判定部６４は、管理テーブル６５を参照して、コマンド宛先に対応したマネージャ２５Ａとルータ３０Ａとの間の確立済みのセッションを分析する。
【０１０５】
判定部６４は、コマンド宛先に対応した確立済みの使用状態が“空き”のセッションがあると判定する（ステップＳ１５０）。そして、マネージャ２５Ａを経由してエージェント１５Ｂとルータ３０Ａとの間のセッションが確立する。従って、マネージャ２５Ａの登録部６６は、マネージャ２５Ａとルータ３０Ａとの間の確立済みのセッション（２５Ａ／３０Ａ）の使用状態６５Ｃを“使用中”として管理テーブル６５内に登録する。
【０１０６】
そして、中継部６２は、確立済みの“空き”のセッションがあると判定されると、エージェント１５Ｂとルータ３０Ａとの間の確立完了を示す確立ＯＫをエージェント１５Ｂに送信する（ステップＳ１５１）。更に、エージェント１５Ｂの通信部５４は、確立ＯＫを受信した場合、確立済みの新規セッション（１５Ｂ／２５Ａ）を使用して、コマンドに対応するデータ送信（ｐｕｓｈ）をマネージャ２５Ａに送信する（ステップＳ１５２）。
【０１０７】
更に、マネージャ２５Ａの中継部６２は、確立済みの“空き”のセッション（２５Ａ／３０Ａ）を使用して、エージェント１５Ｂからのデータ送信（ｐｕｓｈ）をルータ３０Ａに中継する（ステップＳ１５３）。その結果、ルータ３０Ａは、データ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）に対応したコマンド内容を実行し、そのコマンド応答結果を取得する。
【０１０８】
そして、ルータ３０Ａは、確立済みのセッションを使用して、コマンド内容に対応する応答結果であるデータ送信応答（ｐｕｓｈ＋ａｃｋ）をマネージャ２５Ａに送信する（ステップＳ１５４）。マネージャ２５Ａの中継部６２は、データ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ｂに中継する（ステップＳ１５５）。その結果、エージェント１５Ｂは、確立済みのセッションを使用してマネージャ２５Ａ経由でルータ３０Ａを遠隔操作したことになる。
【０１０９】
マネージャ２５Ａ内の制御部６９は、ルータ３０Ａからのデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５Ｂに中継すると、使い回す前の確立済みのセッション（１５Ａ／２５Ａ，２５Ａ／３０Ａ）の使用状態を“空き”と判定する（ステップＳ１５６）。そして、マネージャ２５Ａ内の登録部６６は、使い回す前の確立済みのセッションの使用状態６５Ｃを“空き”として管理テーブル６５内に更新する（ステップＳ１５７）。通信部６１は、管理テーブル６５のテーブル更新をエージェント１５Ａ及びエージェント１５Ｂに送信する（ステップＳ１５８）。その結果、エージェント１５Ａ及び１５Ｂは、確立済みのセッションの使用状態が“空き”に更新されたことを認識できる。尚、登録部６６は、ステップＳ１５７にて使い回す前の確立済みのセッションの使用状態を更新するのではなく、使用後の確立済みのセッション（１５Ｂ／２５Ａ，２５Ａ／３０Ａ）の使用状態を更新しても良い。
【０１１０】
図１１の例では、エージェント１５Ｂとマネージャ２５Ａとの間の新規セッション、マネージャ２５Ａとルータ３０Ａとの間の確立済みの“空き”のセッションを使用して、他のクライアントのコマンドに関わるデータ送信及び送信応答を実行できる。
【０１１１】
図１２は、セッション監視処理に関わるマネージャ２５の処理動作の一例を示すフローチャートである。図１２に示すセッション監視処理では、エージェント１５とマネージャ２５との間、及びマネージャ２５とルータ３０との間で確立済みのセッションの使用状態を監視し、確立済みのセッション毎に使用状態を管理テーブル６５に更新する処理である。図１２においてマネージャ２５の中継部６２は、ルータ３０から信号を受信したか否かを判定する（ステップＳ２０１）。
【０１１２】
制御部６９は、ルータ３０から信号を受信した場合に（ステップＳ２０１肯定）、ルータ３０からデータ送信応答（ｐｕｓｈ＋ａｃｋ）を受信したか否かを判定する（ステップＳ２０２）。制御部６９は、ルータ３０からデータ送信応答（ｐｕｓｈ＋ａｃｋ）を受信した場合に（ステップＳ２０２肯定）、データ送信応答（ｐｕｓｈ＋ａｃｋ）の受信に使用したセッションのセッションＩＤを識別する（ステップＳ２０３）。
【０１１３】
中継部６２は、セッションＩＤを識別すると、ルータ３０から受信したデータ送信応答（ｐｕｓｈ＋ａｃｋ）をエージェント１５に送信する（ステップＳ２０４）。制御部６９は、データ送信応答（ｐｕｓｈ＋ａｃｋ）の送信に使用したセッションが確立済みの“空き”のセッションを使用したか否かを判定する（ステップＳ２０５）。登録部６６は、確立済みの“空き”のセッションを使用した場合（ステップＳ２０５肯定）、該当セッションの使用状態６５Ｃを“空き”として管理テーブル６５内に更新する（ステップＳ２０６）。更に、制御部６９は、当該マネージャ２５に接続するエージェント１５に管理テーブル６５内のテーブル更新を通知し（ステップＳ２０７）、図１２に示す処理動作を終了する。
【０１１４】
また、制御部６９は、確立済みの“空き”のセッションを使用しなかった場合に（ステップＳ２０５否定）、データ送信応答（ｐｕｓｈ＋ａｃｋ）に使用した確立済みのセッションを“空き”と判定する（ステップＳ２０８）。更に、登録部６６は、確立済みのセッションの使用状態６５Ｃを“空き”として管理テーブル６５内に更新し（ステップＳ２０９）、テーブル更新を通知すべく、ステップＳ２０７に移行する。
【０１１５】
また、中継部６２は、ルータ３０から信号を受信しなかった場合（ステップＳ２０１否定）、この処理動作を終了する。また、制御部６９は、ルータ３０からデータ送信応答（ｐｕｓｈ＋ａｃｋ）を受信しなかった場合（ステップＳ２０２否定）、この確立済みのセッションのセッションＩＤを識別する（ステップＳ２１０）。制御部６９は、確立済みのセッションのセッションＩＤを識別すると、このセッションＩＤに対応したセッションの使用状態を“使用中”と判定する（ステップＳ２１１）。更に、登録部６６は、セッションＩＤ６５Ａの使用状態６５Ｃを“使用中”として管理テーブル６５内に更新することで（ステップＳ２１２）、テーブル更新を通知すべく、ステップＳ２０７に移行する。
【０１１６】
図１２に示すセッション監視処理では、ルータ３０からコマンドに対応するデータ送信応答（ｐｕｓｈ＋ａｃｋ）を受信し、データ送信応答（ｐｕｓｈ＋ａｃｋ）をコマンド発信先のエージェント１５に中継する。更に、セッション監視処理では、確立済みの“空き”のセッションを使用してコマンドを中継した場合、当該セッションの使用状態６５Ｃを“空き”として管理テーブル６５内に更新する。その結果、管理テーブル６５は、確立済みの“空き”のセッションを管理できる。
【０１１７】
セッション監視処理では、ルータ３０からコマンドに対応するデータ送信応答（ｐｕｓｈ＋ａｃｋ）を受信し、データ送信応答（ｐｕｓｈ＋ａｃｋ）をコマンド発信先のエージェント１５に中継する。更に、セッション監視処理では、新規セッションを使用してコマンドのデータ送信及びデータ送信応答を中継した場合、当該セッションの使用状態６５Ｃを“空き”として管理テーブル６５内に更新する。その結果、管理テーブル６５は、確立済みの“空き”のセッションを管理できる。
【０１１８】
また、セッション監視処理では、確立済みのセッションを使用してデータ送信応答以外の信号を受信した場合、確立済みのセッションの使用状態６５Ｃを“使用中”として管理テーブル６５内に更新する。その結果、管理テーブル６５は、確立済みの“使用中”のセッションを管理できる。
【０１１９】
図１３は、エージェント側コマンド送信処理に関わるエージェント１５の処理動作の一例を示すフローチャートである。図１３に示すエージェント側コマンド送信処理では、telnet実行部１４で発行したルータ３０宛のコマンドのデータ送信（ｐｕｓｈ）をエージェント１５からマネージャ２５へと送信する処理である。図１３においてエージェント１５の検出部５１は、telnet実行部１４で発行したコマンドを検出したか否かを判定する（ステップＳ２２１）。分析部５２は、コマンドを検出した場合（ステップＳ２２１肯定）、コマンド内容を分析する（ステップＳ２２２）。判定部５３は、コマンドの分析結果と管理テーブル６５のテーブル内容とを比較し（ステップＳ２２３）、コマンド宛先に対応した確立済みのセッションが管理テーブル６５内にあるか否かを判定する（ステップＳ２２４）。
【０１２０】
判定部５３は、コマンド宛先に対応した確立済みのセッションが管理テーブル６５内にある場合（ステップＳ２２４肯定）、管理テーブル６５を参照して、確立済みセッションの使用状態が“空き”であるか否かを判定する（ステップＳ２２５）。通信部５４は、確立済みのセッションの使用状態が“空き”である場合に（ステップＳ２２５肯定）、確立済みの“空き”のセッションを使用してコマンド宛先の確立情報をマネージャ１５に送信する（ステップＳ２２６）。更に、通信部５４は、マネージャ２５から確立ＯＫを受信したか否かを判定する（ステップＳ２２７）。通信部５４は、確立ＯＫを受信した場合（ステップＳ２２７肯定）、確立済みの“空き”のセッションを使用してコマンドに対応したデータ送信（ｐｕｓｈ）を実行し（ステップＳ２２８）、図１３に示す処理動作を終了する。
【０１２１】
また、判定部５３は、確立済みのセッションの使用状態が“空き”でない場合（ステップＳ２２５否定）、新規セッションが確立可能な状況下にあるか否かを判定する（ステップＳ２２９）。通信部５４は、新規セッションが確立可能な状況下にある場合（ステップＳ２２９肯定）、新規セッションを確立する新規セッション確立処理を実行する（ステップＳ２３０）。更に、通信部５４は、新規セッション確立処理を実行すると、新規セッションを使用してコマンド宛先の確立情報をマネージャ２５に送信する（ステップＳ２３１）。更に、通信部５４は、マネージャ２５から確立ＯＫを受信したか否かを判定する（ステップＳ２３２）。通信部５４は、確立ＯＫを受信した場合（ステップＳ２３２肯定）、確立済みの新規セッションを使用してコマンドに対応したデータ送信（ｐｕｓｈ）を実行し（ステップＳ２３３）、図１３に示す処理動作を終了する。
【０１２２】
また、検出部５１は、コマンドを検出しなかった場合（ステップＳ２２１否定）、図１３に示す処理動作を終了する。また、判定部５３は、コマンド宛先に対応した確立済みセッションがない場合（ステップＳ２２４否定）、新規セッションが確立可能な状況下であるか否かを判定すべく、ステップＳ２２９に移行する。また、通信部５４は、新規セッションが確立可能な状況下でない場合（ステップＳ２２９否定）、待機して（ステップＳ２３４）、確立済みの該当セッションがあるか否かを判定すべく、ステップＳ２２４に移行する。また、通信部５４は、確立ＯＫを受信しなかった場合（ステップＳ２２７否定）、確立ＯＫを受信したか否かを監視すべく、ステップＳ２２７に移行する。また、通信部５４は、確立ＯＫを受信しなかった場合（ステップＳ２３２否定）、確立ＯＫを受信したか否かを監視すべく、ステップＳ２３２に移行する。
【０１２３】
図１３に示すエージェント側コマンド送信処理では、コマンドを検出すると、コマンド宛先に対応した確立済みの“空き”のセッションがあるか否かを判定する。更に、エージェント側コマンド送信処理では、コマンド宛先に対応した確立済みの“空き”のセッションがある場合、確立済みの“空き”のセッションを使用してコマンドのデータ送信（ｐｕｓｈ）をマネージャ２５に中継する。その結果、エージェント１５は、新規セッションを確立しなくても、確立済みの“空き”のセッションを使用してコマンドのデータ送信（ｐｕｓｈ）をマネージャ２５に中継できる。
【０１２４】
エージェント側コマンド送信処理では、コマンド宛先に対応した確立済みの“空き”のセッションがなく、新規セッションが確立可能な状況下である場合、新規セッションを確立する。そして、エージェント側コマンド送信処理では、確立済みの新規セッションを使用してコマンドのデータ送信（ｐｕｓｈ）をマネージャ２５に中継する。その結果、エージェント１５は、確立済みの“空き”のセッションがなくても、新規セッションが確立可能な状況下であれば、新規セッションを確立すると共に、この新規セッションを使用してコマンドのデータ送信（ｐｕｓｈ）をマネージャ２５に中継できる。
【０１２５】
エージェント側コマンド送信処理では、コマンド宛先に対応した確立済みの“空き”のセッションがなく、新規セッションが確立可能な状況下でない場合、コマンドのデータ送信（ｐｕｓｈ）に使用するセッションが空くまで待機する。
【０１２６】
図１４は、マネージャ側コマンド送信処理に関わるマネージャ２５の処理動作の一例を示すフローチャートである。図１４に示すマネージャ側コマンド送信処理では、エージェント１５から受信したコマンドをルータ３０に中継する処理である。図１４においてマネージャ２５の分析部６３は、エージェント１５から確立情報を受信したか否かを判定する（ステップＳ２４１）。分析部６３は、確立情報を受信した場合（ステップＳ２４１肯定）、確立情報を分析する（ステップＳ２４２）。判定部６４は、確立情報の分析結果と管理テーブル６５のテーブル内容とを比較し（ステップＳ２４３）、コマンド宛先の確立情報に対応した確立済みのセッションが管理テーブル６５内にあるか否かを判定する（ステップＳ２４４）。
【０１２７】
判定部６４は、確立情報に対応した確立済みのセッションが管理テーブル６５内にある場合（ステップＳ２４４肯定）、管理テーブル６５を参照して、当該確立済みのセッションの使用状態が“空き”であるか否かを判定する（ステップＳ２４５）。中継部６２は、確立済みのセッションの使用状態が“空き”である場合に（ステップＳ２４５肯定）、確立済みの“空き”のセッションを使用して確立ＯＫをエージェント１５に送信したか否かを判定する（ステップＳ２４６）。中継部６２は、確立ＯＫをエージェント１５に送信した場合（ステップＳ２４６肯定）、当該確立済みの“空き”のセッションを使用してコマンドのデータ送信を実行し（ステップＳ２４７）、図１４に示す処理動作を終了する。
【０１２８】
また、判定部６４は、確立済みのセッションの使用状態が“空き”でない場合（ステップＳ２４５否定）、新規セッションが確立可能な状況下にあるか否かを判定する（ステップＳ２４８）。中継部６２は、新規セッションが確立可能な状況下にある場合（ステップＳ２４８肯定）、新規セッションを確立する新規セッション確立処理を実行する（ステップＳ２４９）。更に、中継部６２は、新規セッション確立処理を実行すると、確立ＯＫをエージェント１５に送信したか否かを判定する（ステップＳ２５０）。更に、中継部６２は、確立ＯＫをエージェント１５に送信した場合（ステップＳ２５０肯定）、新規セッションを使用してコマンドのデータ送信（ｐｕｓｈ）を実行し（ステップＳ２５１）、図１４に示す処理動作を終了する。
【０１２９】
また、分析部６３は、エージェント１５から確立情報を受信しなかった場合（ステップＳ２４１否定）、図１４に示す処理動作を終了する。また、判定部６４は、コマンド宛先の確立情報に対応した確立済みセッションがない場合（ステップＳ２４４否定）、新規セッションが確立可能な状況下であるか否かを判定すべく、ステップＳ２４８に移行する。また、中継部６２は、新規セッションが確立可能な状況下でない場合（ステップＳ２４８否定）、待機して（ステップＳ２５２）、確立済みの該当セッションがあるか否かを判定すべく、ステップＳ２４４に移行する。
【０１３０】
また、中継部６２は、確立ＯＫを送信しなかった場合（ステップＳ２４６否定）、確立ＯＫを送信したか否かを監視すべく、ステップＳ２４６に移行する。また、中継部６２は、確立ＯＫを送信しなかった場合（ステップＳ２５０否定）、確立ＯＫを送信したか否かを監視すべく、ステップＳ２５０に移行する。
【０１３１】
図１４に示すマネージャ側コマンド送信処理では、確立情報を検出すると、コマンド宛先に対応した確立済みの“空き”のセッションがあるか否かを判定する。更に、マネージャ側コマンド送信処理では、コマンド宛先に対応した確立済みの“空き”のセッションがある場合に、確立済みの“空き”のセッションを使用してコマンドのデータ送信（ｐｕｓｈ）をルータ３０に中継する。その結果、マネージャ２５は、新規セッションを確立しなくても、確立済みの“空き”のセッションを使用してコマンドのデータ送信（ｐｕｓｈ）をルータ３０に中継できる。
【０１３２】
マネージャ側コマンド送信処理では、コマンド宛先に対応した確立済みの“空き”のセッションがなく、新規セッションが確立可能な状況下にある場合、新規セッションを確立してコマンドのデータ送信（ｐｕｓｈ）をルータ３０に中継する。その結果、マネージャ２５は、確立済みの“空き”のセッションがなくても、新規セッションが確立可能な状況下であれば、新規セッションを確立してコマンドのデータ送信をルータ３０に中継できる。
【０１３３】
マネージャ側コマンド送信処理では、コマンド宛先に対応した確立済みの“空き”のセッションがなく、新規セッションが確立可能な状況下でない場合、データ送信（ｐｕｓｈ）に使用するセッションが空くまで待機する。
【０１３４】
図１５は、セッション許可数決定処理に関わるマネージャ２５の処理動作の一例を示すフローチャートである。図１５に示すセッション許可数決定処理では、マネージャ２５自体が確立できるセッション許可数を自立的に決定する処理である。図１５においてマネージャ２５の通信部６１は、ルータ３０と通信して当該ルータ３０自体が確立できるセッション上限数を取得する（ステップＳ２６１）。通信部６１は、ルータ３０に接続する中継サーバ２０や接続元端末１０にブロードキャスト送信する。通信部６１は、ブロードキャスト送信に対する返信数に基づき、ルータ３０の接続台数を取得する（ステップＳ２６２）。決定部６７は、取得されたセッション上限数及び接続台数に基づき、（セッション上限数／接続台数）の式でセッション許可数を算出する（ステップＳ２６３）。決定部６７は、算出したセッション許可数を自己のセッション上限として決定し（ステップＳ２６４）、図１５に示す処理動作を終了する。
【０１３５】
図１５に示すセッション許可数決定処理では、ルータ３０のセッション上限数及び接続台数を収集し、これら収集されたセッション上限数／接続台数に基づき、セッション許可数を自立的に決定する。その結果、各中継サーバ２０は、自分のセッション許可数を自立的に決定できる。
【０１３６】
図１６は、セッション許可数調整処理に関わるマネージャ２５の処理動作を示すフローチャートである。図１６に示すセッション許可数調整処理では、中継サーバ２０のマネージャ２５同士の通信に応じて自己のセッション許可数を決定する処理である。図１６においてマネージャ２５の貸与部６８は、現在確立済みのセッション数がセッション許可数を超えるか否かを判定する（ステップＳ２７１）。
【０１３７】
貸与部６８は、現在確立済みのセッション数がセッション許可数を超える場合（ステップＳ２７１肯定）、ルータ３０に直接接続する各中継サーバ２０に対して貸与要求をブロードキャスト送信する（ステップＳ２７２）。尚、各中継サーバ２０のマネージャ２５内の貸与部６８は、貸与要求に応じてセッション許可数の範囲内で貸与可能な未確立のセッションがある場合、貸与数を貸与要求発行元の中継サーバ２０に返信する。
【０１３８】
貸与部６８は、貸与要求のブロードキャスト送信後、応答タイマを起動する（ステップＳ２７３）。貸与部６８は、応答タイマがタイムアップしたか否かを判定する（ステップＳ２７４）。貸与部６８は、応答タイマがタイムアップした場合（ステップＳ２７４肯定）、貸与要求に対する貸与数を受信したか否かを判定する（ステップＳ２７５）。決定部６７は、貸与要求に対する貸与数を受信した場合（ステップＳ２７５肯定）、受信した貸与数に応じて現在のセッション許可数を更新し（ステップＳ２７６）、図１６に示す処理動作を終了する。決定部６７は、例えば、セッション許可数が５本で、貸与数が２本の場合、自分のセッション許可数は７本となる。その結果、この中継サーバ２０は、確立済みのセッション数がセッション許可数“５本”を超えたとしても、他の中継サーバ２０から未確立の空きセッションを貸借できる。
【０１３９】
また、貸与部６８は、貸与要求に対する貸与数を受信しなかった場合（ステップＳ２７５否定）、図１６に示す処理動作を終了する。貸与部６８は、現在確立済みのセッション数がセッション許可数を超えない場合（ステップＳ２７１否定）、他の中継サーバ２０から貸与要求を受信したか否かを判定する（ステップＳ２７７）。貸与部６８は、他の中継サーバ２０から貸与要求を受信した場合（ステップＳ２７７肯定）、現在の状態がセッション貸与可能な状況下であるか否かを判定する（ステップＳ２７８）。貸与部６８は、現在の状態がセッション貸与可能な状況下である場合（ステップＳ２７８肯定）、貸与要求に対して貸与数を貸与要求発行元の中継サーバ２０に送信する（ステップＳ２７９）。
【０１４０】
決定部６７は、貸与数を貸与要求発行元の中継サーバ２０に送信すると、その貸与数に応じて現在のセッション許可数を更新し（ステップＳ２８０）、図１６に示す処理動作を終了する。すなわち、決定部６７は、セッション許可数が５本で、他の中継サーバ２０に貸与する貸与数が１本の場合、自分のセッション許可数は４本となる。
【０１４１】
図１６に示すセッション許可数調整処理では、各マネージャ２５同士で相互通信して各マネージャ２５のセッション許可数を相互に貸借することで、各マネージャ２５で設定されたセッション許可数を調整できる。
【０１４２】
実施例１の中継システム１では、エージェント１５とマネージャ２５との間で確立済みの空きセッションがある場合、空きセッションを使用してエージェント１５とマネージャ２５との間で他のアプリのコマンドのデータ送信及びデータ送信応答を実行する。更に、中継システム１では、マネージャ２５とルータ３０との間で確立済みの空きセッションがある場合、空きセッションを使用してマネージャ２５とルータ３０との間で他のアプリのコマンドのデータ送信及びデータ送信応答を実行する。その結果、接続元端末１０、中継サーバ２０及びルータ３０は、確立済みの空きセッションを他のアプリからのコマンドのデータ送信及びデータ送信応答に使い回すことで、新規セッション確立の処理を省略して、その処理負担を軽減できる。
【０１４３】
実施例１の中継システム１では、エージェント１５からマネージャ２５経由でルータ３０に対してハートビートメッセージを所定タイミングで送信するため、エージェント１５とルータ３０との間の確立済みのセッションを継続して維持できる。すなわち、エージェント１５とマネージャ２５との間、マネージャ２５とルータ３０との間で確立済みのセッションを継続して維持できる。
【０１４４】
実施例１のマネージャ２５は、確立済みのセッションを使用してコマンドのデータ送信応答を受信し、当該データ送信応答をエージェント１５に中継した場合、当該確立済みのセッションの使用状態６５Ｃを“空き”として管理テーブル６５に登録する。その結果、エージェント１５及びマネージャ２５は、管理テーブル６５のテーブル内容を参照して、確立済みのセッションの使用状態を認識できる。
【０１４５】
実施例１の中継サーバ２０では、ルータ３０側でセッション確立可能なセッション上限数と、当該ルータ３０側とセッション確立可能に接続した中継サーバ２０の接続台数とを収集する。更に、中継サーバ２０は、セッション上限数及び接続台数に基づき、中継サーバ２０自体がセッション確立を許可できるセッション許可数を算出する。その結果、中継サーバ２０は、セッション許可数を自立的に算出し、このセッション許可数の範囲内でセッションを許可できる。
【０１４６】
実施例１の中継サーバ２０は、ルータ３０側と接続するセッション確立可能な他の中継サーバ２０からの貸与要求を検出すると、中継サーバ２０自体のセッション許可数の範囲内で未確立のセッションがあるか否かを判定する。中継サーバ２０は、未確立のセッションがある場合、未確立のセッションを他の中継サーバ２０に貸与する。更に、中継サーバ２０は、他の中継サーバ２０から未確立のセッションの貸与を検出すると、貸与されたセッション数に応じて当該中継サーバ２０自体のセッション許可数を決定する。その結果、中継サーバ２０は、他の中継サーバ２０との間で未確立のセッションを貸借することでセッション許可数を調整できる。
【０１４７】
尚、上記実施例１の中継サーバ２０では、確立済みのセッションを使用して接続元端末１０とルータ３０との間でコマンドのデータ送信及び応答結果を中継した。しかしながら、以下に説明するようにしても良く、この場合の実施の形態につき、実施例２として説明する。
【実施例２】
【０１４８】
図１７は、実施例２の中継システムに関わるマネージャの機能一例を示す説明図である。尚、実施例１の中継システム１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図１７に示すマネージャ２５１は、通信部６１、中継部６２、確立部６２Ａ、分析部６３、判定部６４、管理テーブル６５、登録部６６、決定部６７、貸与部６８及び制御部６９を有する。更に、マネージャ２５１は、キャッシュ７１、キャッシュ登録部７２及び返信部７３を有する。
【０１４９】
キャッシュ登録部７２は、中継部６２を通じてコマンドのデータ送信に対応した応答結果を受信すると、コマンドのデータ送信の内容及び、このデータ送信の内容に対応した応答結果をキャッシュ７１に登録する。また、キャッシュ登録部７２は、コマンドのデータ送信の内容及び応答結果をキャッシュ７１に登録すると、例えば、そのキャッシュ登録から１分後に登録されたコマンドのデータ送信の内容及び応答結果をキャッシュ７１から消去する。尚、キャッシュ７１に登録されるデータ送信の内容及び応答結果は、例えば、１分以内で応答結果が変更される可能性のないデータ送信の内容及び応答結果に限定するものである。
【０１５０】
また、返信部７３は、確立済みのセッションを使用してエージェント１５からコマンドのデータ送信を検出すると、当該データ送信の内容がキャッシュ７１内に登録済みであるか否かを判定する。返信部７３は、当該データ送信の内容がキャッシュ７１内に登録済みの場合、当該データ送信の内容に対応した応答結果をキャッシュ７１から読み出す。返信部７３は、データ送信の内容がキャッシュ７１内に登録済みの場合、当該データ送信をルータ３０に中継せず、キャッシュ７１に登録済みのデータ送信の内容に対応した応答結果をエージェント１５に返信する。
【０１５１】
次に実施例２の中継システム１の動作について説明する。図１８は、重複コマンド返信処理に関わるマネージャ２５１の処理動作の一例を示すフローチャートである。図１８に示す重複コマンド返信処理では、コマンドのデータ送信に対応する応答結果をルータ３０から取得すると、このデータ送信の内容及び応答結果を対応付けてキャッシュ７１に登録する。更に、重複コマンド返信処理では、再度、同一のデータ送信を検出すると、ルータ３０にデータ送信を中継することなく、データ送信に対応する応答結果をキャッシュ７１から読み出し、この読み出した応答結果をエージェント１５に返信する処理である。
【０１５２】
図１８においてマネージャ２５１の返信部７３は、エージェント１５からコマンドのデータ送信を受信したか否かを判定する（ステップＳ２９１）。返信部７３は、エージェント１５からデータ送信を受信した場合（ステップＳ２９１肯定）、データ送信の内容に対応した応答結果がキャッシュ７１内に登録済みであるか否かを判定する（ステップＳ２９２）。返信部７３は、応答結果がキャッシュ７１内に登録済みである場合（ステップＳ２９２肯定）、コマンドのデータ送信をルータ３０に中継せず、コマンドのデータ送信に対応した応答結果をエージェント１５に返信する（ステップＳ２９３）。そして、マネージャ２５１は、図１８に示す処理動作を終了する。
【０１５３】
返信部７３は、エージェント１５からコマンドのデータ送信を受信しなかった場合（ステップＳ２９１否定）、図１８に示す処理動作を終了する。また、返信部７３は、コマンドのデータ送信の内容に対応した応答結果がキャッシュ７１内にない場合（ステップＳ２９２否定）、当該コマンドのデータ送信をルータ３０に中継する（ステップＳ２９４）。更に、キャッシュ登録部７２は、中継部６２を通じてコマンドのデータ送信に対応する応答結果を受信すると（ステップＳ２９５）、コマンドのデータ送信の内容及び応答結果を対応付けてキャッシュ７１に登録する（ステップＳ２９６）。更に、中継部６２は、コマンドのデータ送信の内容に対応する応答結果をエージェント１５に送信すべく、ステップＳ２９３に移行する。尚、キャッシュ登録部７２は、コマンドのデータ送信の内容及び応答結果を対応付けてキャッシュ７１に登録すると、例えば、１分間のタイマを開始する。更に、キャッシュ登録部７２は、１分間タイマがタイムアウトすると、当該登録済みのコマンドのデータ送信の内容及び応答結果をキャッシュ７１から消去する。
【０１５４】
図１８に示す重複コマンド返信処理では、コマンドのデータ送信に対応する応答結果をルータ３０から受信すると、コマンドのデータ送信の内容及び応答結果を対応付けてキャッシュ７１に登録する。更に、重複コマンド返信処理では、エージェント１５からコマンドのデータ送信を検出すると、当該データ送信の内容、すなわちコマンドの内容がキャッシュ７１内に登録済みの場合、当該データ送信の内容に対応した応答結果をキャッシュ７１から読み出してエージェント１５に返信する。その結果、エージェント１５は、重複コマンド、すなわち同一のデータ送信の内容に対する応答結果の待ち時間を大幅に短縮化できる。
【０１５５】
そして、接続先装置であるルータ３０へのアクセス回数が減り、接続先装置の負荷軽減を図ることができる。
【０１５６】
実施例２のマネージャ２５１は、コマンドのデータ送信に対応する応答結果をルータ３０から受信した場合、データ送信の内容及び応答結果を対応付けてキャッシュ７１に登録する。更に、マネージャ２５１は、データ送信を受信すると、当該データ送信の内容に対応する応答結果がキャッシュ７１に登録済みの場合、データ送信をルータ３０に中継することなく、当該キャッシュ７１に登録済みの応答結果をエージェント１５に返信する。その結果、エージェント１５は、重複コマンド、すなわち同一のデータ送信の内容に対する応答結果の待ち時間を大幅に短縮化できる。
【０１５７】
尚、上記実施例では、コマンドの対象としてルータ３０を例示したが、ルータに限定されるものではなく、レイヤ２スイッチ等のネットワーク機器等の通信機器に適用しても良い。
【０１５８】
また、上記実施例のtelnet実行部１４が実行するコマンドはtelnetコマンドに限定されるものではない。telnet実行部１４が実行するコマンドは、ネットワーク５上の他のコンピュータ等と通信を行うアプリケーションプログラム、例えば、ｒｓｈ（remote  shell）、ｒｌｏｇｏｎ（remote  login）、ＳＳＨ（Secure  SHell）等のコマンドであっても良い。また、ネットワーク５上の他のコンピュータ等と通信を行うアプリケーションプログラムは、列挙のものに限らず、セッション確立を要するアプリケーションプログラムであれば、何れでも良い。
【０１５９】
また、上記実施例では、管理テーブル６５をマネージャ２５内に配置するようにしたが、中継サーバ２０と外部接続するメモリ装置で管理するようにしても良い。また、同様に、管理テーブル６５をマネージャ２５だけでなく、接続元端末１０内に持たせるようにしても良い。また、上記実施例では、エージェント１５をソフトウェア機能として接続元端末１０内のＣＰＵ１３で実行すると共に、マネージャ２５をソフトウェア機能として中継サーバ２０内のＣＰＵ２３で実行した。しかしながら、各機能を実行するハードウェアとして機能部を設けるようにしても良い。
【０１６０】
また、上記実施例では、エージェント１５が、マネージャ２５とルータ３０との間のセッションを確立してマネージャ２５から確立ＯＫを受信すると、コマンドのデータ送信（ｐｕｓｈ）を確立済みのセッションを使用してマネージャ２５に送信した。しかしながら、エージェント１５は、マネージャ２５との間のセッションが確立した後、当該確立済みのセッションを使用してコマンドのデータ送信（ｐｕｓｈ）をマネージャ２５に送信する。そして、マネージャ２５は、エージェント１５からデータ送信（ｐｕｓｈ）を受信すると、データ送信（ｐｕｓｈ）を一時的に保管する。そして、マネージャ２５は、ルータ３０とのセッション確立を検出すると、当該確立済みのセッションを使用して一時的に保管されたデータ送信（ｐｕｓｈ）をルータ３０に送信しても良い。
【０１６１】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【０１６２】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【０１６３】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１９を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１９は、通信プログラムを実行するコンピュータを示す説明図である。
【０１６４】
図１９に示すコンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータの入力を受け付ける入力装置４０２と、各種情報を表示出力するモニタ４０３とを有する。更に、コンピュータ４００は、記憶媒体からプログラム等を読取る媒体読取装置４０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインタフェース装置４０５とを有する。更に、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０６(Random  Access  Memory)と、ハードディスク装置４０７とを有する。各装置４０１〜４０７は、バス４０８に接続される。
【０１６５】
そして、ハードディスク装置４０７には、上記の実施例と同様の機能を発揮する通信プログラムが予め記憶されている。通信プログラムとしては、図１９に示すように、確立プログラム４１１、判定プログラム４１２及び通信プログラム４１３である。尚、プログラム４１１〜４１３については、図３に示すマネージャ２５の各構成要素と同様、適宜統合又は分散してもよい。更に、ハードディスク装置４０７は、確立済みセッションの使用状態を記憶する。
【０１６６】
ＣＰＵ４０１は、確立プログラム４１１、判定プログラム４１２及び通信プログラム４１３をハードディスク装置４０７から読み出してＲＡＭ４０６に展開することにより、当該プログラムを実行する。その結果、図１９に示すように、各プログラム４１１〜４１３は、確立プロセス４２１、判定プロセス４２２及び通信プロセス４２３として機能するようになる。尚、各プログラム４１１〜４１３は、必ずしもハードディスク装置４０７に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムを、コンピュータ４００が読み出して実行しても良い。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等で接続した他のコンピュータに各プログラム４１１〜４１３を記憶しておき、コンピュータ４００が各プログラム４１１〜４１３を読み出して実行しても良い。
【０１６７】
ＣＰＵ４０１は、接続先装置との間でセッションを確立する。更に、ＣＰＵ４０１は、確立済みのセッションであって、接続元装置によって発行されたコマンドに対して空きセッションがあるか否かを判定する。ＣＰＵ４０１は、接続元装置からコマンドを検出した際に、空きセッションがあると判定された場合には、当該空きセッションを用いて接続先装置との間で当該検出されたコマンドを通信する。更に、ＣＰＵ４０１は、確立済みのセッションを継続して維持できる、接続先装置が有する所定時間内に、継続メッセージを接続先装置に当該セッションを用いて送信する。その結果、ＣＰＵ４０１は、接続先装置との間で確立済みの空きセッションを他のアプリからのコマンドのデータ送信及びデータ送信応答に使い回すことで、新規セッション確立の処理を省略して、その処理負担を軽減できる。
【０１６８】
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
【０１６９】
（付記１)接続先装置との間でセッションを確立する確立部と、
前記確立部によって確立済みのセッションであって、接続元装置によって発行されたコマンドに対して空きセッションがあるか否かを判定する判定部と、
前記接続元装置から前記コマンドを検出した際に、前記判定部によって空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信する通信部と
を有することを特徴とする通信装置。
【０１７０】
（付記２）前記通信部は、
前記接続元装置から前記コマンドを検出した際に、前記判定部によって空きセッションがないと判定された場合には、前記確立部によって新たに確立されたセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信することを特徴とする付記１に記載の通信装置。
【０１７１】
（付記３）前記接続先装置から前記コマンドに対して応答済みのデータ送信応答を検出すると、当該データ送信応答の通信に使用した当該確立済みのセッションの使用状態を空き状態として、当該確立済みのセッションの使用状態を管理する管理部に登録する登録部をさらに有し、
前記判定部は、
前記管理部に登録された前記確立済みのセッションの使用状態に基づき、前記空きセッションがあるか否かを判定することを特徴とする付記１又は２に記載の通信装置。
【０１７２】
（付記４）前記接続先装置とセッション確立可能なセッション上限数と、当該接続先装置とセッション確立可能に接続した装置の接続台数とを収集し、収集された前記セッション上限数及び前記接続台数に基づき、当該通信装置自体がセッション確立を許可できるセッション許可数を算出する算出部をさらに有し、
前記確立部は、
前記算出部にて算出された前記セッション許可数の範囲内で前記セッションを確立することを特徴とする付記１〜３の何れか一つに記載の通信装置。
【０１７３】
（付記５）前記接続先装置と接続するセッション確立可能な他の通信装置からの貸与要求を検出すると、前記算出部にて算出された当該通信装置自体の前記セッション許可数の範囲内で未確立のセッションがある場合、当該未確立のセッションを、前記貸与要求を発行した前記他の通信装置に貸与する貸与部と、
他の通信装置から前記未確立のセッションの貸与を検出すると、貸与された未確立のセッション数に応じて当該通信装置自体の前記セッション許可数を決定する決定部と
をさらに有することを特徴とする付記４に記載の通信装置。
【０１７４】
（付記６）前記接続先装置から前記コマンドのデータ送信に対する応答結果を受信すると、当該コマンドのデータ送信の内容に対応付けて前記応答結果を記憶する記憶部と、
前記コマンドを発行する接続元装置から前記コマンドのデータ送信を受信すると、当該コマンドのデータ送信の内容に対応した前記応答結果が前記記憶部内にある場合に、当該コマンドのデータ送信の内容に対応した前記応答結果を前記記憶部から読み出して前記接続元装置に返信する返信部と
をさらに有することを特徴とする付記１〜５の何れか一つに記載の通信装置。
【０１７５】
（付記７）接続先装置に対するコマンドを当該接続先装置との間で通信する通信装置の通信方法であって、
前記通信装置は、
前記接続先装置との間でセッションを確立し、
前記接続先装置との間で確立済みのセッションであって、接続元装置によって発行された前記コマンドに対して空きセッションがあるか否かを判定し、
前記接続元装置から前記コマンドを検出した際に、前記空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信する
ことを特徴とする通信方法。
【０１７６】
（付記８）接続先装置に対するコマンドを当該接続先装置との間で通信するコンピュータの通信プログラムであって、
前記接続先装置との間でセッションを確立し、
前記接続先装置との間で確立済みのセッションであって、接続元装置によって発行された前記コマンドに対して空きセッションがあるか否かを判定し、
前記接続元装置から前記コマンドを検出した際に、前記空きセッションがあると判定された場合には、当該空きセッションを用いて前記接続先装置との間で当該検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを前記接続先装置に当該セッションを用いて送信する
各処理をコンピュータに実行させることを特徴とする通信プログラム。
【０１７７】
（付記９）接続元装置と、当該接続元装置のアプリによって発行されたコマンドを実行する接続先装置と、前記接続元装置と前記接続先装置との間で前記コマンドを通信する中継装置と有する通信システムであって、
前記接続元装置は、
前記アプリからの前記コマンドを発行すると、当該コマンドの宛先に基づき、前記中継装置との間で確立済みのセッションであって、他のアプリからのコマンドに対して空きセッションがあるか否かを判定する判定部と、
前記中継装置との間で前記空きセッションがあると判定された場合に、当該空きセッションを用いて前記中継装置との間で前記発行されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記接続先装置が有する所定時間内に、継続メッセージを当該中継装置に当該セッションを用いて送信する通信部と
を有し、
前記中継装置は、
前記接続元装置との間で確立済みのセッションを使用してコマンドを検出すると、当該コマンドの宛先に基づき、前記接続先装置との間で確立済みのセッションであって、他のアプリからのコマンドに対して空きセッションがあるか否かを判定する判定部と、
前記接続先装置との間で前記空きセッションがあると判定された場合に、当該空きセッションを用いて前記接続先装置との間で前記検出されたコマンドを通信すると共に、確立済みのセッションを継続して維持できる、前記所定時間内に、継続メッセージを当該接続先装置に当該セッションを用いて送信する通信部と
を有することを特徴とする通信システム。
【符号の説明】
【０１７８】
１  中継システム
１０  接続元端末
１５  エージェント
２０  中継サーバ
２５  マネージャ
３０  ルータ
５１  検出部
５２  分析部
５３  判定部
５４  通信部
５５  継続部
６１  通信部
６２  中継部
６２Ａ  確立部
６３  分析部
６４  判定部
６５  管理テーブル
６６  登録部
６７  決定部
６８  貸与部
７１  キャッシュ
７２  キャッシュ登録部
７３  返信部
【図１】
0005765123.tif 000002
【図２】
0005765123.tif 000003
【図３】
0005765123.tif 000004
【図４】
0005765123.tif 000005
【図５】
0005765123.tif 000006
【図６】
0005765123.tif 000007
【図７】
0005765123.tif 000008
【図８】
0005765123.tif 000009
【図９】
0005765123.tif 000010
【図１０】
0005765123.tif 000011
【図１１】
0005765123.tif 000012
【図１２】
0005765123.tif 000013
【図１３】
0005765123.tif 000014
【図１４】
0005765123.tif 000015
【図１５】
0005765123.tif 000016
【図１６】
0005765123.tif 000017
【図１７】
0005765123.tif 000018
【図１８】
0005765123.tif 000019
【図１９】
0005765123.tif 000020