(57)【要約】【課題】情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行うこと。【解決手段】負荷分散装置１は、受信部１ａ、制御部１ｂおよび送信部１ｃを有する。受信部１ａは、処理要求５を受信し、制御部１ｂに出力する。制御部１ｂは、処理要求５を取得すると、情報処理装置２，３，４のうち、所定の負荷値が所定の閾値Ｌよりも小さい情報処理装置２を選択する。以後、制御部１ｂは、情報処理装置２の負荷値が閾値Ｌに達するまで、情報処理装置２を処理要求５の振分先と決定する。送信部１ｃは、制御部１ａが決定した振分先に処理要求５を送信する。【選択図】図１
2010165193.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照し、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理装置を、取得した処理要求の振分先と決定する制御部と、
前記制御部が決定した前記振分先に前記処理要求を送信する送信部と、
を有することを特徴とする負荷分散装置。
【請求項２】
前記制御部は、前記複数の情報処理装置のうち、前記負荷値が前記所定の閾値より小さく、かつ、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を前記処理要求の振分先と決定することを特徴とする請求項１記載の負荷分散装置。
【請求項３】
前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした順序を示す振分順序情報を記憶する振分順序情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、
ことを特徴とする請求項２記載の負荷分散装置。
【請求項４】
前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした最新の時刻を示す振分時刻情報を記憶する振分時刻情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、
ことを特徴とする請求項２記載の負荷分散装置。
【請求項５】
前記複数の情報処理装置それぞれから前記処理要求に応じた処理の完了予定時刻を示す完了時刻情報を受信し、前記複数の情報処理装置それぞれの識別情報と当該完了時刻情報とを対応付けて完了時刻情報記憶部に格納する完了時刻情報受信部を更に有し、
前記制御部は、前記完了時刻情報記憶部に記憶された前記完了時刻情報に基づいて、前記負荷値が前記所定の閾値より小さく、かつ、前記完了予定時刻が最も遅い情報処理装置を前記処理要求の振分先と決定する、
ことを特徴とする請求項１記載の負荷分散装置。
【請求項６】
負荷分散装置の負荷分散方法であって、
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、
選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、
決定した前記振分先に前記処理要求を送信する、
ことを特徴とする負荷分散方法。
【請求項７】
コンピュータに、
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、
選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、
決定した前記振分先に前記処理要求を送信する、
処理を実行させることを特徴とする負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、負荷分散装置、負荷分散方法および負荷分散プログラムに関し、特に複数の情報処理装置に処理要求を振り分ける負荷分散装置、負荷分散方法および負荷分散プログラムに関する。
【背景技術】
【０００２】
従来、同一のサービスを提供する複数のサーバを設け、これら複数のサーバに処理要求を振り分けて分散処理する負荷分散システムが用いられている。負荷分散システムは、負荷分散装置を有する。負荷分散装置は、複数のサーバの前段で処理要求を受け付け、各サーバの負荷が均等になるよう各サーバに処理要求を振り分ける。
【０００３】
負荷分散装置の負荷分散方法には、例えば、ラウンドロビン、最小コネクションおよび最小応答時間などがある。ラウンドロビンは、各サーバに順番に処理を割り当てる方法である。最小コネクションは、各サーバのうち、ＴＣＰ（Transaction Control Protocol）コネクションやＵＤＰ（User Datagram Protocol）フローの数が最も少ないサーバに処理を割り当てる方法である。最小応答時間は、各サーバの応答時間を測定し、応答時間が短いサーバに処理を割り当てる方法である。このように負荷を分散することで、サーバの応答性を向上できる。
【０００４】
ところで、情報処理システムでは省電力化が課題となる。この課題に対し、負荷分散システムでは、全てのサーバを起動させておく必要がない場合には、応答性を損なわない最低限のサーバのみを稼動させ、それ以外のサーバは処理を停止させて省電力状態とすることが望ましい。
【０００５】
このために、例えば、所定のサーバの負荷状況を監視して、このサーバ単体の処理能力を超えた場合に、停止中のサーバを起動させて負荷分散することが考えられる。また、該当サーバの負荷や全サーバの負荷を監視し、負荷が所定の水準よりも低下した際には、所定のサーバを省電力状態に移行させることが考えられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２２５６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、負荷分散装置は振り分け可能なサーバに対して処理を一様に振り分ける。したがって、上記の方法では各サーバの負荷が所定の水準より低下したとしても、サーバに未実行の処理が残っている可能性がある。この場合、サーバを省電力状態に移行することができない。なぜなら、処理が継続しているにも関わらずサーバを省電力状態に移行させると、クライアントのサービス利用を中断させることになるためである。
【０００８】
このため、上記の方法では、停止対象とするサーバに残っている処理を他のサーバに委譲する必要がある。しかし、委譲を行うとすると、委譲先サーバの選定や委譲を実行する処理により、システムに余計な負荷が発生するという問題がある。また、負荷分散装置やサーバに、このような処理を実行させるためのモジュールを設ける必要があるという問題がある。
【０００９】
本件はこのような点に鑑みてなされたものであり、情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行う負荷分散装置、負荷分散方法および負荷分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、負荷分散装置が提供される。この負荷分散装置は、制御部と送信部とを有する。制御部は、複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照し、複数の情報処理装置のうち、負荷値が所定の閾値よりも小さい情報処理装置を選択し、選択した情報処理装置の負荷値が所定の閾値に達するまで、この情報処理装置を、取得した処理要求の振分先と決定する。送信部は、制御部が決定した振分先に処理要求を送信する。
【００１１】
また、上記課題を解決するために上記負荷分散装置と同様の処理を行う負荷分散方法が提供される。また、上記課題を解決するために上記負荷分散装置と同様の処理をコンピュータに実行させる負荷分散プログラムが提供される。
【発明の効果】
【００１２】
上記負荷分散装置、負荷分散方法および負荷分散プログラムによれば、情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】負荷分散システムの概要を示す図である。
【図２】Ｗｅｂシステムの構成を示す図である。
【図３】負荷分散装置のハードウェア構成を示す図である。
【図４】Ｗｅｂサーバのハードウェア構成を示す図である。
【図５】第１の実施の形態の負荷分散装置およびＷｅｂサーバの機能構成を示す図である。
【図６】第１の実施の形態のサーバ管理テーブルの第１のデータ構造例を示す図である。
【図７】第１の実施の形態のサーバ管理テーブルの第２のデータ構造例を示す図である。
【図８】負荷閾値管理テーブルのデータ構造例を示す図である。
【図９】メッセージ受信処理の手順を示すフローチャートである。
【図１０】第１の実施の形態のリクエスト振分処理の手順を示すフローチャートである。
【図１１】サーバ起動処理の手順を示すフローチャートである。
【図１２】サーバ停止処理の手順を示すフローチャートである。
【図１３】Ｗｅｂシステムの第１の状態例を示す図である。
【図１４】サーバ停止の流れを示すシーケンス図である。
【図１５】Ｗｅｂシステムの第２の状態例を示す図である。
【図１６】サーバ起動の流れを示すシーケンス図である。
【図１７】Ｗｅｂシステムの第３の状態例を示す図である。
【図１８】Ｗｅｂシステムの第４の状態例を示す図である。
【図１９】第２の実施の形態の負荷分散装置およびＷｅｂサーバの機能構成を示す図である。
【図２０】第２の実施の形態のサーバ管理テーブルのデータ構造例を示す図である。
【図２１】第２の実施の形態のリクエスト振分処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して詳細に説明する。
図１は、負荷分散システムの概要を示す図である。この負荷分散システムは、負荷分散装置１および情報処理装置２，３，４を有する。負荷分散装置１は、処理要求５を情報処理装置２，３，４に振り分ける。情報処理装置２，３，４は、処理要求に応じた処理を実行する。情報処理装置２，３，４は、例えば、所定のサービスを提供するサーバである。
【００１５】
負荷分散装置１は、受信部１ａ、制御部１ｂおよび送信部１ｃを有する。
受信部１ａは、情報処理装置２，３，４に対する処理要求５を受信する。処理要求５は、例えば、情報処理装置２，３，４が提供するサービスを利用するクライアントから送信される。受信部１ａは、受信した処理要求５を制御部１ｂに出力する。
【００１６】
制御部１ｂは、受信部１ａから処理要求５を取得すると、情報処理装置２，３，４のうち、所定の負荷値が所定の閾値Ｌよりも小さい情報処理装置を選択する。負荷値は、例えば、情報処理装置２，３，４のそれぞれに振り分けた処理要求の数や情報処理装置２，３，４のそれぞれのハードウェア資源の負荷などに基づいて取得できる。制御部１ｂは、例えば情報処理装置２，３，４から定期的に負荷値の通知を受け付けて管理する。なお、閾値Ｌは情報処理装置２，３，４の応答性を損なわない負荷値として予め決められる。そして、制御部１ｂは、この情報処理装置の負荷値が閾値Ｌに達するまで、この情報処理装置を振分先と決定する。
【００１７】
送信部１ｃは、制御部１ｂが決定した振分先に処理要求５を送信する。
ここで、制御部１ｂは、閾値Ｌよりも小さい情報処理装置が複数存在する場合には、その中から更に振分先とする情報処理装置を決定する。第１の振分先決定方法として、例えば、前回処理要求の送信先とした時点からの経過時間が最も短い情報処理装置を振分先とすることが考えられる。また、第２の振分先決定方法として、振り分けられた処理要求に応じた処理を全て完了する予定時刻が最も遅い情報処理装置を振分先とすることが考えられる。
【００１８】
第１の振分先決定方法を用いる場合、負荷分散装置１が処理要求５を受信した際に、例えば情報処理装置２，３，４が次のような状態であるとする。すなわち、情報処理装置２，４の負荷値が閾値Ｌより小さく、情報処理装置３の負荷値が閾値Ｌより大きいものとする。また、処理要求を送信した順に直近のものから並べると、情報処理装置３，２，４であったとする。この場合、制御部１ｂは、負荷値が閾値Ｌよりも小さい情報処理装置２，４のうち、直近に処理要求を送信した情報処理装置２を処理要求５の振分先と決定する。
【００１９】
また、第２の振分先決定方法を用いる場合、負荷分散装置１が処理要求５を受信した際に、例えば情報処理装置２，３，４が次のような状態であるとする。すなわち、情報処理装置２，４の負荷値が閾値Ｌより小さく、情報処理装置３の負荷値が閾値Ｌより大きいものとする。また、情報処理装置２，４のうち、情報処理装置２の方が、振り分けられた処理要求に応じた処理を全て完了する予定時刻が遅いとする。この場合、制御部１ｂは、情報処理装置２を処理要求５の振分先と決定する。
【００２０】
このようにすると、情報処理装置２の負荷値が閾値Ｌ以上とならない限り、情報処理装置３，４に処理要求が送信されることがなくなる。すなわち、負荷分散システムに対する処理要求が少ない場合には、情報処理装置２に処理要求を集中させることになる。
【００２１】
これにより、情報処理装置を効率的に省電力状態へ移行可能な状態とすることができる。具体的には、負荷分散システムにおいて要求される応答性が単一の情報処理装置で確保できる場合には、所定の情報処理装置に対してのみ処理要求を振り分ける。例えば、情報処理装置２に処理要求を集中させ、情報処理装置３，４には処理要求を振り分けない。その結果、情報処理装置３，４が実行すべき処理が時間の経過と共に完了されて、情報処理装置３，４の負荷値が減少する。この状態が継続すると、情報処理装置３，４の負荷値は、やがて０となる。そして、情報処理装置３，４の省電力状態への移行が可能となる。すなわち、情報処理装置２，３，４で処理の委譲等の余計な負荷を発生させずに、情報処理装置を省電力状態へ移行可能な状態にすることができる。
【００２２】
なお、負荷分散システムの応答性を保証するため、負荷値が上記の閾値を超えた場合には他の情報処理装置に処理要求を振り分けることが望ましい。例えば、情報処理装置２のみを稼動状態にする場合、処理要求が増大すると応答性が損なわれる可能性があるので、処理要求の量に応じて情報処理装置３，４に振り分け可能とすることが望ましい。この点、上記の閾値Ｌを超える前に、他の情報処理装置を稼動状態にしておくことが考えられる。このために、他の情報処理装置の起動判定用の閾値（この閾値は閾値Ｌより小さい値とする）を更に設けて、この閾値を超えたら省電力状態の情報処理装置を稼動状態に変更することが考えられる。
【００２３】
ところで、負荷分散装置１は、例えば、Ｗｅｂサービスを提供するＷｅｂシステムに適用できる。以下、Ｗｅｂシステムに負荷分散装置１を適用する場合を例に採り、更に具体的に説明する。なお、以下では負荷分散対象のプロトコルとして、ＨＴＴＰ（Hyper Text Transfer Protocol）を想定するが、これに限らない。例えば、ＳＭＴＰ（Simple Mail Transfer Protocol）やＦＴＰ（File Transfer Protocol）などのプロトコルを利用して他のサービスを提供する情報処理システムにも適用できる。
【００２４】
［第１の実施の形態］
以下、第１の実施の形態を図面を参照して詳細に説明する。
図２は、Ｗｅｂシステムの構成を示す図である。このＷｅｂシステムは、負荷分散装置１００およびＷｅｂサーバ２００，３００，４００，５００，・・・を有する。また、負荷分散装置１００は、ネットワーク１０を介して端末装置２１，２２，２３と接続される。ネットワーク１０は、インターネットまたはイントラネットの通信網である。
【００２５】
負荷分散装置１００は、端末装置２１，２２，２３からＷｅｂサーバ２００，３００，４００，５００，・・・に対する処理要求であるＨＴＴＰリクエスト（以下、単にリクエストという）を受信する。負荷分散装置１００は、Ｗｅｂサーバ２００，３００，４００，５００，・・・からリクエストの振分先を決定し、決定したＷｅｂサーバにリクエストを送信する。
【００２６】
また、負荷分散装置１００は、送信したリクエストに対するＨＴＴＰレスポンス（以下、単にレスポンスという）をＷｅｂサーバ２００，３００，４００，５００，・・・から受信する。そして、負荷分散装置１００は、該当のリクエストの発信元の端末装置に受信したレスポンスを送信する。
【００２７】
Ｗｅｂサーバ２００，３００，４００，５００，・・・は、負荷分散装置１００からリクエストを受信すると、リクエストに応じた処理を実行し、負荷分散装置１００にレスポンスを送信する。
【００２８】
負荷分散装置１００は、Ｗｅｂサービスの利用量が少ない場合には、Ｗｅｂシステムで稼動するＷｅｂサーバを適宜省電力状態に移行させて、システムの省電力化を図ることができる。例えば、Ｗｅｂサービスの利用量が多い日中には利用量に応じてＷｅｂサーバを稼動させて負荷分散し、利用量の少ない夜間には最小限のＷｅｂサーバのみを稼動させる。
【００２９】
ここで、省電力状態とは、ハードウェアデバイスへの電力供給を制御することによって消費電力を抑えるモードである。省電力状態としては、例えば、ＲＡＭ（Random Access Memory）等の限られたハードウェアデバイスにのみ電力を供給して、記憶されたデータを保持し、このデータからＯＳ（Operating System）を高速に元の状態に復帰可能とするモードが考えられる。また、ＲＡＭの情報をＨＤＤ（Hard Disk Drive）などの不揮発性の記憶媒体に書き込んだ後、ＲＡＭ等への電力供給も停止し、起動時にはＨＤＤに書き込んだＯＳの情報をＲＡＭに読み込むことで元の状態に復帰可能とするモードが考えられる。前者のモードと後者のモードとでは、前者の方が電力を消費するが、復帰に要する時間が短いなどの特徴がある。Ｗｅｂサーバ２００，３００，４００，５００，・・・の移行後の省電力状態としては、このようなモードが予め設定される。ただし、Ｗｅｂサーバ２００，３００，４００，５００，・・・に対する電力供給を完全に停止して省電力効果を向上することも考えられる。
【００３０】
負荷分散装置１００は、Ｗｅｂサーバ２００，３００，４００，５００，・・・を効率的に省電力状態に移行可能とすることができる。以下では、このような負荷分散装置１００の構成に関して詳細に説明する。
【００３１】
図３は、負荷分散装置のハードウェア構成を示す図である。負荷分散装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ１０２、ＮＶＲＡＭ（Non Volatile RAM）１０３、入力インタフェース１０４、通信部１０５、上位接続インタフェース１０６および下位接続インタフェース群１０７を有する。
【００３２】
ＣＰＵ１０１は、負荷分散装置１００全体の動作を制御する。
ＲＡＭ１０２は、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションソフトウェア（以下、アプリケーションという）のプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、ＣＰＵ１０１による処理に必要な各種データを記憶する。
【００３３】
ＮＶＲＡＭ１０３は、ＯＳのプログラム、アプリケーションのプログラムを記憶する。また、ＮＶＲＡＭ１０３は、ＣＰＵ１０１による処理に必要な各種データを記憶する。
入力インタフェース１０４は、外部装置からの入力を受け付ける。入力インタフェースは、例えば、シリアル通信用ポートである。システムの管理者は、入力インタフェース１０４に作業用のコンピュータを接続し、Ｔｅｌｎｅｔなどのプロトコルを用いて負荷分散装置１００に対する各種設定を行える。
【００３４】
通信部１０５は、データ通信処理を行う。通信部１０５には、上位接続インタフェース１０６および下位接続インタフェース群１０７と接続される。上位接続インタフェース１０６は、ネットワーク１０と接続する通信用ポートである。下位接続インタフェース群１０７は、Ｗｅｂサーバ２００，３００，４００，５００，・・・と接続する通信用ポートである。負荷分散装置１００とＷｅｂサーバ２００，３００，４００，５００，・・・とは、下位接続インタフェース群１０７で直接接続してもよいし、負荷分散装置１００とＷｅｂサーバ２００，３００，４００，５００，・・・との間にスイッチングハブなどを設けてもよい。
【００３５】
図４は、Ｗｅｂサーバのハードウェア構成を示す図である。Ｗｅｂサーバ２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤ２０３、画像表示インタフェース２０４、入力インタフェース２０５および通信インタフェース２０６を有する。
【００３６】
ＣＰＵ２０１は、Ｗｅｂサーバ２００全体の動作を制御する。
ＲＡＭ２０２は、ＣＰＵ２０１に実行させるＯＳのプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ２０２は、ＣＰＵ２０１による処理に必要な各種データを記憶する。
【００３７】
ＨＤＤ２０３は、ＯＳのプログラム、アプリケーションのプログラムを記憶する。また、ＨＤＤ２０３は、ＣＰＵ２０１による処理に必要な各種データを記憶する。
画像表示インタフェース２０４は、モニタ３１と接続される。画像表示インタフェース２０４は、ＣＰＵ２０１からの命令に従って、画像をモニタ３１の画面に表示させる。
【００３８】
入力インタフェース２０５は、キーボード３２とマウス３３と接続される。入力インタフェース２０５は、キーボード３２やマウス３３から送られてくる信号をＣＰＵ２０１に送信する。
【００３９】
通信インタフェース２０６は、負荷分散装置１００と接続され、負荷分散装置１００との間でデータの送受信を行う。
なお、Ｗｅｂサーバ３００，４００，５００，・・・についてもＷｅｂサーバ２００と同様のハードウェア構成により実現できる。
【００４０】
図５は、第１の実施の形態の負荷分散装置およびＷｅｂサーバの機能構成を示す図である。負荷分散装置１００は、管理情報記憶部１１０、通信処理部１２０、メッセージ処理部１３０、振分サーバ決定部１４０、サーバ情報管理部１５０、起動指示部１６０および省電力化指示部１７０を有する。これらの機能は、ＣＰＵ１０１が所定のプログラムを実行することで実現される。ただし、これらの機能の一部または全部を専用のハードウェアで実現してもよい。
【００４１】
管理情報記憶部１１０は、Ｗｅｂサーバ２００，３００，４００，５００，・・・の管理情報を記憶する。管理情報には、サーバ名、ＩＰアドレス、現在の稼動状況、負荷の状況などが含まれる。また、管理情報記憶部１１０は、リクエストの振分先の決定やサーバの起動停止などの判定に用いる負荷値に関する各種閾値の設定を記憶する。各閾値の設定は、管理者により、Ｗｅｂシステムの応答性を損なわない値が予め設定される。
【００４２】
通信処理部１２０は、端末装置２１からリクエストを受信する。そして、通信処理部１２０は、受信したリクエストを何れかのＷｅｂサーバに送信し、そのＷｅｂサーバからリクエストに応じたレスポンスを受信する。更に、通信処理部１２０は、受信したレスポンスを端末装置２１に送信する。
【００４３】
また、通信処理部１２０は、メッセージ処理部１３０から取得する各種メッセージをＷｅｂサーバ２００，３００，４００，５００，・・・に送信する。通信処理部１２０は、Ｗｅｂサーバ２００，３００，４００，５００，・・・から受信する各種メッセージをメッセージ処理部１３０に出力する。
【００４４】
メッセージ処理部１３０は、各種メッセージの生成・編集を行う。また、メッセージ処理部１３０は、受信したメッセージに応じた処理の実行を負荷分散装置１００の各部に指示する。具体的には、以下の処理を行う。
【００４５】
（１）メッセージ処理部１３０は、通信処理部１２０が端末装置２１からリクエストを受信すると、振分サーバ決定部１４０に振分先を決定させる。そして、リクエストの宛先を決定された振分先に編集して通信処理部１２０に出力する。また、振分先としたＷｅｂサーバの識別情報（サーバ名やＩＰアドレスなど）をサーバ情報管理部１５０に通知する。なお、通信処理部１２０が、このリクエストに対してＷｅｂサーバからレスポンスを受信すると、このレスポンスの送信先を端末装置２１の宛先に編集して通信処理部１２０に出力する。
【００４６】
（２）メッセージ処理部１３０は、通信処理部１２０がＷｅｂサーバ２００，３００，４００，５００，・・・から負荷の状況を示す情報（負荷通知メッセージ）を受信すると、その情報をサーバ情報管理部１５０に出力する。
【００４７】
（３）メッセージ処理部１３０は、起動指示部１６０から省電力状態のＷｅｂサーバの起動指示を受け付けると、この指示に対応する該当サーバ宛のメッセージを生成し、通信処理部１２０に出力する。このメッセージを起動指示メッセージとよぶこととする。また、起動対象としたＷｅｂサーバの識別情報をサーバ情報管理部１５０に出力する。
【００４８】
（４）メッセージ処理部１３０は、通信処理部１２０がＷｅｂサーバ２００，３００，４００，５００，・・・からＷｅｂサーバ２００，３００，４００，５００，・・・が実行すべき処理を全て完了した旨の通知（全処理完了メッセージ）を受け付けると、これを省電力化指示部１７０に出力する。また、これに応じて、省電力化指示部１７０から稼動状態のサーバの省電力状態への移行指示を受け付けると、この指示に対応する該当サーバ宛のメッセージを生成し、通信処理部１２０に出力する。このメッセージを省電力化指示メッセージとよぶこととする。また、移行対象のＷｅｂサーバの識別情報をサーバ情報管理部１５０に出力する。
【００４９】
振分サーバ決定部１４０は、管理情報記憶部１１０に記憶された管理情報および閾値の情報に基づいて、端末装置２１から受信したリクエストの振分先を決定する。
サーバ情報管理部１５０は、メッセージ処理部１３０から取得する情報に応じて管理情報記憶部１１０に記憶された管理情報を更新する。更新対象は、例えば、各Ｗｅｂサーバの負荷値、稼動状態／省電力状態、処理要求の振分順序を示す情報である。
【００５０】
起動指示部１６０は、サーバ情報管理部１５０により管理情報記憶部１１０の負荷値が更新されると管理情報記憶部１１０に記憶された管理情報および閾値の情報に基づいて、省電力状態のＷｅｂサーバの起動の要否を判定する。起動が必要である場合、起動指示およびその対象となるＷｅｂサーバの識別情報をメッセージ処理部１３０に通知する。
【００５１】
省電力化指示部１７０は、メッセージ処理部１３０を介してＷｅｂサーバ２００，３００，４００，５００，・・・の全処理完了通知を取得すると、管理情報記憶部１１０に記憶された管理情報および閾値の情報に基づいて、Ｗｅｂサーバ２００，３００，４００，５００，・・・の省電力状態への移行可否を判定する。省電力状態への移行が可能である場合、Ｗｅｂサーバ２００，３００，４００，５００，・・・の省電力状態への移行指示をメッセージ処理部１３０に出力する。
【００５２】
Ｗｅｂサーバ２００は、通信処理部２１０、メッセージ処理部２２０、負荷監視部２３０および省電力制御部２４０を有する。これらの機能は、ＣＰＵ２０１が所定のプログラムを実行することで実現される。ただし、これらの機能の一部または全部を専用のハードウェアで実現してもよい。
【００５３】
通信処理部２１０は、負荷分散装置１００からのメッセージ（Ｗｅｂサービスに対するリクエストを含む）を受信し、メッセージ処理部２２０に出力する。また、通信処理部２１０は、メッセージ処理部２２０から取得する各種メッセージを負荷分散装置１００に送信する。
【００５４】
メッセージ処理部２２０は、各種メッセージの生成を行う。また、メッセージ処理部２２０は、受信したメッセージに応じた処理の実行をＷｅｂサーバ２００の各部に指示する。具体的には、以下の処理を行う。
【００５５】
（１）メッセージ処理部２２０は、通信処理部２１０が負荷分散装置１００からリクエストを受信すると、該当のリクエストに対応するサービス処理部（図示せず）に、リクエストに応じた処理を実行させる。また、サービス処理部がリクエストに応じて生成したレスポンスを取得し、通信処理部２１０に出力する。
【００５６】
（２）メッセージ処理部２２０は、負荷監視部２３０から負荷値情報を定期的に取得し、負荷分散装置１００に負荷値を通知するメッセージを生成して通信処理部２１０に出力する。このメッセージを負荷通知メッセージとよぶこととする。
【００５７】
（３）メッセージ処理部２２０は、通信処理部２１０が負荷分散装置１００から起動指示メッセージを受信すると、省電力制御部２４０に省電力状態から稼動状態への移行を指示する。
【００５８】
（４）メッセージ処理部２２０は、通信処理部２１０が負荷分散装置１００から省電力化指示メッセージを受信すると、省電力制御部２４０に稼動状態から省電力状態への移行を指示する。
【００５９】
（５）メッセージ処理部２２０は、負荷監視部２３０から負荷値が０になった旨の通知を受けると、負荷分散装置１００にこの旨を通知するメッセージを生成して通信処理部２１０に出力する。このメッセージを全処理完了メッセージとよぶこととする。
【００６０】
負荷監視部２３０は、Ｗｅｂサーバ２００における負荷値を定期的に取得する。負荷監視部２３０は、例えば、Ｗｅｂサーバ２００における負荷値を未処理のリクエストの数やＣＰＵ２０１の負荷に基づいて取得することができる。負荷監視部２３０は、取得した負荷値をメッセージ処理部２２０に出力する。また、負荷監視部２３０は、Ｗｅｂサーバ２００における負荷値が０となった場合、その旨をメッセージ処理部２２０に通知する。
【００６１】
省電力制御部２４０は、Ｗｅｂサーバ２００の稼動状態および省電力状態を変更する。省電力制御部２４０は、メッセージ処理部２２０から省電力状態への移行を指示されると、Ｗｅｂサーバ２００を稼動状態から省電力状態に移行させる（省電力化）。また、省電力制御部２４０は、メッセージ処理部２２０から稼動状態への移行を指示されると、Ｗｅｂサーバ２００を省電力状態から稼動状態に移行させる（起動）。
【００６２】
なお、Ｗｅｂサーバ３００，４００，５００，・・・についても同様の機能構成により実現できる。
図６は、第１の実施の形態のサーバ管理テーブルの第１のデータ構造例を示す図である。サーバ管理テーブル１１１は、管理情報記憶部１１０に記憶される。サーバ管理テーブル１１１は、端末装置２１，２２，２３から処理要求を受け付ける仮想サーバごとに負荷分散装置１００に設けられる。ここで、仮想サーバは、負荷分散装置１００で端末装置２１，２２，２３からのリクエストを受け付けるための仮想的なサーバである。Ｗｅｂサーバ２００，３００，４００，５００，・・・が提供するサービスに対応付けられた仮想サーバ名を“Ｓｙｓｔｅｍ”、その仮想ＩＰアドレスを“１９２．１６８．０．１０”とする。他の仮想サーバが存在する場合は別個にサーバ管理テーブルを設ける。
【００６３】
サーバ管理テーブル１１１には、サーバ名を示す項目、ＩＰアドレスを示す項目、状態を示す項目、負荷値を示す項目、リクエスト振分順を示す項目および起動優先順位を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのサーバに関する情報を示す。
【００６４】
サーバ名を示す項目には、サーバの名称が設定される。ＩＰアドレスを示す項目には、該当のＷｅｂサーバのＩＰアドレスが設定される。状態を示す項目には、稼動状態であるか省電力状態であるかを示す情報が設定される。負荷値を示す項目には、各Ｗｅｂサーバの負荷値が設定される。リクエスト振分順を示す項目には、リクエストの割当順を示す情報が設定される。割当順を示す情報には、例えば、昇順の番号を用いることができる。この場合、番号が大きいＷｅｂサーバほど、前回リクエスト送信からの経過時間が短くなる。起動優先順位を示す項目には、Ｗｅｂサーバを起動させる場合の優先順位が設定される。優先順位は、例えば、稼動中の消費電力が低いＷｅｂサーバを優先するように順位付けすることができる。
【００６５】
サーバ管理テーブル１１１には、例えばＷｅｂサーバ２００の設定に基づき、サーバ名が“サーバＡ”、ＩＰアドレスが“１９２．１６８．０．１１”、状態が“稼動状態”、負荷値が“５”、リクエスト振分順が“４”、起動優先順位が“１”という情報が設定される。
【００６６】
同様に、Ｗｅｂサーバ３００の設定に基づき、“サーバＢ”の情報が設定される。また、Ｗｅｂサーバ４００の設定に基づき、“サーバＣ”の情報が設定される。また、Ｗｅｂサーバ５００の設定に基づき、“サーバＤ”の情報が設定される。その他のサーバに関しても同様である。
【００６７】
ここで、“サーバＡ”に関する負荷値“５”は、処理が未完了のリクエストが５個存在することを示す。
また、リクエスト振分順に関して、Ｗｅｂサーバ２００，３００，４００でそれぞれ“４”、“２”、“３”である。これは、Ｗｅｂサーバ２００に直近にリクエストを振り分けたことを示す。その前にリクエストを振り分けたサーバは、Ｗｅｂサーバ４００であり、この中で最も過去にリクエストを振り分けたサーバは、Ｗｅｂサーバ３００である。
【００６８】
起動優先順位に関して、Ｗｅｂサーバ２００，３００，４００でそれぞれ“１”、“２”、“３”である。優先順位の番号が小さいほど、先に省電力状態から稼動状態に移行されることを示す。
【００６９】
図７は、第１の実施の形態のサーバ管理テーブルの第２のデータ構造例を示す図である。サーバ管理テーブル１１１ａは、管理情報記憶部１１０に記憶される。サーバ管理テーブル１１１ａは、リクエスト振分順をリクエストを該当のＷｅｂサーバに対して最後に振り分けた時間により管理する点がサーバ管理テーブル１１１と異なる。
【００７０】
サーバ管理テーブル１１１には、サーバ名を示す項目、ＩＰアドレスを示す項目、状態を示す項目、負荷値を示す項目、リクエスト最終振分時刻を示す項目、起動優先順位を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのサーバに関する情報を示す。ここで、リクエスト最終振分時刻を示す項目以外の項目に関しては、サーバ管理テーブル１１１と同一の内容の情報が設定される。
【００７１】
リクエスト最終振分時刻を示す項目には、該当のサーバに最後にリクエストを振り分けた時刻が設定される。
サーバ管理テーブル１１１ａには、例えば“サーバＡ”に関して、リクエスト最終振分時刻が“１０：００：００”という情報が設定される。また、例えば“サーバＢ”に関して、リクエスト最終振分時刻が“９：００：００”という情報が設定される。また、例えば“サーバＣ”に関して、リクエスト最終振分時刻が“９：３０：００”という情報が設定される。すなわち、リクエストを振り分けた順は、直近のものから順にＷｅｂサーバ２００，４００，３００の順となる。
【００７２】
このように、リクエスト振分順を示す項目に対応する情報として、該当のＷｅｂサーバにリクエストを最後に振り分けた時刻（リクエスト最終振分時刻）を管理してもよい。
図８は、負荷閾値管理テーブルのデータ構造例を示す図である。閾値管理テーブル１１２は、管理情報記憶部１１０に記憶される。閾値管理テーブル１１２には、種別を示す項目、閾値を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つの閾値に関する情報を示す。
【００７３】
種別を示す項目には、閾値の用途の種別を示す情報が設定される。閾値を示す項目には、閾値とする負荷値が設定される。
閾値管理テーブル１１２には、例えば、種別が“状態移行判定用”、閾値が“１０”という情報が設定される。この閾値を閾値Ｌ１とする。閾値Ｌ１は、Ｗｅｂサーバ２００，３００，４００，５００，・・・を省電力状態に移行してよいか否かの判定処理に用いられる。
【００７４】
また、閾値管理テーブル１１２には、例えば、種別が“振分判定用”、閾値が“１５”という情報が設定される。この閾値を閾値Ｌ２とする。閾値Ｌ２は、Ｗｅｂサーバ２００，３００，４００，５００，・・・の何れのサーバにリクエストを振り分けるかの判定処理に用いられる。
【００７５】
なお、閾値Ｌ１には、閾値Ｌ２よりも小さい負荷値が設定される。なぜなら、閾値Ｌ１は、処理要求を集中させているＷｅｂサーバの負荷値が閾値Ｌ２以上となった場合にも応答が遅延しないよう、予め他のＷｅｂサーバを稼動状態としておくための判定に用いる値だからである。
【００７６】
次に、以上のような構成を有する負荷分散装置１００の処理に関して説明する。なお、以下では、サーバ管理テーブル１１１を用いて負荷分散処理やその他の処理を行う場合を説明する。
【００７７】
図９は、メッセージ受信処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１］通信処理部１２０は、メッセージ（端末装置２１，２２，２３からの仮想サーバに対するリクエストを含む）を受信する。通信処理部１２０は、受信したメッセージをメッセージ処理部１３０に出力する。
【００７８】
［ステップＳ２］メッセージ処理部１３０は、通信処理部１２０から取得したメッセージがＷｅｂサービスに対するリクエストであるか否かを判定する。リクエストである場合、処理がステップＳ３に移される。リクエストでない場合、処理がステップＳ４に移される。メッセージ処理部１３０は、例えば、受信したリクエストが仮想サーバに対するものであるか否かを判定することで、上記のＷｅｂサービスに対するリクエストであるか否かを判定できる。
【００７９】
［ステップＳ３］メッセージ処理部１３０は、振分サーバ決定部１４０にリクエストの振分先を決定させる。そして、メッセージ処理部１３０は、決定された振分先を宛先として通信処理部１４０にリクエストを出力する。通信処理部１４０は、メッセージ処理部１３０から取得するリクエストを宛先のＷｅｂサーバに送信する。
【００８０】
［ステップＳ４］メッセージ処理部１３０は、通信処理部１２０から取得したメッセージがＷｅｂサーバ２００，３００，４００，５００，・・・からの負荷通知メッセージであるか否かを判定する。負荷通知メッセージである場合、処理がステップＳ５に移される。負荷通知メッセージでない場合、処理がステップＳ７に移される。
【００８１】
［ステップＳ５］メッセージ処理部１３０は、Ｗｅｂサーバ２００，３００，４００，５００，・・・からの負荷通知メッセージに基づいて、各サーバの負荷値を取得する。そして、取得した負荷値をサーバ情報管理部１５０に出力する。サーバ情報管理部１５０は、メッセージ処理部１３０から取得する各サーバの負荷値により、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１を更新する。
【００８２】
［ステップＳ６］起動指示部１６０は、サーバ情報管理部１５０により管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１が更新されると、サーバ起動処理を行う。
［ステップＳ７］メッセージ処理部１３０は、通信処理部１２０から取得したメッセージがＷｅｂサーバ２００，３００，４００，５００，・・・からの全処理完了メッセージであるか否かを判定する。全処理完了メッセージである場合、処理がステップＳ８に移される。全処理完了メッセージでない場合、処理が完了する。
【００８３】
［ステップＳ８］メッセージ処理部１３０は、省電力化指示部１７０に全処理完了メッセージの送信元サーバの識別情報を通知する。省電力化指示部１７０は、メッセージ処理部１３０から取得する識別情報と、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１および閾値管理テーブル１１２に基づいて、該当のＷｅｂサーバの省電力状態への移行可否を判定し、判定結果をメッセージ処理部１３０に通知する。メッセージ処理部１３０は、判定結果が移行可能であれば、全処理完了メッセージの送信元サーバに対する省電力化指示メッセージを生成し、通信処理部１２０に出力する。通信処理部１２０は、メッセージ処理部１３０から取得した省電力化指示メッセージを該当のＷｅｂサーバに送信する。
【００８４】
このように、負荷分散装置１００は、受信したメッセージの内容に応じた処理を行う。端末装置２１，２２，２３からＷｅｂサーバに対するリクエストを受信すると、リクエストの振分処理を行う。Ｗｅｂサーバ２００，３００，４００から負荷通知メッセージを受信すると、サーバ管理テーブル１１１の負荷値を更新し、サーバ起動処理を行う。Ｗｅｂサーバ２００，３００，４００，５００，・・・から全処理完了メッセージを受信すると、サーバ省電力化処理を行う。
【００８５】
次に、上記ステップＳ３，Ｓ６，Ｓ８の処理に関して更に詳細に説明する。
図１０は、第１の実施の形態のリクエスト振分処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。なお、以下に示す処理内容は、図９のステップＳ３の処理を詳細に示すものである。
【００８６】
［ステップＳ１１］振分サーバ決定部１４０は、メッセージ処理部１３０から仮想サーバ“Ｓｙｓｔｅｍ”に対するリクエストを取得する。
［ステップＳ１２］振分サーバ決定部１４０は、管理情報記憶部１１０に記憶された仮想サーバ名“Ｓｙｓｔｅｍ”に対応するサーバ管理テーブル１１１を特定する。振分サーバ決定部１４０は、管理情報記憶部１１０に記憶された閾値管理テーブル１１２の閾値Ｌ２を参照し、サーバ管理テーブル１１１の各サーバの負荷値と閾値Ｌ２とを比較する。
【００８７】
［ステップＳ１３］振分サーバ決定部１４０は、負荷値が閾値Ｌ２より小さいサーバを抽出する。図６，７の例では、サーバＡ，Ｃが抽出される。
［ステップＳ１４］振分サーバ決定部１４０は、サーバ管理テーブル１１１のリクエスト割当順を参照して、抽出したサーバのうち直近にリクエストを送信したサーバを特定する。すなわち、サーバＡを特定する。
【００８８】
［ステップＳ１５］振分サーバ決定部１４０は、特定したサーバをリクエストの振分先と決定し、その旨をメッセージ処理部１３０に通知する。メッセージ処理部１３０は、振分サーバ決定部１４０が決定した振分先を宛先としたリクエストを通信処理部１２０に出力する。通信処理部１２０は、該当宛先のサーバに対してリクエストを送信する。すなわち、サーバＡ（Ｗｅｂサーバ２００）に対してリクエストを送信する。
【００８９】
［ステップＳ１６］メッセージ処理部１３０は、宛先としたＷｅｂサーバの識別情報をサーバ情報管理部１５０に通知する。サーバ情報管理部１５０は、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１のリクエスト送信順を参照して、通知されたＷｅｂサーバが前回のリクエストの振分先と同じであるか否かを判定する。同じである場合、処理が完了する。異なる場合、処理がステップＳ１７に移される。
【００９０】
［ステップＳ１７］サーバ情報管理部１５０は、サーバ管理テーブル１１１において、今回リクエストの振分先としたＷｅｂサーバのリクエスト割当順を更新する。すなわち、リクエスト割当順に他のサーバで“３”までが設定されている場合、サーバＡに“４”が設定される。
【００９１】
このように、振分サーバ決定部１４０は、Ｗｅｂサービスに対するリクエストを受信すると、各サーバの負荷値と閾値Ｌ２とを比較し、負荷値が閾値Ｌ２よりも小さいＷｅｂサーバを抽出する。そして、負荷値が閾値Ｌ２よりも小さいＷｅｂサーバのうち、前回リクエストの振分先として、リクエスト送信した時点からの経過時間が最も短いＷｅｂサーバを今回のリクエストの振分先と決定する。
【００９２】
なお、上記ステップＳ１４において、サーバ管理テーブル１１１ａを用いる場合には、振分サーバ決定部１４０は、リクエスト最終振分時刻が最新のサーバを特定する。すなわち、サーバＡを特定する。この場合、上記ステップＳ１７では、サーバ情報管理部１５０は、サーバ管理テーブル１１１ａに今回リクエストの振分先としたＷｅｂサーバのリクエスト最終振分時刻を更新する。
【００９３】
図１１は、サーバ起動処理の手順を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。なお、以下に示す処理内容は、図９のステップＳ６の処理を詳細に示すものである。
【００９４】
［ステップＳ２１］起動指示部１６０は、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１を参照して、各サーバの負荷値を取得する。
［ステップＳ２２］起動指示部１６０は、管理情報記憶部１１０に記憶された閾値管理テーブル１１２の閾値Ｌ１を参照し、サーバ管理テーブル１１１の各サーバの負荷値と閾値Ｌ１とを比較する。
【００９５】
［ステップＳ２３］起動指示部１６０は、負荷値が閾値Ｌ１未満のＷｅｂサーバが存在するか否かを判定する。存在する場合、処理が完了する。存在しない場合、処理がステップＳ２４に移される。
【００９６】
［ステップＳ２４］起動指示部１６０は、サーバ管理テーブル１１１の起動優先順位を参照して、省電力状態であり起動が最優先されるＷｅｂサーバの識別情報を取得する。起動指示部１６０は、特定したＷｅｂサーバに対して起動指示を送信するようメッセージ処理部１３０に通知する。メッセージ処理部１３０は、通知されたＷｅｂサーバに対する起動指示メッセージを生成し、通信処理部１２０に出力する。通信処理部１２０は、メッセージ処理部１３０から取得する起動指示メッセージを該当のＷｅｂサーバに送信する。
【００９７】
［ステップＳ２５］メッセージ処理部１３０は、起動指示メッセージの宛先としたＷｅｂサーバの識別情報をサーバ情報管理部１５０に通知する。サーバ情報管理部１５０は、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１の通知された識別情報に対応するＷｅｂサーバの状態を省電力状態から稼動状態へ更新する。
【００９８】
このように、起動指示部１６０は、負荷値が閾値Ｌ１未満のＷｅｂサーバが１台も存在しない場合には、起動優先順位に基づいて省電力状態のＷｅｂサーバを起動させる。
図１２は、サーバ停止処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。なお、以下に示す処理内容は、図９のステップＳ８の処理を詳細に示すものである。
【００９９】
［ステップＳ３１］省電力化指示部１７０は、メッセージ処理部１３０から全処理完了メッセージの送信元のＷｅｂサーバの識別情報を取得する。
［ステップＳ３２］省電力化指示部１７０は、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１を参照して、各サーバの負荷値を取得する。
【０１００】
［ステップＳ３３］省電力化指示部１７０は、管理情報記憶部１１０に記憶された閾値管理テーブル１１２の閾値Ｌ１を参照し、サーバ管理テーブル１１１の各サーバの負荷値と閾値Ｌ１とを比較する。
【０１０１】
［ステップＳ３４］省電力化指示部１７０は、上記ステップＳ３１で取得した識別情報以外のＷｅｂサーバで負荷値が閾値Ｌ１未満のＷｅｂサーバが存在するか否かを判定する。存在する場合、処理がステップＳ３５に移される。存在しない場合、処理が完了する。
【０１０２】
［ステップＳ３５］省電力化指示部１７０は、全処理完了メッセージの送信元のＷｅｂサーバを省電力状態へと移行可能と決定し、この旨をメッセージ処理部１３０に通知する。メッセージ処理部１３０は、全処理完了メッセージの送信元のＷｅｂサーバに対する省電力化指示メッセージを生成し、通信処理部１２０に出力する。通信処理部１２０は、メッセージ処理部１３０から取得した省電力化指示メッセージを該当のＷｅｂサーバに送信する。
【０１０３】
［ステップＳ３６］メッセージ処理部１３０は、省電力化指示メッセージの宛先としたＷｅｂサーバの識別情報をサーバ情報管理部１５０に通知する。サーバ情報管理部１５０は、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１の通知された識別情報に対応するＷｅｂサーバの状態を稼動状態から省電力状態へ更新する。
【０１０４】
このように、省電力化指示部１７０は、Ｗｅｂサーバからの全処理完了メッセージを受信すると、負荷値が閾値Ｌ１未満のＷｅｂサーバがメッセージ送信元のＷｅｂサーバ以外に存在するかを判定する。負荷値が閾値Ｌ１未満のＷｅｂサーバが１台以上存在する場合、メッセージ処理部１３０は、全処理完了メッセージの送信元のＷｅｂサーバに対して省電力化指示メッセージを生成し、通信処理部１２０を介して送信する。
【０１０５】
以下、上記負荷分散システムの処理の流れを具体的に説明する。
図１３は、Ｗｅｂシステムの第１の状態例を示す図である。この第１の状態例は、図６に示すサーバ管理テーブル１１１で示される状態に対応する。ただし、Ｗｅｂサーバ５００を含むその他のサーバは省略する。
【０１０６】
Ｗｅｂサーバ２００，３００，４００の負荷値について、次の場合を想定する。Ｗｅｂサーバ２００の負荷値は、閾値Ｌ１より小さい。Ｗｅｂサーバ３００の負荷値は、閾値Ｌ２より大きい。Ｗｅｂサーバ４００の負荷値は、閾値Ｌ１より大きく、閾値Ｌ２より小さい。また、負荷分散装置１００によるリクエストの振分先はＷｅｂサーバ２００である。
【０１０７】
この状態で、Ｗｅｂシステムに対するリクエストが減少すると、負荷分散装置１００は、Ｗｅｂサーバ２００を残し、Ｗｅｂサーバ３００，４００を効率的に省電力状態とすることができる。
【０１０８】
図１４は、サーバ停止の流れを示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。なお、以下の内容は、図１３に示した状態を起点に実行される処理を例示している。
【０１０９】
［ステップＳ１０１］負荷分散装置１００は、Ｗｅｂサーバ２００，３００，４００から負荷通知メッセージを受信する。負荷分散装置１００は、受信した負荷通知メッセージに基づいて、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１の負荷値を更新する。その後、負荷分散装置１００が受け付けるリクエストの量は減少し、Ｗｅｂサーバ２００の負荷値の増大もなくなり、Ｗｅｂサーバ３００，４００の負荷値は次第に減少する。
【０１１０】
［ステップＳ１０２］負荷分散装置１００は、Ｗｅｂサーバ４００から全処理完了メッセージを受信する。
［ステップＳ１０３］負荷分散装置１００は、Ｗｅｂサーバ４００以外にＷｅｂサーバ２００の負荷値が閾値Ｌ１よりも小さいと判定する。そして、負荷分散装置１００は、Ｗｅｂサーバ４００に省電力化指示メッセージを送信する。Ｗｅｂサーバ４００は、この省電力化指示メッセージを受信すると、稼動状態から省電力状態へ移行する。
【０１１１】
［ステップＳ１０４］負荷分散装置１００は、Ｗｅｂサーバ３００から全処理完了メッセージを受信する。
［ステップＳ１０５］負荷分散装置１００は、Ｗｅｂサーバ３００以外にＷｅｂサーバ２００の負荷値が閾値Ｌ１よりも小さいと判定する。そして、負荷分散装置１００は、Ｗｅｂサーバ３００に省電力化指示メッセージを送信する。Ｗｅｂサーバ３００は、この省電力化指示メッセージを受信すると稼動状態から省電力状態へ移行する。
【０１１２】
［ステップＳ１０６］負荷分散装置１００は、端末装置２１からリクエストを受信する。
［ステップＳ１０７］負荷分散装置１００は、受信したリクエストをＷｅｂサーバ２００に送信する。以降、リクエストの量が増大してＷｅｂサーバ２００の負荷値が閾値Ｌ１以上とならない限り、ＷｅｂシステムはＷｅｂサーバ２００のみが稼動状態となり、Ｗｅｂサーバ３００，４００は省電力状態を維持する。
【０１１３】
図１５は、Ｗｅｂシステムの第２の状態例を示す図である。この第２の状態例は、図１４のステップＳ１０７以降のＷｅｂシステムの状態を示している。
このように、システムの利用量が少ない場合には、応答性能を損なわない最低限のサーバのみを稼動状態とし、他のサーバを省電力状態として運用することができる。このとき、省電力状態に移行するために各サーバの処理の委譲等を行う必要がないので、このための処理負荷によりＷｅｂシステムの応答性が損なわれることもない。
【０１１４】
次に、この状態からＷｅｂシステムに対するリクエストの量が増加していく場合を説明する。
図１６は、サーバ起動の流れを示すシーケンス図である。以下、図１６に示す処理をステップ番号に沿って説明する。なお、以下の内容は、図１５に示した状態を起点に実行される処理を例示している。
【０１１５】
［ステップＳ１１１］負荷分散装置１００は、Ｗｅｂサーバ２００から負荷通知メッセージを受信する。負荷分散装置１００は、受信した負荷通知メッセージに基づいて、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１のサーバＡの負荷値を更新する。この時点では、サーバＡの負荷値は、閾値Ｌ１未満であるとする。
【０１１６】
［ステップＳ１１２］負荷分散装置１００は、端末装置２１からリクエスト群を受信する。
［ステップＳ１１３］負荷分散装置１００は、受信したリクエスト群をＷｅｂサーバ２００に送信する。
【０１１７】
［ステップＳ１１４］負荷分散装置１００は、Ｗｅｂサーバ２００から負荷通知メッセージを受信する。負荷分散装置１００は、受信した負荷通知メッセージに基づいて、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１のサーバＡの負荷値を更新する。この時点で、サーバＡの負荷値は、閾値Ｌ１以上になるとする。
【０１１８】
［ステップＳ１１５］負荷分散装置１００は、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１を参照して、省電力状態のＷｅｂサーバのうち、起動優先順位の最も高いＷｅｂサーバ３００に起動指示メッセージを送信する。Ｗｅｂサーバ３００は、起動指示メッセージを受信すると、省電力状態から稼動状態へ移行する。
【０１１９】
［ステップＳ１１６］負荷分散装置１００は、Ｗｅｂサーバ２００，３００から負荷通知メッセージを受信する。負荷分散装置１００は、受信した負荷通知メッセージに基づいて、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１のサーバＡ，Ｂの負荷値を更新する。この時点では、サーバＡの負荷値は、閾値Ｌ１以上閾値Ｌ２未満であるとする。なお、サーバＢの負荷値は、この時点ではリクエストは全てサーバＡに集中されるので、０である。
【０１２０】
［ステップＳ１１７］負荷分散装置１００は、端末装置２１からリクエスト群を受信する。
［ステップＳ１１８］負荷分散装置１００は、受信したリクエスト群をＷｅｂサーバ２００に送信する。
【０１２１】
［ステップＳ１１９］負荷分散装置１００は、Ｗｅｂサーバ２００から負荷通知メッセージを受信する。負荷分散装置１００は、受信した負荷通知メッセージに基づいて、管理情報記憶部１１０に記憶されたサーバ管理テーブル１１１のサーバＡ，Ｂの負荷値を更新する。この時点で、サーバＡの負荷値は、閾値Ｌ２以上であるとする。なお、サーバＢの負荷値は、この時点ではリクエストは全てサーバＡに集中されるので、０である。
【０１２２】
［ステップＳ１２０］負荷分散装置１００は、端末装置２１からリクエスト群を受信する。
［ステップＳ１２１］負荷分散装置１００は、受信したリクエスト群をＷｅｂサーバ３００に送信する。
【０１２３】
図１７は、Ｗｅｂシステムの第３の状態例を示す図である。この第３の状態例は、図１６のステップＳ１２１直後のＷｅｂシステムの状態を示している。Ｗｅｂサーバ２００の負荷値は閾値Ｌ２以上となっており、Ｗｅｂサーバ３００の負荷値は閾値Ｌ１未満である。このため、負荷分散装置１００は、端末装置２１からのリクエストをＷｅｂサーバ３００に集中する。
【０１２４】
このように、Ｗｅｂサーバ２００の負荷値が閾値Ｌ１を超えた場合には、Ｗｅｂサーバ３００を予め稼動状態に移行させておく。このため、Ｗｅｂシステムへのリクエストが増加して、Ｗｅｂサーバ２００の負荷値が閾値Ｌ２を超えた場合にも、Ｗｅｂサーバ３００にスムーズにリクエストを振り分けることができ、Ｗｅｂシステムの応答性を損なうことがない。
【０１２５】
この状態から更に時間が経過すると、Ｗｅｂサーバ２００，３００の負荷値に応じて、このＷｅｂシステムは次の２通りの状態を取り得る。
図１８は、Ｗｅｂシステムの第４の状態例を示す図である。（Ａ）は更にＷｅｂサーバ４００を稼動状態にする場合、（Ｂ）はＷｅｂサーバ４００を省電力状態のままとする場合である。
【０１２６】
（Ａ）では、リクエストを集中させているＷｅｂサーバ３００の負荷値が閾値Ｌ１以上となったとき、Ｗｅｂサーバ２００の負荷値が閾値Ｌ１以上である場合である。この場合、負荷分散装置１００は、Ｗｅｂサーバ４００に対し、起動指示メッセージを送信してＷｅｂサーバ４００を省電力状態から稼動状態に移行させる。
【０１２７】
（Ｂ）では、リクエストを集中させているＷｅｂサーバ３００の負荷値が閾値Ｌ１以上となったとき、Ｗｅｂサーバ２００の負荷値が閾値Ｌ１未満である場合である。この場合、負荷分散装置１００は、Ｗｅｂサーバ４００を省電力状態のままとする。負荷分散装置１００は、リクエストの量が増大して、Ｗｅｂサーバ３００の負荷値が閾値Ｌ２以上となった場合には、Ｗｅｂサーバ２００へリクエストを集中させることになる。
【０１２８】
このように、負荷分散装置１００は、Ｗｅｂシステムの利用量に応じて効率的にＷｅｂサーバ２００，３００，４００，５００，・・・の稼動状態および省電力状態を変更することができる。これにより、Ｗｅｂシステムの応答性を損なうことなく省電力化を図ることができる。
【０１２９】
以上、説明したように負荷分散装置１００は、負荷値が閾値Ｌ２よりも小さいＷｅｂサーバを選択し、選択したＷｅｂサーバの負荷値が閾値Ｌ２に達するまで、このＷｅｂサーバをリクエストの振分先と決定する。これにより、それ以外のＷｅｂサーバの負荷を低減させる。このため、システムの利用量が少ない場合には、リクエストを集中させているＷｅｂサーバ以外のサーバの負荷はやがて０となり、処理の委譲などを伴わずに、これらのサーバを省電力状態へ移行できる。
【０１３０】
負荷分散装置１００は、負荷値が閾値Ｌ２よりも小さいサーバのうち、直近にリクエストを振り分けたサーバをリクエスト振分先と決定する。これにより、過去にリクエストを振り分けたサーバほどリクエストの振り分け対象とはなり難くなるので、そのサーバの負荷を効率的に低減させることができる。
【０１３１】
このために負荷分散装置１００は、各Ｗｅｂサーバにつきリクエストの振分先とした順序やリクエストの最終振分時間を管理する。これにより、負荷分散装置１００は、リクエストを集中させるサーバを効率的に特定できる。
【０１３２】
［第２の実施の形態］
以下、第２の実施の形態を図面を参照して詳細に説明する。前述の第１の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
【０１３３】
第２の実施の形態では、負荷分散装置は、各サーバが振り分けられたリクエストに応じて実行すべき処理に要する時間に基づきリクエストの振分先の決定等を行う、という点が第１の実施の形態と異なる。この点、第１の実施の形態では、各サーバで未処理のリクエスト数や処理の振分順に基づいて決定するものとした。これに対し、第２の実施の形態では各リクエストの処理時間が異なる場合にも適正にサーバの負荷を把握可能とする。
【０１３４】
第２の実施の形態に係る負荷分散システムは、図２に示した第１の実施の形態に係る負荷分散システムと同様のシステム構成によって実現できる。また、第２の実施の形態に係る負荷分散装置およびＷｅｂサーバは、図３，４に示した第１の実施の形態に係る負荷分散装置１００およびＷｅｂサーバ２００と同様のハードウェア構成によって実現できる。
【０１３５】
図１９は、第２の実施の形態の負荷分散装置およびＷｅｂサーバの機能構成を示す図である。負荷分散装置１００ａは、管理情報記憶部１１０ａ、通信処理部１２０、メッセージ処理部１３０、振分サーバ決定部１４０ａ、サーバ情報管理部１５０、起動指示部１６０および省電力化指示部１７０を有する。ここで、通信処理部１２０、メッセージ処理部１３０、サーバ情報管理部１５０、起動指示部１６０および省電力化指示部１７０は、図５の負荷分散装置１００において同一の符号を付して説明した構成と同一である。
【０１３６】
管理情報記憶部１１０ａは、図５の管理情報記憶部１１０に対応する。ただし、管理情報記憶部１１０ａが記憶する管理情報は、Ｗｅｂサーバ２００ａ，３００ａ，４００ａ，５００ａ，・・・に振り分けられたリクエストの処理時間に即したものである。具体的な内容は図２０で説明する。
【０１３７】
振分サーバ決定部１４０ａは、図５の振分サーバ決定部１４０に対応する。振分サーバ決定部１４０ａは、管理情報記憶部１１０ａに記憶された管理情報および閾値の情報に基づいて、端末装置２１から受信したリクエストの振分先を決定する。
【０１３８】
Ｗｅｂサーバ２００ａは、通信処理部２１０、メッセージ処理部２２０ａ、負荷監視部２３０、省電力制御部２４０および処理時間見積部２５０を有する。ここで、通信処理部２１０、負荷監視部２３０および省電力制御部２４０は、図５のＷｅｂサーバ２００において同一の符号を付して説明した構成と同一である。
【０１３９】
メッセージ処理部２２０ａは、図５のメッセージ処理部２２０に対応する。メッセージ処理部２２０ａは、メッセージ処理部２２０の機能に加えて、処理時間見積部２５０から取得する全処理完了予定時刻の情報に基づき、これを通知するメッセージを生成する。このメッセージを完了予定時刻メッセージとよぶこととする。メッセージ処理部２２０ａは、生成した完了予定時刻メッセージを通信処理部２１０を介して負荷分散装置１００ａに送信する。
【０１４０】
処理時間見積部２５０は、振り分けられたリクエストの処理時間を見積もる。処理時間見積部２５０は、同じ処理内容のリクエストの処理に要した時間を平均して各リクエストの処理時間を算出する。処理時間見積部２５０は、各リクエストの処理終了ごとに、該当のリクエストの処理時間を更新し、管理する。そして、処理時間見積部２５０は、通信処理部２１０が新たなリクエストを受信すると、このリクエストを含め未処理のリクエストが全て処理完了となる予定時刻（全処理完了予定時刻）の情報をメッセージ処理部２２０ａに出力する。
【０１４１】
ここで、処理時間見積部２５０は、Ｗｅｂサーバ２００ａが現時点でリクエストの振り分け対象になっている場合には、余計な負荷を発生させないために処理時間の見積処理を行わないことが望ましい。このため、処理時間見積部２５０は、例えば、所定の時間だけリクエストが新規に振り分けられていないことを検知する。すなわち、リクエストの振り分け対象が別のＷｅｂサーバに変更された際に、処理時間の見積処理を開始することが考えられる。このようにすると、安定した状態で適正に処理時間の計算ができると共に、リクエスト受信時のような高負荷時に処理時間の計算による余計な負荷を生じさせることがない。
【０１４２】
なお、Ｗｅｂサーバ３００ａ，４００ａ，５００ａ，・・・に関してもＷｅｂサーバ２００ａと同様の機能構成により実現できる。
図２０は、第２の実施の形態のサーバ管理テーブルのデータ構造例を示す図である。サーバ管理テーブル１１１ｂは、管理情報記憶部１１０ａに記憶される。サーバ管理テーブル１１１ｂには、サーバ名を示す項目、ＩＰアドレスを示す項目、状態を示す項目、負荷値を示す項目、全処理完了予定時刻を示す項目、起動優先順位を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのＷｅｂサーバの情報を示す。
【０１４３】
サーバ名を示す項目、ＩＰアドレスを示す項目、状態を示す項目、負荷値を示す項目および起動優先順位を示す項目は、図６のサーバ管理テーブル１１１の同じ名称の項目と同一の情報が設定される。全処理完了予定時刻を示す項目には、各サーバにおいて振り分けられたリクエストの処理が全て完了する予定時刻が設定される。
【０１４４】
サーバ管理テーブル１１１ｂには、例えば、“サーバＡ”に対して、全処理完了予定時刻が“１０：３０：００”という情報が設定される。
次に、以上のような構成を有する負荷分散装置１００ａの処理に関して説明する。
【０１４５】
ここで、負荷分散装置１００ａのメッセージ受信処理の手順は、図９に示した負荷分散装置１００のメッセージ受信処理の手順と同様である。ただし、ステップＳ３のリクエスト振分処理の手順が異なる。
【０１４６】
図２１は、第２の実施の形態のリクエスト振分処理の手順を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
［ステップＳ４１］振分サーバ決定部１４０ａは、メッセージ処理部１３０から仮想サーバ“Ｓｙｓｔｅｍ”に対するリクエストを取得する。
【０１４７】
［ステップＳ４２］振分サーバ決定部１４０ａは、管理情報記憶部１１０ａに記憶された仮想サーバ名“Ｓｙｓｔｅｍ”に対応するサーバ管理テーブル１１１ｂを特定する。振分サーバ決定部１４０は、管理情報記憶部１１０ａに記憶された閾値管理テーブル１１２の閾値Ｌ２を参照し、サーバ管理テーブル１１１ｂの各サーバの負荷値と閾値Ｌ２とを比較する。
【０１４８】
［ステップＳ４３］振分サーバ決定部１４０ａは、負荷値が閾値Ｌ２より小さいサーバを抽出する。図８，１９の例では、サーバＢ，Ｃが抽出される。
［ステップＳ４４］振分サーバ決定部１４０ａは、サーバ管理テーブル１１１ｂの全処理完了予定時刻を参照して、抽出したサーバのうち最も遅く全処理が完了するサーバを特定する。すなわち、サーバＢが特定される。
【０１４９】
［ステップＳ４５］振分サーバ決定部１４０ａは、特定したサーバをリクエストの振分先と決定し、その旨をメッセージ処理部１３０に通知する。メッセージ処理部１３０は、振分サーバ決定部１４０ａが決定した振分先を宛先としたリクエストを通信処理部１２０に出力する。通信処理部１２０は、該当宛先のサーバに対してリクエストを送信する。すなわち、サーバＢ（Ｗｅｂサーバ３００ａ）に対してリクエストを送信する。
【０１５０】
［ステップＳ４６］通信処理部１２０は、リクエストを送信したＷｅｂサーバ３００から完了予定時刻メッセージを受信する。通信処理部１２０は、受信した完了予定時刻メッセージをメッセージ処理部１３０に出力する。
【０１５１】
［ステップＳ４７］メッセージ処理部１３０は、通信処理部１２０から取得する完了予定時刻メッセージに基づき、Ｗｅｂサーバ３００ａの全処理完了予定時刻を取得する。メッセージ処理部１３０は、取得した全処理完了予定時刻をサーバ情報管理部１５０に通知する。サーバ情報管理部１５０は、通知された内容に基づいて、管理情報記憶部１１０ａに記憶されたサーバ管理テーブル１１１ｂの全処理完了予定時刻の情報を更新する。
【０１５２】
このように、振分サーバ決定部１４０ａは、Ｗｅｂサービスに対するリクエストを受信すると、各サーバの負荷値と閾値Ｌ２とを比較し、負荷値が閾値Ｌ２よりも小さいＷｅｂサーバを抽出する。そして、負荷値が閾値Ｌ２よりも小さいＷｅｂサーバのうち、前回リクエストの振分先として、全処理完了予定時刻の最も遅いＷｅｂサーバを今回のリクエストの振分先と決定する。
【０１５３】
これにより、第１の実施の形態と同様の効果を得ることができると共に、第１の実施の形態よりも、実際のサーバの負荷をより反映してリクエストの振分が行える。例えば、各リクエストの処理時間が異なる場合にも適正にサーバの負荷を把握してリクエストを振り分けることができる。
【０１５４】
なお、負荷値を示す項目には、未完了のリクエスト数を設定するものとしたが、これに限らない。例えば、ＣＰＵ負荷、ＩＯ（Input / Output）負荷およびディスク負荷などを考慮した指数を各Ｗｅｂサーバから受け付け、これを負荷値として用いることが考えられる。負荷値にこのような指数を用いることで、各Ｗｅｂサーバの実際の負荷をより反映してリクエスト振分対象や稼動／省電力化対象を決定できる。なお、負荷値をこのような指数とする場合、閾値管理テーブル１１２に設定される閾値Ｌ１，Ｌ２もそれに応じて変更する。
【０１５５】
以上、説明したように負荷分散装置１００ａは、負荷値が閾値Ｌ２よりも小さいＷｅｂサーバを選択し、選択したＷｅｂサーバの負荷値が閾値Ｌ２に達するまで、このＷｅｂサーバをリクエストの振分先と決定する。これにより、それ以外のＷｅｂサーバの負荷を低減させる。このため、システムの利用量が少ない場合には、リクエストを集中させているＷｅｂサーバ以外のサーバの負荷はやがて０となり、処理の委譲などを伴わずに、これらのサーバを省電力状態へ移行できる。
【０１５６】
負荷分散装置１００ａは、負荷値が閾値Ｌ２よりも小さいサーバのうち、振り分けられたリクエストに応じた処理を全て完了する予定時刻が最も遅いサーバをリクエスト振分先と決定する。これにより、また、実際のサーバの負荷をより反映したリクエストの振分が行える。各リクエストの処理時間が異なる場合にも適正にサーバの負荷を把握してリクエストを振り分けることができる。
【０１５７】
なお、上記の負荷分散装置の機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１５８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６０】
以上、本件の負荷分散装置、負荷分散方法および負荷分散プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１６１】
以上、説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照し、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理装置を、取得した処理要求の振分先と決定する制御部と、
前記制御部が決定した前記振分先に前記処理要求を送信する送信部と、
を有することを特徴とする負荷分散装置。
【０１６２】
（付記２）  前記制御部は、前記複数の情報処理装置のうち、前記負荷値が前記所定の閾値より小さく、かつ、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を前記処理要求の振分先と決定することを特徴とする付記１記載の負荷分散装置。
【０１６３】
（付記３）  前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした順序を示す振分順序情報を記憶する振分順序情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、
ことを特徴とする付記２記載の負荷分散装置。
【０１６４】
（付記４）  前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした最新の時刻を示す振分時刻情報を記憶する振分時刻情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、
ことを特徴とする付記２記載の負荷分散装置。
【０１６５】
（付記５）  前記複数の情報処理装置それぞれから前記処理要求に応じた処理の完了予定時刻を示す完了時刻情報を受信し、前記複数の情報処理装置それぞれの識別情報と当該完了時刻情報とを対応付けて完了時刻情報記憶部に格納する完了時刻情報受信部を更に有し、
前記制御部は、前記完了時刻情報記憶部に記憶された前記完了時刻情報に基づいて、前記負荷値が前記所定の閾値より小さく、かつ、前記完了予定時刻が最も遅い情報処理装置を前記処理要求の振分先と決定する、
ことを特徴とする付記１記載の負荷分散装置。
【０１６６】
（付記６）  前記複数の情報処理装置それぞれから、各情報処理装置に振り分けられた処理要求のうち、処理が未完了の処理要求の数を前記負荷値として受信し、前記複数の情報処理装置それぞれの識別情報と受信した前記負荷値とを対応付けて前記負荷情報記憶部に格納する負荷情報受信部を更に有し、
前記制御部は、前記負荷情報記憶部に記憶された前記負荷値に基づいて、当該負荷値が前記所定の閾値よりも小さい情報処理装置を特定する、
ことを特徴とする付記１乃至５の何れかに記載の負荷分散装置。
【０１６７】
（付記７）  前記複数の情報処理装置それぞれから、各情報処理装置におけるハードウェアデバイスの負荷を示す値を前記負荷値として受信し、前記複数の情報処理装置それぞれの識別情報と受信した前記負荷値とを対応付けて前記負荷情報記憶部に格納する負荷情報受信部を更に有し、
前記制御部は、前記負荷情報記憶部に記憶された前記負荷値に基づいて、当該負荷値が前記所定の閾値よりも小さい情報処理装置を特定する、
ことを特徴とする付記１乃至５の何れかに記載の負荷分散装置。
【０１６８】
（付記８）  前記複数の情報処理装置それぞれから前記処理要求に応じた処理を全て完了した旨の通知を受信する全処理完了通知受信部を更に有し、
前記全処理完了通知受信部が前記通知を受信すると、前記所定の閾値より小さい省電力判定用閾値を記憶する省電力判定用閾値記憶部と前記負荷情報記憶部を参照し、前記複数の情報処理装置のうち、当該通知の送信元の情報処理装置以外で、前記負荷値が前記省電力判定用閾値より小さい情報処理装置が存在するか否かを判定し、当該情報処理装置が存在する場合、前記通知の送信元の情報処理装置に省電力状態への移行を指示する省電力化指示部と、
を更に有することを特徴とする付記１乃至７の何れかに記載の負荷分散装置。
【０１６９】
（付記９）  所定のタイミングで、前記負荷情報記憶部を参照し、前記複数の情報処理装置のうち、前記負荷値が前記省電力判定用閾値よりも小さい情報処理装置が存在するか否かを判定し、当該情報処理装置が存在しない場合、省電力状態の情報処理装置を稼動状態に起動させる起動指示部を更に有することを特徴とする付記８記載の負荷分散装置。
【０１７０】
（付記１０）  前記起動指示部は、省電力状態の情報処理装置が複数存在する場合、省電力状態の情報処理装置のうち、稼動状態における消費電力の小さい情報処理装置を優先して起動させることを特徴とする付記９記載の負荷分散装置。
【０１７１】
（付記１１）  負荷分散装置の負荷分散方法であって、
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、
選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、
決定した前記振分先に前記処理要求を送信する、
ことを特徴とする負荷分散方法。
【０１７２】
（付記１２）  コンピュータに、
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、
選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、
決定した前記振分先に前記処理要求を送信する、
処理を実行させることを特徴とする負荷分散プログラム。
【０１７３】
（付記１３）  負荷分散装置から受信した処理要求に応じた処理を実行する処理部と、
前記処理部が前記負荷分散装置から受信した全ての処理要求に応じた処理を完了すると、当該完了した旨を示す完了通知を前記負荷分散装置に送信する送信部と、
前記送信部が送信した完了通知に応じて、前記負荷分散装置から省電力化指示を受信する受信部と、
前記受信部が前記省電力化指示を受信すると、自装置を稼動状態から省電力状態に移行させる省電力制御部と、
を有することを特徴とする情報処理装置。
【符号の説明】
【０１７４】
１  負荷分散装置
１ａ  受信部
１ｂ  制御部
１ｃ  送信部
２，３，４  情報処理装置
５  処理要求
【図１】
2010165193.tif 000003
【図２】
2010165193.tif 000004
【図３】
2010165193.tif 000005
【図４】
2010165193.tif 000006
【図５】
2010165193.tif 000007
【図６】
2010165193.tif 000008
【図７】
2010165193.tif 000009
【図８】
2010165193.tif 000010
【図９】
2010165193.tif 000011
【図１０】
2010165193.tif 000012
【図１１】
2010165193.tif 000013
【図１２】
2010165193.tif 000014
【図１３】
2010165193.tif 000015
【図１４】
2010165193.tif 000016
【図１５】
2010165193.tif 000017
【図１６】
2010165193.tif 000018
【図１７】
2010165193.tif 000019
【図１８】
2010165193.tif 000020
【図１９】
2010165193.tif 000021
【図２０】
2010165193.tif 000022
【図２１】
2010165193.tif 000023