(57)【要約】      （修正有）【課題】システムの信頼性を向上させる情報処理装置を提供する。【解決手段】待機系サーバ１は、冗長化制御部１１、プロトコル制御部１２及び通信処理部１３を有し、プロトコル制御部１２は、コネクション管理部１１１、送信順序決定部１１２、ダミーパケット送信制御部１１３及びダミーパケット受信制御部１１４を有する。送信順序決定部は、ネットワークの情報を基に複数のクライアント３０と運用系サーバ２との間の各コネクションの優先度を決定する。ダミーパケット送信制御部は、運用系サーバに障害が発生し処理が待機系サーバに移行された場合に、優先度にしたがいコネクション毎に送信間隔を空けてダミーパケットを送信する。ダミーパケット受信制御部は、パケットの応答を基に各コネクションが使用可能か否かを判定する。通信処理部１３は、通信が使用可能と判定されたコネクションを用いて、運用系サーバが行っていたクライアントとの通信を継続する。【選択図】図２
2018028787.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの情報を基に運用系情報処理装置に接続する複数の通信先装置と前記運用系情報処理装置との間の各コネクションの優先度を決定する優先度決定部と、
前記運用系情報処理装置の障害発生時に、前記運用系情報処理装置が実行する処理を自装置へ移行する冗長化制御部と、
前記冗長化制御部により前記処理が自装置に移行された場合に、前記優先度にしたがい前記コネクション毎に送信間隔を空けて所定数のダミーパケットを送信する送信部と、
前記送信部により送信された前記ダミーパケットの応答を基に、各前記コネクションが使用可能か否かを判定する受信部と、
前記受信部により前記通信が使用可能と判定された前記コネクションを用いて、前記運用系情報処理装置が行っていた前記通信先装置との通信を継続する通信部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記優先度決定部は、接続時間の長い順に前記優先度が高くなるように前記コネクションの優先度を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記優先度決定部は、通信経路の短い順に前記優先度が高くなるように前記コネクションの優先度を決定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記優先度決定部は、同一の前記通信先装置に対して連続して前記ダミーパケットが送られないように前記コネクションの優先度を決定することを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
運用系情報処理装置、待機系情報処理装置及び複数の通信先装置を有する情報処理システムであって、
前記運用系情報処理装置は、
複数の前記通信先装置と通信を行う第１通信部と、
前記第１通信部による通信における複数の前記通信先装置のネットワーク情報を取得し、前記待機系情報処理装置へ通知する通知部と、
前記運用系情報処理装置で障害が発生した場合に、前記運用系情報処理装置が実行する処理を前記待機系情報処理装置へ移行する第１冗長化制御部とを備え、
前記待機系情報処理装置は、
前記通知部により通知された前記ネットワークの情報を基に、複数の前記通信先装置と前記運用系情報処理装置との間の各コネクションの優先度を決定する優先度決定部と、
前記運用系情報処理装置の障害発生時に、前記第１冗長化制御部とともに前記処理を前記待機系情報処理装置へ移行させる第２冗長化制御部と、
前記処理が前記待機系情報処理装置へ移行された場合、前記優先度にしたがい前記コネクション毎に送信間隔を空けて所定数のダミーパケットを送信する送信部と、
前記送信部により送信された前記ダミーパケットの応答を基に、各前記コネクションが使用可能か否かを判定する受信部と、
前記受信部により使用可能と判定された前記コネクションを用いて、前記運用系情報処理装置が行っていた前記通信先装置との通信を継続する第２通信部と
を備えたことを特徴とする情報処理システム。
【請求項６】
ネットワークの情報を基に運用系情報処理装置に接続する複数の通信先装置と前記運用系情報処理装置との間の各コネクションの優先度を、待機系情報処理装置に決定させ、
前記運用系情報処理装置の障害発生時に、前記運用系情報処理装置が実行する処理を前記待機系情報処理装置へ移行し、
前記処理の前記待機系情報処理装置への移行が実行された場合に、前記待機系情報処理装置に、前記優先度にしたがい前記コネクション毎に送信間隔を空けて所定数のダミーパケットを送信させ、
前記待機系情報処理装置に、前記ダミーパケットに対する応答を基に、各前記コネクションが使用可能か否かを判定させ、
前記待機系情報処理装置に、使用可能と判定された前記コネクションを用いて、前記運用系情報処理装置が行っていた通信を継続させる
ことを特徴とする情報処理方法。
【請求項７】
ネットワークの情報を基に運用系情報処理装置に接続する複数の通信先装置と前記運用系情報処理装置との間の各コネクションの優先度を、待機系情報処理装置に決定させ、
前記運用系情報処理装置の障害発生時に、前記運用系情報処理装置が実行する処理を前記待機系情報処理装置へ移行し、
前記処理が前記待機系情報処理装置へ移行された場合に、前記待機系情報処理装置に、前記優先度にしたがい前記コネクション毎に送信間隔を空けて所定数のダミーパケットを送信させ、
前記待機系情報処理装置に、前記ダミーパケットに対する応答を基に、各前記コネクションが使用可能か否かを判定させ、
前記待機系情報処理装置に、使用可能と判定された前記コネクションを用いて、前記運用系情報処理装置が行っていた通信を継続させる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
クライアントとサーバとの間でＴＣＰ（Transmission  Control  Protocol）／ＩＰ（Internet  Protocol）を使用した通信を行う場合に、サーバを冗長化する技術が広く普及している。例えば、障害などが発生した場合にサーバをフェイルオーバさせることによって、システムの連続運用性を向上させている。
【０００３】
フェイルオーバでは、例えば、運用系サーバと待機系サーバとを配置しておき、運用系サーバで障害が発生した場合に、待機系サーバを運用系サーバに置き換えクライアントに対してサービスを提供することが行われる。このようなフェイルオーバ発生時に、新たに運用系サーバとなった装置から接続先のクライアントに対して、ＴＣＰコネクションの継続可否を確認するためのダミーパケットが送信される場合がある。
【０００４】
このようにダミーパケットを用いたＴＣＰコネクションの継続可否の確認を行うシステムでは、待機系サーバが運用系サーバに置き換わったタイミングでネットワーク上にＴＣＰコネクション数分のダミーパケットが一斉に送信される。ＴＣＰコネクション数が例えば１００未満などのように少ない場合には、ダミーパケットを送信してＴＣＰコネクションの継続可否を判定しても、深刻な問題は起こらない。
【０００５】
なお、フェイルオーバ時のコネクションのリカバリ技術として、現用系から待機系へ通信接続情報を転送しておき、フェイルオーバ発生時に新たな現用系からクライアントに対してダミーデータを送信して接続可否を確認する従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−４５７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＴＣＰコネクション数が数千オーダなど多い場合、クライアントへのダミーパケットやクライアントからのダミーパケットに対する応答がネットワーク上でロストされてしまうおそれがある。ダミーパケットやその応答がロストされた場合、その運用系サーバとなった装置は、正しくＴＣＰコネクションの継続可否を確認することが困難となる。そのため、ＴＣＰコネクションの継続率が低下してしまい、システムの信頼性が低下する。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、システムの信頼性を向上させる情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの一つの態様において、優先度決定部は、ネットワークの情報を基に運用系情報処理装置に接続する複数の通信先装置と前記運用系情報処理装置との間の各コネクションの優先度を決定する。冗長化制御部は、前記運用系情報処理装置の障害発生時に、前記運用系情報処理装置が実行する処理を自装置へ移行する。送信部は、前記冗長化制御部により前記処理が自装置に移行された場合に、前記優先度にしたがい前記コネクション毎に送信間隔を空けて所定数のダミーパケットを送信する。受信部は、前記送信部により送信された前記ダミーパケットの応答を基に、各前記コネクションが使用可能か否かを判定する。通信部は、前記受信部により前記通信が使用可能と判定された前記コネクションを用いて、前記運用系情報処理装置が行っていた前記通信先装置との通信を継続する。
【発明の効果】
【００１０】
本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの一つの態様によれば、システムの信頼性を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、情報処理システムの概略構成図である。
【図２】図２は、運用系サーバ及び待機系サーバのブロック図である。
【図３】図３は、確立時引継データのフォーマットを表す図である。
【図４】図４は、更新時引継データのフォーマットを表す図である。
【図５】図５は、解放時引継データのフォーマットを表す図である。
【図６】図６は、コネクション管理テーブルの一例の図である。
【図７】図７は、コネクション確立時刻を用いた送信順序の決定について説明するための図である。
【図８】図８は、ＲＴＴ値を用いた送信順序の決定について説明するための図である。
【図９】図９は、ダミーパケットの送受信を説明するための図である。
【図１０】図１０は、運用系サーバによるコネクション情報の引継処理のフローチャートである。
【図１１】図１１は、コネクション管理テーブルの作成処理のフローチャートである。
【図１２】図１２は、送信順序の決定処理のフローチャートである。
【図１３】図１３は、障害発生時のフェイルオーバ処理のフローチャートである。
【図１４】図１４は、ダミーパケットの送受信処理のフローチャートである。
【図１５】図１５は、ラウンドロビンを用いた送信順序の決定について説明するための図である。
【図１６】図１６は、実施例２に係る送信順序の決定処理のフローチャートである。
【図１７】図１７は、待機系サーバ及び運用系サーバのハードウェア構成図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムが限定されるものではない。
【実施例１】
【００１３】
図１は、情報処理システムの概略構成図である。情報処理システム１００は、冗長化されている。情報処理システム１００は、サーバ１、サーバ２及びクライアント３１〜３３を有する。サーバ１及びクライアント３１〜３３は、互いにネットワークで接続されている。また、サーバ２及びクライアント３１〜３３は、互いにネットワークで接続されている。さらに、サーバ１及びサーバ２もネットワークで接続されている。以下では、クライアント３１〜３３を区別しない場合、「クライアント３０」という。このクライアント３０が、「通信先装置」の一例にあたる。
【００１４】
サーバ２は、運用系情報処理装置（運用系サーバ）である。サーバ２は、故障が発生していない状態であれば、クライアント３０と通信を行いサービスを提供する。サーバ２とクライアント３０との間には、様々なサービスを提供するための通信に用いるコネクションが張られる。例えば、サーバ２は、クライアント３１との間で特定のサービスで用いる通信のためのコネクションを張り、そのコネクションを用いてクライアント３１と通信を行うことで、特定のサービスを提供する。各クライアント３０に張られるコネクションの数は提供するサービスの数や内容に応じて決定され、各クライアント３０に対して１又は複数のコネクションが張られる。このコネクションとして、以下では、ＴＣＰコネクションを例に説明する。
【００１５】
サーバ１は、待機系情報処理装置（待機系サーバ）である。サーバ２が故障した場合、フェイルセーフが実行され、サーバ２が実行していた処理がサーバ１に移行され、サーバ１は、サーバ２が実行していた処理をサーバ２に代わって実行する。
【００１６】
さらに、フェイルセーフ時には、サーバ２と各クライアント３０との間のコネクションもサーバ２に移行させる。そして、サーバ１は、移行された各コネクションが使用可能か否かを判定する。その後、サーバ１は、使用可能と判定したＴＣＰコネクションを継続して通信に使用する。また、使用不能なコネクションについては、サーバ１は、コネクションを解放し、そのコネクションの再確立を行い通信を再開する。
【００１７】
次に、図２を参照してサーバ１における、コネクションの使用可能判定について詳細に説明する。図２は、運用系サーバ及び待機系サーバのブロック図である。
【００１８】
運用系サーバであるサーバ２は、図２に示すように、冗長化制御部２１、プロトコル制御部２２及び通信処理部２３を有する。
【００１９】
通信処理部２３は、クライアント３０との間でコネクションを確立する。そして、通信処理部２３は、確立したコネクションを用いてクライアント３０と通信を行う。また、通信処理部２３は、あるコネクションを通信に用いなくなった場合、そのコネクションの解放を行う。
【００２０】
プロトコル制御部２２は、通信処理部２３によるコネクション確立後、確立したコネクションに関するクライアント３０との通信速度に関する情報であるＲＴＴ（Round  Trip  Time）値及びコネクション確立時刻をＯＳ（Operating  System）から取得する。ここで、あるコネクションについてＲＴＴ値を取得し損ねた場合、プロトコル制御部２２は、そのコネクションのＲＴＴ値を「０」とする。
【００２１】
そして、プロトコル制御部２２は、取得したＲＴＴ値及びコネクション確立時刻を含むコネクション情報を冗長化制御部２１へ出力し、コネクション情報のサーバ１への引き継ぎを冗長化制御部２１に依頼する。このコネクション情報には、他にも、例えば、コネクション識別子、自装置ＩＰアドレス、自装置ポート番号、相手装置ＩＰアドレス、相手装置ポート番号及び相手装置ポート番号が含まれる。
【００２２】
さらに、プロトコル制御部２２は、通信処理部２３によりあるコネクションを用いてデータの送受信が行われた場合、そのデータの送受信においてＯＳで生成された送信シーケンス番号及び受信シーケンス番号を取得する。以下では、送信シーケンス番号及び受信シーケンス番号をまとめて、「送受信シーケンス番号」という。プロトコル制御部２２は、データの送受信に用いられたコネクションの識別子及び送受信シーケンス番号を冗長化制御部２１へ出力し、それらの情報のサーバ１への引き継ぎを冗長化制御部２１に依頼する。
【００２３】
さらに、プロトコル制御部２２は、通信処理部２３によりあるコネクションが解放された場合、そのコネクションの識別子を冗長化制御部２１へ出力し、そのコネクションの解放のサーバ１への引き継ぎを冗長化制御部２１に依頼する。
【００２４】
冗長化制御部２１は、サーバ２に障害が発生していない状態で、確立されたコネクションの識別情報とともに、そのコネクションのＲＴＴ値及びコネクション確立時刻をプロトコル制御部２２から受信する。次に、冗長化制御部２１は、コネクションの追加を表す要求識別子、すなわち「ＡＤＤ」という値を有する要求識別子を生成する。その後、冗長化制御部２１は、コネクションの追加を表す要求識別子をコネクション情報に付加して、図３に示すフォーマットを有する確立時引継データ１３１を生成する。図３は、確立時引継データのフォーマットを表す図である。そして、冗長化制御部２１は、確立時引継データ１３１を冗長化制御部１１へ送信する。
【００２５】
また、冗長化制御部２１は、データの送受信に用いられたコネクションの識別子及び送受信シーケンス番号をサーバ２への引き継ぎ依頼とともにプロトコル制御部２２から受信する。次に、冗長化制御部２１は、データの更新を表す要求識別子、すなわち「ＭＯＤ（Modify）」という値を有する要求識別子を生成する。その後、冗長化制御部２１は、データの更新を表す要求識別子をコネクション情報及び送受信シーケンス番号に付加して、図４に示すフォーマットを有する更新時引継データ１３２を生成する。図４は、更新時引継データのフォーマットを表す図である。そして、冗長化制御部２１は、更新時引継データ１３２を冗長化制御部１１へ送信する。
【００２６】
また、冗長化制御部２１は、解放されたコネクションの識別子をサーバ２への引き継ぎ依頼とともにプロトコル制御部２２から受信する。次に、冗長化制御部２１は、コネクションの解放を表す要求識別子、すなわち「ＤＥＬ（Delete）」という値を有する要求識別子を生成する。その後、冗長化制御部２１は、コネクションの解放を表す要求識別子をコネクション識別子に付加して、図５に示すフォーマットを有する解放時引継データ１３３を生成する。図５は、解放時引継データのフォーマットを表す図である。そして、冗長化制御部２１は、解放時引継データ１３３を冗長化制御部１１へ送信する。
【００２７】
また、サーバ２に障害が発生すると、冗長化制御部２１は、装置の切り替え指示をサーバ１の冗長化制御部１１に通知する。そして、冗長化制御部２１は、自装置で実行中の各処理で使用中のデータをサーバ１へ移行する。
【００２８】
待機系サーバであるサーバ１は、図２に示すように、冗長化制御部１１、プロトコル制御部１２及び通信処理部１３を有する。
【００２９】
冗長化制御部１１は、サーバ２に障害が発生していない状態で、サーバ２とクライアント３０との間でコネクションが確立されると、確立時引継データ１３１をサーバ２の冗長化制御部２１から受信する。そして、冗長化制御部１１は、確立時引継データ１３１をプロトコル制御部１２へ出力する。
【００３０】
また、冗長化制御部１１は、サーバ２に障害が発生していない状態で、サーバ２とクライアント３０との間でデータの送受信が行われると、更新時引継データ１３２をサーバ２の冗長化制御部２１から受信する。そして、冗長化制御部１１は、更新時引継データ１３２をプロトコル制御部１２へ出力する。
【００３１】
また、冗長化制御部１１は、サーバ２に障害が発生していない状態で、サーバ２とクライアント３０との間のコネクションが解放されると、解放時引継データ１３３をサーバ２の冗長化制御部２１から受信する。そして、冗長化制御部１１は、解放時引継データ１３３をプロトコル制御部１２へ出力する。
【００３２】
さらに、サーバ２に障害が発生すると、冗長化制御部１１は、装置の切り替え指示の通知をサーバ２の冗長化制御部２１から受信する。そして、冗長化制御部１１は、各処理をアクティブ化する。また、各処理のアクティブ化後、冗長化制御部１１は、フェイルオーバ発生をプロトコル制御部１２のダミーパケット送信制御部１１３へ通知する。さらに、冗長化制御部１１は、サーバ２で実行されていた各処理で使用されていたデータを受信し、各処理の実行を開始する。
【００３３】
プロトコル制御部１２は、コネクション管理部１１１、送信順序決定部１１２、ダミーパケット送信制御部１１３及びダミーパケット受信制御部１１４を有する。
【００３４】
コネクション管理部１１１は、サーバ２に障害が発生していない状態で、サーバ２とクライアント３０との間でコネクションが確立された場合、確立時引継データ１３１の入力を冗長化制御部１１から受ける。次に、コネクション管理部１１１は、取得した確立時引継データ１３１からコネクション情報を取得する。そして、コネクション管理部１１１は、コネクション単位で図６に示すコネクション管理テーブル１３０を生成する。図６は、コネクション管理テーブルの一例の図である。
【００３５】
図６に示すように、コネクション管理テーブル１３０は、コネクション識別子、自装置ＩＰアドレス、自装置ポート番号、相手装置ＩＰアドレス、相手装置ポート番号、送信シーケンス番号及び受信シーケンス番号が登録される。さらに、コネクション管理テーブル１３０は、コネクション確立時刻及びＲＴＴ値が登録される。
【００３６】
また、コネクション管理部１１１は、サーバ２に障害が発生していない状態で、サーバ２とクライアント３０との間でデータの送受信が行われると、更新時引継データ１３２の入力を冗長化制御部１１から受ける。そして、コネクション管理部１１１は、データの送受信に用いられたコネクションのコネクション識別子及び送受信シーケンス番号を更新時引継データ１３２から取得する。そして、コネクション管理部１１１は、コネクション識別子を用いてコネクション管理テーブル１３０を検索し、送信シーケンス番号及び受信シーケンス番号を更新する。
【００３７】
また、コネクション管理部１１１は、サーバ２に障害が発生していない状態で、サーバ２とクライアント３０との間のコネクションの解放が行われると、解放時引継データ１３３の入力を冗長化制御部１１から受ける。そして、コネクション管理部１１１は、解放されたコネクションのコネクション識別子を解放時引継データ１３３から取得する。そして、コネクション管理部１１１は、コネクション識別子を用いてコネクション管理テーブル１３０を検索し、そのコネクション管理テーブル１３０を削除する。
【００３８】
送信順序決定部１１２は、常時接続判断時間を予め有する。本実施例では、送信順序決定部１１２は、１０分の常時接続判断時間を有する。そして、送信順序決定部１１２は、コネクション管理テーブル１３０から、各コネクションのコネクション確立時刻を取得する。次に、送信順序決定部１１２は、コネクション確立時刻から現在時刻までの時間が常時接続判断時間以上であるコネクションを常時接続コネクションとして特定する。そして、送信順序決定部１１２は、全てのコネクションについてコネクション確立時刻の早いもの順になるように仮の送信順序を決定する。
【００３９】
図７は、コネクション確立時刻を用いた送信順序の決定について説明するための図である。例えば、図７に示すコネクションＣ１〜Ｃ４が存在する場合について説明する。図７におけるコネクションＣ１〜Ｃ４のそれぞれの端部に記載された日時は、それぞれのコネクション確立時刻を表す。送信順序決定部１１２は、コネクションＣ１〜Ｃ４のコネクション確立時刻から、コネクション確立時刻が早い順にコネクションＣ１〜Ｃ４の送信順序を決定する。すなわち、図７の場合、コネクションＣ１，Ｃ２、Ｃ３，Ｃ４の順となるように送信順序を決定する。このように送信順序を決定することで、サーバ１は、より長い時間継続して確立されているコネクションに対して優先的にダミーパケットを送信することができる。コネクションは、接続時間が長いほど使用頻度が高いと考えられ、重要度が高いといえる。そのため、接続時間が長いコネクションに対して早期にコネクションの継続の判定を行うことで、サーバ１は、重要度の高いコネクションを迅速に再開することができる。コネクション確立時刻による送信順序の決定が、「接続時間」による優先度の決定の一例にあたる。
【００４０】
さらに、送信順序決定部１１２は、決定した仮の送信順序のなかで、常時接続コネクション以外の各コネクションについて隣合うコネクションに対してＲＴＴ値が小さい順になるように順位を移動することを繰り返す。ただし、ＲＴＴ値が「０」のコネクションについては、仮の送信順以上に送信順序が早くなるようには動かさない。送信順序決定部１１２は、常時接続コネクション以外の各コネクションの順位が決定した状態を送信順序として決定する。このコネクションの送信順序が、「優先度」の一例にあたる。また、この送信順序決定部１１２が、「優先度決定部」の一例にあたる。
【００４１】
図８は、ＲＴＴ値を用いた送信順序の決定について説明するための図である。例えば、図８に示すクライアント３１〜３６とサーバ１との間でコネクションＣ１１〜Ｃ１３及びＣ２１〜Ｃ２３が存在する場合について説明する。送信順序決定部１１２は、コネクションＣ１１〜Ｃ１３のＲＴＴ値が短い順にダミーパケットが送信されるように送信順序を決定する。ＲＴＴ値の長短は、ネットワーク経路の長短に対応する。例えば、図８の場合、コネクションＣ１１〜Ｃ１３は、ネットワーク４１を介してクライアント３１〜３３とサーバ１とを接続する。これに対して、コネクションＣ２１〜Ｃ２３は、ネットワーク４１に加えてネットワーク４２を介してクライアント３１〜３３とサーバ１とを接続する。すなわち、コネクションＣ１１〜Ｃ１３の距離は、コネクションＣ２１〜Ｃ２３の距離より短い。そのため、コネクションＣ１１〜Ｃ１３のＲＴＴ値は、コネクションＣ２１〜Ｃ２３のＲＴＴ値より短くなる。そこで、図８のような場合、送信順序決定部１１２は、コネクションＣ１１〜Ｃ１３に対して、コネクションＣ２１〜Ｃ２３よりも優先的にダミーパケットが送信されるように送信順序を決定する。
【００４２】
このように送信順序を決定することで、サーバ１は、よりネットワーク経路が短いコネクションに対して優先的にダミーパケットを送信することができる。コネクションの経路長が短いほどＲＴＴ値が短く、より短時間でダミーパケットに対する応答が返ってくる。そのため、サーバ１は、より早く通信を再開できるコネクションから迅速に通信を再開することができる。ここで、本実施例では、ＲＴＴ値を用いて各コネクションのネットワーク経路の長さを判定し、その判定結果を用いて送信順序を決定したが、他の方法でネットワークの長さの判定を行ってもよい。例えば、送信順序決定部１１２は、各コネクションが接続するクライアント３０の位置情報を用いて、それぞれのコネクションの長さを判定してもよい。ＲＴＴ値による送信順序の決定が、「通信経路」による優先度の決定の一例にあたる。
【００４３】
ダミーパケット送信制御部１１３は、１回のダミーパケットの連続送信数及びダミーパケット送信の待機時間を含むダミーパケット送信量定義情報を予め有する。本実施例では、ダミーパケット送信制御部１１３は、１回のダミーパケットの連続送信数を１０個と記憶する。また、ダミーパケット送信制御部１１３は、ダミーパケット送信の待機時間を１０ｍｓと記憶する。このダミーパケットの連続送信数が、「所定数」の一例にあたる。また、ダミーパケット送信の待機時間が、「送信間隔」の一例にあたる。
【００４４】
ダミーパケット送信制御部１１３は、フェイルオーバ発生の通知を冗長化制御部１１から受ける。次に、ダミーパケット送信制御部１１３は、ダミーパケットを送信するコネクションの送信順序を送信順序決定部１１２から取得する。そして、ダミーパケット送信制御部１１３は、取得した送信順序にしたがって、１回のダミーパケットの連続送信数である１０個のコネクションを選択し、選択したコネクションを介してクライアント３０へダミーパケットを１０個送信する。ここで、図２では、クライアント３０を一台記載したが、実際には複数台あり、ダミーパケット送信制御部１１３は、選択したコネクションの接続先が異なるクライアント３０の場合、異なるクライアント３０へダミーパケットを送信する。
【００４５】
ダミーパケット送信制御部１１３は、ダミーパケットに対する応答が返ってきたか否かを管理するための応答待ちテーブルを予め有する。そして、ダミーパケット送信制御部１１３は、ダミーパケットを送信したコネクションのエントリを応答待ちテーブルに作成する。
【００４６】
１０個のダミーパケットを送信した後、ダミーパケット送信制御部１１３は、ダミーパケットの送信を待機する。そして、ダミーパケット送信制御部１１３は、ダミーパケット送信の待機開始後、自己が有する送信間隔タイマを用いて、ダミーパケット送信の待機時間である１０ｍｓが経過したか否かを判定する。
【００４７】
ダミーパケット送信の待機時間が経過していない場合、ダミーパケット送信制御部１１３は、待機解除の通知をダミーパケット受信制御部１１４から受信したか否かを判定する。待機解除の通知をダミーパケット受信制御部１１４から受信した場合、ダミーパケット送信制御部１１３は、ダミーパケット送信の待機を解除し、ダミーパケット送信を再開する。その後、ダミーパケット送信制御部１１３は、１０個のダミーパケットの送信と待機とを繰り返す。
【００４８】
また、待機解除の通知を受信する前にダミーパケット送信の待機時間が経過した場合、ダミーパケット送信制御部１１３は、ダミーパケットの送信を再開する。その後、ダミーパケット送信制御部１１３は、１０個のダミーパケットの送信と待機とを繰り返す。このダミーパケット送信制御部１１３が、「送信部」の一例にあたる。
【００４９】
ダミーパケット受信制御部１１４は、ダミーパケット送信制御部１１３により送信されたダミーパケットに対する応答であるダミーパケット応答をクライアント３０から受信する。そして、ダミーパケット受信制御部１１４は、ダミーパケット送信制御部１１３が連続して送信した１０個のダミーパケットに対するダミーパケット応答を受信すると、待機解除をダミーパケット送信制御部１１３へ通知する。
【００５０】
ここで、本実施例では、ダミーパケット受信制御部１１４は、ダミーパケット応答を受信すると、ダミーパケット送信制御部１１３が作成した応答待ちテーブルの中のそのダミーパケット応答に対応するエントリに、応答受信のフラグを設定する。そして、ダミーパケット受信制御部１１４は、連続して送信された１０個のダミーパケットに対応するダミーパケット応答を受信した場合、待機解除の通知をダミーパケット送信制御部１１３へ送信する。
【００５１】
また、ダミーパケット受信制御部１１４は、ダミーパケット応答を受信したコネクションの情報を通信処理部１３へ送信する。さらに、ダミーパケット受信制御部１１４は、ダミーパケット送信制御部１１３がダミーパケットを送信してから、そのダミーパケットに対するダミーパケット応答を受信するまでタイムアウト時間が経過したか否かを判定する。タイムアウト時間が経過した場合、ダミーパケット受信制御部１１４は、コネクション使用不可の通知を通信処理部１３へ送信する。このダミーパケット受信制御部１１４が、「受信部」の一例にあたる。
【００５２】
ここで、図９を用いてダミーパケットの送受信についてまとめて説明する。図９は、ダミーパケットの送受信を説明するための図である。ダミーパケット送信制御部１１３は、送信順序にしたがい１０個のダミーパケットをクライアント３０へ送信する（ステップＳ１）。次に、ダミーパケット送信制御部１１３は、１０ｍｓのダミーパケット送信の待機に入る（ステップＳ２）。
【００５３】
これに対して、ダミーパケット受信制御部１１４は、ステップＳ１で送信されたダミーパケットに対するダミーパケット応答を受信する（ステップＳ３）。そして、ダミーパケット受信制御部１１４は、ステップＳ１で送信されたダミーパケットに対応する１０個のダミーパケット応答を受信すると、待機解除をダミーパケット送信制御部１１３へ通知する（ステップＳ４）。
【００５４】
ダミーパケット送信制御部１１３は、待機時間の１０ｍｓが経過する前に待機解除の通知を受けた場合、又は、待機時間の１０ｍｓが経過した場合、ダミーパケットの送信を再開する（ステップＳ５）。ダミーパケット送信制御部１１３及びダミーパケット受信制御部１１４は、全てのコネクションの使用の可否の判定が終了するまで、ステップＳ１〜Ｓ５の処理を繰り返す。
【００５５】
通信処理部１３は、サーバ２における障害発生後、サーバ２がクライアント３０との間で張っていたコネクションに対するダミーパケット応答を受信したか、又は、そのコネクションが使用不可かの通知をダミーパケット受信制御部１１４から受信する。コネクションが使用不可の場合、通信処理部１３は、ソケットを解放してコネクションを解放し、その後クライアント３０との間でコネクションの再確立を行う。その後、通信処理部１３は、再確立したコネクションを用いてクライアント３０と通信を行う。
【００５６】
これに対して、ダミーパケット応答を受信した場合、通信処理部１３は、そのコネクションを用いたデータの送受信処理をクライアント３０との間で再開する。
【００５７】
次に、図１０を参照して、サーバ２によるコネクション情報の引継処理の流れについて説明する。図１０は、運用系サーバによるコネクション情報の引継処理のフローチャートである。
【００５８】
プロトコル制御部２２は、通信処理部２３によるコネクションの確立が行われたか否かを判定する（ステップＳ１１）。コネクション確立が行われた場合（ステップＳ１１：肯定）、プロトコル制御部２２は、確立されたコネクションのＲＴＴ値の取得を実行する（ステップＳ１２）。
【００５９】
そして、プロトコル制御部２２は、ＲＴＴ値が取得できたか否かを判定する（ステップＳ１３）。ＲＴＴ値が取得できた場合（ステップＳ１３：肯定）、プロトコル制御部２２は、ステップＳ１５へ進む。
【００６０】
これに対して、ＲＴＴ値が取得できていない場合（ステップＳ１３：否定）、プロトコル制御部２２は、確立されたコネクションのＲＴＴ値を０とする（ステップＳ１４）。
【００６１】
次に、プロトコル制御部２２は、コネクション確立時刻を取得する（ステップＳ１５）。
【００６２】
次に、プロトコル制御部２２は、ＩＰアドレスやポート番号といったコネクション情報を収集する（ステップＳ１６）。
【００６３】
そして、プロトコル制御部２２は、コネクション情報の引き継ぎを冗長化制御部２１へ依頼する。冗長化制御部２１は、コネクションの追加を表す要求識別子、すなわちＡＤＤという値を有する要求識別子を生成する。次に、冗長化制御部２１は、生成した要求識別子をコネクション情報に付加して確立時引継データ１３１を生成する。そして、冗長化制御部２１は、確立時引継データ１３１をサーバ１の冗長化制御部１１へ送信し、コネクション情報の引き継ぎを行う（ステップＳ１７）。
【００６４】
一方、コネクションの確立が行われていない場合（ステップＳ１１：否定）、プロトコル制御部２２は、データが通過したか否かを判定する（ステップＳ１８）。データが通過した場合（ステップＳ１８：肯定）、プロトコル制御部２２は、コネクション識別情報及び送受信シーケンス番号の引き継ぎを冗長化制御部２１へ依頼する。冗長化制御部２１は、コネクションの変更を表す要求識別子、すなわちＭＯＤという値を有する要求識別子を生成する。次に、冗長化制御部２１は、生成した要求識別子をコネクション識別情報及び送受信シーケンス番号に付加して更新時引継データ１３２を生成する。そして、冗長化制御部２１は、更新時引継データ１３２をサーバ１の冗長化制御部１１へ送信し、コネクション識別情報及び送受信シーケンス番号の引き継ぎを行う（ステップＳ１９）。
【００６５】
一方、データが通過していない場合（ステップＳ１８：否定）、プロトコル制御部２２は、コネクションが解放された否かを判定する（ステップＳ２０）。コネクションが解放された場合（ステップＳ２０：肯定）、プロトコル制御部２２は、コネクション識別情報の引き継ぎを冗長化制御部２１へ依頼する。冗長化制御部２１は、コネクションの解放を表す要求識別子、すなわちＤＥＬという値を有する要求識別子を生成する。次に、冗長化制御部２１は、生成した要求識別子をコネクション識別情報に付加して解放時引継データ１３３を生成する。そして、冗長化制御部２１は、解放時引継データ１３３をサーバ１の冗長化制御部１１へ送信し、コネクション識別情報の引き継ぎを行う（ステップＳ２１）。
【００６６】
これに対して、コネクションが解放されていない場合（ステップＳ２０：否定）、プロトコル制御部２２は、コネクション情報の引継処理を終了する。
【００６７】
次に、図１１を参照して、コネクション管理テーブル１３０の作成処理の流れを説明する。図１１は、コネクション管理テーブルの作成処理のフローチャートである。
【００６８】
コネクション管理部１１１は、確立時引継データ１３１、更新時引継データ１３２又は解放時引継データ１３３の何れかのパケットを取得する。そして、コネクション管理部１１１は、取得したパケットに含まれる要求識別子がコネクションの追加を表す要求識別子であるＡＤＤか否かを判定する（ステップＳ１０１）。要求識別子がＡＤＤの場合（ステップＳ１０１：肯定）、コネクション管理部１１１は、パケットに含まれるコネクション情報を用いて新たにコネクション管理テーブル１３０を作成する（ステップＳ１０２）。
【００６９】
次に、コネクション管理部１１１は、コネクション確立を通信処理部１３に通知する（ステップＳ１０３）。
【００７０】
これに対して、要求識別子がＡＤＤでない場合（ステップＳ１０１：否定）、コネクション管理部１１１は、要求識別子がコネクションの変更を表す要求識別子であるＭＯＤか否かを判定する（ステップＳ１０４）。要求識別子がＭＯＤの場合（ステップＳ１０４：肯定）、コネクション管理部１１１は、コネクション管理テーブル１３０の送信シーケンス番号及び受信シーケンス番号を更新する（ステップＳ１０５）。
【００７１】
これに対して、要求識別子がＭＯＤでない場合（ステップＳ１０４：否定）、コネクション管理部１１１は、要求識別子がコネクションの解放を表す要求識別子であるＤＥＬであることを確認する（ステップＳ１０６）。
【００７２】
要求識別子がＤＥＬであることを確認すると、コネクション管理部１１１は、パケットの含まれるコネクション識別子を用いてコネクション管理テーブル１３０を検索し、特定したコネクション管理テーブル１３０を削除する（ステップＳ１０７）。
【００７３】
次に、図１２を参照して、送信順序の決定処理の流れについて説明する。図１２は、送信順序の決定処理のフローチャートである。
【００７４】
送信順序決定部１１２は、コネクション管理テーブル１３０を適当順番に並べて、コネクションの順位をつける。次に、送信順序決定部１１２は、１つコネクションを選択し、順位が１つ上のコネクションよりコネクション確立時刻が早いか否かを判定する（ステップＳ２０１）。
【００７５】
順位が１つ上のコネクションよりコネクション確立時刻が早い場合（ステップＳ２０１：肯定）、送信順序決定部１１２は、コネクションの順序を入れ替える（ステップＳ２０２）。その後、送信順序決定部１１２は、ステップＳ２０１へ戻る。
【００７６】
これに対して、順位が１つ上のコネクションよりコネクション確立時刻が遅い又は同じ場合（ステップＳ２０１：否定）、送信順序決定部１１２は、コネクション確立時刻から現在時刻まで１０分以上経過しているか否かを判定する（ステップＳ２０３）。
【００７７】
コネクション確立時刻から現在時刻まで１０分未満の場合（ステップＳ２０３:否定）、送信順序決定部１１２は、ステップＳ２０５へ進む。
【００７８】
これに対して、コネクション確立時刻から現在時刻まで１０分以上経過した場合（ステップＳ２０３：肯定）、送信順序決定部１１２は、選択したコネクションの順序を決定する（ステップＳ２０４）。
【００７９】
次に、送信順序決定部１１２は、全てのコネクション管理テーブル１３０について判定が終了したか否かを判定する（ステップＳ２０５）。判定が終了していないコネクション管理テーブル１３０が残っている場合（ステップＳ２０５：否定）、送信順序決定部１１２は、ステップＳ２０１へ戻る。
【００８０】
これに対して、全てのコネクション管理テーブル１３０について判定が終了した場合（ステップＳ２０５：肯定）、送信順序決定部１１２は、全てのコネクションの順序が決定済みか否かを判定する（ステップＳ２０６）。全てのコネクションの順序が決定された場合（ステップＳ２０６：肯定）、送信順序決定部１１２は、コネクションの送信順序決定処理を終了する。
【００８１】
これに対して、順序が決定されていないコネクションが残っている場合（ステップＳ２０６：否定）、送信順序決定部１１２は、順序が決定されていないコネクションを１つ選択する。そして、送信順序決定部１１２は、選択したコネクションのＲＴＴ値が０か否かを判定する（ステップＳ２０７）。ＲＴＴ値が０の場合（ステップＳ２０７：肯定）、送信順序決定部１１２は、ステップＳ２１１へ進む。
【００８２】
これに対して、ＲＴＴ値が０でない場合（ステップＳ２０７：否定）、送信順序決定部１１２は、順位が１つ上のコネクションのＲＴＴ値より選択したコネクションのＲＴＴ値が小さいか否かを判定する（ステップＳ２０８）。
【００８３】
選択したコネクションのＲＴＴ値が、順位が１つ上のコネクションのＲＴＴ値以上の場合（ステップＳ２０８：否定）、送信順序決定部１１２は、順位が１つ上のコネクションのＲＴＴ値が０か否かを判定する（ステップＳ２０９）。
【００８４】
順位が１つ上のコネクションのＲＴＴ値より選択したコネクションのＲＴＴ値が小さい場合（ステップＳ２０８:肯定）又は順位が１つ上のコネクションのＲＴＴ値が０の場合（ステップＳ２０９：肯定）、送信順序決定部１１２は、以下の処理を行う。すなわち、送信順序決定部１１２は、選択したコネクションと順位が１つ上のコネクションの順序を入れ替える（ステップＳ２１０）。その後、送信順序決定部１１２は、ステップＳ２０７へ戻る。
【００８５】
これに対して、順位が１つ上のコネクションのＲＴＴ値が０でない場合（ステップＳ２０９：否定）、送信順序決定部１１２は、順序が決定されていないコネクションの中で選択していないコネクションが存在するか否かを判定する（ステップＳ２１１）。選択していないコネクションが存在する場合（ステップＳ２１１：肯定）、送信順序決定部１１２は、ステップＳ２０７へ戻る。
【００８６】
これに対して、全てのコネクションの選択が完了した場合（ステップＳ２１１：否定）、送信順序決定部１１２は、コネクションの送信順序の決定処理を終了する。
【００８７】
次に、図１３を参照して、障害発生時のフェイルオーバ処理の全体的な流れについて説明する。図１３は、障害発生時のフェイルオーバ処理のフローチャートである。
【００８８】
冗長化制御部２１は、サーバ２における故障の発生を検出する（ステップＳ３０１）。
【００８９】
次に、冗長化制御部２１は、切替指示をサーバ１の冗長化制御部１１へ送信する（ステップＳ３０２）。
【００９０】
冗長化制御部１１は、待機系サーバであるサーバ１を運用系サーバへ変更する（ステップＳ３０３）。
【００９１】
次に、冗長化制御部１１は、ＴＣＰコネクションのリカバリ開始をプロトコル制御部１２に指示する。プロトコル制御部１２は、ＴＣＰコネクションのリカバリを開始する（ステップＳ３０４）。
【００９２】
そして、プロトコル制御部１２は、ダミーパケットの送信処理を実行する（ステップＳ３０５）。
【００９３】
その後、プロトコル制御部１２は、ダミーパケット応答を受信する（ステップＳ３０６）。
【００９４】
次に、プロトコル制御部１２は、ダミーパケット応答を受信したコネクションの中から１つのコネクションを選択する（ステップＳ３０７）。
【００９５】
次に、プロトコル制御部１２は、送受信シーケンス番号が一致した、すなわち、送信シーケンス番号と受信シーケンス番号とが一致したか否かを判定する（ステップＳ３０８）。送受信シーケンス番号が一致した場合（ステップＳ３０８：肯定）、プロトコル制御部１２は、コネクション継続可能通知を通信処理部１３へ通知する（ステップＳ３０９）。通信処理部１３は、継続可能とされたコネクションを用いたデータの送受信を再開する（ステップＳ３１０）。
【００９６】
一方、送受信シーケンス番号が一致しない場合（ステップＳ３０８：否定）、プロトコル制御部１２は、コネクションを切断する（ステップＳ３１１）。
【００９７】
その後、プロトコル制御部１２は、コネクション継続不能を通信処理部１３に通知する（ステップＳ３１２）。
【００９８】
通信処理部１３は、コネクション管理テーブル１３０を削除し、ソケットを解放した後に、コネクションを再確立する（ステップＳ３１３）。
【００９９】
その後、プロトコル制御部１２は、全てのコネクションの継続可否についての確認が終了したか否かを判定する（ステップＳ３１４）。継続可否についての確認が終わっていないコネクションがある場合（ステップＳ３１４：否定）、プロトコル制御部１２は、ステップＳ３０７へ戻る。
【０１００】
これに対して、全てのコネクションについて継続可否についての確認が終わった場合（ステップＳ３１４：肯定）、プロトコル制御部１２は、コネクションの継続可否の判定処理を終了する。
【０１０１】
次に、図１４を参照して、ダミーパケットの送受信処理の流れについて説明する。図１４は、ダミーパケットの送受信処理のフローチャートである。
【０１０２】
ダミーパケット送信制御部１１３は、ダミーパケット送信量定義情報を読み込む。本実施例では、ダミーパケット送信制御部１１３は、ダミーパケット送信量定義情報を読み込む（ステップＳ４１１）。
【０１０３】
次に、ダミーパケット送信制御部１１３は、送信順序にしたがいコネクションを１０本選択する（ステップＳ４１２）。
【０１０４】
次に、ダミーパケット送信制御部１１３は、選択したコネクションそれぞれに１パケットずつ、全部でダミーパケットを１０パケット送信する（ステップＳ４１３）。
【０１０５】
次に、ダミーパケット送信制御部１１３は、応答待ちテーブルにダミーパケットを送信したコネクションのエントリを作成する（ステップＳ４１４）。
【０１０６】
次に、ダミーパケット送信制御部１１３は、送信間隔タイマを起動する（ステップＳ４１５）。
【０１０７】
その後、ダミーパケット送信制御部１１３は、待機解除の通知を受信したか否かを判定する（ステップＳ４１６）。待機解除の通知を受信した場合（ステップＳ４１６：肯定）、ダミーパケット送信制御部１１３は、ステップＳ４１８へ進む。
【０１０８】
これに対して、待機解除の通知を未受信の場合（ステップＳ４１６：否定）、ダミーパケット送信制御部１１３は、待機時間が経過したか否かを判定する（ステップＳ４１７）。待機時間が経過していない場合（ステップＳ４１７：否定）、ダミーパケット送信制御部１１３は、ステップＳ４１６へ戻る。
【０１０９】
これに対して、待機時間が経過した場合（ステップＳ４１７：肯定）、ダミーパケット送信制御部１１３は、ステップＳ４１８へ進む。そして、ダミーパケット送信制御部１１３は、未選択のコネクションが存在するか否かを判定する（ステップＳ４１８）。未選択のコネクションが存在する場合（ステップＳ４１８：肯定）、ダミーパケット送信制御部１１３は、ステップＳ４１２へ戻る。
【０１１０】
これに対して、未選択のコネクションが存在しない場合（ステップＳ４１８：否定）、ダミーパケット送信制御部１１３は、ダミーパケットの送信を終了する。
【０１１１】
一方、ダミーパケット受信制御部１１４は、ダミーパケット送信制御部１１３によるダミーパケットの送信後、ダミーパケット応答を受信する（ステップＳ４２１）。
【０１１２】
次に、ダミーパケット受信制御部１１４は、受信したダミーパケット応答に対応する応答待ちテーブルのエントリに受信済みフラグを立て、応答待ちテーブルの情報を受信済みに変更する（ステップＳ４２２）。
【０１１３】
そして、ダミーパケット受信制御部１１４は、連続して送られた１０パケットのダミーパケットに対するダミーパケット応答が受信済みか否かを応答待ちテーブルを用いて判定する（ステップＳ４２３）。ダミーパケット応答が未受信のコネクションがある場合（ステップＳ４２３：否定）、ダミーパケット受信制御部１１４は、ステップＳ４２１へ戻る。
【０１１４】
これに対して、連続して送られた１０パケットのダミーパケットに対するダミーパケット応答が受信済みの場合（ステップＳ４２３：肯定）、ダミーパケット受信制御部１１４は、待機解除の通知をダミーパケット送信制御部１１３へ送信する（ステップＳ４２４）。図１４におけるステップＳ４２４から延びる一点鎖線は、待機解除通知がダミーパケット受信制御部１１４からダミーパケット送信制御部１１３へ送信されたことを示す。
【０１１５】
ここで、本実施例では、送信順序決定部１１２は、ネットワーク情報として接続時間及びＲＴＴ値を用いて送信順序を決定したが、例えば、いずれか一方を用いて送信順序を決定してもよい。また、送信順序決定部１１２は、これ以外のネットワーク情報を用いて送信順序を決定してもよい。
【０１１６】
以上に説明したように、本実施例に係る情報処理システムでは、所定数ずつ所定間隔を空けて送信順序にしたがいコネクションを介してダミーパケットを送信する。これにより、ネットワーク上におけるダミーパケット及びダミーパケット応答のロストが軽減され、コネクションの継続率を向上させることができる。したがって、システムの信頼性を向上させることができる。
【０１１７】
また、本実施例に係る情報処理システムは、ネットワーク情報を基にダミーパケットを送信するコネクションの送信順序を決定する。これにより、重要なコネクションを迅速に回復させることができる。また、早期に回復可能なコネクションをなるべく早く回復させることで、ネットワーク内のパケット総数を減らすことができ、ネットワークの負荷を軽減し、ダミーパケットの送信をスムーズに行うことができる。
【実施例２】
【０１１８】
次に、実施例２について説明する。本実施例に係る情報処理システムは、実施例１における送信順序の決定に加えてラウンドロビンを用いて送信順序を変更する。以下では、送信順序の決定について主に説明する。以下の説明では、実施例１と同様の各部の機能については説明を省略する。本実施例に係る情報処理システム１００も、図２のブロック図で表される。
【０１１９】
送信順序決定部１１２は、接続時間及びＲＴＴ値を用いてダミーパケットを送信するコネクションの送信順序を決定する。次に、送信順序決定部１１２は、コネクション確立時刻を基に送信順序を決定した各コネクションの相手装置ＩＰアドレスをコネクション管理テーブル１３０から取得する。そして、送信順序決定部１１２は、コネクション確立時刻を基に送信順序を決定したコネクションにおいて、相手装置ＩＰアドレスが同一となるコネクションに連続してダミーパケットを送信しないようにラウンドロビンを用いて送信順序を並び替える。
【０１２０】
さらに、送信順序決定部１１２は、同一のＲＴＴ値を有するコネクションをコネクション管理テーブル１３０から特定する。次に、送信順序決定部１１２は、特定したコネクション管理テーブル１３０から相手装置ＩＰアドレスを取得する。そして、送信順序決定部１１２は、ＲＴＴ値が同じコネクションであって相手装置ＩＰアドレスが同一となるコネクションに対して連続してダミーパケットが送信されないようにラウンドロビンを用いて送信順序を並び替える。
【０１２１】
図１５は、ラウンドロビンを用いた送信順序の決定について説明するための図である。例えば、図１５に示すクライアント３１〜３３とサーバ１との間でコネクションＣ１０１〜Ｃ１０６が存在する場合について説明する。
【０１２２】
ここで、例えば、コネクション確立時刻で送信順序が決定されたコネクションとしてコネクションＣ１０１，Ｃ１０２，Ｃ１０３，Ｃ１０４，Ｃ１０５，Ｃ１０６の順で並んでいたものとする。この場合、コネクションＣ１０１とコネクションＣ１０２とは、相手装置ＩＰアドレスが同一となる。また、コネクションＣ１０３とコネクションＣ１０４とは、相手装置ＩＰアドレスが同一となる。また、コネクションＣ１０５とコネクションＣ１０６とは、相手装置ＩＰアドレスが同一となる。
【０１２３】
そこで、送信順序決定部１１２は、ラウンドロビンを用いてクライアント３１〜３３へダミーパケットを送信するように送信順序を変更する。例えば、送信順序決定部１１２は、コネクションＣ１０１，Ｃ１０３，Ｃ１０５，Ｃ１０２，Ｃ１０４，Ｃ１０６の順となるように送信順序を変更する。
【０１２４】
次に、図１６を参照して、本実施例に係る送信順序の決定処理について説明する。図１６は、実施例２に係る送信順序の決定処理のフローチャートである。
【０１２５】
送信順序決定部１１２は、コネクション確立時刻を用いて送信順序の決定を行う（ステップＳ５０１）。
【０１２６】
次に、送信順序決定部１１２は、ＲＴＴ値を用いて送信順序を変更する（ステップＳ５０２）。
【０１２７】
次に、送信順序決定部１１２は、コネクション確立時刻を用いて送信順序が決定された各コネクションの相手装置ＩＰアドレスをコネクション管理テーブル１３０から取得する（ステップＳ５０３）。
【０１２８】
そして、送信順序決定部１１２は、コネクション確立時刻を用いて送信順序が決定された各コネクションにおいて、相手装置ＩＰアドレスが同一となるコネクションが連続しているか否かを判定する（ステップＳ５０４）。相手装置ＩＰアドレスが同一となるコネクションが連続していない場合（ステップＳ５０４：否定）、送信順序決定部１１２は、ステップＳ５０６へ進む。
【０１２９】
これに対して、相手装置ＩＰアドレスが同一となるコネクションが連続する場合（ステップＳ５０４：肯定）、送信順序決定部１１２は、コネクションの送信順序を並び替える。具体的には、送信順序決定部１１２は、ラウンドロビンを用いて相手先ＩＰアドレスが同一のコネクションが連続しないように、コネクション確立時刻を用いて送信順序が決定されたコネクションの送信順序を並び替える（ステップＳ５０５）。
【０１３０】
次に、送信順序決定部１１２は、同一のＲＴＴ値のコネクションの相手装置ＩＰアドレスをコネクション管理テーブル１３０から取得する（ステップＳ５０６）。
【０１３１】
そして、送信順序決定部１１２は、同一のＲＴＴ値のコネクションであって相手装置ＩＰアドレスが同一となるコネクションが連続しているか否かを判定する（ステップＳ５０７）。相手装置ＩＰアドレスが同一となるコネクションが連続していない場合（ステップＳ５０７：否定）、送信順序決定部１１２は、送信順序の決定処理を終了する。
【０１３２】
これに対して、相手装置ＩＰアドレスが同一となるコネクションが連続する場合（ステップＳ５０７：肯定）、送信順序決定部１１２は、コネクションの送信順序を並び替える。具体的には、送信順序決定部１１２は、ラウンドロビンを用いて相手先ＩＰアドレスが同一のコネクションが連続しないように、同一のＲＴＴ値のコネクションの送信順序を並び替える（ステップＳ５０８）。
【０１３３】
以上に説明したように、本実施例に係る情報処理システムは、ラウンドロビンを用いて送信順序を並び替え、それにより決定した送信順序にしたがってダミーパケットを送信する。これにより、同一のクライアントに対して連続してダミーパケットを送信することなく、負荷分散的に複数のクライアントに対して均等にダミーパケットを送信することができる。したがって、ネットワーク内のパケット総数を減らすことができ、ネットワークの負荷を軽減し、ダミーパケットの送信をスムーズに行うことができる。
【０１３４】
（ハードウェア構成）
図１７は、待機系サーバ及び運用系サーバのハードウェア構成図である。各実施例では、待機系サーバ及び運用系サーバ共に同様のハードウェア構成を有するため、図１７ではサーバ１を例に記載した。ただし、運用系サーバであるサーバ２についても同様の各部を有するものとして説明する。
【０１３５】
サーバ１は、図１７に示すように、ＣＰＵ（Central  Processing  Unit）９１、ＲＯＭ（Read  Only  Memory）９２、ＲＡＭ（Random  Access  Memory）９３を有する。さらに、サーバ１は、入力装置９４、出力装置９５、ハードディスク９６、駆動装置９７、可搬記憶媒体９８及び通信インタフェース９９を有する。
【０１３６】
ＣＰＵ９１は、ＲＯＭ９２、ＲＡＭ９３、入力装置９４、出力装置９５、ハードディスク９６、駆動装置９７及び通信インタフェース９９とバスで接続される。
【０１３７】
入力装置９４は、例えば、キーボードやマウスなどである。操作者は、入力装置９４を用いて情報の入力を行う。出力装置９５は、モニタなどである。
【０１３８】
通信インタフェース９９は、サーバ２及びクライアント３０との間で通信を行うためのインタフェースである。
【０１３９】
駆動装置９７は、可搬記憶媒体９８が装着され、装着された可搬記憶媒体９８に対して読み書きを行う。
【０１４０】
ハードディスク９６は、補助記憶装置である。ハードディスク９６は、図２に例示した冗長化制御部１１、プロトコル制御部１２及び通信処理部１３の各機能を実現するためのプログラムを含む各種プログラムを記憶する。
【０１４１】
ＣＰＵ９１は、図２に例示した冗長化制御部１１、プロトコル制御部１２及び通信処理部１３の各機能を実現するプログラムを含む各種プログラムをハードディスク９６から読み出し、ＲＡＭ９３に展開する。そして、ＣＰＵ９１は、ＲＯＭ９２及びＲＡＭ９３を用いて展開したプログラムを実行する。これにより、ＣＰＵ９１、ＲＯＭ９２及びＲＡＭ９３は、図２に例示した冗長化制御部１１、プロトコル制御部１２及び通信処理部１３の各機能を実現する。
【０１４２】
また、サーバ２も同様に、図１７に示すＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、入力装置９４、出力装置９５、ハードディスク９６、駆動装置９７、可搬記憶媒体９８及び通信インタフェース９９を有する。
【０１４３】
ハードディスク９６は、補助記憶装置である。ハードディスク９６は、図２に例示した冗長化制御部２１、プロトコル制御部２２及び通信処理部２３の各機能を実現するためのプログラムを含む各種プログラムを記憶する。
【０１４４】
ＣＰＵ９１は、図２に例示した冗長化制御部２１、プロトコル制御部２２及び通信処理部２３の各機能を実現するプログラムを含む各種プログラムをハードディスク９６から読み出し、ＲＡＭ９３に展開する。そして、ＣＰＵ９１は、ＲＯＭ９２及びＲＡＭ９３を用いて展開したプログラムを実行する。これにより、ＣＰＵ９１、ＲＯＭ９２及びＲＡＭ９３は、図２に例示した冗長化制御部２１、プロトコル制御部２２及び通信処理部２３の各機能を実現する。
【０１４５】
ここで、本実施例では、ハードディスク９６に記憶させたプログラムを用いて各機能を実現する場合で説明したが、これに限らない。例えば、サーバ１であれば、可搬記憶媒体９８に、冗長化制御部１１、プロトコル制御部１２及び通信処理部１３の各機能を実現するためのプログラムを含む各種プログラムを記憶させてもよい。そして、サーバ１のＣＰＵ９１が、駆動装置９７を用いて可搬記憶媒体９８から各種プログラムを読み出し実行することで、冗長化制御部１１、プロトコル制御部１２及び通信処理部１３の各機能を実現してもよい。また、例えば、サーバ２であれば、可搬記憶媒体９８に、冗長化制御部２１、プロトコル制御部２２及び通信処理部２３の各機能を実現するためのプログラムを含む各種プログラムを記憶させてもよい。そして、サーバ２のＣＰＵ９１が、駆動装置９７を用いて可搬記憶媒体９８から各種プログラムを読み出し実行することで、冗長化制御部２１、プロトコル制御部２２及び通信処理部２３の各機能を実現してもよい。
【符号の説明】
【０１４６】
１，２  サーバ
１１  冗長化制御部
１２  プロトコル制御部
１３  通信処理部
２１  冗長化制御部
２２  プロトコル制御部
２３  通信処理部
３０〜３３  クライアント
１００  情報処理システム
１１１  コネクション管理部
１１２  送信順序決定部
１１３  ダミーパケット送信制御部
１１４  ダミーパケット受信制御部
１３０  コネクション管理テーブル
１３１  確立時引継データ
１３２  更新時引継データ
１３３  解放時引継データ
【図１】
2018028787.tif 000003
【図２】
2018028787.tif 000004
【図３】
2018028787.tif 000005
【図４】
2018028787.tif 000006
【図５】
2018028787.tif 000007
【図６】
2018028787.tif 000008
【図７】
2018028787.tif 000009
【図８】
2018028787.tif 000010
【図９】
2018028787.tif 000011
【図１０】
2018028787.tif 000012
【図１１】
2018028787.tif 000013
【図１２】
2018028787.tif 000014
【図１３】
2018028787.tif 000015
【図１４】
2018028787.tif 000016
【図１５】
2018028787.tif 000017
【図１６】
2018028787.tif 000018
【図１７】
2018028787.tif 000019