(57)【特許請求の範囲】
【請求項１】
ＢＰ（Business Process）のサービス呼出命令であるアクティビティを実行するＢＰ実行装置と、前記アクティビティから呼び出されるサービスを実行するサービス実行装置と、実行される前記サービスが利用する物理計算機資源である前記サービス実行装置のリソースを管理する運用管理装置と、を含めて構成されるＢＰ処理システムによるリソース割当方法であって、
前記運用管理装置が、
前記ＢＰのサービス呼出命令であるアクティビティとそのアクティビティが呼び出すサービスとの対応情報、呼び出されるサービスごとの必要リソース量情報、および、前記サービス実行装置ごとに利用可能なリソース量情報を記憶部から読み取り、
前記サービスごとの必要リソース量情報をＢＰごとに集計してＢＰごとの必要リソース量情報を求め、前記ＢＰごとの必要リソース量情報と、前記サービス実行装置ごとに利用可能なリソース量情報とを照合して、前記ＢＰごとの必要リソース量情報が収まるリソース量を提供可能な前記サービス実行装置を検索し、
前記サービス実行装置が検索されたときには、その検索された前記サービス実行装置のうちの１台の前記サービス実行装置のリソースに対して、同じ１つのＢＰに属するアクティビティから呼び出されるサービスを割り当てる集中割当処理を実行し、
前記サービス実行装置が検索されなかったときには、同じ１つのＢＰのアクティビティから呼び出されるサービスを必要リソース量が大きい順に選択し、提供可能なリソース量が大きい順に前記サービス実行装置を選択し、選択した前記サービス実行装置に対して、選択したサービスを割り当てる処理を繰りかえすことで、前記同じ１つのＢＰのアクティビティから呼び出されるサービスを複数台の前記サービス実行装置に割り当てる分散割当処理を実行することを特徴とする
リソース割当方法。
【請求項２】
前記集中割当処理の工程は、検索された前記サービス実行装置のうち、提供可能なリソース量が最も大きいサービス実行装置に対して、サービスを割り当てることを特徴とする
請求項１に記載のリソース割当方法。
【請求項３】
前記集中割当処理の工程は、検索された前記サービス実行装置のうち、提供可能なリソース量が最も小さいサービス実行装置に対して、サービスを割り当てることを特徴とする
請求項１に記載のリソース割当方法。
【請求項４】
前記運用管理装置は、さらに、前記サービスを割り当てる工程の結果、サービスが割り当てられなかった前記サービス実行装置の電源をオフにするよう制御することを特徴とする
請求項１ないし請求項３のいずれか１項に記載のリソース割当方法。
【請求項５】
前記運用管理装置は、さらに、前記サービスを割り当てる工程の後、１台の前記サービス実行装置に割り当てされたサービスへの負荷が上昇する事象を検知すると、負荷が上昇したサービスを呼び出すＢＰから呼び出されるサービスについて、割り当てをいったん解除した後、前記分散割当処理を実行することを特徴とする
請求項１ないし請求項４のいずれか１項に記載のリソース割当方法。
【請求項６】
前記運用管理装置は、さらに、前記サービスを割り当てる工程の後、前記分散割当処理によって複数台の前記サービス実行装置に割り当てされたサービスへの負荷が下降する事象を検知すると、負荷が下降したサービスを呼び出すＢＰから呼び出されるサービスについて、割り当てをいったん解除した後、前記集中割当処理を実行することを特徴とする
請求項１ないし請求項４のいずれか１項に記載のリソース割当方法。
【請求項７】
前記運用管理装置は、さらに、前記サービスを割り当てる工程の後、割り当てたサービスを呼び出すＢＰへの構成変更を検知すると、構成変更されたＢＰが呼び出すサービスが割り当てられている前記サービス実行装置に対して、構成変更により追加されたアクティビティが呼び出すサービスを割当可能か否かを判定し、
割当可能なら、その前記サービス実行装置に対して追加されたアクティビティが呼び出すサービスを追加し、
割当不可能なら、構成変更されたＢＰが呼び出すサービスの割り当てをいったん解除した後、前記分散割当処理を実行することを特徴とする
請求項１ないし請求項４のいずれか１項に記載のリソース割当方法。
【請求項８】
請求項１ないし請求項７のいずれか１項に記載のリソース割当方法を、コンピュータに実行させるためのリソース割当プログラム。
【請求項９】
ＢＰ（Business Process）のサービス呼出命令であるアクティビティを実行するＢＰ実行装置と、前記アクティビティから呼び出されるサービスを実行するサービス実行装置と、実行される前記サービスが利用する物理計算機資源である前記サービス実行装置のリソースを管理する運用管理装置と、を含めて構成されるＢＰ処理システムに用いられる前記運用管理装置であって、
前記ＢＰのサービス呼出命令であるアクティビティとそのアクティビティが呼び出すサービスとの対応情報、呼び出されるサービスごとの必要リソース量情報、および、前記サービス実行装置ごとに利用可能なリソース量情報を記憶する記憶部と、
前記サービスごとの必要リソース量情報をＢＰごとに集計してＢＰごとの必要リソース量情報を求め、前記ＢＰごとの必要リソース量情報と、前記サービス実行装置ごとに利用可能なリソース量情報とを照合して、前記ＢＰごとの必要リソース量情報が収まるリソース量を提供可能な前記サービス実行装置を検索し、
前記サービス実行装置が検索されたときには、その検索された前記サービス実行装置のうちの１台の前記サービス実行装置のリソースに対して、同じ１つのＢＰに属するアクティビティから呼び出されるサービスを割り当てる集中割当処理を実行し、
前記サービス実行装置が検索されなかったときには、同じ１つのＢＰに属するアクティビティから呼び出されるサービスを必要リソース量が大きい順に選択し、提供可能なリソース量が大きい順に前記サービス実行装置を選択し、選択した前記サービス実行装置に対して、選択したサービスを割り当てる処理を繰りかえすことで、前記同じ１つのＢＰのアクティビティから呼び出されるサービスを複数台の前記サービス実行装置に割り当てる分散割当処理を実行する割当計画部と、を有することを特徴とする
運用管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース割当方法、リソース割当プログラム、および、運用管理装置に関する。
【背景技術】
【０００２】
物理計算機のリソースを論理的に分割して、複数の計算機を使用するのと同等の効果を得られる仮想計算機技術が使われている。仮想計算機技術により、従来別々の物理計算機で実行していた業務を少数の物理計算機上の仮想計算機で実行することで、物理計算機数を集約することができる。特許文献１には、仮想計算機の負荷に応じて物理計算機のリソースを割り当てる技術が開示されている。
【特許文献１】特開２００２−２０２９５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
なお、別々の物理計算機が実行する各サービスを、ＢＰ（Business Process）が定義するアクティビティから呼び出すというＢＰ処理システムが提案されている。ＢＰは、ＢＰＭＬ（Business Process Modeling Language）などにより記述される。ＢＰ処理システムにおいてもＢＰから呼び出されるサービスを、仮想計算機で実行することにより、物理計算機数を集約することが求められる。
【０００４】
このようなＢＰ処理システムに対して、従来のＢＰが考慮されていないリソース割り当て方法を使用した場合、ＢＰ処理システム全体の信頼性が低下してしまうというＢＰ処理システム特有の課題がある。具体的には、あるＢＰから呼び出されるサービスが複数の物理計算機に跨ってリソースを割り当てられている場合、それら複数の計算機のうちの１台で障害が発生すると、ＢＰ全体の処理が継続できなくなってしまう。
【０００５】
例えばＢＰ処理システムにおいて、物理計算機ａ１，ａ２があり、物理計算機ａ１上の仮想計算機で実行されるサービスｓ１と、物理計算機ａ２上の仮想計算機で実行されるサービスｓ２があるとする。サービスｓ１とｓ２の両方を呼び出す所定ＢＰがあった場合、物理計算機ａ１、ａ２のいずれかで障害が発生すると、所定ＢＰは処理が継続不可能になる。このように、信頼性が低下してしまう要因は、同一のＢＰから呼び出すサービスに対してリソースを割り当てる物理計算機の数が多いことである。
【０００６】
そこで、本発明は、前記した問題を解決し、ＢＰ処理システムの信頼性を向上させるように、ＢＰから呼び出されるサービスを物理計算機のリソースに割り当てることを、主な目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明は、ＢＰ（Business Process）のサービス呼出命令であるアクティビティを実行するＢＰ実行装置と、前記アクティビティから呼び出されるサービスを実行するサービス実行装置と、実行される前記サービスが利用する物理計算機資源である前記サービス実行装置のリソースを管理する運用管理装置と、を含めて構成されるＢＰ処理システムによるリソース割当方法であって、
前記運用管理装置が、
前記ＢＰのサービス呼出命令であるアクティビティとそのアクティビティが呼び出すサービスとの対応情報、呼び出されるサービスごとの必要リソース量情報、および、前記サービス実行装置ごとに利用可能なリソース量情報を記憶部から読み取り、
前記サービスごとの必要リソース量情報をＢＰごとに集計してＢＰごとの必要リソース量情報を求め、前記ＢＰごとの必要リソース量情報と、前記サービス実行装置ごとに利用可能なリソース量情報とを照合して、前記ＢＰごとの必要リソース量情報が収まるリソース量を提供可能な前記サービス実行装置を検索し、
前記サービス実行装置が検索されたときには、その検索された前記サービス実行装置のうちの１台の前記サービス実行装置のリソースに対して、同じ１つのＢＰに属するアクティビティから呼び出されるサービスを割り当てる集中割当処理を実行し、
前記サービス実行装置が検索されなかったときには、同じ１つのＢＰのアクティビティから呼び出されるサービスを必要リソース量が大きい順に選択し、提供可能なリソース量が大きい順に前記サービス実行装置を選択し、選択した前記サービス実行装置に対して、選択したサービスを割り当てる処理を繰りかえすことで、前記同じ１つのＢＰのアクティビティから呼び出されるサービスを複数台の前記サービス実行装置に割り当てる分散割当処理を実行することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【０００８】
本発明によれば、同じＢＰが呼び出すサービスを実行する物理計算機の台数が最小化されることで、ＢＰ処理システムの信頼性を向上させるように、ＢＰから呼び出されるサービスを物理計算機のリソースに割り当てることができる。
【発明を実施するための最良の形態】
【０００９】
図１（ａ）は、ＢＰ処理システムの構成図を示す。ＢＰ処理システムは、１台以上のＢＰ実行装置２と、１台以上の運用管理装置１と、２台以上のサービス実行装置３と、がネットワーク８で接続されて構成される。運用管理装置１は、ＢＰ実行装置２に対してＢＰの実行を指示し、サービス実行装置３に対してサービスおよびそのサービスが使用するリソースの割当を指示する。リソースとは、サービス実行装置３の計算機資源であり、例えば、ＣＰＵやメモリなどの性能により定義される。ＢＰ実行装置２が実行するＢＰは、サービス実行装置３が実行するサービスを呼び出す。
【００１０】
さらに、運用管理装置１と、サービス実行装置３とは、運用管理装置１からサービス実行装置３の電源を制御するために、管理用ネットワーク９で接続される。なお、ネットワーク８と、管理用ネットワーク９とは、流れるデータの種別が異なるため、これらの各ネットワークに接続する各装置では、各ネットワークに接続するためのインタフェースを、ネットワークごとに別々に用意することが、望ましい。
【００１１】
図１（ｂ）は、運用管理装置１の計算機資源を示す構成図である。物理計算機である運用管理装置１は、ＣＰＵ４１、ネットワークインタフェース４２、主記憶装置４３、および、二次記憶装置４４を有する。ネットワークインタフェース４２は、ネットワーク８に接続されている。主記憶装置４３は、ＯＳ４５が起動されており、ＯＳ４５は後記する運用管理装置１の各処理部をＣＰＵ４１に実行させるように制御する。なお、ＢＰ処理システムの他装置も、運用管理装置１と同様に、図１（ｂ）に示す各計算機資源を備える物理計算機として構成される。
【００１２】
図２は、ＢＰ処理システムの機能を示す構成図である。運用管理装置１は、割当計画部１１と、ＢＰ指示部１２と、サービス指示部１３と、電源制御指示部１４と、を有する。
割当計画部１１は、割当用マスタテーブル１５ａをもとに、割当用コピーテーブル１５ｂを編集することで、サービスへのリソースの割り当て処理を計画する。
ＢＰ指示部１２は、ＢＰ定義テーブル１６ａ，１６ｂの内容をもとにした実行用ＢＰ記憶部２２の内容の更新を、ネットワーク８経由でＢＰ管理部２１に指示する。
サービス指示部１３は、ＢＰ割当テーブル１７ａ，１７ｂおよびサービス割当テーブル１８ａ，１８ｂの内容をもとにした仮想計算機３２上のサービスおよびリソースの割り当てを、ネットワーク８経由で仮想計算機制御部３１に指示する。
電源制御指示部１４は、管理用ネットワーク９を介して、電源制御部３５に対してサービス実行装置３の電源オンオフを指示する。
【００１３】
運用管理装置１は、割当用マスタテーブル１５ａと、割当用コピーテーブル１５ｂとを記憶する。割当用マスタテーブル１５ａは、ＢＰ定義テーブル１６ａと、ＢＰ割当テーブル１７ａと、サービス割当テーブル１８ａと、を有する。割当用コピーテーブル１５ｂは、ＢＰ定義テーブル１６ｂと、ＢＰ割当テーブル１７ｂと、サービス割当テーブル１８ｂと、を有する。割当用コピーテーブル１５ｂは、割当用マスタテーブル１５ａから作成されたコピーであり、このコピーに対して編集が行われる。編集結果が正常に反映されたときには、割当用コピーテーブル１５ｂの内容が割当用マスタテーブル１５ａへ反映される。
【００１４】
【表１】
0004523965.tif 000002
【００１５】
表１に示すＢＰ定義テーブル１６ａ，１６ｂは、ＢＰＩＤと、アクティビティＩＤと、サービスＩＤと、必要リソース量と、割当先物理計算機ＩＤと、を対応づけて記憶する。
ＢＰＩＤは、ＢＰを特定する。
アクティビティＩＤは、ＢＰＩＤのＢＰを構成するアクティビティを特定する。
サービスＩＤは、アクティビティＩＤのアクティビティから呼び出されるサービスを特定する。
必要リソース量は、サービスＩＤのサービスを実行するために必要なサービス実行装置３のリソース量である。
割当先物理計算機ＩＤは、サービスＩＤのサービスを割り当てたサービス実行装置３（物理計算機）を特定する。
【００１６】
【表２】
0004523965.tif 000003
【００１７】
表２に示すＢＰ割当テーブル１７ａ，１７ｂは、各ＢＰから呼び出されるサービスの実行に必要なリソースの総和を管理する。
ＢＰＩＤは、ＢＰを特定するレコードの主キーである。
リソース量合計は、ＢＰＩＤで示すＢＰから呼び出すサービスの実行に必要なリソースの合計である。この合計は、ＢＰ定義テーブル１６ａ，１６ｂのＢＰＩＤが同じレコードの必要リソース量の合計により求める。例えば、ＢＰＩＤ＝「１」の場合、「必要リソース量（アクティビティＩＤ）」と表記すると、「１０（Ａ１）」＋「２０（Ｂ１）」＋「１０（Ｃ１）」＋「１０（Ｄ１）」＋「１０（Ｅ１）」＝６０が、リソース量合計となる。
割当済フラグは、ＢＰＩＤで示すＢＰに対してリソースが割り当てられているか（真を示すtrue）、否か（偽を示すfalse）を示す。
分散割当フラグは、ＢＰＩＤで示すＢＰに割り当てられたリソースが複数台の物理計算機に分散されて割り当てられているか（true：分散割当とする）、１台の物理計算機に集中して割り当てられているか（false：集中割当とする）を示す。
【００１８】
【表３】
0004523965.tif 000004
【００１９】
表３に示すサービス割当テーブル１８ａ，１８ｂは、物理計算機ＩＤと、リソース量と、空きリソース量と、サービスリストと、を対応づけて記憶する。
物理計算機ＩＤは、サービス実行装置３を特定する。
リソース量は、物理計算機ＩＤの物理計算機における割当可能なリソースの総量を示す。
空きリソース量は、物理計算機ＩＤの物理計算機におけるリソース量のうち、既に割り当てられたリソース量分だけ除いた残りのリソース量を示す。例えば、所定の物理計算機に「１００」のリソース量があり、そのうち、「４０」のリソース量が既に割り当てられたとすると、空きリソース量は「６０」である。
サービスリストは、物理計算機ＩＤの物理計算機に対して既に割り当てられたサービスの一覧である。表記「Ａ（Ａ１）」は、サービス「Ａ」がアクティビティ「Ａ１」によって呼び出される旨を示す。例えば、物理計算機「Ａ」には、アクティビティ「Ａ１，Ａ２，Ｂ１」という３つのアクティビティによって呼び出されるサービスが示されている。そのサービスが使用するリソース量は、リソース量「１００」−空きリソース量「６０」＝「４０」である。
【００２０】
ＢＰ実行装置２は、ＢＰ管理部２１と、実行用ＢＰ記憶部２２と、ＢＰ実行部２３と、を有する。
ＢＰ管理部２１は、ＢＰ指示部１２からの指示を受け、実行用ＢＰ記憶部２２の内容を更新する。実行用ＢＰ記憶部２２は、ＢＰの処理の流れを定義するための部品であるアクティビティの組合せを記憶する。各アクティビティでは、サービスの呼び出しや条件分岐などを行う。
ＢＰ実行部２３は、実行用ＢＰ記憶部２２のＢＰ情報に従ってサービスの呼び出しを行う。
【００２１】
サービス実行装置３は、仮想計算機制御部３１と、仮想計算機３２と、電源制御部３５と、を有する。仮想計算機３２は、サービス実行部３３と、負荷監視部３４と、を有する。
【００２２】
仮想計算機制御部３１は、サービス指示部１３からの指示命令を受け、仮想計算機３２に対して、以下に示す指示内容を指示する。
・実行するサービス実行部３３を割り当てる。
・リソースを割り当てる。割り当てるリソースの量は、サービス実行装置３の持つリソースを超えない範囲で、自由に設定することができる。
・仮想計算機３２のリソース使用量を取得する。
【００２３】
仮想計算機３２は、ＢＰ実行部２３が実行するＢＰのアクティビティが呼び出す各サービスの実行に必要な必要リソース量を、サービス実行装置３が提供するリソースから割り当てる。そして、サービス実行部３３を起動する。なお、仮想計算機３２がサービス実行装置３から提供されるリソースは、時間経過に対して不変（固定）でもよいし、可変でもよい。
サービス実行部３３は、仮想計算機３２が割り当てるリソースを利用して、１つ以上のサービスを実行する。
負荷監視部３４は、サービス実行部３３で実行中のサービスが、そのサービスに割り当てられているリソースへ与えている負荷について、仮想計算機制御部３１に定期的にアクセスすることにより、監視する。
電源制御部３５は、電源制御指示部１４からの電源オンオフの指示を受け、自装置であるサービス実行装置３の電源制御を行う。
【００２４】
図３は、２種類のサービスの割当方法を示す説明図である。ＢＰ実行部２３は、ＢＰ「Ａ」およびＢＰ「Ｂ」を実行する。ＢＰ「Ａ」は、アクティビティ「Ａ１」→「Ａ２」の順に実行する。ＢＰ「Ｂ」は、アクティビティ「Ｂ１」→「Ｂ２」→「Ｂ３」の順に実行する。なお、ＢＰの一例として、条件分岐などがなく、各アクティビティが一定の順序で実行される構成で示したが、途中で処理を分岐したり、並列実行したりする構成でもよい。アクティビティ「Ａ１」は、サービス実行装置３のサービス実行部３３が実行するサービス「ＳＡ」を呼び出す。
【００２５】
まず、集中割当は、所定のＢＰに属する全アクティビティが呼び出すサービスが、同じ１つのサービス実行装置３に集中して割り当てられる旨を示す。例えば、ＢＰ「Ａ」のアクティビティ「Ａ１、Ａ２」は、同じサービス実行装置３に割り当てられているサービス「ＳＡ、ＳＢ」を呼び出しているので、集中割当である。
【００２６】
一方、分散割当は、所定のＢＰに属する全アクティビティが呼び出すサービスが、複数のサービス実行装置３に分散して割り当てられる旨を示す。例えば、ＢＰ「Ｂ」のアクティビティ「Ｂ１、Ｂ２、Ｂ３」は、所定のサービス実行装置３に割り当てられているサービス「ＳＡ」と、別のサービス実行装置３に割り当てられているサービス「ＳＢ、ＳＣ」と、を呼び出すので、分散割当である。
【００２７】
ＢＰ処理システムの信頼性を高めるために、可能な限り少ないサービス実行装置３に依存すべきである。なぜなら、依存するサービス実行装置３が増えるほど、それらのサービス実行装置３のうち、１台でも故障すると、ＢＰが実行できなくなってしまうからである。よって、分散割当よりは集中割当のほうが望ましいし、分散割当になったとしても、依存するサービス実行装置３の台数は、少ない方が望ましい。
【００２８】
図４は、割当計画部１１が実行するリソース割り当て処理を示すフローチャートである。
【００２９】
まず、割当用コピーテーブル１５ｂが作成済みでないときには（Ｓ１０１，Ｎｏ）、割当用マスタテーブル１５ａから割当用コピーテーブル１５ｂへコピーする（Ｓ１０２）。具体的には、ＢＰ定義テーブル１６ａからＢＰ定義テーブル１６ｂへ、ＢＰ割当テーブル１７ａからＢＰ割当テーブル１７ｂへ、サービス割当テーブル１８ａからサービス割当テーブル１８ｂへ、それぞれコピーする。なお、割当用コピーテーブル１５ｂが作成済みであるとき（Ｓ１０１，Ｙｅｓ）とは、図４のフローチャートが他処理（後記する図６または図７）から呼び出される前に、前処理として既に作成されている旨を指す。
【００３０】
次に、ＢＰ割当テーブル１７ｂを参照し、リソースを割り当てられていないＢＰから、ＢＰのリソース量合計が大きい順に、割当対象ＢＰとして選択するループ（Ｓ１１１〜Ｓ１１６）を実行する。このループを実行することで、割当対象ＢＰの割当済フラグは、「false」から「true」へ更新される。リソース量合計が大きい順にＢＰを割り当てることで、リソースの空きが複数の物理計算機に断片化されることを抑制できる。
【００３１】
サービス割当テーブル１８ｂを参照し、割当対象ＢＰのリソース量合計を上回る空きリソース量を有する物理計算機を検索する（Ｓ１１２）。まず、Ｓ１１２の結果、集中割当ができる物理計算機が検索されなかったら（Ｓ１１３，Ｎｏ）、割当対象ＢＰを複数台の物理計算機に分散割当する（Ｓ１１４）。具体的には、後記する図５の処理をサブルーチンとして呼び出す。
【００３２】
一方、Ｓ１１２の結果、１台以上の物理計算機が検索されたら（Ｓ１１３，Ｙｅｓ）、その物理計算機に対して割当対象ＢＰを集中割当し（Ｓ１１５）、割当対象ＢＰのループを終了する（Ｓ１１６）。
【００３３】
集中割当（Ｓ１１５）について、具体的には、検索された物理計算機から割当対象の物理計算機を所定のポリシ（詳細は後記）に従って特定し、特定した割当対象の物理計算機に割当対象ＢＰを割り当てる。つまり、ＢＰ定義テーブル１６ｂの割当対象ＢＰを示すレコード内の割当先物理計算機ＩＤ列に、特定した割当対象の物理計算機のＩＤを書き込む。そして、サービス割当テーブル１８ｂの特定した割当対象の物理計算機を示すレコード内のサービスリスト列に、割当対象ＢＰのアクティビティおよびそのアクティビティから呼び出すサービスの一覧を書き込む。ＢＰ割当テーブル１７ｂの割当対象ＢＰに対応する分散割当フラグに「false」を設定する。
【００３４】
さらに、Ｓ１１４，Ｓ１１５で更新した割当用コピーテーブル１５ｂの内容に従って、サービスにリソースを割り当てる（Ｓ１２１）。なお、この処理は、割当用コピーテーブル１５ｂの内容をユーザに確認させ、ユーザからの許諾を得てから実行してもよい。サービスにリソースを割り当てる処理を実現するため、サービス指示部１３は、仮想計算機制御部３１を介して仮想計算機３２に対し、仮想計算機３２の使用するリソースを割り当てさせるとともに、サービス実行部３３を起動し、割り当てた各サービスを割り当てたリソースを用いて実行させる。なお、既にサービス実行部３３がサービスを実行していて、更新した割当用コピーテーブル１５ｂにはその実行しているサービスが存在しないときには、そのサービスと、そのサービスが使用するリソースの割り当て解除を行う。
【００３５】
割当結果をもとに、割当用コピーテーブル１５ｂから割当用マスタテーブル１５ａへ最新の割当状態を反映する（Ｓ１２２）。例えば、割当用コピーテーブル１５ｂの内容が全て正常に割り当てられたときには、割当用マスタテーブル１５ａの内容は、割当用コピーテーブル１５ｂのコピーとなる。一方、割当用コピーテーブル１５ｂの内容の一部に、リソース不足などにより割当エラー（後記する図５のＳ２０９）が発生したときには、割当用マスタテーブル１５ａの内容は、その割当エラーにより割り当てられなかった割当用コピーテーブル１５ｂの内容の書き込みは省略される。そして、割当用コピーテーブル１５ｂは、不用になるので削除される。
【００３６】
未使用の物理計算機の電源をオフにする（Ｓ１２３）。具体的には、サービス割当テーブル１８ａのサービスリストを参照し、リソースの割り当てが行なわれていない物理計算機の電源をオフにして、省電力化を実行する。そのため、電源制御指示部１４は、管理用ネットワーク９を経由して、リソースの割り当てが行われていない物理計算機の電源制御部３５に対して、その物理計算機の電源オフを指示する。以上、図４の処理を一通り説明した。
【００３７】
なお、集中割当（Ｓ１１５）における物理計算機の選択ポリシは、例えば、以下の（１）または（２）のいずれかの方式により実現される。
【００３８】
（１）安定性を重視する方式：検索された物理計算機のうち、最大の空きリソースを有する物理計算機を特定する。これにより、各物理計算機の空きリソースが均等化されるので、リソースの使用量が多少増減しても、その変化を空きリソースが吸収するため、ＢＰ処理システムの安定性が向上する。つまり、リソースの使用量が一時的に割り当てたリソース量を超過しても、リソースの再割当が発生しにくくなるので、リソースの再割り当て回数を低減することができる。
【００３９】
（２）省電力を重視する方式：検索された物理計算機のうち、最小の空きリソースを有する物理計算機を特定する。これにより、特定の物理計算機に集中して割当が行われることにより、その他の物理計算機が使用されにくくなる。よって、その使用されない物理計算機の電源をオフにすることで、省電力を推進できる。
【００４０】
以下、各ポリシにおけるサービス割当テーブル１８ｂの具体例を説明する。なお、説明を簡潔にするため、表中のサービスリスト列は、本来記憶されているサービスリストの代わりに、それらのサービスリストに属する各サービスの必要リソースの合計を記述する。まず、「１６」のように数字が示されるときには、ＢＰが呼び出すサービスが１台の物理計算機のリソース（この場合はリソース量が１６であるリソース）に集中割当されている。一方、「２０／２４」のように分数で示される場合、ＢＰが呼び出すサービス（必要リソース量合計が２４のサービス）が複数台の物理計算機のリソース（リソース量が２０であるリソースと、その他のリソース）に分散割当されている。
【００４１】
【表４】
0004523965.tif 000005
【００４２】
表４は、（１）の方式でＢＰが呼び出すサービスが、それぞれ１台の物理計算機に割り当てられた例を示す。リソースがそれぞれ２０の物理計算機Ａ，Ｂ，Ｃ，Ｄ，Ｅに対して、必要リソースの合計がそれぞれ１６，１４，１２，１０，８，６，４のＢＰを割り当てる事例である。
【００４３】
【表５】
0004523965.tif 000006
【００４４】
表５は、表４と同じ条件において、（２）の方式でＢＰが呼び出すサービスが、それぞれ１台の物理計算機に割り当てられた例を示す。表４と比較すると、リソースの割り当ては物理計算機Ａ，Ｂ，Ｃに集中しており、逆に物理計算機Ｅはリソースを使用していない状態になっている。その結果、物理計算機Ｅの電源をオフにできる。
【００４５】
【表６】
0004523965.tif 000007
【００４６】
表６は、（１）の方式で一部のＢＰが、複数台の物理計算機に割り当てられた例を示す。リソースがそれぞれ２０の物理計算機Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆに対して、必要リソースの合計がそれぞれ２４，２０，１６，１２，８のＢＰを割り当てる事例である。必要リソースが２４のＢＰについては、１台の物理計算機だけではリソースが不足するため、割当可能な最少台数である２台の物理計算機Ａ，Ｂに分散してリソースを割り当てる。その他のＢＰについては１台の物理計算機からリソースを割り当てる。
【００４７】
【表７】
0004523965.tif 000008
【００４８】
表７は、表６と同じ条件において、（２）の方式で一部のＢＰが、複数台の物理計算機に割り当てられた例を示す。表６と比較すると、リソースの割り当ては特定の計算機に集中し、逆に物理計算機Ｅ，Ｆはリソースを使用していないので、電源オフにできる。さらに、各ＢＰが使用する物理計算機は、１〜２台に収まっている。
【００４９】
図５は、割当計画部１１が実行する、指定された割当対象ＢＰを、なるべく少ない複数の物理計算機に分散割当する処理を示すフローチャートである。
【００５０】
まず、ＢＰ割当テーブル１７ｂの割当対象ＢＰに対応する分散割当フラグに「true」を設定する。（Ｓ２０１）。この設定により、割当対象ＢＰが分散割当されていることがわかる。
【００５１】
次に、サービス割当テーブル１８ｂに登録されている物理計算機から、空きリソースが大きい順に割当対象計算機として選択するループを実行する（Ｓ２０２〜Ｓ２０８）。
【００５２】
そして、ＢＰ定義テーブル１６ｂを参照し、割当対象ＢＰが呼び出すサービスのうちの未割当サービスから、必要リソース量が大きい順に、割当対象サービスとして選択するループを実行する（Ｓ２０３〜Ｓ２０６）。
【００５３】
割当対象サービスを割当対象計算機に割当可能なら（Ｓ２０４，Ｙｅｓ）、割当対象サービスを割当対象計算機に割り当てる（Ｓ２０５）。具体的には、ＢＰ定義テーブル１６ｂにおいて、割当対象計算機の物理計算機ＩＤを、割当対象サービスの割当先物理計算機列に設定する。サービス割当テーブル１８ｂにおいて、割当対象サービスをサービスリスト列に追加し、空きリソース量から割当対象サービスの必要リソースを減算する。一方、割当対象サービスを割当対象計算機に割当不可能なら（Ｓ２０４，Ｎｏ）、割当対象サービスのループを抜け（breakする）、Ｓ２０７に進む。
【００５４】
ここで、割当対象ＢＰの割当が完了したか否かを判定する（Ｓ２０７）。割当対象ＢＰの割当が完了したとは、Ｓ２０５の割当処理により、割当対象ＢＰが呼び出すサービスの全てが割り当てられたことを示す。
【００５５】
割当対象ＢＰの割当が完了したなら（Ｓ２０７，Ｙｅｓ）、これ以上割当対象計算機のループを実行する必要がないので、そのループを抜けて図５のサブルーチンから呼出元へと戻る。
【００５６】
一方、割当対象ＢＰの割当が完了していないなら（Ｓ２０７，Ｎｏ）、現在着目している割当対象計算機から別の物理計算機に割当対象を変更するため、ループを終了する（Ｓ２０８）。
【００５７】
そして、割当対象計算機のループ（Ｓ２０２〜Ｓ２０８）が完了してしまったときには、全ての物理計算機を順に調べたが、割当対象ＢＰの割当が完了しなかったこととなるため、リソース不足でサービスが実行できない旨のエラーをユーザおよび呼出元に通知する（Ｓ２０９）。
【００５８】
【表８】
0004523965.tif 000009
以下、図５のフローチャートを実行することで割当が済んだＢＰに対して、所定のイベント発生を契機に、リソースの再割当を行う手順を説明する。表８は、所定のイベントの一例として、３つのイベントを例示する表である。イベント（１）（２）はサービスの負荷変動に起因するイベントを示し、イベント（３）はＢＰの構成変更に起因するイベントを示す。リソースの再割当は、イベント対象のＢＰ（以下、再割当対象ＢＰとする）にのみ行われ、それ以外のＢＰは特に影響しない。
【００５９】
なお、イベント監視の契機は、常時（定期的）としてもよいし、運用管理装置１からの問い合わせメッセージの受信時としてもよいし、管理者からの指示（監視開始指示から監視終了指示までの期間）としてもよい。また、イベント監視結果の通知は、閾値の範囲内であるなどの正常値のときには省略してもよいし、正常値のときにも通知することとしてもよい。
【００６０】
図６（ａ）は、割当計画部１１が実行するイベント（１）の再割当処理を示すフローチャートである。このフローチャートを実行することで、リソース不足が発生した再割当対象ＢＰは、再割当されたリソースを利用して、ＢＰを継続して実行することができる。
【００６１】
まず、Ｓ１０２と同様に、割当用マスタテーブル１５ａから割当用コピーテーブル１５ｂへコピーする（Ｓ３０１）。そして、再割当対象ＢＰから呼び出されたサービスについて、割当用コピーテーブル１５ｂから割り当てに関する情報を削除して、再割当対象ＢＰの割当解除（Ｓ３０２）を行う。具体的には、再割当対象ＢＰについて、ＢＰ定義テーブル１６ｂの割当先物理計算機列を空白とし、サービス割当テーブル１８ｂのサービスリスト列から再割当対象ＢＰが呼び出すサービスを削除し、割当済フラグを「true」から「false」に戻す。これにより、再割当対象ＢＰから呼び出すサービスは、リソースが未割当の状態に戻る。
【００６２】
そして、再割当対象ＢＰの分散割当（Ｓ３０３）を行うため、再割当対象ＢＰを割当対象ＢＰとして、図５のサブルーチンを呼び出す。その後、Ｓ１２１と同様に、更新した割当用コピーテーブル１５ｂの内容に従って、サービスにリソースを割り当てる（Ｓ３１１）。Ｓ１２２と同様に、割当結果をもとに、割当用コピーテーブル１５ｂから割当用マスタテーブル１５ａへ最新の割当状態を反映する（Ｓ３１２）。
【００６３】
図６（ｂ）は、割当計画部１１が実行するイベント（２）の再割当処理を示すフローチャートである。このフローチャートを実行することで、分散割当されていた再割当対象ＢＰは、集中割当されることにより、信頼性が向上する。
【００６４】
図６（ｂ）の各処理は、図６（ａ）の各処理と同等である。Ｓ３０１はＳ３２１に、Ｓ３０２はＳ３２２に、Ｓ３０３はＳ３２３に、Ｓ３１１はＳ３３１に、Ｓ３１２はＳ３３２に、それぞれ対応する。
【００６５】
Ｓ３０３とＳ３２３との違いは、再割当を分散割当するか（Ｓ３０３）、集中割当するか（Ｓ３２３）である。つまり、Ｓ３２３では、図５のサブルーチンを呼び出す代わりに、図４の処理を呼び出す。なお、Ｓ３２１で割当用コピーテーブル１５ｂを作成した後に呼び出された図４では、割当用コピーテーブル１５ｂの作成処理は、省略される（Ｓ１０１，Ｙｅｓ）。さらに、図４の集中割当（Ｓ１１５）におけるポリシは、再割当の回数を減らす（１）安定性重視が望ましいが、（２）省電力重視でもよい。
【００６６】
図７は、割当計画部１１が実行するイベント（３）の再割当処理を示すフローチャートである。このフローチャートは、ＢＰ定義テーブル１６ｂの再割当対象ＢＰのアクティビティに対して、行が追加または削除されたときに、実行される。
【００６７】
まず、Ｓ１０２と同様に、割当用マスタテーブル１５ａから割当用コピーテーブル１５ｂへコピーする（Ｓ４０１）。
【００６８】
次に、再割当対象ＢＰが呼び出すサービスについて、集中割当するか、分散割当するかを特定する。具体的には、ＢＰ割当テーブル１７ｂの分散割当フラグより構成変更前の再割当対象ＢＰが集中割当されており（Ｓ４１１，Ｙｅｓ）、かつ、構成変更前に割り当てられている同じ物理計算機に対して構成変更後の再割当対象ＢＰも追加的に集中割当が可能なら（Ｓ４１２，Ｙｅｓ）、再割当対象ＢＰを集中割当する。一方、Ｓ４１１またはＳ４１２のうちの少なくとも一方の条件を満たさないなら、再割当対象ＢＰを分散割当する。
【００６９】
再割当対象ＢＰを集中割当する場合（Ｓ４１１，Ｓ４１２ともにＹｅｓ）、再割当対象ＢＰについて、変更前から変更後へのアクティビティおよびそのアクティビティが呼び出すサービスの変更分（追加分、削除分）を、ＢＰ定義テーブル１６ｂから抽出する（Ｓ４１３）。そして、ＢＰ定義テーブル１６ｂで特定したサービスに合わせて、サービス割当テーブル１８ｂのサービスリスト列を整合させる（Ｓ４１４）。ここで、再割当対象ＢＰが呼び出すサービスの割当先物理計算機に対して、サービスの削除分を割当用コピーテーブル１５ｂから削除し、サービスの追加分を割当用コピーテーブル１５ｂに追加する。
【００７０】
再割当対象ＢＰを分散割当する場合（Ｓ４１１，Ｓ４１２のいずれかがＮｏ）、Ｓ３０２と同様に再割当対象ＢＰの割当解除（Ｓ４２１）し、Ｓ３０３と同様に再割当対象ＢＰを分散割当する（Ｓ４２２）。
【００７１】
そして、Ｓ１２１と同様に、更新した割当用コピーテーブル１５ｂの内容に従って、サービスにリソースを割り当てる（Ｓ４３１）。Ｓ１２２と同様に、割当結果をもとに、割当用コピーテーブル１５ｂから割当用マスタテーブル１５ａへ最新の割当状態を反映する（Ｓ４３２）。
【００７２】
図８は、図３に示す変更前のＢＰの割当構成からのＢＰ構成の変更後を示す説明図である。ＢＰ構成の変更により、ＢＰ「Ａ」が呼び出すアクティビティ「Ａ１，Ａ２」に対して、新たにアクティビティ「Ａ３，Ａ４」が追加されている。図８（ａ）は、再割当対象ＢＰを集中割当する例を、図８（ｂ）は、再割当対象ＢＰを分散割当する例を、それぞれ示す。
【００７３】
まず、図８（ａ）では、集中割当が可能（Ｓ４１２，Ｙｅｓ）なので、既に割当が済んでいるアクティビティ「Ａ１，Ａ２」と、新たに割当を行うアクティビティ「Ａ３，Ａ４」とが、同じ物理計算機上のリソースを利用する。よって、アクティビティ「Ａ１，Ａ２」から呼び出されるサービスＳＡ，ＳＢは、割当を解除する必要がなく、継続的に利用可能である。
【００７４】
一方、図８（ｂ）では、集中割当が不可能（Ｓ４１２，Ｎｏ）なので、既に割当が済んでいるアクティビティ「Ａ１，Ａ２」と、新たに割当を行うアクティビティ「Ａ３，Ａ４」とが、別々の物理計算機上のリソースを利用する。アクティビティ「Ａ１，Ａ２」から呼び出されるサービスＳＡ，ＳＢは、割当がいったん解除される。
【００７５】
図９は、サービスをリソースに割り当てた結果をユーザに提示するＧＵＩ（Graphical User Interface）画面を示す画面図である。この画面図は、割当編集欄９０１と、割当ポリシ選択欄９０２と、操作選択欄９０３と、をユーザに表示させると共に、ユーザからの入力を受け付ける。
【００７６】
割当編集欄９０１は、サービス実行装置３を示すコンピュータアイコン「Ｐ１，Ｐ２，Ｐ３」と、アクティビティアイコン「Ａ１，Ａ２，Ｂ１，Ｂ２，Ｂ３，Ｃ１」と、を表示し、これらのアイコンをクリックにより選択可能にする。なお、コンピュータアイコン「Ｐ３」は、アクティビティが割り当てられていないので、省電力のために電源がオフになっている。
【００７７】
コンピュータアイコン下部には、そのコンピュータが有するリソース量に比例した大きさのリソース矩形が設定され、このリソース矩形内に配置されたアクティビティアイコンが、そのコンピュータに割り当てられたサービスを呼び出すアクティビティである。一方、「未割当」矩形内のアクティビティアイコン「Ｃ１」は、まだサービス実行装置３に割り当てられていない旨を示す。未割当のアクティビティアイコンは、リソース矩形内にドラッグ＆ドロップすることで、そのリソース矩形に対応するサービス実行装置３に割り当てられる。
【００７８】
アクティビティアイコンは、属するＢＰごとに異なる形状であり、その大きさは呼び出すサービスの必要リソース量に比例する。例えば、コンピュータアイコン「Ｐ１」には、アクティビティアイコン「Ａ１，Ａ２，Ｂ１」が割り当てられているので、リソース矩形の空きスペースは少ない。ユーザは、これらのアイコンを見ることにより、「Ａ１，Ａ２」を含むＢＰは「Ｐ１」のサービス実行装置３に集中割当され、「Ｂ１，Ｂ２，Ｂ３」を含むＢＰは「Ｐ１，Ｐ２」のサービス実行装置３に分散割当されていることを、直感的に知ることができる。
【００７９】
割当ポリシ選択欄９０２は、「安定性重視」または「省電力重視」を択一的に選択させる。この選択結果は、集中割当（Ｓ１１５）における物理計算機の選択ポリシに反映される。
【００８０】
操作選択欄９０３は、割当編集欄９０１を編集するための指示を行うボタン群が配置されている。まず、割当編集欄９０１に表示されるアクティビティは、あらかじめ編集されたＢＰのアクティビティが読み込まれた（インポートされた）ものである。なお、ＢＰ編集ツール（図示省略、テキストエディタや、専用のＧＵＩエディタなど）は、ＢＰに含まれる各アクティビティの実行順などを、ユーザに編集させる。
「ＢＰの読み込み」ボタンをクリックすると、読み込み対象のＢＰを選択するダイアログが表示され、そのダイアログを介してユーザから選択されたＢＰが、読み込み対象のＢＰとなる。そして、読み込み対象のＢＰ（編集済み）を読み込むことにより、読み込んだＢＰのアクティビティアイコンを、割当編集欄９０１に表示する。なお、新規に読み込んだＢＰのアクティビティや、編集して読み込んだＢＰの前回読み込み時との差分のアクティビティについては、そのアクティビティアイコンが「未割当」領域に出現する。
「ＢＰの削除」ボタンをクリックすると、「ＢＰの読み込み」ボタンで読み込まれたＢＰのリストが表示され、そのリストからユーザが選択したＢＰが、削除対象のＢＰとなる。そして、削除対象のＢＰを削除することにより、削除対象のＢＰのアクティビティアイコンが、割当編集欄９０１から削除される。なお、削除対象のＢＰを選択する別の方法として、割当編集欄９０１から選択したアクティビティアイコンのアクティビティが属するＢＰを、削除対象のＢＰとしてもよい。
割当編集欄９０１からコンピュータアイコンを選択してから「計算機の電源オン」ボタンをクリックすると、その計算機の電源がオンになる。
割当編集欄９０１からコンピュータアイコンを選択してから「計算機の電源オフ」ボタンをクリックすると、その計算機の電源がオフになる。
【００８１】
以上説明した本実施形態によれば、同一のＢＰから呼び出すサービスは、可能な限り同一の物理計算機からリソースを割り当てることで、物理計算機の障害によるＢＰ処理への影響を最小に抑え、ＢＰ処理システムの信頼性を向上させることができる。よって、物理計算機のうちの１台でも障害が発生した場合にＢＰの中のアクティビティが実行できなくなって、ＢＰ処理がそこで止まってしまうという障害を、抑制することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態に関するＢＰ処理システムを示す構成図である。
【図２】本発明の一実施形態に関するＢＰ処理システムの機能を示す構成図である。
【図３】本発明の一実施形態に関する２種類のサービスの割当方法を示す説明図である。
【図４】本発明の一実施形態に関するリソース割り当て処理を示すフローチャートである。
【図５】本発明の一実施形態に関する分散割当する処理を示すフローチャートである。
【図６】本発明の一実施形態に関するイベント（１）（２）の再割当処理を示すフローチャートである。
【図７】本発明の一実施形態に関するイベント（３）の再割当処理を示すフローチャートである。
【図８】本発明の一実施形態に関する変更前のＢＰの割当構成からのＢＰ構成の変更後を示す説明図である。
【図９】本発明の一実施形態に関するサービスをリソースに割り当てた結果を示す画面図である。
【符号の説明】
【００８３】
１      運用管理装置
２      ＢＰ実行装置
３      サービス実行装置
１１    割当計画部
１２    ＢＰ指示部
１３    サービス指示部
１４    電源制御指示部
１５ａ  割当用マスタテーブル
１５ｂ  割当用コピーテーブル
１６    ＢＰ定義テーブル
１７    ＢＰ割当テーブル
１８    サービス割当テーブル
２１    ＢＰ管理部
２２    実行用ＢＰ記憶部
２３    ＢＰ実行部
３１    仮想計算機制御部
３２    仮想計算機
３３    サービス実行部
３４    負荷監視部
３５    電源制御部
【図１】
0004523965.tif 000010
【図２】
0004523965.tif 000011
【図３】
0004523965.tif 000012
【図４】
0004523965.tif 000013
【図５】
0004523965.tif 000014
【図６】
0004523965.tif 000015
【図７】
0004523965.tif 000016
【図８】
0004523965.tif 000017
【図９】
0004523965.tif 000018