(57)【要約】【課題】実処理だけでなく伝送路の負荷をも考慮してネットワークに接続された負荷を分散することができ、応答の即時性を向上させることができる負荷分散制御システムを提供する。【解決手段】サーバ装置３１のタスク転送部４１がタスク処理部５１の実処理の負荷および他サーバ装置３２の実処理の負荷に加えて、他サーバ装置３２との間の伝送路の負荷を監視し、それら実処理の負荷と伝送路の負荷に基づいてコマンド・データの割り当て先を決定する。【選択図】図２
2008009852.tif 000002
【特許請求の範囲】
【請求項１】
負荷を分散して処理を実行する負荷分散制御システムであって、
伝送路を介して相互に接続され、それぞれがコマンドの実処理を実行する複数のサーバ装置を有し、前記複数のサーバ装置の少なくとも１つが、
割り当てられたコマンドの実処理を実行する処理部と、
前記処理部の実処理の負荷および他サーバ装置の実処理の負荷と、前記他サーバ装置との間の前記伝送路の負荷を監視しており、処理要求のコマンドを受けると、前記処理部の実処理の負荷と前記他サーバ装置の実処理の負荷と前記伝送路の負荷とに基づいて前記コマンドの割り当て先を決め、該コマンドを該割り当て先に転送する転送部と、を有する負荷分散制御システム。
【請求項２】
前記転送部は、前記コマンドを転送した時刻と前記コマンドの処理結果を受けた時刻とから前記実処理の所要時間を算出し、該実処理の所要時間で前記実処理の負荷の状態を判断する請求項１記載の負荷分散制御システム。
【請求項３】
前記転送部は、前記他のサーバ装置にヘルスチェックデータを送信し、該他のサーバ装置から該ヘルスチェックデータに対する応答を受信し、該ヘルスチェックデータを送信した時刻と前記応答を受信した時刻とからヘルスチェックの所要時間を算出し、該ヘルスチェックの所要時間で前記伝送路の負荷の状態を判断する請求項１または２記載の負荷分散制御システム。
【請求項４】
前記転送部は、前記他サーバ装置にヘルスチェックデータを送信した後、所定の時間内に該他サーバ装置から該ヘルスチェックデータに対する応答を受信できなければ、該他サーバ装置を前記コマンドの割り当て先の候補から除外する、請求項３に記載の負荷分散制御システム。
【請求項５】
負荷を分散して処理を実行する負荷分散制御方法であって、
伝送路を介して相互に接続され、それぞれがコマンドの実処理を実行する複数のサーバ装置を有し、前記複数のサーバ装置の少なくとも１つが、
割り当てられたコマンドの実処理を実行し、
前記実処理の負荷および他サーバ装置の実処理の負荷と、前記他サーバ装置との間の前記伝送路の負荷を監視し、処理要求のコマンドを受けると、前記実処理の負荷と前記他サーバ装置の実処理の負荷と前記伝送路の負荷とに基づいて前記コマンドの割り当て先を決め、該コマンドを該割り当て先に転送する負荷分散制御方法。
【請求項６】
前記コマンドを転送した時刻と前記コマンドの処理結果を受けた時刻とから前記実処理の所要時間を算出し、該実処理の所要時間で前記実処理の負荷の状態を判断する請求項５記載の負荷分散制御方法。
【請求項７】
前記他のサーバ装置にヘルスチェックデータを送信し、該他のサーバ装置から該ヘルスチェックデータに対する応答を受信し、該ヘルスチェックデータを送信した時刻と前記応答を受信した時刻とからヘルスチェックの所要時間を算出し、該ヘルスチェックの所要時間で前記伝送路の負荷の状態を判断する請求項５または６に記載の負荷分散制御方法。
【請求項８】
前記他サーバ装置にヘルスチェックデータを送信した後、所定の時間内に該他サーバ装置から該ヘルスチェックデータに対する応答を受信できなければ、該他サーバ装置を前記コマンドの割り当て先の候補から除外する、請求項７に記載の負荷分散制御方法。
【請求項９】
複数のサーバ装置が伝送路を介して接続された負荷分散制御システムを構成するサーバ装置であって、
割り当てられたコマンドの実処理を実行する処理部と、
前記処理部の実処理の負荷および他のサーバ装置の実処理の負荷と、前記他サーバ装置との間の前記伝送路の負荷を監視しており、処理要求のコマンドを受けると、前記処理部の実処理の負荷と前記他サーバ装置の実処理の負荷と前記伝送路の負荷とに基づいて前記コマンドの割り当てを決め、該コマンドを該割り当て先に転送する転送部と、を有するサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散の制御に関し、特に冗長構成のサーバ群の負荷分散の制御に関する。
【背景技術】
【０００２】
従来、冗長構成のサーバ群の負荷分散において、各サーバ装置は自己の負荷状況を測定して測定結果を相互に通知し、サーバ装置間でその測定結果を比較している。そして、比較した結果から負荷の最も軽いサーバ装置を選択して処理が割り当てられる。
【０００３】
特許文献１は、ＣＰＵ負荷の軽いサーバ装置を動的に選択する負荷分散の技術を開示している。特許文献１では、クライアントは、ある特定のサーバ装置（以下「要求サーバ先装置」という）に対してデータベースへのアクセスを要求すると同時に他の全てのサーバ装置にＣＰＵ負荷情報を要求先サーバ装置に通知するように要求する。データベースへのアクセスの要求を受けた要求先サーバ装置は、他のサーバ装置から現在のＣＰＵ負荷情報を受信して、他のサーバ装置のＣＰＵと自己のＣＰＵ負荷とを比較する。自己のＣＰＵ負荷が最も軽ければ、要求先サーバ装置自身がデータベースにアクセスする。他のサーバ装置のＣＰＵ負荷の方が軽ければ、要求先サーバ装置から最もＣＰＵ負荷の軽いサーバ装置に制御を移し、移動先サーバ装置がデータベースにアクセスする。
【特許文献１】特開平１１−６５９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されている技術では、クライアントが要求先サーバ装置にデータベースのアクセスを要求し、他のサーバ装置にＣＰＵ負荷情報の通知を要求すると、他の各サーバ装置はＣＰＵ負荷情報を生成し、要求先サーバ装置に通知する。要求先サーバ装置は、自身のＣＰＵ負荷と他のサーバ装置から通知されたＣＰＵ負荷情報に基づいて、データベースにアクセスするサーバ装置を決定し、決定されたサーバ装置がデータベースへのアクセスを開始していた。
【０００５】
負荷分散を行う目的の１つにクライアントからのアクセスに対する応答の即時性の確保があるが、クライアントがアクセスを要求してから応答が変えるまでの時間を決める要因はＣＰＵ負荷だけではない。移動先サーバ装置のＣＰＵ負荷が軽くても、クライアントと移動先サーバ装置の間の伝送路が輻輳していれば、クライアントに応答が返るまでの時間が長くなることがあった。
【０００６】
本発明の目的は、実処理だけでなく伝送路の負荷をも考慮してネットワークに接続された負荷を分散することができ、応答の即時性を向上させることができる負荷分散制御システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の負荷分散制御システムは、
負荷を分散して処理を実行する負荷分散制御システムであって、
伝送路を介して相互に接続され、それぞれがコマンドの実処理を実行する複数のサーバ装置を有し、前記複数のサーバ装置の少なくとも１つが、
割り当てられたコマンドの実処理を実行する処理部と、
前記処理部の実処理の負荷および他サーバ装置の実処理の負荷と、前記他サーバ装置との間の前記伝送路の負荷を監視しており、処理要求のコマンドを受けると、前記処理部の実処理の負荷と前記他サーバ装置の実処理の負荷と前記伝送路の負荷とに基づいて前記コマンドの割り当て先を決め、該コマンドを該割り当て先に転送する転送部と、を有する。
【０００８】
本発明によれば、転送部が処理部の実処理の負荷および他サーバ装置の実処理の負荷に加えて、他サーバ装置との間の伝送路の負荷を監視し、それら実処理の負荷と伝送路の負荷に基づいてコマンド・データの割り当て先を決定する。そのため、実処理だけでなく伝送路の負荷をも考慮してネットワークに接続された負荷を分散することができ、応答の即時性を向上させることができる。
【発明の効果】
【０００９】
本発明によれば、実処理だけでなく伝送路の負荷をも考慮してネットワークに接続された負荷を分散することができ、応答の即時性を向上させることができる。
【発明を実施するための最良の形態】
【００１０】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００１１】
図１は、本実施形態における負荷分散制御システムの構成を示すブロック図である。本実施形態の負荷分散制御システムは、ノード装置１内にネットワーク装置２１〜２ｎとサーバ装置３１，３２を有している。なお、ここでは一例としてサーバ装置が２つの構成を示しているが、３つ以上のサーバ装置が相互に接続された構成であってもよい。
【００１２】
ネットワーク装置２１〜２ｎは、複数のサーバ装置３１，３２を相互に接続し、サーバ装置３１，３２間の通信を可能にする。
【００１３】
各サーバ装置３１，３２は、ネットワーク装置２１〜２ｎを介して相互に接続され、冗長構成となっている。
【００１４】
図２は、本実施形態のサーバ装置３１，３２の冗長構成を示すブロック図である。サーバ装置３１は、タスク転送部４１およびタスク処理部５１を有している。サーバ装置３２は、タスク転送部４２およびタスク処理部５２を有している。サーバ装置３１において、タスク転送部４１は、順序制御部１１、同期制御部１２、冗長制御部１３、処理時間管理部１４、およびインタフェース７１，７２，７３，７４，７５，７６を有している。サーバ装置３２において、タスク転送部４２は、順序制御部６１、同期制御部６２、冗長制御部６３、処理時間管理部６４、およびインタフェース８１，８２，８３，８４，８５，８６を有している。
【００１５】
サーバ装置３１は、外部装置（不図示）からコマンド・データを受信して、自身で実処理を行うか、あるいは伝送路を介して接続されているサーバ装置３２にコマンド・データを転送する。
【００１６】
サーバ装置３２は、サーバ装置３１から転送されたコマンド・データを受信し、受信したコマンド・データの実処理を行い、処理結果の応答をサーバ装置３１に返す。
【００１７】
サーバ装置３１とサーバ装置３２は、同一の構成を有しており、外部装置からのコマンド・データをサーバ装置３２で受信することも可能である。例えば、サーバ装置３１が故障したとき、サーバ装置３２はサーバ装置３１と同様の処理を行うことができる。
【００１８】
順序制御部１１は、外部装置から受信したコマンド・データに対して処理の順序性を保証する制御を行う。順序制御部１１は、外部装置から外部インタフェース７１を経由して受信したコマンド・データをキューイングおよびバッファリングする。
【００１９】
そして、順序制御部１１は、処理時間管理部１４から他のサーバ装置３２が送信先として指定されていなければ、バッファリングしたコマンド・データを、インタフェース７５を経由してタスク処理部５１に送る。コマンド・データをタスク処理部５１に送信した後、順序制御部１１は処理開始通知情報を処理時間管理部１４に送る。処理開始通知情報は、タスク処理部５１，５２に実処理を要求したことを示す情報である。
【００２０】
また、順序制御部１１は、タスク処理部５１からインタフェース７６を経由して処理結果を受け取る。タスク処理部５１から処理結果を受けると、順序制御部１１は、処理終了通知情報を処理時間管理部１４に送るとともに、処理結果をインタフェース７２を介して外部装置に送る。処理終了通知情報は、タスク処理部５１，５２が実処理を終了したことを示す情報である。
【００２１】
順序制御部１１は、処理時間管理部１４から他のサーバ装置３２が送信先として指定されていれば、インタフェース７４を経由してサーバ装置３２のタスク転送部４２にコマンド・データを転送する。そして、順序制御部１１は、サーバ装置３２のタスク転送部４２からインタフェース７３を経由してコマンド・データの処理結果を受けると、サーバ装置３２の処理終了通知情報を処理時間管理部１４に送るとともに、処理結果をインタフェース７２を介して外部装置に返送する。
【００２２】
その際、サーバ装置３１とサーバ装置３２はそれぞれ独立に処理を実行するので、順序制御部１１の入力で見ると、サーバ装置３１の処理結果とサーバ装置３２の処理結果の順序性は保証されていない。そこで、順序制御部１１は、サーバ装置３１の処理結果とサーバ装置３２の処理結果の順序を正常にして外部装置に返送する。
【００２３】
同期制御部１２は、冗長構成のサーバ装置３１とサーバ装置３２の間の処理の同期をとる。同期制御部１２は、インタフェース７１からのコマンド・データを受信する。また、同期制御部１２は、処理時間管理部１４から処理開始情報と各サーバ装置３１，３２の処理終了通知情報を受信する。同期制御部１２は、インタフェース７１からのコマンド・データと処理時間管理部１４からの処理開始通知情報とを他のサーバ装置３２の同期制御部６２に送信する。サーバ装置３２の同期制御部６２は、サーバ装置３１の同期制御部１２からコマンド・データと処理開始通知情報を受信すると、受信したコマンド・データと処理開始通知情報を同期情報として蓄積する。
【００２４】
また、同期制御部１２は、処理時間管理部１４からの処理終了通知情報を他のサーバ装置３２の同期制御部６２に送信する。サーバ装置３２の同期制御部６２は、処理終了通知情報を受信すると、同期情報として蓄積したコマンド・データおよび処理開始情報を同期制御部６２から消去する。
【００２５】
冗長制御部１３は、ヘルスチェックによって他サーバ装置３２の正常性および他サーバ装置３２との伝送路の正常性を監視する。冗長制御部１３は、伝送路を介して他のサーバ装置３２の冗長制御部６３に定期的にヘルスチェックデータを送信し、そのサーバ装置３２の冗長制御部６３からヘルスチェックデータを受信することによって、伝送路の状態を監視する。冗長制御部１３は、監視結果からヘルスチェック送受信情報を生成して処理時間管理部１４に送信する。ヘルスチェック送受信情報は、ヘルスチェックデータを送信した時刻とヘルスチェックデータを受信した時刻を含む情報である。
【００２６】
また、冗長制御部１３は、自装置の動作状態およびインタフェースのリンク状態を監視する。冗長制御部１３は、自装置で処理を継続できない障害を検出すると、他のサーバ装置３２の冗長制御部６３に障害情報を通知する。障害情報は、サーバ装置３１の故障を他のサーバ装置３２の冗長制御部６３に通知するための情報である。同期制御部６２は、冗長制御部６３が障害情報を受信したことを検知すると、蓄積している同期情報を順序制御部６１に送信する。順序制御部６１は、同期制御部６２から同期情報を受信すると、サーバ装置３１の順序制御部１１が行っていた処理を、同期情報を用いて引き継ぎ、その後の処理を開始する。
【００２７】
処理時間管理部１４は、伝送路の負荷状態とコマンド・データの処理時間を管理する。処理時間管理部１４は、冗長制御部１３からヘルスチェック送受信情報を受信すると、そのヘルスチェック送受信情報に含まれるヘルスチェックデータの送信時刻と受信時刻からヘルスチェックの所要時間を算出する。また、処理時間管理部１４は、ヘルスチェックデータが送信された後、一定時間内に応答のヘルスチェックデータが受信されていなければ、そのサーバ装置３２をコマンド・データの送信先から除外するよう順序制御部１１に要求する。
【００２８】
また、処理時間管理部１４は、順序制御部１１から処理開始通知情報と処理終了通知情報を受信し、それらを受信した時刻を記憶する。そして、処理時間管理部１４は、処理開始通知情報を受信した時刻と、処理終了通知情報を受信した時刻とから実処理の所要時間を算出し、算出した実処理の所要時間によって、サーバ装置３１，３２の負荷状態を監視する。
【００２９】
処理時間監視部１４は、コマンド・データの送信先から除外されていないサーバ装置３１，３２の中から、ヘルスチェックの所要時間および実処理の所要時間を用いて、送信先とするサーバ装置を決定し、順序制御部１１に通知する。また、処理開始通知情報を受信した後、それに対応する処理終了通知情報を所定時間内に受信できなければ、処理時間管理部１４は順序制御部１１にコマンド・データの再送を要求する。
【００３０】
図３は、本実施形態のサーバ装置３１，３２におけるヘルスチェックを行う際の動作を示すフローチャートである。冗長制御部１３は、伝送路を介して接続されている他のサーバ装置３２の冗長制御部６３にヘルスチェックデータを送信する（ステップ１００）。処理時間管理部１４は、そのサーバ装置３２の冗長制御部６３から所定の時間内にヘルスチェックデータを受信したか否かを判定する（ステップ１０１）。
【００３１】
サーバ装置３２の冗長制御部６３からヘルスチェックデータを所定の時間内に受信すると、処理時間管理部１４は、ヘルスチェックの所要時間を算出する（ステップ１０２）。処理時間管理部１４は算出したヘルスチェックの所要時間に基づいて送信先となるサーバ装置を指定する（ステップ１０３）。サーバ装置３２の冗長制御部６３からヘルスチェックデータを所定の時間内に受信しないと、所要時間管理部１４は、サーバ装置３２を送信先から除外する（ステップ１０４）。
【００３２】
図４は、本実施形態のサーバ装置３１，３２における実処理を行う際の動作を示すフローチャートである。順序制御部１１は、コマンド・データを受信する（ステップ１５０）。順序制御部１１は、受信したコマンド・データを自装置のタスク処理部５１または送信先となるサーバ装置３２のタスク転送部４２に転送し、その後、処理開始通知情報を処理時間管理部１４に送信する（ステップ１５１）。
【００３３】
処理時間管理部１４は、対応する処理終了通知情報を所定の時間内に受信したか否かを判定する（ステップ１５２）。対応する処理終了通知情報を所定の時間内に受信できなければ、処理時間管理部１４は順序制御部１１にコマンド・データの再送を要求する（ステップ１５３）。対応する処理終了通知情報を所定の時間内に受信すれば、処理時間管理部１４は実処理の所要時間を算出する（ステップ１５４）。処理時間管理部１４は、新たに算出した実処理の所要時間に基づいて送信先を指定する（ステップ１５５）。
【００３４】
図５は、本実施形態の順序制御部１１の構成を示すブロック図である。本順序制御部１１は、バッファ格納処理部１１１、次コマンド・データ設定処理部１１２、コマンド・データ送信処理部１１３、処理結果受信処理部１１４、バッファ削除処理部１１５、および処理結果送信処理部１１６を有している。
【００３５】
バッファ格納処理部１１１は、外部装置から受信したコマンド・データをメモリ上（不図示）に格納し、処理順序キューに登録する。
【００３６】
次コマンド・データ設定処理部１１２は、処理結果受信処理部１１４から次の処理が実行可能となった旨の通知を受け取ると、バッファ格納処理１１１に登録されたコマンド・データを読み込んで、コマンド・データ送信処理部１１３に送る。
【００３７】
コマンド・データ送信処理部１１３は、処理時間管理部１４から他のサーバ装置３２が送信先として指定されていなければ、コマンド・データ設定処理部１１２からのコマンド・データをタスク処理部５１に送る。また、コマンド・データ送信処理部１１３は、処理時間管理部１４から他のサーバ装置３２が送信先として指定されていれば、コマンド・データ設定処理部１１２からのコマンド・データを自装置のタスク処理部５１または送信先となるサーバ装置３２のタスク転送部４２にコマンド・データを転送する。コマンド・データを転送した後、コマンド・データ送信処理部１１３は処理開始通知情報を処理時間管理部１４に送る。
【００３８】
処理結果受信処理部１１４は、タスク処理部５１から処理結果を受け取ると、その処理結果を処理結果送信処理部１１６に送るとともに、処理終了通知情報を処理時間管理部１４に送る。また、それとともに、処理結果受信処理部１１４は、次コマンド・データ設定処理部１１２に次の処理が実行可能となった旨を通知し、バッファ削除処理部１１５に処理が完了した旨を通知する。
【００３９】
バッファ削除処理部１１５は、処理結果受信処理部１１４から処理の完了を通知されると、その処理が完了したコマンド・データをバッファから削除する。
【００４０】
処理結果送信処理部１１６は、処理結果受信処理部１１４から処理結果を受けると、処理結果の順序を正常にして、外部装置に処理結果を返送する。
【００４１】
図６は、本実施形態の順序制御部１１の動作を示すフローチャートである。バッファ格納処理部１１１は、外部装置から受信したコマンド・データをメモリ上に格納するとともに、処理順序キューに登録する。
【００４２】
次コマンド・データ設定処理部１１２は、バッファ格納処理部１１１の処理順序キューにコマンド・データが登録されているか否かを判定する（ステップ２００）。バッファ格納処理部１１１に次のコマンド・データが登録されていると、次コマンド・データ設定処理部１１２は、バッファ格納処理部１１１のメモリ上からコマンド・データを読み込む（ステップ２０１）。
【００４３】
コマンド・データ送信処理部１１３は、処理時間管理部１４から他のサーバ装置３２が送信先として指定されていなければ、読み込まれたコマンド・データを自装置のタスク処理部５１に送る（ステップ２０２）。コマンド・データをタスク処理部５１に送信した後、コマンド・データ送信処理部１１３は処理開始通知情報を処理時間管理部１４に送る（ステップ２０３）。タスク処理部５１は、処理が完了すると、処理結果を処理結果受信処理部１１４に送る（ステップ２０４）。
【００４４】
処理結果受信処理部１１４は、タスク処理部５１から処理結果を受け取ると、処理終了通知情報を処理時間管理部１４に送る（ステップ２０５）。
【００４５】
また、処理結果受信処理部１１４は、次コマンド・データ設定処理部１１２に次の処理が実行可能となった旨を通知する（ステップ２０６）。
【００４６】
さらに、処理結果受信処理部１１４は、バッファ削除処理部１１５に処理が完了した旨を通知する。バッファ削除処理部１１５は、処理結果受信処理部１１４から処理が完了した旨を通知されると、その処理が完了したコマンド・データをバッファから削除する（ステップ２０７）。
【００４７】
次に、処理結果受信処理部１１４は、処理結果送信処理部１１６に処理結果を送信する。処理結果送信処理部１１６は、処理結果受信処理部１１４から処理結果を受け取ると、順序を正常にして処理結果を外部装置に返送する（ステップ２０８）。
【００４８】
図７は、本実施形態の同期制御部１２の構成を示すブロック図である。同期制御部１２は、コマンド・データ転送処理部１２１および処理状態転送処理部１２２を有している。
【００４９】
コマンド・データ転送処理部１２１は、コマンド・データを他のサーバ装置３２のタスク転送部４２内にある同期制御部６２に送信する。
【００５０】
処理状態転送処理部１２２は、処理時間管理部１４から処理開始通知情報と処理終了通知情報とを受信し、受信した処理開始通知情報と処理終了通知情報を同期制御部６２に送信する。
【００５１】
他のサーバ装置３２では、タスク転送部４２内の同期制御部６２がコマンド・データ転送処理１２１と処理状態転送処理部１２２からコマンド・データおよび処理開始通知情報を受信して同期情報として蓄積する。また、タスク転送部４２内の同期制御部６２は、処理状態転送処理部１２２からの処理終了通知情報を受信すると、同期情報として蓄積したコマンド・データおよび処理開始通知情報を同期制御部６２から消去する。
【００５２】
図８は、本実施形態の冗長制御部１３の構成を示すブロック図である。冗長制御部１３は、ヘルスチェック監視処理部１３１および外部ＩＦ監視処理部１３２を有している。
【００５３】
ヘルスチェック監視処理部１３１は、伝送路を介して他のサーバ装置３２の冗長制御部６３にヘルスチェックデータを送信し、そのサーバ装置３２の冗長制御部６３から応答のヘルスチェックデータを受信する。ヘルスチェック監視処理部１３１は、ヘルスチェックデータの送受信を示すヘルスチェック送受信情報を生成して処理時間管理部１４に送信する。
【００５４】
外部ＩＦ監視処理部１３２は、自装置（サーバ装置３１）の動作状態およびインタフェースのリンク状態を監視する。外部ＩＦ監視処理部１３２は、物理レイヤレベルの状態を監視してサーバ装置３１の故障を検出する。サーバ装置３１の故障を検出すると、外部ＩＦ監視処理部１３２は障害情報を冗長制御部６３に通知する。
【００５５】
図９は、本実施形態の処理時間管理部１４の構成を示すブロック図である。処理時間管理部１４は、ヘルスチェック送受信情報受信部１４１、ヘルスチェックタイムアウト監視部１４２、送受信情報受信部１４３、送信タイムアウト監視部１４４、および処理負荷演算部１４５を有している。
【００５６】
ヘルスチェック送受信情報受信部１４１は、冗長制御部１３からヘルスチェック送受信情報を受信すると、ヘルスチェックタイムアウト監視部１４２と処理負荷演算部１４５にヘルスチェック送受信情報を送信する。
【００５７】
ヘルスチェックタイムアウト監視部１４２は、ヘルスチェック送受信情報受信部１４１からヘルスチェックデータの送信を示すヘルスチェック送受信情報を受信した後、所定時間内にヘルスチェックデータの受信を示すヘルスチェック送受信情報を受信できたか否かを判定する。ヘルスチェックタイムアウト監視部１４２は、ヘルスチェックが所定時間内に完了しなければ、そのサーバ装置３２を送信先から除外するよう順序制御部１１に要求する。
【００５８】
送受信情報受信部１４３は、順序制御部１１から処理開始通知情報または処理終了通知情報を受信すると、送信タイムアウト監視１４４、処理負荷演算部１４５、および同期制御部１２に処理開始通知情報または処理終了通知情報を送信する。
【００５９】
送信タイムアウト監視部１４４は、処理開始通知情報を受信した時刻から所定時間内に処理終了通知情報を受信したか否かを判定する。送信タイムアウト監視部１４４は、所定時間内に処理終了通知情報を受信できなければ、順序制御部１１にコマンド・データを再送するように要求する。
【００６０】
処理負荷演算部１４５は、ヘルスチェック送受信情報受信部１４１からヘルスチェック送受信情報を受信すると、そのヘルスチェック送受信情報に含まれる送信時刻と受信時刻からヘルスチェックの所要時間を算出する。
【００６１】
また、処理負荷演算部１４５は、送受信情報受信部１４３から処理開始通知情報と処理終了通知情報を受信すると、それらを受信した時刻を記憶する。そして、処理負荷演算部１４５は、処理開始通知情報を受信した時刻と、処理終了通知情報を受信した時刻とから処理開始から処理完了までの実処理の所要時間を算出する。なお、送受信情報受信部１４３から処理負荷分散演算部１４５へは自装置の処理開始通知情報および処理終了通知情報と、他のサーバ装置３２の処理開始通知情報および処理終了通知情報とが通知される。そのため、処理負荷演算部１４５は、自装置の実処理の所要時間と他のサーバ装置３２の実処理の所要時間とを算出することとなる。
【００６２】
処理負荷演算部１４５は、算出したヘルスチェックの所要時間と実処理の所要時間とから、送信先とするサーバ装置を決定し、順序制御部１１に通知する。例えば、処理負荷演算部１４５は、ヘルスチェックの所要時間が最も短いサーバ装置を送信先として順序制御部１１に通知する。順序制御部１１は、送信先とされたサーバ装置にコマンド・データを転送する。また、処理負荷演算部１４５は、実処理の所要時間を算出し、算出した実処理の所要時間が最も短いサーバ装置を送信先として順序制御部１１に通知する。
【００６３】
以上説明したように、本実施形態によれば、サーバ装置３１のタスク転送部４１がタスク処理部５１の実処理の負荷および他サーバ装置３２の実処理の負荷に加えて、他サーバ装置３２との間の伝送路の負荷を監視し、それら実処理の負荷と伝送路の負荷に基づいてコマンド・データの割り当て先を決定する。そのため、実処理だけでなく伝送路の負荷をも考慮してネットワークに接続された負荷を分散することができ、応答の即時性を向上させることができる。
【００６４】
なお、本実施形態ではコマンド・データを一旦転送した後に、そのコマンド・データの転送先を変更することはないが、本発明はこれに限定されるものではない。他の例として、サーバ装置３１は、サーバ装置３２にコマンド・データを転送してから一定時間内にサーバ装置３２から受け付けを通知する応答が無ければ、このコマンド・データをサーバ装置３２以外のサーバ装置（不図示）に転送して処理を行わせることにしてもよい。
【図面の簡単な説明】
【００６５】
【図１】本実施形態における処理の負荷分散装置の構成を示すブロック図である。
【図２】本実施形態のサーバ装置３１，３２の冗長構成を示すブロック図である。
【図３】本実施形態のサーバ装置３１，３２におけるヘルスチェックを行う際の動作を示すフローチャートである。
【図４】本実施形態のサーバ装置３１，３２における実処理を行う際の動作を示すフローチャートである。
【図５】本実施形態の順序制御部１１の構成を示すブロック図である。
【図６】本実施形態の順序制御部１１の動作を示すフローチャートである。
【図７】本実施形態の同期制御部１２の構成を示すブロック図である。
【図８】本実施形態の冗長制御部１３の構成を示すブロック図である。
【図９】本実施形態の処理時間管理部１４の構成を示すブロック図である。
【符号の説明】
【００６６】
１    ノード装置
２    伝送路装置
３    サーバ装置
４    タスク転送部
５    タスク処理部
１１  順序制御部
１２  同期制御部
１３  冗長制御部
１４  処理時間管理部
１００〜１０４、１５０〜１５５、２００〜２０９  ステップ
【図１】
2008009852.tif 000003
【図２】
2008009852.tif 000004
【図３】
2008009852.tif 000005
【図４】
2008009852.tif 000006
【図５】
2008009852.tif 000007
【図６】
2008009852.tif 000008
【図７】
2008009852.tif 000009
【図８】
2008009852.tif 000010
【図９】
2008009852.tif 000011