(57)【要約】【課題】先行通知のための手動操作、ビジネスプロセス（ＢＰ）定義に明示的に先行通知用の定義を含めること、及び、無駄な先行通知を行うことを無くせるＢＰ管理技術を提供する。【解決手段】ＢＰ管理装置に、定義解析部と先行通知制御部とが備えられる。定義解析部が、三以上のタスクノード（ＴＮ）と少なくとも一つの分岐ノード（ＢＮ）とを有する複数のノードに関する情報を含んだビジネスプロセス定義を解析してノード間関係を特定する。先行通知制御部が、それら複数のＴＮのうちのいずれかのノードが実行される場合、そのノードとノード間関係にある別のノードを、先行通知の対象とする。ノード間関係としては、先行通知関係（どのＴＮが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるか）、及び／又は、タスク依存分岐関係（ＢＮと、そのＢＮの実行において参照される変数値を出力するＴＮとの対応付け）がある。【選択図】図２
2010102517.tif 000002
【特許請求の範囲】
【請求項１】
三以上のタスクノードと少なくとも一つの分岐ノードとを有する複数のノードに関する情報を含んだビジネスプロセス定義情報を解析してノード間関係を特定する定義解析部と、
前記複数のタスクノードのうちのいずれかのノードが実行される場合、そのノードと前記ノード間関係にある別のノードを、先行通知の対象とする先行通知制御部と
を備えるビジネスプロセス管理装置。
【請求項２】
前記ビジネスプロセス定義情報が、下記（２−１）乃至（２−３）に関する情報、
（２−１）ノードの実行順序；
（２−２）どのタスクノードの実行結果としてどの変数の変数値が出力されるか；
（２−３）分岐ノードについて、どの変数の変数値がどんな条件に適合した場合に、その分岐ノードの二以上の分岐先ノードのうちのどれが実行されるか；
を含み、
前記ノード間関係は、先行通知関係とタスク依存分岐関係であり、
前記先行通知関係は、どのタスクノードが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるかであり、
前記タスク依存分岐関係は、分岐ノードと、その分岐ノードの実行において参照される変数値を出力するタスクノードとの対応付けであり、
前記定義解析部が、前記先行通知関係を表す先行通知関係情報と、前記タスク依存分岐関係を表す依存関係情報とを記憶装置に格納し、
前記先行通知制御部が、
（Ａ）前記実行されるタスクノードが、前記先行通知関係情報が表す先行通知関係を構成するタスクノードであれば、その先行通知関係を構成する、前記実行されるタスクノードに対応した全ての別のノードを、先行通知の対象とし、
（Ｂ）前記実行されるタスクノードが、前記依存関係情報が表すタスク依存分岐関係を構成するタスクノードであれば、下記（Ｂ−１）及び（Ｂ−２）の情報、
（Ｂ−１）前記実行されるタスクノードの実行結果として出力された変数値；
（Ｂ−２）前記タスク依存分岐関係を構成する、前記実行されるタスクノードに対応した分岐ノード、についての前記（２−３）の情報；
を基に、その分岐ノードの二以上の分岐先ノードにおけるどの分岐先ノードが実行されることになるかを判別し、判別された分岐先ノードと、その判別された分岐先ノードの下流にありその判別された分岐先ノードに直列になっているノードとを、先行通知の対象とする、
請求項１記載のビジネスプロセス管理装置。
【請求項３】
前記定義解析部が、
（Ａ）どの分岐ノードの実行においてどのタスクノードから出力される変数値が参照されるかを特定することで、前記タスク依存分岐関係を特定し、
（Ｂ）ノードの実行順序と同じ順序で、所定の規則に従って、各ノードに符号を付与し、ノード毎の一以上の符号を基に、前記先行通知関係を特定する、
請求項２記載のビジネスプロセス管理装置。
【請求項４】
前記所定の規則は、下記（４−１）及び（４−２）、
（４−１）ノードに、そのノードの直近且つ上流のノードに付与した符号と同じ符号を付与する；
（４−２）前記（４−１）において、ノードが分岐先ノードである場合には、ノードに、符号セットを符号として付与する； 
を含んでおり、
前記符号セットは、分岐ノードに付与されている符号と、その符号を親符号とした、その分岐ノードの分岐先ノード毎に異なる子符号とのセットであり、
或るタスクノードと先行通知関係を構成する別のノードとは、前記或るタスクノードに付与されている符号と同じ符号、又は、前記或るタスクノードに付与されている符号を含んだ符号が付与されているノードである、
請求項３記載のビジネスプロセス管理装置。
【請求項５】
前記所定の規則は、更に、下記（４−３）、
（４−３）還元可能な符号があれば、還元する；
を含み、
前記還元可能な符号とは、同一の親符号とその親符号についての全ての子符号を含んだ複数の符号セットであり、
前記還元するとは、前記複数の符号セットに含まれている同一の親符号を、還元された符号として、前記複数の符号セットが付与されているノードに付与することであり、
前記或るタスクノードに付与されている符号を含んだ符号とは、前記還元された符号の基になった各符号セットである、
請求項４記載のビジネスプロセス管理装置。
【請求項６】
先行通知制御部が、前記実行されるタスクノードの実行が終了した後であって、且つ、既に分岐ノードが先行通知の対象とされた後に、前記実行されるタスクノードが前記タスク依存分岐関係を構成するタスクノードであるか否かを判定する、
請求項５記載のビジネスプロセス管理装置。
【請求項７】
先行通知制御部は、
前記実行されるタスクノードの実行が終了した後、そのタスクノードが前記タスク依存分岐関係を構成するタスクノードであるか否かの第一の判定を行う第一の判定部と、
前記第一の判定の結果が肯定的の場合、前記タスク依存分岐関係を構成する分岐ノードが行う判定に必要な全ての変数の変数値が出力されているか否かの第二の判定を行う第二の判定部と、
前記第二の判定の結果が肯定的の場合、前記全ての変数の変数値と、前記（２−３）の情報とを基に、前記タスク依存分岐関係を構成する分岐ノードの二以上の分岐先ノードのうち実行されることが確定した第一の分岐先ノードと実行されないことが確定した第二の分岐先ノードとを特定する評価部と、
前記第一の分岐先ノードを先行通知の対象とし、前記第二の分岐先ノードを先行通知の非対象とする通知対象制御部と
を備える請求項６記載のビジネスプロセス管理装置。
【請求項８】
前記ビジネスプロセス定義情報が、下記（８−１）乃至（８−３）に関する情報、
（８−１）ノードの実行順序；
（８−２）どのタスクノードの実行結果としてどの変数の変数値が出力されるか；
（８−３）分岐ノードについて、どの変数の変数値がどんな条件に適合した場合に、その分岐ノードの二以上の分岐先ノードのうちのどれが実行されるか；
を含み、
前記ノード間関係は、タスク依存分岐関係であり、
前記タスク依存分岐関係は、分岐ノードと、その分岐ノードの実行において参照される変数値を出力するタスクノードとの対応付けであり、
前記定義解析部が、前記ビジネスプロセス定義情報から前記タスク依存分岐関係を特定し、特定された前記タスク依存分岐関係を表す依存関係情報を記憶装置に格納し、
前記先行通知制御部が、前記実行されるタスクノードが、前記依存関係情報が表すタスク依存分岐関係を構成するタスクノードであれば、下記（８−Ａ）及び（８−Ｂ）の情報、
（８−Ａ）前記実行されるタスクノードの実行結果として出力された変数値；
（８−Ｂ）前記タスク依存分岐関係を構成する、前記実行されるタスクノードに対応した分岐ノード、についての前記（８−３）の情報
を基に、その分岐ノードの二以上の分岐先ノードにおけるどの分岐先ノードが実行されることになるかを判別し、判別された分岐先ノードと、その判別された分岐先ノードの下流に存在しその判別された分岐先ノードに直列になっているノードとを、先行通知の対象とする、
請求項１記載のビジネスプロセス管理装置。
【請求項９】
前記ノード間関係は、先行通知関係であり、
前記先行通知関係は、どのタスクノードが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるかであり、
前記定義解析部が、ノードの実行順序と同じ順序で、所定の規則に従って、各ノードに符号を付与し、ノード毎の一以上の符号を基に、前記先行通知関係を特定し、特定された先行通知関係を表す先行通知関係情報を記憶装置に格納し、
前記先行通知制御部が、前記実行されるタスクノードが、先行通知関係情報が表す先行通知関係を構成するタスクノードであれば、その先行通知関係を構成する、前記実行されるタスクノードに対応した全ての別のノードを、先行通知の対象とする、
請求項１又は８記載のビジネスプロセス管理装置。
【請求項１０】
前記所定の規則は、下記（１０−１）及び（１０−２）、
（１０−１）ノードに、そのノードの直近且つ上流のノードに付与した符号と同じ符号を付与する；
（１０−２）前記（１０−１）において、ノードが分岐先ノードである場合には、ノードに、符号セットを符号として付与する；
を含んでおり、
前記符号セットは、分岐ノードに付与されている符号と、その符号を親符号とした、その分岐ノードの分岐先ノード毎に異なる子符号とのセットであり、
或るタスクノードと先行通知関係を構成する別のノードとは、前記或るタスクノードに付与されている符号と同じ符号、又は、前記或るタスクノードに付与されている符号を含んだ符号が付与されているノードである、
請求項９記載のビジネスプロセス管理装置。
【請求項１１】
前記所定の規則は、更に、下記（１０−３）、
（１０−３）還元可能な符号があれば、還元する；
を含み、
前記還元可能な符号とは、同一の親符号とその親符号についての全ての子符号を含んだ複数の符号セットであり、
前記還元するとは、前記複数の符号セットに含まれている同一の親符号を、還元された符号として、前記複数の符号セットが付与されているノードに付与することであり、
前記或るタスクノードに付与されている符号を含んだ符号とは、前記還元された符号の基になった各符号セットである、
請求項１０記載のビジネスプロセス管理装置。
【請求項１２】
前記先行通知制御部が、前記実行されるタスクノードの実行が終了した後に、前記実行されるタスクノードが前記タスク依存分岐関係を構成するタスクノードであるか否かを判定する、
請求項８記載のビジネスプロセス管理装置。
【請求項１３】
先行通知制御部が、既に分岐ノードが先行通知の対象とされた後に、前記実行されるタスクノードが前記タスク依存分岐関係を構成するタスクノードであるか否かを判定する、
請求項８又は１２記載のビジネスプロセス管理装置。
【請求項１４】
先行通知制御部は、
前記実行されるタスクノードの実行が終了した後、そのタスクノードが前記タスク依存分岐関係を構成するタスクノードであるか否かの第一の判定を行う第一の判定部と、
前記第一の判定の結果が肯定的の場合、前記タスク依存分岐関係を構成する分岐ノードが行う判定に必要な全ての変数の変数値が出力されているか否かの第二の判定を行う第二の判定部と、
前記第二の判定の結果が肯定的の場合、前記全ての変数の変数値と、前記（２−３）の情報とを基に、前記タスク依存分岐関係を構成する分岐ノードの二以上の分岐先ノードのうち実行されることが確定した第一の分岐先ノードと実行されないことが確定した第二の分岐先ノードとを特定する評価部と、
前記第一の分岐先ノードを先行通知の対象とし、前記第二の分岐先ノードを先行通知の非対象とする通知対象制御部と
を備える請求項８、１２又は１３記載のビジネスプロセス管理装置。
【請求項１５】
（１５−１）三以上のタスクノードと少なくとも一つの分岐ノードとを有する複数のノードに関する情報を含んだビジネスプロセス定義情報を解析してノード間関係を特定し、
（１５−２）前記複数のタスクノードのうちのいずれかのノードが実行される場合、そのノードと前記ノード間関係にある別のノードを、先行通知の対象とする
ビジネスプロセス管理方法。
【請求項１６】
前記ビジネスプロセス定義情報が、下記（１６−１）乃至（１６−３）に関する情報、
（１６−１）ノードの実行順序；
（１６−２）どのタスクノードの実行結果としてどの変数の変数値が出力されるか；
（１６−３）分岐ノードについて、どの変数の変数値がどんな条件に適合した場合に、その分岐ノードの二以上の分岐先ノードのうちのどれが実行されるか；
を含み、
前記ノード間関係は、タスク依存分岐関係であり、
前記タスク依存分岐関係は、分岐ノードと、その分岐ノードの実行において参照される変数値を出力するタスクノードとの対応付けであり、
前記（１５−１）では、前記ビジネスプロセス定義情報から前記タスク依存分岐関係が特定され、特定された前記タスク依存分岐関係を表す依存関係情報が記憶装置に格納され、
前記（１５−２）では、前記実行されるタスクノードが、前記依存関係情報が表すタスク依存分岐関係を構成するタスクノードであれば、下記（１６−Ａ）及び（１６−Ｂ）の情報、
（１６−Ａ）前記実行されるタスクノードの実行結果として出力された変数値；
（１６−Ｂ）前記タスク依存分岐関係を構成する、前記実行されるタスクノードに対応した分岐ノード、についての前記（１６−３）の情報
を基に、その分岐ノードの二以上の分岐先ノードにおけるどの分岐先ノードが実行されることになるかが判別され、判別された分岐先ノードと、その判別された分岐先ノードの下流に存在しその判別された分岐先ノードに直列になっているノードとが、先行通知の対象とされる、
請求項１５記載のビジネスプロセス管理方法。
【請求項１７】
前記ノード間関係は、先行通知関係であり、
前記先行通知関係は、どのタスクノードが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるかであり、
前記（１５−１）では、ノードの実行順序と同じ順序で、所定の規則に従って、各ノードに符号が付与され、ノード毎の一以上の符号を基に、前記先行通知関係が特定され、特定された先行通知関係を表す先行通知関係情報が記憶装置に格納され、
前記（１５−２）では、前記実行されるタスクノードが、先行通知関係情報が表す先行通知関係を構成するタスクノードであれば、その先行通知関係を構成する、前記実行されるタスクノードに対応した全ての別のノードが、先行通知の対象とされる、
請求項１５又は１６記載のビジネスプロセス管理方法。
【請求項１８】
二以上のタスクノード及び少なくとも一つの分岐ノードで構成される複数のノードの実行順序に関する情報を含んだビジネスプロセス定義情報を解析する定義解析部と
前記定義解析部による解析の結果を基に先行通知を制御する先行通知制御部と
を備え、
前記定義解析部が、前記ビジネスプロセス定義情報を参照して、前記分岐ノードが行う判定に必要な変数値を実行結果として出力するタスクノードを抽出し、抽出されたタスクノードと前記分岐ノードとの対応付けであるタスク依存分岐関係を表す依存関係情報を記憶装置に格納し、且つ、どのタスクノードが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるかである先行通知関係を特定し、特定された先行通知関係を表す先行通知関係情報を前記記憶装置に格納し、
前記先行通知制御部は、
或るタスクノードの実行がされる場合、前記或るタスクノードが前記タスク依存分岐関係を構成するタスクノードであるか否かの第一の判定を行う第一の判定部と、
前記第一の判定の結果が肯定的の場合、前記タスク依存分岐関係を構成する分岐ノードが行う判定に必要な全ての変数の変数値が出力されているか否かの第二の判定を行う第二の判定部と、
前記第二の判定の結果が肯定的の場合、前記全ての変数の変数値を基に、前記タスク依存分岐関係を構成する分岐ノードの二以上の分岐先ノードのうち実行されることが確定した第一の分岐先ノードと実行されないことが確定した第二の分岐先ノードとを特定する評価部と、
前記第一の分岐先ノードと、前記第一の分岐先ノードと前記先行通知関係にあるノードとを、先行通知の対象とし、前記第二の分岐先ノードを先行通知の非対象とする通知対象制御部と
を備える
ビジネスプロセス管理装置。
【請求項１９】
（１９−１）三以上のタスクノードと少なくとも一つの分岐ノードとを有する複数のノードに関する情報を含んだビジネスプロセス定義情報を解析してノード間関係を特定し、
（１９−２）前記複数のタスクノードのうちのいずれかのノードが実行される場合、そのノードと前記ノード間関係にある別のノードを、先行通知の対象とする
ことをコンピュータに実行させるためのコンピュータプログラム。
【請求項２０】
前記ビジネスプロセス定義情報が、下記（２０−１）乃至（２０−３）に関する情報、
（２０−１）ノードの実行順序；
（２０−２）どのタスクノードの実行結果としてどの変数の変数値が出力されるか；
（２０−３）分岐ノードについて、どの変数の変数値がどんな条件に適合した場合に、その分岐ノードの二以上の分岐先ノードのうちのどれが実行されるか；
を含み、
前記ノード間関係は、タスク依存分岐関係であり、
前記タスク依存分岐関係は、分岐ノードと、その分岐ノードの実行において参照される変数値を出力するタスクノードとの対応付けであり、
前記（１９−１）では、前記ビジネスプロセス定義情報から前記タスク依存分岐関係が特定され、特定された前記タスク依存分岐関係を表す依存関係情報が記憶装置に格納され、
前記（１９−２）では、前記実行されるタスクノードが、前記依存関係情報が表すタスク依存分岐関係を構成するタスクノードであれば、下記（２０−Ａ）及び（２０−Ｂ）の情報、
（２０−Ａ）前記実行されるタスクノードの実行結果として出力された変数値；
（２０−Ｂ）前記タスク依存分岐関係を構成する、前記実行されるタスクノードに対応した分岐ノード、についての前記（２０−３）の情報
を基に、その分岐ノードの二以上の分岐先ノードにおけるどの分岐先ノードが実行されることになるかが判別され、判別された分岐先ノードと、その判別された分岐先ノードの下流に存在しその判別された分岐先ノードに直列になっているノードとが、先行通知の対象とされる、
請求項１９記載のコンピュータプログラム。
【請求項２１】
前記ノード間関係は、先行通知関係であり、
前記先行通知関係は、どのタスクノードが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるかであり、
前記（１９−１）では、ノードの実行順序と同じ順序で、所定の規則に従って、各ノードに符号が付与され、ノード毎の一以上の符号を基に、前記先行通知関係が特定され、特定された先行通知関係を表す先行通知関係情報が記憶装置に格納され、
前記（１９−２）では、前記実行されるタスクノードが、先行通知関係情報が表す先行通知関係を構成するタスクノードであれば、その先行通知関係を構成する、前記実行されるタスクノードに対応した全ての別のノードが、先行通知の対象とされる、
請求項１９又は２０記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジネスプロセスの管理を行う技術に関する。
【背景技術】
【０００２】
ビジネスプロセス管理（以下、ビジネスプロセスを「ＢＰ」と略記する）は、一般に、業務における複数のノードの実行順序がＢＰ定義として事前に登録され、このＢＰ定義に基づいて、ＢＰの実行状態の制御、および、タスクの作業者への割当の管理を行う技術である。ＢＰ定義は、業務の手順をモデル化したものといえる。
【０００３】
ところで、業務を遂行する主体である作業者は、将来自分に割り当てられるタスクに関する情報について先行的に通知を受けることにより、予め他のタスクとの調整及び／又は優先順位付けを行ったり、そのタスクの準備を進めておいたりすることができ、以って、業務の効率的な遂行が可能となる。
【０００４】
特に、法令等によって手順が定められている業務プロセスにおいては、先行通知の効果は大きいと考えられる。例えば、或る種の自動車保険の保険金支払プロセスには、「支払額決定処理」、「支払処理」、「自賠責請求処理」という一連のタスクが含まれる。この場合、「支払額決定処理」において、支払額が決定した時点で、「自賠責請求処理」を実行するための情報が全て揃うことになる。しかし、「支払処理」が完了するまでは、「自賠責請求処理」が実行されてはならない。ここで、「支払額決定処理」が完了した時点で、「自賠責請求処理」の担当者に、将来「自賠責請求処理」が実行されることを表す先行通知が送信されれば、その担当者は、必要書類の作成等の準備を進めておくことができる。
【０００５】
このような先行通知機能を提供する方式として、以下の３つの方式が知られている。
【０００６】
第一の方式は、或るタスクを実行中の作業者が、下流のタスクの作業者に対して、電子メール等を用いて手動で通知を送信する方式（以下、「手動通知方式」）である。手動通知方式に関する技術は、例えば特許文献１に開示されている。
【０００７】
第二の方式は、シーケンスフローに類似した方法で、先行通知用の定義を、ＢＰ定義に明示的に含める方式（以下、「事前定義方式」）である。この方式では、例えば、分岐ノードと、それの分岐先ノードとして、先行通知を実行するタスクノードとが、先行通知用の定義として、ＢＰ定義に含められる。事前定義方式に関する技術は、例えば特許文献２及び３に開示されている。
【０００８】
第三の方式は、将来発生する可能性のある全てのタスクについて先行通知を行う方式（以下、「ブロードキャスト方式」）である。ブロードキャスト方式では、ＢＰ定義中に分岐ノードが存在する場合は、全ての分岐先ノードが先行通知の対象とされる。そして、実際に分岐ノードが実行された時点で、その分岐ノードの二以上の分岐先ノードのうち、選択された分岐先ノード以外の分岐先ノードについては、キャンセル通知の対象とされる。ブロードキャスト方式に関する技術は、例えば特許文献４に開示されている。
【特許文献１】特開平９−９１２３４号公報
【特許文献２】特開２００１−１０１３１０号公報
【特許文献３】特開２００４−７０５１６号公報
【特許文献４】特許第３０６７６５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述した「手動通知方式」、「事前定義方式」及び「ブロードキャスト方式」には、それぞれ以下のような課題が考えられる。
【００１０】
「手動通知方式」については、或るタスクノードを実行する作業者が、そのタスクノードよりも下流の構造（例えば、どの下流のノードが誰によってどんな順序で実行されるか）の詳細を知らなければならない。特に、ＢＰ定義に分岐ノードが含まれる場合、ＢＰの下流でどのタスクノードが実行されるか予測することは難しいと考えられる。また、ノードを先行通知の対象とすることを手動で行うことは手間であるとも考えられる。
【００１１】
「事前定義方式」については、ＢＰ定義開発者が、業務上の情報の流れを綿密に分析する必要があると考えられる。また、ＢＰ定義が、実際の業務とは関係の無い先行通知用の定義のために肥大化し、作成および保守作業の手間が大きいとも考えられる。それにともない、ＢＰ定義に変更が発生すると、先行通知用の定義もそれに追随するように変更されなければならない。
【００１２】
「ブロードキャスト方式」については、将来実行される可能性のある全てのタスクノードが、一旦、先行通知の対象とされるため、先行通知の空振りが多く発生する可能性がある。その場合、作業者における先行通知への信頼が失われ、業務遂行の効率化の効果が得られにくいと考えられる。
【００１３】
そこで、本発明は、先行通知のための手動操作、ＢＰ定義に明示的に先行通知用の定義を含めること、及び、無駄な先行通知を行うことを無くせるＢＰ管理技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
ＢＰ管理装置に、定義解析部と先行通知制御部とが備えられる。定義解析部が、三以上のタスクノードと少なくとも一つの分岐ノードとを有する複数のノードに関する情報を含んだビジネスプロセス定義を解析してノード間関係を特定する。先行通知制御部が、それら複数のタスクノードのうちのいずれかのノードが実行される場合、そのノードと前記ノード間関係にある別のノードを、先行通知の対象とする。
【００１５】
ノード間関係としては、先行通知関係及び／又はタスク依存分岐関係がある。
【００１６】
先行通知関係とは、どのタスクノードが実行される場合にそのノードの下流に存在するどの別のノードが必ず実行されることになるかである。先行通知制御部は、実行されるタスクノードが、先行通知関係を構成するタスクノードであれば、その先行通知関係を構成する、実行されるタスクノードに対応した全ての別のノードを、先行通知の対象とする。
【００１７】
タスク依存分岐関係とは、分岐ノードと、その分岐ノードの実行において参照される変数値を出力するタスクノードとの対応付けである。先行通知制御部が、実行されるタスクノードが、タスク依存分岐関係を構成するタスクノードであれば、実行されるタスクノードの実行結果として出力された変数値と、分岐ノードに関する条件を表す情報とを基に、その分岐ノードの二以上の分岐先ノードにおけるどの分岐先ノードが実行されることになるかを判別する。先行通知制御部は、判別された分岐先ノードと、その判別された分岐先ノードの下流にありその判別された分岐先ノードに直列になっているノードとを、先行通知の対象とする。
【００１８】
ノードを先行通知の対象とするということは、例えば、以下の（Ａ）及び／又は（Ｂ）、
（Ａ）そのノードに関する状態を、先行通知の対象とすることを意味する状態に更新すること、
（Ｂ）そのノードを実行する作業者宛に、電子メール等の方法で、そのノードが将来必ず実行されることを、実行対象ノードがそのノードに遷移される前に通知すること、
である。
【００１９】
ＢＰ管理装置は、例えば、計算機である。計算機が有するプロセッサにコンピュータプログラムを実行させることで、前述した定義解析部及び先行通知制御部を実現することが可能である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施形態に係るＢＰ管理装置が適用されたサーバ計算機、及びそのサーバ計算機を有するＢＰ管理システムを、図面を用いて詳細に説明する。
【００２１】
図１は、本発明の一実施形態に係るＢＰ管理システムの構成の一例である。
【００２２】
サーバ計算機１０１とクライアント計算機１０２は、通信ネットワーク１００を通じて接続される。
【００２３】
サーバ計算機１０１は、画像表示装置１８０、システムバス１８１、ＣＰＵ（Central Processing Unit）１８２、主記憶装置１８３、ユーザ入力インタフェース１８４、グラフィックインタフェース１８５、ネットワークインタフェース１８６及び二次記憶装置１８７の各ハードウェアを備える。サーバ計算機１０１が備える記憶資源は、主記憶装置１８３及び二次記憶装置１８７の組み合わせに限定されず、例えば二次記憶装置１８７はなくても良い。
【００２４】
ＢＰ定義開発部１３０、ＢＰ定義登録部１４０、ＢＰ実行部１５０及びＯＳ（Operating System）１７０は、ソフトウェアプログラムであり、サーバ計算機１０１上で動作する。これらのソフトウェアプログラムは、二次記憶装置１８７に格納されているが、実行時に、主記憶装置１８３に読み込まれ、ＣＰＵ１８２により実行される。また、これらのソフトウェアプログラムは、画像表示装置１８０やユーザ入力インタフェース１８４を用いて、人であるＢＰ定義開発者１０３と対話を行ったり、ネットワークインタフェース１８６を用いて他の計算機上で動作するソフトウェアプログラムと互いに通信したりすることが可能である。また、主記憶装置１８３上には、ＢＰ定義情報１１０、ＢＰ実行状態情報１２０及びワークエリア１９０といったデータが格納されるが、これらのデータは、前述したソフトウェアプログラムに包含されてもよく、または、二次記憶装置１８７に格納されてもよい。
【００２５】
クライアント計算機１０２のハードウェア構成は、サーバ計算機１０１と同様とすることができる。サーバ計算機１０１との比較において、主記憶装置１８３に読み込まれ、ＣＰＵ１８２により実行されるソフトウェアプログラムが異なる。クライアント計算機１０２では、主記憶装置１８３上に業務アプリケーション１６０やＯＳ１７０が読み込まれ、ＣＰＵ１８２により実行される。これらのソフトウェアプログラムは、画像表示装置１８０やユーザ入力インタフェース１８４を用いて、人であるクライアント１０４と対話を行ったり、ネットワークインタフェース１８６を用いて他の計算機上で動作するソフトウェアプログラムと互いに通信したりすることが可能である。説明の冗長を防ぐため、図中では、クライアント計算機１０２の一部に関してのみ計算機内部の構成の詳細を記しているが、他のクライアント計算機１０２についても同様の構成が採用されて良い。
【００２６】
ＢＰ定義開発部１３０は、ＢＰ定義開発者１０３がＢＰの定義を行うためのツールであり、ＧＵＩツールであることが多いが、これに限定されるものではない。ＢＰ定義開発部１３０は汎用のＢＰ定義開発用プログラムであっても良いし、そうでなくても良い。例えば、ＢＰ定義開発部１３０は、変数更新関係２０５と変数参照関係２０６（図２参照）の入力を開発者１０３に求めることができる。
【００２７】
ＢＰ定義開発者１０３は、ＢＰ定義開発部１３０を用いて開発したＢＰ定義を、ＢＰ定義登録部１４０に入力する。
【００２８】
ＢＰ定義登録部１４０は、ＢＰ定義格納部１４１と、ＢＰ定義解析部１４２とを有する。ＢＰ定義格納部１４１は、入力されたＢＰ定義の情報をＢＰ定義情報１１０に格納し、ＢＰ定義解析部１４２の処理を起動する。ＢＰ定義解析部１４２は、ＢＰ定義情報１１０に格納されているＢＰ定義の内容を解析し、先行通知の制御に関連する情報を導出し、導出された情報をＢＰ定義情報１１０に含める。ＢＰ定義解析部１４２は、解析処理に関連する一時的なデータの格納領域として、ワークエリア１９０を使用することができる。ＢＰ定義格納部１４１及びＢＰ定義解析部１４２の少なくとも一方が、変数更新関係２０５と変数参照関係２０６（図２参照）を表す情報がＢＰ定義情報１１０に含まれていなければ、変数更新関係２０５と変数参照関係２０６を、例えばＢＰ定義開発部１３０を通じて、開発者１０３に求めて良い。
【００２９】
上記各処理部１３０、１４０（１４１、１４２）の機能は、それらの機能を実現するためのプログラムやオブジェクトをＣＰＵやプロセッサで実行（処理）することにより実現することができる。なお、それらの機能は、ハードウェアで実現されても良い。
【００３０】
図２に、ＢＰ定義解析部１４２の処理概要を示す。
【００３１】
ＢＰ定義２００は、複数のノード（タスクノード２０２または分岐ノード２０３）をアロー２０１で連結した有向グラフとして表現される。ＢＰ定義２００は、プロセス変数２０４と、変数更新関係２０５と、変数参照関係２０６とを含む。プロセス変数２０４は、ＢＰ定義２００の実行コンテキスト情報を保持する情報である。変数更新関係２０５は、各タスクノード２０２からプロセス変数２０４への値の更新関係を表す情報である。変数参照関係２０６は、各分岐ノード２０３からプロセス変数２０４への変数値の参照関係を表す情報である。
【００３２】
ＢＰ定義解析部１４２は、ＢＰ定義２００を解析し、先行通知の制御に関連する情報として、先行通知関係情報２１０とタスク依存分岐関係情報２２０とを導出する。情報２１０は、「ノードＸが実行されることが確定した場合、将来必ずノードＹも実行される」というノード間の実行確定の関係である先行通知関係２１１を表す情報である。情報２２０は、各分岐ノード２０３と、その分岐ノード２０３の実行の際（つまり、どちらの分岐先ノードに分岐するかの判定の際）に参照されるプロセス変数２０４を更新しかつその分岐ノード２０３よりも先に実行される可能性のあるタスクノード２０２との関係であるタスク依存分岐関係２２１を表す情報である。
【００３３】
ここで、関係２１１を表す点線矢印は、元のノードが実行されることが確定した場合、将来必ず先のノードも実行されるという関係であり、矢印の元のノードが実行されることが確定した時点で、矢印の先のノードに関する先行通知を実行することを表している。また、関係２２１を表す点線矢印は、先のタスクノード２０２が、元の分岐ノード２０３が参照するプロセス変数２０４を更新し、かつ、元の分岐ノード２０３よりも先に実行される可能性があることを表しており、ある分岐ノード２０３を元とする矢印集合の先のタスクノード２０２が全て終了した場合、その分岐ノード２０３を先行的に評価することを表している。
【００３４】
ＢＰ定義解析部１４２の処理の詳細については後述する。
【００３５】
図３に、ＢＰ定義情報１１０のデータ構造を示す。
【００３６】
ＢＰ定義情報１１０は、下記（１）〜（６）のテーブル、
（１）ＢＰ定義２００内に含まれるノードの定義情報を有するノード定義テーブル３００；
（２）ＢＰ定義２００内に含まれるプロセス変数２０４の定義情報を有するプロセス変数定義テーブル３１０；
（３）ＢＰ定義２００内に含まれるアロー２０１の定義情報を有するアロー定義テーブル３２０；
（４）ＢＰ定義２００内に含まれる変数更新関係２０５の定義情報を有するプロセス変数更新関係定義テーブル３３０；
（５）先行通知関係情報２１０の情報を有する先行通知関係テーブル３５０；および、
（６）タスク依存分岐関係情報２２０の情報を格納するタスク依存分岐関係テーブル３６０；
を有する。何れのテーブルも、複数のＢＰ定義２００に関する情報を有する為、どのＢＰ定義２００に属する情報かを特定する為の、ＢＰ定義名を第１カラムに持つ（図中の３０１、３１１、３２１、３３１、３５１、３６１）。以下、各テーブルについて、カラムの詳細を説明する。
【００３７】
ノード定義テーブル３００において、ノード名３０２は、同一ＢＰ定義２００内のノードを一意に特定する為の名称である。ノード種別３０３は、「タスク」および「分岐」の２種類の値をとり、それぞれ、該当ノードがタスクノード２０２および分岐ノード２０３であることを示す。作業者３０４は、該当タスクノード２０２を処理すべきクライアント１０４を特定する為の情報を格納し、該当ノードが先頭タスクノード２０２（ＢＰ定義２００内の、どのアロー２０１の先にもなっていないタスクノード２０２）または分岐ノード２０３の場合、空である。
【００３８】
プロセス変数定義テーブル３１０において、変数名３１２は、同一ＢＰ定義２００内のプロセス変数２０４を一意に特定する為の名称である。
【００３９】
アロー定義テーブル３２０において、遷移元３２２は、該当アロー２０１の元のノード名である。遷移先３２３は、該当アロー２０１の先のノード名である。遷移条件３２４および優先度３２５は、該当アロー２０１の元のノードが分岐ノード２０３である場合にのみ値を持ち、遷移条件３２４は、該当アローの遷移が実行されるための条件（その条件がＴＲＵＥと評価された場合のみ遷移が実行される）を格納し、優先度３２５は、同一の遷移元３２２を持つアロー２０１同士の、遷移条件３２４を評価する優先順位（値の大きい方から評価する）を格納する。ある分岐ノード２０３を遷移元３２２とするアロー２０１の遷移条件３２４内で、あるプロセス変数２０４を参照することにより、その分岐ノード２０３からそのプロセス変数２０４への変数参照関係２０６が表現される。
【００４０】
プロセス変数更新関係定義テーブル３３０において、タスク名３３２は、プロセス変数２０４を更新するタスクノード２０２のノード名である。変数名３３３は、タスク名３３２のタスクノード２０２によって更新されるプロセス変数２０４の名称である。
【００４１】
先行通知関係テーブル３５０において、ノード名３５２は、先行通知関係２１１の矢印の、元のノード名である。通知先ノード名３５３は、先行通知関係２１１の矢印の、先のノード名である。
【００４２】
タスク依存分岐関係テーブル３６０において、タスク名３６２は、タスク依存分岐関係２２１の矢印の、先のタスクノード２０２のノード名である。依存分岐名３６３は、タスク依存分岐関係２２１の矢印の、元の分岐ノード２０３のノード名である。
【００４３】
ＢＰ実行部１５０は、業務アプリケーション１６０からの要求を受け付け、必要に応じてＢＰ定義情報１１０およびＢＰ実行状態情報１２０へのアクセス、および、先行通知制御部１５３の処理の起動を行ってＢＰの実行状態を制御し、要求を処理する。先行通知制御部１５３は、ＢＰ定義情報１１０およびＢＰ実行状態情報１２０にアクセスして先行通知を制御する。ＢＰ実行部１５０は、処理に関連する一時的なデータの格納領域として、ワークエリア１９０を使用する。
【００４４】
ＢＰ実行部１５０は、図４に示すように、ＢＰ定義２００の各案件に対応するインスタンスであるＢＰ２１００をインスタンス化し、その実行状態を制御する。ＢＰ２１００は、ＢＰ定義２００の各要素に対応する、タスクノード２１０２、分岐ノード２１０３、および、プロセス変数２１０４から構成される。
【００４５】
図５に、ＢＰ実行状態情報１２０のデータ構造を示す。
【００４６】
ＢＰ実行状態情報１２０は、ノード実行状態管理テーブル４００と、プロセス変数値管理テーブル４１０とを有する。ノード実行状態管理テーブル４００は、ＢＰ２１００内に含まれるノード（タスクノード２１０２または分岐ノード２１０３）の実行状態情報を有する。プロセス変数値管理テーブル４１０は、ＢＰ２１００内に含まれるプロセス変数２１０４の値（変数値）を有する。何れのテーブル４００、４１０も、複数のＢＰ２１００に関する情報を有する為、どのＢＰ２１００に属する情報かを特定する為の、ＢＰ名を第１カラムに持つ（図中の４０１、４１１）。また何れのテーブル４００、４１０も、どのＢＰ定義２００に属する情報かを特定する為の、ＢＰ定義名を第２カラムに持つ（図中の４０２、４１２）。
【００４７】
以下、各テーブルについて、カラムの詳細を説明する。
【００４８】
ノード実行状態管理テーブル４００において、ノード名４０３は、同一ＢＰ２１００内のノードを一意に特定する為の名称である。状態４０４は、同一ＢＰ２１００内のノードに関する状態を表す情報である。状態４０４は、例えば、「初期」「通知」「処理済」「省略」の４種類の値をとり、さらに、該当ノードがタスクノード２１０２の場合は「処理可」、該当ノードが分岐ノード２１０３の場合は「決定」という値もとる。作業者４０５は、該当タスクノード２１０２を処理すべきクライアント１０４を表す情報である。作業者４０５は、そのクライアント１０４が決定されるまで、空である。また、作業者４０５は、該当ノードが先頭タスクノード２１０２または分岐ノード２１０３である場合も、空である。
【００４９】
プロセス変数値管理テーブル４１０において、変数名４１３は、同一ＢＰ２１００内のプロセス変数２１０４を一意に特定する為の名称である。変数値４１４は、該当プロセス変数２１０４の値を格納する。
【００５０】
ＢＰ実行部１５０は、タスクリスト取得要求、ＢＰ開始要求及びタスク完了要求の３種類の要求のうちのいずれかの要求を、業務アプリケーション１６０から受け付ける。「タスクリスト取得要求」とは、タスクリストの取得の要求でありる。「ＢＰ開始要求」とは、ＢＰの開始の要求である。「タスク完了要求」とは、タスクノードの完了の要求である。
【００５１】
ＢＰ実行部１５０は、タスクリスト取得要求においては、要求元のクライアント１０４を特定する為の情報である作業者名を入力として受け取る。ＢＰ実行部１５０は、その作業者名をキーとし、状態４０４が「通知」または「処理可」である条件を満たすレコードを、ノード実行状態管理テーブル４００から検索する。ＢＰ実行部１５０は、該当クライアント１０４に割り当てられたタスクノード２１０２の情報のリスト（検索の結果としてのタスクリスト）を返す。
【００５２】
ＢＰ実行部１５０は、ＢＰ開始要求においては、開始するＢＰ２１００のＢＰ定義２００を特定する名称であるＢＰ定義名と、該当ＢＰ２１００において先頭タスクノード２１０２が更新するプロセス変数２１０４の変数名と変数値のペアのリストとを、入力として受け取り、ＢＰ２１００開始時の状態遷移の制御を行う。
【００５３】
ＢＰ実行部１５０は、タスク完了要求においては、ＢＰ２１００を特定する名称であるＢＰ名と、該当ＢＰ２１００内のタスクノード２１０２を特定する名称であるタスク名と、該当タスクノード２１０２が更新するプロセス変数２１０４の変数名と変数値のペアのリストとを、入力として受け取り、タスクノード２１０２完了時の状態遷移の制御を行う。
【００５４】
ＢＰ実行部１５０の処理の詳細については後述する。
【００５５】
業務アプリケーション１６０は、図１に示すように、タスクリスト表示部１６１と、ＢＰ開始要求部１６２と、タスク処理部１６３とを有する。タスクリスト表示部１６１は、クライアント１０４からの要求に応じて、ＢＰ実行部１５０に対してタスクリスト取得要求を送信し、返されたタスクノード２１０２の情報のリストを画像表示装置１８０に表示する。ＢＰ開始要求部１６２は、ＢＰ実行部１５０に対してＢＰ開始要求を送信する。タスク処理部１６３は、ＢＰ実行部１５０に対してタスク完了要求を送信する。
【００５６】
ここで、クライアント１０４への先行通知の仕組みを、図６を用いて説明する。
【００５７】
クライアント１０４である「作業者Ｃ」は、業務アプリケーション１６０に、作業者Ｃに割り当てられているタスクの情報のリストを要求する。業務アプリケーション１６０は、ＢＰ実行部１５０に対して、作業者Ｃの作業者名を含んだタスクリスト取得要求を送信する。ＢＰ実行部１５０は、そのタスクリスト取得要求に応答して、作業者Ｃに割り当てられている、「通知」または「処理可」状態の、タスクノード２１０２の情報のリストを、ノード実行状態管理テーブル４００から取得して返す。業務アプリケーション１６０は、返されたタスクノード２１０２の情報のリストを、タスクリスト５００として画像表示装置１８０に表示する。
【００５８】
ここで、タスクリスト５００のＢＰ名５０１、ＢＰ定義名５０２、タスク名５０３、状態５０４の各カラムは、それぞれノード実行状態管理テーブル４００のＢＰ名４０１、ＢＰ定義名４０２、ノード名４０３、状態４０４の各カラムに対応しており、タスクリスト５００のレコード５５０、レコード５５１は、それぞれノード実行状態管理テーブル４００のレコード４５０、レコード４５１に対応している。状態５０４が「処理可」であるレコード５５１は、該当タスクが現在処理可能であることを示しており、状態５０４が「通知」であるレコード５５０は、該当タスクが将来発生することを先行通知している。
【００５９】
クライアント１０４は、このタスクリスト５００に表示されるタスクの集合を監視し、現在処理可能なタスクについては各案件の重要度や緊急度を考慮してタスクの処理順序を決めたり、将来発生するタスクについてはその準備を計画したりといった、業務遂行の作業スケジューリングを行うことができる。
【００６０】
ＢＰ定義登録部１４０のＢＰ定義解析部１４２によって、ＢＰ定義２００の情報から、先行通知関係情報２１０、および、タスク依存分岐関係情報２２０といった、先行通知の制御に関連する情報が導出される。具体的には、ＢＰ定義解析部１４２は、図７に示すように、下記の処理、
（７−１）先頭タスクノード２０２からアロー２０１に従ってＢＰ定義２００のグラフ構造全体を探索し、ＢＰ定義２００内の各ノードに、タグリスト２２０１、および、上流ノードリスト２２０２という付加情報を関連付ける；
（７−２）各ノードに関連付けられたタグリスト２２０１に基づいて、先行通知関係情報２１０を導出する；及び、
（７−３）各ノードに関連付けられた上流ノードリスト２２０２に基づいて、タスク依存分岐関係情報２２０を導出する；
を実行する（前述の（７−１）〜（７−３）は、図７の（１）〜（３）に対応する）。
【００６１】
ここで、ＢＰ定義２００のグラフ探索処理は、或るノードのアロー２０１に従って前の全ノードの探索が完了している場合にのみ、そのノードのアロー２０１に従って次のノードに進むという規則に従って行われる。
【００６２】
ＢＰ定義解析部１４２は、各タグリスト２２０１を、以下の（Ａ）〜（Ｄ）の４つの規則、
（Ａ）グラフ探索開始時に、全ノードのタグリスト２２０１を空に初期化し、先頭タスクノード２０２のタグリスト２２０１には、所定のタグ集合（以下、タグ「Ｒ」）を追加する；
（Ｂ）グラフ探索のカレントノードがタスクノード２０２の場合は、アロー２０１に従う次のノードのタグリスト２２０１に、カレントノードのタグリスト２２０１にタグ集合と同じタグ集合を書き込む；
（Ｃ）グラフ探索のカレントノードが分岐ノード２０３の場合は、アロー２０１に従う次のノード（分岐先ノード）のそれぞれについて、カレントノードのタグリスト２２０１に含まれるタグ集合（親タグ集合）の一意な子タグを生成し、各分岐先ノードのタグリスト２２０１に、親タグ集合と子タグとのタグセットを追加する；
（Ｄ）グラフ探索終了後に、各ノードのタグリスト２２０１について、還元可能なタグ集合を特定し、還元する；
に従って作成する。なお、本実施形態の説明において、「タグ」とは、一又は複数の符号であり、タグ集合には、タグが一つだけの場合も含むこととする。
【００６３】
（Ａ）及び（Ｂ）の規則によれば、先頭タスクノード２０２から初めての分岐ノード２０３までの直列になった全てのノード“Ａ”、“Ｂ”、“Ｃ”、“ｘ”に、所定のタグ集合であるタグ「Ｒ」が付与される。
【００６４】
（Ｃ）の規則によれば、分岐ノード“ｘ”の分岐先ノードは“Ｄ”及び“Ｆ”の２つであるため、タグ集合「Ｒ」の子タグとして「１」及び「２」が生成される。そして、一方の分岐先ノード“Ｄ”に、親タグ集合「Ｒ」と子タグ「１」のセットとしてのタグ集合「（Ｒ）１」が付与され、他方の分岐先ノード“Ｆ”に、親タグ集合「Ｒ」と子タグ「２」のタグセットとしてのタグ集合「（Ｒ）２」が付与される。
【００６５】
なお、集約先ノード（直近且つ上流に複数のノードがあり、複数のノードからアローに従う集約先となるノード）のタグリスト２２０１には、直近且つ上流の各ノードがカレントノードの場合に、前述の（Ｂ）又は（Ｃ）の規則に従いつつ、各ノードに対応した各タグ集合が書かれる。すなわち、図の例であれば、直近且つ上流のノードが“Ｅ”及び“Ｆ”の２つであって両方ともタスクノードであるため、集約先ノード“Ｇ”のタグリスト２２０１には、一方のタスクノード“Ｅ”に付与されているタグ集合「（Ｒ）１」と、他方のタスクノード“Ｆ”に付与されているタグ集合「（Ｒ）２」とが書き込まれる。なお、図には示されていないが、直近且つ上流のノードが２つであって一方がタスクノードで他方が分岐ノードであれば、集約先ノードのタグリスト２２０１には、一方のタスクノードに付与されているタグ集合と、他方の分岐ノードに付与されているタグ集合を親タグ集合としたタグセットとが書き込まれる。
【００６６】
（Ｄ）の規則において、「還元」とは、或るノードのタグリスト（以下、この段落において「対象タグリスト」）２２０１に、或る親タグ集合の全ての子タグが揃っている場合に、その親タグ集合を、対象タグリスト２２０１に追加することをいう。例えば、図７のタスクノード“Ｇ”のタグリスト２２０１には、二つのタグ集合「（Ｒ）１」及び「（Ｒ）２」が記録されているが、これらは、親タグ集合「Ｒ」について全ての子タグ「１」及び「２」を含んでいる。従って、これらのタグ集合は、還元可能なタグ集合ということになる。そこで、これらのタグ集合に共通の親タグ集合「Ｒ」が、還元されたタグ集合として、図７に示すように、対象タグリスト２２０１に追加される。この「還元」という処理によって、分岐ノードから複数の分岐先にパスが別れ別れたパスの集約先となるノードが特定される。
【００６７】
上記の（Ａ）〜（Ｄ）の規則に従ってタグリストが生成された結果、先行通知関係情報２１０の導出では、先頭タスクノード“Ａ”に付与されているタグ集合「Ｒ」と同じタグ集合「Ｒ」が付与されているノード“Ｂ”、“Ｃ”、“ｘ”及び“Ｇ”が、それぞれ先頭タスクノード“Ａ”と間で先行通知関係２１１があると特定され、且つ、分岐先ノード“Ｄ”に付与されているタグ集合「（Ｒ）１」と同じタグ集合「（Ｒ）１」が付与されているノード“Ｅ”が、分岐先ノード“Ｄ”との間で先行通知関係２１１があると特定される。
【００６８】
上流ノードリスト２２０２は、各ノードについて、アロー２０１に従って上流にあたるノードの名称のリストである。
【００６９】
タスク依存分岐関係情報２２０の導出では、分岐ノード２０３と下記２つの条件、
（条件１）該当分岐ノード２０３が変数参照関係２０６を持つプロセス変数２０４に対して変数更新関係２０５を持つタスクノード２０２；及び、
（条件２）そのタスクノード２０２の上流ノードリスト２２０２に該当分岐ノード２０３が含まれない、
を満たすタスクノード２０２との関係であるタスク依存分岐関係２２１が特定される。
【００７０】
次に、図８を用いて、ＢＰ実行部１５０において、ＢＰ開始要求の処理時に実行される、ＢＰ２１００の実行状態制御の概略を説明する。
【００７１】
ＢＰ実行部１５０は、図８に示すように、下記処理、
（８−１）ＢＰ定義２００に従って、ＢＰ２１００に含まれる全てのタスクノード２１０２および分岐ノード２１０３を「初期」状態で生成する；
（８−２）実行が確定している先頭タスクノード“Ａ”から先行通知関係２１１を持つ全ノードを「通知」状態に遷移させる；
（８−３）先頭タスクノード“Ａ”を「処理済」状態に遷移させ、次のタスクノード“Ｂ”を「処理可」状態に遷移させる；
を実行する（前述の（８−１）〜（８−３）は、図８の（１）〜（３）に対応する）。
【００７２】
このように、ＢＰ実行部１５０は、先頭タスクノード“Ａ”から次の分岐ノード“ｘ”に至るまでのノードである“Ａ”、“Ｂ”、“Ｃ”及び“ｘ”と、その分岐ノード“ｘ”からの集約先ノード“Ｇ”とを、先行通知の対象とする。
【００７３】
ここで、前述のＢＰ開始要求の処理に関して、図８、図３および図５を用いて、処理内でのテーブルアクセスおよび判定について示しながら、動作原理をさらに詳細に説明する。
【００７４】
上記（８−１）で、ＢＰ実行部１５０は、ノード定義テーブル３００を検索して、対応するＢＰ定義２００内に含まれるノードを取得し、各ノードに対応するレコードをノード実行状態管理テーブル４００に挿入する。この際、各レコードの状態４０４は、「初期」とされる。
【００７５】
上記（８−２）で、ＢＰ実行部１５０は、アロー定義テーブル３２０を検索して、遷移先３２３として定義されていないノードを、先頭タスクノード２１０２とする。ここではノード“Ａ”が該当する。次に、ＢＰ実行部１５０は、先行通知関係テーブル３５０を検索して、ノード“Ａ”に対応する通知先ノード名３５３を取得する。ここでは、取得されるノード名３５３は、ノード“Ａ”、“Ｂ”、“Ｃ”、“ｘ”及び“Ｇ”が該当する。次に、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、各通知先ノードに対応するレコードの状態４０４を、「通知」に更新する。
【００７６】
上記（８−３）で、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、先頭タスクノード２１０２"Ａ"に対応するレコードの状態４０４を「処理済」に更新する。次に、ＢＰ実行部１５０は、アロー定義テーブル３２０を検索して、ノード“Ａ”に対応する遷移先３２３を取得する。ここでは、遷移先３２３は、ノード“Ｂ”が該当する。次に、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、ノード“Ｂ”に対応するレコードの状態４０４を、「処理可」に更新する。
【００７７】
次に、図９を用いて、ＢＰ実行部１５０において、タスク完了要求の処理時に実行される、ＢＰ２１００の実行状態制御の概略を説明する。
【００７８】
ＢＰ実行部１５０は、図９に示すように、下記処理、
（９−１）入力されたプロセス変数２１０４"α"の値"１００"を格納し、タスクノード２１０２"Ｂ"を「処理済」状態に遷移させる；
（９−２）分岐ノード“ｘ”がタスク依存分岐関係２２１を持つ全てのタスクノード２１０２が終了したこととなるため、分岐ノード“ｘ”を「決定」状態に遷移させ、分岐ノード“ｘ”についての分岐条件の先行評価を行う（ここでは、分岐条件“α＞０”を評価した結果、分岐先ノード“Ｄ”が選択される）；
（９−３）選択され実行が確定したタスクノード“Ｄ”から先行通知関係２１１を持つ全ノードを「通知」状態に遷移させる；
（９−４）分岐ノード“ｘ”でタスクノード“Ｆ”が選択されなかったことにより、不実行が確定したノード“Ｆ”を「省略」状態に遷移させる；
（９−５）タスクノード“Ｂ”の次のタスクノード“Ｃ”を「処理可」状態に遷移させる；
を実行する（前述の（９−１）〜（９−５）は、図９の（１）〜（５）に対応する）。
【００７９】
このように、ＢＰ実行部１５０は、分岐ノード“ｘ”とタスク依存分岐関係２２１にあるタスクノード“Ｂ”の実行の終了を契機に、分岐ノード“ｘ”の分岐条件を先行的に評価し、その評価の結果として選択された分岐先ノード“Ｄ”と、そのノード“Ｄ”と先行通知関係２１１にあるノード“Ｅ”とを先行通知の対象とする。
【００８０】
ここで、前述のタスク完了要求の処理に関して、図９、図３および図５を用いて、処理内でのテーブルアクセスおよび判定について示しながら、動作原理をさらに詳細に説明する。
【００８１】
上記（９−１）で、ＢＰ実行部１５０は、入力されたプロセス変数“α”の値“１００”を、プロセス変数値管理テーブル４１０の対応するレコードに格納し、ノード実行状態管理テーブル４００の、タスクノード“Ｂ”に対応するレコードの状態４０４を「処理済」に更新する。
【００８２】
上記（９−２）で、ＢＰ実行部１５０は、タスク依存分岐関係テーブル３６０を検索して、タスクノード“Ｂ”に対応する依存分岐名３６３を取得する。その依存分岐名３６３は、分岐ノード“ｘ”のみが該当する。次に、ＢＰ実行部１５０は、タスク依存分岐関係テーブル３６０を検索して、分岐ノード“ｘ”に対応するタスク名３６２を取得する。ここでは、そのタスク名３６２は、タスクノード“Ｂ”のみが該当する。次に、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００を検索し、タスクノード“Ｂ”に対応するレコードの状態４０４を取得する。ここでは、その状態４０４は、「処理済」であるため、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、分岐ノード“ｘ”に対応するレコードの状態４０４を「決定」に更新する。
【００８３】
上記（９−３）で、ＢＰ実行部１５０は、アロー定義テーブル３２０を検索して、ノード“ｘ”を遷移元３２２とするアロー２０１の遷移条件３２４を、優先度３２５の降順に取得し、評価結果がＴＲＵＥとなるまで取得順に評価する。ここでは、“α＞０”、“ＴＲＵＥ”の順に遷移条件３２４が取得される。次に、ＢＰ実行部１５０は、遷移条件“α＞０”を評価するために、プロセス変数値管理テーブル４１０を検索して、プロセス変数“α”に対応する変数値４１４を取得する。ここでは、その変数値４１４は、“１００”であり、その結果、遷移条件“α＞０”は、“ＴＲＵＥ”と評価される。次に、ＢＰ実行部１５０は、アロー定義テーブル３２０を検索して、遷移条件３２４が“ＴＲＵＥ”と評価されたアロー２０１の遷移先３２３を取得する。ここでは、その遷移先３２３は、ノード“Ｄ”が該当する。次に、ＢＰ実行部１５０は、先行通知関係テーブル３５０を検索して、ノード“Ｄ”に対応する通知先ノード名３５３を取得する。ここでは、そのノード名３５３は、ノード“Ｄ”、“Ｅ”及び“Ｇ”が該当する。次に、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、各通知先ノードに対応するレコードの状態４０４を、「通知」に更新する。
【００８４】
上記（９−４）で、ＢＰ実行部１５０は、アロー定義テーブル３２０を検索して、（上記９−３）で遷移条件３２４が“ＴＲＵＥ”と評価されたアロー２０１以外のアロー２０１の遷移先３２３を取得する。ここでは、その遷移先３２３は、ノード“Ｆ”のみが該当する。次に、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、ノード“Ｆ”に対応するレコードの状態４０４を、「省略」に更新する。
【００８５】
上記（９−５）で、ＢＰ実行部１５０は、アロー定義テーブル３２０を検索して、ノード“Ｂ”に対応する遷移先３２３を取得する。ここでは、その遷移先３２３は、ノード“Ｃ”が該当する。次に、ＢＰ実行部１５０は、ノード実行状態管理テーブル４００の、ノード“Ｃ”に対応するレコードの状態４０４を、「処理可」に更新する。
【００８６】
以下、図１０〜図１３を用いて、ＢＰ定義登録部１４０のＢＰ定義解析部１４２の処理を詳細に説明する。
【００８７】
まず、図１０を用いて、ＢＰ定義解析部１４２が、解析処理に関連する一時的なデータの格納領域として使用する、ワークエリア１９０の構成を説明する。
【００８８】
ワークエリア１９０は、タグリストテーブル６００と、上流ノードリストテーブル６１０と、グラフ探索キュー６２０と、探索済みアローテーブル６３０とを有する。タグリストテーブル６００は、タグリスト２２０１の格納形式である。上流ノードリストテーブル６１０は、上流ノードリスト２２０２の格納形式である。グラフ探索キュー６２０は、ＢＰ定義２００およびＢＰ２１００のグラフ構造を探索する際に使用するノードのキューである。探索済みアローテーブル６３０は、ＢＰ定義２００のグラフ構造を探索する際に探索済みのアロー２０１が記録される。
【００８９】
タグリストテーブル６００において、ノード名６０１は、タグリスト２２０１が関連付けられたノードを特定する名称である。タグ６０２は、該当タグリスト２２０１に含まれるタグである。
【００９０】
上流ノードリストテーブル６１０において、ノード名６１１は、上流ノードリスト２２０２が関連付けられたノードを特定する名称である。上流ノード名６１２は、該当上流ノードリスト２２０２に含まれるノードを特定する名称である。
【００９１】
グラフ探索キュー６２０において、ノード名６２１は、キューに含まれるノードを特定する名称である。順序６２２は、該当ノードのキュー内の順序を表す整数でありその値が小さいものほど先であることを表す。キューからのノードの取り出しは、順序６２２の値が最小のレコードを削除することによって、キューへのノードの追加は、キュー内の順序６２２の最大値＋１の順序６２２値でレコードを挿入することによってそれぞれ実現する。
【００９２】
探索済みアローテーブル６３０において、遷移元６３１は、該当アロー２０１の元のノードを特定する名称である。遷移先６３２は、該当アロー２０１の先のノードを特定する名称である。探索済みのアロー２０１の記録は、該当アロー２０１についてのレコードを挿入することにより行い、探索済みアローテーブル６３０に対応するレコードが存在するアロー２０１は、探索済みであるとみなす。
【００９３】
次に、ＢＰ定義解析部１４２で実行するＢＰ定義解析処理について詳細に説明する。ＢＰ定義解析処理は、ワークエリア１９０に、タグリストテーブル６００および上流ノードリストテーブル６１０を確保して、初期化し、ＢＰ定義グラフ探索処理を起動し、先行通知関係導出処理を起動し、タスク依存分岐関係導出処理を起動する。
【００９４】
ＢＰ定義グラフ探索処理の詳細は、図１１のフローチャートに示す通りである。
【００９５】
（ステップ８０１）ＢＰ定義解析部１４２は、ワークエリア１９０に、グラフ探索キュー６２０および探索済みアローテーブル６３０を確保し、初期化する。
【００９６】
（ステップ８０２）ＢＰ定義解析部１４２は、ＢＰ定義２００の先頭タスクノード２０２を取得し、そのノード２０２のノード名や順序をグラフ探索キュー６２０に追加する。
【００９７】
（ステップ８０３）ＢＰ定義解析部１４２は、グラフ探索キュー６２０が空か否かを判定し、空である場合はステップ８１２へ、空でない場合はステップ８０４へ進む。
【００９８】
（ステップ８０４）ＢＰ定義解析部１４２は、グラフ探索キュー６２０からノード（ノード名）を取り出す（以下、図１１の説明において、このノードを、「ＣＮ」とする）。
【００９９】
（ステップ８０５）ＢＰ定義解析部１４２は、ＣＮが遷移元となるアロー２０１の遷移先ノード（ノード名）のリストを取得する（以下、図１１の説明において、このリストを「ＮＮＬ」とする）。
【０１００】
（ステップ８０６）ＢＰ定義解析部１４２は、ＮＮＬに含まれる各ノード（ノード名）のそれぞれについて、上流ノードリスト２２０２に、ＣＮとＣＮの全ての上流ノードとを（具体的には、それらのノードのノード名）を挿入する。
【０１０１】
（ステップ８０７）ＢＰ定義解析部１４２は、ＣＮが分岐ノード２０３であるか否かを判定し、分岐ノード２０３である場合はステップ８０８へ、分岐でない場合はステップ８０９へ進む。
【０１０２】
（ステップ８０８）ＢＰ定義解析部１４２は、ＮＮＬに含まれるノードのそれぞれについて、ＣＮのタグリスト２２０１に含まれるタグ集合の一意な子タグを生成し、生成した子タグとそれの親タグ集合とのタグセットをタグリスト２２０１に追加する。
【０１０３】
（ステップ８０９）ＢＰ定義解析部１４２は、ＮＮＬに含まれるノードそれぞれについて、ＣＮのタグリスト２２０１に含まれる全てのタグを、タグリスト２２０１に追加する。
【０１０４】
（ステップ８１０）ＢＰ定義解析部１４２は、ＣＮが遷移元である各アロー２０１について、探索済みアローテーブル６３０に登録する。
【０１０５】
（ステップ８１１）ＢＰ定義解析部１４２は、ＮＮＬ中のノードで、該当ノードが遷移先となっている全てのアロー２０１が探索済みアローテーブル６３０に登録されているノードを、グラフ探索キュー６２０に追加する。
【０１０６】
（ステップ８１２）ＢＰ定義解析部１４２は、ＢＰ定義２００内の全ノードのリストを取得する（以下、図１１の説明において、このリストを「ＮＬ」とする）。
【０１０７】
（ステップ８１３）ＢＰ定義解析部１４２は、ＮＬが空か否かを判定し、空である場合は終了、空でない場合はステップ８１４へ進む。
【０１０８】
（ステップ８１４）ＢＰ定義解析部１４２は、ＮＬからノード（具体的にはそれのノード名）を取り出す（以下、図１１の説明において、このノードを「Ｎ」とする）。
【０１０９】
（ステップ８１５）ＢＰ定義解析部１４２は、Ｎのタグリスト２２０１に、タグリスト２２０１に含まれていない特定の親タグ集合の子タグ一式が含まれるか否か判定し、含まれる場合はステップ８１６へ、含まれない場合はステップ８１３へ進む。
【０１１０】
（ステップ８１６）ＢＰ定義解析部１４２は、Ｎのタグリスト２２０１に、ステップ８１５で発見された子タグ一式の親タグ集合を加える。
【０１１１】
先行通知関係導出処理の詳細は、図１２のフローチャートに示す通りである。
【０１１２】
（ステップ９０１）ＢＰ定義解析部１４２は、ＢＰ定義２００の先頭タスクノード２０２、および、分岐ノード２０３からの遷移先となっている全てのノード（具体的にはそれのノード名）のリストを取得する（以下、図１２の説明において、このリストを「ＮＬ」とする）。
【０１１３】
（ステップ９０２）ＢＰ定義解析部１４２は、ＮＬが空であるか否かを判定し、空である場合は終了、空でない場合はステップ９０３へ進む。
【０１１４】
（ステップ９０３）ＢＰ定義解析部１４２は、ＮＬからノード（具体的にはそれのノード名）を取り出す（以下、図１２の説明において、このノードを「Ｎ」とする）。
【０１１５】
（ステップ９０４）ＢＰ定義解析部１４２は、タグリストテーブル６００を検索して、Ｎのタグリスト２２０１を包含するタグリスト２２０１を持つノード（具体的にはそれのノード名）のリストを取得し、その対応を先行通知関係テーブル３５０に挿入する。
【０１１６】
タスク依存分岐関係導出処理の詳細は、図１３のフローチャートに示す通りである。
【０１１７】
（ステップ１００１）ＢＰ定義解析部１４２は、ＢＰ定義２００内の全分岐ノード２０３（具体的にはそれのノード名）のリストを取得する（以下、図１３の説明において、このリストを「ＢＮＬ」とする）。
【０１１８】
（ステップ１００２）ＢＰ定義解析部１４２は、ＢＮＬが空か否かを判定し、空である場合は終了、空でない場合はステップ１００３へ進む。
【０１１９】
（ステップ１００３）ＢＰ定義解析部１４２は、ＢＮＬから分岐ノード（具体的にはそれのノード名）を取り出す（以下、図１３の説明において、そのノードを「ＢＮ」とする）。
【０１２０】
（ステップ１００４）ＢＰ定義解析部１４２は、ＢＮで参照されるプロセス変数２０４を更新するタスクノード２０２（具体的にそれのノード名）のリストを取得する（以下、図１３の説明において、そのリストを「ＭＴＬ」とする）。
【０１２１】
（ステップ１００５）ＢＰ定義解析部１４２は、ＭＴＬが空であるか否かを判定し、空である場合はステップ１００２へ、空でない場合はステップ１００６へ進む。
【０１２２】
（ステップ１００６）ＢＰ定義解析部１４２は、ＭＴＬからタスクノード２０２（具体的にはそれのノード名）を取り出す（以下、図１３の説明において、そのノードを「ＭＴ」とする）。
【０１２３】
（ステップ１００７）ＢＰ定義解析部１４２は、ＭＴの上流ノードリスト２２０２にＢＮが含まれるか否かを判定し、含まれる場合はステップ１００５へ、含まれない場合はステップ１００８へ進む。
【０１２４】
（ステップ１００８）ＢＰ定義解析部１４２は、ＭＴとＢＮとのセットを、タスク依存分岐関係テーブル３６０に挿入する。
【０１２５】
以下、図１４〜図２１を用いて、ＢＰ実行部１５０の処理を詳細に説明する。
【０１２６】
まず、図１４を用いて、ＢＰ実行部１５０の動作原理を説明する。
【０１２７】
ＢＰ実行部１５０は、ＢＰ２１００開始時の状態遷移の制御を行うＢＰ開始処理部１１０１と、タスクノード２１０２完了時の状態遷移の制御を行うタスク完了処理部１１０２と、先行通知を制御する先行通知制御部１５３とを有する。
【０１２８】
先行通知制御部１５３は、下記（１４−１）乃至（１４−７）の構成要素、
（１４−１）ノードの「通知」状態への遷移を制御する先行通知遷移処理部１１１２；
（１４−２）タスクノード２１０２が終了（「処理済」または「省略」状態への遷移）した際に、先行評価できる可能性のある分岐ノード２１０３を特定する依存分岐ノード判定処理部１１１３；
（１４−３）分岐ノード２１０３を評価する分岐評価処理部１１１４；
（１４−４）分岐ノード２１０３が評価可能か否かを判定する分岐評価可能性判定処理部１１１５；
（１４−５）ノードの「省略」状態への遷移を制御する実行省略遷移処理部１１１６；
（１４−６）メッセージをキューイングするメッセージキュー１１１７；
（１４−７）メッセージキュー１１１７からメッセージを取り出し、適切な処理にディスパッチするメッセージディスパッチ処理部１１１１；
を備え、メッセージ駆動型の動作を行う。
【０１２９】
メッセージとしては、下記５種類、
（Ａ）実行が確定したノード及びそれと関連するノードを先行通知の対象とすることを要求する先行通知要求１１２１；
（Ｂ）タスクノード２１０２の終了を通知するタスク終了通知１１２２；
（Ｃ）分岐ノード２１０３の評価を要求する分岐評価要求１１２３；
（Ｄ）分岐ノード２１０３の評価可能性が変化したことを通知する分岐評価可能性変化通知１１２４；
（Ｅ）不実行が確定したノード及びそれと関連するノードを「省略」状態への遷移の対象とすることを要求する実行省略要求１１２５；
がある。
【０１３０】
ＢＰ開始処理部１１０１およびタスク完了処理部１１０２から、先行通知制御部１５３の処理を起動する際は、メッセージをメッセージキュー１１１７に送信し、メッセージディスパッチ処理部１１１１を起動するという方法が採用される。ＢＰ開始処理部１１０１は、先行通知要求１１２１を送信し、タスク完了処理部１１０２は、タスク終了通知１１２２又は分岐評価要求１１２３を送信する。
【０１３１】
先行通知遷移処理部１１１２、依存分岐ノード判定処理部１１１３、分岐評価処理部１１１４、分岐評価可能性判定処理部１１１５、および、実行省略遷移処理部１１１６は、メッセージディスパッチ処理部１１１１によってディスパッチされたメッセージを処理し、必要に応じて、メッセージをメッセージキュー１１１７に送信する。先行通知遷移処理部１１１２は、先行通知要求１１２１を処理し、分岐評価可能性変化通知１１２４を送信する。依存分岐ノード判定処理部１１１３は、タスク終了通知１１２２を処理し、分岐評価可能性変化通知１１２４を送信する。分岐評価処理部１１１４は、分岐評価要求１１２３を処理し、先行通知要求１１２１、および、実行省略要求１１２５を送信する。分岐評価可能性判定処理部１１１５は、分岐評価可能性変化通知１１２４を処理し、分岐評価要求１１２３を送信する。実行省略遷移処理部１１１６は、実行省略要求１１２５を処理し、タスク終了通知１１２２を送信する。
【０１３２】
各種メッセージが持つプロパティは、図１５に示す通りである。
【０１３３】
すなわち、先行通知要求１１２１は、実行が確定したノードの名称であるノード名１２０１を持つ。タスク終了通知１１２２は、終了したタスクノード２１０２の名称であるタスクノード名１２０２を持つ。分岐評価要求１１２３は、評価対象の分岐ノード２１０３の名称である分岐ノード名１２０３を持つ。分岐評価可能性変化通知１１２４は、評価可能性が変化した分岐ノード２１０３の名称である分岐ノード名１２０４を持つ。実行省略要求１１２５は、不実行が確定したノードの名称であるノード名１２０５を持つ。
【０１３４】
次に、図１６〜図２１のフローチャートを用いて、ＢＰ開始処理部１１０１、タスク完了処理部１１０２、および、先行通知制御部１５３の各処理を詳細に説明する。
【０１３５】
ＢＰ開始処理部１１０１は、指定されたＢＰ定義２００に従って、全ノード（タスクノード２１０２または分岐ノード２１０３）を、「初期」状態で生成し、指定されたＢＰ定義２００に従って、全プロセス変数２１０４を生成して初期化し、ＢＰ２１００の先頭タスクノード２１０２（以下、「Ｓ」とする）を取得し、Ｓについて、先行通知要求１１２１を生成して、メッセージキュー１１１７に送信し、メッセージディスパッチ処理部１１１１を起動する。そして、Ｓについて、タスク完了処理部１１０２を起動する。
【０１３６】
タスク完了処理部１１０２の処理の詳細は、図１６のフローチャートに示す通りである。
【０１３７】
（ステップ１４０１）タスク完了処理部１１０２は、指定されたタスクノード２１０２（具体的にはそれのノード名）を取得する（以下、図１６の説明において、そのノード２１０２を「ＴＮ」とする）。
【０１３８】
（ステップ１４０２）タスク完了処理部１１０２は、入力されたプロセス変数のリストに従って、プロセス変数２１０４の値を更新する。
【０１３９】
（ステップ１４０３）タスク完了処理部１１０２は、ＴＮを「処理済」状態に更新する。
【０１４０】
（ステップ１４０４）タスク完了処理部１１０２は、ＴＮについて、タスク終了通知１１２２を生成して、メッセージキュー１１１７に送信し、メッセージディスパッチ処理部１１１１を起動する。
【０１４１】
（ステップ１４０５）タスク完了処理部１１０２は、ワークエリア１９０に、グラフ探索キュー６２０を確保して、初期化し、ＴＮの遷移先の全ノード（具体的にはそれのノード名）をキュー６２０に追加する。
【０１４２】
（ステップ１４０６）タスク完了処理部１１０２は、グラフ探索キュー６２０が空か否かを判定し、空である場合は終了、空でない場合はステップ１４０７へ進む。
【０１４３】
（ステップ１４０７）タスク完了処理部１１０２は、グラフ探索キュー６２０からノード（具体的にはそれのノード名）を取り出す（以下、図１６の説明において、そのノードを「ＣＮ」とする）。
【０１４４】
（ステップ１４０８）タスク完了処理部１１０２は、ＣＮの状態が「通知」または「決定」であるか否かを判定し、「通知」または「決定」である場合はステップ１４０９へ、そうでない場合はステップ１４０６へ進む。
【０１４５】
（ステップ１４０９）タスク完了処理部１１０２は、ＣＮが分岐ノード２１０３であるか否かを判定し、分岐ノード２１０３である場合はステップ１４１２へ、そうでない場合はステップ１４１０へ進む。
【０１４６】
（ステップ１４１０）タスク完了処理部１１０２は、ＣＮの遷移元の全ノードの状態が、「処理済」または「省略」であるか否かを判定し、「処理済」または「省略」である場合はステップ１４１１へ、そうでない場合はステップ１４０６へ進む。
【０１４７】
（ステップ１４１１）タスク完了処理部１１０２は、ＣＮを「処理可」状態に更新する。
【０１４８】
（ステップ１４１２）タスク完了処理部１１０２は、ＣＮが「決定」状態か否かを判定し、「決定」状態である場合はステップ１４１４へ、そうでない場合はステップ１４１３へ進む。
【０１４９】
（ステップ１４１３）タスク完了処理部１１０２は、ＣＮについて、分岐評価要求１１２３を生成して、メッセージキュー１１１７に送信し、メッセージディスパッチ処理部１１１１を起動する。
【０１５０】
（ステップ１４１４）タスク完了処理部１１０２は、ＣＮを「処理済」状態に更新する。
【０１５１】
（ステップ１４１５）タスク完了処理部１１０２は、ＣＮの遷移先の全ノードを、グラフ探索キュー６２０に追加する。
【０１５２】
メッセージディスパッチ処理部１１１１の処理の詳細は、図１７のフローチャートに示す通りである。
【０１５３】
（ステップ１５０１）メッセージディスパッチ処理部１１１１は、メッセージキュー１１１７が空か否かを判定し、空である場合は終了、空でない場合はステップ１５０２へ進む。
【０１５４】
（ステップ１５０２）メッセージディスパッチ処理部１１１１は、メッセージキュー１１１７からメッセージを取り出し、メッセージの種類に応じて、対応する処理を起動する。具体的には、メッセージディスパッチ処理部１１１１は、取り出されたメッセージが先行通知要求１１２１の場合は、先行通知遷移処理部１１１２を起動し、タスク終了通知１１２２の場合は、依存分岐ノード判定処理部１１１３を起動し、分岐評価要求１１２３の場合は、分岐評価処理部１１１４を起動し、分岐評価可能性変化通知１１２４の場合は、分岐評価可能性判定処理部１１１５を起動し、実行省略要求１１２５の場合は、実行省略遷移処理部１１１６を起動する。
【０１５５】
先行通知遷移処理部１１１２の処理の詳細は、図１８のフローチャートに示す通りである。
【０１５６】
（ステップ１６０１）先行通知遷移処理部１１１２は、ディスパッチされた先行通知要求１１２１からノード名１２０１を取得する（以下、図１８の説明において、そのノード名１２０１に対応するノードを「Ｎ」とする）。
【０１５７】
（ステップ１６０２）先行通知遷移処理部１１１２は、Ｎからの先行通知関係２１１をもち、かつ、「初期」状態のノード（具体的にはそれのノード名）のリストを取得する（以下、図１８の説明において、そのリストを「ＰＮＬ」とする）。
【０１５８】
（ステップ１６０３）先行通知遷移処理部１１１２は、ＰＮＬが空か否かを判定し、空である場合は終了、空でない場合はステップ１６０４へ進む。
【０１５９】
（ステップ１６０４）先行通知遷移処理部１１１２は、ＰＮＬからノード（具体的にはそれのノード名）を取り出す（以下、図１８の説明において、そのノードを「ＰＮ」とする）。
【０１６０】
（ステップ１６０５）先行通知遷移処理部１１１２は、ＰＮを「通知」状態に更新する。
【０１６１】
（ステップ１６０６）先行通知遷移処理部１１１２は、ＰＮが分岐ノード２１０３であるか否かを判定し、分岐ノード２１０３である場合はステップ１６０７へ、そうでない場合はステップ１６０８へ進む。
【０１６２】
（ステップ１６０７）先行通知遷移処理部１１１２は、ＰＮについて、分岐評価可能性変化通知１１２４を生成し、メッセージキュー１１１７に送信する。
【０１６３】
（ステップ１６０８）先行通知遷移処理部１１１２は、ＰＮを作業者に割り当てる。
【０１６４】
この先行通知遷移処理部１１１２によって、ＰＮが先行通知の対象とされる（このことを、ＰＮに対して先行通知が送信される、と言うこともできる）。また、その際、先行通知送信の対象が分岐ノードである場合は、分岐評価可能性判定のトリガが与えられる。
【０１６５】
依存分岐ノード判定処理部１１１３は、ディスパッチされたタスク終了通知１１２２からタスクノード名１２０２を取得する（以下、それと対応するタスクノードを「ＴＮ」とする）。そして、依存分岐ノード判定処理部１１１３は、ＴＮへのタスク依存分岐関係２２１を持ち、かつ、「通知」状態の各分岐ノード２１０３について、分岐評価可能性変化通知１１２４を生成し、メッセージキュー１１１７に送信する。
【０１６６】
この依存分岐ノード判定処理部１１１３によって、終了したタスクと対応付けられた分岐条件が導出され、該当分岐条件それぞれに対し、分岐評価可能性判定のトリガが与えられる。
【０１６７】
分岐評価処理部１１１４の処理の詳細は、図１９のフローチャートに示す通りである。
【０１６８】
（ステップ１８０１）分岐評価処理部１１１４は、ディスパッチされた分岐評価要求１１２３から分岐ノード名１２０３を取得する（以下、図１９の説明において、そのノード名と対応する分岐ノード２１０３を「ＢＮ」とする）。
【０１６９】
（ステップ１８０２）分岐評価処理部１１１４は、ＢＮが「通知」状態か否かを判定し、「通知」状態である場合はステップ１８０３へ進み、そうでない場合は終了。
【０１７０】
（ステップ１８０３）分岐評価処理部１１１４は、ＢＮを「決定」状態に更新する。
【０１７１】
（ステップ１８０４）分岐評価処理部１１１４は、ＢＮが遷移元であるアロー２０１のリストを優先度の降順に取得する（以下、図１９の説明において、取得されたリストを「ＦＬ」とする）。
【０１７２】
（ステップ１８０５）分岐評価処理部１１１４は、ＦＬの先頭から遷移条件を評価して、結果が“ＴＲＵＥ”となる最初のアロー２０１を取り出す（以下、図１９の説明において、そのアローを「ＴＦ」とする）。
【０１７３】
（ステップ１８０６）分岐評価処理部１１１４は、ＴＦの遷移先のノードについて、先行通知要求１１２１を生成し、メッセージキュー１１１７に送信する。
【０１７４】
（ステップ１８０７）分岐評価処理部１１１４は、ＦＬ内のアロー２０１の遷移先で、かつ、「初期」状態の各ノードについて、実行省略要求１１２５を生成し、メッセージキュー１１１７に送信する。
【０１７５】
この分岐評価処理部１１１４によって、先行通知を送る対象の分岐先ノードが決定される。
【０１７６】
分岐評価可能性判定処理部１１１５の処理の詳細は、図２０のフローチャートに示す通りである。
【０１７７】
（ステップ１９０１）分岐評価可能性判定処理部１１１５は、ディスパッチされた分岐評価可能性変化通知１１２４から分岐ノード名１２０４を取得する（以下、図２０の説明において、そのノード名に対応する分岐ノード２１０３を「ＢＮ」とする）。
【０１７８】
（ステップ１９０２）分岐評価可能性判定処理部１１１５は、ＢＮが「通知」状態か否かを判定し、「通知」状態である場合はステップ１９０３へ進み、そうでない場合は終了する。
【０１７９】
（ステップ１９０３）分岐評価可能性判定処理部１１１５は、ＢＮとタスク依存分岐関係２２１にある全タスクノード２１０２の状態が「処理済」または「省略」か否かを判定し、「処理済」または「省略」である場合はステップ１９０４へ進み、そうでない場合は終了。
【０１８０】
（ステップ１９０４）分岐評価可能性判定処理部１１１５は、ＢＮについて、分岐評価要求１１２３を生成し、メッセージキュー１１１７に送信する。
【０１８１】
この分岐評価可能性判定処理部１１１５によって、分岐条件に先行通知が送られており、かつ、該当分岐条件に対応付けられたタスクが全て終了しているか否かが判定される。
【０１８２】
実行省略遷移処理部１１１６の処理の詳細は、図２１のフローチャートに示す通りである。
【０１８３】
（ステップ２００１）実行省略遷移処理部１１１６は、ディスパッチされた実行省略要求１１２５からノード名１２０５を取得する（以下、図２１の説明において、そのノード名に対応するノードを「Ｎ」とする）。
【０１８４】
（ステップ２００２）実行省略遷移処理部１１１６は、ワークエリア１９０に、グラフ探索キュー６２０を確保して、初期化し、そのキュー６２０にＮ（具体的にはそれのノード名）を追加する。
【０１８５】
（ステップ２００３）実行省略遷移処理部１１１６は、グラフ探索キュー６２０が空か否かを判定し、空である場合は終了、空でない場合はステップ２００４へ進む。
【０１８６】
（ステップ２００４）実行省略遷移処理部１１１６は、グラフ探索キュー６２０からノード（具体的にはそれのノード名）を取り出す（以下、図２１の説明において、そのノードを「ＣＮ」とする）。
【０１８７】
（ステップ２００５）実行省略遷移処理部１１１６は、ＣＮが「初期」状態か否かを判定し、「初期」状態である場合はステップ２００６へ、そうでない場合はステップ２００３へ進む。
【０１８８】
（ステップ２００６）実行省略遷移処理部１１１６は、ＣＮの遷移元の全ノードの状態が、「省略」または「決定」であるか否かを判定し、「省略」または「決定」である場合はステップ２００７へ、そうでない場合はステップ２００３へ進む。
【０１８９】
（ステップ２００７）実行省略遷移処理部１１１６は、ＣＮを「省略」状態に更新する。
【０１９０】
（ステップ２００８）実行省略遷移処理部１１１６は、ＣＮの遷移先の全ノード（具体的にはそれのノード名）を、グラフ探索キュー６２０に追加する。
【０１９１】
（ステップ２００９）実行省略遷移処理部１１１６は、ＣＮがタスクノード２１０２であるか否かを判定し、タスクノード２１０２である場合はステップ２０１０へ、そうでない場合はステップ２００３へ進む。
【０１９２】
（ステップ２０１０）実行省略遷移処理部１１１６は、ＣＮについて、タスク終了通知１１２２を生成し、メッセージキュー１１１７に送信する。
【０１９３】
以上に示したように、本実施形態によれば、業務を遂行する主体である作業者は、将来自分に割り当てられるタスクに関する情報について先行的に、正確かつ最早タイミングでの通知を受けることができ、予め他のタスクとの調整及び優先順位付けを行ったり、そのタスクの準備を進めておいたりすることができるため、業務の効率的な遂行が可能である。
【０１９４】
また、本実施形態によれば、ＢＰ管理システムが先行通知処理を実行するため、或るタスクを実行する１作業者が、ＢＰ定義の下流構造の詳細を知る必要は無く、手動で通知を送信する手間もかからない。
【０１９５】
また。本発明によれば、ＢＰ定義内に先行通知を定義する要素を事前定義する必要が無いため、ＢＰ定義開発者による、先行通知の定義を目的とした事前の綿密な分析は必要なく、また、ＢＰ定義の不必要な肥大化が防がれるため、作成・保守の手間も軽減される。
【０１９６】
上述した本発明の実施の形態は、本発明の説明のための例示であり、本発明の範囲をその実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【図面の簡単な説明】
【０１９７】
【図１】本発明の一実施形態に係るビジネスプロセス（ＢＰ）管理システムの構成を示す。
【図２】ＢＰ定義解析部１４２の処理の概要を示す。
【図３】ＢＰ定義情報１１０のデータ構造を示す。
【図４】ＢＰ実行部１５０の処理の概要を示す。
【図５】ＢＰ実行状態情報１２０のデータ構造を示す。
【図６】クライアント１０４への先行通知の仕組みを示す。
【図７】先行通知関係情報２１０及びタスク依存分岐関係情報２２０を導出する原理の説明図である。
【図８】ＢＰ開始要求の処理時に実行される、ＢＰ２１００の実行状態制御、の概略図である。
【図９】タスク完了要求の処理時に実行される、ＢＰ２１００の実行状態制御、の概略図である。
【図１０】ワークエリア１９０のデータ構造を示す。
【図１１】ＢＰ定義グラフ探索処理のフローチャートである。
【図１２】先行通知関係導出処理のフローチャートである。
【図１３】タスク依存分岐関係導出処理のフローチャートである。
【図１４】ＢＰ実行部１５０の動作原理の説明図である。
【図１５】各種メッセージが持つプロパティを示す。
【図１６】タスク完了処理部１１０２の処理のフローチャートである。
【図１７】メッセージディスパッチ処理部１１１１の処理のフローチャートである。
【図１８】先行通知遷移処理部１１１２の処理のフローチャートである。
【図１９】分岐評価処理部１１１４の処理のフローチャートである。
【図２０】分岐評価可能性判定処理部１１１５の処理のフローチャートである。
【図２１】実行省略遷移処理部１１１６の処理のフローチャートである。
【符号の説明】
【０１９８】
１００：ネットワーク  １０１：サーバ計算機  １０２：クライアント計算機  １０３：ＢＰ定義開発者  １０４：クライアント  １１０：ＢＰ定義情報  １２０：ＢＰ実行状態情報  １３０：ＢＰ定義開発部  １４０：ＢＰ定義登録部  １４１：ＢＰ定義格納部  １４２：ＢＰ定義解析部  １５０：ＢＰ実行部  １５３：先行通知制御部  １６０：業務アプリケーション  １６１：タスクリスト表示部  １６２：ＢＰ開始要求部  １６３：タスク処理部  １７０：ＯＳ  １８０：画像表示装置  １８１：システムバス  １８２：ＣＰＵ  １８３：主記憶装置  １８４：ユーザ入力インタフェース  １８５：グラフィックインタフェース  １８６：ネットワークインタフェース  １８７：二次記憶装置  １９０：ワークエリア  ２００：ＢＰ定義  ２０１：アロー  ２０２：タスク  ２０３：分岐  ２０４：プロセス変数  ２０５：変数更新関係  ２０６：変数参照関係  ２１０：先行通知関係情報  ２１１：先行通知関係  ２２０：タスク依存分岐関係情報  ２２１：タスク依存分岐関係
【図１】
2010102517.tif 000003
【図２】
2010102517.tif 000004
【図３】
2010102517.tif 000005
【図４】
2010102517.tif 000006
【図５】
2010102517.tif 000007
【図６】
2010102517.tif 000008
【図７】
2010102517.tif 000009
【図８】
2010102517.tif 000010
【図９】
2010102517.tif 000011
【図１０】
2010102517.tif 000012
【図１１】
2010102517.tif 000013
【図１２】
2010102517.tif 000014
【図１３】
2010102517.tif 000015
【図１４】
2010102517.tif 000016
【図１５】
2010102517.tif 000017
【図１６】
2010102517.tif 000018
【図１７】
2010102517.tif 000019
【図１８】
2010102517.tif 000020
【図１９】
2010102517.tif 000021
【図２０】
2010102517.tif 000022
【図２１】
2010102517.tif 000023