JP2001005680A - ワークフロー管理システム、コードジェネレータおよびワークフロー処理のプロセス変更方法 - Google Patents
ワークフロー管理システム、コードジェネレータおよびワークフロー処理のプロセス変更方法Info
- Publication number
- JP2001005680A JP2001005680A JP17952099A JP17952099A JP2001005680A JP 2001005680 A JP2001005680 A JP 2001005680A JP 17952099 A JP17952099 A JP 17952099A JP 17952099 A JP17952099 A JP 17952099A JP 2001005680 A JP2001005680 A JP 2001005680A
- Authority
- JP
- Japan
- Prior art keywords
- code
- workflow
- definition
- workflow engine
- definition information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 205
- 230000008569 process Effects 0.000 title claims abstract description 189
- 238000005111 flow chemistry technique Methods 0.000 title abstract 4
- 238000012545 processing Methods 0.000 claims abstract description 113
- 230000006870 function Effects 0.000 claims description 110
- 238000006243 chemical reaction Methods 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 16
- 238000002715 modification method Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 78
- 238000013515 script Methods 0.000 description 47
- 230000008859 change Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 230000008520 organization Effects 0.000 description 9
- 239000003999 initiator Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
る。 【解決手段】 プロセス定義データを入力することによ
り、一連かつ複数のアクティビティからなるワークフロ
ー処理のプロセスは定義される。このワークフロー管理
システム11では、起票者24によって入力されたプロ
セス定義情報D23は、識別手段F13によって、各ア
クティビティにおける処理内容に関するオブジェクト定
義情報D23aおよびアクティビティの順序に関するフ
ロー定義情報D23bに分離される。オブジェクト定義
情報およびフロー定義情報からそれぞれオブジェクト定
義コードD25aおよびフロー定義コードD25bを生
成する。オブジェクト定義コードおよびフロー定義コー
ドは独立したデータであるため、これら定義コードに基
づいて動作するワークフロー処理についてのプロセスの
変更は、個々の定義コードの修正により行うことができ
る。
Description
理システム、ワークフロー管理システムに用いるコード
ジェネレータおよびワークフロー処理のプロセスの変更
方法に関する。
数の端末計算機が接続されたネットワークシステムで、
一連かつ複数の工程からなる情報処理すなわちワークフ
ロー処理を効率よく行うために利用されている。ワーク
フロー処理に係るデータは、パッケージとして各計算機
の間を定められた順序で移動し、および、各計算機で処
理される。これらの各計算機を操作して各処理者がデー
タを参照したり書き換えたりする。このような、ワーク
フロー管理システムの一例が文献I(日経コンピュー
タ」1997.9.1号 第204〜217頁)に開示
されている。
ロー管理システムを各機能毎にブロックで分割して概略
的に示す図である。図9では、データを角の丸い長方形
で示し、機能手段(アプリケーション等)を角張った長
方形で示してある。図9に示すように、このワークフロ
ー管理システム201は、ワークフローエンジンA20
3と、プロセス定義ツールA205と、ワークリストハ
ンドラA207と、モニタリングツールA209とを有
する。広く用いられているクライアント/サーバシステ
ムでは、ワークフロー処理を制御するワークフローエン
ジンA203がワークフローサーバ204で動作してお
り、各処理者はクライアント計算機を操作して担当の工
程(アクティビティ)を実行する。
処理内容と、アクティビティの順序とを定義するための
機能モジュールである。プロセス定義ツールA205
は、新規にワークフロー処理を開始するとき、プロセス
定義データD211を生成する。プロセス定義データD
211は、各アクティビティにおける処理内容と、アク
ティビティの順序とに関するデータを一体のデータとし
て含む。また、プロセス定義データD211は、ワーク
フロー処理の終了条件等の制御条件に関するデータを含
むことがある。一般的なプロセス定義ツールA205で
はグラフィカルユーザインターフェース(GUI)環境
が整えられている。そのため、処理者は、マウス操作に
よってポインタを用いることによりプロセス(アクティ
ビティの順序および各アクティビティでの処理内容)を
容易に定義できる。
フロー処理を制御する機能モジュールである。具体的に
言うと、ワークフローエンジンA203は、プロセス定
義データD211を解釈してこの解釈に基づいて処理内
容を示すワークアイテムをワークリストD213に追加
する。なお、ワークリストD213は、各処理者が処理
すべきワークアイテムを格納するデータ領域であり、個
々の処理者毎に設けられる。
7によって示されるワークアイテムにしたがって、クラ
イアントアプリケーションA215等を用いてアクティ
ビティを実行する。また、人間による処理を必要としな
いアクティビティについては、ワークフローエンジンA
203によって起動された起動アプリケーションA21
7が、アクティビティを実行する。図9に示すように、
これらクライアントアプリケーションA215或いは起
動アプリケーションA217はアプリケーションデータ
D219を利用することがある。
リストD213を参照して処理すべきワークアイテムを
各処理者に示すことにより、各処理者に処理内容に関す
る指示を与える。その処理者が作業を終了すると、ワー
クリストハンドラA207はワークリストD213から
ワークアイテムを削除する。ワークフローエンジンA2
03は、ワークアイテムの削除によってアクティビティ
の終了を認識して、次の処理者のワークリストD213
にワークアイテムを付加する。
ローエンジンA203を監視することによってワークフ
ロー処理の進行具合を確認する機能モジュールである。
モニタリングツールA209によって、監督者或いは各
処理者は必要に応じてワークフロー処理の途中経過や終
了結果を参照することができる。
のワークフロー処理を並行して行う場合、各ワークフロ
ー処理を受け持つワークフローエンジンを互いに識別す
るのに用いられる。また、ワークフロー関連データD2
23は、ワークフロー処理に関連する様々な情報を含
む。ワークフロー関連データD223は、例えば購入物
品の価格データ等であり、価格帯によって担当すべき処
理者が変化する場合等に用いられる。
A203がプロセス定義データD211に基づいて各ア
クティビティにおける処理を制御することにより、ワー
クフロー処理は行われる。一般的に言うと、ワークフロ
ー処理は、繰り返し行われる定型業務およびアドホック
な非定型業務の二つの業務に分類される。定型業務には
出張費伝票、備品購入伝票または予算申請などがあり、
非定型業務には資料回覧、技術文書作成またはソフト開
発などがある。業務の効率を向上させるためには、これ
ら多種多様な業務に適用できるワークフロー管理システ
ムが必要である。
処理では、アクティビティの順序および各アクティビテ
ィにおける処理内容が殆ど変化しないため、一つのプロ
セス定義データを用いることが多い。一方、非定型業務
のワークフロー処理では、アクティビティの順序および
各アクティビティにおける処理内容が一定ではないの
で、ワークフロー処理を行う毎にプロセス定義データを
生成することが多い。
ワークフロー管理システムでは、定型業務或いは非定型
業務のいずれにおいても、各アクティビティの処理内容
或いは処理順序を変更する場合にはプロセス定義データ
の全体を修正する必要があった。例えば、ルーチンワー
クである備品購入伝票において決裁者を変更する場合に
は、今まで用いていたプロセス定義データを修正しなけ
ればならない。また、アドホックに発生する資料回覧に
おいて資料の回覧先を変更したい場合には、資料回覧を
開始する前にプロセス定義データを修正しなければなら
ない。
更を容易に行うため、図9のワークフロー管理システム
201では、ワークフローエンジンA203が組織/役
割データD225を参照する。組織/役割データD22
5とは、課長や部長などの組織内の役職等を示す一般的
宛先名と、処理者の名前等の具体的宛先名とを関連付け
たデータである。この場合、プロセス定義データD21
1に一般的宛先名を定義しておくだけで、ワークフロー
エンジンA203は、組織/役割データD225を参照
することにより一般的宛先名から具体的宛先名を判断で
きる。そのため、決裁ルートに沿う役職にある処理者が
人事異動等によって他の処理者に変更された場合でも、
動的に宛先が認識されるため、決裁ルートの宛先名を変
更する必要が無くなる。
て変更が不必要になる場合はあるが、役職で処理順序を
定義しないワークフロー処理では、依然としてアクティ
ビティの処理順序をプロセス定義データから修正する必
要があった。
いずれのワークフロー処理においても、一つのアクティ
ビティにおける処理内容を変更する場合、或いは、アク
ティビティの処理順序を変更する場合には、プロセス定
義データを修正し或いはプロセス定義データを新たに作
成する。このように、従来のワークフロー処理では、プ
ロセスに関する変更はプロセス定義データの再定義を伴
うため非能率的であり、容易に行うことができなかった
(第1の問題点)。
始するときには、プロセス定義データを新規に作成す
る。このとき、ワークフロー処理を適用する業務の種類
が多岐に渡る場合には、必然的にプロセス定義データも
様々な内容を有することとなる。ワークフローエンジン
は、それらのプロセス定義データを解釈してかつ実行で
きなければならないから、多種のワークフロー処理を実
行するための多くの基本的な機能を予め具備している必
要がある。したがって、ワークフローエンジンの構成が
複雑となり、ワークフローエンジンとして機能するワー
クフローエンジンコードの占有メモリが必然的に大きく
なる(第2の問題点)。
でき、好ましくは第2の問題点も解決できるワークフロ
ー管理システムが望まれていた。
係る発明のワークフロー管理システムは、複数の計算機
を有するネットワークシステムで、一連かつ複数の工程
からなるワークフロー処理を、各工程における処理内容
およびそれら工程の順序に関するプロセス定義情報に基
づいて、各工程ごとに行うワークフロー管理システムに
おいて、前述のプロセス定義情報から、各工程における
処理内容に関するオブジェクト定義情報と、工程の順序
に関するフロー定義情報とを識別する識別手段と、前述
のワークフロー処理に用いる基本的な機能を提供する複
数のプログラムを格納してあるプログラム格納部と、前
述のオブジェクト定義情報を解釈してこの解釈に応じた
プログラムをプログラム格納部から読み出し、かつ、こ
の読み出されたプログラムに基づいて各工程における処
理内容に関するコードであるオブジェクト定義コードを
生成するオブジェクト定義コード生成手段と、前述のフ
ロー定義情報を解釈してこの解釈に応じたプログラムを
プログラム格納部から読み出し、かつ、この読み出され
た各工程の順序に関するコードであるフロー定義コード
を生成するフロー定義コード生成手段と、前述のフロー
定義コードおよび前述のオブジェクト定義コードを解釈
することにより、ワークフロー処理を制御するワークフ
ローエンジンとを具える。
れば、ワークフロー処理のプロセスを定義をする際、起
票者がワークフロー処理を開始させるためにプロセスを
定義する。起票者が入力したプロセス定義情報は、識別
手段によってフロー定義に関する部分およびオブジェク
ト定義に関する部分に分離される。この分離の後、前者
の部分はフロー定義コード生成手段によってコード化さ
れてフロー定義コードとして生成され、および、後者の
部分はオブジェクト定義コード生成手段によってコード
化されてオブジェクト定義コードとして生成される。よ
って、ワークフロー処理を行うとき、プロセス(各アク
ティビティにおける処理内容およびアクティビティの順
序)を変更する場合であっても、プロセス定義データそ
のものを修正する必要がない。言い換えれば、各アクテ
ィビティにおける処理内容のみを変更したい場合にはオ
ブジェクト定義コードのみを修正すれば良く、アクティ
ビティの順序(アクティビティを行う処理者の変更)を
変更したい場合にはフロー定義コードのみを修正すれば
よい。
には、前述のオブジェクト定義情報および前述のフロー
定義情報を解釈してこの解釈に応じたプログラムをプロ
グラム格納部から読み出すことにより、この読み出され
たプログラムに基づいてワークフローエンジンコードを
生成するワークフローエンジンコード生成手段を更に具
え、および、このワークフローエンジンコードによって
前述のワークフローエンジンコードを機能させるのが良
い。
ェクト定義情報に定義された機能を実現するための必要
最低限の構成のみを有するワークフローエンジンコード
を生成できる。よって、ワークフローエンジンコードの
占有メモリを小さくできる。なお、ワークフローエンジ
ンコードとは、CPUで実行されることにより仮想的に
CPUにワークフローエンジンを存在させかつ機能させ
るプログラムコードを意味する。
は、前述のオブジェクト定義コードおよび前述のフロー
定義コードを高水準言語のコードの状態で保存する定義
コード保存手段を更に具えるのが良い。それにより、フ
ロー定義或いはオブジェクト定義についての修正をする
とき、修正する者は、各定義コードを理解しながらコー
ドを追加したり削除したり或いは修正したりすることが
できる。
は、前述のワークフローエンジンは上位階層から複数の
下位階層に機能を継承する階層構造を有し、かつ、個々
の下位階層のワークフローエンジンは相互にアクセスす
る通信機能を有するのがよい。それにより、下位階層の
ワークフローエンジンをネットワークシステム内のホス
ト計算機に分散できる。このように、ワークフローエン
ジンに階層構造を与え、個々の下位階層のワークフロー
エンジンに通信機能を設けると、下位下層のワークフロ
ーエンジンは、ネットワークシステム内の任意のホスト
計算機に分散して存在できる。よって、負荷分散による
ネットワークシステムの効率および安定性が実現でき
る。
ーエンジンを分散させてなるワークフロー管理システム
では、前述のフロー定義コードに一般的な宛先名を予め
定義する場合、一般的宛先名から具体的宛先名を生成す
る宛名変換手段を更に具えていて、この宛名変換手段
が、ワークフローエンジンと相互にアクセスする通信機
能を有するのが望ましい。
はワークフローエンジンの存在するホスト計算機と同一
のホスト計算機に設ける必要があった。しかしながら、
宛名変換手段に通信機能を設けたため、上述のように下
位階層のワークフローエンジンを分散させた場合であっ
ても、宛名変換手段は下位階層のワークフローエンジン
と相互にアクセスできる。よって、宛名変換手段を下位
階層のワークフローエンジンと別のホスト計算機に設け
ることができる。
レータは、複数の計算機を有するネットワークシステム
で、一連かつ複数の工程からなるワークフロー処理を行
う際、各工程における処理内容およびそれら工程の順序
に関するプロセス定義情報から、ワークフローエンジン
の解釈できるコードを生成するコードジェネレータであ
って、前述のプロセス定義情報から、各工程における処
理内容に関するオブジェクト定義情報と、工程の順序に
関するフロー定義情報とを識別する識別手段と、前述の
オブジェクト定義情報からワークフローエンジンの解釈
できるオブジェクト定義コードを生成するオブジェクト
定義コード生成手段と、前述のフロー定義情報からワー
クフローエンジンの解釈できるフロー定義コードを生成
するフロー定義コード生成手段とを具える。
識別手段が、プロセス定義情報をオブジェクト定義情報
およびフロー定義情報に分離させたのち、オブジェクト
定義情報からオブジェクト定義コードを生成しかつフロ
ー定義情報からフロー定義コードを生成する。そのた
め、各工程における処理内容のみを変更したい場合には
オブジェクト定義コードを修正し、また、工程の処理順
序のみを変更したい場合にはフロー定義コードを修正す
ればよい。よって、プロセスを能率的にかつ容易に変更
することができる。なお、オブジェクト定義コードおよ
びフロー定義コードは、例えば、高水準言語としてのJ
ava言語或いはC++のソースプログラムコードすなわ
ち、オブジェクト定義ソースプログラムコードおよびフ
ロー定義ソースプログラムコードとして生成される。こ
のとき、これらオブジェクト定義コードおよびフロー定
義コードは、コンパイルされると、ワークフローエンジ
ンが解釈できる実行型プログラムコードとなる。
プロセスの変更方法の発明では、一連かつ複数の工程か
らなるワークフロー処理を行う前に、各工程の処理内容
および工程の処理順序に関するプロセス定義情報から、
各工程の処理内容に関するオブジェクト定義情報と、工
程の処理順序に関するフロー定義情報とを識別し、オブ
ジェクト定義情報からワークフローエンジンの解釈でき
るオブジェクト定義コードを生成し、かつ、フロー定義
情報からワークフローエンジンの解釈できるフロー定義
コードを生成するワークフロー処理について、当該ワー
クフロー処理のプロセスを変更するに当たり、各工程の
処理内容のみを変更する場合にはオブジェクト定義コー
ドのみを修正し、工程の処理順序のみを変更する場合に
はフロー定義コードのみを修正する。
における処理内容のみを変更したい場合若しくは工程の
処理順序のみを変更したい場合のいずれにも、互いに独
立に存在するオブジェクト定義コード或いはフロー定義
コードの一方を修正することにより対応できる。よっ
て、プロセスを能率的にかつ容易に変更できる。
ワークフロー管理システムの実施の形態につき説明す
る。なお、この説明に用いる各ブロック図は、これら発
明を理解できる程度に各構成成分をブロックで表して概
略的な機能上の相互関係を示しているに過ぎない。ま
た、各図において同様な構成成分については、同一の番
号を付して示し、その重複する説明を省略することがあ
る。また、各図で角張った長方形は機能単位を示し、角
の丸い長方形はデータを示す。
ステムでは、ワークフロー処理のプロセスを定義したの
ち当該ワークフロー処理を実行する必要がある。そのた
め、第1の実施の形態では、ワークフロー管理システム
のプロセスを定義する形態につき説明し、次にワークフ
ロー管理システムのワークフロー処理を実行する形態に
つき説明し、続いてワークフロー処理のプロセスを変更
する方法につき説明する。
管理システムについて、主要な機能単位の相互関係を概
略的に示すブロック図である。ただし、図1中の各機能
単位は、ハードウェア資源としての中央処理装置がその
機能単位に対応するプログラムを実行することにより、
仮想的に中央処理装置に存在する。以下では、中央処理
装置に仮想的に実現される機能単位を角張った長方形、
記憶装置のデータ領域に形成されるデータ情報を丸みを
帯びた長方形で示してある。また、図2は、図1の各機
能単位を1台のホスト計算機で動作させた場合を例とし
て、各機能単位によるハードウェア資源の利用形態を概
略的に示す図である。
形態のワークフロー管理システムのプロセスを定義する
形態につき説明する。ただし、実施の形態のワークフロ
ー管理システムでは特にワークフローエンジンコード生
成手段が設けてある。
は、複数のホスト計算機を有するネットワークシステム
で、一連かつ複数のアクティビティからなるワークフロ
ー処理を各アクティビティ毎に行うことにより、ワーク
フロー処理を実行する。
ー管理システム11は、識別手段F13と、オブジェク
ト定義コード生成手段F15と、フロー定義コード生成
手段F17と、ワークフローエンジンコード生成手段F
19と、プログラム格納部21とを有する。なお、ここ
ではこれら各機能単位F13、F15、F17およびF
19は、図2のホスト計算機h1の中央処理装置(CP
U)c1で仮想的な機能手段として動作するように構成
されている。
ィスクや光ディスク等の記憶装置m1と、CPUc1
と、マンマシンインターフェース用の入力装置i1とを
有する。CPUc1には、これら記憶装置m1、入力装
置i1、上述の各機能単位F13、F15、F17およ
びF19その他の動作のタイミングや始動或いは停止を
含む所要の制御を行うための制御部を図示せずも含んで
いる。なお、ホスト計算機h1の記憶装置m1には、識
別手段F13の機能を実現させる識別プログラムD13
と、オブジェクト定義コード生成手段F15の機能を実
現させるオブジェクト定義コード生成プログラムD15
と、フロー定義コード生成手段F17の機能を実現させ
るフロー定義コード生成プログラムD17と、ワークフ
ローエンジンコード生成手段F19の機能を実現させる
ワークフローエンジンコード生成プログラムD19とが
格納されている。
するに当たり、起票者24は、ホスト計算機h1の入力
装置i1を操作して記憶装置m1にプロセス定義情報D
23を格納する。このとき、起票者24は、ホスト計算
機h1の入力装置i1から例えばキーボードからのスク
リプト入力或いはポインタデバイスからのGUI操作に
よって、プロセス定義情報D23を入力する。これによ
り、プロセス定義情報D23がホスト計算機h1の記憶
装置m1に格納される。ただし、プロセス定義情報D2
3は、各アクティビティの処理内容に関するデータすな
わちオブジェクト定義情報D23aと、アクティビティ
の順序に関するデータすなわちフロー定義情報D23b
とを含む。
識別手段F13は、記憶装置m1に格納されたプロセス
定義情報D23を読み出してきて、このプロセス定義情
報D23からオブジェクト定義情報D23aおよびフロ
ー定義情報D23bを互いに識別する。しかる後、識別
されたオブジェクト定義情報D23aおよびフロー定義
情報D23bを記憶装置m1に格納する。なお、識別手
段F13は、記憶装置m1に格納されている識別プログ
ラムD13をCPUc1が読み出しかつ実行することに
より、仮想的な機能単位としてCPUc1で動作する。
理に用いる基本的な機能を提供する複数の基本機能提供
プログラムD22を格納している。なお、プログラム格
納部21は、例えばホスト計算機h1の記憶装置m1内
のデータ領域に形成される。
2は、ワークフロー処理に用いる基本的な機能を各機能
毎に区分された複数のプログラムからなる。このよう
に、基本的な機能が各機能毎に区分されていると、不必
要な機能を読み出すことなく必要な機能だけを読み出す
ことができる。したがって、基本機能提供プログラムD
22から生成されるオブジェクト定義コードD25a、
フロー定義コードD25bおよびワークフローエンジン
コードD27の占有メモリを小さくできる。
は、オブジェクト定義情報D23aを解釈してこの解釈
に応じた基本機能提供プログラムD22をプログラム格
納部21から読み出すことにより、読み出された基本機
能提供プログラムD22に基づいてオブジェクト定義コ
ードD25aを生成する。このとき、具体的にはオブジ
ェクト定義コード生成手段F15はホスト計算機h1内
で次のように機能する。
が記憶装置m1に格納されているオブジェクト定義コー
ド生成プログラムD15を読み出してかつ実行する。そ
れにより、オブジェクト定義コード生成手段F15が起
動する。オブジェクト定義コード生成手段F15は、記
憶装置m1からオブジェクト定義情報D23aを読み出
すと共に、オブジェクト定義情報D23aに基づいてオ
ブジェクト定義コードD25aの生成に必要な基本機能
提供プログラムD22かどうかを判断して当該基本機能
提供プログラムD22を読み出す。しかるのち、オブジ
ェクト定義コード生成手段F15は、読み出された基本
機能提供プログラムD22およびオブジェクト定義情報
D23aを例えば組み合わせてオブジェクト定義コード
D25aを生成する。例えば、このときオブジェクト定
義コード生成手段F15は、複数の基本機能提供プログ
ラムD22を読み出してオブジェクト定義コードD25
aを生成しても良い。なお、生成されたオブジェクト定
義コードD25aは、少なくとも各アクティビティにお
ける共通の処理内容を定義した基本ソースプログラムを
含むソースプログラムとして記憶装置m1に格納され
る。
ー定義情報D23bを解釈してこの解釈に応じた基本機
能提供プログラムD22をプログラム格納手段21から
読み出すことにより、読み出された基本機能提供プログ
ラムD22に基づいてフロー定義コードD25bを生成
する。このとき、具体的にはフロー定義コード生成手段
F17はホスト計算機h1内で次のように機能する。
が記憶装置m1に格納されているフロー定義コード生成
プログラムD17を読み出してかつ実行する。それによ
り、フロー定義コード生成手段F17が起動する。フロ
ー定義コード生成手段F17は、記憶装置m1からフロ
ー定義情報D23bを読み出すと共に、フロー定義情報
D23bに基づいてフロー定義コードD25bの生成に
必要な基本機能提供プログラムD22かどうかを判断し
て当該基本機能提供プログラムD22を読み出す。しか
るのち、フロー定義コード生成手段F17は、読み出さ
れた基本機能提供プログラムD22およびフロー定義情
報D23bを例えば組み合わせてフロー定義コードD2
5bを生成する。例えば、このときフロー定義コード生
成手段F17は、複数の基本機能提供プログラムD22
を読み出してフロー定義コードD25bを生成しても良
い。なお、生成されたフロー定義コードD25bは、少
なくともアクティビティの順序を定義したソースプログ
ラムを含むソースプログラムとして記憶装置m1に格納
される。
9は、識別されたオブジェクト定義情報D23aおよび
フロー定義情報D23bを解釈してこの解釈に応じた基
本機能提供プログラムD22をプログラム格納部21か
ら読み出すことにより、読み出された基本機能提供プロ
グラムD22に基づいてワークフローエンジンコードD
27を生成する。このとき、具体的にはワークフローエ
ンジンコード生成手段F19はホスト計算機h1内で次
のように機能する。
が記憶装置m1に格納されているワークフローエンジン
コード生成プログラムD19を読み出してかつ実行する
ことにより、ワークフローエンジンコード生成手段F1
9が起動する。起動したワークフローエンジンコード生
成手段F19は、記憶装置m1からオブジェクト定義情
報D23aおよびフロー定義情報D23bを読み出すと
共に、これらの定義情報D23aおよびD23bに基づ
いてワークフローエンジンコードD27の生成に必要な
基本機能提供プログラムD22かどうかを判断して当該
基本機能提供プログラムD22を読み出す。しかるの
ち、ワークフローエンジンコード生成手段F19は、読
み出された基本機能提供プログラムD22からワークフ
ローエンジンコードD27を生成する。例えば、このと
きワークフローエンジンコード生成手段F19は、複数
の基本機能提供プログラムD22を組み合わせてワーク
フローエンジンコードD27を生成する。なお、生成さ
れたワークフローエンジンコードD27は、オブジェク
ト定義コードD15およびフロー定義コードD17を解
釈(ただし、Javaプログラミングにおける「参照」
の意味を含む。)してかつこの解釈に基づいてワークフ
ロー処理を制御するためのソースプログラムとして記憶
装置m1に格納される。
は、例えばホスト計算機h1のCPUc1が記憶装置m
1に格納されているワークフローエンジンコードD27
を読み出してかつ実行することにより、一つの機能単位
としてのワークフローエンジンが起動してワークフロー
処理の制御動作を行う。
コード生成手段F15およびフロー定義コード生成手段
F17は、コードジェネレータF28という一つの機能
単位として認識できる。コードジェネレータF28は、
複数のホスト計算機を有するネットワークシステムで、
一連かつ複数のアクティビティからなるワークフロー処
理を行う際、各アクティビティにおける処理内容および
それらアクティビティの順序に関するプロセス定義情報
から、ワークフローエンジンの解釈できるプロセスに関
するコードを生成する。特に、このコードジェネレータ
F28は、プロセス定義情報D23から、オブジェクト
定義コードD25aおよびフロー定義コードD25bを
区別してそれぞれ生成する。そのため、一般的なワーク
フロー管理システムについて、そのワークフローエンジ
ンがオブジェクト定義コードD25aおよびフロー定義
コードD25bを解釈できる構成であれば、このコード
ジェネレータF28の部分のみを適用できる。
する場合を例として、以上説明した各機能単位につき更
に詳細に説明する。
を、オブジェクト指向プログラミング(OOP)を用い
て構築する。周知の如く、Java言語やC++言語等
は、OOPに適している。OOPを用いると、上述した
ワークフローエンジンについて、基本的な機能のみを有
する上位階層(スーパークラス)から具体的かつ個別な
機能を有する下位階層(サブクラス)までを含む、階層
構造を有するワークフローエンジンとして定義できる。
このとき、オブジェクト定義コードおよびフロー定義コ
ードは、ワークフローエンジンに参照されるオブジェク
トとなる。
の具体的な機能構成を概略的に示した図であって、図1
に示すワークフローエンジンに代えてクラス構造すなわ
ち階層構造を有するワークフローエンジンを用いる場合
のワークフロー管理システムについて、その主要な機能
単位の相互関係を概略的に示すブロック図である。な
お、図3の各機能単位は、ハードウェア資源としてのC
PUがその機能単位に対応するプログラムを実行するこ
とにより、仮想的にCPUに存在する機能単位である。
ただし、便宜上、図3ではワークフローエンジンサブク
ラスF27aおよびF27bは、それぞれホスト計算機
h2およびh3の各CPUで動作する仮想的な機能単位
として示してある。
の各機能単位を動作させるネットワークシステムの一例
を示す図である。図4には3つのホスト計算機h1、h
2およびh3が接続されたネットワークシステムが示さ
れている。図4に示すように、各ホスト計算機h1、h
2およびh3は、CPUc1、c2およびc3と、ハー
ドディスクや光ディスク等の記憶装置m1、m2および
m3と、マンマシンインターフェース用の入力装置i
1、i2およびi3とを具える。また、図示せずも、各
ホスト計算機h1、h2およびh3は一般に表示装置等
を有する。既に説明したようにCPUc1、c2および
c3は、各機能単位を駆動するための制御部を有してい
る。また、CPUc1、c2およびc3には各ハードウ
ェア資源を駆動するドライバソフトや一般的なOSソフ
ト等が動作していても良い。なお、図4は、ワークフロ
ー管理システムの各構成が存在できる計算機の一例を示
しているに過ぎない。
て、2つのアクティビティからなるワークフロー処理を
実施する。すなわち、図3および図4に示すように、こ
のワークフロー処理では、先ず起票者24がホスト計算
機h1を操作してワークフロー処理のプロセスを定義
し、次に処理者31aがホスト計算機h2を操作してア
クティビティを実行し、その後、処理者31bがホスト
計算機h3を操作してアクティビティを実行する。
ンは、上位階層から下位階層までの複数の階層構造を有
する。すなわち、このワークフローエンジンを機能させ
るコードは、上位階層のワークフローエンジンコード
(ワークフローエンジンスーパークラスコード)D27
s、下位階層のワークフローエンジンコード(ワークフ
ローエンジンサブクラスコード)D27aおよびD27
bという2層の階層構造を有している。
ード生成手段F19は、ソースプログラムコードである
ワークフローエンジンサブクラスコードD27aおよび
D27bを生成する。なお、このワークフローエンジン
サブクラスコードD27aは、ワークフローエンジンサ
ブクラスF27aを機能させ、ワークフローエンジンサ
ブクラスコードD27bは、ワークフローエンジンサブ
クラスF27bを機能させる。
エンジンを用いる場合、下位階層のワークフローエンジ
ンコードのみを生成するのが好ましい。
ラスF27aおよびF27bは、ワークフローエンジン
スーパークラス(図中では機能単位ではなくコードとし
て示してある。)D27sから機能的な継承(インヘリ
タンス)を行うことができる。したがって、ワークフロ
ーエンジンスーパークラスコードD27sで基本機能を
定義しておけば、ワークフローエンジンサブクラスF2
7aおよびF27bでは、当該基本機能を継承できる。
そのため、ワークフローエンジンサブクラスコードD2
7aおよびD27bでは、当該基本機能と異なる機能の
みを定義すればよい。
生成手段F19は、OOPに基づいて、基本機能を定義
した上位階層のワークフローエンジンコードD27sか
ら機能的な継承をする下位階層のワークフローエンジン
コードD27aおよびD27bであって、かつ、具体的
な固有の機能を定義した下位階層のワークフローエンジ
ンコードD27aおよびD27bを生成するのが好まし
い。それにより、ワークフローエンジンとして機能させ
る全体のソースプログラムコードの記述を簡略化できる
ため、ワークフローエンジンコードを容易に生成でき
る。それと同時に、ワークフローエンジンコードの記憶
装置内の占有メモリを低減できる。なお、図3に示すよ
うに、ワークフローエンジンスーパークラスコードD2
7s等を含むクラスライブラリD52は、例えばプログ
ラム格納部21に設けておく。
階層構造を有するワークフローエンジンコードについ
て、ワークフローエンジンサブクラスコードD27aお
よびD27bに通信機能を設定して互いにアクセスでき
るようにしておけば、ワークフローエンジンサブクラス
D27aおよびD27bは、それぞれネットワークシス
テム内の任意のホスト計算機に分散して存在できる。よ
って、負荷分散によるネットワークシステムの効率およ
び安定性の向上が実現できる。
ト計算機h1にて生成されたワークフローエンジンサブ
クラスコードD27aおよびD27bは、それぞれホス
ト計算機h2およびh3に分散している。このように、
図4のワークフローエンジンサブクラスコードD27a
はホスト計算機h2で動作して図3に示すワークフロー
エンジンサブクラスF27aとして機能し、図4のワー
クフローエンジンサブクラスコードD27bはホスト計
算機h3で動作して図3に示すワークフローエンジンサ
ブクラスF27bとして機能する。図3および図4に示
すように、処理者31aは、ホスト計算機h2を操作す
ることによりアクティビティを行い。その後、処理者3
1bは、ホスト計算機h3を操作することにより別のア
クティビティを行う。このように、ワークフローエンジ
ンコードを生成するとき、各処理者のホスト計算機毎
に、互いに異なるワークフローエンジンサブクラスを定
義するのが良い。それにより、容易に処理者の特定がで
きるため、ワークフロー処理のプロセスを定義すること
が容易となる。
層のワークフローエンジンコードを生成するため、次の
ようなプロセス定義情報を生成する。すなわち、図3で
は、前述したプロセス定義情報として例えばプロセス定
義スクリプトD43を用いる。このとき、起票者24は
例えばホスト計算機h1の入力装置i1を操作してプロ
セス定義スクリプトD43を入力する。このプロセス定
義スクリプトD43は、オブジェクト定義スクリプトD
43aおよびフロー定義スクリプトD43bを含む。
にOSソフトやエディタソフトを動作させておくと、記
憶装置m1にはデータとしてのプロセス定義スクリプト
D43が格納される。なお、このプロセス定義スクリプ
トD43は、ワークフロー処理のプロセス定義に関する
情報を簡単な内部コードで記述したデータである。ただ
し、ここでいう内部コードとはスクリプト識別手段F4
5が認識できるコードである。
るプロセス定義スクリプトの一例である。図5に示すプ
ロセス定義スクリプトは、オブジェクト定義スクリプト
D43aおよびフロー定義スクリプトD43bを含む。
D43bを相互に識別するため、各スクリプトD43a
およびD43bには異なる識別子が付加されている。図
5に示す例では、識別子engines および識別子flowがフ
ロー定義スクリプトD43bを示し、識別子doがオブジ
ェクト定義スクリプトD43aを示す。
ブクラス名を指定する。ここでは、各処理者31aおよ
び31b毎に異なるワークフローエンジンサブクラスコ
ードが生成されているため、ワークフローエンジンサブ
クラス名によって各アクティビティを実行する処理者3
1aおよび31bを定義している。例えば、図5に示す
ように、処理者31aに対してはワークフローエンジン
サブクラスF27a(loanTeller)を定義し、処理者3
1bに対してはワークフローエンジンサブクラスF27
b(loanDecision)を定義している。
クラス名を順次に指定することにより、アクティビティ
の処理順序を定義する。すなわち図3では、ワークフロ
ーエンジンサブクラスF27a(loanTeller)およびF
27b(loanDecision)の順に、アクティビティが実行
される。
理内容を定義する。すなわち図5に示すように、ワーク
フローエンジンサブクラスF27a(loanTeller)では
メソッドstart という処理内容が定義され、ワークフロ
ーエンジンサブクラスF27b(loanDecision)ではメ
ソッドdecideLoanという処理内容が定義される。
義スクリプトD43は、ホスト計算機h1のCPUc1
で動作するスクリプト識別手段F45に読み込まれる。
このとき、スクリプト識別手段F45は、プロセス定義
スクリプトD43に含まれる識別子に基づいて、プロセ
ス定義スクリプトD43をオブジェクト定義スクリプト
D43aおよびフロー定義スクリプトD43bに分離す
る。その後、スクリプト識別手段F45は、ホスト計算
機h1に分離したオブジェクト定義スクリプトD43a
およびフロー定義スクリプトD43bを記憶装置m1に
格納する。なお、スクリプト識別手段F45は、図4に
示すホスト計算機h1の記憶装置m1に格納されている
スクリプト識別プログラム(図示せず)をCPUc1が
読み出してかつ実行することにより、機能する仮想的な
機能単位である。
言うと、次のような基本機能提供プログラムD22を有
する。すなわち、プログラム格納部21は、例えば、 新規にワークフロー処理を開始させる機能を実現する
基本機能提供プログラムD22と、 実行中のワークフロー処理の進行状況を確認する機能
を実現する基本機能提供プログラムD22と、 ワークフロー処理を中止する機能を実現する基本機能
提供プログラムD22と、 ワークフロー処理における全てのアクティビティの終
了を確認する機能を実現する基本機能提供プログラムD
22と、 中止または終了したワークフロー処理に関する情報を
破棄する機能を実現する基本機能提供プログラムD22
と、 処理者毎に設けられたワークリストにワークアイテム
を付加する機能を実現する基本機能提供プログラムD2
2と、 ワークリストにおけるワークアイテムの削除によって
アクティビティの終了を認識する機能を実現する基本機
能提供プログラムD22とを有する。
造を有するワークフローエンジンのクラスがホスト計算
機h1、h2およびh3に分散して存在しているため、
プログラム格納部21は、ワークフローエンジンサブ
クラスが他のワークフローエンジンと相互に通信するた
めの通信機能を実現する基本機能提供プログラムD22
を有するのが好ましい。また、プログラム格納部21
は、人間による処理を必要としないアクティビティに
ついて、起動アプリケーションによってアクティビティ
を自動処理する基本機能提供プログラムD22を有して
も良い。また、図4に示すように、プログラム格納部2
1は、例えばホスト計算機h1の記憶装置m1のデータ
領域として設けられる。
は、プログラム格納部21が、ワークフローエンジンの
スーパークラス等のワークフロー処理に利用できるクラ
スを定義したクラスライブラリ52を有するのが望まし
い。図3では、クラスライブラリD52はワークフロー
エンジンスーパークラスコードD27s(DWorkflowEng
ine )およびその他のスーパークラスコードD27t
(LoanApp2)を含む。
9は、記憶装置m1のプログラム格納部21から上述の
ような〜の基本機能提供プログラムD22、記憶装
置m1に蓄積されたオブジェクト定義スクリプトD43
aおよびフロー定義スクリプトD43bを読み出したの
ち、読み出された〜の基本機能提供プログラムD2
2を組み合わせて、ワークフローエンジンサブクラスF
27a(LoanTeller)およびF27b(LoanDecision)
として機能するワークフローエンジンサブクラスコード
D27a(LoanTeller)およびD27b(LoanDecisio
n)を生成する。
成手段F19は、ワークフロー処理に関するオブジェク
ト定義スクリプトD43aおよびフロー定義スクリプト
D43bを解釈することにより、当該ワークフロー処理
に必要な基本機能のみを有するワークフローエンジンサ
ブクラスコードD27a(LoanTeller)およびD27b
(LoanDecision)を生成する。すなわち、ワークフロー
エンジンコード生成手段F19は、オブジェクト定義ス
クリプトD43aおよびフロー定義スクリプトD43b
で定義されたワークフロー処理に必要な基本機能のみを
読み込みかつ不必要な機能を読み込まない。例えば、ス
クリプト識別手段F45から読み出されたオブジェクト
定義スクリプトD43aおよびプログラム格納部21か
ら読み出された〜の基本機能の幾つかを組み合わせ
て、ワークフローエンジンサブクラスコードD27a
(LoanTeller)およびD27b(LoanDecision)が生成
される。そのため、このワークフローエンジンサブクラ
スコードD27a(loanTeller)およびD27b(Loan
Decision)は、必要最低限の構成のみを有し、従って占
有メモリが小さくなる。具体的に言うと、例えば、従来
のワークフローエンジンでは任意のステップ数のアクテ
ィビティが処理できなければならないが、実施の形態の
ワークフローエンジンは、2つのアクティビティが処理
できればよいため、余分なクラスやメソッドの定義を省
略したコードとなる。
は、記憶装置m1のプログラム格納部21から上述のよ
うな基本機能提供プログラムD22と、記憶装置m1に
蓄積されたオブジェクト定義スクリプトD43aとを読
み出したのち、読み出された基本機能提供プログラムD
22およびオブジェクト定義スクリプトD43aを組み
合わせてオブジェクト定義コードD47aを生成する。
装置m1のプログラム格納部21から上述のような基本
機能提供プログラムD22と、記憶装置m1に蓄積され
たフロー定義スクリプトD43bとを読み出したのち、
読み出された基本機能提供プログラムD22およびフロ
ー定義スクリプトD43bを組み合わせてフロー定義コ
ードD47bを生成する。
ド生成手段F15およびフロー定義コード生成手段F1
7によってJava言語によるソースプログラムコード
として生成されたオブジェクト定義コードD47aおよ
びフロー定義コードD47bの一部を示した図である。
1〜2行目のコードは、ワークフローエンジンのスーパ
ークラスコードD27s(DWorkflowEngine )に対する
サブクラスコードD27a(loanDecision)を定義す
る。3〜7行目のコードは、ワークフローエンジンサブ
クラスコードD27b(loanDecision)について例外処
理を宣言している。8行目〜11行目のコードは、ワー
クフローエンジンサブクラスコードD27b(loanDeci
sion)における処理内容を示すメソッドdecideloanを定
義する。また、12〜24行目のコードは、ワークフロ
ーエンジンサブクラスコードD27b(loanDecision)
を開始したとき最初に実行されるメソッドが定義され
る。
1〜2行目のコードによって、ワークフロー処理に必要
なその他のスーパークラスコードD27t(LoanApp2)
のサブクラスLoanFlow2 が定義される。3〜7行目のコ
ードは、その他のスーパークラスコードD27t(Loan
Flow2 )の初期化および名前の定義を行う。8〜26行
目のコードは、loanFlow2 に用いるワークフローエンジ
ンサブクラスコードD27a(loanTeller)およびD2
7b(loanDecision)を登録する。27〜31行目のコ
ードは、ワークフローエンジンサブクラスコードD27
a(loanTeller)およびD27b(loanDecision)の名
前のテーブルを作成する。32〜34行目のコードは、
ワークフロー処理の名前のテーブルを作成する。35〜
37行目のコードは、ワークフロー処理のタイムリミッ
トテーブルを作成する。38〜40行目のコードは、ワ
ークフロー処理の終了を判定するテーブルを作成する。
き、図3に示すワークフローエンジンサブクラスF27
a(loanTeller)およびF27b(LoanDecision)が駆
動して、オブジェクト定義コードD47aおよびフロー
定義コードD47bのクラスやメソッドの参照を行うこ
とにより、ワークフロー処理を制御する。
き、オブジェクト定義コードD47aおよびフロー定義
コードD47bには、プロセスに関する定義が記述され
ていなければならない。これらの定義コードD47aお
よびD47bは、一つのステップで生成しても良いし、
或いは複数ステップに分けて生成しても良い。例えば、
コードジェネレータF28では基本的な定義コードのみ
を生成し、基本的な定義コードに具体的な定義コードを
追加することにより、定義コードを完成させても良い。
言い換えれば、複数ステップに分けてオブジェクト定義
コードD47aやフロー定義コードD47bを生成する
場合、先ずオブジェクト定義基本コードとして各アクテ
ィビティに共通の処理内容を定義するコードを生成し、
および、オブジェクト定義拡張コードとして個々のアク
ティビティに固有の処理内容を定義するコードをオブジ
ェクト定義基本コードに追加することにより、オブジェ
クト定義コードを生成しても良い。具体的に言うと、図
6のオブジェクト定義コードD47aは、8〜9行目の
ブロックにオブジェクト定義拡張コードとして、個々の
アクティビティに固有のメソッドが追加されると、オブ
ジェクト定義コードとして完成する。このように、オブ
ジェクト定義コード生成手段F15がオブジェクト定義
基本コードを生成したのち、オブジェクト定義基本コー
ドにオブジェクト定義拡張コードを付加するのが好まし
い。それにより、個々のオブジェクト定義コードが簡潔
となる。
である識別手段、ワークフローエンジンコード生成手
段、オブジェクト定義コード生成手段、フロー定義コー
ド生成手段を特定の同一ホスト計算機のCPUに存在さ
せたが、これら各機能単位は任意のホスト計算機のCP
Uに存在できる。また、プログラム格納部21、オブジ
ェクト定義コードD47a、フロー定義コードD47b
も任意のホスト計算機の記憶装置に存在して良い。
プトでワークフロー処理のプロセスを定義することによ
り、ワークフローエンジンサブクラスコードD27a
(LoanTeller)およびD27b(LoanDecision)と、オ
ブジェクト定義コードD47aと、フロー定義コードD
47bとが生成できる。ただし、ワークフロー処理の開
始の際には、ホスト計算機h1で生成されたワークフロ
ーエンジンサブクラスコードD27a(LoanTeller)お
よびD27b(LoanDecision)を、それぞれホスト計算
機h2およびホスト計算機h3に分散させる。
に、図3に示す各ワークフローエンジンサブクラスF2
7a(loanTeller)およびF27b(LoanDecision)と同
一ホスト計算機には、各々ワークリストD53aおよび
D53bと、ワークリストハンドラF55aおよびF5
5bとが設けられている。ワークリストD53aおよび
D53bは、個々の処理者31aおよび31b毎に設け
られる。
うな処理が行われる。すなわち、先ず、各処理者31a
は、ワークフローエンジンサブクラスF27a(loanTel
ler)によってワークリストD53aに示されたワークア
イテムを参照する。それにより、処理者31aは処理す
べきアクティビティを認識する。そして、処理者31a
はクライアントアプリケーションD57等を用いてアク
ティビティを実行する。アクティビティに含まれる作業
が終了すると、ワークリストハンドラF55aはワーク
リストD53aからワークアイテムを削除する。それに
より、ワークフローエンジンサブクラスF27a(loan
Teller)は、アクティビティの終了を検出する。その
後、ワークフローエンジンF27a(loanTeller)は、
アクティビティで処理されたデータを次のワークフロー
エンジンF27b(loanDecision)に送付する。
エンジンサブクラスF27b(loanDecision)によって
ワークリストD53bに示されたワークアイテムを参照
する。処理者31bは処理すべきアクティビティを認識
する。そして、処理者31bはクライアントアプリケー
ションD57等を用いてアクティビティを実行する。ア
クティビティが終了すると、処理者31bはワークリス
トハンドラF55bを操作してワークリストD53bか
らワークアイテムを削除する。それにより、ワークフロ
ーエンジンサブクラスF27b(loanDecision)は、ア
クティビティの終了を検出する。同時に、ワークフロー
エンジンF27b(loanDecision)は、ワークフロー処
理の全てのアクティビティの終了を検出して、例えば処
理者31a等にワークフロー処理の終了および結果を通
知する。
を一適用例としてワークフロー処理のプロセスを変更す
る方法につき説明する。
プロセスの変更は、オブジェクト定義コードD25a
(D47a)或いはフロー定義コードD25b(D47
b)を書き換えて行う。したがって、従来技術のワーク
フロー管理システムのようにプロセス定義データそのも
のを書き換える必要がない。すなわち、実施の形態のワ
ークフロー管理システムによれば、各アクティビティの
処理内容のみを変更したい場合にはオブジェクト定義コ
ードD25aのみを修正し、アクティビティの順序のみ
を変更したい場合にはフロー定義コードD25bのみを
修正すればよい。
コードに従うワークフロー処理において、処理者を変更
したい場合には、フロー定義コードに記述されたワーク
フローエンジンサブクラス(loanDecision)を別のワー
クフローエンジンサブクラスに名称の変更をすればよ
い。また、例えば図6のオブジェクト定義コードに従う
ワークフロー処理において、ワークフローエンジンサブ
クラス(loanDecision)の処理内容を変更したい場合に
は、オブジェクト定義コードの処理内容を示すメソッド
decideLoanを修正すればよい。このように、オブジェク
ト定義コード或いはフロー定義コードの一方の修正が他
方の修正に影響しないため、プロセスは容易に変更でき
る。
コードを修正するには、前述のワークフロー管理システ
ムが、オブジェクト定義コードおよび前述のフロー定義
コードを高水準言語のコードの状態で保存する定義コー
ド保存手段(図示していない。)を更に具えるるのが望
ましい。
ードおよびフロー定義コードは、ワークフロー処理を開
始する前に生成される。これらの定義コードはこの実施
の形態ではソースプログラムである。これらの定義コー
ドはコンパイルされることにより、動作可能なオブジェ
クトプログラムとなる。例えば、Java言語ソースプ
ログラムをコンパイルすると、ソースプログラムはプラ
ットフォームに依存せずに動作するバイトコードに変換
されて実行型プログラムとなる。コンパイルしたバイト
コードデータそのものを書き換えるのは困難であるか
ら、コンパイルする前の状態すなわち例えばJava言
語のソースプログラムコードを保存しておく。それによ
り、各アクティビティにおける処理内容或いは処理順序
を変更する際、Java言語のソースプログラムコード
の一部を修正することにより、新たなオブジェクト定義
コード或いはフロー定義コードが作成できる。新たな定
義コードを、コンパイルしてバイトコードに変換したの
ち修正前のバイトコードデータと置換すれば、プロセス
に関する定義が修正できる。
形態では、第1の実施の形態のワークフロー管理システ
ムに宛名変換手段を設けた形態につき説明する。ただ
し、ここでは特に階層構造を有するワークフローエンジ
ンを設けている形態につき説明する。第1の実施の形態
にて説明したワークフロー管理システムでは、アクティ
ビティの処理順序はフロー定義コードに静的に定義され
る。すなわち、アクティビティの処理者を示すコードに
は具体的な宛先が示されており、人事異動等による宛先
の変更すなわちアクティビティの順序の変更があった場
合、フロー定義コードを書き換える必要がある。
変換手段を用いると、動的に処理順序を定義できるた
め、プロセス定義データを修正する必要が無くなること
が知られている。しかしながら、文献Iに開示されるワ
ークフロー管理システムの場合、ワークフローエンジン
はサーバで、また、宛名変換手段はワークフローエンジ
ンと同一のサーバで動作する。そのため、宛名変換手段
を含むサーバの負担が大きくなる。また、実際にサーバ
がダウンしたときには、ワークフロー処理が中断されて
しまうという問題があった。
管理システムを動作させるワークフロー管理システムの
各機能単位を模式的かつ概略的に示すブロック図であ
る。ただし、図8では図4と同一の機能単位については
示しておらず、図4と異なる点のみすなわちワークフロ
ーエンジンサブクラスF27a、F27bおよび宛名変
換手段F67が示される。
ークフロー管理システムは、宛名変換手段F63を有す
る。ここで、ホスト計算機h4のCPUc4が記憶装置
m4の宛名変換プログラムD63を読み出しかつ実行す
ることにより、宛名変換手段F63は仮想的な機能手段
としてCPUc4で動作する。
Pによってプログラミングされており、スーパークラス
から複数のサブクラスF27aおよびF27bに機能を
継承するクラス構造を有する。そして、個々のワークフ
ローエンジンサブクラスF27aおよびF27bは、各
処理者毎に分散して存在するため、互いにアクセスする
ための各通信機能F67aおよびF67bを有する。
手段F63は、特に、通信機能F67tを備える点を特
徴とする。よって、宛名変換手段F63と、複数のワー
クフローエンジンサブクラスF27aおよびF27bと
は通信によって互いにアクセスできる。
長や部長など組織内の役職等を示す一般的宛先名を、処
理者の名前等の具体的宛先名に変換する機能モジュール
である。また、この宛名変換手段F63は、従来構成と
同様に組織/役割データD65を参照する。例えば備品
購入の決裁のワークフロー処理を行う場合、決裁ルート
は役職で決定されることが多いから、予め宛先名を役職
で指定する。そのため、決裁ルートに沿う役職にある処
理者が人事異動等によって他の処理者に変わっても動的
に宛先が判断されるため、決裁ルートすなわち宛先名を
変更する必要が無い。
によって一般的宛先名から具体的宛先名を判断する流れ
について説明する。
は、フロー定義コード中に定義されたアクティビティの
処理者が一般的な宛先名で記述されている場合、先ず、
そのワークフロー処理を開始させたワークフローエンジ
ンサブクラス名すなわち処理者を調べる。次に、ワーク
フローエンジンサブクラスF27aは、各通信機能F6
7aおよびF67tを介して宛名変換手段F63とネッ
トワーク通信することにより、一般的宛先名および開始
者名を宛名変換手段F63に送信する。
ワークフロー処理の開始者名から開始者の組織内の役割
(所属部署や役職等)を認識すると共に、この開始者の
役割および一般的宛先名から次のアクティビティを担当
する処理者名を調べる。そして、次の処理者名からワー
クフローエンジンサブクラス名を得て、次のアクティビ
ティを処理すべきワークフローエンジンサブクラス名
を、ワークフローエンジンサブクラスF27aに送信す
る。そして、この後、次のアクティビティを処理べきワ
ークフローエンジンサブクラスF27bが起動する。
8に示すようにワークフローエンジンが階層構造をなす
複数のワークフローエンジンサブクラスF27aおよび
F27bとして異なるホスト計算機h3およびh4に分
散しており、および、宛名変換手段F63が通信機能を
有する。すなわち、ホスト計算機h2ではワークフロー
エンジンサブクラスF27aが動作し、ホスト計算機h
3ではワークフローエンジンサブクラスF27bが動作
し、および、ホスト計算機h4では宛名変換手段F63
が動作する。このように、宛名変換手段F63と、ワー
クフローエンジンサブクラスF27aおよびF27bと
が異なるホスト計算機に存在しても、宛名変換手段F6
3が通信機能F67tを有するため、宛名変換手段F6
3はワークフローエンジンサブクラスF27aおよびF
27bと互いに通信できる。したがって、宛名変換手段
F63を任意のホスト計算機に移動させることができ
る。すなわち、従来のように宛名変換手段F63をワー
クフローエンジンと同一ホストに設ける必要がない。
機の負担を小さくしシステムダウンの可能性を低減させ
ることができる。また、宛名変換手段を含むホスト計算
機がシステムダウンしたときでも、別のホスト計算機に
宛名変換手段を移動することによって、ワークフロー処
理を続行できる。
発明のワークフロー管理システムによれば、ワークフロ
ー処理のプロセスを定義をする際、起票者が入力したプ
ロセス定義情報は、識別手段によってフロー定義に関す
る部分およびオブジェクト定義に関する部分に分離され
たのち、フロー定義コード生成手段およびオブジェクト
定義コード生成手段によってコード化される。そのた
め、ワークフロー処理を行うとき、各アクティビティに
おける処理内容およびアクティビティの順序を変更する
場合であっても、プロセス定義データそのものを修正す
る必要がない。言い換えれば、各アクティビティにおけ
る処理内容のみを変更したい場合にはオブジェクト定義
コードのみを修正すれば良く、アクティビティの順序
(アクティビティを行う処理者の変更)を変更したい場
合にはフロー定義コードのみを修正すればよい。したが
って、プロセスを能率的にかつ容易に変更することがで
きる。
れば、識別手段が、プロセス定義情報をオブジェクト定
義情報およびフロー定義情報に分離させたのち、オブジ
ェクト定義情報からオブジェクト定義コードを生成しか
つフロー定義情報からフロー定義コードを生成する。そ
のため、各工程における処理内容のみを変更したい場合
にはオブジェクト定義コードを修正し、工程の処理順序
のみを変更したい場合にはフロー定義コードを修正すれ
ばよい。よって、プロセスを能率的にかつ容易に変更す
ることができる。
変更方法の発明によれば、プロセス定義情報から、オブ
ジェクト定義コードおよびフロー定義コードを生成する
ワークフロー処理のプロセスを変更するのに、各工程の
処理内容のみを変更する場合にはオブジェクト定義コー
ドのみを修正し、工程の処理順序のみを変更する場合に
はフロー定義コードのみを修正する。したがって、この
プロセスの変更方法によれば、各工程における処理内容
のみを変更したい場合若しくは工程の処理順序のみを変
更したい場合のいずれにも、互いに独立に存在するオブ
ジェクト定義コード或いはフロー定義コードの一方を修
正することにより対応できる。よって、プロセスを能率
的にかつ容易に変更できる。
の機能単位の相互関係を概略的に示すブロック図であ
る。
させた場合を例として、各機能単位によるハードウェア
資源の利用形態を概略的に示す図である。
能構成を概略的に示した図である。
を動作させるネットワークシステムの一例を示す図であ
る。
義スクリプトの一例である。
ジェクト定義コードの一部を示した図である。
ー定義コードの一部を示した図である。
を動作させるネットワークシステムの各機能単位を模式
的かつ概略的に示すブロック図である。
ブロック図である。
コード D27s:ワークフローエンジンスーパークラスコード D27t:その他のスーパークラスコード F28:コードジェネレータ 31a、31b:処理者 D43:プロセス定義スクリプト D43a:オブジェクト定義スクリプト D43b:フロー定義スクリプト F45:スクリプト識別手段 D52:クラスライブラリ D53a、D53b:ワークリスト F55a、F55b:ワークリストハンドラ D57:クライアントアプリケーション F63:宛名変換手段 D63:宛名変換プログラム D65:組織/役割データ F67a、F67b、F67t:通信機能
Claims (7)
- 【請求項1】 複数の計算機を有するネットワークシス
テムで、一連かつ複数の工程からなるワークフロー処理
を、各工程における処理内容およびそれら工程の順序に
関するプロセス定義情報に基づいて、各工程毎に行うワ
ークフロー管理システムにおいて、 前記プロセス定義情報から、各工程における処理内容に
関するオブジェクト定義情報と、工程の順序に関するフ
ロー定義情報とを識別する識別手段と、 前記ワークフロー処理に用いる基本的な機能を提供する
複数のプログラムを格納してあるプログラム格納部と、 識別された前記オブジェクト定義情報を解釈して該解釈
に応じた前記プログラムを前記プログラム格納部から読
み出すことにより、該読み出されたプログラムに基づい
て各工程における処理内容に関するコードであるオブジ
ェクト定義コードを生成するオブジェクト定義コード生
成手段と、 前記フロー定義情報を解釈して該解釈に応じた前記プロ
グラムを前記プログラム格納部から読み出すことによ
り、該読み出されたプログラムに基づいて各工程の順序
に関するコードであるフロー定義コードを生成するフロ
ー定義コード生成手段と、 前記フロー定義コードおよび前記オブジェクト定義コー
ドを解釈することにより、前記ワークフロー処理を制御
するワークフローエンジンとを具えることを特徴とする
ワークフロー管理システム。 - 【請求項2】 請求項1に記載のワークフロー管理シス
テムにおいて、 識別された前記オブジェクト定義情報および前記フロー
定義情報を解釈して該解釈に応じた前記プログラムを前
記プログラム格納部から読み出すことにより、該読み出
されたプログラムに基づいてワークフローエンジンコー
ドを生成するワークフローエンジンコード生成手段を更
に具え、および、前記ワークフローエンジンコードによ
って前記ワークフローエンジンを機能させることを特徴
とするワークフロー管理システム。 - 【請求項3】 請求項1に記載のワークフロー管理シス
テムにおいて、 前記オブジェクト定義コードおよび前記フロー定義コー
ドを高水準言語のコードの状態で保存する定義コード保
存手段を更に具えることを特徴とするワークフロー管理
システム。 - 【請求項4】 請求項1に記載のワークフロー管理シス
テムにおいて、 前記ワークフローエンジンが上位階層から複数の下位階
層に機能を継承する階層構造を有し、かつ、個々の前記
下位階層のワークフローエンジンは相互にアクセスする
通信機能を有することを特徴とするワークフロー管理シ
ステム。 - 【請求項5】 請求項4に記載のワークフロー管理シス
テムにおいて、 前記フロー定義コードに一般的な宛先名を予め定義する
場合、該一般的宛先名から具体的宛先名を生成する宛名
変換手段を更に具えており、および、 前記宛名変換手段が、前記下位階層のワークフローエン
ジンと相互にアクセスする通信機能を有することを特徴
とするワークフロー管理システム。 - 【請求項6】 複数の計算機を有するネットワークシス
テムで、一連かつ複数の工程からなるワークフロー処理
を行う際、各工程における処理内容およびそれら工程の
順序に関するプロセス定義情報から、ワークフローエン
ジンの解釈できるプロセスに関するコードを生成するコ
ードジェネレータであって、 前記プロセス定義情報から、各工程における処理内容に
関するオブジェクト定義情報と、工程の順序に関するフ
ロー定義情報とを識別する識別手段と、 前記オブジェクト定義情報から、ワークフローエンジン
の解釈できるオブジェクト定義コードを生成するオブジ
ェクト定義コード生成手段と、 前記フロー定義情報から、ワークフローエンジンの解釈
できるフロー定義コードを生成するフロー定義コード生
成手段とを具えることを特徴とするコードジェネレー
タ。 - 【請求項7】 一連かつ複数の工程からなるワークフロ
ー処理を行う前に、各工程の処理内容および工程の処理
順序に関するプロセス定義情報から、各工程の処理内容
に関するオブジェクト定義情報と、工程の処理順序に関
するフロー定義情報とを識別し、前記オブジェクト定義
情報からワークフローエンジンの解釈できるオブジェク
ト定義コードを生成し、かつ、前記フロー定義情報から
ワークフローエンジンの解釈できるフロー定義コードを
生成するワークフロー処理のプロセスを変更するに当た
り、 各工程の処理内容のみを変更する場合にはオブジェクト
定義コードのみを修正し、工程の処理順序のみを変更す
る場合にはフロー定義コードのみを修正することを特徴
とするワークフロー処理のプロセス変更方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17952099A JP3767666B2 (ja) | 1999-06-25 | 1999-06-25 | ワークフロー管理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17952099A JP3767666B2 (ja) | 1999-06-25 | 1999-06-25 | ワークフロー管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001005680A true JP2001005680A (ja) | 2001-01-12 |
JP3767666B2 JP3767666B2 (ja) | 2006-04-19 |
Family
ID=16067221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17952099A Expired - Fee Related JP3767666B2 (ja) | 1999-06-25 | 1999-06-25 | ワークフロー管理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3767666B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006107481A (ja) * | 2004-10-01 | 2006-04-20 | Microsoft Corp | 設計時および実行時にワークフローを継ぎ目なくオーサリングし編集するためのフレームワーク |
JP2009181240A (ja) * | 2008-01-29 | 2009-08-13 | Nomura Research Institute Ltd | ワークフロー処理装置 |
US7729924B2 (en) | 2002-10-17 | 2010-06-01 | Knowledge It Corporation | Virtual knowledge management system |
WO2012086096A1 (ja) * | 2010-12-21 | 2012-06-28 | 株式会社アイ・ピー・エス | データベース、データ管理サーバ、およびデータ管理プログラム |
-
1999
- 1999-06-25 JP JP17952099A patent/JP3767666B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7729924B2 (en) | 2002-10-17 | 2010-06-01 | Knowledge It Corporation | Virtual knowledge management system |
JP2006107481A (ja) * | 2004-10-01 | 2006-04-20 | Microsoft Corp | 設計時および実行時にワークフローを継ぎ目なくオーサリングし編集するためのフレームワーク |
JP2009181240A (ja) * | 2008-01-29 | 2009-08-13 | Nomura Research Institute Ltd | ワークフロー処理装置 |
WO2012086096A1 (ja) * | 2010-12-21 | 2012-06-28 | 株式会社アイ・ピー・エス | データベース、データ管理サーバ、およびデータ管理プログラム |
JP5451885B2 (ja) * | 2010-12-21 | 2014-03-26 | 株式会社アイ・ピー・エス | データベース、データ管理サーバ、およびデータ管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3767666B2 (ja) | 2006-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5085022B2 (ja) | 継ぎ目なくオブジェクトを比較するシステムおよび方法 | |
US6804686B1 (en) | System and methodology for providing fixed UML layout for an object oriented class browser | |
US6489970B1 (en) | Means for specifying direct manipulation relationships on hierarchically structured visuals | |
US5721925A (en) | Method for generically invoking operation in an object oriented repository | |
US5671398A (en) | Method for collapsing a version tree which depicts a history of system data and processes for an enterprise | |
US8966456B2 (en) | System and method for providing and using meta-data in a dynamically typed array-based language | |
US20030200533A1 (en) | Method and apparatus for creating software objects | |
EP1061431A2 (en) | Configuring computer systems | |
US8312113B2 (en) | Managing shell configurations to dynamically control user computing environments | |
US6314445B1 (en) | Native function calling | |
CA2986106C (en) | Techniques for configuring a generic program using controls | |
JPH01161531A (ja) | プログラム・パッケージの作成方法 | |
WO1999004346A1 (en) | Method and apparatus for enforcement of behavior of application processing systems without modifying application processing systems | |
US20050160400A1 (en) | Component based design time architecture | |
US11635977B2 (en) | Enhanced target selection for robotic process automation | |
JPH0764778A (ja) | オブジェクト指向コンピュータ・システム及びオブジェクト実行方法 | |
JP7394211B2 (ja) | スマートコントラクトの並行実行の方法、装置、機器、及び媒体 | |
EP0784264B1 (en) | A computer-implemented process for determining a minimum code set for an executable application in a data processing system | |
MX2008003417A (es) | Acciones de control definidas en forma declarativa. | |
Stankovski et al. | Digging deep into the data mine with DataMiningGrid | |
WO2003019363A1 (en) | Application class extensions | |
JP2001005680A (ja) | ワークフロー管理システム、コードジェネレータおよびワークフロー処理のプロセス変更方法 | |
Khatchadourian et al. | Defaultification refactoring: A tool for automatically converting Java methods to default | |
Goos | Hierarchies | |
JP2000194568A (ja) | インタプリタ及びインタプリタの制御方法並びに記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060124 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120210 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130210 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |