IP Library Granted Patent US 12,443,434
Granted Patent B2
US 12,443,434 · App. 17/857,334 · Granted Oct 14, 2025

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

Inventors: Kenwood Tsai (Palo Alto, CA); Satyapal P. Reddy (San Ramon, CA); Ravikumar Meenakshisundaram (Pleasanton, CA)
Assignee: OPEN TEXT CORPORATION
G06F9/467G06F8/22G06F8/34G06F9/5016G06Q10/06G06F9/5038
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 12,443,434
App. No.
17/857,334
Granted
Oct 14, 2025
Kind
B2
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 (55)

1. A method of hybrid asynchronous and synchronous execution, comprising:

receiving an asynchronous process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities, the plurality of activities including at least one asynchronous activity, the activity flow model defining a process comprising the plurality of activities;

specifying that a selected portion of the asynchronous process defined by the activity flow model of the asynchronous process specification is to be synchronously executed, the selected portion including two or more sequential activities in the activity flow model;

in response to receiving an indication that the selected portion of the process defined by the activity flow model of the asynchronous process specification is to be synchronously executed:

fetching all process execution related objects associated with the selected portion of the process once and caching the fetched objects in memory;

synchronously executing, in-memory, the selected portion of the process in a single execution transaction context with a predictable execution time for execution of the selected portion; and

asynchronously executing, by an asynchronous business process execution engine, a remaining portion of the asynchronous process.

2. The method of claim 1 , further comprising:

identifying any activities of the selected portion that are manual activities as null operations; and

flagging null operations for future manual execution.

3. The method of claim 1 , wherein executing the selected portion synchronously in a single execution transaction context comprises executing without:

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

ii) recording an execution state during the execution.

4. The method of claim 1 , wherein the indication is received via an application programming interface (“API”).

5. The method of claim 1 , wherein a specific activity within the plurality of activities is executed using an API.

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

7. The method of claim 1 , 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”), or the Business Process Model and Notation (“BPMN”).

8. The method of claim 1 , further comprising:

identifying any activities of the selected portion that are rendezvous activities; and

flagging the rendezvous activities as not executable.

9. The method of claim 1 , further comprising:

identifying parallelized activities within the selected portion of the asynchronous business process; and

serializing the parallelized activities for synchronous execution.

10. The method of claim 1 , wherein the selected portion of the plurality of activities is the plurality of activities.

11. The method of claim 1 , wherein the received asynchronous process specification is declared in an executable procedural markup language.

12. A system, comprising:

a processor configured to:

receiving an asynchronous process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities, the plurality of activities including at least one asynchronous activity, the activity flow model defining a process comprising the plurality of activities;

specify that a selected portion of the asynchronous process defined by the activity flow model of the asynchronous process specification is to be synchronously executed, the selected portion including two or more sequential activities in the activity flow model;

in response to receiving an indication that the selected portion of the process defined by the activity flow model of the asynchronous process specification is to be synchronously executed:

fetching all process execution related objects associated with the selected portion of the process once and caching the fetched objects in memory;

synchronously executing, in-memory, the selected portion of the process in a single execution transaction context with a predictable execution time for execution of the selected portion; and

asynchronously executing, by an asynchronous business process execution engine, a remaining portion of the asynchronous process.

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

identify any activities of the selected portion that are manual activities as null operations; and

flag null operations for future manual execution.

14. The system of claim 12 , wherein to execute the selected portion 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 of claim 12 , wherein the received asynchronous process specification is declared in an executable procedural markup language.

16. The system of 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”), or 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 process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities, the plurality of activities including at least one asynchronous activity, the activity flow model defining a process comprising the plurality of activities;

specifying that a selected portion of the asynchronous process defined by the activity flow model of the asynchronous process specification is to be synchronously executed, the selected portion including two or more sequential activities in the activity flow model;

in response to receiving an indication that the selected portion of the process defined by the activity flow model of the asynchronous process specification is to be synchronously executed:

fetching all process execution related objects associated with the selected portion of the process once and caching the fetched objects in memory;

synchronously executing, in-memory, the selected portion of the process in a single execution transaction context with a predictable execution time for execution of the selected portion; and

asynchronously executing, by an asynchronous business process execution engine, a remaining portion of the asynchronous process.

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

identifying any activities of the selected portion that are manual activities as null operations; and

flagging null operations for future manual execution.

19. The computer program product of claim 17 , wherein executing the selected portion in a single execution transaction context includes executing without:

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

ii) recording an execution state during the execution.

20. The computer program product of 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”), or the Business Process Model and Notation (“BPMN”).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2022
From: TSAI, KENWOOD; REDDY, SATYAPAL P.; MEENAKSHISUNDARAM, RAVIKUMAR
To: EMC CORPORATION
Reel/Frame 060504/0852 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2022
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 060504/0859 →