(57)【特許請求の範囲】
【請求項１】
複数の処理単位のシーケンスの実行要求であるワークフローを入力するシステムであって、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれに割り当てられた処理単位を実行する複数の処理部と接続されて、
ワークフローごとに実行される処理単位の順序を定義するワークフロー定義を設定するワークフロー定義設定手段と、
前記ワークフロー定義設定手段で設定したワークフロー定義に従って、前記複数の処理部を経由させることによって処理が完了されたワークフローの品質（サービス提供品質）の許容できる下限値を、前記ワークフローごとに設定するサービス提供品質下限値設定手段と、
前記複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部にワークフローが到来してからその処理部での処理が完了するまでの処理時間を、その処理部がそのワークフロー１つを専ら処理する場合の処理時間、及び、複数の処理要求が競合した場合の競合処理方法に応じて処理部ごとに算出し、これら処理部ごとの処理時間をワークフローごとに積算することで、それぞれのワークフローのサービス提供品質を算出するサービス提供品質算出手段と、
前記サービス提供品質算出手段によって算出された、ワークフローのいずれかのサービス提供品質が下限値を下回るとき、これを判別する品質非到達判別手段と、
前記品質非到達判別手段が、いずれかのワークフロー（下回りワークフロー）のサービス提供品質が下限値を下回ることを判別したとき、前記複数の処理部における少なくとも１つの処理部に対する計算機資源の量を再配分することで前記下回りワークフローのサービス提供品質が下限値を下回ることを回避させる計算機資源再配分手段とを具備することを特徴とするワークフロー監視制御システム。
【請求項２】
前記計算機資源再配分手段は、前記複数の処理部のいずれにも使用していない予備的な計算機資源を管理する計算機資源管理手段と、下限値を下回らないワークフローの数が最大数となるように、それぞれのワークフローが前記複数の処理部のいずれかに到来してから当該処理部での処理単位が開始されるまでの時間（待機時間）の調整を行う待機時間調整手段と、前記待機時間調整手段による待機時間の調整後も前記品質非到達判別手段が前記サービス提供品質の下限値を下回るワークフローが存在すると判別するとき、前記複数の処理部における計算機資源の量を前記計算機資源管理手段で管理されている計算機資源の範囲内で増加させる計算機資源増加手段とを具備することを特徴とする請求項１記載のワークフロー監視制御システム。
【請求項３】
前記計算機資源再配分手段は、サービス提供品質が所定範囲を超えて下限値を上回るワークフローが存在するとき、そのワークフローを実行した前記複数の処理部のいずれかの計算機資源量を削減させる計算機資源削減手段とを具備することを特徴とする請求項１記載のワークフロー監視制御システム。
【請求項４】
前記サービス提供品質算出手段は、ワークフローのそれぞれについて、前記複数の処理部のおのおのにおける処理単位の開始時刻と終了時刻を算出することを特徴とする請求項１記載のワークフロー監視制御システム。
【請求項５】
前記サービス提供品質算出手段は、前記複数の処理部のそれぞれについて、計算機資源の量に対する前記処理部の処理単位の開始から終了までの所要時間を示すテーブルを備えており、前記計算機資源増加手段は、前記テーブルを用いて、計算機資源を追加すべき処理部と追加量を決定することを特徴とする請求項２記載のワークフロー監視制御システム。
【請求項６】
前記サービス提供品質算出手段は、前記複数の処理部のそれぞれについて、計算機資源の量に対する前記処理部の処理単位の開始から終了までの所要時間を示すテーブルを備えており、前記計算機資源削減手段は、前記テーブルを用いて、計算機資源を削減する処理部と削減量を算出することを特徴とする請求項３記載のワークフロー監視制御システム。
【請求項７】
計算機資源再配分手段は、前記複数の処理部のいずれかにおける業務アプリケーションソフトウェアを実行する業務アプリケーション実行部の数の増減を行うことで計算機資源の量を再配分することを特徴とする請求項１記載のワークフロー監視制御システム。
【請求項８】
前記複数の処理部のそれぞれは、ワークフローのサービス提供品質が、下限値を下回らない範囲内で、最も優先度の高いワークフローから順に１つずつ処理を開始することを特徴とする請求項１記載のワークフロー監視制御システム。
【請求項９】
前記複数の処理部のそれぞれは、ワークフローのサービス提供品質が、下限値を下回らない範囲内で、優先度を設けることなく時分割で処理することを特徴とする請求項１記載のワークフロー監視制御システム。
【請求項１０】
複数の処理単位のシーケンスの実行要求であるワークフローを入力して、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれに割り当てられた処理単位を実行する複数の処理部のそれぞれを予め定めた順番で経由させることでワークフローを実行させるとき、前記複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部にワークフローが到来してからその処理部での処理が完了するまでの処理時間を、その処理部がそのワークフロー１つの処理要求を専ら処理する場合の処理時間、及び複数の処理要求が競合した場合の競合処理方法に応じて処理部ごとに算出し、これら処理部ごとの処理時間をワークフローごとに積算することで、それぞれのワークフローの業務の完了時における品質（サービス提供品質）を算出し、
ワークフローのいずれかのサービス提供品質が、ワークフロー対応に定められた下限値を下回るとき、これを判別し、
何れかのワークフロー（下回りワークフロー）のサービス提供品質が下限値を下回ることを判別したとき、前記複数の処理部の少なくとも１つの処理部に対する計算機資源の量を再配分することで前記下回りワークフローのサービス提供品質が下限値を下回ることを回避させるワークフロー監視制御方法。
【請求項１１】
下限値を下回らないワークフローの数が最大数となるように、それぞれのワークフローが前記複数の処理部のいずれかに到来してから当該処理部での処理単位が開始されるまでの時間（待機時間）の調整を行い、待機時間の調整後も下限値を下回るワークフローが存在すると判別するとき、前記複数の処理部における計算機資源の量を所定の予備的な計算機資源の範囲内で増加させることを特徴とする請求項１０記載のワークフロー監視制御方法。
【請求項１２】
複数の処理単位のシーケンスの実行要求であるワークフローを入力して、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれに割り当てられた処理単位を実行する複数の処理部のそれぞれを予め定めた順番で経由させることでワークフローを実行させるコンピュータに、
前記複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部にワークフローが到来してからその処理部での処理が完了するまでの処理時間を、その処理部がそのワークフロー１つの処理要求を専ら処理する場合の処理時間、及び、複数の処理要求が競合した場合の競合処理方法に応じて処理部ごとに算出し、これら処理部ごとの処理時間をワークフローごとに積算することで、それぞれのワークフローの業務の完了時における品質（サービス提供品質）を算出するサービス提供品質算出処理と
ワークフローのいずれかのサービス提供品質が、ワークフロー対応に定められた下限値を下回るとき、これを判別する品質非到達判別処理と、
いずれかのワークフロー（下回りワークフロー）のサービス提供品質が下限値を下回ることを判別したとき、前記複数の処理部の少なくとも１つの処理部に対する計算機資源の量を再配分することで前記下回りワークフローのサービス提供品質が下限値を下回ることを回避させる計算機資源再配分処理とを実行させることを特徴とするワークフロー監視制御プログラム。
【請求項１３】
下限値を下回らないワークフローの数が最大数となるように、それぞれのワークフローが前記複数の処理部のいずれかに到来してから当該処理部での処理単位が開始されるまでの時間（待機時間）の調整を行う待機時間調整処理と、この待機時間調整処理による待機時間の調整後も下限値を下回るワークフローが存在すると判別するとき、前記複数の処理部における計算機資源の量を所定の予備的な計算機資源の範囲内で増加させる計算機資源増加処理とを実行させることを特徴とする請求項１２記載のワークフロー監視制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー監視制御システム、ワークフロー監視制御方法およびワークフロー監視制御プログラムに係わり、特に、業務の処理を構成する処理単位の流れであるワークフローを、処理単位ごとに対応するアプリケーションソフトウェアを使用して処理するのに好適なワークフロー監視制御システム、ワークフロー監視制御方法およびワークフロー監視制御プログラムに関する。
【背景技術】
【０００２】
複数のサービスを連携して動作させるときに、ユーザの要求の中でも特にレスポンス要件を保証して複数のサービスを組み合わせて実行するようにしたサービス制御システムが本発明の第１の関連技術として提案されている（たとえば特許文献１参照）。
図１０３は、この第１の関連技術によるサービス制御システムの構成を表わす。このサービス制御システム１００は、サービスを提供する第１および第２のサービスプロバイダ１０１、１０２と、サービスを要求するクライアントであるサービスリクエスタ１０３と、第１および第２のサービスプロバイダ１０１、１０２のいずれかが提供する提供サービスを複数組み合わせてサービスリクエスタ１０３に提供するサービスコーディネータ１０４を備えている。
このようなサービス制御システム１００でサービスコーディネータ１０４は、サービスリクエスタ１０３から送られてくるリクエスト情報を受信する受信部１１１と、リクエスト情報の受け付けを拒否する受付拒否情報をサービスリクエスタ１０３に送信する送信部１１２と、複数のサービスを連携して動作させるための連携サービス管理部１１３と、連携サービス管理部１１３の判断結果に基づいて、受信部１１１により受信されたリクエスト情報によって求められるサービスグループの各サービスを実行する実行部１１４と、第１のサービスプロバイダ１０１が提供する提供サービス１１５と、第１のサービスプロバイダ１０１が提供するサービスの処理状況を示す負荷情報１１６とを記憶する記憶装置（記憶部）１１７とを備えている。
サービス制御システム１００で、サービスリクエスタ１０３は複数のサービスの内の、いずれかをグループとして組み合わせたサービスグループの各サービスを提供することを求めるリクエスト情報を送信する。サービスコーディネータ１０４内の受信部１１１が、このリクエスト情報を受信して連携サービス管理部１１３に供給する。連携サービス管理部１１３は、前記したサービスグループの各サービスの現在の提供状況を管理している。連携サービス管理部１１３は、記憶装置１１７により記憶された複数のサービス提供条件情報が示すサービス提供条件に基づいて、受信部１１１により受信されたリクエスト情報が求めるサービスグループの各サービス提供が可能かどうかを判断する。
サービスコーディネータ１０４内の実行部１１４は、連携サービス管理部１１３が判断した結果に基づいて、受信部１１１によってサービスプロバイダ１０１から受信されたサービスグループの各サービスを実行し、実行結果をサービスリクエスタ１０３に提供する。また、送信部１１２は、連携サービス管理部１１３が受信部１１１により受信されたリクエスト情報が求めるサービスグループの各サービス全部を提供することが可能であると判断したか否かを判別する。そして、各サービス全部を提供できない場合には、受信部１１１により受信されたリクエスト情報の受け付けを拒否する受付拒否情報をサービスリクエスタ１０３に送信する。
これに対して図１０４は、第２の関連技術によるサービス制御システムの構成を表わす。このサービス制御システム１３０を構成する分散サービス制御装置１４０は、複数のサーバがメッセージ交換により連携して動作するシステム中に配置される。分散サービス制御装置１４０は、サービスを実行するサーバ（メッセージ処理部）１６０の前段に中継装置として配置される。
この分散サービス制御装置１４０のメッセージ受信制御部１４１は、図示しない他サーバからの処理要求メッセージ１４２の受信を制御する。メッセージ状態管理部１４３は、メッセージ重み計算部１４４と、メッセージ重み保管部１４５を備えている。メッセージ重み計算部１４４は、メッセージ受信制御部１４１から処理要求メッセージ１４２が送られてきたら、所定のメッセージ重みルールに基づいて、処理要求メッセージ１４２に対する処理量、すなわちサーバ１６０での処理時間の予測値を計算する。メッセージ重み計算部１４４は、計算したサーバ１６０での処理量を、メッセージ重み情報としてメッセージ重み保管部１４５に保管する。
メッセージキュー１４７は、サーバ１６０への処理要求メッセージ１４２を一時的に蓄積する。処理要求管理部１４８は、複数の実行可能なスレッド１４９と、スレッド群制御部１５０を備えており、処理要求メッセージ１４２をサーバ１６０に送信してその処理を実行させる。ここでスレッド群制御部１５０は、スレッド１４９の管理と処理の割り当てを行う。スレッド１４９は、処理要求メッセージ１４２をサーバ１６０に送信し、処理を実行させる。このスレッド１４９の数が、サーバ１６０上の並列処理数となる。
サービス品質性能保管部１５１は、サーバ１６０の性能要件として、満たされるべきサービス品質要件に関する情報を保管する。制御ルール決定部１５２は、処理要求メッセージ１４２に対する処理時間とサービス品質要件に基づいて、メッセージキュー１４７のサイズと、処理要求管理部１４８における処理要求メッセージ１４２の並列処理数の制御を行う。制御ルール決定部１５２は、メッセージ重みルールを利用して計算されたメッセージ重み情報（サーバ処理量）と、実際のサーバ１６０での処理時間の測定結果とを用いて、メッセージ重みルールの補正（学習）を行う。
このような構成のサービス制御システム１３０では、メッセージキュー１４７に格納された処理要求メッセージ１４２に対するサーバ１６０での処理量をメッセージ重み計算部１４４が計算する。スレッド１４９は、メッセージキュー１４７から処理要求メッセージ１４２を取り出して、サーバ１６０に処理を実行させる。制御ルール決定部１５２は、サービス品質要件を満たすように、メッセージキュー１４７のサイズと、スレッド１４９の並列処理数とを決定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３６２４４９号公報（第０００９段落〜第００１８段落、図１）
【特許文献２】特開２００８−０７７２６６号公報（第００２９段落、第００３１段落〜第００３４段落、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような本発明に関連する関連技術のうちで、図１０３に示した第１の関連技術は、サービスの処理時間が所定の基準時間内に終了するという合意サービス水準（ＳＬＡ：Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）を達成するために、予備のサービスプロバイダとしての第２のサービスプロバイダ１０２を必要とする。その理由は、サービス制御システム１００は、同一のサービスを提供する複数のサービスプロバイダから適当なサービスプロバイダを選択できるようにして、１つのサービスプロバイダが使用中のときに他のサービスプロバイダを代わって使用できるようにすると共に、同一のサービスの提供を受けるときの待ち時間の短縮を図って、合意サービス水準を達成できるようにしているためである。
図１０４に示した第２の関連技術は、サービス品質要件を満たすことができなくなると予想されるときには、処理要求メッセージ１４２の処理数を抑制している。この一方で、第２の関連技術は、サービス品質要件が満たすことができると予想されるときには、処理要求メッセージ１４２の処理数を増加させている。これにより、第２の関連技術は、サービス品質を満たしつつ、サーバの処理能力を最大限に引き出した処理を行っている。したがって、幾つかのサービスに対して合意サービス水準を共に達成しようとすると、必要な計算機資源量が大きくなる。
更に、これら第１および第２の関連技術は、合意サービス水準の達成、すなわち、一般にはサービスを提供する際の品質としてのサービス提供品質の下限値を満たす為に、各サービスの実行に十分な計算機資源を割り当てようとする。しかしながら、全体としてのサービス提供品質の下限値が達成できるのであれば、個々のサービスの水準は問わないという場合も存在する。このような場合、第１および第２の関連技術で必要とされる計算機資源量は過大であり、無駄が発生するという問題がある。
本発明の目的は、業務アプリケーションソフトウェアをそれぞれ備えた複数の処理部がワークフローの単位処理を実行するとき、限られた計算機資源で、可能な限り多くのワークフローがサービス提供品質の下限値を満たすことのできるワークフロー監視制御システム、ワークフロー監視制御方法およびワークフロー監視制御プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一実施形態のワークフロー監視制御システムは、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれに割り当てられた範囲の業務処理（処理単位）を実行する複数の処理部と接続されて、
業務処理の処理要求（ワークフロー）ごとに実行される処理単位の順序を定義するワークフロー定義を設定するワークフロー定義設定手段と、
前記ワークフロー定義設定手段で設定したワークフロー定義に従って、前記複数の処理部によって処理が完了されたワークフローの品質（サービス提供品質）の許容できる下限値を、前記ワークフローごとに設定するサービス提供品質下限値設定手段と、
前記複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部にワークフローが到来してからその処理部での処理が完了するまでの処理時間を、その処理部がそのワークフロー１つを専ら処理する場合の処理時間、及び、複数の処理要求が競合した場合の競合処理方法に応じて処理部ごとに算出し、これら処理部ごとの処理時間をワークフローごとに積算することで、それぞれのワークフローのサービス提供品質を算出するサービス提供品質算出手段と、
前記サービス提供品質算出手段によって算出された、ワークフローのいずれかのサービス提供品質が下限値を下回るとき、これを判別する品質非到達判別手段と、
前記品質非到達判別手段が、いずれかのワークフロー（下回りワークフロー）のサービス提供品質が下限値を下回ることを判別したとき、前記複数の処理部における少なくとも１つの処理部に対する計算機資源の量を再配分することで前記下回りワークフローのサービス提供品質が下限値を下回ることを回避させる計算機資源再配分手段とを具備することを特徴とする。
本発明の一実施形態のワークフロー監視制御方法は、業務処理の処理要求（ワークフロー）を入力して、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれに割り当てられた範囲の業務処理（処理単位）を実行する複数の処理部のそれぞれを予め定めた順番で経由させることでワークフローを実行させるとき、前記複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部にワークフローが到来してからその処理部での処理が完了するまでの処理時間を、その処理部がそのワークフロー１つの処理要求を専ら処理する場合の処理時間、及び、複数の処理要求が競合した場合の競合処理方法に応じて処理部ごとに算出し、
これら処理部ごとの処理時間をワークフローごとに積算することで、それぞれのワークフローの業務の完了時における品質（サービス提供品質）を算出し、ワークフローのいずれかのサービス提供品質が、ワークフロー対応に定められた下限値を下回るとき、これを判別し、
何れかのワークフロー（下回りワークフロー）のサービス提供品質が下限値を下回ることを判別したとき、前記複数の処理部の少なくとも１つの処理部に対する計算機資源の量を再配分することで前記下回りワークフローのサービス提供品質が下限値を下回ることを回避させる。
本発明の一実施形態のワークフロー監視制御プログラムは、業務処理の処理要求（ワークフロー）を入力して、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれに割り当てられた範囲の業務処理（処理単位）を実行する複数の処理部のそれぞれを予め定めた順番で経由させることでワークフローを実行させるコンピュータに、
前記複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部にワークフローが到来してからその処理部での処理が完了するまでの処理時間を、その処理部がそのワークフロー１つの処理要求を専ら処理する場合の処理時間、及び、複数の処理要求が競合した場合の競合処理方法に応じて処理部ごとに算出し、これら処理部ごとの処理時間をワークフローごとに積算することで、それぞれのワークフローの業務の完了時における品質（サービス提供品質）を算出するサービス提供品質算出処理と
ワークフローのいずれかのサービス提供品質が、ワークフロー対応に定められた下限値を下回るとき、これを判別する品質非到達判別処理と、
いずれかのワークフロー（下回りワークフロー）のサービス提供品質が下限値を下回ることを判別したとき、前記複数の処理部の少なくとも１つの処理部に対する計算機資源の量を再配分することで前記下回りワークフローのサービス提供品質が下限値を下回ることを回避させる計算機資源再配分処理とを実行させることを特徴とする。
【発明の効果】
【０００６】
本発明は、業務の開始を担当する処理部から業務の完了を担当する処理部までの複数の処理部を予め定めた順番で経由して実行される、各ワークフローの処理完了時点のサービス提供品質を事前に予測することを可能にする。そして、予測したサービス提供品質がサービス提供品質の下限値を下回るワークフローが存在する場合、本発明は、各処理部に対する計算機資源の量を再配分することを可能にする。これにより、本発明は計算機資源の有効活用を図り、より多くのワークフローがサービス提供品質の下限値を満足することを可能とする。
【図面の簡単な説明】
【０００７】
【図１】本発明のワークフロー監視制御システムの一構成例である。
【図２】本発明のワークフロー監視制御方法の一構成例である。
【図３】本発明のワークフロー監視制御プログラムの一構成例である。
【図４】本発明が実施されるワークフロー実行システムの一般的な通信環境を表わした説明図である。
【図５】本発明の実施の形態によるワークフロー監視制御システムとその周辺の概要を表わしたシステム構成図である。
【図６】本実施の形態における通信制御システムを中心とした各システムの構成を表わしたブロック図である。
【図７】本実施の形態のワークフロー監視制御システムの全体的な処理動作を示す流れ図である。
【図８】本実施の形態による最適優先制御結果計算部の「フローＡ」としての処理を表わした流れ図である。
【図９】本実施の形態による最適優先制御結果計算部の「フローＢ」としての処理を表わした流れ図である。
【図１０】本実施の形態における計算機資源追加決定部の処理の様子を表わした流れ図である。
【図１１】本実施の形態における計算機資源削減決定部の動作を示した流れ図である。
【図１２】本発明の一動作例におけるワークフロー実行システムの構成の一部を表わしたシステム構成図である。
【図１３】本動作例で使用される各業務アプリケーションの性能特性を表わした説明図である。
【図１４】本動作例でそれぞれの業務アプリケーションに初期状態で割り当てられた計算機資源量を示した説明図である。
【図１５】本動作例で時刻０から合成ワークフローが実行されているときの時刻６６０のワークフロー監視制御システムの状態を示したシステム構成図である。
【図１６】本動作例で時刻０から合成ワークフローが実行されているときの時刻６６０に実行されている合成ワークフローの状態を示した説明図である。
【図１７】本動作例で起動制御部が状態観測部を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示した説明図である。
【図１８】本動作例で予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わした説明図である。
【図１９】本動作例で計算機資源を最初に追加した場合の合成ワークフローの状態を示した説明図である。
【図２０】本動作例で計算機資源を２番目に追加する場合の各業務アプリケーションに対する予想待ち時間改善量を表わした説明図である。
【図２１】本動作例で計算機資源を２番目に追加した場合における合成ワークフローの状態を示した説明図である。
【図２２】本動作例で計算機資源を３番目に追加する場合の各業務アプリケーションに対する予想待ち時間改善量を表わした説明図である。
【図２３】本動作例で計算機資源が３番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図２４】本動作例で計算機資源を４番目に追加する場合の各業務アプリケーションに対する予想待ち時間改善量を表わした説明図である。
【図２５】本動作例で計算機資源が４番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図２６】本動作例で計算機資源を５番目に追加する場合の各業務アプリケーションに対する予想待ち時間改善量を表わした説明図である。
【図２７】本動作例で計算機資源が５番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図２８】本動作例で計算機資源を６番目に追加する場合の各業務アプリケーションに対する予想待ち時間改善量を表わした説明図である。
【図２９】本動作例で計算機資源が６番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図３０】本動作例で計算機資源を７番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図３１】本動作例で計算機資源が７番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図３２】本動作例で時刻７２０の時点に起動制御部が状態観測部を再度起動した場合における合成ワークフローの状態を示した説明図である。
【図３３】本動作例で時刻６６０の時点と同様に将来を予測した場合の合成ワークフローの状態を示した説明図である。
【図３４】本動作例で時刻０から合成ワークフローが実行された場合の時刻６６０に実行されている合成ワークフローの状態を示した説明図である。
【図３５】本動作例で時刻６６０に起動制御部が状態観測部を初めて起動した場合の状態観測部が取得する合成ワークフローの状態を示した説明図である。
【図３６】本動作例で最適優先制御結果計算部が予測部を用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示した説明図である。
【図３７】本動作例で計算機資源削減決定部の求めた各業務アプリケーションの利用率を表わした説明図である。
【図３８】本発明の第１の変形例におけるワークフロー監視制御システムの通信環境についてその要部を表わした説明図である。
【図３９】第１の変形例におけるワークフロー監視制御システムとその周辺のシステム構成図である。
【図４０】第１の変形例におけるワークフロー監視制御システムの全体的な処理動作の概要を表わした流れ図である。
【図４１】第１の変形例における計算機資源追加決定部の処理の様子を表わした流れ図である。
【図４２】第１の変形例における計算機資源削減決定部の処理を示した流れ図である。
【図４３】第１の変形例におけるワークフロー監視制御システムの具体的な構成を表わしたシステム構成図である。
【図４４】第１の変形例で使用される各業務アプリケーションの性能特性を表わした特性図である。
【図４５】第１の変形例でそれぞれの業務アプリケーションに初期状態で割り当てられた計算機資源量を示した説明図である。
【図４６】第１の変形例で時刻０から合成ワークフローが実行されているときの時刻６６０におけるワークフロー監視制御システムの状態を示した説明図である。
【図４７】第１の変形例の起動制御部が状態観測部を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示したで説明図ある。
【図４８】第１の変形例における最適優先制御結果計算部の計算した予測結果を示した説明図である。
【図４９】第１の変形例における予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わした説明図である。
【図５０】第１の変形例で計算機資源を最初に追加した場合の合成ワークフローの状態を示した説明図である。
【図５１】第１の変形例で計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図５２】第１の変形例で計算機資源を２番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図５３】第１の変形例で計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図５４】第１の変形例で計算機資源を３番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図５５】第１の変形例で計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図５６】第１の変形例で計算機資源を４番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図５７】第１の変形例で計算機資源を５番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図５８】第１の変形例で計算機資源を５番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図５９】第１の変形例で時刻７２０の時点に起動制御部が状態観測部を再度起動した場合における合成ワークフローの状態を示した説明図である。
【図６０】第１の変形例における時刻６６０の時点と同様に将来を予測した場合の合成ワークフローの状態を示した説明図である。
【図６１】第１の変形例における時刻６６０に実行されている合成ワークフローの状態を示したシステム構成図である。
【図６２】第１の変形例における時刻６６０に起動制御部が状態観測部を初めて起動した場合の状態観測部が取得する合成ワークフローの状態を示した説明図である。
【図６３】第１の変形例で最適優先制御結果計算部が予測部を用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示した説明図である。
【図６４】本発明の第２の変形例としてのワークフロー監視制御システムの通信環境を表わした説明図である。
【図６５】第２の変形例におけるワークフロー監視制御システムとその周辺のシステム構成の要部を表わしたシステム構成図である。
【図６６】第２の変形例におけるワークフロー監視制御システムの全体的な処理動作の概要を表わした流れ図である。
【図６７】第２の変形例で時刻６６０におけるワークフロー監視制御システムの状態を示した流れ図である。
【図６８】第２の変形例で起動制御部が状態観測部を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示した説明図である。
【図６９】第２の変形例ですべての合成ワークフローが完了するまでの合成ワークフローの動作の予測結果を表わした説明図である。
【図７０】第２の変形例で予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わした説明図である。
【図７１】第２の変形例で計算機資源が最初に追加された場合の合成ワークフローの状態を示した説明図である。
【図７２】第２の変形例で計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図７３】第２の変形例で計算機資源を２番目に追加した場合における合成ワークフローの状態を示した説明図である。
【図７４】第２の変形例で計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図７５】第２の変形例で計算機資源が３番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図７６】第２の変形例で計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図７７】第２の変形例で計算機資源が４番目に追加された場合における合成ワークフローの状態を示した説明図である。
【図７８】第２の変形例で計算機資源を５番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図７９】第２の変形例で計算機資源を５番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図８０】第２の変形例で計算機資源を６番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図８１】第２の変形例で計算機資源を６番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図８２】第２の変形例で時刻７８０の時点に起動制御部が状態観測部を再度起動した場合における合成ワークフローの状態を示した説明図である。
【図８３】第２の変形例で時刻６６０の時点と同様に将来を予測した場合の合成ワークフローの状態を示した説明図である。
【図８４】第２の変形例で時刻６６０に実行されている合成ワークフローの状態を示した説明図である。
【図８５】第２の変形例で時刻６６０に起動制御部が状態観測部を初めて起動した場合の状態観測部が取得する合成ワークフローの状態を示した説明図である。
【図８６】第２の変形例で最適優先制御結果計算部が予測部を用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示した説明図である。
【図８７】本発明の第３の変形例としてのワークフロー監視制御システムの通信環境を表わした説明図である。
【図８８】第３の変形例におけるワークフロー監視制御システムとその周辺のシステム構成の要部を表わしたシステム構成図である。
【図８９】第３の変形例で起動制御部が状態観測部を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示した説明図である。
【図９０】第３の変形例における最優先制御のみの場合の予測結果を表わした説明図である。
【図９１】第３の変形例で予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わした説明図である。
【図９２】第３の変形例で計算機資源が最初に追加された場合の合成ワークフローの状態を示した説明図である。
【図９３】第３の変形例で計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図９４】第３の変形例で計算機資源を２番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図９５】第３の変形例で計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図９６】第３の変形例で計算機資源を３番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図９７】第３の変形例で計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わした説明図である。
【図９８】第３の変形例で計算機資源を４番目に追加した場合の合成ワークフローの状態を示した説明図である。
【図９９】第３の変形例で時刻７２０の時点に起動制御部が状態観測部を再度起動した場合における合成ワークフローの状態を示した説明図である。
【図１００】第３の変形例で時刻６６０の時点と同様に将来を予測した場合の合成ワークフローの状態を示した説明図である。
【図１０１】第３の変形例で時刻６６０に起動制御部が状態観測部を初めて起動した場合の状態観測部が取得する合成ワークフローの状態を示した説明図である。
【図１０２】第３の変形例で最適優先制御結果計算部が予測部を用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示した説明図である。
【図１０３】本発明の第１の関連技術によるサービス制御システムのシステム構成図である。
【図１０４】本発明の第２の関連技術によるサービス制御システムのシステム構成図である。
【符号の説明】
【０００８】
１０  ワークフロー監視制御システム
１１  処理部
１２  ワークフロー定義設定手段
１３  サービス提供品質下限値設定手段
１４  サービス提供品質算出手段
１５  品質非到達判別手段
１６  計算機資源再配分手段
２０  ワークフロー監視制御方法
２１  サービス提供品質算出ステップ
２２  品質非到達判別ステップ
２３  計算機資源再配分ステップ
３０  ワークフロー監視制御プログラム
３１  サービス提供品質算出処理
３２  品質非到達判別処理
３３  計算機資源再配分処理
２０１  サブネットワーク
２０２  ルータ
２０３  業務アプリケーション
２０４  ワークフローシステム
２０５、２０５Ａ、２０５Ｂ  ワークフロー監視制御システム
２０６  通信監視システム
２０７  通信制御システム
２０８  ワークフロー監視システム
２０９、２０９Ａ、２０９Ｂ、２０９Ｃ  業務アプリケーション制御システム
２１０  業務システム
２１１  ワークフロー定義・業務定義リポジトリ
２１２  合意サービス水準リポジトリ
２１３  業務システムリポジトリ
２２１  ワークフロー定義・業務定義取得部
２２２  ワークフロー合成部
２２３  合成ワークフロー定義ＤＢ
２２４  監視情報受信部
２２５  監視情報解析部
２２６  監視情報格納ＤＢ
２２７  起動制御部
２２８  状態観測部
２２９、２２９Ａ、２２９Ｂ、２２９Ｃ  最適優先制御結果計算部
２３０、２３０Ａ、２３０Ｂ、２３０Ｃ  検証部
２３１、２３１Ａ、２３１Ｂ、２３１Ｃ  計算機資源追加決定部
２３２、２３２Ａ、２３２Ｂ、２３２Ｃ  計算機資源削減決定部
２３３、２３３Ａ、２３３Ｂ、２３３Ｃ  予測部
２３４  制御履歴格納ＤＢ
２３５  制御信号送信部
２３６  目標状態管理部
２３７  制御システム格納ＤＢ
２４２  通信情報保持部
２４３  通信制御部
２４５  制御信号受信部
２４６  制御情報保持部
４００、４００Ａ、４００Ｂ  ワークフロー実行システム
５０１  業務アプリケーション（ＡＰ）実行部
（ａ１）〜（ｆ１）、（ａ２）〜（ｆ２）  合成ワークフロー
【発明を実施するための最良の形態】
【０００９】
図１は、本発明のワークフロー監視制御システムの一構成例を示す。本発明のワークフロー監視制御システム１０は、複数の処理部と接続され、ワークフロー定義設定手段１２と、サービス提供品質下限値設定手段１３と、サービス提供品質算出手段１４と、品質非到達判別手段１５と、計算機資源再配分手段１６とを備えている。
ここで、各処理部（例えば、クラスターシステム）は、業務アプリケーションソフトウェアと計算機資源（例えば、各コンピュータ）を用いて、それぞれに割り当てられた範囲の業務処理（処理単位）を実行する。
ワークフロー定義設定手段１２は、ワークフロー定義を記憶域に設定する。
ここで、ワークフローは、業務の処理要求の各々（処理要求のインスタンス）を意味する。ワークフロー定義は、ワークフロー実行システム４００（図４、図１５）等に入力されたワークフローの各々に対して実行される各処理単位のシーケンスを定義する。各ワークフローは、業務の開始から終了に至る処理単位を割り当てられて実行する各処理部を、ワークフロー定義で定められた順番で経由して処理される。例えば、図１５上段に示すワークフローａ１乃至ｆ１に対しては、処理単位Ｓ１、Ｓ２、Ｓ３、Ｓ４が直列的に実行される。図１５下段に示すワークフローａ２乃至ｅ２に対しては、条件Ｓ１３に応じて、処理単位Ｓ１１、Ｓ１２、Ｓ１３、Ｓ１４、Ｓ１５、Ｓ１６が直列的に実行される、又は、処理単位Ｓ１１、Ｓ１２、Ｓ１３、Ｓ１６が直列的に実行される。各処理部は、他の装置と接続され、業務アプリケーションソフトウェアと計算機資源を備え、ワークフローを入力して各処理単位を実行する。図１５において、各処理部は、通信制御システム２０７ｎと業務アプリケーション２０３ｎ（ｎ＝１〜７）として記載されている。
処理部等処理部
サービス提供品質下限値設定手段１３は、処理部等業務処理を完了したワークフローの品質であるサービス提供品質の許容できる下限値を、ワークフローごとに設定する。サービス提供品質算出手段１４は、複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、１つの処理部に処理の要求が到来してからその処理部での処理単位が完了するまでの処理時間を、処理部ごとに積算することで、それぞれのワークフローの業務処理の完了時におけるサービス提供品質を算出する。各処理部の処理時間は、その処理部が１つの処理要求を専ら処理する場合に必要とする業務処理の要処理時間を基にして、複数の処理要求が競合した場合にはその競合を反映させて、算出する。品質非到達判別手段１５は、ワークフローのいずれかについて、算出されたサービス提供品質がサービス提供品質の下限値を下回るとき、これを判別する。計算機資源再配分手段１６は、品質非到達判別手段１５が或るワークフローについて算出したサービス提供品質が下限値を下回ることを判別したとき、等少なくとも１つの処理部に計算機資源の量を増加させることで、当該ワークフローのサービス提供品質が下限値を下回ることを回避させる。
図２は、本発明のワークフロー監視制御方法の一構成例を示す。本発明のワークフロー監視制御方法２０は、サービス提供品質算出ステップ２１と、品質非到達判別ステップ２２と、計算機資源再配分ステップ２３とを備えている。ここで、サービス提供品質算出ステップ２１は、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれ個別に割り当てられた範囲の業務の処理（処理単位）を行う複数の処理部が、予め定めた順番で各処理部を経由する、業務の処理単位の流れとしてのワークフローを実行するとき、複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、それぞれのワークフローの業務処理の完了時におけるサービス提供品質を算出する。サービス提供品質は、複数の処理部のそれぞれで、ワークフローに発生する処理開始までの待機時間の有無や量、さらに処理時間を解析して算出される。品質非到達判別ステップ２２は、ワークフローのいずれかについて、算出されたサービス提供品質がサービス提供品質の下限値を下回るとき、これを判別する。計算機資源再配分ステップ２３は、品質非到達判別ステップ２２で或るワークフローのサービス提供品質が下限値を下回ることを判別したとき、複数の処理部に対する計算機資源の量を再配分することで、当該ワークフローのサービス提供品質が下限値を下回ることを回避させる。
図３は、本発明のワークフロー監視制御プログラムの一構成例を示す。本発明のワークフロー監視制御プログラム３０は、業務アプリケーションソフトウェアと計算機資源を用いて、それぞれ個別に割り当てられた範囲の業務の処理（処理単位）を行う複数の処理部が、予め定めた順番で各処理部を経由する、業務の処理単位の流れとしてのワークフローを実行するシステムに包含されるコンピュータ（例えば、ワークフロー監視制御システム２０５）に、サービス提供品質算出処理３１と、品質非到達判別処理３２と、計算機資源再配分処理３３を実行させる。ここで、サービス提供品質算出処理３１は、複数の処理部のそれぞれに配分されている計算機資源の量が現状の値に固定されているという条件の下で、それぞれのワークフローの業務処理の完了時におけるサービス提供品質を算出する。品質非到達判別処理３２は、ワークフローのいずれかについて、算出されたサービス提供品質が下限値を下回るとき、これを判別する。計算機資源再配分処理３３は、品質非到達判別処理３２で或るワークフローについてサービス提供品質が下限値を下回ることを判別したとき、複数の処理部に対する計算機資源の量を再配分することで、当該ワークフローのサービス提供品質が下限値を下回ることを回避させる。
＜発明の実施の形態＞
図４は、本発明が実施されるワークフロー実行システム４００の一般的な通信環境を表わす。この通信環境では、複数のサブネットワーク２０１１、２０１２、等がこれらサブネットワーク２０１１、２０１２、等の持つ管理ポリシ、セキュリティポリシの基で運営されている。更にこれら複数のサブネットワーク２０１１、２０１２、等が、ルータ２０２１、２０２２、等等の結合手段によって結合されて大きなネットワークを構成している。
たとえば第１のサブネットワーク２０１１は、第２のサブネットワーク２０１２と第１のルータ２０２１によって接続されている。また、第２のサブネットワーク２０１２は、第３のサブネットワーク２０１３および第４のサブネットワーク２０１４と第２のルータ２０２２によって接続されている。
後に詳しく説明されるワークフローの処理単位の処理を担う業務アプリケーション２０３１、２０３２、等は、サブネットワーク２０１１、２０１２、等のいずれかに接続された業務システム２１０１、２１０４、等上に配備される。図４に示す通信環境で第１および第２の業務アプリケーション２０３１、２０３２を配備した業務システム２１０１は、第１のサブネットワーク２０１１に接続されている。第３および第４の業務アプリケーション２０３３、２０３４を配備した業務システム２１０４は、第４のサブネットワーク２０１４に接続されている。
業務アプリケーション２０３１、２０３２、等を連携させて、業務開始から複数の処理単位の処理を順次実行することで業務の完了に至るワークフロー処理を実施するワークフローシステム２０４１、２０４２、等も、サブネットワーク２０１１、２０１２、等のいずれかに接続される。図４に示す通信環境では、第１のワークフローシステム２０４１は第１のサブネットワーク２０１１に、第２のワークフローシステム２０４２は第３のサブネットワーク２０１３にそれぞれ接続されている。
サブネットワーク２０１１、２０１２、等上での通信を監視し、ワークフロー監視制御システム２０５に監視結果を通知する通信監視システム２０６１、２０６２、等は、サブネットワーク２０１１、２０１２、等に任意の数だけ接続される。図４に示す通信環境では、第１のサブネットワーク２０１１には第１の通信監視システム２０６１が、第３のサブネットワーク２０１３には第２の通信監視システム２０６２が、第４のサブネットワーク２０１４には第３の通信監視システム２０６３が、それぞれ接続されている。通信監視システム２０６１、２０６２、等は、それぞれ業務アプリケーション２０３およびワークフローシステム２０４を監視対象とする。一般的には、通信監視システム２０６１、２０６２、等は、自分自身と同一のサブネットワーク２０１に存在する業務アプリケーション２０３およびワークフローシステム２０４を監視対象とする。
各通信制御システム２０７１、２０７２、等は、サブネットワーク２０１１、２０１２、等上での通信をワークフロー監視制御システム２０５からの制御信号に従って制御する。各通信制御システム２０７１、２０７２、等は、サブネットワーク２０１１、２０１２、等に任意の数だけ接続される。図４に示す通信環境では、第１のサブネットワーク２０１１には第１の通信制御システム２０７１が、第３のサブネットワーク２０１３には第２の通信制御システム２０７２が、第４のサブネットワーク２０１４には第３の通信制御システム２０７３がそれぞれ接続されている。通信制御システム２０７は、それぞれ業務アプリケーション２０３およびワークフローシステム２０４を制御対象とする。一般的には、通信制御システム２０７は、自分自身と同一のサブネットワーク２０１に存在する業務アプリケーション２０３およびワークフローシステム２０４を制御対象とする。
ワークフローの動作を監視し、ワークフロー監視制御システム２０５に通知するワークフロー監視システム２０８１、２０８２、等は、ワークフローシステム２０４１、２０４２、等に対応して、サブネットワーク２０１１、２０１２、等に接続される。図４に示す通信環境では、第１のサブネットワーク２０１１には第１のワークフロー監視システム２０８１が、第３のサブネットワーク２０１３には第２のワークフロー監視システム２０８２が、それぞれ接続されている。ワークフロー監視システム２０８は、それぞれワークフローシステム２０４を監視対象とする。一般的には、ワークフロー監視システム２０８は、自分自身と同一のサブネットワーク２０１に存在するワークフローシステム２０４を監視対象とする。
本発明が実施される一般的な通信環境には、業務アプリケーション２０３およびワークフローシステム２０４を監視、制御するワークフロー監視制御システム２０５が１つ以上存在する。図４を参照すると、ワークフロー監視制御システム２０５は第２のサブネットワーク２０１２に接続される。
また、この図４に示された一般的な通信環境には、業務システム２１０１、２１０４、等上で実行される業務アプリケーション２０３１、２０３２、等の使用する計算機資源量を制御する業務アプリケーション制御システム２０９が１つ以上存在する。業務アプリケーション制御システム２０９は、この図に示す例で第２のサブネットワーク２０１２に接続される。
以上のような通信環境での動作を次に説明する。
第１および第２のワークフローシステム２０４１、２０４２ならびに第１〜第４の業務アプリケーション２０３１〜２０３４は、相互に連携して業務の処理を実行する。このとき、第１および第２のワークフローシステム２０４１、２０４２ならびに第１〜第４の業務アプリケーション２０３１〜２０３４は、必要に応じて相互に通信を行う。ワークフローシステム２０４および業務アプリケーション２０３が送信した情報は、送信側のワークフローシステム２０４および業務アプリケーション２０３を制御対象とする通信制御システム２０７で受信され、必要に応じた制御が行われる。次にこの情報は受信側のワークフローシステム２０４ならびに業務アプリケーション２０３を制御対象とする通信制御システム２０７に送信され、必要に応じた制御が行われる。次にこの情報は受信側のワークフローシステム２０４ならびに業務アプリケーション２０３で受信される。
また、ワークフローシステム２０４ならびに業務アプリケーション２０３が情報を送信したことは、送信側のワークフローシステム２０４ならびにアプリケーションシステム２０３を監視対象とする通信監視システム２０６で監視される。ワークフローシステム２０４および業務アプリケーション２０３が情報を受信したことは、受信側のワークフローシステム２０４ならびに業務アプリケーション２０３を監視対象とする通信監視システム２０６で監視される。
また、ワークフローシステム２０４でたとえば業務の進捗があったことは、ワークフローシステム２０４を監視対象とするワークフロー監視制御システム２０５で監視される。
以上の図４に示した構成は、特定の組織等を想定したものではなく、一般性を失わない。＜発明の実施の形態＞
図５は、本発明の一実施の形態におけるワークフロー監視制御システム２０５とその周辺のシステム構成の要部を表わす。本図は、たとえば図４に示した通信環境を前提としている。
図５は、ワークフロー監視制御システム２０５と、ワークフローシステム２０４と、ワークフロー監視システム２０８と、通信監視システム２０６と、通信制御システム２０７と、業務アプリケーション制御システム２０９と、ワークフローシステム２０４で実行されるワークフローの定義情報と業務アプリケーション２０３（図４）の定義情報を格納するワークフロー定義・業務定義リポジトリ２１１と、合意サービス水準情報を格納する合意サービス水準リポジトリ２１２および業務システムの配備情報、性能特性情報を格納する業務システムリポジトリ２１３を示す。ここで、「リポジトリ（ｒｅｐｏｓｉｔｏｒｙ）」は、容器、貯蔵庫のように、一般にはデータや情報、プログラムを体系立てて保管する場所を意味する。
ワークフロー監視制御システム２０５は、ワークフロー定義と業務定義を取得するワークフロー定義・業務定義取得部２２１と、複数のワークフロー定義、業務定義間の通信関係を解析し、相互に通信するワークフロー定義、業務定義を合成した合成ワークフロー定義を生成するワークフロー合成部２２２と、合成ワークフロー定義を格納する合成ワークフロー定義ＤＢ（データベース）２２３と、ワークフロー監視システム２０８および通信監視システム２０６からの監視情報を受信する監視情報受信部２２４と、監視情報を合成ワークフロー定義に対応付けて解析する監視情報解析部２２５と、監視情報を格納する監視情報格納ＤＢ（データベース）２２６と、定期的に起動要求を送信する起動制御部２２７と、現在までの合成ワークフローの状態を取得する状態観測部２２８と、最適な制御をした場合の合成ワークフローの動作を予測する最適優先制御結果計算部２２９と、予測結果から合成ワークフローが合意サービス水準を達成すると予想されるかを検証する検証部２３０と、合意サービス水準を達成するために必要な計算機資源量を計算する計算機資源追加決定部２３１と、合意サービス水準達成を妨げない計算機資源削減量を計算する計算機資源削減決定部２３２と、ある時点での合成ワークフローの状態と、業務アプリケーション制御システム２０９への計算機資源配分量から単位時間後の合成ワークフローの状態を予測する予測部２３３と、過去の制御履歴を格納する制御履歴格納ＤＢ（データベース）２３４と、制御信号を通信制御システム２０７に送信する制御信号送信部２３５と、合意サービス水準を保持する目標状態管理部２３６と、通信制御システム２０７同士の対応関係を保持する制御システム格納ＤＢ（データベース）２３７とから構成されている。図５は、通信制御システム２０７を代表的に１つのみ示す。通信制御システム２０７が複数存在するときに、制御システム格納ＤＢ２３７は通信制御システム２０７、ワークフローシステム２０４の対応関係を保持する。
ここで、合成ワークフローとは、合成ワークフロー定義に従って処理される業務の処理要求（処理対象データ、等）のインスタンス（ｉｎｓｔａｎｃｅ：実体）である。また、合成ワークフロー定義は、複数のワークフロー定義を足し併せて合成したものである。単体ワークフローよりも合成ワークフローの方が現実的には多く使用される。したがって、本明細書に於いて、「合成ワークフロー」という用語は、合成されたワークフローのみでなく、単一のワークフローも含む用語として使用される。
本実施の形態でワークフロー監視制御システム２０５を中心とした各システムは、概略次のように動作する。説明に於いて、図４および図５が参照される。
ワークフロー定義・業務定義リポジトリ２１１には、監視制御対象となるワークフローシステム２０４で実行されるワークフローの定義、業務システム２１０上で実行される業務アプリケーション２０３の定義があらかじめ格納されている。また、合意サービス水準リポジトリ２１２には、監視制御対象となるワークフローシステム２０４と業務アプリケーション２０３に設定された合意サービス水準が予め格納されている。ここで、合意サービス水準は、前述したサービス提供品質に対して許容できる下限値の一例である。業務システムリポジトリ２１３には、業務アプリケーション２０３を配備可能な業務システム２１０の配備情報と、業務システム２１０の性能特性情報と、業務システム２１０における業務アプリケーション２０３の配備情報と、業務アプリケーション２０３への計算機資源配分情報とが格納されている。
ワークフローシステム２０４および業務アプリケーション２０３の実行前に、ワークフロー定義・業務定義取得部２２１はワークフロー定義・業務定義リポジトリ２１１からワークフロー定義および業務定義を取得する。ワークフロー合成部２２２は、取得されたワークフロー定義および業務定義から合成ワークフロー定義を作成し、合成ワークフロー定義ＤＢ２２３に格納する。また、目標状態管理部２３６は、合意サービス水準リポジトリ２１２から合意サービス水準情報を取得し、保持する。
ワークフローシステム２０４ならびに業務アプリケーション２０３が動作すると、業務の進捗と通信の発生をワークフロー監視システム２０８と通信監視システム２０６が検知し、監視情報受信部２２４に通知する。受信した監視情報は監視情報解析部２２５で合成ワークフロー定義に対応付けて解析され、監視情報格納ＤＢ２２６に格納される。
これと並行して、起動制御部２２７は定期的に状態観測部２２８に起動要求を送る。状態観測部２２８は監視情報格納ＤＢ２２６に格納された監視情報を合成ワークフローＤＢ２２３に格納された合成ワークフロー定義と対応付け、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を作成する。更に、状態観測部２２８は、制御履歴格納ＤＢ２３４から現在の制御条件を取得する。状態観測部２２８は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、現在の制御条件を最適優先制御結果計算部２２９に入力する。
最適優先制御結果計算部２２９は入力された情報を基にして、現在実行されている合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。この予測は予測部２３３が業務システムリポジトリ２１３に格納された業務アプリケーションへの計算機資源配分情報を用いて行う。最適優先制御結果計算部２２９は予測結果を検証部２３０に出力する。なお、図１のサービス提供品質算出手段１４は、それぞれのワークフローの業務の完了時におけるサービス提供品質を算出する。その算出結果が本実施の形態における予測結果の一例である。
検証部２３０は予測結果を目標状態管理部２３６と対比して目標達成状況を判定する。図１の品質非到達判別手段１５が、本実施の形態における検証部２３０の一例であり、ワークフローのいずれかが業務の完了時におけるサービス提供品質の下限値を下回るとき、これを判別する。この結果、検証部２３０は、予測結果が妥当であれば制御情報を制御履歴格納ＤＢ２３４に格納し、制御信号送信部２３５によって通信制御システム２０７と業務アプリケーション制御システム２０９に予測結果の妥当性を送信して終了する。予測結果が合意サービス水準を達成していなければ、検証部２３０は、計算機資源追加決定部２３１に最適優先制御結果計算部２２９の入力と出力を通知する。
計算機資源追加決定部２３１は、受け取った最適優先制御結果計算部２２９の入力と出力を参照して適切な業務アプリケーションに計算機資源を追加する計画を作成し、業務システムリポジトリ２１３に設定する。品質非到達判別手段１５が或るワークフローについてサービス提供品質の下限値を下回ることを判別したとき、計算機資源再配分手段１６が複数の処理部に対する計算機資源の量を再配分することで所定のワークフローのサービス提供品質が下限値を下回ることを回避させる。この処理が、本実施の形態の計算機資源を追加する計画の作成の一例である。最適優先制御結果計算部２２９は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として、再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
検証部２３０は、この予測結果が合意サービス水準を大きく超過して達成していると判定した場合、計算機資源削減決定部２３２に最適優先制御結果計算部２２９の入力と出力を通知する。計算機資源削減決定部２３２は、受け取った最適優先制御結果計算部２２９の入力と出力を参照して、業務アプリケーション２０３に配分された計算機資源を適切に削減する計画を作成し、業務システムリポジトリ２１３に設定する。最適優先制御結果計算部２２９は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
図６は、本実施の形態における通信制御システムを中心とした各システムの構成を表わす。本図は、図４に示した通信環境で、ワークフロー監視制御システム２０５が第１の通信制御システム２０７１と第２の通信制御システム２０７２と接続されている例を示す。図５に於けるワークフロー監視制御システム２０５に接続された通信制御システム２０７が、図６では第１および第２の通信制御システム２０７１、２０７２である。第１の通信制御システム２０７１には、図示を省略した業務システム２１０１を介して第１の業務アプリケーション２０３１および第１のワークフローシステム２０４１が接続されている。同様に、第２の通信制御システム２０７２には、業務システム２１０１を介して第２の業務アプリケーション２０３２および第２のワークフローシステム２０４２が接続されている。
第１の通信制御システム２０７１は、第１の業務アプリケーション２０３１、第１のワークフローシステム２０４１あるいは他の通信制御システム２０７（第２の通信制御システム２０７２等）が送信した情報を受信する通信受信部２４１と、受信した情報を保持する通信情報保持部２４２と、受信した情報を保持し続けるか、送信するか、棄却するかを決定する通信制御部２４３と、業務アプリケーション２０３、ワークフローシステム２０４、あるいは、他の通信制御システム２０７へ情報を送信する通信送信部２４４と、ワークフロー監視制御システム２０５からの制御信号を受信する制御信号受信部２４５と、制御条件に関する情報を保持する制御情報保持部２４６とから構成されている。
なお、第２の通信制御システム２０７２は、第１の通信制御システム２０７１とその構成が同一である。そこで、その構成の説明は省略される。
図６に示した箇所のワークフロー監視制御システム２０５を中心とした各システムは、概略次のように動作する。
たとえば第１の業務アプリケーション２０３１や第１のワークフローシステム２０４１から送信された情報はこれらを制御対象とする第１の通信制御システム２０７１の通信受信部２４１で受信され、通信情報保持部２４２に保持される。通信制御部２４３は通信情報保持部２４２に受信された情報が保持された場合と、予め定められた時間になった場合に起動される。そして、通信制御部２４３は、通信情報保持部２４２に保持された各通信情報を、制御情報保持部２４６に格納されている制御条件を参照して、保持する通信情報と送信する通信情報および棄却する通信情報に分類する。
このうち保持する通信情報に分類されたものはそのまま保持され、棄却する通信情報に分類されたものは通信情報保持部２４２から削除される。送信する通信情報に分類されたものは通信送信部２４４により受信側の業務アプリケーション２０３、ワークフローシステム２０４あるいは第２の通信制御システム２０７２等の他の通信制御システム２０７へ送信される。
受信側の第２の業務アプリケーション２０３２および第２のワークフローシステム２０４２を制御対象とする第２の通信制御システム２０７２も同様に動作する。この結果、送信された情報は最終的に受信側の第２の業務アプリケーション２０３２あるいは第２のワークフローシステム２０４２で受信される。これと並行して、ワークフロー監視制御システム２０５は、必要に応じて第１および第２の通信制御システム２０７１、２０７２の制御信号受信部２４５に制御信号を送信する。
制御信号受信部２４５は受信した制御信号を通信制御部２４３に通知する。通信制御部２４３は必要であれば通信情報保持部２４２に保持された各通信情報について、受信した制御条件を参照し、保持する通信情報と送信する通信情報と棄却する通信情報に分類する。通信制御部２４３は、保持する通信情報に分類したものはそのまま保持し、棄却する通信情報に分類したものは通信情報保持部２４２から削除する。棄却が行われると、該当する合成ワークフローの処理はその段階で消失する。これは、該当する業務アプリケーション２０３および後続の他の業務アプリケーション２０３がその合成ワークフローの処理を行わなくてよくなったことを意味する。すなわち、棄却の対象となった合成ワークフローの犠牲の下に、他の１つまたは複数の合成ワークフローの処理時間が短縮可能になる。
送信する通信情報に分類されたものは、通信送信部２４４により受信側の第２の業務アプリケーション２０３２や第２のワークフローシステム２０４２を制御対象とする第２の通信制御システム２０７２の通信受信部２４１に送信される。その後、通信制御部２４３は、制御信号を制御情報保持部２４６に格納する。
図７は、本実施の形態のワークフロー監視制御システムの全体的な処理動作の概要を表わす。本図を図５および図６と共に説明する。ワークフロー監視制御システム２０５は、図示されないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、このＣＰＵが実行する制御プログラムを格納するハードディスク等の記憶媒体を備えている。ＣＰＵはこの制御プログラムを実行することによって先に説明したワークフロー監視制御システム２０５内の各部のうちの少なくとも一部をソフトウェアで機能的に実現しても良い。ワークフロー監視制御システム２０５内の各部、または、ＣＰＵは、次に説明する制御を実現する。
起動制御部２２７は、所定の制御時間が到来するまで待機している（ステップＳ３０１）。所定の制御時間が到来すると（Ｙ）、起動制御部２２７は状態観測部２２８を起動し、状態観測部２２８は監視情報格納ＤＢ２２６に格納された監視情報を合成ワークフロー定義ＤＢ２２３に格納された合成ワークフロー定義と対応付ける。そして、状態観測部２２８は現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を作成する（ステップＳ３０２）。
次に、最適優先制御結果計算部２２９は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、制御履歴格納ＤＢ２３４から取得した現在の制御条件とを入力する。最適優先制御結果計算部２２９は入力したこれらの情報を基にして、現在実行されている合成ワークフローの将来の状態を予測する。合成ワークフローの将来の状態の予測結果と最適優先制御結果計算部２２９への入力は、検証部２３０に出力される（ステップＳ３０３）。
検証部２３０は予測結果に関して、目標状態管理部２３６を参照して妥当性を判定する（ステップＳ３０４）。この結果、予測結果が妥当であれば（Ｙ）、すなわち、予測結果が合意サービス水準を達成しており、かつこれが合意サービス水準を大幅に超過するようなものでない場合には、検証部２３０は、制御履歴格納ＤＢ２３４を参照して、制御条件が現行の制御条件と同一であるかを判定する（ステップＳ３０５）。同一であれば（Ｙ）、検証部２３０は制御条件を送信せずに動作を終了し、ワークフロー監視制御システム２０５はステップＳ３０１の処理に戻る（リターン）。
制御条件が現行の制御条件と同一ではない場合には（ステップＳ３０５：Ｎ）、検証部２３０は、その同一でない制御条件を制御履歴格納ＤＢ２３４に格納する。そして、制御信号送信部２３５は通信制御システム２０７に制御条件を送信する（ステップＳ３０６）。この後、ワークフロー監視制御システム２０５はステップＳ３０１の処理に戻る（リターン）。
ステップＳ３０４で予測結果が妥当でないと判定される場合（Ｎ）は、次の２つの何れかの場合である。１つは、予測結果が合意サービス水準を達成していないと判定された場合である。もう１つは、予測結果が合意サービス水準を大幅に超過したと判定された場合である。したがって、予測結果が妥当でないと判定された場合には（ステップＳ３０４：Ｎ）、検証部２３０は、合意サービス水準を未達成か否かの判別をする（ステップＳ３０７）。
予測結果が合意サービス水準を達成していないと判定された場合には（Ｙ）、計算機資源追加決定部２３１が計算機資源を追加すべき適切な業務アプリケーションと追加量を計算する。そして、計算機資源追加決定部２３１は、追加後の業務アプリケーションの計算機資源割当量を業務システムリポジトリ２１３に設定し（ステップＳ３０８）、最適優先制御結果計算部２２９は現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を入力して、現在実行されている合成ワークフローの将来の状態を予測する（ステップＳ３０３）。
これに対して、予測結果が合意サービス水準を大幅に超過したと判定された場合には（ステップＳ３０７：Ｎ）、計算機資源削減決定部２３２が計算機資源を削減すべき適切な業務アプリケーションと削減量を計算して、削減後の業務アプリケーションの計算機資源割当量を業務システムリポジトリ２１３に設定する（ステップＳ３０９）。予測結果が合意サービス水準を大きく超過していると判定する方法の一例としては、合意サービス水準に対する余裕が最も小さい合成ワークフローの合意サービス水準との差が所定の範囲を超えているか否かにより判定する方法がある。このようにして計算機資源を削減したら、検証部２３０は、ステップＳ３０５の処理に進む。
図８は、最適優先制御結果計算部２２９の処理の様子を表わす。本図を図５および図６と共に説明する。なお、図８に示した最適優先制御結果計算部２２９の動作は、監視制御対象と合意サービス水準の内容によって変化する。図８に示した処理動作は一例である。
まず、最適優先制御結果計算部２２９は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、現在の制御条件を入力する（ステップＳ３２１：Ｙ）。この後、最適優先制御結果計算部２２９は、予測部２３３を使って、現在実行されている合成ワークフローの状態および履歴情報と業務システムリポジトリ２１３の情報から、単位時間後の合成ワークフローの状態を予測する（ステップＳ３２２）。ここで、単位時間は、合成ワークフローの処理に要する時間に対して十分に短い、予測部２３３で定めた時間である。
次に、最適優先制御結果計算部２２９は、すべての合成ワークフローの処理が完了しているか否かを判定する（ステップＳ３２３）。すべて終了していると判定された場合には（Ｙ）、最適優先制御結果計算部２２９は予測された合成ワークフローの状態を検証部２３０に通知して（ステップＳ３２４）、一連の処理を終了する（エンド）。
一方、すべての合成ワークフローの処理が完了していると判定されなかった場合（ステップＳ３２３：Ｎ）、最適優先制御結果計算部２２９は、合成ワークフローの状態から、新たに処理を実行可能な業務アプリケーション２０３が存在しているか否かを判定する（ステップＳ３２５）。新たに処理を実行可能な業務アプリケーション２０３の判定方法の一例は、業務アプリケーション２０３で処理が行われておらず、かつ、この業務アプリケーション２０３での処理を待っているワークフローが存在しているか否かを判定する方法である。
新たに処理を実行可能な業務アプリケーション２０３が存在すると判定された場合（Ｙ）、最適優先制御結果計算部２２９は、新たに処理を実行可能な業務アプリケーション２０３を１つ選択する（ステップＳ３２６）。そして、選択された業務アプリケーション２０３について、次の図９に示される「フローＢ」を実行する（ステップＳ３２７）。なお、図８で示される一連の処理が「フローＡ」である。
「フローＢ」を行った結果が、これまで得られた「フローＢ」の結果の中で最も良好なものであった場合には（ステップＳ３２８：Ｙ）、最適優先制御結果計算部２２９は、この得られた結果を最善の結果として保存する（ステップＳ３２９）。「フローＢ」の結果の比較方法の一例は、合意サービス水準を達成できていない合成ワークフローの数が少ないほど良好であり、すべての合成ワークフローが合意サービス水準を達成できている場合は合意サービス水準を超える度合いが大きいほど良好であるとする方法である。
ステップＳ３２９で得られた結果を最善の結果として保存したら、最適優先制御結果計算部２２９は、新規に処理を実行可能な業務アプリケーション２０３で、まだ「フローＢ」の処理対象としていない業務アプリケーション２０３が存在するか否かを判定する（ステップＳ３３０）。そのような業務アプリケーション２０３が存在していると判定された場合には（Ｙ）、最適優先制御結果計算部２２９は、ステップＳ３２６に戻って、該当する業務アプリケーション２０３が存在しなくなるまで同様の処理を繰り返す。「フローＢ」の処理対象としていない業務アプリケーション２０３が存在しなくなったら（ステップＳ３３０：Ｎ）、最適優先制御結果計算部２２９は、ステップＳ３２９で保存した最善の結果を「フローＡ」の処理結果として、検証部２３０に通知し（ステップＳ３３１）、「フローＡ」の処理を終了する（エンド）。
これに対して、ステップＳ３２８で「フローＢ」の処理を行った結果が、これまで得られた「フローＢ」の処理結果の中で最も良好なものであるとは判定されなかった場合（Ｎ）、最適優先制御結果計算部２２９は、その処理結果を保存することなくステップＳ３３０に進む。また、ステップＳ３２５で新たに処理を実行可能な業務アプリケーション２０３が存在していないと判定された場合には（Ｎ）、最適優先制御結果計算部２２９は、ステップＳ３２２に処理を戻す。
図９は、図８のステップＳ３２７で記した「フローＢ」の具体的な内容を示す。本図を図５および図６と共に説明する。
「フローＢ」では、最適優先制御結果計算部２２９は、まず、選択された業務アプリケーション２０３で、処理を待っている処理要求を１つ選択する（ステップＳ３５１）。そして、最適優先制御結果計算部２２９は、この選択時点での合成ワークフローの状態を修正し、選択した処理要求を選択された業務アプリケーション２０３で実行開始した合成ワークフローの状態情報を作成する（ステップＳ３５２）。そして、最適優先制御結果計算部２２９は、このステップＳ３５２で作成された合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、現在の制御条件を入力として、図８として示した「フローＡ」を実行する（ステップＳ３５３）。
次に、最適優先制御結果計算部２２９は、この「フローＡ」の処理結果が「フローＢ」の実行中に得られた「フローＡ」の処理結果の中で最も良好なものであるかどうかを判定する（ステップＳ３５４）。最も良好なものであると判定された場合には（Ｙ）、最適優先制御結果計算部２２９は、得られた結果を「フローＢ」における最善の結果として保存する（ステップＳ３５５）。「フローＡ」の処理結果の比較方法は、すでに説明した「フローＢ」の結果の比較方法と同じである。
以上のようにしてステップＳ３５５で最善の結果を保存したら、最適優先制御結果計算部２２９は、選択された業務アプリケーション２０３での処理を待っている処理要求のうち、まだこの「フローＢ」の中で選択されていない要求が残っているか否かを判定する（ステップＳ３５６）。そのような要求が残っていると判定された場合には（Ｙ）、最適優先制御結果計算部２２９は、ステップＳ３５１に戻って、そのような要求が残らなくなるまで、同様の処理を繰り返す。
「フローＢ」の中で選択されていない要求が残っていないと判定された場合には（ステップＳ３５６：Ｎ）、最適優先制御結果計算部２２９は、ステップＳ３５５で保存されている最善の処理結果を「フローＢ」の処理結果として通知して（ステップＳ３５７）、「フローＢ」における一連の処理を終了する（エンド）。
図１０は、計算機資源追加決定部の処理の様子を表わし、図１１は計算機資源削減決定部の処理を表わす。両図を図５および図６と共に説明する。なお、これらの図は、計算機資源追加決定部２３１および計算機資源削減決定部２３２の動作の一例をそれぞれ示す。計算機資源追加決定部２３１および計算機資源削減決定部２３２の動作は、監視制御対象と合意サービス水準の内容、業務システムの特性によって変化する。
計算機資源追加決定部２３１は、まず検証部２３０から、最適優先制御結果計算部２２９での予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０が予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３７１：Ｙ）。計算機資源追加決定部２３１は、入力した情報から、合意サービス水準が達成不可能な合成ワークフロー群を特定する（ステップＳ３７２）。
次に、計算機資源追加決定部２３１は、計算機資源を追加する業務アプリケーション２０３と追加量を決定する（ステップＳ３７３）。この決定方法の一例は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行されるまでの待ち時間（待機時間）の合計が最も大きいと予測された業務アプリケーション２０３に、最小単位の計算機資源を追加するという方法である。また、この決定方法は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行されるまでの待ち時間を業務アプリケーションの実行所要時間で除した値に、業務アプリケーション２０３に計算機資源を最小単位追加した場合の業務アプリケーション２０３の実行所要時間改善量を掛けた値を、ステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーション２０３に対して要求しているすべての実行要求について業務アプリケーション２０３ごとに足し合わせた値を求め、この値が最も大きいと予測された業務アプリケーション２０３に、最小単位の計算機資源を追加するという方法でも良い。
以上のようにして計算機資源を追加する業務アプリケーション２０３と追加量を決定したら（ステップＳ３７３）、計算機資源追加決定部２３１は、求められた業務アプリケーション２０３に対して、求められた計算機資源を追加した状態を業務システムリポジトリ２１３に保存する（ステップＳ３７４）。このようにして計算機資源追加決定部２３１は、処理を終了する（エンド）。
図１１は、計算機資源削減決定部の動作を示す。本図を図５と共に説明する。
計算機資源削減決定部２３２は、検証部２３０から、最適優先制御結果計算部２２９での予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０が予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３９１：Ｙ）。
計算機資源削減決定部２３２は次に、この入力した情報から、合意サービス水準に対する余裕が最も小さい合成ワークフローを特定する（ステップＳ３９２）。そして、この特定された合成ワークフロー以外の合成ワークフローに対する合意サービス水準の達成という観点から、計算機資源を削減する業務アプリケーション２０３と削減量を決定する（ステップＳ３９３）。この決定方法の一例は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーションのうち、待ち時間が最も短いものから最小単位の計算機資源を削減するという方法である。また、この決定方法は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーション２０３のうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法であってもよい。
以上のようにしてステップＳ３９３で計算機資源を削減する業務アプリケーション２０３と削減量を決定したら、計算機資源削減決定部２３２は、求められた業務アプリケーション２０３から求められた量の計算機資源を削減した状態を業務システムリポジトリ２１３に保存する（ステップＳ３９４）。このようにして計算機資源削減決定部２３２は、処理を終了する（エンド）。計算機資源の削減に関して、合意サービス水準に対する余裕が最も小さい合成ワークフローを最初に特定する（図１１ステップＳ３９２）ことは必須の条件ではない。これ以外の手法でも計算機資源の削減は可能である。
以上説明した本発明の実施の形態のワークフロー監視制御システム２０５は、業務アプリケーションおよびワークフローシステムの構成を変更することなく、ワークフロー実行システム４００が合意サービス水準に基づくサービス提供品質を維持する可能性を高めることができる。その理由は、ワークフロー監視制御システム２０５が業務アプリケーションやワークフローシステムの動作予測を行い、合意サービス水準に基づくサービス提供品質を維持できる適切な動作を発見して、業務アプリケーション２０３を実行する業務システム２１０等が適切な動作を行うような制御を行っているためである。また、本実施の形態のワークフロー監視制御システム２０５が、必要に応じて業務アプリケーションで使用する計算機資源を制御することも、が合意サービス水準に基づくサービス提供品質を維持する可能性を高める。
また、本実施の形態のワークフロー監視制御システム２０５は、複数の合意サービス水準が設定されている場合でも、ワークフロー実行システム４００が合意サービス水準に基づくサービス提供品質を維持する可能性を高める。その理由は、本実施の形態のワークフロー監視制御システム２０５が、業務アプリケーションと、ワークフローシステムの動作予測を行い、複数の合意サービス水準に基づくサービス提供品質を維持できる適切な動作を発見するためである。
更に、本実施の形態のワークフロー監視制御システム２０５は、業務アプリケーションを実行するための計算機資源を節約しながら、ワークフロー実行システム４００が合意サービス水準に基づくサービス提供品質を維持する可能性を高める。その理由は、本実施の形態のワークフロー監視制御システム２０５は、業務アプリケーションやワークフローシステムの動作予測を行い、ワークフロー実行システム４００が合意サービス水準に基づくサービス提供品質を維持できる範囲内で業務アプリケーションが使用する計算機資源を節約するよう制御するからである。
［動作例１］
次に本発明の動作例を説明する。
図１２は、本発明の一動作例におけるワークフロー実行システム４００の構成の一部を表わす。本動作例のワークフロー実行システム４００には、第１および第２のワークフローシステム２０４１、２０４２と、第１〜第７の業務アプリケーション２０３１〜２０３７が存在しており、これらがワークフロー監視制御システム２０５の監視制御対象となっている。ただし、この図ではワークフロー監視制御システム２０５、第１〜第７の業務アプリケーション２０３１〜２０３７を配備した業務システム２１０（図４参照）の図が省略されている。また、第１および第２のワークフローシステム２０４１、２０４２と、第１〜第７の業務アプリケーション２０３１〜２０３７、第１〜第７の通信制御システム２０７１〜２０７７ならびに第１および第２のワークフロー監視システム２０８１、２０８２の接続関係は、図４に示した例示的な接続関係とは異なる。
第１のワークフローシステム２０４１には１つのワークフロー定義が存在する。このワークフロー定義にしたがって処理されるワークフローは、図１２の上半分に示されるスタート（ＳＴＡＲＴ）からエンド（ＥＮＤ）で示される流れにおける各ステップＳ１〜ステップＳ４を経る過程で、第１〜第４の業務アプリケーション２０３１〜２０３４と順次通信を行う。
第２のワークフローシステム２０４２にも１つのワークフロー定義が存在する。このワークフロー定義にしたがって処理されるワークフローは、図１２の下半分に示されるスタート（ＳＴＡＲＴ）からエンド（ＥＮＤ）で示される流れにおける各ステップＳ１１〜ステップＳ１６を経る過程で、第５、第３、第６および第７の業務アプリケーション２０３５、２０３３、２０３６および２０３７と順次通信を行う。
ここで、第１の通信制御システム２０７１はステップＳ１の処理で第１の業務アプリケーション２０３１の通信を制御し、第２の通信制御システム２０７２はステップＳ２の処理で第２の業務アプリケーション２０３２の通信を制御する。また、第３の通信制御システム２０７３はステップＳ３およびステップＳ１２の処理で第３の業務アプリケーション２０３３の通信を制御し、第４の通信制御システム２０７４はステップＳ４の処理で第４の業務アプリケーション２０３４の通信を制御する。更に、第５の通信制御システム２０７５はステップＳ１１の処理で第５の業務アプリケーション２０３５の通信を制御し、第６の通信制御システム２０７６はステップＳ１４の処理で第６の業務アプリケーション２０３６の通信を制御する。更にまた、第７の通信制御システム２０７７はステップＳ１５およびステップＳ１６の処理で第７の業務アプリケーション２０３７の通信を制御する。また、第８の通信制御システム２０７８は第１のワークフローシステム２０４１全体の通信制御を、第９の通信制御システム２０７９は第２のワークフローシステム２０４２全体の通信制御をそれぞれ行う。
図１３は、本動作例で使用する各業務アプリケーションの性能特性を表わす。図１３は、縦軸に第１〜第７の業務アプリケーション２０３１〜２０３７を示し、横軸に計算機資源量として、「１０」、「２０」等といった単位量の倍数を示しており、各セルに、対応する計算機資源量が与えられた場合の対応するアプリケーションのワークフロー１件当たりの処理時間を示している。たとえば、第１の業務アプリケーション２０３１は、計算機資源量が１０単位のときに、１件当たり１０秒で処理を行うが、計算機資源量が倍の２０単位になると、１件当たりの処理時間が半分の５秒に短縮する。図１３に示した第１〜第７の業務アプリケーション２０３１〜２０３７についての性能特性を表わしたデータは、図５に示す業務システムリポジトリ２１３に格納されている。
図１４は、それぞれの業務アプリケーションに初期状態で割り当てられた計算機資源量を示す。第１〜第７の業務アプリケーション２０３１〜２０３７に関する初期状態の計算機資源量も、図５に示す業務システムリポジトリ２１３に格納されている。
計算機資源量のこの割当状況で、図１２に示すように第１の業務アプリケーション２０３１と第５の業務アプリケーション２０３５は、処理１件あたり５秒で処理を行う。また、第２の業務アプリケーション２０３２は処理１件あたり８秒で、第３の業務アプリケーション２０３３は処理１件あたり１５秒で、第４の業務アプリケーション２０３４は処理１件あたり１２秒で、第６の業務アプリケーション２０３６は処理１件あたり１０秒で、第７の業務アプリケーション２０３７は処理１件あたり２０秒で、それぞれ処理を行う。
これらワークフロー定義および業務アプリケーション定義は、ワークフロー定義・業務定義リポジトリ２１１に格納されている。また、図５に示すワークフロー定義・業務定義取得部２２１およびワークフロー合成部２２２は、第１のワークフローシステム２０４１に存在する１つのワークフロー定義と、第１〜第４の業務アプリケーション２０３１〜２０３４に存在する計４つの業務アプリケーション定義を合成した１つの合成ワークフロー定義と、第２のワークフローシステム２０４２に存在する１つのワークフロー定義と、第５、第３、第６および第７の業務アプリケーション２０３５、２０３３、２０３６、２０３７に存在する計５つの業務アプリケーション定義を合成した１つの合成ワークフロー定義を生成し、合成ワークフロー定義ＤＢ２２３（図５）に格納する。
図１２に示したワークフローのワークフロー定義には合意サービス水準が設定されている。第１のワークフローシステム２０４１に存在する１つのワークフロー定義を中心とする合成ワークフロー定義には、処理を１８０秒以内に完了することを要求する合意サービス水準が設定されている。また、第２のワークフローシステム２０４２に存在する１つのワークフロー定義を中心とする合成ワークフロー定義には、合成ワークフロー定義の利用者に応じて２つの合意サービス水準が定義されている。具体的には、例えば、一部の利用者から受けた処理を１００秒以内に完了すること、他の利用者から受けた処理を１５０秒以内に完了することを要求する合意サービス水準が設定されている。このような合意サービス水準は、合意サービス水準リポジトリ２１２（図５）に格納されている。このように合意サービス水準を利用者別に複数設定することで、それぞれの利用者のサービスの要求度に応じたサービス提供品質を確保することが可能になる。
本動作例のワークフロー実行システム４００では、第１のワークフロー監視システム２０８１が第１のワークフローシステム２０４１を、第２のワークフロー監視システム２０８２が第２のワークフローシステム２０４２を監視対象としている。
初期状態で、各通信制御システム２０７１〜２０７９の制御情報保持部２４６（図６参照）は、それぞれの制御対象が送信する情報を各通信制御システム２０７１〜２０７９が即座に送信することを指示する設定情報を保持する。また、制御情報保持部２４６は、それぞれの制御対象が受信する情報を各通信制御システム２０７１〜２０７９が一旦保持して、制御対象の処理時間と同じ間隔で、これらを受信した順に制御対象に送信することを指示する設定情報を保持する。更に、第１および第２のワークフローシステム２０４１、２０４２ならびに第１〜第７の業務アプリケーション２０３１〜２０３７の間の通信は、通信監視システム２０６によって監視されている。これらの監視対象および制御対象を定義する情報は、制御システム格納ＤＢ２３７（図５）に格納されている。
その他に、起動制御部２２７（図５）は、例えば、６０秒ごとに状態観測部２２８（図５）を起動するように設定されている。また、予測部２３３（図５）は、入力された合成ワークフローの状態の０．１秒後の状態を求めるよう設定されている。
また、検証部２３０（図５）が、予測結果が合意サービス水準を大きく超過して達成していると判定する状態とは、例えば、すべての合成ワークフローが合意サービス水準で定められた時間の半分以下の時間で完了している状態である。
図１５は、時刻０から合成ワークフローが実行されているときの時刻６６０におけるワークフロー監視制御システムの状態を示す。図１６は、時刻０から合成ワークフローが実行されているときの、時刻６６０に実行されている合成ワークフローの状態を示す。図１５で図１２と同一部分には同一の符号を付しており、適宜説明を省略する。
図１５および図１６に示すように、この時刻６６０において第１のワークフローシステム２０４１により実行を制御される６個の合成ワークフロー（ａ１）〜（ｆ１）と、第２のワークフローシステム２０４２により実行を制御される６個の合成ワークフロー（ａ２）〜（ｆ２）が存在する。合成ワークフロー（ａ１）は既に動作を完了している。合成ワークフロー（ｂ１）は第３の業務アプリケーション２０３３で実行中である。合成ワークフロー（ｃ１）、（ｄ１）、（ｅ１）、（ｆ１）は第３の通信制御システム２０７３において実行待ち状態で保持されている。合成ワークフロー（ａ２）は第７の業務アプリケーション２０３７で実行中であり、合成ワークフロー（ｂ２）は第６の業務アプリケーション２０３６で実行中である。合成ワークフロー（ｃ２）、（ｄ２）、（ｅ２）は第３の通信制御システム２０７３において実行待ち状態で保持されており、合成ワークフロー（ｆ２）は第５の業務アプリケーション２０３５で実行中である。
図１５に示されている第２のワークフローシステム２０４２における６個の合成ワークフロー（ａ２）〜（ｆ２）のうち、合成ワークフロー（ａ２）、（ｂ２）、（ｃ２）、（ｄ２）および合成ワークフロー（ｆ２）は与えられた合意サービス水準に従って処理を１５０秒以内に完了することが求められており、合成ワークフロー（ｅ２）は処理を９０秒以内に完了することが求められている。
図１７は、起動制御部２２７が状態観測部２２８を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示す。本図を、図５および図１５と共に説明する。
時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８は図１６にあるような合成ワークフローの状態および履歴情報を取得する。
この時点で制御履歴格納ＤＢ２３４には、制御情報保持部２４６の初期状態である、制御対象が送信する情報は即座に送信し、制御対象が受信する情報を即座に送信するという情報が設定されている。状態観測部２２８は最適優先制御結果計算部２２９に、図１６にあるような合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
最適優先制御結果計算部２２９は、予測部２３３を利用し、すべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を作成する。最適優先制御結果計算部２２９はまず、予測部２３３に時刻６６０のときの合成ワークフローの状態および履歴情報を通知し、時刻６６０．１のときの合成ワークフローの状態予測を得る。
時刻を進めながら同様の予測を繰り返し実行していくと、時刻６７０．１０２のとき、第３の業務アプリケーション２０３３が合成ワークフロー（ｂ１）の処理を終えて、新たな合成ワークフローを実行可能となる。このとき第３の業務アプリケーション２０３３で実行可能な合成ワークフローは、合成ワークフロー（ｃ１）、（ｄ１）、（ｅ１）、（ｆ１）、（ｃ２）、（ｄ２）、（ｅ２）、（ｆ２）である。最適優先制御結果計算部２２９は、新たに第３の業務アプリケーション２０３３で処理を実行する処理として、それぞれの合成ワークフローを選んだ場合の将来の状態を予測する。最適優先制御結果計算部２２９は、これらの予測結果のうち最も良好な結果を、求める予測結果として採用する。図１７は、この予測結果を示す。図１７によると、合成ワークフロー（ｄ１）、（ｅ１）、（ｃ２）、（ｄ２）、（ｅ２）の処理時間が合意サービス水準に達していない。合意サービス水準の達成を図る為には、計算機資源の追加が必要である。
そこで、計算機資源追加決定部２３１は、計算機資源を追加する業務アプリケーションと追加量を決定する。このために、計算機資源追加決定部２３１は、予想待ち時間改善量という概念を用いる。予想待ち時間改善量は、合意サービス水準に達しない合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行されるまでの待ち時間を業務アプリケーションの実行所要時間で除した値に、業務アプリケーションに計算機資源を最小単位追加した場合の業務アプリケーションの実行所要時間改善量を掛けた値を、図１０のステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーションに対して要求しているすべての実行要求について業務アプリケーション２０３ごとに足し合わせた値である。そして、計算機資源追加決定部２３１は、得られた予想待ち時間改善量が最も大きいと予測された業務アプリケーションに対して、最小単位の計算機資源を追加する。
図１８は、予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わす。図１８は、予想待ち時間改善量が最も大きいと予測される業務アプリケーションを求めるため、予測結果に基づいて算出した、各業務アプリケーションの予想待ち時間改善量を示す。
図１８によれば、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。したがって、この例の場合、計算機資源追加決定部２３１は、第３の業務アプリケーション２０３３に計算機資源を追加する。この結果、第３の業務アプリケーション２０３３に割り当てられる計算機資源は６０単位となり、当該アプリケーションの処理所要時間は１２．５秒／件となる。
図１９は、計算機資源を最初に追加した場合の合成ワークフローの状態を示す。本図を、図５および図１５と共に説明する。
最適優先制御結果計算部２２９は、計算機資源が最初に追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。図１９はこの結果を示す。図１９によると、合成ワークフロー（ｃ１）、（ｄ１）は合意サービス水準を達成できるが、合成ワークフロー（ｃ２）、（ｄ２）、（ｅ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１は、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図２０は、計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１は、第３の業務アプリケーション２０３３に計算機資源を追加する。これにより、第３の業務アプリケーション２０３３に割り当てられる計算機資源は７０単位となり、当該アプリケーションの処理所要時間は１０．７１４秒／件となる。
この条件で、最適優先制御結果計算部２２９は、計算機資源が追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。
図２１は、計算機資源が２番目に追加された場合における合成ワークフローの状態を示す。図２１によると、合成ワークフロー（ｃ２）、（ｄ２）、（ｅ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１は、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図２２は、計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１は、第３の業務アプリケーション２０３３に計算機資源を追加する。これにより、第３の業務アプリケーション２０３３に割り当てられる計算機資源は８０単位となり、当該アプリケーションの処理所要時間は９．３７５秒／件となる。
この条件で、最適優先制御結果計算部２２９（図５）は、計算機資源が追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。
図２３は、計算機資源が３番目に追加された場合における合成ワークフローの状態を示す。図２３によると、合成ワークフロー（ｃ２）、（ｄ２）、（ｅ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１は、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図２４は、計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１は、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は５０単位となり、当該アプリケーションの処理所要時間は１６秒／件となる。
この条件で、最適優先制御結果計算部２２９（図５）は、計算機資源が追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。
図２５は、計算機資源が４番目に追加された場合における合成ワークフローの状態を示す。図２５によると、合成ワークフロー（ｄ２）、（ｅ２）は合意サービス水準を達成できるが、合成ワークフロー（ｃ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１は、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図２６は、計算機資源を５番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１は、第３の業務アプリケーション２０３３に計算機資源を追加する。これにより、第３の業務アプリケーション２０３３に割り当てられる計算機資源は９０単位となり、当該アプリケーションの処理所要時間は８．３３３秒／件となる。
この条件で、最適優先制御結果計算部２２９（図５）は、計算機資源が追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。
図２７は、計算機資源が５番目に追加された場合における合成ワークフローの状態を示す。図２７によると、合成ワークフロー（ｃ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１は、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図２８は、計算機資源を６番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１は、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は６０単位となり、当該アプリケーションの処理所要時間は１３．３３３秒／件となる。
この条件で、最適優先制御結果計算部２２９（図５）は、計算機資源が追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。
図２９は、計算機資源が６番目に追加された場合における合成ワークフローの状態を示す。図２９によると、合成ワークフロー（ｃ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１は、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図３０は、計算機資源を７番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１は、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は７０単位となり、当該アプリケーションの処理所要時間は１１．４２９秒／件となる。
この条件で、最適優先制御結果計算部２２９（図５）は、計算機資源が追加された場合の合成ワークフローの動作予測を、図１７の予測結果を求めたときと同じ方法で取得する。
図３１は、計算機資源が７番目に追加された場合における合成ワークフローの状態を示す。図３１によると、この条件で、すべての合成ワークフローが合意サービス水準を達成できると予想される。
以上のようにして計算機資源の追加によってすべての合成ワークフローが合意サービス水準を達成できると予想されるようになったら、検証部２３０は、前述した予測における優先制御条件と計算機資源の追加ならびに削除条件が、前回設定した制御情報と異なっているか否かを判定する。この例の場合、時刻６６０で初めて制御が行われたので、検証部２３０は、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
図３２は、時刻７２０の時点に起動制御部２２７が状態観測部２２８を再度起動した場合における合成ワークフローの状態を示す。この時刻７２０において、図５に示した起動制御部２２７が状態観測部２２８を再度起動すると、状態観測部２２８はこの図３２にあるような合成ワークフローの状態および履歴情報を取得する。図３２を図３１と比較すると、図１２のステップＳ１３で示す条件分岐が原因で、合成ワークフロー（ｄ２）の処理が予測結果と異なっている。これ以外の合成ワークフローは、予測結果どおりに処理が進捗している。
図３３は、時刻６６０の時点と同様に、時刻７２０の時点で将来を予測した場合の合成ワークフローの状態を示す。この図３３に示されるように、この場合はすべての合成ワークフローが合意サービス水準を達成すると予想される。このため、新規の制御は行われない。
次に、この監視対象において、合成ワークフローの状態が異なる場合の動作を説明する。
図３４は、時刻０から合成ワークフローが実行された場合の、時刻６６０に実行されている合成ワークフローの状態を示す。第１のワークフローシステム２０４１により実行が制御される３個の合成ワークフローと、第２のワークフローシステム２０４２により実行が制御される２個の合成ワークフローが存在する。時刻６６０において、合成ワークフロー（ａ１）は既に動作を完了しており、合成ワークフロー（ｂ１）は第４の業務アプリケーション２０３４で実行中であり、合成ワークフロー（ｃ１）は第３の業務アプリケーション２０３３で実行中である。合成ワークフロー（ａ２）は第７の業務アプリケーション２０３７で実行中であり、合成ワークフロー（ｂ２）は第５の業務アプリケーション２０３５で実行中である。第２のワークフローシステム２０４２における２個の合成ワークフローは与えられた合意サービス水準に従って１５０秒以内に完了することが求められている。
図３５は、時刻６６０に起動制御部２２７が状態観測部２２８を初めて起動した場合の、状態観測部２２８が取得する合成ワークフローの状態を示す。本図を、図５と共に説明する。このように時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８はこの図３５にあるような合成ワークフローの状態および履歴情報を取得する。この時点で、図５に示した制御履歴格納ＤＢ２３４には、制御情報保持部２４６（図６）の初期状態の情報が設定されている。これは、制御対象が送信する情報は即座に送信し、制御対象が受信する情報は一旦保持して、制御対象の平均処理時間と同じ間隔で受信した順に送信することを通信制御システム２０７等に指示する情報である。状態観測部２２８は最適優先制御結果計算部２２９に、図３５に示す合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
図３６は、最適優先制御結果計算部２２９が予測部２３３を用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示す。図５の最適優先制御結果計算部２２９が、予測部２３３を利用して作成した図３６に示される合成ワークフローの動作の予測によると、すべての合成ワークフローは合意サービス水準を大幅に超過して達成している。
このため、計算機資源削減決定部２３２（図５）は、計算機資源を削減する業務アプリケーションと削減量を決定する。ここで計算機資源削減決定部２３２は、合意サービス水準に対する余裕が最も小さい合成ワークフローが予測対象期間に利用しない業務アプリケーションのうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法を採る。そこで、計算機資源削減決定部２３２（図５）は、合成ワークフロー履歴から、過去一定期間の業務アプリケーション利用率を求める。
図３７は、計算機資源削減決定部２３２の求めた各業務アプリケーションの利用率を表わす。この図３７に示した結果が得られた場合、利用率が最も低い業務アプリケーションは第１の業務アプリケーション２０３１である。また、合意サービス水準に対する余裕が最も小さい合成ワークフローである合成ワークフロー（ｂ１）は、時刻６６０以降に第１の業務アプリケーション２０３１を利用しないことが合成ワークフロー定義から判断される。このため、計算機資源削減決定部２３２は、第１の業務アプリケーション２０３１から最小単位の計算機資源を削減することを決定する。これにより、第１の業務アプリケーション２０３１の計算機資源量は、たとえば図１４に示した計算機資源量から１０単位が削減されて１０単位となり、第１の業務アプリケーション２０３１の処理所要時間は１０秒／件となる。
次に、検証部２３０は、予測における優先制御条件と計算機資源の追加、削除条件が前回設定した制御情報と異なっているか否かを判定する。この場合、時刻６６０で初めて制御が行われたため、検証部２３０は、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
次に本発明の第１〜第３の変形例を説明する。ここで、第１の変形例では、図４に示した業務アプリケーション２０３１、２０３２、等は要求を並列に処理する。また、第２の変形例では、業務アプリケーション２０３１、２０３２、等は、要求を時分割処理する。第３の変形例では、業務アプリケーション２０３１、２０３２、等は優先制御を行う。
＜発明の第１の変形例＞
図３８は、本発明の第１の変形例のワークフロー監視制御システムの通信環境についてその要部を表わす。この図３８は、一例として２つの業務システム２１０１、２１０４における第１〜第４の業務アプリケーション２０３１Ａ〜２０３４Ａを中心にシステムの要部を表わす。図３８に示されていない部分は、図４と同一の構成である。図３８では、図４と同一部分は同一の符号を付されており、これらの説明は適宜省略される。第１の変形例の説明に於いては、先の実施の形態および動作例で図示した業務アプリケーション２０３は、業務アプリケーション２０３Ａとして参照される。
第１の業務アプリケーション２０３１Ａは、第１および第２の業務アプリケーション（ＡＰ）実行部５０１１１、５０１１２を備えている。また、第２の業務アプリケーション２０３２Ａは、第１および第２の業務アプリケーション実行部５０１２１、５０１２２を備えている。第３の業務アプリケーション２０３３Ａは、第１の業務アプリケーション実行部５０１３１を備えている。第４の業務アプリケーション２０３４Ａは、第１および第２の業務アプリケーション実行部５０１４１、５０１４２を備えている。この図３８は、第１〜第４の業務アプリケーション２０３１Ａ〜２０３４Ａのみを図示しているが、それ以外の図示しない業務アプリケーション２０３５Ａ等も同様に１台以上の業務アプリケーション実行部５０１を備えている。また、各業務アプリケーション２０３１Ａ、２０３２Ａ等は、必要に応じて２以上の台数の業務アプリケーション実行部５０１を備えることができる。ここでは、特に断らない限り、図示した第１〜第４の業務アプリケーション２０３１Ａ〜２０３４Ａが説明される。なお、図に於いて、ＡＰＥは業務アプリケーション（ＡＰ）実行部を意味する。
第１の業務アプリケーション２０３１Ａは、業務システム２１０１から情報を受信すると、第１および第２の業務アプリケーション実行部５０１２１、５０１２２のうちの業務実行中でないものを選択して業務を実行する。第３および第４の業務アプリケーション２０３３Ａ、２０３４Ａも同様である。
このワークフロー監視制御システムの通信環境では、各業務システム２１０１、２１０４、等上で実行される業務アプリケーション２０３１Ａ、２０３２Ａ、等が使用する業務アプリケーション実行部５０１の数を制御する業務アプリケーション制御システム２０９Ａが１つ以上存在している。この図３８に示す例で業務アプリケーション制御システム２０９Ａは、ワークフロー監視制御システム２０５Ａと共に第２のサブネットワーク２０１２に接続されている。
図３９は、この第１の変形例におけるワークフロー監視制御システムとその周辺のシステム構成の要部を表わす。この図３９では、図５と同一部分は同一の符号が付されており、これらの説明は適宜省略される。本図を、図３８と共に説明する。ワークフロー監視制御システム２０５Ａにおける計算機資源追加決定部２３１Ａは、合意サービス水準を達成するために必要な業務アプリケーション実行部５０１の数を計算する。また、計算機資源削減決定部２３２Ａは、合意サービス水準達成を妨げない業務アプリケーション実行部５０１の削減量を計算する。更に、予測部２３３Ａは、ある時点での合成ワークフローの状態と、業務アプリケーション制御システム２０９Ａの業務アプリケーション実行部５０１の数から単位時間後の合成ワークフローの状態を予測する。業務システムリポジトリ２１３Ａには、業務アプリケーション２０３Ａを配備可能な業務システム２１０の配備情報と、業務システム２１０の性能特性情報と、業務システム２１０における業務アプリケーション２０３Ａの配備情報と、業務アプリケーション２０３Ａの業務アプリケーション実行部数情報とが格納されている。
最適優先制御結果計算部２２９Ａは、入力された情報を基にして、現在実行されている合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。この予測は予測部２３３Ａが業務システムリポジトリ２１３Ａに格納された業務アプリケーションの業務アプリケーション実行部数情報を用いて行う。最適優先制御結果計算部２２９Ａは予測結果を検証部２３０Ａに出力する。なお、図１のサービス提供品質算出手段１４は、それぞれのワークフローの業務の完了時におけるサービス提供品質を算出する。その算出結果が本実施の形態における予測結果の一例である。
検証部２３０Ａは予測結果を目標状態管理部２３６と対比して目標達成状況を判定する。図１の品質非到達判別手段１５が、第１の変形例における検証部２３０Ａの一例であり、ワークフローのいずれかが業務の完了時におけるサービス提供品質の下限値を下回るとき、これを判別する。この結果、検証部２０３は、予測結果が妥当であれば制御情報を制御履歴格納ＤＢ２３４に格納し、制御信号送信部２３５によって通信制御システム２０７と業務アプリケーション制御システム２０９に予測結果の妥当性を送信して終了する。予測結果が合意サービス水準を達成していなければ、検証部２３０は、計算機資源追加決定部２３１Ａに最適優先制御結果計算部２２９Ａの入力と出力を通知する。
計算機資源追加決定部２３１Ａは、受け取った最適優先制御結果計算部２２９Ａの入力と出力を参照して適切な業務アプリケーションに計算機資源を追加する計画を作成し、業務システムリポジトリ２１３Ａに設定する。品質非到達判別手段１５が或るワークフローについてサービス提供品質の下限値を下回ることを判別したとき、計算機資源再配分手段１６が複数の処理部に対する業務アプリケーション実行部５０１の数の変更による計算機資源の量を再配分することで所定のワークフローのサービス提供品質が下限値を下回ることを回避させるようにする。この処理が、第１の変形例の計算機資源を追加する計画作成の一例である。最適優先制御結果計算部２２９Ａは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として、再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
検証部２３０Ａは、この予測結果が合意サービス水準を大きく超過して達成していると判定した場合、計算機資源削減決定部２３２Ａに最適優先制御結果計算部２２９Ａの入力と出力を通知する。計算機資源削減決定部２３２Ａは、受け取った最適優先制御結果計算部２２９Ａの入力と出力を参照して、業務アプリケーション２０３に配分された業務アプリケーション実行部数を適切に削減する計画を作成し、業務システムリポジトリ２１３Ａに設定する。最適優先制御結果計算部２２９Ａは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
図４０は、この第１の変形例におけるワークフロー監視制御システムの全体的な処理動作の概要を表わす。本図を、図３９および図６と共に説明する。ただし、図６のワークフロー監視制御システム２０５は図３９のワークフロー監視制御システム２０５Ａと読み替える。
ワークフロー監視制御システム２０５Ａは、図示されないＣＰＵと、このＣＰＵが実行する制御プログラムを格納するハードディスク等の記憶媒体を備えている。ＣＰＵはこの制御プログラムを実行することによって先に説明したワークフロー監視制御システム２０５Ａ内の各部のうちの少なくとも一部をソフトウェアで機能的に実現しても良い。また、ワークフロー監視制御システム２０５Ａ内の各部、または、ＣＰＵは、次に説明する制御を実現する。
起動制御部２２７は、所定の制御時間が到来するまで待機しており（ステップＳ３０１）、動作が停止している。所定の制御時間が到来すると（Ｙ）、起動制御部２２７は状態観測部２２８を起動し、状態観測部２２８は、監視情報格納ＤＢ２２６に格納された監視情報を合成ワークフロー定義ＤＢ２２３に格納された合成ワークフロー定義と対応付ける。そして、状態観測部２２８は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を作成する（ステップＳ３０２）。
次に、最適優先制御結果計算部２２９Ａは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、制御履歴格納ＤＢ２３４から取得した現在の制御条件とを入力する。最適優先制御結果計算部２２９Ａは入力したこれらの情報を基にして、現在実行されている合成ワークフローの将来の状態を予測する。合成ワークフローの将来の状態の予測結果と最適優先制御結果計算部２２９Ａへの入力は、検証部２３０Ａに出力される（ステップＳ３０３）。
検証部２３０Ａは予測結果に関して、目標状態管理部２３６を参照して妥当性を判定する（ステップＳ３０４）。この結果、予測結果が妥当であれば（Ｙ）、すなわち、予測結果が合意サービス水準を達成しており、かつこれが合意サービス水準を大幅に超過するようなものでない場合には、検証部２３０Ａは、制御履歴格納ＤＢ２３４を参照して、制御条件が現行の制御条件と同一であるかを判定する（ステップＳ３０５）。同一であれば（Ｙ）、検証部２３０Ａは、制御条件は送信せずに動作を終了し、ワークフロー監視制御システム２０５ＡはステップＳ３０１の処理に戻る（リターン）。
制御条件が現行の制御条件と同一ではない場合には（ステップＳ３０５：Ｎ）、検証部２３０Ａは、その同一でない制御条件を制御履歴格納ＤＢ２３４に格納する。そして、制御信号送信部２３５は通信制御システム２０７に制御条件を送信する（ステップＳ３０６）。この後、ワークフロー監視制御システム２０５ＡはステップＳ３０１の処理に戻る（リターン）。
ステップＳ３０４で予測結果が妥当でないと判定される（Ｎ）場合は、次の２つの何れかの場合である。１つは、予測結果が合意サービス水準を達成していないと判定された場合である。もう１つは、予測結果が合意サービス水準を大幅に超過したと判定された場合である。したがって、予測結果が妥当でないと判定された場合には（ステップＳ３０４：Ｎ）、検証部２３０Ａは、合意サービス水準を未達成か否かの判別をする（ステップＳ３０７）。
予測結果が合意サービス水準を達成していないと判定された場合には（Ｙ）、計算機資源追加決定部２３１Ａが計算機資源を追加すべき適切な業務アプリケーションと追加量を計算する。そして、計算機資源追加決定部２３１Ａは、追加後の業務アプリケーションの業務アプリケーション実行部数を業務システムリポジトリ２１３Ａに設定し（ステップＳ３０８Ａ）、最適優先制御結果計算部２２９Ａは現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を入力として現在実行されている合成ワークフローの将来の状態を予測する（ステップＳ３０３）。
これに対して、予測結果が合意サービス水準を大幅に超過したと判定された場合には（ステップＳ３０７：Ｎ）、計算機資源削減決定部２３２Ａが計算機資源を削減すべき適切な業務アプリケーションと削減量を計算して、削減後の業務アプリケーションの業務アプリケーション実行部数を業務システムリポジトリ２１３Ａに設定する（ステップＳ３０９Ａ）。予測結果が合意サービス水準を大きく超過していると判定する方法の一例としては、合意サービス水準に対する余裕が最も小さい合成ワークフローの合意サービス水準との差が所定の範囲を超えているか否かにより判定する方法がある。このようにして計算機資源を削減したら、検証部２３０は、ステップＳ３０５の処理に進む。
図４１は、第１の変形例における計算機資源追加決定部２３１Ａの処理の様子を表わし、図４２は計算機資源削減決定部２３２Ａの処理の様子を表わす。両図を、図３８、図３９および図６と共に説明する。なお、これらの図は、計算機資源追加決定部２３１Ａおよび計算機資源削減決定部２３２Ａの動作の一例をそれぞれ示す。計算機資源追加決定部２３１Ａおよび計算機資源削減決定部２３２Ａの動作は、監視制御対象と合意サービス水準の内容、業務システムの特性によって変化する。
計算機資源追加決定部２３１Ａは、まず検証部２３０Ａから、最適優先制御結果計算部２２９Ａでの予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０Ａが予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３７１：Ｙ）。そして、計算機資源追加決定部２３１Ａは、入力した情報から、合意サービス水準が達成不可能な合成ワークフロー群を特定する（ステップＳ３７２）。
次に、計算機資源追加決定部２３１Ａは、計算機資源を追加する業務アプリケーション２０３Ａと追加量を決定する（ステップＳ３７３）。この決定方法の一例は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３Ａに実行を要求してから実行されるまでの待ち時間（待機時間）の合計が最も大きいと予測された業務アプリケーション２０３Ａに、最小単位の計算機資源を追加するという方法である。また、この決定方法は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３Ａに実行を要求してから実行されるまでの待ち時間を業務アプリケーションの実行所要時間で除した値に、業務アプリケーション２０３Ａに計算機資源を最小単位追加した場合の業務アプリケーション２０３Ａの実行所要時間改善量を掛けた値を、ステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーション２０３Ａに対して要求しているすべての実行要求について業務アプリケーション２０３ごとに足し合わせた値を求め、この値が最も大きいと予測された業務アプリケーション２０３Ａに、最小単位の計算機資源を追加するという方法でも良い。
以上のようにして計算機資源を追加する業務アプリケーション２０３Ａと追加量を決定したら（ステップＳ３７３）、計算機資源追加決定部２３１Ａは、求められた業務アプリケーション２０３Ａに対して、求められた計算機資源（業務アプリケーション実行部５０１）を追加した状態を業務システムリポジトリ２１３Ａに保存する（ステップＳ３７４Ａ）。このようにして計算機資源追加決定部２３１Ａは、処理を終了する（エンド）。
図４２は、計算機資源削減決定部の動作を示す。本図を、図３８および図３９と共に説明する。
計算機資源削減決定部２３２Ａは、検証部２３０Ａから、最適優先制御結果計算部２２９Ａでの予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０Ａが予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３９１：Ｙ）。
計算機資源削減決定部２３２Ａは次に、この入力した情報から、合意サービス水準に対する余裕が最も小さい合成ワークフローを特定する（ステップＳ３９２）。そして、この特定された合成ワークフロー以外の合成ワークフローに対する合意サービス水準の達成という観点から、計算機資源を削減する業務アプリケーション２０３Ａと削減量を決定する（ステップＳ３９３）。この決定方法の一例は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーション２０３Ａのうち、待ち時間が最も短いものから最小単位の計算機資源を削減するという方法である。また、この決定方法は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーション２０３Ａのうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法であってもよい。
以上のようにしてステップＳ３９３で計算機資源を削減する業務アプリケーション２０３Ａと削減量を決定したら、計算機資源削減量決定部２３２Ａは、求められた業務アプリケーション２０３Ａから求められた量の計算機資源（業務アプリケーション実行部５０１）を削減した状態を業務システムリポジトリ２１３に保存する（ステップＳ３９４Ａ）。このようにして計算機資源削減決定部２３２Ａは、処理を終了する（エンド）。計算機資源の削減に関して、合意サービス水準に対する余裕が最も小さい合成ワークフローを最初に特定する（図４２ステップＳ３９２）ことは必須の条件ではない。これ以外の手法でも計算機資源の削減は可能である。
図４３は、この第１の変形例におけるワークフローシステムの具体的な構成を表わし、図１２に対応するものである。この第１の変形例のワークフロー実行システム４００Ａには、第１および第２のワークフローシステム２０４１、２０４２と、第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａが存在しており、これらがワークフロー監視制御システム２０５Ａの監視制御対象となっている。ただし、この図ではワークフロー監視制御システム２０５Ａ、第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａを配備した業務システム２１０（図３８参照）の図示が省略されている。また、第１および第２のワークフローシステム２０４１、２０４２と、第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａ、第１〜第９の通信制御システム２０７１〜２０７９ならびに第１および第２のワークフロー監視システム２０８１、２０８２の接続関係は、図４あるいは図３８に示した例示的な接続関係とは異なる。
第１のワークフローシステム２０４１には１つのワークフロー定義が存在する。このワークフロー定義にしたがって処理されるワークフローは、図４３の上半分に示されるスタート（ＳＴＡＲＴ）からエンド（ＥＮＤ）で示される流れにおける各ステップＳ１〜ステップＳ４を経る過程で、第１〜第４の業務アプリケーション２０３１Ａ〜２０３４Ａと順次通信を行う。
第２のワークフローシステム２０４２にも１つのワークフロー定義が存在する。このワークフロー定義にしたがって処理されるワークフローは、図４３の下半分に示されるスタート（ＳＴＡＲＴ）からエンド（ＥＮＤ）で示される流れにおける各ステップＳ１１〜ステップＳ１６を経る過程で、第５、第３、第６および第７の業務アプリケーション２０３５Ａ、２０３３Ａ、２０３６Ａおよび２０３７Ａと順次通信を行う。第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａには、それぞれ所定数の業務アプリケーション（ＡＰ）実行部５０１１１、５０１１２、等が配備されている。
ここで、第１の通信制御システム２０７１はステップＳ１の処理で第１の業務アプリケーション２０３１Ａの通信を制御し、第２の通信制御システム２０７２はステップＳ２の処理で第２の業務アプリケーション２０３２Ａの通信を制御する。また、第３の通信制御システム２０７３はステップＳ３およびステップＳ１２の処理で第３の業務アプリケーション２０３３Ａの通信を制御し、第４の通信制御システム２０７４はステップＳ４の処理で第４の業務アプリケーション２０３４Ａの通信を制御する。更に、第５の通信制御システム２０７５はステップＳ１１の処理で第５の業務アプリケーション２０３５Ａの通信を制御し、第６の通信制御システム２０７６はステップＳ１４の処理で第６の業務アプリケーション２０３６Ａの通信を制御する。更にまた、第７の通信制御システム２０７７はステップＳ１５およびステップＳ１６の処理で第７の業務アプリケーション２０３７Ａの通信を制御する。また、第８の通信制御システム２０７８は第１のワークフローシステム２０４１全体の通信制御を、第９の通信制御システム２０７９は第２のワークフローシステム２０４２全体の通信制御をそれぞれ行う。
図４４は、この第１の変形例で使用される各業務アプリケーションの性能特性を表わす。図４４は、縦軸に第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａを示し、横軸に計算機資源量として、使用する業務アプリケーション実行部５０１の数を示しており、各セルに、対応する計算機資源量が与えられた場合の対応するアプリケーションのワークフロー１件当たりの処理時間を示している。たとえば、第１の業務アプリケーション２０３１Ａは、計算機資源量が１台の業務アプリケーション実行部５０１であるときに、１件当たり１０秒で処理を行う。計算機資源量が倍の業務アプリケーション実行部５０１が２台になると、１件当たり１０秒である点に変わりないが、２台が処理を行うので、５秒ごとに１件の処理が行われる。図４４に示した第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａについての性能特性を表わしたデータは、図３９に示す業務システムリポジトリ２１３Ａに格納されている。
図４５は、それぞれの業務アプリケーションに初期状態で割り当てられた計算機資源量を示す。第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａに関する初期状態の計算機資源量も、図３９に示す業務システムリポジトリ２１３Ａに格納されている。
計算機資源量のこの割当状況で、図４４に示すように第１の業務アプリケーション２０３１Ａと第５の業務アプリケーション２０３５Ａは、処理１件あたり５秒で処理を行う。また、第２の業務アプリケーション２０３２Ａは処理１件あたり８秒で、第３の業務アプリケーション２０３３Ａは処理１件あたり１５秒で、第４の業務アプリケーション２０３４Ａは処理１件あたり１２秒で、第６の業務アプリケーション２０３６は処理１件あたり１０秒で、第７の業務アプリケーション２０３７は処理１件あたり２０秒で、それぞれ処理を行う。
これらワークフロー定義および業務アプリケーション定義は、ワークフロー定義・業務定義リポジトリ２１１（図３９）に格納されている。また、図３９に示すワークフロー定義・業務定義取得部２２１およびワークフロー合成部２２２は、第１のワークフローシステム２０４１に存在する１つのワークフロー定義と、第１〜第４の業務アプリケーション２０３１Ａ〜２０３４Ａに存在する計４つの業務アプリケーション定義を合成した１つの合成ワークフロー定義と、第２のワークフローシステム２０４２に存在する１つのワークフロー定義と、第５、第３、第６および第７の業務アプリケーション２０３５Ａ、２０３３Ａ、２０３６Ａ、２０３７Ａに存在する計５つの業務アプリケーション定義を合成した１つの合成ワークフロー定義を生成し、合成ワークフロー定義ＤＢ２２３（図３９）に格納する。
図４３に示したワークフローのワークフロー定義には合意サービス水準が設定されている。第１のワークフローシステム２０４１に存在する１つのワークフロー定義を中心とする合成ワークフロー定義には、処理を１５０秒以内に完了することを要求する合意サービス水準が設定されている。また、第２のワークフローシステム２０４２に存在する１つのワークフロー定義を中心とする合成ワークフロー定義には、合成ワークフロー定義の利用者に応じて２つの合意サービス水準が定義されている。具体的には、例えば、一部の利用者に対しては処理を１５０秒以内に完了することを、他の利用者に対しては処理を１８０秒以内に完了することを要求する合意サービス水準が設定されている。このような合意サービス水準は、合意サービス水準リポジトリ２１２（図３９）に格納されている。このように合意サービス水準を利用者別に複数設定することで、それぞれの利用者のサービスの要求度に応じたサービス提供品質を確保することが可能になる。
第１の変形例のワークフロー実行システム４００Ａでは、第１のワークフロー監視システム２０８１が第１のワークフローシステム２０４１を、第２のワークフロー監視システム２０８２が第２のワークフローシステム２０４２を監視対象としている。
初期状態で、各通信制御システム２０７１〜２０７９の制御情報保持部２４６（図６参照）は、それぞれの制御対象が送信する情報を各通信制御システム２０７１〜２０７９が即座に送信することを指示する設定情報を保持する。また、制御情報保持部２４６は、それぞれの制御対象が受信する情報を各通信制御システム２０７１〜２０７９が一旦保持して、制御対象の処理時間と同じ間隔で、これらを受信した順に制御対象に送信することを指示する設定情報を保持する。更に、第１および第２のワークフローシステム２０４１、２０４２ならびに第１〜第７の業務アプリケーション２０３１Ａ〜２０３７Ａの間の通信は、通信監視システム２０６（図３９）によって監視されている。これらの監視対象および制御対象を定義する情報は、制御システム格納ＤＢ２３７（図３９）に格納されている。
その他に、起動制御部２２７（図３９）は、例えば、６０秒ごとに状態観測部２２８（図３９）を起動するように設定されている。また、予測部２３３Ａ（図３９）は、入力された合成ワークフローの状態の０．１秒後の状態を求めるよう設定されている。
また、検証部２３０Ａ（図３９）が、予測結果が合意サービス水準を大きく超過して達成していると判定する状態とは、例えば、ある合成ワークフロー定義に属するすべての合成ワークフローが合意サービス水準で定められた時間の３分の２以下の時間で完了している状態である。
図４６は、時刻０から合成ワークフローが実行されているときの時刻６６０におけるワークフロー監視制御システム２０５Ａの状態を示す。また、図４７は、起動制御部が状態観測部を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示す。
図４６および図４７に示すように、この時刻６６０において第１のワークフローシステム２０４１により実行が制御される６個の合成ワークフロー（ａ１）〜（ｆ１）と、第２のワークフローシステム２０４２により実行が制御される６個の合成ワークフロー（ａ２）〜（ｆ２）が動作している。合成ワークフロー（ａ１）は第３の業務アプリケーション２０３３Ａで実行中である。合成ワークフロー（ｂ１）、（ｃ１）、（ｄ１）は第３の通信制御システム２０７３Ａにおいて実行待ち状態に保持されている。合成ワークフロー（ｅ１）、（ｆ１）は、第２の業務アプリケーション２０３２Ａで実行中である。合成ワークフロー（ａ２）、（ｂ２）は第６の業務アプリケーション２０３６Ａで実行中であり、合成ワークフロー（ｃ２）は第３の業務アプリケーション２０３３Ａで実行中である。合成ワークフロー（ｄ２）、（ｅ２）は第３の通信制御システム２０７３において実行待ち状態に保持されており、合成ワークフロー（ｆ２）は第５の業務アプリケーション２０３５Ａで実行中である。
図４７に示されている第２のワークフローシステム２０４２における６個の合成ワークフロー（ａ２）〜（ｆ２）のうちで、合成ワークフロー（ａ２）、（ｂ２）、（ｃ２）、（ｄ２）および合成ワークフロー（ｆ２）は与えられた合意サービス水準に従って処理を１８０秒以内に完了することが求められており、合成ワークフロー（ｅ２）は処理を１５０秒以内に完了することが求められている。
時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８は図４７にあるような合成ワークフローの状態および履歴情報を取得する。
この時点で制御履歴格納ＤＢ２３４には、制御情報保持部２４６の初期状態である、制御対象が送信する情報は即座に送信し、制御対象が受信する情報は一旦保持し、制御対象の平均処理時間と同じ間隔で受信した順に送信するという情報が設定されている。状態観測部２２８は最適優先制御結果計算部２２９Ａに、図４７にあるような合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
最適優先制御結果計算部２２９Ａは、予測部２３３Ａを利用し、すべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を作成する。最適優先制御結果計算部２２９Ａはまず、予測部２３３Ａに時刻６６０のときの合成ワークフローの状態および履歴情報を通知し、時刻６６０．１のときの合成ワークフローの状態予測を得る。
時刻を進めながら同様の予測を繰り返し実行していくと、時刻６７５．１０２のとき、第３の業務アプリケーション２０３３が合成ワークフロー（ａ１）の処理を終えて、新たな合成ワークフローを実行可能となる。このとき第３の業務アプリケーション２０３３で実行可能な合成ワークフローは、合成ワークフロー（ｂ１）、（ｃ１）、（ｄ１）、（ｅ１）、（ｆ１）、（ｄ２）、（ｅ２）、（ｆ２）である。最適優先制御結果計算部２２９Ａは、新たに第３の業務アプリケーション２０３３Ａで処理を実行する処理として、それぞれの合成ワークフローを選んだ場合の将来の状態を予測する。最適優先制御結果計算部２２９Ａは、これらの予測結果のうち最も良好な結果を、求める予測結果として採用する。
図４８は、最適優先制御結果計算部２２９Ａの計算した予測結果を示す。図４８によれば、合成ワークフロー（ｄ１）、（ｄ２）、（ｅ２）、（ｆ２）の処理時間が合意サービス水準に達していない。合意サービス水準の達成を図る為には、計算機資源の追加が必要である。
そこで、計算機資源追加決定部２３１Ａは、計算機資源を追加する業務アプリケーションと追加量を決定する。計算機資源追加決定部２３１Ａは、予想待ち時間改善量という概念を用いる。予想待ち時間改善量とは、合意サービス水準に達しない合成ワークフロー群が各業務アプリケーション２０３Ａに実行を要求してから実行されるまでの待ち時間を業務アプリケーションの実行所要時間で除した値に、業務アプリケーションに業務アプリケーション実行部５０１（図２８）を１台追加した場合の業務アプリケーションの実行待ち時間間隔改善量を掛けた値を、図４１のステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーション２０３に対して要求しているすべての実行要求について業務アプリケーション２０３ごとに足し合わせた値である。そして、計算機資源追加決定部２３１Ａは、得られた予想待ち時間改善量が最も大きいと予測された業務アプリケーションに対して、最小単位の計算機資源を追加する。
図４９は、予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わす。この図４９は、予想待ち時間改善量が最も大きいと予測される業務アプリケーションを求めるため、予測結果に基づいて算出した、各業務アプリケーションの予想待ち時間改善量を示す。
この図４９によれば、第３の業務アプリケーション２０３３Ａが最も予想待ち時間改善量が大きい。したがって、この例の場合、計算機資源追加決定部２３１Ａは、第３の業務アプリケーション２０３３Ａに計算機資源を追加する。この結果、第３の業務アプリケーション２０３３Ａには業務アプリケーション実行部５０１（図３８）の１台が追加され、当該アプリケーションには合計３台が割り当てられる。
図５０は、計算機資源を最初に追加した場合の合成ワークフローの状態を示す。本図を、図４６、図３９および図４３と共に説明する。
最適優先制御結果計算部２２９Ａは、計算機資源が最初に追加された場合の合成ワークフローの動作の予測を、図１７の予測結果を求めたときと同じ方法で取得する。図５０はこの結果を示す。このとき、例えば、計算機資源の追加は時刻６６５に行われる。図５０によると、合成ワークフロー（ｄ１）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｄ２）、（ｅ２）、（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ａは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図５１は、計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７Ａが最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ａは、第７の業務アプリケーション２０３７Ａに計算機資源を追加する。これにより、第７の業務アプリケーション２０３７Ａに業務アプリケーション実行部５０１が１台追加され、当該アプリケーションには合計３台が割り当てられる。
この条件で、最適優先制御結果計算部２２９Ａ（図３９）は、計算機資源が追加された場合の合成ワークフローの動作の予測を図２１の予測結果を求めたときと同じ方法で取得する。
図５２は、計算機資源を２番目に追加した場合の合成ワークフローの状態を示す。例えば、計算機資源の追加は時刻６６５に行われる。図５２によると、合成ワークフロー（ｅ２）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｄ２）および（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ａは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図５３は、計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第３の業務アプリケーション２０３３Ａが最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ａは、第３の業務アプリケーション２０３３Ａに計算機資源を追加する。これにより、第３の業務アプリケーション２０３３Ａに業務アプリケーション実行部５０１が１台追加され、当該アプリケーションには合計４台が割り当てられる。
この条件で、最適優先制御結果計算部２２９Ａ（図３９）は、計算機資源が追加された場合の合成ワークフローの動作の予測を図２３の予測結果を求めたときと同じ方法で取得する。
図５４は、計算機資源を３番目に追加した場合の合成ワークフローの状態を示す。計算機資源の追加は時刻６６５に行われるものとする。この図５４によると、処理時間は短縮されたものの、合成ワークフロー（ｄ２）および（ｆ２）は未だ合意サービス水準を達成できていない。このため、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図５５は、計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７Ａが最も予想待ち時間改善量が大きい。このため、第７の業務アプリケーション２０３７Ａに計算機資源を追加する。これにより、第７の業務アプリケーション２０３７Ａに業務アプリケーション実行部５０１が１台追加され、当該アプリケーションには合計４台が割り当てられる。
この条件で、最適優先制御結果計算部２２９Ａ（図３９）は、計算機資源が追加された場合の合成ワークフローの動作の予測を図２５の予測結果を求めたときと同じ方法で取得する。
図５６は、計算機資源を４番目に追加した場合の合成ワークフローの状態を表わす。例えば、計算機資源の追加は時刻６６５に行われる。この図５６によると、合成ワークフロー（ｄ２）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ａは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図５７は、計算機資源を５番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。図５７によると、第７の業務アプリケーション２０３７Ａが最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ａは、第７の業務アプリケーション２０３７Ａに計算機資源を追加する。これにより、第７の業務アプリケーション２０３７Ａに業務アプリケーション実行部５０１が１台追加され、当該アプリケーションには合計５台が割り当てられる。
この条件で、最適優先制御結果計算部２２９Ａ（図３９）は、計算機資源が追加された場合の合成ワークフローの動作の予測を図２７の予測結果を求めたときと同じ方法で取得する。
図５８は、計算機資源を５番目に追加した場合の合成ワークフローの状態を表わす。例えば、計算機資源の追加は時刻６６５に行われる。図５８によると、この条件で、すべての合成ワークフローが合意サービス水準を達成できると予想される。
以上のようにして計算機資源の追加によってすべての合成ワークフローが合意サービス水準を達成できると予想されるようになったら、検証部２３０Ａは、前述した予測における優先制御条件と計算機資源の追加ならびに削除条件が、前回設定した制御情報と異なっているか否かを判定する。この例の場合、時刻６６０で初めて制御が行われたので、検証部２３０Ａは、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
図５９は、時刻７２０の時点に起動制御部が状態観測部を再度起動した場合における合成ワークフローの状態を示す。この時刻７２０において、図３９に示した起動制御部２２７が状態観測部２２８を再度起動すると、状態観測部２２８はこの図５９にあるような合成ワークフローの状態および履歴情報を取得する。図５９を図５８と比較すると、図４３のステップＳ１３で示す条件分岐が原因で、合成ワークフロー（ｄ２）の処理が予測結果と異なっている。これ以外の合成ワークフローは、予測結果どおりに処理が進捗している。
図６０は、時刻６６０の時点と同様に、時刻７２０の時点で将来を予測した場合の合成ワークフローの状態を示す。この図６０に示されるように、この場合はすべての合成ワークフローが合意サービス水準を達成すると予想される。このため、新規の制御は行われない。
次に、この監視対象において、合成ワークフローの状態が異なる場合の動作を説明する。
図６１は、時刻０から合成ワークフローが実行された場合の、時刻６６０に実行されている合成ワークフローの状態を示す。第１のワークフローシステム２０４１により実行が制御される３個の合成ワークフローと、第２のワークフローシステム２０４２により実行が制御される２個の合成ワークフローが動作している。時刻６６０において、合成ワークフロー（ａ１）、（ｂ１）は第３の業務アプリケーション２０３３Ａで実行中であり、合成ワークフロー（ｃ１）は第３の通信制御システム２０７３において実行待ち状態に保持されている。合成ワークフロー（ａ２）は第６の業務アプリケーション２０３６Ａで実行中であり、合成ワークフロー（ｂ２）は第５の業務アプリケーション２０３５Ａで実行中である。第２のワークフローシステム２０４２における２個の合成ワークフローは与えられた合意サービス水準に従って１８０秒以内に完了することが求められている。
図６２は、時刻６６０に起動制御部２２７が状態観測部２２８を初めて起動した場合の、状態観測部２２８が取得する合成ワークフローの状態を示す。本図を、図３９と共に説明する。このように時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８はこの図６２にあるような合成ワークフローの状態および履歴情報を取得する。この時点で、図３９に示した制御履歴格納ＤＢ２３４には、制御情報保持部２４６（図６）の初期状態の情報が設定されている。これは、制御対象が送信する情報は即座に送信し、制御対象が受信する情報は一旦保持して、制御対象の平均処理時間と同じ間隔で受信した順に送信することを通信制御システム２０７等に指示する情報である。状態観測部２２８は最適優先制御結果計算部２２９Ａに、図６２に示す合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
図６３は、この最適優先制御結果計算部２２９Ａが予測部２３３Ａを用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示す。図３９の最適優先制御結果計算部２２９Ａが、予測部２３３Ａを利用して作成した図６３に示される合成ワークフローの動作の予測によると、第１のワークフローシステム２０４１に存在する１つのワークフロー定義を中心とする合成ワークフロー定義に属するすべての合成ワークフローは合意サービス水準を大幅に超過して達成している。
このため、計算資源削減決定部２３２Ａ（図３９）は、計算機資源を削減する業務アプリケーションと削減量を決定する。検証部２３０Ａは、合意サービス水準に対する余裕が最も小さい合成ワークフローが予測を行った期間に利用しない業務アプリケーションのうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法を採る。そこで、計算機資源削減決定部２３２Ａ（図３９）は、合成ワークフロー履歴から、過去一定期間の業務アプリケーション利用率を求める。
先に示した図３７は、計算機資源削減決定部３２３Ａの求めた各業務アプリケーションの利用率を表わす。図３７に示した結果が得られた場合、利用率が最も低い業務アプリケーションは第１の業務アプリケーション２０３１Ａである。また、合意サービス水準に対する余裕が最も小さい合成ワークフローである合成ワークフロー（ｂ２）は、時刻６６０以降に第１の業務アプリケーション２０３１Ａを利用しないことが合成ワークフロー定義から判断される。このため、計算機資源削減決定部３２３Ａは、第１の業務アプリケーション２０３１Ａから最小単位の計算機資源を削減することを決定する。これにより、第１の業務アプリケーション２０３１Ａの計算機資源量は、例えば図４５に示した計算機資源量から業務アプリケーション実行部５０１が１台削減されて、１台となる。
次に、検証部２３０Ａは、予測における優先制御条件と計算機資源の追加、削除条件が前回設定した制御情報と異なっているか否かを判定する。この場合、時刻６６０で初めて制御が行われたため、検証部２３０Ａは、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
＜発明の第２の変形例＞
図６４は、本発明の第２の変形例としてのワークフロー監視制御システムの通信環境を表わす。図６４では、図４と同一部分には同一の符号を付されており、これらの説明は適宜省略される。
この図６４に示した通信環境には、業務システム２１０１、２１０４、等上で実行される業務アプリケーション２０３１、２０３２、等の使用する計算機資源量と、各業務アプリケーション２０３１、２０３２、等の使用する計算機資源量を制御する業務アプリケーション制御システム２０９Ｂが１つ以上存在している。業務アプリケーション制御システム２０９Ｂは、この図に示す例で第２のサブネットワーク２０１２に接続されている。また、業務アプリケーション２０３１、２０３２、等およびワークフローシステム２０４を監視、制御するワークフロー監視制御システム２０５Ｂも１つ以上存在する。ワークフロー監視制御システム２０５Ｂは第２のサブネットワーク２０１２に接続されている。
先の実施の形態では、図４に示された業務アプリケーション制御システム２０９は、各業務アプリケーション２０３１、２０３２、等のいずれかで、複数の合成ワークフローが処理の対象とされたとき、その中で最も優先度の高い合成ワークフローを選択して処理させる。そして、業務アプリケーション制御システム２０９は、その合成ワークフローの処理が完了した時点で、次に優先度の高い１つの合成ワークフローの処理を開始させる。本発明の第２の変形例では、業務アプリケーション２０３１、２０３２、等が処理の対象となる複数の合成ワークフローを時分割で並行して処理する。
図６５は、この第２の変形例におけるワークフロー監視制御システムとその周辺のシステム構成の要部を表わす。図６５では、図５と同一部分は同一の符号を付されており、これらの説明は適宜省略される。
図６５でワークフロー監視制御システム２０５Ｂは、ワークフロー定義と業務定義を取得するワークフロー定義・業務定義取得部２２１と、複数のワークフロー定義、業務定義間の通信関係を解析し、相互に通信するワークフロー定義、業務定義を合成した合成ワークフロー定義を生成するワークフロー合成部２２２と、合成ワークフロー定義を格納する合成ワークフロー定義ＤＢ（データベース）２２３と、ワークフロー監視システム２０８および通信監視システム２０６からの監視情報を受信する監視情報受信部２２４と、監視情報を合成ワークフロー定義に対応付けて解析する監視情報解析部２２５と、監視情報を格納する監視情報格納ＤＢ（データベース）２２６と、定期的に起動要求を送信する起動制御部２２７と、現在までの合成ワークフローの状態を取得する状態観測部２２８と、最適な制御をした場合の合成ワークフローの動作を予測する最適優先制御結果計算部２２９Ｂと、予測結果から合成ワークフローが合意サービス水準を達成すると予想されるかを検証する検証部２３０Ｂと、合意サービス水準を達成するために必要な計算機資源量を計算する計算機資源追加決定部２３１Ｂと、合意サービス水準達成を妨げない計算機資源の削減量を計算する計算機資源削減決定部２３２Ｂと、ある時点での合成ワークフローの状態と、業務アプリケーション制御システム２０９Ｂの計算機資源割り当て状況から単位時間後の合成ワークフローの状態を予測する予測部２３３Ｂと、過去の制御履歴を格納する制御履歴格納ＤＢ（データベース）２３４と、制御信号を通信制御システム２０７に送信する制御信号送信部２３５と、合意サービス水準を保持する目標状態管理部２３６と、通信制御システム２０７同士の対応関係を保持する制御システム格納ＤＢ（データベース）２３７とから構成されている。図６５は、通信制御システム２０７を代表的に１つのみ示す。通信制御システム２０７が複数存在するときに、制御システム格納ＤＢ２３７は通信制御システム２０７同士の対応関係を保持する。
本実施の形態でワークフロー監視制御システム２０５Ｂを中心とした各システムは、概略次のように動作する。各システムの動作を、図６４および図６５と共に説明する。
ワークフロー定義・業務定義リポジトリ２１１には、監視制御対象となるワークフローシステム２０４で実行されるワークフローの定義、業務システム２１０上で実行される業務アプリケーション２０３の定義があらかじめ格納されている。また、合意サービス水準リポジトリ２１２には、監視制御対象となるワークフローシステム２０４、業務アプリケーション２０３に設定された合意サービス水準が予め格納されている。ここで、合意サービス水準は、前記したサービス提供品質に対して許容できる下限値の一例である。業務システムリポジトリ２１３Ｂには、業務アプリケーション２０３を配備可能な業務システム２１０の配備情報と、業務システム２１０の性能特性情報と、業務システム２１０における業務アプリケーション２０３の配備情報と、業務アプリケーション２０３の計算機資源量情報とが格納されている。
ワークフローシステム２０４および業務アプリケーション２０３の実行前に、ワークフロー定義・業務定義取得部２２１はワークフロー定義・業務定義リポジトリ２１１からワークフロー定義および業務定義を取得する。ワークフロー合成部２２２は、取得されたワークフロー定義および業務定義から合成ワークフロー定義を作成し、合成ワークフロー定義ＤＢ２２３に格納する。また、目標状態管理部２３６は、合意サービス水準リポジトリ２１２から合意サービス水準情報を取得し、保持する。
ワークフローシステム２０４ならびに業務アプリケーション２０３が動作すると、業務の進捗と通信の発生をワークフロー監視システム２０８と通信監視システム２０６が検知し、監視情報受信部２２４に通知する。受信した監視情報は監視情報解析部２２５で合成ワークフロー定義に対応付けて解析され、監視情報格納ＤＢ２２６に格納される。
これと並行して、起動制御部２２７は定期的に状態観測部２２８に起動要求を送る。状態観測部２２８は監視情報格納ＤＢ２２６に格納された監視情報を合成ワークフローＤＢ２２３に格納された合成ワークフロー定義と対応付け、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を作成する。更に、状態観測部２２８は、制御履歴格納ＤＢ２３４から現在の制御条件を取得する。状態観測部２２８は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、現在の制御条件を最適優先制御結果計算部２２９Ｂに入力する。
最適優先制御結果計算部２２９Ｂは入力された情報を基にして、現在実行されている合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。この予測は予測部２３３Ｂが業務システムリポジトリ２１３Ｂに格納された業務アプリケーションの計算機資源割り当て量情報を用いて行う。最適優先制御結果計算部２２９Ｂは予測結果と入力を検証部２３０Ｂに出力する。なお、図１に示したサービス提供品質算出手段１４は、それぞれのワークフローの業務の完了時におけるサービス提供品質を算出する。その算出結果が第２の変形例における予測結果の一例である。
検証部２３０Ｂは予測結果を目標状態管理部２３６と対比して目標達成状況を判定する。図１に示した品質非到達判別手段１５が、第２の変形例における検証部２３０Ｂの一例であり、ワークフローのいずれかが業務の完了時におけるサービス提供品質の下限値を下回るとき、これを判別する。この結果、検証部２３０Ｂは、予測結果が妥当であれば制御情報を制御履歴格納ＤＢ２３４に格納し、制御信号送信部２３５によって通信制御システム２０７と業務アプリケーション制御システム２０９Ｂに予測結果の妥当性を送信して終了する。予測結果が合意サービス水準を達成していなければ、検証部２３０Ｂは、計算機資源追加決定部２３１Ｂに最適優先制御結果計算部２２９Ｂの入力と出力を通知する。
計算機資源追加決定部２３１Ｂは、受け取った最適優先制御結果計算部２２９Ｂの入力と出力を参照して適切な業務アプリケーションに計算機資源を追加する計画を作成し、業務システムリポジトリ２１３Ｂに設定する。図１に示した品質非到達判別手段１５が或るワークフローについてサービス提供品質の下限値を下回ることを判別したとき、図１に示した計算機資源再配分手段１６が複数の処理部に対する計算機資源の量を再配分することで所定のワークフローのサービス提供品質が下限値を下回ることを回避させる。この処理が、第２の変形例の計算機資源を追加する計画の作成の一例である。最適優先制御結果計算部２２９Ｂは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として、再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
検証部２３０Ｂは、この予測結果が合意サービス水準を大きく超過して達成していると判定した場合、計算機資源削減決定部２３２Ｂに最適優先制御結果計算部２２９Ｂの入力と出力を通知する。計算機資源削減決定部２３２Ｂは、受け取った最適優先制御結果計算部２２９Ｂの入力と出力を参照して、業務アプリケーション２０３に配分された計算機資源を業務アプリケーション実行部数の削減によって適切に削減する計画を作成し、業務システムリポジトリ２１３Ｂに設定する。最適優先制御結果計算部２２９Ｂは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
図６６は、第２の変形例におけるワークフロー監視制御システムの全体的な処理動作の概要を表わす。本図を、図６５および図６と共に説明する。ただし、図６のワークフロー監視制御システム２０５は図６５のワークフロー監視制御システム２０５Ｂと読み替える。
ワークフロー監視制御システム２０５Ｂは、図示されないＣＰＵと、このＣＰＵが実行する制御プログラムを格納するハードディスク等の記憶媒体を備えている。ＣＰＵはこの制御プログラムを実行することによって先に説明したワークフロー監視制御システム２０５Ｂ内の各部のうちの少なくとも一部をソフトウェアで機能的に実現しても良い。また、ワークフロー監視制御システム２０５Ｂ内の各部、または、ＣＰＵは、次に説明する制御を実現する。
起動制御部２２７は、所定の制御時間が到来するまで待機しており（ステップＳ３０１）、動作が停止している。所定の制御時間が到来すると（Ｙ）、起動制御部２２７は、状態観測部２２８を起動し、状態観測部２２８は、監視情報格納ＤＢ２２６に格納された監視情報を合成ワークフロー定義ＤＢ２２３に格納された合成ワークフロー定義と対応付ける。そして、状態観測部２２８は現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を作成する（ステップＳ３０２）。
次に、最適優先制御結果計算部２２９Ｂは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、制御履歴格納ＤＢ２３４から取得した現在の制御条件とを入力する。最適優先制御結果計算部２２９Ｂは入力したこれらの情報を基にして、現在実行されている合成ワークフローの将来の状態を予測する。合成ワークフローの将来の状態の予測結果と最適優先制御結果計算部２２９Ｂへの入力は、検証部２３０Ｂに出力される（ステップＳ３０３）。
検証部２３０Ｂは予測結果に関して、目標状態管理部２３６を参照して妥当性を判定する（ステップＳ３０４）。この結果、予測結果が妥当であれば（Ｙ）、すなわち、予測結果が合意サービス水準を達成しており、かつこれが合意サービス水準を大幅に超過するようなものでない場合には、検証部２３０Ｂは、制御履歴格納ＤＢ２３４を参照して、制御条件が現行の制御条件と同一であるかを判定する（ステップＳ３０５）。同一であれば（Ｙ）、検証部２３０Ｂは制御条件を送信せずに動作を終了し、ワークフロー監視制御システム２０５ＢはステップＳ３０１の処理に戻る（リターン）。
制御条件が現行の制御条件と同一ではない場合には（ステップＳ３０５：Ｎ）、検証部２３０Ｂは、その同一でない制御条件を制御履歴格納ＤＢ２３４に格納する。そして、制御信号送信部２３５は通信制御システム２０７に制御条件を送信する（ステップＳ３０６）。この後、ワークフロー監視制御システム２０５ＢはステップＳ３０１の処理に戻る（リターン）。
ステップＳ３０４で予測結果が妥当でないと判定される（Ｎ）場合は、次の２つの何れかの場合である。１つは、予測結果が合意サービス水準を達成していないと判定された場合である。もう１つは、予測結果が合意サービス水準を大幅に超過したと判定された場合である。したがって、予測結果が妥当でないと判定された場合には（ステップＳ３０４：Ｎ）、検証部２３０Ｂは、合意サービス水準を未達成か否かの判別をする（ステップＳ３０７）。
予測結果が合意サービス水準を達成していないと判定された場合には（Ｙ）、計算機資源追加決定部２３１Ｂで計算機資源を追加すべき適切な業務アプリケーションと追加量を計算する。そして、計算機資源追加決定部２３１Ｂは、追加後の業務アプリケーションの計算機資源割り当て量を業務システムリポジトリ２１３Ｂに設定し（ステップＳ３０８Ｂ）、最適優先制御結果計算部２２９Ｂは現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を入力して、現在実行されている合成ワークフローの将来の状態を予測する（ステップＳ３０３）。
これに対して、予測結果が合意サービス水準を大幅に超過したと判定された場合には（ステップＳ３０７：Ｎ）、計算機資源削減決定部２３２Ｂが計算機資源を削減すべき適切な業務アプリケーションと削減量を計算して、削減後の業務アプリケーションの計算機資源割り当て量を業務システムリポジトリ２１３Ｂに設定する（ステップＳ３０９Ｂ）。予測結果が合意サービス水準を大きく超過していると判定する方法の一例としては、合意サービス水準に対する余裕が最も小さい合成ワークフローの合意サービス水準との差が所定の範囲を超えているか否かにより判定する方法がある。このようにして計算機資源を削減したら、検証部２３０Ｂは、ステップＳ３０５の処理に進む。
先に説明した図１０は、計算機資源追加決定部２３１Ｂの処理を表わし、図１１は計算機資源削減決定部２３２Ｂの処理を表わす。なお、これらの図は、計算機資源追加決定部２３１Ｂおよび計算機資源削減決定部２３２Ｂの動作の一例である。計算機資源追加決定部２３１Ｂおよび計算機資源削減決定部２３２Ｂの動作は、監視制御対象と合意サービス水準の内容、業務システムの特性によって変化する。これらの図を、図６５および図６と共に説明する。
計算機資源追加決定部２３１Ｂは、まず検証部２３０Ｂから、最適優先制御結果計算部２２９Ｂでの予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０Ｂが予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３７１：Ｙ）。計算機資源追加決定部２３１Ｂは、入力した情報から、合意サービス水準が達成不可能な合成ワークフロー群を特定する（ステップＳ３７２）。
次に、計算機資源追加決定部２３１Ｂは、計算機資源を追加する業務アプリケーション２０３と追加量を決定する（ステップＳ３７３）。この決定方法の一例は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行が完了するまでの時間から、業務アプリケーション２０３を実行するのに要する最短の時間を引いたものの合計が最も大きいと予測された業務アプリケーション２０３に、最小単位の計算機資源を追加するという方法である。また、この決定方法は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行が完了するまでの時間から、業務アプリケーション２０３を実行するのに要する最短の時間を引いたものを業務アプリケーション２０３の実行所要時間で除した値に、業務アプリケーション２０３に計算機資源を最小単位追加した場合の業務アプリケーション２０３の実行所要時間改善量を掛けた値を、ステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーション２０３に対して要求しているすべての実行要求について、業務アプリケーション２０３ごとに足し合わせた値を求め、この値が最も大きいと予測された業務アプリケーション２０３に、最小単位の計算機資源を追加するという方法でも良い。
以上のようにして計算機資源を追加する業務アプリケーション２０３と追加量を決定したら（ステップＳ３７３）、計算機資源追加決定部２３１Ｂは、求められた業務アプリケーション２０３に対して、求められた計算機資源を追加した状態を業務システムリポジトリ２１３Ｂに保存する（ステップＳ３７４）。このようにして計算機資源追加決定部２３１Ｂは、処理を終了する（エンド）。
先に示した図１１は、計算機資源削減決定部２３２Ｂの動作を示す。本図を、図６５と共に説明する。
計算機資源削減決定部２３２Ｂは、検証部２３０から、最適優先制御結果計算部２２９Ｂでの予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０Ｂが予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３９１：Ｙ）。
計算機資源削減決定部２３２Ｂは次に、この入力した情報から、合意サービス水準に対する余裕が最も小さい合成ワークフローを特定する（ステップＳ３９２）。そして、この特定された合成ワークフロー以外の合成ワークフローに対する合意サービス水準の達成という観点から、計算機資源を削減する業務アプリケーション２０３と削減量を決定する（ステップＳ３９３）。この決定方法の一例は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーションのうち、待ち時間が最も短いものから最小単位の計算機資源を削減するという方法である。また、この決定方法は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーション２０３のうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法であってもよい。
以上のようにしてステップＳ３９３で計算機資源を削減する業務アプリケーション２０３と削減量を決定したら、計算機資源削減決定部２３２Ｂは、求められた業務アプリケーション２０３から求められた量の計算機資源を削減した状態を業務システムリポジトリ２１３Ｂに保存する（ステップＳ３９４）。このようにして計算機資源削減決定部２３２Ｂは、処理を終了する（エンド）。計算機資源の削減に関して、合意サービス水準に対する余裕が最も小さい合成ワークフローを最初に特定する（図１１ステップＳ３９２）ことは必須の条件ではない。これ以外の手法でも計算機資源の削減は可能である。
図６７は、時刻０から合成ワークフローが実行されているときの時刻６６０におけるワークフロー監視制御システムの状態を示す。図６８は、ワークフロー実行システム４００Ｂで時刻０から合成ワークフローが実行されているときの、時刻６６０に実行されている合成ワークフローの状態を示す。図６７および図６８に示されるように、時刻６６０において第１のワークフローシステム２０４１により実行が制御される６個の合成ワークフロー（ａ１）〜（ｆ１）と、第２のワークフローシステム２０４２により実行が制御される６個の合成ワークフロー（ａ２）〜（ｆ２）が動作している。このうちの合成ワークフロー（ａ１）、（ｂ１）、（ｃ１）、（ｄ１）、（ｅ１）、（ｆ１）は第３の業務アプリケーション２０３３で実行中である。更に、合成ワークフロー（ａ２）は第７の業務アプリケーション２０３７で実行中であり、合成ワークフロー（ｂ２）、（ｃ２）、（ｄ２）、（ｅ２）は第３の業務アプリケーション２０３３で実行中である。合成ワークフロー（ｆ２）は第５の業務アプリケーション２０３５で実行中である。
図６７に示されている第１のワークフローシステム２０４１における６個の合成ワークフロー（ａ１）〜（ｆ１）は与えられた合意サービス水準に従って処理を１５０秒以内に完了することが求められている。第２のワークフローシステム２０４２における６個の合成ワークフロー（ａ２）〜（ｆ２）のうちで、合成ワークフロー（ａ２）、（ｂ２）、（ｃ２）、（ｄ２）および合成ワークフロー（ｆ２）は与えられた合意サービス水準に従って処理を１８０秒以内に完了することが求められており、合成ワークフロー（ｅ２）は処理を１５０秒以内に完了することが求められている。
図６８は、起動制御部２２７が状態観測部２２８を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示す。本図を、図６５および図６７と共に説明する。
時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８は図６８にあるような合成ワークフローの状態および履歴情報を取得する。
この時点で制御履歴格納ＤＢ２３４には、制御情報保持部２４６（図６）の初期状態である、制御対象が送信する情報は即座に送信し、制御対象が受信する情報を即座に送信するという情報が設定されている。状態観測部２２８は最適優先制御結果計算部２２９Ｂに、図６８にあるような合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
最適優先制御結果計算部２２９Ｂは、予測部２３３Ｂを利用し、すべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を作成する。
図６９は、すべての合成ワークフローが完了するまでの合成ワークフローの動作の予測結果を表わす。図６９によると、合成ワークフロー（ｂ１）、（ｃ１）、（ｄ１）、（ｅ１）、（ｆ１）、（ｄ２）、（ｅ２）、（ｆ２）の処理時間が合意サービス水準に達していない。合意サービス水準の達成を図る為には、計算機資源の追加が必要である。
そこで、計算機資源追加決定部２３１Ｂは、合意サービス水準を達成するために、計算機資源を追加する業務アプリケーションと追加量を決定する。このために、計算機資源追加決定部２３１Ｂは、予想待ち時間改善量という概念を用いる。予想待ち時間改善量とは、合意サービス水準に達しない合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行されるまでの待ち時間を業務アプリケーションの実行所要時間で除した値に、業務アプリケーションに最小単位の計算機資源を追加した場合の業務アプリケーションの実行待ち時間間隔改善量を掛けた値を、図１０のステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーションに対して要求しているすべての実行要求について業務アプリケーション２０３ごとに足し合わせた値である。そして、計算機資源追加決定部２３１Ｂは、得られた予想待ち時間改善量が最も大きいと予測された業務アプリケーションに対して、最小単位の計算機資源を追加する。
図７０は、予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わす。図７０は、予想待ち時間改善量が最も大きいと予測される業務アプリケーションを求めるため、予測結果に基づいて算出した、各業務アプリケーションの予想待ち時間改善量を示す。
図７０によれば、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。したがって、この例の場合、計算機資源追加決定部２３１Ｂは、第３の業務アプリケーション２０３３に計算機資源を追加する。この結果、第３の業務アプリケーション２０３３に割り当てられる計算機資源は６０単位となり、当該アプリケーションの処理所要時間は１２．５秒／件となる（図１３および図１４参照）。
図７１は、計算機資源が最初に追加された場合の合成ワークフローの状態を示す。本図を、図６５および図６７と共に説明する。最適優先制御結果計算部２２９Ｂは、計算機資源が最初に追加された場合の合成ワークフローの動作の予測を図１７の予測結果を求めたときと同じ方法で取得する。図７１はこの結果を示す。例えば、計算機資源の追加は時刻６６０に行われる。図７１によると、合成ワークフロー（ｂ１）、（ｃ１）、（ｆ１）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｄ１）、（ｅ１）、（ｄ２）、（ｅ２）、（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ｂは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図７２は、計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｂは、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は５０単位となり、当該アプリケーションの処理所要時間は１３．３３３秒／件となる（図１３および図１４参照）。この条件で、最適優先制御結果計算部２２９Ｂは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２１の予測結果を求めたときと同じ方法で取得する。
図７３は、計算機資源を２番目に追加した場合における合成ワークフローの状態を示す。本図を、図６５および図６７と共に説明する。例えば、計算機資源の追加は時刻６６０に行われる。図７３によると、合成ワークフロー（ｄ２）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｄ１）、（ｅ１）、（ｅ２）、（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ｂは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図７４は、計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｂは、第３の業務アプリケーション２０３３に計算機資源を追加する。これにより、第３の業務アプリケーション２０３３に割り当てられる計算機資源は７０単位となり、当該アプリケーションの処理所要時間は１０．７１４秒／件となる（図１３および図１４参照）。
図７５は、計算機資源が３番目に追加された場合における合成ワークフローの状態を示す。最適優先制御結果計算部２２９Ｂは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２３の予測結果を求めたときと同じ方法で取得する。例えば、計算機資源の追加は時刻６６０に行われる。図７５によると、合成ワークフロー（ｄ１）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｅ１）、（ｅ２）、（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ｂは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図７６は、計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｂは、第３の業務アプリケーション２０３３に計算機資源を追加する。これにより、第３の業務アプリケーション２０３３に割り当てられる計算機資源は８０単位となり、当該アプリケーションの処理所要時間は９．３７５秒／件となる（図１３および図１４参照）。
図７７は、計算機資源が４番目に追加された場合における合成ワークフローの状態を示す。最適優先制御結果計算部２２９Ｂは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２５の予測結果を求めたときと同じ方法で取得する。図７７は、この結果を示す。例えば、計算機資源の追加は時刻６６０に行われる。この図７７によると、合成ワークフロー（ｅ１）、（ｆ２）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｅ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ｂは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図７８は、計算機資源を５番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｂは、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は６０単位となり、当該アプリケーションの処理所要時間は１３．３３３秒／件となる（図１３および図１４参照）。
図７９は、計算機資源を５番目に追加した場合の合成ワークフローの状態を示す。図７８に示した条件で、最適優先制御結果計算部２２９Ｂは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２７の予測結果を求めたときと同じ方法で取得する。図７９はこの結果を示す。例えば、計算機資源の追加は時刻６６０に行われる。図７９によると、合成ワークフロー（ｅ２）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ｂは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図８０は、計算機資源を６番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｂは、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は７０単位となり、当該アプリケーションの処理所要時間は１１．４２９秒／件となる。
図８１は、計算機資源を６番目に追加した場合の合成ワークフローの状態を示す。図８０に示した条件で、最適優先制御結果計算部２２９Ｂは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２９の予測結果を求めたときと同じ方法で取得する。図８１は、この結果を示す。例えば、計算機資源の追加は時刻６６０に行われる。図８１によると、この条件で、すべての合成ワークフローが合意サービス水準を達成できると予想される。
以上のようにして計算機資源の追加によってすべての合成ワークフローが合意サービス水準を達成できると予想されるようになったら、検証部２３０Ｂは、前述した予測における優先制御条件と計算機資源の追加ならびに削除条件が、前回設定した制御情報と異なっているか否かを判定する。この例の場合、時刻６６０で初めて制御が行われたので、検証部２３０Ｂは、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
図８２は、時刻７８０の時点に起動制御部が状態観測部を再度起動した場合における合成ワークフローの状態を示す。この時刻７８０において、図６５に示した起動制御部２２７が状態観測部２２８を再度起動すると、状態観測部２２８はこの図８２にあるような合成ワークフローの状態および履歴情報を取得する。図８２を図８１と比較すると、図６７のステップＳ１３で示す条件分岐が原因で、合成ワークフロー（ｄ２）の処理が予測結果と異なっている。これ以外の合成ワークフローは、予測結果どおりに処理が進捗している。
図８３は、時刻６６０の時点と同様に、時刻７８０の時点で将来を予測した場合の合成ワークフローの状態を示す。この図８３に示されるように、この場合はすべての合成ワークフローが合意サービス水準を達成すると予想される。このため、新規の制御は行われない。
次に、この監視対象において、合成ワークフローの状態が異なる場合の動作を説明する。
図８４は、時刻０から合成ワークフローが実行された場合の、時刻６６０に実行されている合成ワークフローの状態を示す。第１のワークフローシステム２０４１により実行が制御される３個の合成ワークフローと、第２のワークフローシステム２０４２により実行が制御される２個の合成ワークフローが動作している。時刻６６０において、合成ワークフロー（ａ１）は完了しており、合成ワークフロー（ｂ１）、（ｃ１）は第３の業務アプリケーション２０３３で実行中である。また、合成ワークフロー（ａ２）は第７の業務アプリケーション２０３７で実行中であり、合成ワークフロー（ｂ２）は第５の業務アプリケーション２０３５で実行中である。第１のワークフローシステム２０４１における３個の合成ワークフローは合意サービス水準により１５０秒以内に完了することが求められている。また、第２のワークフローシステム２０４２における２個の合成ワークフローは合意サービス水準により１８０秒以内に完了することが求められている。
図８５は、時刻６６０に起動制御部が状態観測部を初めて起動した場合の、状態観測部が取得する合成ワークフローの状態を示す。本図を、図６５と共に説明する。時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８は図８５にあるような合成ワークフローの状態および履歴情報を取得する。この時点で、図６５に示した制御履歴格納ＤＢ２３４には、制御情報保持部２４６（図６）の初期状態の情報が設定されている。これは、制御対象が送信する情報は即座に送信し、制御対象が受信する情報は即座に送信することを通信制御システム２０７等に指示する情報である。状態観測部２２８は最適優先制御結果計算部２２９Ｂに、図８５に示す合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
図８６は、この最適優先制御結果計算部２２９Ｂが予測部２３３Ｂを用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示す。図６５の最適優先制御結果計算部２２９Ｂが、予測部２３３Ｂを利用して作成した図８６に示される合成ワークフローの動作の予測によると、すべての合成ワークフローは合意サービス水準を大幅に超過して達成している。
このため、計算機資源削減決定部２３２Ｂ（図６５）は、計算機資源を削減する業務アプリケーションと削減量を決定する。検証部２３０Ｂは、合意サービス水準に対する余裕が最も小さい合成ワークフローが予測を行った期間に利用しない業務アプリケーションのうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法を採る。そこで、計算機資源削減決定部２３２Ｂ（図６５）は、合成ワークフロー履歴から、過去一定期間の業務アプリケーション利用率を求める。
先に示した図３７は、計算機資源削減決定部の求めた各業務アプリケーションの利用率を表わす。この図３７に示した結果が得られた場合、利用率が最も低い業務アプリケーションは第１の業務アプリケーション２０３１である。また、合意サービス水準に対する余裕が最も小さい合成ワークフローである合成ワークフロー（ｂ１）は、時刻６６０以降に第１の業務アプリケーション２０３１を利用しないことが合成ワークフロー定義から判断される。このため、計算機資源削減決定部２３２Ｂは、第１の業務アプリケーション２０３１から最小単位の計算機資源を削減することを決定する。これにより、第１の業務アプリケーション２０３１の計算機資源量は、たとえば図１４に示した計算機資源量から１０単位が削減されて１０単位となり、当該アプリケーションの処理所要時間は１０秒／件となる。
次に、検証部２３０Ｂは、予測における優先制御条件と計算機資源の追加、削除条件が前回設定した制御情報と異なっているか否かを判定する。この場合、時刻６６０で初めて制御が行われたため、検証部２３０Ｂは、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
＜発明の第３の変形例＞
図８７は、本発明の第３の変形例としてのワークフロー監視制御システムの通信環境を表わす。図８７では、図４と同一部分には同一の符号を付されており、これらの説明は適宜省略される。
図８７に示した通信環境には、業務システム２１０１、２１０４、等上で実行される業務アプリケーション２０３１、２０３２、等の使用する計算機資源量と、各業務アプリケーション２０３１、２０３２、等の使用する計算機資源量を制御する業務アプリケーション制御システム２０９Ｃが１つ以上存在している。業務アプリケーション制御システム２０９Ｃは、この図に示す例で第２のサブネットワーク２０１２に接続されている。また、業務アプリケーション２０３１、２０３２、等およびワークフローシステム２０４を監視、制御するワークフロー監視制御システム２０５Ｃも１つ以上存在する。ワークフロー監視制御システム２０５Ｃは第２のサブネットワーク２０１２に接続されている。
本発明の第２の変形例では、優先度なしの時分割制御を行った。本発明の第３の変形例では、平常時に優先度なしの時分割制御を行い、サービス提供品質との関係で制御が必要となったときに各業務アプリケーション２０３１、２０３２、等間で優先度の制御を行う。
図８８は、この第３の変形例におけるワークフロー監視制御システムとその周辺のシステム構成の要部を表わす。図８８では、図５と同一部分は同一の符号を付されており、これらの説明は適宜省略される。
図８８でワークフロー監視制御システム２０５Ｃは、ワークフロー定義と業務定義を取得するワークフロー定義・業務定義取得部２２１と、複数のワークフロー定義、業務定義間の通信関係を解析し、相互に通信するワークフロー定義、業務定義を合成した合成ワークフロー定義を生成するワークフロー合成部２２２と、合成ワークフロー定義を格納する合成ワークフロー定義ＤＢ（データベース）２２３と、ワークフロー監視システム２０８および通信監視システム２０６からの監視情報を受信する監視情報受信部２２４と、監視情報を合成ワークフロー定義に対応付けて解析する監視情報解析部２２５と、監視情報を格納する監視情報格納ＤＢ（データベース）２２６と、定期的に起動要求を送信する起動制御部２２７と、現在までの合成ワークフローの状態を取得する状態観測部２２８と、最適な制御をした場合の合成ワークフローの動作を予測する最適優先制御結果計算部２２９Ｃと、予測結果から合成ワークフローが合意サービス水準を達成すると予想されるかを検証する検証部２３０Ｃと、合意サービス水準を達成するために必要な計算機資源量を計算する計算機資源追加決定部２３１Ｃと、合意サービス水準達成を妨げない計算機資源の削減量を計算する計算機資源削減決定部２３２Ｃと、ある時点での合成ワークフローの状態と、業務アプリケーション制御システム２０９Ｃの計算機資源割り当て状況とプロセスの優先度から単位時間後の合成ワークフローの状態を予測する予測部２３３Ｃと、過去の制御履歴を格納する制御履歴格納ＤＢ（データベース）２３４と、制御信号を通信制御システム２０７に送信する制御信号送信部２３５と、合意サービス水準を保持する目標状態管理部２３６と、通信制御システム２０７同士の対応関係を保持する制御システム格納ＤＢ（データベース）２３７とから構成されている。図６５では、通信制御システム２０７を代表的に１つのみ示す。通信制御システム２０７が複数存在するときに、制御システム格納ＤＢ２３７は通信制御システム２０７同士の対応関係を保持する。
第３の変形例でワークフロー監視制御システム２０５Ｃを中心とした各システムは、概略次のように動作する。各システムの動作を、図８７および図８８と共に説明する。
ワークフロー定義・業務定義リポジトリ２１１には、監視制御対象となるワークフローシステム２０４で実行されるワークフローの定義、業務システム２１０上で実行される業務アプリケーション２０３の定義があらかじめ格納されている。また、合意サービス水準リポジトリ２１２には、監視制御対象となるワークフローシステム２０４、業務アプリケーション２０３に設定された合意サービス水準が予め格納されている。ここで、合意サービス水準は、前記したサービス提供品質に対して許容できる下限値の一例である。業務システムリポジトリ２１３Ｃには、業務アプリケーション２０３を配備可能な業務システム２１０の配備情報と、業務システム２１０の性能特性情報と、業務システム２１０における業務アプリケーション２０３の配備情報と、業務アプリケーション２０３の計算機資源量情報とが格納されている。
ワークフローシステム２０４および業務アプリケーション２０３の実行前に、ワークフロー定義・業務定義取得部２２１はワークフロー定義・業務定義リポジトリ２１１からワークフロー定義および業務定義を取得する。ワークフロー合成部２２２は、取得されたワークフロー定義および業務定義から合成ワークフロー定義を作成し、合成ワークフロー定義ＤＢ２２３に格納する。また、目標状態管理部２３６は、合意サービス水準リポジトリ２１２から合意サービス水準情報を取得し、保持する。
ワークフローシステム２０４ならびに業務アプリケーション２０３が動作すると、業務の進捗と通信の発生をワークフロー監視システム２０８と通信監視システム２０６が検知し、監視情報受信部２２４に通知する。受信した監視情報は監視情報解析部２２５で合成ワークフロー定義に対応付けて解析され、監視情報格納ＤＢ２２６に格納される。
これと並行して、起動制御部２２７は定期的に状態観測部２２８に起動要求を送る。状態観測部２２８は監視情報格納ＤＢ２２６に格納された監視情報を合成ワークフローＤＢ２２３に格納された合成ワークフロー定義と対応付け、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報を作成する。更に、状態観測部２２８は、制御履歴格納ＤＢ２３４から現在の制御条件を取得する。状態観測部２２８は、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報と、現在の制御条件を最適優先制御結果計算部２２９Ｃに入力する。
最適優先制御結果計算部２２９Ｃは入力された情報を基にして、現在実行されている合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。この予測は予測部２３３Ｃが業務システムリポジトリ２１３Ｃに格納された業務アプリケーションの計算機資源割り当て量とプロセスの優先度情報を用いて行う。最適優先制御結果計算部２２９Ｃは予測結果と入力を検証部２３０Ｃに出力する。なお、図１に示したサービス提供品質算出手段１４は、それぞれのワークフローの業務の完了時におけるサービス提供品質を算出する。その算出結果がこの第３の変形例における予測結果の一例である。
検証部２３０Ｃは予測結果を目標状態管理部２３６と対比して目標達成状況を判定する。図１に示した品質非到達判別手段１５が、第３の変形例における検証部２３０Ｃの一例であり、ワークフローのいずれかが業務の完了時におけるサービス提供品質の下限値を下回るとき、これを判別する。この結果、検証部２３０は、予測結果が妥当であれば制御情報を制御履歴格納ＤＢ２３４に格納し、制御信号送信部２３５によって通信制御システム２０７と業務アプリケーション制御システム２０９Ｃに予測結果の妥当性を送信して終了する。予測結果が合意サービス水準を達成していなければ、検証部２３０Ｃは、計算機資源追加決定部２３１Ｃに最適優先制御結果計算部２２９Ｃの入力と出力を通知する。
計算機資源追加決定部２３１Ｃは、受け取った最適優先制御結果計算部２２９Ｃの入力と出力を参照して適切な業務アプリケーションに計算機資源を追加する計画を作成し、業務システムリポジトリ２１３Ｃに設定する。図１に示した品質非到達判別手段１５が或るワークフローについてサービス提供品質の下限値を下回ることを判別したとき、図１に示した計算機資源再配分手段１６が複数の処理部に対する計算機資源の量を再配分することで所定のワークフローのサービス提供品質が下限値を下回ることを回避させる。この処理が、第３の変形例の計算機資源を追加する計画の作成の一例である。最適優先制御結果計算部２２９Ｃは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として、再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
検証部２３０Ｃは、この予測結果が合意サービス水準を大きく超過して達成していると判定した場合、計算機資源削減決定部２３２Ｃに最適優先制御結果計算部２２９Ｃの入力と出力を通知する。計算機資源削減決定部２３２Ｃは、受け取った最適優先制御結果計算部２２９Ｃの入力と出力を参照して、業務アプリケーション２０３に配分された計算機資源を業務アプリケーション実行部数の削減によって適切に削減する計画を作成し、業務システムリポジトリ２１３Ｃに設定する。最適優先制御結果計算部２２９Ｃは、現在実行されている合成ワークフローの状態および履歴情報と、過去に実行された合成ワークフローの統計情報とを入力として再度合成ワークフローに対して最適な優先制御が行われた場合の将来の状態を予測する。
図６６は、第２の変形例におけるワークフロー監視制御システムの全体的な処理動作の概要を表わす。本図は、第３の変形例についても使用できる。図８および図９も同様である。
図１０は、計算機資源追加決定部２３１の処理を表わし、図１１は計算機資源削減決定部２３２の処理を表わす。これらの図も、第３の変形例で使用できる。なお、これらの図は、計算機資源追加決定部２３１Ｃおよび計算機資源削減決定部２３２Ｃの動作の一例を示す。計算機資源追加決定部２３１Ｃおよび計算機資源削減決定部２３２Ｃの動作は、監視制御対象と合意サービス水準の内容、業務システムの特性によって変化する。これらの図を、図８８および図６と共に説明する。
計算機資源追加決定部２３１Ｃは、まず検証部２３０Ｃから、最適優先制御結果計算部２２９Ｃでの予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０Ｃが予測結果の判定に利用した目標状態管理部２３６の情報を入力する（図１０のステップＳ３７１：Ｙ）。最適優先制御結果計算部２２９Ｃは、入力した情報から、合意サービス水準が達成不可能な合成ワークフロー群を特定する（ステップＳ３７２）。
次に、計算機資源追加決定部２３１Ｃは、計算機資源を追加する業務アプリケーション２０３と追加量を決定する（ステップＳ３７３）。この決定方法の一例は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行が完了するまでの時間から、業務アプリケーション２０３を実行するのに要する最短の時間を引いたものの合計が最も大きいと予測された業務アプリケーション２０３に、最小単位の計算機資源を追加するという方法である。また、この決定方法は、ステップＳ３７２で特定された合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行が完了するまでの時間から、業務アプリケーション２０３を実行するのに要する最短の時間を引いたものを業務アプリケーションの実行所要時間で除した値に、業務アプリケーション２０３に計算機資源を最小単位追加した場合の業務アプリケーション２０３の実行所要時間改善量を掛けた値を、ステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーション２０３に対して要求しているすべての実行要求について、業務アプリケーション２０３ごとに足し合わせた値を求め、この値が最も大きいと予測された業務アプリケーション２０３に、最小単位の計算機資源を追加するという方法でも良い。
以上のようにして計算機資源を追加する業務アプリケーション２０３と追加量を決定したら（ステップＳ３７３）、計算機資源追加決定部２３１Ｃは、求められた業務アプリケーション２０３に対して、求められた計算機資源を追加した状態を業務システムリポジトリ２１３Ｃに保存する（ステップＳ３７４）。このようにして計算機資源追加決定部２３１Ｃは、処理を終了する（エンド）。
先に示した図１１は、計算機資源削減決定部の動作を示す。本図を、図８８と共に説明する。
計算機資源削減決定部２３２Ｃは、検証部２３０Ｃから、最適優先制御結果計算部２２９Ｃでの予測結果であるすべての合成ワークフローの実行が完了した時点での合成ワークフローの状態と、この状態に至るまでの履歴情報と、検証部２３０Ｃが予測結果の判定に利用した目標状態管理部２３６の情報を入力する（ステップＳ３９１：Ｙ）。
計算機資源削減決定部２３２Ｃは次に、この入力した情報から、合意サービス水準に対する余裕が最も小さい合成ワークフローを特定する（ステップＳ３９２）。そして、この特定された合成ワークフロー以外の合成ワークフローに対する合意サービス水準の達成という観点から、計算機資源を削減する業務アプリケーション２０３と削減量を決定する（ステップＳ３９３）。この決定方法の一例は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーションのうち、待ち時間が最も短いものから最小単位の計算機資源を削減するという方法である。また、この決定方法は、ステップＳ３９２で特定された合成ワークフローが予測を行った期間に利用しない業務アプリケーション２０３のうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという方法であってもよい。
以上のようにしてステップＳ３９３で計算機資源を削減する業務アプリケーション２０３と削減量を決定したら、計算機資源削減決定部２３２Ｃは、求められた業務アプリケーション２０３から求められた量の計算機資源を削減した状態を業務システムリポジトリ２１３Ｃに保存する（ステップＳ３９４）。このようにして計算機資源削減決定部２３２Ｃは、処理を終了する（エンド）。計算機資源の削減に関して、合意サービス水準に対する余裕が最も小さい合成ワークフローを最初に特定する（図１１ステップＳ３９２）ことは必須の条件ではない。これ以外の手法でも計算機資源の削減は可能である。
図１２は、第３の変形例でも使用できる。図１２に示したワークフローのワークフロー定義には合意サービス水準が設定されている。第１のワークフローシステム２０４１に存在する１つのワークフロー定義を中心とする合成ワークフロー定義には、処理を１５０秒以内に完了することを要求する合意サービス水準が設定されている。また、第２のワークフローシステム２０４２に存在する１つのワークフロー定義を中心とする合成ワークフロー定義には、合成ワークフロー定義の利用者に応じて２つの合意サービス水準が定義されている。具体的には、例えば、一部の利用者に対しては処理を１５０秒以内に完了することを、他の利用者に対しては処理を１８０秒以内に完了することを要求する合意サービス水準が設定されている。このような合意サービス水準は、合意サービス水準リポジトリ２１２（図８８）に格納されている。このように合意サービス水準を利用者別に複数設定することで、それぞれの利用者のサービスの要求度に応じたサービス提供品質を確保することが可能になる。
第３の変形例のワークフロー実行システム４００Ｃ（図示せず）では、第１のワークフロー監視システム２０８１が第１のワークフローシステム２０４１を、第２のワークフロー監視システム２０８２が第２のワークフローシステム２０４２を監視対象としている。
初期状態で、各通信制御システム２０７１〜２０７９の制御情報保持部２４６（図６参照）は、それぞれの制御対象が送信する情報を通信制御システム２０７１〜２０７９が即座に送信することを指示する設定情報を保持する。また、制御情報保持部２４６は、それぞれの制御対象が受信する情報を即座に各通信制御システム２０７１〜２０７９が送信することを指示する設定情報を保持する。制御情報保持部２４６は、業務アプリケーションがすべてのプロセスを同一の優先度で実行することを指示する設定情報を保持する。更に、第１および第２のワークフローシステム２０４１、２０４２ならびに第１〜第７の業務アプリケーション２０３１〜２０３７の間の通信は、通信監視システム２０６によって監視されている。これらの監視対象および制御対象を定義する情報は、制御システム格納ＤＢ２３７（図８８）に格納されている。
また、検証部２３０Ｃ（図８８）が、予測結果が合意サービス水準を大きく超過して達成していると判定する状態とは、例えば、すべての合成ワークフローが合意サービス水準で定められた時間の３分の２以下の時間で完了している状態である。
起動制御部２２７（図８８）は、例えば、６０秒ごとに状態観測部２２８（図８８）を起動するように設定されている。また、予測部２３３Ｃ（図２）は、入力された合成ワークフローの状態の０．１秒後の状態を求めるよう設定されている。
第２の変形例における図６７は、第３の変形例における監視対象で、時刻０から合成ワークフローが実行されているときの時刻６６０におけるワークフロー監視制御システムの状態を示す図としてそのまま利用できる。そこで、本図に関する説明は省略される。
図８９は、起動制御部が状態観測部を初めて起動したとき取得する合成ワークフローの状態および履歴情報の一例を示す。本図を、図８８および図６７と共に説明する。
時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８は図８９にあるような合成ワークフローの状態および履歴情報を取得する。
この時点で制御履歴格納ＤＢ２３４には、制御情報保持部２４６（図６）の初期状態である、制御対象が送信する情報は即座に送信し、制御対象が受信する情報を即座に送信し、業務アプリケーションの全てのプロセスは同一の優先度で実行するという情報が設定されている。状態観測部２２８は最適優先制御結果計算部２２９Ｃに、図８９にあるような合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
最適優先制御結果計算部２２９Ｃは、予測部２３３Ｃを利用し、すべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を作成する。ワークフロー監視制御システム２０５Ｃは、時刻６６０においていずれかの業務アプリケーションで実行中となっている合成ワークフローに属するプロセスの優先度を制御することにより、既に実行中のプロセスの完了順序と完了時刻を制御する。
図９０は、この最優先制御のみの場合の予測結果を表わす。図９０によれば、２つの合成ワークフロー（ｅ２）、（ｆ２）の処理時間が合意サービス水準に達していない。合意サービス水準の達成を図る為には、計算機資源の追加が必要である。
そこで、計算機資源追加決定部２３１Ｃは、合意サービス水準を達成するために、計算機資源を追加する業務アプリケーションと追加量を決定する。このために、計算機資源追加決定部２３１Ｃは、予想待ち時間改善量という概念を用いる。予想待ち時間改善量は、合意サービス水準に達しない合成ワークフロー群が各業務アプリケーション２０３に実行を要求してから実行されるまでの待ち時間を業務アプリケーションの実行所要時間で除した値に、業務アプリケーションに最小単位の計算機資源を追加した場合の業務アプリケーションの実行待ち時間間隔改善量を掛けた値を、図１０のステップＳ３７２で特定された合成ワークフロー群内のワークフローが各業務アプリケーション２０３に対して要求しているすべての実行要求について、業務アプリケーション２０３ごとに足し合わせた値である。そして、計算機資源追加決定部２３１Ｃは、得られた予想待ち時間改善量が最も大きいと予測された業務アプリケーションに対して、最小単位の計算機資源を追加する。
図９１は、予測結果に基づいて算出した各業務アプリケーションの予想待ち時間改善量を表わす。この図９１は、予想待ち時間改善量が最も大きいと予測される業務アプリケーションを求めるため、予測結果に基づいて算出した、各業務アプリケーションの予想待ち時間改善量を示す。
図９１によれば、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。したがって、この例の場合、計算機資源追加決定部２３１Ｃは、第３の業務アプリケーション２０３３に計算機資源を追加する。この結果、第３の業務アプリケーション２０３３に割り当てられる計算機資源は６０単位となり、当該アプリケーションの処理所要時間は１２．５秒／件となる（図１３および図１４参照）。
図９２は、計算機資源が最初に追加された場合の合成ワークフローの状態を示す。本図を、図８８および図６７と共に説明する。
最適優先制御結果計算部２２９Ｃは、計算機資源が最初に追加された場合の合成ワークフローの動作の予測を図１７の予測結果を求めたときと同じ方法で取得する。図９２は、この結果を示す。ここで、例えば、計算機資源の追加は時刻６６０に行われる。図９２によると、合成ワークフロー（ｅ２）、（ｆ２）は未だ合意サービス水準を達成できていない。このため、計算機資源追加決定部２３１Ｃは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図９３は、計算機資源を２番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図９３によると、第３の業務アプリケーション２０３３が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｃは、第３の業務アプリケーション２０３３に計算機資源を追加する。これにより、第３の業務アプリケーション２０３３に割り当てられる計算機資源は７０単位となり、当該アプリケーションの処理所要時間は１０．７１４秒／件となる（図１３および図１４参照）。
この条件で、最適優先制御結果計算部２２９Ｃは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２１の予測結果を求めたときと同じ方法で取得する。
図９４は、計算機資源を２番目に追加した場合の合成ワークフローの状態を示す。ここで、計算機資源の追加は時刻６６０に行われるものとする。この図９４によると、合成ワークフロー（ｅ２）、（ｆ２）は未だ合意サービス水準を達成できない。このため、計算機資源追加決定部２３１Ｃは、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図９５は、計算機資源を３番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図９５によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、計算機資源追加決定部２３１Ｃは、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は５０単位となり、当該アプリケーションの処理所要時間は１６秒／件となる（図１３および図１４参照）。
この条件で、最適優先制御結果計算部２２９Ｃは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２３の予測結果を求めたときと同じ方法で取得する。
図９６は、計算機資源を３番目に追加した場合の合成ワークフローの状態を示す。ここで、計算機資源の追加は時刻６６０に行われるものとする。この図９６によると、合成ワークフロー（ｅ２）は合意サービス水準を達成可能となったものの、合成ワークフロー（ｆ２）は未だ合意サービス水準を達成できていない。このため、再度計算機資源を追加する業務アプリケーションを選択するために予想待ち時間改善量を求める。
図９７は、計算機資源を４番目に追加する場合の各業務アプリケーションについて算出された予想待ち時間改善量を表わす。この図９７によると、第７の業務アプリケーション２０３７が最も予想待ち時間改善量が大きい。このため、第７の業務アプリケーション２０３７に計算機資源を追加する。これにより、第７の業務アプリケーション２０３７に割り当てられる計算機資源は６０単位となり、当該アプリケーションの処理所要時間は１３．３３３秒／件となる。
この条件で、最適優先制御結果計算部２２９Ｃは、計算機資源が追加された場合の合成ワークフローの動作の予測を図２５の予測結果を求めたときと同じ方法で取得する。
図９８は、計算機資源を４番目に追加した場合の合成ワークフローの状態を示す。ここで、例えば、計算機資源の追加は時刻６６０に行われる。図９８によると、この条件で、すべての合成ワークフローが合意サービス水準を達成できると予想される。
以上のようにして計算機資源の追加によってすべての合成ワークフローが合意サービス水準を達成できると予想されるようになったら、検証部２３０Ｃは、前述した予測における優先制御条件と計算機資源の追加ならびに削除条件が、前回設定した制御情報と異なっているか否かを判定する。この例の場合、時刻６６０で初めて制御が行われたので、検証部２３０Ｃは、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
図９９は、時刻７２０の時点に起動制御部２２７が状態観測部２２８を再度起動した場合における合成ワークフローの状態を示す。この時刻７２０において、図８８に示した起動制御部２２７が状態観測部２２８を再度起動すると、状態観測部２２８はこの図９９にあるような合成ワークフローの状態および履歴情報を取得する。図９９を図９８と比較すると、図６７のステップＳ１３で示す条件分岐が原因で、合成ワークフロー（ｄ２）の処理が予測結果と異なっている。これ以外の合成ワークフローは、予測結果どおりに処理が進捗している。
図１００は、時刻６６０の時点と同様に、時刻７２０の時点で将来を予測した場合の合成ワークフローの状態を示す。この図１００に示されるように、この場合はすべての合成ワークフローが合意サービス水準を達成すると予想される。このため、新規の制御は行われない。
次に、この監視対象において、合成ワークフローの状態が異なる場合の動作を説明する。
図８４は、第３の変形例における時刻０から合成ワークフローが実行された場合の、時刻６６０に実行されている合成ワークフローの状態を示す図として、そのまま使用できる。すなわち、時刻６６０には、第１のワークフローシステム２０４１により実行が制御される３個の合成ワークフローと、第２のワークフローシステム２０４２により実行が制御される２個の合成ワークフローが存在している。時刻６６０において、合成ワークフロー（ａ１）は完了しており、合成ワークフロー（ｂ１）、（ｃ１）は第３の業務アプリケーション２０３３で実行中である。また、合成ワークフロー（ａ２）は第７の業務アプリケーション２０３７で実行中であり、合成ワークフロー（ｂ２）は第５の業務アプリケーション２０３５で実行中である。第１のワークフローシステム２０４１における３個の合成ワークフローは与えられた合意サービス水準に従って１５０秒以内に完了することが求められている。また、第２のワークフローシステム２０４２における２個の合成ワークフローは与えられた合意サービス水準に従って１８０秒以内に完了することが求められている。
図１０１は、時刻６６０に起動制御部２２７が状態観測部２２８を初めて起動した場合の、状態観測部が取得する合成ワークフローの状態を示す。本図を、図８８と共に説明する。時刻６６０において起動制御部２２７が状態観測部２２８を初めて起動すると、状態観測部２２８はこの図１０１にあるような合成ワークフローの状態および履歴情報を取得する。この時点で、図８８に示した制御履歴格納ＤＢ２３４には、制御情報保持部２４６（図６）の初期状態の情報が設定されている。これは、通信制御システム２０７等が、制御対象が送信する情報を即座に送信し、制御対象が受信する情報を即座に送信すること、業務アプリケーションのプロセスの優先度はすべて同一であることを指定する情報である。状態観測部２２８は最適優先制御結果計算部２２９Ｃに、図１０１に示す合成ワークフローの状態および履歴情報と、制御履歴格納ＤＢ２３４の情報を入力する。
図１０２は、最適優先制御結果計算部２２９Ｃが予測部２３３Ｃを用いて作成したすべての合成ワークフローが完了するまでの合成ワークフローの動作の予測を示す。図８８に示す最適優先制御結果計算部２２９Ｃが、予測部２３３Ｃを利用して作成した図１０２に示される合成ワークフローの動作の予測によると、すべての合成ワークフローは合意サービス水準を大幅に超過して達成している。
このため、計算機資源削減決定部２３２Ｃ（図８８）は、計算機資源を削減する業務アプリケーションと削減量を決定する。計算機資源削減決定部２３２Ｃは、合意サービス水準に対する余裕が最も小さい合成ワークフローが予測を行った期間に利用しない業務アプリケーションのうち、過去一定期間の利用率が最も小さいものから最小単位の計算機資源を削減するという手法を採る。そこで、計算機資源削減決定部２３２Ｃ（図８８）は、合成ワークフロー履歴から、過去一定期間の業務アプリケーション利用率を求める。
図３７は、計算機資源削減決定部２３２Ｃの求めた各業務アプリケーションの利用率を表わす。図３７に示した結果が得られた場合、利用率が最も低い業務アプリケーションは第１の業務アプリケーション２０３１である。また、合意サービス水準に対する余裕が最も小さい合成ワークフローである合成ワークフロー（ｂ１）は、時刻６６０以降に第１の業務アプリケーション２０３１を利用しないことが合成ワークフロー定義から判断される。このため、計算機資源削減決定部２３２Ｃは、第１の業務アプリケーション２０３１から最小単位の計算機資源を削減することを決定する。これにより、第１の業務アプリケーション２０３１の計算機資源量は、たとえば図１４に示した計算機資源量から１０単位が削減されて１０単位となり、当該アプリケーションの処理所要時間は１０秒／件となる。
次に、検証部２０３Ｃは、予測における優先制御条件と計算機資源の追加、削除条件が前回設定した制御情報と異なっているか否かを判定する。この場合、時刻６６０で初めて制御が行われたため、検証部２０３Ｃは、前回設定した制御情報と異なっていると判定し、制御信号送信部２３５が制御情報を通信制御システム２０７に送信する。
【産業上の利用可能性】
【００１０】
本発明は、ワークフローの制御装置や、ワークフロー制御をコンピュータに実現するためのプログラムといった各種用途に適用できる。更に、本発明は、情報提供装置の利用効率向上といった用途にも適用できる。更に、本発明は、情報提供装置の利用する計算機資源の削減といった用途にも適用できる。
本願発明は上記実施形態（及び動作例）に限定されない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更が可能である。
この出願は、２００９年５月１５日に出願された日本出願特願２００９−１１９１２０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
0005609868.tif 000002
【図２】
0005609868.tif 000003
【図３】
0005609868.tif 000004
【図４】
0005609868.tif 000005
【図５】
0005609868.tif 000006
【図６】
0005609868.tif 000007
【図７】
0005609868.tif 000008
【図８】
0005609868.tif 000009
【図９】
0005609868.tif 000010
【図１０】
0005609868.tif 000011
【図１１】
0005609868.tif 000012
【図１２】
0005609868.tif 000013
【図１３】
0005609868.tif 000014
【図１４】
0005609868.tif 000015
【図１５】
0005609868.tif 000016
【図１６】
0005609868.tif 000017
【図１７】
0005609868.tif 000018
【図１８】
0005609868.tif 000019
【図１９】
0005609868.tif 000020
【図２０】
0005609868.tif 000021
【図２１】
0005609868.tif 000022
【図２２】
0005609868.tif 000023
【図２３】
0005609868.tif 000024
【図２４】
0005609868.tif 000025
【図２５】
0005609868.tif 000026
【図２６】
0005609868.tif 000027
【図２７】
0005609868.tif 000028
【図２８】
0005609868.tif 000029
【図２９】
0005609868.tif 000030
【図３０】
0005609868.tif 000031
【図３１】
0005609868.tif 000032
【図３２】
0005609868.tif 000033
【図３３】
0005609868.tif 000034
【図３４】
0005609868.tif 000035
【図３５】
0005609868.tif 000036
【図３６】
0005609868.tif 000037
【図３７】
0005609868.tif 000038
【図３８】
0005609868.tif 000039
【図３９】
0005609868.tif 000040
【図４０】
0005609868.tif 000041
【図４１】
0005609868.tif 000042
【図４２】
0005609868.tif 000043
【図４３】
0005609868.tif 000044
【図４４】
0005609868.tif 000045
【図４５】
0005609868.tif 000046
【図４６】
0005609868.tif 000047
【図４７】
0005609868.tif 000048
【図４８】
0005609868.tif 000049
【図４９】
0005609868.tif 000050
【図５０】
0005609868.tif 000051
【図５１】
0005609868.tif 000052
【図５２】
0005609868.tif 000053
【図５３】
0005609868.tif 000054
【図５４】
0005609868.tif 000055
【図５５】
0005609868.tif 000056
【図５６】
0005609868.tif 000057
【図５７】
0005609868.tif 000058
【図５８】
0005609868.tif 000059
【図５９】
0005609868.tif 000060
【図６０】
0005609868.tif 000061
【図６１】
0005609868.tif 000062
【図６２】
0005609868.tif 000063
【図６３】
0005609868.tif 000064
【図６４】
0005609868.tif 000065
【図６５】
0005609868.tif 000066
【図６６】
0005609868.tif 000067
【図６７】
0005609868.tif 000068
【図６８】
0005609868.tif 000069
【図６９】
0005609868.tif 000070
【図７０】
0005609868.tif 000071
【図７１】
0005609868.tif 000072
【図７２】
0005609868.tif 000073
【図７３】
0005609868.tif 000074
【図７４】
0005609868.tif 000075
【図７５】
0005609868.tif 000076
【図７６】
0005609868.tif 000077
【図７７】
0005609868.tif 000078
【図７８】
0005609868.tif 000079
【図７９】
0005609868.tif 000080
【図８０】
0005609868.tif 000081
【図８１】
0005609868.tif 000082
【図８２】
0005609868.tif 000083
【図８３】
0005609868.tif 000084
【図８４】
0005609868.tif 000085
【図８５】
0005609868.tif 000086
【図８６】
0005609868.tif 000087
【図８７】
0005609868.tif 000088
【図８８】
0005609868.tif 000089
【図８９】
0005609868.tif 000090
【図９０】
0005609868.tif 000091
【図９１】
0005609868.tif 000092
【図９２】
0005609868.tif 000093
【図９３】
0005609868.tif 000094
【図９４】
0005609868.tif 000095
【図９５】
0005609868.tif 000096
【図９６】
0005609868.tif 000097
【図９７】
0005609868.tif 000098
【図９８】
0005609868.tif 000099
【図９９】
0005609868.tif 000100
【図１００】
0005609868.tif 000101
【図１０１】
0005609868.tif 000102
【図１０２】
0005609868.tif 000103
【図１０３】
0005609868.tif 000104
【図１０４】
0005609868.tif 000105