Work flow management system and method
First Claim
1. A work flow management system, comprising:
- a computer system having memory means for storing data and communication means for communicating with a multiplicity of resources, said resources including a multiplicity of human principals;
work flow description means for storing in said memory means work flow description data representing a plurality of work flow types;
each said work flow type being represented by said work flow description data as a set of steps with information flows therebetween;
said work flow description data including data representing information flows in and out of each said step;
wherein at least a plurality of said steps of each said work flow type comprises notification of one of said principals of a specified task to be performed as part of said work flow type, execution of said task by said one principal, and notification of said work flow management system by said principal when said specified task has been completed;
wherein said notifications are performed via said communication means;
a work flow controller, coupled to memory means for accessing said work flow description data, for creating a plurality of work flow instances comprising instances of various ones of said work flow types, and for controlling execution of said work flow instances;
said work flow controller including means for initiating execution of a first step in each created work flow instance and for initiating execution of each other step in each created work flow instance when predefined input data criteria for each said step are fulfilled by information flows from other ones of said steps;
said work flow controller including means for durably storing results from each executed step; and
history management means including means for storing and retrieving status data concerning said created work flow instances during execution thereof, wherein said status data includes status information for each said step of said created work flow instances;
whereby work flows are executed in units of steps, and each work flow'"'"'s status is tracked by storage of status data concerning execution of the steps associated with said each work flow.
2 Assignments
0 Petitions
Accused Products
Abstract
A work flow description database represents long running work flows as a set of work units, called steps, with information flows therebetween. The description database defines each step'"'"'s input and output signals, input condition criteria for creating an instance of the step, an application program associated with the step, and criteria for selecting a resource to execute the step. A work flow controller controls the process of executing instances of each defined type of work flow. Execution of a long running work flow begins when a corresponding set of externally generated input event signals are received by the work flow controller. During execution of a work flow, each step of the work flow is instantiated only when a sufficient set of input signals is received to execute that step. At that point an instance of the required type of step is created and then executed by a selected resource. After termination of a step, output signals from the step are converted into input event signals for other steps in the work flow in accordance with data stored in the work flow description database. Each step executes an application program and is treated as an individual transaction insofar as durable storage of its results. Log records are durably stored upon instantiation, execution and termination of each step of a work flow, and output event signals are also logged, thereby durably storing sufficient data to recover a work flow with virtually no loss of the work that was accomplished prior to a system failure.
342 Citations
15 Claims
-
1. A work flow management system, comprising:
-
a computer system having memory means for storing data and communication means for communicating with a multiplicity of resources, said resources including a multiplicity of human principals; work flow description means for storing in said memory means work flow description data representing a plurality of work flow types;
each said work flow type being represented by said work flow description data as a set of steps with information flows therebetween;
said work flow description data including data representing information flows in and out of each said step;wherein at least a plurality of said steps of each said work flow type comprises notification of one of said principals of a specified task to be performed as part of said work flow type, execution of said task by said one principal, and notification of said work flow management system by said principal when said specified task has been completed;
wherein said notifications are performed via said communication means;a work flow controller, coupled to memory means for accessing said work flow description data, for creating a plurality of work flow instances comprising instances of various ones of said work flow types, and for controlling execution of said work flow instances; said work flow controller including means for initiating execution of a first step in each created work flow instance and for initiating execution of each other step in each created work flow instance when predefined input data criteria for each said step are fulfilled by information flows from other ones of said steps; said work flow controller including means for durably storing results from each executed step; and history management means including means for storing and retrieving status data concerning said created work flow instances during execution thereof, wherein said status data includes status information for each said step of said created work flow instances; whereby work flows are executed in units of steps, and each work flow'"'"'s status is tracked by storage of status data concerning execution of the steps associated with said each work flow. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a distributed computer system having a multiplicity of interconnected computers, a method of performing a plurality of work flows, the steps of the method comprising:
-
storing in a computer memory flow description data representing each of a multiplicity of work flow types as a set of steps with information flows therebetween, including means for representing information flows in and out of each said step; after said storing step, creating a plurality of instances of an individual one of said multiplicity of work flow types when corresponding input events are received; controlling execution of said created instances, including the step of initiating execution of said set of steps for each said created instance represented by said flow description data; durably storing a plurality of results from each said executed step; storing status data concerning said created instances during execution thereof, wherein said status data includes status information for each said step of said created instances; and retrieving said status data when reviewing the status of said instances and when recovering from an interruption in execution of said created instances by a system failure, whereby each said executed instance comprises a performed work flow. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A work flow management system, comprising:
-
a computer system having memory means for storing data; work flow description means for storing in said memory means work flow description data representing a plurality of work flows types;
each said work flow type being represented by said work flow description data as a set of steps;a work flow controller that tracks execution of multiple instances of each said work flow type and generates log messages when each said step of a work flow instance is initiated and when each said step is completed; a work flow history database that receives and stores said log messages in said memory means; and history management means, responsive to work flow status inquiries, for retrieving said log messages from said work flow history database and generating status information concerning specified ones of said work flow instances; whereby each work flow instance'"'"'s status is tracked by storage of data concerning execution of the steps associated with each said work flow instance.
-
Specification