JP2009080648A - ワークフロー作成管理システム及びワークフロー作成管理方法 - Google Patents
ワークフロー作成管理システム及びワークフロー作成管理方法 Download PDFInfo
- Publication number
- JP2009080648A JP2009080648A JP2007249448A JP2007249448A JP2009080648A JP 2009080648 A JP2009080648 A JP 2009080648A JP 2007249448 A JP2007249448 A JP 2007249448A JP 2007249448 A JP2007249448 A JP 2007249448A JP 2009080648 A JP2009080648 A JP 2009080648A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- state
- derived
- base
- customization
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】ワークフローの構成要素に対して種々の制約を一元的かつ包括的に設定することができると共に設定した制約の違反を回避しつつ容易にワークフローを作成できる他、他システムの制約違反を監視しつつ他システムと連携動作することができるワークフロー作成管理システムを提供する。
【解決手段】本発明に係るワークフロー作成管理システムは、基底ワークフローをカスタマイズした派生ワークフローを作成するワークフロー編集部と、基底ワークフロー及び派生ワークフローに含まれる状態及び状態の定義情報を格納するワークフロー定義データベースと、を備え、ワークフロー編集部は、基底ワークフローに含まれる状態と、状態に対応する派生ワークフローの状態との差分を定義することによって前記派生ワークフローを作成する、ことを特徴とする。
【選択図】 図1
【解決手段】本発明に係るワークフロー作成管理システムは、基底ワークフローをカスタマイズした派生ワークフローを作成するワークフロー編集部と、基底ワークフロー及び派生ワークフローに含まれる状態及び状態の定義情報を格納するワークフロー定義データベースと、を備え、ワークフロー編集部は、基底ワークフローに含まれる状態と、状態に対応する派生ワークフローの状態との差分を定義することによって前記派生ワークフローを作成する、ことを特徴とする。
【選択図】 図1
Description
本発明は、ワークフロー作成管理システム及びワークフロー作成管理方法に係り、特に、ワークフローを定義して作成すると共に、作成されたワークフローを管理、運用するワークフロー作成管理システム及びワークフロー作成管理方法に関する。
ビジネスプロセスを自動化し、帳票・タスク等が複数の担当者間で受け渡される仕組みを定義したものをワークフローと呼ぶ。ワークフロー作成管理システムは、ワークフローを実現する情報システムであり、ワークフローの定義、管理、運用、分析等を行う機能を有する。ワークフローの例としては、事務手続きの承認手順や、製品開発における不具合管理手順などが挙げられる。
ワークフローは状態遷移モデルとして表現することが出来る。ワークフローは、状態遷移モデルに含まれる状態、状態が受け取るイベント、イベントによって引き起こされる遷移に加えて、ワークフロー上でやり取りされる帳票の種類やそれらが含む属性情報、ワークフロー上で属性情報を入力したりイベントを発生させたりするユーザの役割等によって定義される。
組織・企業においては、1つのワークフローは単一の部門で運用されるだけでなく、複数の部門間で共有されることが多い。複数部門で利用する場合、そのままの形ではなく、個別の部門の事情に合わせてカスタマイズを施して運用されることが多い。例えば、事業部全体で原則を定めた基底ワークフローを提供し、A製品開発部・B製品開発部・C製品開発部がそれぞれの製品の特徴や部門メンバの利用法に合わせてカスタマイズを施した上で運用するような場合が考えられる。
特許文献1には、基底ワークフローを継承して派生ワークフローを作成する技術の一例が開示されている。例えば、基底ワークフローを事業部で作成し、A製品開発部でこの基底ワークフローをカスタマイズして派生ワークフローを作成するような場合に適用される技術である。基底ワークフローは、複数の状態と、状態間の遷移関係とを明示することによって定義されている。
派生ワークフローを作成するときには、基底ワークフローに含まれる特定の状態に対して上書きを行って新たな状態の定義を行っている。つまり、基底ワークフローに対する差分を記述することによって派生ワークフローを作成している。基底ワークフローに含まれる夫々の状態には、上書きの禁止、或いは許可を示す情報が予め割り付けられている。状態毎に割り付けられた上書き禁止/許可情報によって、無秩序に派生ワークフローが作成されることを防止している。
特開2003−208500号公報
基底ワークフローから派生ワークフローを作成する場合、共通のルールがない状態で各部門にカスタマイズを許すと、事業部全体としてのワークフローが本来の役割を果たせなくなる虞がある。ワークフローによって実現したい役割を果たすための条件のことを「ワークフロー要件」と呼ぶ。例えば、どのイベントをどのユーザが実行可能かといったセキュリティに関するワークフロー要件、必須レビューを省略してはならないといった状態遷移に関するワークフロー要件等が破られると、業務上大きな問題が発生する可能性がある。
特許文献1では、状態毎に割り付けられた上書き禁止/許可情報によって、無秩序に派生ワークフローが作成されることを防止する技術が開示されているが、このような従来技術だけではワークフロー要件を十分遵守するのには不十分であり、以下のような課題がある。
第1の課題は、ワークフロー要件を満たすための制約の種類や対象が従来技術では十分に規定されていない点にある。前述したように、ワークフローの構成要素としては、「状態」、状態の遷移を引き起こす「イベント」、状態の「遷移先」、各状態で作成される帳票類の「属性」、ユーザの役割や権限等がある。特許文献1等の従来技術では、上記の構成要素のうちの「状態」に対してのみ、その制約として上書き禁止/許可情報の記述が規定されている。しかしながら、「状態」以外のワークフローの各構成要素(例えば、「イベント」、「遷移先」、「属性」等)に対する制約(カスタマイズを行う際の制約)までは提供されていない。このため、各部門で種々のカスタマイズを行った結果、ワークフロー要件が守られていない派生ワークフローが作成され、運用されてしまう問題があった。また、逆に、制約の表現能力が不十分であるために、用途に応じてカスタマイズしにくくなり、ワークフローの保守性が低くなるという問題があった。
第2の課題は、共通的な制約を一元的に規定し、或いは複数の制約を包括的に規定する手段が従来技術では提供されていない点にある。ワークフローに対してカスタマイズを行う際の制約には、特定のワークフローに依存せず総てのワークフローに対して定義できる制約も存在する。例えば、「基底ワークフローから作成する総ての派生ワークフローでは、イベントの削除は許可しない。」といった制約は派生ワークフロー全体に共通する制約である。しかしながら、従来技術では、共通的な制約であっても一元的に管理する手法が提供されておらず、ある特定の制約は特定のワークフローに従属しており、他のワークフローで利用することが出来なかった。このため、複数のワークフローの夫々に対して同じ制約をいちいち記述する必要があり、不便であった。
また、ワークフロー要件は必ずしも1種類の制約で表現できるとは限らない。従来技術では複数の制約を集約した単位で包括的に管理する手段が提供されておらず、このため、ワークフロー要件単位で複数の制約を管理することができなかった。
第3の課題は、基底ワークフローや派生ワークフローを作成するときに、規定した制約が遵守されているか否かを判断すると共に、判断結果をワークフロー作成者に通知する手段が従来技術では提供されていなかった。つまり、ワークフロー作成を支援するための手段が提供されていなかった。このため、ワークフローの作成に時間を要し、また作成されたワークフローの信頼性(制約が確実に遵守されたワークフローであるかという観点での信頼性)も十分ではなかった。
第4の課題は、異なったワークフロー作成管理システム間での連携運用を可能とする手段が従来技術では提供されていない点である。同じ基底ワークフローからカスタマイズしたワークフローを複数のワークフロー管理システム上で動作させて連携させると、基底ワークフローとワークフロー要件を共有できるため、ワークフロー間の整合を取ることが容易になるメリットがある。例えば、あるワークフロー作成管理システムから他のワークフロー作成管理システムに対して特定の処理を委託する場合等である。
しかしながら、処理を委託する先のワークフローが、カスタマイズ制約を破って定義されていた場合、そのことを確認することが出来ないと、委託する先のワークフローが基底ワークフローフローの要件を満たすことが保証できない。しかし、従来のワークフロー作成管理システムは、このような確認を行う手段を提供していなかった。
本発明は、上記事情に鑑みてなされたものであり、基底のワークフローをカスタマイズして派生ワークフローを作成する際に、ワークフローの構成要素に対して種々の制約を一元的かつ包括的に設定することができると共に設定した制約の違反を回避しつつ容易にワークフローを作成できる他、他システムの制約違反を監視しつつ他システムと連携動作することができるワークフロー作成管理システム、及びワークフロー作成管理方法を提供することを目的とする。
上記課題を解決するため、本発明に係るワークフロー作成管理システムは、請求項1に記載したように、状態遷移モデルとして表現されるワークフローを作成し管理するワークフロー作成管理システムにおいて、基底ワークフローを継承した派生ワークフローを定義することによって、前記基底ワークフローをカスタマイズした前記派生ワークフローを作成するワークフロー編集部と、前記基底ワークフロー及び前記派生ワークフローに含まれる状態及び状態の定義情報を格納するワークフロー定義データベースと、を備え、前記ワークフロー編集部は、前記基底ワークフローに含まれる状態と、前記状態に対応する前記派生ワークフローの状態との差分を定義することによって前記派生ワークフローを作成する、ことを特徴とする。
また、上記課題を解決するため、本発明に係るワークフロー作成管理方法は、請求項9に記載したように、状態遷移モデルとして表現されるワークフローを作成し管理するワークフロー作成管理方法において、(a)基底ワークフローを継承した派生ワークフローを定義することによって、前記基底ワークフローをカスタマイズした前記派生ワークフローを作成し、(b)前記基底ワークフロー及び前記派生ワークフローに含まれる状態及び状態の定義情報を格納する、ステップを備え、ステップ(a)では、前記基底ワークフローに含まれる状態と、前記状態に対応する前記派生ワークフローの状態との差分を定義することによって前記派生ワークフローを作成する、ことを特徴とする。
本発明に係る本発明に係るワークフロー作成管理システム、及びワークフロー作成管理方法によれば、基底のワークフローをカスタマイズして派生ワークフローを作成する際に、ワークフローの構成要素に対して種々の制約を一元的かつ包括的に設定することができると共に設定した制約の違反を回避しつつ容易にワークフローを作成できる他、他システムの制約違反を監視しつつ他システムと連携動作することができる。
本発明に係るワークフロー作成管理システム、及びワークフロー作成管理方法の実施形態について、添付図面を参照して説明する。
(1)システム構成
図1は、本発明の実施形態に係るワークフロー作成管理システム1の構成例を示すブロック図である。ワークフロー作成管理システム1は、ワークフロー制御部10、ワークフロー編集部20、及びカスタマイズ制約編集部30を有する他、状態データデータベース11、ワークフロー定義データベース21、カスタマイズルール/ポリシ定義データベース31の各データベースを有している。
図1は、本発明の実施形態に係るワークフロー作成管理システム1の構成例を示すブロック図である。ワークフロー作成管理システム1は、ワークフロー制御部10、ワークフロー編集部20、及びカスタマイズ制約編集部30を有する他、状態データデータベース11、ワークフロー定義データベース21、カスタマイズルール/ポリシ定義データベース31の各データベースを有している。
また、ワークフロー作成管理システム1はワークフロー連携部40を有しており、ワークフロー連携部40を介して他のワークフロー作成管理システム1と連接可能な構成となっている。
ワークフロー作成管理システム1で実現される各種の機能は、アプリケーションソフトウェア50を介してワークフロー管理者やワークフローユーザに提供される。アプリケーションソフトウェア50は、典型的には、ウェブブラウザやメールユーザエージェントである。
ワークフロー制御部10の主要な機能は、ワークフロー編集部20にて作成及び編集されたワークフロー定義と、ワークフローユーザから入力されるデータとに基づいてワークフローの状態遷移を処理し、状態データデータベース11の状態データを更新することである。
ワークフロー編集部20の主要な機能は、ユーザ(ワークフロー管理者)にワークフローを編集するための機能を提供し、ワークフロー定義データを更新することである。後述するように、ワークフローの編集は、カスタマイズルール/ポリシ定義データベース31に格納されたカスタマイズルールやカスタマイズポリシによって制限される。
カスタマイズ制約編集部30の主要な機能は、ユーザ(ワークフロー管理者)にカスタマイズルールおよびカスタマイズポリシを編集する機能を提供し、カスタマイズルール/ポリシ定義データベース31のデータを更新することである。
ワークフロー連携部40の主要な機能は、状態データおよびワークフロー定義データの情報を他のワークフロー作成管理システム1と送受信することである。
図1中のワークフロー管理者は、主にワークフローを編集定義し、カスタマイズ制約(カスタマイズルール及びカスタマイズポリシ)を定義するユーザである。また、ワークフローユーザは、実際のプロジェクトでワークフローに基づいて作業し、状態データの入力を行うユーザである。
図2は、ワークフロー作成管理システム1の主たる運用とその流れを例示した図である。図2(a)及び(b)は、上位部門(例えば、本社の事業部)のワークフロー管理者の作業によって、カスタマイズポリシが付加された基底ワークフローを作成する流れを示している。このとき、図2(a)の流れに示したように、カスタマイズルールとカスタマイズポリシとからなるワークフロー作成、編集に関する制約が予め定義される。この制約定義は、カスタマイズ制約編集部30の機能を利用して行われる。
一方、ワークフロー編集部20の機能を利用して基底ワークフローが作成され、その後、先に定義したカスタマイズポリシを基底ワークフローに付加する。
他方、図2(d)に示したように、下位部門(例えば、事業部に属する開発部A)のワークフロー管理者は、基底ワークフローをカスタマイズして、自部門に適合した派生ワークフローを作成、編集する。基底ワークフローにはカスタマイズポリシが付加されているため、派生ワークフローの作成、編集には、原則としてカスタマイズポリシの制約が課せられることになる。
ワークフローユーザは、図2(c)、(e)に示したように、ワークフロー管理者が作成、編集した基底ワークフロー、或いは派生ワークフローに従って作業を行うが、このときワークフロー制御部10の機能を利用する。
上記のように構成されたワークフロー作成管理システム1の詳細動作について以下順次説明する。
(2)ワークフローの作成・編集
最初に、以下の説明で使用するワークフローの例について説明する。ワークフロー作成管理システム1は、製品開発プロジェクトにおける不具合管理のワークフローを管理し運用するものとする。また、このワークフローで扱われる帳票は、不具合の属性情報を表わすものとする。
最初に、以下の説明で使用するワークフローの例について説明する。ワークフロー作成管理システム1は、製品開発プロジェクトにおける不具合管理のワークフローを管理し運用するものとする。また、このワークフローで扱われる帳票は、不具合の属性情報を表わすものとする。
図3(a)に示したワークフローWF1は、製品開発プロジェクトにおける不具合管理の基本となるワークフロー(基底ワークフロー)の例を示したものである。ワークフローWF1は、製品のテストによって不具合が発見された後の処理手順を定義している。一般にワークフローは、複数の「状態」と「状態」間の遷移関係を示す状態遷移モデルによって表現することが出来る。本例のワークフローWF1では、「登録待ち」、「処置待ち」、「確認待ち」、及び「終了」の4つの状態を有している。
「登録待ち」状態は、テスト担当者により発見された不具合を登録するための状態である。不具合発見時の属性情報を入力することが出来る。「登録」イベントにより「処置待ち」状態に遷移する。
「処置待ち」状態は、開発担当者により不具合への修正処置が施されるまでの状態である。修正処置に関する属性情報を入力することが出来る。「処置」イベントにより「確認待ち」状態に遷移する。
「確認待ち」状態は、開発担当者による修正処置の結果、製品が正しい状態になったことをテスト担当者が確認するまでの状態である。確認結果に関する属性情報を入力することが出来る。「確認」イベントにより「終了」状態に遷移する。
「終了」状態は、不具合の処置と確認が完了した状態である。入力可能な属性情報はない。「終了」状態に遷移することによって、ワークフローWF1は終了する。
図3(b)及び(c)に示したワークフローWF2、WF3は、製品の重要度に対応して基底ワークフローWF1の一部を変更してカスタマイズした派生ワークフローである。
ワークフローWF2は、開発担当者により多くの権限を与えることで、不具合管理処理全体の効率化をねらってカスタマイズした例である。開発担当者が、報告された不具合に対して、不具合に該当しないことを判断して終了扱いとすることができるように、「処置待ち」状態に「破棄」イベントを追加している。
ワークフローWF3は、技術的に困難な製品に対してより厳重な工程を踏むようにカスタマイズした例である。「処置待ち」状態を細分化し、開発部隊内に処置承認者を置き、開発担当者の処置内容の申請を受けて処置承認者である開発リーダが処置内容の承認を行うようにしている。「処置申請待ち」状態と「処置承認待ち」状態は、別途ワークフローWF4として定義されている。
各ワークフローの作成、編集作業は、ワークフロー編集部20の機能を利用して行われる。具体的には、ワークフロー定義データベース21に格納する各種の定義テーブルを作成、編集することによってワークフローの作成、編集を行っている。
図4は、ワークフロー定義データベース21に格納する各種の定義テーブルを例示する図であり、ワークフロー定義データベース21は、ワークフロー定義テーブル200、状態定義テーブル201、状態継承定義テーブル202、属性定義テーブル203、状態/属性関連定義テーブル204、イベント定義テーブル205等を有している。
図5は、ワークフロー定義テーブル200の具体例を示す図である。ワークフロー定義テーブル200には、ワークフローの基本データが格納される。ワークフロー定義テーブル200は、ワークフロー名を主キーとして、少なくとも、ワークフローの説明と対応する基底ワークフローをカラムとして持つ。図5の表の1行目は、ワークフローWF1が基本工程であることと、対応する基底ワークフローを持たないことから、ワークフローWF1自体が基底ワークフローであることを示している。
また、図5の表の2行目は、対応する基底ワークフローがワークフローWF1であることが示されている。これは、ワークフローWF2が、基底ワークフローWF1を継承してカスタマイズされた派生ワークフローであることに対応している。
ワークフローWF3、WF5、WF10についても同様であり、夫々が基底ワークフローWF1を継承してカスタマイズされた派生ワークフローであることを表わしている。
一方、ワークフローWF4は、前述したようにワークフローWF3の中に組み込まれる部分ワークフローであるが、ワークフローWF4自体は単独に基底ワークフローとして定義されることを示している。
図6に示した状態定義テーブル201は、各ワークフローにどの状態が含まれるかを定義するテーブルである。ワークフロー定義テーブル201は、ワークフロー名を主キーとして、少なくとも、当該ワークフローに含まれる状態名及び状態の種別をカラムとして持つ。図6の表の1行目から4行目に示したように、ワークフローWF1は、「登録待ち」、「処置待ち」、「確認待ち」、及び「終了」の4つの状態を持つことを定義している。
状態の種別は、ワークフローにおいて配置可能な位置によって、「開始」、「中途」、及び「終結」に分類できる。ワークフローは、必ず1つの「開始」種別の状態から始まり、「途中」種別の状態を経過して、「終結」種別の状態に到って処理が完了する。1つのワークフローについて、「途中」種別の状態の数はいくつあっても構わない。ゼロであってもよい。また、「終結」種別の状態の数は1つ以上複数あっても構わないが、「開始」種別の状態の数は1つである。図6は、「登録待ち」状態はワークフローの開始であること、「終了」状態は、ワークフローの終結であることを示している。
図7に示した状態継承定義テーブル202は、基底ワークフローと派生ワークフローにおける状態の対応付けを定義するテーブルである。状態継承定義テーブル202は、ワークフロー名と状態名の組み合わせを主キーとして、少なくとも、対応付けられる「状態の実体」と対応付けの方法とをカラムとして持つ。「状態の実体」とは、基底ワークフローの状態が派生ワークフローのどの状態と対応付けられるのかを定義するものである。
例えば、ワークフロー定義テーブル200(図5)によってワークフローWF2が基底ワークフローWF1をカスタマイズした派生ワークフローであることが定義されており、状態定義テーブル201(図6)によってワークフローWF2が「処置待ち´」状態を有することが定義されている。状態継承定義テーブル202では、さらに、基底ワークフローWF1の中のどの状態をカスタマイズしたのか、またカスタマイズによってどの「状態の実体」に対応付けられるのかを定義している。具体的には、図7の5行目に示したように、基底ワークフローWF1の中の「処置待ち」状態が、派生ワークフローWF2では、「処置待ち´」状態に対応付けられていることを示している。
対応付けは、「状態」から「状態」への対応付けの他、「状態」から「部分ワークフロー」への対応付けも可能である。例えば、図7の6行目に示したように、基底ワークフローWF1の中の「処置待ち」状態が、派生ワークフローWF3では、部分ワークフローWF4に対応付けられていることを示している。
対応付けの方法は、「継承」と「上書き」の2つの方法に分類できる。カスタマイズ後の状態とカスタマイズ前の状態の対応付け方法を定義するものであるが、詳しくは後述する。図7の例では、ワークフローWF2における「処置待ち´」状態の対応付けは「継承」であり、ワークフローWF5における「処置待ち´」状態の対応付けは「上書き」であることを示している。
図8に示した属性定義テーブル203は、不具合管理のワークフローでやり取りされる帳票データの属性の種類とそのデータタイプを定義するテーブルである。属性名を主キーとして、データタイプをカラムとして持つ。各属性の実際のデータ入力は、ワークフローユーザがワークフロー制御部10を利用して入力するものであり、属性定義テーブル203では、「整数」、「文字列」、「日付」といったデータタイプの定義を行っている。データタイプのうち「選択」は、別途定義された選択肢のグループ(モジュール名のグループや、ユーザ名のグループ)の中から選んで入力されることを示している。
図9に示した状態/属性関連定義テーブル204は、ワークフローの中の各状態とその状態で入力、編集が可能な属性(以下、関連属性という)との関連付けを定義している。状態/属性関連定義テーブル204は、ワークフローと状態の組を主キーとして、少なくとも、その状態に関連付けられた関連属性名及び必須入力属性をカラムとして持つ。例えば、図9の1行目から8行目にかけて、ワークフローWF1の「登録待ち」状態では、「不具合番号」、「タイトル」、「発生日付」、「症状」、「重要度」、「優先度」、「発見者」、「発生モジュール」の8種類の関連属性が入力、編集可能であり、このうち、「症状」と「発生モジュール」以外は「登録待ち」状態での入力が必須であることを示している。
図10に示したイベント定義テーブル205は、ワークフローの各状態の遷移関係を定義するテーブルである。イベント定義テーブル205は、ワークフローと状態とを主キーとして、少なくとも、その状態が受け入れるイベント、イベントを受け入れた後の遷移先、イベントを起こすことが出来るイベント実行権限者をカラムとして持つ。例えば、図10の1行目は、ワークフローWF1の「登録待ち」状態では、「テスト担当」者が「登録」イベントを入力することが可能であり、かつ「登録」イベントの入力によって「登録待ち」状態から「処置待ち」状態に遷移することを示している。
上述した各定義テーブルを作成、編集することによって、基底ワークフローや、基底ワークフローをカスタマイズした派生ワークフローを作成、編集することができる。なお、各定義テーブルは上記の形態に限定されるものではなく、例えば、複数の定義テーブルを1つの定義テーブルに統合しても良いし、逆に1つの定義テーブルを複数の定義テーブルに分割してもよい。
次に、派生ワークフローの作成、編集の方法について、ユーザインタフェース画面の具体例を提示しつつ説明する。なお、基底ワークフローの作成、編集方法についても、派生ワークフローの説明の中で適宜説明を加える。ユーザインタフェース画面は、例えば、ワークフロー編集部20やアプリケーションソフトウェア50によって提供されるものである。
ワークフロー管理者がある特定の基底ワークフローから派生ワークフローを作成しようとする場合、まず図11に例示したワークフロー定義画面W1を表示させる。ワークフロー定義画面W1には、新規に作成するワークフローの名前を入力するテキストボックス300、対応する基底ワークフローを選択するドロップダウンリスト301、及びワークフローの説明を入力するテキストボックス302が表示されている。図11は、作成しようとする派生ワークフローの名前を「WF2」と入力し、この派生ワークフローに対応する基底ワークフローとして「WF1」を選択している例を示している。
これらのデータの入力後、「作成」ボタン303をクリックすることによって、派生ワークフローWF2の名前と基底ワークフローWF1とのワークフローレベルでの継承関係が定義される。
なお、基底ワークフローWF1を定義する場合には、基底ワークフローを選択するドロップダウンリスト301から、例えば「−」を選択して、対応する基底ワークフローが存在しないことを定義すればよい。
ワークフロー定義画面W1からの入力、更新によって、ワークフロー定義テーブル200(図5)が作成、編集される。
ワークフローの定義が終了すると、次に、図12に示した状態定義画面W2を表示させる。状態定義画面W2はワークフロー名(本例では、「WF2」)を指定して表示させる。
先のワークフロー定義によって、ワークフローWF2が基底ワークフローWF1を継承した派生ワークフローであることが定義されている。派生ワークフローでは、基底ワークフローに含まれる状態や、状態の属性、イベント等の定義が引き継がれる。ワークフローの継承は任意の回数行うことができる。この場合には、派生ワークフローは継承関係を遡り、総ての基底ワークフローの状態や、状態の属性、イベント等が引き継がれる。
引き継がれた基底ワークフローの状態や、状態の属性、イベント等は、変更しない部分についてはあらためて記述する必要は無くそのまま利用することが出来る。つまり、派生ワークフローを作成する場合には、基底ワークフローに対する差分のみを記述すればよい。
図12では、基底ワークフローWF1で定義されている状態(「登録待ち」、「処置待ち」、「確認待ち」、「終了」)とその種別が状態定義画面W2に自動的に表示される。
他方、派生ワークフローWF2は、基底ワークフローWF1の「処置待ち」状態をカスタマイズして「処置待ち´」状態を新たに付加するものである(図3参照)。そこで、テキストボックス313に「処置待ち´」を入力すると共に、ドロップダウンリスト314から「処置待ち´」状態の種別として「中途」を選択し、「追加」ボタンをクリックする。この操作によって、基底ワークフローWF1に対する差分として、派生ワークフローWF2に「処置待ち´」状態が定義されることになる。
なお、状態定義画面W2のテキストボックス310、311に表示されている基底ワークフローWF1の状態や状態の種別に新たなデータを入力し、「更新」ボタン312をクリックすることによって、基底ワークフローWF1の状態や状態の種別を変更することができる。
状態定義画面W2からのデータ入力、更新によって、状態定義テーブル201(図6)を作成、編集することができる。
また、状態定義画面W2を利用して、基底ワークフローの状態を新たに定義することもできる。基底ワークフローを定義する場合には、状態や状態の種別を夫々新規に入力することになる。
次に、状態継承の定義画面W3を表示させる。状態継承の定義画面W3は、基底ワークフローでカスタマイズしたい部分を含む状態を指定し、派生ワークフローの新しい状態に対応付けるための画面である。
ワークフローのカスタマイズは、状態の単位でイベントや属性を追加、削除することで行う。このため、まず、基底ワークフローでカスタマイズしたい部分を含む状態を指定し、派生ワークフローの新しい状態に対応付ける。基底ワークフローの状態に対応付けられる新しい状態のことを、「状態の実体」と呼ぶものとする。基底ワークフローのある状態Aに派生ワークフローの状態Bが「状態の実体」として対応付けられている場合、状態Aの振る舞いは、状態Bに委譲されて処理される。ワークフローの連携運用を定義する場合などには、派生ワークフローを基底ワークフローであるとみなして、基底ワークフローの状態を対象として連携を定義できるが、実際の処理は「状態の実体」に委譲される。
状態の対応付けの方法は、「継承」と「上書き」のいずれかを選ぶことが出来る。「継承」は、カスタマイズされる状態のイベントや属性を引き継いで、状態の実体で追加や削除によるカスタマイズを行うための方法である。「上書き」はカスタマイズされる状態のイベントや属性を捨てて、新たに定義する状態で置き換えることでカスタマイズを行うための方法である。
対応付けられる状態の種別は一致していなければならない。すなわち、種別が「開始」状態は同じく「開始」の状態としか対応付けを行うことが出来ない。
図13では、基底ワークフローWF1の「処置待ち」状態に対して状態の実体としての「処置待ち´」状態を対応付け、対応付けの方法として「継承」を選択している。つまり、基底ワークフローWF1から継承した「処置待ち」状態が、派生ワークフローWF2 で定義した「処置待ち´」状態によって「継承」の対応付けによってカスタマイズされることを定義している。この結果、派生ワークフローWF2の「処置待ち´」状態は、自身に定義されたイベントや関連属性だけでなく、WF1の「処置待ち」状態と同じイベントや関連属性も引き継いで持つことになる。
状態継承の定義画面W3に状態の実体や対応付けの方法を入力、編集することによって、状態継承定義テーブル202(図7)が作成、編集される。
派生ワークフローWF2の中の状態の実体(カスタマイズの対象となる状態)とその対応付け方法の定義がされた後は、状態の実体に対して具体的な編集(カスタマイズ)の作業に移行する。
図14は、状態の実体に対して関連属性を編集する画面W4を例示するものである。図14では、派生ワークフロー中の「処置待ち´」状態を指定し、「処置待ち´」状態で入力可能な(或いは編集可能な)関連属性と、必須入力項目であるか否かをチェックマーク「レ」で選択している様子を示している。
派生ワークフローWF2の「処置待ち´」状態は、基底ワークフローWF1の「処置待ち」状態を「継承」している。従って、基底ワークフローWF1の「処置待ち」状態で定義されている関連属性(「担当者」と「処置内容」)及びその必須属性をそのまま引き継いでいる。
一方、派生ワークフローWF2の「処置待ち´」状態に対して、新たな関連属性として「棄却理由」を付加するため、該当する欄にチェックマーク「レ」を入力している。
基底ワークフローWF1の「処置待ち」状態で既に定義されている関連属性や必須属性を変更することも出来る。あらたに関連属性や必須属性を付加する場合は該当する欄にチェックマーク「レ」を付加すれば良いし、定義済みの関連属性や必須属性を削除する場合には、チェックマーク「レ」の上からクリックしてチェックマーク「レ」を消去すれば良い。
また、基底ワークフローの各状態における関連属性や必須属性を定義する場合にも、図14の示した関連属性編集画面W4からチェックマーク「レ」を入力して定義することができる。ここで入力、編集したデータによって、状態/属性関連定義テーブル204(図9)が作成、編集される。
図15は、イベント編集画面W5の一例を示す図である。イベント編集画面W5は状態を指定することによって表示される。イベント編集画面W5によって、状態遷移を引き起こすための「イベント」と遷移先の状態とを編集することができる。
図15では、基底ワークフローWF1の「処置待ち」状態から継承されている「処置」イベントと、遷移先である「確認待ち」状態が自動的に表示されている。さらに図15では、派生ワークフローWF2の「処置待ち´」状態に新たに追加する「棄却」イベントをテキストボックス340に入力し、その遷移先である「終了」状態をドロップダウンリスト341から選択している様子を示している。
イベント編集画面W5では、既に定義されている基底ワークフローの状態のイベントや遷移先を「更新」ボタン342や「削除」ボタン343を利用して変更することもできる。また、基底ワークフローの状態に関するイベントや遷移先を新たに定義する場合にもイベント編集画面W5を利用することができる。
イベント編集画面W5で入力、編集されたデータによって、イベント定義テーブル205(図10)が作成、編集される。
基底ワークフローの状態は、他の状態だけではなく、別のワークフローに対応付けることも出来る。このとき、対応付けられるワークフローを部分ワークフローと呼ぶ。
基底ワークフローの状態に、部分ワークフローを継承で対応付ける場合のイベントや関連属性については次のように扱う。まず基底ワークフローの状態の関連属性は、部分ワークフローに含まれる状態の総てに対してそのまま引き継がれる。但し、部分ワークフロー側で関連属性を追加或いは削除するが可能である。
一方、カスタマイズされる状態に入ってくるイベントによる状態遷移先は、部分ワークフローの「開始」種別に該当する状態となる。また、カスタマイズされる状態から出て行くイベントは、部分ワークフローの「終結」種別に該当する状態に遷移したときに自動的に発生するイベントとなる。具体例で説明する。図3(c)に示したワークフローWF3は、基底ワークフローWF1を継承してカスタマイズした派生ワークフローである。
ワークフローWF3では、基底ワークフローWF1の「処置待ち」状態が部分ワークフローWF4に「継承」の方法で対応付けられている。
この場合、部分ワークフローWF4の「処置申請待ち」状態及び「処置承認待ち」状態は、基底ワークフローWF1の「処置待ち」状態に定義されている関連属性と同じ関連属性を引き継ぐことになる。また、部分ワークフローWF4に対しては図9において別途関連属性が定義されているため、上記の引き継いだ関連属性の他、「処置申請待ち」状態には「処置申請者」属性が、また「処置承認待ち」状態には「処置承認者」属性が新たに関連属性として定義されることになる。
一方、基底ワークフローWF1の「処置待ち」状態に入ってくるイベント(即ち、「登録」イベント)による遷移先は、部分ワークフローWF4の「開始」種別に該当する状態(即ち、「処置申請待ち」状態)となる。また、「処置待ち」状態から出て行くイベントは、部分ワークフローの「終結」種別に該当する状態(即ち「終了」状態)に遷移したときに自動的に発生するイベントとなる。つまり、「処置承認」イベントの結果、最終的には「確認待ち」に遷移することになる。
(3)ワークフローカスタマイズの制約方法
ここまでは、説明の便宜上、基底ワークフローから派生ワークフローをカスタマイズする際の制約がないものと仮定して派生ワークフローの作成、編集方法を説明してきた。しかしながら、前述したように、本実施形態に係るワークフロー作成管理システム1では、基底ワークフローをカスタマイズする場合に何らかの制約を課すことができることを特徴の1つとしている。以下、カスタマイズの制約方法について、(3−1)カスタマイズ制約のためのルールやポリシの定義フェーズ、(3−2)ルールやポリシの整合性確認フェーズ、(3−3)カスタマイズ制約の利用フェーズ、の3つのフェーズに分けて説明する。
ここまでは、説明の便宜上、基底ワークフローから派生ワークフローをカスタマイズする際の制約がないものと仮定して派生ワークフローの作成、編集方法を説明してきた。しかしながら、前述したように、本実施形態に係るワークフロー作成管理システム1では、基底ワークフローをカスタマイズする場合に何らかの制約を課すことができることを特徴の1つとしている。以下、カスタマイズの制約方法について、(3−1)カスタマイズ制約のためのルールやポリシの定義フェーズ、(3−2)ルールやポリシの整合性確認フェーズ、(3−3)カスタマイズ制約の利用フェーズ、の3つのフェーズに分けて説明する。
(3−1)カスタマイズ制約のためのルールやポリシの定義
本実施形態では、図2(a)或いは図16に示したように、ワークフロー管理者がカスタマイズ制約編集部30を利用してカスタマイズルールを定義し(カスタマイズルール定義テーブル302)、さらに定義したカスタマイズルールを統合してカスタマイズポリシを定義し(カスタマイズポリシ定義テーブル303)、これらのルールやポリシをカスタマイズルール/ポリシ定義データベース31に格納している。また、カスタマイズルールの定義に際しては、カスタマイズルール定義用データ301を予め作成してデータベース31に格納しておき、このカスタマイズルール定義用データ301を参照してカスタマイズルールを定義している。
本実施形態では、図2(a)或いは図16に示したように、ワークフロー管理者がカスタマイズ制約編集部30を利用してカスタマイズルールを定義し(カスタマイズルール定義テーブル302)、さらに定義したカスタマイズルールを統合してカスタマイズポリシを定義し(カスタマイズポリシ定義テーブル303)、これらのルールやポリシをカスタマイズルール/ポリシ定義データベース31に格納している。また、カスタマイズルールの定義に際しては、カスタマイズルール定義用データ301を予め作成してデータベース31に格納しておき、このカスタマイズルール定義用データ301を参照してカスタマイズルールを定義している。
図17は、カスタマイズルール定義用データ301の一例を示したものである。カスタマイズルールは、「ルールの対象」、「カスタマイズの種類」、「制約の方法」、及び「ルールの適用範囲」を規定することによって定義される。「ルールの対象」には、「状態」、属性(関連属性)、及びイベント(イベントによる遷移先も含む)がある。
「カスタマイズの種類」、「制約の方法」、及び「ルールの適用範囲」の具体的な内容は、図17に示したように、ルールの対象によって異なっている。なお、「カスタマイズの種類」を特定することによって自動的に「ルールの対象」も特定されることになる。例えば、「カスタマイズの種類」として「状態を追加・削除」を特定した場合には、「ルールの対象」として「状態」が自動的に特定されることになる。
なお、図17のデフォルト欄は、それぞれのルールについて特に指定がなかった場合に、どの範囲でどのようなカスタマイズ制約がかかるかを示している。
図18は、カスタマイズルール編集画面W10の一例を示した図である。カスタマイズルールは、「R1」、「R2」等のようにルール毎にルールIDを付す。そして、ルール毎に、「カスタマイズの種類」、「制約の方法」、及び「ルールの適用範囲」をドロップダウンリストやテキストボックスから選択或いは入力して定義する。「カスタマイズの種類」欄及び「制約の方法」欄には、図17に示した定義用データの中の該当する欄の項目がドロップダウンリストの選択肢として示される。
図19は、カスタマイズルール編集画面W10への入力によって定義されたカスタマイズルール定義テーブル302の一例を示す図である。このカスタマイズルール定義テーブル302によれば、カスタマイズルール「R1」は、ワークフロー中の「処置待ち」状態に対して適用されるルールであり、「処置待ち」状態の関連属性の種類に対して追加のみを認めるルールである。このルールが適用されると、例えば、基底ワークフローWF1の「処置待ち」状態の関連属性が「担当者」と「処置内容」である場合、これらの関連属性を削除したり他の種類に変更したりすることは禁止されることになる。
他方、カスタマイズポリシは、1つのカスタマイズルール又は複数のカスタマイズルールを統合して構成されるものである。1つのカスタマイズルールでは、ワークフロー要件の全体を表現することが困難である場合がある。このような場合に、個々のカスタマイズルールを組み合わせたカスタマイズポリシを定義することによって、ワークフロー要件の全体を表現する制約として管理することが可能になる。カスタマイズポリシには、任意の数のカスタマイズルールを含めることが出来る。
図20は、カスタマイズポリシの編集画面W11の一例を示す図である。1つのカスタマイズポリシには、例えば「P1」や「P2」といった名称をテキストボックスに入力することによってその名称がポリシIDとして割り付けられる。また、「ポリシに含むルール」欄のテキストボックスに、1つ又は複数のカスタマイズルールのルールIDを入力することによって、1つのカスタマイズポリシを構成するカスタマイズルールを定義することができる。これらのカスタマイズポリシや構成要素であるカスタマイズルールの組み合わせは、「更新」、「削除」ボタンによって編集することができる。
図21は、カスタマイズポリシ編集画面W11への入力によって定義されたカスタマイズポリシ定義テーブル303の一例を示す図である。このカスタマイズポリシ定義テーブル303によれば、カスタマイズポリシ「P1」は、2つのカスタマイズルール「R1」、「R2」の集合によって定義されていることを示している。また、カスタマイズポリシ「P10」も、2つのカスタマイズルール「R12」、「R22」の集合によって定義されていることを示している。なお、カスタマイズポリシ「RLSP」については後述する。
このように、カスタマイズ制約編集部30の機能を利用してカスタマイズルール及びカスタマイズポリシが定義され、カスタマイズルール/ポリシ定義データベース31に格納される。
上記のように、カスタマイズポリシは、ワークフローとは別個に定義される。このことは、カスタマイズポリシの独立性を高めることになり、一旦定義されたカスタマイズポリシは、異なるワークフローに対して任意に付加することができる。このことはまた、カスタマイズポリシの再利用性を高めることにもなる。
基底ワークフローにカスタマイズポリシを適用する場合には、別途基底ワークフローにカスタマイズポリシを付加する必要がある。カスタマイズポリシを基底ワークフローに付加する処理は、ワークフロー編集部20の機能を利用して行っている。
一旦基底ワークフローに付加されたカスタマイズポリシは、ワークフローが継承されるたびに、その派生ワークフローに継承されていく。また、継承されたカスタマイズポリシは、派生ワークフロー側で適用を除外するように定義することも出来る。これによってカスタマイズポリシを種々の目的に応じて再利用することが可能になる。
図22は、ワークフロー編集部20が提供するカスタマイズポリシ付加・編集画面W20の一例を示す図である。図21に示した例では、基底ワークフローWF1に対してカスタマイズポリシ「P1」が付加されていることを示している。
また、基底ワークフローWF1を継承する各派生ワークフローWF2、WF3、WF4に対しては、基底ワークフローWF1に付加したカスタマイズポリシP1が自動的に継承されることも示している。
なお、派生ワークフローWF10に対しては、一旦継承されたカスタマイズポリシP1の適用を除外し、新たにカスタマイズポリシP10を付加している。この場合、派生ワークフローWF10に対してはカスタマイズポリシP10だけが適用されることになる。
図22には示していないが、1つの基底ワークフローに対して複数のカスタマイズポリシを付加することもできる。また、派生ワークフローに継承されたカスタマイズポリシに対して、新たに別のカスタマイズポリシを付加することもできる。
(3−2)ルールやポリシの整合性確認
カスタマイズルールは個々に独立に定義される。カスタマイズポリシが2以上の複数のカスタマイズルールで構成される場合、1つのカスタマイズポリシ内におけるカスタマイズルール間の整合性が問題となる。つまり、互いに排他的なカスタマイズルールを組み合わせて1つのカスタマイズポリシを定義してしまうと、カスタマイズポリシによる制約に矛盾が生じてしまうことになるため、このようなことが起こらないように予めカスタマイズルール間のルールの整合性を確認しておく必要がある。カスタマイズルール間の整合性の確認が必要となる場面は、カスタマイズポリシを定義したときだけでなく、複数のカスタマイズポリシを1つの基底ワークフローに付加したときや、基底ワークフローを継承した派生ワークフローに対して新たなカスタマイズポリシを付加したとき等である。
カスタマイズルールは個々に独立に定義される。カスタマイズポリシが2以上の複数のカスタマイズルールで構成される場合、1つのカスタマイズポリシ内におけるカスタマイズルール間の整合性が問題となる。つまり、互いに排他的なカスタマイズルールを組み合わせて1つのカスタマイズポリシを定義してしまうと、カスタマイズポリシによる制約に矛盾が生じてしまうことになるため、このようなことが起こらないように予めカスタマイズルール間のルールの整合性を確認しておく必要がある。カスタマイズルール間の整合性の確認が必要となる場面は、カスタマイズポリシを定義したときだけでなく、複数のカスタマイズポリシを1つの基底ワークフローに付加したときや、基底ワークフローを継承した派生ワークフローに対して新たなカスタマイズポリシを付加したとき等である。
図23は、カスタマイズルール間の整合性を確認する処理例を示すフローチャートであり、主にどの場面で整合性確認の処理を行うかを示している。
ステップST1はカスタマイズルールを定義する処理であり、ステップST2はカスタマイズポリシを定義する処理である。いずれもカスタマイズ制約編集部30の機能を利用して行う処理である。カスタマイズポリシを定義した時点で、定義したカスタマイズポリシ内のルール間の整合性を確認する(ステップST3)。この確認処理はカスタマイズ制約編集部30が行う。具体的には次のようにして整合性確認を行う。
2つのルールが、同じカスタマイズの種類について、互いに包含するか重複する適用範囲であり、異なる制約の方法を定義している場合をルールが矛盾しているとし、その逆をルールの整合が取れているとする。ルールの適用範囲が重複せず互いに独立である場合は、同じカスタマイズの種類について複数のルールが存在して良い。例えば、ある状態に対してはイベントの追加のみを許可し、別のある状態に対してはイベントの追加を禁止するようなルールは矛盾せず、整合が取れている。
1つのカスタマイズポリシの整合性を確認するためには、カスタマイズポリシ内に含まれるカスタマイズルールのそれぞれが互いに整合が取れていることを確認する。例えば、全ての状態に対してイベントの追加のみを定義するルールと、ある特定の状態に対してイベントの削除のみを定義するルールを含むカスタマイズポリシは整合が取れていない。
ステップST3にて整合性の確認されたカスタマイズポリシだけが、データベース31に格納される(ステップST4)。
ステップST5は、カスタマイズポリシを基底ワークフローに付加する処理であり、ステップST6は、カスタマイズポリシが付加された基底ワークフローを継承しカスタマイズして派生ワークフローを作成する処理である。いずれの処理もワークフロー編集部20の機能を利用する処理である。これらの処理の後に、基底ワークフロー内、派生ワークフロー内、或いは継承したワークフローの各階層間での整合性を確認する(ステップST7)。
図24は、ステップ7のより詳細な処理例を示すフローチャートである。
まず、ステップST11にて、ワークフロー編集部20は、ワークフロー定義データベース21、及びカスタマイズルール/ポリシ定義データベース31を参照して、編集しようとしているワークフローを特定する。編集しようとしているワークフローが派生ワークフローの場合は、その基底ワークフローを特定する(基底ワークフローにさらに基底ワークフローがある場合は、先祖側に継承関係をたどり、もっとも先祖側の基底ワークフローを特定する)。
次に、特定したワークフローにカスタマイズポリシが付加されているか否かを確認し(ステップST12)、さらにそのカスタマイズポリシの適用が除外されていなかどうか確認する(ステップST13)。
次に、適用が除外されていないカスタマイズポリシに対して、カスタマイズポリシ内のルール間での整合性を確認する(ステップST14)。
引き続いて、ワークフローに付加されているカスタマイズポリシが複数ある場合は、複数のカスタマイズポリシに含まれる総てのカスタマイズルール間での整合性を確認する(ステップST15)。
次に、継承階層の異なる基底ワークフローに付加されているカスタマイズルールに含まれる総てのカスタマイズルールの整合を確認する(ステップST16)。
先祖側から子孫側に継承関係をたどりながら夫々のワークフローに対してステップ12からステップST16までの処理を繰り返す(ステップST17、ステップST18)。
以上の整合性確認処理によって、1つの基底ワークフローに付加された複数のカスタマイズポリシの整合性、及び継承によって生成される複数階層の派生ワークフロー全体におけるカスタマイズポリシの整合性を確認することができる。
なお、階層間のルールの整合条件は、同一カスタマイズポリシ内における整合条件を緩和したものとする。つまり、継承関係において子孫側のワークフローに付加されたカスタマイズポリシは、先祖に付加されたカスタマイズポリシと同じカスタマイズの種類・同じ制約の仕方であり、かつルールの適用範囲が子孫側のほうが狭ければ、整合しているものとする。同じカスタマイズの種類・制約の仕方であっても親より広い適用範囲を持つルールや、異なる制約の仕方を定義したルールは、継承関係があっても整合しないものとする。カスタマイズルールの整合条件に付いて整理したものを図25に示す。
(3−3)カスタマイズ制約の利用
上述したように、ワークフロー管理者は、ワークフロー編集部20の機能を利用して基底ワークフローや派生ワークフローを定義しこれらのワークフローの作成や編集を行う。ワークフローのカスタマイズは、つまるところワークフローの構成要素である「状態」、「関連属性」、「イベント」、「遷移先」等の追加や削除等の編集作業の繰り返しである。他方、カスタマイズの制約は、ワークフローの構成要素である「状態」、「関連属性」、「イベント」、「遷移先」等の追加や削除等の編集作業に対する制約として定義されるものである。
上述したように、ワークフロー管理者は、ワークフロー編集部20の機能を利用して基底ワークフローや派生ワークフローを定義しこれらのワークフローの作成や編集を行う。ワークフローのカスタマイズは、つまるところワークフローの構成要素である「状態」、「関連属性」、「イベント」、「遷移先」等の追加や削除等の編集作業の繰り返しである。他方、カスタマイズの制約は、ワークフローの構成要素である「状態」、「関連属性」、「イベント」、「遷移先」等の追加や削除等の編集作業に対する制約として定義されるものである。
本実施形態に係るワークフロー作成管理システム1では、定義したカスタマイズ制約が確実に遵守されるよう、カスタマイズ制約を具現化したユーザインタフェースを提供している。具体的には、前もってカスタマイズ制約に違反するような編集操作が出来ないようにユーザインタフェースの機能に制限を課すようにしている。これにより、編集作業を効率化してワークフロー管理者を支援することが可能になる。
図26は、ユーザインタフェースを構成する要素(以下、ユーザインタフェース部品、或いはUI部品という)とその機能制限の方法の一例を示す図である。
ワークフローの編集画面等のユーザインタフェースは、図26に例示したように、「テキストボックス」、「ドロップダウンリスト」、「ラジオボタン」、「操作ボタン」、リンクメニュー」等のUI部品によって構成されている。これらのUI部品に対して、図25に示したような入力制限方法を適用して外観や機能を変更することにより、編集画面等からのデータ入力やデータ選択を制限することができる。
図27は、カスタマイズ制約の対象と成るUI部品を選択し、選択したUI部品の外観や機能を変更する処理の一例を示すフローチャートである。図27に示した処理は、例えばワークフロー編集部20で実現されるものである。
まず、対象とするワークフローに含まれているある1つのカスタマイズルールを特定する。例えばカスタマイズルールRaを選ぶ(ステップST31)。次に、選んだカスタマイズルールRaについて、ワークフロー編集部20が提供する機能、即ち編集画面上で提供するそれぞれの機能について、禁止されているか否かを調べる(ステップST32)。例えば、指定された「状態」のイベント編集画面において、イベントの削除や追加、遷移先の変更、利用権限の変更の機能を提供しているとする。この場合、これらの機能が選んだカスタマイズルールRaによって制限されるか否かを判定する(ステップST32)。
カスタマイズルールRaによって制限されている場合には、編集画面状のUI部品について、どのUI部品が選んだカスタマイズルールR1と関係するかを順番に確認し、関係するUI部品の形態(外観や機能)をカスタマイズルールRaに従って変更する(ステップST34、35、36、37)。
次に、カスタマイズルールRaを他のカスタマイズルールに変更し、ステップST32からステップST37までの処理を繰り返す。これを、対象とするワークフローに含まれる総てのカスタマイズルールに対して実行する(ステップST38、39)。
以下、上記の処理を2つの具体例を用いて説明する。
図28は派生ワークフローWF2の「処置待ち´」状態を定義する際に、関連属性を編集するために提供されるユーザインタフェース(関連属性の編集画面W4)を模式的に示している。画面には、帳票データに定義されている属性の一覧が示され、設定を更新するための「更新」ボタンが提供されている。ワークフロー管理者は、チェックボックスにチェックを付けることで、現在編集中の状態に対する関連属性を設定し、「更新」ボタンをクリックすることで変更を反映することが出来る。
「処置待ち´」状態は、基底ワークフローWF1の「処置待ち」状態と「継承」によって対応付けられているので、「処置待ち」状態の関連属性の設定を引き継いでいる。ここでは、「担当者」「処置内容」がそれに該当する。
ワークフローWF2の基底ワークフローであるWF1には、図22に示したようにカスタマイズポリシP1が付加されている。また、カスタマイズポリシP1は、図21に示したようにカスタマイズルールR1を含む。カスタマイズルールR1は、図19に示したように「処置待ち」状態において、「関連属性の種類変更」を「追加のみ」に制限するルールである。
そこで、ワークフロー編集部20は、カスタマイズルールR1に従い、基底ワークフローから継承された状態(この場合「処置待ち´」状態)の関連属性の削除が出来ないようにする変更をユーザインタフェースのUI部品に加える。具体的には、「担当者」、「処置内容」に対応するチェックボックスの入力ができないように外観と機能を変更する。図28では、「担当者」、「処置内容」に該当するチェックボックスがグレーで表示されているが、これが外観の変更を示しており、機能的にもチェックマークが削除できないように変更されている。他方、グレー表示以外のチェックボックスでは追加が可能であり、図28に示しように「棄却理由」が追加可能である。このように、カスタマイズルールR1に従って、関連属性は、追加することは出来るが、削除が出来ないことがユーザインタフェース上で明確になっている。
図28は、カスタマイズルールR1を含むカスタマイズポリシP1を継承している場合のユーザインタフェースの変化例を示しているが、他のカスタマイズポリシが適用された場合には、これとは異なったユーザインタフェースに変化する。例えば、派生ワークフローWF10のように、カスタマイズポリシP1の適用を除外し、新たにカスタマイズポリシP10を適用したとする(図22参照)。カスタマイズポリシP10には、「処置待ち」状態の関連属性の変更を一切禁止するカスタマイズルールR11が含まれている(図19、21参照)。この場合、図28の「更新」ボタンが無効化され、関連属性の編集画面W4は、参照だけが可能な状態となる。
図29はユーザインタフェース変更の第2の具体例を示す図である。図29では、ワークフローWF2の「処置待ち´」状態を定義する際に、受け入れ可能なイベントを編集するために提供されるユーザインタフェースとしてイベント編集画面W5を模式的に示している。画面には、編集中の状態で受け入れ可能なイベントの一覧が表示されている。定義済みのイベントの設定を更新するための「更新」ボタン、イベントの削除を行うための「削除」ボタン、状態遷移先を変更するためのドロップダウンリスト、新しいイベントの名前を入力するためのテキストボックス、イベントの新規追加を行うための「追加」ボタンが提供されている。ワークフロー管理者は、定義済みイベントの状態遷移先をドロップダウンリストから選択したのち「更新」ボタンを押して設定を変更したり、「削除」ボタンを押してイベントを削除したり、テキストボックスとドロップダウンリストに新たなイベントの情報を入力してのち「追加」ボタンをしてイベントを追加したりすることが出来る。
「処置待ち´」は、基底ワークフローWF1の「処置待ち」状態と「継承」によって対応付けられているので、「処置待ち」状態のイベントの設定を引き継いでいる。ここでは、「処置」がそれに該当する。
ところで、派生ワークフローWF2の基底ワークフローであるWF1に付加されているカスタマイズポリシP1はカスタマイズルールR2を含んでいる(図21参照)。また、カスタマイズルールR2は、ワークフロー全体の状態において、「イベントの追加削除」を「追加のみ」に制限するルールである(図19参照)。
ワークフロー編集部20は、カスタマイズルールR2に従って、基底ワークフローから継承された状態のイベントの削除が出来ないようにする変更をユーザインタフェースに加える。図29では、「確認」イベントの削除操作に対応する「削除」ボタンは入力が無効化されている。図29のうちグレーで表示されている部分が無効化されている部分である。このことにより、ユーザインタフェース上で、この状態のイベントは、追加することは出来るが、削除が出来ないことが明確になっている。
図29のイベント編集画面W5において、他のカスタマイズポリシが適用されていた場合にはユーザインタフェースの変更内容も異なったものとなる。例えば、ワークフロー全体に対してイベントによる遷移先の変更を禁止するカスタマイズルールR12を含むカスタマイズポリシP10(図21参照)が適用されていた場合は、ドロップダウンリストが無効化され、遷移先が変更できないようにユーザインタフェースが変更される。一方、カスタマイズポリシP10は、カスタマイズルールR2を含んでいないためイベントの削除は可能である。従って、「削除」ボタンは無効化されないことになる。
(4)ワークフローの運用制御
上述したように、主としてカスタマイズ制約編集部30の機能を利用してカスタマイズ制約が作成・編集され、ワークフロー編集部20の機能を利用してカスタマイズ制約によって制限されたワークフローが作成・編集される。これらの作成・編集は、主にワークフロー管理者の操作による。
上述したように、主としてカスタマイズ制約編集部30の機能を利用してカスタマイズ制約が作成・編集され、ワークフロー編集部20の機能を利用してカスタマイズ制約によって制限されたワークフローが作成・編集される。これらの作成・編集は、主にワークフロー管理者の操作による。
一方、作成・編集されたワークフローは、ワークフロー制御部10の機能を利用して運用される。ワークフロー運用に関する操作は、主にワークフローユーザによって行われる。ワークフローユーザの主たる操作は、該当する「状態」の関連属性の入力と、イベントの入力である。
図30は、ワークフロー制御部10で行われる関連属性の入力やイベントの入力を受け付けるための処理、及びその後の処理例を示すフローチャートである。このフローチャートを、ワークフローWF2を例に挙げて説明する。
ステップST41は、現在の状態での関連属性の入力受付処理である。ワークフローは「開始」種別の「状態」から始める。ワークフロー制御部10は、まず「開始」種別に該当する「状態」を特定するために、ワークフローWF2についての状態定義テーブル201(図6)を参照する。状態定義テーブル201から、ワークフローWF2では、「開始」種別に該当する「状態」は定義されていないことがわかる。そこで、ワークフロー定義テーブル200(図5)を参照すると、ワークフローWF2がワークフローWF1を継承していることがわかる。そこで、ワークフローWF1についての状態定義テーブル201を参照すると、ワークフローWF1の「開始」種別に該当する「状態」が「登録待ち」状態であることがわかる。つまり、ワークフローWF2の開始では、ワークフローWF1の「登録待ち」状態と同様の振る舞いをすることになる。
「登録待ち」状態の振る舞いは、状態/属性関連定義テーブル204(図9)や、イベント定義テーブル205(図10)を参照することによって特定できる。具体的には、状態/属性関連定義テーブル204から、「登録待ち」状態で入力可能な関連属性は、「不具合番号」、「タイトル」、「発生日付」、「症状」、「重要度」等であることがわかる。また、これらの関連属性のうちどれが必須属性であるかもわかる。さらに、イベント定義テーブル205から、「登録待ち」状態で受け付けるイベントは、「登録」イベントであることがわかる。
ワークフロー制御部10は、これらの関連属性やイベントを入力するためのユーザインタフェース(入力画面)を提供する。ワークフローユーザは、ワークフロー制御部10が提供するこれらのユーザインタフェースに対して関連属性やイベントを入力する。ワークフロー制御部10は、入力された関連属性やイベントを受け付ける(ステップST41、ステップST43)。また必須属性が総て入力されたか否かを判断し(ステップST42)、必須属性が総て入力されていない場合は適宜入力を促すための表示等を行う。
関連属性やイベントを入力すると、ワークフロー制御部10はイベント特定処理(ステップST44)と遷移先特定処理(ステップST45)に移行する。
図31は、イベント特定処理(ステップST44)の細部処理例を示すフローチャートである。
ステップST51では、現在の状態に入力されたイベントが定義されているか否かを判定する。定義されていない場合には、基底ワークフローが存在するか否かを判断し(ステップST52)、その基底ワークフローに対応関係のある「状態」が存在するかどうかをさらに判断し(ステップST53)、対応関係にある「状態」に入力されたイベントが定義されているかどうかを判断する(ステップST54)。これを、対応関係にある「状態」に入力されたイベントが定義されている基底ワークフローが見つかるまで繰り返す(ステップST55)。イベントの定義が確認されると、そのイベントを正しいイベントとして特定する(ステップST56)。
今の例では、ワークフローWF2には「登録」イベントは定義されていないため、基底ワークフローWF1の「登録待ち」状態のイベント定義テーブルを参照する。ここには「登録」イベントが定義されているため、「登録」イベントを正しいイベントとして特定する。
次に遷移先特定処理(ステップST45)に移る。図32は、遷移先特定処理の細部処理例を示すフローチャートである。
ステップST61では、現在の状態と特定されたイベントに対して遷移先が定義されているか否かを判定する。定義されていない場合には、基底ワークフローが存在するか否かを判断し(ステップST62)、その基底ワークフローに対応関係のある「状態」が存在するかどうかをさらに判断し(ステップST63)、対応関係にある「状態」と、特定されたイベントに対して遷移先が定義されているかどうかを判断する(ステップST64)。これを、遷移先が定義されている基底ワークフローが見つかるまで繰り返す(ステップST65)。遷移先の定義が確認されると、その遷移先が「状態の実体」をもつか否かを判断する(ステップST66)。「状態の実体」を持たない場合は、先に確認した遷移先を正しい遷移先とした特定する(ステップST68)。一方、「状態の実体」を持つ場合には、「状態の実体」に対応付けられている「状態」に変更して(ステップST67)、ステップST66へ戻る。
この処理を前述の例で説明すると、確定された「登録」イベントによる遷移先はワークフローWF1の「処置待ち」状態である。さらに、現在のワークフローで「処置待ち」状態がカスタマイズされているかを調べると、ワークフローWF2で「処置待ち」状態の実体として、「処置待ち´」状態が定義されていることが分かる。従って、ワークフローは「処置待ち´ 」状態に遷移する。
次に、ワークフロー制御部10が「処置待ち´」状態で、「処置」イベントを受け取ったとする。ワークフロー制御部10は、「処置待ち´」状態に対してイベント特定処理を実行する。イベント定義テーブル205を参照して「処置待ち´」状態の受け入れ可能イベントに「処置」イベントがあるかどうかを調べると、それがないことが分かる。そこで、基底ワークフローWF1での定義を調べるために、状態継承定義テーブル202を参照すると、「処置待ち´」状態はワークフローWF1の「処置待ち」状態を「継承」の方法でカスタマイズしていることが分かる。そこで、イベント定義テーブル205を参照して「処置待ち」状態の受け入れ可能イベントを調べると、「処置」イベントが受け入れ可能であり、遷移先が「確認待ち」状態であることが分かる。この結果、ワークフローを遷移先である「確認待ち」状態に遷移させれば良いことが分かる。遷移先である「確認待ち」状態は、ワークフローWF2ではカスタマイズされていないので、基底ワークフローであるワークフローWF1の「確認待ち」を参照する。
ワークフローWF2の「確認待ち´」状態は、ワークフローWF1の「確認待ち」状態と同様の振る舞いをする。つまり、「確認」イベントによってワークフローWF2の「確認待ち´」状態から、ワークフローWF2の「終了」状態に遷移する。ワークフロー制御部10は、状態遷移が完了するごとに、ワークフローが「終結」種別の状態に達したかどうかのチェックを行う。ワークフローWF2の「終了」状態に対応するワークフローWF1の「終了」状態は、状態定義テーブルによると、「終結」種別の状態であるので、ワークフローWF2の処理はここで完了する。
(5)複数のワークフロー作成管理システム間での連携動作
本実施形態に係るワークフロー作成管理システム1では、複数のワークフロー作成管理システム1間でワークフローを連携させて運用することも出来る。ワークフローの連携方法は、連携元ワークフロー作成管理システム1で定義する。連携を定義するワークフロー作成管理システム1は、連携させたいワークフローの任意のイベントの遷移先として、例えば別サーバで稼動する他のワークフロー作成管理システム1の任意のワークフローの任意の状態を指定する。このワークフローを運用する場合は、ワークフロー連携部40により、イベントや状態データを連携先のワークフロー作成管理システム1にネットワーク(図示せず)を介して送信する。
本実施形態に係るワークフロー作成管理システム1では、複数のワークフロー作成管理システム1間でワークフローを連携させて運用することも出来る。ワークフローの連携方法は、連携元ワークフロー作成管理システム1で定義する。連携を定義するワークフロー作成管理システム1は、連携させたいワークフローの任意のイベントの遷移先として、例えば別サーバで稼動する他のワークフロー作成管理システム1の任意のワークフローの任意の状態を指定する。このワークフローを運用する場合は、ワークフロー連携部40により、イベントや状態データを連携先のワークフロー作成管理システム1にネットワーク(図示せず)を介して送信する。
複数のワークフロー作成管理システム1間でワークフローを連携する場合、基底ワークフローとカスタマイズポリシとを互いに共有し、そこから派生させたワークフロー同士を連携させることによって状態の対応付けなどが容易となる。さらに、ワークフロー作成管理システム1毎に、基底ワークフローから派生してカスタマイズした派生ワークフローが基底ワークフローに付加されていたカスタマイズポリシに違反していないことを確認することで、連携先のワークフローが、基底ワークフローの要件を満たしていることを確認できる。また、連携定義したワークフローを運用する際にも、同様の確認を行うことで、いつのまにかカスタマイズポリシに違反するようなカスタマイズが行われてしまった場合にも、運用中に異常を検出することが出来る。
以下にワークフローを連携定義する際に、カスタマイズポリシの遵守を確認するための手順を示す。なお、連携先のワークフローは、連携元のワークフローと基底ワークフローおよび付加されるカスタマイズポリシを共有しているものとする。
(STEP1)
ワークフロー管理者は、連携元のワークフロー作成管理システム1で、連携方法を指定する。具体的には、連携先に遷移する「状態」及びその「イベント」、連携先のワークフロー作成管理システム1が稼動するサーバ等の機器識別情報、連携先のワークフロー名、遷移先の「状態」等を指定する。
ワークフロー管理者は、連携元のワークフロー作成管理システム1で、連携方法を指定する。具体的には、連携先に遷移する「状態」及びその「イベント」、連携先のワークフロー作成管理システム1が稼動するサーバ等の機器識別情報、連携先のワークフロー名、遷移先の「状態」等を指定する。
(STEP2)
連携元のワークフロー作成管理システム1は、ワークフロー管理者が指示した連携先の別サーバのワークフロー作成管理システム1に対して、連携先のワークフローが基底ワークフローを継承しており、かつ指定したカスタマイズポリシに違反してカスタマイズされていないことを問い合わせる。
連携元のワークフロー作成管理システム1は、ワークフロー管理者が指示した連携先の別サーバのワークフロー作成管理システム1に対して、連携先のワークフローが基底ワークフローを継承しており、かつ指定したカスタマイズポリシに違反してカスタマイズされていないことを問い合わせる。
具体的には、連携先のワークフロー、基底ワークフロー、遵守すべきカスタマイズポリシの情報を、ワークフロー連携部40を介して送信する。
(STEP3)
連携先のワークフロー作成管理システム1は、ワークフロー連携部40を介して問い合わせ内容を受信する。ワークフロー連携部40は、連携定義することが妥当であるかを確認する。具体的には、指定された連携先ワークフローおよびその基底ワークフローが存在すること、指定された指定されたワークフローおよび基底ワークフローに指定された「状態」が存在し継承関係があること、指定されたカスタマイズポリシが存在すること、指定されたカスタマイズポリシが指定された基底ワークフローに適用されていること、指定されたワークフローが指定されたカスタマイズポリシを守ってカスタマイズされていること、等を確認する。
連携先のワークフロー作成管理システム1は、ワークフロー連携部40を介して問い合わせ内容を受信する。ワークフロー連携部40は、連携定義することが妥当であるかを確認する。具体的には、指定された連携先ワークフローおよびその基底ワークフローが存在すること、指定された指定されたワークフローおよび基底ワークフローに指定された「状態」が存在し継承関係があること、指定されたカスタマイズポリシが存在すること、指定されたカスタマイズポリシが指定された基底ワークフローに適用されていること、指定されたワークフローが指定されたカスタマイズポリシを守ってカスタマイズされていること、等を確認する。
(STEP4)
連携先のワークフロー作成管理システム1は、確認結果を問い合わせ元のワークフロー作成管理システム1に送信する。
連携先のワークフロー作成管理システム1は、確認結果を問い合わせ元のワークフロー作成管理システム1に送信する。
(STEP5)
連携元のワークフロー作成管理システム1は、問い合わせへの回答を受信し、回答の内容によって処理を変更する。回答内容が正常であれば現在の連携定義のままで連携動作が可能である。逆に、回答内容が異常であればワークフロー管理者にその旨を通知する。
連携元のワークフロー作成管理システム1は、問い合わせへの回答を受信し、回答の内容によって処理を変更する。回答内容が正常であれば現在の連携定義のままで連携動作が可能である。逆に、回答内容が異常であればワークフロー管理者にその旨を通知する。
上記の確認処理は、ワークフローを連携定義するときだけでなく、連携定義したワークフローを運用する際にも同様の手順で行うことが出来る。
ワークフローを連携させるために共有すると有益なカスタマイズポリシの例としては、リスコフ置換原則(LSP: Liskov Substitution Principle)が挙げられる。LSPはオブジェクト指向プログラミングにおいて、クラスの多態性を利用して派生クラスを基底クラスであるかのように扱い、オブジェクトの互換性を利用するための条件を示したものである。LSPでは、あるクラスSのオブジェクトO2を用いて記述されたプログラムPにおいて、別のクラスTのオブジェクトO1を用いても、プログラムPの結果が変わらない場合にクラスSをクラスTの派生型と呼ぶ。これをクラスにおいて実現するためには、クラスSにおいてプログラムPで利用されるメソッドのインタフェースがクラスTよりも広く、クラスSによる状態変化がより狭い範囲になる必要がある。
LSPは、プログラミングにおける原則であるので、ワークフローの定義に直接適用することは出来ない。ワークフローでこの条件を実現する場合、クラスのメソッドによる状態変化の作用をワークフローのイベントによる状態遷移と帳票の属性の変化に対応付ける方法が考えられる。この方法(LSPに準拠した方法)で定義したカスタマイズルールの例(R21〜R26)を図33に示す。状態については、上書きによる編集は許可しない。イベントについては、イベントの削除は禁止し、派生ワークフローの既存のイベントの遷移先の状態は、継承した元のワークフローの状態か、それをカスタマイズした状態でなければならない。属性については、編集可能属性および必須属性はより少なく、入力できる属性値の範囲はより狭く定義する。
LSPに準拠した方法で定義されたカスタマイズルール(R21〜R26)を組み合わせたカスタマイズポリシをPLSPと呼ぶ。PLSPをワークフローに適用することで、連携元システムから、派生ワークフローを基底ワークフローのように扱っても、状態遷移の範囲及び属性値の変化が基底ワークフローと連携した場合の範囲に限定される。また、基底ワークフローが持つイベントが保持されるので、連携の定義において指定する状態同士の関係を変更する必要がなく、カスタマイズが行われた場合でも、連携の再定義が必要ない。このように、PLSPを遵守することで、ワークフローを連携して定義運用する上で互換性を維持することが出来る。
以上説明してきたように、本実施形態に係るワークフロー作成管理システム1及びワークフロー作成管理方法によれば、ワークフローをカスタマイズする際に、単純に「状態」の上書きの許可・禁止を行うだけではなく、より詳細にカスタマイズ制約を記述することができる。具体的には、「状態」、「イベント(遷移先も含む)」、及び「属性」の各要素に対して様々なカスタマイズ制約を定義することができる。また、個々の「状態」、「イベント」、「属性」のみを対象にしてカスタマイズ制約を定義するだけではなく、ワークフローの全体、特定の状態等といった制約の適用範囲も定義することができる。
この結果、ワークフローの要件を守りつつ、派生ワークフローのカスタマイズ制約をより詳細かつ効率的に定義することができる。
また、ワークフローのカスタマイズ制約は、ワークフローと独立したカスタマイズポリシとして定義し、カスタマイズポリシを自由に組み合わせてワークフローに付加することができる。このため、同種のカスタマイズ制約を繰り返し記述することなく、複数のワークフローに対して一元的に管理されたカスタマイズポリシを適用することができる。
また、カスタマイズ制約は階層化して定義することができる。具体的には、カスタマイズ制約を、1種類のカスタマイズ制約を表現するカスタマイズルールと、複数のカスタマイズルールから構成されるカスタマイズポリシとして定義し、複数のカスタマイズルールを包括的に定義することができる。また、1つのワークフローに複数のカスタマイズポリシを付加することもできる。さらに、必要に応じてカスタマイズポリシの適用を除外したり追加したりすることもできる。
この結果、カスタマイズ制約の表現が簡潔となり、カスタマイズ制約の管理や利用が容易となる他、様々な用途に応じて柔軟にカスタマイズ制約を利用することができる。
また、本実施形態にかかるワークフロー作成管理システム1では、定義したカスタマイズ制約を具現化するユーザインタフェースを提供している。具体的には、ワークフローを編集するための編集画面において、一部のUI部品を無効化する、或いは選択できる入力候補の範囲を絞る等して、カスタマイズ制約に違反したワークフローの編集操作ができないようにしている。
この結果、規定されたワークフロー制約をいちいち参照、確認することなく、カスタマイズ制約が遵守されたワークフローを容易に編集することができる。
また、本実施形態に係るワークフロー作成管理システム1及びワークフロー作成管理方法によれば、複数のワークフロー作成管理システム1間で連携したワークフローの定義及び運用が可能となる。基底ワークフローとそれに付加されたカスタマイズポリシを共有すると共に、連携先のワークフロー作成管理システム1におけるカスタマイズ制約を確認することによって、基底ワークフロー要件が満たせないようなワークフローとの連携を回避することができる。
このように、本実施形態に係るワークフロー作成管理システム1及びワークフロー作成管理方法によれば、基底のワークフローをカスタマイズして派生ワークフローを作成する際に、ワークフローの構成要素に対して種々の制約を一元的かつ包括的に設定することができると共に設定した制約の違反を回避しつつ容易にワークフローを作成できる他、他システムの制約違反を監視しつつ他システムと連携動作することができる。
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
1 ワークフロー作成管理システム
10 ワークフロー制御部
11 状態データデータベース
20 ワークフロー編集部
21 ワークフロー定義データベース
30 カスタマイズ制約編集部
31 カスタマイズルール/ポリシ定義データベース
40 ワークフロー連携部
10 ワークフロー制御部
11 状態データデータベース
20 ワークフロー編集部
21 ワークフロー定義データベース
30 カスタマイズ制約編集部
31 カスタマイズルール/ポリシ定義データベース
40 ワークフロー連携部
Claims (16)
- 状態遷移モデルとして表現されるワークフローを作成し管理するワークフロー作成管理システムにおいて、
基底ワークフローを継承した派生ワークフローを定義することによって、前記基底ワークフローをカスタマイズした前記派生ワークフローを作成するワークフロー編集部と、
前記基底ワークフロー及び前記派生ワークフローに含まれる状態及び状態の定義情報を格納するワークフロー定義データベースと、
を備え、
前記ワークフロー編集部は、
前記基底ワークフローに含まれる状態と、前記状態に対応する前記派生ワークフローの状態との差分を定義することによって前記派生ワークフローを作成する、
ことを特徴とするワークフロー作成管理システム。 - 前記状態の定義情報には、
前記状態の属性、前記状態の遷移を引き起こすイベント、及び遷移先、並びにこれらの関連付けが定義された情報、
が含まれることを特徴とする請求項1に記載のワークフロー作成管理システム。 - 前記ワークフロー編集部は、
前記基底ワークフローに含まれる特定の状態を他の状態に対応付けることによって、又は前記特定の状態を部分ワークフローに対応付けることによって、前記差分を定義する、
ことを特徴とする請求項1に記載のワークフロー作成管理システム。 - 前記ワークフロー編集部は、
前記対応付けにおいて、前記特定の状態の定義情報を前記他の状態の定義情報として継承することが可能である一方、継承した前記状態の定義情報の一部を変更することが可能である、
ことを特徴とする請求項3に記載のワークフロー作成管理システム。 - 前記基底ワークフローをカスタマイズして派生ワークフローを作成するときに課す制約を定義し編集する制約編集部、をさらに備え、
前記ワークフロー編集部は、
前記制約に基づいて前記派生ワークフローの作成を制限する、
ことを特徴とする請求項1に記載のワークフロー作成管理システム。 - 前記ワークフロー編集部は、
前記派生ワークフローを定義するさいのユーザインタフェースの一部を無効化することによって前記派生ワークフローの作成を制限する、
ことを特徴とする請求項5に記載のワークフロー作成管理システム。 - 他のワークフロー作成管理システムと連接してワークフローの連携を行うワークフロー連携部、をさらに備え、
前記ワークフロー連携部は、
連携を行おうとするワークフローに関して、前記他のワークフロー作成管理システムから送信された制約と自己の制約編集部にて編集された制約とを照合し、両制約間に矛盾が検出された場合にはその旨を前記他のワークフロー作成管理システムに通知する、
ことを特徴とする請求項5に記載のワークフロー作成管理システム。 - 前記状態の属性の入力及び前記状態の遷移を引き起こすイベントの入力によって、作成された前記基底ワークフロー又は前記派生ワークフローの運用を制御するワークフロー制御部、をさらに備え、
前記ワークフロー制御部は、
前記派生ワークフローの運用を制御する場合には、継承元の前記基底ワークフローの状態及びその状態の定義情報を参照する、
ことを特徴とする請求項1に記載のワークフロー作成管理システム。 - 状態遷移モデルとして表現されるワークフローを作成し管理するワークフロー作成管理方法において、
(a)基底ワークフローを継承した派生ワークフローを定義することによって、前記基底ワークフローをカスタマイズした前記派生ワークフローを作成し、
(b)前記基底ワークフロー及び前記派生ワークフローに含まれる状態及び状態の定義情報を格納する、
ステップを備え、
ステップ(a)では、
前記基底ワークフローに含まれる状態と、前記状態に対応する前記派生ワークフローの状態との差分を定義することによって前記派生ワークフローを作成する、
ことを特徴とするワークフロー作成管理方法。 - 前記状態の定義情報には、
前記状態の属性、前記状態の遷移を引き起こすイベント、及び遷移先、並びにこれらの関連付けが定義された情報、
が含まれることを特徴とする請求項9に記載のワークフロー作成管理方法。 - ステップ(a)では、
前記基底ワークフローに含まれる特定の状態を他の状態に対応付けることによって、又は前記特定の状態を部分ワークフローに対応付けることによって、前記差分を定義する、
ことを特徴とする請求項9に記載のワークフロー作成管理方法。 - ステップ(a)では、
前記対応付けにおいて、前記特定の状態の定義情報を前記他の状態の定義情報として継承することが可能である一方、継承した前記状態の定義情報の一部を変更することが可能である、
ことを特徴とする請求項11に記載のワークフロー作成管理方法。 - (c)前記基底ワークフローをカスタマイズして派生ワークフローを作成するときに課す制約を定義し編集するステップ、をさらに備え、
ステップ(a)では、
前記制約に基づいて前記派生ワークフローの作成を制限する、
ことを特徴とする請求項9に記載のワークフロー作成管理方法。 - ステップ(a)では、
前記派生ワークフローを定義するさいのユーザインタフェースの一部を無効化することによって前記派生ワークフローの作成を制限する、
ことを特徴とする請求項13に記載のワークフロー作成管理方法。 - (d)他のワークフロー作成管理システムと連接してワークフローの連携を行う、ステップをさらに備え、
ステップ(d)では、
連携を行おうとするワークフローに関して、前記他のワークフロー作成管理システムから送信された制約と自己の制約編集部にて編集された制約とを照合し、両制約間に矛盾が検出された場合にはその旨を前記他のワークフロー作成管理システムに通知する、
ことを特徴とする請求項13に記載のワークフロー作成管理方法。 - (e)前記状態の属性の入力及び前記状態の遷移を引き起こすイベントの入力によって、作成された前記基底ワークフロー又は前記派生ワークフローの運用を制御する、ステップをさらに備え、
ステップ(e)では、
前記派生ワークフローの運用を制御する場合には、継承元の前記基底ワークフローの状態及びその状態の定義情報を参照する、
ことを特徴とする請求項9に記載のワークフロー作成管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007249448A JP2009080648A (ja) | 2007-09-26 | 2007-09-26 | ワークフロー作成管理システム及びワークフロー作成管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007249448A JP2009080648A (ja) | 2007-09-26 | 2007-09-26 | ワークフロー作成管理システム及びワークフロー作成管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009080648A true JP2009080648A (ja) | 2009-04-16 |
Family
ID=40655353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007249448A Pending JP2009080648A (ja) | 2007-09-26 | 2007-09-26 | ワークフロー作成管理システム及びワークフロー作成管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009080648A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070294A1 (ja) * | 2010-11-26 | 2012-05-31 | 日本電気株式会社 | 可用性評価装置及び可用性評価方法 |
JP2012118693A (ja) * | 2010-11-30 | 2012-06-21 | Hitachi Omron Terminal Solutions Corp | ガイダンスフロー編集ツール |
JP2013080351A (ja) * | 2011-10-03 | 2013-05-02 | Fujitsu Ltd | 図形作成支援プログラムおよび図形作成支援装置 |
CN103606049A (zh) * | 2013-11-25 | 2014-02-26 | 方正国际软件有限公司 | 用于医疗系统的业务流程管理系统和业务流程管理方法 |
CN111680918A (zh) * | 2020-06-09 | 2020-09-18 | 浙江师范大学 | 智能制造服务流程确定方法及系统 |
JP7418180B2 (ja) | 2019-11-06 | 2024-01-19 | 共同印刷株式会社 | トレーサビリティシステム、トレーサビリティ方法およびトレーサビリティプログラム |
-
2007
- 2007-09-26 JP JP2007249448A patent/JP2009080648A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070294A1 (ja) * | 2010-11-26 | 2012-05-31 | 日本電気株式会社 | 可用性評価装置及び可用性評価方法 |
JP5803935B2 (ja) * | 2010-11-26 | 2015-11-04 | 日本電気株式会社 | 可用性分析装置及び可用性分析方法 |
US9235423B2 (en) | 2010-11-26 | 2016-01-12 | Nec Corporation | Availability evaluation device and availability evaluation method |
JP2012118693A (ja) * | 2010-11-30 | 2012-06-21 | Hitachi Omron Terminal Solutions Corp | ガイダンスフロー編集ツール |
JP2013080351A (ja) * | 2011-10-03 | 2013-05-02 | Fujitsu Ltd | 図形作成支援プログラムおよび図形作成支援装置 |
CN103606049A (zh) * | 2013-11-25 | 2014-02-26 | 方正国际软件有限公司 | 用于医疗系统的业务流程管理系统和业务流程管理方法 |
JP7418180B2 (ja) | 2019-11-06 | 2024-01-19 | 共同印刷株式会社 | トレーサビリティシステム、トレーサビリティ方法およびトレーサビリティプログラム |
CN111680918A (zh) * | 2020-06-09 | 2020-09-18 | 浙江师范大学 | 智能制造服务流程确定方法及系统 |
CN111680918B (zh) * | 2020-06-09 | 2024-03-19 | 浙江师范大学 | 智能制造服务流程确定方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348774B2 (en) | Method and system for managing security policies | |
US7933952B2 (en) | Collaborative document authoring | |
Bry et al. | Realizing business processes with ECA rules: Benefits, challenges, limits | |
US10768978B2 (en) | Management system and management method for creating service | |
JP2009080648A (ja) | ワークフロー作成管理システム及びワークフロー作成管理方法 | |
US8655856B2 (en) | Method and apparatus for policy distribution | |
US10606581B2 (en) | Management system for creating service | |
JP2006099728A (ja) | 共同アプリケーションにおけるワークフローの関連付け | |
US20090228427A1 (en) | Managing document work sets | |
JP2006512670A (ja) | 統合型プロセス・モデラーのための方法及び装置 | |
JP5426578B2 (ja) | コードレスプロビジョニング | |
US20110022437A1 (en) | Enabling collaboration on a project plan | |
JP2011192078A (ja) | タスク管理装置及びタスク管理プログラム | |
US8121882B2 (en) | Standard process and resource reference and instance | |
US20130297517A1 (en) | Web-based workflow automation system | |
JP2004310742A (ja) | サービス処理方法及び装置 | |
Ayed et al. | Deploying access control in distributed workflow | |
JP7256919B1 (ja) | 業務システム用の権限管理システム | |
Karusseit et al. | A web-based runtime-reconfigurable role management service | |
JP2003208500A (ja) | ビジネスプロセス定義表示方法、システムおよびプログラム | |
XRAS Team | XSEDE Resource Allocation System (XRAS) 1.0 | |
Rehak | e-Framework Definitions and Terminology | |
Hild et al. | Site Provisioning Workflows | |
JP2010055584A (ja) | アプリケーション動作基盤システム | |
JP2016143331A (ja) | プロセス管理プログラム、プロセス管理方法及びプロセス管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100426 |