(57)【要約】【課題】サーバの負荷分散を正確且つ安価に行うこと【解決手段】アプリケーションサービスを提供するサーバ２０から取得したパフォーマンス情報と予め設定している当該サーバ２０の負荷判定閾値の内の当該サーバ２０で現在稼動しているアプリケーションＡＰ１についての閾値とを比較して、複数の前記サーバ２０Ａ〜２０Ｄの内の当該閾値を超えているパフォーマンス情報に係るサーバ２０Ａで稼動中のアプリケーションＡＰ１を特定する機能３１と、この特定アプリケーションＡＰ１以外のアプリケーションＡＰ２が稼動しているサーバ２０Ｃの稼動アプリケーションを前記特定アプリケーションＡＰ１に切り替える機能３３とを有するサーバ負荷分散装置３０を設けること。【選択図】        図１
2005031736.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションサービスを提供するサーバから取得したパフォーマンス情報と予め設定している当該サーバの負荷判定閾値の内の当該サーバで現在稼動しているアプリケーションについての閾値とを比較して、複数の前記サーバの内の当該閾値を超えているパフォーマンス情報に係るサーバで稼動中のアプリケーションを特定する機能と、
この特定アプリケーション以外のアプリケーションが稼動しているサーバの稼動アプリケーションを前記特定アプリケーションに切り替える機能と、
を有する制御手段を備えたことを特徴とするサーバ負荷分散装置。
【請求項２】
アプリケーションサービスを提供する複数のサーバのパフォーマンス情報を取得する工程と、
この取得したパフォーマンス情報と予め設定している当該サーバの負荷判定閾値の内の当該サーバで現在稼動しているアプリケーションについての閾値とを前記各サーバ毎に比較する工程と、
前記閾値を超えているパフォーマンス情報に係るサーバで稼動中のアプリケーションを特定する工程と、
この特定アプリケーション以外のアプリケーションを稼動させているサーバを選択する工程と、
この選択したサーバの稼動アプリケーションを前記特定アプリケーションに切り替える工程と、
を有することを特徴としたサーバ負荷分散方法。
【請求項３】
サービス要求を行う少なくとも一つのクライアントと、該クライアントへ提供するサービスに係るアプリケーションが稼動し得る複数のサーバとを有するクライアントサーバシステムであって、
前記サーバから取得したパフォーマンス情報と予め設定している当該サーバの負荷判定閾値の内の当該サーバで現在稼動しているアプリケーションについての閾値とを比較して、複数の前記サーバの内の当該閾値を超えているパフォーマンス情報に係るサーバで稼動中のアプリケーションを特定する機能，及び当該特定アプリケーション以外のアプリケーションが稼動しているサーバの稼動アプリケーションを前記特定アプリケーションに切り替える機能を有する監視マネージャ装置を設けたことを特徴とするクライアントサーバシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアントサーバシステムに係り、特にそのサーバの負荷を好適に分散し得るサーバ負荷分散装置及びサーバ負荷分散方法及びクライアントサーバシステムに関する。
【０００２】
【従来の技術】
近年、新幹線座席予約システム、航空券予約システム、電子商取引システム（いわゆるＥ−コマース）、又は企業内における就業管理システム若しくは財務会計システム等の各種業務処理システム等は、インターネットやイントラネットというコンピュータ・ネットワークを介したクライアントサーバ型のアプリケーション・システムとして提供されることが多くなってきた。そして、そのようなアプリケーション・システムが増えるにつれてその利用者も増加し、これに伴ってサーバへのアクセス（即ちクライアントからの処理要求）が集中するという問題が生じている。ここで、このような問題が生じると、サーバの負荷が急激に高くなるので、処理速度の低下や最悪の場合はシステムの異常停止という不都合が生じてしまう。
【０００３】
そこで、サーバの負荷を軽減させる為に、クライアントからの処理要求を複数のサーバ（以下、「サーバグループ」という。）に分散させる負荷分散処理が一般的に行われている。
【０００４】
例えば、そのような負荷分散処理を可能にするクライアントサーバ型のアプリケーション・システムとしては、特開２００２−１６３２４１号公報に開示されたクライアントサーバシステムがある。このクライアントサーバシステムは、クライアントからのサービス要求を処理する為の複数のサーバの結合体と、そのサービス要求をサーバ結合体の何れかのサーバに振り分ける振り分け手段と、サーバ結合体の構成を変更する構成変更手段と、この構成変更手段による構成変更を振り分け手段に通知し、この振り分け手段の設定を変更する設定変更手段と、サーバ結合体へのアクセス状態を監視するアクセス状態監視手段と、このアクセス状態監視手段からの通知に基づいて構成変更手段による構成変更の内容を決定する判定手段とを備えたものである。これによれば、このクライアントサーバシステムは、仮にサービス要求が集中して現状の処理能力を上回ったり、逆にサービス要求が少なくなって現状の処理能力に余剰分が生じたりした場合には、構成変更手段がサーバ結合体の構成を変更することにより（即ち、サーバ結合体に予備のサーバを追加したり、サーバ結合体から余剰サーバを縮退させる等の構成変更を行うことにより）サーバ側の資源配置を動的に再構成し、クライアントからのサービス要求の変動に応じた適切なサービス処理能力を提供することができる、というものである。
【０００５】
【特許文献１】
特開２００２−１６３２４１号公報
【０００６】
【発明が解決しようとする課題】
このように、上記従来例に開示した特開２００２−１６３２４１号公報に記載のクライアントサーバシステムは、クライアントからのアクセスの多寡に応じてサーバ側資源の構成変更を動的に行い、これをもってサーバの負荷の分散を図るものである。
【０００７】
しかしながら、この従来のクライアントサーバシステムにおいては、監視しているアクセス状態に異常が認められなくても実際はサーバに過大な負荷がかかっていることもあり、また、その逆にアクセス集中によりサーバに高負荷がかかると判断したとしても実際はサーバの負荷に何ら異常が認められないということもある。これは、サーバへのアクセス状態（アクセス数）が同じであったとしても、提供するサービス（即ちアプリケーション）の種類毎に、また一種類のサービスであってもその処理内容毎にサーバの負荷が異なるからに他ならず、これが為、要求されたアプリケーションの種類やその処理内容如何で、サーバが処理し得るクライアントからの処理要求の最大数に違いが生じるからである。
【０００８】
このことから、サーバグループへのアクセス数の多寡はあくまでもサーバにかかる負荷を判断する為の一つの目安に過ぎず、これをもってしても実際のサーバの負荷状況を正確に判断又は予測することはできない。これが為、従来のクライアントサーバシステムにおいては、システム上で適正な負荷分散が為されていると判断していたとしても、実際はサーバの負荷が高くなっており、利用者に対して快適なサービスの提供ができていない場合もある。
【０００９】
また、この従来のクライアントサーバシステムは、使用されるか否かが明らかでない予備のサーバを予め用意しておく必要があるので、システムの構築や維持、管理に必要以上の費用が発生してしまう虞がある。
【００１０】
そこで、本発明は、かかる従来例の有する不都合を改善し、実際のサーバの負荷状況を正確に判断又は予測し得る、更には利用者に対して品質の安定したサービスを提供し得る安価なサーバ負荷分散装置及びサーバ負荷分散方法及びクライアントサーバシステムを提供することを、その目的とし、そして、これによる利用者の満足度向上を更なる目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成する為、本発明に係るサーバ負荷分散装置には、アプリケーションサービスを提供するサーバから取得したパフォーマンス情報と予め設定している当該サーバの負荷判定閾値の内の当該サーバで現在稼動しているアプリケーションについての閾値とを比較して、複数の前記サーバの内の当該閾値を超えているパフォーマンス情報に係るサーバで稼動中のアプリケーションを特定する機能と、この特定アプリケーション以外のアプリケーションが稼動しているサーバの稼動アプリケーションを前記特定アプリケーションに切り替える機能とを有する制御手段を設けている。
【００１２】
また、上記目的を達成する為、本発明に係るサーバ負荷分散方法は、アプリケーションサービスを提供する複数のサーバのパフォーマンス情報を取得する工程と、この取得したパフォーマンス情報と予め設定している当該サーバの負荷判定閾値の内の当該サーバで現在稼動しているアプリケーションについての閾値とを前記各サーバ毎に比較する工程と、前記閾値を超えているパフォーマンス情報に係るサーバで稼動中のアプリケーションを特定する工程と、この特定アプリケーション以外のアプリケーションを稼動させているサーバを選択する工程と、この選択したサーバの稼動アプリケーションを前記特定アプリケーションに切り替える工程とを有している。
【００１３】
また、上記目的を達成する為、本発明に係るクライアントサーバシステムには、サーバから取得したパフォーマンス情報と予め設定している当該サーバの負荷判定閾値の内の当該サーバで現在稼動しているアプリケーションについての閾値とを比較して、複数の前記サーバの内の当該閾値を超えているパフォーマンス情報に係るサーバで稼動中のアプリケーションを特定する機能，及び当該特定アプリケーション以外のアプリケーションが稼動しているサーバの稼動アプリケーションを前記特定アプリケーションに切り替える機能を有する監視マネージャ装置を設けている。
【００１４】
【発明の実施の形態】
本発明に係るクライアントサーバシステムの一実施形態について図１〜図５を用いて説明する。
【００１５】
最初に、本実施形態のクライアントサーバシステムの構成を図１及び図２に基づき説明する。
【００１６】
このクライアントサーバシステムは、図１に示す如く、サービスの提供を受ける為の処理要求を行う少なくとも一つのクライアント端末１０と、その処理要求に基づいてクライアント端末１０にサービスを提供する複数のアプリケーションサーバ２０（２０Ａ〜２０Ｄ）と、これらの各アプリケーションサーバ２０を監視する監視マネージャサーバ３０と、クライアント端末１０をその処理要求に該当するアプリケーションサーバ２０に割り当てるロードバランサ装置４０と、本システムの管理者が使用するシステム管理者端末５０とを備える。
【００１７】
ここで、クライアント端末１０はロードバランサ装置４０に、このロードバランサ装置４０は夫々のアプリケーションサーバ２０及び監視マネージャサーバ３０に、この監視マネージャサーバ３０は夫々のアプリケーションサーバ２０及びシステム管理者端末５０に、夫々インターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ），ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介して接続される。
【００１８】
先ず、上記アプリケーションサーバ２０とは、複数のアプリケーションを稼動し得る複数のサービスの提供が可能なサーバのことであって、本実施形態にあっては図１に示す二種類のアプリケーションＡＰ１，ＡＰ２を具備することによって夫々に対応した二種類のサービスの提供を可能にするものである。また、このアプリケーションサーバ２０には、図１に示す如く、自身のＣＰＵ使用率やメモリ使用率等のリソース使用状況を示す情報（以下「パフォーマンス情報」という。）を監視して取得するパフォーマンス監視ツール２１と、このパフォーマンス監視ツール２１によって取得したパフォーマンス情報を定期的に監視マネージャサーバ３０に送信する監視エージェント２２とが設けられている。
【００１９】
本実施形態にあっては、このような構成のアプリケーションサーバ２０が図１に示す如く四台設置されたクライアントサーバシステムについて例示する。また、これら第一から第四のアプリケーションサーバ２０Ａ〜２０Ｄにおいては、二種類のアプリケーションＡＰ１，ＡＰ２のうちの何れかがクライアント端末１０にサービスを提供するが為に稼動し得るものとする。
【００２０】
尚、本実施形態にあっては、夫々のアプリケーションサーバ２０Ａ〜２０Ｄの監視エージェント２２が略同時期にパフォーマンス情報を送信するよう設定しておく。
【００２１】
次に、本システムの監視マネージャサーバ３０について詳述する。本実施形態の監視マネージャサーバ３０は、図１に示す如く、負荷状況判定手段３１と、負荷分散制御手段３２と、稼動アプリケーション切替手段３３と、ロードバランサ装置制御手段３４と、通知手段３５とを有するものであり、後述する如くサーバ負荷の分散装置としても機能し得るものである。
【００２２】
先ず、上記負荷状況判定手段３１は、アプリケーションサーバ２０の負荷状況を判断する為の基準データ（後述するＳＬＡ基準値）を得る為に、夫々のアプリケーションサーバ２０Ａ〜２０Ｄに対して予め負荷テストを行う負荷テスト機能３１ａを備える。
【００２３】
例えば本実施形態の負荷テストは、アプリケーションサーバ２０に送信したテスト用のデータが戻ってくるまでの応答時間を当該アプリケーションサーバ２０が具備するアプリケーション毎に測定し、この応答時間が所定時間（アプリケーションサーバ２０の負荷が高くなると判断する為の基準時間であって、例えばシステム管理者が任意に設定し得るものとする。）を超えた際のアプリケーションサーバ２０の負荷を測定するものである。
【００２４】
ここで、かかる負荷テストにおいては、その所定時間を超えた際のアプリケーションサーバ２０におけるＣＰＵ使用率等のパフォーマンス情報を測定する。そして、この負荷状況判定手段３１においては、そのパフォーマンス情報に係る値を、その値を超えるとアプリケーションサーバ２０の処理速度低下等の不都合が生じ得るという閾値，換言すればアプリケーションサーバ２０の性能を保証する基準値（ＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）基準値）として後述する負荷状況判定機能３１ｂによる判定に使用する。
【００２５】
尚、負荷状況判定手段３１が取得してＳＬＡ基準値とするパフォーマンス情報としては、所定時間を超えた際若しくはその前又は後に受け取ったアプリケーションサーバ２０の監視エージェント２２から定期的に送られてくるパフォーマンス情報を用いてもよく、所定時間を超えた際に負荷状況判定手段３１が監視エージェント２２に送信指示を与えることにより得たものであってもよい。
【００２６】
以上示した負荷テストは夫々のアプリケーションサーバ２０Ａ〜２０Ｄに対して夫々が具備するアプリケーション毎に行われ、負荷テスト機能３１ａは、その際取得したＣＰＵ使用率やメモリ使用率等の夫々の値からなるＳＬＡ基準値を図１に示すＳＬＡ基準値データベース３６に登録しておく。
【００２７】
また、この負荷状況判定手段３１には、サービス提供中に監視エージェント２２から送られてきたパフォーマンス情報と上記ＳＬＡ基準値データベース３６のＳＬＡ基準値とを夫々のアプリケーションサーバ２０Ａ〜２０Ｄ毎に比較して、各アプリケーションサーバ２０Ａ〜２０Ｄの負荷状況を判定する負荷状況判定機能３１ｂが設けられている。
【００２８】
尚、本実施形態にあっては、ＣＰＵ使用率やメモリ使用率等の複数のデータからなるパフォーマンス情報の夫々の値が上記ＳＬＡ基準値を超えたときにアプリケーションサーバ２０の負荷が高くなると判定するよう設定しておくが、これに限らず、何れか一つのデータがＳＬＡ基準値を超えたときに高負荷になると判定してもよい。
【００２９】
ここで、本システムには、夫々のアプリケーションＡＰ１，ＡＰ２が何れのアプリケーションサーバ２０Ａ〜２０Ｄで稼動中であるのかを表す，即ち、アプリケーションＡＰ１のグループに属するアプリケーションサーバ２０及びアプリケーションＡＰ２のグループに属するアプリケーションサーバ２０を示すアプリケーション／サーバリストが用意されている。そして、このアプリケーション／サーバリストを用いることで、本実施形態の負荷状況判定機能３１ｂは、判定対象のアプリケーションサーバ２０で稼動しているアプリケーションＡＰ１又はアプリケーションＡＰ２を特定することができる。
【００３０】
例えば、アプリケーションＡＰ１が第一及び第二のアプリケーションサーバ２０Ａ，２０Ｂで、またアプリケーションＡＰ２が第三及び第四のアプリケーションサーバ２０Ｃ，２０Ｄで現在稼動しているのであれば、図２（ａ）に示すアプリケーション／サーバリスト３７ａが図１に示すアプリケーション／サーバリストデータベース３７に登録されている。そして、例えば第一のアプリケーションサーバ２０Ａを判定対象とする場合、この負荷状況判定機能３１ｂは、この第一のアプリケーションサーバ２０Ａで現在稼動中のアプリケーションＡＰ１を上記アプリケーション／サーバリスト３７ａから特定することができる。
このことから、この負荷状況判定機能３１ｂは、アプリケーションサーバ２０の負荷状況を判定することにより、このアプリケーションサーバ２０で稼動しているアプリケーション，換言すれば、このアプリケーションサーバ２０が属しているアプリケーションのグループの負荷状況を判定することができるものである。
【００３１】
続いて、この監視マネージャサーバ３０の負荷分散制御手段３２について詳述する。この負荷分散制御手段３２は、稼動アプリケーション切替手段３３とロードバランサ装置制御手段３４に対して好適な負荷分散処理を実行させる為のものである。
【００３２】
この負荷分散制御手段３２には、上記負荷状況判定機能３１ｂにより高負荷になると判定されたアプリケーショングループに属するアプリケーションサーバ２０の負荷を分散させる為の対策を立て、これを設定変更指令として稼動アプリケーション切替手段３３とロードバランサ装置制御手段３４に通知して夫々に負荷分散処理を実行させる機能を設けている。
【００３３】
ここで、本実施形態にあっては、上記負荷状況判定機能３１ｂにより特定されたアプリケーションを、このアプリケーションが稼動しておらず且つ高負荷となっていないアプリケーショングループに属するアプリケーションサーバ２０においても稼動させることにより負荷の分散を行う。尚、以下においては、そのアプリケーションサーバ２０を「稼動アプリケーション切替対象サーバ２０」ともいう。
【００３４】
このような負荷分散を実行する為には、稼動アプリケーション切替対象サーバ２０における稼動中のアプリケーションを上記の特定したアプリケーションに切り替えることが必要になる。これが為、この監視マネージャサーバ３０の稼動アプリケーション切替手段３３には、上記負荷分散制御手段３２からの設定変更指令に基づいて、稼動アプリケーション切替対象サーバ２０の稼動アプリケーションを切り替える機能を設けている。
【００３５】
また、本実施形態のロードバランサ装置４０とは、クライアント端末１０からサービスの処理要求があると、この処理要求に該当するアプリケーションのグループに属している何れかのアプリケーションサーバ２０にクライアント端末１０を割り当てる装置である。これが為上記の如き負荷分散を行うには、ロードバランサ装置４０において、上記の特定したアプリケーションに係るサービスにアクセスしてきたクライアント端末１０を稼動アプリケーション切替対象サーバ２０にも割り当てることができるようにする必要もある。そこで、この監視マネージャサーバ３０のロードバランサ装置制御手段３４には、ロードバランサ装置４０のサーバ割当設定を変更する為の後述する機能を設けている。
【００３６】
ここで、本実施形態のロードバランサ装置制御手段３４は、サーバ割当設定変更を行う為のコマンドをロードバランサ装置４０に送信することで、このロードバランサ装置４０に設定変更を実行させる。これが為、本システムには、ロードバランサ装置４０のサーバ割当設定変更を行う為のコマンド群をコマンドリストとして図１に示すコマンドリストデータベース３８に用意している。具体的にこのコマンドリストとは、「稼動アプリケーション切替対象サーバ２０へのクライアント端末１０の割当停止コマンド」，「その稼動アプリケーション切替対象サーバ２０における稼動アプリケーション情報の変更コマンド」及び「その稼動アプリケーション切替対象サーバ２０へのクライアント端末１０の割当開始コマンド」を有するものであり、本実施形態にあってはアプリケーションサーバ２０と切り替えるアプリケーションとの組み合わせ毎に設けられている。
【００３７】
このようなことから、このロードバランサ装置制御手段３４には、上記負荷分散制御手段３２から設定変更指令が為されると、この設定変更指令に該当するコマンドリストを呼び出し、そのコマンド群を用いてロードバランサ装置４０における稼動アプリケーション切替対象サーバ２０の属するアプリケーショングループを上記の特定したアプリケーションのグループに変更させる機能が設けられている。そして、かかる機能によりサーバ割当設定が変更されると、その特定したアプリケーションに係るサービスにアクセスしてきたクライアント端末１０を稼動アプリケーション切替対象サーバ２０にも割り当てることが可能になる。
【００３８】
尚、本実施形態にあってはロードバランサ装置制御手段３４が上記設定変更指令と共に設定変更に必要なコマンドリストの名称を上記負荷分散制御手段３２から受け取り、このコマンドリスト名に基づいてコマンドリストの呼び出しを行うものとするが、このロードバランサ装置制御手段３４が設定変更指令に基づいて該当するコマンドリストの選択を行ってもよい。
【００３９】
ここで、本実施形態のロードバランサ装置４０には、ロードバランサ装置制御手段３４から受け取ったコマンドによる実行結果を監視マネージャサーバ３０に送信する機能が設けられている。また、ロードバランサ装置制御手段３４には、受信した実行結果からサーバ割当設定変更処理の成否を判断する機能も備えている。
【００４０】
次に、この監視マネージャサーバ３０の通知手段３５について詳述する。システム管理者が監視マネージャサーバ３０の処理結果を知ることができればアプリケーション毎のクライアントの利用頻度を把握でき、これにより、あるアプリケーションを稼動させるアプリケーションサーバ２０の設置台数の増減等のシステム再構築を図る際の参考にすることができる。そこで、監視マネージャサーバ３０にはその処理結果をシステム管理者に通知する為の通知手段３５が設けられている。
【００４１】
この通知手段３５が通知を行う為には通知内容を取得する必要がある。これが為、上述した負荷分散制御手段３２には、その処理結果を通知手段３５に送信する機能が設けられている。ここで、その処理結果としては、例えばサービス品質が悪化しているアプリケーションやこれに関する上述した負荷分散対策の内容、そして、上述した稼動アプリケーション切替対象サーバ２０の稼動アプリケーション切替処理及び上述したロードバランサ装置制御手段３４によるサーバ割当設定変更処理の成否がある。
【００４２】
このような処理結果に基づいて、この通知手段３５は、例えば、サービス品質の悪化有無や品質が悪化しているアプリケーション等のサービス処理性能を通知内容とするサービス診断レポート，対策内容や稼動アプリケーション切替処理やサーバ割当設定変更処理等の負荷分散処理に関する情報を通知内容とする負荷分散処理レポート，及びサービス品質悪化アラートを電子メールやブラウザ等で通知する。
【００４３】
尚、この通知手段３５は、負荷状況判定手段３１の処理結果に基づいてサービス品質の悪化有無をシステム管理者に通知してもよい。
【００４４】
次に、以上示した構成からなる本システムの動作説明を図３及び図４のフローチャートに基づき行う。
【００４５】
先ず、監視マネージャサーバ３０は、各アプリケーションサーバ２０Ａ〜２０Ｄの夫々の監視エージェント２２から定期的にパフォーマンス情報を取得している。この監視マネージャサーバ３０において図３に示す如く全てのアプリケーションサーバ２０Ａ〜２０Ｄからパフォーマンス情報を受け取ると（ステップＳＴ１）、その負荷状況判定手段３１は、判定対象のアプリケーションサーバ２０で稼動しているアプリケーションをアプリケーション／サーバリストから特定する（ステップＳＴ２）。そして、この負荷状況判定手段３１は、その判定対象アプリケーションサーバ２０のＳＬＡ基準値の内の上記特定アプリケーションに該当するものをＳＬＡ基準値データベース３６から取得し、このＳＬＡ基準値と判定対象アプリケーションサーバ２０のパフォーマンス情報とを比較して当該判定対象アプリケーションサーバ２０の負荷状況を判定する（ステップＳＴ３）。
【００４６】
ここで、そのパフォーマンス情報に係る値がＳＬＡ基準値よりも高ければ、負荷状況判定手段３１は、その判定対象アプリケーションサーバ２０が高負荷になると判定し、この判定対象アプリケーションサーバ２０で稼動している上記特定アプリケーションを高負荷アプリケーションとして特定する（ステップＳＴ４）。
【００４７】
負荷状況判定手段３１は、上記ステップＳＴ２〜ＳＴ４までの処理を全てのアプリケーションサーバ２０に対して行い、次に、負荷分散制御手段３２が、上記アプリケーション／サーバリストを参照して、上記ステップＳＴ４にて特定した高負荷アプリケーション以外のアプリケーションのグループに属するアプリケーションサーバ２０の内の低負荷のもの（即ちその高負荷アプリケーションが稼動しておらず且つ上記ステップＳＴ３にて高負荷になると判定されなかったアプリケーションサーバ２０）を選択し、このアプリケーションサーバ２０を稼動アプリケーション切替対象サーバとして決定する（ステップＳＴ５）。
【００４８】
これにより設定変更を行う為の対策（その稼動アプリケーション切替対象サーバ２０の稼動アプリケーションを上記ステップＳＴ４にて特定した高負荷アプリケーションに切り替える）が定まるので、しかる後、この負荷分散制御手段３２は、その対策に基づいた設定変更指令を稼動アプリケーション切替手段３３とロードバランサ装置制御手段３４に送信する（ステップＳＴ６）。ここで、本実施形態におけるロードバランサ装置制御手段３４への設定変更指令には、その対策に該当するコマンドリスト名も含まれているものとする。
【００４９】
上記の如く負荷分散制御手段３２が設定変更指令を送信すると、稼動アプリケーション切替手段３３は、稼動アプリケーション切替対象サーバ２０の稼動アプリケーションを上記ステップＳＴ４にて特定した高負荷アプリケーションに切り替える（ステップＳＴ７）。また、ロードバランサ装置制御手段３４は、ロードバランサ装置４０における稼動アプリケーション切替対象サーバ２０の属するアプリケーショングループを変更することにより、このロードバランサ装置４０のサーバ割り当てを変更する（ステップＳＴ８）。
【００５０】
ここで、このステップＳＴ８のサーバ割当設定変更処理について図４のフローチャートを用いて詳述する。
【００５１】
先ず、ロードバランサ装置制御手段３４は、設定変更指令を受け取る（ステップＳＴ８Ａ）と、これに含まれるコマンドリスト名に該当するコマンドリストを図１に示すコマンドリストデータベース３８から選択する（ステップＳＴ８Ｂ）。そして、ロードバランサ装置４０へコマンドを送る為にＴｅｌｎｅｔ接続等で接続し（ステップＳＴ８Ｃ）、コマンドリストのコマンドを一行読み出して（ステップＳＴ８Ｄ）ロードバランサ装置４０に送信する（ステップＳＴ８Ｅ）。
【００５２】
これによりロードバランサ装置４０においてはそのコマンドが実行され、その実行結果が送信されるので、これを受信（ステップＳＴ８Ｆ）した監視マネージャサーバ３０のロードバランサ装置制御手段３４は、その実行結果からそのコマンドによるロードバランサ装置４０での処理が成功したか否かを判断する（ステップＳＴ８Ｇ）。
【００５３】
そして、成功していればコマンドリスト内の全てのコマンドについての処理を終えたか否かを判断し（ステップＳＴ８Ｈ）、終えていなければ上記ステップＳＴ８Ｄに戻り、次のコマンドを読み出して同様の処理を全コマンドについて終えるまで繰り返す。
【００５４】
このようにしてコマンドリスト内の全てのコマンドについての処理を終え、全てのコマンド実行が成功していれば、ロードバランサ装置４０のサーバ割当設定が変更されたことになるので、このロードバランサ装置制御手段３４は、ロードバランサ装置４０との接続を切断してサーバ割当設定変更処理を終了する（ステップＳＴ８Ｉ）。
【００５５】
また、上記ステップＳＴ８Ｈにて失敗したとの判断結果であれば上記ステップＳＴ７Ｄに戻って同一のコマンドを読み出し、同様の処理を行う。尚、同一のコマンドの処理を例えば三回、四回等複数回繰り返しても失敗する場合は、後述するステップＳＴ８Ｉの如くロードバランサ装置４０との接続を切断し、このロードバランサ装置制御手段３４による処理を終了する。ここで、かかる場合に上記稼動アプリケーション切替手段３３が稼動アプリケーションの切替処理を終えてしまっていることは好ましくない。これが為、上記ステップＳＴ７の稼動アプリケーション切替処理処理は、少なくとも前述した「稼動アプリケーション切替対象サーバ２０における稼動アプリケーション情報の変更コマンド」による処理が成功した後で行うことが好ましい。
【００５６】
以上のようにして稼動アプリケーション切替手段３３及びロードバランサ装置制御手段３４の負荷分散処理を終えると、負荷分散制御手段３２は、その負荷分散処理結果に応じてアプリケーション／サーバリストデータベース３７のアプリケーション／サーバリストを変更する（ステップＳＴ９）。そして、通知手段３５は、稼動アプリケーション切替手段３３やロードバランサ装置制御手段３４から受け取った処理結果に基づいて負荷分散処理レポート等を作成し、これを例えば電子メールでシステム管理者端末５０に通知する（ステップＳＴ１０）。
【００５７】
尚、図３に示すステップＳＴ１１の如く、全てのアプリケーションサーバ２０Ａ〜２０Ｄのパフォーマンス情報に係る値が上記ステップＳＴ３においてＳＬＡ基準値よりも低いとの判定結果であれば、全アプリケーションサーバ２０Ａ〜２０Ｄが提供しているサービスの品質が保証されていると判断して処理を終了する。
【００５８】
以上示した負荷分散処理を監視マネージャサーバ３０が行うことにより、本システムの提供サービスに係るアプリケーション毎の負荷状況を正確に把握し、この負荷状況に応じて好適な負荷分散を行うことができるので、品質の安定したサービスの提供が可能になる。特に、本システムにおいては同一のアプリケーションを複数のアプリケーションサーバ２０で共有させ、更に一つのアプリケーションサーバ２０に複数のアプリケーションを具備させているので、最小限のサーバ数でサービス品質を維持することができる。また、本実施形態の如く夫々のアプリケーションサーバ２０Ａ〜２０ＤのＳＬＡ基準値をアプリケーション毎に予め定めておくことによって、アプリケーションの稼動している実際のアプリケーションサーバ２０の負荷状況に近い値で負荷判定を行うことができるので、無用な負荷分散を行わずとも良い等、正確な負荷分散処理を行うことが可能になる。
【００５９】
また、負荷を分散させる為に予備のサーバを使用するという従来例と比して管理対象のアプリケーションサーバ２０を少なくすることができるので、アプリケーションプログラムの更新等のサーバにかかる管理工数の低減が可能になる。そして、これにより本システム構築時の費用を安価にすることができ、更にはその保守を行う際の費用も低減させることができる。
【００６０】
更に、システム管理者は、負荷分散処理結果や負荷の高くなるアプリケーション等について知ることができるので、その通知内容に応じて好適なシステム再構築を行うことが可能になり、これによりクライアント・ユーザの満足度向上にも繋がる。
【００６１】
ここで、以上示した負荷分散処理の具体例として、図５（ａ）に示す如くアプリケーションＡＰ１が第一及び第二のアプリケーションサーバ２０Ａ，２０Ｂで、またアプリケーションＡＰ２が第三及び第四のアプリケーションサーバ２０Ｃ，２０Ｄで現在稼動中であり、第一及び／又は第二のアプリケーションサーバ２０Ａ，２０Ｂの負荷が高くなると上記ステップＳＴ３で判定された場合について例示する。かかる場合、負荷状況判定手段３１は、図２（ａ）に示すアプリケーション／サーバリスト３７ａを参照することでアプリケーションＡＰ１を特定している。
【００６２】
先ず、負荷分散制御手段３２は、アプリケーションＡＰ２が稼動している第三又は第四のアプリケーションサーバ２０Ｃ，２０Ｄの何れかを稼動アプリケーション切替対象サーバとして決定する。ここでは、第三アプリケーションサーバ２０Ｃが稼動アプリケーション切替対象サーバとして決定されたものとする。
【００６３】
続いて、この負荷分散制御手段３２は、その第三アプリケーションサーバ２０Ｃで稼動しているアプリケーションＡＰ２をアプリケーションＡＰ１に切り替える旨の設定変更指令を稼動アプリケーション切替手段３３とロードバランサ装置制御手段３４に送信する。
【００６４】
これにより、稼動アプリケーション切替手段３３は、図５（ｂ）に示す如く第三アプリケーションサーバ２０Ｃの稼動アプリケーションをアプリケーションＡＰ１に切り替え、ロードバランサ装置制御手段３４は、その第三アプリケーションサーバ２０Ｃの属するアプリケーショングループを、アプリケーションＡＰ２のグループからアプリケーションＡＰ１のグループへと変更する。
【００６５】
具体的にこのロードバランサ装置制御手段３４は、該当するコマンドリストを選択し、このコマンドリストから先ず「第三アプリケーションサーバ２０Ｃへのクライアント端末１０の割当停止コマンド」を読み出してロードバランサ装置４０に送信する。これにより、ロードバランサ装置４０は、第三アプリケーションサーバ２０Ｃへのクライアント端末１０の割り当てを停止し、その旨を監視マネージャサーバ３０に送信する。
【００６６】
続いて、このロードバランサ装置制御手段３４は、「第三アプリケーションサーバ２０Ｃの稼動アプリケーション情報をアプリケーションＡＰ２からアプリケーションＡＰ１へと変更するコマンド」を読み出してロードバランサ装置４０に送信し、このロードバランサ装置４０においてはそのコマンドを実行して、稼動アプリケーション情報を変更した旨を監視マネージャサーバ３０に送信する。
【００６７】
更に、このロードバランサ装置制御手段３４は、「第三アプリケーションサーバ２０Ｃへのクライアント端末１０の割当開始コマンド」を読み出してロードバランサ装置４０に送信する。これにより、ロードバランサ装置４０は、第三アプリケーションサーバ２０Ｃへのクライアント端末１０の割り当てを開始し、その旨を監視マネージャサーバ３０に送信する。
【００６８】
以上の如くして第三アプリケーションサーバ２０Ｃの稼動アプリケーションの切り替えと第三アプリケーションサーバ２０Ｃの属するアプリケーショングループの変更（サーバ割り当ての設定変更）を終えると、この負荷分散制御手段３２は、アプリケーション／サーバリストデータベース３７のアプリケーション／サーバリスト３７ａを図２（ｂ）に示すアプリケーション／サーバリスト３７ｂに変更する。そして、通知手段３５が、「第三アプリケーションサーバ２０Ｃの稼動アプリケーションをアプリケーションＡＰ１へと変更した」旨等の通知をシステム管理者に行う。
【００６９】
尚、本実施形態において例示したアプリケーションサーバ２０は全てが二種類のアプリケーションＡＰ１，ＡＰ２を稼動させるものであるが、一種類のアプリケーションのみが稼動するアプリケーションサーバを包含していてもよく、また三種類以上のアプリケーションを稼動し得るアプリケーションサーバであってもよい。更に、稼動し得るアプリケーションの数が夫々異なるアプリケーションサーバを混在させたシステムであってもよい。
【００７０】
また、本実施形態にあってはクライアント端末１０のアプリケーションサーバ割当機能をロードバランサ装置４０（即ちハードウエア）として用意しているが、かかる機能は、必ずしもハードウエアの如き態様で用意する必要はなく、例えばかかる機能を有するソフトウエアを夫々のアプリケーションサーバ２０Ａ〜２０Ｄに用意してもよく、又は夫々のアプリケーションサーバ２０Ａ〜２０Ｄのオペレーティングシステムが持つ負荷分散機能を使用してもよい。
【００７１】
【発明の効果】
本発明に係るサーバ負荷分散装置及びサーバ負荷分散方法及びクライアントサーバシステムによれば、サーバの負荷分散を正確且つ安価に行うことができる。そして、これにより品質の安定したサービスの提供が可能になるので、クライアント側の満足度も向上させることができる。
【図面の簡単な説明】
【図１】本発明に係るクライアントサーバシステムの一実施形態の構成を示すブロック図である。
【図２】本システムで使用するアプリケーション／サーバリストの一例を示す説明図であって、図２（ａ）は負荷分散処理前のリストを表す図で、図２（ｂ）は負荷分散処理後のリストを表す図である。
【図３】本システムの監視マネージャサーバの処理動作を説明するフローチャートである。
【図４】本システムの監視マネージャサーバにおけるロードバランサ装置制御手段の処理動作を説明するフローチャートである。
【図５】本システムの負荷分散処理前後における各アプリケーションサーバの稼動アプリケーションの一例を示す説明図であって、図５（ａ）は負荷分散処理前を表す図で、図５（ｂ）は負荷分散処理後を表す図である。
【符号の説明】
１０  クライアント端末
２０，２０Ａ，２０Ｂ，２０Ｃ，２０Ｄ  アプリケーションサーバ
２１  パフォーマンス監視ツール
２２  監視エージェント
３０  監視マネージャサーバ（サーバ負荷分散装置）
３１  負荷状況判定手段
３１ａ  負荷テスト機能
３１ｂ  負荷状況判定機能
３２  負荷分散制御機能
３３  稼動アプリケーション切替手段
３４  ロードバランサ装置制御手段
３５  通知手段
３６  ＳＬＡ基準値データベース
３７  アプリケーション／サーバリストデータベース
３７ａ，３７ｂ  アプリケーション／サーバリスト
３８  コマンドリストデータベース
４０  ロードバランサ装置
５０  システム管理者端末
【図１】
2005031736.tif 000003
【図２】
2005031736.tif 000004
【図３】
2005031736.tif 000005
【図４】
2005031736.tif 000006
【図５】
2005031736.tif 000007