(57)【特許請求の範囲】
【請求項１】
複数のクライアントへネットワークを介して通信サービスを提供する現用系サーバから、該現用系サーバと同一の機能を有する待機系サーバへの切替制御を行う切替制御装置において、
ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブルと、
前記現用系サーバと各クライアントとの間のそれぞれの通信における通信状態をチェックする通信状態チェック手段と、
前記通信状態チェック手段のチェックの結果、いずれかのクライアントが通信異常となった場合、前記ノードテーブルを参照し、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出するクライアント数算出手段と、
前記クライアント数算出手段により算出されたクライアント数と、現用系サーバから前記通信サービスの提供を受けているクライアント数との比較結果から切替の適否を判断し、前記現用系サーバから前記待機系サーバへの切替制御を行う制御手段と、
を備えることを特徴とする切替制御装置。
【請求項２】
複数のクライアントへネットワークを介して通信サービスを提供する現用系サーバから、該現用系サーバと同一の機能を有する待機系サーバへの切替制御を行う切替制御方法において、
前記現用系サーバと各クライアントとの間のそれぞれの通信における通信状態をチェックする通信状態チェック工程と、
前記通信状態チェック工程のチェックの結果、いずれかのクライアントが通信異常となった場合、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブルを参照し、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出するクライアント数算出工程と、
前記クライアント数算出工程により算出されたクライアント数と、現用系サーバから前記通信サービスの提供を受けているクライアント数との比較結果から切替の適否を判断し、該判断の結果に基づいて前記現用系サーバから前記待機系サーバへの切替制御を行う制御工程と、
を含むことを特徴とする切替制御方法。
【請求項３】
複数のクライアントへネットワークを介して通信サービスを提供する現用系サーバから、該現用系サーバと同一の機能を有する待機系サーバへの切替制御を行う切替制御装置に適用される切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記現用系サーバと各クライアントとの間のそれぞれの通信における通信状態をチェックさせる通信状態チェック工程と、
前記通信状態チェック工程のチェックの結果、いずれかのクライアントが通信異常となった場合、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブルを参照させ、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断させるとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出させるクライアント数算出工程と、
前記クライアント数算出工程により算出されたクライアント数と、現用系サーバから前記通信サービスの提供を受けているクライアント数との比較結果から切替の適否を判断し、該判断の結果に基づいて前記現用系サーバから前記待機系サーバへの切替制御を行わせる制御工程と、
をコンピュータに実行させるための切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して相互接続された複数のノード上で動作するクライアント／サーバシステムの切り替え制御に用いて好適な切替制御装置、切替制御方法および切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【０００２】
一般に、クライアント／サーバシステムは、並列冗長構成を採る少なくとも２台のサーバ（主サーバおよび代替サーバ）と、ネットワークを介してサーバに接続された複数台のクライアントとから構成されている。このようなクライアント／サーバシステムでは、通信状態の異常を検出した後に、クライアントに対して通信サービスを提供するサーバを、主サーバから代替サーバに一律に切り替えるという切替制御が行われる。
【０００３】
しかしながら、異常発生要因によっては、上記切替制御を行うことにより、逆に、サーバから通信サービスの提供を受けることができるクライアントの数が異常検出前の数より減少する場合もある。従って、従来より、かかる問題を効果的に解決するための手段、方法が切望されている。
【０００４】
【従来の技術】
図７は、従来のクライアント／サーバシステムの構成を示すブロック図である。この図において、ノード１０、２０および３０は、データ用通信路４０（制御用通信路５０）を介して相互接続されている。ノード１０では、主サーバ１１およびクライアント１２が動作し、ノード２０では、代替サーバ２１およびクライアント２２が動作する。また、ノード３０では、クライアント３２が動作する。
【０００５】
ノード１０において、主サーバ１１は、クライアント１２、クライアント２２およびクライアント３２に対して所定の通信サービスを提供する。この主サーバ１１は、クライアント／サーバシステムの現用系サーバとして機能している。クライアント１２は、主サーバ１１に接続されており、正常時、主サーバ１１から通信サービスの提供を受ける。また、クライアント１２は、異常発生時に、主サーバ１１に代えて代替サーバ２１から通信サービスの提供を受けることが可能とされている。
【０００６】
通信部１３は、主サーバ１１およびクライアント１２とデータ用通信路４０との間に介挿されており、所定の通信プロトコルに従って、主サーバ１１およびクライアント１２と外部のノード２０およびノード３０との間の通信制御を行う。切替制御部１４は、主サーバ１１から代替サーバ２１への切替制御を行う。通信部１５は、切替制御部１４と制御用通信路５０との間に介挿されており、所定の通信プロトコルに従って、切替制御部１４と外部のノード２０およびノード３０との間の通信制御を行う。
【０００７】
ノード２０において、代替サーバ２１は、主サーバ１１と同一の機能を備えており、異常発生時に、主サーバ１１に代わって通信サービスの提供を行う。つまり、代替サーバ２１は、現用系サーバ（主サーバ１１）に対する待機系サーバとして機能する。このように、従来のクライアント／サーバシステムは、主サーバ１１および代替サーバ２１により並列冗長構成が採られている。
【０００８】
クライアント２２は、正常時、主サーバ１１から通信サービスの提供を受ける。また、クライアント２２は、異常発生時に、主サーバ１１に代えて代替サーバ２１から通信サービスの提供を受けることが可能とされている。通信部２３は、代替サーバ２１およびクライアント２２とデータ用通信路４０との間に介挿されており、所定の通信プロトコルに従って、代替サーバ２１およびクライアント２２と外部のノード１０およびノード３０との間の通信制御を行う。
【０００９】
切替制御部２４は、主サーバ１１から代替サーバ２１への切替制御を行う。通信部２５は、切替制御部２４と制御用通信路５０との間に介挿されており、所定の通信プロトコルに従って、切替制御部２４と外部のノード１０および３０との間の通信制御を行う。
【００１０】
ノード３０において、クライアント３２は、正常時、主サーバ１１から通信サービスの提供を受ける。また、クライアント３２は、異常発生時に、主サーバ１１に代えて代替サーバ２１から通信サービスの提供を受けることが可能とされている。通信部３３は、クライアント３２とデータ用通信路４０との間に介挿されており、所定の通信プロトコルに従って、クライアント３２と外部のノード１０およびノード２０との間の通信制御を行う。
【００１１】
切替制御部３４は、主サーバ１１から代替サーバ２１への切替制御を行う。通信部３５は、切替制御部３４と制御用通信路５０との間に介挿されており、所定の通信プロトコルに従って、切替制御部３４と外部のノード１０および２０との間の通信制御を行う。
【００１２】
上記構成において、主サーバ１１は、ノード１０内のクライアント１２、ノード２０内のクライアント２２およびノード３０内のクライアント３２のそれぞれからの要求に応じて、通信サービスを提供する。すなわち、主サーバ１１は、同一のノード１０内でクライアント１２に通信サービスを提供する。また、主サーバ１１は、通信部１３、データ用通信路４０および通信部２３を介して、ノード２０内のクライアント２２に通信サービスを提供する。さらに、主サーバ１１は、通信部１３、データ用通信路４０および通信部３３を介してノード３０内のクライアント３２に通信サービスを提供する。
【００１３】
また、上述した通信サービスの提供に並行して、主サーバ１１は、クライアント１２、クライアント２２およびクライアント３２のそれぞれの通信状態（正常または異常）を定期的にチェックする。具体的には、クライアント１２、クライアント２２およびクライアント３２のそれぞれは、定周期（例えば、５秒）毎に主サーバ１１へ定周期通信パケットを送信する。この定周期通信パケットは、送信先の主サーバ１１のアドレスと、送信元のアドレス（クライアント１２、クライアント２２、クライアント３２のそれぞれのアドレス）と、ダミーデータとから構成されている。
【００１４】
主サーバ１１は、上記定周期通信パケットを受信することにより、当該クライアントに関する通信状態のチェック結果を正常とする。また、主サーバ１１は、前回、定周期通信パケットを受信した時刻から所定時間（例えば、３０秒）経過しても、当該クライアントからの定周期通信パケットが受信されない場合、当該クライアントに関する通信状態のチェック結果を異常とする。
【００１５】
ここで、ノード２０の通信部２３が故障すると、クライアント２２からの定周期通信パケットは、主サーバ１１に受信されなくなる。従って、主サーバ１１は、クライアント２２に関する通信状態のチェック結果を異常とする。この場合、主サーバ１１から通信サービスの提供を受けることができるクライアントは、２台のクライアント１２およびクライアント３２であり、クライアント２２は、通信サービスの提供を受けることができない。
【００１６】
そして、主サーバ１１は、異常を検出した旨を切替制御部１４に通知する。切替制御部１４は、アクセス先を主サーバ１１から代替サーバ２１に切り替えるように、ノード１０内のクライアント１２を制御する。また、切替制御部１４は、通信部１５、制御用通信路５０および通信部２５を介してノード２０内の切替制御部２４へ切替信号を出力すると共に、通信部１５、制御用通信路５０および通信部３５を介して切替信号を切替制御部３４へ出力する。これにより、切替制御部２４および切替制御部３４は、アクセス先を主サーバ１１から代替サーバ２１に切り替えるように、クライアント２２およびクライアント３２を制御する。
【００１７】
切替後、代替サーバ２１は、主サーバ１１に代わってクライアント１２、クライアント２２およびクライアント３２に対して通信サービスを提供する役目を担う。しかしながら、ノード２０内の通信部２３に異常が発生しているため、ノード１０内のクライアント１２およびノード３０内のクライアント３２は、代替サーバ２１にアクセスすることができない。一方、クライアント２２は、代替サーバ２１と同一のノードであるノード２０内に位置しているため、代替サーバ２１にアクセスすることができる。従って、切替後においては、代替サーバ２１から通信サービスの提供を受けることができるクライアントは、１台のクライアント２２のみである。
【００１８】
【発明が解決しようとする課題】
ところで、前述したように、従来のクライアント／サーバシステムでは、それぞれのクライアントに関して通信状態の異常が検出された時点で、一律に主サーバ１１から代替サーバ２１に切替制御される旨を述べた。
【００１９】
しかしながら、前述したように通信部２３が故障した場合には、切替前に通信サービスの提供を受けることができるクライアントの数が２台（クライアント１２およびクライアント３２）であるのに対して、切替後の同クライアント数が１台（クライアント２２）という具合に、かえって減少するという問題があった。つまり、この場合には、切替が逆効果として作用しているため、切替を行わないほうが得策である。
【００２０】
本発明は、上記に鑑みてなされたもので、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる切替制御装置、切替制御方法および切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記目的を達成するために、請求項１にかかる発明は、複数のクライアント（後述する一実施の形態のクライアント１２０、２２０および３２０に相当）へネットワーク（後述する一実施の形態のデータ用通信路４００に相当）を介して通信サービスを提供する現用系サーバ（後述する一実施の形態の主サーバ１１０に相当）から、該現用系サーバと同一の機能を有する待機系サーバ（後述する一実施の形態の代替サーバ２１０に相当）への切替制御を行う切替制御装置において、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブル（後述する一実施の形態のノードテーブルＴに相当）と、前記現用系サーバと各クライアントとの間のそれぞれの通信における通信状態をチェックする通信状態チェック手段（後述する一実施の形態の主サーバ制御部１１１に相当）と、前記通信状態チェック手段のチェックの結果、いずれかのクライアントが通信異常となった場合、前記ノードテーブルを参照し、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出するクライアント数算出手段（後述する一実施の形態の主サーバ制御部１１１に相当）と、前記クライアント数算出手段により算出されたクライアント数と、現用系サーバから前記通信サービスの提供を受けているクライアント数との比較結果から切替の適否を判断し、前記現用系サーバから前記待機系サーバへの切替制御を行う制御手段（後述する一実施の形態の切替制御部１４０に相当）と、を備えることを特徴とする。
【００２２】
この発明によれば、通信状態チェック手段により、複数のクライアントのそれぞれの通信状態がチェックされる。ここで、故障等に起因して、少なくとも一つのクライアントに対応する通信状態が異常となると、クライアント数算出手段は、切替後に待機系サーバから通信サービスの提供を受けることができるクライアントの数を、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブルを参照して算出する。
【００２３】
これにより、制御手段は、クライアント数算出手段の算出結果（クライアントの数）と、切替前（現時点）で現用系サーバから実際に通信サービスの提供を受けているクライアントの数との比較結果から切替の適否（切替を行うか否か）を判断する。ここで、切替を行うと判断された場合（例えば、切替後のクライアントの数が切替前のクライアントの数を超える場合）、制御手段により、現用系サーバから待機系サーバへの切替が行われ、該待機系サーバから複数のクライアントへ通信サービスが提供される。
【００２４】
一方、切替を行わないと判断された場合（例えば、切替後のクライアントの数が切替前のクライアントの数未満である場合）、制御手段により、現用系サーバから待機系サーバへの切替が行われず、引き続き現用系サーバから複数のクライアントへ通信サービスが提供される。
【００２５】
このように、この発明によれば、複数のクライアントのうち少なくとも一つのクライアントの通信状態が異常となった場合に、クライアント数算出手段の算出結果と切替前に現用系サーバから通信サービスの提供を受けているクライアントの数との比較結果から切替の適否を判断し、該判断の結果に基づいて切替制御を行っているため、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【００２６】
また、この発明によれば、ノードテーブルを参照し、前記通信状態チェック手段のチェックの結果、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出することとしたので、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【００２７】
また、請求項２にかかる発明は、複数のクライアントへネットワークを介して通信サービスを提供する現用系サーバから、該現用系サーバと同一の機能を有する待機系サーバへの切替制御を行う切替制御方法において、前記現用系サーバと各クライアントとの間のそれぞれの通信における通信状態をチェックする通信状態チェック工程（後述する一実施の形態のステップＳＡ１〜ステップＳＡ２に相当）と、前記通信状態チェック工程のチェックの結果、いずれかのクライアントが通信異常となった場合、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブル（後述する一実施の形態のノードテーブルＴに相当）を参照し、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出するクライアント数算出工程（後述する一実施の形態のステップＳＡ４およびステップＳＡ６に相当）と、前記クライアント数算出工程により算出されたクライアント数と、現用系サーバから前記通信サービスの提供を受けているクライアント数との比較結果から切替の適否を判断し、該判断の結果に基づいて前記現用系サーバから前記待機系サーバへの切替制御を行う制御工程（後述する一実施の形態のステップＳＡ５、ステップＳＡ７、ステップＳＡ８およびステップＳＡ１０に相当）と、を含むことを特徴とする。
【００２８】
この発明によれば、通信状態チェック工程により、複数のクライアントのそれぞれの通信状態がチェックされる。ここで、故障等に起因して、少なくとも一つのクライアントに対応する通信状態が異常となると、クライアント数算出工程では、切替後に待機系サーバから通信サービスの提供を受けることができるクライアントの数が、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブルを参照して算出される。
【００２９】
これにより、制御工程では、クライアント数算出工程の算出結果（クライアントの数）と、切替前（現時点）で現用系サーバから実際に通信サービスの提供を受けているクライアントの数との比較結果から切替の適否（切替を行うか否か）が判断される。ここで、切替を行うと判断された場合（例えば、切替後のクライアントの数が切替前のクライアントの数を超える場合）、制御工程では、現用系サーバから待機系サーバへの切替が行われ、該待機系サーバから複数のクライアントへ通信サービスが提供される。
【００３０】
一方、切替を行わないと判断された場合（例えば、切替後のクライアントの数が切替前のクライアントの数未満である場合）、制御工程で現用系サーバから待機系サーバへの切替が行われず、引き続き現用系サーバから複数のクライアントへ通信サービスが提供される。
【００３１】
このように、この発明によれば、複数のクライアントのうち少なくとも一つのクライアントの通信状態が異常となった場合に、クライアント数算出工程の算出結果と切替前に現用系サーバから通信サービスの提供を受けているクライアントの数との比較結果から切替の適否を判断し、該判断の結果に基づいて切替制御を行っているため、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【００３２】
また、この発明によれば、ノードテーブルを参照し、前記通信状態チェック工程によるチェックの結果、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出することとしたので、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【００３３】
また、請求項３にかかる発明は、複数のクライアントへネットワークを介して通信サービスを提供する現用系サーバから、該現用系サーバと同一の機能を有する待機系サーバへの切替制御を行う切替制御装置に適用される切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記現用系サーバと各クライアントとの間のそれぞれの通信における通信状態をチェックさせる通信状態チェック工程（後述する一実施の形態のステップＳＡ１〜ステップＳＡ２に相当）と、前記通信状態チェック工程のチェックの結果、いずれかのクライアントが通信異常となった場合、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブル（後述する一実施の形態のノードテーブルＴに相当）を参照させ、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断させるとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出させるクライアント数算出工程（後述する一実施の形態のステップＳＡ４およびステップＳＡ６に相当）と、前記クライアント数算出工程により算出されたクライアント数と、現用系サーバから前記通信サービスの提供を受けているクライアント数との比較結果から切替の適否を判断し、該判断の結果に基づいて前記現用系サーバから前記待機系サーバへの切替制御を行わせる制御工程（後述する一実施の形態のステップＳＡ５、ステップＳＡ７、ステップＳＡ８およびステップＳＡ１０に相当）と、をコンピュータに実行させるための切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００３４】
この発明によれば、通信状態チェック工程により、複数のクライアントのそれぞれの通信状態がチェックされる。ここで、故障等に起因して、少なくとも一つのクライアントに対応する通信状態が異常となると、クライアント数算出工程では、切替後に待機系サーバから通信サービスの提供を受けることができるクライアントの数が、ノード名と該ノード内のサーバ名・クライアント名とを対応付けて記憶したノードテーブルを参照して算出される。
【００３５】
これにより、制御工程では、クライアント数算出工程の算出結果（クライアントの数）と、切替前（現時点）で現用系サーバから実際に通信サービスの提供を受けているクライアントの数との比較結果から切替の適否（切替を行うか否か）が判断される。ここで、切替を行うと判断された場合（例えば、切替後のクライアントの数が切替前のクライアントの数を超える場合）、制御工程では、現用系サーバから待機系サーバへの切替が行われ、該待機系サーバから複数のクライアントへ通信サービスが提供される。
【００３６】
一方、切替を行わないと判断された場合（例えば、切替後のクライアントの数が切替前のクライアントの数未満である場合）、制御工程で現用系サーバから待機系サーバへの切替が行われず、引き続き現用系サーバから複数のクライアントへ通信サービスが提供される。
【００３７】
このように、この発明によれば、複数のクライアントのうち少なくとも一つのクライアントの通信状態が異常となった場合に、クライアント数算出工程の算出結果と切替前に現用系サーバから通信サービスの提供を受けているクライアントの数との比較結果から切替の適否を判断し、該判断の結果に基づいて切替制御を行っているため、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【００３８】
また、この発明によれば、ノードテーブルを参照させ、前記通信状態チェック工程によるチェックの結果、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断させるとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出させることとしたので、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【００３９】
【発明の実施の形態】
以下、図面を参照して本発明にかかる切替制御装置、切替制御方法および切替制御プログラムを記録したコンピュータ読み取り可能な記録媒体の一実施の形態について詳細に説明する。
【００４０】
図１は、一実施の形態の構成を示すブロック図である。この図には、ノード１００、２００および３００という３つのノードを有するクライアント／サーバシステムが図示されている。これらのノード１００、２００および３００は、データ用通信路４００（制御用通信路５００）を介して相互接続されている。ノード１００では、主サーバ１１０およびクライアント１２０が動作し、ノード２００では、代替サーバ２１０およびクライアント２２０が動作する。また、ノード３００では、クライアント３２０が動作する。
【００４１】
ノード１００において、主サーバ１１０は、クライアント１２０、クライアント２２０およびクライアント３２０に対して所定の通信サービスを提供する。ここでいう通信サービスの提供とは、コンテンツや情報、データ等のあらゆる電子情報を提供することをいう。また、主サーバ１１０は、クライアント／サーバシステムの現用系サーバとして機能している。この主サーバ１１０において、主サーバ制御部１１１は、通信サービの提供先であるクライアント１２０、クライアント２２０およびクライアント３２０のそれぞれの通信状態（正常または異常）をチェックするチェック機能や、通信サービスの提供を行うための制御機能を備えている。
【００４２】
また、主サーバ制御部１１１は、図２に示したノードテーブルＴを保持しており、このノードテーブルＴに基づいて、装置（クライアント、サーバ）が存在するノードを把握するとともに、それぞれのクライアントの通信状態（正常または異常）を把握する。このノードテーブルＴにおいて、「ノード名」の欄には、ノードの名称が記述されており、「装置名」には、アドレスに対応付けられたクライアント（サーバ）の名称が記述されており、「クライアント通信状態フラグ」の欄には、クライアントの通信状態を示すフラグが記述されている。
【００４３】
具体的には、「ノード１００」（「ノード名」）のレコードには、「装置名」としてノード１００に存在する「クライアント１２０」および「主サーバ１１０」が記述されており、「クライアント通信状態フラグ」として「Ｆ1 」が記述されている。クライアント通信状態フラグＦ1 は、クライアント１２０の通信状態（正常または異常）を示すフラグである。
【００４４】
「ノード２００」（「ノード名」）のレコードには、「装置名」としてノード２００に存在する「クライアント２２０」および「代替サーバ２１０」が記述されており、「クライアント通信状態フラグ」として「Ｆ2 」が記述されている。クライアント通信状態フラグＦ2 は、クライアント２２０の通信状態（正常または異常）を示すフラグである。
【００４５】
同様にして、「ノード３００」（「ノード名」）のレコードには、「装置名」としてノード３００に存在する「クライアント３２０」が記述されており、「クライアント通信状態フラグ」として「Ｆ3 」が記述されている。クライアント通信状態フラグＦ3 は、クライアント３２０の通信状態（正常または異常）を示すフラグである。
【００４６】
図１に戻り、主サーバ１１０内の定周期通信受信部１１２は、後述する定周期通信送信部１２２、定周期通信送信部２２２および定周期通信送信部３２２のそれぞれから定周期（例えば、５秒）毎に送信される図３に示した定周期通信パケットＰＡを受信する。この定周期通信パケットＰＡは、クライアント１２０、クライアント２２０およびクライアント３２０のそれぞれの通信状態（正常または異常）のチェックに用いられる。このチェックは、主サーバ制御部１１１により実行される。
【００４７】
図３に示した定周期通信パケットＰＡは、送信先アドレスＡＤＲ、送信先ポート番号ＰＯＲ、送信元アドレスＡＲＳ、送信元ポート番号ＰＯＳおよびダミーデータＤから構成されている。送信先アドレスＡＤＲは、定周期通信パケットＰＡの送信先（この場合、主サーバ１１０）のアドレスである。送信先ポート番号ＰＯＲは、上記送信先のネットワークポートの番号である。送信元アドレスＡＲＳ
は、定周期通信パケットＰＡの送信元（この場合、クライアント１２０、クライアント２２０またはクライアント３２０）のアドレスである。送信元ポート番号ＰＯＳは、上記送信元のネットワークポートの番号である。ダミーデータＤは、通信状態のチェック専用のデータである。
【００４８】
図１に戻り、クライアント１２０は、ノード１００内の主サーバ１１０に接続されており、正常時、主サーバ１１０から通信サービスの提供を受ける。また、クライアント１２０は、異常発生時に、主サーバ１１０に代えて代替サーバ２１０から通信サービスの提供を受けることが可能とされている。このクライアント１２０において、クライアント制御部１２１は、通信サービスの提供を受けるための制御機能を備えている。
【００４９】
定周期通信送信部１２２は、上述した定周期通信パケットＰＡ（図３参照）を定周期（＝５秒）で、主サーバ１１０の定周期通信受信部１１２へ送信する。この場合、定周期通信パケットＰＡは、送信先アドレスＡＤＲ（＝主サーバ１１０のアドレス）、送信先ポート番号ＰＯＲ（＝主サーバ１１０のネットワークポート番号）、送信元アドレスＡＲＳ（＝クライアント１２０のアドレス）、送信元ポート番号ＰＯＳ（＝クライアント１２０のネットワークポート番号）、およびダミーデータＤから構成される。
【００５０】
通信部１３０は、主サーバ１１０およびクライアント１２０とデータ用通信路４００との間に介挿されており、所定の通信プロトコルに従って、主サーバ１１０およびクライアント１２０と外部のノード２００およびノード３００との間の通信制御を行う。切替制御部１４０は、主サーバ１１０から代替サーバ２１０への切替制御を行う。通信部１５０は、切替制御部１４０と制御用通信路５００との間に介挿されており、所定の通信プロトコルに従って、切替制御部１４０と外部のノード２００およびノード３００との間の通信制御を行う。
【００５１】
ノード２００において、代替サーバ２１０は、主サーバ１１０と同一の機能を備えており、異常発生時に、主サーバ１１０に代わって通信サービスの提供を行う。つまり、代替サーバ２１０は、現用系サーバ（主サーバ１１０）に対する待機系サーバとして機能する。このように、一実施の形態のクライアント／サーバシステムは、主サーバ１１０および代替サーバ２１０により並列冗長構成が採られている。
【００５２】
この代替サーバ２１０において、代替サーバ制御部２１１は、主サーバ制御部１１１と同一の機能を備えている。すなわち、代替サーバ制御部２１１は、異常発生時に、通信サービの提供先であるクライアント１２０、クライアント２２０およびクライアント３２０のそれぞれの通信状態（正常または異常）をチェックするチェック機能や、通信サービスの提供を行うための制御機能を備えている。
【００５３】
また、代替サーバ制御部２１１は、主サーバ制御部１１１と同様にして、図２に示したノードテーブルＴを保持しており、このノードテーブルＴに基づいて、装置（クライアント、サーバ）が存在するノードを把握するとともに、それぞれのクライアントの通信状態（正常または異常）を把握する。
【００５４】
定周期通信受信部２１２は、異常発生時、定周期通信受信部１１２と同様にして、定周期通信送信部１２２、定周期通信送信部２２２および定周期通信送信部３２２のそれぞれから定周期（例えば、５秒）毎に送信される定周期通信パケットＰＡ（図３参照）を受信する。このチェックは、代替サーバ制御部２１１により実行される。
【００５５】
クライアント２２０は、ノード１００内の主サーバ１１０に通信部２３０、データ用通信路４００および通信部１３０を介して接続されており、正常時、主サーバ１１０から通信サービスの提供を受ける。また、クライアント２２０は、異常発生時に、主サーバ１１０に代えて同一のノード２００内の代替サーバ２１０から通信サービスの提供を受けることが可能とされている。このクライアント２２０において、クライアント制御部２２１は、通信サービスの提供を受けるための制御機能を備えている。
【００５６】
定周期通信送信部２２２は、上述した定周期通信パケットＰＡ（図３参照）を定周期（＝５秒）で、主サーバ１１０の定周期通信受信部１１２へ通信部２３０、データ用通信路４００および通信部１３０を介して送信する。この場合、定周期通信パケットＰＡは、送信先アドレスＡＤＲ（＝主サーバ１１０のアドレス）、送信先ポート番号ＰＯＲ（＝主サーバ１１０のネットワークポート番号）、送信元アドレスＡＲＳ（＝クライアント２２０のアドレス）、送信元ポート番号ＰＯＳ（＝クライアント２２０のネットワークポート番号）、およびダミーデータＤから構成される。
【００５７】
通信部２３０は、代替サーバ２１０およびクライアント２２０とデータ用通信路４００との間に介挿されており、所定の通信プロトコルに従って、代替サーバ２１０およびクライアント２２０と外部のノード１００およびノード３００との間の通信制御を行う。切替制御部２４０は、主サーバ１１０から代替サーバ２１０への切替制御を行う。通信部２５０は、切替制御部２４０と制御用通信路５００との間に介挿されており、所定の通信プロトコルに従って、切替制御部２４０と外部のノード１００およびノード３００との間の通信制御を行う。
【００５８】
ノード３００において、クライアント３２０は、ノード１００内の主サーバ１１０に通信部３３０、データ用通信路４００および通信部１３０を介して接続されており、正常時、主サーバ１１０から通信サービスの提供を受ける。また、クライアント３２０は、異常発生時に、主サーバ１１０に代えて、通信部３３０、データ用通信路４００および通信部２３０を介して、ノード２００内の代替サーバ２１０から通信サービスの提供を受けることが可能とされている。このクライアント３２０において、クライアント制御部３２１は、通信サービスの提供を受けるための制御機能を備えている。
【００５９】
定周期通信送信部３２２は、上述した定周期通信パケットＰＡ（図３参照）を定周期（＝５秒）で、主サーバ１１０の定周期通信受信部１１２へ通信部３３０、データ用通信路４００および通信部１３０を介して送信する。この場合、定周期通信パケットＰＡは、送信先アドレスＡＤＲ（＝主サーバ１１０のアドレス）、送信先ポート番号ＰＯＲ（＝主サーバ１１０のネットワークポート番号）、送信元アドレスＡＲＳ（＝クライアント３２０のアドレス）、送信元ポート番号ＰＯＳ（＝クライアント３２０のネットワークポート番号）、およびダミーデータＤから構成される。
【００６０】
通信部３３０は、クライアント３２０とデータ用通信路４００との間に介挿されており、所定の通信プロトコルに従って、クライアント３２０と外部のノード１００およびノード２００との間の通信制御を行う。切替制御部３４０は、主サーバ１１０から代替サーバ２１０への切替制御を行う。通信部３５０は、切替制御部３４０と制御用通信路５００との間に介挿されており、所定の通信プロトコルに従って、切替制御部３４０と外部のノード１００およびノード２００との間の通信制御を行う。
【００６１】
つぎに、実施の形態１の動作について、図４〜図６に示したフローチャートを参照しつつ説明する。図１において、主サーバ１１０は、ノード１００内のクライアント１２０、ノード２００内のクライアント２２０およびノード３００内のクライアント３２０のそれぞれからの要求に応じて、通信サービスを提供する。
【００６２】
すなわち、主サーバ１１０は、同一のノード１００内でクライアント１２０に通信サービスを提供する。また、主サーバ１１０は、通信部１３０、データ用通信路４００および通信部２３０を介して、ノード２００内のクライアント２２０に通信サービスを提供する。さらに、主サーバ１１０は、通信部１３０、データ用通信路４００および通信部３３０を介してノード３００内のクライアント３２０に通信サービスを提供する。
【００６３】
また、上述した通信サービスの提供に並行して、クライアント１２０の定周期通信送信部１２２、クライアント２２０の定周期通信送信部２２２およびクライアント３２０の定周期通信送信部３２２のそれぞれは、定周期（例えば、５秒）毎に主サーバ１１０へ定周期通信パケットＰＡ（図３参照）を送信する。一方、主サーバ１１０の主サーバ制御部１１１は、クライアント１２０、クライアント２２０およびクライアント３２０のそれぞれの通信状態（正常または異常）を定周期通信パケットＰＡに基づいて、定期的にチェックする。
【００６４】
具体的には、図４に示したステップＳＡ１では、主サーバ制御部１１１は、定周期通信受信部１１２が定周期通信パケットＰＡを受信したか否かを判断する。この場合、判断結果が「Ｎｏ」であるものとすると、ステップＳＡ２では、主サーバ制御部１１１は、定周期通信パケットＰＡに関する前回の受信時刻から３０秒経過したか否かを判断する。この場合、主サーバ制御部１１１は、ステップＳＡ２の判断結果を「Ｎｏ」とし、上述した判断を繰り返す。
【００６５】
そして、定周期通信受信部１１２により、定周期通信送信部１２２、定周期通信送信部２２２および定周期通信送信部３２２のそれぞれからの定周期通信パケットＰＡが受信されると、主サーバ制御部１１１は、ステップＳＡ１の判断結果を「Ｙｅｓ」とする。ステップＳＡ９では、主サーバ制御部１１１は、図２に示したノードテーブルＴから、それぞれの定周期通信パケットＰＡの送信元アドレスＡＲＳ（図３参照）に対応付けられた「装置名」（この場合、クライアント１２０、クライアント２２０およびクライアント３２０）を認識する。
【００６６】
つぎに、主サーバ制御部１１１は、図２に示したノードテーブルＴ内のクライアント通信状態フラグＦ1 〜Ｆ3 のそれぞれを正常フラグとする。つまり、この場合には、クライアント１２０、クライアント２２０およびクライアント３２０の全ての通信状態が正常であることを意味している。
【００６７】
従って、これらのクライアント１２０、クライアント２２０およびクライアント３２０のそれぞれは、主サーバ１１０から通信サービスの提供を受けている。以後、主サーバ制御部１１１は、上述した動作を繰り返し、定周期通信パケットＰＡが受信される毎にクライアント通信状態フラグＦ1 〜Ｆ3 のそれぞれを正常フラグとする。
【００６８】
ここで、ノード２００の通信部２３０が故障すると、クライアント２２０の定周期通信送信部２２２からの定周期通信パケットＰＡは、主サーバ１１０の定周期通信受信部１１２に受信されなくなる。この場合、前回の受信時刻から３０秒が経過しているものとする。従って、主サーバ１１０の主サーバ制御部１１１は、ステップＳＡ２の判断結果を「Ｙｅｓ」とする。ここで、主サーバ１１０から通信サービスの提供を受けることができるクライアントは、２台のクライアント１２０およびクライアント３２０であり、クライアント２２０は、通信サービスの提供を受けることができない。
【００６９】
ステップＳＡ３では、主サーバ制御部１１１は、クライアント２２０の通信状態が異常（通信不可）であることを認識した後、図２に示したノードテーブルＴ内の、クライアント２２０に対応するクライアント通信状態フラグＦ2 を異常フラグとする。ステップＳＡ４では、主サーバ制御部１１１は、最悪状態クライアント数算出処理を実行する。
【００７０】
この最悪状態クライアント数とは、通信サービスの提供元を主サーバ１１０から代替サーバ２１０に切り替えた場合に代替サーバ２１０から通信サービスの提供を正常に受けることができるクライアントの数であって、ノードテーブルＴ内のクライアント通信状態フラグＦ1 〜Ｆ3 から推測される様々な通信環境のうち最悪の状態でのクライアントの数をいう。
【００７１】
具体的には、図５に示したステップＳＢ１では、主サーバ制御部１１１は、最悪状態クライアント数ｉに初期値として「０」を代入する。ステップＳＢ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、当該クライアント（この場合、クライアント１２０）のノードと、代替サーバ２１０のノード２００とが一致するか否かを判断する。
【００７２】
ここでいう当該クライアントとは、ステップＳＢ２〜ステップＳＢ６で判定対象となるクライアントをいう。また、ステップＳＢ２では、主サーバ制御部１１１は、主サーバ１１０から代替サーバ２１０への切替後、少なくとも代替サーバ２１０のノードに存在するクライアントが正常動作するという仮定の下で判断する。
【００７３】
この場合、主サーバ制御部１１１は、クライアント１２０のノード１００と、代替サーバ２１０のノード２００とが一致しないため、ステップＳＢ２の判断結果を「Ｎｏ」とする。ステップＳＢ３では、主サーバ制御部１１１は、当該クライアントの通信状態フラグが正常フラグであり、かつ当該クライアントのノードが、主サーバ１１０が存在するノード以外であるか否かを判断する。
【００７４】
この場合、主サーバ制御部１１１は、クライアント１２０のクライアント通信状態フラグＦ1 （図２参照）が正常フラグであるが、クライアント１２０のノード１００が主サーバ１１０のノード１００と同一であるため、ステップＳＢ３の判断結果を「Ｎｏ」とする。
【００７５】
ステップＳＢ４では、主サーバ制御部１１１は、主サーバ１１０のノード１００以外のノード２００および３００上の全クライアント（この場合、クライアント２２０およびクライアント３２０）に関するクライアント通信状態フラグＦ2 およびＦ3 がともに異常フラグであるか否かを判断する。
【００７６】
この場合、クライアント通信状態フラグＦ2 が異常フラグであるのに対して、クライアント通信状態フラグＦ3 が正常フラグであるため、主サーバ制御部１１１は、ステップＳＢ４の判断結果を「Ｎｏ」とする。つまり、この場合には、クライアント１２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができないであろう、と判定され、最悪状態クライアント数ｉにカウントされない。
【００７７】
ステップＳＢ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＢ２からステップＳＢ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＢ２以降では、つぎのクライアント２２０に関する判定が行われる。すなわち、ステップＳＢ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント２２０のノード２００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
【００７８】
ステップＳＢ７では、主サーバ１１０は、最悪状態クライアント数ｉを１インクリメントして「１」とする。つまり、この場合には、クライアント２２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最悪状態クライアント数ｉにカウントされたのである。
【００７９】
ステップＳＢ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＢ２からステップＳＢ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＢ２以降では、つぎのクライアント３２０に関する判定が行われる。すなわち、ステップＳＢ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント３２０のノード３００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【００８０】
ステップＳＢ３では、主サーバ制御部１１１は、クライアント３２０のクライアント通信状態フラグＦ3 （図２参照）が正常フラグであり、かつクライアント３２０のノード３００が主サーバ１１０のノード１００以外のノードであるため、ステップＳＢ３の判断結果を「Ｙｅｓ」とする。
【００８１】
ステップＳＢ７では、主サーバ制御部１１１は、最悪状態クライアント数ｉを１インクリメントして「２」とする。つまり、この場合には、クライアント３２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最悪状態クライアント数ｉにカウントされたのである。ステップＳＢ５では、主サーバ制御部１１１は、判断結果を「Ｙｅｓ」とする。
【００８２】
なお、ステップＳＢ４の判断結果が「Ｙｅｓ」である場合、主サーバ制御部１１１は、当該クライアントのノードと主サーバ１１０のノード１００とが同一であるか否かを判断する。この判断結果が「Ｙｅｓ」である場合、ステップＳＢ７では、主サーバ制御部１１１は、最悪状態クライアント数ｉを１インクリメントする。一方、ステップＳＢ６の判断結果が「Ｎｏ」である場合、主サーバ制御部１１１は、ステップＳＢ５の判断を行う。
【００８３】
図４に戻り、ステップＳＡ５では、主サーバ制御部１１１は、ステップＳＡ４で算出された最悪状態クライアント数ｉ（＝「２」）が現状クライアント数ｘ未満であるか否かを判断する。上記現状クライアント数ｘは、現状（切替前）で主サーバ１１０から通信サービスの提供を受けることができるクライアントの数である。
【００８４】
具体的には、現状クライアント数ｘは、ノードテーブルＴ内のクライアント通信状態フラグＦ1 〜Ｆ3 のうち、正常フラグとされているものの数である。したがって、クライアント通信状態フラグＦ1 およびクライアント通信状態フラグＦ3 の双方が正常フラグとされているため、現状クライアント数ｘは、「２」である。この場合、最悪状態クライアント数ｉ（＝「２」）と現状クライアント数ｘ（＝「２」）とが等しいため、主サーバ制御部１１１は、ステップＳＡ５の判断結果を「Ｎｏ」とする。
【００８５】
ステップＳＡ６では、主サーバ制御部１１１は、最善状態クライアント数算出処理を実行する。この最善状態クライアント数とは、通信サービスの提供元を主サーバ１１０から代替サーバ２１０に切り替えた場合に代替サーバ２１０から通信サービスの提供を正常に受けることができるクライアントの数であって、ノードテーブルＴ内のクライアント通信状態フラグＦ1 〜Ｆ3 から推測される様々な通信環境のうち最善の状態でのクライアントの数をいう。
【００８６】
すなわち、図６に示したステップＳＣ１では、主サーバ制御部１１１は、最善状態クライアント数ｊに初期値として「０」を代入する。なお、図６に示したステップＳＣ２〜ステップＳＣ５は、図５に示したステップＳＢ２〜ステップＳＢ５に対応している。また、図６では、ステップＳＣ６の「Ｙｅｓ」、「Ｎｏ」がステップＳＢ６（図５参照）の場合と逆になっていることに注意されたい。
【００８７】
ステップＳＣ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント１２０のノードと、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。ステップＳＣ３では、主サーバ制御部１１１は、クライアント１２０のクライアント通信状態フラグＦ1 （図２参照）が正常フラグであるが、クライアント１２０のノード１００が主サーバ１１０のノード１００と同一であるため、ステップＳＣ３の判断結果を「Ｎｏ」とする。
【００８８】
ステップＳＣ４では、主サーバ制御部１１１は、ノード１００以外のノード２００およびノード３００上の全クライアント（クライアント２２０およびクライアント３２０）に関して、クライアント通信状態フラグＦ2 が異常フラグであるのに対して、クライアント通信状態フラグＦ3 が正常フラグであるため、判断結果を「Ｎｏ」とする。つまり、この場合には、クライアント１２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができないであろう、と判定され、最善状態クライアント数ｊにカウントされないのである。
【００８９】
ステップＳＣ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＣ２からステップＳＣ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＣ２以降では、つぎのクライアント２２０に関する判定が行われる。すなわち、ステップＳＣ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント２２０のノード２００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
【００９０】
ステップＳＣ７では、主サーバ制御部１１１は、最善状態クライアント数ｊを１インクリメントして「１」とする。つまり、この場合には、クライアント２２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最善状態クライアント数ｊにカウントされたのである。
【００９１】
ステップＳＣ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＣ２からステップＳＣ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＣ２以降では、つぎのクライアント３２０に関する判定が行われる。すなわち、ステップＳＣ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント３２０のノード３００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【００９２】
ステップＳＣ３では、主サーバ制御部１１１は、クライアント３２０のノード３００が主サーバ１１０のノード１００以外のノードであって、かつ、クライアント３２０のクライアント通信状態フラグＦ3 （図２参照）が正常フラグであるため、ステップＳＣ３の判断結果を「Ｙｅｓ」とする。ステップＳＣ７では、主サーバ制御部１１１は、最善状態クライアント数ｊを１インクリメントして「２」とする。
【００９３】
つまり、この場合には、クライアント３２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最善状態クライアント数ｊにカウントされたのである。ステップＳＣ５では、主サーバ制御部１１１は、判断結果を「Ｙｅｓ」とする。
【００９４】
図４に戻り、ステップＳＡ７では、主サーバ制御部１１１は、ステップＳＡ６で算出された最善状態クライアント数ｊ（＝「２」）が現状クライアント数ｘ（＝「２」）を超えたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【００９５】
ステップＳＡ１０では、主サーバ制御部１１１は、切替制御部１４０へいずれの信号も出力しない。つまり、主サーバ制御部１１１は、主サーバ１１０から通信サービスを提供するという、現状を維持する。したがって、この場合には、切替制御部１４０による主サーバ１１０から代替サーバ２１０への切替制御が行われない。
【００９６】
つぎに、ノード１００の通信部１３０が故障した場合について説明する。この場合、クライアント１２０の定周期通信送信部１２２からの定周期通信パケットＰＡは、定周期通信受信部１１２に受信されている。しかしながら、クライアント２２０の定周期通信送信部２２２およびクライアント３２０の定周期通信送信部３２２の双方からの定周期通信パケットＰＡは、主サーバ１１０の定周期通信受信部１１２に受信されなくなる。
【００９７】
この場合、前回の受信時刻から３０秒が経過しているものとする。従って、主サーバ１１０の主サーバ制御部１１１は、ステップＳＡ２の判断結果を「Ｙｅｓ」とする。ここで、主サーバ１１０から通信サービスの提供を受けることができるクライアントは、１台のクライアント１２０のみであり、他の２台のクライアント２２０およびクライアント３２０は、通信サービスの提供を受けることができない。
【００９８】
ステップＳＡ３では、主サーバ制御部１１１は、クライアント２２０およびクライアント３２０の通信状態が共に異常（通信不可）であることを認識した後、図２に示したノードテーブルＴ内の、クライアント２２０および３２０に対応するクライアント通信状態フラグＦ2 およびＦ3 を共に異常フラグとする。ステップＳＡ４では、主サーバ制御部１１１は、前述した動作と同様にして、最悪状態クライアント数算出処理を実行する。
【００９９】
すなわち、図５に示したステップＳＢ１では、主サーバ制御部１１１は、最悪状態クライアント数ｉに初期値として「０」を代入する。ステップＳＢ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント１２０のノードと、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【０１００】
ステップＳＢ３では、主サーバ制御部１１１は、クライアント１２０のクライアント通信状態フラグＦ1 （図２参照）が正常フラグであるが、クライアント１２０のノード１００が主サーバ１１０のノード１００と同一であるため、ステップＳＢ３の判断結果を「Ｎｏ」とする。
【０１０１】
ステップＳＢ４では、主サーバ制御部１１１は、ノード１００以外のノード２００およびノード３００上の全クライアント（クライアント２２０およびクライアント３２０）に関するクライアント通信状態フラグＦ2 およびクライアント通信状態フラグＦ3 が共に異常フラグであるため、判断結果を「Ｙｅｓ」とする。
【０１０２】
ステップＳＢ６では、主サーバ制御部１１１は、クライアント１２０のノード１００と主サーバ１１０のノード１００とが同一であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。ステップＳＢ７では、主サーバ制御部１１１は、最悪状態クライアント数ｉを１インクリメントして、「１」とする。つまり、この場合には、クライアント１２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最悪状態クライアント数ｉにカウントされたのである。
【０１０３】
ステップＳＢ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＢ２からステップＳＢ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＢ２以降では、つぎのクライアント２２０に関する判定が行われる。すなわち、ステップＳＢ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント２２０のノード２００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
【０１０４】
ステップＳＢ７では、主サーバ１１０は、最悪状態クライアント数ｉを１インクリメントして「２」とする。つまり、この場合には、クライアント２２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最悪状態クライアント数ｉにカウントされたのである。
【０１０５】
ステップＳＢ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＢ２からステップＳＢ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＢ２以降では、つぎのクライアント３２０に関する判定が行われる。すなわち、ステップＳＢ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント３２０のノード３００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【０１０６】
ステップＳＢ３では、主サーバ制御部１１１は、クライアント３２０のノード３００が主サーバ１１０のノード１００以外のノードであるが、クライアント３２０のクライアント通信状態フラグＦ3 （図２参照）が異常フラグであるため、ステップＳＢ３の判断結果を「Ｎｏ」とする。ステップＳＢ４では、主サーバ制御部１１１は、ノード１００以外のノード２００およびノード３００上の全クライアント（クライアント２２０およびクライアント３２０）に関するクライアント通信状態フラグＦ2 およびクライアント通信状態フラグＦ3 が共に異常フラグであるため、判断結果を「Ｙｅｓ」とする。
【０１０７】
ステップＳＢ６では、主サーバ制御部１１１は、クライアント３２０のノード３００と主サーバ１１０のノード１００とが同一であるか否かを判断し、この場合、判断結果を「Ｎｏ」とする。つまり、この場合には、クライアント３２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができないであろう、と判定され、最悪状態クライアント数ｉにカウントされないのである。ステップＳＢ５では、主サーバ制御部１１１は、判断結果を「Ｙｅｓ」とする。
【０１０８】
図４に戻り、ステップＳＡ５では、主サーバ制御部１１１は、ステップＳＡ４で算出された最悪状態クライアント数ｉ（＝「２」）が現状クライアント数ｘ未満であるか否かを判断する。この場合、クライアント通信状態フラグＦ1 のみが正常フラグとされているため、現状クライアント数ｘは、「１」である。
【０１０９】
従って、最悪状態クライアント数ｉ（＝「２」）が現状クライアント数ｘ（＝「１」）以上であるため、主サーバ制御部１１１は、ステップＳＡ５の判断結果を「Ｎｏ」とする。つまり、主サーバ制御部１１１は、主サーバ１１０から代替サーバ２１０への切替を行うことにより、通信サービスの提供を受けることができるクライアント数が、切替前の同クライアント数より多くなると判断したのである。
【０１１０】
ステップＳＡ６では、主サーバ制御部１１１は、最善状態クライアント数算出処理を実行する。すなわち、図６に示したステップＳＣ１では、主サーバ制御部１１１は、最善状態クライアント数ｊに初期値として「０」を代入する。ステップＳＣ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント１２０のノードと、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【０１１１】
ステップＳＣ３では、主サーバ制御部１１１は、クライアント１２０のクライアント通信状態フラグＦ1 （図２参照）が正常フラグであるが、クライアント１２０のノード１００が主サーバ１１０のノード１００と同一であるため、ステップＳＣ３の判断結果を「Ｎｏ」とする。
【０１１２】
ステップＳＣ４では、主サーバ制御部１１１は、ノード１００以外のノード２００およびノード３００上の全クライアント（クライアント２２０およびクライアント３２０）に関するクライアント通信状態フラグＦ2 およびクライアント通信状態フラグＦ3 が共に異常フラグであるため、判断結果を「Ｙｅｓ」とする。
【０１１３】
ステップＳＣ６では、主サーバ制御部１１１は、クライアント１２０のノード１００と主サーバ１１０のノード１００とが同一であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。つまり、この場合には、クライアント１２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができないであろう、と判定され、最善状態クライアント数ｊにカウントされないのである。
【０１１４】
ステップＳＣ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＣ２からステップＳＣ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＣ２以降では、つぎのクライアント２２０に関する判定が行われる。すなわち、ステップＳＣ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント２２０のノード２００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
【０１１５】
ステップＳＣ７では、主サーバ制御部１１１は、最善状態クライアント数ｊを１インクリメントして「１」とする。つまり、この場合には、クライアント２２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最善状態クライアント数ｊにカウントされたのである。
【０１１６】
ステップＳＣ５では、主サーバ制御部１１１は、全クライアントに関するステップＳＣ２からステップＳＣ６までの判定が終了したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。これにより、ステップＳＣ２以降では、つぎのクライアント３２０に関する判定が行われる。すなわち、ステップＳＣ２では、主サーバ制御部１１１は、図２に示したノードテーブルＴを参照することにより、クライアント３２０のノード３００と、代替サーバ２１０のノード２００とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【０１１７】
ステップＳＣ３では、主サーバ制御部１１１は、クライアント３２０のノード３００が主サーバ１１０のノード１００以外のノードであるが、クライアント３２０のクライアント通信状態フラグＦ3 （図２参照）が異常フラグであるため、ステップＳＣ３の判断結果を「Ｎｏ」とする。ステップＳＣ４では、主サーバ制御部１１１は、ノード１００以外のノード２００およびノード３００上の全クライアント（クライアント２２０およびクライアント３２０）に関するクライアント通信状態フラグＦ2 およびクライアント通信状態フラグＦ3 が共に異常フラグであるため、判断結果を「Ｙｅｓ」とする。
【０１１８】
ステップＳＣ６では、主サーバ制御部１１１は、クライアント３２０のノード３００と主サーバ１１０のノード１００とが同一であるか否かを判断し、この場合、判断結果を「Ｎｏ」とする。ステップＳＣ７では、主サーバ制御部１１１は、最善状態クライアント数ｊを１インクリメントして「２」とする。
【０１１９】
つまり、この場合には、クライアント３２０は、主サーバ１１０から代替サーバ２１０への切替後に代替サーバ２１０から通信サービスの提供を受けることができるであろう、と判定され、最善状態クライアント数ｊにカウントされたのである。ステップＳＣ５では、主サーバ制御部１１１は、判断結果を「Ｙｅｓ」とする。
【０１２０】
図４に戻り、ステップＳＡ７では、主サーバ制御部１１１は、ステップＳＡ６で算出された最善状態クライアント数ｊ（＝「２」）が現状クライアント数ｘ（＝「１」）を超えたか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。ステップＳＡ８では、サーバ切替処理が実行される。すなわち、主サーバ制御部１１１は、切替を行う旨を切替制御部１４０に通知する。
【０１２１】
これにより、切替制御部１４０は、アクセス先を主サーバ１１０から代替サーバ２１０に切り替えるように、ノード１００内のクライアント１２０を制御する。また、切替制御部１４０は、通信部１５０、制御用通信路５００および通信部２５０を介してノード２００内の切替制御部２４０へ切替信号を出力するとともに、通信部１５０、制御用通信路５００および通信部３５０を介して切替信号を切替制御部３４０へ出力する。これにより、切替制御部２４０および切替制御部３４０は、アクセス先を主サーバ１１０から代替サーバ２１０に切り替えるように、クライアント２２０およびクライアント３２０を制御する。
【０１２２】
切替後、代替サーバ２１０からは、２台のクライアント２２０およびクライアント３２０に対して通信サービスが提供される。なお、クライアント１２０は、通信部１３０が故障しているため、代替サーバ２１０から通信サービスの提供を受けることができない。つまり、この場合、切替により、切替サーバ２１０から通信サービスの提供を受けることができるクライアント数が、１台から２台に増加し、切替が有効に作用したのである。
【０１２３】
以上説明したように、一実施の形態によれば、クライアント１２０、クライアント２２０およびクライアント３２０のうち少なくとも一つのクライアントの通信状態が異常となった場合に、最悪状態クライアント数ｉ、最善状態クライアント数ｊの算出結果と切替前に主サーバ１１０から通信サービスの提供を受けているクライアントの数との比較結果から切替の適否を判断し、該判断の結果に基づいて切替制御を行っているため、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができる。
【０１２４】
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。たとえば、前述した一実施の形態においては、切り替え機能を実現するための切替制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された切替制御プログラムをコンピュータに読み込ませ、実行することにより切替制御を行うようにしてもよい。
【０１２５】
上記コンピュータは、上記切替制御プログラムを実行するＣＰＵと、キーボード、マウス等の入力装置と、各種データを記憶するＲＯＭ（Read Only Memory）と、演算パラメータ等を記憶するＲＡＭ（Random Access Memory）と、記録媒体から切替制御プログラムを読み取る読取装置と、ディスプレイ、プリンタ等の出力装置と、装置各部を接続するバスとから構成されている。
【０１２６】
ＣＰＵは、読取装置を経由して記録媒体に記録されている切替制御プログラムを読み込んだ後、切替制御プログラムを実行することにより、前述した切り替え制御を行う。なお、記録媒体には、光ディスク、フロッピーディスク、ハードディスク等の可搬型の記録媒体が含まれることはもとより、ネットワークのようにデータを一時的に記録保持するような伝送媒体も含まれる。
【０１２７】
また、一実施の形態では、変形例として、ステップＳＡ７（図４参照）で最善状態クライアント数ｊと現状クライアント数ｘとが同数である場合、主サーバ制御部１１１により、代替サーバ２１０が提供し得る通信サービスの量と、主サーバ１１０が提供し得る通信サービスの量との比較結果に基づいて、切替の適否を判断するようにしてもよい。
【０１２８】
例えば、代替サーバ２１０が提供し得る通信サービスの量が、主サーバ１１０が提供し得る通信サービスの量を超えた場合には、切替が必要であると判断され、切替制御部１４０による切替が行われる。一方、代替サーバ２１０が提供し得る通信サービスの量が、主サーバ１１０が提供し得る通信サービスの量以下である場合には、切替が不要と判断され、切替制御部１４０による切替が行われない。
【０１２９】
この一実施の形態の変形例によれば、代替サーバ２１０が提供し得る通信サービスの量が、主サーバ１１０が提供し得る通信サービスの量を超えた場合にのみ切替を実行するようにしたので、異常が発生した場合であっても、異常発生前の通信サービスの量より多くの通信サービスを提供することができることから、通信サービスの質の向上を図ることができる。
【０１３０】
【発明の効果】
以上説明したように、請求項１にかかる発明によれば、複数のクライアントのうち少なくとも一つのクライアントの通信状態が異常となった場合に、クライアント数算出手段の算出結果と切替前に現用系サーバから通信サービスの提供を受けているクライアントの数との比較結果から切替の適否を判断し、該判断の結果に基づいて切替制御を行っているため、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができるという効果を奏する。
【０１３１】
また、ノードテーブルを参照し、通信状態チェック手段のチェックの結果、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出することとしたので、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができるという効果を奏する。
【０１３２】
また、請求項２、３にかかる発明によれば、複数のクライアントのうち少なくとも一つのクライアントの通信状態が異常となった場合に、クライアント数算出工程の算出結果と切替前に現用系サーバから通信サービスの提供を受けているクライアントの数との比較結果から切替の適否を判断し、該判断の結果に基づいて切替制御を行っているため、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができるという効果を奏する。
【０１３３】
また、ノードテーブルを参照し、通信状態チェック工程によるチェックの結果、通信異常とされたクライアントのノードのクライアントは前記現用系サーバと通信不可能と判断するとともに、該判断において、前記現用系サーバとの通信が異常と判断されなかったクライアント数、及び、待機系サーバと同じノードのクライアント数を基に前記現用系サーバから前記待機系サーバへの切替後に前記待機系サーバから前記通信サービスの提供を受けることができるクライアントの数を算出することとしたので、不要な切替が発生せず、サーバ切替による、通信サービスの提供を受けることができるクライアント数の減少を防ぐことができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる一実施の形態の構成を示すブロック図である。
【図２】同一実施の形態で用いられるノードテーブルＴを示す図である。
【図３】同一実施の形態で用いられる定周期通信パケットＰＡのデータ構造を示す図である。
【図４】  同一実施の形態の動作を説明するフローチャートである。
【図５】  図４に示した最悪状態クライアント数算出処理を説明するフローチャートである。
【図６】  図４に示した最善状態クライアント数算出処理を説明するフローチャートである。
【図７】  従来のクライアント／サーバシステムの構成を示すブロック図である。
【符号の説明】
１１０  主サーバ
１１１  主サーバ制御部
１２０、２２０、３２０  クライアント
１４０  切替制御部
２１０  代替サーバ
４００  データ用通信路
【図１】
0003880760.tif 000002
【図２】
0003880760.tif 000003
【図３】
0003880760.tif 000004
【図４】
0003880760.tif 000005
【図５】
0003880760.tif 000006
【図６】
0003880760.tif 000007
【図７】
0003880760.tif 000008