(57)【要約】  複数の業務アプリケーションシステム群を連携させ、業務連携を実施する合成ワークフローシステム上で実施される合成ワークフローに対して、合意サービス水準を考慮した棄却判定を行う。合成ワークフローの進行度を元に、合成ワークフローを仮想的に棄却した場合の状態を表現する。その結果を元に、業務アプリケーションシステムと複数ワークフローシステムに与える応答性能上の影響を考慮した上で、合成ワークフローの処理動作を予測する。予測結果である処理動作、およびイベント情報記録手段からイベント情報の履歴情報を取得し統計処理を行った結果を元に評価値を算出する。該評価値が合意サービス水準情報で定義される条件を満足するかどうか判定し、満足しない場合、最大の進行度以下の任意進行度を持つ実行を棄却対象として選択・指定するための棄却対象限定進行度を生成する。
2009084669.tif 000002
【特許請求の範囲】
【請求項１】
複数の業務アプリケーションシステムと複数のワークフローシステムを連携して定義される合成ワークフローに関する各イベント情報を整理、関係付け、保持、記録するイベント情報記録手段内の各イベント情報を監視することで前記合成ワークフローの進行度を取得することと、
前記進行度を元に、前記合成ワークフローを仮想的に棄却した場合の状態を表現することと、
前記の表現された状態を元に、業務アプリケーションシステムと複数のワークフローシステムに与える応答性能上の影響を考慮した上で、前記合成ワークフローの処理動作を予測することと、
前記予測の結果である処理動作、および前記イベント情報記録手段からイベント情報を取得し、その履歴情報に対して統計処理を行い、その処理結果を元に、前記合成ワークフローに関して締結された合意サービス水準情報に基づき定義される評価値を算出することと、
前記評価値が前記合意サービス水準情報で定義される条件を満足するか判定することと、
前記合成ワークフローに関する進行度で計算され、前記合意サービス水準情報に基づき定義された評価値が、前記合意サービス水準情報で定義された条件を満足しない場合、最大の進行度以下の任意進行度を持つ実行を棄却対象として選択・指定するための棄却対象限定進行度を生成することと
有する合成ワークフローモニタリング方法。
【請求項２】
過去の棄却判定処理結果に関する情報を整理、関係付け、保持、記録する棄却判定履歴情報記録手段内の各棄却判定履歴情報に、現在の状況と同一の状況が存在する場合に前記棄却判定履歴情報を元に、棄却判定処理を実施することを有する、請求項１に記載の合成ワークフローモニタリング方法。
【請求項３】
前記棄却判定履歴情報記録手段内の各棄却判定履歴情報に、現在の状況と同一の状況の結果が存在せずとも類似の状況が存在する場合に、類似の前記棄却判定履歴情報を元に、棄却判定処理を実施することを有する、請求項２に記載の合成ワークフローモニタリング方法。
【請求項４】
現在の状態表現行列に対し、過去の履歴の状態表現行列のうちで各要素の差分が少ないものを前記類似と判断する、請求項３に記載の合成ワークフローモニタリング方法。
【請求項５】
現在の各合成ワークフロー定義の状態表現ベクトルに対し、過去の履歴の各合成ワークフロー定義の状態表現ベクトルのうちで、ベクトルの大きさが同じ程、およびベクトルのなす角度が小さいもの程前記類似と判断する、請求項３に記載の合成ワークフローモニタリング方法。
【請求項６】
複数の業務アプリケーションシステムと複数のワークフローシステムを連携して定義される合成ワークフローに関する各イベント情報を整理、関係付け、保持、記録するイベント情報記録手段と、
前記イベント情報記録手段内の各イベント情報を監視することで前記合成ワークフローの進行度を取得する進行度取得手段と、
前記進行度を元に、前記合成ワークフローを仮想的に棄却した場合の状態を表現する仮想棄却状態表現手段と、
前記仮想棄却状態表現手段によって表現された状態を元に、業務アプリケーションシステムと複数のワークフローシステムに与える応答性能上の影響を考慮した上で、前記合成ワークフローの処理動作を予測する処理動作予測手段と、
前記処理動作予測手段の予測結果である処理動作、および前記イベント情報記録手段からイベント情報を取得し、その履歴情報に対して統計処理を行い、その結果を元に、前記合成ワークフローに関して締結された合意サービス水準情報に基づき定義される評価値を算出する評価値表現手段と、
前記評価値が前記合意サービス水準情報で定義される条件を満足するか判定する判定手段と、
前記合成ワークフローに関する進行度で計算され、前記合意サービス水準情報に基づき定義された評価値が、前記合意サービス水準情報で定義された条件を満足しない場合、最大の進行度以下の任意進行度を持つ実行を棄却対象として選択・指定するための棄却対象限定進行度を生成する棄却対象限定進行度生成手段と
有する合成ワークフローモニタリング装置。
【請求項７】
前記仮想棄却状態表現手段は前記イベント情報記録手段からイベント情報を取得し、その履歴情報の統計処理を行うことで投入予測される合成ワークフローを含めた形で仮想的に棄却した状態を表現する、請求項６に記載の合成ワークフローモニタリング装置。
【請求項８】
棄却判定開始時刻を保持し、制限時間内に棄却判定ができたかを判定する時刻判定手段をさらに有する、請求項６または７に記載の合成ワークフローモニタリング装置。
【請求項９】
棄却判定処理中において最大の評価値を与える合成ワークフローの棄却パターンを抽出すること目的とし、前記評価値表現手段で算出された評価値を記録、更新し、必要に応じて保持している評価値を通知する評価値記録手段をさらに有する、請求項６から８のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１０】
前記評価値表現手段は、
前記合意サービス水準情報を定義する評価値計算関数を保持する条件設定手段と、
前記イベント情報記録手段よりイベント情報を取得し、その履歴情報について統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測管理表として作成するイベントデータ統計計算手段と、
棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローの応答時間および平均応答時間、棄却率を元に前記評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算手段と、
を含む、請求項６から９のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１１】
前記条件判定手段は、
組み合わせ数の前記評価値一覧表を元に、各評価値一覧表から最低値を抽出し、組み合わせ数分の最低値を一覧にした最低値一覧表を作成する最低評価値抽出手段と、
前記最低値一覧表を元に、組み合わせ数分の最低値のなかから最高値を抽出する最高評価値抽出手段と、
前記最高評価値と合意サービス水準判定閾値を取得し、前記最高評価値が合意サービス水準判定閾値を満たしているか判定を行う棄却判定手段と、
を含む、請求項１０に記載の合成ワークフローモニタリング装置。
【請求項１２】
前記棄却対象限定進行度生成手段は、
前記合意サービス水準情報を定義する評価値計算関数を保持する条件設定手段と、
棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローの応答時間および平均応答時間、棄却率を元に前記評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算手段と、
取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、その値が同じであった場合、棄却対象合成ワークフロー群の中からさらに棄却個数を増やして棄却できる組み合わせがないと判定し、一連の棄却判定処理を終了し、棄却対象合成ワークフロー個数が棄却個数よりも大きい場合、さらに棄却個数を増やして棄却できる組み合わせがあると判定する処理継続判定手段と、
を含む、請求項６から１１のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１３】
前記進行度が各合成ワークフローのステップ数である、請求項６から１２のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１４】
前記処理動作が各合成ワークフローの応答時間である、請求項６から１３のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１５】
棄却判定処理結果を将来の棄却判定処理に活用することを目的とし、現在実行中の棄却判定時と同様の状態にて、過去に棄却判定がされたかを判定する状態判定手段をさらに有する、請求項の６から１４のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１６】
前記状態判定手段は、
実行中の、あるいは棄却対象となる合成ワークフローの進行度を元に、状態情報を生成する状態表現生成手段と、
過去の前記状態情報と棄却判定処理結果に関する情報を整理、関係付け、保持、記録する棄却判定履歴情報記録手段と、
前記状態情報に対応する棄却判定処理結果履歴を検索する履歴検索手段と、
を含む、請求項１５に記載の合成ワークフローモニタリング装置。
【請求項１７】
前記状態情報が、ベクトルまたは行列で表現される、請求項１６に記載の合成ワークフローモニタリング装置。
【請求項１８】
前記履歴検索手段は、
同一の前記状態情報以外に、類似の前記状態情報に対応する棄却判定処理結果履歴を検索するための定義情報である検索ポリシを保持する検索ポリシ保持手段と、
複数の棄却判定処理で得られる評価値の中から最もよいものを選択する評価値比較手段と、
を含む、請求項１５から１７のいずれか１項に記載の合成ワークフローモニタリング装置。
【請求項１９】
前記検索ポリシとして、現在の状態表現行列に対し、過去の履歴の状態表現行列のうちで各要素の差分が少ないものを前記類似と判断する、請求項１８に記載の合成ワークフローモニタリング装置。
【請求項２０】
前記検索ポリシとして、現在の各合成ワークフロー定義の状態表現ベクトルに対し、過去の履歴の各合成ワークフロー定義の状態表現ベクトルのうちで、ベクトルの大きさが同じ程、およびベクトルのなす角度が小さいもの程前記類似と判断する、請求項１８に記載の合成ワークフローモニタリング装置。
【請求項２１】
複数業務アプリケーションシステムと複数ワークフローシステムを連携して定義される合成ワークフローに関する各イベント情報を整理、関係付け保持、記録するイベント情報記録手段の各イベント情報を監視することで前記合成ワークフローの進行度を取得する進行度取得手順と、
当該実行の進行度を元に、前記合成ワークフローを仮想的に棄却した場合の状態を表現する仮想棄却状態表現手順と、
当該仮想棄却状態表現手段を元に、業務アプリケーションシステムと複数ワークフローシステムに与える応答性能上の影響を考慮した上で、前記合成ワークフローの処理動作を予測する処理動作予測手順と、
当該処理動作予測手段の予想結果である処理動作、および当該イベント情報記録手段から履歴状態のイベント情報を取得し統計処理を行った結果を元に、前記合成ワークフローに関して締結された合意サービス水準情報に基づき定義される評価値を算出する評価値表現手順と、
当該評価値が同じく合意サービス水準情報で定義される条件を満足するか判定する判定手順と、
前記合成ワークフローに関する進行度で計算され、合意サービス水準情報に基づき定義される評価値が、合意サービス水準情報で定義される条件を満足しない場合において、最大の進行度以下の任意進行度を持つ実行を棄却対象として選択・指定するための棄却対象限定進行度を生成する棄却対象限定進行度生成手順と、
をコンピュータに実行させるための合成ワークフローモニタリングプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務アプリケーションシステム群やワークフロー群を連携させて、業務連携を実施する合成ワークフローシステムをモニタリングする、棄却判定機能付き合成ワークフローモニタリング装置に関する。
【背景技術】
【０００２】
合意サービス水準を考慮した棄却判定装置を適用することを目的とした以下の手段が特許文献１に記載されている。この棄却判定装置は、サーバによるサービス提供を、レベルを下げることなく、より安定して行える技術として、特定のサーバと複数のクライアント間にトラフィック制御装置を設置し、サーバとクライアント間の通信データ交換を監視し、の通信データ交換に関する待ち時間を推定して、ある一定以上時間の待ち時間が予測される場合に、クライアントへ対しアクセス規制メッセージを送信してアクセス拒否を行うことで棄却を実施しているものである。【０００３】
上記の、トラフィック制御装置およびそれを用いたサービスシステムにおける、合意サービス水準を考慮した棄却判定装置は、単純な通信データの交換を対象とし、前述したデータ交換に関する平均応答時間のみを考慮して棄却判定を行っているため、次のような問題がある。【０００４】
第一に、上記した棄却判定装置では、特定のサーバとクライアント間の単純な通信データの交換を対象としているため、適切な手段無しには複数のデータ交換によって定義される合成ワークフローを特定できず、このため棄却判定には適用することができない。【０００５】
第二に、複数の業務アプリケーションシステムや複数のワークフローシステムを連携させるロングトランザクションでは、棄却を行う場合に補償動作を実施することになる。当該補償動作を行う場合、新規に別のトランザクションが発生し、当該トランザクションが、連携している複数の業務アプリケーションシステムや複数のワークフローシステムに影響を与え、他の合成ワークフローに対しても影響を与える。しかし、上記の棄却判定装置ではクライアントとサーバ間のみに着目しているために補償動作を想定しておらず、それ故合成ワークフローの棄却判定には適用することができない。
【特許文献１】特開２００５−１８４１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、複数のデータ交換によって定義される合成ワークフローに対して合意サービス水準を考慮し、かつ棄却による補償動作が複数の業務アプリケーションシステムや複数のワークフローシステム、合成ワークフローに与える影響を考慮した上での棄却判定を実施することが可能な合成ワークフローモニタリング方法、装置、および記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の棄却判定機能を有する合成ワークフローモニタリング装置はイベント情報記録手段と進行度取得手段と仮想棄却状態表現手段と処理動作予測手段と評価値表現手段と判定手段と棄却対象限定進行度生成手段とを有する。【０００８】
イベント情報記録手段は、複数の業務アプリケーションシステムと複数のワークフローシステムを連携して定義される合成ワークフローに関する各イベント情報を整理、関係付け、保持、記録する。進行度取得手段はイベント情報記録手段内の各イベント情報を監視することで合成ワークフローの進行度を取得する。仮想棄却状態表現手段は、前記進行度を元に、合成ワークフローを仮想的に棄却した場合の状態を表現する。処理動作予測手段は、仮想棄却状態表現手段によって表現された状態を元に、業務アプリケーションシステムと複数のワークフローシステムに与える応答性能上の影響を考慮した上で、合成ワークフローの処理動作を予測する。評価値表現手段は、処理動作予測手段の予測結果である処理動作、およびイベント情報記録手段からイベント情報を取得し、その履歴情報に対して統計処理を行い、その結果を元に、合成ワークフローに関して締結された合意サービス水準情報に基づき定義される評価値を算出する。判定手段は、前記評価値が前記合意サービス水準情報で定義される条件を満足するか判定する。棄却対象限定進行度生成手段は、合成ワークフローに関する進行度で計算され、前記合意サービス水準情報に基づき定義された評価値が、前記合意サービス水準情報で定義された条件を満足しない場合、最大の進行度以下の任意進行度を持つ実行を棄却対象として選択・指定するための棄却対象限定進行度を生成する。【０００９】
最初に、合成ワークフローに関する複数のデータ交換によるイベントデータが整理、関係付けて格納され、関係付けられたイベントデータを元に各合成ワークフローの進行度が取得される。これによって実行中の各合成ワークフローを進行度で表現することが可能になり、進行度を元に各合成ワークフローの処理動作の予測を行う。各合成ワークフローの予測結果に対してそれぞれ評価値で表現し、各評価値が合意サービス水準情報で定義される条件を満足するか判定する。すべての評価値が当該条件を満足する場合においては棄却を必要としないと判定されるが、評価値が条件を満たしていない場合、評価値のうちで条件を満たさず、かつ進行度が最大のものを棄却対象限定進行度とする。棄却対象限定進行度は実行中の合成ワークフローから仮想的に棄却する対象を限定し、能率的に短時間で棄却対象合成ワークフローを抽出する作用をもつ。次に、棄却対象限定進行度以下の進行度をもつ実行中の合成ワークフローを、組み合わせを考慮した上で棄却した状態を表現し、この表現を元に、棄却が複数業務アプリケーションシステムと複数合成ワークフローシステムに与える応答性能上の影響を考慮した上で、再度処理動作の予測を行う。各予測結果に対し再度評価値で表現し、合意サービス水準情報で定義される条件を満足するかを判定する。当該評価値が当該条件を満たさない場合は、再度、異なる組み合わせにて棄却した状態を表現し、同様の処理を継続する。すべての評価値が条件を満足した場合に、仮想的に棄却した合成ワークフローに対して強制棄却を行なう。【００１０】
本発明は、複数のデータ交換によって定義される合成ワークフローに対して合意サービス水準を考慮し、かつ棄却による補償動作が複数の業務アプリケーションシステムや複数のワークフローシステム、合成ワークフローに与える影響を考慮した上での棄却判定を実施することが可能である。また、実行中の合成ワークフローから仮想的に棄却する対象を限定し、能率的に短時間で棄却対象合成ワークフローを抽出するため、効率性が高いことが期待できることからさらに有効である。
【図面の簡単な説明】
【００１１】
【図１】図１は本発明の第１の実施の形態による合成ワークフローモニタリング装置のブロック図である。
【図２】図２は第１の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図３】図３は第１の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図４】図４は本発明の第２の実施の形態による合成ワークフローモニタリング装置のブロック図である
【図５】図５は第２の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図６】図６は第２の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図７】図７は第１および第２、第３、第４、第５の実施の形態における実行状態管理表の例を示す図である。
【図８】図８は第１および第２、第３、第４、第５の実施の形態における仮想棄却条件データ管理表の例を示す図である。
【図９】図９は第１および第２、第３、第４、第５の実施の形態における合成ワークフロー投入予測管理表の例を示す図である。
【図１０】図１０は第１および第２、第３、第４、第５の実施の形態におけるシミュレート用基礎データ管理表の例を示す図である。
【図１１】図１１は第１および第２、第３、第４、第５の実施の形態における仮想棄却合成ワークフローデータ管理表の例を示す図である。
【図１２】図１２は第１および第２、第３、第４、第５の実施の形態における仮想棄却データ管理表の例を示す図である。
【図１３】図１３は第１および第２、第３、第４、第５の実施の形態におけるシミュレーション結果管理表の例を示す図である。
【図１４】図１４は第１および第２、第３、第４、第５の実施の形態における統計情報データ管理表の例を示す図である。
【図１５】図１５は第１および第２、第３、第４、第５の実施の形態における評価値管理表の例を示す図である。
【図１６】図１６は第１および第２、第３、第４、第５の実施の形態における最低評価値管理表の例を示す図である。
【図１７】図１７は第１および第２、第３、第４、第５の実施の形態における最高評価値管理表の例を示す図である。
【図１８】図１８は第１および第２、第３、第４の実施の形態における実行状態管理表の具体例を示す図である。
【図１９】図１９は第１および第２、第３、第４の実施の形態における実行状態管理表の具体例を示す図である。
【図２０】図２０は第１および第２、第３の実施の形態における仮想棄却条件データ管理表の具体例を示す図である。
【図２１】図２１は第１および第２、第３、第４、第５の実施の形態における合成ワークフロー投入予測管理表の具体例を示す図である。
【図２２】図２２は第１および第２、第３、第４、第５の実施の形態におけるシミュレート用基礎データ管理表の具体例を示す図である。
【図２３】図２３は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図２４】図２４は第１および第２、第３の実施の形態における仮想棄却合成ワークフローデータ管理表の具体例を示す図である。
【図２５】図２５は第１および第２、第３、第４の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図２６】図２６は第１および第２、第３、第４の実施の形態における統計情報データ管理表の具体例を示す図である。
【図２７】図２７は第１および第２、第３の実施の形態における評価値管理表の具体例を示す図である。
【図２８】図２８は第１および第２、第３の実施の形態における最低評価値管理表の具体例を示す図である。
【図２９】図２９は第１および第２、第３の実施の形態における最高評価値管理表の具体例を示す図である。
【図３０】図３０は第１および第２、第３の実施の形態における仮想棄却条件データ管理表の具体例を示す図である。
【図３１】図３１は第１および第２、第３の実施の形態における実行状態管理表の具体例を示す図である。
【図３２】図３２は第１および第２、第３の実施の形態における合成ワークフロー投入予測管理表の具体例を示す図である。
【図３３】図３３は第１および第２、第３の実施の形態におけるシミュレート用基礎データ管理表の具体例を示す図である。
【図３４】図３４は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図３５】図３５は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図３６】図３６は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図３７】図３７は第１および第３の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図３８】図３８は第１および第２、第３の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図３９】図３９は第１および第２、第３の実施の形態におけるシミュレーション管理表の具体例を示す図である。
【図４０】図４０は第１および第３の実施の形態における評価値管理表の具体例を示す図である。
【図４１】図４１は第１および第２、第３の実施の形態における評価値管理表の具体例を示す図である。
【図４２】図４２は第１および第２、第３の実施の形態における評価値管理表の具体例を示す図である。
【図４３】図４３は第１および第３の実施の形態における最低評価値管理表の具体例を示す図である。
【図４４】図４４は第１および第３の実施の形態における最高評価値管理表の具体例を示す図である。
【図４５】図４５は第１および第２、第３の実施の形態における仮想棄却条件データ管理表の具体例を示す図である。
【図４６】図４６は第１および第２、第３の実施の形態における実行状態管理表の具体例を示す図である。
【図４７】図４７は第１および第２、第３の実施の形態における合成ワークフロー投入予測管理表の具体例を示す図である。
【図４８】図４８は第１および第２、第３の実施の形態におけるシミュレート用基礎データ管理表の具体例を示す図である。
【図４９】図４９は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図５０】図５０は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図５１】図５１は第１および第２、第３の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図５２】図５２は第１の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図５３】図５３は第１および第２、第３の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図５４】図５４は第１および第２、第３の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図５５】図５５は第１の実施の形態における評価値管理表の具体例を示す図である。
【図５６】図５６は第１および第２、第３の実施の形態における評価値管理表の具体例を示す図である。
【図５７】図５７は第１および第２、第３の実施の形態における評価値管理表の具体例を示す図である。
【図５８】図５８は第１の実施の形態における最低評価値管理表の具体例を示す図である。
【図５９】図５９は第１の実施の形態における最高評価値管理表の具体例を示す図である。
【図６０】図６０は第２の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図６１】図６１は第２の実施の形態における評価値管理表の具体例を示す図である。
【図６２】図６２は第２の実施の形態における最低評価値管理表の具体例を示す図である。
【図６３】図６３は第２の実施の形態における最高評価値管理表の具体例を示す図である。
【図６４】図６４は第２および第３の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図６５】図６５は第２および第３の実施の形態における評価値管理表の具体例を示す図である。
【図６６】図６６は第２の実施の形態における最低評価値管理表の具体例を示す図である。
【図６７】図６７は第２の実施の形態における最高評価値管理表の具体例を示す図である。
【図６８】図６８は本発明の第３の実施の形態による合成ワークフローモニタリング装置のブロック図である。
【図６９】図６９は第３の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図７０】図７０は第３の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図７１】図７１は本発明の第４の実施の形態による合成ワークフローモニタリング装置のブロック図である。
【図７２】図７２は第４の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図７３】図７３は第４の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図７４】図７４は第４の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図７５】図７５は第４および第５の実施の形態における合成ワークフロー投入情報管理表の例を示す図である。
【図７６】図７６は第４および第５の実施の形態における状態表現ベクトルの例を示す図である。
【図７７】図７７は第４および第５の実施の形態における状態表現行列の例を示す図である。
【図７８】図７８は第４および第５の実施の形態における状態履歴情報管理表の例を示す図である。
【図７９】図７９は第４および第５の実施の形態における棄却状態表現ベクトルの例を示す図である。
【図８０】図８０は第４および第５の実施の形態における合成ワークフロー投入情報管理表の具体例を示す図である。
【図８１】図８１は第４および第５の実施の形態における状態表現ベクトルの具体例を示す図である。
【図８２】図８２は第４および第５の実施の形態における状態表現行列の具体例を示す図である。
【図８３】図８３は第４の実施の形態における状態履歴情報管理表の具体例を示す図である。
【図８４】図８４は第４の実施の形態における最高評価値管理表の具体例を示す図である。
【図８５】図８５は第４の実施の形態における仮想棄却条件データ管理表の具体例を示す図である。
【図８６】図８６は第４の実施の形態における仮想棄却データ管理表の具体例を示す図である。
【図８７】図８７は第４の実施の形態における仮想棄却合成ワークフローデータ管理表の具体例を示す図である。
【図８８】図８８は第４の実施の形態におけるシミュレーション結果管理表の具体例を示す図である。
【図８９】図８９は第４の実施の形態における評価値管理表の具体例を示す図である。
【図９０】図９０は第４の実施の形態における最低評価値管理表の具体例を示す図である。
【図９１】図９１は第４の実施の形態における最高評価値管理表の具体例を示す図である。
【図９２】図９２は第４の実施の形態における棄却状態表現ベクトルの具体例を示す図である。
【図９３】図９３は第４の実施の形態における状態履歴情報管理表の具体例を示す図である。
【図９４】図９４は第４の実施の形態における状態履歴情報管理表の具体例を示す図である。
【図９５】図９５は本発明の第５の実施の形態による合成ワークフローモニタリング装置のブロック図である。
【図９６】図９６は第５の実施の形態の合成ワークフローモニタリング装置の動作を示すフローチャートである。
【図９７】図９７は第５の実施の形態における状態履歴情報管理表の具体例を示す図である。
【図９８】図９８は第５の実施の形態における状態表現行列の具体例を示す図である。
【図９９】図９９は第５の実施の形態における状態表現行列の具体例を示す図である。
【図１００】図１００は第５の実施の形態における最高評価値管理表の具体例を示す図である。
【図１０１】図１０１は第５の実施の形態における最高評価値管理表の具体例を示す図である。
【図１０２】図１０２は第５の実施の形態における仮想棄却合成ワークフローデータ管理表の具体例を示す図である。
【図１０３】図１０３は第５の実施の形態における仮想棄却条件データ管理表の具体例を示す図である。
【図１０４】図１０４は第５の実施の形態における棄却状態表現ベクトルの具体例を示す図である。
【図１０５】図１０５は第５の実施の形態における状態履歴情報管理表の具体例を示す図である。
【図１０６】図１０６は第５の実施の形態における状態履歴情報管理表の具体例を示す図である。
【符号の説明】
【００１２】
１Ａ−１Ｂ−１Ｃ−１Ｄ−１Ｅ            合成ワークフローモニタリング装置
１００Ａ−１００Ｂ−１００Ｃ−１００Ｄ−１００Ｅ    棄却判定機能部
１０１Ａ−１０１Ｂ−１０１Ｃ−１０１Ｄ−１０１Ｅ    仮想棄却データ作成部
１０２Ａ−１０２Ｂ−１０２Ｃ−１０２Ｄ−１０２Ｅ    時刻判定部
１０３                シミュレート用データ作成部
１０４                イベントデータ統計計算部
１０５                評価値計算部
１０６                条件設定部
１０７                最低評価値抽出部
１０８                最高評価値抽出部
１０９Ａ−１０９Ｂ−１０９Ｃ−１０９Ｄ−１０９Ｅ    棄却判定部
１１０Ａ−１１０Ｂ−１１０Ｃ−１１０Ｄ−１１０Ｅ    処理継続判定部
１１１Ａ−１１１Ｂ−１１１Ｃ−１１１Ｄ−１１１Ｅ    棄却命令送信部
１１２                シミュレーション処理部
１１３                評価値記録部
１２０                イベント格納ＤＢ
１３０                ステップ数監視部
１４０                イベント情報送信部
１５０                最高ステップ数保持部
１６０                評価値比較部
２００Ｄ、２００Ｅ    状態比較機能部
２０１Ｄ、２０１Ｅ    状態表現生成部
２０２Ｄ、２０２Ｅ    状態履歴格納ＤＢ
２０３Ｄ、２０３Ｅ    状態表現検索部
２０４Ｄ、２０４Ｅ    棄却状態取得部
２０５Ｄ、２０５Ｅ    状態表現記録部
２０６Ｄ、２０６Ｅ    棄却状態表現生成部
２０７Ｅ              検索ポリシ設定部
２００〜２３０        ステップ
３００〜３３４        ステップ
４００〜４３３        ステップ
５００〜５４９        ステップ
６００〜６１６        ステップ
ｄ０１                仮想棄却データ作成部起動信号
ｄ０２                時刻判定部起動信号
ｄ０３                シミュレート用データ作成起動信号
ｄ０４                実行状態管理表
ｄ０５                イベントデータ統計計算部起動信号
ｄ０６                イベント情報
ｄ０７                合成ワークフロー投入予測管理表
ｄ０８                シミュレート用基礎データ管理表
ｄ０９                仮想棄却条件データ管理表
ｄ１０                シミュレート結果管理表
ｄ１１                評価値計算関数
ｄ１２                制限時間判定依頼
ｄ１３                制限時間判定応答
ｄ１４                評価値管理表
ｄ１５                最低評価値管理表
ｄ１６                最高評価値管理表
ｄ１７                合意サービス水準判定閾値
ｄ１８                仮想棄却条件データ管理表
ｄ１９                最高評価値管理表
ｄ２０                仮想棄却合成ワークフローデータ管理表
ｄ２１                最高評価値管理表
ｄ２２                仮想棄却条件データ管理表
ｄ２３                合意サービス水準判定閾値
ｄ２４                仮想棄却データ管理表
ｄ２５                棄却対象合成ワークフローステップ数
ｄ２６                判定開始時刻通知
ｄ２７                制限時間
ｄ２８                評価値管理表
ｄ２９                統計情報データ管理表
ｄ３０                評価値計算部起動信号
ｄ３１                仮想棄却条件データ管理表
ｄ３２                最低評価値抽出部起動信号
ｄ３３                最高評価値抽出部起動信号
ｄ３４                棄却判定部起動信号
ｄ３５                棄却命令送信部起動信号
ｄ３６                処理継続判定部起動信号
ｄ３７                合成ワークフロー定義ＩＤ
ｄ３８                棄却対象合成ワークフロー定義ＩＤ
ｄ３９                要求メッセージイベントデータ
ｄ４０                応答メッセージイベントデータ
ｄ４１                実行状態管理表
ｄ４２                実行状態問い合わせ信号
ｄ４３                評価値記録部起動信号
ｄ４４                棄却判定開始／終了通知
ｄ４５                仮想棄却条件データ管理表
ｄ４６                棄却命令送信部起動信号
ｄ４７                棄却命令送信部起動信号
ｄ４８                最高評価値管理表
ｄ４９                棄却判定終了通知
ｄ５０                棄却判定終了通知
ｄ５１                最高評価値管理表要求信号
ｄ５２                最高評価値管理表未保持信号
ｄ５３                最高評価値管理表
ｄ５４                最高評価値管理表
ｄ５５                合成ワークフロー投入情報管理表
ｄ５６                合成ワークフロー投入情報管理表
ｄ５７                状態表現生成部起動信号
ｄ５８                シミュレート用基礎データ管理表
ｄ５９                合成ワークフロー投入情報管理表
ｄ６０                棄却対象合成ワークフロー定義ＩＤ
ｄ６１                最大ステップ数
ｄ６２                状態表現検索部起動信号
ｄ６３                状態表現行列
ｄ６４                棄却対象合成ワークフロー定義ＩＤ
ｄ６５                棄却対象合成ワークフローステップ数
ｄ６６                棄却個数
ｄ６７                棄却状態表現ベクトル
ｄ６８                評価値
ｄ６９                収束判定フラグ
ｄ７０                棄却個数
ｄ７１                棄却対象合成ワークフローステップ数
ｄ７２                棄却命令送信部起動信号
ｄ７３                棄却状態表現ベクトル
ｄ７４                シミュレート用基礎データ管理表
ｄ７５                最高評価値管理表
ｄ７６                収束判定フラグ
ｄ７７                収束判定フラグ
ｄ７８                棄却状態取得部起動信号
ｄ７９                最高評価値管理表
ｄ８０                収束判定フラグ
ｄ８１                状態表現行列
ｄ８２                棄却対象合成ワークフロー定義ＩＤ
ｄ８３                棄却状態表現ベクトル
ｄ８４                評価値
ｄ８５                棄却個数
ｄ８６                棄却対象合成ワークフローステップ数
ｄ８７                状態表現記録部起動信号
ｄ８８                状態履歴情報管理表
ｄ８９                棄却個数
ｄ９０                棄却対象合成ワークフローステップ数
ｄ９１                棄却状態表現生成部起動信号
ｄ９２                最高評価値管理表
ｄ９３                仮想棄却合成ワークフローデータ管理表
ｄ９４                シミュレート用基礎データ管理表
ｄ９５                最大ステップ数
ｄ９６                棄却状態表現ベクトル
ｄ９７                評価値比較部起動信号
ｄ９８                最高評価値管理表
ｄ９９                収束判定フラグ
ｄ１００              棄却命令送信部起動信号
ｄ１０１              最高評価値管理表
ｄ１０２              収束判定フラグ
ｄ１０３              検索ポリシ
ｄ１０４              棄却判定終了通知
Ｔ００１００          実行状態管理表
Ｔ００１０１          合成ワークフローＩＤフィールド
Ｔ００１０２          ステップ数フィールド
Ｔ００１０３          合成ワークフロー定義ＩＤフィールド
Ｔ００２００          合成ワークフロー投入予測管理表
Ｔ００２０１          合成ワークフローＩＤフィールド
Ｔ００２０２          予測投入時刻フィールド
Ｔ００２０３          合成ワークフロー定義ＩＤフィールド
Ｔ００３００          シミュレーション結果管理表
Ｔ００３０１          シミュレートＩＤフィールド
Ｔ００３０２          合成ワークフローＩＤフィールド
Ｔ００３０３          合成ワークフロー予測応答時間フィールド
Ｔ００３０４          合成ワークフロー定義ＩＤフィールド
Ｔ００４００          評価値管理表
Ｔ００４０１          シミュレートＩＤフィールド
Ｔ００４０２          合成ワークフローＩＤフィールド
Ｔ００４０３          評価値フィールド
Ｔ００５００          最低評価値管理表
Ｔ００５０１          シミュレートＩＤフィールド
Ｔ００５０２          最低評価値フィールド
Ｔ００６００          仮想棄却合成ワークフローデータ管理表
Ｔ００６０１          仮想棄却合成ワークフローＩＤフィールド
Ｔ００６０２          シミュレートＩＤフィールド
Ｔ００６０３          仮想棄却条件ＩＤフィールド
Ｔ００６０４          棄却合成ワークフローＩＤフィールド
Ｔ００７００          仮想棄却条件データ管理表
Ｔ００７０１          仮想棄却条件ＩＤフィールド
Ｔ００７０２          棄却個数フィールド
Ｔ００７０３          棄却対象合成ワークフロー個数フィールド
Ｔ００７０４          組み合わせ数フィールド
Ｔ００７０５          棄却対象合成ワークフローステップ数フィールド
Ｔ００７０６          棄却対象合成ワークフロー定義ＩＤ
Ｔ００７００'        仮想棄却条件データ管理表
Ｔ００７０１'        仮想棄却条件ＩＤフィールド
Ｔ００７０２'        棄却個数フィールド
Ｔ００７０３'        棄却対象合成ワークフロー個数フィールド
Ｔ００７０４'        組み合わせ数フィールド
Ｔ００７０５'        棄却対象合成ワークフローステップ数フィールド
Ｔ００７０６'        棄却対象合成ワークフロー定義ＩＤ
Ｔ００８００          仮想棄却データ管理表
Ｔ００８０１          シミュレートＩＤフィールド
Ｔ００８０２          合成ワークフローＩＤフィールド
Ｔ００８０３          ステップ数フィールド
Ｔ００８０４          時刻フィールド
Ｔ００８０５          合成ワークフロー定義ＩＤフィールド
Ｔ００９００          シミュレート用基礎データ管理表
Ｔ００９０１          合成ワークフローＩＤフィールド
Ｔ００９０２          ステップ数フィールド
Ｔ００９０３          時刻フィールド
Ｔ００９０４          合成ワークフロー定義ＩＤ
Ｔ００９００'        シミュレート用基礎データ管理表
Ｔ００９０１'        合成ワークフローＩＤフィールド
Ｔ００９０２'        ステップ数フィールド
Ｔ００９０３'        時刻フィールド
Ｔ００９０４'        合成ワークフロー定義ＩＤ
Ｔ０１０００          統計情報データ管理表
Ｔ０１００１          統計情報ＩＤフィールド
Ｔ０１００２          仮想棄却条件ＩＤフィールド
Ｔ０１００３          実行済み合成ワークフロー数フィールド
Ｔ０１００４          実行済み合成ワークフロー平均応答時間フィールド
Ｔ０１００５          棄却合成ワークフロー数フィールド
Ｔ０１１００          最高評価値管理表
Ｔ０１１００'        最高評価値管理表
Ｔ０１１０１          シミュレートＩＤフィールド
Ｔ０１１０２          最高評価値フィールド
Ｔ０１２００          合成ワークフロー投入情報管理表
Ｔ０１２０１          合成ワークフロー定義ＩＤフィールド
Ｔ０１２０２          投入平均間隔フィールド
Ｔ０１２０３          分散フィールド
Ｔ０１３００          状態履歴情報管理表
Ｔ０１３０１          状態表現行列フィールド
Ｔ０１３０２          棄却対象合成ワークフロー定義ＩＤフィールド
Ｔ０１３０３          棄却状態表現ベクトルフィールド
Ｔ０１３０４          評価値フィールド
Ｔ０１３０５          収束判定フラグフィールド
Ｔ０１３０６          棄却個数フィールド
Ｔ０１３０７          棄却対象合成ワークフローステップ数フィールド
Ｔ１０１００          実行状態管理表
Ｔ１０１０１          実行状態管理表
Ｔ１０１０２          実行状態管理表
Ｔ１０１０３          実行状態管理表
Ｔ１０２００          合成ワークフロー投入予測管理表
Ｔ１０２０１          合成ワークフロー投入予測管理表
Ｔ１０２０２          合成ワークフロー投入予測管理表
Ｔ１０３００          シミュレーション結果管理表
Ｔ１０３０１          シミュレーション結果管理表
Ｔ１０３０２          シミュレーション結果管理表
Ｔ１０３０３          シミュレーション結果管理表
Ｔ１０３０４          シミュレーション結果管理表
Ｔ１０３０５          シミュレーション結果管理表
Ｔ１０３０６          シミュレーション結果管理表
Ｔ１０３０７          シミュレーション結果管理表
Ｔ１０３０８          シミュレーション結果管理表
Ｔ１０３０９          シミュレーション結果管理表
Ｔ１０４００          評価値管理表
Ｔ１０４０１          評価値エントリ
Ｔ１０４０２          評価値エントリ
Ｔ１０４０３          評価値管理表
Ｔ１０４０４          評価値管理表
Ｔ１０４０５          評価値管理表
Ｔ１０４０６          評価値管理表
Ｔ１０４０７          評価値管理表
Ｔ１０４０８          評価値管理表
Ｔ１０４０９          評価値管理表
Ｔ１０４１０          評価値管理表
Ｔ１０４１１          評価値管理表
Ｔ１０５００          最低評価値管理表
Ｔ１０５０１          最低評価値管理表
Ｔ１０５０２          最低評価値管理表
Ｔ１０５０３          最低評価値管理表
Ｔ１０５０４          最低評価値管理表
Ｔ１０５０５          最低評価値管理表
Ｔ１０６００          仮想棄却合成ワークフローデータ管理表
Ｔ１０６０１          仮想棄却合成ワークフローデータエントリ
Ｔ１０６０２          仮想棄却合成ワークフローデータ管理表
Ｔ１０７００          仮想棄却条件データ管理表
Ｔ１０７０１          仮想棄却条件データ管理表
Ｔ１０７０２          仮想棄却条件データ管理表
Ｔ１０７０３          仮想棄却条件データ管理表
Ｔ１０７０４          仮想棄却条件データ管理表
Ｔ１０８００          仮想棄却条件データ管理表
Ｔ１０８０１          仮想棄却データエントリ
Ｔ１０８０２          仮想棄却データエントリ
Ｔ１０８０３          仮想棄却データ管理表
Ｔ１０８０４          仮想棄却データエントリ
Ｔ１０８０５          仮想棄却データ管理表
Ｔ１０８０６          仮想棄却データ管理表
Ｔ１０８０７          仮想棄却データ管理表
Ｔ１０８０８          仮想棄却データ管理表
Ｔ１０８０９          仮想棄却データ管理表
Ｔ１０８１０          仮想棄却データ管理表
Ｔ１０９００          シミュレート用基礎データ管理表
Ｔ１０９０１          シミュレート用基礎データ管理表
Ｔ１０９０２          シミュレート用基礎データ管理表
Ｔ１１０００          統計情報データ管理表
Ｔ１１１００          最高評価値管理表
Ｔ１１１０１          最高評価値管理表
Ｔ１１１０２          最高評価値管理表
Ｔ１１１０３          最高評価値管理表
Ｔ１１１０４          最高評価値管理表
Ｔ１１１０５          最高評価値管理表
Ｔ１１１０６          最高評価値管理表
Ｔ１１１０７          最高評価値管理表
Ｔ１１１０８          最高評価値管理表
Ｔ１１２００          合成ワークフロー投入情報管理表
Ｔ１１３００          状態履歴情報管理表
Ｔ１１３０１          状態履歴情報管理表
Ｔ１１３０２          状態履歴情報管理表
Ｔ１１３０３          状態履歴情報管理表
Ｔ１１３０４          状態履歴情報管理表
Ｔ１１３０５          状態履歴情報管理表
Ｖ００１００          状態表現ベクトル
Ｖ１０１００          状態表現ベクトル
Ｖ００２００          棄却状態表現ベクトル
Ｖ１０２０１          棄却状態表現ベクトル
Ｖ１０２０２          棄却状態表現ベクトル
Ｍ００１００          状態表現行列
Ｍ１０１００          状態表現行列
Ｍ１０１０１          状態表現行列
Ｍ１０１０２          状態表現行列
【発明を実施するための最良の形態】
【００１３】
［第１の実施の形態］
図１は本発明の第１の実施の形態の合成ワークフローモニタリング装置の全体構成を示すブロック図である。【００１４】
本実施の形態の合成ワークフローモニタリング装置１Ａはイベント格納ＤＢ１２０とステップ数監視部１３０とイベント情報送信部１４０と棄却判定機能部１００Ａから構成される。イベント格納ＤＢ１２０は、各合成ワークフローに関するイベントデータを整理、関係付けて格納する。ステップ数監視部１３０は、イベント格納ＤＢ１２０に格納されているイベントデータから各合成ワークフローの進行度合い示すステップ数を計算、監視、保持する。イベント情報送信部１４０は、要求に応じてステップ数監視部１３０よりステップ数を用いて現在の合成ワークフロー実行状況を表現するデータを取得し、棄却判定機能部１００Ａに送信する。棄却判定機能部１００Ａは、イベント格納ＤＢ１２０、ステップ数監視部１３０、イベント情報送信部１４０より情報を取得して棄却判定を行う。【００１５】
ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視し、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージが観測された場合に合成ワークフローの処理が進んだと判定し、該当する合成ワークフローの進行度合いを示すステップ数を更新する。また、ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持しており、特に合成ワークフロー定義ＩＤを持つ合成ワークフローのステップ数が更新された場合、棄却判定機能部１００Ａ内の仮想棄却データ作成部１０１Ａを起動し、合成ワークフロー定義ＩＤを通知する。【００１６】
棄却判定機能部１００Ａは、各合成ワークフローに関する履歴情報を取得し、統計計算や、合成ワークフロー投入予測データの作成を行うイベントデータ統計計算部１０４を含む。イベントデータ統計計算部１０４は、合成ワークフロー定義ＩＤで特定される過去の履歴を参照し、処理が完了した合成ワークフローの個数や、棄却された合成ワークフローの個数、過去の平均応答時間等を計算する。また、イベントデータ統計計算部１０４は、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測データとして作成する。合成ワークフロー投入予測データは、後述するシミュレータ用基礎データに用いられる。合成ワークフローを処理する各業務アプリケーションシステム群や各ワークフローシステム群の負荷は、リソースを共有している場合もあるために、同時に実行されている他の合成ワークフロー群に大きく影響されることから、投入予測をすることによって、より正確にシミュレートする意図がある。合成ワークフロー投入予測データには、いつ、どの合成ワークフロー定義ＩＤに属する合成ワークフローが投入されるかが記載されていればよい。【００１７】
棄却判定機能部１００Ａはさらに、現在の合成ワークフロー実行状況を示す実行状況データを取得し、また合成ワークフロー投入予測データを取得することで、現在および将来の各合成ワークフローの状態を表現するシミュレータ用基礎データを作成するシミュレート用データ作成部１０３を含む。実行状況データには、合成ワークフローＩＤで一意に特定される実行中の合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレータ用基礎データには、合成ワークフローＩＤで一意に特定される実施中および投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているかをステップ数で表現されていればよい。【００１８】
棄却判定機能部１００Ａはさらに、棄却判定を行う合成ワークフロー群を特定する合成ワークフロー定義ＩＤを取得し、さらにシミュレータ用基礎データを取得することで、シミュレータ用基礎データのうちの棄却個数分の合成ワークフローを仮想的に棄却したシミュレータ用データを作成する仮想棄却データ作成部１０１Ａを含む。仮想的に棄却するにあたり、実施中の合成ワークフローのうち、ステップ数で示される進行度が一定の基準以下のものが抽出され、そのうちから棄却個数分の合成ワークフローを棄却する、すべての組み合わせについて考慮される。【００１９】
仮想棄却データ作成部１０１Ａは、棄却対象となる合成ワークフローを、実行中の全合成ワークフローとするのではなく、ステップ数で示される進行度が一定の基準以下のものに限定するため、より能率的に短時間で棄却判定を行うことができる。そのため、仮想棄却データ作成部１０１Ａは、棄却対象を絞り込むためのステップ数基準値、棄却対象となる合成ワークフローの個数、仮想的に棄却する個数、棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を選ぶその組み合わせの数を記憶している。また、仮想棄却データ作成部１０１Ａは、組み合わせ数分のシミュレータ用データが作成されるため、どのシミュレータ用データはどの合成ワークフローＩＤを持つ合成ワークフローを仮想棄却したかを紐付ける管理テーブルも同様に記憶している。合成ワークフローシミュレータ用データには、合成ワークフローＩＤで一意に特定される実行中あるいは投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されていればよい。【００２０】
仮想棄却データ作成部１０１Ａは、最初に、現在実行中の合成ワークフローがサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすかどうかを判定するため、起動時には仮想に棄却する個数を０、棄却対象を絞り込むためのステップ数基準値には実行中の合成ワークフローすべてを棄却対象としないことを意味する符号を設定して、棄却判定処理を行う。【００２１】
仮想棄却データ作成部１０１Ａは、後述する処理継続判定部１１０Ａより棄却対象を絞り込むためのステップ数基準値を取得した場合、保持している棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を１増やした状態で再度棄却判定処理を行う。すなわち、前回の仮想的に棄却する個数ではサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができないため、仮想棄却データ作成部１０１Ａは、仮想的に棄却する個数を１増やした状態でサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができるかどうかを判定する。【００２２】
仮想棄却データ作成部１０１Ａは、シミュレータ用基礎データを記憶しており、仮想的に棄却する個数を１増やした状態で再度棄却判定処理をする場合に再度シミュレータ用基礎データを取得し、記憶していたシミュレータ用基礎データのステップ数に差異がないかを判定する。ステップ数に差異がある場合、実行中の合成ワークフロー群の進行度合いが変化していることを示すため、仮想棄却データ作成部１０１Ａは、現状の状況を示す再度取得したシミュレータ用基礎データを用いて、仮想的に棄却する個数を０に設定し直し棄却判定処理を継続する。【００２３】
棄却判定機能部１００Ａはさらに、合成ワークフローＩＤで一意に特定される合成ワークフローが、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されたデータが与えられれば、各合成ワークフローの応答時間を予測するシミュレーション処理部１１２を含む。シミュレーション処理部１１２は、合成ワークフローＩＤで一意に特定される合成ワークフローと、その合成ワークフローが属する合成ワークフロー定義ＩＤ、およびその合成ワークフローの応答時間をシミュレーション結果一覧にして出力する。【００２４】
棄却判定機能部１００Ａはさらに、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づいた棄却判定条件を保持する条件設定部１０６を含む。条件設定部１０６は、棄却判定を行うための制限時間を保持している。また、条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づき作成される評価値計算関数を保持している。評価値計算関数は、合意サービス水準を判定するための、合成ワークフローの処理時間や平均処理時間、棄却率などを変数に持ち、評価値計算関数から求まる評価値が高ければ高いほど合意サービス水準を満たすように定義される。また、評価値計算関数は必ずしも数学的に定義される必要はなく、プログラム形式で記述しても構わない。また、条件設定部１０６は、合意サービス水準判定閾値を保持しており、評価値計算関数から求まる評価値が合意サービス水準判定閾値を超えていれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満足すると判定する。【００２５】
棄却判定機能部１００Ａはさらに、判定開始通知と棄却判定を行うための制限時間を取得して、棄却判定終了時刻を保持する時刻判定部１０２Ａを含む。時刻判定部１０２Ａは、制限時間判定依頼を取得した場合、現在時刻を取得し、棄却判定終了時刻を現在時刻と比較することで、制限時間内に棄却判定が行えたかどうかの判定を行う。【００２６】
棄却判定機能部１００Ａはさらに、シミュレーション結果一覧から、棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローＩＤを抽出し、その応答時間および平均応答時間、棄却率を元に評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算部１０５を含む。評価値計算部１０５は、シミュレートの組み合わせ数を保持しており、組み合わせ数分の各シミュレーション結果に対して評価値一覧表を作成した後、時刻判定部１０２Ａへ制限時間判定依頼を通知し、定められた制限時間内で処理が完了しているかを確認する。棄却判定機能部１００Ａは、定められた制限時間内で処理が完了している場合、処理を継続するが、定められた制限時間内で処理が完了できなかった場合、一連の棄却判定処理を終了する。【００２７】
棄却判定機能部１００Ａはさらに、組み合わせ数の評価値一覧表を元に、各評価値一覧表から最低値を抽出し、組み合わせ数分の最低値を一覧にした最低値一覧表を作成する最低評価値抽出部１０７を含む。【００２８】
棄却判定機能部１００Ａは、最低値一覧表を元に、組み合わせ数分の最低値のなかから最高値を抽出する最高評価値抽出部１０８を含む。最高値は、ある棄却対象を絞り込むためのステップ数基準値以下の実行中合成ワークフローのなかから、組み合わせ個数分の合成ワークフローを仮想的に棄却した場合に、棄却しなかった合成ワークフローの評価値は、少なくとも最高値にすることができるということを意味する。【００２９】
棄却判定機能部１００Ａはさらに、最高評価値と合意サービス水準判定閾値を取得し、最高評価値が合意サービス水準判定閾値を満たしているか判定を行う棄却判定部１０９Ａを含む。棄却判定部１０９Ａは合成ワークフローを仮想的に棄却する個数を保持しており、仮想棄却個数が０の場合に最高評価値が合意サービス水準判定閾値を満たしていれば、実行中の合成ワークフローを棄却せずともサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準は満たされていると判定し、一連の棄却判定処理を終了する。また、棄却判定部１０９Ａは、仮想棄却個数が０以外の場合に最高評価値が合意サービス水準判定閾値を満たしていれば、実行中の合成ワークフローのうち仮想棄却個数分の合成ワークフローを棄却すれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準は満たされると判定する。また、棄却判定部１０９Ａは、最高評価値が合意サービス水準判定閾値を満たしていない場合は、実行中の合成ワークフローのうち仮想棄却個数分の合成ワークフローを棄却したとしても、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことはできないと判定する。【００３０】
棄却判定機能部１００Ａはさらに、実行中の合成ワークフローのうち仮想棄却個数分の合成ワークフローを棄却したとしても、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことはできないと判定された場合に、棄却対象となる合成ワークフローの個数と、仮想的に棄却する個数を取得し、仮想的に棄却する個数をさらに増やした状態で棄却判定処理が継続できるか判定する処理継続判定部１１０Ａを含む。処理継続判定部１１０Ａは、仮想的に棄却する個数を増やすことができないと判定された場合、実行中の合成ワークフロー群をどのように棄却してもサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことはできないと判定し、一連の棄却判定処理を終了する。処理継続判定部１１０Ａは、仮想的に棄却する個数を増やすことができると判定した場合、棄却対象を絞り込むためのステップ数基準値を取得する。ステップ数基準値に、実行中の合成ワークフローすべてを棄却対象としないことを意味する符号が設定されている場合、処理継続判定部１１０Ａは、新規にステップ数基準値を設定するため、評価値一覧表と合意サービス水準判定閾値を取得し、実行中の合成ワークフロー群のうちで合意サービス水準を満たせない、最もステップ数が大きい合成ワークフロー、すなわち合意サービス水準を満たせない、最も処理進行度合いが進んでいる合成ワークフローを抽出し、その合成ワークフローのステップ数をステップ数基準値とする。また、処理継続判定部１１０Ａは、取得したステップ数基準値にすでに値が保持されている場合は、その値をステップ数基準値とする。処理継続判定部１１０Ａは、仮想棄却データ作成部１０１Ａへステップ数基準値を通知する。【００３１】
棄却判定機能部１００Ａはさらに、棄却判定が下された場合に、棄却対象合成ワークフローに対して強制棄却を実行する命令を送信する棄却命令送信部１１１Ａを含む。【００３２】
次に、本実施の形態の合成ワークフローモニタリング装置１Ａの動作について、図１および図２、図３のフローチャートを用いて詳細に説明する。【００３３】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持し、各合成ワークフローに関するイベントデータを整理、関係付けて格納するイベント格納ＤＢ１２０を常に監視している。業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージに関するイベントデータｄ３９、ｄ４０を新規に検知した場合、ステップ数監視部１３０は、保持している実行状態管理表Ｔ００１００を更新する。特に合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータを検知した場合、ステップ数監視部１３０は、棄却判定機能部１００Ａに棄却判定処理を開始させる（ステップ２００）。【００３４】
図７は実行状態管理表Ｔ００１００の構成例を示している。実行状態管理表Ｔ００１００は合成ワークフローＩＤフィールドＴ００１０１をキーとする表で、該当する合成ワークフローのステップ数、およびその合成ワークフローが属する合成ワークフロー定義ＩＤをそれぞれステップ数フィールドＴ００１０２、合成ワークフロー定義ＩＤフィールドＴ００１０３で管理するために使用される。【００３５】
ステップ数監視部１３０は、合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータｄ３９、ｄ４０を検知した場合、仮想棄却データ作成部１０１Ａが起動中であるかを判定する（ステップ２０１）。仮想棄却データ作成部１０１Ａが起動されている場合は、すでに棄却判定処理を実行中のため新規に棄却判定は行わない（ステップ２０２）。仮想棄却データ作成部１０１Ａが起動されていない場合、ステップ数監視部１３０は仮想棄却データ作成部１０１Ａへ仮想棄却データ作成部起動信号ｄ０１を通知する。また、ステップ数監視部１３０は仮想棄却データ作成部１０１Ａへ、棄却判定を行う合成ワークフロー群を特定するための合成ワークフロー定義ＩＤｄ３７を通知する（ステップ２０３）。【００３６】
仮想棄却データ作成部１０１Ａは、仮想棄却データ作成部起動信号ｄ０１を受信することによって起動し、起動の際に仮想棄却条件データ管理表Ｔ００７００を作成する。最初に棄却無しの状況をシミュレートするため、仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２には０を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には−１をそれぞれ設定する。実行中の合成ワークフローを棄却しないことを示せれば、棄却対象合成ワークフローステップ数は−１である必要はない。仮想棄却データ作成部１０１Ａは、ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する。なお、この段階では棄却対象合成ワークフロー個数フィールドＴ００７０３および組み合わせ数フィールドＴ００７０４には値が設定されない。仮想棄却データ作成部１０１Ａはシミュレート用データ作成部１０３へシミュレート用データ作成部起動信号ｄ０３を通知する。また、仮想棄却データ作成部１０１Ａは時刻判定部１０２Ａへ時刻判定部起動信号ｄ０２を通知し、制限時間内にて判定を行えたかどうかの判定情報として判定開始時刻通知ｄ２６を時刻判定部１０２Ａへ通知する（ステップ２０４）。【００３７】
図８は仮想棄却条件データ管理表Ｔ００７００の構成例を示す。仮想棄却条件データ管理表Ｔ００７００は仮想棄却条件ＩＤフィールドＴ００７０１をキーとする表で、該当する仮想棄却条件ＩＤの棄却個数、棄却対象合成ワークフロー個数、組み合わせ数、棄却対象合成ワークフローステップ数、棄却対象合成ワークフロー定義ＩＤを、それぞれ棄却個数フィールドＴ００７０２、棄却対象合成ワークフロー個数フィールドＴ００７０３、組み合わせ数フィールドＴ００７０４、棄却対象合成ワークフローステップ数フィールドＴ００７０５、棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６で管理するために使用される。棄却個数は、合意サービス水準判定を行う合成ワークフロー定義ＩＤに属する、実行中の合成ワークフロー群から棄却する合成ワークフローの個数を示す。棄却対象合成ワークフロー個数は、合意サービス水準判定を行う合成ワークフロー定義ＩＤに属する実行中の合成ワークフローのうち、棄却判定に使用する合成ワークフローの個数を示す。組み合わせ数は、棄却対象合成ワークフロー個数のなかから棄却個数を選び出す組み合わせの個数を示す。棄却対象合成ワークフローステップ数は、合意サービス水準判定を行う合成ワークフロー定義ＩＤに属する実行中の合成ワークフロー群のうち、棄却判定対象とする合成ワークフローを判定するために用いる指標値であり、棄却対象合成ワークフローステップ数以下のステップ数を持つ各合成ワークフローを棄却判定対象とする。棄却対象合成ワークフロー定義ＩＤは、合意サービス水準判定を行う合成ワークフロー群を一意に特定するための識別子である。【００３８】
時刻判定部１０２Ａは、時刻判定部起動信号ｄ０２を受信することで起動する。時刻判定部１０２Ａは、条件設定部１０６より制限時間ｄ２７を取得し、判定開始時刻通知ｄ２６を受信した時刻を元に判定終了時刻を計算し、保持する（ステップ２０５）。条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準に基づき、棄却判定を行うための条件についての情報を保持する。条件設定部１０６は、合意サービス水準情報に基づいて設定される評価値計算関数を定義する。評価値計算関数は合意サービス水準で定められた合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を変数として定義される。評価値計算関数は任意に定義することができるが、評価値関数から得られる数値が大きいほど合意サービス水準を満たすように定義する。また、評価値計算値関数は数学的に記述される必要はなく、プログラムで記述しても構わない。また、条件設定部１０６では、合意サービス水準を判定するための合意サービス水準判定閾値が定義される。合意サービス水準判定閾値は評価値計算関数で決定され、シミュレーションで求まる合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を用いて評価値計算関数に代入して得られる数値が合意サービス水準判定閾値を超えている場合にサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たしていると判定するための指標値である。【００３９】
シミュレート用データ作成部１０３は、シミュレート用データ作成部起動信号ｄ０３を受信することで起動する。シミュレート用データ作成部１０３はイベント情報送信部１４０へ実行状態問い合わせ信号ｄ４２を通知する。イベント情報送信部１４０は、ステップ数監視部１３０より実行状態管理表Ｔ００１００（ｄ４１）を取得し、シミュレート用データ作成部１０３へ実行状態管理表Ｔ００１００（ｄ０４）を通知する。シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４へイベントデータ統計計算部起動信号ｄ０５を通知する（ステップ２０６）。【００４０】
イベントデータ統計計算部１０４は、イベントデータ統計計算部起動信号ｄ０５を受信することで起動する。イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０よりイベント情報ｄ０６を取得し、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測管理表Ｔ００２００として作成する。イベントデータ統計計算部１０４は、シミュレート用データ作成部１０３へ合成ワークフロー投入予測管理表Ｔ００２００（ｄ０７）を通知する（ステップ２０７）。【００４１】
図９は合成ワークフロー投入予測管理表Ｔ００２００の構成例を示している。合成ワークフロー投入予測管理表Ｔ００２００は合成ワークフローＩＤフィールドＴ００２０１をキーとする表で、該当する予測合成ワークフローの投入時刻と、その合成ワークフローが属する合成ワークフロー定義ＩＤを、それぞれ予測投入時刻フィールドＴ００２０２、合成ワークフロー定義ＩＤフィールドＴ００２０３で管理するために使用される。合成ワークフロー投入予測管理表Ｔ００２００は、将来どの時点で合成ワークフロー定義ＩＤに属する合成ワークフローが本合成ワークフロー装置に投入されるかを端的に示す表である。【００４２】
シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４より取得した合成ワークフロー投入予測管理表Ｔ００２００と、実行状態管理表Ｔ００１００を元にシミュレート用基礎データ管理表Ｔ００９００を作成する。シミュレート用データ作成部１０３は仮想棄却データ作成部１０１Ａへシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）を通知する（ステップ２０８）。【００４３】
図１０はシミュレート基礎データ管理表Ｔ００９００の構成例を示している。シミュレート基礎データ管理表Ｔ００９００は合成ワークフローＩＤフィールドＴ００９０１をキーとする表で、該当する合成ワークフローのステップ数、時刻、合成ワークフロー定義ＩＤを、それぞれステップ数フィールドＴ００９０２、時刻フィールドＴ００９０３、合成ワークフロー定義ＩＤフィールドＴ００９０４で管理するために使用される。シミュレート基礎データ管理表Ｔ００９００は、将来を含め、いつ、どのような合成ワークフローが、どの合成ワークフロー定義に属し、どの程度の進行状態にあるかを端的に示す表である。ステップ数は、実行中の合成ワークフローについては実行状態管理表Ｔ００１００のステップ数フィールドＴ００１０２と同様であり、予測合成ワークフローについては０である必要はなく、現在実行中でないことを示すものであればよい。時刻は、実行中の合成ワークフローについては現在時刻を設定し、予測合成ワークフローについては合成ワークフロー投入予測管理表Ｔ００２００の予測投入時刻フィールドＴ００２０２と同様である。合成ワークフロー定義ＩＤは、実行中の合成ワークフローについては実行状態管理表Ｔ００１００の合成ワークフロー定義ＩＤフィールドＴ００１０３と同様であり、予測合成ワークフローについては合成ワークフロー投入予測管理表Ｔ００２００の合成ワークフロー定義ＩＤフィールドＴ００２０３と同様である。【００４４】
仮想棄却データ作成部１０１Ａは、前回実施したシミュレート用基礎データ管理表Ｔ００９００'が保持されているかの確認を行う（ステップ２０９）。シミュレート用基礎データ管理表Ｔ００９００'が仮想棄却データ作成部１０１に保持されている場合、棄却判定中に実行中の合成ワークフロー群の処理進行度合いに変化があったかどうかを判定するため、仮想棄却データ作成部１０１Ａは、新規に受信したシミュレート用基礎データ管理表Ｔ００９０（ｄ０８）の合成ワークフローＩＤフィールドＴ００９０４と前回実施したシミュレート用基礎データ管理表Ｔ００９００'の合成ワークフローＩＤフィールドＴ００９０１'の比較を行う。同様に、仮想棄却データ作成部１０１Ａは、新規に受信したシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と前回実施したシミュレート用基礎データ管理表Ｔ００９００'のステップ数フィールドＴ００９０２'の比較を行う（ステップ２１０）。比較を行った結果、差異がある場合は、棄却判定中に実行中の合成ワークフロー群の処理進行度合いが変化したことを意味するため、状況変化後の状態で再度棄却無しの状態から棄却判定を行う。仮想棄却条件データ管理表Ｔ００７００を更新し、最初に棄却無しの状況をシミュレートするため、仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２には０を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には−１をそれぞれ設定する。実行中の合成ワークフローを棄却しないことを示せれば、棄却対象合成ワークフローステップ数は−１である必要はない。仮想棄却データ作成部１０１Ａは、ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤ（ｄ３７）を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する。仮想棄却データ作成部１０１Ａは、制限時間内にて判定を行えたかどうかの判定情報として判定開始時刻通知ｄ２６を時刻判定部１０２Ａへ通知する（ステップ２１１）。【００４５】
時刻判定部１０２Ａは、判定開始時刻通知ｄ２６と条件設定部１０６より取得した制限時間ｄ２７を用いて、保持していた判定終了時刻を更新する（ステップ２１２）。【００４６】
仮想棄却データ作成部１０１Ａは、シミュレート用基礎データ管理表Ｔ００９００を保持する。仮想棄却データ作成部１０１Ａは、実行中の合成ワークフロー群についてシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５に保持されている棄却対象合成ワークフローステップ数を比較する。仮想棄却データ作成部１０１Ａは、ステップ数フィールドＴ００９０２の数値が棄却対象合成ワークフローステップ数以下となり、かつ合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する合成ワークフローＩＤフィールドＴ００９０１の個数を計算し、その個数を棄却対象合成ワークフロー個数フィールドＴ００７０３に保持する。この個数が、合意サービス水準判定を行う合成ワークフロー定義に属する、実行中の合成ワークフロー群のうち棄却判定対象となる合成ワークフローの個数であり、現在実行中の合成ワークフロー群の中から棄却対象合成ワークフローステップ数以下のステップ数を持つ実行中の合成ワークフロー群を抽出することで、棄却判定対象とする合成ワークフローの個数を減らしている。これによって、棄却判定処理を効率的に短時間で実施することが可能となる。次に、仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得し、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数を計算して仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持する。仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ００７００を作成後、評価値計算部１０５の起動状況を確認し、評価値計算部１０５が起動していない場合に評価値計算部起動信号ｄ３０を評価値計算部１０５に通知する。また、仮想棄却データ作成部１０１Ａは評価値計算部１０５へ仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を通知する（ステップ２１３）。【００４７】
評価値計算部１０５は、仮想棄却データ作成部１０１Ａより評価値計算部起動信号ｄ３０を受信することによって起動する。評価値計算部１０５は、仮想棄却データ作成部１０１Ａより通知された仮想棄却条件データ管理表Ｔ０００７００（ｄ３１）を保持する。【００４８】
仮想棄却データ作成部１０１Ａは、ステップ２１３の処理完了後に仮想棄却合成ワークフローデータ管理表Ｔ００６００と、シミュレーション処理部１１２の入力データとして仮想棄却データ管理表Ｔ００８００を作成し、保持する。仮想棄却データ作成部１０１Ａは、シミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２が棄却対象合成ワークフローステップ数フィールドＴ００７０５以下となり、かつシミュレート用基礎データ管理表Ｔ００９００の合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する実行中の合成ワークフローから、棄却個数フィールドＴ００７０２に保持されている棄却個数分の実行中の合成ワークフローを仮想的に棄却したデータを、それぞれ仮想棄却条件データ管理表Ｔ０００８００として作成する。仮想的に棄却する場合、仮想棄却データ作成部１０１Ａは、ステップ数フィールドＴ００８０３には棄却を示す符号を設定する。このときに、棄却対象とした棄却個数フィールドＴ００７０２に保持されている棄却個数分の合成ワークフローＩＤフィールドＴ００８０２が、仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持される。仮想棄却データ作成部１０１Ａは、最終的に、組み合わせ数フィールドＴ００７０４に保持されている個数分の、仮想棄却合成ワークフローデータ管理表Ｔ００６００と仮想棄却データ管理表Ｔ００８００を作成する。仮想棄却データ作成部１０１Ａは、シミュレーション処理部１１２へ作成した組み合わせ数分の仮想棄却データ管理表Ｔ００８００（ｄ０９）を通知する（ステップ２１４）。【００４９】
図１１は仮想棄却合成ワークフローデータ管理表Ｔ００６００の構成例を示している。仮想棄却合成ワークフローデータ管理表Ｔ００６００は仮想棄却合成ワークフローＩＤフィールドＴ００６０１をキーとする表で、該当するシミュレートＩＤと仮想棄却条件ＩＤ、棄却した合成ワークフローＩＤの関連をそれぞれシミュレートＩＤフィールドＴ００６０２、仮想棄却条件ＩＤフィールドＴ００６０３、棄却合成ワークフローＩＤフィールドＴ００６０４で管理するための表である。仮想棄却合成ワークフローデータ管理表Ｔ００６００は、どういう条件で、どのシミュレーションが実施され、そのシミュレーション実行時にどの合成ワークフローＩＤを持つ合成ワークフローが棄却されたかを端的に示す表である。棄却個数フィールドＴ００７０２が０の場合は、合成ワークフローＩＤの代わりに棄却なしであることを意味する記号を棄却合成ワークフローＩＤフィールドＴ００６０４に設定すればよい。【００５０】
図１２は仮想棄却データ管理表Ｔ００８００の構成例を示している。仮想棄却データ管理表Ｔ００８００はシミュレートＩＤフィールドＴ００８０１と合成ワークフローＩＤフィールドＴ００８０２をキーとする表で、該当するシミュレートＩＤ、合成ワークフローＩＤ、ステップ数、時刻、合成ワークフロー定義ＩＤを、それぞれステップ数フィールドＴ００８０３、時刻フィールドＴ００８０４、合成ワークフロー定義ＩＤフィールドＴ００８０５で管理するための表である。仮想的に棄却する場合、ステップ数フィールドＴ００８０３には棄却を示す符号が設定される。【００５１】
シミュレーション処理部１１２は、仮想棄却データ管理表Ｔ００８００（ｄ０９）に従いシミュレーション処理を実施し、各仮想棄却データ管理表Ｔ００８００に対応するシミュレーション結果管理表Ｔ００３００を作成し、評価値計算部１０５へシミュレーション結果管理表Ｔ００３００（ｄ１０）を通知する（ステップ２１５）。【００５２】
図１３はシミュレーション結果管理表Ｔ００３００の構成例を示している。シミュレーション結果管理表Ｔ００３００はシミュレートＩＤフィールドＴ００３０１と合成ワークフローＩＤフィールドＴ００３０２をキーとする表で、該当するシミュレートＩＤと合成ワークフローＩＤの合成ワークフロー予測応答時間、合成ワークフロー定義ＩＤを、それぞれ合成ワークフロー予測応答時間フィールドＴ００３０３、合成ワークフロー定義ＩＤフィールドＴ００３０４で管理するための表である。【００５３】
評価値計算部１０５は、シミュレーション処理部１１２よりシミュレーション結果管理表Ｔ００３００（ｄ１０）を取得すると、保持していた仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定されている棄却対象合成ワークフロー定義ＩＤ（ｄ３８）をイベントデータ統計計算部１０４へ通知する。イベントデータ統計計算部１０４は、評価値計算部１０５より取得した棄却対象合成ワークフロー定義ＩＤ（ｄ３８）とイベント情報（ｄ０６）を元に、棄却対象合成ワークフロー定義ＩＤで特定されるサービスについての統計情報データ管理表Ｔ０１０００を作成し、評価値計算部１０５へ統計情報データ管理表Ｔ０１０００（ｄ２９）を通知する（ステップ２１６）。【００５４】
図１４は統計情報データ管理表Ｔ０１０００の構成例を示している。統計情報データ管理表Ｔ０１０００は統計情報ＩＤフィールドＴ０１００１をキーとする表で、該当する統計情報ＩＤ、仮想棄却条件ＩＤ、実行済み合成ワークフロー数、実行済み合成ワークフロー平均応答時間、棄却合成ワークフロー数を、それぞれ統計情報ＩＤフィールドＴ０１００１、仮想棄却条件ＩＤフィールドＴ０１００２、仮想棄却条件ＩＤ実行済み合成ワークフロー数フィールドＴ０１００３、実行済み合成ワークフロー平均応答時間フィールドＴ０１００４、棄却合成ワークフロー数フィールドＴ０１００５で管理するための表である。【００５５】
評価値計算部１０５は、統計情報データ管理表Ｔ０１０００（ｄ２９）を取得後、条件設定部１０６で定義される評価値計算関数ｄ１１を取得する。評価値計算部１０５は、シミュレーション結果管理表Ｔ００３００のうち、合成ワークフロー定義ＩＤフィールドＴ００３０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する要素の合成ワークフロー予測応答時間フィールドＴ００３０３、および統計情報データ管理表Ｔ０１０００を元に、評価値計算関数に従い評価値の計算を行い、評価値管理表Ｔ００４００を作成する（ステップ２１７）。【００５６】
図１５は評価値管理表Ｔ００４００の構成例を示している。評価値管理表Ｔ００４００はシミュレートＩＤフィールドＴ００４０１と合成ワークフローＩＤフィールドＴ００４０２をキーとする表で、該当するシミュレートＩＤと合成ワークフローＩＤの評価値を評価値フィールドＴ００４０３で管理するために使用する。【００５７】
評価値計算部１０５は、評価値計算部１０５で保持している仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持されている組み合わせ個数分の評価値管理表Ｔ００４００が作成されるまで待機する。評価値計算部１０５は、すべての組み合わせ個数分の評価値管理表Ｔ００４００を作成した場合、時刻判定部１０２Ａへ制限時間判定依頼ｄ１２を送信する（ステップ２１８）。【００５８】
時刻判定部１０２Ａは、制限時間判定依頼ｄ１２を受信した時刻と、保持している判定終了時刻の比較を行う（ステップ１１９）。時刻判定部１０２Ａは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ａが保持している判定終了時刻を経過している場合、制限時間内に棄却判定ができなかったと判定し、一連の棄却判定処理を終了する（ステップ２２０）。時刻判定部１０２Ａは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ａが保持している判定終了時刻を経過していない場合、評価値計算部１０５へ制御時間判定応答ｄ１３を通知する。評価値計算部１０５は、制御時間判定応答ｄ１３を受信した場合、最低評価値抽出部１０７の起動状況を確認し、最低評価値抽出部１０７が起動していない場合には最低評価値抽出部起動信号ｄ３２を通知する。最低評価値抽出部１０７は、評価値抽出部１０７より最低評価値抽出部起動信号ｄ３２を受信することで起動する。評価値計算部１０５は最低評価値抽出部１０７へ、保持している組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を通知する。最低評価値抽出部１０７は、組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を受信すると、各評価値管理表Ｔ００４００の評価値フィールドＴ００４０３の中から最低値を持つものを抽出し、最低評価値管理表Ｔ００５００を作成する。最低評価値抽出部１０７は、最高評価値抽出部１０８の起動状況を確認し、最高評価値抽出部１０８が起動していない場合には最高評価値抽出部起動信号ｄ３３を最高評価値抽出部１０８に通知する。最低評価値抽出部１０７は、最高評価値抽出部１０８へ最低評価値管理表Ｔ００５００(ｄ１５)を通知する（ステップ２２１）。【００５９】
図１６は最低評価値管理表Ｔ００５００の構成例を示している。最低評価値管理表Ｔ００５００はシミュレートＩＤフィールドＴ００５０１をキーとする表で、該当するシミュレートＩＤの最低評価値を最低評価値フィールドＴ００５０２で管理するために使用される。【００６０】
最高評価値抽出部１０８は、最低評価値抽出部１０７より最高評価値起動信号ｄ３３を受信することによって起動する。最高評価値抽出部１０８は、最低評価値抽出部１０７より最低評価値管理表Ｔ００５００を取得すると、最低評価値フィールドＴ００５０２に保持されている評価値のうち、最高値となる評価値を抽出し、最高評価値管理表Ｔ０１１００を作成する。最高評価値抽出部１０８は、棄却判定部１０９Ａの起動状況を確認し、棄却判定部１０９Ａが起動していない場合には棄却判定部起動信号ｄ３４を棄却判定部１０９Ａに通知する。また、最高評価値抽出部１０８は、棄却判定部１０９Ａへ最高評価値管理表Ｔ０１１００（ｄ１６）を通知する（ステップ２２２）。【００６１】
図１７は最高評価値管理表Ｔ０１１００の構成例を示している。最高評価値管理表Ｔ０１１００はシミュレートＩＤフィールドＴ０１１０１をキーとする表で、該当するシミュレートＩＤの最高評価値を最高評価値フィールドＴ０１１０２で管理するために使用される。【００６２】
棄却判定部１０９Ａは、最高評価値抽出部１０８より棄却判定部起動信号ｄ３４を受信することによって起動する。棄却判定部１０９Ａは、起動後に、条件設定部１０６より合意サービス水準判定閾値ｄ１７を取得し、保持する。棄却判定部１０９Ａは、最高評価値抽出部１０８より最高評価値管理表Ｔ０１１００（ｄ１６）を取得すると、仮想棄却データ作成部１０１Ａより仮想棄却条件データ管理表Ｔ００７００（ｄ１８）を取得する。棄却判定部１０９Ａは、最高評価値フィールドＴ０１１０２に保持されている最高評価値を抽出し、合意サービス水準判定閾値ｄ１７との比較を行う（ステップ２２３）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７より大きい場合、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１と紐付く仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤ（Ｔ００６０４）に対応する実行中の合成ワークフローを棄却したほうが合意サービス水準を満たすと考えることができる。ただし、棄却個数が０でシミュレートを行っている場合もあるため、取得した仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に保持されている棄却個数を確認する（ステップ２２４）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７より大きく、かつ、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に保持されている棄却個数が０であった場合、棄却判定部１０９Ａは、実行中の合成ワークフロー群を棄却せずとも合意サービス水準を満たしていると判定し、一連の棄却判定処理を終了する（ステップ２２０）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７より大きく、かつ、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に保持されている棄却個数が０以外であった場合、棄却判定部１０９Ａは、実行中の合成ワークフロー群から棄却すれば合意サービス水準を満たすことができると判定し、棄却命令送信部１１１Ａへ棄却命令送信部起動信号ｄ３５と、最高評価値管理表Ｔ０１１００（ｄ１９）を通知する。【００６３】
棄却命令送信部１１１Ａは、棄却判定部１０９Ａより棄却命令送信部起動信号ｄ３５を受信することによって起動する。棄却命令送信部１１１Ａは最高評価値管理表Ｔ０１１００（ｄ１９）を取得すると、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１からシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ａに保持されている仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ２０）を、仮想棄却データ作成部１０１Ａより取得する。取得した仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し強制棄却命令を発行する（ステップ２２５）。【００６４】
最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７以下である場合、棄却判定部１０９Ａは処理継続判定部１１０Ａの起動状態を確認し、処理継続判定部１１０Ａが起動していない場合には処理継続判定部起動信号ｄ３６を処理継続判定部１１０Ａに通知する。また、棄却判定部１０９Ａは、処理継続判定部１１０Ａへ最高評価値管理表Ｔ０１１００（ｄ２１）を通知する。【００６５】
処理継続判定部１１０Ａは、棄却判定部１０９Ａより処理継続判定部起動信号ｄ３６を受信することによって起動する。処理継続判定部１１０Ａは、棄却判定部１０９Ａより最高評価値管理表Ｔ０１１００（ｄ２１）を取得した場合、仮想棄却データ作成部１０１Ａで保持している仮想棄却条件データ管理表Ｔ００７００（ｄ２２）を取得する。処理継続判定部１１０Ａは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得する。また、処理継続判定部１１０Ａは、仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー個数フィールドＴ００７０３より棄却対象合成ワークフロー個数を取得する（ステップ２２６）。処理継続判定部１１０Ａは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較する。すなわち、処理継続判定部１１０Ａは、棄却対象合成ワークフロー群の中からさらに棄却個数を増やして棄却できる組み合わせがあるかどうかを判定する（ステップ２２７）。処理継続判定部１１０Ａは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、その値が同じであった場合、棄却対象合成ワークフロー群の中からさらに棄却個数を増やして棄却できる組み合わせがないと判定し、一連の棄却判定処理を終了する（ステップ２２０）。処理継続判定部１１０Ａは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、棄却対象合成ワークフロー個数が棄却個数よりも大きい場合、さらに棄却個数を増やして棄却できる組み合わせがあると判定する。処理継続判定部１１０Ａは、取得した仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５より棄却対象合成ワークフローステップ数を取得し、合成ワークフローを棄却しない状態であるかの確認を行う（ステップ２２８）。処理継続判定部１１０Ａは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態である場合、棄却対象合成ワークフローステップ数を仮想棄却条件データ管理表Ｔ００７００に新規に設定する。処理継続判定部１１０Ａは、条件設定部１０６より合意サービス水準判定閾値ｄ２３を取得し、評価値計算部１０５より評価値管理表Ｔ００４００（ｄ２８）を取得し、仮想棄却データ作成部１０１Ａより仮想棄却データ管理表Ｔ００８００（ｄ２４）を取得する。この状態は棄却対象合成ワークフローがない場合であるので、組み合わせ数は１、すなわち評価値管理表Ｔ００４００は１個のみとなる。処理継続判定部１１０Ａは、取得した評価値管理表Ｔ００４００の評価値フィールドＴ００４０３と取得した合意サービス水準判定閾値ｄ２３を比較し、評価値フィールドＴ００４０３が合意サービス水準判定閾値ｄ２３未満となる合成ワークフローＩＤフィールドＴ００４０２を抽出する。抽出した合成ワークフローＩＤフィールドＴ００４０２と、取得した仮想棄却データ管理表Ｔ００８００を元に、仮想棄却データ管理表Ｔ００８００のステップ数フィールドＴ００８０３が最大となるステップ数を取得する。ここで取得した最大のステップ数が棄却対象合成ワークフローステップ数であり、仮想棄却データ作成部１０１Ａへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ２２９）。処理継続判定部１１０Ａは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態でない場合（すなわち棄却対象合成ワークフローステップ数が設定されている場合）、仮想棄却データ作成部１０１Ａへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ２３０）。【００６６】
仮想棄却データ作成部１０１Ａは、処理継続判定部１１０Ａより棄却対象合成ワークフローステップ数ｄ２５を取得した場合、仮想棄却条件データ管理表Ｔ００７００'を新規に作成する。すなわち、仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフローステップ数フィールドＴ００７０５'に棄却対象合成ワークフローステップ数ｄ２５を、仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフロー定義ＩＤフィールドＴ０００７０６'には棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６をそれぞれ設定する。棄却個数フィールドＴ００７０２'には、仮想棄却データ作成部１０１Ａで保持していた仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に１を加えたものが設定される。その後、仮想棄却データ作成部１０１Ａは、保持していた仮想棄却条件データ管理表Ｔ００７００を破棄し、新規に作成した仮想棄却条件データ管理表Ｔ００７００'を使用してステップ２０６へ進む（ステップ２３１）。【００６７】
以上説明したように、本第１の実施の形態では、過去の履歴から投入される合成ワークフローを予測し、現在の実行状況とあわせた情報を用いて仮想的に棄却した状況をシミュレートすることによって、合成ワークフロー群のより正確な応答時間を予測することが可能になる。また、合成ワークフローの進行度を示すステップ数を導入し、棄却対象とする合成ワークフローをあるステップ数以下の合成ワークフローに限定することによって、棄却判定処理を能率的に短時間で行うことが可能になる。【００６８】
［第２の実施の形態］
図４は、本発明の第２の実施の形態による合成ワークフローモニタリング装置の全体構成を示すブロック図である。【００６９】
本合成ワークフローモニタリング装置１Ｂはイベント格納ＤＢ１２０とステップ数監視部１３０とイベント情報送信部１４０と棄却判定機能部１００Ｂから構成される。イベント格納ＤＢ１２０は、各合成ワークフローに関するイベントデータを整理、関係付けて格納する。ステップ数監視部１３０は、イベント格納ＤＢ１２０に格納されているイベントデータから各合成ワークフローの進行度合い示すステップ数を計算、監視、保持する。イベント情報送信部１４０は、要求に応じてステップ数監視部１３０よりステップ数を用いて現在の合成ワークフロー実行状況を表現するデータを取得し、棄却判定機能部１００Ｂに送信する。棄却判定機能部１００Ｂは、イベント格納ＤＢ１２０、ステップ数監視部１３０、イベント情報送信部１４０より情報を取得して棄却判定を行う。【００７０】
ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視し、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージが観測された場合に合成ワークフローの処理が進んだと判定し、該当する合成ワークフローの進行度合いを示すステップ数を更新する。また、ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持しており、特に合成ワークフロー定義ＩＤを持つ合成ワークフローのステップ数が更新された場合、棄却判定機能部１００Ｂ内の仮想棄却データ作成部１０１Ｂを起動し、合成ワークフロー定義ＩＤを通知する。【００７１】
棄却判定機能部１００Ｂは、各合成ワークフローに関する履歴情報を取得し、統計計算や、合成ワークフロー投入予測データ作成を行うイベントデータ統計計算部１０４を含む。イベントデータ統計計算部１０４では、合成ワークフロー定義ＩＤで特定される過去の履歴を参照し、処理が完了した合成ワークフローの個数や、棄却された合成ワークフローの個数、過去の平均応答時間等を計算する。また、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測データとして作成する。合成ワークフロー投入予測データは、後述するシミュレータ用基礎データに用いられる。合成ワークフローを処理する各業務アプリケーションシステム群や各ワークフローシステム群の負荷は、リソースを共有している場合もあるために、同時に実行されている他の合成ワークフロー群に大きく影響されることから、投入予測をすることによって、より正確にシミュレートする意図がある。合成ワークフロー投入予測データには、いつ、どの合成ワークフロー定義ＩＤに属する合成ワークフローが投入されるかが記載されていればよい。【００７２】
棄却判定機能部１００Ｂは、現在の合成ワークフロー実行状況を示す実行状況データを取得し、また合成ワークフロー投入予測データを取得することで、現在および将来の各合成ワークフローの状態を表現するシミュレータ用基礎データを作成するシミュレート用データ作成部１０３を含む。実行状況データには、合成ワークフローＩＤで一意に特定される実行中の合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレータ用基礎データには、合成ワークフローＩＤで一意に特定される実施中および投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているかをステップ数で表現されていればよい。【００７３】
棄却判定機能部１００Ｂはさらに、棄却判定を行う合成ワークフロー群を特定する合成ワークフロー定義ＩＤを取得し、さらにシミュレータ用基礎データを取得することで、シミュレータ用基礎データのうちの棄却個数分の合成ワークフローを仮想的に棄却したシミュレータ用データを作成する仮想棄却データ作成部１０１Ｂを含む。仮想棄却データ作成部１０１Ｂは、仮想的に棄却するにあたり、実施中の合成ワークフローのうち、ステップ数で示される進行度が一定の基準以下のものを抽出し、そのうちから棄却個数分の合成ワークフローを棄却する、すべての組み合わせについて考慮する。仮想棄却データ作成部１０１Ｂは、棄却対象となる合成ワークフローを、実行中の全合成ワークフローとするのではなく、ステップ数で示される進行度が一定の基準以下のものに限定するため、より能率的に短時間で棄却判定を行うことができる。そのため、仮想棄却データ作成部１０１Ｂは、棄却対象を絞り込むためのステップ数基準値、棄却対象となる合成ワークフローの個数、仮想的に棄却する個数、棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を選ぶその組み合わせの数を記憶する。また、仮想棄却データ作成部１０１Ｂでは組み合わせ数分のシミュレータ用データが作成されるため、仮想棄却データ作成部１０１Ｂは、どのシミュレータ用データはどの合成ワークフローＩＤを持つ合成ワークフローを仮想棄却したかを紐付ける管理テーブルも同様に記憶している。合成ワークフローシミュレータ用データには、合成ワークフローＩＤで一意に特定される実行中あるいは投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されていればよい。【００７４】
仮想棄却データ作成部１０１Ｂは、最初に、現在実行中の合成ワークフローがサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすかどうかを判定するため、起動時には仮想に棄却する個数を０、棄却対象を絞り込むためのステップ数基準値には実行中の合成ワークフローすべてを棄却対象としないことを意味する符号を設定して、棄却判定処理を行う。【００７５】
仮想棄却データ作成部１０１Ｂは、後述する処理継続判定部１１０Ｂより棄却対象を絞り込むためのステップ数基準値を取得した場合、保持している棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を１増やした状態で再度棄却判定処理を行う。すなわち、前回の仮想的に棄却する個数ではサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができないため、仮想棄却データ作成部１０１Ｂは、仮想的に棄却する個数を１増やした状態でサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができるかどうかを判定する。【００７６】
仮想棄却データ作成部１０１Ｂは、シミュレータ用基礎データを記憶しており、仮想的に棄却する個数を１増やした状態で再度棄却判定処理する場合にシミュレータ用基礎データを再度取得し、記憶していたシミュレータ用基礎データのステップ数に差異がないかを判定する。ステップ数に差異がある場合、仮想棄却データ作成部１０１Ｂは、実行中の合成ワークフロー群の進行度合いが変化していることを示すため、現状の状況を示す再度取得したシミュレータ用基礎データを用いて、仮想的に棄却する個数を０に設定し直し、棄却判定処理を継続する。【００７７】
棄却判定機能部１００Ｂはさらに、合成ワークフローＩＤで一意に特定される合成ワークフローが、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されたデータが与えられれば、各合成ワークフローの応答時間を予測するシミュレーション処理部１１２を含む。シミュレーション処理部１１２は、合成ワークフローＩＤで一意に特定される合成ワークフローと、その合成ワークフローが属する合成ワークフロー定義ＩＤ、およびその合成ワークフローの応答時間をシミュレーション結果一覧にして出力する。【００７８】
棄却判定機能部１００Ｂはさらに、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づいた、棄却判定条件を保持する条件設定部１０６を含む。条件設定部１０６は、棄却判定を行うための制限時間を保持している。また、条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づき作成される評価値計算関数を保持している。評価値計算関数は、合意サービス水準を判定するための、合成ワークフローの処理時間や平均処理時間、棄却率などを変数に持ち、評価値計算関数から求まる評価値が高ければ高いほど合意サービス水準を満たすように定義される。また、評価値計算関数は必ずしも数学的に定義される必要はなく、プログラム形式で記述しても構わない。また、条件設定部１０６は、合意サービス水準判定閾値を保持しており、評価値計算関数から求まる評価値が合意サービス水準判定閾値を超えていれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満足すると判定する。【００７９】
棄却判定機能部１００Ｂはさらに、判定開始通知と棄却判定を行うための制限時間を取得して、棄却判定終了時刻を保持する時刻判定部１０２Ｂを含む。時刻判定部１０２Ｂは、制限時間判定依頼を取得した場合、現在時刻を取得し、該現在時刻を棄却判定終了時刻と比較することで、制限時間内に棄却判定が行えたかどうかの判定を行う。【００８０】
棄却判定機能部１００Ｂはさらに、シミュレーション結果一覧から、棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローＩＤを抽出し、その応答時間、および平均応答時間、棄却率を元に評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算部１０５を含む。評価値計算部１０５は、シミュレートの組み合わせ数を保持しており、組み合わせ数分の各シミュレーション結果に対して評価値一覧表を作成した後、時刻判定部１０２Ｂへ制限時間判定依頼を通知し、定められた制限時間内で処理が完了しているかを確認する。棄却判定機能部１００Ｂは、定められた制限時間内で処理が完了している場合処理を継続するが、定められた制限時間内で処理が完了できなかった場合、後述する評価値記録部１１３へ対し、後述する最高評価値が保持されているかの確認を行う。【００８１】
棄却判定機能部１００Ｂはさらに、組み合わせ数の評価値一覧表を元に、各評価値一覧表から最低値を抽出し、組み合わせ数分の最低値を一覧にした最低値一覧表を作成する最低評価値抽出部１０７を含む。【００８２】
棄却判定機能部１００Ｂはさらに、最低値一覧表を元に、組み合わせ数分の最低値のなかから最高値を抽出する最高評価値抽出部１０８を含む。最高値は、ある棄却対象を絞り込むためのステップ数基準値以下の実行中合成ワークフローのなかから、組み合わせ個数分の合成ワークフローを仮想的に棄却した場合に、棄却しなかった合成ワークフローの評価値は、少なくとも最高値にすることができるということを意味する。【００８３】
棄却判定機能部１００Ｂはさらに、最高評価値と合意サービス水準判定閾値を取得し、最高評価値が合意サービス水準判定閾値を満たしているか判定を行う棄却判定部１０９Ｂを含む。棄却判定部１０９Ｂは合成ワークフローを仮想的に棄却する個数を保持しており、仮想棄却個数が０の場合に最高評価値が合意サービス水準判定閾値を満たしていれば、実行中の合成ワークフローを棄却せずともサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準は満たされていると判定し、一連の棄却判定処理を終了する。また、棄却判定部１０９Ｂは、仮想棄却個数が０以外の場合に最高評価値が合意サービス水準判定閾値を満たしていれば、実行中の合成ワークフローのうち仮想棄却個数分の合成ワークフローを棄却すれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準は満たされると判定し、後述する評価値記録部１１３へ保持している最高評価値を通知する。また、棄却判定部１０９Ｂは、最高評価値が合意サービス水準判定閾値を満たしていない場合は、実行中の合成ワークフローのうち仮想棄却個数分の合成ワークフローを棄却したとしても、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことはできないと判定する。【００８４】
棄却判定機能部１００Ｂはさらに、実行中の合成ワークフローのうち仮想棄却個数分の合成ワークフローを棄却したとしても、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことはできないと判定された場合に、棄却対象となる合成ワークフローの個数と、仮想的に棄却する個数を取得し、仮想的に棄却する個数をさらに増やした状態で棄却判定処理が継続できるか判定する処理継続判定部１１０Ｂを含む。仮想的に棄却する個数を増やすことができないと判定された場合、処理継続判定部１１０Ｂは、実行中の合成ワークフロー群をどのように棄却してもサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことはできないと判定し、一連の棄却判定処理を終了する。処理継続判定部１１０Ｂは、仮想的に棄却する個数を増やすことができると判定した場合、棄却対象を絞り込むためのステップ数基準値を取得する。ステップ数基準値に、実行中の合成ワークフローすべてを棄却対象としないことを意味する符号が設定されている場合、新規にステップ数基準値を設定するため、処理継続判定部１１０Ｂは、評価値一覧表と合意サービス水準判定閾値を取得し、実行中の合成ワークフロー群のうちで合意サービス水準を満たせない最もステップ数が大きい合成ワークフロー、すなわち合意サービス水準を満たせない最も処理進行度合いが進んでいる合成ワークフローを抽出し、その合成ワークフローのステップ数をステップ数基準値とする。また、取得したステップ数基準値にすでに値が保持されている場合、処理継続判定部１１０Ｂは、その値をステップ数基準値とする。処理継続判定部１１０Ｂは、仮想棄却データ作成部１０１Ｂへステップ数基準値を通知する。【００８５】
棄却判定機能部１００Ｂはさらに、最高評価値を取得した場合に、該当する棄却対象合成ワークフローに対して強制棄却を実行する命令を送信する棄却命令送信部１１１Ｂを含む。【００８６】
棄却判定機能部１００Ｂはさらに、最高評価値を取得し、今まで実施された棄却判定において最もよい最高評価値を保持、記録する評価値記録部１１３を含む。評価値記録部１１３は、制限時間に達した場合に、保持している最高評価値を確認し、最高評価値を保持していない場合は一連の処理を終了し、保持している場合は保持している最高評価値を通知する。【００８７】
次に、本発明の第２の実施の形態の動作について、図４および図５、図６のフローチャートを用いて詳細に説明する。【００８８】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持し、イベント格納ＤＢ１２０を監視している。ステップ数監視部１３０は、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージに関するイベントデータｄ３９、ｄ４０を検知した場合、保持している実行状態管理表Ｔ００１００を更新する。特に合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータを検知した場合、ステップ数監視部１３０は、棄却判定機能部１００Ｂに棄却判定処理を開始させる（ステップ３００）。【００８９】
ステップ数監視部１３０は、合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータｄ３９、ｄ４０を検知した場合、仮想棄却データ作成部１０１Ｂが起動中であるかを判定する（ステップ３０１）。仮想棄却データ作成部１０１Ｂが起動されている場合は、すでに棄却判定処理を実行中のため新規に棄却判定は行わない（ステップ３０２）。仮想棄却データ作成部１０１Ｂが起動されていない場合、ステップ数監視部１３０は仮想棄却データ作成部１０１Ｂへ仮想棄却データ作成部起動信号ｄ０１を通知する。ステップ数監視部１３０は仮想棄却データ作成部１０１Ｂへ、棄却判定を行う合成ワークフロー群を特定するための合成ワークフロー定義ＩＤｄ３７を通知する（ステップ３０３）。【００９０】
仮想棄却データ作成部１０１Ｂは、仮想棄却データ作成部起動信号ｄ０１を受信することによって起動し、起動の際に仮想棄却条件データ管理表Ｔ００７００を作成する。最初に棄却無しの状況をシミュレートするため、仮想棄却条件データ管理表Ｔ０７００の棄却個数フィールドＴ００７０２には０を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には−１をそれぞれ設定する。棄却対象合成ワークフローステップ数は、実行中の合成ワークフローを棄却しないことを示せれば、−１である必要はない。ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する。なお、この段階では棄却対象合成ワークフロー個数フィールドＴ００７０３および組み合わせ数フィールドＴ００７０４には値が設定されない。仮想棄却データ作成部１０１Ｂはシミュレート用データ作成部１０３へシミュレート用データ作成部起動信号ｄ０３を通知する。仮想棄却データ作成部１０１Ｂは時刻判定部１０２Ｂへ時刻判定部起動信号ｄ０２を通知し、棄却判定処理終了時刻を設定するために、時刻判定部１０２Ｂへ判定開始時刻通知ｄ２６を通知する。時刻判定部１０２Ｂは、評価値記録部１１３へ評価値記録部起動信号ｄ４３を通知する。評価値記録部１１３は、評価値記録部起動信号ｄ４３を受信することで起動する（ステップ３０４）。【００９１】
時刻判定部１０２Ｂは、時刻判定部起動信号ｄ０２を受信することで起動する。時刻判定部１０２Ｂは、条件設定部１０６より制限時間ｄ２７を取得し、判定開始時刻通知ｄ２６を受信した時刻を元に判定終了時刻を計算し、保持する（ステップ３０５）。【００９２】
条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準に基づき、棄却判定を行うための条件についての情報を保持する。条件設定部１０６は、合意サービス水準情報に基づいて設定される評価値計算関数を定義する。評価値計算関数は、合意サービス水準で定められた合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を変数として定義される。評価値計算関数は任意に定義することができるが、評価値関数から得られる数値が大きいほど合意サービス水準を満たすように定義される。また、評価値計算値関数は数学的に記述される必要はなく、プログラムで記述しても構わない。条件設定部１０６は、合意サービス水準を判定するための合意サービス水準判定閾値を定義する。合意サービス水準判定閾値は評価値計算関数で決定され、シミュレーションで求まる合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を用いて評価値計算関数に代入して得られる数値が合意サービス水準判定閾値を超えている場合にサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たしていると判定するための指標値である。【００９３】
シミュレート用データ作成部１０３は、シミュレート用データ作成部起動信号ｄ０３を受信することで起動する。シミュレート用データ作成部１０３はイベント情報送信部１４０へ実行状態問い合わせ信号ｄ４２を通知する。イベント情報送信部１４０は、ステップ数監視部１３０より実行状態管理表Ｔ００１００（ｄ４１）を取得し、シミュレート用データ作成部１０３へ実行状態管理表Ｔ００１００（ｄ０４）を通知する。シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４へイベントデータ統計計算部起動信号ｄ０５を通知する（ステップ３０６）。【００９４】
イベントデータ統計計算部１０４は、イベントデータ統計計算部起動信号ｄ０５を受信することで起動する。イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０よりイベント情報ｄ０６を取得し、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測管理表Ｔ００２００として作成する。イベントデータ統計計算部１０４は、シミュレート用データ作成部１０３へ合成ワークフロー投入予測管理表Ｔ００２００（ｄ０７）を通知する（ステップ３０７）。【００９５】
シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４より取得した合成ワークフロー投入予測管理表Ｔ００２００と、実行状態管理表Ｔ００１００を元に、シミュレート用基礎データ管理表Ｔ００９００を作成する。シミュレート用データ作成部１０３は、仮想棄却データ作成部１０１Ｂへシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）を通知する（ステップ３０８）。【００９６】
仮想棄却データ作成部１０１Ｂは、前回実施したシミュレート用基礎データ管理表Ｔ００９００'が保持されているかの確認を行う（ステップ３０９）。シミュレート用基礎データ管理表Ｔ００９００'が仮想棄却データ作成部１０１Ｂに保持されている場合、仮想棄却データ作成部１０１Ｂは、棄却判定中に実行中の合成ワークフロー群の状況に変化があったかどうかを判定するため、新規に受信したシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）の合成ワークフローＩＤフィールドＴ１００９０１と前回実施したシミュレート用基礎データ管理表Ｔ００９００'の合成ワークフローＩＤフィールドＴ００９０１'の比較を行う。同様に、仮想棄却データ作成部１０１Ｂは、新規に受信したシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と前回実施したシミュレート用基礎データ管理表Ｔ００９００'のステップ数フィールドＴ００９０２'の比較を行う（ステップ３１０）。比較を行った結果、差異がある場合は、棄却判定中に実行中の合成ワークフロー群の処理進行度合いが変化したことを意味するため、仮想棄却データ作成部１０１Ｂは、状況変化後の状態で再度棄却無しの状態から棄却判定を行う。仮想棄却条件データ管理表Ｔ００７００を更新し、最初に棄却無しの状況をシミュレートするため、仮想棄却データ作成部１０１Ｂは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２には０を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には−１をそれぞれ設定する。仮想棄却データ作成部１０１Ｂは、すべての合成ワークフローを棄却しないことを示せれば、−１である必要はない。仮想棄却データ作成部１０１Ｂは、ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する（ステップ３１１）。比較を行った結果、差異がある場合は、仮想棄却データ作成部１０１Ｂは、評価値記録部１１３へ棄却判定開始通知ｄ４４を通知する。評価値記録部１１３は、棄却判定開始通知ｄ４４を受信した際、保持している最高評価値の情報を全て削除する（ステップ３１２）。【００９７】
仮想棄却データ作成部１０１Ｂは、シミュレート用基礎データ管理表Ｔ００９００を保持する。仮想棄却データ作成部１０１Ｂは、実行中の合成ワークフロー群についてシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５に保持されている棄却対象合成ワークフローステップ数を比較し、ステップ数フィールドＴ０００９０２の数値が棄却対象合成ワークフローステップ数以下となり、かつ合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する合成ワークフローＩＤフィールドＴ００９０１の個数を計算し、その個数を棄却対象合成ワークフロー個数フィールドＴ００７０３に保持する。この個数が、合意サービス水準判定を行う合成ワークフロー定義に属する、実行中の合成ワークフロー群のうち棄却判定対象となる合成ワークフローの個数であり、現在実行中の合成ワークフロー群の中から棄却対象合成ワークフローステップ数以下のステップ数を持つ実行中の合成ワークフロー群を抽出することで、棄却判定対象とする合成ワークフローの個数を減らしている。これによって、棄却判定処理を効率的に短時間で実施することが可能となる。次に、仮想棄却データ作成部１０１Ｂは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得し、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数を計算して仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持する。仮想棄却データ作成部１０１Ｂは、仮想棄却条件データ管理表Ｔ００７００を作成後、評価値計算部１０５の起動状況を確認し、評価値計算部１０５が起動していない場合に評価値計算部起動信号ｄ３０を評価値計算部１０５に通知する。仮想棄却データ作成部１０１Ｂは評価値計算部１０５へ仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を通知する（ステップ３１３）。【００９８】
評価値計算部１０５は、仮想棄却データ作成部１０１Ｂより評価値計算部起動信号ｄ３０を受信することによって起動する。評価値計算部１０５は、仮想棄却データ作成部１０１Ｂより通知された仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を保持する。【００９９】
仮想棄却データ作成部１０１Ｂは、ステップ３１３の処理の完了後に仮想棄却合成ワークフローデータ管理表Ｔ００６００と、シミュレーション処理部１１２の入力データとして仮想棄却データ管理表Ｔ００８００を作成し、保持する。すなわち、仮想棄却データ作成部１０１Ｂは、シミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２が棄却対象合成ワークフローステップ数フィールドＴ００７０５以下となり、かつシミュレート用基礎データ管理表Ｔ００９００の合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する実行中の合成ワークフローから、棄却個数フィールドＴ００７０２に保持されている棄却個数分の実行中の合成ワークフローを仮想的に棄却したデータを、それぞれ仮想棄却データ管理表Ｔ００８００として作成する。仮想的に棄却する場合、ステップ数フィールドＴ００９０２には棄却を示す符号が設定される。このときに、仮想棄却データ作成部１０１Ｂは、棄却対象とした棄却個数フィールドＴ００７０２に保持されている棄却個数分の合成ワークフローＩＤフィールドＴ００９０１を、仮想棄却合成ワークフローデータ管理表Ｔ００６０２の棄却合成ワークフローＩＤフィールドＴ００６０４に保持する。仮想棄却データ部１０１Ｂは、最終的に組み合わせ数フィールドＴ００７０４に保持されている個数分の、仮想棄却合成ワークフローデータ管理表Ｔ００６００と仮想棄却データ管理表Ｔ００８００を作成する。仮想棄却データ作成部１０１Ｂは、シミュレーション処理部１１２へ作成した組み合わせ数分の仮想棄却データ管理表Ｔ００８００（ｄ０９）を通知する（ステップ３１４）。【０１００】
シミュレーション処理部１１２は、仮想棄却データ管理表Ｔ００８００（ｄ０９）に従いシミュレーション処理を実施し、各仮想棄却データ管理表Ｔ００８００に対応するシミュレーション結果管理表Ｔ００３００を作成し、評価値計算部１０５へシミュレーション結果管理表Ｔ００３００（ｄ１０）を通知する（ステップ３１５）。【０１０１】
評価値計算部１０５は、シミュレーション処理部１１２よりシミュレーション結果管理表Ｔ００３００（ｄ１０）を取得すると、保持していた仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定されている棄却対象合成ワークフロー定義ＩＤｄ３８をイベントデータ統計計算部１０４へ通知する。イベントデータ統計計算部１０４は、評価値計算部１０５より取得した棄却対象合成ワークフロー定義ＩＤｄ３８とイベント情報ｄ０６を元に、棄却対象合成ワークフロー定義ＩＤで特定されるサービスについての統計情報データ管理表Ｔ０１００００を作成し、評価値計算部１０５へ統計情報データ管理表Ｔ０１００００（ｄ２９）を通知する（ステップ３１６）。【０１０２】
評価値計算部１０５は、統計情報データ管理表Ｔ０１００００（ｄ２９）を取得後、条件設定部１０６で定義される評価値計算関数ｄ１１を取得する。評価値計算部１０５は、シミュレーション結果管理表Ｔ００３００のうち、合成ワークフロー定義ＩＤフィールドＴ００３０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する要素の合成ワークフロー予測応答時間フィールドＴ００３０３、および統計情報データ管理表Ｔ０１０００を元に、評価値計算関数に従い評価値の計算を行い、評価値管理表Ｔ００４００を作成する（ステップ３１７）。【０１０３】
評価値計算部１０５は、評価値計算部１０５で保持している仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持されている組み合わせ個数分の評価値管理表Ｔ００４００が作成されるまで待機する。評価値計算部１０５は、すべての組み合わせ個数分の評価値管理表Ｔ００４００を作成した場合、時刻判定部１０２Ｂへ制限時間判定依頼ｄ１２を送信する（ステップ３１８）。【０１０４】
時刻判定部１０２Ｂは、制限時間判定依頼ｄ１２を受信した時刻と、保持している判定終了時刻の比較を行う（ステップ３１９）。時刻判定部１０２Ｂは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ｂが保持している判定終了時刻を経過している場合、評価値記録部１１３へ棄却判定終了通知ｄ５０を通知する。評価値記録部１１３は、棄却判定終了通知ｄ５０を受信すると、最高評価値管理表Ｔ０１１００が保持されているかの確認を行う（ステップ３２０）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持していない場合、実行中の合成ワークフロー群の合意サービス水準を改善する有効な棄却パターンがないと判定し、一連の処理を終了する（ステップ３２１）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持している場合、棄却命令送信部１１１Ｂへ棄却命令送信部起動信号ｄ４７を通知し、最高評価値管理表Ｔ０１１００（ｄ４８）を通知する。棄却命令送信部１１１Ｂは、評価値記録部１１３より棄却命令送信部起動信号ｄ４７を受信することによって起動する。棄却命令送信部１１１Ｂは最高評価値管理表Ｔ０１１００を取得すると、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１からシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ｂに保持されている仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ２０）を、仮想棄却データ作成部１０１Ｂより取得する。取得した仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し強制棄却命令を発行する（ステップ３２２）。【０１０５】
時刻判定部１０２Ｂは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ｂが保持している判定終了時刻を経過していない場合、評価値計算部１０５へ制御時間判定応答ｄ１３を通知する。評価値計算部１０５は、制御時間判定応答ｄ１３を受信した場合、最低評価値抽出部１０７の起動状況を確認し、最低評価値抽出部１０７が起動していない場合には最低評価値抽出部起動信号ｄ３２を最低評価値抽出部１０７に通知する。最低評価値抽出部１０７は、評価値計算部１０５より最低評価値抽出部起動信号ｄ３２を受信することで起動する。評価値計算部１０５は最低評価値抽出部１０７へ、保持している組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を通知する。最低評価値抽出部１０７は、組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を受信すると、各評価値管理表Ｔ００４００の評価値フィールドＴ００４０３の中から最低値を持つものを抽出し、最低評価値管理表Ｔ００５００を作成する。最低評価値抽出部１０７は、最高評価値抽出部１０８の起動状況を確認し、最高評価値抽出部１０８が起動していない場合には最高評価値抽出部起動信号ｄ３３を最高評価値抽出部１０８に通知する。最低評価値抽出部１０７は、最高評価値抽出部１０８へ最低評価値管理表Ｔ００５００（ｄ１５）を通知する（ステップ３２３）。【０１０６】
最高評価値抽出部１０８は、最低評価値抽出部１０７より最高評価値起動信号ｄ３３を受信することによって起動する。最高評価値抽出部１０８は、最低評価値抽出部１０７より最低評価値管理表Ｔ００５００（ｄ１５）を取得すると、最低評価値フィールドＴ００５０２に保持されている評価値のうち、最高値となる評価値を抽出し、最高評価値管理表Ｔ０１１００を作成する。最高評価値抽出部１０８は、棄却判定部１０９Ｂの起動状況を確認し、棄却判定部１０９Ｂが起動していない場合には棄却判定部起動信号ｄ３４を棄却判定部１０９Ｂに通知する。最高評価値抽出部１０８は、棄却判定部１０９Ｂへ最高評価値管理表Ｔ０１１００（ｄ１６）を通知する（ステップ３２４）。【０１０７】
棄却判定部１０９Ｂは、最高評価値抽出部１０８より棄却判定部起動信号ｄ３４を受信することによって起動する。棄却判定部１０９Ｂは、起動後に、条件設定部１０６より合意サービス水準判定閾値ｄ１７を取得し、保持する。棄却判定部１０９Ｂは、最高評価値抽出部１０８より最高評価値管理表Ｔ０１１００（ｄ１６）を取得すると、仮想棄却データ作成部１０１Ｂより仮想棄却条件データ管理表Ｔ００７００（ｄ１８）を取得する。棄却判定部１０９Ｂは、最高評価値フィールドＴ０１１０２に保持されている最高評価値を抽出し、合意サービス水準判定閾値ｄ１７との比較を行う（ステップ３２５）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７よりも大きい場合、棄却判定部１０９Ｂは、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１と紐付く仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤＴ００６０４に対応する実行中の合成ワークフローを棄却したほうが合意サービス水準を満たすと考えることができる。ただし、棄却個数が０でシミュレートを行っているかを判定するため、棄却判定部１０９Ｂは、取得した仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に保持されている棄却個数を確認する（ステップ３２６）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７よりも大きく、かつ仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に保持されている棄却個数が０であった場合は、実行中の合成ワークフロー群を棄却せずとも合意サービス水準を満たしていると判定し、一連の棄却判定処理を終了する（ステップ３２７）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７よりも大きく、かつ仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に保持されている棄却個数が０以外であった場合、棄却判定部１０９Ｂは、評価値記録部１１３へ最高評価値管理表Ｔ０１１００（ｄ４６）を通知する。評価値記録部１１３は、棄却判定部１０９Ｂより最高評価値管理表Ｔ０１１００（ｄ４６）を取得し、評価値記録部１１３が最高評価値管理表Ｔ０１１００を保持していない場合は最高評価値管理表Ｔ０１１００を保持し、評価値記録部１１３が最高評価値管理表Ｔ０１１００を保持している場合は、最高評価値管理表Ｔ０１１００の最高評価値フィールドＴ０１１０２に保持されている値の比較を行い、値の大きい方の最高評価値管理表を保持する。棄却判定部１０９Ｂは処理継続判定部１１０Ｂの起動状態を確認し、処理継続判定部１１０Ｂが起動していない場合には処理継続判定部起動信号ｄ３６を通知する。棄却判定部１０９Ｂは、処理継続判定部１１０Ｂへ最高評価値管理表Ｔ０１１００（ｄ２１）を通知する（ステップ３２８）。最高評価値フィールドＴ０１１０２より抽出した最高評価値が合意サービス水準判定閾値ｄ１７以下である場合、棄却判定部１０９Ｂは処理継続判定部１１０Ｂの起動状態を確認し、処理継続判定部１１０Ｂが起動していない場合には処理継続判定部起動信号ｄ３６を棄却判定部１０９Ｂに通知する。棄却判定部１０９Ｂは、処理継続判定部１１０Ｂへ最高評価値管理表Ｔ０１１００（ｄ２１）を通知する。【０１０８】
処理継続判定部１１０Ｂは、棄却判定部１０９Ｂより処理継続判定部起動信号ｄ３６を受信することによって起動する。処理継続判定部１１０Ｂは、棄却判定部１０９Ｂより最高評価値管理表Ｔ０１１００（ｄ２１）を取得した場合、仮想棄却データ作成部１０１Ｂで保持している仮想棄却条件データ管理表Ｔ００７００（ｄ２２）を取得する。処理継続判定部１１０Ｂは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得する。処理継続判定部１１０Ｂは、仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー個数フィールドＴ００７０３より棄却対象合成ワークフロー個数を取得する（ステップ３２９）。【０１０９】
処理継続判定部１１０Ｂは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較する。すなわち、処理継続判定部１１０Ｂは、棄却対象合成ワークフロー群の中からさらに棄却個数を増やして棄却できる組み合わせがあるかどうかを判定する（ステップ３３０）。処理継続判定部１１０Ｂは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、その値が同じであった場合、棄却対象合成ワークフローの中からさらに棄却個数を増やして棄却できる組み合わせがないと判定し、評価値記録部１１３へ棄却判定終了通知ｄ４９を通知する。評価値記録部１１３は、棄却判定終了通知ｄ４９を受信すると、最高評価値管理表Ｔ０１１００が保持されているかの確認を行う（ステップ３２０）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持していない場合、実行中の合成ワークフロー群の合意サービス水準を改善する有効な棄却パターンがないと判定し、一連の処理を終了する（ステップ３２１）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持している場合、棄却命令送信部１１１Ｂへ棄却命令送信部起動信号ｄ４７を通知し、最高評価値管理表Ｔ０１１００（ｄ４８）を通知する。棄却命令送信部１１１Ｂは、評価値記録部１１３より棄却命令送信部起動信号ｄ４７を受信することによって起動する。棄却命令送信部１１１Ｂは最高評価値管理表Ｔ０１１００（ｄ４８）を取得すると、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１からシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ｂに保持されている仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ２０）を仮想棄却データ作成部１０１Ｂより取得する。取得した仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し、強制棄却命令を発行する（ステップ３２２）。【０１１０】
処理継続判定部１１０Ｂは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、棄却対象合成ワークフロー個数が棄却個数よりも大きい場合、さらに棄却個数を増やして棄却できる組み合わせがあると判定する。処理継続判定部１１０Ｂは、取得した仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５より棄却対象合成ワークフローステップ数を取得し、合成ワークフローを棄却しない状態であるかの確認を行う（ステップ３３１）。処理継続判定部１１０Ｂは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態である場合、棄却対象合成ワークフローステップ数を仮想棄却条件データ管理表Ｔ００７００に新規に設定する。処理継続判定部１１０Ｂは、条件設定部１０６より合意サービス水準判定閾値ｄ２３を取得し、評価値計算部１０５より評価値管理表Ｔ００４００（ｄ２８）を取得し、仮想棄却データ作成部１０１Ｂより仮想棄却データ管理表Ｔ００８００（ｄ２４）を取得する。この状態は棄却対象合成ワークフローがない場合であるので、組み合わせ数は１、すなわち評価値管理表Ｔ００４００は１個のみとなる。処理継続判定部１１０Ｂは、取得した評価値管理表Ｔ００４００の評価値フィールドＴ００４０３と取得した合意サービス水準判定閾値ｄ２３を比較し、評価値フィールドＴ００４０３が合意サービス水準判定閾値ｄ２３未満となる合成ワークフローＩＤフィールドＴ００４０２を抽出する。抽出した合成ワークフローＩＤフィールドＴ００４０２と、取得した仮想棄却データ管理表Ｔ００８００を元に、仮想棄却データ管理表Ｔ００８００のステップ数フィールドＴ００８０３が最大となるステップ数を取得する。ここで取得した最大のステップ数が棄却対象合成ワークフローステップ数であり、仮想棄却データ作成部１０１Ｂへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ３３２）。【０１１１】
処理継続判定部１１０Ｂは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態でない場合（すなわち棄却対象合成ワークフローステップ数が設定されている場合）、仮想棄却データ作成部１０１Ｂへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ３３３）。仮想棄却データ作成部１０１Ｂは、処理継続判定部１１０Ｂより棄却対象合成ワークフローステップ数ｄ２５を取得した場合、仮想棄却条件データ管理表Ｔ００７００'を新規に作成する。仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフローステップ数フィールドＴ００７０５'に棄却対象合成ワークフローステップ数ｄ２５を、仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６'には棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６をそれぞれ設定する。棄却個数フィールドＴ００７０２'には、仮想棄却データ作成部１０１Ｂで保持していた仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に１を加えたものを設定する。その後、保持していた仮想棄却条件データ管理表Ｔ００７００を破棄し、新規に作成した仮想棄却条件データ管理表Ｔ００７００'を使用してステップ３０６へ進む（ステップ３３４）。【０１１２】
第１の実施の形態では制限時間内にて合意サービス水準を満たす棄却パターンが発見された時点で、その棄却パターンに相当する実施中の各合成ワークフローを棄却する。これに対し、本第２の実施の形態においては、評価値記録部１１３にて最高評価値管理表Ｔ０１１００を保持、更新し、制限時間に達するまで棄却判定処理を行うことによって最も有効的な棄却パターンを発見することが可能になる。すなわち、第１の実施の形態で求まる棄却パターンと比較して、第２の実施の形態で求まる棄却パターンが、より合意サービス水準を満たすことが可能になる。
［第３の実施の形態］
図６８は、本発明の第３の実施の形態による合成ワークフローモニタリング装置の全体構成を示すブロック図である。【０１１３】
本合成ワークフローモニタリング装置１Ｃはイベント格納ＤＢ１２０とステップ数監視部１３０とイベント情報送信部１４０と棄却判定機能部１００Ｃから構成される。イベント格納ＤＢ１２０は、各合成ワークフローに関するイベントデータを整理、関係付けて格納する。ステップ数監視部１３０は、イベント格納ＤＢ１２０に格納されているイベントデータから各合成ワークフローの進行度合い示すステップ数を計算、監視、保持する。イベント情報送信部１４０は、要求に応じてステップ数監視部１３０よりステップ数を用いて現在の合成ワークフロー実行状況を表現するデータを取得し、棄却判定機能部１００Ｃに送信する。棄却判定機能部１００Ｃは、イベント格納ＤＢ１２０、ステップ数監視部１３０、イベント情報送信部１４０より情報を取得して棄却判定を行う。【０１１４】
ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視し、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージが観測された場合に合成ワークフローの処理が進んだと判定し、該当する合成ワークフローの進行度合いを示すステップ数を更新する。また、ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持しており、特に合成ワークフロー定義ＩＤを持つ合成ワークフローのステップ数が更新された場合、棄却判定機能部１００Ｃ内の仮想棄却データ作成部１０１Ｃを起動し、合成ワークフロー定義ＩＤを通知する。【０１１５】
棄却判定機能部１００Ｃは、各合成ワークフローに関する履歴情報を取得し、統計計算や、合成ワークフロー投入予測データ作成を行うイベントデータ統計計算部１０４を含む。イベントデータ統計計算部１０４では、合成ワークフロー定義ＩＤで特定される過去の履歴を参照し、処理が完了した合成ワークフローの個数や、棄却された合成ワークフローの個数、過去の平均応答時間等を計算する。また、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測データとして作成する。合成ワークフロー投入予測データは、後述するシミュレータ用基礎データに用いられる。合成ワークフローを処理する各業務アプリケーションシステム群や各ワークフローシステム群の負荷は、リソースを共有している場合もあるために、同時に実行されている他の合成ワークフロー群に大きく影響されることから、投入予測をすることによって、より正確にシミュレートする意図がある。合成ワークフロー投入予測データには、いつ、どの合成ワークフロー定義ＩＤに属する合成ワークフローが投入されるかが記載されていればよい。【０１１６】
棄却判定機能部１００Ｃは、現在の合成ワークフロー実行状況を示す実行状況データを取得し、また合成ワークフロー投入予測データを取得することで、現在および将来の各合成ワークフローの状態を表現するシミュレータ用基礎データを作成するシミュレート用データ作成部１０３を含む。実行状況データには、合成ワークフローＩＤで一意に特定される実行中の合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレータ用基礎データには、合成ワークフローＩＤで一意に特定される実施中および投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているかをステップ数で表現されていればよい。【０１１７】
棄却判定機能部１００Ｃはさらに、棄却判定を行う合成ワークフロー群を特定する合成ワークフロー定義ＩＤを取得し、さらにシミュレータ用基礎データを取得することで、シミュレータ用基礎データのうちの棄却個数分の合成ワークフローを仮想的に棄却したシミュレータ用データを作成する仮想棄却データ作成部１０１Ｃを含む。仮想棄却データ作成部１０１Ｃは、仮想的に棄却するにあたり、実施中の合成ワークフローのうち、ステップ数で示される進行度が一定の基準以下のものを抽出し、そのうちから棄却個数分の合成ワークフローを棄却する、すべての組み合わせについて考慮する。仮想棄却データ作成部１０１Ｃは、棄却対象となる合成ワークフローを、実行中の全合成ワークフローとするのではなく、ステップ数で示される進行度が一定の基準以下のものに限定するため、より能率的に短時間で棄却判定を行うことができる。そのため、仮想棄却データ作成部１０１Ｃは、棄却対象を絞り込むためのステップ数基準値、棄却対象となる合成ワークフローの個数、仮想的に棄却する個数、棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を選ぶその組み合わせの数を記憶する。また、仮想棄却データ作成部１０１Ｃでは組み合わせ数分のシミュレータ用データが作成されるため、仮想棄却データ作成部１０１Ｃは、どのシミュレータ用データはどの合成ワークフローＩＤを持つ合成ワークフローを仮想棄却したかを紐付ける管理テーブルも同様に記憶している。合成ワークフローシミュレータ用データには、合成ワークフローＩＤで一意に特定される実行中あるいは投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されていればよい。【０１１８】
仮想棄却データ作成部１０１Ｃは、最初に、現在実行中の合成ワークフローがサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすかどうかを判定するため、起動時には仮想に棄却する個数を０、棄却対象を絞り込むためのステップ数基準値には実行中の合成ワークフローすべてを棄却対象としないことを意味する符号を設定して、棄却判定処理を行う。【０１１９】
仮想棄却データ作成部１０１Ｃは、後述する処理継続判定部１１０Ｃより棄却対象を絞り込むためのステップ数基準値を取得した場合、保持している棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を１増やした状態で再度棄却判定処理を行う。すなわち、前回の仮想的に棄却する個数ではサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができないため、仮想棄却データ作成部１０１Ｃは、仮想的に棄却する個数を１増やした状態でサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができるかどうかを判定する。【０１２０】
仮想棄却データ作成部１０１Ｃは、シミュレータ用基礎データを記憶しており、仮想的に棄却する個数を１増やした状態で再度棄却判定処理する場合にシミュレータ用基礎データを再度取得し、記憶していたシミュレータ用基礎データのステップ数に差異がないかを判定する。ステップ数に差異がある場合、仮想棄却データ作成部１０１Ｃは、実行中の合成ワークフロー群の進行度合いが変化していることを示すため、現状の状況を示す再度取得したシミュレータ用基礎データを用いて、仮想的に棄却する個数を０に設定し直し、棄却判定処理を継続する。【０１２１】
棄却判定機能部１００Ｃはさらに、合成ワークフローＩＤで一意に特定される合成ワークフローが、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されたデータが与えられれば、各合成ワークフローの応答時間を予測するシミュレーション処理部１１２を含む。シミュレーション処理部１１２は、合成ワークフローＩＤで一意に特定される合成ワークフローと、その合成ワークフローが属する合成ワークフロー定義ＩＤ、およびその合成ワークフローの応答時間をシミュレーション結果一覧にして出力する。【０１２２】
棄却判定機能部１００Ｃはさらに、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づいた、棄却判定条件を保持する条件設定部１０６を含む。条件設定部１０６は、棄却判定を行うための制限時間を保持している。また、条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づき作成される評価値計算関数を保持している。評価値計算関数は、合意サービス水準を判定するための、合成ワークフローの処理時間や平均処理時間、棄却率などを変数に持ち、評価値計算関数から求まる評価値が高ければ高いほど合意サービス水準を満たすように定義される。また、評価値計算関数は必ずしも数学的に定義される必要はなく、プログラム形式で記述しても構わない。また、条件設定部１０６は、合意サービス水準判定閾値を保持しており、評価値計算関数から求まる評価値が合意サービス水準判定閾値を超えていれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満足すると判定する。【０１２３】
棄却判定機能部１００Ｃはさらに、判定開始通知と棄却判定を行うための制限時間を取得して、棄却判定終了時刻を保持する時刻判定部１０２Ｃを含む。時刻判定部１０２Ｃは、制限時間判定依頼を取得した場合、現在時刻を取得し、該現在時刻を棄却判定終了時刻と比較することで、制限時間内に棄却判定が行えたかどうかの判定を行う。【０１２４】
棄却判定機能部１００Ｃはさらに、シミュレーション結果一覧から、棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローＩＤを抽出し、その応答時間、および平均応答時間、棄却率を元に評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算部１０５を含む。評価値計算部１０５は、シミュレートの組み合わせ数を保持しており、組み合わせ数分の各シミュレーション結果に対して評価値一覧表を作成した後、時刻判定部１０２Ｃへ制限時間判定依頼を通知し、定められた制限時間内で処理が完了しているかを確認する。棄却判定機能部１００Ｃは、定められた制限時間内で処理が完了している場合処理を継続するが、定められた制限時間内で処理が完了できなかった場合後述する評価値記録部１１３へ対し、後述する最高評価値が保持されているかの確認を行う。【０１２５】
棄却判定機能部１００Ｃはさらに、組み合わせ数の評価値一覧表を元に、各評価値一覧表から最低値を抽出し、組み合わせ数分の最低値を一覧にした最低値一覧表を作成する最低評価値抽出部１０７を含む。【０１２６】
棄却判定機能部１００Ｃはさらに、最低値一覧表を元に、組み合わせ数分の最低値のなかから最高値を抽出する最高評価値抽出部１０８を含む。最高値は、ある棄却対象を絞り込むためのステップ数基準値以下の実行中合成ワークフローのなかから、組み合わせ個数分の合成ワークフローを仮想的に棄却した場合に、棄却しなかった合成ワークフローの評価値は、少なくとも最高値にすることができるということを意味する。【０１２７】
棄却判定機能部１００Ｃはさらに、最高評価値を取得し、後述する評価値記録部１１３に保持されている最高評価値と比較を行い、どちらがより値の高い最高評価値となっているか判定を行う棄却判定部１０９Ｃを含む。後述する評価値記録部１１３に保持されている最高評価値よりも、取得した最高評価値の値が高い場合、実行中の合成ワークフローのうち、現在棄却判定を行っている仮想棄却個数分の合成ワークフローを棄却すれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準はさらに改善されると判定し、後述する評価値記録部１１３へ保持している最高評価値を通知し最高評価値を更新する。また、棄却判定部１０９Ｃは、後述する評価値記録部１１３に保持されている最高評価値よりも、取得した最高評価値の値が低い場合、実行中の合成ワークフローのうち現在棄却判定を行っている仮想棄却個数分の合成ワークフローを棄却したとしても、後述する評価値記録部１１３に保持されている最高評価値を与える棄却個数分の合成ワークフローを棄却した場合と比較してサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準をさらに改善することはできないと判定する。【０１２８】
棄却判定機能部１００Ｃはさらに、棄却対象となる合成ワークフローの個数と、仮想的に棄却する個数を取得し、仮想的に棄却する個数をさらに増やした状態で棄却判定処理が継続できるか判定する処理継続判定部１１０Ｃを含む。仮想的に棄却する個数を増やすことができないと判定された場合、処理継続判定部１１０Ｃは、後述する評価値記録部１１３へ棄却判定終了通知を通知する。処理継続判定部１１０Ｃは、仮想的に棄却する個数を増やすことができると判定した場合、棄却対象を絞り込むためのステップ数基準値を取得する。ステップ数基準値に、実行中の合成ワークフローすべてを棄却対象としないことを意味する符号が設定されている場合、新規にステップ数基準値を設定するため、処理継続判定部１１０Ｃは、評価値一覧表と合意サービス水準判定閾値を取得し、実行中の合成ワークフロー群のうちで合意サービス水準を満たせない最もステップ数が大きい合成ワークフロー、すなわち合意サービス水準を満たせない最も処理進行度合いが進んでいる合成ワークフローを抽出し、その合成ワークフローのステップ数をステップ数基準値とする。また、取得したステップ数基準値にすでに値が保持されている場合、処理継続判定部１１０Ｃは、その値をステップ数基準値とする。処理継続判定部１１０Ｃは、仮想棄却データ作成部１０１Ｃへステップ数基準値を通知する。【０１２９】
棄却判定機能部１００Ｃはさらに、最高評価値を取得した場合に、該当する棄却対象合成ワークフローに対して強制棄却を実行する命令を送信する棄却命令送信部１１１Ｃを含む。【０１３０】
棄却判定機能部１００Ｃはさらに、最高評価値を取得し、今まで実施された棄却判定において最もよい最高評価値を保持、記録する評価値記録部１１３を含む。評価値記録部１１３は、制限時間に達した場合に、保持している最高評価値を確認し、最高評価値を保持していない場合は一連の処理を終了し、保持している場合は保持している最高評価値を通知する。【０１３１】
次に、本発明の第３の実施の形態の動作について、図６８および図６９、図７０のフローチャートを用いて詳細に説明する。【０１３２】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持し、イベント格納ＤＢ１２０を監視している。ステップ数監視部１３０は、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージに関するイベントデータｄ３９、ｄ４０を検知した場合、保持している実行状態管理表Ｔ００１００を更新する。特に合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータを検知した場合、ステップ数監視部１３０は、棄却判定機能部１００Ｃに棄却判定処理を開始させる（ステップ４００）。【０１３３】
ステップ数監視部１３０は、合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータｄ３９、ｄ４０を検知した場合、仮想棄却データ作成部１０１Ｃが起動中であるかを判定する（ステップ４０１）。仮想棄却データ作成部１０１Ｃが起動されている場合は、すでに棄却判定処理を実行中のため新規に棄却判定は行わない（ステップ４０２）。仮想棄却データ作成部１０１Ｃが起動されていない場合、ステップ数監視部１３０は仮想棄却データ作成部１０１Ｃへ仮想棄却データ作成部起動信号ｄ０１を通知する。ステップ数監視部１３０は仮想棄却データ作成部１０１Ｃへ、棄却判定を行う合成ワークフロー群を特定するための合成ワークフロー定義ＩＤｄ３７を通知する（ステップ４０３）。【０１３４】
仮想棄却データ作成部１０１Ｃは、仮想棄却データ作成部起動信号ｄ０１を受信することによって起動し、起動の際に仮想棄却条件データ管理表Ｔ００７００を作成する。最初に棄却無しの状況をシミュレートするため、仮想棄却条件データ管理表Ｔ０７００の棄却個数フィールドＴ００７０２には０を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には−１をそれぞれ設定する。棄却対象合成ワークフローステップ数は、実行中の合成ワークフローを棄却しないことを示せれば、−１である必要はない。ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する。なお、この段階では棄却対象合成ワークフロー個数フィールドＴ００７０３および組み合わせ数フィールドＴ００７０４には値が設定されない。仮想棄却データ作成部１０１Ｃはシミュレート用データ作成部１０３へシミュレート用データ作成部起動信号ｄ０３を通知する。仮想棄却データ作成部１０１Ｃは時刻判定部１０２Ｃへ時刻判定部起動信号ｄ０２を通知し、棄却判定処理終了時刻を設定するために、時刻判定部１０２Ｃへ判定開始時刻通知ｄ２６を通知する。時刻判定部１０２Ｃは、評価値記録部１１３へ評価値記録部起動信号ｄ４３を通知する。評価値記録部１１３は、評価値記録部起動信号ｄ４３を受信することで起動する（ステップ４０４）。【０１３５】
時刻判定部１０２Ｃは、時刻判定部起動信号ｄ０２を受信することで起動する。時刻判定部１０２Ｃは、条件設定部１０６より制限時間ｄ２７を取得し、判定開始時刻通知ｄ２６を受信した時刻を元に判定終了時刻を計算し、保持する（ステップ４０５）。【０１３６】
条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準に基づき、棄却判定を行うための条件についての情報を保持する。条件設定部１０６は、合意サービス水準情報に基づいて設定される評価値計算関数を定義する。評価値計算関数は、合意サービス水準で定められた合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を変数として定義される。評価値計算関数は任意に定義することができるが、評価値関数から得られる数値が大きいほど合意サービス水準を満たすように定義される。また、評価値計算値関数は数学的に記述される必要はなく、プログラムで記述しても構わない。条件設定部１０６は、合意サービス水準を判定するための合意サービス水準判定閾値を定義する。合意サービス水準判定閾値は評価値計算関数で決定され、シミュレーションで求まる合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を用いて評価値計算関数に代入して得られる数値が合意サービス水準判定閾値を超えている場合にサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たしていると判定するための指標値である。【０１３７】
シミュレート用データ作成部１０３は、シミュレート用データ作成部起動信号ｄ０３を受信することで起動する。シミュレート用データ作成部１０３はイベント情報送信部１４０へ実行状態問い合わせ信号ｄ４２を通知する。イベント情報送信部１４０は、ステップ数監視部１３０より実行状態管理表Ｔ００１００（ｄ４１）を取得し、シミュレート用データ作成部１０３へ実行状態管理表Ｔ００１００（ｄ０４）を通知する。シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４へイベントデータ統計計算部起動信号ｄ０５を通知する（ステップ４０６）。【０１３８】
イベントデータ統計計算部１０４は、イベントデータ統計計算部起動信号ｄ０５を受信することで起動する。イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０よりイベント情報ｄ０６を取得し、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測管理表Ｔ００２００として作成する。イベントデータ統計計算部１０４は、シミュレート用データ作成部１０３へ合成ワークフロー投入予測管理表Ｔ００２００（ｄ０７）を通知する（ステップ４０７）。【０１３９】
シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４より取得した合成ワークフロー投入予測管理表Ｔ００２００と、実行状態管理表Ｔ００１００を元にシミュレート用基礎データ管理表Ｔ００９００を作成する。シミュレート用データ作成部１０３は、仮想棄却データ作成部１０１Ｃへシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）を通知する（ステップ４０８）。【０１４０】
仮想棄却データ作成部１０１Ｃは、前回実施したシミュレート用基礎データ管理表Ｔ００９００'が保持されているかの確認を行う（ステップ４０９）。シミュレート用基礎データ管理表Ｔ００９００'が仮想棄却データ作成部１０１Ｃに保持されている場合、仮想棄却データ作成部１０１Ｃは、棄却判定中に実行中の合成ワークフロー群の状況に変化があったかどうかを判定するため、新規に受信したシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）の合成ワークフローＩＤフィールドＴ１００９０１と前回実施したシミュレート用基礎データ管理表Ｔ００９００'の合成ワークフローＩＤフィールドＴ００９０１'の比較を行う。同様に、仮想棄却データ作成部１０１Ｃは、新規に受信したシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と前回実施したシミュレート用基礎データ管理表Ｔ００９００'のステップ数フィールドＴ００９０２'の比較を行う（ステップ４１０）。比較を行った結果、差異がある場合は、棄却判定中に実行中の合成ワークフロー群の処理進行度合いが変化したことを意味するため、仮想棄却データ作成部１０１Ｃは、状況変化後の状態で再度棄却無しの状態から棄却判定を行う。仮想棄却条件データ管理表Ｔ００７００を更新し、最初に棄却無しの状況をシミュレートするため、仮想棄却データ作成部１０１Ｃは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２には０を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には−１をそれぞれ設定する。仮想棄却データ作成部１０１Cは、すべての合成ワークフローを棄却しないことを示せれば、−１である必要はない。仮想棄却データ作成部１０１Ｃは、ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する（ステップ４１１）。比較を行った結果、差異がある場合は、仮想棄却データ作成部１０１Ｃは、評価値記録部１１３へ棄却判定開始通知ｄ４４を通知する。評価値記録部１１３は、棄却判定開始通知ｄ４４を受信した際、保持している最高評価値の情報を全て削除する（ステップ４１２）。【０１４１】
仮想棄却データ作成部１０１Ｃは、シミュレート用基礎データ管理表Ｔ００９００を保持する。仮想棄却データ作成部１０１Ｃは、実行中の合成ワークフロー群についてシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５に保持されている棄却対象合成ワークフローステップ数を比較し、ステップ数フィールドＴ０００９０２の数値が棄却対象合成ワークフローステップ数以下となり、かつ合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する合成ワークフローＩＤフィールドＴ００９０１の個数を計算し、その個数を棄却対象合成ワークフロー個数フィールドＴ００７０３に保持する。この個数が、合意サービス水準判定を行う合成ワークフロー定義に属する、実行中の合成ワークフロー群のうち棄却判定対象となる合成ワークフローの個数であり、現在実行中の合成ワークフロー群の中から棄却対象合成ワークフローステップ数以下のステップ数を持つ実行中の合成ワークフロー群を抽出することで、棄却判定対象とする合成ワークフローの個数を減らしている。これによって、棄却判定処理を効率的に短時間で実施することが可能となる。次に、仮想棄却データ作成部１０１Ｃは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得し、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数を計算して仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持する。仮想棄却データ作成部１０１Ｃは、仮想棄却条件データ管理表Ｔ００７００を作成後、評価値計算部１０５の起動状況を確認し、評価値計算部１０５が起動していない場合に評価値計算部起動信号ｄ３０を評価値計算部１０５に通知する。仮想棄却データ作成部１０１Ｃは評価値計算部１０５へ仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を通知する（ステップ４１３）。【０１４２】
評価値計算部１０５は、仮想棄却データ作成部１０１Ｃより評価値計算部起動信号ｄ３０を受信することによって起動する。評価値計算部１０５は、仮想棄却データ作成部１０１Ｃより通知された仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を保持する。【０１４３】
仮想棄却データ作成部１０１Ｃは、ステップ４１３の処理の完了後に仮想棄却合成ワークフローデータ管理表Ｔ００６００と、シミュレーション処理部１１２の入力データとして仮想棄却データ管理表Ｔ００８００を作成し、保持する。すなわち、仮想棄却データ作成部１０１Ｃは、シミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２が棄却対象合成ワークフローステップ数フィールドＴ００７０５以下となり、かつシミュレート用基礎データ管理表Ｔ００９００の合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する実行中の合成ワークフローから、棄却個数フィールドＴ００７０２に保持されている棄却個数分の実行中の合成ワークフローを仮想的に棄却したデータを、それぞれ仮想棄却データ管理表Ｔ００８００として作成する。仮想的に棄却する場合、ステップ数フィールドＴ００９０２には棄却を示す符号が設定される。このときに、仮想棄却データ作成部１０１Ｃは、棄却対象とした棄却個数フィールドＴ００７０２に保持されている棄却個数分の合成ワークフローＩＤフィールドＴ００９０１を、仮想棄却合成ワークフローデータ管理表Ｔ００６０２の棄却合成ワークフローＩＤフィールドＴ００６０４に保持する。仮想棄却データ部１０１Ｃは、最終的に組み合わせ数フィールドＴ００７０４に保持されている個数分の、仮想棄却合成ワークフローデータ管理表Ｔ００６００と仮想棄却データ管理表Ｔ００８００を作成する。仮想棄却データ作成部１０１Ｃは、シミュレーション処理部１１２へ作成した組み合わせ数分の仮想棄却データ管理表Ｔ００８００（ｄ０９）を通知する（ステップ４１４）。【０１４４】
シミュレーション処理部１１２は、仮想棄却データ管理表Ｔ００８００（ｄ０９）に従いシミュレーション処理を実施し、各仮想棄却データ管理表Ｔ００８００に対応するシミュレーション結果管理表Ｔ００３００を作成し、評価値計算部１０５へシミュレーション結果管理表Ｔ００３００（ｄ１０）を通知する（ステップ４１５）。【０１４５】
評価値計算部１０５は、シミュレーション処理部１１２よりシミュレーション結果管理表Ｔ００３００（ｄ１０）を取得すると、保持していた仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定されている棄却対象合成ワークフロー定義ＩＤｄ３８をイベントデータ統計計算部１０４へ通知する。イベントデータ統計計算部１０４は、評価値計算部１０５より取得した棄却対象合成ワークフロー定義ＩＤｄ３８とイベント情報ｄ０６を元に、棄却対象合成ワークフロー定義ＩＤで特定されるサービスについての統計情報データ管理表Ｔ０１００００を作成し、評価値計算部１０５へ統計情報データ管理表Ｔ０１００００（ｄ２９）を通知する（ステップ４１６）。【０１４６】
評価値計算部１０５は、統計情報データ管理表Ｔ０１００００（ｄ２９）を取得後、条件設定部１０６で定義される評価値計算関数ｄ１１を取得する。評価値計算部１０５は、シミュレーション結果管理表Ｔ００３００のうち、合成ワークフロー定義ＩＤフィールドＴ００３０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する要素の合成ワークフロー予測応答時間フィールドＴ００３０３、および統計情報データ管理表Ｔ０１０００を元に、評価値計算関数に従い評価値の計算を行い、評価値管理表Ｔ００４００を作成する（ステップ４１７）。【０１４７】
評価値計算部１０５は、評価値計算部１０５で保持している仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持されている組み合わせ個数分の評価値管理表Ｔ００４００が作成されるまで待機する。評価値計算部１０５は、すべての組み合わせ個数分の評価値管理表Ｔ００４００を作成した場合、時刻判定部１０２Cへ制限時間判定依頼ｄ１２を送信する（ステップ４１８）。【０１４８】
時刻判定部１０２Ｃは、制限時間判定依頼ｄ１２を受信した時刻と、保持している判定終了時刻の比較を行う（ステップ４１９）。時刻判定部１０２Ｃは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Cが保持している判定終了時刻を経過している場合、評価値記録部１１３へ棄却判定終了通知ｄ５０を通知する。評価値記録部１１３は、棄却判定終了通知ｄ５０を受信すると、最高評価値管理表Ｔ０１１００が保持されているかの確認を行う（ステップ４２０）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持していない場合、定められた時間内において有効な棄却パターンを探査することができなかったことを示し一連の処理を終了する（ステップ４２１）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持している場合、棄却命令送信部１１１Ｃへ棄却命令送信部起動信号ｄ４７を通知し、最高評価値管理表Ｔ０１１００（ｄ４８）を通知する。棄却命令送信部１１１Ｃは、評価値記録部１１３より棄却命令送信部起動信号ｄ４７を受信することによって起動する。棄却命令送信部１１１Ｃは最高評価値管理表Ｔ０１１００を取得すると、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１からシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ｃに保持されている仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ２０）を、仮想棄却データ作成部１０１Ｃより取得する。取得した仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し強制棄却命令を発行する（ステップ４２２）。【０１４９】
時刻判定部１０２Ｃは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ｃが保持している判定終了時刻を経過していない場合、評価値計算部１０５へ制御時間判定応答ｄ１３を通知する。評価値計算部１０５は、制御時間判定応答ｄ１３を受信した場合、最低評価値抽出部１０７の起動状況を確認し、最低評価値抽出部１０７が起動していない場合には最低評価値抽出部起動信号ｄ３２を最低評価値抽出部１０７に通知する。最低評価値抽出部１０７は、評価値計算部１０５より最低評価値抽出部起動信号ｄ３２を受信することで起動する。評価値計算部１０５は最低評価値抽出部１０７へ、保持している組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を通知する。最低評価値抽出部１０７は、組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を受信すると、各評価値管理表Ｔ００４００の評価値フィールドＴ００４０３の中から最低値を持つものを抽出し、最低評価値管理表Ｔ００５００を作成する。最低評価値抽出部１０７は、最高評価値抽出部１０８の起動状況を確認し、最高評価値抽出部１０８が起動していない場合には最高評価値抽出部起動信号ｄ３３を最高評価値抽出部１０８に通知する。最低評価値抽出部１０７は、最高評価値抽出部１０８へ最低評価値管理表Ｔ００５００（ｄ１５）を通知する（ステップ４２３）。【０１５０】
最高評価値抽出部１０８は、最低評価値抽出部１０７より最高評価値起動信号ｄ３３を受信することによって起動する。最高評価値抽出部１０８は、最低評価値抽出部１０７より最低評価値管理表Ｔ００５００（ｄ１５）を取得すると、最低評価値フィールドＴ００５０２に保持されている評価値のうち、最高値となる評価値を抽出し、最高評価値管理表Ｔ０１１００を作成する。最高評価値抽出部１０８は、棄却判定部１０９Cの起動状況を確認し、棄却判定部１０９Ｃが起動していない場合には棄却判定部起動信号ｄ３４を棄却判定部１０９Ｃに通知する。最高評価値抽出部１０８は、棄却判定部１０９Ｃへ最高評価値管理表Ｔ０１１００（ｄ１６）を通知する（ステップ４２４）。【０１５１】
棄却判定部１０９Ｃは、最高評価値抽出部１０８より棄却判定部起動信号ｄ３４を受信することによって起動する。棄却判定部１０９Ｃは、評価値記録部１１３へ最高評価値管理表要求信号ｄ５１を通知する。評価値記録部１１３は棄却判定部１０９Ｃより最高評価値管理表要求信号ｄ５１を受信した場合、最高評価値管理表が保持されているかの確認を行う（ステップ４２５）。【０１５２】
評価値記録部１１３は、最高評価値管理表を保持していない場合、棄却判定部１０９Ｃへ最高評価値管理表未保持信号ｄ５２を通知する。棄却判定部１０９Ｃは評価値記録部１１３より最高評価値管理表未保持信号ｄ５２を受信した場合、最高評価値抽出部１０８より取得した最高評価値管理表（ｄ１６）を評価値記録部１１３へ通知する（ｄ５３）。評価値記録部１１３は棄却判定部１０９Ｃより最高評価値管理表を受信した場合、これを保持する。さらに棄却判定部１０９Ｃは処理継続判定部１１０Ｃの起動状態を確認し、処理継続判定部１１０Ｃが起動していない場合には処理継続判定部起動信号ｄ３６を通知する。棄却判定部１０９Ｃは、処理継続判定部１１０Ｃへ、評価値記録部１１３へ通知した最高評価値管理表Ｔ０１１００（ｄ２１）を通知する（ステップ４２６）。【０１５３】
評価値記録部１１３は、最高評価値管理表を保持している場合、棄却判定部１０９Ｃへ保持している最高評価値管理表を通知する（ｄ５４）。棄却判定部１０９Ｃは評価値記録部１１３より最高評価値管理表ｄ５４を受信した場合、最高評価値管理表（ｄ１６）の最高評価値フィールドＴ０１１０２に保持されている最高評価値と、最高評価値管理表（ｄ５４）の最高評価値フィールドＴ０１１０２に保持されている最高評価値を比較し、値の大きい最高評価値を保持する評価値管理表を評価値記録部１１３へ通知する（ｄ５３）。評価値記録部１１３は棄却判定部１０９Ｃより最高評価値管理表を受信した場合、保持していた最高評価値管理表を受信した最高評価値管理表へ更新する。さらに棄却判定部１０９Ｃは、処理継続判定部１１０Ｃへ、評価値記録部１１３へ通知した最高評価値管理表Ｔ０１１００（ｄ２１）を通知する（ステップ４２７）。【０１５４】
処理継続判定部１１０Ｃは、棄却判定部１０９Ｃより処理継続判定部起動信号ｄ３６を受信することによって起動する。処理継続判定部１１０Ｃは、棄却判定部１０９Ｃより最高評価値管理表Ｔ０１１００（ｄ２１）を取得した場合、仮想棄却データ作成部１０１Ｃで保持している仮想棄却条件データ管理表Ｔ００７００（ｄ２２）を取得する。処理継続判定部１１０Ｃは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得する。処理継続判定部１１０Ｃは、仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー個数フィールドＴ００７０３より棄却対象合成ワークフロー個数を取得する（ステップ４２８）。【０１５５】
処理継続判定部１１０Ｃは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較する。すなわち、処理継続判定部１１０Ｃは、棄却対象合成ワークフロー群の中からさらに棄却個数を増やして棄却できる組み合わせがあるかどうかを判定する（ステップ４２９）。【０１５６】
処理継続判定部１１０Ｃは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、その値が同じであった場合、棄却対象合成ワークフローの中からさらに棄却個数を増やして棄却できる組み合わせがないと判定し、評価値記録部１１３へ棄却判定終了通知ｄ４９を通知する。評価値記録部１１３は、棄却判定終了通知ｄ４９を受信すると、評価値記録部１１３は、棄却命令送信部１１１Ｃへ棄却命令送信部起動信号ｄ４７を通知し、保持している最高評価値管理表Ｔ０１１００（ｄ４８）を通知する。棄却命令送信部１１１Ｃは、評価値記録部１１３より棄却命令送信部起動信号ｄ４７を受信することによって起動する。棄却命令送信部１１１Ｃは最高評価値管理表Ｔ０１１００（ｄ４８）を取得すると、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１からシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ｃに保持されている仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ２０）を仮想棄却データ作成部１０１Ｃより取得する。棄却命令送信部１１１Ｃは、取得した仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し、強制棄却命令を発行する（ステップ４２２）。【０１５７】
処理継続判定部１１０Ｃは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、棄却対象合成ワークフロー個数が棄却個数よりも大きい場合、さらに棄却個数を増やして棄却できる組み合わせがあると判定する。処理継続判定部１１０Ｃは、取得した仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５より棄却対象合成ワークフローステップ数を取得し、合成ワークフローを棄却しない状態であるかの確認を行う（ステップ４３０）。処理継続判定部１１０Ｃは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態である場合、棄却対象合成ワークフローステップ数を仮想棄却条件データ管理表Ｔ００７００に新規に設定する。処理継続判定部１１０Ｃは、条件設定部１０６より合意サービス水準判定閾値ｄ２３を取得し、評価値計算部１０５より評価値管理表Ｔ００４００（ｄ２８）を取得し、仮想棄却データ作成部１０１Ｃより仮想棄却データ管理表Ｔ００８００（ｄ２４）を取得する。この状態は棄却対象合成ワークフローがない場合であるので、組み合わせ数は１、すなわち評価値管理表Ｔ００４００は１個のみとなる。処理継続判定部１１０Ｃは、取得した評価値管理表Ｔ００４００の評価値フィールドＴ００４０３と取得した合意サービス水準判定閾値ｄ２３を比較し、評価値フィールドＴ００４０３が合意サービス水準判定閾値ｄ２３未満となる合成ワークフローＩＤフィールドＴ００４０２を抽出する。抽出した合成ワークフローＩＤフィールドＴ００４０２と、取得した仮想棄却データ管理表Ｔ００８００を元に、仮想棄却データ管理表Ｔ００８００のステップ数フィールドＴ００８０３が最大となるステップ数を取得する。ここで取得した最大のステップ数が棄却対象合成ワークフローステップ数であり、仮想棄却データ作成部１０１Ｃへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ４３１）。【０１５８】
処理継続判定部１１０Ｃは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態でない場合（すなわち棄却対象合成ワークフローステップ数が設定されている場合）、仮想棄却データ作成部１０１Ｃへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ４３２）。仮想棄却データ作成部１０１Ｃは、処理継続判定部１１０Ｃより棄却対象合成ワークフローステップ数ｄ２５を取得した場合、仮想棄却条件データ管理表Ｔ００７００'を新規に作成する。仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフローステップ数フィールドＴ００７０５'に棄却対象合成ワークフローステップ数ｄ２５を、仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６'には棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６をそれぞれ設定する。棄却個数フィールドＴ００７０２'には、仮想棄却データ作成部１０１Ｃで保持していた仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に１を加えたものを設定する。その後、保持していた仮想棄却条件データ管理表Ｔ００７００を破棄し、新規に作成した仮想棄却条件データ管理表Ｔ００７００'を使用してステップ４０６へ進む（ステップ４３３）。【０１５９】
第１の実施の形態では制限時間内にて合意サービス水準を満たす棄却パターンが発見された時点で、その棄却パターンに相当する実施中の各合成ワークフローを棄却する。第２の実施の形態においては、評価値記録部１１３にて最高評価値管理表Ｔ０１１００を保持、更新し、制限時間に達するまで棄却判定処理を行うことによって合意サービス水準を満たす最も有効的な棄却パターンを発見し、その棄却パターンに相当する実施中の各合成ワークフローを棄却する。これに対し、本第３の実施の形態においては、第２の実施の形態と同様に、評価値記録部１１３にて最高評価値管理表Ｔ０１１００を保持、更新し、制限時間に達するまで棄却判定処理を行うが、合意サービス水準を達成できなくとも合意サービス水準の改善が見込まれれば最高評価値管理表Ｔ０１１００を更新するため、これにより現在実行中の各合成ワークフローの合意サービス水準を改善する棄却パターンを発見することが可能になる。すなわち、第１、第２の実施の形態で求まる棄却パターンと比較して、第３の実施の形態で求まる棄却パターンが、合意サービス水準を満たさない場合においても、合意サービス水準の改善を見込むことが可能になる。【０１６０】
［第４の実施の形態］
図７１は、本発明の第４の実施の形態による合成ワークフローモニタリング装置の全体構成を示すブロック図である。なお、本発明の第４の実施の形態における棄却判定機能部１００Ｄは本発明の第３の実施の形態の棄却判定機能部１００Ｃと同じ構成を使用しているが、本手法は棄却判定方法に依存することはないため、本発明の第１の実施の形態や、本発明の第２の実施の形態における棄却判定機能部１００Ａ−１００Ｂと同じ構成を使用してもかまわない。さらに、本発明の第４の実施の形態において、状態比較機能部２００Ｄは棄却判定機能部１００Ｄの内部に含まれていてもかまわない。【０１６１】
本合成ワークフローモニタリング装置１Ｄはイベント格納ＤＢ１２０とステップ数監視部１３０とイベント情報送信部１４０と最高ステップ数保持部１５０と棄却判定機能部１００Ｄと状態比較機能部２００Ｄから構成される。イベント格納ＤＢ１２０は、各合成ワークフローに関するイベントデータを整理、関係付けて格納する。ステップ数監視部１３０は、イベント格納ＤＢ１２０に格納されているイベントデータから各合成ワークフローの進行度合い示すステップ数を計算、監視、保持する。イベント情報送信部１４０は、要求に応じてステップ数監視部１３０よりステップ数を用いて現在の合成ワークフロー実行状況を表現するデータを取得し、棄却判定機能部１００Ｄに送信する。最高ステップ数保持部１５０は、各合成ワークフロー定義ＩＤに属する合成ワークフローが取りうる最大のステップ数を、合成ワークフロー定義ＩＤ毎に保持する。棄却判定機能部１００Ｄは、イベント格納ＤＢ１２０、ステップ数監視部１３０、イベント情報送信部１４０より情報を取得して棄却判定を行う。【０１６２】
ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視し、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージが観測された場合に合成ワークフローの処理が進んだと判定し、該当する合成ワークフローの進行度合いを示すステップ数を更新する。また、ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持しており、特に合成ワークフロー定義ＩＤを持つ合成ワークフローのステップ数が更新された場合、棄却判定機能部１００Ｄ内の仮想棄却データ作成部１０１Ｄを起動し、合成ワークフロー定義ＩＤを通知する。【０１６３】
状態比較機能部２００Ｄは、棄却判定機能部１００Ｄにて棄却判定を実施する際に、過去の履歴を参照して棄却判定機能部１００Ｄにて活用できる情報がある場合はその情報を提供する機能を有している。同様に、棄却判定機能部１００Ｄにて得られた結果を将来活用するために、棄却判定機能部１００Ｄより情報を収集して履歴として保持する機能も有している。【０１６４】
状態比較機能部２００Ｄは、仮想棄却データ作成部１０１Ｄより現在実行中である合成ワークフローに関する情報を取得し、実行状態を端的な形式で表現するデータを生成する状態表現生成部２０１Ｄを含む。実行状態を端的な形式で表現するデータの要素は、合成ワークフロー定義を一意に特定するIＤと、合成ワークフロー定義に属する各実行中の合成ワークフローに関してステップ数毎に集計した合成ワークフローの個数と、将来投入されると予測される前述合成ワークフロー定義に属する合成ワークフローの投入間隔平均や分散などである。これらの情報を、全ての合成ワークフロー定義に関して表現することで、現在実行中の全ての合成ワークフローの実行状態を端的な形式で表現することができる。また、実行状態を端的な形式で表現する方法としては行列を想定しているが、特に制限はなく、ベクトルの組み合わせ等による表現でも構わない。【０１６５】
状態比較機能部２００Ｄは、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットと、現在までに判明している最適な棄却パターンを表現するデータ、その評価値、棄却判定結果が収束しているかを判定するフラグ、棄却された合成ワークフローの個数、棄却判定に用いられた棄却対象合成ワークフローステップ数などを紐付けて格納されている状態履歴格納ＤＢ２０２Ｄを含む。前述棄却パターンを表現するデータを表現する方法としてはベクトルを想定しているが、特に制限はない。【０１６６】
状態比較機能部２００Ｄは、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤの組み合わせが、前述状態履歴格納ＤＢ２０２Ｄに保持されているかを検索する状態表現検索部２０３Ｄを含む。状態表現検索部２０３Ｄで検索した結果、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤの組み合わせが前述状態履歴格納ＤＢ２０２Ｄに保持されていない場合は、その実行状態と同様の条件で過去に棄却判定を実施したことがないことを意味するため、棄却なしの状態から棄却判定を実施する。状態表現検索部２０３Ｄで検索した結果、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤの組み合わせが前述状態履歴格納ＤＢ２０２Ｄに保持されている場合は、その実行状態と同様の状況下で同じ合成ワークフロー定義ＩＤに属する合成ワークフローの棄却判定を過去に実施したことがあることを意味するため、実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットに紐付く一連のデータを取得する。ここで、棄却判定結果が収束しているかを判定するフラグが成立していれば、再度棄却判定を実施したとしても同様の結果が得られることが判明しているため、取得した棄却パターンを表現するデータを用いれば棄却判定することなく棄却対象とする合成ワークフローを特定することが可能となる。また、棄却判定結果が収束しているかを判定するフラグが成立していなければ、再度棄却なしの状態から棄却判定を実施するのではなく、棄却パターンを表現するデータと、棄却判定に用いられた棄却対象合成ワークフローステップ数や棄却数を元に、すでに棄却した状態から棄却判定を再開することにより、より最適な棄却パターンを探査することが可能となる。【０１６７】
状態比較機能部２００Ｄは、強制棄却が実行された後に、棄却の状態を表現する一連のデータを収集する棄却状態取得部２０４Ｄを含む。収集された一連のデータは、前述状態表現検索部２０３Ｄで保持されている、実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットに紐付けられ、状態履歴格納ＤＢ２０２Ｄへ履歴を保持するための基礎データとして用いられる。さらに、棄却状態取得部２０４Ｄは、強制棄却の棄却パターンが状態履歴格納ＤＢ２０２Ｄに保持されている過去の棄却パターンと同じ場合に棄却判定結果が収束したと判断し、棄却判定結果が収束しているかを判定するフラグを成立させる。【０１６８】
状態比較機能部２００Ｄは、強制棄却が実行された情報から棄却パターンを表現するデータを生成する棄却状態表現生成部２０６Ｄを含む。棄却パターンを表現するデータを表現する方法としてはベクトルを想定しているが、特に制限はない。【０１６９】
状態比較機能部２００Ｄは、状態履歴格納ＤＢ２０２Ｄへ保持するための基礎データを取得することにより、実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤに対し、それらに紐付く一連のデータを状態履歴格納ＤＢ２０２Ｄへ新規登録、あるいは更新を行う状態表現記録部２０５Ｄを含む。【０１７０】
棄却判定機能部１００Ｄは、各合成ワークフローに関する履歴情報を取得し、統計計算や、合成ワークフロー投入予測データ作成を行うイベントデータ統計計算部１０４を含む。イベントデータ統計計算部１０４では、合成ワークフロー定義ＩＤで特定される過去の履歴を参照し、処理が完了した合成ワークフローの個数や、棄却された合成ワークフローの個数、過去の平均応答時間等を計算する。また、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、各合成ワークフローの投入平均間隔や分散等を合成ワークフロー投入情報としてまとめ、さらに今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測データとして作成する。合成ワークフロー投入情報は、合成ワークフローの投入状況を示す指標の一つとして用いられ、各合成ワークフロー定義ＩＤと、それに紐付く投入平均間隔や分散等が一覧になっていればよく、状態表現生成部２０１Ｄで用いられる。合成ワークフロー投入予測データは、後述するシミュレータ用基礎データに用いられる。合成ワークフローを処理する各業務アプリケーションシステム群や各ワークフローシステム群の負荷は、リソースを共有している場合もあるために、同時に実行されている他の合成ワークフロー群に大きく影響されることから、投入予測をすることによって、より正確にシミュレートする意図がある。合成ワークフロー投入予測データには、いつ、どの合成ワークフロー定義ＩＤに属する合成ワークフローが投入されるかが記載されていればよい。【０１７１】
棄却判定機能部１００Ｄは、現在の合成ワークフロー実行状況を示す実行状況データを取得し、また合成ワークフロー投入予測データを取得することで、現在および将来の各合成ワークフローの状態を表現するシミュレータ用基礎データを作成するシミュレート用データ作成部１０３を含む。実行状況データには、合成ワークフローＩＤで一意に特定される実行中の合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレータ用基礎データには、合成ワークフローＩＤで一意に特定される実施中および投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレート用データ作成部１０３は、合成ワークフロー投入情報を取得した場合、後述する仮想棄却データ作成部１０１Ｄへ通知する。【０１７２】
棄却判定機能部１００Ｄはさらに、仮想棄却データ作成部１０１Ｄを含む。仮想棄却データ作成部１０１Ｄは、棄却判定を行う合成ワークフロー群を特定する合成ワークフロー定義ＩＤを取得し、さらにシミュレータ用基礎データ、合成ワークフロー投入情報を取得し、状態比較機能部２００Ｄへこれらの情報を通知した上で、棄却個数や棄却対象を絞り込むためのステップ数基準値を取得し、シミュレータ用基礎データのうちの棄却個数分の合成ワークフローを仮想的に棄却したシミュレータ用データを作成する。仮想棄却データ作成部１０１Ｄは、仮想的に棄却するにあたり、実施中の合成ワークフローのうち、ステップ数で示される進行度が一定の基準以下のものを抽出し、そのうちから棄却個数分の合成ワークフローを棄却する、すべての組み合わせについて考慮する。仮想棄却データ作成部１０１Ｄは、棄却対象となる合成ワークフローを、実行中の全合成ワークフローとするのではなく、ステップ数で示される進行度が一定の基準以下のものに限定するため、より能率的に短時間で棄却判定を行うことができる。そのため、仮想棄却データ作成部１０１Ｄは、棄却対象を絞り込むためのステップ数基準値、棄却対象となる合成ワークフローの個数、仮想的に棄却する個数、棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を選ぶその組み合わせの数を記憶する。また、仮想棄却データ作成部１０１Ｄでは組み合わせ数分のシミュレータ用データが作成されるため、仮想棄却データ作成部１０１Ｄは、どのシミュレータ用データはどの合成ワークフローＩＤを持つ合成ワークフローを仮想棄却したかを紐付ける管理テーブルも同様に記憶している。合成ワークフローシミュレータ用データには、合成ワークフローＩＤで一意に特定される実行中あるいは投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されていればよい。【０１７３】
仮想棄却データ作成部１０１Ｄは、後述する処理継続判定部１１０Ｄより棄却対象を絞り込むためのステップ数基準値を取得した場合、保持している棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を１増やした状態で再度棄却判定処理を行う。すなわち、前回の仮想的に棄却する個数ではサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができないため、仮想棄却データ作成部１０１Ｄは、仮想的に棄却する個数を１増やした状態でサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができるかどうかを判定する。【０１７４】
仮想棄却データ作成部１０１Ｄは、シミュレータ用基礎データを記憶しており、仮想的に棄却する個数を１増やした状態で再度棄却判定処理する場合にシミュレータ用基礎データを再度取得し、記憶していたシミュレータ用基礎データのステップ数に差異がないかを判定する。ステップ数に差異がある場合、仮想棄却データ作成部１０１Ｄは、実行中の合成ワークフロー群の進行度合いが変化していることを示すため、現状の状況を示す再度取得したシミュレータ用基礎データを用いて、新しい状況で棄却判定処理を継続する。【０１７５】
棄却判定機能部１００Ｄはさらに、合成ワークフローＩＤで一意に特定される合成ワークフローが、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されたデータが与えられれば、各合成ワークフローの応答時間を予測するシミュレーション処理部１１２を含む。シミュレーション処理部１１２は、合成ワークフローＩＤで一意に特定される合成ワークフローと、その合成ワークフローが属する合成ワークフロー定義ＩＤ、およびその合成ワークフローの応答時間をシミュレーション結果一覧にして出力する。【０１７６】
棄却判定機能部１００Ｄはさらに、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づいた、棄却判定条件を保持する条件設定部１０６を含む。条件設定部１０６は、棄却判定を行うための制限時間を保持している。また、条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づき作成される評価値計算関数を保持している。評価値計算関数は、合意サービス水準を判定するための、合成ワークフローの処理時間や平均処理時間、棄却率などを変数に持ち、評価値計算関数から求まる評価値が高ければ高いほど合意サービス水準を満たすように定義される。また、評価値計算関数は必ずしも数学的に定義される必要はなく、プログラム形式で記述しても構わない。また、条件設定部１０６は、合意サービス水準判定閾値を保持しており、評価値計算関数から求まる評価値が合意サービス水準判定閾値を超えていれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満足すると判定する。【０１７７】
棄却判定機能部１００Ｄはさらに、判定開始通知と棄却判定を行うための制限時間を取得して、棄却判定終了時刻を保持する時刻判定部１０２Ｄを含む。時刻判定部１０２Ｄは、制限時間判定依頼を取得した場合、現在時刻を取得し、該現在時刻を棄却判定終了時刻と比較することで、制限時間内に棄却判定が行えたかどうかの判定を行う。【０１７８】
棄却判定機能部１００Ｄはさらに、シミュレーション結果一覧から、棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローＩＤを抽出し、その応答時間、および平均応答時間、棄却率を元に評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算部１０５を含む。評価値計算部１０５は、シミュレートの組み合わせ数を保持しており、組み合わせ数分の各シミュレーション結果に対して評価値一覧表を作成した後、時刻判定部１０２Ｄへ制限時間判定依頼を通知し、定められた制限時間内で処理が完了しているかを確認する。棄却判定機能部１００Ｄは、定められた制限時間内で処理が完了している場合処理を継続するが、定められた制限時間内で処理が完了できなかった場合、後述する評価値記録部１１３へ対し、後述する最高評価値が保持されているかの確認を行う。【０１７９】
棄却判定機能部１００Ｄはさらに、組み合わせ数の評価値一覧表を元に、各評価値一覧表から最低値を抽出し、組み合わせ数分の最低値を一覧にした最低値一覧表を作成する最低評価値抽出部１０７を含む。【０１８０】
棄却判定機能部１００Ｄはさらに、最低値一覧表を元に、組み合わせ数分の最低値のなかから最高値を抽出する最高評価値抽出部１０８を含む。最高値は、ある棄却対象を絞り込むためのステップ数基準値以下の実行中合成ワークフローのなかから、組み合わせ個数分の合成ワークフローを仮想的に棄却した場合に、棄却しなかった合成ワークフローの評価値は、少なくとも最高値にすることができるということを意味する。【０１８１】
棄却判定機能部１００Ｄはさらに、最高評価値を取得し、後述する評価値記録部１１３に保持されている最高評価値と比較を行い、どちらがより値の高い最高評価値となっているか判定を行う棄却判定部１０９Ｄを含む。後述する評価値記録部１１３に保持されている最高評価値よりも、取得した最高評価値の値が高い場合、棄却判定部１０９Ｄは、実行中の合成ワークフローのうち、現在棄却判定を行っている仮想棄却個数分の合成ワークフローを棄却すれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準はさらに改善されると判定し、後述する評価値記録部１１３へ保持している最高評価値を通知し最高評価値を更新する。また、棄却判定部１０９Ｄは、後述する評価値記録部１１３に保持されている最高評価値よりも、取得した最高評価値の値が低い場合、実行中の合成ワークフローのうち現在棄却判定を行っている仮想棄却個数分の合成ワークフローを棄却したとしても、後述する評価値記録部１１３に保持されている最高評価値を与える棄却個数分の合成ワークフローを棄却した場合と比較してサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準をさらに改善することはできないと判定する。【０１８２】
棄却判定機能部１００Ｄはさらに、棄却対象となる合成ワークフローの個数と、仮想的に棄却する個数を取得し、仮想的に棄却する個数をさらに増やした状態で棄却判定処理が継続できるか判定する処理継続判定部１１０Ｄを含む。仮想的に棄却する個数を増やすことができないと判定された場合、処理継続判定部１１０Ｄは棄却判定結果が収束しているかを判定するフラグを成立させ、後述する評価値記録部１１３へフラグを通知して一連の棄却判定処理を終了する。処理継続判定部１１０Ｄは、仮想的に棄却する個数を増やすことができると判定した場合、棄却対象を絞り込むためのステップ数基準値を取得する。ステップ数基準値に、実行中の合成ワークフローすべてを棄却対象としないことを意味する符号が設定されている場合、新規にステップ数基準値を設定するため、処理継続判定部１１０Ｄは、評価値一覧表と合意サービス水準判定閾値を取得し、実行中の合成ワークフロー群のうちで合意サービス水準を満たせない最もステップ数が大きい合成ワークフロー、すなわち合意サービス水準を満たせない最も処理進行度合いが進んでいる合成ワークフローを抽出し、その合成ワークフローのステップ数をステップ数基準値とする。また、取得したステップ数基準値にすでに値が保持されている場合、処理継続判定部１１０Ｄは、その値をステップ数基準値とする。処理継続判定部１１０Ｄは、仮想棄却データ作成部１０１Ｄへステップ数基準値を通知する。【０１８３】
棄却判定機能部１００Ｄはさらに、最高評価値を取得した場合に、該当する棄却対象合成ワークフローに対して強制棄却を実行する命令を送信する棄却命令送信部１１１Ｄを含む。棄却命令送信部１１１Ｄは、棄却判定結果が収束しているかを判定するフラグを取得した場合は前述フラグをそのまま通知するが、棄却判定結果が収束しているかを判定するフラグを取得しなかった場合は、棄却判定結果が収束していないと判定して前述フラグを通知する。【０１８４】
棄却判定機能部１００Ｄはさらに、最高評価値を取得し、今まで実施された棄却判定において最もよい最高評価値を保持、記録する評価値記録部１１３を含む。評価値記録部１１３は、制限時間に達した場合に、保持している最高評価値を確認し、最高評価値を保持していない場合は一連の処理を終了し、保持している場合は保持している最高評価値を通知する。同時に、棄却判定結果が収束しているかを判定するフラグを取得している場合、評価値記録部１１３は前述フラグを通知する。【０１８５】
次に、本発明の第４の実施の形態の動作について、図７１および図７２、図７３、図７４のフローチャートを用いて詳細に説明する。【０１８６】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持し、イベント格納ＤＢ１２０を監視している。ステップ数監視部１３０は、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージに関するイベントデータｄ３９、ｄ４０を検知した場合、保持している実行状態管理表Ｔ００１００を更新する。特に合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータを検知した場合、ステップ数監視部１３０は、棄却判定機能部１００Ｄに棄却判定処理を開始させる（ステップ５００）。【０１８７】
ステップ数監視部１３０は、合成ワークフロー定義ＩＤを持つ合成ワークフローの要求メッセージや応答メッセージのイベントデータＤ３９、Ｄ４０を検知した場合、仮想棄却データ作成部１０１Ｄが起動中であるかを判定する（ステップ５０１）。仮想棄却データ作成部１０１Ｄが起動されている場合は、すでに棄却判定処理を実行中のため新規に棄却判定は行わない（ステップ５０２）。仮想棄却データ作成部１０１Ｄが起動されていない場合、ステップ数監視部１３０は仮想棄却データ作成部１０１Ｄへ仮想棄却データ作成部起動信号ｄ０１を通知する。ステップ数監視部１３０は仮想棄却データ作成部１０１Ｄへ、棄却判定を行う合成ワークフロー群を特定するための合成ワークフロー定義ＩＤｄ３７を通知する（ステップ５０３）。【０１８８】
仮想棄却データ作成部１０１Ｄは、仮想棄却データ作成部起動信号ｄ０１を受信することによって起動し、起動の際に仮想棄却条件データ管理表Ｔ００７００を作成する。ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する。なお、この段階では棄却対象合成ワークフロー個数フィールドＴ００７０３および組み合わせ数フィールドＴ００７０４、棄却個数フィールドＴ００７０２、棄却対象合成ワークフローステップ数フィールドＴ００７０５には値が設定されない。仮想棄却データ作成部１０１Ｄはシミュレート用データ作成部１０３へシミュレート用データ作成部起動信号ｄ０３を通知する。仮想棄却データ作成部１０１Ｄは時刻判定部１０２Ｄへ時刻判定部起動信号ｄ０２を通知し、棄却判定処理終了時刻を設定するために、時刻判定部１０２Ｄへ判定開始時刻通知ｄ２６を通知する。時刻判定部１０２Ｄは、評価値記録部１１３へ評価値記録部起動信号ｄ４３を通知する。評価値記録部１１３は、評価値記録部起動信号ｄ４３を受信することで起動する（ステップ５０４）。【０１８９】
時刻判定部１０２Ｄは、時刻判定部起動信号ｄ０２を受信することで起動する。時刻判定部１０２Ｄは、条件設定部１０６より制限時間ｄ２７を取得し、判定開始時刻通知ｄ２６を受信した時刻を元に判定終了時刻を計算し、保持する（ステップ５０５）。【０１９０】
条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準に基づき、棄却判定を行うための条件についての情報を保持する。条件設定部１０６は、合意サービス水準情報に基づいて設定される評価値計算関数を定義する。評価値計算関数は、合意サービス水準で定められた合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を変数として定義される。評価値計算関数は任意に定義することができるが、評価値関数から得られる数値が大きいほど合意サービス水準を満たすように定義される。また、評価値計算値関数は数学的に記述される必要はなく、プログラムで記述しても構わない。条件設定部１０６は、合意サービス水準を判定するための合意サービス水準判定閾値を定義する。合意サービス水準判定閾値は評価値計算関数で決定され、シミュレーションで求まる合成ワークフロー応答時間や、合成ワークフロー平均応答時間、棄却率を用いて評価値計算関数に代入して得られる数値が合意サービス水準判定閾値を超えている場合にサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たしていると判定するための指標値である。【０１９１】
シミュレート用データ作成部１０３は、シミュレート用データ作成部起動信号ｄ０３を受信することで起動する。シミュレート用データ作成部１０３はイベント情報送信部１４０へ実行状態問い合わせ信号ｄ４２を通知する。イベント情報送信部１４０は、ステップ数監視部１３０より実行状態管理表Ｔ００１００（ｄ４１）を取得し、シミュレート用データ作成部１０３へ実行状態管理表Ｔ００１００（ｄ０４）を通知する。シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４へイベントデータ統計計算部起動信号ｄ０５を通知する（ステップ５０６）。【０１９２】
イベントデータ統計計算部１０４は、イベントデータ統計計算部起動信号ｄ０５を受信することで起動する。イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０よりイベント情報ｄ０６を取得し、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、合成ワークフロー投入情報管理表Ｔ０１２００を作成し、さらに今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測管理表Ｔ００２００として作成する。イベントデータ統計計算部１０４は、シミュレート用データ作成部１０３へ合成ワークフロー投入予測管理表Ｔ００２００（ｄ０７）と、合成ワークフロー投入情報管理表Ｔ０１２００（ｄ５５）を通知する（ステップ５０７）。【０１９３】
図７５は合成ワークフロー投入情報管理表Ｔ０１２００の構成例を示している。本構成例では、合成ワークフロー投入情報として投入平均間隔とその分散を対象としている例であり、合成ワークフロー投入情報管理表Ｔ０１２００は合成ワークフロー定義ＩＤフィールドＴ０１２０１をキーとする表で、該当する合成ワークフロー定義ＩＤに属する合成ワークフローの投入平均間隔、およびその投入間隔の分散をそれぞれ投入平均間隔フィールドＴ０１２０２、分散フィールドＴ０１２０３で管理するために使用される。【０１９４】
シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４より取得した合成ワークフロー投入予測管理表Ｔ００２００と、実行状態管理表Ｔ００１００を元に、シミュレート用基礎データ管理表Ｔ００９００を作成する。シミュレート用データ作成部１０３は、仮想棄却データ作成部１０１Ｄへシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）と、イベントデータ統計計算部１０４より受信した合成ワークフロー投入情報管理表Ｔ０１２００（ｄ５６）を通知する（ステップ５０８）。【０１９５】
仮想棄却データ作成部１０１Ｄは、前回実施したシミュレート用基礎データ管理表Ｔ００９００’が保持されているかの確認を行う（ステップ５０９）。【０１９６】
シミュレート用基礎データ管理表Ｔ００９００’が仮想棄却データ作成部１０１Ｄに保持されていない場合、仮想棄却データ作成部１０１Ｄは、状態表現生成部２０１Ｄの起動状態を確認し、起動していない場合に状態表現生成部起動信号ｄ５７を通知する。さらに状態表現生成部２０１Ｄへシミュレート用基礎データ管理表Ｔ００９００（ｄ５８）、合成ワークフロー投入情報管理表Ｔ０１２００（ｄ５９）、棄却対象合成ワークフロー定義ＩＤ（ｄ６０）を通知する。【０１９７】
状態表現生成部２０１Ｄは、状態表現生成部起動信号ｄ５７を受信することで起動する。状態表現生成部２０１Ｄは、起動後に最高ステップ数保持部１５０より、全ての合成ワークフロー定義において、実行中の合成ワークフローが取りうる最大ステップ数（ｄ６１）を取得する（たとえば３つの合成ワークフロー定義があったとして−１つ目の合成ワークフロー定義がステップ数３、2つ目の合成ワークフロー定義がステップ数６、3つ目の合成ワークフロー定義がステップ数４まで取りうると最高ステップ数保持部１５０が記録していた場合、最大のステップ数６を取得する）。状態表現生成部２０１Ｄは、仮想棄却データ作成部１０１Ｄより取得したシミュレート用基礎データ管理表Ｔ００９００と合成ワークフロー投入情報管理表Ｔ０１２００を元に、合成ワークフロー定義毎に、合成ワークフロー定義ＩＤ、その合成ワークフロー定義に属する各合成ワークフローに関してステップ数毎に集約した合成ワークフローの個数、その合成ワークフロー定義に関する統計情報（投入平均間隔やその分散）を元に状態表現ベクトルＶ００１００で表現する（ステップ５１６）。【０１９８】
図７６は状態表現ベクトルＶ００１００の構成例を示している。この構成例では、ベクトルの要素数をｎとしたとき、ベクトル要素ｖ１を合成ワークフロー定義ＩＤ、ベクトル要素ｖ２〜ｖｎ−２をステップ数毎の合成ワークフローの個数、ｖｎ−１を投入平均間隔、ｖｎを分散で表現している。なお、この状態表現ベクトルＶ００１００を生成する際には、各合成ワークフロー定義ＩＤのベクトルの要素数ｎを合わせるため、先に取得した全ての合成ワークフロー定義において実行中の合成ワークフローが取りうる最大のステップ数まで、集約して個数を求める（たとえば、最大ステップ数保持部１５０から取得した最大ステップ数が６であり、現在処理をしている合成ワークフロー定義ＩＤの取りうる最大のステップ数が３だとした場合、仮想的にステップ数４〜６まで取りうるとし、ステップ数４〜６の実行中の合成ワークフローの個数は０と計上する）。【０１９９】
状態表現生成部２０１Ｄは、ステップ５１６に関する処理を全ての合成ワークフロー定義に関して行い、各状態表現ベクトルをまとめて状態表現行列Ｍ００１００を作成する（ステップ５１７）。【０２００】
図７７は状態表現行列Ｍ００１００の構成例を示している。合成ワークフロー定義ＩＤがｍ個あった場合、状態表現ベクトルがｍ個作成されるため、これらのベクトルを合成ワークフロー定義ＩＤの小さい順にＶ１、Ｖ２、・・・、Ｖｍとし、これらをまとめて一つの状態表現行列として表現した例である。【０２０１】
状態表現生成部２０１Ｄは、状態表現検索部２０３Ｄへ状態表現検索部起動信号ｄ６２を通知し、状態表現行列Ｍ００１００（ｄ６３）と仮想棄却データ作成部１０１Ｄより取得した棄却対象合成ワークフロー定義ＩＤ（ｄ６４）を通知する。【０２０２】
状態表現検索部２０３Ｄは、状態表現生成部２０１Ｄより状態表現検索部起動信号ｄ６２を受信することで起動する。状態表現検索部２０３Ｄは、状態表現生成部２０１Ｄより取得した状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤを元に、同様の組み合わせが状態履歴格納ＤＢ２０２Ｄに格納されているかを検索する（ステップ５１８）。【０２０３】
図７８は状態履歴格納ＤＢ２０２Ｄで保持される状態履歴情報管理表Ｔ０１３００の構成例を示している。状態履歴情報管理表Ｔ０１３００は状態表現行列フィールドＴ０１３０１と棄却対象合成ワークフロー定義ＩＤフィールドＴ０１３０２の組み合わせをキーとする表で、該当する棄却状態表現ベクトル、評価値、収束判定フラグ、棄却個数、棄却対象合成ワークフローステップ数を、それぞれ棄却状態表現ベクトルフィールドＴ０１３０３、評価値フィールドＴ０１３０４、収束判定フラグフィールドＴ０１３０５、棄却個数フィールドＴ０１３０６、棄却対象合成ワークフローステップ数フィールドＴ０１３０７で管理するために使用される。状態履歴情報管理表Ｔ０１３００は、過去に実施された、状態表現行列で表現される状況において棄却対象合成ワークフロー定義ＩＤに属する合成ワークフローを棄却判定しようとした場合に、棄却判定結果がどのようであったかを、棄却状態表現ベクトル、評価値、収束判定フラグ、棄却個数、棄却対象合成ワークフローステップ数で表現している。なお、棄却判定時の状態は必ずしも行列で表現する必要はなく、たとえばベクトルの組み合わせ等でもよい。【０２０４】
状態表現検索部２０３Ｄは、状態表現生成部２０１Ｄより取得した状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤの組み合わせが状態履歴格納ＤＢ２０２Ｄに格納されていない場合、棄却対象合成ワークフローステップ数を棄却なしの状態として仮想棄却データ作成部１０１Ｄへ棄却対象合成ワークフローステップ数（ｄ６５）として−１を、棄却個数（ｄ６６）として０を通知し（ステップ５２０）、後述するステップ５１３へ進む。なお、棄却対象合成ワークフローステップ数は、実行中の合成ワークフローを棄却しないことを示せれば、−１である必要はない。【０２０５】
状態表現検索部２０３Ｄは、状態表現生成部２０１Ｄより取得した状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤの組み合わせが状態履歴格納ＤＢ２０２Ｄに格納されている場合、状態履歴格納ＤＢ２０２Ｄより状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤの組み合わせに紐付く棄却状態表現ベクトルＶ００２００（ｄ６７）、評価値（ｄ６８）、収束判定フラグ（ｄ６９）、棄却個数（ｄ７０）、棄却対象合成ワークフローステップ数（ｄ７１）を取得する（ステップ５２１）。【０２０６】
図７９に棄却状態表現ベクトルＶ００２００の構成例を示す。この構成例では、ベクトルの要素数をｎとしたとき、ベクトル要素ｗ１を合成ワークフロー定義ＩＤ、ベクトル要素ｗ２〜ｗｎをステップ数毎の棄却すべき合成ワークフローの個数で表現している。【０２０７】
状態表現検索部２０３Ｄは、状態履歴格納ＤＢ２０２Ｄより棄却状態表現ベクトルＶ００２００を取得した場合、同様に取得した収束判定フラグが成立しているかの確認を行う（ステップ５２２）。【０２０８】
状態表現検索部２０３Ｄは、取得した収束判定フラグが成立している場合、棄却命令送信部１１１Ｄへ棄却命令送信部起動信号（ｄ７２）を通知し棄却状態表現ベクトルＶ００２００（ｄ７３）を通知する。棄却命令送信部１１１Ｄは、棄却命令送信部起動信号（ｄ７２）を受信することで起動し、仮想棄却データ作成部１０１Ｄより保持しているシミュレート用基礎データ管理表Ｔ００９００（ｄ７４）を取得し、合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却状態表現ベクトルＶ００２００の第一要素である合成ワークフロー定義ＩＤが等しい合成ワークフローを抽出する。その上で棄却状態表現ベクトルＶ００２００のステップ数毎の棄却すべき合成ワークフローの個数に応じて、ステップ数フィールドＴ００９０２を参照して棄却すべき合成ワークフローＩＤを決定し、該当する合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し強制棄却命令を発行し、処理を終了する。（ステップ５２３）。【０２０９】
状態表現検索部２０３Ｄは、取得した収束判定フラグが成立していない場合、最高評価値管理表Ｔ０１１００（ｄ７５）を作成し、評価値記録部１１３へ通知する。このとき、状態表現検索部２０３Ｄは、最高評価値フィールドＴ０１１０２には状態履歴格納ＤＢ２０２Ｄより取得した評価値を設定する。また、状態表現検索部２０３Ｄは、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１には、状態履歴格納ＤＢ２０２Ｄより取得したことを示す−１を設定するが、状態履歴格納ＤＢ２０２Ｄより取得したことを示せれば−１でなくてもよい。評価値記録部１１３は、状態表現検索部２０３Ｄより取得した最高評価値管理表Ｔ０１１００（ｄ７５）を保持する。また、仮想棄却データ作成部１０１Ｄへ、状態履歴格納ＤＢ２０２Ｄより取得した棄却個数に１を加えたものを棄却個数（ｄ６６）として通知する。同時に仮想棄却データ作成部１０１Ｄへ棄却対象合成ワークフローステップ数（ｄ６５）を通知し、後述するステップ５１３へ進む。【０２１０】
シミュレート用基礎データ管理表Ｔ００９００'が仮想棄却データ作成部１０１Ｄに保持されている場合、仮想棄却データ作成部１０１Ｄは、棄却判定中に実行中の合成ワークフロー群の状況に変化があったかどうかを判定するため、新規に受信したシミュレート用基礎データ管理表Ｔ００９００（ｄ０８）の合成ワークフローＩＤフィールドＴ１００９０１と前回実施したシミュレート用基礎データ管理表Ｔ００９００'の合成ワークフローＩＤフィールドＴ００９０１'の比較を行う。同様に、仮想棄却データ作成部１０１Ｄは、新規に受信したシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と前回実施したシミュレート用基礎データ管理表Ｔ００９００'のステップ数フィールドＴ００９０２'の比較を行う（ステップ５１０）。比較を行った結果、差異がある場合は、仮想棄却データ作成部１０１Ｄは、棄却判定中に実行中の合成ワークフロー群の処理進行度合いが変化したことを意味するため、再度過去に同様の実行状況があったかを探査する。仮想棄却条件データ管理表Ｔ００７００を更新し、仮想棄却データ作成部１０１Ｄは、ステップ数監視部１３０より受信した合成ワークフロー定義ＩＤｄ３７を棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定する（ステップ５１１）。比較を行った結果、差異がある場合は、仮想棄却データ作成部１０１Ｄは、評価値記録部１１３へ棄却判定開始通知ｄ４４を通知する。評価値記録部１１３は、棄却判定開始通知ｄ４４を受信した際、保持している最高評価値の情報を全て削除する（ステップ５１２）。さらに、仮想棄却データ作成部１０１Ｄは、状態表現生成部２０１Ｄの起動状態を確認し、起動していない場合に状態表現生成部起動信号ｄ５７を通知する。状態表現生成部２０１Ｄへシミュレート用基礎データ管理表Ｔ００９００（ｄ５８）、合成ワークフロー投入情報管理表Ｔ０１２００（ｄ５９）、棄却対象合成ワークフロー定義ＩＤ（ｄ６０）を通知し、ステップ５１６の処理へ進む。【０２１１】
仮想棄却データ作成部１０１Ｄは、状態表現検索部２０３Ｄより棄却個数（ｄ６６）と棄却対象合成ワークフローステップ数（ｄ６５）を取得し、仮想棄却条件データ管理表Ｔ０７００の棄却個数フィールドＴ００７０２には取得した棄却個数を、棄却対象合成ワークフローステップ数フィールドＴ００７０５には取得した棄却対象合成ワークフローステップ数をそれぞれ設定する。仮想棄却データ作成部１０１Ｄは、シミュレート用基礎データ管理表Ｔ００９００を保持する。仮想棄却データ作成部１０１Ｄは、実行中の合成ワークフロー群についてシミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２と仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５に保持されている棄却対象合成ワークフローステップ数を比較し、ステップ数フィールドＴ０００９０２の数値が棄却対象合成ワークフローステップ数以下となり、かつ合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する合成ワークフローＩＤフィールドＴ００９０１の個数を計算し、その個数を棄却対象合成ワークフロー個数フィールドＴ００７０３に保持する。この個数が、合意サービス水準判定を行う合成ワークフロー定義に属する、実行中の合成ワークフロー群のうち棄却判定対象となる合成ワークフローの個数であり、現在実行中の合成ワークフロー群の中から棄却対象合成ワークフローステップ数以下のステップ数を持つ実行中の合成ワークフロー群を抽出することで、棄却判定対象とする合成ワークフローの個数を減らしている。これによって、棄却判定処理を効率的に短時間で実施することが可能となる。次に、仮想棄却データ作成部１０１Ｄは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得し、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数を計算して仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持する。仮想棄却データ作成部１０１Ｄは、仮想棄却条件データ管理表Ｔ００７００を作成後、評価値計算部１０５の起動状況を確認し、評価値計算部１０５が起動していない場合に評価値計算部起動信号ｄ３０を評価値計算部１０５に通知する。仮想棄却データ作成部１０１Ｄは評価値計算部１０５へ仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を通知する（ステップ５１３）。【０２１２】
評価値計算部１０５は、仮想棄却データ作成部１０１Ｄより評価値計算部起動信号ｄ３０を受信することによって起動する。評価値計算部１０５は、仮想棄却データ作成部１０１Ｄより通知された仮想棄却条件データ管理表Ｔ００７００（ｄ３１）を保持する。【０２１３】
仮想棄却データ作成部１０１Ｄは、ステップ５１３の処理の完了後に仮想棄却合成ワークフローデータ管理表Ｔ００６００と、シミュレーション処理部１１２の入力データとして仮想棄却データ管理表Ｔ００８００を作成し、保持する。すなわち、仮想棄却データ作成部１０１Ｄは、シミュレート用基礎データ管理表Ｔ００９００のステップ数フィールドＴ００９０２が棄却対象合成ワークフローステップ数フィールドＴ００７０５以下となり、かつシミュレート用基礎データ管理表Ｔ００９００の合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する実行中の合成ワークフローから、棄却個数フィールドＴ００７０２に保持されている棄却個数分の実行中の合成ワークフローを仮想的に棄却したデータを、それぞれ仮想棄却データ管理表Ｔ００８００として作成する。仮想的に棄却する場合、ステップ数フィールドＴ００９０２には棄却を示す符号が設定される。このときに、仮想棄却データ作成部１０１Ｄは、棄却対象とした棄却個数フィールドＴ００７０２に保持されている棄却個数分の合成ワークフローＩＤフィールドＴ００９０１を、仮想棄却合成ワークフローデータ管理表Ｔ００６０２の棄却合成ワークフローＩＤフィールドＴ００６０４に保持する。仮想棄却データ部１０１Ｄは、最終的に組み合わせ数フィールドＴ００７０４に保持されている個数分の、仮想棄却合成ワークフローデータ管理表Ｔ００６００と仮想棄却データ管理表Ｔ００８００を作成する。仮想棄却データ作成部１０１Ｄは、シミュレーション処理部１１２へ作成した組み合わせ数分の仮想棄却データ管理表Ｔ００８００（ｄ０９）を通知する（ステップ５１４）。【０２１４】
シミュレーション処理部１１２は、仮想棄却データ管理表Ｔ００８００（ｄ０９）に従いシミュレーション処理を実施し、各仮想棄却データ管理表Ｔ００８００に対応するシミュレーション結果管理表Ｔ００３００を作成し、評価値計算部１０５へシミュレーション結果管理表Ｔ００３００（ｄ１０）を通知する（ステップ５１５）。【０２１５】
評価値計算部１０５は、シミュレーション処理部１１２よりシミュレーション結果管理表Ｔ００３００（ｄ１０）を取得すると、保持していた仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に設定されている棄却対象合成ワークフロー定義ＩＤｄ３８をイベントデータ統計計算部１０４へ通知する。イベントデータ統計計算部１０４は、評価値計算部１０５より取得した棄却対象合成ワークフロー定義ＩＤｄ３８とイベント情報ｄ０６を元に、棄却対象合成ワークフロー定義ＩＤで特定されるサービスについての統計情報データ管理表Ｔ０１００００を作成し、評価値計算部１０５へ統計情報データ管理表Ｔ０１００００（ｄ２９）を通知する（ステップ５２４）。【０２１６】
評価値計算部１０５は、統計情報データ管理表Ｔ０１００００（Ｄ２９）を取得後、条件設定部１０６で定義される評価値計算関数ｄ１１を取得する。評価値計算部１０５は、シミュレーション結果管理表Ｔ００３００のうち、合成ワークフロー定義ＩＤフィールドＴ００３０４が棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６に一致する要素の合成ワークフロー予測応答時間フィールドＴ００３０３、および統計情報データ管理表Ｔ０１０００を元に、評価値計算関数に従い評価値の計算を行い、評価値管理表Ｔ００４００を作成する（ステップ５２５）。【０２１７】
評価値計算部１０５は、評価値計算部１０５で保持している仮想棄却条件データ管理表Ｔ００７００の組み合わせ数フィールドＴ００７０４に保持されている組み合わせ個数分の評価値管理表Ｔ００４００が作成されるまで待機する。評価値計算部１０５は、すべての組み合わせ個数分の評価値管理表Ｔ００４００を作成した場合、時刻判定部１０２Ｄへ制限時間判定依頼ｄ１２を送信する（ステップ５２６）。【０２１８】
時刻判定部１０２Ｄは、制限時間判定依頼ｄ１２を受信した時刻と、保持している判定終了時刻の比較を行う（ステップ５２７）。時刻判定部１０２Ｄは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ｄが保持している判定終了時刻を経過している場合、評価値記録部１１３へ棄却判定終了通知ｄ５０を通知する。評価値記録部１１３は、棄却判定終了通知ｄ５０を受信すると、最高評価値管理表Ｔ０１１００が保持されているかの確認を行う（ステップ５２８）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持していない場合、定められた時間内において有効な棄却パターンを探査することができなかったことを示し一連の処理を終了する（ステップ５２９）。評価値記録部１１３は、最高評価値管理表Ｔ０１１００を保持している場合、棄却命令送信部１１１Ｄへ棄却命令送信部起動信号ｄ４７を通知し、最高評価値管理表Ｔ０１１００（ｄ４８）を通知した上で後述するステップ５４２へ進む。【０２１９】
時刻判定部１０２Ｄは、制限時間判定依頼ｄ１２を受信した時刻が、時刻判定部１０２Ｄが保持している判定終了時刻を経過していない場合、評価値計算部１０５へ制御時間判定応答ｄ１３を通知する。評価値計算部１０５は、制御時間判定応答ｄ１３を受信した場合、最低評価値抽出部１０７の起動状況を確認し、最低評価値抽出部１０７が起動していない場合には最低評価値抽出部起動信号ｄ３２を最低評価値抽出部１０７に通知する。最低評価値抽出部１０７は、評価値計算部１０５より最低評価値抽出部起動信号ｄ３２を受信することで起動する。評価値計算部１０５は最低評価値抽出部１０７へ、保持している組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を通知する。最低評価値抽出部１０７は、組み合わせ個数分の評価値管理表Ｔ００４００（ｄ１４）を受信すると、各評価値管理表Ｔ００４００の評価値フィールドＴ００４０３の中から最低値を持つものを抽出し、最低評価値管理表Ｔ００５００を作成する。最低評価値抽出部１０７は、最高評価値抽出部１０８の起動状況を確認し、最高評価値抽出部１０８が起動していない場合には最高評価値抽出部起動信号ｄ３３を最高評価値抽出部１０８に通知する。最低評価値抽出部１０７は、最高評価値抽出部１０８へ最低評価値管理表Ｔ００５００（ｄ１５）を通知する（ステップ５３０）。【０２２０】
最高評価値抽出部１０８は、最低評価値抽出部１０７より最高評価値起動信号ｄ３３を受信することによって起動する。最高評価値抽出部１０８は、最低評価値抽出部１０７より最低評価値管理表Ｔ００５００（ｄ１５）を取得すると、最低評価値フィールドＴ００５０２に保持されている評価値のうち、最高値となる評価値を抽出し、最高評価値管理表Ｔ０１１００を作成する。最高評価値抽出部１０８は、棄却判定部１０９Ｄの起動状況を確認し、棄却判定部１０９Ｄが起動していない場合には棄却判定部起動信号ｄ３４を棄却判定部１０９Ｄに通知する。最高評価値抽出部１０８は、棄却判定部１０９Ｄへ最高評価値管理表Ｔ０１１００（ｄ１６）を通知する（ステップ５３１）。【０２２１】
棄却判定部１０９Ｄは、最高評価値抽出部１０８より棄却判定部起動信号ｄ３４を受信することによって起動する。棄却判定部１０９Ｄは、評価値記録部１１３へ最高評価値管理表要求信号ｄ５１を通知する。評価値記録部１１３は棄却判定部１０９Ｄより最高評価値管理表要求信号ｄ５１を受信した場合、最高評価値管理表が保持されているかの確認を行う（ステップ５３２）。【０２２２】
評価値記録部１１３は、最高評価値管理表を保持していない場合、棄却判定部１０９Ｄへ最高評価値管理表未保持信号ｄ５２を通知する。棄却判定部１０９Ｄは評価値記録部１１３より最高評価値管理表未保持信号ｄ５２を受信した場合、最高評価値抽出部１０８より取得した最高評価値管理表（ｄ１６）を評価値記録部１１３へ通知する（ｄ５３）。評価値記録部１１３は棄却判定部１０９Ｄより最高評価値管理表を受信した場合、これを保持する。さらに、棄却判定部１０９Ｄは処理継続判定部１１０Ｄの起動状態を確認し、処理継続判定部１１０Ｄが起動していない場合には処理継続判定部起動信号ｄ３６を通知する。棄却判定部１０９Ｄは、処理継続判定部１１０Ｄへ、評価値記録部１１３へ通知した最高評価値管理表Ｔ０１１００（ｄ２１）を通知する（ステップ５３３）。【０２２３】
評価値記録部１１３は、最高評価値管理表を保持している場合、棄却判定部１０９Ｄへ保持している最高評価値管理表を通知する（ｄ５４）。棄却判定部１０９Ｄは評価値記録部１１３より最高評価値管理表ｄ５４を受信した場合、最高評価値管理表（ｄ１６）の最高評価値フィールドＴ０１１０２に保持されている最高評価値と、最高評価値管理表（ｄ５４）の最高評価値フィールドＴ０１１０２に保持されている最高評価値を比較し、値の大きい最高評価値を保持する評価値管理表を評価値記録部１１３へ通知する（ｄ５３）。評価値記録部１１３は棄却判定部１０９Ｄより最高評価値管理表を受信した場合、保持していた最高評価値管理表を受信した最高評価値管理表へ更新する。さらに、棄却判定部１０９Ｄは、処理継続判定部１１０Ｄへ、評価値記録部１１３へ通知した最高評価値管理表Ｔ０１１００（ｄ２１）を通知する（ステップ５３４）。【０２２４】
処理継続判定部１１０Ｄは、棄却判定部１０９Ｄより処理継続判定部起動信号ｄ３６を受信することによって起動する。処理継続判定部１１０Ｄは、棄却判定部１０９Ｄより最高評価値管理表Ｔ０１１００（ｄ２１）を取得した場合、仮想棄却データ作成部１０１Ｄで保持している仮想棄却条件データ管理表Ｔ００７００（ｄ２２）を取得する。処理継続判定部１１０Ｄは、仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２より棄却個数を取得する。処理継続判定部１１０Ｄは、仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフロー個数フィールドＴ００７０３より棄却対象合成ワークフロー個数を取得する（ステップ５３５）。【０２２５】
処理継続判定部１１０Ｄは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較する。すなわち、処理継続判定部１１０Ｄは、棄却対象合成ワークフロー群の中からさらに棄却個数を増やして棄却できる組み合わせがあるかどうかを判定する（ステップ５３６）。処理継続判定部１１０Ｄは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、その値が同じであった場合、棄却対象合成ワークフローの中からさらに棄却個数を増やして棄却できる組み合わせがないと判定し、収束判定フラグを成立させる。処理継続判定部１１０Ｄは、評価値記録部１１３へ棄却判定終了通知ｄ４９と収束判定フラグｄ７６を通知する。評価値記録部１１３は棄却命令送信部１１１Ｄへ棄却命令送信部起動信号ｄ４７を通知し、保持している最高評価値管理表Ｔ０１１００（ｄ４８）と収束判定フラグｄ７７を通知した上で後述するステップ５４２へ進む（ステップ５４１）。【０２２６】
処理継続判定部１１０Ｄは、取得した棄却個数と棄却対象合成ワークフロー個数の大小を比較し、棄却対象合成ワークフロー個数が棄却個数よりも大きい場合、さらに棄却個数を増やして棄却できる組み合わせがあると判定する。処理継続判定部１１０Ｄは、取得した仮想棄却条件データ管理表Ｔ００７００の棄却対象合成ワークフローステップ数フィールドＴ００７０５より棄却対象合成ワークフローステップ数を取得し、合成ワークフローを棄却しない状態であるかの確認を行う（ステップ５３７）。処理継続判定部１１０Ｄは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態である場合、棄却対象合成ワークフローステップ数を仮想棄却条件データ管理表Ｔ００７００に新規に設定する。処理継続判定部１１０Ｄは、条件設定部１０６より合意サービス水準判定閾値ｄ２３を取得し、評価値計算部１０５より評価値管理表Ｔ００４００（ｄ２８）を取得し、仮想棄却データ作成部１０１Ｄより仮想棄却データ管理表Ｔ００８００（ｄ２４）を取得する。この状態は棄却対象合成ワークフローがない場合であるので、組み合わせ数は１、すなわち評価値管理表Ｔ００４００は１個のみとなる。処理継続判定部１１０Ｄは、取得した評価値管理表Ｔ００４００の評価値フィールドＴ００４０３と取得した合意サービス水準判定閾値ｄ２３を比較し、評価値フィールドＴ００４０３が合意サービス水準判定閾値ｄ２３未満となる合成ワークフローＩＤフィールドＴ００４０２を抽出する。抽出した合成ワークフローＩＤフィールドＴ００４０２と、取得した仮想棄却データ管理表Ｔ００８００を元に、仮想棄却データ管理表Ｔ００８００のステップ数フィールドＴ００８０３が最大となるステップ数を取得する。ここで取得した最大のステップ数が棄却対象合成ワークフローステップ数であり、仮想棄却データ作成部１０１Ｄへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ５３８）。【０２２７】
処理継続判定部１１０Ｄは、棄却個数を増やして棄却できる組み合わせがあると判定し、かつ棄却対象合成ワークフローステップ数が合成ワークフローを棄却しない状態でない場合（すなわち棄却対象合成ワークフローステップ数が設定されている場合）、仮想棄却データ作成部１０１Ｄへ棄却対象合成ワークフローステップ数ｄ２５を通知する（ステップ５３９）。仮想棄却データ作成部１０１Ｄは、処理継続判定部１１０Ｄより棄却対象合成ワークフローステップ数ｄ２５を取得した場合、仮想棄却条件データ管理表Ｔ００７００'を新規に作成する。仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフローステップ数フィールドＴ００７０５'に棄却対象合成ワークフローステップ数ｄ２５を、仮想棄却条件データ管理表Ｔ００７００'の棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６'には棄却対象合成ワークフロー定義ＩＤフィールドＴ００７０６をそれぞれ設定する。棄却個数フィールドＴ００７０２'には、仮想棄却データ作成部１０１Ｄで保持していた仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２に１を加えたものを設定する。その後、新規に作成した仮想棄却条件データ管理表Ｔ００７００'を使用してステップ５０６へ進む（ステップ５４０）。【０２２８】
棄却命令送信部１１１Ｄは、評価値記録部１１３より棄却命令送信部起動信号ｄ４７を受信することによって起動する。棄却命令送信部１１１Ｄは最高評価値管理表Ｔ０１１００（ｄ４８）を取得すると、シミュレートＩＤフィールドＴ０１１０１を確認し、受信した最高評価値管理表Ｔ０１１００が状態履歴格納ＤＢ２０２Ｄより取得したものであるかの確認を行う（ステップ５４２）。【０２２９】
棄却命令送信部１１１Ｄは、評価値記録部１１３より取得した最高評価値管理表Ｔ０１１００（ｄ４８）が状態履歴格納ＤＢ２０２Ｄより取得したものである場合（例えばシミュレートＩＤフィールドＴ０１１０１が−１となっている場合）、状態表現検索部２０３Ｄより棄却状態表現ベクトルＶ００２００（ｄ７３）を取得する。また、棄却命令送信部１１１Ｄは、仮想棄却データ作成部１０１Ｄより保持しているシミュレート用基礎データ管理表Ｔ００９００（ｄ７４）を取得し、合成ワークフロー定義ＩＤフィールドＴ００９０４が棄却状態表現ベクトルＶ００２００の第一要素である合成ワークフロー定義ＩＤが等しい合成ワークフローを抽出する。その上で棄却状態表現ベクトルＶ００２００のステップ数毎の棄却すべき合成ワークフローの個数に応じて、ステップ数フィールドＴ００９０２を参照して棄却すべき合成ワークフローＩＤを決定し、該当する合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し強制棄却命令を発行する。さらに、棄却命令送信部１１１Ｄは、評価値記録部１１３より収束判定フラグｄ７７を受信していない場合、収束判定フラグを成立させ、棄却状態取得部２０４Ｄへ棄却状態取得部起動信号ｄ７８を通知し、最高評価値管理表Ｔ０１１００（ｄ７９）と収束判定フラグｄ８０を通知する。(ステップ５４３）。【０２３０】
棄却状態取得部２０４Ｄは棄却状態取得部起動信号ｄ７８を受信することにより起動する。棄却状態取得部２０４Ｄは、棄却命令送信部１１１Ｄより取得した最高評価値管理表Ｔ０１１００が状態履歴格納ＤＢ２０２Ｄより取得したものである場合（例えばシミュレートＩＤフィールドＴ０１１０１が−１となっている場合）、状態表現検索部２０３Ｄより状態表現行列Ｍ００１００（ｄ８１）、棄却対象合成ワークフロー定義ＩＤ（ｄ８２）、状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤの組み合わせに紐付く棄却状態表現ベクトルＶ００２００（ｄ８３）、評価値（ｄ８４）、棄却個数（ｄ８５）、棄却対象合成ワークフローステップ数（ｄ８６）を取得し、さらに収束判定フラグを１にする（収束判定フラグを成立させる）（ステップ５４４）。【０２３１】
棄却状態取得部２０４Ｄは、状態表現行列Ｍ００１００（ｄ８１）、棄却対象合成ワークフロー定義ＩＤ（ｄ８２）、棄却状態表現ベクトルＶ００２００（ｄ８３）、評価値（ｄ８４）、棄却個数（ｄ８５）、棄却対象合成ワークフローステップ数（ｄ８６）、収束判定フラグを元に状態履歴情報管理表Ｔ０１３００を作成する。次に、状態表現記録部２０５Ｄへ状態表現記録部起動信号ｄ８７を通知し、状態履歴情報管理表Ｔ０１３００（ｄ８８）を通知する。状態表現記録部２０５Ｄは状態表現記録部起動信号ｄ８７を受信することにより起動する。状態表現記録部２０５Ｄは、棄却状態取得部２０４Ｄより取得した状態履歴情報管理表Ｔ０１３００（ｄ８８）を基に、状態履歴格納ＤＢに保持されている状態表現行列フィールドＴ０１３０１と棄却対象合成ワークフロー定義ＩＤフィールドＴ０１３０２の組み合わせで一意に定まる履歴を特定、更新（ｕｐＤａｔｅ）し、処理を終了する（ステップ５４５）。【０２３２】
棄却命令送信部１１１Ｄは、評価値記録部１１３より取得した最高評価値管理表Ｔ０１１００（ｄ４８）が状態履歴格納ＤＢ２０２Ｄより取得したものでない場合（例えばシミュレートＩＤフィールドＴ０１１０１が−１以外になっている場合）、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１からシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ｄに保持されている仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ２０）を仮想棄却データ作成部１０１Ｄより取得する。棄却命令送信部１１１Ｄは、取得した仮想棄却合成ワークフローデータ管理表Ｔ００６００の棄却合成ワークフローＩＤフィールドＴ００６０４に保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し、強制棄却命令を発行する。棄却命令送信部１１１Ｄは、評価値記録部１１３より収束判定フラグｄ７７を受信していない場合、収束判定フラグは成立していないとみなす（受信している場合は成立しているとみなす）。さらに、棄却命令送信部１１１Ｄは棄却状態取得部２０４Ｄへ棄却状態取得部起動信号ｄ７８を通知し、最高評価値管理表Ｔ０１１００（ｄ７９）と収束判定フラグｄ８０を通知する。（ステップ５４６）。【０２３３】
棄却状態取得部２０４Ｄは棄却状態取得部起動信号ｄ７８を受信することにより起動する。棄却状態取得部２０４Ｄは、棄却命令送信部１１１Ｄより取得した最高評価値管理表Ｔ０１１００が状態履歴格納ＤＢ２０２Ｄより取得したものでない場合（例えばシミュレートＩＤフィールドＴ０１１０１が−１以外になっている場合）、棄却状態取得部２０４Ｄは仮想棄却データ作成部１０１Ｄより棄却個数（ｄ８９）と棄却対象合成ワークフローステップ数（ｄ９０）を取得する。このとき仮想棄却データ作成部１０１Ｄより取得する棄却個数と、棄却対象合成ワークフローステップ数は、最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１が仮想棄却合成ワークフローデータ管理表Ｔ００６００のシミュレートＩＤフィールドＴ００６０２に一致する仮想棄却条件ＩＤフィールドを抽出し、前述仮想棄却条件ＩＤフィールドに一致する仮想棄却条件ＩＤフィールドＴ００７０１を持つ仮想棄却条件データ管理表Ｔ００７００の棄却個数フィールドＴ００７０２と棄却対象合成ワークフローステップ数フィールドＴ００７０５より取得する（ステップ５４７）。【０２３４】
次に、棄却状態取得部２０４Ｄは棄却状態表現生成部２０６Ｄへ棄却状態表現生成部起動信号ｄ９１と最高評価値管理表Ｔ０１１００（ｄ９２）を通知する。棄却状態表現生成部２０６Ｄは棄却状態表現生成部起動信号ｄ９１を受信することにより起動する。棄却状態表現生成部２０６Ｄは仮想棄却データ作成部１０１Ｄより仮想棄却合成ワークフローデータ管理表Ｔ００６００（ｄ９３）とシミュレート用基礎データ管理表Ｔ００９００（ｄ９４）を取得する。棄却状態表現生成部２０６Ｄは、仮想棄却合成ワークフローデータ管理表Ｔ００６００のうち、シミュレートＩＤフィールドＴ００６０２が棄却状態取得部２０４Ｄより取得した最高評価値管理表Ｔ０１１００のシミュレートＩＤフィールドＴ０１１０１に一致する棄却合成ワークフローＩＤフィールドを抽出する（抽出された棄却合成ワークフローＩＤが棄却対象となった合成ワークフローのＩＤである）。次に、シミュレート用基礎データ管理表Ｔ００９００のうち、合成ワークフローＩＤフィールドＴ００９０１が抽出した棄却合成ワークフローＩＤに一致するステップ数フィールドＴ００９０２と合成ワークフロー定義ＩＤフィールドＴ００９０４を抽出する。この操作により、棄却対象となった全ての合成ワークフローの合成ワークフロー定義ＩＤとステップ数が判明する。次に、棄却状態表現生成部２０６Ｄは作成する棄却状態表現ベクトルＶ００２００の要素数を決定するため、最高ステップ数保持部１５０より、判明した合成ワークフロー定義ＩＤが取りうる最大ステップ数（ｄ９５）を取得する。棄却状態表現生成部２０６Ｄは、これらの情報を元に、取得された最大ステップ数（ｄ９５）まで、棄却された合成ワークフローの個数をステップ数毎に集約し、棄却状態表現ベクトルＶ００２００を生成する。棄却状態表現生成部２０６Ｄは、棄却状態取得部２０４Ｄへ生成した棄却状態表現ベクトルＶ００２００（ｄ９６）を通知する（ステップ５４８）。【０２３５】
棄却状態取得部２０４Ｄは、棄却状態表現生成部２０６Ｄより棄却状態表現ベクトルＶ００２００（ｄ９６）を取得後、状態表現検索部２０３Ｄより状態表現行列Ｍ００１００（ｄ８１）、棄却対象合成ワークフロー定義ＩＤ（ｄ８２）を取得する。次に、棄却状態取得部２０４Ｄは、状態表現行列Ｍ００１００（ｄ８１）、棄却対象合成ワークフロー定義ＩＤ（ｄ８２）、棄却状態表現ベクトルＶ００２００（ｄ９６）、最高表価値管理表Ｔ０１１００の最高評価値フィールドＴ０１１０２より取得した評価値、棄却個数（ｄ８９）、棄却対象合成ワークフローステップ数（ｄ９０）、収束判定フラグ（ｄ８０）を元に状態履歴情報管理表Ｔ０１３００を作成する。次に、状態表現記録部２０５Ｄへ状態表現記録部起動信号ｄ８７を通知し、状態履歴情報管理表Ｔ０１３００（ｄ８８）を通知する。状態表現記録部２０５Ｄは状態表現記録部起動信号ｄ８７を受信することにより起動する。状態表現記録部２０５Ｄは、棄却状態取得部２０４Ｄより取得した状態履歴情報管理表Ｔ０１３００（ｄ８８）を基に、状態履歴格納ＤＢに保持されている状態表現行列フィールドＴ０１３０１と棄却対象合成ワークフロー定義ＩＤフィールドＴ０１３０２の組み合わせで一意に定まる履歴を特定し、履歴がある場合は更新（ｕｐＤａｔｅ）、履歴がない場合は新規保存（ｉｎｓｅｒｔ）し、処理を終了する（ステップ５４９）。【０２３６】
第１の実施の形態では制限時間内にて合意サービス水準を満たす棄却パターンが発見された時点で、その棄却パターンに相当する実施中の各合成ワークフローを棄却する。第２の実施の形態においては、評価値記録部１１３にて最高評価値管理表Ｔ０１１００を保持、更新し、制限時間に達するまで棄却判定処理を行うことによって合意サービス水準を満たす最も有効的な棄却パターンを発見し、その棄却パターンに相当する実施中の各合成ワークフローを棄却する。第３の実施の形態では、合意サービス水準を達成できなくとも合意サービス水準の改善が見込まれる棄却パターンを発見する。本第４の実施の形態では、実行状態と棄却判定の記録をとり、同様の実行状態があれば過去の棄却結果の履歴を参照することで、結果が収束している場合には即時棄却でき、結果が収束していない場合においても過去の棄却結果よりよりよい合意サービス水準与える棄却パターンを探査することが可能となる。すなわち、本第４の実施の形態においては、過去の履歴を参照することにより、迅速に、かつより合意サービス水準を与える棄却パターンを探査する効果がある。【０２３７】
［第５の実施の形態］
図９５は、本発明の第５の実施の形態による合成ワークフローモニタリング装置の全体構成を示すブロック図である。なお、本第５の実施の形態における棄却判定機能部１００Ｅは主に第３の実施の形態の棄却判定機能部１００Ｃと同じ構成を使用しているが、本手法では棄却判定方法に依存することはないため、第１の実施の形態や、第２の実施の形態における棄却判定機能部１００Ａ−１００Ｂの構成を使用してもかまわない。さらに、本第５の実施の形態において、状態比較機能部２００Ｅは棄却判定機能部１００Ｅの内部に含まれていてもかまわない。【０２３８】
本合成ワークフローモニタリング装置１Ｅはイベント格納ＤＢ１２０とステップ数監視部１３０とイベント情報送信部１４０と最高ステップ数保持部１５０と評価値比較部１６０と1個以上の棄却判定機能部１００Ｅ（１００Ｅ’）と状態比較機能部２００Ｅから構成される。イベント格納ＤＢ１２０は、各合成ワークフローに関するイベントデータを整理、関係付けて格納する。ステップ数監視部１３０は、イベント格納ＤＢ１２０に格納されているイベントデータから各合成ワークフローの進行度合い示すステップ数を計算、監視、保持する。イベント情報送信部１４０は、要求に応じてステップ数監視部１３０よりステップ数を用いて現在の合成ワークフロー実行状況を表現するデータを取得し、棄却判定機能部１００Ｅに送信する。最高ステップ数保持部１５０は、各合成ワークフロー定義ＩＤに属する合成ワークフローが取りうる最大のステップ数を、合成ワークフロー定義ＩＤ毎に保持する。評価値比較部１６０は、与えられた評価値から最もよいものを抽出し、該当する評価値を与える棄却判定機能部に対して処理を継続する命令を通知すると同時に、それ以外の棄却判定機能部に対して処理を終了する命令を通知する。棄却判定機能部１００Ｅは、イベント格納ＤＢ１２０、ステップ数監視部１３０、イベント情報送信部１４０、評価値比較部１６０より情報を取得して棄却判定を行う。【０２３９】
ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視し、新規に業務アプリケーションへの要求メッセージや応答メッセージ、さらにワークフローへの要求メッセージや応答メッセージが観測された場合に合成ワークフローの処理が進んだと判定し、該当する合成ワークフローの進行度合いを示すステップ数を更新する。また、ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤを保持しており、特に合成ワークフロー定義ＩＤを持つ合成ワークフローのステップ数が更新された場合、棄却判定機能部１００Ｅ内の仮想棄却データ作成部１０１Ｅを起動し、合成ワークフロー定義ＩＤを通知する。【０２４０】
状態比較機能部２００Ｅは、棄却判定機能部１００Ｅにて棄却判定を実施する際に、過去の履歴を参照して棄却判定機能部１００Ｅにて活用できる情報がある場合はその情報を提供する機能を有している。同様に、棄却判定機能部１００Ｅにて得られた結果を将来活用するために、状態比較機能部２００Ｅは、棄却判定機能部１００Ｅより情報を収集して履歴として保持する機能も有している。【０２４１】
状態比較機能部２００Ｅは、仮想棄却データ作成部１０１Ｅより現在実行中である合成ワークフローに関する情報を取得し、実行状態を端的な形式で表現するデータを生成する状態表現生成部２０１Ｅを含む。実行状態を端的な形式で表現するデータの要素は、合成ワークフロー定義を一意に特定するＩＤと、合成ワークフロー定義に属する各実行中の合成ワークフローに関してステップ数毎に集計した合成ワークフローの個数と、将来投入されると予測される前述合成ワークフロー定義に属する合成ワークフローの投入間隔平均や分散などである。これらの情報を、全ての合成ワークフロー定義に関して表現することで、現在実行中の全ての合成ワークフローの実行状態を端的な形式で表現することができる。また、実行状態を端的な形式で表現する方法としては行列を想定しているが、特に制限はなく、ベクトルの組み合わせ等による表現でも構わない。【０２４２】
状態比較機能部２００Ｅは、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットと、現在までに判明している最適な棄却パターンを表現するデータ、その評価値、棄却判定結果が収束しているかを判定するフラグ、棄却された合成ワークフローの個数、棄却判定に用いられた棄却対象合成ワークフローステップ数などを紐付けて格納されている状態履歴格納ＤＢ２０２Ｅを含む。前述棄却パターンを表現するデータを表現する方法としてはベクトルを想定しているが、特に制限はない。【０２４３】
状態比較機能部２００Ｅは、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤの組み合わせが、前述状態履歴格納ＤＢ２０２Ｅに保持されているかを検索する状態表現検索部２０３Ｅを含む。状態表現検索部２０３Ｅで検索した結果、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤの組み合わせが前述状態履歴格納ＤＢ２０２Ｅに保持されている場合は、その実行状態と同様の状況下で同じ合成ワークフロー定義ＩＤに属する合成ワークフローの棄却判定を過去に実施したことがあることを意味するため、実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットに紐付く一連のデータを取得する。ここで、棄却判定結果が収束しているかを判定するフラグが成立していれば、再度棄却判定を実施したとしても同様の結果が得られることが判明しているため、取得した棄却パターンを表現するデータを用いれば棄却判定することなく棄却対象とする合成ワークフローを特定することが可能となる。また、棄却判定結果が収束しているかを判定するフラグが成立していなければ、再度棄却なしの状態から棄却判定を実施するのではなく、棄却パターンを表現するデータと、棄却判定に用いられた棄却対象合成ワークフローステップ数や棄却数を元に、すでに棄却した状態から棄却判定を再開することにより、より最適な棄却パターンを探査することが可能となる。状態表現検索部２０３Ｅで検索した結果、ある実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤの組み合わせが前述状態履歴格納ＤＢ２０２Ｅに保持されていない場合は、その実行状態と同様の状況で過去に棄却判定を実施したことがないことを意味するため、後述する検索ポリシ設定部２０７Ｅの設定により、過去に同様ではないが似た状況にて棄却判定を実施していないかを検索する。似た状況を検索する個数に関しては特に制限はない。検索の結果、同様の状況での実施例がなく、さらに検索ポリシ設定部２０７で設定されたポリシに従い、同様ではないが似た状況にて棄却判定を実施していないかを検索した結果見つからなかった場合は、棄却なしの状態から棄却判定を実施する。また、検索の結果、同様の状況での実施例がないが、検索ポリシ設定部２０７で設定されたポリシに従い、同様ではないが似た状況にて棄却判定を実施していないかを検索した結果見つかった場合は、棄却なしの状態から棄却判定を実施すると同時に−１個以上の、同様ではないが似た状況にて棄却判定を実施した実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットに紐付く一連のデータを取得して棄却判定を行う。このように、似た状況にて棄却判定を実施した例が検索できれば、棄却パターンが似たような結果になることが予想されることから、それらを活用することにより、より短時間で有効な棄却パターンを発見できることが期待できる。ただし、棄却パターンが似たような結果になるとは限らないため、棄却なしでも棄却判定を行い、後に評価値比較部１６０にて最もよい評価値を与えるものを選択する。【０２４４】
状態比較機能部２００Ｅは、強制棄却が実行された後に、棄却の状態を表現する一連のデータを収集する棄却状態取得部２０４Ｅを含む。収集された一連のデータは、前述状態表現検索部２０３Ｅで保持されている、実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤのセットに紐付けられ、状態履歴格納ＤＢ２０２Ｅへ履歴を保持するための基礎データとして用いられる。さらに、棄却状態取得部２０４Ｅは、強制棄却の棄却パターンが状態履歴格納ＤＢ２０２Ｅに保持されている過去の棄却パターンと同じ場合に棄却判定結果が収束したと判断し、棄却判定結果が収束しているかを判定するフラグを成立させる。【０２４５】
状態比較機能部２００Ｅは、強制棄却が実行された情報から棄却パターンを表現するデータを生成する棄却状態表現生成部２０６Ｅを含む。棄却パターンを表現するデータを表現する方法としてはベクトルを想定しているが、特に制限はない。【０２４６】
状態比較機能部２００Ｅは、状態履歴格納ＤＢ２０２Ｅへ保持するための基礎データを取得することにより、実行状態を表現するデータと棄却対象合成ワークフロー定義ＩＤに対し、それらに紐付く一連のデータを状態履歴格納ＤＢ２０２Ｅへ新規登録、あるいは更新を行う状態表現記録部２０５Ｅを含む。【０２４７】
状態比較機能部２００Ｅは、状態表現検索部２０３Ｅが状態履歴格納ＤＢ２０２Ｅより同様ではないが似た状況に相当する履歴を検索するためのポリシを定める検索ポリシ設定部２０７Ｅを含む。ここで定めるポリシは、どの程度の個数の似た状況の履歴を探すか、といった検索個数や、「似た状況」とみなすための条件等を指す。なお、状態履歴格納ＤＢ２０２Ｅには、実行状態を端的な形式で表現する方法としては行列やベクトルを想定しているため、「似た状況」とみなすための条件としては、「行列の各要素が似ている」「現在の実行状態を示すベクトルと履歴に保持されるベクトルの大きさがほぼ同じで、かつベクトルのなす角度が小さい」等が考えられる。【０２４８】
棄却判定機能部１００Ｅは、各合成ワークフローに関する履歴情報を取得し、統計計算や、合成ワークフロー投入予測データ作成を行うイベントデータ統計計算部１０４を含む。イベントデータ統計計算部１０４では、合成ワークフロー定義ＩＤで特定される過去の履歴を参照し、処理が完了した合成ワークフローの個数や、棄却された合成ワークフローの個数、過去の平均応答時間等を計算する。また、イベントデータ統計計算部１０４は、過去の履歴について合成ワークフロー投入平均間隔や、その分散等の統計処理を行い、各合成ワークフローの投入平均間隔や分散等を合成ワークフロー投入情報としてまとめ、さらに今後最も可能性の高い合成ワークフロー投入パターンを合成ワークフロー投入予測データとして作成する。合成ワークフロー投入情報は、合成ワークフローの投入状況を示す指標の一つとして用いられ、各合成ワークフロー定義ＩＤと、それに紐付く投入平均間隔や分散等が一覧になっていればよい。合成ワークフロー投入予測データは、後述するシミュレータ用基礎データに用いられる。合成ワークフローを処理する各業務アプリケーションシステム群や各ワークフローシステム群の負荷は、リソースを共有している場合もあるために、同時に実行されている他の合成ワークフロー群に大きく影響されることから、投入予測をすることによって、より正確にシミュレートする意図がある。合成ワークフロー投入予測データには、いつ、どの合成ワークフロー定義ＩＤに属する合成ワークフローが投入されるかが記載されていればよい。【０２４９】
棄却判定機能部１００Ｅは、現在の合成ワークフロー実行状況を示す実行状況データを取得し、また合成ワークフロー投入予測データを取得することで、現在および将来の各合成ワークフローの状態を表現するシミュレータ用基礎データを作成するシミュレート用データ作成部１０３を含む。実行状況データには、合成ワークフローＩＤで一意に特定される実行中の合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレータ用基礎データには、合成ワークフローＩＤで一意に特定される実施中および投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているかをステップ数で表現されていればよい。また、シミュレート用データ作成部１０３は、合成ワークフロー投入情報を取得した場合、後述する仮想棄却データ作成部１０１Ｅへ通知する。【０２５０】
棄却判定機能部１００Ｅはさらに、仮想棄却データ作成部１０１Ｅを含む。仮想棄却データ作成部１０１Ｅは、棄却判定を行う合成ワークフロー群を特定する合成ワークフロー定義ＩＤを取得し、さらにシミュレータ用基礎データ、合成ワークフロー投入情報を取得し、状態比較機能部２００Ｅへこれらの情報を通知した上で、棄却個数や棄却対象を絞り込むためのステップ数基準値を取得し、シミュレータ用基礎データのうちの棄却個数分の合成ワークフローを仮想的に棄却したシミュレータ用データを作成する。仮想棄却データ作成部１０１Ｅは、仮想的に棄却するにあたり、実施中の合成ワークフローのうち、ステップ数で示される進行度が一定の基準以下のものを抽出し、そのうちから棄却個数分の合成ワークフローを棄却する、すべての組み合わせについて考慮する。仮想棄却データ作成部１０１Ｅは、棄却対象となる合成ワークフローを、実行中の全合成ワークフローとするのではなく、ステップ数で示される進行度が一定の基準以下のものに限定するため、より能率的に短時間で棄却判定を行うことができる。そのため、仮想棄却データ作成部１０１Ｅは、棄却対象を絞り込むためのステップ数基準値、棄却対象となる合成ワークフローの個数、仮想的に棄却する個数、棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を選ぶその組み合わせの数を記憶する。また、仮想棄却データ作成部１０１Ｅでは組み合わせ数分のシミュレータ用データが作成されるため、仮想棄却データ作成部１０１Ｅは、どのシミュレータ用データはどの合成ワークフローＩＤを持つ合成ワークフローを仮想棄却したかを紐付ける管理テーブルも同様に記憶している。合成ワークフローシミュレータ用データには、合成ワークフローＩＤで一意に特定される実行中あるいは投入予測される合成ワークフローが、どの合成ワークフロー定義ＩＤに属し、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されていればよい。【０２５１】
仮想棄却データ作成部１０１Ｅは、後述する処理継続判定部１１０Ｅより棄却対象を絞り込むためのステップ数基準値を取得した場合、保持している棄却対象となる合成ワークフローの個数から仮想的に棄却する個数を１増やした状態で再度棄却判定処理を行う。すなわち、前回の仮想的に棄却する個数ではサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができないため、仮想棄却データ作成部１０１Ｅは、仮想的に棄却する個数を１増やした状態でサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満たすことができるかどうかを判定する。【０２５２】
仮想棄却データ作成部１０１Ｅは、シミュレータ用基礎データを記憶しており、仮想的に棄却する個数を１増やした状態で再度棄却判定処理する場合にシミュレータ用基礎データを再度取得し、記憶していたシミュレータ用基礎データのステップ数に差異がないかを判定する。ステップ数に差異がある場合、仮想棄却データ作成部１０１Ｅは、実行中の合成ワークフロー群の進行度合いが変化していることを示すため、現状の状況を示す再度取得したシミュレータ用基礎データを用いて、新しい状況で棄却判定処理を継続する。【０２５３】
棄却判定機能部１００Ｅはさらに、合成ワークフローＩＤで一意に特定される合成ワークフローが、いつ、どの程度進行しているか、あるいは棄却されるかをステップ数で表現されたデータが与えられれば、各合成ワークフローの応答時間を予測するシミュレーション処理部１１２を含む。シミュレーション処理部１１２は、合成ワークフローＩＤで一意に特定される合成ワークフローと、その合成ワークフローが属する合成ワークフロー定義ＩＤ、およびその合成ワークフローの応答時間をシミュレーション結果一覧にして出力する。【０２５４】
棄却判定機能部１００Ｅはさらに、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づいた、棄却判定条件を保持する条件設定部１０６を含む。条件設定部１０６は、棄却判定を行うための制限時間を保持している。また、条件設定部１０６は、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報に基づき作成される評価値計算関数を保持している。評価値計算関数は、合意サービス水準を判定するための、合成ワークフローの処理時間や平均処理時間、棄却率などを変数に持ち、評価値計算関数から求まる評価値が高ければ高いほど合意サービス水準を満たすように定義される。また、評価値計算関数は必ずしも数学的に定義される必要はなく、プログラム形式で記述しても構わない。また、条件設定部１０６は、合意サービス水準判定閾値を保持しており、評価値計算関数から求まる評価値が合意サービス水準判定閾値を超えていれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準を満足すると判定する。【０２５５】
棄却判定機能部１００Ｅはさらに、判定開始通知と棄却判定を行うための制限時間を取得して、棄却判定終了時刻を保持する時刻判定部１０２Ｅを含む。時刻判定部１０２Ｅは、制限時間判定依頼を取得した場合、現在時刻を取得し、該現在時刻を棄却判定終了時刻と比較することで、制限時間内に棄却判定が行えたかどうかの判定を行う。【０２５６】
棄却判定機能部１００Ｅはさらに、シミュレーション結果一覧から、棄却判定対象となる合成ワークフロー定義ＩＤを持つ合成ワークフローＩＤを抽出し、その応答時間、および平均応答時間、棄却率を元に評価値計算関数で評価値を計算して評価値一覧表を作成する評価値計算部１０５を含む。評価値計算部１０５は、シミュレートの組み合わせ数を保持しており、組み合わせ数分の各シミュレーション結果に対して評価値一覧表を作成した後、時刻判定部１０２Ｅへ制限時間判定依頼を通知し、定められた制限時間内で処理が完了しているかを確認する。棄却判定機能部１００Ｅは、定められた制限時間内で処理が完了している場合処理を継続するが、定められた制限時間内で処理が完了できなかった場合、後述する評価値記録部１１３へ対し、後述する最高評価値が保持されているかの確認を行う。【０２５７】
棄却判定機能部１００Ｅはさらに、組み合わせ数の評価値一覧表を元に、各評価値一覧表から最低値を抽出し、組み合わせ数分の最低値を一覧にした最低値一覧表を作成する最低評価値抽出部１０７を含む。【０２５８】
棄却判定機能部１００Ｅはさらに、最低値一覧表を元に、組み合わせ数分の最低値のなかから最高値を抽出する最高評価値抽出部１０８を含む。最高値は、ある棄却対象を絞り込むためのステップ数基準値以下の実行中合成ワークフローのなかから、組み合わせ個数分の合成ワークフローを仮想的に棄却した場合に、棄却しなかった合成ワークフローの評価値は、少なくとも最高値にすることができるということを意味する。【０２５９】
棄却判定機能部１００Ｅはさらに、最高評価値を取得し、後述する評価値記録部１１３に保持されている最高評価値と比較を行い、どちらがより値の高い最高評価値となっているか判定を行う棄却判定部１０９Ｅを含む。棄却判定部１０９Ｅは、後述する評価値記録部１１３に保持されている最高評価値よりも、取得した最高評価値の値が高い場合、実行中の合成ワークフローのうち、現在棄却判定を行っている仮想棄却個数分の合成ワークフローを棄却すれば、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準はさらに改善されると判定し、後述する評価値記録部１１３へ保持している最高評価値を通知し最高評価値を更新する。また、棄却判定部１０９Ｅは、後述する評価値記録部１１３に保持されている最高評価値よりも、取得した最高評価値の値が低い場合、実行中の合成ワークフローのうち現在棄却判定を行っている仮想棄却個数分の合成ワークフローを棄却したとしても、後述する評価値記録部１１３に保持されている最高評価値を与える棄却個数分の合成ワークフローを棄却した場合と比較してサービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準をさらに改善することはできないと判定する。【０２６０】
棄却判定機能部１００Ｅはさらに、棄却対象となる合成ワークフローの個数と、仮想的に棄却する個数を取得し、仮想的に棄却する個数をさらに増やした状態で棄却判定処理が継続できるか判定する処理継続判定部１１０Ｅを含む。仮想的に棄却する個数を増やすことができないと判定された場合、処理継続判定部１１０Ｅは棄却判定結果が収束しているかを判定するフラグを成立させ、後述する評価値記録部１１３へフラグを通知して一連の棄却判定処理を終了する。処理継続判定部１１０Ｅは、仮想的に棄却する個数を増やすことができると判定した場合、棄却対象を絞り込むためのステップ数基準値を取得する。ステップ数基準値に、実行中の合成ワークフローすべてを棄却対象としないことを意味する符号が設定されている場合、新規にステップ数基準値を設定するため、処理継続判定部１１０Ｅは、評価値一覧表と合意サービス水準判定閾値を取得し、実行中の合成ワークフロー群のうちで合意サービス水準を満たせない最もステップ数が大きい合成ワークフロー、すなわち合意サービス水準を満たせない最も処理進行度合いが進んでいる合成ワークフローを抽出し、その合成ワークフローのステップ数をステップ数基準値とする。また、取得したステップ数基準値にすでに値が保持されている場合、処理継続判定部１１０Ｅは、その値をステップ数基準値とする。処理継続判定部１１０Ｅは、仮想棄却データ作成部１０１Ｅへステップ数基準値を通知する。【０２６１】
棄却判定機能部１００Ｅはさらに、最高評価値を取得した場合に、該当する棄却対象合成ワークフローに対して強制棄却を実行する命令を送信する棄却命令送信部１１１Ｅを含む。また、棄却命令送信部１１１Ｅは、棄却判定結果が収束しているかを判定するフラグを取得した場合は前述フラグをそのまま通知するが、棄却判定結果が収束しているかを判定するフラグを取得しなかった場合は、棄却判定結果が収束していないと判定して前述フラグを通知する。また、棄却命令送信部１１１Ｅは、棄却判定を終了する命令を受信した場合は、強制棄却を実行する命令を送信せずに一連の処理を終了する。【０２６２】
棄却判定機能部１００Ｅはさらに、最高評価値を取得し、今まで実施された棄却判定において最もよい最高評価値を保持、記録する評価値記録部１１３を含む。評価値記録部１１３は、制限時間に達した場合に、保持している最高評価値を確認し、最高評価値を保持していない場合は一連の処理を終了し、保持している場合は保持している最高評価値を通知する。同時に、棄却判定結果が収束しているかを判定するフラグを取得している場合、前述フラグを通知する。【０２６３】
次に、第５の実施の形態の動作について、図９５および図９６のフローチャートを用いて詳細に説明する。なお、第５の実施の形態の動作は、途中の動作が第４の実施の形態の動作と同じため、共通の動作の箇所については記述を省略する。【０２６４】
第５の実施の形態の最初の動作については、第４の実施の形態のステップ５１６まで同じである。即ち、棄却判定を行う際の実行中の合成ワークフローに関して、合成ワークフロー定義毎にステップ数ごとに合成ワークフローの個数を集約する。ここまでの詳細な一連の動作の説明に関しては、第４の実施の形態ステップ５００〜ステップ５１６に記載されている（ステップ６００）。【０２６５】
状態表現生成部２０１Ｅは、ステップ６００に関する処理を全ての合成ワークフロー定義に関して行い、各状態表現ベクトルをまとめて状態表現行列Ｍ００１００を作成する（ステップ６０１）。【０２６６】
状態表現生成部２０１Ｅは、状態表現検索部２０３Ｅへ状態表現検索部起動信号ｄ６２を通知し、状態表現行列Ｍ００１００（ｄ６３）と仮想棄却データ作成部１０１Ｅより取得した棄却対象合成ワークフロー定義ＩＤ（ｄ６４）を通知する。【０２６７】
状態表現検索部２０３Ｅは、状態表現生成部２０１Ｅより状態表現検索部起動信号ｄ６２を受信することで起動する。状態表現検索部２０３Ｅは、状態表現生成部２０１Ｅより取得した状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤを元に、同様の組み合わせが状態履歴格納ＤＢ２０２Ｅに格納されているかを検索する（ステップ６０２）。【０２６８】
状態表現検索部２０３Ｅは、状態表現生成部２０１Ｅより取得した状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤの組み合わせが状態履歴格納ＤＢ２０２Ｄに格納されている場合、該当する履歴を元に棄却判定を行えばよいため、以後すべての処理を第４の実施の形態と同様に実施すればよい。そのため、第４の実施の形態におけるステップ５２１から処理を継続する。また、第４の実施の形態にて記載されていない評価値比較部１６０に関しては、評価値記録部１１３より評価値比較部起動信号（ｄ９７）受信後、評価値記録部１１３より最高評価値管理表Ｔ０１１００（ｄ９８）、収束判定フラグ（ｄ９９）を取得し、棄却命令送信部１１１Ｅへ対し棄却命令送信部起動信号（ｄ１００）を通知後に、評価値記録部１１３より取得した最高評価値管理表Ｔ０１１００（ｄ１０１）、収束判定フラグ（ｄ１０２）を棄却命令送信部１１１Ｅへ転送するだけでよい（ステップ６０４）。【０２６９】
状態表現検索部２０３Ｅは、状態表現生成部２０１Ｅより取得した状態表現行列Ｍ００１００と棄却対象合成ワークフロー定義ＩＤの組み合わせが状態履歴格納ＤＢ２０２Ｅに格納されていない場合、検索ポリシ設定部２０７Ｅより検索ポリシ（ｄ１０３）を取得する。検索ポリシは、「似た状況」とみなすための条件を何個抽出するか、という観点で記述されており、プログラムの形式で記述されていてもよい。「似た状況」とみなすための条件としては、「行列の各要素が似ている」「現在の実行状態を示すベクトルと履歴に保持されるベクトルの大きさがほぼ同じで、かつベクトルのなす角度が小さい」等が考えられるが、特に制約は設けない。状態表現検索部２０３Ｅは、検索ポリシ設定部２０７Ｅより取得した検索ポリシに従い、棄却対象合成ワークフロー定義ＩＤが同じで、状態表現行列Ｍ００１００と「似た状況」の履歴が状態履歴格納ＤＢ２０２Ｅに格納されているかを検索する（ステップ６０５）。【０２７０】
状態表現検索部２０３Ｅは、検索ポリシ設定部２０３Ｅより取得した検索ポリシに従い、棄却対象合成ワークフロー定義ＩＤが同じで、状態表現行列Ｍ００１００と「似た状況」の履歴が一個もなかった場合、棄却なしの状態から棄却判定を行えばよいため、以後全ての処理を第４の実施の形態と同様に実施すればよい。そのため、本発明の第４の実施の形態におけるステップ５２０から処理を継続する。また、第４の実施の形態にて記載されていない評価値比較部１６０に関しては、評価値記録部１１３より評価値比較部起動信号（ｄ９７）受信後、評価値記録部１１３より最高評価値管理表Ｔ０１１００（ｄ９８）、収束判定フラグ（ｄ９９）を取得し、棄却命令送信部１１１Ｅへ対し棄却命令送信部起動信号（ｄ１００）を通知後に、評価値記録部１１３より取得した最高評価値管理表Ｔ０１１００（ｄ１０１）、収束判定フラグ（ｄ１０２）を棄却命令送信部１１１Ｅへ転送するだけでよい（ステップ６０６）。【０２７１】
状態表現検索部２０３Ｅは、検索ポリシ設定部２０３Ｅより取得した検索ポリシに従い、棄却対象合成ワークフロー定義ＩＤが同じで、状態表現行列Ｍ００１００と「似た状況」の履歴があった場合、状態履歴格納ＤＢ２０２Ｅより「似た状況」を示す状態表現行列と棄却対象合成ワークフロー定義ＩＤの組み合わせに紐付く棄却個数（ｄ７０）、棄却対象合成ワークフローステップ数（ｄ７１）を取得する。また、ここで取得する棄却個数、棄却対象合成ワークフローステップ数の組み合わせの個数は、検索ポリシで定められる抽出個数以下となる（ステップ６０７）。【０２７２】
次に、「似た状況」の履歴結果を用いた棄却判定を実施するため、棄却判定機能部１００Ｅ'を取得した組み合わせの個数分、別途起動する。このときに棄却判定機能部１００Ｅ'に保持される各管理表等のデータは全て最初に起動していた棄却判定機能部１００Ｅに保持されている各管理表等のデータに一致させる（棄却判定機能部１００Ｅのコピーを、取得した組み合わせの個数分作成するのと同等）。起動された各棄却判定機能部１００Ｅ'に対し、それぞれ取得した棄却個数（ｄ６６）、棄却対象合成ワークフローステップ数（ｄ６５）のセットを仮想棄却データ作成部１０１Ｅ'へ通知する。以後、各棄却判定機能部１００Ｅ'は、通知された棄却個数、棄却対象合成ワークフローステップ数を元に、第４の実施の形態と同様に処理をステップ５１３から継続し（ステップ６０８）、各棄却判定機能部１００Ｅ'は実施の形態４のステップ５４２直前まで処理を継続する（ステップ６０９）。【０２７３】
一方、もともと起動していた棄却判定機能部１００Ｅに対しては、棄却なしの状態から棄却判定を実施するため、棄却対象合成ワークフローステップ数を棄却なしの状態として仮想棄却データ作成部１０１Ｅへ棄却対象合成ワークフローステップ数（ｄ６５）として−１を、棄却個数（ｄ６６）を０として通知する。なお、棄却対象合成ワークフローステップ数は、実行中の合成ワークフローを棄却しないことを示せれば、−１である必要はない。以後、棄却判定機能部１００Ｅは、棄却なしの状態から棄却判定を実施するため、本発明の第４の実施の形態と同様に処理をステップ５２０から継続し（ステップ６１０）、棄却判定機能部１００Ｅは本発明の実施の形態４のステップ５４２直前まで処理を継続する（ステップ６１１）。【０２７４】
棄却判定機能部１００Ｅおよび各棄却判定機能部１００Ｅ'に含まれる評価値記録部１１３および各評価値記録部１１３'は、評価値比較部１６０の起動状態を確認し、起動していない場合に評価値比較部起動信号（ｄ９７）を通知する。評価値記録部１１３および各評価値記録部１１３'は、それぞれ保持している最高評価値管理表Ｔ０１１００（Ｔ０１１００'）（ｄ９８）および、収束判定フラグを取得していれば収束判定フラグ（ｄ９９）を評価値比較部１６０へ通知する。評価値比較部１６０は起動している棄却判定機能部１００Ｅ（１００Ｅ'）の個数分の最高評価値管理表Ｔ０１１００（Ｔ０１１００'）を取得するまで待機し、起動している棄却判定機能部１００Ｅ（１００Ｅ'）の個数分の最高評価値管理表を取得後、これらのうちから最高評価値が最も高い最高評価値管理表Ｔ０１１００（Ｔ０１１００'）と対応する収束判定フラグを抽出する（ステップ６１２）。【０２７５】
評価値比較部１６０は、最高評価値が最も高い最高評価値管理表を通知した棄却判定機能部へ対し、棄却命令送信部起動信号（ｄ１００）を通知し、抽出した最高評価値管理表（ｄ１０１）と、収束判定フラグを取得していれば収束判定フラグ（ｄ１０２）を通知する。一方、それ以外の棄却判定機能部へ対して、棄却命令送信部起動信号（ｄ１００）と棄却判定終了通知（ｄ１０４）を通知し、最高評価値管理表を通知した棄却判定機能部以外の棄却判定機能部を終了する。棄却命令送信部１１１Ｅは、棄却命令送信部起動信号（ｄ１００）を受信することによって起動する。棄却命令送信部１１１Ｅは最高評価値管理表のシミュレートＩＤフィールドからシミュレートＩＤを取得し、仮想棄却データ作成部１０１Ｅに保持されている仮想棄却合成ワークフローデータ管理表のうち、シミュレートＩＤフィールドが取得したシミュレートＩＤに一致する仮想棄却合成ワークフローデータ管理表（ｄ２０）を仮想棄却データ作成部１０１Ｅより取得する。取得した仮想棄却合成ワークフローデータ管理表の棄却合成ワークフローＩＤフィールドに保持されている合成ワークフローＩＤを持つ各実行中の合成ワークフローに対し、強制棄却命令を発行する。棄却命令送信部１１１Ｅは、評価値比較部１６０より収束判定フラグｄ１０２を受信していない場合、収束判定フラグは成立していないとみなす（受信している場合は成立しているとみなす）。さらに、棄却命令送信部１１１Ｅは棄却状態取得部２０４Ｅへ棄却状態取得部起動信号ｄ７８を通知し、最高評価値管理表（ｄ７９）と収束判定フラグｄ８０を通知する（ステップ６１３）。【０２７６】
棄却状態取得部２０４Ｅは棄却状態取得部起動信号ｄ７８を受信することにより起動する。棄却状態取得部２０４Ｅは仮想棄却データ作成部１０１Ｅより棄却個数（ｄ８９）と棄却対象合成ワークフローステップ数（ｄ９０）を取得する。このとき仮想棄却データ作成部１０１Ｅより取得する棄却個数と、棄却対象合成ワークフローステップ数は、最高評価値管理表のシミュレートＩＤフィールドが仮想棄却合成ワークフローデータ管理表のシミュレートＩＤフィールドに一致する仮想棄却条件ＩＤフィールドを抽出し、前述仮想棄却条件ＩＤフィールドに一致する仮想棄却条件ＩＤフィールドを持つ仮想棄却条件データ管理表の棄却個数フィールドと棄却対象合成ワークフローステップ数フィールドより取得する（ステップ６１４）。【０２７７】
次に、棄却状態取得部２０４Ｅは棄却状態表現生成部２０６Ｅへ棄却状態表現生成部起動信号ｄ９１と最高評価値管理表（ｄ９２）を通知する。棄却状態表現生成部２０６Ｅは棄却状態表現生成部起動信号ｄ９１を受信することにより起動する。棄却状態表現生成部２０６Ｅは仮想棄却データ作成部１０１Ｅより仮想棄却合成ワークフローデータ管理表（ｄ９３）とシミュレート用基礎データ管理表（ｄ９４）を取得する。棄却状態表現生成部２０６Ｅは、仮想棄却合成ワークフローデータ管理表のうち、シミュレートＩＤフィールドが棄却状態取得部２０４Ｅより取得した最高評価値管理表のシミュレートＩＤフィールドに一致する棄却合成ワークフローＩＤフィールドを抽出する（抽出された棄却合成ワークフローＩＤが棄却対象となった合成ワークフローのＩＤである）。次に、シミュレート用基礎データ管理表のうち、合成ワークフローＩＤフィールドが抽出した棄却合成ワークフローＩＤに一致するステップ数フィールドと合成ワークフロー定義ＩＤフィールドを抽出する。この操作により、棄却対象となった全ての合成ワークフローの合成ワークフロー定義ＩＤとステップ数が判明する。次に、棄却状態表現生成部２０６Ｅは作成する棄却状態表現ベクトルＶ００２００の要素数を決定するため、最高ステップ数保持部１５０より、判明した合成ワークフロー定義ＩＤが取りうる最大ステップ数（ｄ９５）を取得する。棄却状態表現生0成部２０６Ｅは、これらの情報を元に、取得された最大ステップ数（ｄ９５）まで、棄却された合成ワークフローの個数をステップ数毎に集約し、棄却状態表現ベクトルＶ００２００を生成する。棄却状態表現生成部２０６Ｅは、棄却状態取得部２０４Ｅへ生成した棄却状態表現ベクトルＶ００２００（ｄ９６）を通知する（ステップ６１５）。【０２７８】
棄却状態取得部２０４Ｅは、棄却状態表現生成部２０６Ｅより棄却状態表現ベクトルＶ００２００（ｄ９６）を取得後、状態表現検索部２０３Ｅより状態表現行列Ｍ００１００（ｄ８１）、棄却対象合成ワークフロー定義ＩＤ（ｄ８２）を取得する。次に、棄却状態取得部２０４Ｅは、状態表現行列Ｍ００１００（ｄ８１）、棄却対象合成ワークフロー定義ＩＤ（ｄ８２）、棄却状態表現ベクトルＶ００２００（ｄ９６）、最高表価値管理表の最高評価値フィールドより取得した評価値、棄却個数（ｄ８９）、棄却対象合成ワークフローステップ数（ｄ９０）、収束判定フラグ（ｄ８０）を元に状態履歴情報管理表Ｔ０１３００を作成する。次に、棄却状態取得部２０４Ｅは、状態表現記録部２０５Ｅへ状態表現記録部起動信号ｄ８７を通知し、状態履歴情報管理表Ｔ０１３００（ｄ８８）を通知する。状態表現記録部２０５Ｅは状態表現記録部起動信号ｄ８７を受信することにより起動する。状態表現記録部２０５Ｅは、棄却状態取得部２０４Ｅより取得した状態履歴情報管理表Ｔ０１３００を基に、状態履歴格納ＤｓＢ２０２Ｅへ新規保存（ｉｎｓｅｒｔ）し、処理を終了する（ステップ５４９）。【０２７９】
第４の実施の形態では、実行状態と棄却判定の記録をとり、同様の実行状態があれば過去の棄却結果の履歴を参照することで、結果が収束している場合には即時棄却でき、結果が収束していない場合においても過去の棄却結果よりよりよい合意サービス水準与える棄却パターンを探査することを可能としている。本第５の実施の形態では、第４の実施の形態と比較した場合、同様の実行状態があれば過去の棄却結果の履歴を参照することで、結果が収束している場合には即時棄却でき、結果が収束していない場合においても過去の棄却結果よりよりよい合意サービス水準与える棄却パターンを探査することが可能とする点は同じであるが、同様の実行状態がない場合において動作が異なる。すなわち、同様の実行状態がない場合において、第４の実施の形態では棄却なしの状態から棄却判定を実施するが、本第５の実施の形態では、現在の実行状態と「似た状況」で棄却判定を実施したことがないか、を検索ポリシに従い過去の棄却結果の履歴から検索し、見つかった場合はその情報も用いて同時に棄却判定を実施し、現在の実行状態を元に棄却判定を実施した結果と−１個以上の現在の実行状態と「似た状況」の情報を元に棄却判定を実施した結果を比較し、最もよい結果を与える棄却パターンにて棄却すると同時に、その棄却パターンを現在の実行状態の棄却結果に紐付けて記録する。なお、同様の実行状態がなく、かつ現在の実行状態と「似た状況」で棄却判定を実施したことがないか、検索ポリシに従い過去の棄却結果の履歴から検索して見つからなかった場合は、第４の実施の形態と同様に、棄却なしの状態から棄却判定を実施する。【０２８０】
このように、本第５の実施の形態では、現在の実行状態と「似た状況」で棄却判定した結果も、棄却判定に用いることから、現在の実行状況と同様の棄却結果の履歴がない場合において、第４の実施の形態と比較してよりよい棄却パターンを発見することが可能となる。これにより、本第５の実施の形態は、第４の実施の形態と比較してさらに有効である。【０２８１】
ここで、特許請求の範囲に記載された各手段と、図１、図４、図６８、図７１、図９５の各部との対応について説明する。イベント情報記録手段はイベント格納ＤＢ１２０に対応する。進行度取得手段はステップ数監視部１３０に対応する。仮想棄却状態表現手段は仮想棄却データ作成部１０１Ａ−１０１Ｂ−１０１Ｃ−１０１Ｄ−１０１Ｅに対応する。処理動作予測手段はシミュレーション処理部１１２に対応する。評価値表現手段はイベントデータ統計計算部１０４、評価値計算部１０５、条件設定部１０６に対応する。判定手段は最低評価値抽出部１０７と最高評価値抽出部１０８と棄却判定部１０９Ａ（１０９Ｂ−１０９Ｃ−１０９Ｄ−１０９Ｅ）の組み合わせに対応する。棄却対象限定進行度生成手段は評価値計算部１０５と条件設定部１０６と処理継続判定部１１０Ａ（１１０Ｂ−１１０Ｃ−１１０Ｄ−１１０Ｅ）の組み合わせに対応する。時刻判定手段は時刻判定部１０２Ａ−１０２Ｂ−１０２Ｃ−１０２Ｄ−１０２Ｅに対応する。条件設定手段は条件設定部１０６に対応する。評価値記録手段は評価値記録部１１３に対応する。イベントデータ統計計算手段はイベントデータ統計計算部１０４に対応する。評価値計算手段は評価値計算部１０５に対応する。最低評価値抽出手段は最低評価値抽出部１０７に対応する。最高評価値抽出手段は最高評価値抽出部１０８に対応する。棄却判定手段は棄却判定部１０９Ａ−１０９Ｂ−１０９Ｃ−１０９Ｄ−１０９Ｅに対応する。処理継続判定手段は処理継続判定部１１０Ａ−１１０Ｂ−１１０Ｃ−１１０Ｄ−１１０Ｅに対応する。状態判定手段は状態比較機能部２００Ｄ、２００Ｅに対応する。状態表現生成手段は状態表現生成部２０１Ｄ、２０１Ｅと棄却状態表現生成部２０６Ｄ、２０６Ｅに対応する。棄却判定履歴情報記録手段は状態履歴格納ＤＢ２０２Ｄ、２０２Ｅと状態表現記録部２０５Ｄ、２０６Ｄに対応する。履歴検索手段は状態表現検索部２０３Ｄ、２０３Ｅに対応する。検索ポリシ保持手段は検索ポリシ設定部２０７Ｅに対応する。評価値比較手段は評価値比較部１６０に対応する。【０２８２】
次に、第１および第２、第３、第４、第５の実施の形態の実施例を示す。【０２８３】
［第１の実施例］
第１の実施例を説明するにあたり、棄却判定を行う合成ワークフロー定義のＩＤを仮に「０００１」とし、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報は要求合成ワークフロー応答時間Ｔを６０秒、要求合成ワークフロー平均応答実行時間Ｔａを５０秒、要求棄却率Ｒを５％であるとする。また、サービスプロバイダとサービスコーディネータの間で結ばれた評価値計算関数ｆは、シミュレータで求まる予測応答時間Ｔｓ、合成ワークフロー平均応答時間Ｔｓａ、棄却率Ｒｓとした場合に、ｆ＝（Ｔ／Ｔｓ）×（Ｔａ／Ｔｓａ）×（（Ｒ＋１）／（Ｒｓ＋１））で定めるものとする。そして、ｆが１以上の時に合意サービス水準は満たされていると判定すると合意されているものとする。すなわち、合意サービス水準判定閾値は１であるとする。また、シミュレートの制限時間は１秒とする。【０２８４】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤ「０００１」を保持しており、すでに実行状態管理表Ｔ１０１００（図１８）を保持しているものとする。実行状態管理表Ｔ１０１００は、５個の合成ワークフローが実施中である例である。ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視しており、合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローについて、業務アプリケーションより応答メッセージイベントデータが新規に追加されたことを検出する。ステップ数監視部１３０は実行状態管理表Ｔ１０１００を更新し、実行状態管理表Ｔ１０１０１（図１９）を作成する。合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについてステップ数に変化があることを検知したため、仮想棄却データ作成部１０１Ａの起動状態を確認し、仮想棄却データ作成部１０１Ａが起動中でないために起動させる。仮想棄却データ作成部１０１Ａへ合成ワークフロー定義ＩＤ「０００１」を通知する。【０２８５】
仮想棄却データ作成部１０１Ａは仮想棄却条件データ管理表Ｔ１０７００（図２０）を作成する。仮想棄却条件データ管理表Ｔ１０７００は仮想棄却条件ＩＤを仮に「０００２５」とした例であり、棄却なしの条件でシミュレートするため、棄却個数は０、棄却対象合成ワークフロー定義ＩＤは「０００１」となる。また、棄却対象合成ワークフローステップ数は「−１」としている。なお、この時点では棄却対象合成ワークフロー個数、組み合わせ数は未定である。【０２８６】
時刻判定部１０２Ａは、現在時刻が「１３：４８：３２．１０７」であること、シミュレートの制限時間が１秒であることから、判定終了時刻が「１３：４８：３３．１０７」であることを計算し、保持する。【０２８７】
シミュレータ用データ作成部１０３は、仮想棄却データ作成部１０１Ａによって起動された後、実行状態問い合わせ信号ｄ４２をイベント情報送信部１４０へ通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０１を取得し、シミュレータ用データ作成部１０３へ通知する。【０２８８】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２００（図２１）を作成する。【０２８９】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１００および合成ワークフロー投入予測管理表Ｔ１０２００を元にシミュレート用基礎データ管理表Ｔ１０９００（図２２）を作成する。シミュレート用基礎データ管理表Ｔ１０９００は、合成ワークフローＩＤ「０００３６３」〜「０００３６７」の時刻フィールドには現在時刻である「１３：４８：３３．１０７」を設定し、将来投入されると予測された合成ワークフローＩＤ「Ｓ００１」〜「Ｓ００３」のステップ数フィールドには０を設定した例である。【０２９０】
仮想棄却データ作成部１０１Ａは、棄却対象合成ワークフローステップ数が「−１」（棄却なし）であり、棄却対象合成ワークフロー定義ＩＤが「０００１」であること、およびシミュレート用基礎データ管理表Ｔ１０９００から、棄却対象合成ワークフロー個数は、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」の４個であると判定し、仮想棄却条件データ管理表Ｔ１０７００（図２０）に保持する。また、棄却個数は０であり、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち４個から０個を選ぶ組み合わせの個数は４Ｃ０＝１であるため、組み合わせ個数は「１」として仮想棄却条件データ管理表Ｔ１０７００（図２０）に保持する。【０２９１】
仮想棄却データ作成部１０１Ａはシミュレーション処理部１１２の入力データとしてシミュレート用基礎データ管理表Ｔ１０９００（図２２）を元に仮想棄却データ管理表Ｔ１０８００（図２３）を作成する。初回は棄却数０、組み合わせ数が１であるため−１個の仮想棄却データ管理表Ｔ１０８００を作成する。仮想棄却データ管理表Ｔ１０８００はシミュレートＩＤを仮に「０００２７」とした例である。また、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）を作成し、仮に仮想棄却合成ワークフローＩＤを「０００５８」として仮想棄却合成ワークフローデータエントリＴ１０６０１を作成する。このとき、棄却個数が０であるため、棄却合成ワークフローＩＤは「Ｎｏｎｅ」とする。【０２９２】
仮想棄却データ管理表Ｔ１０８００を元にシミュレーション処理部１１２で処理を実行し、本実施例ではシミュレーション結果管理表Ｔ１０３００（図２５）が作成されたものとする。シミュレーション処理部１１２はシミュレーション結果管理表Ｔ１０３００を評価値計算部１０５へ通知する。【０２９３】
評価値計算部１０５は、保持している棄却対象合成ワークフロー定義ＩＤ「０００１」をイベントデータ統計計算部１０４へ通知し、統計情報データ管理表Ｔ１１０００（図２６）を取得する。統計情報データ管理表Ｔ１１０００は、統計情報ＩＤを「００５」とし、今まで合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについての実行済み合成ワークフロー数が２００、実行済み合成ワークフローの平均応答時間が４７．０秒、棄却合成ワークフロー数が９となる例である。評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３００のうち合成ワークフロー定義ＩＤが「０００１」であるエントリと統計情報データ管理表Ｔ１１０００を元に評価値計算関数ｆを用いて評価値管理表Ｔ１０４００（図２７）を作成する。シミュレーション結果管理表Ｔ１０３００のうち合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が３５５秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓａは
（４７．０×２００＋３５５）÷（２００＋６）＝４７．３５４
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４７．３５４秒となる。同様にして、棄却率Ｒｓは、棄却なしで実施していることを考慮して（９＋０）÷（２００＋９＋６）＝０．０４２となる。そのため、評価値管理表Ｔ１０４００の合成ワークフローＩＤが「０００３６３」の評価値は、（５０．０÷４７．３５４）×（６０÷５０）×（（０．０５＋１）÷（０．０４２＋１））＝１．２７７となっている。評価値計算部１０５で現在保持している組み合わせ数が１であるため、作成される評価値管理表は評価値管理表Ｔ１０４００（図２７）のみである。評価値管理表Ｔ１０４００の作成後、評価値計算部１０５は時刻判定部１０２Ａに対して制限時刻判定依頼ｄ１２を通知する。時刻判定部Ａ１０２は、現在時刻「１３：４８：３２．１３０」を取得し、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５へ対し制限時間判定応答ｄ１３を通知する。評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、最低評価値抽出部１０７を起動し、評価値管理表Ｔ１０４００を通知する。最低評価値抽出部１０７は、評価値管理表Ｔ１０４００の最低評価値同士を比較し、最低値となる評価値エントリＴ１０４０１を抽出して最低評価値管理表Ｔ１０５００（図２８）を作成する。最低評価値抽出部１０７は最高評価値抽出部１０８を起動し、最低評価値管理表Ｔ１０５００を通知する。最高評価値抽出部１０８は最低評価値管理表Ｔ１０５００の最低評価値エントリが１個であるため、最高値を「０．７９８」として最高評価値管理表Ｔ１１１００（図２９）を作成する。最高評価値抽出部１０８は棄却判定部１０９Ａを起動し、最高評価値管理表Ｔ１１１００を通知する。棄却判定部１０９Ａは、最高評価値「０．７９８」が合意サービス水準判定閾値「１」以下であるため、処理継続判定部１１０Ａを起動し、最高評価値管理表Ｔ１１１００を通知する。【０２９４】
処理継続判定部１１０Ａは、仮想棄却データ作成部１０１Ａより取得した仮想棄却条件データ管理表Ｔ１０７００（図２０）より棄却個数「０」および棄却対象合成ワークフロー個数「４」を取得する。棄却個数＜棄却対象合成ワークフロー個数であり、かつ仮想棄却条件データ管理表Ｔ１０７００の棄却対象合成ワークフローステップ数が「Ｎｏｎｅ」、すなわち「棄却なし」の状態となっているため、処理継続判定部１１０Ａは棄却対象合成ワークフローステップ数を新規に設定する。処理継続判定部１１０Ａは、評価値計算部１０５より評価値管理表Ｔ１０４００（図２７）を取得し、評価値が合意サービス水準判定閾値「１」未満となる評価値エントリＴ１０４０１、Ｔ１０４０２を抽出する。また、処理継続判定部１１０Ａは、仮想棄却データ作成部１０１Ａより仮想棄却データ管理表Ｔ１０８００（図２３）を取得し、評価値エントリＴ１０４０１、Ｔ１０４０２に対応するステップ数を取得する。評価値エントリＴ１０４０１に対応するのは仮想棄却データエントリＴ１０８０１であり、評価値エントリＴ１０４０２に対応するのは仮想棄却データエントリＴ１０８０２であるため、それぞれステップ数は「５」および「２」となる。したがって、ステップ数は「５」が最大となり、処理継続判定部１１０Ａは、これを棄却対象合成ワークフローステップ数として仮想棄却データ作成部１０１Ａへ通知する。【０２９５】
仮想棄却データ作成部１０１Ａは仮想棄却条件データ管理表Ｔ１０７００（図２０）を元に、新規に仮想棄却条件データ管理表Ｔ１０７０１（図３０）を作成する。仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフローステップ数には、処理継続判定部１１０より取得した棄却対象合成ワークフローステップ数「５」を設定し、棄却個数は仮想棄却条件データ管理表Ｔ１４の棄却個数「０」に１を加えた「１」を設定する。棄却対象合成ワークフロー定義ＩＤに仮想棄却条件データ管理表Ｔ１０７００（図２０）の棄却対象合成ワークフロー定義ＩＤ「０００１」を設定したのち、仮想棄却条件データ管理表Ｔ１０７００を破棄する。なお、この時点では仮想棄却条件データ管理表Ｔ１０７０１（図３０）の棄却対象合成ワークフロー個数、組み合わせ数については未定である。【０２９６】
シミュレート用データ作成部１０３は、実行状態問い合わせ信号ｄ４２を再度、イベント情報送信部１４０へ通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０２（図３１）を取得し、シミュレータ用データ作成部１０３へ通知する。【０２９７】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を再度取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２０１（図３２）を作成する。【０２９８】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１０２（図３１）および合成ワークフロー投入予測管理表Ｔ１０２０１（図３２）を元にシミュレート用基礎データ管理表Ｔ１０９０１（図３３）を新規に作成し、仮想棄却データ作成部１０１Ａへ通知する。【０２９９】
仮想棄却データ作成部１０１Ａは、シミュレート用基礎データ管理表Ｔ１０９００（図２２）を保持しているため、合成ワークフローＩＤ、ステップ数について新規に作成したシミュレート用基礎データ管理表Ｔ１０９０１（図３３）と比較を行う。本実施例は合成ワークフロー群の実施状況に変化がなかった例である。合成ワークフロー群の実施状況に変化がないため、引き続き棄却判定を継続する。仮想棄却データ作成部１０１Ａは、保持している仮想棄却条件データ管理表Ｔ１０７０１（図３０）より棄却対象合成ワークフローステップ数「５」を取得し、実行中の合成ワークフロー群の中で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下であるエントリの個数を取得する。本実施例では、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」の合成ワークフローは、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」であり、そのうちステップ数が「５」以下である個数は合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であるため、仮想棄却条件データ管理表Ｔ１０７０１（図３０）の棄却対象合成ワークフロー個数は「３」となる。次に、仮想棄却条件データ管理表Ｔ１０７０１の棄却個数は「１」であるため、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から１個を選ぶ組み合わせの個数は３Ｃ１＝３であるため、組み合わせ個数は「３」として仮想棄却条件データ管理表Ｔ１０７０１に保持する。【０３００】
仮想棄却データ作成部１０１Ａは、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」であるのもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下である合成ワークフローについて、棄却個数「１」分を仮想的に棄却した仮想棄却データ管理表を作成する。本実施例では、合成ワークフローＩＤ「０００３６４」を棄却したものが仮想棄却データ管理表Ｔ１０８０３（図３４）であり、合成ワークフローＩＤ「０００３６４」の仮想棄却データエントリＴ１０８０４のステップ数に仮想棄却を示す「ＲＥＪＥＣＴ」を設定している。同様に、合成ワークフローＩＤ「０００３６６」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０５（図３５）であり、合成ワークフローＩＤ「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０６（図３６）である。また、仮想棄却データ作成部１０１Ａは、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）に仮想棄却合成ワークフローデータエントリを追加し、３つの仮想棄却データ管理表Ｔ１０８０３、Ｔ１０８０５、Ｔ１０８０６をシミュレーション処理部１１２へ通知する。【０３０１】
シミュレーション処理部１１２で処理を実行し、本実施例では仮想棄却データ管理表Ｔ１０８０３（図３４）に対してシミュレーション結果管理表Ｔ１０３０１（図３７）が、仮想棄却データ管理表Ｔ１０８０５（図３５）に対してシミュレーション結果管理表Ｔ１０３０２（図３８）が、仮想棄却データ管理表Ｔ１０８０６（図３６）に対してシミュレーション結果管理表Ｔ１０３０３（図３９）がそれぞれ作成されたものとする。シミュレーション処理部１１２はシミュレーション結果管理表Ｔ１０３０１、Ｔ１０３０２、Ｔ１０３０３を評価値計算部１０５へ通知する。【０３０２】
評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３０１（図３７）に対して評価値管理表Ｔ１０４０３（図４０）を、シミュレーション結果管理表Ｔ１０３０２（図３８）に対して評価値管理表Ｔ０４０４（図４１）を、シミュレーション結果管理表Ｔ１０３０３（図３９）に対して評価値管理表Ｔ１０４０５（図４２）を作成する。評価値を計算するにあたり、シミュレーション結果管理表Ｔ１０３０１については、合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が２８０秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため（合成ワークフローの投入数が６でありそのうち１個を仮想棄却している）、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓａは（４７．０×２００＋２８０）÷（２００＋６）＝４６．９９０となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．９９０秒となる。同様にして、棄却率Ｒｓは、仮想棄却を１個していることを考慮して、（９＋１）÷（２００＋９＋６）＝０．０４７となる。そのため、評価値管理表Ｔ１０４０３（図４０）の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．９９０）×（６０÷５０）×（（０．０５＋１）÷（０．０４７＋１
））＝１．２８１
となっている。評価値計算部１０５で保持している組み合わせ数は「３」であるため、評価値計算部１０５は、３個の評価値管理表Ｔ１０４０３、Ｔ１０４０４、Ｔ１０４０５が作成された後、時刻判定部１０２Ａに対して制限時刻判定依頼ｄ１２を通知する。【０３０３】
時刻判定部１０２Ａは、現在時刻「１３：４８：３２．５５２」を取得し、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５に対し制限時間判定応答ｄ１３を通知する。【０３０４】
評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、評価値管理表Ｔ１０４０３、Ｔ１０４０４、Ｔ１０４０５を最低評価値抽出部１０７へ通知する。【０３０５】
最低評価値抽出部１０７は、評価値管理表Ｔ１０４０３、Ｔ１０４０４、Ｔ１０４０５からそれぞれ最低値となる評価値エントリを抽出して、最低評価値管理表Ｔ１０５０１（図４３）を作成し、最高評価値抽出部１０８へ通知する。【０３０６】
最高評価値抽出部１０８は、最低評価値管理表Ｔ１０５０１から最高値「０．９１５」を抽出して最高評価値管理表Ｔ１１１０１（図４４）を作成し、棄却判定部１０９Ａへ通知する。【０３０７】
棄却判定部１０９Ａは、最高評価値「０．９１５」が合意サービス水準判定閾値「１」以下であるため、処理継続判定部１１０Ａへ最高評価値管理表Ｔ１１１０１を通知する。【０３０８】
処理継続判定部１１０Ａは、仮想棄却データ作成部１０１Ａより取得した仮想棄却条件データ管理表Ｔ１０７０１(図３０)より棄却個数「１」および棄却対象合成ワークフロー個数「３」を取得する。棄却個数＜棄却対象合成ワークフロー個数であり、かつ仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフローステップ数が「５」となっているため、棄却対象合成ワークフローステップ数「５」を仮想棄却データ作成部１０１Ａへ通知する。【０３０９】
仮想棄却データ作成部１０１Ａは仮想棄却条件データ管理表Ｔ１０７０１を元に、仮想棄却条件データ管理表Ｔ１０７０２（図４５）を新規に作成する。仮想棄却データ作成部１０１Ａは、仮想棄却条件データ管理表Ｔ１０７０２の棄却対象合成ワークフローステップ数には、処理継続判定部１１０Ａより取得した棄却対象合成ワークフローステップ数「５」を設定し、棄却個数は仮想棄却条件データ管理表Ｔ１０７１の棄却個数「１」に１を加えた「２」を設定する。仮想棄却データ作成部１０１Ａは、棄却対象合成ワークフロー定義ＩＤに仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー定義ＩＤ「０００１」を設定した後、仮想棄却条件データ管理表Ｔ１０７０１を破棄する。なお、この時点では仮想棄却条件データ管理表Ｔ１０７０２の棄却対象合成ワークフロー個数、組み合わせ数については未定である。【０３１０】
シミュレート用データ作成部１０３は、実行状態問い合わせ信号をイベント情報送信部１４０へ再度通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０３（図４６）を取得し、シミュレータ用データ作成部１０３へ通知する。【０３１１】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を再度取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２０２（図４７）を作成する。【０３１２】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１０３および合成ワークフロー投入予測管理表Ｔ１０２０２を元にシミュレート用基礎データ管理表Ｔ１０９０２（図４８）を新規に作成し、仮想棄却データ作成部１０１Ａへ通知する。【０３１３】
仮想棄却データ作成部１０１Ａは、シミュレート用基礎データ管理表Ｔ１０９０１（図３３）を保持しているため、合成ワークフローＩＤ、ステップ数について新規に作成したシミュレート用基礎データ管理表Ｔ１０９０２（図４８）と比較を行う。本実施例は合成ワークフロー群の実施状況に変化がなかった例である。合成ワークフロー群の実施状況に変化がないため、引き続き棄却判定を継続する。仮想棄却データ作成部１０１Ａは、保持している仮想棄却条件データ管理表Ｔ１０７０２（図４５）より棄却対象合成ワークフローステップ数「５」を取得し、実行中の合成ワークフロー群の中で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下であるエントリの個数を取得する。本実施例では、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」の合成ワークフローは、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」であり、そのうちステップ数が「５」以下である個数は合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であり、仮想棄却条件データ管理表Ｔ１０７０２（図４５）の棄却対象合成ワークフロー個数は「３」となる。次に、仮想棄却条件データ管理表Ｔ１０７０２（図４５）の棄却個数は「２」であるため、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から２個を選ぶ組み合わせの個数は３Ｃ２＝３であるため、組み合わせ個数は「３」として仮想棄却条件データ管理表Ｔ１０７０２に保持する。【０３１４】
仮想棄却データ作成部１０１Ａは、実行中のワークフロー群で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下である合成ワークフローについて、棄却個数「２」分を仮想的に棄却した仮想棄却データ管理表を作成する。本実施例では、合成ワークフローＩＤ「０００３６４」と「０００３６６」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０７（図４９）であり、合成ワークフローＩＤ「０００３６４」と「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０８（図５０）であり、合成ワークフローＩＤ「０００３６６」と「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０９（図５１）である。また、仮想棄却データ作成部１０１Ａは、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）に仮想棄却合成ワークフローデータエントリを追加し、３つの仮想棄却データ管理表Ｔ１０８０７、Ｔ１０８０８、Ｔ１０８０９をシミュレーション処理部１１２へ通知する。【０３１５】
シミュレーション処理部１１２で処理を実行し、本実施例では仮想棄却データ管理表Ｔ１０８０７（図４９）に対してシミュレーション結果管理表Ｔ１０３０４(図５２)が、仮想棄却データ管理表Ｔ１０８０８（図５０）に対してシミュレーション結果管理表Ｔ１０３０５(図５３)が、仮想棄却データ管理表Ｔ１０８０９（図５１）に対してシミュレーション結果管理表Ｔ１０３０６(図５４)がそれぞれ作成されたものとする。シミュレーション処理部１１２はシミュレーション結果管理表Ｔ１０３０４、Ｔ１０３０５、Ｔ１０３０６を評価値計算部１０５へ通知する。【０３１６】
評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３０４（図５２）に対して評価値管理表Ｔ１０４０６(図５５)を、シミュレーション結果管理表Ｔ１０３０５（図５３）に対して評価値管理表Ｔ１０４０７(図５６)を、シミュレーション結果管理表Ｔ１０３０６（図５４）に対して評価値管理表Ｔ１０４０８(図５７)を作成する。評価値を計算するにあたり、シミュレーション結果管理表Ｔ１０３０４については、合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が２１０秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため（合成ワークフローの投入数が６でありそのうち２個を仮想棄却している）、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓaは（４７．０×２００＋２１０）÷（２００＋６）＝４６．６５０となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．６５０秒となる。同様にして、棄却率Ｒｓは、仮想棄却を２個していることを考慮して、
（９＋２）÷（２００＋９＋６）＝０．０５２となる。そのため、評価値管理表Ｔ１０４０６(図５５)の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．６５０）×（６０÷５０）×（（０．０５＋１）÷（０．０５２＋１
））＝１．２８５
となっている。評価値計算部１０５で保持している組み合わせ数は「３」であるため、３個の評価値管理表Ｔ１０４０６、Ｔ１０４０７、Ｔ１０４０８が作成された後、評価値計算部１０５は時刻判定部１０２Ａに対して制限時刻判定依頼ｄ１２を通知する。【０３１７】
時刻判定部１０２Ａは、現在時刻「１３：４８：３３．０２１」を取得し、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５に対し制限時間判定応答ｄ１３を通知する。【０３１８】
評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、評価値管理表Ｔ１０４０６、Ｔ１０４０７、Ｔ１０４０８を最低評価値抽出部１０７へ通知する。【０３１９】
最低評価値抽出部１０７は、評価値管理表Ｔ１０４０６、Ｔ１０４０７、Ｔ１０４０８からそれぞれ最低値となる評価値エントリを抽出して、最低評価値管理表Ｔ１０５０２(図５８)を作成し、最高評価値抽出部１０８へ通知する。【０３２０】
最高評価値抽出部１０８は、最低評価値管理表Ｔ１０５０２から最高値「１．０７１」を抽出して最高評価値管理表Ｔ１１１０２(図５９)を作成し、棄却判定部１０９Ａへ通知する。【０３２１】
棄却判定部１０９Ａは、最高評価値「１．０７１」が合意サービス水準判定閾値「１」より大きいため、棄却命令送信部１１１Ａを起動し、最高評価値管理表Ｔ１１１０２を通知する。【０３２２】
棄却命令送信部１１１Ａは、最高評価値管理表Ｔ１１１０２よりシミュレートＩＤ「０００３１」を抽出する。仮想棄却データ作成部１０１Ａに保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６００(図２４)のうち、シミュレートＩＤが「０００３１」となるエントリの棄却合成ワークフローＩＤは「０００３６４」および「０００３６６」であるため、合成ワークフローＩＤが「０００３６４」および「０００３６６」の実行中の合成ワークフローに対して強制棄却命令を発行し、処理を終了する。【０３２３】
以上示したように、棄却判定を行わない場合、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」「０００３６７」で特定される合成ワークフローの評価値が合意サービス水準判定閾値を下回るため、締結されている合意サービス水準を満たすことができないと予想される。一方、第１の実施の形態による棄却判定を適用した場合、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」「０００３６６」の特定される合成ワークフローを棄却すれば、どんなに低くても評価値が「１．０７１」となることが予想されるため、締結されている合意サービス水準を満たすことができると予想される。【０３２４】
［第２の実施例］
第２の実施例を説明するにあたり、棄却判定を行う合成ワークフロー定義ＩＤを仮に「０００１」とし、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報は要求合成ワークフロー応答時間Ｔを６０秒、要求平均合成ワークフロー実行時間Ｔａを５０秒、要求棄却率Ｒを５％であるとする。また、サービスプロバイダとサービスコーディネータの間で結ばれた評価値計算関数ｆは、シミュレータで求まる合成ワークフロー予測応答時間をＴｓ、合成ワークフロー平均応答時間をＴｓａ、棄却率をＲｓとした場合に、ｆ＝（Ｔ／Ｔｓ）×（Ｔａ／Ｔｓａ）×（（Ｒ＋１）／（Ｒｓ＋１））で定めるものとし、ｆが１以上の時に合意サービス水準は満たされていると判定すると合意されているものとする。すなわち、合意サービス水準判定閾値は１であるとする。また、シミュレートの制限時間は１秒とする。【０３２５】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤ「０００１」を保持しており、すでに実行状態管理表Ｔ１０１００(図１８)を保持しているものとする。実行状態管理表Ｔ１０１００は、５個の合成ワークフローが実施中である例である。ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視しており、合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローについて、業務アプリケーションより応答メッセージイベントデータが新規に追加されることを検知する。ステップ数監視部１３０は、実行状態管理表Ｔ１０１００を更新し、実行状態管理表Ｔ１０１０１(図１９)を作成する。合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについてステップ数に変化があることを検知したため、ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｂの起動状態を確認し、仮想棄却データ作成部１０１Ｂが起動中でないために起動する。ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｂへ合成ワークフロー定義ＩＤ「０００１」を通知する。【０３２６】
仮想棄却データ作成部１０１Ｂは仮想棄却条件データ管理表Ｔ１０７００(図２０)を作成する。仮想棄却条件データ管理表Ｔ１０７００は仮想棄却条件ＩＤを仮に「０００２５」とした例であり、棄却なしの条件でシミュレートするため、棄却個数は０、棄却対象合成ワークフロー定義ＩＤは「０００１」となる。また、棄却対象合成ワークフローステップ数は「−１」としている。なお、この時点では棄却対象合成ワークフロー個数、組み合わせ数は未定である。【０３２７】
仮想棄却データ作成部１０１Ｂは評価値記録部１１３を起動する。【０３２８】
時刻判定部１０２Ｂは、現在時刻が「１３：４８：３２．１０７」であること、シミュレートの制限時間が１秒であることから、判定終了時刻が「１３：４８：３３．１０７」であることを計算し、保持する。【０３２９】
シミュレータ用データ作成部１０３は、仮想棄却データ作成部１０１Ｂによって起動された後、実行状態問い合わせ信号をイベント情報送信部１４０へ通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０１(図１９)を取得し、シミュレータ用データ作成部１０３へ通知する。【０３３０】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２００(図２１)を作成する。【０３３１】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１００および合成ワークフロー投入予測管理表Ｔ１０２００を元にシミュレート用基礎データ管理表Ｔ１０９００（図２２）を作成する。シミュレート用基礎データ管理表Ｔ１０９００は、シミュレート用基礎データ管理表Ｔ１０９００の合成ワークフローＩＤ「０００３６３」〜「０００３６７」の時刻フィールドには現在時刻である「１３：４８：３３．１０７」を設定し、将来投入されると予測された合成ワークフローＩＤ「Ｓ００１」〜「Ｓ００３」のステップ数フィールドには０を設定した例である。【０３３２】
仮想棄却データ作成部１０１Ｂは、棄却対象合成ワークフローステップ数が「−１」（棄却なし）であり、棄却対象合成ワークフロー定義ＩＤが「０００１」であること、およびシミュレート用基礎データ管理表Ｔ１０９００(図２２)から、棄却対象合成ワークフロー個数は、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」の４個であると判定し、仮想棄却条件データ管理表Ｔ１０７００(図２０)に保持する。また、棄却個数は０であり、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち４個から０個を選ぶ組み合わせの個数は４Ｃ０＝１であるため、組み合わせ個数は「１」として仮想棄却条件データ管理表Ｔ１０７００に保持する。【０３３３】
仮想棄却データ作成部１０１Ｂはシミュレーション処理部１１２の入力データとしてシミュレート用基礎データ管理表Ｔ１０９００(図２２)を元に仮想棄却データ管理表Ｔ１０８００(図２３)を作成する。初回は棄却数０、組み合わせ数が１であるため−１個の仮想棄却データ管理表Ｔ１０８００を作成する。仮想棄却データ管理表Ｔ１０８００はシミュレートＩＤを仮に「０００２７」とした例である。また、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）を作成し、仮に仮想棄却合成ワークフローＩＤを「０００５８」として仮想棄却合成ワークフローデータエントリＴ１０６０１(図２４)を作成する。このとき、棄却個数が０であるため、棄却合成ワークフローＩＤは「Ｎｏｎｅ」とする。【０３３４】
仮想棄却データ管理表Ｔ１０８００(図２３)を元にシミュレーション処理部１１２で処理を実行し、本実施例ではシミュレーション結果管理表Ｔ１０３００（図２５）が作成されたものとする。シミュレーション処理部１１２はシミュレーション結果管理表Ｔ１０３００を評価値計算部１０５へ通知する。【０３３５】
評価値計算部１０５は、保持している棄却対象合成ワークフロー定義ＩＤ「０００１」をイベントデータ統計計算部１０４へ通知し、統計情報データ管理表Ｔ１１０００（図２６）を取得する。統計情報データ管理表Ｔ１１０００は、統計情報ＩＤを「００５」とし、今まで合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについての実行済み合成ワークフロー数が２００、実行済み合成ワークフローの平均応答時間が４７．０秒、棄却合成ワークフロー数が９となる例である。評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３００(図２５)のうち合成ワークフロー定義ＩＤが「０００１」であるエントリと統計情報データ管理表Ｔ１１０００(図２６)を元に評価値計算関数ｆを用いて評価値管理表Ｔ１０４００（図２７）を作成する。シミュレーション結果管理表Ｔ１０３００(図２５)のうち合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が３５５秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため、本シミュレーション結果を反映した平均合成ワークフロー実行時間は
（４７．０×２００＋３５５）÷（２００＋６）＝４７．３５４
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４７．３５４秒となる。同様にして、棄却率Ｒｓは、棄却なしで実施していることを考慮して（９＋０）÷（２００＋９＋６）＝０．０４２となる。そのため、評価値管理表Ｔ１０４００(図２７)の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４７．３５４）×（６０÷５０）×（（０．０５＋１）÷（０．０４２＋１
））＝１．２７７
となっている。評価値計算部１０５で現在保持している組み合わせ数が１であるため、作成される評価値管理表は評価値管理表Ｔ１０４００のみである。評価値管理表Ｔ１０４００の作成後、時刻判定部１０２Ｂに対して制限時刻判定依頼ｄ１２を通知する。【０３３６】
時刻判定部１０２Ｂは、現在時刻「１３：４８：３２．１３０」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５に対し制限時間判定応答ｄ１３を通知する。【０３３７】
評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、最低評価値抽出部１０７を起動し、評価値管理表Ｔ１０４００を通知する。【０３３８】
最低評価値抽出部１０７は、評価値管理表Ｔ１０４００の最低評価値を比較し、最低値となる評価値エントリＴ１０４０１を抽出して最低評価値管理表Ｔ１０５００（図２８）を作成する。最低評価値抽出部１０７は最高評価値抽出部１０８を起動し、最低評価値管理表Ｔ１０５００を通知する。【０３３９】
最高評価値抽出部１０８は最低評価値管理表Ｔ１０５００から最高値「０．７９８」を抽出して最高評価値管理表Ｔ１１１００(図２９)を作成する。最高評価値抽出部１０８は、棄却判定部１０９Ｂを起動し、最高評価値管理表Ｔ１１１００を通知する。【０３４０】
棄却判定部１０９Ｂは、最高評価値「０．７９８」が合意サービス水準判定閾値「１」以下であるため、処理継続判定部１１０Ｂを起動し、最高評価値管理表Ｔ１１１００を通知する。【０３４１】
処理継続判定部１１０Ｂは、仮想棄却データ作成部１０１Ｂより取得した仮想棄却条件データ管理表Ｔ１０７００(図２０)より棄却個数「０」および棄却対象合成ワークフロー個数「４」を取得する。棄却個数＜棄却対象合成ワークフロー個数であり、かつ仮想棄却条件データ管理表Ｔ１０７００の棄却対象合成ワークフローステップ数が「Ｎｏｎｅ」、すなわち「棄却なし」の状態となっているため、処理継続判定部１１０Ｂは棄却対象合成ワークフローステップ数を新規に設定する。処理継続判定部１１０Ｂは、評価値計算部１０５より評価値管理表Ｔ１０４００(図２７)を取得し、評価値が合意サービス水準判定閾値「１」未満となる評価値エントリＴ１０４０１−１０４０２を抽出する。処理継続判定部１１０Ｂはまた、仮想棄却データ作成部１０１Ｂより仮想棄却データ管理表Ｔ１０８００(図２３)を取得し、評価値エントリＴ１０４０１、Ｔ１０４０２に対応するステップ数を取得する。評価値エントリＴ１０４０１に対応するのは仮想棄却データエントリＴ１０８０１であり、評価値エントリＴ１０４０２に対応するのは、仮想棄却データエントリＴ１０８０２であるため、それぞれステップ数は「５」および「２」となる。したがって、ステップ数は「５」が最大となり、これを棄却対象合成ワークフローステップ数として仮想棄却データ作成部１０１Ｂへ通知する。【０３４２】
仮想棄却データ作成部１０１Ｂは仮想棄却条件データ管理表Ｔ１０７００(図２０)を元に、新規に仮想棄却条件データ管理表Ｔ１０７０１(図３０)を作成する。仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフローステップ数には、処理継続判定部１１０Ｂより取得した棄却対象合成ワークフローステップ数「５」を設定し、棄却個数は仮想棄却条件データ管理表Ｔ１０７００の棄却個数「０」に１を加えた「１」を設定する。棄却対象合成ワークフロー定義ＩＤに仮想棄却条件データ管理表Ｔ１０７００の棄却対象合成ワークフロー定義ＩＤ「０００１」を設定したのち、仮想棄却条件データ管理表Ｔ１０７００を破棄する。なお、この時点では仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー個数、組み合わせ数については未定である。【０３４３】
シミュレート用データ作成部１０３は、実行状態問い合わせ信号をイベント情報送信部１４０へ再度通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０２(図３１)を取得し、シミュレータ用データ作成部１０３へ通知する。【０３４４】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を再度取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２０１（図３２）を作成する。【０３４５】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１０２および合成ワークフロー投入予測管理表Ｔ１０２０１を元にシミュレート用基礎データ管理表Ｔ１０９０１(図３３)を新規に作成し、仮想棄却データ作成部１０１Ｂへ通知する。【０３４６】
仮想棄却データ作成部１０１Ｂは、シミュレート用基礎データ管理表Ｔ１０９００を保持しているため、合成ワークフローＩＤ、ステップ数について新規に作成したシミュレート用基礎データ管理表Ｔ１０９０１と比較を行う。本実施例は合成ワークフロー群の実施状況に変化がなかった例である。合成ワークフロー群の実施状況に変化がないため、引き続き棄却判定を継続する。仮想棄却データ作成部１０１Ｂは、保持している仮想棄却条件データ管理表Ｔ１０７０１(図３０)より棄却対象合成ワークフローステップ数「５」を取得し、実行中の合成ワークフロー群の中で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下であるエントリの個数を取得する。本実施例では、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」の合成ワークフローは、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」であり、そのうちステップ数が「５」以下である個数は合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であるため、仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー個数は「３」となる。次に、仮想棄却条件データ管理表Ｔ１０７０１の棄却個数は「１」であるため、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から１個を選ぶ組み合わせの個数は３Ｃ１＝３であるため、組み合わせ個数は「３」として仮想棄却条件データ管理表Ｔ１０７０１（図３０）に保持する。【０３４７】
仮想棄却データ作成部１０１Ｂは、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」であるのもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下である合成ワークフローについて、棄却個数「１」分を仮想的に棄却した仮想棄却データ管理表を作成する。本実施例では、合成ワークフローＩＤ「０００３６４」を棄却したものが仮想棄却データ管理表Ｔ１０８０３（図３４）であり、合成ワークフローＩＤ「０００３６４」の仮想棄却データエントリＴ１０８０４のステップ数に仮想棄却を示す「ＲＥＪＥＣＴ」を設定している。同様に、合成ワークフローＩＤ「０００３６６」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０５(図３５)であり、合成ワークフローＩＤ「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０６（図３６）である。また、仮想棄却データ作成部１０１Ｂは、仮想棄却合成ワークフローデータ管理表Ｔ１０６００に仮想棄却合成ワークフローデータエントリを追加し、３つの仮想棄却データ管理表Ｔ１０８０３、Ｔ１０８０５、Ｔ１０８０６をシミュレーション処理部１１２へ通知する。【０３４８】
シミュレーション処理部１１２で処理を実行し、本実施例では仮想棄却データ管理表Ｔ１０８０３（図３４）に対してシミュレーション結果管理表Ｔ１０３０７(図６０)が、仮想棄却データ管理表Ｔ１０８０５(図３５)に対してシミュレーション結果管理表Ｔ１０３０２(図３８)が、仮想棄却データ管理表Ｔ１０８０６（図３６）に対してシミュレーション結果管理表Ｔ１０３０３（図３９）がそれぞれ作成されたものとする。シミュレーション結果管理表Ｔ１０３０７、Ｔ１０３０２、Ｔ１０３０３を評価値計算部１０５へ通知する。【０３４９】
評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３０７（図６０）に対して評価値管理表Ｔ１０４０９（図６１）を、シミュレーション結果管理表Ｔ１０３０２(図３８)に対して評価値管理表Ｔ１０４０４（図４１）を、シミュレーション結果管理表Ｔ１０３０３（図３９）に対して評価値管理表Ｔ１０４０５（図４２）を作成する。評価値を計算するにあたり、シミュレーション結果管理表Ｔ１０３０７（図６０）については、合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が２６２秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため（合成ワークフローの投入数が６であり、そのうち１個を仮想棄却している）、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓａは
（４７．０×２００＋２６２）÷（２００＋６）＝４６．９０３
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．９０３秒となる。同様にして、棄却率Ｒｓは、仮想棄却を１個していることを考慮して、
（９＋１）÷（２００＋９＋６）＝０．０４７
となる。そのため、評価値管理表Ｔ１０４０９（図６１）の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．９０３）×（６０÷５０）×（（０．０５＋１）÷（０．０４７＋１
））＝１．２８４
となっている。評価値計算部１０５で保持している組み合わせ数は「３」であるため、３個の評価値管理表Ｔ１０４０９、Ｔ１０４０４、Ｔ１０４０５が作成された後、時刻判定部１０２Ｂへ対して制限時刻判定依頼ｄ１２を通知する。【０３５０】
時刻判定部１０２Ｂは、現在時刻「１３：４８：３２．５５２」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５へ対し制限時間判定応答ｄ１３を通知する。評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、評価値管理表Ｔ１０４０９、Ｔ１０４０４、Ｔ１０４０５を最低評価値抽出部１０７へ通知する。最低評価値抽出部１０７は、評価値管理表Ｔ１０４０９、Ｔ１０４０４、Ｔ１０４０５からそれぞれ最低値となる評価値エントリを抽出して、最低評価値管理表Ｔ１０５０３（図６２）を作成し、最高評価値抽出部１０８へ通知する。【０３５１】
最高評価値抽出部１０８は、最低評価値管理表Ｔ１０５０３から最高値「１．０３５」を抽出して最高評価値管理表Ｔ１１１０３（図６３）を作成し、棄却判定部１０９Ｂへ通知する。棄却判定部１０９Ｂは、最高評価値「１．０３５」が合意サービス水準判定閾値「１」より大きいため、評価値記録部１１３へ最高評価値管理表Ｔ１１１０３を通知し、また処理継続判定部１１０Ｂへ最高評価値管理表Ｔ１１１０３を通知する。【０３５２】
評価値記録部１１３は、最高評価値管理表Ｔ１１１０３を取得後、最高評価値管理表を保持しているか確認する。本実施例では保持していないため、評価値記録部１１３は最高評価値管理表Ｔ１１１０３を保持する。【０３５３】
処理継続判定部１１０Ｂは、仮想棄却データ作成部１０１Ｂより取得した仮想棄却条件データ管理表Ｔ１０７０１（図３０）より棄却個数「１」および棄却対象合成ワークフロー個数「３」を取得する。棄却個数＜棄却対象合成ワークフロー個数であり、かつ仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフローステップ数が「５」となっているため、棄却対象合成ワークフローステップ数「５」を仮想棄却データ作成部１０１Ｂへ通知する。【０３５４】
仮想棄却データ作成部１０１Ｂは仮想棄却条件データ管理表Ｔ１０７０１（図３０）を元に、仮想棄却条件データ管理表Ｔ１０７０２（図４５）を新規に作成する。仮想棄却条件データ管理表Ｔ１０７０２の棄却対象合成ワークフローステップ数には、処理継続判定部１１０Ｂより取得した棄却対象合成ワークフローステップ数「５」を設定し、棄却個数は仮想棄却条件データ管理表Ｔ１０７０１の棄却個数「１」に１を加えた「２」を設定する。棄却対象合成ワークフロー定義ＩＤに仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー定義ＩＤ「０００１」を設定した後、仮想棄却条件データ管理表Ｔ１０７０１を破棄する。なお、この時点では仮想棄却条件データ管理表Ｔ１０７０２の棄却対象合成ワークフロー個数、組み合わせ数については未定である。【０３５５】
シミュレート用データ作成部１０３は、実行状態問い合わせ信号をイベント情報送信部１４０へ再度通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０３（図４６）を取得し、シミュレータ用データ作成部１０３へ通知する。【０３５６】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を再度取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２０２（図４７）を作成する。【０３５７】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１０３および合成ワークフロー投入予測管理表Ｔ１０２０２を元にシミュレート用基礎データ管理表Ｔ１０９０２（図４８）を新規に作成し、仮想棄却データ作成部１０１Ｂへ通知する。【０３５８】
仮想棄却データ作成部１０１Ｂは、シミュレート用基礎データ管理表Ｔ１０９０１（図３３）を保持しているため、合成ワークフローＩＤ、ステップ数について新規に作成したシミュレート用基礎データ管理表Ｔ１０９０２と比較を行う。本実施例は合成ワークフロー群の実施状況に変化がなかった例である。合成ワークフロー群の実施状況に変化がないため、引き続き棄却判定を継続する。仮想棄却データ作成部１０１Ｂは、保持している仮想棄却条件データ管理表Ｔ１０７０２（図４５）より棄却対象合成ワークフローステップ数「５」を取得し、実行中の合成ワークフロー群の中で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下であるエントリの個数を取得する。本実施例では、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」の合成ワークフローは、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」であり、そのうちステップ数が「５」以下である個数は合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であり、仮想棄却条件データ管理表Ｔ１０７０２（図４５）の棄却対象合成ワークフロー個数は「３」となる。次に、仮想棄却条件データ管理表Ｔ１０７０２（図４５）の棄却個数は「２」であるため、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から２個を選ぶ組み合わせの個数は３Ｃ２＝３であるため、組み合わせ個数は「３」として仮想棄却条件データ管理表Ｔ１０７０２に保持する。【０３５９】
仮想棄却データ作成部１０１Ｂは、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下である合成ワークフローについて、棄却個数「２」分を仮想的に棄却した仮想棄却データ管理表を作成する。本実施例では、合成ワークフローＩＤ「０００３６４」と「０００３６６」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０７（図４９）であり、合成ワークフローＩＤ「０００３６４」と「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０８（図５０）であり、合成ワークフローＩＤ「０００３６６」と「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０９（図５１）である。また、仮想棄却データ作成部１０１Ｂに、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）に仮想棄却合成ワークフローデータエントリを追加し、３つの仮想棄却データ管理表Ｔ１０８０７、Ｔ１０８０８、Ｔ１０８０９をシミュレーション処理部１１２へ通知する。【０３６０】
シミュレーション処理部１１２で処理を実行し、本実施例では仮想棄却データ管理表Ｔ１０８０７（図４９）に対してシミュレーション結果管理表Ｔ１０３０８（図６４）が、仮想棄却データ管理表Ｔ１０８０８（図５０）に対してシミュレーション結果管理表Ｔ１０３０５（図５３）が、仮想棄却データ管理表Ｔ１０８０９（図５１）に対してシミュレーション結果管理表Ｔ１０３０６（図５４）がそれぞれ作成されたものとする。シミュレーション結果管理表Ｔ１０３０８、Ｔ１０３０５、Ｔ１０３０６を評価値計算部１０５へ通知する。【０３６１】
評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３０８（図６４）に対して評価値管理表Ｔ１０４１０（図６５）を、シミュレーション結果管理表Ｔ１０３０５（図５３）に対して評価値管理表Ｔ１０４０７（図５６）を、シミュレーション結果管理表Ｔ１０３０６（図５４）に対して評価値管理表Ｔ１０４０８（図５７）を作成する。評価値を計算するにあたり、シミュレーション結果管理表Ｔ１０３０８については、合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が２１３秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため（合成ワークフローの投入数が６であり、そのうち２個を仮想棄却している）、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓａは
（４７．０×２００＋２１３）÷（２００＋６）＝４６．６６５
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．６６５秒となる。同様にして、棄却率Ｒｓは、仮想棄却を２個していることを考慮して、
（９＋２）÷（２００＋９＋６）＝０．０５２
となる。そのため、評価値管理表Ｔ１０４１０の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．６６５）×（６０÷５０）×（（０．０５＋１）÷（０．０５２＋１））＝１．０１９
となっている。評価値計算部１０５で保持している組み合わせ数は「３」であるため、評価値計算部１０５は、３個の評価値管理表Ｔ１０４１０、Ｔ１０４０７、Ｔ１０４０８が作成された後、時刻判定部１０２Ｂへ対して制限時刻判定依頼ｄ１２を通知する。【０３６２】
時刻判定部１０２Ｂは、現在時刻「１３：４８：３３．０２１」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５に対し制限時間判定応答ｄ１３を通知する。評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、評価値管理表Ｔ１０４１０、Ｔ１０４０７、Ｔ１０４０８を最低評価値抽出部１０７へ通知する。【０３６３】
最低評価値抽出部１０７は、評価値管理表Ｔ１０４１０、Ｔ１０４０７、Ｔ１０４０８からそれぞれ最低値となる評価値エントリを抽出して、最低評価値管理表Ｔ１０５０４（図６５）を作成し、最高評価値抽出部１０８へ通知する。最高評価値抽出部１０８は、最低評価値管理表Ｔ１０５０４から最高値「１．０１９」を抽出して最高評価値管理表Ｔ１１１０４（図６６）を作成し、棄却判定部１０９Ｂへ通知する。棄却判定部１０９Ｂは、最高評価値「１．０１９」が合意サービス水準判定閾値「１」より大きいため、評価値記録部１１３へ最高評価値管理表Ｔ１１１０４を通知し、また処理継続判定部１１０Ｂへ最高評価値管理表Ｔ１１１０４を通知する。評価値記録部１１３は、最高評価値管理表Ｔ１１１０４を取得後、最高評価値管理表を保持しているか確認する。本実施例では最高評価値管理表Ｔ１１１０３（図６４）を保持しているため、最高評価値管理表Ｔ１１１０３の最高値「１．０３５」と最高評価値管理表Ｔ１１１０４（図６８）の最高値「１．０１９」を比較し、値の大きい最高値「１．０３５」を持つ最高評価値管理表Ｔ１１１０３を引き続き保持する。【０３６４】
以下、同様にして棄却個数を「３」に増やし、合成ワークフロー群の実施状況に変化がない条件のもとシミュレーションを実施し、評価値管理表を作成後、時刻判定部１０２Ｂにて制限時間判定を行う処理まで進行したものとする。時刻判定部１０２Ｂは、現在時刻「１３：４８：３３．５０２」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過しているため、評価値記録部１１３へ棄却判定終了通知ｄ５０を通知する。評価値記録部１１３は、最高評価値管理表を保持しているか確認を行う。本実施例では最高評価値管理表Ｔ１１１０３を保持しているため、棄却命令送信部１１１Ｂを起動し、最高評価値管理表Ｔ１１１０３を通知する。棄却命令送信部１１１Ｂは、最高評価値管理表Ｔ１１１０３よりシミュレートＩＤ「０００２８」を抽出する。仮想棄却データ作成部１０１Ｂに保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）のうち、シミュレートＩＤが「０００２８」となるエントリの棄却対象合成ワークフローＩＤは「０００３６４」であるため、合成ワークフローＩＤが「０００３６４」である実行中の合成ワークフローに対して強制棄却命令を発行し、処理を終了する。【０３６５】
以上、説明したように、棄却判定を行わない場合、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」「０００３６７」で特定される合成ワークフローの評価値が合意サービス水準判定閾値を下回るため、締結されている合意サービス水準を満たすことができないと予想される。一方、本発明の第２の実施の形態による棄却判定を適用した場合、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」の特定される合成ワークフローを棄却すれば、どんなに低くても評価値が「１．０３５」となることが予想され、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」「０００３６６」で特定される合成ワークフローを棄却すれば、どんなに低くても評価値が「１．０１９」となることが予想される。合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローのみを棄却した場合と、合成ワークフローＩＤ「０００３６４」「０００３６６」で特定される合成ワークフローを棄却した場合で、どちらも合意サービス水準を満たすことが予想されるが、どんなに低くても評価値が「１．０３５」となる合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローのみを棄却すれば、より締結されている合意サービス水準を満たすことができると予想される。【０３６６】
［第３の実施例］
第３の実施例を説明するにあたり、棄却判定を行う合成ワークフロー定義ＩＤを仮に「０００１」とし、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報は要求合成ワークフロー応答時間Ｔを６０秒、要求平均合成ワークフロー実行時間Ｔａを５０秒、要求棄却率Ｒを５％であるとする。また、サービスプロバイダとサービスコーディネータの間で結ばれた評価値計算関数ｆは、シミュレータで求まる合成ワークフロー予測応答時間をＴｓ、合成ワークフロー平均応答時間をＴｓａ、棄却率をＲｓとした場合に、ｆ＝（Ｔ／Ｔｓ）×（Ｔａ／Ｔｓａ）×（（Ｒ＋１）／（Ｒｓ＋１））で定めるものとし、ｆが１以上の時に合意サービス水準は満たされていると判定すると合意されているものとする。すなわち、合意サービス水準判定閾値は１であるとする。また、シミュレートの制限時間は１秒とする。【０３６７】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤ「０００１」を保持しており、すでに実行状態管理表Ｔ１０１００(図１８)を保持しているものとする。実行状態管理表Ｔ１０１００は、５個の合成ワークフローが実施中である例である。ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視しており、合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローについて、業務アプリケーションより応答メッセージイベントデータが新規に追加されることを検知する。ステップ数監視部１３０は、実行状態管理表Ｔ１０１００を更新し、実行状態管理表Ｔ１０１０１(図１９)を作成する。合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについてステップ数に変化があることを検知したため、ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｃの起動状態を確認し、仮想棄却データ作成部１０１Ｃが起動中でないために起動する。ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｃへ合成ワークフロー定義ＩＤ「０００１」を通知する。【０３６８】
仮想棄却データ作成部１０１Ｃは仮想棄却条件データ管理表Ｔ１０７００(図２０)を作成する。仮想棄却条件データ管理表Ｔ１０７００は仮想棄却条件ＩＤを仮に「０００２５」とした例であり、棄却なしの条件でシミュレートするため、棄却個数は０、棄却対象合成ワークフロー定義ＩＤは「０００１」となる。また、棄却対象合成ワークフローステップ数は「−１」としている。なお、この時点では棄却対象合成ワークフロー個数、組み合わせ数は未定である。【０３６９】
時刻判定部１０２Ｃは、現在時刻が「１３：４８：３２．１０７」であること、シミュレートの制限時間が１秒であることから、判定終了時刻が「１３：４８：３３．１０７」であることを計算、保持し評価値記録部１１３を起動する。【０３７０】
シミュレータ用データ作成部１０３は、仮想棄却データ作成部１０１Ｃによって起動された後、実行状態問い合わせ信号をイベント情報送信部１４０へ通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０１(図１９)を取得し、シミュレータ用データ作成部１０３へ通知する。【０３７１】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２００(図２１)を作成する。【０３７２】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１００および合成ワークフロー投入予測管理表Ｔ１０２００を元にシミュレート用基礎データ管理表Ｔ１０９００（図２２）を作成する。シミュレート用基礎データ管理表Ｔ１０９００は、シミュレート用基礎データ管理表Ｔ１０９００の合成ワークフローＩＤ「０００３６３」〜「０００３６７」の時刻フィールドには現在時刻である「１３：４８：３３．１０７」を設定し、将来投入されると予測された合成ワークフローＩＤ「Ｓ００１」〜「Ｓ００３」のステップ数フィールドには０を設定した例である。【０３７３】
仮想棄却データ作成部１０１Ｃは、棄却対象合成ワークフローステップ数が「−１」（棄却なし）であり、棄却対象合成ワークフロー定義ＩＤが「０００１」であること、およびシミュレート用基礎データ管理表Ｔ１０９００(図２２)から、棄却対象合成ワークフロー個数は、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」の４個であると判定し、仮想棄却条件データ管理表Ｔ１０７００(図２０)に保持する。また、棄却個数は０であり、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち４個から０個を選ぶ組み合わせの個数は４Ｃ０＝１であるため、組み合わせ個数は「１」として仮想棄却条件データ管理表Ｔ１０７００に保持する。【０３７４】
仮想棄却データ作成部１０１Ｃはシミュレーション処理部１１２の入力データとしてシミュレート用基礎データ管理表Ｔ１０９００(図２２)を元に仮想棄却データ管理表Ｔ１０８００(図２３)を作成する。初回は棄却数０、組み合わせ数が１であるため−１個の仮想棄却データ管理表Ｔ１０８００を作成する。仮想棄却データ管理表Ｔ１０８００はシミュレートＩＤを仮に「０００２７」とした例である。また、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）を作成し、仮に仮想棄却合成ワークフローＩＤを「０００５８」として仮想棄却合成ワークフローデータエントリＴ１０６０１(図２４)を作成する。このとき、棄却個数が０であるため、棄却合成ワークフローＩＤは「Ｎｏｎｅ」とする。【０３７５】
仮想棄却データ管理表Ｔ１０８００(図２３)を元にシミュレーション処理部１１２で処理を実行し、本実施例ではシミュレーション結果管理表Ｔ１０３００（図２５）が作成されたものとする。シミュレーション処理部１１２はシミュレーション結果管理表Ｔ１０３００を評価値計算部１０５へ通知する。【０３７６】
評価値計算部１０５は、保持している棄却対象合成ワークフロー定義ＩＤ「０００１」をイベントデータ統計計算部１０４へ通知し、統計情報データ管理表Ｔ１１０００（図２６）を取得する。統計情報データ管理表Ｔ１１０００は、統計情報ＩＤを「００５」とし、今まで合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについての実行済み合成ワークフロー数が２００、実行済み合成ワークフローの平均応答時間が４７．０秒、棄却合成ワークフロー数が９となる例である。評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３００(図２５)のうち合成ワークフロー定義ＩＤが「０００１」であるエントリと統計情報データ管理表Ｔ１１０００(図２６)を元に評価値計算関数ｆを用いて評価値管理表Ｔ１０４００（図２７）を作成する。シミュレーション結果管理表Ｔ１０３００(図２５)のうち合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が３５５秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため、本シミュレーション結果を反映した平均合成ワークフロー実行時間は
（４７．０×２００＋３５５）÷（２００＋６）＝４７．３５４
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４７．３５４秒となる。同様にして、棄却率Ｒｓは、棄却なしで実施していることを考慮して
（９＋０）÷（２００＋９＋６）＝０．０４２
となる。そのため、評価値管理表Ｔ１０４００(図２７)の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４７．３５４）×（６０÷５０）×（（０．０５＋１）÷（０．０４２＋１
））＝１．２７７
となっている。評価値計算部１０５で現在保持している組み合わせ数が１であるため、作成される評価値管理表は評価値管理表Ｔ１０４００のみである。評価値管理表Ｔ１０４００の作成後、時刻判定部１０２Ｃに対して制限時刻判定依頼ｄ１２を通知する。【０３７７】
時刻判定部１０２Ｃは、現在時刻「１３：４８：３２．１３０」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５に対し制限時間判定応答ｄ１３を通知する。【０３７８】
評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、最低評価値抽出部１０７を起動し、評価値管理表Ｔ１０４００を通知する。【０３７９】
最低評価値抽出部１０７は、評価値管理表Ｔ１０４００の最低評価値を比較し、最低値となる評価値エントリＴ１０４０１を抽出して最低評価値管理表Ｔ１０５００（図２８）
を作成する。最低評価値抽出部１０７は最高評価値抽出部１０８を起動し、最低評価値管理表Ｔ１０５００を通知する。【０３８０】
最高評価値抽出部１０８は最低評価値管理表Ｔ１０５００から最高値「０．７９８」を抽出して最高評価値管理表Ｔ１１１００(図２９)を作成する。最高評価値抽出部１０８は、棄却判定部１０９Ｃを起動し、最高評価値管理表Ｔ１１１００を通知する。【０３８１】
棄却判定部１０９Ｃは、最高評価値管理表Ｔ１１１００を取得後、評価値記録部１１３へ最高評価値管理表要求信号を通知する。評価値記録部１１３は、最高評価値管理表要求信号を受信後、最高評価値管理表を保持していないために、棄却判定部１０９Ｃへ対し最高評価値管理表未保持信号を通知する。棄却判定部１０９Ｃは、評価値記録部１１３より最高評価値管理表未保持信号を受信したため、最高評価管理表Ｔ１１１００を評価値記録部１１３へ通知する。また、処理継続判定部１１０Ｃを起動し、最高評価値管理表Ｔ１１１００を通知する。【０３８２】
処理継続判定部１１０Ｃは、仮想棄却データ作成部１０１Ｃより取得した仮想棄却条件データ管理表Ｔ１０７００(図２０)より棄却個数「０」および棄却対象合成ワークフロー個数「４」を取得する。棄却個数＜棄却対象合成ワークフロー個数であり、かつ仮想棄却条件データ管理表Ｔ１０７００の棄却対象合成ワークフローステップ数が「Ｎｏｎｅ」、すなわち「棄却なし」の状態となっているため、処理継続判定部１１０Ｃは棄却対象合成ワークフローステップ数を新規に設定する。処理継続判定部１１０Ｃは、評価値計算部１０５より評価値管理表Ｔ１０４００(図２７)を取得し、評価値が合意サービス水準判定閾値「１」未満となる評価値エントリＴ１０４０１−１０４０２を抽出する。処理継続判定部１１０Ｃはまた、仮想棄却データ作成部１０１Ｃより仮想棄却データ管理表Ｔ１０８００(図２３)を取得し、評価値エントリＴ１０４０１、Ｔ１０４０２に対応するステップ数を取得する。評価値エントリＴ１０４０１に対応するのは仮想棄却データエントリＴ１０８０１であり、評価値エントリＴ１０４０２に対応するのは、仮想棄却データエントリＴ１０８０２であるため、それぞれステップ数は「５」および「２」となる。したがって、ステップ数は「５」が最大となり、これを棄却対象合成ワークフローステップ数として仮想棄却データ作成部１０１Ｃへ通知する。【０３８３】
仮想棄却データ作成部１０１Ｃは仮想棄却条件データ管理表Ｔ１０７００(図２０)を元に、新規に仮想棄却条件データ管理表Ｔ１０７０１(図３０)を作成する。仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフローステップ数には、処理継続判定部１１０Ｃより取得した棄却対象合成ワークフローステップ数「５」を設定し、棄却個数は仮想棄却条件データ管理表Ｔ１０７００の棄却個数「０」に１を加えた「１」を設定する。棄却対象合成ワークフロー定義ＩＤに仮想棄却条件データ管理表Ｔ１０７００の棄却対象合成ワークフロー定義ＩＤ「０００１」を設定したのち、仮想棄却条件データ管理表Ｔ１０７００を破棄する。なお、この時点では仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー個数、組み合わせ数については未定である。【０３８４】
シミュレート用データ作成部１０３は、実行状態問い合わせ信号をイベント情報送信部１４０へ再度通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０２(図３１)を取得し、シミュレータ用データ作成部１０３へ通知する。【０３８５】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を再度取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２０１（図３２）を作成する。【０３８６】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１０２および合成ワークフロー投入予測管理表Ｔ１０２０１を元にシミュレート用基礎データ管理表Ｔ１０９０１(図３３)を新規に作成し、仮想棄却データ作成部１０１Ｃへ通知する。【０３８７】
仮想棄却データ作成部１０１Ｃは、シミュレート用基礎データ管理表Ｔ１０９００を保持しているため、合成ワークフローＩＤ、ステップ数について新規に作成したシミュレート用基礎データ管理表Ｔ１０９０１と比較を行う。本実施例は合成ワークフロー群の実施状況に変化がなかった例である。合成ワークフロー群の実施状況に変化がないため、引き続き棄却判定を継続する。仮想棄却データ作成部１０１Ｃは、保持している仮想棄却条件データ管理表Ｔ１０７０１(図３０)より棄却対象合成ワークフローステップ数「５」を取得し、実行中の合成ワークフロー群の中で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下であるエントリの個数を取得する。本実施例では、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」の合成ワークフローは、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」であり、そのうちステップ数が「５」以下である個数は合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であるため、仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー個数は「３」となる。次に、仮想棄却条件データ管理表Ｔ１０７０１の棄却個数は「１」であるため、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から１個を選ぶ組み合わせの個数は３Ｃ１＝３であるため、組み合わせ個数は「３」として仮想棄却条件データ管理表Ｔ１０７０１（図３０）に保持する。【０３８８】
仮想棄却データ作成部１０１Ｃは、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」であるのもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下である合成ワークフローについて、棄却個数「１」分を仮想的に棄却した仮想棄却データ管理表を作成する。本実施例では、合成ワークフローＩＤ「０００３６４」を棄却したものが仮想棄却データ管理表Ｔ１０８０３（図３４）であり、合成ワークフローＩＤ「０００３６４」の仮想棄却データエントリＴ１０８０４のステップ数に仮想棄却を示す「ＲＥＪＥＣＴ」を設定している。同様に、合成ワークフローＩＤ「０００３６６」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０５(図３５)であり、合成ワークフローＩＤ「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０６（図３６）である。また、仮想棄却データ作成部１０１Ｃは、仮想棄却合成ワークフローデータ管理表Ｔ１０６００に仮想棄却合成ワークフローデータエントリを追加し、３つの仮想棄却データ管理表Ｔ１０８０３−１０８０５−１０８０６をシミュレーション処理部１１２へ通知する。【０３８９】
シミュレーション処理部１１２で処理を実行し、本実施例では仮想棄却データ管理表Ｔ１０８０３（図３４）に対してシミュレーション結果管理表Ｔ１０３０１(図３７)が、仮想棄却データ管理表Ｔ１０８０５(図３５)に対してシミュレーション結果管理表Ｔ１０３０２(図３８)が、仮想棄却データ管理表Ｔ１０８０６（図３６）に対してシミュレーション結果管理表Ｔ１０３０３（図３９）がそれぞれ作成されたものとする。シミュレーション結果管理表Ｔ１０３０１、Ｔ１０３０２、Ｔ１０３０３を評価値計算部１０５へ通知する。【０３９０】
評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３０１（図３７）に対して評価値管理表Ｔ１０４０３（図４０）を、シミュレーション結果管理表Ｔ１０３０２(図３８)に対して評価値管理表Ｔ１０４０４（図４１）を、シミュレーション結果管理表Ｔ１０３０３（図３９）に対して評価値管理表Ｔ１０４０５（図４２）を作成する。評価値を計算するにあたり、シミュレーション結果管理表Ｔ１０３０１（図３７）については、合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が２８０秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため（合成ワークフローの投入数が６であり、そのうち１個を仮想棄却している）、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓａは
（４７．０×２００＋２８０）÷（２００＋６）＝４６．９９０
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．９９０秒となる。同様にして、棄却率Ｒｓは、仮想棄却を１個していることを考慮して、
（９＋１）÷（２００＋９＋６）＝０．０４７
となる。そのため、評価値管理表Ｔ１０４０３（図４０）の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．９９０）×（６０÷５０）×（（０．０５＋１）÷（０．０４７＋１
））＝１．２８１
となっている。評価値計算部１０５で保持している組み合わせ数は「３」であるため、３個の評価値管理表Ｔ１０４０３、Ｔ１０４０４、Ｔ１０４０５が作成された後、時刻判定部１０２Ｃへ対して制限時刻判定依頼ｄ１２を通知する。【０３９１】
時刻判定部１０２Ｃは、現在時刻「１３：４８：３２．５５２」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５へ対し制限時間判定応答ｄ１３を通知する。評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、評価値管理表Ｔ１０４０３、Ｔ１０４０４、Ｔ１０４０５を最低評価値抽出部１０７へ通知する。最低評価値抽出部１０７は、評価値管理表Ｔ１０４０３、Ｔ１０４０４、Ｔ１０４０５からそれぞれ最低値となる評価値エントリを抽出して、最低評価値管理表Ｔ１０５０１（図４３）を作成し、最高評価値抽出部１０８へ通知する。【０３９２】
最高評価値抽出部１０８は、最低評価値管理表Ｔ１０５０１から最高値「０．９１５」を抽出して最高評価値管理表Ｔ１１１０１（図４４）を作成し、棄却判定部１０９Ｃへ通知する。棄却判定部１０９Ｃは、最高評価値管理表Ｔ１１１０１を取得後、評価値記録部１１３へ最高評価値管理表要求信号を通知する。評価値記録部１１３は、最高評価値管理表要求信号を受信後、保持している最高評価値管理表Ｔ１１１００を棄却判定部１０９Ｃへ通知する。棄却判定部１０９Ｃは、最高評価値抽出部１０８より取得した最高評価値管理表Ｔ１１１０１と評価値記録部１１３より取得した最高評価値管理表Ｔ１１１００に関して最高評価値の比較を行い、０．７９８＜０．９１５であるため、最高評価値管理表Ｔ１１１０１の方がよい評価値を与えると判定し、最高評価値管理表Ｔ１１１０１を評価値記録部１１３へ通知する。評価値記録部１１３は最高評価値管理表Ｔ１１１０１を受信後、保持していた最高評価値管理表Ｔ１１１００を最高評価値管理表Ｔ１１１０１へ更新する。次に、棄却判定部１０９Ｃは、処理継続判定部１１０Ｃへ最高評価値管理表Ｔ１１１０１を通知する。【０３９３】
処理継続判定部１１０Ｃは、仮想棄却データ作成部１０１Ｃより取得した仮想棄却条件データ管理表Ｔ１０７０１（図３０）より棄却個数「１」および棄却対象合成ワークフロー個数「３」を取得する。棄却個数＜棄却対象合成ワークフロー個数であり、かつ仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフローステップ数が「５」となっているため、棄却対象合成ワークフローステップ数「５」を仮想棄却データ作成部１０１Ｃへ通知する。【０３９４】
仮想棄却データ作成部１０１Ｃは仮想棄却条件データ管理表Ｔ１０７０１（図３０）を元に、仮想棄却条件データ管理表Ｔ１０７０２（図４５）を新規に作成する。仮想棄却条件データ管理表Ｔ１０７０２の棄却対象合成ワークフローステップ数には、処理継続判定部１１０Ｃより取得した棄却対象合成ワークフローステップ数「５」を設定し、棄却個数は仮想棄却条件データ管理表Ｔ１０７０１の棄却個数「１」に１を加えた「２」を設定する。棄却対象合成ワークフロー定義ＩＤに仮想棄却条件データ管理表Ｔ１０７０１の棄却対象合成ワークフロー定義ＩＤ「０００１」を設定した後、仮想棄却条件データ管理表Ｔ１０７０１を破棄する。なお、この時点では仮想棄却条件データ管理表Ｔ１０７０２の棄却対象合成ワークフロー個数、組み合わせ数については未定である。【０３９５】
シミュレート用データ作成部１０３は、実行状態問い合わせ信号をイベント情報送信部１４０へ再度通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０３（図４６）を取得し、シミュレータ用データ作成部１０３へ通知する。【０３９６】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を再度取得し、合成ワークフロー投入平均時間やその分散等を解析することで最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２０２（図４７）を作成する。【０３９７】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１０３および合成ワークフロー投入予測管理表Ｔ１０２０２を元にシミュレート用基礎データ管理表Ｔ１０９０２（図４８）を新規に作成し、仮想棄却データ作成部１０１Ｃへ通知する。【０３９８】
仮想棄却データ作成部１０１Ｃは、シミュレート用基礎データ管理表Ｔ１０９０１（図３３）を保持しているため、合成ワークフローＩＤ、ステップ数について新規に作成したシミュレート用基礎データ管理表Ｔ１０９０２と比較を行う。本実施例は合成ワークフロー群の実施状況に変化がなかった例である。合成ワークフロー群の実施状況に変化がないため、引き続き棄却判定を継続する。仮想棄却データ作成部１０１Ｃは、保持している仮想棄却条件データ管理表Ｔ１０７０２（図４５）より棄却対象合成ワークフローステップ数「５」を取得し、実行中の合成ワークフロー群の中で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以
下であるエントリの個数を取得する。本実施例では、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」の合成ワークフローは、合成ワークフローＩＤ「０００３６３」、「０００３６４」、「０００３６６」、「０００３６７」であり、そのうちステップ数が「５」以下である個数は合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であり、仮想棄却条件データ管理表Ｔ１０７０２（図４５）の棄却対象合成ワークフロー個数は「３」となる。次に、仮想棄却条件データ管理表Ｔ１０７０２（図４５）の棄却個数は「２」であるため、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から２個を選ぶ組み合わせの個数は３Ｃ２＝３であるため、組み合わせ個数は「３」として仮想棄却条件データ管理表Ｔ１０７０２に保持する。【０３９９】
仮想棄却データ作成部１０１Ｃは、実行中の合成ワークフロー群で合成ワークフロー定義ＩＤが「０００１」であるもののうち、ステップ数が棄却対象合成ワークフローステップ数「５」以下である合成ワークフローについて、棄却個数「２」分を仮想的に棄却した仮想棄却データ管理表を作成する。本実施例では、合成ワークフローＩＤ「０００３６４」と「０００３６６」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０７（図４９）であり、合成ワークフローＩＤ「０００３６４」と「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０８（図５０）であり、合成ワークフローＩＤ「０００３６６」と「０００３６７」を仮想棄却したものが仮想棄却データ管理表Ｔ１０８０９（図５１）である。また、仮想棄却データ作成部１０１Ｃに、仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）に仮想棄却合成ワークフローデータエントリを追加し、３つの仮想棄却データ管理表Ｔ１０８０７、Ｔ１０８０８、Ｔ１０８０９をシミュレーション処理部１１２へ通知する。【０４００】
シミュレーション処理部１１２で処理を実行し、本実施例では仮想棄却データ管理表Ｔ１０８０７（図４９）に対してシミュレーション結果管理表Ｔ１０３０８（図６４）が、仮想棄却データ管理表Ｔ１０８０８（図５０）に対してシミュレーション結果管理表Ｔ１０３０５（図５３）が、仮想棄却データ管理表Ｔ１０８０９（図５１）に対してシミュレーション結果管理表Ｔ１０３０６（図５４）がそれぞれ作成されたものとする。シミュレーション結果管理表Ｔ１０３０８、Ｔ１０３０５、Ｔ１０３０６を評価値計算部１０５へ通知する。【０４０１】
評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３０８（図６４）に対して評価値管理表Ｔ１０４１０（図６５）を、シミュレーション結果管理表Ｔ１０３０５（図５３）に対して評価値管理表Ｔ１０４０７（図５６）を、シミュレーション結果管理表Ｔ１０３０６（図５４）に対して評価値管理表Ｔ１０４０８（図５７）を作成する。評価値を計算するにあたり、シミュレーション結果管理表Ｔ１０３０８については、合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が２１３秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため（合成ワークフローの投入数が６であり、そのうち２個を仮想棄却している）、本シミュレーション結果を反映した合成ワークフロー平均応答時間Ｔｓａは
（４７．０×２００＋２１３）÷（２００＋６）＝４６．６６５
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．６６５秒となる。同様にして、棄却率Ｒｓは、仮想棄却を２個していることを考慮して、
（９＋２）÷（２００＋９＋６）＝０．０５２
となる。そのため、評価値管理表Ｔ１０４１０の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．６６５）×（６０÷５０）×（（０．０５＋１）÷（０．０５２＋１
））＝１．０１９
となっている。評価値計算部１０５で保持している組み合わせ数は「３」であるため、評価値計算部１０５は、３個の評価値管理表Ｔ１０４１０、Ｔ１０４０７、Ｔ１０４０８が作成された後、時刻判定部１０２Ｃへ対して制限時刻判定依頼ｄ１２を通知する。【０４０２】
時刻判定部１０２Ｃは、現在時刻「１３：４８：３３．１２５」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過しているため、評価値記録部１１３へ棄却判定終了通知ｄ４３を通知する。評価値記録部１１３は、最高評価値管理表を保持しているか確認を行う。本実施例では最高評価値管理表Ｔ１１１０１を保持しているため、棄却命令送信部１１１Ｃを起動し、最高評価値管理表Ｔ１１１０１を通知する。棄却命令送信部１１１Ｃは、最高評価値管理表Ｔ１１１０１よりシミュレートＩＤ「０００２８」を抽出する。仮想棄却データ作成部１０１Ｃに保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６００（図２４）のうち、シミュレートＩＤが「０００２８」となるエントリの棄却対象合成ワークフローＩＤは「０００３６４」であるため、合成ワークフローＩＤが「０００３６４」である実行中の合成ワークフローに対して強制棄却命令を発行し、処理を終了する。【０４０３】
以上、説明したように、棄却判定を行わない場合、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」「０００３６７」で特定される合成ワークフローの評価値が合意サービス水準判定閾値を下回るため、締結されている合意サービス水準を満たすことができないと予想される。一方、本発明の第３の実施の形態による棄却判定を適用した場合、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」の特定される合成ワークフローを棄却すれば、どんなに低くても評価値が「０．９１５」となることが予想される。したがって、実行中の合成ワークフローを棄却しない場合の評価値が「０．７９８」となることが予想されることから、実行中の合成ワークフローのうち合成ワークフローＩＤ「０００３６４」の特定される合成ワークフローを棄却すれば、合意サービス水準判定閾値を下回るため締結されている合意サービス水準を満たすことはできないが、評価値を「０．９１５」まで改善できることが予想され、締結されている合意サービス水準に近づけることができると予想される。【０４０４】
第３の実施の形態による棄却判定は、合意サービス水準判定閾値を満足する、しない、に関わらず、制限時間内において判定した棄却パターンのうち、最もよい評価値を与える棄却パターンを発見することが可能である。このため、第３の実施の形態による棄却判定は、締結されている合意サービス水準を満たすことができない場合においても評価値を改善することができる点において、第１、第２の実施の形態よりも有効である。【０４０５】
［第４の実施例］
第４の実施例を説明するにあたり、棄却判定を行う合成ワークフロー定義ＩＤを仮に「０００１」とし、サービスプロバイダとサービスコーディネータの間で結ばれた合意サービス水準情報は要求合成ワークフロー応答時間Ｔを６０秒、要求平均合成ワークフロー実行時間Ｔａを５０秒、要求棄却率Ｒを５％であるとする。また、サービスプロバイダとサービスコーディネータの間で結ばれた評価値計算関数ｆは、シミュレータで求まる合成ワークフロー予測応答時間をＴｓ、合成ワークフロー平均応答時間をＴｓａ、棄却率をＲｓとした場合に、ｆ＝（Ｔ／Ｔｓ）×（Ｔａ／Ｔｓａ）×（（Ｒ＋１）／（Ｒｓ＋１））で定めるものとし、ｆが１以上の時に合意サービス水準は満たされていると判定すると合意されているものとする。すなわち、合意サービス水準判定閾値は１であるとする。また、シミュレートの制限時間は１秒とする。【０４０６】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤ「０００１」を保持しており、すでに実行状態管理表Ｔ１０１００(図１８)を保持しているものとする。実行状態管理表Ｔ１０１００は、５個の合成ワークフローが実施中である例である。ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視しており、合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローについて、業務アプリケーションより応答メッセージイベントデータが新規に追加されることを検知する。ステップ数監視部１３０は、実行状態管理表Ｔ１０１００を更新し、実行状態管理表Ｔ１０１０１(図１９)を作成する。合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについてステップ数に変化があることを検知したため、ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｄの起動状態を確認し、仮想棄却データ作成部１０１Ｄが起動中でないために起動する。ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｄへ合成ワークフロー定義ＩＤ「０００１」を通知する。【０４０７】
仮想棄却データ作成部１０１Ｄは仮想棄却条件データ管理表Ｔ１０７０３(図８５)を作成する。仮想棄却条件データ管理表Ｔ１０７０３は仮想棄却条件ＩＤを仮に「０００２５」とした例であり、棄却対象合成ワークフロー定義ＩＤは「０００１」となる。なお、この時点では棄却対象合成ワークフロー個数、組み合わせ数は未定である。【０４０８】
時刻判定部１０２Ｄは、現在時刻が「１３：４８：３２．１０７」であること、シミュレートの制限時間が１秒であることから、判定終了時刻が「１３：４８：３３．１０７」であることを計算、保持し評価値記録部１１３を起動する。【０４０９】
シミュレータ用データ作成部１０３は、仮想棄却データ作成部１０１Ｄによって起動された後、実行状態問い合わせ信号をイベント情報送信部１４０へ通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０１(図１９)を取得し、シミュレータ用データ作成部１０３へ通知する。【０４１０】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を取得し、合成ワークフロー投入平均時間やその分散等を解析して合成ワークフロー投入情報管理表Ｔ１１２００（図８０）を作成し、さらに最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２００(図２１)を作成する。合成ワークフロー投入情報管理表Ｔ１１２００は、投入情報として、合成ワークフロー定義ＩＤ「０００１」に属する合成ワークフローの投入平均間隔が４９３秒、その分散が６４．９秒2、合成ワークフロー定義ＩＤ「０００２」に属する合成ワークフローの投入平均間隔が５２６秒、その分散が１６０．５秒2である例である。【０４１１】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１００および合成ワークフロー投入予測管理表Ｔ１０２００を元にシミュレート用基礎データ管理表Ｔ１０９００（図２２）を作成する。シミュレート用基礎データ管理表Ｔ１０９００は、シミュレート用基礎データ管理表Ｔ１０９００の合成ワークフローＩＤ「０００３６３」〜「０００３６７」の時刻フィールドには現在時刻である「１３：４８：３３．１０７」を設定し、将来投入されると予測された合成ワークフローＩＤ「Ｓ００１」〜「Ｓ００３」のステップ数フィールドには０を設定した例である。また、シミュレート用データ作成部１０３は、イベントデータ統計計算部１０４より取得た合成ワークフロー投入情報管理表Ｔ１１２００を仮想棄却データ作成部１０１Ｄへ通知する。【０４１２】
仮想棄却データ作成部１０１Ｄは、シミュレート用データ作成部１０３よりシミュレート用基礎データ管理表Ｔ１０９００、および合成ワークフロー投入情報管理表Ｔ１１２００を取得後、状態表現生成部２０１Ｄの起動状態を確認し、状態表現生成部２０１Ｄが起動中でないために起動する。仮想棄却データ作成部１０１Ｄは、状態表現生成部２０１Ｄへシミュレート用基礎データ管理表Ｔ１０９００、合成ワークフロー投入情報管理表Ｔ１１２００、および棄却対象合成ワークフロー定義ＩＤ「０００１」を通知する。【０４１３】
状態表現生成部２０１Ｄは、起動後に最大ステップ数保持部１５０より、全ての合成ワークフロー定義において、実行中の合成ワークフローが取りうる最大ステップ数を取得する。本実施例においては、合成ワークフロー定義ＩＤ「０００１」に属する合成ワークフローがステップ数６、合成ワークフロー定義ＩＤ「０００２」に属する合成ワークフローがステップ数３まで取りうるものとし、本例において状態表現生成部２０１Ｄは最大ステップ数保持部１５０より最大ステップ数「６」を取得する。【０４１４】
状態表現生成部２０１Ｄは、取得したシミュレート用基礎データ管理表Ｔ１０９００および、合成ワークフロー投入情報管理表かＴ１１２００から、合成ワークフロー定義ＩＤ毎に、合成ワークフロー定義ＩＤを持つ合成ワークフロー定義に属する合成ワークフローに関してステップ数毎に集計した合成ワークフローの個数と、投入平均間隔、分散を抽出し、状態表現ベクトルＶ１０１００（図８１）を作成する。状態表現ベクトルＶ１０１００は、合成ワークフロー定義ＩＤ「０００１」に属する実行状態を表現したベクトルの例である。シミュレート用基礎データ管理表Ｔ１０９００より、ステップ数１の合成ワークフローが１個、ステップ数２の合成ワークフローが１個、ステップ数３、ステップ数４の合成ワークフローが各０個、ステップ数５の合成ワークフローが１個、ステップ数６の合成ワークフローが１個あることが分かり、合成ワークフロー投入情報管理表Ｔ１１２００より投入平均間隔が４９３秒、その分散が６４．９秒2であることが分かり、これらの情報と合成ワークフロー定義ＩＤを合わせて状態表現ベクトルＶ１０１００で表現している。同様にして状態表現生成部２０１Ｄは、合成ワークフロー定義ＩＤ「０００２」に属する実行状態を状態表現ベクトルで表現する。ここで、状態表現ベクトルの要素数を一致させるため、合成ワークフロー定義ＩＤ「０００２」に関する合成ワークフローのステップ数に関しても、最大ステップ数保持部１５０より取得した最大ステップ数６まで、その個数を集約する。【０４１５】
状態表現生成部２０１Ｄは、各合成ワークフロー定義ＩＤに関して状態表現ベクトルを生成後、それらをまとめて状態表現行列Ｍ１０１００を生成する。【０４１６】
図８２はシミュレート用基礎データ管理表Ｔ１０９００と合成ワークフロー投入情報管理表００から生成した状態表現行列Ｍ１０１００である。状態表現生成部２０１Ｄは、状態表現検索部２０３Ｄを起動し、生成した状態表現行列Ｍ１０１００と、仮想棄却データ作成部１０１Ｄより取得した棄却対象合成ワークフロー定義ＩＤ「０００１」を通知する。【０４１７】
状態表現検索部２０３Ｄは、取得した状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」をキーに、状態履歴格納ＤＢ２０２Ｄに格納されている状態履歴管理表Ｔ１１３００を検索する。図８３は、本実施例において状態履歴格納ＤＢ２０２Ｄで保持される状態履歴情報管理表Ｔ１１３００を示している。なお、状態履歴情報管理表Ｔ１１３００において、状態表現行列や棄却状態ベクトルは便宜上文字列で表記しているが、実際は各々行列、ベクトルとなる。本発明においては行列やベクトルをＤＢに保持する手法を目的としていないため、その手法については明記せず、今後行列やベクトルをＤＢに保持する場合は状態履歴情報管理表Ｔ１１３００同様に便宜上文字列で表記するものとする。状態履歴情報管理表Ｔ１１３００には状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」が紐付いて保持されているため、対応する棄却状態表現ベクトルＶ１０２００、評価値０．９１５、収束判定フラグ０、棄却個数２、棄却対象合成ワークフローステップ数５を取得する。これにより、過去の状態表現行列Ｍ１０１００で表現される条件での棄却判定結果によれば、棄却個数を２個、棄却対象合成ワークフローステップ数５、棄却の条件を棄却状態表現ベクトルＶ１０２００（ステップ数１とステップ数５の合成ワークフローをそれぞれ1個棄却する）にすれば、（収束判定フラグが成立していないため）最善ではないが、評価値０．９１５を得られると予測できる、ということが分かる。なお本実施例において、収束判定フラグは１の場合に成立しているものとし、０の場合は成立していないものとする。【０４１８】
状態表現検索部２０３Ｄは、取得した収束判定フラグが成立していないため、最高評価値管理表Ｔ１１１０５（図８４）を作成して評価値記録部１１３へ通知し、評価値記録部１１３は受信した最高評価値Ｔ１１１０５を保持する。このとき、評価値は状態履歴格納ＤＢ２０２Ｄより取得したため、最高評価値管理表Ｔ１１１０５のシミュレートＩＤは「−１」としている。更に状態表現検索部２０３Ｄは状態履歴格納ＤＢ２０２Ｄより取得した棄却個数２に1を加えた３を棄却個数として仮想棄却データ作成部１０１Ｄへ通知する。同様に状態履歴格納ＤＢ２０２Ｄより取得した棄却対象合成ワークフローステップ数５を仮想棄却データ作成部１０１Ｄへ通知する。【０４１９】
仮想棄却データ作成部１０１Ｄは、棄却対象合成ワークフローステップ数が「５」であり、棄却対象合成ワークフロー定義ＩＤが「０００１」であること、およびシミュレート用基礎データ管理表Ｔ１０９００(図２２)から、棄却対象合成ワークフロー個数は、合成ワークフローＩＤ「０００３６４」、「０００３６６」、「０００３６７」の３個であると判定し、仮想棄却条件データ管理表Ｔ１０７０３(図８５)に保持する。また、棄却個数は状態表現検索部２０３Ｄより取得した３であり、棄却対象合成ワークフロー個数から棄却個数を選ぶ組み合わせの数、すなわち３個から３個を選ぶ組み合わせの個数は３Ｃ３＝１であるため、組み合わせ個数は「１」として仮想棄却条件データ管理表Ｔ１０７０３に保持する。【０４２０】
仮想棄却データ作成部１０１Ｄはシミュレーション処理部１１２の入力データとしてシミュレート用基礎データ管理表Ｔ１０９００(図２２)を元に仮想棄却データ管理表Ｔ１０８１０(図８６)を作成する。仮想棄却データ管理表Ｔ１０８１０はシミュレートＩＤを仮に「０００２７」とした例である。また、仮想棄却合成ワークフローデータ管理表Ｔ１０６０２（図８７）を作成する。【０４２１】
仮想棄却データ管理表Ｔ１０８１０を元にシミュレーション処理部１１２で処理を実行し、本実施例ではシミュレーション結果管理表Ｔ１０３０９（図８８）が作成されたものとする。シミュレーション処理部１１２はシミュレーション結果管理表Ｔ１０３０９を評価値計算部１０５へ通知する。【０４２２】
評価値計算部１０５は、保持している棄却対象合成ワークフロー定義ＩＤ「０００１」をイベントデータ統計計算部１０４へ通知し、統計情報データ管理表Ｔ１１０００（図２６）を取得する。統計情報データ管理表Ｔ１１０００は、統計情報ＩＤを「００５」とし、今まで合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについての実行済み合成ワークフロー数が２００、実行済み合成ワークフローの平均応答時間が４７．０秒、棄却合成ワークフロー数が９となる例である。評価値計算部１０５は、シミュレーション結果管理表Ｔ１０３００(図２５)のうち合成ワークフロー定義ＩＤが「０００１」であるエントリと統計情報データ管理表Ｔ１１０００(図２６)を元に評価値計算関数ｆを用いて評価値管理表Ｔ１０４１１（図８９）を作成する。シミュレーション結果管理表Ｔ１０３０９のうち合成ワークフロー定義ＩＤが「０００１」であるエントリの合成ワークフロー予測応答時間の合計が１４０秒であり、今回の合成ワークフロー定義ＩＤが「０００１」である合成ワークフローの投入数は６であるため、本シミュレーション結果を反映した平均合成ワークフロー実行時間は
（４７．０×２００＋１４０）÷（２００＋６）＝４６．３１１
となり、評価値計算関数ｆで用いる合成ワークフロー平均応答時間Ｔｓａは４６．３１１秒となる。同様にして、棄却率Ｒｓは、仮想棄却を３個していることを考慮して
（９＋３）÷（２００＋９＋６）＝０．０５９
となる。そのため、評価値管理表Ｔ１０４１１の合成ワークフローＩＤが「０００３６３」の評価値は、
（５０．０÷４６．３１１）×（６０÷５０）×（（０．０５＋１）÷（０．０５９＋１
））＝１．２８５
となっている。評価値計算部１０５で現在保持している組み合わせ数が１であるため、作成される評価値管理表は評価値管理表Ｔ１０４１１のみである。評価値管理表Ｔ１０４１１の作成後、時刻判定部１０２Ｄに対して制限時刻判定依頼ｄ１２を通知する。【０４２３】
時刻判定部１０２Ｄは、現在時刻「１３：４８：３２．１３０」を取得し、現在時刻が、保持している判定終了時間「１３：４８：３３．１０７」を経過していないため、評価値計算部１０５に対し制限時間判定応答ｄ１３を通知する。【０４２４】
評価値計算部１０５は、制限時間判定応答ｄ１３を受信したため、最低評価値抽出部１０７を起動し、評価値管理表Ｔ１０４１１を通知する。【０４２５】
最低評価値抽出部１０７は、評価値管理表Ｔ１０４１１の最低評価値を比較し、最低値を抽出して最低評価値管理表Ｔ１０５０５（図９０）を作成する。最低評価値抽出部１０７は最高評価値抽出部１０８を起動し、最低評価値管理表Ｔ１０５０５を通知する。【０４２６】
最高評価値抽出部１０８は最低評価値管理表Ｔ１０５０５から最高値「１．２８５」を抽出して最高評価値管理表Ｔ１１１０６(図９１)を作成する。最高評価値抽出部１０８は、棄却判定部１０９Ｄを起動し、最高評価値管理表Ｔ１１１０６を通知する。【０４２７】
棄却判定部１０９Ｄは、最高評価値管理表Ｔ１１１０６を取得後、評価値記録部１１３へ最高評価値管理表要求信号を通知する。評価値記録部１１３は、最高評価値管理表要求信号を受信後、最高評価値管理表Ｔ１１１０５を保持しているため、棄却判定部１０９Ｄへ対し最高評価値管理表Ｔ１１１０５を通知する。棄却判定部１０９Ｄは、評価値記録部１１３より取得した最高評価値管理表Ｔ１１１０５と、最高評価値抽出部１０８より取得した最高評価管理表Ｔ１１１０６の比較を行い、より高い最高評価値を保持する最高評価値管理表Ｔ１１１０６を評価値記録部１１３へ通知する。また、棄却判定部１０９Ｄは処理継続判定部１１０Ｄを起動し、最高評価値管理表Ｔ１１１０６を処理継続判定部１１０Ｄへ通知する。さらに処理継続判定部１１０Ｄを起動し、最高評価値管理表Ｔ１１１０６を通知する。【０４２８】
処理継続判定部１１０Ｄは、仮想棄却データ作成部１０１Ｄより取得した仮想棄却条件データ管理表Ｔ１０７０３(図８５)より棄却個数「３」および棄却対象合成ワークフロー個数「３」を取得する。棄却個数＝棄却対象合成ワークフロー個数であるため、これ以上棄却する組み合わせがないと判断し、収束判定フラグ「１」を成立させる。次に処理継続判定部１１０Ｄは、評価値記録部１１３へ棄却判定終了通知と収束判定フラグ「１」を通知する。【０４２９】
評価値記録部１１３は棄却判定終了通知を受信したため、棄却命令送信部１１１Ｄを起動し、保持している最高評価値管理表Ｔ１１１０６と収束判定フラグ「１」を棄却命令送信部１１１Ｄへ通知する。【０４３０】
最高評価値管理表Ｔ１１１０６を取得した棄却命令送信部１１１Ｄは、最高評価値管理表Ｔ１１１０６が状態履歴格納ＤＢ２０２Ｄに保持されていた履歴から取得されていたかどうかの確認を行う。本実施例では、最高評価値管理表Ｔ１１１０６のシミュレートＩＤが「０００２７」であり、状態履歴格納ＤＢ２０２Ｄより取得された場合に付与されるシミュレートＩＤ「−１」とは異なるため、状態履歴格納ＤＢから取得されていない、と判定することができる。【０４３１】
仮想棄却データ作成部１０１Ｄに保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６０２のうち、シミュレートＩＤが「０００２７」となるエントリの棄却対象合成ワークフローＩＤは「００３６４」「００３６６」「００３６７」であるため、合成ワークフローＩＤが「００３６４」「００３６６」「００３６７」である実行中の合成ワークフローに対して強制棄却命令を発行する。次に、棄却命令送信部１１１Ｄは棄却状態取得部２０４Ｄを起動し、最高評価値管理表Ｔ１１１０６と収束判定フラグ「１」を通知する。【０４３２】
棄却状態取得部２０４Ｄは、棄却命令送信部１１１Ｄより取得した最高評価値管理表Ｔ１１１０６が状態履歴格納ＤＢ２０２Ｄに保持されていた履歴から取得されていたかどうかの確認を行う。本実施例では、最高評価値管理表Ｔ１１１０６のシミュレートＩＤが「０００２７」であり、状態履歴格納ＤＢ２０２Ｄより取得された場合に付与されるシミュレートＩＤ「−１」とは異なるため、状態履歴格納ＤＢから取得されていない、と判定することができる。次に、棄却状態取得部２０４Ｄは仮想棄却データ作成部１０１Ｄより棄却個数と棄却対象合成ワークフローステップ数を取得する。最初に、最高評価値管理表Ｔ１１１０６のシミュレートＩＤが「０００２７」であるため、仮想棄却データ作成部１０１Ｄに保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６０２（図８７）のシミュレートＩＤが「０００２７」に一致するエントリの仮想棄却条件ＩＤ「０００２５」を抽出する。次に仮想棄却条件ＩＤ「０００２５」を仮想棄却条件ＩＤフィールドに持つ仮想棄却条件データ管理表Ｔ１０７０３（図８５）を仮想棄却データ作成部１０１Ｄより検索し、仮想棄却条件データ管理表Ｔ１０７０３に保持されている棄却個数「３」と棄却対象合成ワークフローステップ数「５」を取得することができる。次に、棄却状態取得部２０４Ｄは棄却状態表現生成部２０６Ｄを起動し、最高評価値管理表Ｔ１１１０６を通知する。【０４３３】
棄却状態表現生成部２０６Ｄは、仮想棄却データ作成部１０１Ｄより仮想棄却合成ワークフローデータ管理表Ｔ１０６０２（図８７）とシミュレート用基礎データ管理表Ｔ１０９００を取得する。最初に、最高評価値管理表Ｔ１１１０６のシミュレートＩＤが「０００２７」であるため、仮想棄却合成ワークフローデータ管理表Ｔ１０６０２からシミュレートＩＤが「０００２７」に一致する棄却合成ワークフローＩＤ「０００３６４」「０００３６６」「０００３６７」を取得する。次に、シミュレート用基礎データ管理表Ｔ１０９００（図２２）から合成ワークフローＩＤが取得した棄却合成ワークフローＩＤ「０００３６４」「０００３６６」「０００３６７」に一致するエントリを抽出し、合成ワークフロー定義ＩＤ「０００１」とステップ数「５」「２」「１」を取得する。次に、棄却状態表現生成部２０６Ｄは、最大ステップ数保持部より取得した合成ワークフロー定義ＩＤ「０００１」が取りうる最大ステップ数６を取得する。これにより、棄却状態表現生成部２０６Ｄは、合成ワークフロー定義ＩＤが「０００１」で、ステップ数６までについて、ステップ数毎に棄却された合成ワークフローの個数を集約して棄却状態表現ベクトルＶ１０２０１（図９２）を生成する。棄却状態表現生成部２０６Ｄは、生成した棄却状態表現ベクトルＶ１０２０１を棄却状態取得部２０４Ｄへ通知する。【０４３４】
棄却状態取得部２０４Ｄは棄却状態表現ベクトルＶ１０２０１を取得後、状態表現検索部２０３Ｄより、状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」を取得する。これにより、棄却状態取得部２０４Ｄは状態履歴情報管理表を作成するために必要な情報、状態表現行列Ｍ１０１００、棄却対象合成ワークフロー定義ＩＤ「０００１」、棄却状態表現ベクトルＶ１０２０１、評価値「１．２８５」、収束判定フラグ「１」、棄却個数「３」、棄却対象合成ワークフローステップ数「５」がそろったため、状態履歴情報管理表Ｔ１１３０１（図９３）を作成する。次に、棄却状態取得部２０４Ｄは状態表現記録部２０５Ｄを起動し、作成した状態履歴情報管理表Ｔ１１３０１を通知する。【０４３５】
状態表現記録部２０５Ｄは、状態履歴情報管理表Ｔ１１３０１を取得後、状態履歴格納ＤＢに保持されている状態履歴情報管理表Ｔ１１３００（図８３）を検索し、状態履歴情報管理表Ｔ１１３０１にある状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」のセットが状態履歴情報管理表Ｔ１１３００に存在するため、状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」のセットに紐付く情報を状態履歴情報管理表Ｔ１１３０１と同様になるように、状態履歴情報管理表Ｔ１１３００を更新し（更新後の状態履歴情報管理表Ｔ１１３０２を図９４に示す）、処理を終了する。【０４３６】
以上、説明したように、第４の実施の形態による棄却判定を適用した場合、状態履歴格納ＤＢ２０２Ｄに棄却判定を行う状態と同様の状態が保持されていれば、保持されている棄却状態表現ベクトルに従った棄却パターンに従い棄却すれば、保持されている評価値を少なくとも確保することが予想され、また収束判定フラグが成立していない場合には、保持されている棄却個数に1を加えた状態を棄却個数として棄却判定を開始することにより、よりよい評価値を与える棄却パターンが存在するかを探査することが可能になる。本実施例においては、当初実行中の合成ワークフローを棄却状態表現ベクトルＶ１０２００に従った棄却パターンに従い棄却すれば評価値「０．９１５」を達成することが予想され、さらに棄却個数を増やした状態で棄却判定を行った結果、実行中の合成ワークフローを棄却状態表現ベクトルＶ１０２０１に従った棄却パターンに従い棄却すれば評価値「１．２８５」を達成できると予想される。また、本実施例においては最終的に収束判定フラグが成立したため、今後本実施例と同様の状況があれば、棄却判定処理を行わずとも状態履歴格納ＤＢ２０２Ｄに保持されている棄却状態表現ベクトルＶ１０２０１に従った棄却パターンに従い棄却すれば、評価値「１．２８５」を達成することが予想される。【０４３７】
このように、過去の棄却判定履歴を保持、活用することでよりよい評価値を与える棄却パターンを探査すること、収束判定フラグが成立すれば棄却判定処理を必要としないことから、評価値のさらなる改善、棄却判定処理の時間コスト低減を見込むことが可能となり、本発明の第４の実施の形態による棄却判定はさらに有効である。【０４３８】
［第５の実施例］
第５の実施例を説明するにあたり、棄却判定機能部１００Ｅの詳細な動作は第４の実施例における棄却判定機能部１００Ｄと同様であるため、棄却判定機能部１００Ｅの詳細な動作については省略する。【０４３９】
ステップ数監視部１３０は、棄却判定対象となる合成ワークフロー群を一意に特定する合成ワークフロー定義ＩＤ「０００１」を保持しており、すでに実行状態管理表Ｔ１０１００(図１８)を保持しているものとする。実行状態管理表Ｔ１０１００は、５個の合成ワークフローが実施中である例である。ステップ数監視部１３０は、イベント格納ＤＢ１２０を監視しており、合成ワークフローＩＤ「０００３６４」で特定される合成ワークフローについて、業務アプリケーションより応答メッセージイベントデータが新規に追加されることを検知する。ステップ数監視部１３０は、実行状態管理表Ｔ１０１００を更新し、実行状態管理表Ｔ１０１０１(図１９)を作成する。合成ワークフロー定義ＩＤが「０００１」の合成ワークフローについてステップ数に変化があることを検知したため、ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｅの起動状態を確認し、仮想棄却データ作成部１０１Ｅが起動中でないために起動する。ステップ数監視部１３０は、仮想棄却データ作成部１０１Ｄへ合成ワークフロー定義ＩＤ「０００１」を通知する。【０４４０】
仮想棄却データ作成部１０１Ｅは仮想棄却条件データ管理表Ｔ１０７０３(図２０)を作成する。仮想棄却条件データ管理表Ｔ１０７０３は仮想棄却条件ＩＤを仮に「０００２５」とした例であり、棄却対象合成ワークフロー定義ＩＤは「０００１」となる。なお、この時点では棄却対象合成ワークフロー個数、組み合わせ数は未定である。【０４４１】
時刻判定部１０２Ｅは、現在時刻が「１３：４８：３２．１０７」であること、シミュレートの制限時間が１秒であることから、判定終了時刻が「１３：４８：３３．１０７」であることを計算、保持し評価値記録部１１３を起動する。【０４４２】
シミュレータ用データ作成部１０３は、仮想棄却データ作成部１０１Ｅによって起動された後、実行状態問い合わせ信号をイベント情報送信部１４０へ通知する。イベント情報送信部１４０は、ステップ数監視部１３０が保持している実行状態管理表Ｔ１０１０１(図１９)を取得し、シミュレータ用データ作成部１０３へ通知する。【０４４３】
イベントデータ統計計算部１０４は、イベント格納ＤＢ１２０より履歴情報を取得し、合成ワークフロー投入平均時間やその分散等を解析して合成ワークフロー投入情報管理表Ｔ１１２００（図８０）を作成し、さらに最も起こりそうな合成ワークフロー投入パターンを割り出し、合成ワークフロー投入予測管理表Ｔ１０２００(図２１)を作成する。合成ワークフロー投入情報管理表Ｔ１１２００は、投入情報として、合成ワークフロー定義ＩＤ「０００１」に属する合成ワークフローの投入平均間隔が４９３秒、その分散が６４．９秒2、合成ワークフロー定義ＩＤ「０００２」に属する合成ワークフローの投入平均間隔が５２６秒、その分散が１６０．５秒2である例である。【０４４４】
シミュレート用データ作成部１０３は、実行状態管理表Ｔ１０１００および合成ワークフロー投入予測管理表Ｔ１０２００を元にシミュレート用基礎データ管理表Ｔ１０９００（図２２）を作成する。シミュレート用基礎データ管理表Ｔ１０９００は、シミュレート用基礎データ管理表Ｔ１０９００の合成ワークフローＩＤ「０００３６３」〜「０００３６７」の時刻フィールドには現在時刻である「１３：４８：３３．１０７」を設定し、将来投入されると予測された合成ワークフローＩＤ「Ｓ００１」〜「Ｓ００３」のステップ数フィールドには０を設定した例である。【０４４５】
仮想棄却データ作成部１０１Ｅは、シミュレート用データ作成部１０３よりシミュレート用基礎データ管理表Ｔ１０９００、および合成ワークフロー投入情報管理表Ｔ１１２００を取得後、状態表現生成部２０１Ｅの起動状態を確認し、状態表現生成部２０１Ｅが起動中でないために起動する。仮想棄却データ作成部１０１Ｅは、状態表現生成部２０１Ｅへシミュレート用基礎データ管理表Ｔ１０９００、合成ワークフロー投入情報管理表Ｔ１１２００、および棄却対象合成ワークフロー定義ＩＤ「０００１」を通知する。【０４４６】
状態表現生成部２０１Ｅは、起動後に最大ステップ数保持部１５０より、全ての合成ワークフロー定義において、実行中の合成ワークフローが取りうる最大ステップ数を取得する。本実施例においては、合成ワークフロー定義ＩＤ「０００１」に属する合成ワークフローがステップ数６、合成ワークフロー定義ＩＤ「０００２」に属する合成ワークフローがステップ数３まで取りうるものとし、本例において状態表現生成部２０１Ｅは最大ステップ数保持部１５０より最大ステップ数「６」を取得する。【０４４７】
状態表現生成部２０１Ｅは、取得したシミュレート用基礎データ管理表Ｔ１０９００および、合成ワークフロー投入情報管理表かＴ１１２００から、合成ワークフロー定義ＩＤ毎に、合成ワークフロー定義ＩＤに属する合成ワークフロー定義に属する合成ワークフローに関してステップ数毎に集計した合成ワークフローの個数と、投入平均間隔、分散を抽出し、状態表現ベクトルＶ１０１００（図８１）を作成する。状態表現ベクトルＶ１０１００は、合成ワークフロー定義ＩＤ「０００１」に属する実行状態を表現したベクトルの例である。シミュレート用基礎データ管理表Ｔ１０９００より、ステップ数１の合成ワークフローが１個、ステップ数２の合成ワークフローが１個、ステップ数３、ステップ数４の合成ワークフローが各０個、ステップ数５の合成ワークフローが１個、ステップ数６の合成ワークフローが１個あることが分かり、合成ワークフロー投入情報管理表Ｔ１１２００より投入平均間隔が４９３秒、その分散が６４．９秒2であることが分かり、これらの情報と合成ワークフロー定義ＩＤを状態表現ベクトルＶ１０１００で表現している。同様にして状態表現生成部２０１Ｄは、合成ワークフロー定義ＩＤ「０００２」に属する実行状態を状態表現ベクトルで表現する。ここで、状態表現ベクトルの要素数を一致させるため、合成ワークフロー定義ＩＤ「０００２」に関する合成ワークフローのステップ数に関しても、最大ステップ数保持部１５０より取得した最大ステップ数６まで、その個数を集約する。【０４４８】
状態表現生成部２０１Ｅは、各合成ワークフロー定義ＩＤに関して状態表現ベクトルを生成後、それらをまとめて状態表現行列Ｍ１０１００を生成する。【０４４９】
図８２はシミュレート用基礎データ管理表Ｔ１０９００と合成ワークフロー投入情報管理表Ｔ１１２００から生成した状態表現行列Ｍ１０１００である。状態表現生成部２０１Ｅは、状態表現検索部２０３Ｅを起動し、生成した状態表現行列Ｍ１０１００と、仮想棄却データ作成部１０１Ｅより取得した棄却対象合成ワークフロー定義ＩＤ「０００１」を通知する。【０４５０】
状態表現検索部２０３Ｅは、取得した状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」をキーに、状態履歴格納ＤＢ２０２Ｅに格納されている状態履歴管理表Ｔ１１３００を検索する。図９７は、本実施例において状態履歴格納ＤＢ２０２Ｄで保持される状態履歴情報管理表Ｔ１１３０３を示している。なお、状態履歴情報管理表Ｔ１１３０３において、状態表現行列や棄却状態ベクトルは便宜上文字列で表記しているが、実際は各々行列、ベクトルとなる。本特許においては行列やベクトルをＤＢに保持する手法を目的としていないため、その手法については明記せず、今後行列やベクトルをＤＢに保持する場合は状態履歴情報管理表Ｔ１１３０３同様に便宜上文字列で表記するものとする。状態履歴情報管理表Ｔ１１３０３には状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」が紐付いて保持されていないため、状態２０３Ｅは検索ポリシ設定部２０７Ｅより、検索ポリシを取得し、取得した検索ポリシに従い状態表現行列Ｍ１０１００と「似た状況」での棄却判定履歴がないかを、状態履歴格納ＤＢ２０２Ｅに保持されている状態履歴情報管理表Ｔ１１３０３より検索する。【０４５１】
本実施例においては、検索ポリシ設定部２０７Ｅにて保持される「似た状況」と判定するためのポリシは、「状態履歴格納ＤＢ２０２Ｄに保持されている状態表現行列の、各合成ワークフロー定義でステップ数を集約した合成ワークフローの個数を表す各要素と、それに対応する現在の状態表現行列の該当する要素の差が１以内で、かつ各合成ワークフロー定義でステップ数を集約した合成ワークフローの個数を表す各要素の和と、それに対応する現在の状態表現行列の該当する要素の和の差が1以内のものを似た状況とみなす」とし、「似た状況」を抽出する個数は２個までとする。【０４５２】
まず、状態表現検索部２０３Ｅが保持している棄却対象合成ワークフロー定義ＩＤが「０００１」であるため、状態履歴情報管理表１１３０３に保持されている履歴のうち、抽出対象は状態表現行列がＭ１０１０１である履歴と、Ｍ１０１０２である履歴となる。ここで状態表現行列Ｍ１０１０１を図９８に、状態表現行列Ｍ１０１０２を図９９に示す。ここで検索ポリシの最初のポリシ「各合成ワークフロー定義でステップ数を集約した合成ワークフローの個数を表す各要素と、それに対応する現在の状態表現行列の該当する要素の差が１以内」を検証すると、状態表現行列Ｍ１０１０１については、合成ワークフロー定義ＩＤが「０００１」でステップ数が１の要素が「１」、ステップ数が２の要素が「１」、ステップ数が３の要素が「０」、ステップ数が４の要素が「１」、ステップ数が５の要素が「０」、ステップ数が６の要素が「１」であり、合成ワークフロー定義ＩＤが「０００２」でステップ数が１の要素が「０」、ステップ数が２の要素が「１」、ステップ数が３の要素が「０」、ステップ数が４の要素が「０」、ステップ数が５の要素が「０」、ステップ数が６の要素が「０」であるから、状態表現行列Ｍ１０１００と各要素を比較すると、各要素の差が1以下となっているため、状態表現行列Ｍ１０１０１については検索ポリシのうちの最初のポリシは満足すると判定できる。同様の検証を状態表現行列Ｍ１０１０２についても実施すると、合成ワークフロー定義ＩＤが「０００１」でステップ数が１の要素が「１」、ステップ数が２の要素が「１」、ステップ数が３の要素が「０」、ステップ数が４の要素が「１」、ステップ数が５の要素が「１」、ステップ数が６の要素が「１」であり、合成ワークフロー定義ＩＤが「０００２」でステップ数が１の要素が「１」、ステップ数が２の要素が「１」、ステップ数が３の要素が「０」、ステップ数が４の要素が「０」、ステップ数が５の要素が「０」、ステップ数が６の要素が「０」であるから、状態比較表現行列Ｍ１０１００と各要素を比較すると、各要素の差が1以下となっているため、状態表現行列Ｍ１０１０２についても検索ポリシのうちの最初のポリシは満足すると判定できる。次に検索ポリシの２番目のポリシ「各合成ワークフロー定義でステップ数を集約した合成ワークフローの個数を表す各要素の和と、それに対応する現在の状態表現行列の該当する要素の和の差が1以内」を検証すると、状態表現行列Ｍ１０１０１について合成ワークフローの個数を表す各要素の和は、合成ワークフロー定義ＩＤが「０００１」であるものに関して１＋１＋０＋１＋０＋１であり、合成ワークフロー定義ＩＤが「０００２」であるものに関して、０＋１＋０＋０＋０＋０であるから、最終的に「５」となり、同様にて状態表現行列Ｍ１０１００についても求めると「５」であるから、差が０となり、状態表現行列Ｍ１０１０１については検索ポリシのうち２番目のポリシも満足すると判定できる。同様に状態表現行列Ｍ１０１０２についても求めると、最終的に
(１＋１＋０＋１＋１＋１)＋（１＋１＋０＋０＋０＋０）＝７
であるから、状態表現行列Ｍ１０１００との差が２となり、状態表現行列Ｍ１０１０２は検索ポリシの２番目のポリシを満たさないと判定できる。これにより、検索ポリシにて定められたポリシにより、状態表現行列Ｍ１０１００と「似た状況」である状態表現行列は状態表現行列Ｍ１０１０１のみとなる。【０４５３】
「似た状況」である状態表現行列を抽出する個数は２個まで、と検索ポリシに定めているため、状態表現検索部２０３Ｅは、各実行中の合成ワークフローの状態を表現した状態表現行列Ｍ１０１００に「似た状態」として、状態表現行列Ｍ１０１０１を抽出し、状態履歴格納ＤＢ２０２Ｅに保持されている状態履歴情報管理表Ｔ１１３０３より状態表現行列Ｍ１０１０１に紐付く、棄却個数「３」および棄却対象合成ワークフローステップ数「５」を取得する。【０４５４】
状態表現検索部２０３Ｅは、状態履歴格納ＤＢ２０２Ｅより棄却個数「２」、棄却対象合成ワークフローステップ数「５」のセットを１組取得したため、現在起動している棄却機能部１００Ｅと同様の棄却機能部１００Ｅ'を起動する。棄却機能部１００Ｅで棄却判定のために保持されているデータは、すべて複製されて棄却判定機能部１００Ｅ'に保持される。【０４５５】
棄却判定機能部１００Ｅでは、「棄却なし」の状態で棄却判定を実施するため、状態表現検索部２０３Ｅは仮想棄却データ作成部１００Ｅへ対し、棄却個数を「０」を通知する。同様に棄却対象合成ワークフローステップ数を「−１」を仮想棄却データ作成部１００Ｅへ通知する。【０４５６】
また、棄却判定機能部１００Ｅ'では現在の状態に「似た状態」に紐づく履歴を基に棄却判定を実施するため、状態表現検索部２０３Ｅは仮想棄却データ作成部１００Ｅ'へ対し、取得した棄却個数「２」を棄却個数として通知する。同様に状態履歴格納ＤＢ２０２Ｅより取得した棄却対象合成ワークフローステップ数「５」を仮想棄却データ作成部１０１Ｅへ通知する。【０４５７】
この後、棄却判定機能部１００Ｅおよび棄却判定機能部１００Ｅ'にてそれぞれ棄却判定処理を実施し、最終的に棄却判定機能部１００Ｅに含まれる評価値記録部１１３では、収束フラグなし、最高評価値管理表Ｔ１１１０７（図１００）が保持された状態で棄却判定が終了し、同様に棄却判定機能部１００Ｅ'に含まれる評価値記録部１１３'では、収束フラグなし、最高評価値管理表Ｔ１１１０８（図１０１）が保持された状態で棄却判定が終了したものとする。【０４５８】
評価値記録部１１３および評価値記録部１１３'は、保持する最高評価値管理表Ｔ１１１０７および最高評価値管理表Ｔ１１１０８をそれぞれ評価値比較部１６０へ通知する。評価値比較部１６０は、現在起動している棄却判定機能部の個数が２であり、取得した最高評価値管理表が２個であるため、全ての最高評価値管理表を取得したと判定し、最高評価値の比較を行う。評価値比較部１６０は取得した最高評価値管理表Ｔ１１１０７と最高評価値管理表Ｔ１１１０８の最高評価値フィールドを比較し、より高い評価値を保持する最高評価値管理表Ｔ１１１０８を抽出する。【０４５９】
評価値比較部１６０は、低い評価値を通知した棄却判定機能部１００Ｅに属する棄却命令送信部１１１Ｅを起動し、棄却判定終了通知を通知する。棄却判定終了通知を受信した棄却命令送信部１１１Ｅは、一連の棄却判定処理を終了する。【０４６０】
一方、評価値比較部１６０は、高い評価値を通知した棄却判定機能部１００Ｅ'に属する棄却命令送信部１１１Ｅ'を起動し、抽出した最高評価値管理表Ｔ１１１０８を通知する。【０４６１】
このとき、棄却判定機能部１００Ｅ'に属する仮想棄却データ作成部１０１Ｅ'が保持する仮想棄却合成ワークフローデータ管理表、仮想棄却条件データ管理表、シミュレート用基礎データ管理表が、それぞれ仮想棄却合成ワークフローデータ管理表Ｔ１０６０３（図１０２）、仮想棄却条件データ管理表Ｔ１０７０４（図１０３）、シミュレート用基礎データ管理表Ｔ１０９００（図２２）であるとする。【０４６２】
棄却命令送信部１１１Ｅ'は、最高評価値管理表Ｔ１１１０８よりシミュレートＩＤ「０００２７」を抽出する。仮想棄却データ作成部１０１Ｅ'に保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６０３のうち、シミュレートＩＤが「０００２７」となるエントリの棄却対象合成ワークフローＩＤは「０００３６６」「０００３６７」であるため、合成ワークフローＩＤが「００３６６」「００３６７」である実行中の合成ワークフローに対して強制棄却命令を発行する。また、棄却命令送信部１１１Ｅ'は評価値比較部１６０より収束フラグを受信していないため、収束判定フラグを「０」として保持する。次に、棄却命令送信部１１１Ｅ'は棄却状態取得部２０４Ｅを起動し、最高評価値管理表Ｔ１１１０８と収束判定フラグ「０」を通知する。【０４６３】
棄却状態取得部２０４Ｅは、棄却命令送信部１１１Ｅ'より最高評価値管理表Ｔ１１１０８と収束判定フラグ「０」を取得後、仮想棄却データ作成部１０１Ｅ'より棄却個数と棄却対象合成ワークフローステップ数を取得する。最初に、最高評価値管理表Ｔ１１１０８のシミュレートＩＤが「０００２７」であるため、仮想棄却データ作成部１０１Ｅ'に保持されている仮想棄却合成ワークフローデータ管理表Ｔ１０６０３のシミュレートＩＤが「０００２７」に一致するエントリの仮想棄却条件ＩＤ「０００２５」を抽出する。次に仮想棄却条件ＩＤ「０００２５」を仮想棄却条件ＩＤフィールドに持つ仮想棄却条件データ管理表Ｔ１０７０４を仮想棄却データ作成部１０１Ｅ'より検索し、仮想棄却条件データ管理表Ｔ１０７０４に保持されている棄却個数「２」と棄却対象合成ワークフローステップ数「５」を取得することができる。次に、棄却状態取得部２０４Ｅは棄却状態表現生成部２０６Ｅを起動し、最高評価値管理表Ｔ１１１０８を通知する。【０４６４】
棄却状態表現生成部２０６Ｅは、仮想棄却データ作成部１０１Ｅ'より仮想棄却合成ワークフローデータ管理表Ｔ１０６０３とシミュレート用基礎データ管理表Ｔ１０９００を取得する。最初に、最高評価値管理表Ｔ１１１０８のシミュレートＩＤが「０００２７」であるため、仮想棄却合成ワークフローデータ管理表Ｔ１０６０３からシミュレートＩＤが「０００２７」に一致する棄却合成ワークフローＩＤ「０００３６６」「０００３６７」を取得する。次に、シミュレート用基礎データ管理表Ｔ１０９００から合成ワークフローＩＤが取得した棄却合成ワークフローＩＤ「０００３６６」「０００３６７」に一致するエントリを抽出し、合成ワークフロー定義ＩＤ「０００１」とステップ数「２」「１」を取得する。次に、棄却状態表現生成部２０６Ｅは、最大ステップ数保持部１５０より取得した合成ワークフロー定義ＩＤ「０００１」が取りうる最大ステップ数６を取得する。これにより、棄却状態表現生成部２０６Ｅは、合成ワークフロー定義ＩＤが「０００１」で、ステップ数６までについて、ステップ数毎に棄却された合成ワークフローの個数を集約して棄却状態表現ベクトルＶ１０２０２（図１０４）を生成する。棄却状態表現生成部２０６Ｅは、生成した棄却状態表現ベクトルＶ１０２０２を棄却状態取得部２０４Ｅへ通知する。【０４６５】
棄却状態取得部２０４Ｅは棄却状態表現ベクトルＶ１０２０２を取得後、状態表現検索部２０３Ｅより、状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」を取得する。これにより、棄却状態取得部２０４Ｅは状態履歴情報管理表を作成するために必要な情報、状態表現行列Ｍ１０１００、棄却対象合成ワークフロー定義ＩＤ「０００１」、棄却状態表現ベクトルＶ１０２０２、評価値「１．２８１」、収束判定フラグ「０」、棄却個数「２」、棄却対象合成ワークフローステップ数「５」がそろったため、状態履歴情報管理表Ｔ１１３０４（図１０５）を作成する。次に、棄却状態取得部２０４Ｅは状態表現記録部２０５Ｅを起動し、作成した状態履歴情報管理表Ｔ１１３０４を通知する。【０４６６】
状態表現記録部２０５Ｅは、状態履歴情報管理表Ｔ１１３０４を取得後、状態履歴格納ＤＢに保持されている状態履歴情報管理表Ｔ１１３０３を検索し、状態履歴情報管理表Ｔ１１３０４にある状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」のセットが状態履歴情報管理表Ｔ１１３０３に存在しないため、状態表現行列Ｍ１０１００と棄却対象合成ワークフロー定義ＩＤ「０００１」のセットに紐付く情報を状態履歴情報管理表Ｔ１１３０４と同様になるように記録し（記録後の状態履歴情報管理表Ｔ１１３０５を図１０６に示す）、処理を終了する。【０４６７】
以上に説明したように、本第５の実施の形態による棄却判定を適用した場合、状態履歴格納ＤＢ２０２Ｅに棄却判定を行う状態と同様の状態が保持されていない場合においても、検索ポリシで定められたポリシに従い検索した結果「似た状態」の履歴があれば、それを利用することで、「棄却なし」の状態から棄却判定を実施するよりも、よい結果が得られると期待できる（似た状況で棄却判定すれば、結果も似た結果になると期待できる）。本実施例においては「棄却なし」の状態で棄却判定を実施すれば評価値「０．９１５」を達成すると予想される棄却パターンが見つかるが、「似た状況」の履歴を基に棄却判定をすれば評価値「１．２８１」を達成すると予想される棄却パターンが見つかる。そのため、よりよい評価値を与える「似た状況」の履歴を基に棄却判定した結果を採用して、その棄却パターンにしたがって棄却すると同時に、その結果を状態履歴格納ＤＢ２０２Ｅに保持する。【０４６８】
このように、「同様の状況」の棄却判定履歴だけでなく、「似た状況」の棄却判定履歴も活用することで、「棄却なし」の現在の実行状況と同様の棄却結果の履歴がない場合において、第４の実施の形態と比較してよりよい棄却パターンを発見することが期待できるため、有効である。【０４６９】
なお、本発明の合成ワークフローモニタリング装置は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。【０４７０】
以上、実施形態を参照して本願発明を説明したが、そのような記載は例示のみを目的としており、本願発明は上記実施形態に限定されるものではない。様々な変更および修正が、添付の請求の範囲で定まる本発明の要旨および範囲を逸脱することなくなされうることが当業者に理解されるであろう。【０４７１】
この出願は、２００７年１２月２８日に出願された日本出願特願２００７−３４０３８３および２００８年８月１１日に出願された日本出願特願２００８−２０６９１４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
［産業上の利用可能性］
本発明は、複数の業務アプリケーションや複数のワークフローシステムを連携した業務システム上で実行されている合成ワークフロー群をモニタリングする合成ワークフローモニタリング製品に実装し、サービスプロバイダとサービスコーディネータの間で結ばれたサービス合意水準を満たすように適切な合成ワークフローを棄却判定するといった用途に適用できる。
【図１】
2009084669.tif 000003
【図２】
2009084669.tif 000004
【図３】
2009084669.tif 000005
【図４】
2009084669.tif 000006
【図５】
2009084669.tif 000007
【図６】
2009084669.tif 000008
【図７】
2009084669.tif 000009
【図８】
2009084669.tif 000010
【図９】
2009084669.tif 000011
【図１０】
2009084669.tif 000012
【図１１】
2009084669.tif 000013
【図１２】
2009084669.tif 000014
【図１３】
2009084669.tif 000015
【図１４】
2009084669.tif 000016
【図１５】
2009084669.tif 000017
【図１６】
2009084669.tif 000018
【図１７】
2009084669.tif 000019
【図１８】
2009084669.tif 000020
【図１９】
2009084669.tif 000021
【図２０】
2009084669.tif 000022
【図２１】
2009084669.tif 000023
【図２２】
2009084669.tif 000024
【図２３】
2009084669.tif 000025
【図２４】
2009084669.tif 000026
【図２５】
2009084669.tif 000027
【図２６】
2009084669.tif 000028
【図２７】
2009084669.tif 000029
【図２８】
2009084669.tif 000030
【図２９】
2009084669.tif 000031
【図３０】
2009084669.tif 000032
【図３１】
2009084669.tif 000033
【図３２】
2009084669.tif 000034
【図３３】
2009084669.tif 000035
【図３４】
2009084669.tif 000036
【図３５】
2009084669.tif 000037
【図３６】
2009084669.tif 000038
【図３７】
2009084669.tif 000039
【図３８】
2009084669.tif 000040
【図３９】
2009084669.tif 000041
【図４０】
2009084669.tif 000042
【図４１】
2009084669.tif 000043
【図４２】
2009084669.tif 000044
【図４３】
2009084669.tif 000045
【図４４】
2009084669.tif 000046
【図４５】
2009084669.tif 000047
【図４６】
2009084669.tif 000048
【図４７】
2009084669.tif 000049
【図４８】
2009084669.tif 000050
【図４９】
2009084669.tif 000051
【図５０】
2009084669.tif 000052
【図５１】
2009084669.tif 000053
【図５２】
2009084669.tif 000054
【図５３】
2009084669.tif 000055
【図５４】
2009084669.tif 000056
【図５５】
2009084669.tif 000057
【図５６】
2009084669.tif 000058
【図５７】
2009084669.tif 000059
【図５８】
2009084669.tif 000060
【図５９】
2009084669.tif 000061
【図６０】
2009084669.tif 000062
【図６１】
2009084669.tif 000063
【図６２】
2009084669.tif 000064
【図６３】
2009084669.tif 000065
【図６４】
2009084669.tif 000066
【図６５】
2009084669.tif 000067
【図６６】
2009084669.tif 000068
【図６７】
2009084669.tif 000069
【図６８】
2009084669.tif 000070
【図６９】
2009084669.tif 000071
【図７０】
2009084669.tif 000072
【図７１】
2009084669.tif 000073
【図７２】
2009084669.tif 000074
【図７３】
2009084669.tif 000075
【図７４】
2009084669.tif 000076
【図７５】
2009084669.tif 000077
【図７６】
2009084669.tif 000078
【図７７】
2009084669.tif 000079
【図７８】
2009084669.tif 000080
【図７９】
2009084669.tif 000081
【図８０】
2009084669.tif 000082
【図８１】
2009084669.tif 000083
【図８２】
2009084669.tif 000084
【図８３】
2009084669.tif 000085
【図８４】
2009084669.tif 000086
【図８５】
2009084669.tif 000087
【図８６】
2009084669.tif 000088
【図８７】
2009084669.tif 000089
【図８８】
2009084669.tif 000090
【図８９】
2009084669.tif 000091
【図９０】
2009084669.tif 000092
【図９１】
2009084669.tif 000093
【図９２】
2009084669.tif 000094
【図９３】
2009084669.tif 000095
【図９４】
2009084669.tif 000096
【図９５】
2009084669.tif 000097
【図９６】
2009084669.tif 000098
【図９７】
2009084669.tif 000099
【図９８】
2009084669.tif 000100
【図９９】
2009084669.tif 000101
【図１００】
2009084669.tif 000102
【図１０１】
2009084669.tif 000103
【図１０２】
2009084669.tif 000104
【図１０３】
2009084669.tif 000105
【図１０４】
2009084669.tif 000106
【図１０５】
2009084669.tif 000107
【図１０６】
2009084669.tif 000108
【国際調査報告】
2009084669.tif 000109
2009084669.tif 000110
2009084669.tif 000111
2009084669.tif 000112