Claims
- 1. A software implemented method in a computer system for controlling and monitoring a workflow process by arranging complex tasks into predefined sequences according to the workflow process, the method comprising the steps of:
defining procedural components of a process flow model; defining control links for connecting the procedural components of the process flow model; defining data components of a process data model; defining data links for connecting the procedural components of the process flow model and the data components of the process data model; and invoking the procedural components for producing a workflow process result.
- 2. The method of claim 1, wherein the step of defining procedural components of a process flow model comprises the steps of:
specifying nodes for identifying automated applications, services, function process steps and manual process steps of the workflow process; specifying node groups for containing multiple active nodes; specifying decision nodes for evaluating data and making flow control routing decisions in the workflow process; and specifying data transformations for inputting one or more data sets and for outputting one or more data sets; and specifying flow control nodes for splitting one process path into multiple process subpaths and joining multiple process subpaths into a single process path in the workflow process.
- 3. The method of claim 2, wherein the manual process steps comprise interactive nodes.
- 4. The method of claim of claim 1, wherein the step of invoking the procedural components comprises the steps of:
initializing node processing and setting node counter N=0; invoking node N and updating node status; performing node N processing; updating node N process table; obtaining node N output data; evaluating node N results by decisions and rules; determining if all nodes are invoked; if all nodes are not invoked, letting N=N+1 and repeating the steps above beginning at the step of invoking; and if all nodes are invoked, ending the method.
- 5. The method of claim 1, wherein the step of defining data components of a process data model comprises the steps of:
specifying data sets and data with a format specification; specifying a source of the data; and
- 6. The method of claim 5, wherein the step of specifying data sets comprises the steps of:
specifying input data; specifying output data; specifying a processing node.
- 7. The method of claim 1, further comprising defining the workflow process, the procedural components, the control links, the data components and the data links as XML files.
- 8. The method of claim 1, further comprising the step of storing the process flow model, the control links, the process data model and the data links in a workflow database as workflow process configuration tables.
- 9. The method of claim 1, further comprising the step of defining the workflow process as a root element, comprising the steps of:
specifying unique identification and name attributes of a workflow process; specifying message attributes including enter process message, exit process message and exit error message; specifying an optional description of the workflow process; and specifying workflow process child component elements.
- 10. The method of claim 2, further comprising the step of specifying nodes as child component elements, comprising the steps of:
designating unique identification and name attributes of a node component; designating node attributes, including application type, return type, wait type, timeout, number of retries, interval between retries, and maximum number of concurrent executions; designating a node group that the node belongs to; designating a command for executing the nodes services and any parameters used when executing the node; designating service level definitions including identification, name and start type; designating start command and associated parameters; and designating security parameters including connection type and resource, URL, user identification and password.
- 11. The method of claim 2, further comprising the step of specifying node groups as child component elements, comprising the steps of:
designating unique identification and name attributes of a node group component; designating node group attributes, including application type, return type, wait type, timeout, number of retries, interval between retries, and maximum number of concurrent executions; designating a node group strategy attribute for determining a node selection strategy; designating a node group that the node group component belongs to; designating a command for executing the nodes services and any parameters used when executing the node; designating service definitions including identification, name and start type; designating start command and associated parameters; and designating security parameters including connection type and resource, URL, user identification and password.
- 12. The method of claim 1, further comprising the step of defining control links as child component elements, comprising the steps of:
designating unique identification and name attributes of a control link component; designating control link attributes, including link type for defining the type of component that is pointed to by the source, required for designating process flow joins, and optional integer value for defining the control link; designating a source identification for defining a component where a process flow is coming from; designating a target identification for defining a component where a process flow is going to; and designating a reference identification for an optional object reference for the control link.
- 13. The method of claim 2, further comprising the step of specifying decision nodes as child component elements, comprising the steps of:
designating unique identification and name attributes of a decision node component; designating decision node attributes, including decision node control type for indicating support for single or multiple control paths, condition evaluation functions for directing control path upon successful evaluation of the condition, data identification for indicating a source of a specific data set, and an optional salience value for determining a priority of processing of the condition; designating an onok when a return code is 0, an onerror function when an error is produced, an ondata function when evaluating a data item with a specific value, an onexists function for checking to see if data exists for a given name, and an oncompare function for comparing two values that may be strings or numbers; and designating a rule function for specific rule evaluation and a default function for defining default routing.
- 14. The method of claim 5, further comprising the step of specifying data sets as child component elements, comprising the steps of:
designating unique identification and name attributes of a data set component; designating data set attributes, including source identifiers for identifying a source of data, type for explicitly defining where the data comes from, source name and object identification for defining source characteristics; and designating a data format definition for defining a format of the data in the source and a data attribute for defining an expected data structure.
- 15. The method of claim 1, further comprising the step of defining data links as child component elements, comprising the steps of:
designating unique identification and name attributes of a data link component; designating data link attributes, including link type for defining how a data set is linked to a component, usage type for indicating if a component is a source or sink for data, and required for indicating if data is required before process flow can continue; and designating data set identification for containing data, and target identification for identifying a component for linking to the data set.
- 16. The method of claim 5, further comprising the step of specifying data transformations as child component elements, comprising the steps of:
designating unique identification and name attributes of a data transformation component, and type for defining a type of data transformation; and designating data transformation elements, including sources for identifying data set sources for the data transformation, data set targets for identifying target data sets for the data transformation, and mappings for mapping a specific value from a source data set to an element in a target data set.
- 17. A computer-readable medium containing instructions for controlling a computer system according to the method of claim 1.
- 18. A software implemented system in a computer for controlling and monitoring a workflow process by arranging complex tasks into predefined sequences according to the workflow process, the system comprising:
means for defining procedural components of a process flow model; means for defining control links for connecting the procedural components of the process flow model; means for defining data components of a process data model; means for defining data links for connecting the procedural components of the process flow model and the data components of the process data model; and means for invoking the procedural components for producing a workflow process result.
- 19. The system of claim 18, wherein the means for defining procedural components of a process flow model comprises:
nodes for identifying automated applications, services, function process steps and manual process steps of the workflow process; node groups for containing multiple active nodes; decision nodes for evaluating data and making flow control routing decisions in the workflow process; and data transformations for inputting one or more data sets and for outputting one or more data sets; and flow control nodes for splitting one process path into multiple process subpaths and joining multiple process subpaths into a single process path in the workflow process.
- 20. The system of claim 18, wherein the means for defining data components of a process data model comprises:
data sets and data with a format specification; a source of the data.
- 21. The system of claim 18, wherein the means for defining control links comprises a designation of a source component for defining where process flow is coming from, and a designation of a target component for defining where a process flow is going to.
- 22. The system of claim 18, wherein the means for defining data links comprises a designation of a data set as a source and sink for data, and a designation of a target component for linking to the data set.
- 23. The system of claim 18, wherein the means for invoking the procedural components comprises a workflow manager and a workflow database.
- 24. The system of claim 18, further comprising custom application nodes, server application nodes and user application nodes.
- 25. A software implemented system in a computer for controlling and monitoring a workflow process comprising;
one or more workflow managers for controlling and invoking procedural components of the workflow process; a workflow database connected to the one or more workflow managers for persisting workflow process tables and configuration tables, including nodes, decisions, control links, data sets and data links; the procedural components of the workflow process including nodes, node groups, decision nodes and flow control nodes; and the procedural component nodes including workflow user applications, automated applications, services, function process steps and manual process steps.
- 26. The system of claim 25, wherein the one or more workflow managers and the procedural components are interconnected by a dynamic services network, whereby the one or more workflow managers make requests for procedural component execution via a network queue controlled by a workflow monitor/administrator.
Parent Case Info
[0001] This application claims benefit of U.S. Provisional Application No. 60/407,729, filed on Sep. 3, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60407729 |
Sep 2002 |
US |