JP2005149332A - Workflow management system and program therefor - Google Patents
Workflow management system and program therefor Download PDFInfo
- Publication number
- JP2005149332A JP2005149332A JP2003388652A JP2003388652A JP2005149332A JP 2005149332 A JP2005149332 A JP 2005149332A JP 2003388652 A JP2003388652 A JP 2003388652A JP 2003388652 A JP2003388652 A JP 2003388652A JP 2005149332 A JP2005149332 A JP 2005149332A
- Authority
- JP
- Japan
- Prior art keywords
- scope
- activity
- belongs
- completed
- activities
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、複数の作業ステップであるアクティビティから構成されるワークフローを定義に従い実行するワークフロー管理技術に関するものである。 The present invention relates to a workflow management technique for executing a workflow composed of activities as a plurality of work steps according to a definition.
SOAP(Simple Object Access Protocol)によりインターネット経由でサービスを利用するWebサービスの技術が開発されてきている。当初は、WebサービスをRPC(Remote Procedure Call)型で利用するパターンが主流であった。しかし近年では、複数のWebサービスを連続して実行し一つのワークフローを実現するパターンが出現し、フロー定義のための言語(以下、Webサービス・フロー定義言語と呼ぶ)が次々と開発されてきている。Webサービス・フロー定義言語として、http://www−106.ibm.com/developerworks/library/ws−bpel/で紹介される、Microsoft、IBM、BEAが提案するBPEL4WS(Business Process Execution Language for Web Services)が注目を集めている。 Web service technology that uses services via the Internet has been developed by SOAP (Simple Object Access Protocol). Initially, the pattern of using Web services in the RPC (Remote Procedure Call) type was mainstream. However, in recent years, a pattern has emerged in which a plurality of Web services are continuously executed to realize one workflow, and a language for flow definition (hereinafter referred to as Web service flow definition language) has been developed one after another. Yes. As a Web service flow definition language, http: // www-106. ibm. BPEL4WS (Business Process Language for Web Services) proposed by Microsoft, IBM, and BEA, introduced at com / developerworks / library / ws-bpel /, is attracting attention.
一方、Webサービス・フロー定義言語で記述したフローを実行するエンジンとして、既存のワークフロー技術によるものが有望視されている。 On the other hand, the engine based on the existing workflow technology is considered promising as an engine for executing a flow described in a Web service flow definition language.
なお既存のワークフロー技術として、非特許文献1に開示される技術が挙げられる。
As an existing workflow technique, a technique disclosed in
Webサービス・フロー定義言語で記述するワークフローは、既存ワークフロー技術のフロー定義/制御能力により、ある程度実現可能である。前述のBPEL4WSと非特許文献1を例にとると、 “Switch”(条件分岐)、“Flow”(並行実行)などに代表されるBPEL4WSのフロー記述要素である構造化アクティビティは、WorkCoordinatorの分岐ノード/先着ノード、分業ノード/待合ノードなどの組み合わせにより対応が可能である。
The workflow described in the Web service flow definition language can be realized to some extent by the flow definition / control capability of the existing workflow technology. Taking the above-mentioned BPEL4WS and Non-Patent
しかしWebサービス・フロー定義言語に既存ワークフロー技術で対応する場合、以下のような問題があった。BPEL4WSなどのWebサービス・フロー定義言語は、ワークフローの一部をグループ化する“スコープ”の機能を備える。スコープは、フロー内で使用する変数や、失敗時、補償時などに実行するハンドラの有効範囲を定義/制御する機能であり、ワークフローの制御内容をより木目細かく指定できるといったユーザメリットがある。またスコープの状態により、ハンドラの実行を決定したりするなど、ワークフローの制御にも影響がある。一方、既存ワークフロー技術は、このスコープの機能を備えていないという問題があった。 However, when the existing workflow technology is used for the Web service flow definition language, there are the following problems. Web service flow definition languages such as BPEL4WS have a “scope” function for grouping parts of a workflow. The scope is a function for defining / controlling the variable used in the flow and the effective range of the handler executed at the time of failure or compensation, and has a user merit that the control content of the workflow can be specified more finely. In addition, the control of the workflow is affected, such as determining the execution of the handler depending on the state of the scope. On the other hand, the existing workflow technology has a problem that it does not have this scope function.
前記の課題を解決するための本発明は、ビジネスプロセスを構成するアクティビティの各々について状態情報を記憶するアクティビティ情報テーブルと、スコープの各々について状態情報を記憶するスコープ情報テーブルとを用いて、アクティビティの状態が実行完了となったとき、当該アクティビティが所属する同一スコープに所属する他のアクティビティがすべて完了した場合に当該アクティビティが所属するスコープの状態を完了に設定するワークフロー管理技術を特徴とする。 The present invention for solving the above problems uses an activity information table that stores state information for each of the activities that make up a business process, and a scope information table that stores state information for each of the scopes. It is characterized by a workflow management technology that sets the status of the scope to which the activity belongs to complete when all other activities that belong to the same scope to which the activity belongs are completed when the status is completed.
本発明によれば、既存ワークフロー管理システムへの機能追加によって、Webサービス・フロー定義言語のスコープ機能を実現できる。 According to the present invention, the scope function of the Web service flow definition language can be realized by adding a function to the existing workflow management system.
以下、本発明の実施形態について説明する。 Hereinafter, embodiments of the present invention will be described.
図1は、本発明の実施例を示すためのシステム構成図である。110はワークフローエンジンであり、アクティビティ間の遷移などのフロー制御を行う。140はビジネスプロセス定義であり、ワークフローエンジン110が制御するフローを定義する。ビジネスプロセス定義140は、作業ステップである複数のアクティビティ150と、フロー分岐/先着などを行う制御ノード160とから構成される。170はスコープであり、ワークフローの一部を構成する1つ以上のアクティビティ150をグループ化する。
FIG. 1 is a system configuration diagram for illustrating an embodiment of the present invention. A
120は状態監視部であり、アクティビティ150の状態変化を検知する。130はスコープ監視部であり、状態監視部120により起動され、アクティビティの状態変化に伴って発生するスコープの状態変化を監視する。
A
180は、アクティビティ150に関する情報を記憶するアクティビティ情報テーブルである。アクティビティ情報テーブル180は、アクティビティ識別子181、状態情報182およびスコープ情報183の3つの記憶領域を持つ。状態情報182は、そのアクティビティの実行状態を示す。アクティビティの実行状態は、「未実行」「実行中」「完了」「異常終了」「強制終了」のいずれかによって区分される。スコープ情報183は、アクティビティ識別子181で識別されるアクティビティ150が所属するスコープ170の識別子を記憶する。
190は、スコープ160に関する情報を記憶するスコープ情報テーブルである。スコープ情報テーブル190は、スコープ識別子191、状態情報192および親スコープ情報193の3つの記憶領域を持つ。状態情報192は、そのスコープの実行状態を示す。スコープの実行状態は、「活性」「完了」「異常終了」のいずれかによって区分される。「活性」は、そのスコープの処理が完了していないことを示す。親スコープ情報193は、スコープ識別子191で識別されるスコープ170が所属する上位のスコープ170が存在すればその識別子を記憶する。
なおアクティビティ情報テーブル180にスコープ情報183を設ける代わりに、スコープ情報テーブル190に繰り返しアクティビティ識別子181を設け、アクティビティ識別子181に対応してスコープ情報183、スコープ識別子191、状態情報192および親スコープ情報193のデータ項目を設けるようなスコープ情報テーブル190のデータ形式にしてもよい。
Instead of providing the
ワークフローシステムのハードウェアは、CPU、メモリ、記憶装置、入力装置および出力装置を備える計算機(コンピュータ)によって実現される。ワークフローエンジン110、状態監視部120およびスコープ監視部130は、この計算機のメモリに格納され、CPUによって実行されるプログラムモジュールである。なお図示しないが、このほか業務依存の処理をするアプリケーションプログラムが存在する。アプリケーションプログラムは、API(アプリケーションプログラム・インタフェース)を介してワークフローエンジン110と通信する。ビジネスプロセス定義140、アクティビティ情報テーブル180およびスコープ情報テーブル190は、この計算機の記憶装置に格納される。アクティビティ情報テーブル180およびスコープ情報テーブル190は、案件、すなわちプロセス・インスタンスごとに管理される。本実施例では、プロセス・インスタンスを管理するテーブルなど、既存のワークフロー技術に関する説明を省略する。ワークフローシステムは、サーバ・クライアント・システムの形態でも実施可能である。この場合にクライアント計算機は、ユーザインタフェースのプログラムを備え、主としてユーザに対する入出力部分を受け持つ。本発明は、Webをベースとする分散環境にも適用できる。
The hardware of the workflow system is realized by a computer (computer) including a CPU, a memory, a storage device, an input device, and an output device. The
図2は、BPEL4WSによるフロー定義の記述例の一部を示すものである。図で<sequence>は、出現するアクティビティ又はスコープを順に実行するよう定義する。<flow>は、出現するアクティビティ又はスコープを並列して実行するよう定義する。このフロー定義を従来のワークフロー管理システムで実施する場合、図1に示す2つの制御ノード160をそれぞれ分業ノード、待合ノードとする場合のビジネスプロセス定義140により定義することができる。
FIG. 2 shows a part of a description example of the flow definition by BPEL4WS. In the figure, <sequence> defines the appearing activities or scopes to be executed in order. <Flow> defines an appearing activity or scope to be executed in parallel. When this flow definition is implemented by a conventional workflow management system, it can be defined by a
図1に示すビジネスプロセス定義140をワークフロー管理システムに登録するとき、システムは、アクティビティ情報テーブル180とスコープ情報テーブル190の初期設定を行う。システムは、アクティビティ情報テーブル180にビジネスプロセス定義140内に存在する各アクティビティ150についての情報を書き込む。すなわち各アクティビティ150の識別子181、状態情報182およびスコープ情報183が格納される。スコープ情報183には、そのアクティビティ150が所属する上位のスコープの識別子が書き込まれる。システムは、スコープ情報テーブル190にビジネスプロセス定義140内に存在する各スコープ170についての情報を書き込む。すなわち各スコープ170のスコープ識別子191、状態情報192および親スコープ情報193が格納される。親スコープ情報193には、そのスコープ170が所属する親スコープ170が存在すればその親スコープの識別子が書き込まれる。
When the
図1に示すビジネスプロセス定義140について初期設定されたアクティビティ情報テーブル180とスコープ情報テーブル190の例を図3に示す。アクティビティ情報テーブル180内の各アクティビティ識別子181で示されるアクティビティの状態情報182は、そのアクティビィの実行が開始されていないことを示す“未実行”が設定される。スコープ情報テーブル190内の各スコープ識別子191で示されるスコープの状態情報192は、スコープの処理が完了してないことを示す“活性(アクティブ)”が設定される。なおアクティビティ情報テーブル180とスコープ情報テーブル190の初期設定は、定義ツールを利用して行っても良いし、ユーザが手作業にて行っても良い。
FIG. 3 shows an example of the activity information table 180 and the scope information table 190 that are initially set for the
図4〜図6は、スコープ監視部130の処理手順を示す図である。図に示すように、この手順は、処理ステップ41〜45、51〜54、および61〜65から構成される。
4 to 6 are diagrams illustrating a processing procedure of the
以下、スコープ監視部130の処理手順について図1に示す他のプログラムモジュールの動作とともに図4〜図6に示すフローチャートを用いて説明する。ビジネスプロセス定義140として、図1に示す例を用いる。なお以下の説明において、アクティビティの状態情報182の終了状態とは、そのアクティビティの実行が正常終了したことを示す“完了”、エラーが発生し終了したことを示す“異常終了”、またはアプリケーションなどの指示により強制的に終了された“強制終了”のいずれかを示す。同様にスコープの状態情報192の終了状態とは、そのスコープ内の処理が正常に終了したことを示す“完了”、そのスコープ内のアクティビティ又は制御ノードの処理中にエラーが発生して終了したことを示す“異常終了”のいずれかを示す。
Hereinafter, a processing procedure of the
ビジネスプロセス定義140が定義するワークフローの実行が開始すると、ワークフローエンジン110は、アクティビティ“A”の状態情報182を“実行中”にする。あるいは、状態監視部120がワークフローエンジン110からアクティビティ“A”の状態を検知して、そのアクティビティの状態情報182を“実行中”に設定してもよい。状態監視部120は、アクティビティ“A”の状態変化を検知し、スコープ監視部130を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“A”の状態情報182を取得するが、“実行中”であるため(ステップ42:その他)、処理を終了する。なおアクティビティの状態情報182が“実行中”のとき、状態監視部120は、スコープ監視部130を起動しないようにしてもよい。そうすれば、ステップ42:その他に分岐するケースはない。
When the execution of the workflow defined by the
アクティビティ“A”の処理が正常終了すると、ワークフローエンジン110は、アクティビティ“A”の状態情報182を“完了”に変更する。あるいは、状態監視部120がワークフローエンジン110からアクティビティ“A”の状態を検知して、そのアクティビティの状態情報182を“完了”に変更してもよい。状態監視部120はアクティビティ“A”の状態変化を検知し、スコープ監視部130を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“A”の状態情報182を取得する。その状態情報182が“完了”であるため(ステップ42:完了)、スコープ監視部130は、アクティビティ“A”のスコープ情報183に設定される所属するスコープ“S2”に所属する他のアクティビティまたは“S2”を親スコープとする下位のスコープの有無について、アクティビティ情報テーブル180およびスコープ情報テーブル190を検索する(ステップ43)。同一スコープ“S2”に所属する他のアクティビティ“D”が存在するため(ステップ43:Yes)、処理はステップ44に進む。同一スコープ“S2”に所属する全てのアクティビティまたはスコープの状態情報182、192を取得し、全ての状態情報182、192が終了状態であれば(ステップ44:Yes)、処理はステップ45に進む。そうでなければ(ステップ44:No)、処理を終了する。ここではアクティビティ“D”の状態情報182が“未実行”であるため(ステップ44:No)、処理を終了する。
When the process of the activity “A” is normally completed, the
実行中のワークフローは、次に制御ノード160である分業ノードにより、アクティビティ“B”および“C”が“実行中”になる。状態監視部120は、アクティビティ“B”および“C”の状態変化を検知し、スコープ監視部130を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“B”および“C”の状態情報182を取得するが、“実行中”であるため(ステップ42:その他)、処理を終了する。
In the workflow being executed, the activities “B” and “C” are changed to “execution” by the division node which is the control node 160 next. The
次に“実行中”であるアクティビティ“B”および“C”のうち、“B”の処理が先に正常終了し、状態情報182が“完了”に変化したとする。この場合の状態監視部120およびスコープ監視部130の動作は、先に説明したアクティビティ“A”の正常終了時と同様になる。
Next, it is assumed that the processing of “B” among the activities “B” and “C” that are “being executed” normally ends first, and the
この時点におけるアクティビティ情報テーブル180とスコープ情報テーブル190の例を図7に示す。 An example of the activity information table 180 and the scope information table 190 at this time is shown in FIG.
次にアクティビティ“C”の処理が正常終了し、状態情報182が“完了”に変化したとする。状態監視部120は、アクティビティ“C”の状態変化を検知し、スコープ監視部130を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“C”の状態情報182を取得するが、“完了”であるため(ステップ42:完了)、アクティビティ“C”のスコープ情報183に設定される所属するスコープ“S1”に所属する他のアクティビティまたは“S1”を親スコープとする下位のスコープの有無について、アクティビティ情報テーブル180を検索する(ステップ43)。同一スコープ“S1”に所属する他のアクティビティ“B”が存在するため(ステップ43:Yes)、ステップ44に進む。同一スコープ“S1”に所属する全てのアクティビティまたはスコープの状態情報182、192を取得し、全ての状態情報182、192が終了状態であれば(ステップ44:Yes)、処理はステップ45に進む。そうでなければ(ステップ44:No)、処理を終了する。ここではアクティビティ“B”の状態情報182が“完了”であるため(ステップ44:Yes)、ステップ45に進む。ステップ45では、スコープ監視部130は、スコープ識別子191が当該スコープであるスコープの状態情報192を“完了”にする。ここではスコープ“S1”の状態情報192を“完了”にし、ステップ61に進む。
Next, it is assumed that the processing of the activity “C” is normally completed and the
ステップ61では、スコープ監視部130は、当該スコープの親スコープの有無について、スコープ情報テーブル190を検索して判定する。親スコープが存在すれば(ステップ61:Yes)、処理はステップ62に進み、存在しなければ(ステップ61:No)、処理を終了する。ここではスコープ“S1”に親スコープ“S2”が存在するため(ステップ61:Yes)、処理はステップ62に進む。ステップ62では、この親スコープと同一の親スコープに所属するスコープまたは所属するスコープが当該親スコープであるようなアクティビティの有無について、アクティビティ情報テーブル180およびスコープ情報テーブル190を検索する。そのようなスコープまたはアクティビティが存在すれば(ステップ62:Yes)、処理はステップ63に進み、存在しなければ(ステップ62:No)、処理を終了する。ここでは所属するスコープが“S2”であるアクティビティ“A”および“D”が存在するため(ステップ62:Yes)、処理はステップ63に進む。ステップ63では、ステップ62で取得した全てのスコープまたはアクティビティの状態情報192または182が全て終了状態であれば(ステップ63:Yes)、ステップ64に進む。そうでなければ(ステップ63:No)、処理を終了する。ここではアクティビティ“A”の状態情報182は“完了”であるが“D”の状態情報182は“未実行”であるため、処理を終了する。
In
この時点におけるアクティビティ情報テーブル180とスコープ情報テーブル190の例を図8に示す。 An example of the activity information table 180 and the scope information table 190 at this time is shown in FIG.
実行中のワークフローは、次に制御ノード160である待合ノードにより、アクティビティ“D”が“実行中”になる。状態監視部120は、アクティビティ“D”の状態変化を検知し、スコープ監視部130を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“D”の状態情報182を取得するが、“実行中”であるため(ステップ42:その他)、処理を終了する。
In the workflow being executed, the activity “D” becomes “executed” by the waiting node which is the control node 160 next. The
アクティビティ“D”の処理が正常終了し、状態情報182が“完了”に変化したとする。状態監視部120はアクティビティ“D”の状態変化を検知し、スコープ監視部1030を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“D”の状態情報182を取得するが、“完了”であるため(ステップ42:完了)、ステップ43に進む。アクティビティ“D”のスコープ情報183に設定される所属するスコープ“S2”に所属する他のアクティビティ“A”およびスコープ“S1”が存在するため(ステップ43:Yes)、ステップ44に進む。アクティビティ“A”の状態情報182およびスコープ“S1”の状態情報192が“完了”であるので(ステップ44:Yes)、処理はステップ45に進む。次にスコープ監視部130は、スコープ“S2”の状態情報192を“完了”にしてステップ61に進む。スコープ“S2”の親スコープが存在しないため(ステップ61:No)、処理を終了する。
It is assumed that the process of activity “D” is normally completed and the
この時点におけるアクティビティ情報テーブル180とスコープ情報テーブル190の例を図9に示す。図9に示すように、ビジネスプロセス定義140の図1に示す範囲のワークフロー実行が終了したことが分かる。
An example of the activity information table 180 and the scope information table 190 at this time is shown in FIG. As shown in FIG. 9, it can be seen that the execution of the workflow in the range shown in FIG. 1 of the
なおステップ43で、当該アクティビティの所属するスコープに所属する他のアクティビティまたは当該スコープを親スコープとする下位のスコープがいずれも存在しない場合(ステップ43:No)、当該スコープには当該アクティビティのみが所属するため、スコープ監視部130は、当該スコープの状態情報192を直ちに“完了”にする(ステップ45)。
In
同様にステップ62で、当該親スコープと同一の親スコープに所属するスコープまたは所属するスコープが当該親スコープであるようなアクティビティがいずれも存在しない場合(ステップ62:No)、当該親スコープには当該スコープのみが所属するため、スコープ監視部130は、当該親スコープの状態情報192を直ちに“完了”にする(ステップ64)。
Similarly, in
さらにステップ64で、親スコープの状態を“完了”に書き換えた後に、スコープ識別子191が当該親スコープであるスコープについて、スコープ監視部130は、ステップ61以降の処理を繰り返す(ステップ65)。これにより、親スコープに所属するスコープまたはアクティビティがすべて終了するとその親スコープが“完了”するというBPEL4WSの仕様を実現できる。
Further, after rewriting the state of the parent scope to “completed” at
以上、ワークフローが正常に実行される場合の、図1に示す各プログラムモジュールの動作について説明した。 The operation of each program module shown in FIG. 1 when the workflow is normally executed has been described above.
次にワークフロー実行中にアクティビティ150が異常終了する場合の図1に示す各プログラムモジュールの動作について説明する。 Next, the operation of each program module shown in FIG. 1 when the activity 150 ends abnormally during workflow execution will be described.
ビジネスプロセス定義140で定義するワークフローの実行が開始され、アクティビティ“A”の状態が“未実行”、“実行中”、“完了”と変化したとする。実行中のワークフローは、次に制御ノード160である分業ノードにより、アクティビティ“B”および“C”が“実行中”になる。この場合の状態監視部120およびスコープ監視部130の動作は、前記のワークフロー正常終了時の処理手順と同様になる。
Assume that the execution of the workflow defined in the
次に“実行中”であるアクティビティ“B”でエラーが発生し、アクティビティ“B”が“異常終了”したとする。このときワークフローエンジン110又は状態監視部120は、アクティビティ“B”の状態情報182を“異常終了”に変更する。状態監視部120はアクティビティ“B”の状態変化を検知し、スコープ監視部130を起動して通知する(ステップ41)。スコープ監視部130は、アクティビティ情報テーブル180からアクティビティ“B”の状態情報182を取得する。この状態情報182が“異常終了”であるため(ステップ42:異常)、スコープ監視部130は、アクティビティ“B”のスコープ情報183に設定される所属するスコープ“S1”に所属する他のアクティビティの有無についてアクティビティ情報テーブル180を検索する(ステップ51)。同一スコープ“S1”に所属するアクティビティ“C”が存在するため(ステップ51:Yes)、ステップ52に進み、取得したアクティビティの状態情報182が終了状態でないアクティビティを“強制終了”にする。ここではスコープ監視部130は、アクティビティ“C”を“強制終了”にし、ステップ53に進む。ステップ53では、スコープ識別子191がスコープ情報183で示されるスコープについてスコープ識別子191の状態情報192を“異常終了”にする。ここではスコープ“S1”の状態情報192を“異常終了”にし、ステップ54に進む。スコープ監視部130は、ステップ54で状態監視部120を経由してワークフローエンジン110に、スコープ“S1”の失敗ハンドラの実行を指示する。失敗ハンドラの処理内容は、ビジネスプロセス定義140であらかじめ定義される。ワークフローエンジン110から失敗の通知を受けたアプリケーションは、動的に処理ステップを生成するなどし、ワークフローエンジン110が失敗ハンドラを実行する。スコープ監視部130は、状態監視部120を経由してワークフローエンジン110から失敗ハンドラの実行終了を通知され、ステップ61に進む。
Next, it is assumed that an error occurs in the activity “B” that is “being executed” and the activity “B” is “abnormally ended”. At this time, the
ステップ61では、スコープ“S1”に親スコープが存在するため(ステップ61:Yes)、ステップ62に進み、その親スコープに所属するアクティビティ“A”および“D”が存在するため(ステップ62:Yes)、処理はステップ63に進む。ここでアクティビティ“A”の状態情報182は“完了”であるが、“D”の状態が“未実行”であるため処理を終了する。
In
この時点におけるアクティビティ情報テーブル180とスコープ情報テーブル190の例を図10に示す。 An example of the activity information table 180 and the scope information table 190 at this time is shown in FIG.
実行中のワークフローは、次に制御ノード160である待合ノードにより、アクティビティ “D”が“実行中”になる。これ以降、アクティビティ “D”が“完了”するまでの状態監視部120およびスコープ監視部130の処理手順は、前記のワークフロー正常終了時の処理手順と同様になる。
In the workflow being executed, the activity “D” becomes “executed” by the waiting node which is the control node 160 next. Thereafter, the processing procedure of the
アクティビティ“D”が“完了”した時点におけるアクティビティ情報テーブル180とスコープ情報テーブル190の例を図11に示す。図11に示すように、ビジネスプロセス定義140の図1に示す範囲のワークフロー実行が終了したことが分かる。
An example of the activity information table 180 and the scope information table 190 when the activity “D” is “completed” is shown in FIG. As shown in FIG. 11, it can be seen that the execution of the workflow in the range shown in FIG. 1 of the
なおステップ51で、当該アクティビティの所属スコープに所属する他のアクティビティが存在しない場合(ステップ51:No)、当該スコープには当該アクティビティのみが所属するため、スコープ監視部130は、当該スコープの状態を直ちに“異常終了”にする(ステップ53)。
In
以上、ワークフローが正常に実行される場合と、ワークフロー実行中にスコープ内のアクティビティが異常終了する場合の図1に示す各プログラムモジュールの動作について説明した。 The operation of each program module shown in FIG. 1 when the workflow is executed normally and when the activity in the scope ends abnormally during the workflow execution has been described above.
上記実施例によれば、スコープ内でエラーが発生した場合、同一スコープに所属するアクティビティのみを直ちに終了し、当該スコープの失敗ハンドラで定義した処理を実行することができる。 According to the above embodiment, when an error occurs in a scope, only the activities belonging to the same scope can be immediately terminated, and the process defined by the failure handler of the scope can be executed.
また上記実施例によれば、スコープの終了状態が“完了”であるか“異常終了”のいずれであるか記憶されるため、APIなどにより終了したスコープの補償ハンドラの実行が指示された場合、そのスコープが“完了”であれば補償ハンドラを実行し、“異常終了”であれば実行しないなどの制御を行うことができる。 Further, according to the above embodiment, since the end state of the scope is “completed” or “abnormal end”, it is stored. If the scope is “complete”, the compensation handler is executed, and if it is “abnormal end”, control such as not being executed can be performed.
さらに上記実施例によれば、スコープ情報テーブルからスコープの範囲を知ることができるため、BPEL4WSの仕様で定めるように、使用されるワークフロー変数をスコープ内でのみ有効にすることができる。 Furthermore, according to the above embodiment, since the scope range can be known from the scope information table, the workflow variable to be used can be validated only within the scope as defined by the specification of BPEL4WS.
110…ワークフローエンジン、120…状態監視部、130…スコープ監視部、140…ビジネスプロセス定義、150…アクティビティ、170…スコープ、180…アクティビティ情報テーブル、190…スコープ情報テーブル。
DESCRIPTION OF
Claims (10)
前記アクティビティの各々について状態情報と前記アクティビティが所属するスコープの識別子を記憶するアクティビティ情報テーブルと、
前記スコープの各々について状態情報を記憶するスコープ情報テーブルと、
前記ビジネスプロセス定義に従って前記アクティビティを実行し、前記アクティビティの実行状態を変更するワークフローエンジンと、
前記アクティビティの状態を監視する状態監視部と、
前記アクティビティの状態が変化したとき起動され、当該アクティビティが完了したとき当該アクティビティが所属する同一スコープに所属する他のアクティビティがすべて完了した場合に当該アクティビティが所属する前記スコープの状態を完了に設定する手段を有するスコープ監視部とを有することを特徴とするワークフロー管理システム。 A storage device for storing a business process definition in which an execution procedure of a plurality of activities and an execution procedure of a scope for grouping the activities are defined;
An activity information table storing status information for each of the activities and an identifier of a scope to which the activity belongs;
A scope information table for storing state information for each of the scopes;
A workflow engine that executes the activity according to the business process definition and changes an execution state of the activity;
A state monitoring unit for monitoring the state of the activity;
Fired when the activity status changes, and when the activity is completed, sets all the other activities belonging to the same scope to which the activity belongs to the completion status of the scope to which the activity belongs A workflow management system comprising a scope monitoring unit having means.
前記スコープ監視部は、前記アクティビティの状態が変化したとき起動され、当該アクティビティが完了したとき当該アクティビティが所属する同一スコープに所属する他のアクティビティまたはスコープがすべて完了した場合に当該アクティビティが所属する前記スコープの状態を完了に設定する手段と、当該アクティビティが所属する前記スコープが所属する親スコープに所属するスコープまたは他のアクティビティがすべて完了した場合に当該親スコープの状態を完了に設定する手段とを有することを特徴とする請求項1記載のワークフロー管理システム。 The scope information table stores state information and an identifier of a parent scope to which each scope belongs.
The scope monitoring unit is activated when the state of the activity changes, and when the activity is completed, the other activity or scope belonging to the same scope to which the activity belongs is completed when the activity belongs to the activity Means for setting the status of the scope to complete, and means for setting the status of the parent scope to complete when the scope belonging to the parent scope to which the scope to which the activity belongs belongs or all other activities are completed. The workflow management system according to claim 1, further comprising:
複数のアクティビティの実行手順と前記アクティビティをグループ化するスコープの実行手順が定義されるビジネスプロセス定義に従って前記アクティビティを実行し、前記アクティビティの実行状態を変更するワークフローエンジン機能、
前記アクティビティの状態を監視する状態監視機能、および
前記アクティビティの状態が変化したとき起動され、当該アクティビティが完了したとき、前記アクティビティの各々について状態情報と前記アクティビティが所属するスコープの識別子を記憶するアクティビティ情報テーブルと、前記スコープの各々について状態情報を記憶するスコープ情報テーブルとを参照し、当該アクティビティが所属する同一スコープに所属する他のアクティビティがすべて完了した場合に当該アクティビティが所属する前記スコープの状態を完了に設定するスコープ監視機能
を実現させるためのワークフロープログラム。 On the computer,
A workflow engine function for executing the activity according to a business process definition in which an execution procedure of a plurality of activities and an execution procedure of a scope for grouping the activities are defined, and changing an execution state of the activity;
A state monitoring function that monitors the state of the activity, and an activity that is activated when the state of the activity changes, and stores state information and an identifier of a scope to which the activity belongs for each of the activities when the activity is completed Referring to the information table and the scope information table that stores state information for each of the scopes, when all other activities belonging to the same scope to which the activity belongs are completed, the status of the scope to which the activity belongs A workflow program for realizing the scope monitoring function that sets the status to complete.
前記スコープ監視機能として、前記コンピュータに、前記アクティビティの状態が変化したとき起動され、当該アクティビティが完了したとき当該アクティビティが所属する同一スコープに所属する他のアクティビティまたはスコープがすべて完了した場合に当該アクティビティが所属する前記スコープの状態を完了に設定する機能、および当該アクティビティが所属する前記スコープが所属する親スコープに所属するスコープまたは他のアクティビティがすべて完了した場合に当該親スコープの状態を完了に設定する機能を実現させるための請求項6記載のワークフロープログラム。 The scope information table stores state information and an identifier of a parent scope to which each scope belongs.
As the scope monitoring function, the activity is started when all other activities or scopes belonging to the same scope to which the activity belongs are completed when the activity is completed on the computer and the activity is completed. A function that sets the status of the scope to which the activity belongs, and the status of the parent scope to completion when all the scopes or other activities that belong to the parent scope to which the activity belongs belong to the parent scope. The workflow program according to claim 6 for realizing the function to perform.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003388652A JP2005149332A (en) | 2003-11-19 | 2003-11-19 | Workflow management system and program therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003388652A JP2005149332A (en) | 2003-11-19 | 2003-11-19 | Workflow management system and program therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005149332A true JP2005149332A (en) | 2005-06-09 |
Family
ID=34695617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003388652A Pending JP2005149332A (en) | 2003-11-19 | 2003-11-19 | Workflow management system and program therefor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005149332A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018122A (en) * | 2005-07-06 | 2007-01-25 | Hitachi Software Eng Co Ltd | Web service customization system |
CN100383731C (en) * | 2005-08-25 | 2008-04-23 | 复旦大学 | Real time dynamic synthesis method of web services |
JP2009087093A (en) * | 2007-09-28 | 2009-04-23 | Bank Of Tokyo-Mitsubishi Ufj Ltd | Application development support device and program |
JP2014154120A (en) * | 2013-02-14 | 2014-08-25 | Nci Systems Integration Inc | Workflow system |
-
2003
- 2003-11-19 JP JP2003388652A patent/JP2005149332A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018122A (en) * | 2005-07-06 | 2007-01-25 | Hitachi Software Eng Co Ltd | Web service customization system |
JP4702835B2 (en) * | 2005-07-06 | 2011-06-15 | 株式会社日立ソリューションズ | Web service customization system |
CN100383731C (en) * | 2005-08-25 | 2008-04-23 | 复旦大学 | Real time dynamic synthesis method of web services |
JP2009087093A (en) * | 2007-09-28 | 2009-04-23 | Bank Of Tokyo-Mitsubishi Ufj Ltd | Application development support device and program |
JP2014154120A (en) * | 2013-02-14 | 2014-08-25 | Nci Systems Integration Inc | Workflow system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210117895A1 (en) | Systems and Methods for Cross-Platform Scheduling and Workload Automation | |
US7779298B2 (en) | Distributed job manager recovery | |
US10146599B2 (en) | System and method for a generic actor system container application | |
JP4980792B2 (en) | Virtual machine performance monitoring method and apparatus using the method | |
CN113228020B (en) | Scheduling robots for robot process automation | |
US9942353B2 (en) | Management of connections within a messaging environment based on the statistical analysis of server responsiveness | |
US20070118414A1 (en) | Business process system management method | |
CN111506412A (en) | Distributed asynchronous task construction and scheduling system and method based on Airflow | |
US10592296B2 (en) | Maintaining state information in a multi-component, event-driven state machine | |
JPH11306244A (en) | Work management system | |
US20090204949A1 (en) | System, method and program product for dynamically adjusting trace buffer capacity based on execution history | |
CN111258565B (en) | Method, system, server and storage medium for generating applet | |
US11507479B2 (en) | High availability for a relational database management system as a service in a cloud platform | |
US6226694B1 (en) | Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring | |
Ganga et al. | A fault tolerent approach in scientific workflow systems based on cloud computing | |
CN108845954A (en) | Method for testing pressure, system and storage medium | |
CN111858007A (en) | Task scheduling method and device based on message middleware | |
CN112787999B (en) | Cross-chain calling method, device, system and computer readable storage medium | |
EP2492805A1 (en) | Computer network, computer system, computer-implemented method, and computer program product for controlling application landscapes | |
JP2005149332A (en) | Workflow management system and program therefor | |
JP2009169793A (en) | Service management method, system, and program | |
JP6540287B2 (en) | INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM | |
US8595349B1 (en) | Method and apparatus for passive process monitoring | |
JP2007018091A (en) | Information processor, information processing system, application development support method and program | |
JP4911324B2 (en) | Business construction infrastructure system and business system construction method |