(57)【要約】【課題】特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができる通信システムを提供する【解決手段】優先順位をもとにサーバ２１を選択した際に、各サーバ２１〜２３に均等に負荷が掛かり、且つサーバ２１が故障した場合でも残りのサーバ２２，２３に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ２１が故障しても、その優先順位を参照して、現在選択中のサーバ２１の選択に用いた優先順位よりも低い優先順位のサーバ２２を選択する。これによって、サーバ故障時でも、特定のサーバに負荷が集中しないように、迅速に代わりのサーバ２２を選択する。【選択図】      図１
2004295656.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント装置が、通信網を介して複数のサーバ装置の少なくとも１つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理が行われる通信システムにおいて、
前記クライアント装置に、
前記複数のサーバ装置の少なくとも１つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、
前記複数のサーバ装置の故障及び復旧の少なくとも１つを検出する検出手段と、
前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段と
を備えたことを特徴とする通信システム。
【請求項２】
通信網を介して複数のサーバ装置の少なくとも１つと通信を行うクライアント装置において、
前記複数のサーバ装置の少なくとも１つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、
前記複数のサーバ装置の故障及び復旧の少なくとも１つを検出する検出手段と、
前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段と
を備えたことを特徴とするクライアント装置。
【請求項３】
前記設定手段には、前記優先順位が、前記サーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定されている
ことを特徴とする請求項２に記載のクライアント装置。
【請求項４】
前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の故障が前記検出手段で検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する
ことを特徴とする請求項２または３に記載のクライアント装置。
【請求項５】
前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の復旧が前記検出手段で検出された場合に、前記復旧したサーバ装置の選択を維持する
ことを特徴とする請求項２から４の何れか１項に記載のクライアント装置。
【請求項６】
通信網を介して複数のサーバ装置の少なくとも１つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理を行うクライアント装置によるサーバ装置の負荷分散方法において、
前記複数のサーバ装置の少なくとも１つを選択するために参照する優先順位の設定を行い、この設定の際に、前記優先順位をもとにサーバ装置を選択した場合、前記複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように行う第１のステップと、
前記複数のサーバ装置の故障及び復旧の少なくとも１つを検出する第２のステップと、
前記第１のステップで設定された優先順位をもとにサーバ装置を選択し、前記第２のステップで、その選択中のサーバ装置の故障が検出された際に、前記第１のステップで設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第３のステップと、前記第２のステップにおける前記サーバ装置の故障検出時から一定時間経過後に、前記第１のステップで設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択する第４のステップと、
前記第４のステップで選択されたサーバ装置の故障が更に検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第５のステップと、
前記第４のステップで選択されたサーバ装置の復旧が検出された場合に、前記復旧したサーバ装置の選択を維持する第６のステップと
を含むことを特徴とするクライアント装置によるサーバ装置の負荷分散方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、携帯電話機やパーソナルコンピュータなどの複数のクライアント装置が、移動通信網や固定通信網などの通信網を介して複数のサーバ装置に接続されて構成される通信システムにおいて、各サーバ装置に掛かる負荷を均等に分散する通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法に関する。
【０００２】
【従来の技術】
図１４に、第１〜第６のクライアント（クライアント装置）１１，１２，１３，１４，１５，１６が、通信網１８を介して第１〜第３のサーバ（サーバ装置）２１，２２，２３に接続されて成る従来の通信システムの構成を示す。
このような通信システムにおいては、各クライアント１１〜１６と各サーバ２１〜２３間で通信を行う場合に、各サーバ２１〜２３に掛かる負荷を均等に分散する負荷分散処理が行われ、また、何れかの各サーバ２１〜２３に故障が生じた際に、その故障を回避できるように構成されている。
【０００３】
その負荷分散処理を行う方法として、一般的にラウンドロビン選択（順次選択）方法が用いられている。このラウンドロビン選択方法は、各クライアント１１〜１６が独立して各サーバ２１〜２３を順に選択し、この選択されたサーバに接続する方法である。
また、サーバ故障が発生した際に、サービスの中断を回避するため、各クライアント１１〜１６において、各サーバ２１〜２３の故障・復旧を検出することが重要となる。
【０００４】
これまでのクライアントにおけるサーバ故障及び復旧の検出方法として次のような方法が適用されていた。アプリケーションレベルの信号を一定間隔で送受信し、この信号を、ある時間連続して受信できない場合には相手装置の故障と判断し、更に、故障検出後も一定時間、送受信信号の監視を行い、信号を受信した時点で故障復旧と判断していた。この他、サーバが故障復旧後に復旧した旨を、全てのクライアントに通知するといった方法が用いられている。
【０００５】
これらの方法は、クライアント及びサーバの本来の通信に使用しないプロトコルをクライアント及びサーバにて別途規定したり、サービスで使用しているプロトコルを拡張したりする必要がある。
つまり、図１５のプロトコルスタック構成図に示すように、異機種間のデータ通信を実現するためのネットワーク構造であるＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）階層モデル（レイヤ機能モジュール）において、データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ物理層のレイヤ１同士を接続する。
【０００６】
また、通信相手との物理的な通信路を確保し、通信路を流れるデータのエラー検出などを行なうデータリンク層のレイヤ２同士を接続し、また、相手までデータを届けるための通信経路の選択や、通信経路内のアドレス（住所）の管理を行なうネットワーク層のレイヤ３同士を接続し、更に、データ通信を利用した様々なサービスを人間や他のプログラムに提供するレイヤ７であるプリケーションレイヤ同士を接続する必要がある。
【０００７】
これらのような従来の通信システムとして、例えば特許文献１および２に記載のものがある。
特許文献１の「サーバ切り替え装置および方法とサーバ切り替えプログラムを記録した記録媒体」の内容は、障害の発生を検知した場合、障害の発生をユーザに意識させずに他の同一コンテンツの配信サーバに自動的に切り替え、切断されたデータ位置からデータを送信し得るようにするものである。
【０００８】
これを実現するために、複数の情報配信サーバのアドレスを優先順位の高い順に管理し、優先順位の高い少なくとも２つのアドレスを選択し、該情報配信サーバにクライアントを接続すべく要求して接続し、最も早く応答した情報配信サーバを選択する。該情報配信サーバからデータを受信し、データ受信中に障害の発生が検出された場合、データ受信をクライアントに対して行っていた情報配信サーバ以外の前記接続処理を行った他の情報配信サーバにデータ要求を行う。このデータ要求に対して最も早く応答した情報配信サーバからデータを受信するようになっている。
【０００９】
また、特許文献２の「スキャナプリンタサーバーシステムのデータ通信制御方法」の内容は、アプリケーションから入出力要求に応じてクライアントがサーバに発行する所定のパケットに対する応答パケットの発行状態を所定時間監視し、所定時間内に応答パケットがサーバより発行されない場合に、アプリケーションに対してサーバの異常状態を応答する。クライアントは、その応答後、サーバに対して異常状態を回復させるための所定のパケットを発行する。又は、その応答後、サーバに対して異常状態を回復させるため異常発生前に発行した同一のパケットを所定数回発行するようになっている。
【００１０】
【特許文献１】
特開２０００−９９４３５号公報（要約書）
【特許文献２】
特開平８−１６４９３号公報（要約書）
【００１１】
【発明が解決しようとする課題】
しかし、従来の通信システムにおいて、ラウンドロビン選択方法を用いた方法では、各クライアント１１〜１６が独立して何れかのサーバ２１〜２３を選択するため、瞬間的に特定のサーバ（例えば２２）に負荷が集中するという問題がある。
また、クライアントとサーバ間でアプリケーションレベルの信号を一定間隔で送受信して故障／復旧を判断したり、サーバが復旧後に復旧した旨を全てのクライアントに通知したりする方法では、図１５に一例を示したように、クライアント及びサーバが本来通信に使用しないプロトコルを別途規定、拡張する必要があるので、その分、コスト高となる問題がある。
【００１２】
更に、本来通信で使用することのないアプリケーションレベルの信号がクライアントとサーバ間のネットワークに大量に発生するので、通信トラフィック量が増大するといった問題点がある。
また、特許文献１の内容は、サーバ異常（故障）に対応するために、クライアントが一旦、少なくとも２つのサーバに接続しなければならないので、この接続を多くのクライアントが行うことを考えると、その分、通信トラフィック量が増大するという問題がある。
【００１３】
更に、特許文献２の内容は、サーバが異常（故障）状態の場合に、クライアントがサーバに対して異常状態を復旧させるための所定のパケットを発行するか、異常状態を復旧させるため異常発生前に発行した同一のパケットを所定数回発行するようになっているが、サーバの異常が復旧するまで待たなければならないので、その間、本来の通信が行えなくなるという問題がある。
【００１４】
本発明は、このような課題に鑑みてなされたものであり、特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができる通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法を提供することを目的としている。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１による通信システムは、複数のクライアント装置が、通信網を介して複数のサーバ装置の少なくとも１つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理が行われる通信システムにおいて、前記クライアント装置に、前記複数のサーバ装置の少なくとも１つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、前記複数のサーバ装置の故障及び復旧の少なくとも１つを検出する検出手段と、前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段とを備えたことを特徴としている。
【００１６】
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【００１７】
また、本発明の請求項２によるクライアント装置は、通信網を介して複数のサーバ装置の少なくとも１つと通信を行うクライアント装置において、前記複数のサーバ装置の少なくとも１つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、前記複数のサーバ装置の故障及び復旧の少なくとも１つを検出する検出手段と、前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段とを備えたことを特徴としている。
【００１８】
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【００１９】
また、本発明の請求項３によるクライアント装置は、請求項２において、前記設定手段には、前記優先順位が、前記サーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定されていることを特徴としている。
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【００２０】
また、本発明の請求項４によるクライアント装置は、請求項２または３において、前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の故障が前記検出手段で検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択することを特徴としている。
【００２１】
この構成によれば、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができ、故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
また、本発明の請求項５によるクライアント装置は、請求項２から４の何れか１項において、前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の復旧が前記検出手段で検出された場合に、前記復旧したサーバ装置の選択を維持することを特徴としている。
【００２２】
この構成によれば、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができ、復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。従って、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
【００２３】
また、本発明の請求項６によるクライアント装置によるサーバ装置の負荷分散方法は、通信網を介して複数のサーバ装置の少なくとも１つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理を行うクライアント装置によるサーバ装置の負荷分散方法において、前記複数のサーバ装置の少なくとも１つを選択するために参照する優先順位の設定を行い、この設定の際に、前記優先順位をもとにサーバ装置を選択した場合、前記複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように行う第１のステップと、前記複数のサーバ装置の故障及び復旧の少なくとも１つを検出する第２のステップと、前記第１のステップで設定された優先順位をもとにサーバ装置を選択し、前記第２のステップで、その選択中のサーバ装置の故障が検出された際に、前記第１のステップで設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第３のステップと、前記第２のステップにおける前記サーバ装置の故障検出時から一定時間経過後に、前記第１のステップで設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択する第４のステップと、前記第４のステップで選択されたサーバ装置の故障が更に検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第５のステップと、前記第４のステップで選択されたサーバ装置の復旧が検出された場合に、前記復旧したサーバ装置の選択を維持する第６のステップとを含むことを特徴としている。
【００２４】
この方法によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【００２５】
また、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができる。
この確認の結果、故障したサーバ装置が依然故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
【００２６】
一方、その確認の結果、故障したサーバ装置が復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。従って、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
（実施の形態）
図１は、本発明の実施の形態に係る通信システムの構成を示すブロック図である。但し、図１に示す本実施の形態において、図１４に示した従来例の各部に対応する部分には同一符号を付す。
【００２８】
この図１に示す通信システムは、第１〜第６のクライアント（クライアント装置）３１，３２，３３，３４，３５，３６が、通信網１８を介して第１〜第３のサーバ（サーバ装置）２１，２２，２３に接続されて構成されている。また、各クライアント３１〜３６と各サーバ２１〜２３間で通信を行う場合に、各サーバ２１〜２３に掛かる負荷を均等に分散する負荷分散処理が行われ、また、何れかの各サーバ２１〜２３に故障が生じた際に、その故障を後述する機能で回避できるように構成されている。
【００２９】
各クライアント３１〜３６は、各々同一構成であり、第１のクライアント３１を代表して図示するように、通信制御部４１と、要求情報生成部４３と、応答情報解析処理部４５と、メモリ（図示せず）に記憶されたサーバ優先順位設定テーブル４７と、サーバ選択制御部４９と、選択中サーバ情報管理部５１と、タイマ管理部５３と、応答待ちタイマ５５と、接続先切替タイマ５７とを備えて構成されている。
【００３０】
各サーバ２１〜２３は、各々同一構成であり、第１のサーバ２１を代表して図示するように、通信制御部６１と、要求情報解析処理部６３と、応答情報生成部６５とを備えて構成されている。
次に、これらの構成要素の説明を行う。
通信制御部４１は、通信網１８を介して各サーバ２１〜２３と通信を行うものである。
【００３１】
応答情報生成部４３は、各サーバ２１〜２３に対する要求情報を生成するものである。
要求情報解析処理部４５は、各サーバ２１〜２３からの応答情報を解析し、この解析内容に応じた処理を行うものである。
サーバ優先順位設定テーブル４７は、図２に示すように、各クライアント３１〜３６が通信を行う各サーバ２１〜２３の優先順位１，２，３を定めるものである。優先順位１，２，３は、各クライアント３１〜３６が通信時に選択する各サーバ２１〜２３の負荷が均等になるように設定されている。
【００３２】
この例では、第１及び第２のクライアント３１，３２の優先順位１のサーバに第１のサーバ２１が対応付けられ、第３及び第４のクライアント３３，３４の優先順位１のサーバに第２のサーバ２２が対応付けられ、第５及び第６のクライアント３５，３６の優先順位１のサーバに第３のサーバ２３が対応付けられて設定されている。
【００３３】
また、第１及び第２のクライアント３１，３２の優先順位２のサーバに第２及び第３のサーバ２２，２３が対応付けられ、優先順位３のサーバに第３及び第２のサーバ２３，２２が対応付けられて設定されている。
また、第３及び第４のクライアント３３，３４の優先順位２のサーバに第３及び第１のサーバ２３，２１が対応付けられ、優先順位３のサーバに第１及び第３のサーバ２１，２３が対応付けられて設定されている。
【００３４】
また、第５及び第６のクライアント３５，３６の優先順位２のサーバに第１及び第２のサーバ２１，２２が対応付けられ、優先順位３のサーバに第２及び第１のサーバ２２，２１が対応付けられて設定されている。
つまり、あるサーバが故障した場合でも、残りのサーバに負荷が均等に分散されるような組み合わせに設定されている。このような組み合わせで各クライアント３１〜３６が通信時に各サーバ２１〜２３を選択することによって、図３に示すように、全サーバ２１〜２３が正常に動作している場合は、各サーバ２１〜２３に掛かる負荷が均等に分散される。
【００３５】
また、図４に示すように、第２のサーバ２２が故障した場合は、後述する故障時の制御時にテーブル４７の内容を用いることで、残りのサーバ２１，２３に掛かる負荷を均等に分散させることが可能となるように成されている。
選択中サーバ情報管理部５１は、後述で説明するサーバ選択制御部４９によって選択された現在選択中のサーバの情報を管理するものである。
【００３６】
この管理は、例えば図５（ａ）及び（ｂ）に示すように、各優先順位１，２，３毎に、サーバ名、サーバアドレス、現在選択中フラグが対応付けられて行われる。サーバ選択制御部４９で選択されたサーバが、第１のサーバ２１であるとすると、図５（ａ）に示すように、優先順位１の行の現在選択中フラグに○が付けられる。第２のサーバ２２であるとすると、図５（ｂ）に示すように、優先順位２の行の現在選択中フラグに○が付けられる。
【００３７】
タイマ管理部５３は、サーバ選択制御部４９でサーバ（例えば、第１のサーバ２１）が選択された際に、応答待ちタイマ５５を起動し、この起動中に、選択サーバ２１から返信される応答情報が通信制御部４１で受信された際に、起動中の応答待ちタイマ５５を停止する制御を行う。
また、タイマ管理部５３は、起動中の応答待ちタイマ５５がタイムアウトしたことを検出すると、そのタイムアウトの情報を、サーバ選択制御部４９を介して通信制御部４１へ通知するものである。この場合、タイムアウトの情報はサーバ選択制御部４９へも通知される。
【００３８】
また、タイマ管理部５３は、応答待ちタイマ５５のタイムアウトを検出した場合に、接続先切替タイマ５７を起動し、この起動中の接続先切替タイマ５７の満了を検出すると、その満了の情報を、サーバ選択制御部４９を介して通信制御部４１へ通知する。この場合、満了の情報はサーバ選択制御部４９へも通知される。
【００３９】
サーバ選択制御部４９は、クライアント（例えば、第１のクライアント３１）において、サーバに接続するためのユーザＩＤ及びパスワードなどをキー情報とした問い合わせ操作が行われた場合に、サーバ優先順位設定テーブル４７を参照することによって優先順位１の第１のサーバ２１を選択し、この選択内容を、選択中サーバ情報管理部５１に設定する制御を行うものである。この場合、図５（ａ）に示すように、優先順位１の行の現在選択中フラグに○を付ける。
【００４０】
また、サーバ選択制御部４９は、タイマ管理部５３から応答待ちタイマ５５のタイムアウトが通知された場合に、図６に×で示すように、現在選択中の第１のサーバ２１に故障が発生していると判定し、同図６に示すように、現在の優先順位１よりも１つ低い優先順位２の第２のサーバ２２を選択する。つまり、図５（ｂ）に示すように、優先順位２の行の現在選択中フラグに○を付ける。この場合には、図６に示すように、タイマ管理部５３によって接続先切替タイマ５７が起動されることになる。
【００４１】
また、サーバ選択制御部４９は、図７に示すように、接続先切替タイマ５７が起動中の場合は、故障以外の第２のサーバ２２に接続する制御を行う。
また、サーバ選択制御部４９は、図８に示すように、サーバ故障中に接続先切替タイマ５７が満了となると、同図８に矢印Ｙ１で示すように、一旦は優先順位１への切替によって第１のサーバ２１を選択するが、第１のサーバ２１からの応答が無く、応答待ちタイマ５５がタイムアウトすると、これをトリガとして、現在の優先順位１よりも１つ低い優先順位２の第２のサーバ２２を選択する。つまり、図５（ｂ）に示すように、優先順位２の行の現在選択中フラグに○を付ける。これによって、第２のサーバ２２を継続して選択する。
【００４２】
更に、サーバ選択制御部４９は、図９に示すように、サーバ復旧後に接続先切替タイマ５７が満了となると、同図９に示すように、現在の優先順位２よりも１つ高い優先順位１の第１のサーバ２１を選択する。つまり、図５（ａ）に示すように、優先順位１の行の現在選択中フラグに○を付ける。これによって、図９に矢印Ｙ２で示すように第１のサーバ２１を選択する。
【００４３】
各サーバ２１〜２３の通信制御部６１は、通信網１８を介して各クライアント３１〜３６と通信を行うものである。
要求情報解析処理部６３は、通信制御部６１で受信された各クライアント３１〜３６からの要求情報を解析し、この解析内容に応じた処理を行うものである。応答情報生成部６５は、要求情報解析処理部６３での処理結果に応じた応答情報を生成するものである。
【００４４】
次に、このような構成の通信システムにおいて、クライアント−サーバ間の通信時に実行されるサーバ故障／復旧時の対応を含む負荷分散処理の動作を、図１０〜図１３に示すシーケンス図を参照して説明する。
図１０のステップＳ１において、例えば第１のクライアント３１で操作者の入力操作によって第１のサーバ２１へのイベントが発生したとする。これによって、ステップＳ２において、要求情報生成部４３から第１のサーバ２１に対する要求情報が発生する。即ち、このステップＳ１，Ｓ２では、第１のクライアント３１が第１のサーバ２１に接続してよいかを、ユーザＩＤ及びパスワードなどをキー情報として問い合わせる操作が行われる。
【００４５】
また、この操作に応じてステップＳ３にて、サーバ選択制御部４９で、第１のサーバ２１が選択される。これは、サーバ選択制御部４９の制御によって、サーバ優先順位設定テーブル４７が参照され、第１のクライアント３１に割り当てられた優先順位１の第１のサーバ２１が選択される。また、その選択内容は、選択中サーバ情報管理部５１で管理される。例えば、図５（ａ）に示すように、優先順位１の行の現在選択中フラグに○が付けられる。
【００４６】
また、この際ステップＳ４において、タイマ管理部５３の制御によって応答待ちタイマ５５が起動される。
そして、ステップＳ５において、通信制御部４１の制御によって、タイマ管理部５３で○が付けられた行のサーバアドレス「１９２．１６８．０．１」で示される第１のサーバ２１へ、通信網１８を介して要求情報が送信される。
【００４７】
第１のサーバ２１では、通信制御部６１で、その要求情報が受信される。この要求情報は、要求情報解析処理部６３において解析処理される。例えば、ユーザＩＤ及びパスワードの妥当性チェックによる接続可否の判定が行われる。この判定結果（解析処理結果）は応答情報生成部６５へ出力され、応答情報生成部６５において、その判定結果である接続可否を示す応答情報が生成される。ここでは、接続可能の情報が生成されたとする。この応答情報は、ステップＳ６において、通信制御部６１の制御によって通信網１８を介して第１のクライアント３１へ返信される。
【００４８】
この返信された応答情報を通信制御部４１で受信した第１のクライアント３１では、ステップＳ７において、タイマ管理部５３の制御によって応答待ちタイマ５５が停止される。同時に、ステップＳ８において、受信応答情報が応答情報解析処理部４５へ通知され、ステップＳ９にて、応答情報解析処理部４５で応答情報の解析処理が行われる。この場合、第１のサーバ２１へ接続するための処理が行われる。そして、ステップＳ１０において、その処理結果が通信制御部４１へ通知され、第１のクライアント３１が第１のサーバ２１に接続され、ステップＳ１１において、一連の処理が完了（イベント完了）する。
【００４９】
次に、ステップＳ１２において、第１のサーバ２１が故障したとする。この場合に、ステップＳ１３において、第１のクライアント３１でイベントが発生したとすると、ステップＳ１４において、要求情報生成部４３から第１のサーバ２１に対する要求情報が発生し、更に、ステップＳ１５において、サーバ選択制御部４９で、第１のサーバ２１が選択され、ステップＳ１６において、タイマ管理部５３の制御によって応答待ちタイマ５５が起動される。そして、ステップＳ１７において、通信制御部４１の制御によって要求情報が通信網１８を介して第１のサーバ２１へ送信される。
【００５０】
この際、第１のサーバ２１では故障が発生しているので、通信制御部６１も動作せず、第１のクライアント３１では要求に対する応答が受信できない状態も生じる。
この状態が継続すると、第１のクライアント３１では、図１１のステップＳ１８において、応答待ちタイマ５５がタイムアウトとなって、これがタイマ管理部５３で検出され、ステップＳ１８ａにおいて、そのタイムアウトの情報がサーバ選択制御部４９を介して通信制御部４１へ通知される。
【００５１】
サーバ選択制御部４９では、応答待ちタイマ５５のタイムアウトが通知されると、ステップＳ１９において、現在選択中の第１のサーバ２１に故障が発生していると判定され、選択中サーバ情報管理部５１における現在選択中サーバが、現在の優先順位１よりも１つ低い優先順位２のサーバに設定される。つまり、図５（ｂ）に示すように、優先順位２の行の現在選択中フラグに○が付けられる。
【００５２】
これと同時に、ステップＳ２０において、タイマ管理部５３の制御によって接続先切替タイマ５７が起動され、ステップＳ２１において、イベント完了となる。
また、接続先切替タイマ５７の起動後は、そのタイマ５７が満了するまでの間、サーバに対して要求情報を送信する場合、先の優先順位を下げる処理によって設定された第２のサーバ２２へ送信することとなる。
【００５３】
即ち、ステップＳ２２において、第１のクライアント３１でイベントが発生したとすると、ステップＳ２３において、要求情報生成部４３から第２のサーバ２２に対する要求情報が発生し、更に、ステップＳ２４において、サーバ選択制御部４９で、第２のサーバ２２が選択され、ステップＳ２５において、タイマ管理部５３の制御によって応答待ちタイマ５５が起動される。
【００５４】
そして、ステップＳ２６において、通信制御部４１の制御によって、タイマ管理部５３で○が付けられた行のサーバアドレス「１９２．１６８．０．２」で示される第２のサーバ２２へ、通信網１８を介して要求情報が送信される。
第２のサーバ２２では、通信制御部６１で、その要求情報が受信される。この要求情報は、要求情報解析処理部６３において解析処理される。例えば、ユーザＩＤ及びパスワードの妥当性チェックによる接続可否の判定が行われる。
【００５５】
そして、応答情報生成部６５において、その判定結果である例えば接続可能の応答情報が生成さる。この応答情報は、ステップＳ２７において、通信制御部６１の制御によって通信網１８を介して第１のクライアント３１へ返信される。
この返信された応答情報を通信制御部４１で受信した第１のクライアント３１では、ステップＳ２８において、タイマ管理部５３の制御によって応答待ちタイマ５５が停止され、同時に、ステップＳ２９において、受信応答情報が応答情報解析処理部４５へ通知され、ステップＳ３０にて、応答情報解析処理部４５で応答情報の解析処理が行われる。この場合、第２のサーバ２２へ接続するための処理が行われる。そして、ステップＳ３１において、その処理結果が通信制御部４１へ通知され、第１のクライアント３１が第２のサーバ２２に接続され、ステップＳ３２において、イベントが完了する。
【００５６】
その後、ステップＳ３３において、接続先切替タイマ５７が満了すると、これがタイマ管理部５３で検出され、ステップＳ３４において、その満了の情報がサーバ選択制御部４９を介して通信制御部４１へ通知される。
サーバ選択制御部４９では、接続先切替タイマ５７の満了が通知されると、この満了をトリガとして、ステップＳ３５において、選択中サーバ情報管理部５１における現在選択中サーバが、現在の優先順位２よりも１つ高い優先順位１のサーバに設定される。つまり、図５（ａ）に示すように、優先順位１の行の現在選択中フラグに○が付けられる。
【００５７】
この後、ステップＳ３６において、第１のクライアント３１でイベントが発生したとすると、ステップＳ３７において、要求情報生成部４３から第１のサーバ２１に対する要求情報が発生し、更に、ステップＳ３８において、サーバ選択制御部４９で、第１のサーバ２１が選択され、ステップＳ３９において、タイマ管理部５３の制御によって応答待ちタイマ５５が起動される。そして、ステップＳ４０において、通信制御部４１の制御によって要求情報が通信網１８を介して第１のサーバ２１へ送信される。
【００５８】
この場合、第１のサーバ２１において、上記ステップＳ１２で発生した故障が継続している場合は、ステップＳ４１において、応答待ちタイマ５５がタイムアウトとなって、これがタイマ管理部５３で検出され、ステップＳ４２において、そのタイムアウトの情報がサーバ選択制御部４９を介して通信制御部４１へ通知される。
【００５９】
サーバ選択制御部４９では、応答待ちタイマ５５のタイムアウトが通知されると、ステップＳ４３において、現在選択中の第１のサーバ２１に故障が発生していると判定され、選択中サーバ情報管理部５１における現在選択中サーバが優先順位の１つ低いサーバに設定される。つまり、図５（ｂ）に示すように、優先順位２の行の現在選択中フラグに○が付けられる。
【００６０】
これと同時に、ステップＳ４４において、タイマ管理部５３の制御によって接続先切替タイマ５７が起動され、ステップＳ４５において、イベント完了となる。
この後、図１３のステップＳ４６において、第１のサーバ２１が復旧したとする。
【００６１】
この復旧後、ステップＳ４７において、接続先切替タイマ５７が満了すると、これがタイマ管理部５３で検出され、ステップＳ４８において、その満了の情報がサーバ選択制御部４９を介して通信制御部４１へ通知される。
サーバ選択制御部４９では、接続先切替タイマ５７の満了が通知されると、この満了をトリガとして、ステップＳ４９において、選択中サーバ情報管理部５１における現在選択中サーバが優先順位の１つ高いサーバに設定される。つまり、図５（ａ）に示すように、優先順位１の行の現在選択中フラグに○が付けられる。
【００６２】
この後、ステップＳ５０において、第１のクライアント３１でイベントが発生したとすると、ステップＳ５１において、要求情報生成部４３から第１のサーバ２１に対する要求情報が発生し、更に、ステップＳ５２において、サーバ選択制御部４９で、第１のサーバ２１が選択され、ステップＳ５３において、タイマ管理部５３の制御によって応答待ちタイマ５５が起動される。そして、ステップＳ５４において、通信制御部４１の制御によって要求情報が通信網１８を介して第１のサーバ２１へ送信される。
【００６３】
第１のサーバ２１では、通信制御部６１で、その要求情報が受信される。この要求情報は、要求情報解析処理部６３の解析処理において、ユーザＩＤ及びパスワードの妥当性チェックによる接続可否の判定が行われる。そして、応答情報生成部６５において、その判定結果である例えば接続可能の応答情報が生成さる。この応答情報は、ステップＳ５５において、通信制御部６１の制御によって通信網１８を介して第１のクライアント３１へ返信される。
【００６４】
この返信された応答情報を通信制御部４１で受信した第１のクライアント３１では、ステップＳ５６において、タイマ管理部５３の制御によって応答待ちタイマ５５が停止され、同時に、ステップＳ５７において、受信応答情報が応答情報解析処理部４５へ通知され、ステップＳ５８にて、応答情報解析処理部４５で応答情報の解析処理が行われる。この場合、第１のサーバ２１へ接続するための処理が行われる。そして、ステップＳ５９において、その処理結果が通信制御部４１へ通知され、第１のクライアント３１が第１のサーバ２１に接続され、ステップＳ６０において、イベントが完了する。
【００６５】
このように、本実施の形態の通信システムによれば、クライアント（例えば、３１）が、通信網１８を介して各サーバ２１〜２３の少なくとも１つと通信を行う場合に、サーバ優先順位設定テーブル４７による設定手段によって、各サーバ２１〜２３の少なくとも１つを選択するために参照する優先順位の設定を行い、この設定の際に、その優先順位をもとに例えばサーバ２１を選択した場合、複数のサーバ２１に均等に負荷が掛かり、且つサーバ２１が故障した場合でも残りのサーバ２１に均等に負荷が掛かるように行う。
【００６６】
また、タイマ管理部５３、応答待ちタイマ５５及び接続先切替タイマ５７の３要素による検出手段によって、サーバ２１の故障及び復旧の少なくとも１つを検出する。
更に、サーバ選択制御部４９及び選択中サーバ情報管理部５１による選択手段によって、選択手段に設定された優先順位をもとにサーバ２１を選択し、その選択中のサーバ２１の故障が検出手段で検出された際に、その設定された優先順位を参照して、現在選択中のサーバ２１の選択に用いた優先順位よりも低い優先順位のサーバ２２を選択する。そして、選択手段によって、サーバ２１の故障検出時から一定時間経過後に、選択手段に設定された優先順位を参照して、故障が検出されたサーバ２１を選択する。
【００６７】
この選択されたサーバ２１の故障が更に検出された場合に、再度、優先順位を参照して、故障が検出されたサーバ２１の選択に用いた優先順位よりも低い優先順位のサーバ２２を選択する。
そして、選択手段は、上記で選択されたサーバ２１の復旧が検出手段で検出された場合に、復旧したサーバ２１の選択を維持する。
【００６８】
つまり、優先順位をもとにサーバ２１を選択した際に、各サーバ２１〜２３に均等に負荷が掛かり、且つサーバ２１が故障した場合でも残りのサーバ２２，２３に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ２１が故障しても、その優先順位を参照して、現在選択中のサーバ２１の選択に用いた優先順位よりも低い優先順位のサーバ２２を選択するようにした。これによって、サーバ故障時でも、特定のサーバに負荷が集中しないように、迅速に代わりのサーバ２２を選択することができる。
【００６９】
また、サーバ２１の故障検出によって他のサーバ２２を選択した後でも、優先順位を参照して、故障検出されたサーバ２１を選択することによって、そのサーバ２１が故障中であるか否かを確認することができる。この確認の結果、故障したサーバ２１が依然故障中であれば、再度、他のサーバ２２を選択することを自動的に行うことができる。
【００７０】
一方、その確認の結果、故障したサーバ２１が復旧していれば、この復旧したサーバ２１の選択を維持することによって通信を行うことができる。これによって、無駄な接続変更を行うことなしに、復旧したサーバ２１との通信を再開することができる。
以上のことから、従来のラウンドロビン選択方法のように各クライアント３１〜３６が独立して何れかのサーバ２１〜２３を選択するこによって、瞬間的に特定のサーバ（例えば２２）に負荷が集中するということが無くなる。
【００７１】
また、他の従来技術のように、クライアント及びサーバが本来通信に使用しないプロトコルを別途規定、拡張する必要が無いので、余計な設備コストが掛かることはない。更に、従来のように本来通信で使用することのないアプリケーションレベルの信号を用いないので、クライアントとサーバ間のネットワークに信号が大量に発生し、通信トラフィック量が増大するといったことが無くなる。
【００７２】
また、他の従来技術のように、サーバ異常（故障）に対応するために、クライアントが一旦、少なくとも２つのサーバに接続することが無いので、その２つのサーバへの接続を多くのクライアントが行うことによる通信トラフィック量の増大は発生しない。
更に、他の従来技術のように、サーバが異常（故障）状態の場合に、クライアントがサーバに対して異常状態を復旧させるための所定のパケットを発行するか、異常状態を復旧させるため異常発生前に発行した同一のパケットを所定数回発行することによってサーバの異常が復旧するまで待たなければならないといったことも無いので、サーバの異常復旧時に、本来の通信が行えなくなるといったことも無くなる。
【００７３】
従って、特定のサーバに負荷が集中しないようにすることができ、サーバ２１故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、各クライアント３１〜３６と各サーバ２１〜２３間の本来の通信を迅速に行うことができる。
【００７４】
【発明の効果】
以上説明したように本発明は、クライアント装置が、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【００７５】
また、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができる。この確認の結果、故障したサーバ装置が依然故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
【００７６】
一方、その確認の結果、故障したサーバ装置が復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。これによって、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
従って、特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るクライアントとサーバ間で通信が行われる通信システムの構成を示すブロック図である。
【図２】上記実施の形態に係る通信システムにおけるクライアントのサーバ優先順位設定テーブルの構成例を示す図である。
【図３】上記実施の形態に係る通信システムにおいて、全サーバが正常動作中に各サーバに掛かる負荷が均等に分散された状態を示す図である。
【図４】上記実施の形態に係る通信システムにおいて、第２のサーバの故障時に残りのサーバに掛かる負荷を均等に分散させた状態を示す図である。
【図５】上記実施の形態に係る通信システムにおけるクライアントの選択中サーバ情報管理部の状態を示す図である。
【図６】上記実施の形態に係る通信システムにおいて、第１のサーバに故障が発生した際に第２のサーバを選択する処理の様態を示す図である。
【図７】上記実施の形態に係る通信システムにおいて、第１のサーバが故障中に第２のサーバに接続する処理の様態を示す図である。
【図８】上記実施の形態に係る通信システムにおいて、第１のサーバの故障中に、第１のクライアンの接続先切替タイマが満了した場合の処理の様態を示す図である。
【図９】上記実施の形態に係る通信システムにおいて、第１のサーバの復旧後に、接続先切替タイマが満了した場合の処理の様態を示す図である。
【図１０】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障／復旧時の対応を含む負荷分散処理の動作を説明するための第１のシーケンス図である。
【図１１】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障／復旧時の対応を含む負荷分散処理の動作を説明するための第２のシーケンス図である。
【図１２】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障／復旧時の対応を含む負荷分散処理の動作を説明するための第３のシーケンス図である。
【図１３】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障／復旧時の対応を含む負荷分散処理の動作を説明するための第４のシーケンス図である。
【図１４】従来のクライアントとサーバ間で通信が行われる通信システムの構成を示すブロック図である。
【図１５】従来のクライアントとサーバが本来通信に使用しないプロトコルを別途規定、拡張する場合の一例を示すプロトコルスタック構成図である。
【符号の説明】
２１  第１のサーバ（サーバ装置）
２２  第２のサーバ（サーバ装置）
２３  第３のサーバ（サーバ装置）
３１  第１のクライアント（クライアント装置）
３２  第２のクライアント（クライアント装置）
３３  第３のクライアント（クライアント装置）
３４  第４のクライアント（クライアント装置）
３５  第５のクライアント（クライアント装置）
３６  第６のクライアント（クライアント装置）
４１，６１  通信制御部
４３，６５  要求情報生成部
４５，６３  応答情報解析処理部
４７  サーバ優先順位設定テーブル
４９  サーバ選択制御部
５１  選択中サーバ情報管理部
５３  タイマ管理部
５５  応答待ちタイマ
５７  接続先切替タイマ
６１  通信制御部
【図１】
2004295656.tif 000003
【図２】
2004295656.tif 000004
【図３】
2004295656.tif 000005
【図４】
2004295656.tif 000006
【図５】
2004295656.tif 000007
【図６】
2004295656.tif 000008
【図７】
2004295656.tif 000009
【図８】
2004295656.tif 000010
【図９】
2004295656.tif 000011
【図１０】
2004295656.tif 000012
【図１１】
2004295656.tif 000013
【図１２】
2004295656.tif 000014
【図１３】
2004295656.tif 000015
【図１４】
2004295656.tif 000016
【図１５】
2004295656.tif 000017