Event driven change injection and dynamic extensions to a business process execution language process
First Claim
1. A method for providing dynamic injection of changes into a running process, said method comprising:
- providing a process designer component that includes a main orchestration process, one or more generic trigger processes, and a plurality of task execution processes, wherein the main orchestration process includes a series of tasks, wherein each task in the series of tasks includes a flag and is to be executed by a separate task execution process that contains logic to execute said each task,wherein said each task is initiated by an initiate process event, raises a pre-task execution event, checks the flag associated with the each task, executes an activity if the flag is not activated and then raises a post-task execution event, andwherein one of the one or more generic trigger processes is a broadcast trigger process that handles one-to-many type mapping between one or more predecessor tasks and one or more successor tasks, such that the broadcast trigger process waits for the one or more predecessor tasks to complete and then publishes a complete task event for each of said successor tasks that will be started by the broadcast trigger process;
receiving a definition of a flow of the main orchestration process and dependencies among the series of tasks of said main orchestration process;
executing an instance of the main orchestration process without affecting the main orchestration process;
receiving one or more changes, via a graphical interface, to the flow of the instance of the main orchestration process at runtime without modifying the main orchestration process, wherein the one or more changes include one or more of adding a task, updating a task, removing or skipping a task, re-ordering the series of tasks, and modifying a task dependency;
associating each of the one or more changes with an event in the main orchestration process, wherein a message associated with the event is sent to the main orchestration process, which subscribes to the event;
initiating one of the one or more generic trigger processes that waits for an occurrence of the event; and
upon detecting the occurrence of the event, implementing the one or more changes by controlling the flag of each of the tasks associated with the one or more changes.
1 Assignment
0 Petitions
Accused Products
Abstract
An extensible process design provides an ability to dynamically inject changes into a running process instance, such as a BPEL instance. Using a combination of BPEL, rules and events, processes can be designed to allow flexibility in terms of adding new activities, removing or skipping activities and adding dependent activities. These changes do not require redeployment of the orchestration process and can affect the behavior of in-flight process instances. The extensible process design includes a main orchestration process, a set of task execution processes and a set of generic trigger processes. The design also includes a set of rules evaluated during execution of the tasks of the orchestration process. The design can further include three types of events: an initiate process event, a pre-task execution event and a post-task execution event. These events and rules can be used to alter the behavior of the main orchestration process at runtime.
-
Citations
16 Claims
-
1. A method for providing dynamic injection of changes into a running process, said method comprising:
-
providing a process designer component that includes a main orchestration process, one or more generic trigger processes, and a plurality of task execution processes, wherein the main orchestration process includes a series of tasks, wherein each task in the series of tasks includes a flag and is to be executed by a separate task execution process that contains logic to execute said each task, wherein said each task is initiated by an initiate process event, raises a pre-task execution event, checks the flag associated with the each task, executes an activity if the flag is not activated and then raises a post-task execution event, and wherein one of the one or more generic trigger processes is a broadcast trigger process that handles one-to-many type mapping between one or more predecessor tasks and one or more successor tasks, such that the broadcast trigger process waits for the one or more predecessor tasks to complete and then publishes a complete task event for each of said successor tasks that will be started by the broadcast trigger process; receiving a definition of a flow of the main orchestration process and dependencies among the series of tasks of said main orchestration process; executing an instance of the main orchestration process without affecting the main orchestration process; receiving one or more changes, via a graphical interface, to the flow of the instance of the main orchestration process at runtime without modifying the main orchestration process, wherein the one or more changes include one or more of adding a task, updating a task, removing or skipping a task, re-ordering the series of tasks, and modifying a task dependency; associating each of the one or more changes with an event in the main orchestration process, wherein a message associated with the event is sent to the main orchestration process, which subscribes to the event; initiating one of the one or more generic trigger processes that waits for an occurrence of the event; and upon detecting the occurrence of the event, implementing the one or more changes by controlling the flag of each of the tasks associated with the one or more changes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for providing dynamic injection of changes into a running process, said system comprising:
-
a process designer component executed on one more microprocessors that includes a main orchestration process, one or more generic trigger processes, and a plurality of task execution processes, wherein said main orchestration process including a series of tasks, wherein each task in the series of tasks includes a flag and is to be executed by a separate task execution process that contains logic to execute said each task, wherein said each task is initiated by an initiate process event, raises a pre-task execution event, checks the flag associated with the each task, executes an activity if the flag is not activated and then raises a post-task execution event, and wherein one of the one or more generic trigger processes is a broadcast trigger process that handles one-to-many type mapping between one or more predecessor tasks and one or more successor tasks, such that the broadcast trigger process waits for the one or more predecessor task to complete and then publishes a complete task event for each of said successor tasks that will be started by the broadcast trigger process; a process engine that executes an instance of the main orchestration process without affecting the main orchestration process, which includes a definition of a flow of the main orchestration process and dependencies among the series of tasks of said main orchestration process; an interface used to receive one or more changes to the flow of the instance of the main orchestration process at runtime without modifying the main orchestration process, wherein the one or more changes include one or more of adding a task, updating a task, removing or skipping a task, re-ordering the series of tasks, and modifying a task dependency; wherein each of the one or more changes is associated with an event in the main orchestration process and one of the one or more generic trigger processes is initiated and waits for an occurrence of the event, wherein a message associated with the event is sent to the main orchestration process, which subscribes to the event; wherein upon detecting the occurrence of the event by the generic trigger process, the process engine is operable to implement the one or more changes by controlling the flag of each of the tasks associated with the one or more changes. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable storage medium encoded with one or more sequences of instructions for providing dynamic injection of changes into a running process, said instructions when executed by one or more processors causing the one or more processors to perform the steps comprising:
-
providing a process designer component that includes a main orchestration process, one or more generic trigger processes, and a plurality of task execution processes, wherein the—
main orchestration process includes a series of tasks, wherein each task in the series of tasks includes a flag and is to be executed by a separate task execution process that contains logic to execute said each task,wherein said each task is initiated by an initiate process event, raises a pre-task execution event, checks the flag associated with the each task, executes an activity if the flag is not activated and then raises a post-task execution event, and wherein one of the one or more generic trigger processes is a broadcast trigger process that handles one-to-many type mapping between one or more predecessor tasks and one or more successor tasks, such that the broadcast trigger process waits for the one or more predecessor tasks to complete and then publishes a complete task event for each of said successor tasks that will be started by the broadcast trigger process; receiving a definition of a flow of the main orchestration process and dependencies among the series of tasks of said main orchestration process; executing an instance of the main orchestration process without affecting the main orchestration process; receiving one or more changes, via a graphical interface, to the flow of the instance of the main orchestration process at runtime without modifying the main orchestration process, wherein the one or more changes include one or more of adding a task, updating a task, removing or skipping a task, re-ordering the series of tasks, and modifying a task dependency; associating each of the one or more changes with an event in the main orchestration process, wherein a message associated with the event is sent to the main orchestration process, which subscribes to the event; initiating one of the one or more generic trigger processes that waits for an occurrence of the event; and upon detecting the occurrence of the event, implementing the one or more changes by controlling the flag of each of the tasks associated with the one or more changes.
-
Specification