IP Library Granted Patent US 9,250,869
Granted Patent B1
US 9,250,869 · App. 13/435,997 · Granted Feb 2, 2016

Synchronous business process execution engine for action orchestration in a single execution transaction context

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 9,250,869
App. No.
13/435,997
Filed
Mar 30, 2012
Granted
Feb 2, 2016
Kind
B1
Art Unit
2193
USPC
717/104
Abstract

An asynchronous business process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities is received. An indication is received that a subset of the plurality of activities is to be synchronously executed without reduced latency. All process execution related objects are fetched once into a memory. The synchronous subset is executed in a single execution transaction context.

Claims (50)

1. A method, comprising:

receiving an asynchronous business process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities;

receiving a turbo-mode request indication for a subset of the plurality of activities, wherein turbo-mode for an associated subset is performed by synchronously executing the associated subset;

fetching all process execution related objects associated with the turbo-mode requested subset once into a RAM memory and cached for a duration of execution of the turbo-mode requested subset; and

using a processor to execute the turbo-mode requested subset in a single execution transaction context, wherein executing comprises executing with a determinate execution time.

2. The method as recited in claim 1 , further comprising:

identifying any of the turbo-mode requested subset that are manual activities as null operations; and

flagging null operations for future manual execution.

3. The method as recited in claim 2 , wherein executing the turbo-mode requested subset in a single execution transaction context comprises executing without:

i) clearing the process execution related objects from the memory; and

ii) recording an execution state during the execution.

4. The method as recited in claim 1 , wherein executing the turbo-mode requested subset in a single execution transaction context comprises executing with a predictable execution time.

5. The method as recited in claim 3 , wherein the turbo-mode request indication is received via an application programming interface (“API”).

6. The method as recited in claim 4 , wherein a specific activity within the plurality of activities is executed using an API.

7. The method as recited in claim 1 , wherein the procedural markup language is expressed in eXtensible Markup Language (“XML”).

8. The method as recited in claim 7 , wherein the procedural markup language is expressed in one or more of the following: the XML Process Definition Language (“XPDL”), Business Process Execution Language (“BPEL”), and the Business Process Model and Notation (“BPMN”).

9. The method as recited in claim 5 , further comprising:

identifying any of the turbo-mode requested subset that are rendezvous activities; and

flagging the rendezvous activities as not executable.

10. The method of claim 9 , further comprising:

identifying parallelized activities within the turbo-mode requested subset of the asynchronous business process; and

serializing the parallelized activities for synchronous execution.

11. The method of claim 1 , wherein the turbo-mode requested subset of the plurality of activities is the plurality of activities.

12. A system, comprising:

a processor configured to:

receive an asynchronous business process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities;

receive a turbo-mode request indication for a subset of the plurality of activities, wherein turbo-mode for an associated subset is performed by synchronously executing the associated subset;

fetch all process execution related objects associated with the turbo-mode requested subset once into a RAM memory and cached for a duration of execution of the turbo-mode requested subset; and

execute the turbo-mode requested subset in a single execution transaction context, wherein executing comprises executing with a determinate execution time; and

a memory coupled to the processor and configured to provide the processor with instructions.

13. The system recited in claim 12 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

identify any of the turbo-mode requested subset that are manual activities as null operations; and

flag null operations for future manual execution.

14. The system recited in claim 12 , wherein to execute the turbo-mode requested subset in a single execution transaction context includes to execute without:

i) clearing the process execution related objects from the memory; and

ii) recording an execution state during the execution.

15. The system recited in claim 12 , wherein to execute the turbo-mode requested subset in a single execution transaction context includes to execute with a predictable execution time.

16. The system recited in claim 12 , wherein the procedural markup language is expressed in one or more of the following: the XML Process Definition Language (“XPDL”), Business Process Execution Language (“BPEL”), and the Business Process Model and Notation (“BPMN”).

17. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an asynchronous business process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities;

receiving a turbo-mode request indication for a subset of the plurality of activities, wherein turbo-mode for an associated subset is performed by synchronously executing the associated subset;

fetching all process execution related objects associated with the turbo-mode requested subset once into a RAM memory and cached for a duration of execution of the turbo-mode requested subset; and

executing the turbo-mode requested subset in a single execution transaction context, wherein executing comprises executing with a determinate execution time.

18. The computer program product recited in claim 17 , further comprising computer instructions for:

identifying any of the turbo-mode requested subset that are manual activities as null operations; and

flagging null operations for future manual execution.

19. The computer program product recited in claim 17 , wherein executing the turbo-mode requested subset in a single execution transaction context includes executing without:

i) clearing the process execution related objects from the memory; and

ii) recording an execution state during the execution.

20. The computer program product recited in claim 17 , wherein the procedural markup language is expressed in one or more of the following: the XML Process Definition Language (“XPDL”), Business Process Execution Language (“BPEL”), and the Business Process Model and Notation (“BPMN”).