IP Library › Granted Patent US 8,572,618
Granted Patent B2
US 8,572,618 · App. 12/776,064 · Granted Oct 29, 2013

Event driven change injection and dynamic extensions to a business process execution language process

Inventors: Khanderao Kand (San Jose, CA); Fang Liu (Dracut, MA); Bhagat Nainani (Fremont, CA); Shailesh Kumar (Littleton, MA)
Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,572,618
App. No.
12/776,064
Granted
Oct 29, 2013
Kind
B2
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.

Claims (41)

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.

2. The method of claim 1 , wherein the one or more changes affect the executing instance of the main orchestration process without re-deploying said main orchestration process.

3. The method of claim 1 , wherein the event includes one or more of an initiate process event, a pre-task execution event and a post-task execution event.

4. The method of claim 1 , wherein the task execution process first checks the flag before executing said each task to determine whether to skip said each task.

5. The method of claim 1 , wherein said each task in the main orchestration process is preceded by a rule invocation to determine whether said each task should execute or not, and if said each task should execute, whether said each task should be executed immediately or wait for a specified period of time or for another task to complete.

6. The method of claim 1 , wherein the generic trigger process is the broadcast trigger process that waits for only one of the one or more predecessor tasks to complete before triggering execution of the one or more successor tasks.

7. The method of claim 1 , wherein the main orchestration process is a business process execution language (BPEL) process executed by a BPEL engine.

8. The method of claim 1 , wherein the main orchestration process supports at least three basic flows including sequential flow, parallel flow and switch flow.

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.

10. The system of claim 9 , wherein the one or more changes affect the executing instance of the main orchestration process without re-deploying said orchestration process.

11. The system of claim 9 , wherein the event includes one or more of an initiate process event, a pre-task execution event and a post-task execution event.

12. The system of claim 9 , wherein the task execution process first checks the flag before executing said each task to determine whether to skip said each task.

13. The system of claim 9 , wherein said each task in the main orchestration process is preceded by a rule invocation to determine whether said each task should execute or not, and if said each task should execute, whether said each task should be executed immediately or wait for a specified period of time or for another task to complete.

14. The system of claim 9 , wherein the generic trigger process is the broadcast trigger process that waits for only one of the one or more predecessor tasks to complete before triggering execution of the one or more successor tasks.

15. The system of claim 9 , wherein the main orchestration process supports at least three basic flows including sequential flow, parallel flow and switch flow.

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2010
From: KAND, KHANDERAO; LIU, FANG; NAINANI, BHAGAT; KUMAR, SHAILESH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 024355/0704 →
Continuity (1)
Related Publication 20110276968A1 · Nov 10, 2011