(57)【要約】【課題】各々のサービスに対するリソースの動的配分を迅速かつ適正に実行する。【解決手段】複数のサービス管理装置２１０は、各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行している。集中管理装置３００は、業務フロー全体に対する各サービスの実行状況を分析し、分析結果にもとづいて各サービス管理装置２１０がリソース１００の動的再配置を実行するに際して最低限遵守すべきサービス制御条件を生成し、生成したサービス制御条件を各サービス管理装置２１０に送信する。各サービス管理装置２１０は、集中管理装置３００からのサービス制御条件に従っている範囲内において、リソースの動的再配置を実行する。【選択図】図２
2007241667.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスを連携させて構築される業務フローを制御する業務フロー制御システムであって、
サービスの処理をリソースに分配して実行させる複数のサービス実行装置と、
各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行する複数のサービス管理装置と、
業務フロー全体に対する各サービスの実行状況の分析し、分析結果にもとづいて前記各サービス管理装置がリソースの動的再配置を実行するためのサービス制御条件を生成し、生成したサービス制御条件を前記各サービス管理装置に送信する集中管理装置とを備え、
前記各サービス管理装置は、前記集中管理装置からの前記サービス制御条件に従って、リソースの動的再配置を実行する
ことを特徴とする業務フロー制御システム。
【請求項２】
サービスを実行させるリソースを管理するリソース管理装置を備え、
各サービス管理装置は、リソースの動的再配置を実行するときに、サービス制御条件を遵守するために必要なリソースの割り当てを要求するリソース割当要求を送信し、
前記リソース管理装置は、前記各サービス管理装置からの前記リソース割当要求にもとづいて、サービスを実行させるリソースを決定する
請求項１記載の業務フロー制御システム。
【請求項３】
リソースの性能を示す情報にもとづいて、各リソースの処理能力を正規化し、各リソースの相対的な比較を可能とする性能値を導出する性能値導出手段と、
リソースがサービスを実行しているときに、サービスの実行状況を測定することによって測定情報を収集する測定情報収集手段とを備え、
各サービス管理装置は、
前記測定情報手段により測定された測定情報とサービスを実行しているリソースの性能値とを取得し、取得した前記測定情報と前記性能値とにもとづいて、所定の性能値のリソースがサービスを実行したときの処理時間を予測するための予測式を算出する予測式算出手段と、
前記予測式算出手段により算出された予測式を集中管理装置に送信する予測式送信手段とを含み、
前記集中管理装置は、
前記予測式を用いて各サービスにおける予測処理時間を算出し、算出した各サービスの予測処理時間から業務フロー全体の予測処理時間を算出する予測処理時間算出手段と、
予め定められた業務フロー全体の処理時間上限の範囲内で各サービスの処理時間上限を決定する処理時間上限決定手段と、
決定した前記処理時間上限をサービス制御条件として前記各サービス管理装置に送信するサービス制御条件送信手段とを含み、
前記各サービス管理装置は、
前記予測式を用いてサービスを前記処理時間上限で実行するためのリソースの性能値を算出するリソース性能値算出手段と、
算出した性能値のリソースの割り当てを要求するリソース割当要求をリソース管理装置に送信するリソース割当要求送信手段とを含む
請求項２記載の業務フロー制御システム。
【請求項４】
処理時間上限決定手段は、サービスを実行していないリソースのうちで性能値が最大のリソースがサービスを実行したときの最小処理時間を予測式を用いて算出し、各サービスの処理時間上限を前記最小処理時間よりも長くする
請求項３記載の業務フロー制御システム。
【請求項５】
性能値導出手段は、各リソースに対するベンチマークテストを実行してテスト結果を重回帰分析することによって、リソースの性能を示す情報を変数とした算出式を導出し、その算出式にリソースの性能を示す情報を代入することにより性能値を導出する
請求項３または請求項４記載の業務フロー制御システム。
【請求項６】
予測式算出手段は、一定時間に収集した測定情報と性能値とを重回帰分析することによって、処理時間を目的変数とし、性能値と測定情報に含まれるサービスの動作状態を説明変数とした予測式を算出する
請求項３から請求項５のうちのいずれか１項記載の業務フロー制御システム。
【請求項７】
リソース管理装置は、リソース割当要求で指定された性能値以上の性能値のリソースをサービスを実行させるリソースと決定する
請求項３から請求項６のうちのいずれか１項記載の業務フロー制御システム。
【請求項８】
複数のサービスを連携させて構築される業務フローを制御する業務フロー制御方法であって、
複数のサービス管理装置の各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行し、
集中管理装置が業務フロー全体に対する各サービスの実行状況の分析し、分析結果にもとづいて前記各サービス管理装置がリソースの動的再配置を実行するためのサービス制御条件を生成し、生成したサービス制御条件を前記各サービス管理装置に送信し、
前記各サービス管理装置が前記集中管理装置からの前記サービス制御条件に従って、リソースの動的再配置を実行する
ことを特徴とする業務フロー制御方法。
【請求項９】
各サービス管理装置が、リソースの動的再配置を実行するときに、サービス制御条件を遵守するために必要なリソースの割り当てを要求するリソース割当要求を送信し、
リソース管理装置が、前記各サービス管理装置からの前記リソース割当要求にもとづいて、サービスを実行させるリソースを決定してリソースにサービスを割り当てる
請求項８記載の業務フロー制御方法。
【請求項１０】
複数のサービスを連携させて構築される業務フローにおける、リソースの割り当てを管理するリソース管理装置を制御するための制御用プログラムであって、
リソースの性能を示す情報にもとづいて、各リソースの処理能力を正規化し、各リソースの相対的な比較を可能とする性能値を導出する性能値導出処理を
前記リソース管理装置に実行させることを特徴とする制御用プログラム。
【請求項１１】
複数のサービスを連携させて構築される業務フローにおける、各サービスを管理するサービス管理装置を制御するための制御用プログラムであって、
リソースがサービスを実行しているときに測定された測定情報と、サービスを実行しているリソースにおける他のリソースとの相対的な比較を可能とする性能値とを取得し、取得した前記測定情報と前記性能値とにもとづいて、所定の性能値のリソースがサービスを実行したときの処理時間を予測するための予測式を算出する予測式算出処理と、
業務フロー全体に対する各サービスの実行状況の分析して各サービスの処理時間上限を決定する集中管理装置に対して、処理時間上限を決定させるために前記予測式算出処理にて算出された予測式を送信する予測式送信処理と、
前記集中管理装置から送られるサービスの処理時間上限において当該サービスを実行するためのリソースの性能値を前記予測式を用いて算出するリソース性能値算出処理と、
算出した性能値のリソースの割り当てを要求するリソース割当要求を、リソースの割り当てを管理するリソース管理装置に送信するリソース割当要求送信処理とを
前記サービス管理装置に実行させることを特徴とする制御用プログラム。
【請求項１２】
複数のサービスを連携させて構築される業務フロー全体を集中管理する集中管理装置を制御するための制御用プログラムであって、
所定の性能値のリソースがサービスを実行したときの処理時間を予測するための予測式を用いて各サービスにおける予測処理時間を算出し、算出した各サービスの予測処理時間から業務フロー全体の予測処理時間を算出する予測処理時間算出処理と、
予め定められた業務フロー全体の処理時間上限の範囲内で各サービスの処理時間上限を決定する処理時間上限決定処理と、
決定した前記処理時間上限を各サービスを管理する各サービス管理装置に送信する処理時間上限送信処理とを
前記集中管理装置に実行させることを特徴とする制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務フロー制御システム、業務フロー制御方法および制御用プログラムに関し、特にサービス単位の分散制御と業務フロー全体に対する分析の組み合わせにより自律分散制御を実現できる業務フロー制御システム、業務フロー制御方法および制御用プログラムに関する。
【背景技術】
【０００２】
サービス管理システムでは、グリッド環境のような計算機資源（リソース）の自律的な動的再配置を行う環境の上にサービスを構築し、リソースの割り当て数を増減させることによってサービスの性能制御を実現している。従来のサービス管理システムの一例が特許文献１に記載されている。この従来のサービス管理システムでは、管理サーバが複数のリソースの割り当てを管理している。すなわち、管理サーバにおいて、構成管理エンジンが、サーバ、ネットワーク、ストレージを含むリソース表と、これらのリソース上で稼動するアプリケーションの構成要素を示すアプリケーション表と、リソースのアプリケーションへの割り当て表とを保持している。テンプレートリポジトリが、これらの構成情報（リソース表、アプリケーション表、リソース割り当て表）からリソースに関する性能情報の測定項目を生成する。そして、性能測定エンジンが、生成された性能情報の測定項目を測定する。そして、リソース管理エンジンが、構成情報からリソースの割り当て変更に用いるリソース割り当て変更ルールを生成し、生成したリソース割り当て変更ルールと構成情報に従って、リソースの割り当て変更を行う。この特許文献１に記載されたサービス管理システムは、サービスにて動作状態の変化を検出し、サービス制御条件に従ってリソースの割当・解放を行う。このとき、既存技術の制御条件ではリソースの制御パラメータを直接指定している。
【０００３】
また、従来のサービス管理システムの他の例が特許文献２に記載されている。この従来のサービス管理システムにおいても、中間サーバが複数の計算機リソースの割り当てを管理している。すなわち、中間サーバにおいて、リクエスト管理手段が、リクエストを受け付け、そのリクエストの内容の実行を管理する。リクエスト管理手段は、リクエストを複数のジョブに分割する。サービス結果出力手段は、リクエストの実行結果の出力データを生成する。ジョブ実行時間予測手段は、リクエスト受付時の計算機リソースの状況やリクエストの内容にもとづいて、リクエスト完了までに要する時間を見積もる。ジョブスケジューリング管理手段は、リクエストにもとづいて分割されたジョブの実行スケジュールを決めるとともに、ジョブの実行状況を監視し、ジョブが終了するとその結果をサービス結果出力手段に送る。計算機リソース情報管理手段は、グリッド上でジョブを実行可能な計算機の情報を管理する。
【０００４】
また、業務フロー制御システムでは、複数のサービスを連携させてサプライチェーンのような業務フローが構築される。従来の業務フロー制御システムの一例が特許文献３に記載されている。従来の業務フロー制御システムでは、監視・評価情報指定者が、監視対象電文と監視対象履歴を指定し、トランザクションごとに各サービスプロバイダ上のビジネスサービス情報コレクタが監視対象情報をビジネスサービスレベルアナライザへ送付する。次に、ビジネスサービスレベルアナライザは、収集した情報に基づきビジネスサービスを評価する。経営者は、評価指標に基づき、問題となるビジネスサービス又はビジネスフローを特定し、ビジネスプロセス管理に代替ビジネスサービス又はビジネスフローの検索を依頼する。検索結果に基づき、ビジネスフロー全体を変更する指示を、ビジネスプロセス管理経由で各サービスプロバイダに送信する。なお、業務フロー制御システムの既存技術では、リソース配分を考慮したものは無い。流量管理など他の技術分野においては自律分散制御手法が用いられており、その一例が特許文献４に記載されている。その制御システムではフローを部分フローに分割し、その部分フロー毎に部分集中管理を行うことにより、自律分散制御を実現している。
【０００５】
【特許文献１】特開２００５−１７４２０１号公報
【特許文献２】特開２００５−５６２０１号公報
【特許文献３】特開２００５−１１０５３号公報
【特許文献４】特公平６−１４２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
業務フローにおける各々のサービスにおいても、リソースを効率よく利用するために、サービス管理システムのようにリソースの割り当て数を増減させることによって各サービスの性能制御を実行するのが好ましい。
【０００７】
しかし、特許文献１〜４に示したような既存の技術では、リソース動的配分環境上の業務フロー管理方法が提案されておらず、業務フローにおける各々のサービスの動作状態に応じたリソース動的配分を実現することができない。また、サービスに応じたリソースの性能を定量的に評価することによってリソース・サービス間の関連をモデル化できなければ、業務フローにおける各々のサービスの動作状態に応じたリソース動的配分を実現することができない。
【０００８】
また、リソース動的配分環境上に既存のワークフロー制御手法を適用したとしても、迅速かつ適正な制御ができない。分散型制御では、サービス間の関係を考慮せずにサービス毎にリソースの動的配分を行うために、業務フロー全体における各々のサービスに対するリソース動的配分の適正さが保証できない。また、集中型制御では、分散した観測ポイントからデータを収集し、収集したデータにもとづいてサービス制御条件を決め、サービス制御条件に従ってリソース動的配分を行うために、各々のサービスに対するリソースの動的配分を迅速に行うことができない。
【０００９】
本発明は、上記のような課題を解決するためになされたものであり、各々のサービスに対するリソースの動的配分を迅速かつ適正に実行することができる業務フロー制御システム、業務フロー制御方法および制御用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
以上の目的を達成するため、本発明の業務フロー制御システムは、複数のサービスを連携させて構築される業務フローを制御する業務フロー制御システムであって、サービスの処理をリソースに分配して実行させる複数のサービス実行装置と、各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行する複数のサービス管理装置と、業務フロー全体に対する各サービスの実行状況の分析し、分析結果にもとづいて各サービス管理装置がリソースの動的再配置を実行するためのサービス制御条件を生成し、生成したサービス制御条件を各サービス管理装置に送信する集中管理装置とを備え、各サービス管理装置は、集中管理装置からのサービス制御条件に従って、リソースの動的再配置を実行することを特徴とする。
【００１１】
ここで、業務は、複数のサービス（これを業務という場合もある）を複合した複合型業務である。業務フローは、複数の部門や人が関わる業務の流れであって、所定のルールにもとづき処理手順などが決められている。業務フロー制御システムは、所定のルールをもとにコンピュータネットワーク上で業務処理や業務支援を行うコンピュータシステムである。
【００１２】
サービスを実行させるリソースを管理するリソース管理装置を備え、各サービス管理装置は、リソースの動的再配置を実行するときに、サービス制御条件を遵守するために必要なリソースの割り当てを要求するリソース割当要求を送信し、リソース管理装置は、各サービス管理装置からのリソース割当要求にもとづいて、サービスを実行させるリソースを決定するように構成されていてもよい。このような構成によれば、リソースの割り当てをリソース管理装置だけで管理することができるようになり、複数のサービスに対するリソースの割り当てを適正に実行することができる。
【００１３】
リソースの性能を示す情報にもとづいて、各リソースの処理能力を正規化し、各リソースの相対的な比較を可能とする性能値を導出する性能値導出手段と、リソースがサービスを実行しているときに、サービスの実行状況を測定することによって測定情報を収集する測定情報収集手段とを備え、各サービス管理装置は、測定情報手段により測定された測定情報とサービスを実行しているリソースの性能値とを取得し、取得した測定情報と性能値とにもとづいて、所定の性能値のリソースがサービスを実行したときの処理時間を予測するための予測式を算出する予測式算出手段と、予測式算出手段により算出された予測式を集中管理装置に送信する予測式送信手段とを含み、集中管理装置は、予測式を用いて各サービスにおける予測処理時間を算出し、算出した各サービスの予測処理時間から業務フロー全体の予測処理時間を算出する予測処理時間算出手段と、予め定められた業務フロー全体の処理時間上限の範囲内で各サービスの処理時間上限を決定する処理時間上限決定手段と、決定した処理時間上限をサービス制御条件として各サービス管理装置に送信するサービス制御条件送信手段とを含み、各サービス管理装置は、予測式を用いてサービスを処理時間上限で実行するためのリソースの性能値を算出するリソース性能値算出手段と、算出した性能値のリソースの割り当てを要求するリソース割当要求をリソース管理装置に送信するリソース割当要求送信手段とを含む構成とされていてもよい。このような構成によれば、業務フロー全体の処理時間上限に適合させて各サービスの処理時間上限を決定することができるとともに、各サービスの処理時間上限に応じた性能値のリソースを確実に割り当てることができるようになる。
【００１４】
処理時間上限決定手段は、サービスを実行していないリソースのうちで性能値が最大のリソースがサービスを実行したときの最小処理時間を予測式を用いて算出し、各サービスの処理時間上限を最小処理時間よりも長くするのが好ましい。このような構成によれば、割り当てることが不可能な性能値のリソースに対するリソース割当要求がなされることがなくなり、リソースの動的再配置の制御の不具合が生じるのを防止することができる。
【００１５】
性能値導出手段は、各リソースに対するベンチマークテストを実行してテスト結果を重回帰分析することによって、リソースの性能を示す情報を変数とした算出式を導出し、その算出式にリソースの性能を示す情報を代入することにより性能値を導出するのが好ましい。このような構成によれば、サービスに応じたリソースの性能を定量的に評価することができるようになる。
【００１６】
予測式算出手段は、一定時間に収集した測定情報と性能値とを重回帰分析することによって、処理時間を目的変数とし、性能値と測定情報に含まれるサービスの動作状態（例えば同時処理メッセージ数）を説明変数とした予測式を算出するのが好ましい。このような構成によれば、リソースの性能とサービスの内容との関係を正確に定式化することができるようになる。
【００１７】
リソース管理装置は、リソース割当要求で指定された性能値以上の性能値のリソースをサービスを実行させるリソースと決定するように構成されているのが好ましい。このような構成によれば、サービス制御条件、すなわち各サービスの処理時間上限を確実に遵守することができるようになる。
【００１８】
また、本発明による業務フロー制御方法は、複数のサービスを連携させて構築される業務フローを制御する業務フロー制御方法であって、複数のサービス管理装置の各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行し、集中管理装置が業務フロー全体に対する各サービスの実行状況を分析し、分析結果にもとづいて各サービス管理装置がリソースの動的再配置を実行するためのサービス制御条件を生成し、生成したサービス制御条件を各サービス管理装置に送信し、各サービス管理装置が集中管理装置からのサービス制御条件に従って、リソースの動的再配置を実行することを特徴とする。
【００１９】
各サービス管理装置が、リソースの動的再配置を実行するときに、サービス制御条件を遵守するために必要なリソースの割り当てを要求するリソース割当要求を送信し、リソース管理装置が、各サービス管理装置からのリソース割当要求にもとづいて、サービスを実行させるリソースを決定してリソースにサービスを割り当てるように構成されていてもよい。このような構成によれば、リソースの割り当てをリソース管理装置だけで管理することができるようになり、複数のサービスに対するリソースの割り当てを適正に実行することができる。
【００２０】
また、本発明による制御用プログラムは、複数のサービスを連携させて構築される業務フローにおける、リソースの割り当てを管理するリソース管理装置を制御するための制御用プログラムであって、リソースの性能を示す情報にもとづいて、各リソースの処理能力を正規化し、各リソースの相対的な比較を可能とする性能値を導出する性能値導出処理をリソース管理装置に実行させることを特徴とする。
【００２１】
また、本発明による制御用プログラムは、複数のサービスを連携させて構築される業務フローにおける、各サービスを管理するサービス管理装置を制御するための制御用プログラムであって、リソースがサービスを実行しているときに測定された測定情報と、サービスを実行しているリソースにおける他のリソースとの相対的な比較を可能とする性能値とを取得し、取得した測定情報と性能値とにもとづいて、所定の性能値のリソースがサービスを実行したときの処理時間を予測するための予測式を算出する予測式算出処理と、業務フロー全体に対する各サービスの実行状況の分析して各サービスの処理時間上限を決定する集中管理装置に対して、処理時間上限を決定させるために予測式算出処理にて算出された予測式を送信する予測式送信処理と、集中管理装置から送られるサービスの処理時間上限において当該サービスを実行するためのリソースの性能値を予測式を用いて算出するリソース性能値算出処理と、算出した性能値のリソースの割り当てを要求するリソース割当要求を、リソースの割り当てを管理するリソース管理装置に送信するリソース割当要求送信処理とをサービス管理装置に実行させることを特徴とする。
【００２２】
また、本発明による制御用プログラムは、複数のサービスを連携させて構築される業務フロー全体を集中管理する集中管理装置を制御するための制御用プログラムであって、所定の性能値のリソースがサービスを実行したときの処理時間を予測するための予測式を用いて各サービスにおける予測処理時間を算出し、算出した各サービスの予測処理時間から業務フロー全体の予測処理時間を算出する予測処理時間算出処理と、予め定められた業務フロー全体の処理時間上限の範囲内で各サービスの処理時間上限を決定する処理時間上限決定処理と、決定した処理時間上限を各サービスを管理する各サービス管理装置に送信する処理時間上限送信処理とを集中管理装置に実行させることを特徴とする。
【００２３】
なお、以下のような発明も開示されている。各サービス管理装置を制御するための制御用プログラムであって、各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行する自律分散制御処理と、集中管理装置からのサービス制御条件に従って、リソースの動的再配置を実行するサービス制御条件実行処理とをサービス管理装置に実行させる制御用プログラムである。また、集中管理装置を制御するための制御用プログラムであって、業務フロー全体に対する各サービスの実行状況の分析し、分析結果にもとづいて各サービス管理装置によってリソースの動的再配置を実行するために最低限遵守されるサービス制御条件を生成するサービス制御条件生成処理と、生成したサービス制御条件を各サービス管理装置に送信するサービス制御条件送信処理とを集中管理装置に実行させる制御用プログラムである。
【発明の効果】
【００２４】
以上のように、本発明では、複数のサービス管理装置の各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行し、集中管理装置が業務フロー全体に対する各サービスの実行状況の分析し、分析結果にもとづいて各サービス管理装置がリソースの動的再配置を実行するためのサービス制御条件を生成し、生成したサービス制御条件を各サービス管理装置に送信し、各サービス管理装置が集中管理装置からのサービス制御条件に従って、リソースの動的再配置を実行するように構成されているので、各々のサービスに対するリソースの動的再配置を迅速かつ適正に実行することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２６】
図１は、本発明のネットワーク構成を示すブロック図である。図１に示すように、複数のリソース１００と、リソース管理装置１０１と、複数のサービス実行装置２００と、複数のサービス管理装置２１０と、集中管理装置３００とがインターネットなどのネットワークに接続されている。これらの装置により、業務フロー制御システムが構成される。なお、ネットワークは、電話網やＬＡＮなどであってもよい。
【００２７】
業務フローは、複数のサービスを連携させて構築されるが、サービス実行装置２００とサービス管理装置２１０は、業務フローにおける各々のサービス毎に複数設けられている（後述する図３参照）。
【００２８】
図２は、本発明の業務フロー制御システムの構成を示すブロック図である。図２に示す構成において、リソース１００は、サービスとして各種の処理を実行する計算機やストレージなどである。この実施の形態では、リソース１００をサーバ装置としている。
【００２９】
リソース管理装置１０１は、サービスを実行させるリソース１００の割り当てを管理する装置である。リソース管理装置１０１は、リソース性能値計算手段１０２と、リソース割当要求受付手段１０３と、リソース割当実行手段１０４とを備えている。
【００３０】
リソース性能値計算手段１０２は、リソース性能値格納装置１１０に予め格納されているリソース情報（例えば、ＣＰＵ形式、メモリサイズ、メモリアクセス速度、ＨＤＤ（ハードディスクドライブ）アクセス速度など；図５参照）を読み出し、読み出したリソース情報にもとづいて、各リソース１００の処理能力を正規化し、各リソース１００の相対的な比較を可能とするリソース性能値（図５参照）を算出する。なお、リソース性能値は大きければ大きいほど性能が高いことを示している。リソース性能値計算手段１０２によって算出されたリソース性能値は、各リソース１００のリソース情報と対応付けてリソース性能値格納装置１１０に格納される。
【００３１】
リソース割当要求受付手段１０３は、サービス管理装置２１０から送られるリソース割当要求（例えば、要求されている最低限のリソース性能値）を受け取り、受け取ったリソース割当要求をリソース割当実行手段１０４に渡す。リソース割当実行手段１０４は、リソース割当要求のリソース性能値にもとづいて、そのリソース性能値以上のリソース１００を所定のサービスを実行させるリソースと決定する。リソース割当実行手段１０４は、決定したリソースに対してサービスを割り当たことを示すリソース割当情報をサービス実行装置２００に送信する。なお、この実施の形態では、リソース割当実行手段１０４は、サービスを割り当てるリソースを決定する場合に、リソース・サービス対応情報格納装置２０１に格納されているリソース・サービス対応情報（図７参照）を参照するものとする。
【００３２】
図２に示すように、サービスの処理負担が上昇した場合やリソース１００が故障した場合などに備えて、遊休リソース１２０が準備（用意）されている。リソース管理装置１０１は、上記のような事態が発生したときは、サービスを実行させるリソースとして遊休リソース１２０を割り当てることが可能である。
【００３３】
サービス実行装置２００は、リソース管理装置１０１から送られるリソース割当情報に従って、サービスの処理要求をリソース１００に分配してリソース１００にサービスを実行させる制御を行う。サービス実行装置２００は、サービスとそのサービスを割り当てたリソース１００とを対応付けたリソース・サービス対応情報（図７参照）をリソース・サービス対応情報格納装置２０１に格納する。また、サービス実行装置２００は、リソース１００にサービスを実行させているときに、サービスの測定情報（例えば、動作状態、処理時間、割当済みリソースのリソース性能値など）を収集する。
【００３４】
サービス管理装置２１０は、各々が管理する対象のサービスの実行状況を監視して、リソース１００とサービスとの間の関連をモデル化するとともに、集中管理装置３００から送られるサービスを制御するための条件（サービス制御条件）に従って自律的なリソースの動的再配置を実行する装置である。なお、この実施の形態では、サービスを処理すべき最低限の時間であるサービスの処理時間上限をサービス制御条件としている。サービス管理装置２１０は、監視手段２１１と、リソース・サービス関連導出手段２１２と、自律制御実行手段２１３と、リソース割当要求手段２１４とを備えている。
【００３５】
監視手段２１１は、サービス実行装置２００よりサービスの測定情報（例えば、動作状態、処理時間、割当済みリソースのリソース性能値など）を取得し、取得した測定情報をサービスログ（図８参照）としてサービスログ格納装置２１５に格納する。
【００３６】
リソース・サービス関連導出手段２１２は、監視手段２１１が収集したサービスログの情報にもとづいて、リソース（リソース性能値）とサービス（サービスの処理時間、サービスの動作状態（例えば同時処理メッセージ数））との関係を定式化したリソース・サービス関連モデル（サービス処理時間予測式；図９参照）を生成する。そして、リソース・サービス関連導出手段２１２は、生成したリソース・サービス関連モデルをリソース・サービス関連モデル格納装置２１７に格納する。ここで、リソース・サービス関連モデルに任意のサービスの動作状態（例えば同時処理メッセージ数）とリソース性能値を代入することにより、サービスの処理時間を推定（予測）することができる。
【００３７】
また、リソース・サービス関連導出手段２１２は、一定時間幅における平均同時処理メッセージ数を算出する。また、リソース・サービス関連導出手段２１２は、リソース・サービス関連モデルに割当済みリソースのリソース性能値を代入することにより、割当済みリソースのリソース性能値を固定値としたリソース・サービス関連モデル（サービス処理時間予測式）を導出する。さらに、リソース・サービス関連導出手段２１２は、遊休リソース１２０のリソース性能値をリソース管理装置１０１から取得し、遊休リソース１２０内の最大のリソース性能値が割当済みリソースのリソース性能値よりも大きい場合に、そのリソース性能値をリソース・サービス関連モデルに代入することにより、最大リソース性能値を固定値としたリソース・サービス関連モデル（サービス処理時間予測式）を導出する。そして、リソース・サービス関連導出手段２１２は、上記のようにして算出した、平均同時処理メッセージ数、割当済みリソースのリソース性能値を固定値としたリソース・サービス関連モデル（以下、現時点のリソース・サービス関連モデル（サービス処理時間予測式）という。）、および最大リソース性能値を固定値としたリソース・サービス関連モデル（以下、最大処理能力時のリソース・サービス関連モデル（サービス処理時間予測式）という。）を集中管理装置３００に送信する。
【００３８】
なお、平均同時処理メッセージ数、現時点のリソース・サービス関連モデル（サービス処理時間予測式）、および最大処理能力時のリソース・サービス関連モデル（サービス処理時間予測式）の情報（３種類の情報）のことをサービス管理情報という。
【００３９】
自律制御実行手段２１３は、集中管理装置３００から送られるサービス制御条件（例えば、サービスの処理時間の上限値である処理時間上限；図１５参照）に従って、リソース・サービス関連導出手段２１２によって算出された平均同時処理メッセージ数とリソース・サービス関連モデルとをもとに、所定のサービスに対するリソースの割当・解放を決定する。リソース割当要求手段２１４は、自律制御実行手段２１３による決定結果にもとづいて、リソース割当要求（例えば、必要となる最低限のリソース性能値）をリソース管理装置１０１に送信する。
【００４０】
集中管理装置３００は、業務フロー全体に対する各サービスの実行状況の分析（解析）を行い、分析結果にもとづいて各サービス管理装置２１０がサービスを制御するための条件（リソースの動的再配置を実行するための条件）であるサービス制御条件を生成し、生成したサービス制御条件を各サービス管理装置２１０に送信する装置である。集中管理装置３００は、サービス管理情報受付手段３０１と、サービス制御条件生成手段３０２と、サービス制御条件発行手段３０３とを備えている。
【００４１】
サービス管理情報受付手段３０１は、各サービス管理装置２１０から送られるサービス管理情報を受信し、受信したサービス管理情報をサービス管理情報格納装置３１０に格納する。
【００４２】
サービス制御条件生成手段３０２は、各サービスにおけるサービス管理情報と、業務フロー定義格納装置３２０に予め格納されている業務フロー定義（複数のサービスから構成される業務フローを定義したプログラム；図１１参照）とから、業務フローインスタンス（業務処理の実体）の平均処理時間（つまり、業務フロー全体の平均処理時間）を算出する。なお、業務フローインスタンスの平均処理時間を業務フロー処理時間という。サービス制御条件生成手段３０２は、サービス管理情報や業務フロー処理時間、業務フロー制御条件格納装置３３０に予め格納されている業務フロー制御条件（例えば、業務フロー処理時間の上限）などから、各サービスにおけるサービス制御条件（例えば、サービスの処理時間上限；図１５参照）を決定する。そして、サービス制御条件発行手段３０３は、決定したサービス制御条件を各サービス管理装置２１０に送信（配布）する。
【００４３】
なお、この実施の形態では、リソース管理装置１０１、サービス実行装置２００、サービス管理装置２１０および集中管理装置３００は、サーバなどの計算機で構成されている。
【００４４】
リソース性能値格納装置１１０は、リソース管理装置１０１の計算機におけるハードディスクなどの記憶媒体であっても、リソース管理装置１０１とは別の記憶装置であってもよい。また、リソース・サービス対応情報格納装置２０１は、サービス実行装置２００の計算機におけるハードディスクなどの記憶媒体であっても、サービス実行装置２００とは別の記憶装置であってもよい。また、サービスログ格納装置２１５、サービス制御条件格納装置２１６およびリソース・サービス関連モデル格納装置２１７は、サービス管理装置２１０の計算機におけるハードディスクなどの記憶媒体であっても、サービス管理装置２１０とは別の記憶装置であってもよい。また、サービス管理情報格納装置３１０、業務フロー定義格納装置３２０および業務フロー制御条件格納装置３３０は、集中管理装置３００の計算機におけるハードディスクなどの記憶媒体であっても、集中管理装置３００とは別の記憶装置であってもよい。
【００４５】
リソース管理装置１０１におけるリソース性能値計算手段１０２、リソース割当要求受付手段１０３およびリソース割当実行手段１０４は、リソース管理装置１０１におけるＣＰＵなどの制御部が制御プログラムに従って処理を実行することにより実現される。また、サービス管理装置２１０における監視手段２１１、リソース・サービス関連導出手段２１２、自律制御実行手段２１３およびリソース割当要求手段２１４は、サービス管理装置２１０におけるＣＰＵなどの制御部が制御プログラムに従って処理を実行することにより実現される。さらに、集中管理装置３００における業務フローログ生成手段３０１、サービス制御条件生成手段３０２およびサービス制御条件発行手段３０３は、集中管理装置３００におけるＣＰＵなどの制御部が制御プログラムに従って処理を実行することにより実現される。
【００４６】
図３は、業務フローとサービスとの関係を示す説明図である。図３に示すように、業務フローは、複数のサービスを連携させることにより構築されている。すなわち、複数のサービスの連携によって業務が提供されることになる。具体的には、業務フロー１は、サービスＡ−サービスＢ−サービスＣ−サービスＥという連携によって構築され、業務フロー２は、サービスＡ−サービスＢ−サービスＤ−サービスＥという連携によって構築されている。サービス間においてＳＯＡＰ（Simple Object Access Protocol：ＸＭＬなどをベースにした、他のコンピュータにあるデータやサービスを呼び出すためのプロトコル）などのプロトコルを利用してＸＭＬ形式のメッセージが送受信されることにより、サービスの連携が実現される。
【００４７】
なお、図３に示すように、各サービスＡ〜Ｅを管理するサービス管理装置２１０がサービスＡ〜Ｅ毎に設けられている。
【００４８】
次に、本発明の業務フローシステムの動作について説明する。
【００４９】
（１）リソース性能値の導出：
まず、リソース性能値を導出するまでの動作について説明する。図４は、リソース性能値算出処理を示すフローチャートである。リソース性能値算出処理において、リソース性能値計算手段１０２は、まず、リソース性能値格納装置１１０から各リソース１００のリソース情報（例えば、ＣＰＵ形式、メモリサイズ、メモリアクセス速度、ＨＤＤアクセス速度など）を読み出して取得する（ステップＡ１）。
【００５０】
リソース情報の例を図５に示す。図５に示すように、各リソース１００を識別するためのリソース識別子（ｓｖｒ０００１，ｓｖｒ０００２，ｓｖｒ０００３）に対応付けて各種のリソース情報（ＣＰＵスペック、メモリサイズ、メモリアクセス速度、ＨＤＤサイズ、ＨＤＤアクセス速度）がリソース性能値格納装置１１０に格納されている。図５に示す例では、ＣＰＵスペックとして、Ｐｅｎｔｉｕｍ（登録商標）Ｄ−３．０ＧＨｚ、Ｐｅｎｔｉｕｍ４−３．２ＧＨｚ、ＣｅｌｅｒｏｎＤ−２．５３ＧＨｚが例示されている。また、メモリサイズとして、１ＧＢ、２ＧＢ、３ＧＢが例示されている。また、メモリアクセス速度として、４８１ＭＢ／ｓ、１５００ＭＢ／ｓ、９８６ＭＢ／ｓが例示されている。また、ＨＤＤサイズとして、３０ＧＢ、１ＴＢ、１６０ＧＢが例示されている。ＨＤＤアクセス速度として、１０ＭＢ／ｓ、１５ＭＢ／ｓ、２０ＭＢ／ｓが例示されている。
【００５１】
リソース性能値計算手段１０２は、取得したリソース情報にもとづいて、各リソース１００の処理能力を正規化し、各リソース１００の相対的な比較を可能とするリソース性能値を算出する（ステップＡ２）。
【００５２】
リソース性能値の算出方法として、例えば次のような方法が採られる。複数のリソース１００に対してベンチマークテストを予め行っておく。なお、ベンチマークテストは、コンピュータのハードウェアやソフトウェアの処理速度を計測する試験であって、試験用に作成されたソフトウェアを実行し、処理の完了までにかかる時間を計測することで、製品間の比較を行うものである。そして、各リソース１００のリソース情報とベンチマーク値との関係を非線形重回帰分析によって定式化する。このように定式化されたリソース性能値算出式を用いることにより、リソース性能値計算手段１０２がリソース情報からリソース性能値を算出することが可能となる。
【００５３】
リソース性能値と非線形重回帰分析の関係についてもう少し具体的に説明する。この実施の形態では、各リソース１００のリソース情報（スペック）からリソース性能値を求められるようにするために重回帰分析を利用する。重回帰分析は統計手法の一つである。回帰分析の独立変数が複数になったもので、適切な変数を複数選択することによって、計算しやすく誤差の少ない予測式を作成することができる。複数のリソース１００に対してベンチマークテストを実行してテスト結果を重回帰分析することにより、結果として、以下のような式を得ることができる。
【００５４】
（リソース性能値）＝α×（メモリサイズ）＋β×（クロック周波数）＋γ×（Ｐｅｎｔｉｕｍ４）＋δ×（Ｐｅｎｔｉｕｍ３）＋ε×（Ａｔｈｌｏｎ６４）＋ζ
【００５５】
なお、αやβなどの数字（係数、定数）は重回帰分析で算出されるが、あくまで平均的な値なので実際には多少の誤差は生じる。
【００５６】
このとき、メモリサイズやクロック周波数のように数値化されているものは、そのまま式に代入することができるが、ＣＰＵ形式（Ｐｅｎｔｉｕｍ４，Ｐｅｎｔｉｕｍ３，Ａｔｈｌｏｎ６４等）のように数値化されていないものは、代入することができない。そこで、ダミー変数を用いることにより重回帰を適用できるようにする。例えば、ＣＰＵ形式の場合、形式ごとに変数を用意して、その形式に当てはまる場合は１を、当てはまらない場合は０を代入するようにして数値化し、重回帰分析を適用する。
【００５７】
リソース性能値計算手段１０２は、以上のようにして求めたリソース性能値算出式を持っておき、その式に変数値としてリソース情報に応じた値を代入し、リソース性能値を算出する。そして、リソース性能値計算手段１０２は、算出したリソース性能値を各リソース１００の識別子に対応付けたテーブルとして各種のリソース情報とともにリソース性能値格納装置１１０に格納する（ステップＡ３）。
【００５８】
（２）リソース・サービス関連モデルの構築：
次に、リソース・サービス関連モデルを導出するまでの動作について説明する。図６は、リソース・サービス関連モデル導出処理を示すフローチャートである。リソース・サービス関連モデル導出処理において、監視手段２１１は、サービス実行装置２００からサービスの測定情報を取得し、取得したサービスの測定情報をサービスログとしてサービスログ格納装置２１５に格納する（ステップＢ１）。なお、サービスの測定情報としては、サービスを識別するためのサービス識別子、当該サービスを実行しているリソース１００のリソース性能値（割当済みリソース１００のリソース性能値）、サービスの動作状態（同時処理メッセージ数）およびサービスの処理時間とされている。
【００５９】
ここで、サービス実行装置２００は、リソース１００にサービスを割り当てるときに、リソース・サービス対応情報をリソース・サービス対応情報格納装置２０１に格納している。サービス・リソース対応情報の例を図７に示す。サービス・リソース対応情報は、サービスとリソースとを対応付けたテーブルの情報である。すなわち、サービス毎にリソース１００のリソース識別子とリソース性能値が対応付けられている。図７に示す例では、サービスＡ（サービス識別子：ｗｓ＿Ａ）に２つのリソース（リソース識別子：ｓｖｒ０００１，ｓｖｒ０００３）が割り当てられており、それらのリソースのリソース性能値はそれぞれ１．２０と２．３３とされている。サービス実行装置２００は、リソース・サービス対応情報を参照することにより、サービスをどのリソース１００に割り当てたかを認識することができる。また、サービス実行装置２００は、リソース１００にサービスを実行させているときに、サービスの処理時間と同時処理メッセージ数とを測定している。従って、サービス実行装置２００は、測定したサービスの処理時間および同時処理メッセージ数と、サービス割当済みリソース１００のリソース性能値とを収集することができる。そして、サービス実行装置２００は、収集した情報をサービスの測定情報としてサービス管理装置２１０に随時送信している。
【００６０】
監視手段２１１は、サービス実行装置２００から送信されるサービスの測定情報を受信して取得し、取得したサービスの識別情報をサービスログとしてサービスログ格納装置２１５に格納する。サービスログの例を図８に示す。サービスログは、サービス毎にサービスの処理時間と同時処理メッセージ数とリソース性能値が対応付けられたテーブルの情報である。図８に示す例では、サービスＡ（サービス識別子：ｗｓ＿Ａ）に２つのリソースが割り当てられており、それらのリソースにおけるサービスの処理時間が１２３４５ｍｓと３７６４０ｍｓで、同時処理メッセージ数が３と６で、リソース性能値が３．５３と４．２８とされている。
【００６１】
リソース・サービス関連導出手段２１２は、監視手段２１１が一定時間幅（一定時間前の時点から現時点までの時間幅）において取得した複数のサービスログをサービスログ格納装置２１５から読み出して取得する。そして、リソース・サービス関連導出手段２１２は、取得したサービスログにもとづいて、サービスの処理時間と同時処理メッセージ数およびリソース性能値との関係を定式化したサービス処理時間予測式をリソース・サービス関連モデルとして算出（生成）する（ステップＢ２）。
【００６２】
サービス処理時間予測式（リソース・サービス関連モデル）は、複数のサービスログにおける同時処理メッセージ数とリソース性能値を説明変数とし、サービスの処理時間を目的変数とした多変量解析である多項式重回帰分析によって定式化される。多項式重回帰分析によって、以下のような式を得ることができる。
【００６３】
サービス処理時間Ｆ１＝ａ×Ｌ２＋ｂ×ｍ２＋ｃ×Ｌ×ｍ＋ｄ×ｅ×ｍ＋ｆ
【００６４】
ここで、（Ｌ＝同時処理メッセージ数、ｍ＝リソース性能値の逆数、ａ，ｂ，ｃ，ｄ，ｅ，ｆ＝回帰による係数と定数）である。
【００６５】
上記の式にＬ２、ｍ２、Ｌ×ｍ、ｍの値を代入することによって、所定のリソースによる所定のサービスの処理時間を予測することができるようになる。
【００６６】
リソース・サービス関連導出手段２１２は、以上のようにして算出したリソース・サービス関連モデル（サービス処理時間予測式）をリソース・サービス関連モデル格納装置２１７に格納する。
【００６７】
リソース・サービス関連モデルの例を図９に示す。図９に示す例では、サービスＡ（サービス識別子：ｗｓ＿Ａ）に割り当てられているリソース１００のリソース性能値が３．５３である場合に、そのリソース・サービス関連モデル（サービス処理時間予測式）は「３．２６＊Ｌ＊ｍ＋１．８２」となっている。なお、図９に示すリソース・サービス関連モデルは、上記の多項式重回帰分析によって得られた式よりも簡略化された形の式である。
【００６８】
続いて、リソース・サービス関連導出手段２１２は、以下の３種類のサービス管理情報を生成する。
【００６９】
まず、リソース・サービス関連導出手段２１２は、一定時間幅における平均同時処理メッセージ数を算出する（ステップＢ３）。平均同時処理メッセージ数は、例えば、一定時間幅におけるサービスログにおける同時処理メッセージ数を足し合わせ、その値をサービスログ数で割り算することにより求められる。
【００７０】
次いで、リソース・サービス関連導出手段２１２は、ステップＢ２において算出したサービス処理時間予測式に、割当済みリソースのリソース性能値を代入することにより、説明変数が同時処理メッセージ数だけのサービス処理時間予測式（現時点のサービス処理時間予測式）を導出する（ステップＢ４）。ステップＢ２で算出されたサービス処理時間予測式では、リソース性能値と同時処理メッセージ数が変数となっていたが、割当済みリソースのリソース性能値を予測式に代入し、リソース性能値を固定値とされている。この式にもとづいて、集中管理装置３００のサービス制御条件生成手段３０２がステップＢ３において算出された平均同時処理メッセージ数を代入することで、現時点での割当済みリソースによるサービスの性能（サービスの平均処理時間）を求めることが可能となる。
【００７１】
次いで、リソース・サービス関連導出手段２１２は、遊休リソース１２０のリソース性能値をリソース管理装置１０１から取得する。そして、遊休リソース１２０内の最大のリソース性能値が割当済みリソースのリソース性能値よりも大きい場合、その値をステップＢ２において算出したサービス処理時間予測式に代入することにより、説明変数が同時処理メッセージ数だけのサービス処理時間予測式（最大処理能力時のサービス処理時間予測式）を導出する（ステップＢ５）。ステップＢ２で算出されたサービス処理時間予測式では、リソース性能値と同時処理メッセージ数が変数となっていたが、遊休リソース１２０の最大リソース性能値を予測式に代入し、リソース性能値を固定値とされている。この式にもとづいて、集中管理装置３００のサービス制御条件生成手段３０２がステップＢ３において算出された平均同時処理メッセージ数を代入することで、現時点での最大リソース性能値のリソースによるサービスの性能（サービスの平均処理時間）を求めることが可能となる。
【００７２】
なお、遊休リソース１２０内の最大のリソース性能値が割当済みリソースのリソース性能値よりも小さい場合は、現在割り当てられているリソース１００以上の性能の遊休リソース１２０が存在しないことになる。この場合は、リソース・サービス関連導出手段２１２は、現在割り当てられているリソース１００以上の性能の遊休リソース１２０が存在しない旨の情報を集中管理装置３００に送信するようにしてもよい。または、リソース・サービス関連導出手段２１２は、ステップＢ４の処理と同様に、割当済みリソースのリソース性能値を代入することにより、割当済みリソースのリソース性能値を固定値としたサービス処理時間予測式を導出して集中管理装置３００に送信するようにしてもよい。
【００７３】
以上のようにして算出された３種類のサービス管理情報は、リソース・サービス関連導出手段２１２によってリソース・サービス関連モデル格納装置２１７に格納される。
【００７４】
その後、リソース・サービス関連導出手段２１２は、上記３種類のサービス管理情報を集中管理装置３００に送信する（ステップＢ６）。
【００７５】
（３）サービス制御条件の作成：
次に、サービス制御条件を導出するまでの動作について説明する。図１０は、サービス制御条件作成処理を示すフローチャートである。サービス制御条件作成処理において、集中管理装置３００のサービス管理情報受付手段３０１は、各サービス管理装置２１０から送信されるサービス管理情報を受信して取得し、取得したサービス管理情報をサービス管理情報格納装置３１０に格納する（ステップＣ１）。
【００７６】
続いて、サービス制御条件生成手段３０２は、各サービスにおけるサービス管理情報と、業務フロー定義格納装置３２０に予め格納されている業務フロー定義とから、現時点の業務フロー処理時間（業務フロー全体の処理時間）を算出する（ステップＣ２）。
【００７７】
ここで、業務フロー定義の例を図１１に示す。業務フロー定義は、複数のサービスから構成される業務フローを定義（記述）したプログラムである。図１１に示す例では、各サービスの連携がＸＭＬで定義（記述）されている。図１１において、上段は、業務フローインスタンスが経由するサービスの情報が記述されており、下段は、業務フローの経路情報が記述されている。なお、図１１では、＜ｐｒｏｃｅｓｓｉｎｇＴｉｍｅ＞に記述されている式が各サービスにおけるサービス処理時間予測式（リソース・サービス関連モデル）である。
【００７８】
業務フロー処理時間は次のように算出される。サービス制御条件生成手段３０２は、業務フロー定義から業務フローを構成する複数のサービスを認識する。また、サービス管理情報格納装置３１０に格納されている各サービスにおける平均同時処理メッセージ数と現時点のサービス処理時間予測式を読み出す。そして、各サービスにおけるサービス処理時間予測式に平均同時処理メッセージ数を代入することにより、現時点における各サービスの処理時間を算出する。さらに、現時点における各サービスの処理時間を足し合わせることにより、現時点における業務フロー処理時間（業務フロー全体の処理時間）を算出する。
【００７９】
なお、図３に示したように業務フローが分岐している場合もある。この場合は、サービスＣとサービスＤのうち、サービス処理時間が長い方のサービスを選択して、そのサービス処理時間を足し合わせる。
【００８０】
次に、サービス制御条件生成手段３０２は、ステップＣ２にて算出した業務フロー処理時間が業務フロー制御条件格納装置３３０に格納されている業務フロー制御条件（業務フロー処理時間の上限）を満たしているか否かを判定する（ステップＣ３）。
【００８１】
この実施の形態では、業務フロー制御を実行する上で最低限守らなければならない業務フロー制御条件として、業務フロー処理時間の上限が定められている。そして、その業務フロー制御条件が業務フロー制御条件格納装置３３０に格納されている。ステップＣ３の処理では、業務フロー処理時間が業務フロー制御条件を満たしているか否かは、現時点の業務フロー処理時間が業務フロー処理時間の上限値以下であるかどうかによって判断される。
【００８２】
業務フロー処理時間が業務フロー制御条件を満たしている場合、すなわち、図１２に示すように現時点の業務フロー処理時間が予め定められた業務フロー処理時間の上限値以下である場合は、サービス制御条件生成手段３０２は、業務フロー制御条件格納装置３３０に格納されている各サービスにおける目標サービス処理時間を読み出して確認する（ステップＣ４）。そして、サービス制御条件生成手段３０２は、各サービスについて、現在のサービス処理時間が目標サービス処理時間以下であるか否かを確認し、目標サービス処理時間以下であるサービスに対して目標サービス処理時間をサービス制御条件に決定する（ステップＣ５）。
【００８３】
ここで、目標サービス処理時間は、その時点のサービスの負荷量（処理量）に対して適正なリソース性能値のリソース１００によるサービス処理時間である。従って、現在のサービス処理時間が目標サービス処理時間以下であるということは、現在、そのサービスに割り当てられているリソース１００のリソース性能値が適正なリソース性能値よりも過剰であることを意味する。よって、この場合は、現在のサービス処理時間を目標サービス処理時間に近づけるために、目標サービス処理時間をサービス制御条件としている。図１２に示す例では、サービスＡのサービス処理時間が目標サービス処理時間よりも短い時間であるので、サービスＡのサービス制御条件であるサービス処理時間の上限を目標サービス処理時間に設定する。
【００８４】
業務フロー処理時間が業務フロー制御条件を満たしていない場合、すなわち、図１３に示すように現時点の業務フロー処理時間が予め定められた業務フロー処理時間の上限値以上である場合は、サービス制御条件生成手段３０２は、業務フロー制御条件（業務フロー処理時間の上限）をサービス単位に分解（分割）して、各サービスにおけるサービス制御条件（サービス処理時間の上限）を決定する（ステップＣ６）。
【００８５】
具体的には、サービス制御条件生成手段３０２は、サービス管理情報格納装置３１０に格納されている各サービスにおける平均同時処理メッセージ数と最大処理能力時のサービス処理時間予測式を読み出す。そして、各サービスにおけるサービス処理時間予測式に平均同時処理メッセージ数を代入することにより、最大処理能力時における各サービスの処理時間（最小サービス処理時間）を算出する。そして、以下の２つの式を満たしつつ各サービスのサービス処理時間の上限が最大となるように、各サービスのサービス処理時間の上限を求める。
【００８６】
業務フロー処理時間の上限＝各サービスのサービス処理時間の上限の和・・・・（１）
【００８７】
各サービスのサービス処理時間の上限≧各サービスの最小サービス処理時間・・（２）
【００８８】
このような場合において、各サービスのサービス処理時間の上限の求め方には様々な方法が考えられる。例えば、各サービスの処理時間を均等に所定時間だけ短くすることによって（１），（２）式を満たすようにする場合や、目標サービス処理時間を超えた時間分に比例させて各サービスの処理時間を短くすることによって（１），（２）式を満たすようにする場合、目標サービス処理時間を大きく超えたサービス（１つあるいは２つのサービス）を特定し、そのように特定したサービスに対してだけ所定時間短くして（１），（２）式を満たすようにする場合などが考えられる。
【００８９】
その後、サービス制御条件発行手段３０３は、ステップＣ５またはＣ６にて決定された各サービスについてのサービス制御条件を各サービス管理装置２１０に送信（配布）する（ステップＣ７）。
【００９０】
（４）サービス制御条件にもとづく制御：
次に、サービス制御条件にもとづく制御について説明する。図１４は、リソース動的配分処理を示すフローチャートである。リソース動的配分処理において、サービス管理装置２１０の自律制御実行手段２１３は、集中管理装置３００から送られてきたサービス制御条件を受信して取得し、取得したサービス制御条件をサービス制御条件格納装置２１６に格納する（ステップＤ１）。このとき、サービス制御条件は、例えば図１５に示すように、サービス制御条件としてサービスＡの処理時間上限が１３０００（ｍｓ）であるものとする。
【００９１】
続いて、自律制御実行手段２１３は、現時点のサービス処理時間とサービス制御条件で指定されたサービス処理時間の上限とを比較する（ステップＤ２）。具体的には、リソース・サービス関連モデル格納装置２１７に格納されている平均同時処理メッセージ数と現時点のサービス処理時間予測式を読み出して取得し、そのサービス処理時間予測式に平均同時処理メッセージ数を代入することにより、現時点の予測サービス処理時間（平均サービス処理時間ともいう）を算出する。そして、現時点の予測サービス処理時間とサービス処理時間の上限とを比較する。
【００９２】
自律制御実行手段２１３は、現時点の予測サービス処理時間がサービス処理時間の上限を超えているか否かを判定する（ステップＤ３）。
【００９３】
現時点の予測サービス処理時間がサービス処理時間上限以下であるときは（ステップＤ３のＮｏ）、サービス処理時間を上限まで長くすることができる。従って、自律制御実行手段２１３は、サービス制御条件内でサービス処理時間を延長するためのリソース性能値を算出し、算出したリソース性能値を指定するリソース割当要求をリソース管理装置１０１に送信して、リソースの動的再配置（解放）を要求する（ステップＤ４）。具体的には、自律制御実行手段２１３は、リソース・サービス関連モデル格納装置２１７に格納されているサービス処理時間予測式（説明変数が同時処理メッセージ数とリソース性能値で、目的変数がサービス処理時間ある予測式）を読み出して、そのサービス処理時間予測式に平均同時処理メッセージ数とサービス処理時間の上限値を代入することにより、サービス制御条件に応じたリソース性能値を算出する。そして、自律制御実行手段２１３は、算出したリソース性能値を指定するリソース割当要求をリソース管理装置１０１に送信する。
【００９４】
一方、現時点の予測サービス処理時間がサービス処理時間上限以上であるときは、サービス処理時間を上限まで短くしなければならない。従って、自律制御実行手段２１３は、サービス制御条件を満たすために必要なリソース性能値を算出し、算出したリソース性能値を指定するリソース割当要求をリソース管理装置１０１に送信して、リソースの動的再配置（割当）を要求する（ステップＤ５）。具体的には、自律制御実行手段２１３は、上記と同様に、リソース・サービス関連モデル格納装置２１７に格納されているサービス処理時間予測式（説明変数が同時処理メッセージ数とリソース性能値で、目的変数がサービス処理時間ある予測式）を読み出して、そのサービス処理時間予測式に平均同時処理メッセージ数とサービス処理時間の上限値を代入することにより、サービス制御条件に応じたリソース性能値を算出する。そして、自律制御実行手段２１３は、算出したリソース性能値を指定するリソース割当要求をリソース管理装置１０１に送信する。
【００９５】
なお、現時点の予測サービス処理時間がサービス処理時間上限と同じ値であるときは、リソースの動的再配置をリソース管理装置１０１に要求する必要がないので、ステップＤ３の処理を実行しない。また、現時点の予測サービス処理時間がサービス処理時間上限と近い値である場合（例えば、現時点の予測サービス処理時間がサービス処理時間上限を基準とした所定範囲内の時間である場合）も、ステップＤ３の処理を実行しないようにしてもよい。
【００９６】
リソース管理装置１０１のリソース割当要求受付手段１０３は、サービス管理装置２１０から送られてくるリソース割当要求を受信すると、リソース割当要求をリソース割当実行手段１０４に送る。リソース割当実行手段１０４は、リソース割当要求にて要求（指定）されたリソース性能値を満たすリソース１００を選択し、選択したリソースに対してサービスを割り当てたことを示すリソース割当情報をサービス実行装置２００に送信して、リソース１００の動的再配置（割当・解放）を実行する（ステップＤ６）。
【００９７】
具体的には、リソース割当実行手段１０４は、リソース・サービス対応情報格納装置２０１に格納されているリソース・サービス対応情報を参照し、現時点においてどのリソースにどのサービスが割り当てられているかを確認する。そして、リソース割当要求を送信したサービス管理装置２１０が管理するサービスに対して現在割り当てられているリソース１００のリソース性能値とリソース割当要求で指定されたリソース性能値とを比較する。そして、リソース割当要求で指定されたリソース性能値以上のリソース１００（遊休リソース１２０）を当該サービスを実行させるリソースと決定する。
【００９８】
このとき、現在割り当てられているリソース１００のリソース性能値がリソース割当要求で指定されたリソース性能値よりも大きい値である場合は、過剰なリソース性能値のリソース１００が割り当てられていることになる。このため、現在よりもリソース性能値が小さく、かつ、リソース割当要求で指定されたリソース性能値よりも大きい値のリソース性能値を持つ遊休リソース１２０を割り当てることに決定する。または、現在割り当てられているリソース１００が複数ある場合には、トータルのリソース性能値がリソース割当要求で指定されたリソース性能値を下回らない範囲内で、所定のリソース１００の割り当てを解放することに決定する。
【００９９】
一方、現在割り当てられているリソース１００のリソース性能値がリソース割当要求で指定されたリソース性能値よりも小さい値である場合は、サービスに割り当てられているリソース１００のリソース性能値が足りないことになる。このため、リソース割当要求で指定されたリソース性能値よりも大きい値のリソース性能値を持つ遊休リソース１２０を割り当てることに決定する（この場合は、現在割り当てているリソース１００を解放する）。または、トータルのリソース性能値がリソース割当要求で指定されたリソース性能値を超えるように、現在割り当てられているリソース１００に追加して遊休リソース１２０を新たに割り当てることに決定する。
【０１００】
なお、現在割り当てられているリソース１００のリソース性能値とリソース割当要求で指定されたリソース性能値とが同じ値であれば、リソースの割当の変更（再配置）を行わない。また、現在割り当てられているリソース１００のリソース性能値とリソース割当要求で指定されたリソース性能値とが近い値のときも、リソースの割当の変更（再配置）を行わないようにしてもよい。
【０１０１】
サービス実行装置２００は、リソース管理装置１０１から送られるリソース割当情報に従って、他のサーバから送られてくるサービスの処理要求をリソース１００に分配してリソース１００にサービスを実行させる制御を行う。
【０１０２】
以上のように、この実施の形態によれば、複数のサービス管理装置２１０が、各々が管理する対象のサービスの実行状況を監視して、自律的なリソースの動的再配置を実行するとともに、集中管理装置３００が、業務フロー全体に対する各サービスの実行状況の分析し、分析結果にもとづいて各サービス管理装置２１０がリソース１００の動的再配置を実行するためのサービス制御条件を生成し、生成したサービス制御条件を各サービス管理装置２１０に送信し、各サービス管理装置２１０が、集中管理装置３００からのサービス制御条件に従って、リソースの動的再配置を実行するので、各々のサービスに対するリソース１００の動的再配置を迅速かつ適正に実行することができる。
【０１０３】
すなわち、従来の分散型制御では、サービス間の関係を考慮せずにサービス毎にリソースの動的配分を行うために、業務フロー全体における各々のサービスに対するリソース動的配分の適正さが保証できなかった。そこで、サービス間で交渉することによりサービス制御条件を決める自律分散制御方式を採用することも考えられるが、この場合は、常に多くのサービスと交渉して制御条件を決めるためにその時間的コストが大きくなってしまう。これに対し、この実施の形態では、集中型分析と分散型制御を統合することによりコミュニケーションをサービス（サービス管理装置２１０）と集中管理装置３００との間で行うだけで済むので、サービス間の関係を考慮したリソースの動的配分を行うことができるとともに、サービス制御条件を迅速に決定することができる結果、リソースの再配置も迅速に行うことができる。
【０１０４】
また、従来の集中型制御では、分散したサービスにおいて収集されたデータを分析することによりサービス制御条件を決め、そのサービス制御条件に従ってリソース動的配分を行っていたために、各々のサービスに対するリソースの動的配分を迅速に行うことができなかった。これに対し、この実施の形態では、集中管理装置３００がサービス制御条件を生成して各サービス管理装置２１０にサービス制御条件を配布し、各サービス管理装置２１０は、サービス制御条件に従ってリソース１００の動的再配置を実行するが、サービス管理装置２１０は、サービス制御条件が配布されたタイミングでのみリソース１００のリソースの動的再配置を行うのではなく、常時、測定情報を収集し、測定情報にもとづいてサービスを実行するのに適した性能のリソースを決定して再配置を実行している。つまり、サービス制御条件はサービス管理装置２１０が遵守すべき最低限の条件であって、その条件を遵守していれば、その範囲内で自由にリソースの割り当てを決定することができる。従って、従来の集中型制御よりもサービスの実行状況に応じて迅速にリソースの割り当てを決定し再配置することができる。
【０１０５】
また、リソース管理装置１０１が各サービス管理装置２１０からのリソース割当要求にもとづいて、サービスを実行させるリソースを決定するので、全てのリソースの割り当てをリソース管理装置１０１だけで管理することができるようになり、複数のサービスに対するリソースの割り当てを適正に実行することができる。すなわち、サービス管理装置２１０が各々独立してリソースの割り当てを決定し管理する場合は、複数のサービス管理装置２１０からのリソース割当要求が競合（重複）してしまうおそれもあるが、リソース管理装置１０１がサービス管理装置２１０からのリソース割当要求にもとづいてリソースの割り当てを一元管理することにより、そのような事態が生じることはない。また、全てのリソース１００（遊休リソース１２０）を効率よく活用することができるようになる。
【０１０６】
また、サービス管理装置２１０のリソース・サービス関連導出手段２１２が、サービスの測定情報と割当済みリソースのリソース性能値にもとづいてリソース・サービス関連モデルを生成することにより、所定の性能値のリソースに応じたサービスの処理時間を正確に推定することができる。また、集中管理装置３００も、リソース・サービス関連モデルを用いて処理時間を計算するので、サービスの処理時間を正確に推定することができるとともに、各サービス管理装置２１０における制御との整合をとることができる。
【０１０７】
また、集中管理装置３００のサービス制御条件生成手段３０２は、サービス制御条件（サービス処理時間上限）を業務フロー制御条件（業務フロー処理時間上限）にもとづいて決定しているので、業務フロー全体の処理時間上限に適合させて各サービスの処理時間上限を決定することができる。
【０１０８】
また、集中管理装置３００のサービス制御条件生成手段３０２は、サービスを実行していない遊休リソース１２０のうちで性能値が最大のリソース１２０がサービスを実行したときの最小サービス処理時間を予測式を用いて算出し、各サービス処理時間上限を最小サービス処理時間よりも長くするようにしているので、割り当てることが不可能な性能値のリソースに対するリソース割当要求がなされることがなくなり、リソースの動的再配置の制御の不具合が生じるのを防止することができる。
【０１０９】
また、リソース性能値計算手段１０２は、各リソースに対するベンチマークテストを実行してテスト結果を重回帰分析することによって、リソース情報を変数とした算出式を導出し、その算出式にリソース情報を代入することによりリソース性能値を導出しているので、サービスに応じたリソースの性能を定量的に評価することができるリソース性能値を容易かつ確実に算出することができる。
【０１１０】
また、リソース・サービス関連導出手段２１２は、一定時間に収集した測定情報とリソース性能値とを重回帰分析することによって、サービス処理時間を目的変数とし、リソース性能値と同時処理メッセージ数を説明変数とした予測式を算出することによって、リソースの性能とサービスとの関係を正確に定式化することができる。
【０１１１】
なお、上記の実施の形態において、リソース・サービス対応情報格納装置２０１は、サービス実行装置２００によって管理されていたが、リソース管理装置１０１によって管理される構成であってもよい。
【０１１２】
また、サービス制御条件生成手段３０２は、予測式を用いて各サービスの処理時間を計算し、各サービスの処理時間を足し合わせて業務フロー処理時間（業務フロー全体の処理時間）を算出するようにしていたが、サービス管理装置２１０から業務フローインスタンスの最初のサービスの実行開始時刻と最後のサービスの実行開始時刻の差を求めることにより業務フロー処理時間を算出するようにしてもよい。
【産業上の利用可能性】
【０１１３】
本発明は、複数のサービスを連携させる業務フローのパフォーマンスを維持させる用途に適用できる。
【図面の簡単な説明】
【０１１４】
【図１】本発明のネットワーク構成を示すブロック図である。
【図２】本発明の業務フロー制御システムの構成を示すブロック図である。
【図３】業務フローとサービスとの関係を示す説明図である。
【図４】リソース性能値算出処理を示すフローチャートである。
【図５】リソース情報およびリソース性能値の例を示す説明図である。
【図６】リソース・サービス関連モデル導出処理を示すフローチャートである。
【図７】サービス・リソース対応情報の例を示す説明図である。
【図８】サービスログの例を示す説明図である。
【図９】リソース・サービス関連モデルの例を示す説明図である。
【図１０】サービス制御条件作成処理を示すフローチャートである。
【図１１】業務フロー定義の例を示す説明図である。
【図１２】目標サービス処理時間をサービス制御条件に設定する例を示す説明図である。
【図１３】業務フロー制御条件をサービス単位のサービス制御条件に分解する例を示す説明図である。
【図１４】リソース動的配分処理を示すフローチャートである。
【図１５】サービス制御条件の例を示す説明図である。
【符号の説明】
【０１１５】
１００    リソース（サーバ装置）
１０１    リソース管理装置
１０２    リソース性能値計算手段
１０３    リソース割当要求受付手段
１０４    リソース割当実行手段
１１０    リソース性能値格納装置
１２０    遊休リソース
２００    サービス実行装置
２０１    リソース・サービス対応情報格納装置
２１０    サービス管理装置
２１１    監視手段
２１２    リソース・サービス関連導出手段
２１３    自律制御実行手段
２１４    リソース割当要求手段
２１５    サービスログ格納装置
２１６    サービス制御条件格納装置
２１７    リソース・サービス関連モデル格納装置
３００    集中管理装置
３０１    サービス管理情報受付手段
３０２    サービス制御条件生成手段
３０３    サービス制御条件発行手段
３１０    サービス管理情報格納装置
３２０    業務フロー定義格納装置
３３０    業務フロー制御条件格納装置
【図１】
2007241667.tif 000003
【図２】
2007241667.tif 000004
【図３】
2007241667.tif 000005
【図４】
2007241667.tif 000006
【図５】
2007241667.tif 000007
【図６】
2007241667.tif 000008
【図７】
2007241667.tif 000009
【図８】
2007241667.tif 000010
【図９】
2007241667.tif 000011
【図１０】
2007241667.tif 000012
【図１１】
2007241667.tif 000013
【図１２】
2007241667.tif 000014
【図１３】
2007241667.tif 000015
【図１４】
2007241667.tif 000016
【図１５】
2007241667.tif 000017