JP3267066B2 - ワークフロー支援システム - Google Patents

ワークフロー支援システム

Info

Publication number
JP3267066B2
JP3267066B2 JP23700794A JP23700794A JP3267066B2 JP 3267066 B2 JP3267066 B2 JP 3267066B2 JP 23700794 A JP23700794 A JP 23700794A JP 23700794 A JP23700794 A JP 23700794A JP 3267066 B2 JP3267066 B2 JP 3267066B2
Authority
JP
Japan
Prior art keywords
rule
task
workflow
execution
selecting
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.)
Expired - Fee Related
Application number
JP23700794A
Other languages
English (en)
Other versions
JPH08101817A (ja
Inventor
祥一 林
徹 荒谷
吉浩 申
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP23700794A priority Critical patent/JP3267066B2/ja
Priority to US08/534,384 priority patent/US5832455A/en
Publication of JPH08101817A publication Critical patent/JPH08101817A/ja
Application granted granted Critical
Publication of JP3267066B2 publication Critical patent/JP3267066B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063114Status monitoring or status determination for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の情報処理装置が
ネットワークによって接続された分散環境におけるグル
ープワークおよびワークフローの支援を行なうワークフ
ロー支援システムに関するものである。
【0002】
【従来の技術】一般にワークフローとは、仕事の流れを
指す。例えば、会社の中で、ある人が物品の購入を行な
う場合を考える。その人は、まず、購入伝票を作成し、
上司のもとへ作成した購入伝票を持って行く。上司は購
入伝票をチェックし、承認印を押して経理部門へ購入伝
票を回す。経理部門では、購入伝票に基づき、物品を発
注する。以降、まだまだ仕事は続くが、ここまでの仕事
の流れを見てもわかるように、購入伝票がある人からそ
の上司へ、また、上司から経理部門へと流れ、仕事が進
んで行く。このような仕事の流れをワークフローと呼ん
でいる。
【0003】ここで、購入伝票を作成する仕事、購入伝
票をチェックして承認印を押す仕事、物品を発注する仕
事などは、それぞれが仕事の単位であり、各仕事の単位
をタスクと呼ぶ。ワークフローは、タスクの列であると
いうことができる。また、各タスクは、さらに複数のタ
スクに分割されることもある。各タスクは、上述の例の
ように人が行なう仕事の場合もあるし、また、例えば、
データベース検索のように、コンピュータが自動的に行
なう仕事の場合もある。
【0004】近年の情報処理装置の普及から、それぞれ
の仕事を行なう現場に端末などの情報処理装置を配置
し、これらの複数の情報処理装置をネットワークで接続
した分散環境が構成されている。各情報処理装置のユー
ザは、それぞれ受け持ちの仕事を行なうことになる。
【0005】従来より、このような分散環境において、
複数の情報処理装置のユーザにまたがるワークフローを
支援するシステムの開発が進められている。それらのシ
ステムは、多くの場合、電子メールに基づいている。電
子メールとして送られるドキュメントの配送経路を定義
することによってワークフローを定義する。例えば、上
述の購入伝票の例では、購入伝票の作成者から上司を経
て経理部門へ至る配送経路を定義し、購入伝票を電子メ
ールとして送る。この電子メールに基づくシステムで
は、基本的にドキュメントがユーザ環境を移動し、移動
した先で手続きを実行したり条件を評価することによっ
て、さらに次の行き先を一意に決定する。配送経路にい
くつかの選択肢がある場合には、各々の経路に進む条件
が定義され、ドキュメントの特定の部分などを状態とし
て参照することによって、1つの経路を決定する。この
ような配送経路をグラフィカルユーザインタフェースを
用いて定義するシステムもある。
【0006】このように、従来のシステムでは、ドキュ
メントの配送経路を自動的に決定することによって、ワ
ークフローを実現するものであり、ドキュメント主導の
システムである。手続の管理については、全てサーバで
管理するものや、各ユーザ環境ごとに管理するもの、あ
るいは配送されるドキュメントに埋め込むものなどがあ
る。
【0007】しかしながら従来のワークフロー支援シス
テムでは、電子メールが順に送られて行く宛先を最初か
ら決定しておかなければならなかった。また、ワークフ
ローのためにルールが手続的に記述することのできるシ
ステムも開発されているが、やはり一意に宛先が決定す
るように、手続きの記述を行なわなければならない。こ
のとき、例えば、次のタスクに進む前に値が確定しなけ
ればならない変数が各タスクごとに決定されている場合
もあり、記述する手続きは複雑にならざるを得ないとと
もに、ワークフローのルールに記述されたタスクの実行
順序に柔軟性を持たせて実行することができない。
【0008】また、あらかじめ想定し、ルールに記述し
ておくことができないような例外が発生した場合の対処
が極めて困難であり、例外が発生した時点のみならず、
以降のワークフロー全体に関してシステムの利用が不可
能となるという問題もある。
【0009】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、あるワークフローの全体に
ついてや、厳密にその条件や順序を知らなくても、ユー
ザが、各自の近傍の把握している条件や仕事のやり方を
ルール化するだけで、その部分が自動化でき、また、そ
れらの部分フロー間や、まだルール化されていないため
に人間が行なったタスクとのつながりを管理し、自動的
にフロー全体の実行や、成果物の受け渡しを制御しワー
クフローを支援するワークフロー支援システムを提供す
ることを目的とするものである。
【0010】
【課題を解決するための手段】本発明は、請求項1に記
載の発明においては、ネットワークによって接続された
分散システムを用いてワークフローを支援するワークフ
ロー支援システムにおいて、発生したタスクに対するル
ールの適用の可否を判定するための条件部とタスク列で
ある実行部からなりあるタスクから次に実行すべきタス
ク列への展開を宣言的に記述したワークフローのための
ルールを格納する複数のルール群格納手段と、該ルール
群格納手段のそれぞれと対応して設けられ対応する前記
ルール群格納手段に格納されたルールに含まれる前記タ
スクを起動するルール解釈実行手段と、起動された前記
タスクに対して適合する条件部を持つルールをタスクの
起動時に選択し選択されたルールを保持する前記ルール
群格納手段と対応して設けられた前記ルール解釈実行手
段に前記タスクを受け渡すルール選択手段を有し、前記
ルール選択手段は、選択されたルールがタスクを起動し
た前記ルール解釈実行手段に対応したルール群格納手段
に存在しないとき他のルール解釈実行手段に前記タスク
を受け渡し、前記ルール解釈実行手段は、前記ルール選
択手段により受け渡されたタスクに適合する条件部を持
つルールの実行部のタスクを順次起動することを特徴と
するものである。
【0011】また、請求項2に記載の発明においては、
ネットワークによって接続された分散システムを用いて
ワークフローを支援するワークフロー支援システムにお
いて、発生したタスクに対するルールの適用の可否を判
定するための条件部とタスク列である実行部からなりあ
るタスクから次に実行すべきタスク列への展開を宣言的
に記述したワークフローのためのルールを格納する複数
のルール群格納手段と、該ルール群格納手段のそれぞれ
と対応して設けられ対応する前記ルール群格納手段に格
納されたルールに含まれる前記タスクを起動するルール
解釈実行手段と、起動された前記タスクに対して適合す
る条件部を持つルールをタスクの起動時に選択し選択さ
れたルールを保持する前記ルール群格納手段と対応して
設けられた前記ルール解釈実行手段に前記タスクを受け
渡すルール選択手段と、ユーザが入力を行なうユーザイ
ンタフェースを有し、前記ルール解釈実行手段は、前記
ルール選択手段により受け渡されたタスクに適合する条
件部を持つルールの実行部のタスクを順次起動するとと
もに、起動すべきタスクに対して適合する条件部を持つ
ルールを選択する際に前記ルール群格納手段のいずれに
も選択すべきルールが保有されていない場合には該タス
クが起動できなかったことを第1の失敗状態として検出
し、前記ユーザインタフェースは、前記ルール解釈実行
手段において第1の失敗状態が検出されたとき前記起動
できなかったタスクの情報をユーザへ通知するとともに
該通知に応じてユーザが行なう前記起動できなかったタ
スクの実行または実行の成果の入力を行なうことを特徴
とするものである。
【0012】請求項3に記載の発明においては、請求項
2に記載のワークフロー支援システムにおいて、前記ル
ール解釈実行手段は、起動したタスクが強制的にあるい
はシステムの定義した条件により第2の失敗状態となっ
たことを検出し、第2の失敗状態となったタスクに対し
てすでに適用したルールとは別のルールであって適用可
能なルールを再選択し、選択されるべきルールが存在し
ない場合にはこれを第1の失敗状態として検出し、該第
1の失敗状態が回復しない場合には第1および第2の失
敗状態となったタスクの起動順序における一つ前のタス
クに後戻りし、該後戻りしたタスクを前記第2の失敗状
態とすることを特徴とするものである。
【0013】請求項4に記載の発明においては、請求項
1に記載のワークフロー支援システムにおいて、前記ル
ールの条件部および実行部は該ルールの適用時およびタ
スクの起動時に情報の受け渡しを行なうための変数を用
いることが可能であり、起動されたタスクと選択された
ルールとの間で双方向に変数の値の受け渡しを行なうこ
とができることを特徴とするものである。
【0014】請求項5に記載の発明においては、請求項
4に記載のワークフロー支援システムにおいて、前記ル
ール解釈実行手段は、ルールの実行部のタスク列中にあ
る任意のタスクの実行が終了する前に、該実行中のルー
ルのタスク列中のタスクを並行して起動することが可能
であり、起動されたタスクに対して適合する条件部を持
つルールを選択する際に値が未確定状態の変数の単一化
の情報を一時保持しておき、任意のタスクで未確定状態
の変数の値が確定された場合に、前記単一化の情報に基
づいて全てのタスクにおいて単一化された変数を同一値
に確定することを特徴とするものである。
【0015】
【作用】請求項1に記載の発明によれば、あるタスクの
ワークフローのルールを、タスクの列に分割して、各々
別のルールとしてルール群格納手段へ格納している。そ
れぞれのルール群格納手段と対応して設けられたルール
解釈実行手段では、対応するルール群格納手段に格納さ
れているルールの実行部のタスクを順次起動する。タス
クが起動されると、ルール選択手段は、そのタスクに対
して適合する条件部を持つルールをタスクの起動時に選
択する。選択されるルールは、タスクが起動されたルー
ル解釈実行手段と対応するルール群格納手段内に存在す
ることもあるし、他のルール群格納手段に存在すること
もある。ルール選択手段は、選択されたルールを有する
ルール群格納手段に対応したルール解釈実行手段に対し
て、起動されたタスクを受け渡す。このとき、例えば選
択されたルールがタスクを起動したルール解釈実行手段
に対応したルール群格納手段に存在しないとき、他のル
ール解釈実行手段に前記タスクを受け渡す。ルール選択
手段によってタスクを受け渡されたルール解釈実行手段
は、選択されたルールの実行部のタスクを順次起動す
る。このようにして、最初のタスクを起動するだけで、
宣言的に記述されたルールに基づいて、順次、タスクの
起動およびタスクの受け渡しが行なわれ、複数のルール
解釈実行手段が協調して動作し、ワークフローが実行さ
れることになる。そのため、従来の電子メールのよう
に、最初からすべての宛先を記述する必要はなく、ルー
ル選択手段がタスクを実行することのできるルール解釈
実行手段へ自動的にタスクを受け渡す。また、タスク実
行時の条件分岐なども、従来のようにユーザが手続的に
明示する必要はなく、いくつかのルールを宣言的に記述
していずれかのルール群格納手段に格納しておくだけで
よい。
【0016】また、本発明はネットワークによって接続
された分散システム上に構築されているので、複数の端
末装置を利用する複数のユーザあるいは複数のグループ
にまたがったワークフローの実行が可能となる。すなわ
ち、すべてあるいは一部のルール群格納手段および対応
するルール解釈実行手段の組を1人のユーザあるいは複
数のユーザのグループと対応付け、ある時点のタスクの
進行状態から、次のタスクを実行できるユーザあるいは
グループを実行時に見つけ出し、見つけたユーザあるい
はグループに対してタスクを依頼することができる。タ
スクを依頼されたユーザは、そのユーザの環境に定義さ
れている仕事のやり方で、タスクを実行することができ
る。
【0017】請求項2に記載の発明によれば、起動され
たタスクのためのルールがルール群格納手段のいずれに
も保有されていない場合に、これを第1の失敗状態とし
て検出し、その旨をユーザインタフェースを通じてユー
ザへ通知する。そして、ユーザによる処理を受けること
によってタスクを完了させ、ワークフローを続行するこ
とができる。これにより、例えば、データベースを検索
したり、アプリケーションを起動したりといったコンピ
ュータのみで実行するタスクの他に、人が行なう処理を
も1つのタスクとして実行し、ワークフローを続行する
ことが可能となる。
【0018】請求項3に記載の発明によれば、起動した
タスクが強制的に、あるいは、例えば、タイムアウトな
どのシステムの定義した条件により第2の失敗状態とな
ったことを検出する。第2の失敗状態が検出された場
合、そのタスクに対してすでに適用したルールとは別の
ルールであって適用可能なルールを再選択して実行す
る。選択されるべきルールが存在しない場合には、請求
項2に記載の発明と同様にこのタスクを第1の失敗状態
として検出し、ユーザによる処理を待つ。これによりタ
スクが完了すれば、ワークフローをそのまま続行するこ
とができる。第1の失敗状態が回復しない場合には、第
1および第2の失敗状態となったタスクの起動順序にお
ける一つ前のタスクにバックトラックし、バックトラッ
クしたタスクを第2の失敗状態とする。すなわち、バッ
クトラックしたタスクについて、別のルールを探索する
ことになる。このバックトラックによって、ルール群格
納手段に格納されているルールのうち適合可能なすべて
のルールについて、その実行を試みるように構成するこ
とができる。そのため、従来のように一意に宛先を指定
する場合に比べ、柔軟なタスクの実行が可能である。ま
た、従来の手続的な記述に比べ、複雑な実行順の制御で
も簡単に記述することが可能である。
【0019】バックトラックの際には、一度にいくつか
のタスクまたは処理に後戻りすることも可能であり、後
戻りが発生する位置と一度に行なわれる後戻りが終了す
る位置をルールの宣言時および実行中に指定しておけば
よい。これにより、必要以上によけいな再試行をしない
ようにシステムを制御することが可能になる。
【0020】請求項4に記載の発明によれば、前記ルー
ルの条件部および実行部には、変数を用いることが可能
であり、ルールの適用時およびタスクの起動時に情報の
受け渡しを行なうことができる。また、この情報の受け
渡しは、起動されたタスクと選択されたルールとの間で
双方向に行なうことができ、タスクの実行時に当該ワー
クフローのタスク間で、例えば、返信要求などのような
情報の交換の繰り返しを行なうことが可能となる。
【0021】この変数の値を未定のまま、タスクを起動
することも可能である。このとき、起動されたタスクの
側で未定状態の変数の値を確定することができる。例え
ば、請求項2に記載の発明のようにユーザがタスクを完
了させる場合には、ユーザは、未完の処理や、自分が処
理し、成果として入力しなければならない内容がどれで
あるかを知ることができ、それに対する処理を行なうこ
とができる。
【0022】請求項5に記載の発明によれば、任意のタ
スクの実行が終了する前に、該実行中のルールのタスク
列中のタスクを並行して起動することが可能である。こ
のとき、変数が未確定状態のままタスクが起動されるこ
とがある。この値が未確定状態の変数のうち、同じ変数
について単一化の情報を一時保持しておき、任意のタス
クで未確定状態の変数の値が確定された場合に、前記単
一化の情報に基づいて全てのタスクにおいて単一化され
た変数を同一値に確定する。これにより、ワークフロー
のルールに記述されている手順にしたがって実行してい
るタスクにおいて、ユーザがそのタスクを終了していな
い中途の状態であっても、必要に応じてそれ以降のタス
クを起動することができる。また、中途のタスクにおい
て、作成されるべき各成果(文書)が完成するごとに、
すでに起動されている後続のタスクへ前記成果を自動的
に渡すことがルールを変更することなくできる。このよ
うに、ワークフローにおけるタスク列の進行方向と、そ
の間の成果の受け渡しの方向とを一致させる必要がなく
なり、同じワークフローのルールの中で、タスクの実行
順序に柔軟性を持たせることができる。
【0023】この単一化された変数の確定は、上述の請
求項3に記載の発明のようにバックトラックを行なう場
合には、後戻りの対象となる各タスクにおいて、実行経
歴上そのタスクで確定された変数のみを未定状態に戻す
ように構成すればよい。この過程を監視することによっ
て、無効となる成果と、有効であり続ける成果とが、各
々どれであるかをユーザは容易に知ることが可能とな
る。また、このようなタスクの実行とバックトラックの
過程において、タスクの実行列と変数の確定値を記憶す
るとともに、後戻りによるタスクの冗長部を取り除くこ
とによって、ユーザは、実行されたタスクあるいは処理
の列と、そのワークフローに関係した文書、成果として
有効である文書、関係した人などの情報を一覧すること
が可能になる。
【0024】
【実施例】図1は、本発明によるワークフロー支援シス
テムの一実施例を示す構成図である。図中、1は個人環
境、2は共有環境、3は転送デーモンプロセス、11,
15はデータベース、12,16は問い合わせ部、1
3,17はタプルスペース、14はユーザインタフェー
スである。図1には、各構成を概念的に示している。物
理的には、ネットワークに複数の端末装置が接続されて
いる。ユーザは、各端末装置を操作する。個人環境1
は、各ユーザに対して設定される環境であり、各端末装
置に固有に設けられる必要はない。また、共有環境2
も、ユーザのグループに対して設定される環境であり、
特定の端末装置に設けられる必要はない。例えば、デー
タベースは、ユーザが使用している端末装置に付属して
いる記憶装置内に実体がある場合でも、実際にはネット
ワークを通じて他の端末装置に付属している記憶装置に
実体が存在し、それらをアクセスする場合でもよい。
【0025】個人環境1には、その環境で作業を行なう
ユーザのための、個人用のデータベース11が存在す
る。このデータベースは、論理的に各個人ごとに管理さ
れるものである。データベース11には、各自の個人用
の情報や、ワークフローのルールなどが格納される。個
人用の情報とワークフローのルールは、別のデータベー
スで管理することも可能であるが、以下の説明では、同
一に管理されるものとして構成している。
【0026】グループ共有環境2には、複数のユーザを
含むグループのための、共有のデータベース15が存在
する。このグループは、運用上の都合で決められるもの
であり、システムがグループの決め方に制限を加えるこ
とはない。この共有のデータベース15には、グループ
で共有できる情報やワークフローのルールなどが格納さ
れる。このデータベース15も、論理的にグループで共
有して管理されるものである。また、共有のデータベー
ス15は複数存在して良く、各ユーザが複数のグループ
に含まれていても構わない。
【0027】ここで、ワークフローのルールとは、タス
クのサブタスク列への展開を、宣言的に記述したもので
ある。このワークフローのルールは、情報の受け渡しを
行なう変数記述を含む条件部と実行部からなる。条件部
が成り立つときに実行部に記述されたタスク列が先頭か
ら順次起動される。実行部の各タスクは、起動されると
実行待ちの状態となり、実行失敗あるいは実行中の状態
を経て、実行終了時に達成あるいは拒否のいずれかの状
態になる。タスクの実行は、別のルールの選択と実行、
および、例えば、データベース11,15の検索、アプ
リケーションプログラムの起動などの処理や、ユーザイ
ンタフェース14を介した人間が行なう処理などが含ま
れる。
【0028】データベース11,15に格納される情報
としては、各個人、各グループ用の情報や、ワークフロ
ーのルールの他に、各個人の属性に関する情報、組織に
関する情報、ワークフローによって処理される文書など
が格納される。
【0029】グループ共有空間2のデータベース15
と、個人環境1のデータベース11に格納される内容
は、特定のユーザのみが利用する個人用の情報と、グル
ープ内の複数ユーザが共有したい情報とを分けて格納し
た方が望ましいというだけであり、運用上の都合によっ
て使い分ければ良く、システムはその利用法になんら制
限を加えない。同じ仕事のやり方が、個人やグループに
よって異なる場合もあり、共有のデータベース15間や
共有のデータベース15と個人のデータベース11で情
報を重複して保持して構わない。すでに共有のデータベ
ース15に存在するルールについて、個人的な理由によ
って、その一部を変更したルールなどを個人のデータベ
ース11に保持することもできる。もちろん、一方のデ
ータベースのみで構成することも可能である。
【0030】問い合わせ部12,16は、各データベー
スに対応して設けられ、ルールの起動や検索の指示を受
け、それらを解釈、実行する。例えば、グループ共有環
境2のデータベース15から、承認者や、経理担当者を
検索したり、購入伝票のフォームを検索するなどといっ
た問い合わせを受け付け、これらの問い合わせに応える
ことができる。データベースの検索は、ワークフローの
ルールと他の情報とが同一のデータベースに格納されて
いる場合には、後述するように、次に適用可能なワーク
フローのルールの検索方法と同様に、導出原理による推
論によって求めることができる。ワークフローのルール
と他の情報とを別のデータベースとして管理している場
合には、ワークフローのルール以外の情報は、例えば、
SQL,QBEなどの通常用いられているデータベース
の問い合わせ言語処理系を用いることによって、効率よ
く検索を行なうことができる。また、問い合わせ部1
2,16に、決まった動作をするルールをあらかじめ組
み込んでおき、これによってアプリケーションを起動し
たり、各種の情報を検索するように構成することができ
る。
【0031】問い合わせ部12,16としては、具体的
には、SLD反駁による計算を行ない、論理型言語Pr
olog言語のインタプリタと同様な方法で実現するこ
とができる。Prologの言語仕様については、例え
ば、Clocksin,Mellish,Prolog
プログラミング,日本コンピュータ協会等を参照された
い。この場合、ワークフローのルールは、1階述語論理
のホーン節の形式に分割して表現し、データベース1
1,15に格納しておけばよい。
【0032】問い合わせ部12,16は、ユーザインタ
フェース14からの問い合わせ内容、すなわち、指示さ
れたワークフローのルールの条件部をゴールとし、その
ゴールを証明するための導出論理による証明計算を開始
する。問い合わせ部12,16においては、ワークフロ
ーのルールの適用と、それによる実行部のタスク列は全
て、最初に与えられたタスクを証明するための証明計算
過程である。ゴールとなるタスクが達成状態になると、
真であると証明されたことであり、拒否状態になると
は、偽であると証明されたことである。
【0033】また、ゴールとなるタスクの実行中や、以
下に述べるタプルスペースに存在する間は、そのゴール
の真偽値は未定状態である。そして、ゴールの真偽値を
求めることをゴールを解くといい、ゴールの真偽値が決
められない(真とも偽とも証明できない)ときにゴール
が解けない、あるいはゴールの実行に失敗するという。
この証明の記録は、後戻り(バックトラック)などの冗
長部を除外したワークフローの記録となり、変数の値は
実際に当該ワークフローにおいて関与したユーザや文書
となる。この証明の記録を保持することによって、ワー
クフローの一覧を得たり、ワークフローを追跡し、事務
処理の効率化を行なうなど、種々の用途に用いることが
可能である。
【0034】個人のデータベース11の中で、あるゴー
ルが失敗した場合、すなわち、そのゴールにマッチする
条件部を持つルールかデータがデータベース11内に存
在しない場合には、問い合わせ部12は、後述するよう
に、タプルスペースを通じて、この失敗したゴールの証
明を他の問い合わせ部12,16に依頼する。Prol
og等の論理型言語においては、失敗したゴールは偽で
あることが証明されたと解釈するが、ここでは、その証
明を他の環境あるいはユーザに依頼するものとする。
【0035】タプルスペース13,17は、複数の問い
合わせ部12,16から読み書きができる共有空間であ
る。グループ共有空間2のタプルスペース17には、問
い合わせ部12において、個人用のデータベース11の
中であるゴールが失敗した場合、その失敗したゴールが
タプルとして書き込まれる。また、個人空間1のタプル
スペース13には、例えばグループ共有空間2のタプル
スペース17に出現したタプルが、転送デーモンによっ
て転送されることにより書き込まれる。タプルスペース
13,17に書き込まれたタプルは、問い合わせ部12
で読み出される。
【0036】転送デーモンプロセス3は、タプルスペー
ス13,17に保持されているタプルを他のタプルスペ
ース13,17に転送する。
【0037】ユーザインタフェース14は、ユーザから
の仕事の依頼、および、タスクのうち人間が行なう処理
の通知とその処理結果の入力等が行なわれる。ユーザが
仕事を依頼、すなわち、ワークフローを起動するために
は、ユーザインタフェース14から、例えば個人または
共有のデータベース11,15の中にあるワークフロー
のためのルールの条件部と同形のタスクを選択し、それ
をゴールとして個人環境1の問い合わせ部12に与えれ
ばよい。
【0038】図2は、本発明のワークフロー支援システ
ムにおける個人環境1の問い合わせ部12の動作の一例
を示すフローチャートである。問い合わせ部12は、マ
ルチスレッド処理を行なうように構成することができ
る。すなわち、タスクの実行中であっても、タプルスペ
ース13に出現したゴールは並列に実行される。
【0039】S21において、スレッドを二つ生成す
る。一方のスレッドは、ユーザから依頼されたワークフ
ローを処理する。また、他方のスレッドは、タプルスペ
ース13に出現したゴールを処理する。ユーザから依頼
されたワークフローを処理するスレッドでは、S22に
おいて、ユーザからの問い合わせの入力を受け取る。そ
して、S23においてスレッドを1つ生成し、一方のス
レッドではS24において、受け取った入力をゴールと
してSLD反駁による計算を行なう。
【0040】計算によりゴールの実行に失敗した場合に
は、S25でこれを検出し、S26で失敗したゴールを
グループ共有環境2のタプルスペース17へ出力する。
そして、S27において、失敗したゴールの結果が得ら
れるまで、スレッドの動作を停止する。結果が返される
と、その結果を読み取り、さらにSLD反駁による計算
を続行する。また、S23の他方のスレッドでは、別の
問い合わせ入力に対応するため、S22へ戻る。
【0041】一方、タプルスペース13に出現したゴー
ルを処理するスレッドは、S28においてタプルスペー
ス13にタプルが書き込まれるのを待つ。タプルがタプ
ルスペース13に書き込まれると、そのタプルを読み取
り、S29においてタプルを処理するためのスレッドを
1つ生成する。一方のスレッドでは、S30においてS
24と同様に、読み取ったタプルをゴールとするSLD
反駁による計算を行なう。このときゴールの実行に失敗
した場合の処理についても、S25ないしS27と同様
の処理をS31ないしS33において行なう。計算が終
了すると、タスクの依頼元へ結果を返し、処理を終了す
る。また、他方のスレッドでは、別のタプルがタプルス
ペース13に書き込まれた場合に対処するため、S28
へ戻り、停止状態となる。
【0042】このようにして、各個人環境1の問い合わ
せ部12では、ユーザから依頼された複数のワークフロ
ーの処理と、タプルスペース13に出現したゴールを並
行して処理することができる。
【0043】グループ共有環境2の問い合わせ部16の
動作のうち、他のグループ共有環境2の問い合わせ部1
6や個人環境1の問い合わせ部12からタプルスペース
17に書き込まれたタプルに対する処理、および、ある
場合にはグループ共有環境2のユーザインタフェース1
4から受けた問い合わせに対する処理は、図2に示した
個人環境1の問い合わせ部12の処理と同様である。た
だし、グループ共有環境2の問い合わせ部16から出力
されるタプルは、タプルスペース17に書き込まれる。
しかし、タプルスペース17に書き込まれたタプルは、
そのタプルを出力した問い合わせ部16では処理されな
い。かわりに、以下の2つの方法のどちらかによって処
理される。
【0044】まず1つめの方法は、そのゴールを解くこ
とができるユーザが、ユーザインタフェース14を通じ
て自分でそのゴールを取り出し、自分のゴールとして処
理を行ない、結果をユーザインタフェース14から入力
するという方法である。グループ共有環境2のタプルス
ペース17に存在するタプルは、基本的にはこのグルー
プのユーザがユーザインタフェース14を通して、参照
することができる。このとき、余計なものがたくさん見
えると不便であるので、ユーザインタフェース14にフ
ィルタの機能を持たせることができる。各ユーザがフィ
ルタの条件を設定しておくことにより、各ユーザに関係
するものだけが見えるようにこうせいすることができ
る。あるいは、個人環境1の問い合わせ部12がグルー
プ共有環境2のタプルスペース17を常に参照し、解決
可能なゴールを取り出して実行するように構成すること
もできる。
【0045】もう1つの方法は、転送デーモンプロセス
3を用いて、タプルを他のタプルスペース13,17に
移動させる方法である。この方法は、データベース15
内のデータから、そのゴールを解くとができるユーザ
か、解くことができるユーザが存在する他のグループを
一意に特定できた場合や、そのデータベースを参照でき
るユーザが誰も解くことができない場合、あるいは解く
ことができるユーザが複数存在するにもかかわらず、一
定時間経っても誰もそれを実行しようとしない場合など
に行なわれる。
【0046】この場合は、転送デーモンプロセス3は、
タプルを実行すべきユーザを調べ、そのユーザのタプル
スペース13,17にタプルを移動させる。あるいは、
データベース15内の情報から、実行が可能であるユー
ザが複数存在することが判明し、なおかつ一定時間経っ
ても誰もそれを実行しようとしない場合は、実行可能な
ユーザの誰かのタプルスペースにそのゴールを移動さ
せ、実行を促す。
【0047】以下、具体例を用いて上述の動作の一例を
説明する。ここでは、ある人が物品の購入処理を行なう
場合の例を取り上げる。物品を購入する際には、購入伝
票を作成し、承認者の承認印を受けた後、経理部門が発
注するものとする。すなわち、「ある人1が物品購入を
行なう場合には、購入伝票を作成し、承認処理を承認者
に依頼し、経理担当に発注処理してもらう。」ことをワ
ークフローのルールとして定義しておけばよい。これを
ワークフローのルールとしてグループ共有環境2のデー
タベース15に格納しておけばよい。
【0048】ここでは、次の4つのワークフローのルー
ルが宣言的に記述され、グループ共有環境2のデータベ
ース15に格納されているものとする。これらのワーク
フローのルールは、例えば、ユーザインタフェース14
を用いて定義することができる。 タスク(?人1,物品購入処理)← タスク(?人1,購入伝票作成,?購入伝票), タスク(?人1,承認処理依頼,?購入伝票,?承認印), タスク(?人1,発注処理依頼,?購入伝票,?承認印). タスク(?人1,承認処理依頼,?購入伝票,?承認印)← 承認者(?人1,?人2), タスク(?人2,承認処理,?購入伝票,?承認印), タスク(?人1,発注処理依頼,?購入伝票,?承認印). タスク(?人1,発注処理依頼,?購入伝票,?承認印)← 経理担当(?人2), タスク(?人2,発注処理,?購入伝票,?承認印). タスク(?人1,購入伝票作成,?購入伝票)← フォーム取り出し(購入伝票作成,?フォーム), タスク(?人1,記載,?フォーム,?購入伝票).
【0049】上述の各ルールにおいて、‘←’の左辺が
条件部、右辺が実行部である。各ルール中の‘?’が先
頭についている文字列は変数である。なお、ルールの表
記上、変数のスコープは、その変数が出現する1つのル
ール内のみである。そのため、上述の4つに分割された
ルールは、各々独立に格納し、管理することができる。
【0050】例えば、上述の購入伝票処理をH氏が起動
すると、H氏の個人用のデータベース11に対して、
「タスク(H,物品購入処理)」をゴールとする問い合
わせが発生する。
【0051】H氏の個人環境1の問い合わせ部12は、
変数の確定に関して、双方向性を持つパターンマッチン
グによって、ゴールにマッチする条件部を持つルールを
検索し、そのルールを適用し、実行部を新たなゴールと
して展開しようとする。これによって、実行時に適用さ
れるルールが定まり、ワークフローが実現される。
【0052】ここで、H氏のデータベースに物品購入処
理のルールが存在しないものとすると、ゴール「タスク
(H,物品購入処理)」は失敗する。この場合、このゴ
ールはグループ共有環境2のタプルスペース17にタプ
ルとして出力される。
【0053】グループ共有環境2の問い合わせ部16
は、タプルスペース17に書き込まれたタプルを取り出
し、データベース15内のルールを検索する。グループ
共有環境2のデータベース15には、上述した物品購入
処理の4つのルールが格納されている。そのため、その
ルールのうちからマッチするルールを取り出す。この場
合には、 タスク(?人1,物品購入処理)← タスク(?人1,購入伝票作成,?購入伝票), タスク(?人1,承認処理依頼,?購入伝票,?承認印), タスク(?人1,発注処理依頼,?購入伝票,?承認印). のルールがマッチする。すなわち、変数「?人1」の値
は「H」となり、条件部「タスク(?人1,物品購入処
理)」と「タスク(H,物品購入処理)」がマッチす
る。ルールの検索は、登録されている順序に従って行な
われる。
【0054】取り出されたルールが適用され、実行部の
各タスクが順に実行される。まず、「タスク(H,購入
伝票作成,?購入伝票)」を実行する。ここでさらに、
このゴールにマッチするルールを検索し、適用する。こ
こでは、 タスク(?人1,購入伝票作成,?購入伝票)← フォーム取り出し(購入伝票作成,?フォーム), タスク(?人1,記載,?フォーム,?購入伝票). のルールとマッチし、このルールが適用される。このと
き、変数「?人1」の値は「H」となる。このルールの
実行部の各タスクが順次実行される。
【0055】まず、「フォーム取り出し(購入伝票作
成,?フォーム)」が実行される。このタスクは、文書
データベースから購入伝票フォームの抽出を行なう処理
を示している。システムは、文書データベースから購入
伝票フォームを取り出し、この購入伝票フォームを変数
「?フォーム」の値として、「フォーム取り出し(購入
伝票作成,購入伝票フォーム)」が返される。
【0056】次に、「タスク(?人1,記載,?フォー
ム,?購入伝票)」を実行しようとする。この時、変数
「?人1」の値は「H」、「?フォーム」の値は「購入
伝票フォーム」であるので、「タスク(H,記載,購入
伝票フォーム,?購入伝票)」を実行しようとする。し
かし、このタスクについてのデータはグループ共有環境
2のデータベース15には存在しない。上述のように、
失敗したゴールはタプルとしてグループ共有環境2のタ
プルスペース17に出力される。そのため、「タスク
(H,記載,購入伝票フォーム,?購入伝票)」がタプ
ルスペース17に出力される。この例の場合、タスクの
実行者となるユーザは第1引数の「H」氏であることが
システムにより認識され、このタプルはH氏の個人用の
タプルスペース13に移される。この移動は、グループ
共有環境2の問い合わせ部16、あるいは、転送デーモ
ンプロセス3によって行なわれる。
【0057】タプルがH氏のタプルスペース13に転送
されると、問い合わせ部12がこれを検知して、タプル
を読み取り、実行しようとする。H氏の個人用のデータ
ベース11には、次のようなルールが存在するものとす
る。 タスク(?人1,記載,?文書フォーム,?文書実体)← コピー(?文書フォーム,?文書実体), ワープロ起動(?文書実体). 上述の「タスク(H,記載,購入伝票フォーム,?購入
伝票)」は、このルールとマッチする。このとき、変数
「?人1」の値は「H」、「?文書フォーム」の値は
「購入伝票フォーム」である。また、変数「?文書実
体」は「?購入伝票」と対応づけられる。「タスク
(H,記載,購入伝票フォーム,?文書実体)」のルー
ルが適用され、その実行部が順に実行される。まず、
「コピー(購入伝票フォーム,?文書実体)」が実行さ
れ、続いて「ワープロ起動(?文書実体)」が実行され
る。これらの実行は問い合わせ部12によって、システ
ムのコマンドやアプリケーションの起動に置き換えられ
て実行される。
【0058】一方、このようなルールをH氏が用意して
おらず、適合するルールが存在しない場合には、このゴ
ールはH氏の個人環境1の問い合わせ部12において必
ず失敗する。しかし、このゴールは、転送デーモンプロ
セス3によってH氏の個人環境1に要求されたタスクで
あるので、再びグループ共有環境2のタプルスペース1
7に戻されることはなく、代わりにユーザインタフェー
ス14を通じてこの失敗したゴールをユーザであるH氏
に通知する。このとき、ユーザインタフェース14は、
変数になっている部分、すなわち、「?購入伝票」の部
分を作成されるべき文書としてユーザに通知する。この
例の場合は、H氏はユーザインタフェース14を通じ
て、まず、購入伝票の文書実体を作成し、記載しなけれ
ばならないことを知ることができる。そして、購入伝票
の文書実体を作成する作業をH氏自身が行ない、その成
果物である購入伝票がどの文書であるかをユーザインタ
フェース14を通じて入力し、ルールが存在した場合と
同様の処理に戻ることができる。購入伝票の文書実体
は、例えば、ワープロで購入伝票フォームに所定事項を
記載すればよい。
【0059】H氏が起動したワープロで「購入伝票文
書」の記載を終了し、その文書をユーザインタフェース
14から入力すると、問い合わせ部12は、「タスク
(H,記載,購入伝票フォーム,?文書実体)」は証明
されたと解釈し、真であると結論する。そして、このタ
スクの証明の終了とともに、もともとのゴール「タスク
(H,物品購入処理)」を直接展開した最初のゴール
「タスク(H,購入伝票作成,?購入伝票)」が証明さ
れたことにもなり、これも真となる。さらに変数の確定
値として、H氏が記載した「購入伝票文書」が変数「?
購入伝票」の値となる。
【0060】また、変数は再び変数を部分的に含む値で
あっても、それを値として確定できる。例えば、変数
「?購入伝票」の値を確定する際に、ユーザインタフェ
ース14を通じて「購入伝票文書」ではなく「購入伝票
文書,返信要求(?返信文書)」などを値とすることに
より、「購入伝票文書」を以降のタスクに送るだけでは
なく、「返信要求(?返信文書)」により受け取ったこ
との返信を要求することもできる。このとき、ルールを
変更する必要はない。そして、確定した変数の値は、そ
の変数を持つタスク全てに伝わるので、その返信を「?
返信文書」に受け取ることができる。
【0061】続いて、もともとのゴール「タスク(H,
物品購入処理)」を直接展開した次の「タスク(H,承
認処理依頼,購入伝票文書,?承認印)」、および、
「タスク(H,発注処理依頼,購入伝票文書,?承認
印)の処理を行なう。この場合にも、グループ共有環境
2のデータベース15を検索して適合するルールを実行
する。適合するルールがない場合には、上述のように、
グループ共有環境2のタプルスペース17にタプルが出
力され、H氏の個人用のデータベース11や他の共有あ
るいは個人用のデータベースを検索する。検索できなか
った場合は、H氏あるいはタスクを解決可能なユーザに
対してタスクの解決を依頼することになる。また、ルー
ル中の例えば「承認者(H,?人2)」などのデータベ
ース検索についても、やはり個人データベースで検索で
きなかった場合は、同様にグループ共有環境2のタプル
スペース17に出力され、共有のデータベース15上で
同様の検索が行なわれる。このような動作が繰り返し行
なわれることにより、ワークフローが実行される。
【0062】ここで、例えば、この物品購入処理を行な
う際に、急いでいるにもかかわらず、承認者が出張中で
不在であった場合を考える。このような場合には、タス
クの記述されている順序に従って実行されるので、承認
処理でストップしてしまい、発注処理が遅れてしまうこ
とがある。本発明のワークフロー支援システムでは、実
行順序に関して柔軟性を持たせている。以下、この実行
順序の柔軟性の実現手段について説明する。ここでは、
取りあえず承認印のないまま経理部門まで購入伝票を先
に送り、発注処理に必要な情報収集や伝票の作成などを
あらかじめ処理しておいて欲しいとする。
【0063】この場合は、ユーザインタフェース14を
通じて、強制的に次のタスクへ進めることができる。こ
れは、問い合わせ部12に対して、仮に「タスク(?人
1,承認処理依頼,?購入伝票,?承認印)」か証明さ
れたという入力を与えればよい。問い合わせ部12は、
このゴールが証明されたので、以降の計算を実行し、購
入伝票を経理部門に回す。すなわち、タスク列の次のタ
スクを実行する。
【0064】後に承認者が出張から戻り、ユーザインタ
フェース14を通じてこのタスクの承認処理を拒否した
い場合には、承認処理の状態を拒否状態とすれば良い。
タスクが拒否状態となると、このタスクのゴールが偽で
あると証明されたと解釈し、以降の証明を無効として、
ここより後に確定された変数を未定状態に戻し、後戻り
する。
【0065】一方、後から承認者が購入伝票を承認した
ときには、変数「?承認印」の値が「承認印」に確定さ
れる。本発明においては、ルールの変数は全て論理変数
として扱われ、変数どうしの単一化も管理している。そ
のため、変数「?承認印」の値が「承認印」に確定され
ることによって、すでに実行中の発注処理のタスクの中
で変数「?承認印」と単一化されている全ての変数の値
も「承認印」に確定される。したがって、このようにタ
スクの起動と、成果物のシステムへの入力順序が入れ替
わっても、ルールを変更する必要がなく、同じルールを
用いることができる。また、このようにルールの実行順
序を入れ替えて実行させることが可能である。
【0066】上述の具体例において、先の場合と同様
に、この物品購入処理を行なう際に、急いでいるにもか
かわらず、承認者が出張中で不在であった場合、今度
は、別の承認者に代わって承認処理を行なってもらう場
合も考えられる。このような場合には、承認処理のタス
クを偽として例外処理を実行させることにより実現する
ことができる。ここでいう例外処理は、単に別の選択肢
を選び直す処理にしか過ぎない。この意味で、通常のシ
ステムにおいて、システムに記述してある条件分岐によ
る選択肢の中から、通常は選ばれない選択肢が選ばれた
場合の処理のことを例外処理と呼ぶのとは相違する。
【0067】通常の承認者が不在で承認が受けられずに
処理が滞っている場合、承認処理のルールの実行部に記
述されているタスクのうち、「タスク(?人2,承認処
理,?購入伝票,?承認印)」が実行中となっている。
この状態において、ユーザインタフェース14を通じ
て、この「タスク(?人2,承認処理,?購入伝票,?
承認印)」が偽であると証明されたという入力を与え
る。あるいは一定時間たってもこのタスクが受理され
ず、真であるとも偽であるとも証明されない場合はシス
テムが自動的に偽であると証明する。
【0068】問い合わせ部12は、論理型言語と同様の
手法によりバックトラックし、タスク列の1つ前の「承
認者(?人1,?人2)」の別の可能性を検索する。す
なわち、後戻りして別の承認者の検索をやり直し、新た
な承認者に依頼する。
【0069】このような後戻りが発生するとき、本発明
のワークフロー支援システムでは、後戻りする位置を指
定することができる。例えば、上述した承認処理の依頼
のルールを次のようにも記述することができる。 タスク(?人1,承認処理依頼,?購入伝票,?承認印)← 承認者(?人1,?人2), |, タスク(?人2,承認処理,?購入伝票,?承認印). ここで、‘|’はコミットオペレータと呼ぶものである
が、その働きはProlog言語におけるカットオペレ
ータに等価である。このオペレータの右側まで実行が進
んだ後、何処かでゴールが拒否状態となり、後戻りによ
って再びこのオペレーターの位置へ戻ってきた場合に
は、このルールが適用される原因となったタスクの拒否
状態が確定し、このタスクをゴールとして呼び出した1
つ前のゴールの再試行に後戻りする。すなわち、上述の
例では、最初の承認者が承認しないといえば、他の承認
者を探すことなく、その決定が確定される。そして、
「タスク(?人1,承認処理依頼,?購入伝票,?承認
印)」の別の可能性が試行されることになる。他に適合
するルールが存在しない場合には、「タスク(?人1,
購入伝票作成,?購入伝票)」の別の可能性が試行され
る。この際に、変数「?購入伝票」の値の確定は最初の
このゴールの実行前に戻されるので、未定状態になる。
すなわちH氏は購入伝票の書き直しを要求されることに
なる。
【0070】ただし、論理型言語などの場合とは異な
り、本発明による問い合わせ部12,16においては、
通常、このコミットオペレータはルールには記述しなく
てもよい。ルールはその同じルールによって起動される
全ての実行例のひな型となるものである。そのため、ル
ール中にコミットオペレータを記述することは、全ての
実行例に対して、規定してしまうので、コミットオペレ
ータをルールに記述しなくてもよいように構成してい
る。
【0071】コミットオペレータは、ルールに記述され
ていなくても、ユーザが実行時あるいは実行中にユーザ
インタフェース14を通じて、起動した具体的なワーク
フローごとに必要に応じて動的に挿入することができ
る。上述の例では、ルールにコミットオペレータがない
ほうが望ましく、最初の承認者がいないために一定時間
経っても処理されない場合には、1つ後戻りして他の承
認者に転送できるようにルールを定義しておくことが望
ましい。承認者がそのタスクを処理し、関与したときに
はコミットオペレーターが挿入され、そして承認を与え
ない場合は、承認処理そのものが拒否状態となるように
すればよい。
【0072】このように、本発明のワークフロー支援シ
ステムによれば、仕事の進み具合のある同じ状態から、
以降のワークフローが数通り考えられる場合に、それら
全てのルールをデータベース11,15に格納しておく
ことができる。そして、選択したワークフローによるタ
スクが拒否状態になった場合にはバックトラック機構に
よる後戻りによって、別の選択肢を選び直すことができ
る。したがって、あらかじめ想定できる例外についての
ルールは、通常のルールと全く同等な形式で定義するこ
とができる。すなわち、この意味での例外は、本発明に
よるシステムにおいて、単に別の選択肢を選び直す処理
にしかすぎない。
【0073】もちろん、システムに記述していない事態
が発生した場合の例外も発生する。ここで、システムに
記述していないということは、処理が記述されていない
だけでなく、ある条件の場合の選択肢そのものの記述が
ないことをいう。従来のシステムでは、このような状態
はあってはならない状態であり、システムはエラーを起
こして停止する。従来のシステムでは、このような意味
での例外は、システム全体を閉じた系として実現してい
るために、記述されていない状態の発生は異常事態とな
る。本発明によるシステムにとっては、開放系が前提と
なっているので、これらは単に別の環境へ処理を依頼す
れば済む処理であるに過ぎない。
【0074】例えば、通常行なわれているワークフロー
のあるゴールが拒否状態となり、それに代わる選択肢も
存在しない場合、すなわちシステム全体に格納されてい
るデータやルール以外の処理が必要となる場合、例外が
発生する。このような例外が発生した場合には、その例
外が発生したタスクはユーザである人間が対処しなけれ
ばならないタスクである。本発明のワークフロー支援シ
ステムでは、すでに上述したように、このような例外発
生の場合には、人間の対処を取り込み、以降のワークフ
ローを継続することができる。
【0075】上述したように、本発明における問い合わ
せ部12,16は、ここでいう例外処理であるか否かに
かかわらず、通常の処理においても、対応するデータベ
ース11,15の検索で失敗したゴールは、グループ共
有環境2のタプルスペース17に出力し、そのゴールの
証明を他の環境に依頼している。人間が対処しなければ
ならなかった例外処理は、どのデータベース11,15
でも失敗し、タプルスペース17に残ってしまったゴー
ルである。そして、人間が行なった対処は、そのゴール
を真であると証明するための証明過程であったことにな
る。
【0076】通常の処理においても、ゴールをタプルス
ペース17へ出力した側の問い合わせ部12は、そのゴ
ールの真偽の結果が判明するのを待っているだけで、ど
の環境でどのように証明されたかについては、知る必要
がない。すなわち、人間にとっての例外に対する処理
は、システムにとっては全く例外ではなく、そのゴール
を解いた他の環境のデータベースとその問い合わせ部が
たまたまユーザである人間であったというだけのことに
過ぎない。
【0077】このように、ルールが記述されていないこ
とによって発生する例外に対しても、他のデータベース
や、ユーザである人間の処理をも含めることによって、
柔軟に対応することができる。また、これによって、人
間の行なう処理をも含めたワークフローの管理および支
援を可能としている。
【0078】
【発明の効果】以上の説明から明らかなように、本発明
によれば、ユーザは最初のタスクを起動するだけで、宣
言的に記述されたルールに基づいて、順次、タスクの起
動およびタスクの分割が行なわれ、ワークフローを実
行、管理することができる。実行時に、分割されたワー
クフローのルールの中から次に適用可能なルールを検索
し、適用することにより、従来の電子メールのように、
最初からすべての宛先を記述したり、条件判断による分
岐命令等を含む明示的な手続きを記述する必要はない。
【0079】また、ワークフローのルールに記述されて
いる手順にしたがって実行してるタスクにおいて、ユー
ザがそのタスクを終了していない中途の状態であって
も、必要に応じてそれ以降のタスクを起動することがで
きる。そして、中途のタスクにおいて、作成されるべき
各成果が完成するごとに、すでに起動されている後続の
タスクへその成果を自動的に渡すことがルールを変更す
ることなくできる。これによって同じワークフローのル
ールの中で、タスクの実行順序に柔軟性を持たせること
ができる。
【0080】さらに、システムが解決できない例外がい
ずれのタスクで発生した場合においても、その例外に対
する人間の対処による結果をシステムに取り込むことが
でき、その結果に基づいて、以降のワークフローを継続
して実行できる。これにより、人間の対処をも含めたワ
ークフロー全体の柔軟な管理および支援を行なうことが
可能となるという効果がある。
【図面の簡単な説明】
【図1】 本発明によるワークフロー支援システムの一
実施例を示す構成図である。
【図2】 本発明のワークフロー支援システムにおける
個人環境1の問い合わせ部12の動作の一例を示すフロ
ーチャートである。
【符号の説明】
1…個人環境、2…共有環境、3…転送デーモンプロセ
ス、11,15…データベース、12,16…問い合わ
せ部、13,17…タプルスペース、14…ユーザイン
タフェース。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 申 吉浩 神奈川県横浜市保土ヶ谷区神戸町134番 地 横浜ビジネスパークイーストタワー 富士ゼロックス株式会社内 (56)参考文献 Bussler,C.et al,I mplementing Agent Coordination for W orkflow Managemen t,Proc.of the 4th Int.Workshop on Re search Issues in D ata Engineering,米 国,1994年 2月14日,P.53−59 「情報処理学会研究報告」(93−GW −4−7)Vol.93,No.95(1993 −10) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 G06F 15/16

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 ネットワークによって接続された分散シ
    ステムを用いてワークフローを支援するワークフロー支
    援システムにおいて、発生したタスクに対するルールの
    適用の可否を判定するための条件部とタスク列である実
    行部からなりあるタスクから次に実行すべきタスク列へ
    の展開を宣言的に記述したワークフローのためのルール
    を格納する複数のルール群格納手段と、該ルール群格納
    手段のそれぞれと対応して設けられ対応する前記ルール
    群格納手段に格納されたルールに含まれる前記タスクを
    起動するルール解釈実行手段と、起動された前記タスク
    に対して適合する条件部を持つルールをタスクの起動時
    に選択し選択されたルールを保持する前記ルール群格納
    手段と対応して設けられた前記ルール解釈実行手段に前
    記タスクを受け渡すルール選択手段を有し、前記ルール
    選択手段は、選択されたルールがタスクを起動した前記
    ルール解釈実行手段に対応したルール群格納手段に存在
    しないとき他のルール解釈実行手段に前記タスクを受け
    渡し、前記ルール解釈実行手段は、前記ルール選択手段
    により受け渡されたタスクに適合する条件部を持つルー
    ルの実行部のタスクを順次起動することを特徴とするワ
    ークフロー支援システム。
  2. 【請求項2】 ネットワークによって接続された分散シ
    ステムを用いてワークフローを支援するワークフロー支
    援システムにおいて、発生したタスクに対するルールの
    適用の可否を判定するための条件部とタスク列である実
    行部からなりあるタスクから次に実行すべきタスク列へ
    の展開を宣言的に記述したワークフローのためのルール
    を格納する複数のルール群格納手段と、該ルール群格納
    手段のそれぞれと対応して設けられ対応する前記ルール
    群格納手段に格納されたルールに含まれる前記タスクを
    起動するルール解釈実行手段と、起動された前記タスク
    に対して適合する条件部を持つルールをタスクの起動時
    に選択し選択されたルールを保持する前記ルール群格納
    手段と対応して設けられた前記ルール解釈実行手段に前
    記タスクを受け渡すルール選択手段と、ユーザが入力を
    行なうユーザインタフェースを有し、前記ルール解釈実
    行手段は、前記ルール選択手段により受け渡されたタス
    クに適合する条件部を持つルールの実行部のタスクを順
    次起動するとともに、起動すべきタスクに対して適合す
    る条件部を持つルールを選択する際に前記ルール群格納
    手段のいずれにも選択すべきルールが保有されていない
    場合には該タスクが起動できなかったことを第1の失敗
    状態として検出し、前記ユーザインタフェースは、前記
    ルール解釈実行手段において第1の失敗状態が検出され
    たとき前記起動できなかったタスクの情報をユーザへ通
    知するとともに該通知に応じてユーザが行なう前記起動
    できなかったタスクの実行または実行の成果の入力を行
    なうことを特徴とするワークフロー支援システム。
  3. 【請求項3】 前記ルール解釈実行手段は、起動したタ
    スクが強制的にあるいはシステムの定義した条件により
    第2の失敗状態となったことを検出し、第2の失敗状態
    となったタスクに対してすでに適用したルールとは別の
    ルールであって適用可能なルールを再選択し、選択され
    るべきルールが存在しない場合にはこれを第1の失敗状
    態として検出し、該第1の失敗状態が回復しない場合に
    は第1および第2の失敗状態となったタスクの起動順序
    における一つ前のタスクに後戻りし、該後戻りしたタス
    クを前記第2の失敗状態とすることを特徴とする請求項
    2に記載のワークフロー支援システム。
  4. 【請求項4】 前記ルールの条件部および実行部は該ル
    ールの適用時およびタスクの起動時に情報の受け渡しを
    行なうための変数を用いることが可能であり、起動され
    たタスクと選択されたルールとの間で双方向に変数の値
    の受け渡しを行なうことができることを特徴とする請求
    項1に記載のワークフロー支援システム。
  5. 【請求項5】 前記ルール解釈実行手段は、ルールの実
    行部のタスク列中にある任意のタスクの実行が終了する
    前に、該実行中のルールのタスク列中のタスクを並行し
    て起動することが可能であり、起動されたタスクに対し
    て適合する条件部を持つルールを選択する際に値が未確
    定状態の変数の単一化の情報を一時保持しておき、任意
    のタスクで未確定状態の変数の値が確定された場合に、
    前記単一化の情報に基づいて全てのタスクにおいて単一
    化された変数を同一値に確定することを特徴とする請求
    項4に記載のワークフロー支援システム。
JP23700794A 1994-09-30 1994-09-30 ワークフロー支援システム Expired - Fee Related JP3267066B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP23700794A JP3267066B2 (ja) 1994-09-30 1994-09-30 ワークフロー支援システム
US08/534,384 US5832455A (en) 1994-09-30 1995-09-27 Work flow support system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23700794A JP3267066B2 (ja) 1994-09-30 1994-09-30 ワークフロー支援システム

Publications (2)

Publication Number Publication Date
JPH08101817A JPH08101817A (ja) 1996-04-16
JP3267066B2 true JP3267066B2 (ja) 2002-03-18

Family

ID=17009010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23700794A Expired - Fee Related JP3267066B2 (ja) 1994-09-30 1994-09-30 ワークフロー支援システム

Country Status (2)

Country Link
US (1) US5832455A (ja)
JP (1) JP3267066B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063747A (ja) * 1996-08-20 1998-03-06 Fuji Xerox Co Ltd ワークフロー支援システムおよびワークフロー支援方法
US8462366B2 (en) 1996-10-29 2013-06-11 Open Text S.A. Delivery expert system, method and computer program product
US6747761B1 (en) 1996-10-29 2004-06-08 Captaris, Inc. Delivery expert system and method
EP0854431A3 (en) * 1997-01-20 2001-03-07 International Business Machines Corporation Events as activities in process models of workflow management systems
US5978836A (en) 1997-07-28 1999-11-02 Solectron Corporation Workflow systems and methods
US7546346B2 (en) 1997-07-28 2009-06-09 Juniper Networks, Inc. Workflow systems and methods for project management and information management
JP3465543B2 (ja) 1997-08-01 2003-11-10 富士ゼロックス株式会社 ワークフロー支援システムおよび方法
US6832202B1 (en) * 1997-08-29 2004-12-14 Electronic Data Systems Corporation Method and system of routing requests for authorized approval
US6208984B1 (en) 1997-08-29 2001-03-27 Electronic Data Systems Corporation Method and system of determining access to records of members of a community
JPH11213082A (ja) * 1997-11-19 1999-08-06 Fujitsu Ltd ワークフロー管理装置及びワークフロー管理システム並びにこれらのプログラムを記憶したコンピュータ読み取り可能な記憶媒体
JPH11306244A (ja) 1998-04-16 1999-11-05 Hitachi Ltd ワーク管理システム
US6249768B1 (en) * 1998-10-29 2001-06-19 International Business Machines Corporation Strategic capability networks
US6424948B1 (en) * 1999-02-19 2002-07-23 Guozhu Dong Declarative workflow system supporting side-effects
US7370325B1 (en) * 1999-02-19 2008-05-06 Lucent Technologies Inc. Eager evaluation of tasks in a workflow system
JP4529213B2 (ja) * 2000-01-19 2010-08-25 富士ゼロックス株式会社 要素編成支援装置及び要素編成支援プログラムが記録された記憶媒体
JP2002230250A (ja) * 2001-02-02 2002-08-16 Seiko Epson Corp ワークフロー連携処理装置、ワークフロー連携処理システム、ワークフローシステムの連携方法、そのためのプログラムおよび記録媒体
US7454751B2 (en) * 2001-06-07 2008-11-18 Intel Corporation Fault-tolerant system and methods with trusted message acknowledgement
US7412520B2 (en) * 2001-06-07 2008-08-12 Intel Corporation Systems and methods for recoverable workflow
US20030115115A1 (en) * 2001-08-25 2003-06-19 Ouchi Norman Ken Private exchange catalog system and methods
US7653873B2 (en) * 2001-08-31 2010-01-26 Siemens Medical Solutions Health Services Corporation System and user interface supporting task schedule configuration
US6687557B2 (en) 2002-02-19 2004-02-03 Norman Ken Ouchi Consolidated component catalog
US20030236838A1 (en) * 2002-04-09 2003-12-25 Ouchi Norman Ken Shared and private node workflow system
US7904833B2 (en) * 2003-12-08 2011-03-08 International Business Machines Corporation Electronic commerce GUI for displaying trading partners
US7805324B2 (en) 2004-10-01 2010-09-28 Microsoft Corporation Unified model for authoring and executing flow-based and constraint-based workflows
CN101080734A (zh) * 2004-10-22 2007-11-28 99有限公司 使用推理逻辑的协同处理
US7665093B2 (en) * 2004-12-22 2010-02-16 Microsoft Corporation Synchronization of runtime and application state via batching of workflow transactions
US8775207B2 (en) * 2005-02-02 2014-07-08 Siemens Medical Solutions Usa, Inc. Integrated treatment planning and scheduling system
US7827050B2 (en) 2005-02-15 2010-11-02 International Business Machines Corporation Comprehensive goal management through the use of an integrated software application
US8032823B2 (en) * 2005-04-15 2011-10-04 Carnegie Mellon University Intent-based information processing and updates
DE102005055657A1 (de) * 2005-11-22 2007-05-24 Siemens Ag Verfahren zum Betreiben einer medizinischen Diagnoseeinrichtung sowie medizinische Diagnoseeinrichtung
WO2008091282A2 (en) * 2006-07-11 2008-07-31 Carnegie Mellon University Apparatuses, systems, and methods to automate procedural tasks
US10635260B2 (en) 2007-01-22 2020-04-28 Cerner Innovation, Inc. System and user interface for clinical reporting and ordering provision of an item
JP4491479B2 (ja) * 2007-09-27 2010-06-30 株式会社日立製作所 分散制御システム
JP5303985B2 (ja) * 2008-03-27 2013-10-02 富士通セミコンダクター株式会社 半導体記憶装置、半導体記憶装置の動作方法およびメモリシステム
JP2014182411A (ja) * 2013-03-15 2014-09-29 Ricoh Co Ltd 情報処理装置、ネットワークシステム、処理実行方法及び処理実行プログラム
US9904585B1 (en) * 2015-10-06 2018-02-27 Amazon Technologies, Inc. Error handling in executing workflow state machines
JP2017157224A (ja) * 2017-04-24 2017-09-07 株式会社リコー 情報処理装置及びネットワークシステム
US20190197428A1 (en) 2017-12-27 2019-06-27 Cerner Innovation, Inc. Systems and methods for refactoring a knowledge model to increase domain knowledge and reconcile electronic records
US11675805B2 (en) 2019-12-16 2023-06-13 Cerner Innovation, Inc. Concept agnostic reconcilation and prioritization based on deterministic and conservative weight methods

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03164837A (ja) * 1989-11-22 1991-07-16 Hitachi Ltd 通信制御処理装置の切替方法
US5627764A (en) * 1991-10-04 1997-05-06 Banyan Systems, Inc. Automatic electronic messaging system with feedback and work flow administration
US5446740A (en) * 1993-12-17 1995-08-29 Empire Blue Cross/Blue Shield Method of and apparatus for processing data at a remote workstation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「情報処理学会研究報告」(93−GW−4−7)Vol.93,No.95(1993−10)
Bussler,C.et al,Implementing Agent Coordination for Workflow Management,Proc.of the 4th Int.Workshop on Research Issues in Data Engineering,米国,1994年 2月14日,P.53−59

Also Published As

Publication number Publication date
US5832455A (en) 1998-11-03
JPH08101817A (ja) 1996-04-16

Similar Documents

Publication Publication Date Title
JP3267066B2 (ja) ワークフロー支援システム
US10942823B2 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US6665814B2 (en) Method and apparatus for providing serialization support for a computer system
US5887171A (en) Document management system integrating an environment for executing an agent and having means for changing an agent into an object
CA2258252C (en) Delta model processing logic representation and execution system
TW323354B (ja)
US5671398A (en) Method for collapsing a version tree which depicts a history of system data and processes for an enterprise
KR920005606B1 (ko) 데이타 입/출력 제어 시스템
US20020178395A1 (en) Multi-agent cooperative transaction method and system
US20050096959A1 (en) Rule engine method and system
JPH08287162A (ja) ワークフローシステム
JPH0683689A (ja) 長時間運転トランザクション管理システムおよび長時間運転トランザクションを実行する方法
JPH10124371A (ja) 取引処理方法及びシステム
JPH10143574A (ja) 業務遂行支援システム
CN112700310B (zh) 一种基于电商平台的交易订单数据优化处理方法
US20090307301A1 (en) Method and apparatus for conducting a transaction between transaction processing systems
JPH0728679A (ja) チェックイン・チェックアウトモデルにおける施錠方式
JPH11213082A (ja) ワークフロー管理装置及びワークフロー管理システム並びにこれらのプログラムを記憶したコンピュータ読み取り可能な記憶媒体
JPS62173546A (ja) デ−タデイクシヨナリ.デイレクトリシステムの制御方式
US20030204503A1 (en) Connecting entities with general functionality in aspect patterns
Kleppmann et al. Online event processing
US20040223176A1 (en) Job control device, job control file, job control method, and job control program
JPH11265395A (ja) データベースアクセスシステム
Thangarajah et al. Aborting tasks in BDI agents
JP3946224B2 (ja) ロボット制御システム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees