Claims
- 1. A system for executing a workflow comprising:
a workflow engine operable to receive an input message having a characteristic and data, the workflow engine operable to implement a predetermined finite state machine, based on the characteristic of the input message; the workflow engine operable to transmit a first message including a first header and a first data set to a first object based on a first requirement of the predetermined finite state machine, and receive a second message from the first object, the first object having a first function, and operable to receive the first message from the workflow engine, execute the first function based on the first data set, generate a second message including a second header and second data set representing a result of the executed first function, and transmit the second message to the workflow engine; a message platform operable to transfer first and second messages between the first object and the workflow engine.
- 2. A system for executing a workflow according to claim 1 wherein, the workflow engine is operable to transmit a third message including a third header and third data set to a second object based on a second requirement of the predetermined finite state machine, the identity of the second object determined based on the second data set, the second object having a second function, and operable to receive the third message from the workflow engine, execute the second function based on the third data set, generate a fourth message including a fourth header and a fourth data set, and transmit the fourth message to the workflow engine.
- 3. A system for executing a workflow according to claim 2 wherein the workflow engine reimplements the predetermined finite state machine upon receipt of the second message.
- 4. A system for executing a workflow according to claim 3 wherein the workflow engine determines a current state for the predetermined finite state machine based on the second header and the second data set.
- 5. A system for executing a workflow according to claim 2 wherein the workflow engine reimplements the predetermined finite state machine upon receipt of the fourth message.
- 6. A system for executing a workflow according to claim 5 wherein the workflow engine determines a current state for the predetermined finite state machine based on the fourth header and the fourth data set.
- 7. A system for executing a workflow according to claim 1 wherein each possible state of the predetermined finite state machine is stored in a table and the workflow engine determines an appropriate state of the predetermined finite state machine based on the second header and the second data set.
- 8. A system for executing a workflow according to claim 2 wherein in each possible state of the predetermined finite state machine is stored in a table and the workflow engine determines an appropriate state of the predetermined finite state machine based on the fourth header and the fourth data set by comparing state information in the fourth header with possible states stored in the table.
- 9. A system for executing a workflow according to claim 8 wherein the table includes a unique value for each possible state of the predetermined finite state machine generated by operating on the finite state machine with an appropriate hash function.
- 10. A method of executing a workflow in a business computer platform comprising:
providing a workflow engine operable to send and receive messages; providing a first object having a first function and operable to send and receive messages; in the workflow engine, receiving a first message including a first header and a first data set, and creating an instance of a first workflow based on the first header; the first workflow including a predetermined set of workflow rules, each workflow rule prescribing a respective task to be executed based on a current state of the workflow; in the workflow engine, determining a first workflow rule of the predetermined set of workflow rules to be followed based on the first header, generating a second message including a first state of the first workflow and a portion of the first data based on the first workflow rule, and sending the second message; in the first object, receiving the second message from the workflow engine, executing the first function on the portion of the first data, generating a third message including the first state of the first workflow and a second data set based in part on the execution of the first function on the portion of the first data; and in the workflow engine, receiving the third message from the first object and determining a second state of the workflow based on the first state of the workflow and the second data set, and determining a second rule in the set of workflow rules to follow, based on the second state of the workflow.
- 11. A method of executing a workflow according to claim 10 further comprising:
in the workflow engine, generating a fourth message including the second state of the first workflow and a portion of the second data set based on the second workflow rule, and sending the fourth message; providing a second object having a second function and operable to send and receive messages; and in the second object, receiving the fourth message from the workflow engine, executing the second function on the portion of the first data, generating a fifth message including the second state of the first workflow and a third data set based in part on the execution of the second function on the portion of the second data set.
- 12. A method of executing a workflow according to claim 10 further comprising:
in the workflow engine, terminating the instance of the first workflow after sending the second message; and in the workflow engine, creating a second instance of the first workflow based on the first state of the first workflow included in the third message.
- 13. A method of executing a workflow according to claim 11 further comprising:
in the workflow engine, terminating the second instance of the first workflow after sending the fourth message.
- 14. A method of executing a workflow according to claim 11 further comprising:
providing a memory device coupled to the workflow engine; providing a hash function designed so that when operated on by the hash function, each possible state of the first workflow results in a unique value; in the memory device, storing a table including the unique value for each possible state of the first workflow; in the workflow engine; determining the second state of the workflow by checking the hash table to determine the first state of the workflow and the next required state of the workflow.
- 15. A workflow for executing a user defined set of functions in response to an incoming trigger comprising:
a first rule for performing a first predetermined function, wherein a portion of the incoming trigger is set as an input to the first function, and the first function operates on the portion of the incoming trigger and generates a first output of a first predetermined type; and a second rule for performing a second predetermined function, wherein the first output is set as an input of the second predetermined function, and the second predetermined function operates on the first output and generates a second output of a second predetermined type.
- 16. A workflow for executing a user defined set of functions in response to an incoming trigger according to claim 15 wherein the first function comprises generating and sending a first message including the portion of the first trigger to a first object for performing a first action upon the portion of the first trigger and receiving a response from the first object which includes a result from the first action.
- 17. A workflow for executing a user defined set of functions in response to an incoming trigger according to claim 16 wherein the second function comprises generating and sending a second message including the first output to a second object for performing a second action upon the first output and receiving a response from the second object which includes a result from the second action.
- 18. A workflow for executing a user defined set of functions in response to an incoming trigger according to claim 17 wherein the first message includes a header identifying the workflow and the first rule.
- 19. A workflow for executing a user defined set of functions in response to an incoming trigger according to claim 18 wherein the second message includes a header identifying the workflow and the second rule.
- 20. A method of designing a workflow for use on a computer system for automating a response to an incoming trigger, the method comprising:
determining a first process having a first input for performing a first function on a first data set and generating a first output based on the function performed on the first data set; mapping a portion of the incoming trigger to the first input and a portion of the incoming trigger to the first data set; determining a second process having a second input for performing a second function on a second data set and generating a second output based on the function performed on the second data set; and mapping a portion of the first output to the second input and a portion of the first output to the second data set.
- 21. A method of designing a workflow according to claim 20 wherein the first input is of a first predetermined type and both the first output and the second input are of a second predetermined type.
- 22. A method of designing a workflow according to claim 20 wherein the incoming trigger includes a set of incoming value pairs and the portion of the incoming trigger mapped to the first input is a first value pair of the set of incoming value pairs.
- 23. A method of designing a workflow according to claim 20 wherein the first output includes a set of output value pairs and the portion of the first output mapped to the second input is one value pair of the set of output value pairs.
- 24. A method of designing a workflow according to claim 20 wherein determining the first process comprises choosing a first function from a set of available functions.
- 25. A method of designing a workflow according to claim 20 wherein determining the second process comprises choosing a first function from a set of available functions.
RELATED APPLICATIONS
[0001] This application is a continuation of and claims priority from U.S. Provisional Application No. 60/311,019 filed Aug. 8, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60311019 |
Aug 2001 |
US |