(57)【要約】【課題】  動的負荷分散システム及びその方法を提供する。【解決手段】  負荷分散部は、所定のノード加重値テーブルに基づいて少なくとも一つ以上のウェブアプリケーションサーバから、クライアントの要求を送信するウェブアプリケーションサーバを選択する。応答速度収集部は、各ウェブアプリケーションサーバに具備されてクライアントの要求に対するウェブアプリケーションサーバの平均応答速度を計算する。また、中央ノード管理部は、ウェブアプリケーションサーバの平均応答速度に基づいてノード加重値テーブルを補正する。このようにして、特定ノードで処理されるアプリケーションの応答速度が異常に遅くなることを防止してクライアント要求に対する速い応答速度を保証する。【選択図】  図１
2005182742.tif 000002
【特許請求の範囲】
【請求項１】
所定のノード加重値テーブルに基づいて、少なくとも一つ以上のウェブアプリケーションサーバのうちから、クライアントからの要求を送信するウェブアプリケーションサーバを選択する負荷分散部と、
前記各ウェブアプリケーションサーバに具備されて、前記クライアントからの要求に対するウェブアプリケーションサーバの平均応答速度を計算する応答速度収集部と、
前記ウェブアプリケーションサーバの平均応答速度に基づいて前記ノード加重値テーブルを補正する中央ノード管理部と、を含むことを特徴とする動的負荷分散システム。
【請求項２】
前記負荷分散部は、前記選択されたウェブアプリケーションサーバから、前記クライアントの要求に対する正常な応答が受信できなければ、前記ノード加重値テーブルに基づいて次善のウェブアプリケーションサーバを選択することを特徴とする請求項１に記載の動的負荷分散システム。
【請求項３】
前記中央ノード管理部は、前記それぞれのウェブアプリケーションサーバの平均応答速度の和が１００になるように換算し、前記各平均応答速度が１００において占める比率によって前記ウェブアプリケーションサーバの加重値を計算した後、前記ノード加重値テーブルを前記計算した加重値で補正することを特徴とする請求項１に記載の動的負荷分散システム。
【請求項４】
前記中央ノード管理部は、前記ノード加重値テーブルの加重値を所定の変化幅内で補正することを特徴とする請求項１に記載の動的負荷分散システム。
【請求項５】
所定のノード加重値テーブルに基づいて、少なくとも一つ以上のウェブアプリケーションサーバのうちから、クライアントからの要求を送信するウェブアプリケーションサーバを選択するステップと、
前記クライアントからの要求に対する前記ウェブアプリケーションサーバの平均応答速度を計算するステップと、
前記ウェブアプリケーションサーバの平均応答速度に基づいて前記ノード加重値テーブルを補正するステップと、を含むことを特徴とする動的負荷分散方法。
【請求項６】
前記ウェブアプリケーションサーバを選択するステップは、前記選択されたウェブアプリケーションサーバから前記クライアントの要求に対する正常な応答が受信できなければ、前記ノード加重値テーブルに基づいて次善のウェブアプリケーションサーバを選択するステップを含むことを特徴とする請求項５に記載の動的負荷分散方法。
【請求項７】
前記ウェブアプリケーションサーバを選択するステップは、前記ノード加重値テーブルの加重値を所定の変化幅内で補正するステップを含むことを特徴とする請求項５に記載の動的負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動的負荷分散システム及びその方法に関し、より詳細には、例えば、多様な種類のビジネスアプリケーションをサービスするサーバがクラスター(cluster)構成される場合に、複数のサーバ間で負荷分散を効率的に実行する動的負荷分散システム及びその方法に関する。
【背景技術】
【０００２】
一般に、単一システムを使用してサービスを提供する場合に、ユーザの増加により応答速度が低下しサイトユーザに良質のサービスを提供し難い問題点がある。このような問題を解決するために数台のサーバをクラスターで構成してユーザにサービスを提供する。
【０００３】
クラスターで構成したシステムにおいては、各サーバにクライアントからの要求を分配する負荷分散装置が必要となる。従来の負荷分散装置において使われている負荷分散方法には数台のサーバにクライアントからの要求を順次に分散する方法、ランダム方法でクライアントからの要求を分配する方法及び相異なる処理能力を持っているサーバがクラスターで構成されている場合にノード(それぞれのサーバ)に加重値を与えて負荷を分配する方法がある。他に各ノードに伝達されるクライアントの要求数に基づいて加重値を実行時間に対して可変にして負荷を分散する方法がある。現在商用化したウェブアプリケーションサーバでは、前述した方法のうち何れかの方法をシステム管理者が選択できるようにしている。
【０００４】
従来のインターネットビジネスサイトにおいては相異なる応答時間を有した多様なアプリケーションを提供したり、１つのアプリケーションにおいても各クライアントの要求ごとに相違した処理速度を有しているアプリケーションを提供する。
【０００５】
したがって、上記の方法を用いて負荷分散を実行した場合、クライアントが特定ノード(サーバ)に要求処理時間が多くかかるビジネスを呼び出すと、そのノードのリソースを多く消耗するので、次に伝えられる要求の処理時間が遅延するという短所がある。また、加重値を実行時間に対して動的に変更する従来の方法は、クライアントの要求数やリソースの使用量だけを基準として負荷分散を実行するので、クライアントの応答速度を保証できないという短所がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は前記問題点を解決するためになされたものであって、本発明の目的は、複数のウェブアプリケーションサーバからなるクラスター環境においてウェブアプリケーションサーバ間の負荷を効率的に分散してクライアントの要求に対する応答速度を最小化する動的負荷分散システム及びその方法を提供することである。
【課題を解決するための手段】
【０００７】
上記の技術的課題を達成するための、本発明による動的負荷分散システムの一実施の形態は、所定のノード加重値テーブルに基づいて、少なくとも一つ以上のウェブアプリケーションサーバのうちから、クライアントからの要求を送信するウェブアプリケーションサーバを選択する負荷分散部と、前記各ウェブアプリケーションサーバに具備されて、前記クライアントからの要求に対するウェブアプリケーションサーバの平均応答速度を計算する応答速度収集部と、前記ウェブアプリケーションサーバの平均応答速度に基づいて前記ノード加重値テーブルを補正する中央ノード管理部と、を含む。
【０００８】
上記の技術的課題を達成するための、本発明による動的負荷分散方法の一実施の形態は、所定のノード加重値テーブルに基づいて、少なくとも一つ以上のウェブアプリケーションサーバのうちから、クライアントからの要求を送信するウェブアプリケーションサーバを選択するステップと、前記クライアントからの要求に対する前記ウェブアプリケーションサーバの平均応答速度を計算するステップと、前記ウェブアプリケーションサーバの平均応答速度に基づいて前記ノード加重値テーブルを補正するステップと、を含む。
【０００９】
これにより、特定ノードで処理されるアプリケーションの応答速度が異常に遅くなることを防止してクライアントからの要求に対して速い応答速度を保証する。
【発明の効果】
【００１０】
本発明は、ビジネスアプリケーション等の平均応答速度に基づいた動的負荷分析方法であって、従来の負荷分散方法に比べて特定ノードで処理されるアプリケーションの応答速度が異常に遅くなることを防止するだけではなく、全てのアプリケーションの応答速度が遅くなることを防止してクライアントからの要求に対して速い応答速度を保証する。
【００１１】
また、負荷分散のために必要なノードの実行時間計算を負荷分散部と別途のサーバで行うことによって、負荷分散部の実行時間速度低下を防止でき、システムの性能及び安定性を保証することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、添付図面を参照して本発明に係る動的負荷分散システム及びその方法について詳細に説明する。
【００１３】
図１は、本発明に係る動的負荷分散システムの一実施の形態の構成を示した図である。
【００１４】
図１を参照すれば、本発明に係る動的負荷分散システムは、負荷分散部１００、応答速度収集部１１０〜１１４及び中央ノード管理部１２０からなる。この他にインターネットを通じて接続されたクライアント１４０、クライアントからの要求による動作を実行し、その応答を生成するウェブアプリケーションサーバ１３０〜１３４が存在する。
【００１５】
負荷分散部(またはウェブサーバ)１００はノード加重値テーブルに基づいて選択したウェブアプリケーションサーバ１３０〜１３４にクライアントからの要求を送信する。また、そのウェブアプリケーションサーバ１３０〜１３４から、クライアントの要求に対する応答を受信してクライアント１４０に送信する。一般にクライアント１４０は、ウェブブラウザーを介して負荷分散部１００に要求を送信し、負荷分散部１００から送信された応答をウェブブラウザーを介して画面に出力する。負荷分散部１００はHTTPを通してクライアント１４０から要求を受信する。
【００１６】
また、負荷分散部１００は、ノード加重値テーブルから最適のウェブアプリケーションサーバ１３０〜１３４を選択して該当ウェブアプリケーションサーバに要求を転送し、また、要求の転送が失敗した場合には、次善のウェブアプリケーションサーバに要求を送信して該当ビジネスロジックを処理する。そして、該ウェブアプリケーションサーバ１３０〜１３４から返信された応答ページをクライアント１４０に送信する。
【００１７】
ビジネスロジックは、業務に必要なデータ処理を行うアプリケーションプログラムの一部であって、データ入力、修正、照会及び報告書処理などを行うルーチンをいう。一般にクライアントプログラムは、ユーザインターフェース及びビジネスロジックからなり、サーバプログラムは、大部分ビジネスロジックからなる。クライアント/サーバモデルの場合には、他に通信リンクが追加されるが、通信と関連したインフラストラクチャーはユーザインターフェースのようにビジネスロジックの一部ではない。
【００１８】
応答速度収集部１１０〜１１４は、それぞれのウェブアプリケーションサーバ１３０〜１３４に具備されてウェブアプリケーションサーバの平均応答速度を計算する。すなわち、応答速度収集部１１０〜１１４は、各ウェブアプリケーションサーバにプラグインされてウェブアプリケーションサーバ１３０〜１３４のそれぞれのビジネスアプリケーションの要求処理速度を収集し、全てのアプリケーションの平均応答速度を計算した後、中央ノード管理部１２０に送信する。
【００１９】
中央ノード管理部１２０は応答速度収集部１１０〜１１４から受信した平均応答速度に基づいてノード加重値テーブルを補正する。中央ノード管理部１２０は、各ウェブアプリケーションサーバの平均応答速度に基づいてノード(ウェブアプリケーションサーバ)１３０〜１３４の実加重値を計算した後、加重値が目標加重値と差がある場合にノード加重値テーブルの加重値を再調整する。次に、中央ノード管理部１２０は、再調整されたノード加重値テーブルを負荷分散部１００に送信する。そうすると、負荷分散部１００は、再調整されたノード加重値テーブルに基づいてクライアント要求を送信するウェブアプリケーションサーバ１３０〜１３４を選択する。
【００２０】
図２は、本発明に係る動的負荷分散方法の流れを示すフローチャートである。
【００２１】
図２を参照すれば、負荷分散部１００は、クライアント１４０から要求を受信すると、受信した要求を伝達するウェブアプリケーションサーバ１３０〜１３４を選択する（Ｓ２００）。この時、負荷分散部１００は、ノード加重値テーブルに基づいて要求を伝達する最適のウェブアプリケーションサーバ１３０〜１３４を選択する（Ｓ２００）。
【００２２】
応答速度収集部１１０〜１１４は、各ウェブアプリケーションサーバ１３０〜１３４に具備されてウェブアプリケーションサーバ１３０〜１３４がクライアントからの要求に対する所定の応答を生成するまでの平均応答速度を計算する（Ｓ２１０）。また、それぞれの応答速度収集部１１０〜１１４は、計算した平均応答速度を中央ノード管理部１２０に送信する。
【００２３】
中央ノード管理部１２０は、受信した各ウェブアプリケーションサーバ１３０〜１３４の平均応答速度に基づいて加重値を計算して前のノード加重値テーブルを補正する(Ｓ２２０)。中央ノード管理部１２０は、補正されたノード加重値テーブルを負荷分散部１００に送信する。また、負荷分散部１００は、中央ノード管理部１２０から送信されたノード加重値テーブルを用いてウェブアプリケーションサーバ１３０〜１３４を選択する。
【００２４】
以下に、図３〜図５を参照して図２の各ステップの詳細な流れについて説明する。
【００２５】
図３は、本発明に係る負荷分散部の動作を示すフローチャートである。
【００２６】
図３を参照すれば、負荷分散部１００は、ウェブサーバに内蔵されたソフトウェアにより具現でき、負荷分散部１００が起動されると、中央ノード管理部１２０及びマルチキャストを通じて通信する通信マネージャー（図示せず）を初期化する（Ｓ３００）。
【００２７】
負荷分散部１００が取得する最初のノード加重値テーブルは、中央ノード管理部１２０にシステム管理者が設定した目標加重値テーブルである（Ｓ３０５）。負荷分散部１００は、最初は目標加重値テーブルに基づいて負荷分散を始める。中央ノード管理部１２０から加重値が変更されたノード加重値テーブルが送信されると、負荷分散部１００は、既存のノード加重値テーブルを、中央ノード管理部１２０から送信されたノード加重値テーブルに取り替える（Ｓ３０５）。
【００２８】
負荷分散部１００は、クライアント１４０から要求を受付けると（Ｓ３１０）、ノード加重値テーブルに基づいて最適のノード(ウェブアプリケーションサーバ)１３０〜１３４を選択し（Ｓ３１５）、選択したノード１３０〜１３４に要求を送信する（Ｓ３２０）。ノード１３０〜１３４に要求が正常に伝えられれば(Ｓ３２５)、ノード１３０〜１３４から要求に対する処理結果を受信し（Ｓ３３５）、受信した結果をクライアント１４０に送信する（Ｓ３４０）。しかし、仮りに該当ノード１３０〜１３４に要求が正常に伝えられないか、ノードが正常に作動しない場合は（Ｓ３２５）、次のノード１３０〜１３４に要求を再送信して中断のないサービスをクライアントに提供する（Ｓ３３０）。ノード加重値テーブルの加重値は、各ノード１３０〜１３４の負荷を示し、加重値が低いほど負荷が少ない。したがって、負荷分散部は、加重値がもっとも低いノード(ウェブアプリケーションサーバ)１３０〜１３４にクライアントの要求を送信し、この送信が失敗した場合には、次に加重値が低いウェブアプリケーションサーバにクライアントからの要求を送信する。
【００２９】
図４は、本発明に係る中央ノード管理部の動作を示すフローチャートである。
【００３０】
図４を参照すれば、中央ノード管理部１２０は、まず負荷分散部１００、応答速度収集部１１０〜１１４及びマルチキャスト方式を用いて通信するための通信マネージャー(図示せず)を初期化する（Ｓ４００）。通信マネージャーは、負荷分散部１００の応答速度収集部１１０〜１１４とメッセージを送受信する。
【００３１】
中央ノード管理部１２０は、各ウェブアプリケーションサーバ１３０〜１３４に具備された応答速度収集部１１０〜１１４から平均応答速度を含むメッセージを受信する（Ｓ４０５）。中央ノード管理部１２０は、受信した平均応答速度をデータベース化して応答速度格納部(図示せず)に格納した後（Ｓ４１０）、応答速度格納部に保存された平均応答速度を正規化する（Ｓ４１５）。正規化は、全てのノード１３０〜１３４の平均応答速度の和を１００に仮定し、現在受信したノードの平均応答速度が１００においてどの程度の比重を占めるかを表す。この値は実際にノード(ウェブアプリケーションサーバ)１３０〜１３４に加重された負荷であると見なされ、本発明においてはこの値を負荷分散のための実質的な加重値を計算するのに使用する（Ｓ４１５）。
【００３２】
中央ノード管理部１２０にはシステム管理者が最初に作成した目標加重値が存在する。中央ノード管理部１２０は、計算した加重値が最初に作成した目標加重値と相違した場合には加重値を補正する。ただし、補正範囲の最小及び最大限界値を設定してこの間で補正がなされるようにする。
【００３３】
すなわち、中央ノード管理部１２０は、計算した加重値と目標加重値との差が補正しなくてもよい範囲にあれば（Ｓ４２０）、補正しない。これは加重値の頻繁且つ突然な変化を防止するためである。ノード加重値テーブルの値を変更する時、計算した加重値と目標加重値の差が管理者が設定した最大または最小の限界値より大きい場合には、この差の値を最大または最小の限界値に取り替え、取り替えられた差の値に基づいて現在ノードの固定加重値を補正する(Ｓ４２５)。
【００３４】
校正加重値を計算する方法を例えて説明すれば次のようである。クラスターで構成されたＡ、Ｂ、Ｃのウェブアプリケーションサーバ１３０〜１３４があり、最初目標加重値が各々３３、３３、３４に設定されており、加重値の差の最小限界値から最大限界値を、−１０〜＋１０に仮定する。したがって、差が１０以上あるいは−１０以下であれば、その差の値は１０または−１０に取り替えられる。
【００３５】
ウェブアプリケーションサーバＡ１３０の応答速度収集部１１０から伝えられた平均応答速度を正規化した値が４１であれば目標加重値の３３との差は８である。差の値が８であって、最大限界値の１０より小さいので最大限界値に取り替える必要はない。この値をSmoothing Factorである２で割って４という値を得る。Smoothing Factorは、前述したように、突然にノードの加重値が変更されることを防止するために管理者により設定された値であって、補正過程で校正加重値を割る値である。
【００３６】
Smoothing Factorを用いて得られた値の４を現在ウェブアプリケーションサーバＡ１３０の加重値の３３から引き、残りのウェブアプリケーションサーバＢ、Ｃ１３２、１３４から４の値をウェブアプリケーションサーバＢ、Ｃ１３２、１３４が持っていた加重値の比率に応じて各々足す。すなわち、３３と３４とは、ほぼ１:１の比率であるので、ウェブアプリケーションサーバＢ、Ｃ１３２、１３４の加重値は各々２ずつ加えられる。これで、ウェブアプリケーションサーバＡ１３０は、４ほどの負荷が減少し、残りのウェブアプリケーションサーバ１３２、１３４は、４ほどの負荷をさらに行うようになる。このような過程を通じて中央ノード管理部１２０は、２９、３５、３６の値に校正されたノード加重値テーブルを生成する（Ｓ４３０）。
【００３７】
中央ノード管理部１２０は、校正したノード加重値テーブルを負荷分散部１００に伝達する（Ｓ４３５）。したがって、負荷分散部１００は、中央ノード管理部１２０から受信したノード加重値テーブルに基づいて負荷分散を実行する。
【００３８】
図５は、本発明に係る応答速度収集部の動作を示すフローチャートである。
【００３９】
図５を参照すれば、応答速度収集部１１０〜１１４は、各ウェブアプリケーションサーバ１３０〜１３４にプラグイン形態で存在し、応答速度収集部１１０〜１１４が始まると（Ｓ５００）、中央ノード管理部１２０と通信するための通信マネージャー(図示せず)を起動する（Ｓ５０５）。
【００４０】
応答速度収集部１１０〜１１４は、内部的に情報伝達を担当するスレッド(Thread)が存在する（Ｓ５１０）。このようなスレッドを置くことは、ウェブアプリケーションサーバ１３０〜１３４の実行時間に負荷を与えないためである。情報伝達スレッドは呼び出されたあらゆるアプリケーションの処理速度を時間単位に平均値を計算し（Ｓ５１５）、平均応答時間を含むメッセージを生成する（Ｓ５２０）。応答速度収集部１１０〜１１４は、生成したメッセージを通信マネージャー(図示せず)を介して中央ノード管理部１２０へ送信する（Ｓ５２５）。
【００４１】
本発明は、コンピュータで読取り可能な記録媒体にコンピュータが読むことができるコードをもってさらに具現できる。コンピュータで読取り可能な記録媒体は、コンピュータシステムによって読取られるデータが保存される全ての記録装置を含む。コンピュータが読むことができる記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フレキシブルディスク、光データ格納装置などがあり、また、搬送波(例えばインターネットを通じて伝送)の形態で具現されることも含む。また、コンピュータが読むことができる記録媒体は、ネットワークで連結したコンピュータシステムに分散され、分散方式でコンピュータが読みうるコードが格納され、実行することができる。
【００４２】
以上、本発明の望ましい実施の形態を中心に詳細に説明した。当業者は発明の本質的な特性から外れない範囲で変形した形態で具現できることがわかる。したがって、開示された実施の形態は、限定的な観点ではなく説明的な観点から考慮しなけらばならない。本発明の範囲は前述した説明ではなく特許請求の範囲に示されており、それと同じ範囲内にある全ての差は本発明に含まれたことと解釈すべきである。
【産業上の利用可能性】
【００４３】
本発明は、複数のウェブアプリケーションサーバを介してユーザーにニュース、証券情報、電子郵便等の様々なサービスを提供するインターネットシステムに適用されてウェブアプリケーションサーバの負荷を分散することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明に係る動的負荷分散システムの一実施の形態の構成を示す図である。
【図２】本発明に係る動的負荷分散方法の流れを示すフローチャートである。
【図３】本発明に係る負荷分散部の動作を示すフローチャートである。
【図４】本発明に係る中央ノード管理部の動作を示すフローチャートである。
【図５】本発明に係る応答速度収集部の動作を示すフローチャートである。
【符号の説明】
【００４５】
１００  負荷分散部
１１０〜１１４  応答速度収集部
１２０  中央ノード管理部
１３０〜１３４  ウェブアプリケーションサーバ
１４０  クライアント
【図１】
2005182742.tif 000003
【図２】
2005182742.tif 000004
【図３】
2005182742.tif 000005
【図４】
2005182742.tif 000006
【図５】
2005182742.tif 000007