JP2004295656A - 通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法 - Google Patents
通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法 Download PDFInfo
- Publication number
- JP2004295656A JP2004295656A JP2003088983A JP2003088983A JP2004295656A JP 2004295656 A JP2004295656 A JP 2004295656A JP 2003088983 A JP2003088983 A JP 2003088983A JP 2003088983 A JP2003088983 A JP 2003088983A JP 2004295656 A JP2004295656 A JP 2004295656A
- Authority
- JP
- Japan
- Prior art keywords
- server
- priority
- server device
- failure
- selecting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができる通信システムを提供する
【解決手段】優先順位をもとにサーバ21を選択した際に、各サーバ21〜23に均等に負荷が掛かり、且つサーバ21が故障した場合でも残りのサーバ22,23に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ21が故障しても、その優先順位を参照して、現在選択中のサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択する。これによって、サーバ故障時でも、特定のサーバに負荷が集中しないように、迅速に代わりのサーバ22を選択する。
【選択図】 図1
【解決手段】優先順位をもとにサーバ21を選択した際に、各サーバ21〜23に均等に負荷が掛かり、且つサーバ21が故障した場合でも残りのサーバ22,23に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ21が故障しても、その優先順位を参照して、現在選択中のサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択する。これによって、サーバ故障時でも、特定のサーバに負荷が集中しないように、迅速に代わりのサーバ22を選択する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、携帯電話機やパーソナルコンピュータなどの複数のクライアント装置が、移動通信網や固定通信網などの通信網を介して複数のサーバ装置に接続されて構成される通信システムにおいて、各サーバ装置に掛かる負荷を均等に分散する通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法に関する。
【0002】
【従来の技術】
図14に、第1〜第6のクライアント(クライアント装置)11,12,13,14,15,16が、通信網18を介して第1〜第3のサーバ(サーバ装置)21,22,23に接続されて成る従来の通信システムの構成を示す。
このような通信システムにおいては、各クライアント11〜16と各サーバ21〜23間で通信を行う場合に、各サーバ21〜23に掛かる負荷を均等に分散する負荷分散処理が行われ、また、何れかの各サーバ21〜23に故障が生じた際に、その故障を回避できるように構成されている。
【0003】
その負荷分散処理を行う方法として、一般的にラウンドロビン選択(順次選択)方法が用いられている。このラウンドロビン選択方法は、各クライアント11〜16が独立して各サーバ21〜23を順に選択し、この選択されたサーバに接続する方法である。
また、サーバ故障が発生した際に、サービスの中断を回避するため、各クライアント11〜16において、各サーバ21〜23の故障・復旧を検出することが重要となる。
【0004】
これまでのクライアントにおけるサーバ故障及び復旧の検出方法として次のような方法が適用されていた。アプリケーションレベルの信号を一定間隔で送受信し、この信号を、ある時間連続して受信できない場合には相手装置の故障と判断し、更に、故障検出後も一定時間、送受信信号の監視を行い、信号を受信した時点で故障復旧と判断していた。この他、サーバが故障復旧後に復旧した旨を、全てのクライアントに通知するといった方法が用いられている。
【0005】
これらの方法は、クライアント及びサーバの本来の通信に使用しないプロトコルをクライアント及びサーバにて別途規定したり、サービスで使用しているプロトコルを拡張したりする必要がある。
つまり、図15のプロトコルスタック構成図に示すように、異機種間のデータ通信を実現するためのネットワーク構造であるOSI(Open Systems Interconnection)階層モデル(レイヤ機能モジュール)において、データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ物理層のレイヤ1同士を接続する。
【0006】
また、通信相手との物理的な通信路を確保し、通信路を流れるデータのエラー検出などを行なうデータリンク層のレイヤ2同士を接続し、また、相手までデータを届けるための通信経路の選択や、通信経路内のアドレス(住所)の管理を行なうネットワーク層のレイヤ3同士を接続し、更に、データ通信を利用した様々なサービスを人間や他のプログラムに提供するレイヤ7であるプリケーションレイヤ同士を接続する必要がある。
【0007】
これらのような従来の通信システムとして、例えば特許文献1および2に記載のものがある。
特許文献1の「サーバ切り替え装置および方法とサーバ切り替えプログラムを記録した記録媒体」の内容は、障害の発生を検知した場合、障害の発生をユーザに意識させずに他の同一コンテンツの配信サーバに自動的に切り替え、切断されたデータ位置からデータを送信し得るようにするものである。
【0008】
これを実現するために、複数の情報配信サーバのアドレスを優先順位の高い順に管理し、優先順位の高い少なくとも2つのアドレスを選択し、該情報配信サーバにクライアントを接続すべく要求して接続し、最も早く応答した情報配信サーバを選択する。該情報配信サーバからデータを受信し、データ受信中に障害の発生が検出された場合、データ受信をクライアントに対して行っていた情報配信サーバ以外の前記接続処理を行った他の情報配信サーバにデータ要求を行う。このデータ要求に対して最も早く応答した情報配信サーバからデータを受信するようになっている。
【0009】
また、特許文献2の「スキャナプリンタサーバーシステムのデータ通信制御方法」の内容は、アプリケーションから入出力要求に応じてクライアントがサーバに発行する所定のパケットに対する応答パケットの発行状態を所定時間監視し、所定時間内に応答パケットがサーバより発行されない場合に、アプリケーションに対してサーバの異常状態を応答する。クライアントは、その応答後、サーバに対して異常状態を回復させるための所定のパケットを発行する。又は、その応答後、サーバに対して異常状態を回復させるため異常発生前に発行した同一のパケットを所定数回発行するようになっている。
【0010】
【特許文献1】
特開2000−99435号公報(要約書)
【特許文献2】
特開平8−16493号公報(要約書)
【0011】
【発明が解決しようとする課題】
しかし、従来の通信システムにおいて、ラウンドロビン選択方法を用いた方法では、各クライアント11〜16が独立して何れかのサーバ21〜23を選択するため、瞬間的に特定のサーバ(例えば22)に負荷が集中するという問題がある。
また、クライアントとサーバ間でアプリケーションレベルの信号を一定間隔で送受信して故障/復旧を判断したり、サーバが復旧後に復旧した旨を全てのクライアントに通知したりする方法では、図15に一例を示したように、クライアント及びサーバが本来通信に使用しないプロトコルを別途規定、拡張する必要があるので、その分、コスト高となる問題がある。
【0012】
更に、本来通信で使用することのないアプリケーションレベルの信号がクライアントとサーバ間のネットワークに大量に発生するので、通信トラフィック量が増大するといった問題点がある。
また、特許文献1の内容は、サーバ異常(故障)に対応するために、クライアントが一旦、少なくとも2つのサーバに接続しなければならないので、この接続を多くのクライアントが行うことを考えると、その分、通信トラフィック量が増大するという問題がある。
【0013】
更に、特許文献2の内容は、サーバが異常(故障)状態の場合に、クライアントがサーバに対して異常状態を復旧させるための所定のパケットを発行するか、異常状態を復旧させるため異常発生前に発行した同一のパケットを所定数回発行するようになっているが、サーバの異常が復旧するまで待たなければならないので、その間、本来の通信が行えなくなるという問題がある。
【0014】
本発明は、このような課題に鑑みてなされたものであり、特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができる通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法を提供することを目的としている。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1による通信システムは、複数のクライアント装置が、通信網を介して複数のサーバ装置の少なくとも1つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理が行われる通信システムにおいて、前記クライアント装置に、前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する検出手段と、前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段とを備えたことを特徴としている。
【0016】
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0017】
また、本発明の請求項2によるクライアント装置は、通信網を介して複数のサーバ装置の少なくとも1つと通信を行うクライアント装置において、前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する検出手段と、前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段とを備えたことを特徴としている。
【0018】
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0019】
また、本発明の請求項3によるクライアント装置は、請求項2において、前記設定手段には、前記優先順位が、前記サーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定されていることを特徴としている。
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0020】
また、本発明の請求項4によるクライアント装置は、請求項2または3において、前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の故障が前記検出手段で検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択することを特徴としている。
【0021】
この構成によれば、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができ、故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
また、本発明の請求項5によるクライアント装置は、請求項2から4の何れか1項において、前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の復旧が前記検出手段で検出された場合に、前記復旧したサーバ装置の選択を維持することを特徴としている。
【0022】
この構成によれば、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができ、復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。従って、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
【0023】
また、本発明の請求項6によるクライアント装置によるサーバ装置の負荷分散方法は、通信網を介して複数のサーバ装置の少なくとも1つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理を行うクライアント装置によるサーバ装置の負荷分散方法において、前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位の設定を行い、この設定の際に、前記優先順位をもとにサーバ装置を選択した場合、前記複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように行う第1のステップと、前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する第2のステップと、前記第1のステップで設定された優先順位をもとにサーバ装置を選択し、前記第2のステップで、その選択中のサーバ装置の故障が検出された際に、前記第1のステップで設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第3のステップと、前記第2のステップにおける前記サーバ装置の故障検出時から一定時間経過後に、前記第1のステップで設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択する第4のステップと、前記第4のステップで選択されたサーバ装置の故障が更に検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第5のステップと、前記第4のステップで選択されたサーバ装置の復旧が検出された場合に、前記復旧したサーバ装置の選択を維持する第6のステップとを含むことを特徴としている。
【0024】
この方法によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0025】
また、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができる。
この確認の結果、故障したサーバ装置が依然故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
【0026】
一方、その確認の結果、故障したサーバ装置が復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。従って、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
(実施の形態)
図1は、本発明の実施の形態に係る通信システムの構成を示すブロック図である。但し、図1に示す本実施の形態において、図14に示した従来例の各部に対応する部分には同一符号を付す。
【0028】
この図1に示す通信システムは、第1〜第6のクライアント(クライアント装置)31,32,33,34,35,36が、通信網18を介して第1〜第3のサーバ(サーバ装置)21,22,23に接続されて構成されている。また、各クライアント31〜36と各サーバ21〜23間で通信を行う場合に、各サーバ21〜23に掛かる負荷を均等に分散する負荷分散処理が行われ、また、何れかの各サーバ21〜23に故障が生じた際に、その故障を後述する機能で回避できるように構成されている。
【0029】
各クライアント31〜36は、各々同一構成であり、第1のクライアント31を代表して図示するように、通信制御部41と、要求情報生成部43と、応答情報解析処理部45と、メモリ(図示せず)に記憶されたサーバ優先順位設定テーブル47と、サーバ選択制御部49と、選択中サーバ情報管理部51と、タイマ管理部53と、応答待ちタイマ55と、接続先切替タイマ57とを備えて構成されている。
【0030】
各サーバ21〜23は、各々同一構成であり、第1のサーバ21を代表して図示するように、通信制御部61と、要求情報解析処理部63と、応答情報生成部65とを備えて構成されている。
次に、これらの構成要素の説明を行う。
通信制御部41は、通信網18を介して各サーバ21〜23と通信を行うものである。
【0031】
応答情報生成部43は、各サーバ21〜23に対する要求情報を生成するものである。
要求情報解析処理部45は、各サーバ21〜23からの応答情報を解析し、この解析内容に応じた処理を行うものである。
サーバ優先順位設定テーブル47は、図2に示すように、各クライアント31〜36が通信を行う各サーバ21〜23の優先順位1,2,3を定めるものである。優先順位1,2,3は、各クライアント31〜36が通信時に選択する各サーバ21〜23の負荷が均等になるように設定されている。
【0032】
この例では、第1及び第2のクライアント31,32の優先順位1のサーバに第1のサーバ21が対応付けられ、第3及び第4のクライアント33,34の優先順位1のサーバに第2のサーバ22が対応付けられ、第5及び第6のクライアント35,36の優先順位1のサーバに第3のサーバ23が対応付けられて設定されている。
【0033】
また、第1及び第2のクライアント31,32の優先順位2のサーバに第2及び第3のサーバ22,23が対応付けられ、優先順位3のサーバに第3及び第2のサーバ23,22が対応付けられて設定されている。
また、第3及び第4のクライアント33,34の優先順位2のサーバに第3及び第1のサーバ23,21が対応付けられ、優先順位3のサーバに第1及び第3のサーバ21,23が対応付けられて設定されている。
【0034】
また、第5及び第6のクライアント35,36の優先順位2のサーバに第1及び第2のサーバ21,22が対応付けられ、優先順位3のサーバに第2及び第1のサーバ22,21が対応付けられて設定されている。
つまり、あるサーバが故障した場合でも、残りのサーバに負荷が均等に分散されるような組み合わせに設定されている。このような組み合わせで各クライアント31〜36が通信時に各サーバ21〜23を選択することによって、図3に示すように、全サーバ21〜23が正常に動作している場合は、各サーバ21〜23に掛かる負荷が均等に分散される。
【0035】
また、図4に示すように、第2のサーバ22が故障した場合は、後述する故障時の制御時にテーブル47の内容を用いることで、残りのサーバ21,23に掛かる負荷を均等に分散させることが可能となるように成されている。
選択中サーバ情報管理部51は、後述で説明するサーバ選択制御部49によって選択された現在選択中のサーバの情報を管理するものである。
【0036】
この管理は、例えば図5(a)及び(b)に示すように、各優先順位1,2,3毎に、サーバ名、サーバアドレス、現在選択中フラグが対応付けられて行われる。サーバ選択制御部49で選択されたサーバが、第1のサーバ21であるとすると、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。第2のサーバ22であるとすると、図5(b)に示すように、優先順位2の行の現在選択中フラグに○が付けられる。
【0037】
タイマ管理部53は、サーバ選択制御部49でサーバ(例えば、第1のサーバ21)が選択された際に、応答待ちタイマ55を起動し、この起動中に、選択サーバ21から返信される応答情報が通信制御部41で受信された際に、起動中の応答待ちタイマ55を停止する制御を行う。
また、タイマ管理部53は、起動中の応答待ちタイマ55がタイムアウトしたことを検出すると、そのタイムアウトの情報を、サーバ選択制御部49を介して通信制御部41へ通知するものである。この場合、タイムアウトの情報はサーバ選択制御部49へも通知される。
【0038】
また、タイマ管理部53は、応答待ちタイマ55のタイムアウトを検出した場合に、接続先切替タイマ57を起動し、この起動中の接続先切替タイマ57の満了を検出すると、その満了の情報を、サーバ選択制御部49を介して通信制御部41へ通知する。この場合、満了の情報はサーバ選択制御部49へも通知される。
【0039】
サーバ選択制御部49は、クライアント(例えば、第1のクライアント31)において、サーバに接続するためのユーザID及びパスワードなどをキー情報とした問い合わせ操作が行われた場合に、サーバ優先順位設定テーブル47を参照することによって優先順位1の第1のサーバ21を選択し、この選択内容を、選択中サーバ情報管理部51に設定する制御を行うものである。この場合、図5(a)に示すように、優先順位1の行の現在選択中フラグに○を付ける。
【0040】
また、サーバ選択制御部49は、タイマ管理部53から応答待ちタイマ55のタイムアウトが通知された場合に、図6に×で示すように、現在選択中の第1のサーバ21に故障が発生していると判定し、同図6に示すように、現在の優先順位1よりも1つ低い優先順位2の第2のサーバ22を選択する。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○を付ける。この場合には、図6に示すように、タイマ管理部53によって接続先切替タイマ57が起動されることになる。
【0041】
また、サーバ選択制御部49は、図7に示すように、接続先切替タイマ57が起動中の場合は、故障以外の第2のサーバ22に接続する制御を行う。
また、サーバ選択制御部49は、図8に示すように、サーバ故障中に接続先切替タイマ57が満了となると、同図8に矢印Y1で示すように、一旦は優先順位1への切替によって第1のサーバ21を選択するが、第1のサーバ21からの応答が無く、応答待ちタイマ55がタイムアウトすると、これをトリガとして、現在の優先順位1よりも1つ低い優先順位2の第2のサーバ22を選択する。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○を付ける。これによって、第2のサーバ22を継続して選択する。
【0042】
更に、サーバ選択制御部49は、図9に示すように、サーバ復旧後に接続先切替タイマ57が満了となると、同図9に示すように、現在の優先順位2よりも1つ高い優先順位1の第1のサーバ21を選択する。つまり、図5(a)に示すように、優先順位1の行の現在選択中フラグに○を付ける。これによって、図9に矢印Y2で示すように第1のサーバ21を選択する。
【0043】
各サーバ21〜23の通信制御部61は、通信網18を介して各クライアント31〜36と通信を行うものである。
要求情報解析処理部63は、通信制御部61で受信された各クライアント31〜36からの要求情報を解析し、この解析内容に応じた処理を行うものである。応答情報生成部65は、要求情報解析処理部63での処理結果に応じた応答情報を生成するものである。
【0044】
次に、このような構成の通信システムにおいて、クライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を、図10〜図13に示すシーケンス図を参照して説明する。
図10のステップS1において、例えば第1のクライアント31で操作者の入力操作によって第1のサーバ21へのイベントが発生したとする。これによって、ステップS2において、要求情報生成部43から第1のサーバ21に対する要求情報が発生する。即ち、このステップS1,S2では、第1のクライアント31が第1のサーバ21に接続してよいかを、ユーザID及びパスワードなどをキー情報として問い合わせる操作が行われる。
【0045】
また、この操作に応じてステップS3にて、サーバ選択制御部49で、第1のサーバ21が選択される。これは、サーバ選択制御部49の制御によって、サーバ優先順位設定テーブル47が参照され、第1のクライアント31に割り当てられた優先順位1の第1のサーバ21が選択される。また、その選択内容は、選択中サーバ情報管理部51で管理される。例えば、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。
【0046】
また、この際ステップS4において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。
そして、ステップS5において、通信制御部41の制御によって、タイマ管理部53で○が付けられた行のサーバアドレス「192.168.0.1」で示される第1のサーバ21へ、通信網18を介して要求情報が送信される。
【0047】
第1のサーバ21では、通信制御部61で、その要求情報が受信される。この要求情報は、要求情報解析処理部63において解析処理される。例えば、ユーザID及びパスワードの妥当性チェックによる接続可否の判定が行われる。この判定結果(解析処理結果)は応答情報生成部65へ出力され、応答情報生成部65において、その判定結果である接続可否を示す応答情報が生成される。ここでは、接続可能の情報が生成されたとする。この応答情報は、ステップS6において、通信制御部61の制御によって通信網18を介して第1のクライアント31へ返信される。
【0048】
この返信された応答情報を通信制御部41で受信した第1のクライアント31では、ステップS7において、タイマ管理部53の制御によって応答待ちタイマ55が停止される。同時に、ステップS8において、受信応答情報が応答情報解析処理部45へ通知され、ステップS9にて、応答情報解析処理部45で応答情報の解析処理が行われる。この場合、第1のサーバ21へ接続するための処理が行われる。そして、ステップS10において、その処理結果が通信制御部41へ通知され、第1のクライアント31が第1のサーバ21に接続され、ステップS11において、一連の処理が完了(イベント完了)する。
【0049】
次に、ステップS12において、第1のサーバ21が故障したとする。この場合に、ステップS13において、第1のクライアント31でイベントが発生したとすると、ステップS14において、要求情報生成部43から第1のサーバ21に対する要求情報が発生し、更に、ステップS15において、サーバ選択制御部49で、第1のサーバ21が選択され、ステップS16において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。そして、ステップS17において、通信制御部41の制御によって要求情報が通信網18を介して第1のサーバ21へ送信される。
【0050】
この際、第1のサーバ21では故障が発生しているので、通信制御部61も動作せず、第1のクライアント31では要求に対する応答が受信できない状態も生じる。
この状態が継続すると、第1のクライアント31では、図11のステップS18において、応答待ちタイマ55がタイムアウトとなって、これがタイマ管理部53で検出され、ステップS18aにおいて、そのタイムアウトの情報がサーバ選択制御部49を介して通信制御部41へ通知される。
【0051】
サーバ選択制御部49では、応答待ちタイマ55のタイムアウトが通知されると、ステップS19において、現在選択中の第1のサーバ21に故障が発生していると判定され、選択中サーバ情報管理部51における現在選択中サーバが、現在の優先順位1よりも1つ低い優先順位2のサーバに設定される。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○が付けられる。
【0052】
これと同時に、ステップS20において、タイマ管理部53の制御によって接続先切替タイマ57が起動され、ステップS21において、イベント完了となる。
また、接続先切替タイマ57の起動後は、そのタイマ57が満了するまでの間、サーバに対して要求情報を送信する場合、先の優先順位を下げる処理によって設定された第2のサーバ22へ送信することとなる。
【0053】
即ち、ステップS22において、第1のクライアント31でイベントが発生したとすると、ステップS23において、要求情報生成部43から第2のサーバ22に対する要求情報が発生し、更に、ステップS24において、サーバ選択制御部49で、第2のサーバ22が選択され、ステップS25において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。
【0054】
そして、ステップS26において、通信制御部41の制御によって、タイマ管理部53で○が付けられた行のサーバアドレス「192.168.0.2」で示される第2のサーバ22へ、通信網18を介して要求情報が送信される。
第2のサーバ22では、通信制御部61で、その要求情報が受信される。この要求情報は、要求情報解析処理部63において解析処理される。例えば、ユーザID及びパスワードの妥当性チェックによる接続可否の判定が行われる。
【0055】
そして、応答情報生成部65において、その判定結果である例えば接続可能の応答情報が生成さる。この応答情報は、ステップS27において、通信制御部61の制御によって通信網18を介して第1のクライアント31へ返信される。
この返信された応答情報を通信制御部41で受信した第1のクライアント31では、ステップS28において、タイマ管理部53の制御によって応答待ちタイマ55が停止され、同時に、ステップS29において、受信応答情報が応答情報解析処理部45へ通知され、ステップS30にて、応答情報解析処理部45で応答情報の解析処理が行われる。この場合、第2のサーバ22へ接続するための処理が行われる。そして、ステップS31において、その処理結果が通信制御部41へ通知され、第1のクライアント31が第2のサーバ22に接続され、ステップS32において、イベントが完了する。
【0056】
その後、ステップS33において、接続先切替タイマ57が満了すると、これがタイマ管理部53で検出され、ステップS34において、その満了の情報がサーバ選択制御部49を介して通信制御部41へ通知される。
サーバ選択制御部49では、接続先切替タイマ57の満了が通知されると、この満了をトリガとして、ステップS35において、選択中サーバ情報管理部51における現在選択中サーバが、現在の優先順位2よりも1つ高い優先順位1のサーバに設定される。つまり、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。
【0057】
この後、ステップS36において、第1のクライアント31でイベントが発生したとすると、ステップS37において、要求情報生成部43から第1のサーバ21に対する要求情報が発生し、更に、ステップS38において、サーバ選択制御部49で、第1のサーバ21が選択され、ステップS39において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。そして、ステップS40において、通信制御部41の制御によって要求情報が通信網18を介して第1のサーバ21へ送信される。
【0058】
この場合、第1のサーバ21において、上記ステップS12で発生した故障が継続している場合は、ステップS41において、応答待ちタイマ55がタイムアウトとなって、これがタイマ管理部53で検出され、ステップS42において、そのタイムアウトの情報がサーバ選択制御部49を介して通信制御部41へ通知される。
【0059】
サーバ選択制御部49では、応答待ちタイマ55のタイムアウトが通知されると、ステップS43において、現在選択中の第1のサーバ21に故障が発生していると判定され、選択中サーバ情報管理部51における現在選択中サーバが優先順位の1つ低いサーバに設定される。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○が付けられる。
【0060】
これと同時に、ステップS44において、タイマ管理部53の制御によって接続先切替タイマ57が起動され、ステップS45において、イベント完了となる。
この後、図13のステップS46において、第1のサーバ21が復旧したとする。
【0061】
この復旧後、ステップS47において、接続先切替タイマ57が満了すると、これがタイマ管理部53で検出され、ステップS48において、その満了の情報がサーバ選択制御部49を介して通信制御部41へ通知される。
サーバ選択制御部49では、接続先切替タイマ57の満了が通知されると、この満了をトリガとして、ステップS49において、選択中サーバ情報管理部51における現在選択中サーバが優先順位の1つ高いサーバに設定される。つまり、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。
【0062】
この後、ステップS50において、第1のクライアント31でイベントが発生したとすると、ステップS51において、要求情報生成部43から第1のサーバ21に対する要求情報が発生し、更に、ステップS52において、サーバ選択制御部49で、第1のサーバ21が選択され、ステップS53において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。そして、ステップS54において、通信制御部41の制御によって要求情報が通信網18を介して第1のサーバ21へ送信される。
【0063】
第1のサーバ21では、通信制御部61で、その要求情報が受信される。この要求情報は、要求情報解析処理部63の解析処理において、ユーザID及びパスワードの妥当性チェックによる接続可否の判定が行われる。そして、応答情報生成部65において、その判定結果である例えば接続可能の応答情報が生成さる。この応答情報は、ステップS55において、通信制御部61の制御によって通信網18を介して第1のクライアント31へ返信される。
【0064】
この返信された応答情報を通信制御部41で受信した第1のクライアント31では、ステップS56において、タイマ管理部53の制御によって応答待ちタイマ55が停止され、同時に、ステップS57において、受信応答情報が応答情報解析処理部45へ通知され、ステップS58にて、応答情報解析処理部45で応答情報の解析処理が行われる。この場合、第1のサーバ21へ接続するための処理が行われる。そして、ステップS59において、その処理結果が通信制御部41へ通知され、第1のクライアント31が第1のサーバ21に接続され、ステップS60において、イベントが完了する。
【0065】
このように、本実施の形態の通信システムによれば、クライアント(例えば、31)が、通信網18を介して各サーバ21〜23の少なくとも1つと通信を行う場合に、サーバ優先順位設定テーブル47による設定手段によって、各サーバ21〜23の少なくとも1つを選択するために参照する優先順位の設定を行い、この設定の際に、その優先順位をもとに例えばサーバ21を選択した場合、複数のサーバ21に均等に負荷が掛かり、且つサーバ21が故障した場合でも残りのサーバ21に均等に負荷が掛かるように行う。
【0066】
また、タイマ管理部53、応答待ちタイマ55及び接続先切替タイマ57の3要素による検出手段によって、サーバ21の故障及び復旧の少なくとも1つを検出する。
更に、サーバ選択制御部49及び選択中サーバ情報管理部51による選択手段によって、選択手段に設定された優先順位をもとにサーバ21を選択し、その選択中のサーバ21の故障が検出手段で検出された際に、その設定された優先順位を参照して、現在選択中のサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択する。そして、選択手段によって、サーバ21の故障検出時から一定時間経過後に、選択手段に設定された優先順位を参照して、故障が検出されたサーバ21を選択する。
【0067】
この選択されたサーバ21の故障が更に検出された場合に、再度、優先順位を参照して、故障が検出されたサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択する。
そして、選択手段は、上記で選択されたサーバ21の復旧が検出手段で検出された場合に、復旧したサーバ21の選択を維持する。
【0068】
つまり、優先順位をもとにサーバ21を選択した際に、各サーバ21〜23に均等に負荷が掛かり、且つサーバ21が故障した場合でも残りのサーバ22,23に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ21が故障しても、その優先順位を参照して、現在選択中のサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択するようにした。これによって、サーバ故障時でも、特定のサーバに負荷が集中しないように、迅速に代わりのサーバ22を選択することができる。
【0069】
また、サーバ21の故障検出によって他のサーバ22を選択した後でも、優先順位を参照して、故障検出されたサーバ21を選択することによって、そのサーバ21が故障中であるか否かを確認することができる。この確認の結果、故障したサーバ21が依然故障中であれば、再度、他のサーバ22を選択することを自動的に行うことができる。
【0070】
一方、その確認の結果、故障したサーバ21が復旧していれば、この復旧したサーバ21の選択を維持することによって通信を行うことができる。これによって、無駄な接続変更を行うことなしに、復旧したサーバ21との通信を再開することができる。
以上のことから、従来のラウンドロビン選択方法のように各クライアント31〜36が独立して何れかのサーバ21〜23を選択するこによって、瞬間的に特定のサーバ(例えば22)に負荷が集中するということが無くなる。
【0071】
また、他の従来技術のように、クライアント及びサーバが本来通信に使用しないプロトコルを別途規定、拡張する必要が無いので、余計な設備コストが掛かることはない。更に、従来のように本来通信で使用することのないアプリケーションレベルの信号を用いないので、クライアントとサーバ間のネットワークに信号が大量に発生し、通信トラフィック量が増大するといったことが無くなる。
【0072】
また、他の従来技術のように、サーバ異常(故障)に対応するために、クライアントが一旦、少なくとも2つのサーバに接続することが無いので、その2つのサーバへの接続を多くのクライアントが行うことによる通信トラフィック量の増大は発生しない。
更に、他の従来技術のように、サーバが異常(故障)状態の場合に、クライアントがサーバに対して異常状態を復旧させるための所定のパケットを発行するか、異常状態を復旧させるため異常発生前に発行した同一のパケットを所定数回発行することによってサーバの異常が復旧するまで待たなければならないといったことも無いので、サーバの異常復旧時に、本来の通信が行えなくなるといったことも無くなる。
【0073】
従って、特定のサーバに負荷が集中しないようにすることができ、サーバ21故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、各クライアント31〜36と各サーバ21〜23間の本来の通信を迅速に行うことができる。
【0074】
【発明の効果】
以上説明したように本発明は、クライアント装置が、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0075】
また、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができる。この確認の結果、故障したサーバ装置が依然故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
【0076】
一方、その確認の結果、故障したサーバ装置が復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。これによって、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
従って、特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るクライアントとサーバ間で通信が行われる通信システムの構成を示すブロック図である。
【図2】上記実施の形態に係る通信システムにおけるクライアントのサーバ優先順位設定テーブルの構成例を示す図である。
【図3】上記実施の形態に係る通信システムにおいて、全サーバが正常動作中に各サーバに掛かる負荷が均等に分散された状態を示す図である。
【図4】上記実施の形態に係る通信システムにおいて、第2のサーバの故障時に残りのサーバに掛かる負荷を均等に分散させた状態を示す図である。
【図5】上記実施の形態に係る通信システムにおけるクライアントの選択中サーバ情報管理部の状態を示す図である。
【図6】上記実施の形態に係る通信システムにおいて、第1のサーバに故障が発生した際に第2のサーバを選択する処理の様態を示す図である。
【図7】上記実施の形態に係る通信システムにおいて、第1のサーバが故障中に第2のサーバに接続する処理の様態を示す図である。
【図8】上記実施の形態に係る通信システムにおいて、第1のサーバの故障中に、第1のクライアンの接続先切替タイマが満了した場合の処理の様態を示す図である。
【図9】上記実施の形態に係る通信システムにおいて、第1のサーバの復旧後に、接続先切替タイマが満了した場合の処理の様態を示す図である。
【図10】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第1のシーケンス図である。
【図11】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第2のシーケンス図である。
【図12】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第3のシーケンス図である。
【図13】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第4のシーケンス図である。
【図14】従来のクライアントとサーバ間で通信が行われる通信システムの構成を示すブロック図である。
【図15】従来のクライアントとサーバが本来通信に使用しないプロトコルを別途規定、拡張する場合の一例を示すプロトコルスタック構成図である。
【符号の説明】
21 第1のサーバ(サーバ装置)
22 第2のサーバ(サーバ装置)
23 第3のサーバ(サーバ装置)
31 第1のクライアント(クライアント装置)
32 第2のクライアント(クライアント装置)
33 第3のクライアント(クライアント装置)
34 第4のクライアント(クライアント装置)
35 第5のクライアント(クライアント装置)
36 第6のクライアント(クライアント装置)
41,61 通信制御部
43,65 要求情報生成部
45,63 応答情報解析処理部
47 サーバ優先順位設定テーブル
49 サーバ選択制御部
51 選択中サーバ情報管理部
53 タイマ管理部
55 応答待ちタイマ
57 接続先切替タイマ
61 通信制御部
【発明の属する技術分野】
本発明は、携帯電話機やパーソナルコンピュータなどの複数のクライアント装置が、移動通信網や固定通信網などの通信網を介して複数のサーバ装置に接続されて構成される通信システムにおいて、各サーバ装置に掛かる負荷を均等に分散する通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法に関する。
【0002】
【従来の技術】
図14に、第1〜第6のクライアント(クライアント装置)11,12,13,14,15,16が、通信網18を介して第1〜第3のサーバ(サーバ装置)21,22,23に接続されて成る従来の通信システムの構成を示す。
このような通信システムにおいては、各クライアント11〜16と各サーバ21〜23間で通信を行う場合に、各サーバ21〜23に掛かる負荷を均等に分散する負荷分散処理が行われ、また、何れかの各サーバ21〜23に故障が生じた際に、その故障を回避できるように構成されている。
【0003】
その負荷分散処理を行う方法として、一般的にラウンドロビン選択(順次選択)方法が用いられている。このラウンドロビン選択方法は、各クライアント11〜16が独立して各サーバ21〜23を順に選択し、この選択されたサーバに接続する方法である。
また、サーバ故障が発生した際に、サービスの中断を回避するため、各クライアント11〜16において、各サーバ21〜23の故障・復旧を検出することが重要となる。
【0004】
これまでのクライアントにおけるサーバ故障及び復旧の検出方法として次のような方法が適用されていた。アプリケーションレベルの信号を一定間隔で送受信し、この信号を、ある時間連続して受信できない場合には相手装置の故障と判断し、更に、故障検出後も一定時間、送受信信号の監視を行い、信号を受信した時点で故障復旧と判断していた。この他、サーバが故障復旧後に復旧した旨を、全てのクライアントに通知するといった方法が用いられている。
【0005】
これらの方法は、クライアント及びサーバの本来の通信に使用しないプロトコルをクライアント及びサーバにて別途規定したり、サービスで使用しているプロトコルを拡張したりする必要がある。
つまり、図15のプロトコルスタック構成図に示すように、異機種間のデータ通信を実現するためのネットワーク構造であるOSI(Open Systems Interconnection)階層モデル(レイヤ機能モジュール)において、データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ物理層のレイヤ1同士を接続する。
【0006】
また、通信相手との物理的な通信路を確保し、通信路を流れるデータのエラー検出などを行なうデータリンク層のレイヤ2同士を接続し、また、相手までデータを届けるための通信経路の選択や、通信経路内のアドレス(住所)の管理を行なうネットワーク層のレイヤ3同士を接続し、更に、データ通信を利用した様々なサービスを人間や他のプログラムに提供するレイヤ7であるプリケーションレイヤ同士を接続する必要がある。
【0007】
これらのような従来の通信システムとして、例えば特許文献1および2に記載のものがある。
特許文献1の「サーバ切り替え装置および方法とサーバ切り替えプログラムを記録した記録媒体」の内容は、障害の発生を検知した場合、障害の発生をユーザに意識させずに他の同一コンテンツの配信サーバに自動的に切り替え、切断されたデータ位置からデータを送信し得るようにするものである。
【0008】
これを実現するために、複数の情報配信サーバのアドレスを優先順位の高い順に管理し、優先順位の高い少なくとも2つのアドレスを選択し、該情報配信サーバにクライアントを接続すべく要求して接続し、最も早く応答した情報配信サーバを選択する。該情報配信サーバからデータを受信し、データ受信中に障害の発生が検出された場合、データ受信をクライアントに対して行っていた情報配信サーバ以外の前記接続処理を行った他の情報配信サーバにデータ要求を行う。このデータ要求に対して最も早く応答した情報配信サーバからデータを受信するようになっている。
【0009】
また、特許文献2の「スキャナプリンタサーバーシステムのデータ通信制御方法」の内容は、アプリケーションから入出力要求に応じてクライアントがサーバに発行する所定のパケットに対する応答パケットの発行状態を所定時間監視し、所定時間内に応答パケットがサーバより発行されない場合に、アプリケーションに対してサーバの異常状態を応答する。クライアントは、その応答後、サーバに対して異常状態を回復させるための所定のパケットを発行する。又は、その応答後、サーバに対して異常状態を回復させるため異常発生前に発行した同一のパケットを所定数回発行するようになっている。
【0010】
【特許文献1】
特開2000−99435号公報(要約書)
【特許文献2】
特開平8−16493号公報(要約書)
【0011】
【発明が解決しようとする課題】
しかし、従来の通信システムにおいて、ラウンドロビン選択方法を用いた方法では、各クライアント11〜16が独立して何れかのサーバ21〜23を選択するため、瞬間的に特定のサーバ(例えば22)に負荷が集中するという問題がある。
また、クライアントとサーバ間でアプリケーションレベルの信号を一定間隔で送受信して故障/復旧を判断したり、サーバが復旧後に復旧した旨を全てのクライアントに通知したりする方法では、図15に一例を示したように、クライアント及びサーバが本来通信に使用しないプロトコルを別途規定、拡張する必要があるので、その分、コスト高となる問題がある。
【0012】
更に、本来通信で使用することのないアプリケーションレベルの信号がクライアントとサーバ間のネットワークに大量に発生するので、通信トラフィック量が増大するといった問題点がある。
また、特許文献1の内容は、サーバ異常(故障)に対応するために、クライアントが一旦、少なくとも2つのサーバに接続しなければならないので、この接続を多くのクライアントが行うことを考えると、その分、通信トラフィック量が増大するという問題がある。
【0013】
更に、特許文献2の内容は、サーバが異常(故障)状態の場合に、クライアントがサーバに対して異常状態を復旧させるための所定のパケットを発行するか、異常状態を復旧させるため異常発生前に発行した同一のパケットを所定数回発行するようになっているが、サーバの異常が復旧するまで待たなければならないので、その間、本来の通信が行えなくなるという問題がある。
【0014】
本発明は、このような課題に鑑みてなされたものであり、特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができる通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法を提供することを目的としている。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1による通信システムは、複数のクライアント装置が、通信網を介して複数のサーバ装置の少なくとも1つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理が行われる通信システムにおいて、前記クライアント装置に、前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する検出手段と、前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段とを備えたことを特徴としている。
【0016】
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0017】
また、本発明の請求項2によるクライアント装置は、通信網を介して複数のサーバ装置の少なくとも1つと通信を行うクライアント装置において、前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する検出手段と、前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段とを備えたことを特徴としている。
【0018】
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0019】
また、本発明の請求項3によるクライアント装置は、請求項2において、前記設定手段には、前記優先順位が、前記サーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定されていることを特徴としている。
この構成によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定された優先順位を用いる。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0020】
また、本発明の請求項4によるクライアント装置は、請求項2または3において、前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の故障が前記検出手段で検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択することを特徴としている。
【0021】
この構成によれば、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができ、故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
また、本発明の請求項5によるクライアント装置は、請求項2から4の何れか1項において、前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の復旧が前記検出手段で検出された場合に、前記復旧したサーバ装置の選択を維持することを特徴としている。
【0022】
この構成によれば、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができ、復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。従って、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
【0023】
また、本発明の請求項6によるクライアント装置によるサーバ装置の負荷分散方法は、通信網を介して複数のサーバ装置の少なくとも1つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理を行うクライアント装置によるサーバ装置の負荷分散方法において、前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位の設定を行い、この設定の際に、前記優先順位をもとにサーバ装置を選択した場合、前記複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように行う第1のステップと、前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する第2のステップと、前記第1のステップで設定された優先順位をもとにサーバ装置を選択し、前記第2のステップで、その選択中のサーバ装置の故障が検出された際に、前記第1のステップで設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第3のステップと、前記第2のステップにおける前記サーバ装置の故障検出時から一定時間経過後に、前記第1のステップで設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択する第4のステップと、前記第4のステップで選択されたサーバ装置の故障が更に検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第5のステップと、前記第4のステップで選択されたサーバ装置の復旧が検出された場合に、前記復旧したサーバ装置の選択を維持する第6のステップとを含むことを特徴としている。
【0024】
この方法によれば、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0025】
また、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができる。
この確認の結果、故障したサーバ装置が依然故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
【0026】
一方、その確認の結果、故障したサーバ装置が復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。従って、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
(実施の形態)
図1は、本発明の実施の形態に係る通信システムの構成を示すブロック図である。但し、図1に示す本実施の形態において、図14に示した従来例の各部に対応する部分には同一符号を付す。
【0028】
この図1に示す通信システムは、第1〜第6のクライアント(クライアント装置)31,32,33,34,35,36が、通信網18を介して第1〜第3のサーバ(サーバ装置)21,22,23に接続されて構成されている。また、各クライアント31〜36と各サーバ21〜23間で通信を行う場合に、各サーバ21〜23に掛かる負荷を均等に分散する負荷分散処理が行われ、また、何れかの各サーバ21〜23に故障が生じた際に、その故障を後述する機能で回避できるように構成されている。
【0029】
各クライアント31〜36は、各々同一構成であり、第1のクライアント31を代表して図示するように、通信制御部41と、要求情報生成部43と、応答情報解析処理部45と、メモリ(図示せず)に記憶されたサーバ優先順位設定テーブル47と、サーバ選択制御部49と、選択中サーバ情報管理部51と、タイマ管理部53と、応答待ちタイマ55と、接続先切替タイマ57とを備えて構成されている。
【0030】
各サーバ21〜23は、各々同一構成であり、第1のサーバ21を代表して図示するように、通信制御部61と、要求情報解析処理部63と、応答情報生成部65とを備えて構成されている。
次に、これらの構成要素の説明を行う。
通信制御部41は、通信網18を介して各サーバ21〜23と通信を行うものである。
【0031】
応答情報生成部43は、各サーバ21〜23に対する要求情報を生成するものである。
要求情報解析処理部45は、各サーバ21〜23からの応答情報を解析し、この解析内容に応じた処理を行うものである。
サーバ優先順位設定テーブル47は、図2に示すように、各クライアント31〜36が通信を行う各サーバ21〜23の優先順位1,2,3を定めるものである。優先順位1,2,3は、各クライアント31〜36が通信時に選択する各サーバ21〜23の負荷が均等になるように設定されている。
【0032】
この例では、第1及び第2のクライアント31,32の優先順位1のサーバに第1のサーバ21が対応付けられ、第3及び第4のクライアント33,34の優先順位1のサーバに第2のサーバ22が対応付けられ、第5及び第6のクライアント35,36の優先順位1のサーバに第3のサーバ23が対応付けられて設定されている。
【0033】
また、第1及び第2のクライアント31,32の優先順位2のサーバに第2及び第3のサーバ22,23が対応付けられ、優先順位3のサーバに第3及び第2のサーバ23,22が対応付けられて設定されている。
また、第3及び第4のクライアント33,34の優先順位2のサーバに第3及び第1のサーバ23,21が対応付けられ、優先順位3のサーバに第1及び第3のサーバ21,23が対応付けられて設定されている。
【0034】
また、第5及び第6のクライアント35,36の優先順位2のサーバに第1及び第2のサーバ21,22が対応付けられ、優先順位3のサーバに第2及び第1のサーバ22,21が対応付けられて設定されている。
つまり、あるサーバが故障した場合でも、残りのサーバに負荷が均等に分散されるような組み合わせに設定されている。このような組み合わせで各クライアント31〜36が通信時に各サーバ21〜23を選択することによって、図3に示すように、全サーバ21〜23が正常に動作している場合は、各サーバ21〜23に掛かる負荷が均等に分散される。
【0035】
また、図4に示すように、第2のサーバ22が故障した場合は、後述する故障時の制御時にテーブル47の内容を用いることで、残りのサーバ21,23に掛かる負荷を均等に分散させることが可能となるように成されている。
選択中サーバ情報管理部51は、後述で説明するサーバ選択制御部49によって選択された現在選択中のサーバの情報を管理するものである。
【0036】
この管理は、例えば図5(a)及び(b)に示すように、各優先順位1,2,3毎に、サーバ名、サーバアドレス、現在選択中フラグが対応付けられて行われる。サーバ選択制御部49で選択されたサーバが、第1のサーバ21であるとすると、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。第2のサーバ22であるとすると、図5(b)に示すように、優先順位2の行の現在選択中フラグに○が付けられる。
【0037】
タイマ管理部53は、サーバ選択制御部49でサーバ(例えば、第1のサーバ21)が選択された際に、応答待ちタイマ55を起動し、この起動中に、選択サーバ21から返信される応答情報が通信制御部41で受信された際に、起動中の応答待ちタイマ55を停止する制御を行う。
また、タイマ管理部53は、起動中の応答待ちタイマ55がタイムアウトしたことを検出すると、そのタイムアウトの情報を、サーバ選択制御部49を介して通信制御部41へ通知するものである。この場合、タイムアウトの情報はサーバ選択制御部49へも通知される。
【0038】
また、タイマ管理部53は、応答待ちタイマ55のタイムアウトを検出した場合に、接続先切替タイマ57を起動し、この起動中の接続先切替タイマ57の満了を検出すると、その満了の情報を、サーバ選択制御部49を介して通信制御部41へ通知する。この場合、満了の情報はサーバ選択制御部49へも通知される。
【0039】
サーバ選択制御部49は、クライアント(例えば、第1のクライアント31)において、サーバに接続するためのユーザID及びパスワードなどをキー情報とした問い合わせ操作が行われた場合に、サーバ優先順位設定テーブル47を参照することによって優先順位1の第1のサーバ21を選択し、この選択内容を、選択中サーバ情報管理部51に設定する制御を行うものである。この場合、図5(a)に示すように、優先順位1の行の現在選択中フラグに○を付ける。
【0040】
また、サーバ選択制御部49は、タイマ管理部53から応答待ちタイマ55のタイムアウトが通知された場合に、図6に×で示すように、現在選択中の第1のサーバ21に故障が発生していると判定し、同図6に示すように、現在の優先順位1よりも1つ低い優先順位2の第2のサーバ22を選択する。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○を付ける。この場合には、図6に示すように、タイマ管理部53によって接続先切替タイマ57が起動されることになる。
【0041】
また、サーバ選択制御部49は、図7に示すように、接続先切替タイマ57が起動中の場合は、故障以外の第2のサーバ22に接続する制御を行う。
また、サーバ選択制御部49は、図8に示すように、サーバ故障中に接続先切替タイマ57が満了となると、同図8に矢印Y1で示すように、一旦は優先順位1への切替によって第1のサーバ21を選択するが、第1のサーバ21からの応答が無く、応答待ちタイマ55がタイムアウトすると、これをトリガとして、現在の優先順位1よりも1つ低い優先順位2の第2のサーバ22を選択する。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○を付ける。これによって、第2のサーバ22を継続して選択する。
【0042】
更に、サーバ選択制御部49は、図9に示すように、サーバ復旧後に接続先切替タイマ57が満了となると、同図9に示すように、現在の優先順位2よりも1つ高い優先順位1の第1のサーバ21を選択する。つまり、図5(a)に示すように、優先順位1の行の現在選択中フラグに○を付ける。これによって、図9に矢印Y2で示すように第1のサーバ21を選択する。
【0043】
各サーバ21〜23の通信制御部61は、通信網18を介して各クライアント31〜36と通信を行うものである。
要求情報解析処理部63は、通信制御部61で受信された各クライアント31〜36からの要求情報を解析し、この解析内容に応じた処理を行うものである。応答情報生成部65は、要求情報解析処理部63での処理結果に応じた応答情報を生成するものである。
【0044】
次に、このような構成の通信システムにおいて、クライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を、図10〜図13に示すシーケンス図を参照して説明する。
図10のステップS1において、例えば第1のクライアント31で操作者の入力操作によって第1のサーバ21へのイベントが発生したとする。これによって、ステップS2において、要求情報生成部43から第1のサーバ21に対する要求情報が発生する。即ち、このステップS1,S2では、第1のクライアント31が第1のサーバ21に接続してよいかを、ユーザID及びパスワードなどをキー情報として問い合わせる操作が行われる。
【0045】
また、この操作に応じてステップS3にて、サーバ選択制御部49で、第1のサーバ21が選択される。これは、サーバ選択制御部49の制御によって、サーバ優先順位設定テーブル47が参照され、第1のクライアント31に割り当てられた優先順位1の第1のサーバ21が選択される。また、その選択内容は、選択中サーバ情報管理部51で管理される。例えば、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。
【0046】
また、この際ステップS4において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。
そして、ステップS5において、通信制御部41の制御によって、タイマ管理部53で○が付けられた行のサーバアドレス「192.168.0.1」で示される第1のサーバ21へ、通信網18を介して要求情報が送信される。
【0047】
第1のサーバ21では、通信制御部61で、その要求情報が受信される。この要求情報は、要求情報解析処理部63において解析処理される。例えば、ユーザID及びパスワードの妥当性チェックによる接続可否の判定が行われる。この判定結果(解析処理結果)は応答情報生成部65へ出力され、応答情報生成部65において、その判定結果である接続可否を示す応答情報が生成される。ここでは、接続可能の情報が生成されたとする。この応答情報は、ステップS6において、通信制御部61の制御によって通信網18を介して第1のクライアント31へ返信される。
【0048】
この返信された応答情報を通信制御部41で受信した第1のクライアント31では、ステップS7において、タイマ管理部53の制御によって応答待ちタイマ55が停止される。同時に、ステップS8において、受信応答情報が応答情報解析処理部45へ通知され、ステップS9にて、応答情報解析処理部45で応答情報の解析処理が行われる。この場合、第1のサーバ21へ接続するための処理が行われる。そして、ステップS10において、その処理結果が通信制御部41へ通知され、第1のクライアント31が第1のサーバ21に接続され、ステップS11において、一連の処理が完了(イベント完了)する。
【0049】
次に、ステップS12において、第1のサーバ21が故障したとする。この場合に、ステップS13において、第1のクライアント31でイベントが発生したとすると、ステップS14において、要求情報生成部43から第1のサーバ21に対する要求情報が発生し、更に、ステップS15において、サーバ選択制御部49で、第1のサーバ21が選択され、ステップS16において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。そして、ステップS17において、通信制御部41の制御によって要求情報が通信網18を介して第1のサーバ21へ送信される。
【0050】
この際、第1のサーバ21では故障が発生しているので、通信制御部61も動作せず、第1のクライアント31では要求に対する応答が受信できない状態も生じる。
この状態が継続すると、第1のクライアント31では、図11のステップS18において、応答待ちタイマ55がタイムアウトとなって、これがタイマ管理部53で検出され、ステップS18aにおいて、そのタイムアウトの情報がサーバ選択制御部49を介して通信制御部41へ通知される。
【0051】
サーバ選択制御部49では、応答待ちタイマ55のタイムアウトが通知されると、ステップS19において、現在選択中の第1のサーバ21に故障が発生していると判定され、選択中サーバ情報管理部51における現在選択中サーバが、現在の優先順位1よりも1つ低い優先順位2のサーバに設定される。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○が付けられる。
【0052】
これと同時に、ステップS20において、タイマ管理部53の制御によって接続先切替タイマ57が起動され、ステップS21において、イベント完了となる。
また、接続先切替タイマ57の起動後は、そのタイマ57が満了するまでの間、サーバに対して要求情報を送信する場合、先の優先順位を下げる処理によって設定された第2のサーバ22へ送信することとなる。
【0053】
即ち、ステップS22において、第1のクライアント31でイベントが発生したとすると、ステップS23において、要求情報生成部43から第2のサーバ22に対する要求情報が発生し、更に、ステップS24において、サーバ選択制御部49で、第2のサーバ22が選択され、ステップS25において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。
【0054】
そして、ステップS26において、通信制御部41の制御によって、タイマ管理部53で○が付けられた行のサーバアドレス「192.168.0.2」で示される第2のサーバ22へ、通信網18を介して要求情報が送信される。
第2のサーバ22では、通信制御部61で、その要求情報が受信される。この要求情報は、要求情報解析処理部63において解析処理される。例えば、ユーザID及びパスワードの妥当性チェックによる接続可否の判定が行われる。
【0055】
そして、応答情報生成部65において、その判定結果である例えば接続可能の応答情報が生成さる。この応答情報は、ステップS27において、通信制御部61の制御によって通信網18を介して第1のクライアント31へ返信される。
この返信された応答情報を通信制御部41で受信した第1のクライアント31では、ステップS28において、タイマ管理部53の制御によって応答待ちタイマ55が停止され、同時に、ステップS29において、受信応答情報が応答情報解析処理部45へ通知され、ステップS30にて、応答情報解析処理部45で応答情報の解析処理が行われる。この場合、第2のサーバ22へ接続するための処理が行われる。そして、ステップS31において、その処理結果が通信制御部41へ通知され、第1のクライアント31が第2のサーバ22に接続され、ステップS32において、イベントが完了する。
【0056】
その後、ステップS33において、接続先切替タイマ57が満了すると、これがタイマ管理部53で検出され、ステップS34において、その満了の情報がサーバ選択制御部49を介して通信制御部41へ通知される。
サーバ選択制御部49では、接続先切替タイマ57の満了が通知されると、この満了をトリガとして、ステップS35において、選択中サーバ情報管理部51における現在選択中サーバが、現在の優先順位2よりも1つ高い優先順位1のサーバに設定される。つまり、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。
【0057】
この後、ステップS36において、第1のクライアント31でイベントが発生したとすると、ステップS37において、要求情報生成部43から第1のサーバ21に対する要求情報が発生し、更に、ステップS38において、サーバ選択制御部49で、第1のサーバ21が選択され、ステップS39において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。そして、ステップS40において、通信制御部41の制御によって要求情報が通信網18を介して第1のサーバ21へ送信される。
【0058】
この場合、第1のサーバ21において、上記ステップS12で発生した故障が継続している場合は、ステップS41において、応答待ちタイマ55がタイムアウトとなって、これがタイマ管理部53で検出され、ステップS42において、そのタイムアウトの情報がサーバ選択制御部49を介して通信制御部41へ通知される。
【0059】
サーバ選択制御部49では、応答待ちタイマ55のタイムアウトが通知されると、ステップS43において、現在選択中の第1のサーバ21に故障が発生していると判定され、選択中サーバ情報管理部51における現在選択中サーバが優先順位の1つ低いサーバに設定される。つまり、図5(b)に示すように、優先順位2の行の現在選択中フラグに○が付けられる。
【0060】
これと同時に、ステップS44において、タイマ管理部53の制御によって接続先切替タイマ57が起動され、ステップS45において、イベント完了となる。
この後、図13のステップS46において、第1のサーバ21が復旧したとする。
【0061】
この復旧後、ステップS47において、接続先切替タイマ57が満了すると、これがタイマ管理部53で検出され、ステップS48において、その満了の情報がサーバ選択制御部49を介して通信制御部41へ通知される。
サーバ選択制御部49では、接続先切替タイマ57の満了が通知されると、この満了をトリガとして、ステップS49において、選択中サーバ情報管理部51における現在選択中サーバが優先順位の1つ高いサーバに設定される。つまり、図5(a)に示すように、優先順位1の行の現在選択中フラグに○が付けられる。
【0062】
この後、ステップS50において、第1のクライアント31でイベントが発生したとすると、ステップS51において、要求情報生成部43から第1のサーバ21に対する要求情報が発生し、更に、ステップS52において、サーバ選択制御部49で、第1のサーバ21が選択され、ステップS53において、タイマ管理部53の制御によって応答待ちタイマ55が起動される。そして、ステップS54において、通信制御部41の制御によって要求情報が通信網18を介して第1のサーバ21へ送信される。
【0063】
第1のサーバ21では、通信制御部61で、その要求情報が受信される。この要求情報は、要求情報解析処理部63の解析処理において、ユーザID及びパスワードの妥当性チェックによる接続可否の判定が行われる。そして、応答情報生成部65において、その判定結果である例えば接続可能の応答情報が生成さる。この応答情報は、ステップS55において、通信制御部61の制御によって通信網18を介して第1のクライアント31へ返信される。
【0064】
この返信された応答情報を通信制御部41で受信した第1のクライアント31では、ステップS56において、タイマ管理部53の制御によって応答待ちタイマ55が停止され、同時に、ステップS57において、受信応答情報が応答情報解析処理部45へ通知され、ステップS58にて、応答情報解析処理部45で応答情報の解析処理が行われる。この場合、第1のサーバ21へ接続するための処理が行われる。そして、ステップS59において、その処理結果が通信制御部41へ通知され、第1のクライアント31が第1のサーバ21に接続され、ステップS60において、イベントが完了する。
【0065】
このように、本実施の形態の通信システムによれば、クライアント(例えば、31)が、通信網18を介して各サーバ21〜23の少なくとも1つと通信を行う場合に、サーバ優先順位設定テーブル47による設定手段によって、各サーバ21〜23の少なくとも1つを選択するために参照する優先順位の設定を行い、この設定の際に、その優先順位をもとに例えばサーバ21を選択した場合、複数のサーバ21に均等に負荷が掛かり、且つサーバ21が故障した場合でも残りのサーバ21に均等に負荷が掛かるように行う。
【0066】
また、タイマ管理部53、応答待ちタイマ55及び接続先切替タイマ57の3要素による検出手段によって、サーバ21の故障及び復旧の少なくとも1つを検出する。
更に、サーバ選択制御部49及び選択中サーバ情報管理部51による選択手段によって、選択手段に設定された優先順位をもとにサーバ21を選択し、その選択中のサーバ21の故障が検出手段で検出された際に、その設定された優先順位を参照して、現在選択中のサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択する。そして、選択手段によって、サーバ21の故障検出時から一定時間経過後に、選択手段に設定された優先順位を参照して、故障が検出されたサーバ21を選択する。
【0067】
この選択されたサーバ21の故障が更に検出された場合に、再度、優先順位を参照して、故障が検出されたサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択する。
そして、選択手段は、上記で選択されたサーバ21の復旧が検出手段で検出された場合に、復旧したサーバ21の選択を維持する。
【0068】
つまり、優先順位をもとにサーバ21を選択した際に、各サーバ21〜23に均等に負荷が掛かり、且つサーバ21が故障した場合でも残りのサーバ22,23に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ21が故障しても、その優先順位を参照して、現在選択中のサーバ21の選択に用いた優先順位よりも低い優先順位のサーバ22を選択するようにした。これによって、サーバ故障時でも、特定のサーバに負荷が集中しないように、迅速に代わりのサーバ22を選択することができる。
【0069】
また、サーバ21の故障検出によって他のサーバ22を選択した後でも、優先順位を参照して、故障検出されたサーバ21を選択することによって、そのサーバ21が故障中であるか否かを確認することができる。この確認の結果、故障したサーバ21が依然故障中であれば、再度、他のサーバ22を選択することを自動的に行うことができる。
【0070】
一方、その確認の結果、故障したサーバ21が復旧していれば、この復旧したサーバ21の選択を維持することによって通信を行うことができる。これによって、無駄な接続変更を行うことなしに、復旧したサーバ21との通信を再開することができる。
以上のことから、従来のラウンドロビン選択方法のように各クライアント31〜36が独立して何れかのサーバ21〜23を選択するこによって、瞬間的に特定のサーバ(例えば22)に負荷が集中するということが無くなる。
【0071】
また、他の従来技術のように、クライアント及びサーバが本来通信に使用しないプロトコルを別途規定、拡張する必要が無いので、余計な設備コストが掛かることはない。更に、従来のように本来通信で使用することのないアプリケーションレベルの信号を用いないので、クライアントとサーバ間のネットワークに信号が大量に発生し、通信トラフィック量が増大するといったことが無くなる。
【0072】
また、他の従来技術のように、サーバ異常(故障)に対応するために、クライアントが一旦、少なくとも2つのサーバに接続することが無いので、その2つのサーバへの接続を多くのクライアントが行うことによる通信トラフィック量の増大は発生しない。
更に、他の従来技術のように、サーバが異常(故障)状態の場合に、クライアントがサーバに対して異常状態を復旧させるための所定のパケットを発行するか、異常状態を復旧させるため異常発生前に発行した同一のパケットを所定数回発行することによってサーバの異常が復旧するまで待たなければならないといったことも無いので、サーバの異常復旧時に、本来の通信が行えなくなるといったことも無くなる。
【0073】
従って、特定のサーバに負荷が集中しないようにすることができ、サーバ21故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、各クライアント31〜36と各サーバ21〜23間の本来の通信を迅速に行うことができる。
【0074】
【発明の効果】
以上説明したように本発明は、クライアント装置が、優先順位をもとにサーバ装置を選択した際に、複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように優先順位を設定する。そして、現在選択中のサーバ装置が故障しても、その優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択するようにした。これによって、サーバ故障時でも、特定のサーバ装置に負荷が集中しないように、迅速に代わりのサーバ装置を選択することができる。
【0075】
また、サーバ装置の故障検出によって他のサーバ装置を選択した後でも、優先順位を参照して、故障検出されたサーバ装置を選択することによって、そのサーバ装置が故障中であるか否かを確認することができる。この確認の結果、故障したサーバ装置が依然故障中であれば、再度、他のサーバ装置を選択することを自動的に行うことができる。
【0076】
一方、その確認の結果、故障したサーバ装置が復旧していれば、この復旧したサーバ装置の選択を維持することによって通信を行うことができる。これによって、無駄な接続変更を行うことなしに、復旧したサーバ装置との通信を再開することができる。
従って、特定のサーバに負荷が集中しないようにすることができ、サーバ故障時に、本来の通信で使用しないプロトコルの実装によるコスト高を招くことなく、また通信トラフィック量が増大しないように、クライアントとサーバ間の本来の通信を迅速に行うことができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るクライアントとサーバ間で通信が行われる通信システムの構成を示すブロック図である。
【図2】上記実施の形態に係る通信システムにおけるクライアントのサーバ優先順位設定テーブルの構成例を示す図である。
【図3】上記実施の形態に係る通信システムにおいて、全サーバが正常動作中に各サーバに掛かる負荷が均等に分散された状態を示す図である。
【図4】上記実施の形態に係る通信システムにおいて、第2のサーバの故障時に残りのサーバに掛かる負荷を均等に分散させた状態を示す図である。
【図5】上記実施の形態に係る通信システムにおけるクライアントの選択中サーバ情報管理部の状態を示す図である。
【図6】上記実施の形態に係る通信システムにおいて、第1のサーバに故障が発生した際に第2のサーバを選択する処理の様態を示す図である。
【図7】上記実施の形態に係る通信システムにおいて、第1のサーバが故障中に第2のサーバに接続する処理の様態を示す図である。
【図8】上記実施の形態に係る通信システムにおいて、第1のサーバの故障中に、第1のクライアンの接続先切替タイマが満了した場合の処理の様態を示す図である。
【図9】上記実施の形態に係る通信システムにおいて、第1のサーバの復旧後に、接続先切替タイマが満了した場合の処理の様態を示す図である。
【図10】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第1のシーケンス図である。
【図11】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第2のシーケンス図である。
【図12】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第3のシーケンス図である。
【図13】上記実施の形態に係る通信システムにおけるクライアント−サーバ間の通信時に実行されるサーバ故障/復旧時の対応を含む負荷分散処理の動作を説明するための第4のシーケンス図である。
【図14】従来のクライアントとサーバ間で通信が行われる通信システムの構成を示すブロック図である。
【図15】従来のクライアントとサーバが本来通信に使用しないプロトコルを別途規定、拡張する場合の一例を示すプロトコルスタック構成図である。
【符号の説明】
21 第1のサーバ(サーバ装置)
22 第2のサーバ(サーバ装置)
23 第3のサーバ(サーバ装置)
31 第1のクライアント(クライアント装置)
32 第2のクライアント(クライアント装置)
33 第3のクライアント(クライアント装置)
34 第4のクライアント(クライアント装置)
35 第5のクライアント(クライアント装置)
36 第6のクライアント(クライアント装置)
41,61 通信制御部
43,65 要求情報生成部
45,63 応答情報解析処理部
47 サーバ優先順位設定テーブル
49 サーバ選択制御部
51 選択中サーバ情報管理部
53 タイマ管理部
55 応答待ちタイマ
57 接続先切替タイマ
61 通信制御部
Claims (6)
- 複数のクライアント装置が、通信網を介して複数のサーバ装置の少なくとも1つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理が行われる通信システムにおいて、
前記クライアント装置に、
前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、
前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する検出手段と、
前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段と
を備えたことを特徴とする通信システム。 - 通信網を介して複数のサーバ装置の少なくとも1つと通信を行うクライアント装置において、
前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位が、少なくとも前記優先順位をもとにサーバ装置を選択した際に、前記複数のサーバ装置に均等に負荷が掛かるように設定される設定手段と、
前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する検出手段と、
前記設定手段に設定された優先順位をもとにサーバ装置を選択し、この選択中のサーバ装置の故障が前記検出手段で検出された際に、前記設定手段に設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する選択手段と
を備えたことを特徴とするクライアント装置。 - 前記設定手段には、前記優先順位が、前記サーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように設定されている
ことを特徴とする請求項2に記載のクライアント装置。 - 前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の故障が前記検出手段で検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する
ことを特徴とする請求項2または3に記載のクライアント装置。 - 前記選択手段は、前記検出手段による前記サーバ装置の故障検出時から一定時間経過後に、前記設定手段に設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択し、この選択されたサーバ装置の復旧が前記検出手段で検出された場合に、前記復旧したサーバ装置の選択を維持する
ことを特徴とする請求項2から4の何れか1項に記載のクライアント装置。 - 通信網を介して複数のサーバ装置の少なくとも1つと通信を行う場合に、複数のサーバ装置に均等に負荷が掛かるように負荷分散処理を行うクライアント装置によるサーバ装置の負荷分散方法において、
前記複数のサーバ装置の少なくとも1つを選択するために参照する優先順位の設定を行い、この設定の際に、前記優先順位をもとにサーバ装置を選択した場合、前記複数のサーバ装置に均等に負荷が掛かり、且つサーバ装置が故障した場合でも残りのサーバ装置に均等に負荷が掛かるように行う第1のステップと、
前記複数のサーバ装置の故障及び復旧の少なくとも1つを検出する第2のステップと、
前記第1のステップで設定された優先順位をもとにサーバ装置を選択し、前記第2のステップで、その選択中のサーバ装置の故障が検出された際に、前記第1のステップで設定された優先順位を参照して、現在選択中のサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第3のステップと、前記第2のステップにおける前記サーバ装置の故障検出時から一定時間経過後に、前記第1のステップで設定された優先順位を参照して、前記故障が検出されたサーバ装置を選択する第4のステップと、
前記第4のステップで選択されたサーバ装置の故障が更に検出された場合に、再度、前記優先順位を参照して、前記故障が検出されたサーバ装置の選択に用いた優先順位よりも低い優先順位のサーバ装置を選択する第5のステップと、
前記第4のステップで選択されたサーバ装置の復旧が検出された場合に、前記復旧したサーバ装置の選択を維持する第6のステップと
を含むことを特徴とするクライアント装置によるサーバ装置の負荷分散方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003088983A JP2004295656A (ja) | 2003-03-27 | 2003-03-27 | 通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003088983A JP2004295656A (ja) | 2003-03-27 | 2003-03-27 | 通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004295656A true JP2004295656A (ja) | 2004-10-21 |
Family
ID=33402971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003088983A Pending JP2004295656A (ja) | 2003-03-27 | 2003-03-27 | 通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004295656A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234553A (ja) * | 2007-03-23 | 2008-10-02 | Nec Corp | パッチ適用方法およびパッチ受信クライアント |
JP2009245131A (ja) * | 2008-03-31 | 2009-10-22 | Nec Corp | コンピュータ装置、コンピュータ装置の拡張カード、負荷分散方法及びプログラム |
JP2012528382A (ja) * | 2009-05-25 | 2012-11-12 | アリババ・グループ・ホールディング・リミテッド | キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理 |
JP2014515851A (ja) * | 2011-03-29 | 2014-07-03 | マイクロソフト コーポレーション | ウィットネスサービスの提供 |
WO2015001850A1 (ja) * | 2013-07-03 | 2015-01-08 | 日本電気株式会社 | タスク割り当て判定装置、制御方法、及びプログラム |
JP2016115340A (ja) * | 2014-12-16 | 2016-06-23 | インテル コーポレイション | ローカル・チェックポイントのためのオフロード・プログラミング・モデルの利用 |
-
2003
- 2003-03-27 JP JP2003088983A patent/JP2004295656A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234553A (ja) * | 2007-03-23 | 2008-10-02 | Nec Corp | パッチ適用方法およびパッチ受信クライアント |
JP2009245131A (ja) * | 2008-03-31 | 2009-10-22 | Nec Corp | コンピュータ装置、コンピュータ装置の拡張カード、負荷分散方法及びプログラム |
JP2012528382A (ja) * | 2009-05-25 | 2012-11-12 | アリババ・グループ・ホールディング・リミテッド | キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理 |
JP2014515851A (ja) * | 2011-03-29 | 2014-07-03 | マイクロソフト コーポレーション | ウィットネスサービスの提供 |
US9306825B2 (en) | 2011-03-29 | 2016-04-05 | Microsoft Technology Licensing, Llc | Providing a witness service |
WO2015001850A1 (ja) * | 2013-07-03 | 2015-01-08 | 日本電気株式会社 | タスク割り当て判定装置、制御方法、及びプログラム |
JPWO2015001850A1 (ja) * | 2013-07-03 | 2017-02-23 | 日本電気株式会社 | タスク割り当て判定装置、制御方法、及びプログラム |
JP2016115340A (ja) * | 2014-12-16 | 2016-06-23 | インテル コーポレイション | ローカル・チェックポイントのためのオフロード・プログラミング・モデルの利用 |
US10089197B2 (en) | 2014-12-16 | 2018-10-02 | Intel Corporation | Leverage offload programming model for local checkpoints |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4509545B2 (ja) | 設定変更可能な信頼性の高いメッセージ通信システム | |
EP1955506B1 (en) | Methods, systems, and computer program products for session initiation protocol (sip) fast switchover | |
US9332037B2 (en) | Method and apparatus for redundant signaling links | |
JP3799319B2 (ja) | 無線lan基地局の二重化システム | |
KR100744448B1 (ko) | 통신 시스템 | |
EP1989863A1 (en) | Gateway for wireless mobile clients | |
EP1851632A2 (en) | Disaster recovery framework | |
JP2010541413A (ja) | ネットワーク競合防止装置およびネットワーク競合防止方法 | |
US20030220990A1 (en) | Reliable server pool | |
US6959392B1 (en) | Information providing system and method for providing information | |
CN100563263C (zh) | 在网络存储业务中实现系统高可用性的方法和系统 | |
US7697512B1 (en) | Proactive monitoring of status of voice-over-IP servers | |
JP4480316B2 (ja) | 分散処理システム | |
JPH09259096A (ja) | ネットワーク高信頼化方式及びシステム | |
JP2004295656A (ja) | 通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法 | |
EP2456163B1 (en) | Registering an internet protocol phone in a dual-link architecture | |
MXPA02006896A (es) | Metodo y aparato para proporcionar comunicaciones confiables en una red inteligente. | |
US20070230333A1 (en) | Information processing apparatus | |
JP2008154218A (ja) | ネットワーク設備、VoIPゲートウェー及びその通信冗長方法 | |
CN113824595B (zh) | 链路切换控制方法、装置和网关设备 | |
EP2220814B1 (en) | Method for managing network components in a network, as well as a network component | |
EP0511925A2 (en) | Dynamic backup and recovery of focal points in a computer network | |
JP4692419B2 (ja) | ネットワーク装置及びそれに用いる冗長切替え方法並びにそのプログラム | |
KR100970212B1 (ko) | 이기종간 db 쿼리의 동적 전환을 이용하여 장애에대처하는 인증 서비스 이중화 방법 및 시스템 | |
CN113766276A (zh) | 基于ip双栈自适应请求的iptv服务的方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070515 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070522 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070925 |