(57)【要約】  【課題】業務アプリに対するリクエストを、当該業務アプリが稼動しているコンピュータに振り分け処理するシステムにおいて、各アプリのサービス低下を防止できるよう管理する。  【解決手段】リソース割当管理装置１はサーバ計算機３のスペックを管理する。また、業務アプリ毎に、サーバ計算機３のスペックと当該スペックで当該業務アプリを稼動させた場合のリクエスト処理数との関係を管理する。業務アプリ毎に、当該アプリが割り当てられたサーバ計算機３でのリクエスト受信数及びリクエスト処理数を監視し、リソースが不足している業務アプリを特定する。特定した業務アプリに対する必要リソース量と、プールしているサーバ計算機３のスペックと、当該スペックで特定した業務アプリを稼動させた場合のリクエスト処理数とに基づいて、特定した業務アプリに追加で割当てるサーバ計算機３を決定する。  【選択図】図１
2006309691.tif 000002
【特許請求の範囲】
【請求項１】
複数の業務アプリケーションのそれぞれを複数のコンピュータのうちの少なくともいずれか一つで稼動させ、業務アプリケーションに対するリクエストを当該業務アプリケーションが稼動しているコンピュータに振り分け処理するシステムに対して、プールされているコンピュータの中から業務アプリケーションを新たに稼動させるコンピュータを決定するリソース割当管理装置であって、
各コンピュータのスペック情報が記憶されたリソース情報記憶手段と、
前記複数の業務アプリケーション各々について、コンピュータのスペック情報と、当該スペック情報を持つコンピュータで当該業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数との対応関係が記憶された処理能力記憶手段と、
前記複数の業務アプリケーション各々について、当該業務アプリケーションが割り当てられたコンピュータ各々での単位時間当たりのリクエスト受信数およびリクエスト処理数の差分からリソースが不足している業務アプリケーションを特定し、該差分であるリクエスト数を前記リソースが不足していると特定された業務アプリケーションに対する必要リソース量として算出する必要リソース量推定手段と、
前記リソース情報記憶手段に記憶されている前記プールされているコンピュータ各々のスペック情報と、前記処理能力記憶手段に記憶されているコンピュータのスペック情報、および当該スペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数の対応関係と、に基づいて、前記プールされているコンピュータの中から、前記必要リソース量推定手段が推定した必要リソース量を処理させるのに必要なコンピュータを決定する構成変更手段と、
を有することを特徴とするリソース割当管理装置。
【請求項２】
請求項１に記載のリソース割当管理装置であって、
前記構成変更手段は、
前記リソース情報記憶手段に記憶されている前記プールされているコンピュータ各々のスペック情報と、前記処理能力記憶手段に記憶されているコンピュータのスペック情報、および当該スペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数の対応関係と、に基づいて、前記プールされているコンピュータ各々で前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数を算出し、前記必要リソース量推定手段が推定した必要リソース量に相当するリクエスト処理数と同数以上になるように、前記プールされているコンピュータの中から少なくとも１つのコンピュータを決定すること
を特徴とするリソース割当管理装置。
【請求項３】
請求項２に記載のリソース割当管理装置であって、
前記構成変更手段は、
前記リソース情報記憶手段に記憶されている前記プールされているコンピュータのスペック情報について、当該スペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数が、前記処理能力記憶手段に記憶されている場合、当該記憶されているリクエスト処理数を、前記プールされているコンピュータに前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数として算出すること
を特徴とするリソース割当管理装置。
【請求項４】
請求項２又は３に記載のリソース割当管理装置であって、
前記構成変更手段は、
前記リソース情報記憶手段に記憶されている前記プールされているコンピュータのスペック情報について、当該スペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数が、前記処理能力記憶手段に記憶されていない場合、前記処理能力記憶手段から、当該スペック情報に近似するスペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数を検索し、検索したリクエスト処理数を用いて、前記プールされているコンピュータに前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数を算出すること
を特徴とするリソース割当管理装置。
【請求項５】
請求項２又は３に記載のリソース割当管理装置であって、
前記複数の業務アプリケーション各々について、コンピュータのスペック情報と、当該スペック情報を持つコンピュータで当該業務アプリケーションと同じ種類のベンチマークプログラムを稼動させた場合に得られた単位時間当たりのリクエスト処理数との対応関係が記憶されたスペック換算情報記憶手段をさらに有し、
前記構成変更手段は、
前記リソース情報記憶手段に記憶されている前記プールされているコンピュータのスペック情報について、当該スペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数が、前記処理能力記憶手段に記憶されていない場合、前記スペック換算情報記憶手段から、前記リソースが不足していると特定された業務アプリケーションと同じ種類のベンチマークプログラムを稼動させた場合に得られた単位時間当たりのリクエスト処理数を検索し、検索したリクエスト処理数と、該リクエスト処理数に対応付けられているコンピュータのスペック情報とを用いて、前記プールされているコンピュータに前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数を算出すること
を特徴とするリソース割当管理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のリソース割当管理装置であって、
前記業務アプリケーションが稼動しているコンピュータ各々から、単位時間当たりのリクエスト処理数の情報を含むメトリック情報を収集するメトリック情報収集手段と、
前記複数の業務アプリケーション各々について、前記リソース情報記憶手段に記憶されている、当該業務アプリケーションが稼動しているコンピュータ各々のスペック情報と、前記メトリック情報収集手段が当該業務アプリケーションが稼動しているコンピュータ各々から収集したメトリック情報に含まれているリクエスト処理数とを対応付けて、前記処理能力記憶手段に記憶する処理能力計算手段と、をさらに有すること
を特徴とするリソース割当管理装置。
【請求項７】
請求項１乃至６のいずれか一項に記載のリソース割当管理装置であって、
前記構成変更手段は決定したコンピュータに、前記リソースが不足していると特定された業務アプリケーションを送信して、当該業務アプリケーションを稼動させる業務アプリケーション配布手段をさらに有すること
を特徴とするリソース割当管理装置。
【請求項８】
請求項１乃至７に記載のリソース管理装置と、
複数のコンピュータと、
業務アプリケーションに対するリクエストを、前記複数のコンピュータのうちの当該業務アプリケーションが稼動しているコンピュータに振り分け処理するロードバランサと、を有すること
を特徴とするリソース割当管理システム。
【請求項９】
複数の業務アプリケーションのそれぞれを複数のコンピュータのうちの少なくともいずれか一つで稼動させ、業務アプリケーションに対するリクエストを当該業務アプリケーションが稼動しているコンピュータに振り分け処理するシステムに対して、リソース割当管理装置が、プールされているコンピュータの中から業務アプリケーションを新たに稼動させるコンピュータを決定するリソース割当方法であって、
前記リソース割当管理装置の記憶装置には、
各コンピュータのスペック情報が記憶されたリソース情報管理テーブルと、
前記複数の業務アプリケーション各々について、コンピュータのスペック情報と、当該スペック情報を持つコンピュータで当該業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数との対応関係が記憶された処理能力管理テーブルと、が記憶されており、
前記リソース割当管理装置の演算装置は、
前記複数の業務アプリケーション各々について、当該業務アプリケーションが割り当てられたコンピュータ各々での単位時間当たりのリクエスト受信数およびリクエスト処理数の差分からリソースが不足している業務アプリケーションを特定し、該差分であるリクエスト数を前記リソースが不足していると特定された業務アプリケーションに対する必要リソース量として算出するステップと、
前記リソース情報管理テーブルに記憶されている前記プールされているコンピュータ各々のスペック情報と、前記処理能力管理テーブルに記憶されているコンピュータのスペック情報、および当該スペック情報を持つコンピュータで前記リソースが不足していると特定された業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数の対応関係と、に基づいて、前記プールされているコンピュータの中から、前記推定した必要リソース量を処理させるのに必要なコンピュータを決定するステップと、を行うこと
を特徴とするリソース割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータの中から所望の業務アプリケーションに割り当てるコンピュータを決定する技術に関する。
【０００２】
近年、インターネットを利用して、所定のアプリケーションを利用することが広く行われるようになって来た。中でも業務用アプリケーションは、旧来は操作端末数が固定のシステムで利用されるに過ぎなかったが、インターネットを利用するため、操作端末数やリクエスト数の見積もりが難しい。
このため、リクエスト数などに応じて、業務用アプリケーションを稼働させるコンピュータの数を増やして負荷を分散させ、リクエストに対する応答性や稼動の安定性を向上させる技術が求められている。
例えば、業務用アプリケーションとそれを稼働させるコンピュータの関係を固定せず、種々のアプリケーションに割り当てることができるコンピュータを多数、待機（プール）しておいて、所定のアプリケーションに対して、必要なときに必要な量のコンピュータ資源を割り当てて稼働させる技術が必要とされるに至った。
【背景技術】
【０００３】
特許文献１には、リアルタイムアプリケーションシステムに対して特定のリソースを予約するための技術が開示されている。該技術では、サービスレベルと、プロセッサ、メモリおよびディスク帯域各々のリソース量との対応をデータベースに蓄積しておく。そして、要求されるサービスレベルに対応付けられているリソース量からアプリケーションに割り当てるリソース量を決定し予約する。該技術によれば、特に複雑なパラメータの指定を行うことなく、容易にリソースの予約が行え、リソース量の予約によるリソース量浪費を防止することができる。
【０００４】
【特許文献１】特開２００１-３３１３３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、データセンタでは、複数の業務アプリケーション（例えばＷｅｂサービスプログラム）のそれぞれを複数のコンピュータのうちの少なくともいずれか一つで稼動させ、業務アプリケーションに対するリクエストを当該業務アプリケーションが稼動しているコンピュータに振り分け処理するシステムが構築されている。このようなシステムでは、業務アプリケーションが割り当てられていないコンピュータをプールしておき、処理数の多い業務アプリケーションにプールしておいたコンピュータを割り当てて、割り当てたコンピュータで当該業務アプリケーションを稼動させることにより、当該処理数の多い業務アプリケーションに対するリソース（コンピュータ）量を増やす。このようにすることで、当該処理数の多い業務アプリケーションのサービスレベルの低下を防止している。ここで、サービスレベルとは、サービス提供者からサービス利用者に対して提供されるサービスのレベルのことであり、例えばサービス利用者の端末がリクエストを送信してから、該リクエストに対する結果を該サービス利用者の端末に応答するまでの時間で表される。上記特許文献１に記載の技術は、上記のシステムにおいて、各業務アプリケーションへのリソース（コンピュータ）の割り当てに適用することも可能である。しかし、上記特許文献１に記載の技術は次の点を考慮していない。
【０００６】
（１）あるスペックのコンピュータで許容できるリクエスト数は、業務アプリケーションによって異なる。
【０００７】
（２）プールされているコンピュータが全て同じスペックであるとは限らない。
【０００８】
（３）業務アプリケーションにとって未知のスペックを持つコンピュータを割り当てなければならない場合がある。
【０００９】
このため、複数の業務アプリケーションのそれぞれを複数のコンピュータのうちの少なくともいずれか一つで稼動させ、業務アプリケーションに対するリクエストを当該業務アプリケーションが稼動しているコンピュータに振り分け処理するシステムにおいて、各業務アプリケーションへのリソース（コンピュータ）の割り当てに上記特許文献１に記載の技術を適用した場合、効率のよい（リソースが不足したり、あるいは、リソースが過剰に割当てられることのない）リソースの割り当てが困難である。
【００１０】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、業務アプリケーションに対するリクエストを当該業務アプリケーションが稼動しているコンピュータに振り分け処理するシステムにおいて、各業務アプリケーションのサービスレベルの低下を防止できるように、各業務アプリケーションに割り当てるコンピュータを管理することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明では、プールしているコンピュータ各々のスペックを管理する。また、業務アプリケーション毎に、コンピュータのスペックと、当該スペックを持つコンピュータで当該業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数との対応関係を管理する。そして、業務アプリケーション毎に、当該業務アプリケーションが割り当てられたコンピュータ各々での単位時間当たりのリクエスト受信数およびリクエスト処理数を監視して、リクエストに対して処理が追いつかない（リソースが不足している）業務アプリケーションを特定する。それから、当該業務アプリケーションに対する単位時間当たりのリクエスト数およびリクエスト処理数の差分と、プールしているコンピュータ各々のスペックと、コンピュータのスペックおよび当該スペックを持つコンピュータで当該業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数の対応関係とに基づいて、プールしているコンピュータの中から、前記特定した業務アプリケーションに追加で割り当てるコンピュータを決定する。
【００１２】
例えば、本発明は、複数の業務アプリケーションのそれぞれを複数のコンピュータのうちの少なくともいずれか一つで稼動させ、業務アプリケーションに対するリクエストを当該業務アプリケーションが稼動しているコンピュータに振り分け処理するシステムに対して、プールされているコンピュータの中から業務アプリケーションを新たに稼動させるコンピュータを決定するリソース割当管理装置であって、
前記プールされているコンピュータ各々のスペック情報が記憶されたスペック情報記憶手段と、
前記複数の業務アプリケーション各々について、コンピュータのスペック情報と、当該スペック情報を持つコンピュータで当該業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数との対応関係が記憶された処理能力記憶手段と、  前記複数の業務アプリケーション各々について、当該業務アプリケーションが割り当てられたコンピュータ各々での単位時間当たりのリクエスト受信数およびリクエスト処理数の差分からリソースが不足している業務アプリケーションを特定し、該差分であるリクエスト数を前記特定した業務アプリケーションに対する必要リソース量として算出する必要リソース量推定手段と、
前記スペック情報記憶手段に記憶されている前記プールされているコンピュータ各々のスペック情報と、前記処理能力記憶手段に記憶されているコンピュータのスペック情報および当該スペック情報を持つコンピュータで当該業務アプリケーションを稼動させた場合に期待できる単位時間当たりのリクエスト処理数の対応関係とに基づいて、前記プールされているコンピュータの中から、前記必要リソース量推定手段が推定した必要リソース量を処理させるのに必要なコンピュータを決定する構成変更手段と、を有する。
【発明の効果】
【００１３】
本発明によれば、各業務アプリケーションのサービスレベルの低下を防止できるように、各業務アプリケーションに割り当てるコンピュータを管理することができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明の実施の形態を説明する。
【００１５】
図１は本発明の一実施形態が適用されたリソース割当管理システムの概略図である。
【００１６】
図示するように、本実施形態のリソース割当管理システムは、リソース割当管理装置１と、複数のロードバランサ２１〜２ｎ（以下、単にロードバランサ２とも称する）と、複数のサーバ計算機３１〜３ｍと（以下、単にサーバ計算機３とも称する）と、インターネット７に接続されたルータ４と、を有する。
【００１７】
リソース割当管理装置１、ロードバランサ２、サーバ計算機３およびルータ４は、業務用ネットワーク５および管理用ネットワーク６のそれぞれを介して互いに接続されている。業務用ネットワーク５は、サーバ計算機３が業務アプリケーションによるサービスをインターネット７に接続されたクライアント端末（不図示）に提供するために使用されるネットワークである。また、管理用ネットワーク６は、リソース割当管理装置１がロードバランサ２、サーバ計算機３およびルータ４の保守・管理に用いるためのネットワークである。業務用ネットワーク５および管理用ネットワーク６は、別々のケーブルを用いて物理的に異ならせて構築してもよいし、あるいは、同じケーブル上に論理的に異ならせて構築してもよい。
【００１８】
ルータ４は、ロードバランサ２毎に、グローバルＩＰアドレスとローカルＩＰアドレスとの対応関係が記憶されたルーティングＴＬ（テーブル）４１を有する。ルータ４１は、インターネットを介してクライアント端末（不図示）から受信したリクエストを、ルーティングＴＬに従い、該リクエストの宛先として指定されているグローバルＩＰアドレスに対応するローカルＩＰアドレスを持つロードバランサ２に送信する。また、ロードバランサ２から受信した該リクエストの処理結果を、インターネット７を介して当該リクエストの送信元であるクライアント端末（不図示）に送信する。ルータ４の他の機能は、既存のルータと同様であるので、その詳細な説明を省略する。
【００１９】
ロードバランサ２は、業務用ネットワーク５を介して少なくとも１つのサーバ計算機３と業務アプリケーションの負荷分散（水平スケーリング）システムを形成する。ロードバランサ２は、自身が利用可能なサーバ計算機３の情報が登録されたリソース管理ＴＬ２１を有する。そして、ルータ４から送られてきたリクエストを、業務用ネットワーク５を介して、リソース管理ＴＬ２１に登録されているサーバ計算機３のうち負荷状態が低いサーバ計算機３に送信し、当該サーバ計算機３に当該リクエストを処理させる。また、業務用ネットワーク５を介して、リソース管理ＴＬ２１に登録されているサーバ計算機３からリクエストの処理結果を受信し、この処理結果をルータ４を介して該リクエストの送信元に返信する。また、ロードバランサ２は、管理用ネットワーク６を介してリソース割当管理装置１から受信した指示に従い、リソース管理ＴＬ２１を更新する。ロードバランサ２のその他の機能は、既存の負荷分散システムで用いられているロードバランサと同様であるので、その詳細な説明を省略する。
【００２０】
サーバ計算機３は、実行中のモジュールＰＧ（プログラム）に従って、業務用ネットワーク５を介して受信したリクエストを処理し、自サーバ計算機３と共に負荷分散システムを形成するロードバランサ２あるいは他のサーバ計算機３にその結果を送信する。また、サーバ計算機３は、管理用ネットワーク６を介してリソース割当管理装置１より受信した指示に従い、指定されたモジュールＰＧを起動（停止）する。業務アプリケーションは少なくとも１つのモジュールＰＧからなる。
【００２１】
図示するように、サーバ計算機３は、業務用ネットワーク５および管理用ネットワーク６に接続するためのネットワークＩＦ（インターフェース）部３１と、メトリック情報計測部３２と、インストーラ３３と、モジュール実行部３４と、を有する。
【００２２】
メトリック情報計測部３２は、自サーバ計算機３のメトリック情報を計測し、管理用ネットワーク６を介してリソース割当管理装置１に送信する。本実施形態では、メトリック情報として、単位時間当たりに業務用ネットワーク５から受信するリクエストの数（リクエスト受信数）と、単位時間当たりに業務用ネットワーク５へ出力するリクエストの数（リクエスト処理数）と、ＣＰＵ利用率とを計測する。そして、計測したメトリック情報を、自サーバ計算機３の識別情報（例えばローカルアドレス）である計算機ＩＤと共に、管理用ネットワーク６を介してリソース割当管理装置１に送信する。
【００２３】
インストーラ３３は、管理用ネットワーク６を介してリソース割当管理装置１より受信した指示に従い、モジュール実行部３４に、リソース割当管理装置１より指定されたモジュールＰＧを実行させる。
【００２４】
そして、モジュール実行部３４は、インストーラ３３の指示に従ってモジュールＰＧを実行する。これにより、モジュール実行部３４は、実行中の業務アプリケーションに従い、業務用ネットワーク５を介して受信したリクエストを処理し、その結果を、業務用ネットワーク６を介して、自サーバ計算機３と共に負荷分散システムを形成するロードバランサ２あるいは他のサーバ計算機３に送信する。
【００２５】
サーバ計算機３のその他の機能は、既存の負荷分散システムで用いられているサーバ計算機と同様であるので、その詳細な説明を省略する。
【００２６】
リソース割当管理装置１は、業務アプリケーション毎に、当該業務アプリケーションを構成するモジュールＰＧを実行している各サーバ計算機３のメトリック情報を監視して、リクエストに対して処理が追いつかない（リソースが不足している）業務アプリケーションの有無を検出する。リソースが不足している業務アプリケーションが検出されたならば、該業務アプリケーションに、プールしている（モジュールＰＧを実行させていない）いずれかのサーバ計算機３を追加で割り当てて、該サーバ計算機３に該業務アプリケーションを構成するモジュールＰＧを実行させる。
【００２７】
図示するように、リソース割当管理装置１は、業務用ネットワーク５および管理用ネットワーク６に接続するためのネットワークＩＦ部１１と、演算部１２と、記憶部１３と、を有する。
【００２８】
記憶部１３は、業務アプリ構成管理ＴＬ１３１と、リソース管理ＴＬ１３２と、メトリック情報管理ＴＬ１３３と、処理能力管理ＴＬ１３４と、モジュール記憶部１３５と、ロードバランサ管理ＴＬ１３６と、を有する。
【００２９】
業務アプリ構成管理ＴＬ１３１には、各業務アプリケーションを構成するモジュールの情報が記憶される。図２は業務アプリ構成管理ＴＬ１３１を模式的に示す図である。図示するように、業務アプリ構成管理ＴＬ１３１には、モジュールＰＧ毎にレコード１３１０が登録される。レコード１３１０は、対象のモジュールＰＧを構成要素とする業務アプリケーションの識別情報である業務ＩＤを登録するフィールド１３１１と、当該業務アプリケーションが提供するサービスの種別を示すサービス種別を登録するフィールド１３１２と、当該モジュールＰＧが提供する機能を登録するフィールド１３１３と、当該モジュールＰＧの識別情報であるモジュールＩＤを登録するフィールド１３１４と、当該モジュールＰＧを複数のサーバ計算機３で並列に実行させること、つまり多重化が可能か否かを登録するフィールド１３１５と、を有する。
【００３０】
リソース管理ＴＬ１３２には、サーバ計算機（リソース）３毎に、スペックおよび実行中のモジュールＰＧの情報が記憶される。図３はリソース管理ＴＬ１３２を模式的に表した図である。図示するように、リソース管理ＴＬ１３２には、サーバ計算機３毎にレコード１３２０が登録される。レコード１３２０は、対象のサーバ計算機３の識別情報である計算機ＩＤを登録するフィールド１３２１と、当該サーバ計算機３のスペック情報を登録するフィールド１３２２と、当該サーバ計算機３に割当てられた業務アプリケーションの業務ＩＤを登録するフィールド１３２４と、当該サーバ計算機３で稼動中のモジュールＰＧのモジュールＩＤを登録するフィールド１３２５と、を有する。本実施形態では、スペック情報として、ＣＰＵの名称、周波数およびメモリ搭載量を用いている。このため、フィールド１３２２には、ＣＰＵ名称を登録するサブフィールド１３２２１、ＣＰＵ周波数を登録するサブフィールド１３２２２、およびメモリ搭載量を登録するサブフィールド１３２２３が設けられている。プールされているサーバ計算機３のレコード１３２０では、フィールド１３２４、１３２５に、モジュールＰＧが未だ割り当てられていないことを示す「未割当」が登録される。
【００３１】
メトリック情報管理ＴＬ１３３には、モジュールＰＧを実行している各サーバ計算機３から受信したメトリック情報が記憶される。図４はメトリック情報管理ＴＬ１３３を模式的に表した図である。図示するように、メトリック情報管理ＴＬ１３３には、サーバ計算機３毎にレコード１３３０が登録される。レコード１３３０は、対象のサーバ計算機３の計算機ＩＤを登録するフィールド１３３１と、当該サーバ計算機３に割当てられた業務アプリケーションの業務ＩＤを登録するフィールド１３３２と、当該サーバ計算機３で稼動中のモジュールＰＧのモジュールＩＤを登録するフィールド１３３３と、当該サーバ計算機３で計測されたメトリック情報を登録するフィールド１３３４と、本レコード１３３０の登録日時を登録するフィールド１３３５と、を有する。本実施形態では、メトリック情報として、単位時間当たりに業務用ネットワーク５から受信するリクエストの数（リクエスト受信数）と、単位時間当たりに業務用ネットワーク５へ出力するリクエストの数（リクエスト処理数）と、ＣＰＵ利用率とを計測する。このため、フィールド１３３４には、リクエスト受信数（件/分）を登録するサブフィールド１３３４１、リクエスト処理数（件/分）を登録するサブフィールド１３３４２、およびＣＰＵ利用率（％）を登録するサブフィールド１３３４３が設けられている。
【００３２】
処理能力管理ＴＬ１３４は、モジュールＰＧ各々について、サーバ計算機３のスペック毎に、当該スペックを持つサーバ計算機３で当該モジュールＰＧを稼動させた場合における当該モジュールＰＧに対する処理能力が記憶される。図５は処理能力管理ＴＬ１３４を模式的に表した図である。図示するように、処理能力管理ＴＬ１３４には、モジュールＰＧおよびサーバ計算機３のスペックの組合せ毎にレコード１３４０が登録される。レコード１３４０は、対象のモジュールＰＧを構成要素とする業務アプリケーションの業務ＩＤを登録するフィールド１３４１と、当該モジュールＰＧのモジュールＩＤを登録するフィールド１３４２と、スペック情報を登録するフィールド１３４３と、処理能力を登録するフィールド１３４４と、を有する。本実施形態では、スペック情報として、ＣＰＵの名称、周波数およびメモリ搭載量を用いている。このため、フィールド１３４３には、ＣＰＵ名称を登録するサブフィールド１３４３１、ＣＰＵ周波数を登録するサブフィールド１３４３２、およびメモリ搭載量を登録するサブフィールド１３４３３が設けられている。また、本実施形態では、処理能力として、フィールド１３４３に登録されているスペック情報を持つサーバ計算機３で当該モジュールＰＧを稼動させた場合に計測されたリクエスト処理数（メトリック情報のうちの一つ）を用いている。
【００３３】
モジュール記憶部１３５には、各モジュールＰＧが、モジュールＩＤおよび当該モジュールＰＧを構成要素とする業務アプリケーションの業務ＩＤに対応付けられて登録されている。
【００３４】
そして、ロードバランサ管理ＴＬ１３６には、業務ＩＤ毎に、当該業務ＩＤを持つ業務アプリケーションを処理するロードバランサ２の識別情報（例えばローカルアドレス）であるロードバランサＩＤが対応付けられて記憶されてる。
【００３５】
演算部１２は、メトリック情報収集部１２１と、処理能力計算部１２２と、必要リソース量推定部１２３と、構成変更指示部１２４と、モジュール配布・設定部１２５と、を有する。
【００３６】
メトリック情報収集部１２１は、モジュールＰＧを実行中の各サーバ計算機３からメトリック情報を、管理用ネットワーク６を介して受信し、受信したメトリック情報に基づいてメトリック情報管理ＴＬ１３３を更新する。具体的には、サーバ計算機３からメトリック情報を受信すると、当該サーバ計算機３の計算機ＩＤを持つレコード１３２０をリソース管理ＴＬ１３２１から検索する。次に、メトリック情報管理ＴＬ１３３に新たなレコード１３３０を追加し、該レコード１３３０に、当該サーバ計算機３の計算機ＩＤと、リソース管理ＴＬ１３２１から検索したレコード１３２０に登録されている業務ＩＤおよびモジュールＩＤと、当該サーバ計算機３から受信したメトリック情報とを、登録日時と共に登録する。
【００３７】
処理能力計算部１２２は、メトリック情報管理ＴＬ１３３を用いて、モジュールＰＧ各々について、サーバ計算機３のスペック毎に、当該スペックを持つサーバ計算機３で当該モジュールＰＧを稼動させた場合における当該モジュールＰＧに対する処理能力を計算する。そして、計算結果を用いて処理能力管理ＴＬ１３４を更新する。
【００３８】
必要リソース量推定部１２３は、モジュールＰＧ毎に、メトリック情報管理ＴＬ１３３を用いて、当該モジュールＰＧを稼動するために不足しているリソース量を推定する。本実施形態では、不足しているリソース量を追加で処理したいリクエスト数で表している。
【００３９】
構成変更指示部１２４は、必要リソース量推定部１２３により不足しているリソース量が推定されたモジュールＰＧに対して、当該モジュールＰＧに追加で割り当てるサーバ計算機３を、プールされているサーバ計算機３の中から選出する。
【００４０】
そして、モジュール配布・設定部１２５は、必要リソース量推定部１２３により不足しているリソース量が推定されたモジュールＰＧを、モジュール記憶部１３５から読出す。そして、読み出したモジュールＰＧを、管理用ネットワーク６を介して、構成変更指示部１２４が当該モジュールＰＧに対して選定したサーバ計算機３各々に送信し、当該モジュールＰＧを実行させる。また、管理用ネットワーク６を介してロードバランサ２にアクセスし、リソース管理ＴＬ２１に登録されている当該モジュールＰＧを実行するサーバ計算機３の情報を更新する。
【００４１】
上記構成のリソース割当管理装置１は、例えば図６に示すような、ＣＰＵ９０１と、メモリ９０２と、ＨＤＤ等の外部記憶装置９０３と、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭやＩＣカードなどの記憶媒体からデータを読み取る読取装置９０４と、キーボードやマウスなどの入力装置９０６と、モニタやプリンタなどの出力装置９０７と、管理用ネットワーク６に接続するための通信装置９０８と、これらの各装置を接続するバス９０９と、を備えた一般的なコンピュータにおいて、ＣＰＵ９０１がメモリ９０２上にロードされたプログラムを実行することで実現できる。このプログラムは、読取装置９０４を介して記憶媒体から、あるいは、通信装置９０８を介して管理用ネットワーク６から、外部記憶装置９０３に伝送され、それから、メモリ９０２上にロードされてＣＰＵ９０１により実行されるようにしてもよい。あるいは外部記憶装置９０３を経由せずに、メモリ９０２上に直接ロードされ、ＣＰＵ９０１により実行されるようにしてもよい。なお、この場合において、記憶部１３にはメモリ９０２や外部記憶装置９０３や読取装置９０４に搭載された記憶媒体が利用される。また、ネットワークＩＦ部１１には通信装置９０８が利用される。
【００４２】
本発明に係る図１の構成を管理用と業務用の各々に分けて表した機能ブロック図を図１５に示し、説明を加える。
リソース割当管理装置１において、メトリック情報収集部１２１は、ロードバランサ２１、コンピュータ群であるサーバ計算機３１〜３ｍなど、業務アプリケーションを稼働させている機器から、リクエスト受信数、リクエスト処理数、ＣＰＵ利用率などのメトリック情報を収集・計測して、メトリック情報管理ＴＬ（テーブル）１３３に記録する。
【００４３】
処理能力計算部１２２は、メトリック情報管理ＴＬ１３３に記録された各種メトリック情報と、業務アプリ構成管理ＴＬ１３１に記録された対象業務アプリケーションの識別子などのデータと、リソース管理ＴＬ１３２に記録されたコンピュータのスペック情報から、その業務アプリケーションをそのスペックのコンピュータで稼働させたときに達成できる処理能力を計算し、処理能力管理ＴＬ１３４に記録する。このとき、処理能力管理ＴＬ１３４には、ある業務アプリケーションを所定のスペックのコンピュータで稼働させたとき、これくらいの処理能力が安定的に達成できる、という形で記録する。
【００４４】
もし、あるメトリックが想定値を超過しており、安定稼働が期待できない状態で業務アプリケーションが稼働しているとの情報を収集すると、その業務アプリケーションを稼働させるコンピュータ資源を追加する（ＯＳがインストールされ稼動しているサーバ計算機を増設し、業務アプリケーションをインストールして稼動させる）ことで、一台のコンピュータ当たりの負荷を減らすように制御する。
必要リソース量推定部１２３は、システムに追加すべき必要リソース量を決定する。必要リソース量は、単に、単位時間当たりのリクエスト受信数とリクエスト処理数との差分であってもよい。また、単位時間当たりのリクエスト受信数と処理能力管理ＴＬに記録されている処理可能リクエスト数（安定的に稼働できる適正リクエスト処理数）との差分でもよい。
【００４５】
リソース管理ＴＬ１３２には、プールしているコンピュータの識別子とスペック情報が記録されている。構成変更指示部１２４は、リソース管理ＴＬ１３２に記録された情報と、処理能力管理ＴＬ１３４に記憶されているコンピュータのスペック情報、及び、それらのスペックを有するコンピュータで所定の業務アプリケーションを稼動させた場合に期待できる処理能力に基づいて、プールしているコンピュータの中から、必要リソース量推定部１２３が決定した所定の必要リソース量に応じた計算機資源を、システムに追加することを指示する。
【００４６】
モジュール配付・設定部１２５は、業務アプリケーションをモジュール記憶部１３５から取得して、構成変更指示部１２４が指示した、追加すべきコンピュータに対してインストールし、ロードバランサの設定を指示する。
【００４７】
次に、上記構成のリソース割当管理装置１の動作を説明する。
【００４８】
図７はリソース割当管理装置１の動作フローを説明するための図である。なお、このフローには示さないが、上述したように、メトリック情報収集部１２１は、管理用ネットワーク６を介して各サーバ計算機３からメトリック情報を受信して、メトリック情報管理ＴＬ１３３をこのメトリック情報で更新する処理を常に行っている。
【００４９】
さて、図７において、演算部１２は、図示していない内蔵タイマを用いて、所定時間の経過や所定時刻の到来などのリソース割当判定タイミングを検出すると、あるいは、図示していない入力装置を介してユーザよりリソース割当判定指示を受け付けると（Ｓ１０でＹＥＳ）、業務アプリ構成管理ＴＬ１３１から、フィールド１３１５に多重化「可」が登録されているレコード１３１０であって未注目のレコード１３１０を特定し、このレコード１３１０を注目レコードとする（Ｓ１１）。そして、注目レコードを処理能力計算部１２２に通知する。
【００５０】
処理能力計算部１２２は、注目レコードを受け取ると、この注目レコードに登録されているモジュールＩＤを持つモジュールＰＧについて、メトリック情報管理ＴＬ１３３を用いて、サーバ計算機３のスペック毎に当該モジュールＰＧに対する処理能力を計算し、その計算結果を用いて処理能力管理ＴＬ１３４を更新する（Ｓ１２）。
【００５１】
図８は図７のＳ１２（処理能力計算処理）の動作フローを説明する図である。
【００５２】
まず、処理能力計算部１２２は、注目レコード１３１０の業務ＩＤ、モジュールＩＤを持つレコード１３３０を、メトリック情報管理ＴＬ１３３から検出する（Ｓ１２１）。次に、処理能力計算部１２２は、検索したレコード１３３０のサブフィールド１３３４３に登録されているＣＰＵ利用率を用いて、検索したレコード１３３０をフィルタリングする（Ｓ１２２）。ＣＰＵ利用率が低い場合、サーバ計算機３は、メトリック情報に登録されているリクエスト処理数よりも多いリクエストを処理できる可能性が高い。一方、ＣＰＵ利用率が高い場合、サーバ計算機３はリクエストに対して処理が追いついていない可能性が高い。したがって、これらの場合、リクエスト処理数はサーバ計算機３の実力を表していないと考えられる。そこで、本実施形態では、ＣＰＵ利用率が６０〜８０％以外のレコード１３３０を、処理能力計算の対象から外すようにフィルタリングしている。
【００５３】
なお、フィルタリングの結果、同じ計算機ＩＤ、業務ＩＤおよびモジュールＩＤを持つレコード１３３０が複数残った場合、登録日時が最も新しいレコード１３３０のみを残し、それ以外のレコード１３３０を処理能力計算の対象から外すように、さらにフィルタリングしている。
【００５４】
また、同じ計算機ＩＤ、業務ＩＤおよびモジュールＩＤを持つレコード１３３０について、ＣＰＵ利用率が全て６０〜８０％以外であり、このため全てのレコード１３３０がフィルタリングされて残らなかった場合、上記の計算機ＩＤ、業務ＩＤおよびモジュールＩＤを持つレコード１３３０において、ＣＰＵ利用率が６０〜８０％である場合にフィールド１３４４に登録されるべき処理能力を推定する。例えば、ＣＰＵ利用率が６０〜８０％に最も近いレコード１３３０を特定し、該レコード１３３０のＣＰＵ利用率とリクエスト処理数との比率から、ＣＰＵ利用率を６０〜８０％（例えば７０％）としたときのリクエスト処理数を計算する。そして、該レコード１３３０のＣＰＵ利用率を６０〜８０％（例えば７０％）に変更すると共に、リクエスト処理数を上記の計算値に変更したレコード１３３０を生成し、このレコード１３３０をフィルタリングされて残ったレコード１３３０のリストに追加する。
【００５５】
次に、処理能力計算部１２２は、Ｓ１２２でのフィルタリングで残ったレコード１３３０各々について、当該レコード１３３０と同じ計算機ＩＤ、業務ＩＤ、モジュールＩＤを持つレコード１３２０をリソース管理ＴＬ１３２から検索し、検索したレコード１３２０のフィールド１３２２に登録されているスペック情報を、当該レコード１３３０に対応付ける（Ｓ１２３）。それから、処理能力計算部１２２は、Ｓ１２２でのフィルタリングで残ったレコード１３３０各々を、対応付けられているスペック情報（ＣＰＵ名、ＣＰＵ周波数およびメモリ容量の組合せ）毎に分類する。そして、スペック情報毎に、当該スペック情報が対応付けられているレコード１３３０のリクエスト処理数の平均値を求める（Ｓ１２４）。
【００５６】
次に、処理能力計算部１２２は、Ｓ１２２でのフィルタリングで残ったレコード１３３０各々に対応付けられているスペック情報のうち、未注目のスペック情報に注目する（Ｓ１２５）。そして、注目スペック情報と、注目レコード１３１０の業務ＩＤ、モジュールＩＤとが登録されているレコード１３４０が、処理能力管理ＴＬ１３４に登録されているか否かを調べる（Ｓ１２６）。そのようなレコード１３４０がある場合（Ｓ１２６でＹＥＳ）、当該レコード１３４０のフィールド１３４４に登録されている処理能力を、Ｓ１１４で算出したリクエスト処理数の平均値に更新する（Ｓ１２７）。一方、そのようなレコード１３４０がない場合（Ｓ１２６でＮＯ）、処理能力管理ＴＬ１３４に新たなレコード１３４０を追加し、該レコード１３４０に、注目スペック情報と、注目レコード１３１０の業務ＩＤおよびモジュールＩＤと、Ｓ１２４で算出したリクエスト処理数の平均値とを登録する（Ｓ１２８）。
【００５７】
さて、処理能力計算部１２２は、Ｓ１２２でのフィルタリングで残ったレコード１３３０に対応付けられている全てのスペック情報に注目したならば（Ｓ１２９でＹＥＳ）、注目レコード１３１０を必要リソース量推定部１２３に通知して、処理を終了する。そうでないならば（Ｓ１２９でＮＯ）、Ｓ１２５に戻る。
【００５８】
図７に戻って説明を続ける。必要リソース量推定部１２３は注目レコード１３１０を受信すると、この注目レコード１３１０に登録されているモジュールＩＤを持つモジュールＰＧに対するリソース（サーバ計算機３）が不足しているか否かを判断する（Ｓ１３）。
【００５９】
具体的には、注目レコード１３１０の業務ＩＤ、モジュールＩＤを持つレコード１３３０を、メトリック情報管理ＴＬ１３３から検索する。次に、検索したレコード１３３０を計算機ＩＤ毎に分類して、計算機ＩＤ毎に最新のレコード１３３０を選択する。そして、選択した計算機ＩＤ毎の各レコード１３３０のサブフィールド１３３４３に登録されているＣＰＵ利用率の平均値を算出し、該平均値が所定のしきい値（例えば８０％）を超えているか否かを調べることにより、当該モジュールＩＤを持つモジュールＰＧに対するリソースが不足しているか否かを判断する。リソースが不足している場合（Ｓ１３でＹＥＳ）はＳ１４に進む。一方、不足していない場合はＳ１７に進む。
【００６０】
Ｓ１４において、必要リソース量推定部１２３は、注目レコード１３１０を受信すると、この注目レコード１３１０に登録されているモジュールＩＤを持つモジュールＰＧについて、メトリック情報管理ＴＬ１３３を用いて、当該モジュールＰＧに対して不足しているリソース量を推定する。
【００６１】
図９は図７のＳ１４（必要リソース量推定処理）の動作フローを説明する図である。
【００６２】
まず、必要リソース量推定部１２３は、注目レコード１３１０の業務ＩＤ、モジュールＩＤを持つレコード１３３０を、メトリック情報管理ＴＬ１３３から検出する（Ｓ１４１）。次に、必要リソース量推定部１２３は、検索したレコード１３３０を計算機ＩＤ毎に分類して、計算機ＩＤ毎に最新のレコード１３３０を選択する（Ｓ１４２）。次に、必要リソース量推定部１２３は、計算機ＩＤ毎に１つ選択された最新のレコード１３３０のサブフィールド１３３４１に登録されているリクエスト受信数の総数を計算する（Ｓ１４３）。同様に、計算機ＩＤ毎に１つ選択された最新のレコード１３３０のサブフィールド１３３４２に登録されているリクエスト処理数の総数を計算する（Ｓ１４４）。それから、必要リソース量推定部１２３は、Ｓ１４３で計算したリクエスト受信数の総数からＳ１４４で計算したリクエスト処理数の総数を減算した値を、不足しているリソース量として算出する（Ｓ１４５）。それから、必要リソース量推定部１２３は、注目レコード１３１０と、不足しているリソース量の計算値とを、構成変更指示部１２４に通知する。
【００６３】
図７に戻って説明を続ける。構成変更指示部１２４は、必要リソース量推定部１２３から注目レコード１３１０および不足しているリソース量の計算値を受け取ると、リソース管理ＴＬ１３２および処理能力管理ＴＬ１３４を参照し、プールされているサーバ計算機３の中から、当該注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに追加で割り当てるサーバ計算機３を選出する（Ｓ１５）。
【００６４】
図１０、図１１は図７のＳ１５（構成変更処理）の動作フローを説明する図である。
【００６５】
先ず、構成変更指示部１２４は、処理能力が既知のサーバ計算機３の中から注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに追加で割当てるサーバ計算機３を選出する（Ｓ１５１〜Ｓ１６１）。
【００６６】
構成変更指示部１２４は、注目レコード１３１０に登録されている業務ＩＤおよびモジュールＩＤを持つレコード１３４０を処理能力管理ＴＬ１３４から抽出し、処理能力の大きい順にソートする（Ｓ１５１）。
【００６７】
次に、構成変更指示部１２４は、変数Ｓを必要リソース量推定処理Ｓ１４で推定した不足しているリソース量に設定する（Ｓ１５２）。また、カウント値ｎを１に設定する（Ｓ１５３）。
【００６８】
それから、構成変更指示部１２４は、Ｓ１５１でソートされたレコード１３４０のリストからｎ番目のレコード１３４０のスペック情報と同じスペック情報を持つレコード１３２０であって、業務ＩＤおよびモジュールＩＤが共に「未割当」に設定されているレコード１３２０をリソース管理ＴＬ１３２から検索する（Ｓ１５４）。例えば、ｎ番目のレコード１３４０のスペック情報がＣＰＵ名「Ａ」、ＣＰＵ周波数３０００[MHz]、メモリ容量１０２４[Mbyte]の場合、図３に示すリソース管理ＴＬ１３２０から３つのレコード１３２０ａ〜１３２０ｃが検索される。
【００６９】
Ｓ１５４でレコード１３２０を検索できなかった場合（Ｓ１５５でＮＯ）、カウント値ｎを１つインクリメントし（Ｓ１５６）、それからＳ１５４に戻る。
【００７０】
一方、Ｓ１５４でレコード１３２０を検索できた場合（Ｓ１５５でＹＥＳ）、構成変更指示部１２４は、当該検索により抽出したレコード１３２０の中から、追加割当用レコードとして未設定のレコード１３２０を選択し、これを追加割当用レコードに設定する。そして、リソース管理ＴＬ１３２に登録されている追加割当用レコードの「未割当」となっている業務ＩＤおよびモジュールＩＤを、注目レコード１３１０と同じ業務ＩＤおよびモジュールＩＤに変更する（Ｓ１５７）。また、このレコード１３２０に追加割当レコードであることを示すフラグを付しておく。それから、構成変更指示部１２４は、変数Ｓを、該変数Ｓからｎ番目のレコード１３４０の処理能力を差し引いた値に変更する（Ｓ１５８）。
【００７１】
次に、構成変更指示部１２４は、変数Ｓが所定の閾値（例えば"０"）以上であるか否かを判断する（Ｓ１５９）。変数Ｓが所定の閾値以上でない場合（Ｓ１５９でＮＯ）、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して、リソース不足を解消できる程度にリソース（サーバ計算機３）を追加で割り当てることができたものと判断し、このフローを終了する。一方、変数Ｓが所定の閾値以上である場合（Ｓ１５９でＹＥＳ）、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して、未だリソース不足を解消できる程度にリソース（サーバ計算機３）を追加で割り当てることができていないと判断し、Ｓ１６０に移行する。
【００７２】
Ｓ１６０において、構成変更指示部１２４は、Ｓ１５４の検索により抽出したレコード１３２０であって、追加割当用レコードに設定されていないレコード１３２０があるか否かを調べ、あるならばＳ１５７に戻る。一方、ないならば、ｎ番目のレコード１３４０がＳ１５１でソートされたレコード１３４０のリストの最後のレコード１３４０であるか否かをさらに調べる（Ｓ１６１）。最後のレコード１３４０でない場合は、ｎを１つインクリメントし（Ｓ１５６）、それからＳ１５４に戻る。
【００７３】
一方、Ｓ１６１において最後のレコード１３４０であると判断された場合、リソース管理ＴＬ１３２に登録されている業務ＩＤおよびモジュールＩＤが共に「未割当」のレコード１３２０は、Ｓ１５４の検索により抽出したいずれのレコード１３２０ともスペック情報が異なることになる。そこで、構成変更指示部１２４は、処理能力が未知のサーバ計算機３の中から、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに追加で割当てるサーバ計算機３を選出する（Ｓ１６２〜Ｓ１７２）。
【００７４】
先ず、構成変更指示部１２４は、カウント値ｍをスペック情報の項目数-１に設定する（Ｓ１６２）。図３、図５に示す例では、スペック情報の項目数は、ＣＰＵ名、ＣＰＵ周波数、メモリ容量の３つであるので、ｍ＝２となる。
【００７５】
次に、構成変更指示部１２４は、Ｓ１５１でソートされたレコード１３４０のリストから、スペック情報の各項目に予め付与された優先順位の高いものから順にｍ個のスペック項目を特定し、該ｍ個のスペック項目各々が、それぞれ同じ値を持つ（共通する）レコード１３４０を抽出する（Ｓ１６３）。本実施形態では、ＣＰＵ名、メモリ容量、ＣＰＵ周波数の順で優先順位を付している。したがって、ｍ＝２の場合、ＣＰＵ名、メモリ容量がそれぞれ同じ値を持つレコード１３４０が抽出される。例えば、図５において業務ＩＤ「ＡＰＰ＿０１」、モジュールＩＤ「ＷＥＢ＿０１」を持つレコード１３４０が、処理能力管理ＴＬ１３４から抽出されて、処理能力の大きい順にソートされた場合、ＣＰＵ名およびメモリ容量が「Ａ」、「１０２４[Mbyte]」で共通し、ＣＰＵ周波数が「８６６[MHz]」、「２２００[MHZ]」で異なる２つのレコード１３４０が抽出される。
【００７６】
次に、構成変更指示部１２４は、スペック情報の各項目に予め付与された優先順位の高いものから順にｍ個のスペック項目のそれぞれが、Ｓ１６３で抽出したレコード１３４０の対応するスペック項目と同じ値を持つレコード１３２０であって、業務ＩＤおよびモジュールＩＤが共に「未割当」のレコード１３２０を、リソース管理ＴＬ１３２から検索する（Ｓ１６４）。レコード１３４０を抽出できたならば（Ｓ１６５でＹＥＳ）、Ｓ１６７に進み、抽出できなかったならば（Ｓ１６５でＮＯ）、カウント値ｍを１つデクリメントし（Ｓ１６６）、それからＳ１６３に戻る。
【００７７】
Ｓ１６７において、構成変更指示部１２４は、Ｓ１６４で抽出したレコード１３２０の中から、追加割当用レコードとして未設定のレコード１３２０を選択し、これを追加割当用レコードに設定する。そして、リソース管理ＴＬ１３２に登録されている追加割当用レコードの「未割当」となっている業務ＩＤおよびモジュールＩＤを、注目レコード１３１０と同じ業務ＩＤおよびモジュールＩＤに変更する（Ｓ１６７）。また、このレコード１３２０に追加割当レコードであることを示すフラグを付しておく。
【００７８】
それから、構成変更指示部１２４は、Ｓ１６３で抽出したレコード１３４０各々のスペック情報と処理能力との対応関係を用いて、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を推定する（Ｓ１６８）。
【００７９】
具体的には、次のようにして、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を推定する。すなわち、先ず、Ｓ１６３で抽出したレコード１３４０および追加割当用レコード１３２０を、スペックの高いものから順番にソートする。例えば、ＣＰＵ名毎に予め点数を定めておく。また、ＣＰＵ周波数およびメモリ容量のそれぞれに予め係数ａ１、係数ａ２を定めておく。そして、Ｓ１６３で抽出したレコード１３４０および追加割当用レコード１３２０のそれぞれについて、ＣＰＵ名に応じた点数と、ＣＰＵ周波数に係数ａ１を乗算することで得られた点数と、メモリ容量に係数ａ２を乗算することで得られた点数とを合計し、合計値の高いものから順にソートする。
【００８０】
次に、追加割当用レコード１３２０より順位が１つ上のレコード１３４０の処理能力、および、追加割当用レコード１３２０より順位が１つ下のレコード１３４０の処理能力の少なくとも一つを用いて、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を推定する。
【００８１】
例えば、追加割当用レコード１３２０より順位が１つ上のレコード１３４０の処理能力、および、追加割当用レコード１３２０より順位が１つ下のレコード１３４０の処理能力の平均値を、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力とする。追加割当用レコード１３２０より順位が１つ上のレコード１３４０がない場合は、追加割当用レコード１３２０より順位が１つ下のレコード１３４０の処理能力を、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力とする。また、追加割当用レコード１３２０より順位が１つ下のレコード１３４０がない場合は、追加割当用レコード１３２０より順位が１つ上のレコード１３４０の処理能力を、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力とする。
【００８２】
あるいは、追加割当用レコード１３２０より順位が１つ上のレコード１３４０の上記合計値および処理能力と、追加割当用レコード１３２０より順位が１つ下のレコード１３４の上記合計値および処理能力とを用いて、上記合計値と処理能力との対応関係を示す一次関数を算出する。追加割当用レコード１３２０より順位が１つ上のレコード１３４０がない場合は、追加割当用レコード１３２０より順位が１つ下のレコード１３４の上記合計値および処理能力と、追加割当用レコード１３２０より順位が２つ下のレコード１３４の上記合計値および処理能力とを用いて、上記合計値と処理能力との対応関係を示す一次関数を算出する。また、追加割当用レコード１３２０より順位が１つ下のレコード１３４０がない場合は、追加割当用レコード１３２０より順位が１つ上のレコード１３４の上記合計値および処理能力と、追加割当用レコード１３２０より順位が２つ上のレコード１３４の上記合計値および処理能力とを用いて、上記合計値と処理能力との対応関係を示す一次関数を算出する。そして、追加割当用レコード１３３０の上記合計値を求め、これを上記一次関数に代入し、その結果を追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力とする。
【００８３】
あるいは、追加割当用レコード１３２０より順位が１つ上のレコード１３４０の処理能力、および、追加割当用レコード１３２０より順位が１つ下のレコード１３４の処理能力の少なくとも一つを用いて、単位周波数当たりの処理能力を計算し、これに追加割当用レコード１３２０のＣＰＵ周波数を乗算することで、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を算出する。
【００８４】
例えば、追加割当用レコード１３２０のスペック情報がＣＰＵ名「Ａ」、ＣＰＵ周波数１５００[MHZ]、メモリ容量１０２４［Mbyte]であり、追加割当用レコード１３２０より順位が１つ上のレコード１３４０のスペック情報がＣＰＵ名「Ａ」、ＣＰＵ周波数２２００[MHZ]、メモリ容量１０２４［Mbyte]であり、追加割当用レコード１３２０より順位が１つ上のレコード１３４０のスペック情報がＣＰＵ名「Ａ」、ＣＰＵ周波数８６６[MHZ]、メモリ容量１０２４［Mbyte]である場合、追加割当用レコード１３２０より順位が１つ上のレコード１３４０の処理能力６００［件/分]を、ＣＰＵ周波数２２００[MHZ]で割算することで、１[MHz]当たりの処理能力＝0.2727を算出する。同様に、追加割当用レコード１３２０より順位が１つ下のレコード１３４０の処理能力４００［件/分]を、ＣＰＵ周波数８６６[MHZ]で割算することで、１[MHz]当たりの処理能力＝0.4618を算出する。そして、0.2727および0.4618の平均値0.3673を、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の単位周波数（１[MHz]）当たりの処理能力とし、これに当該サーバ計算機３のＣＰＵ周波数１５００[MHZ]を乗算することで、当該サーバ計算機３の処理能力５５０[件/分]を求める。
【００８５】
さて、構成変更指示部１２４は、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を推定したならば、変数Ｓを、該変数Ｓからこの推定値を差し引いた値に変更する（Ｓ１６９）。
【００８６】
次に、構成変更指示部１２４は、変数Ｓが所定の閾値（例えば唐O煤j以上であるか否かを判断する（Ｓ１７０）。変数Ｓが所定の閾値以上でない場合（Ｓ１７０でＮＯ）、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して、リソース不足を解消できる程度にリソース（サーバ計算機３）を追加で割り当てることができたものと判断し、このフローを終了する。一方、変数Ｓが所定の閾値以上である場合（Ｓ１７０でＹＥＳ）、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して、未だリソース不足を解消できる程度にリソース（サーバ計算機３）を追加で割り当てることができていないと判断し、Ｓ１７１に移行する。
【００８７】
Ｓ１７１において、構成変更指示部１２４は、Ｓ１６４の検索により抽出したレコード１３２０であって、追加割当用レコードに設定されていないレコード１３２０があるか否かを調べ、あるならばＳ１６７に戻る。一方、ないならば、リソース管理ＴＬ１３２に業務ＩＤおよびモジュールＩＤが「未割当」のレコード１３２０が残っているか否かを調べ（Ｓ１７２）、残っているならばＳ１６３に戻り、残っていないならば、このフローを終了する。
【００８８】
図７に戻って説明を続ける。さて、モジュール配布・設定部１２５は、構成変更指示部１２４での処理が終了すると、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して新たに割り当てたサーバ計算機３（リソース）に、当該モジュールＰＧを配布すると共に、当該サーバ計算機３を利用できるようにするためにロードバランサ２の設定を変更する（Ｓ１６）。
【００８９】
図１２は図７のＳ１６（モジュール配布・設定処理）の動作フローを説明するための図である。
【００９０】
先ず、モジュール配布・設定部１２５は、リソース管理ＴＬ１３２から、構成変更処理Ｓ１５により追加割当用レコードのフラグが付されたレコード１３２０を１つ選択する（Ｓ２６１）。それから、選択したレコード１３２０の業務ＩＤおよびモジュールＩＤより特定されるモジュールＰＧを、モジュール記憶部１３５から読み出して（Ｓ２６２）、該モジュールＰＧを、管理用ネットワーク６を介して、選択したレコード１３２０の計算機ＩＤにより特定されるサーバ計算機３へ送信する（Ｓ２６３）。これにより、サーバ計算機３のインストーラ３３がリソース割当管理装置１から受信したモジュールＰＧを、自サーバ計算機３にインストールして、モジュール実行部３４に実行させる。
【００９１】
次に、モジュール配布・設定部１２５は、Ｓ２６１で選択したレコード１３２０の業務ＩＤに対応付けられてロードバランサ管理ＴＬ１３６に登録されているロードバランサＩＤを特定し（Ｓ２６４）、該ロードバランサＩＤを持つロードバランサ２に、管理用ネットワークを介してアクセスする。そして、当該ロードバランサ２のリソース管理ＴＬ２１に、Ｓ２６３でモジュールＰＧを送信したサーバ計算機３の計算機ＩＤを、当該モジュールＰＧのモジュールＩＤと共に設定する（Ｓ２６５）。それから、モジュール配布・設定部１２５は、選択したレコード１３２０に付与されている追加割当用レコードのフラグを削除する（Ｓ２６６）。
【００９２】
モジュール配布・設定部１２５は上記の処理Ｓ２６１〜Ｓ２６５を、構成変更処理Ｓ１５により追加割当用レコードのフラグが付されたレコード１３２０がリソース管理ＴＬ１３２からなくなるまで繰り返す（Ｓ２６７）。
【００９３】
図７に戻って説明を続ける。演算部１２は、業務アプリ構成管理ＴＬ１３１に登録されている、フィールド１３１５に多重化「可」が登録されている全てのレコード１３１０について注目したならば（Ｓ１７でＹＥＳ）、このフローを終了する。一方、未注目のレコード１３１０があるならば（Ｓ１７でＮＯ）、Ｓ１１に戻る。
【００９４】
以上、本発明の一実施形態について説明した。
【００９５】
本実施形態において、リソース割当管理装置１は、サーバ計算機３のスペックと、リクエストに対して処理が追いつかないモジュールＰＧを当該スペックを持つサーバ計算機３で稼動させた場合に期待できるリクエスト処理数との対応関係から、プールしているサーバ計算機３各々のスペックで当該モジュールＰＧを稼動させた場合に期待できるリクエスト処理数を推定する。そして、当該モジュールＰＧに対して、リクエスト受信数とリクエスト処理数との差分に相当するリクエスト数を不足しているリソース量として計算し、該リソース量を処理させる少なくとも１つのサーバ計算機３を、プールしているサーバ計算機３各々で期待できるリクエスト処理数に基づいて、プールしているサーバ計算機３の中から決定する。したがって、本実施形態によれば、各業務アプリケーションのサービスレベルの低下を防止できるように、各業務アプリケーションに割り当てるコンピュータを管理することができる。
【００９６】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００９７】
例えば上記の実施形態において、構成変更指示部１２４は、リソースが不足しているモジュールＰＧに対する処理能力が未知のサーバ計算機３の処理能力を、当該モジュールＰＧに対する処理能力が既知のサーバ計算機３の処理能力を用いて推定している。しかし、本発明はこれに限定されない。業務アプリケーションの種別毎に、代表的なベンチマークプログラムをサーバ計算機３で稼動させた場合の処理能力と当該サーバ計算機３のスペック情報との対応関係が登録されたスペック換算ＴＬ１３７を予め記憶部１３に記憶しておき、このスペック換算ＴＬ１３７を用いて、リソースが不足しているモジュールＰＧに対する処理能力が未知のサーバ計算機３の処理能力を推定してもよい。
【００９８】
図１３はスペック換算ＴＬ１３７を模式的に表した図である。図示するように、スペック換算管理ＴＬ１３７には、ベンチマークＰＧとサーバ計算機３のスペックとの組合せ毎に、レコード１３７０が登録される。レコード１３７０は、ベンチマークＰＧが対象とする業務アプリケーションのサービス種別を登録するフィールド１３７１と、当該ベンチマークＰＧの識別情報であるベンチＩＤを登録するフィールド１３７２と、当該ベンチマークＰＧを稼動したサーバ計算機３のスペック情報（ＣＰＵ名、ＣＰＵ周波数、メモリ容量）を登録するフィールド１３７３と、当該サーバ計算機３における当該ベンチマークＰＧの結果（処理能力）を登録するフィールド１３７４と、を有する。
【００９９】
図１４は、図７のＳ１５（構成変更処理）において、処理能力が未知のサーバ計算機３の中から、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに追加で割当てるサーバ計算機３を選出する処理（図１１のＳ１６２〜Ｓ１７２に相当）の変形例を説明するための図である。
【０１００】
構成変更指示部１２４は、注目レコード１３１０と同じサービス種別を持つレコード１３７０をスペック換算ＴＬ１３７０から抽出する（Ｓ１８１）。また、注目レコード１３１０と同じ業務ＩＤおよびモジュールＩＤを持つレコード１３４０を処理能力管理ＴＬ１３４から抽出する（Ｓ１８２）。次に、構成変更指示部１２４は、Ｓ１８１で抽出したレコード１３７０およびＳ１８２で抽出したレコード１４３０から、同じスペック情報を持つ（ＣＰＵ名、ＣＰＵ周波数およびメモリ容量が一致する）レコード１３７およびレコード１４３０の組合せを検索する（Ｓ１８３）。そして、検索した組合せ各々について、レコード１３７０の処理能力とレコード１４３０の処理能力との比率を計算し、その平均を求める（Ｓ１８４）。例えば、図５においてＣＰＵ名「Ａ」、ＣＰＵ周波数８６６[MHz]、メモリ容量１０２４[Mbyte]でＷＥＢ系ショッピングのモジュールＰＧ（業務ＩＤ「ＡＰＰ_０１」、モジュールＩＤ「ＷＥＢ_０１」の処理能力が３００（件/分）であるのに対し、図１３においてＣＰＵ名「Ａ」、ＣＰＵ周波数８６６[MHz]、メモリ容量１０２４[Mbyte]でＷＥＢ系ショッピングのベンチマークＰＧ（ＡＡＡ）の処理能力７００（件/分）である。したがって、比率は３００/７００＝０.４２８となる。
【０１０１】
それから、構成変更指示部１２４は、Ｓ１８１で抽出したいずれかのレコード１３７０と同じスペック情報を持つレコード１３２０であって、業務ＩＤおよびモジュールＩＤが「未割当」のレコード１３２０を特定し、これを追加割当用レコードに設定する（Ｓ１８５）。そして、リソース管理ＴＬ１３２に登録されている追加割当用レコードの「未割当」となっている業務ＩＤおよびモジュールＩＤを、注目レコード１３１０と同じ業務ＩＤおよびモジュールＩＤに変更する。また、このレコード１３２０に追加割当レコードであることを示すフラグを付しておく。
【０１０２】
次に、構成変更指示部１２４は、追加割当用レコード１３２０と同じスペック情報を持つレコード１３７０の処理能力に、Ｓ１８４で算出した比率の平均を乗算して、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を計算する（Ｓ１８６）。
【０１０３】
さて、構成変更指示部１２４は、追加割当用レコード１３２０の計算機ＩＤを持つサーバ計算機３の処理能力を推定したならば、変数Ｓを、該変数Ｓからこの推定値を差し引いた値に変更する（Ｓ１８７）。
【０１０４】
次に、構成変更指示部１２４は、変数Ｓが所定の閾値（例えば唐O煤j以上であるか否かを判断する（Ｓ１８８）。変数Ｓが所定の閾値以上でない場合（Ｓ１８８でＮＯ）、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して、リソース不足を解消できる程度にリソース（サーバ計算機３）を追加で割り当てることができたものと判断し、このフローを終了する。一方、変数Ｓが所定の閾値以上である場合（Ｓ１８８でＹＥＳ）、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに対して、未だリソース不足を解消できる程度にリソース（サーバ計算機３）を追加で割り当てることができていないと判断し、Ｓ１８９に移行する。
【０１０５】
Ｓ１８９において、構成変更指示部１２４は、リソース管理ＴＬ１３２に、業務ＩＤおよびモジュールＩＤが「未割当」のレコード１３２０が残っているか否かを調べ、残っているならばＳ１８５に戻り、残っていないならば、このフローを終了する。
【０１０６】
また、上記の実施形態では、必要リソース量推定部１２３がメトリック情報管理ＴＬ１３３を用いて必要リソース量を計算している。しかし、本発明はこれに限定されない。各ロードバランサ２から、当該ロードバランサ２でのリクエスト受信数およびリクエスト処理数をモジュールＰＧ単位で取得し、各モジュールＰＧの必要リソース量を計算するようにしてもよい。
【０１０７】
また、上記の実施形態では、管理用ネットワーク５と、業務用ネットワーク６とを別々に設けているが、１つのネットワークで管理用ネットワークおよび業務用ネットワークを兼用するようにしてもよい。
【０１０８】
また、上記の実施形態では、リソース割当管理装置１がモジュールＰＧをサーバ計算機３に配布するようにしているが、サーバ計算機３に予めモジュールＰＧを記憶させておき、インストーラ３３がリソース割当管理装置１より指定されたモジュールＰＧをインストールして、該モジュールＰＧをモジュール実行部３４に実行させるようにしてもよい。
【０１０９】
また、上記の実施形態では、Ｓ１４３（図９）で計算したリクエスト受信数の総数から、Ｓ１４４で計算したリクエスト処理数の総数を減算した値を、不足しているリソース量として算出している（Ｓ１４５）。これに限らず、リクエスト受信数の総数と現構成における処理能力との差分を、不足しているリソース量としてもよい。つまり、Ｓ１４３で計算したリクエスト受信数の総数から、処理能力管理ＴＬ１３４に記録されている、現在利用中のリソースの処理能力である１３４４の値を減算した値を、不足しているリソース量としてもよい。
【図面の簡単な説明】
【０１１０】
【図１】図１は本発明の一実施形態が適用されたリソース割当管理システムの概略図である。
【図２】図２は業務アプリ構成管理ＴＬ１３１を模式的に示す図である。
【図３】図３はリソース管理ＴＬ１３２を模式的に表した図である。
【図４】図４はメトリック情報管理ＴＬ１３３を模式的に表した図である。
【図５】図５は処理能力管理ＴＬ１３４を模式的に表した図である。
【図６】図６はリソース割当管理装置１のハードウエア構成例を示す図である。
【図７】図７はリソース割当管理装置１の動作フローを説明するための図である。
【図８】図８は図７のＳ１２（処理能力計算処理）の動作フローを説明する図である。
【図９】図９は図７のＳ１４（必要リソース量推定処理）の動作フローを説明する図である。
【図１０】図１０は図７のＳ１５（構成変更処理）の動作フローを説明する図である。
【図１１】図１１は図７のＳ１５（構成変更処理）の動作フローを説明する図である。
【図１２】図１２は図７のＳ１６（モジュール配布・設定処理）の動作フローを説明するための図である。
【図１３】図１３はスペック換算ＴＬ１３７を模式的に表した図である。
【図１４】図１４は、図７のＳ１５（構成変更処理）において、処理能力が未知のサーバ計算機３の中から、注目レコード１３１０のモジュールＩＤを持つモジュールＰＧに追加で割当てるサーバ計算機３を選出する処理（図１１のＳ１６２〜Ｓ１７２に相当）の変形例を説明するための図である。
【図１５】図１５は、図１の構成を管理用と業務用の各々に分けて表した機能ブロック図である。
【符号の説明】
【０１１１】
１リソース割当管理装置、２ロードバランサ、３サーバ計算機、４ルータ、５管理用ネットワーク、６業務用ネットワーク、１１ネットワークＩＦ部、１２演算部１２記憶部、２１リソース管理ＴＬ、３１ネットワークＩＦ部、３２メトリック情報計測部、３３インストーラ、３４モジュール実行部、１２１メトリック情報収集部、１２２処理能力計算部、１２３必要リソース量推定部、１２４構成変更指示部、１２５モジュール配布・設定部、１３１業務アプリ構成管理ＴＬ、１３２リソース管理ＴＬ、１３３メトリック情報管理ＴＬ、１３４処理能力管理ＴＬ、１３５モジュール記憶部、１３６ロードバランサ管理ＴＬ
【図１】
2006309691.tif 000003
【図２】
2006309691.tif 000004
【図３】
2006309691.tif 000005
【図４】
2006309691.tif 000006
【図５】
2006309691.tif 000007
【図６】
2006309691.tif 000008
【図７】
2006309691.tif 000009
【図８】
2006309691.tif 000010
【図９】
2006309691.tif 000011
【図１０】
2006309691.tif 000012
【図１１】
2006309691.tif 000013
【図１２】
2006309691.tif 000014
【図１３】
2006309691.tif 000015
【図１４】
2006309691.tif 000016
【図１５】
2006309691.tif 000017