IP Library › Granted Patent US 11,467,867
Granted Patent B2
US 11,467,867 · App. 17/534,411 · Granted Oct 11, 2022

Long-term programmatic workflow management by executing a sequence of code blocks

Inventor: Aneil Mallavarapu (Tiburon, CA)
Assignee: Precise.ly, Inc.
G06F9/4856G06F8/427
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 11,467,867
App. No.
17/534,411
Granted
Oct 11, 2022
Kind
B2
Abstract

A technology for managing programmatic workflows is presented. In variants, the technology iteratively executs a series of code blocks using passed variable values from a prior code block while a suspension event is not detected and suspends run execution and persistently stores the run state when a suspension event is detected. The run can then be resumed when a valid run resumption request is received.

Claims (29)

1. A method for code processing, comprising:

receiving code for a workflow;

identifying suspending expressions within the code;

segmenting the code into a series of partitions at the suspending expressions;

assigning an identifier to each partition; and

inserting a frame push command at each suspending expression within each partition, wherein each frame push command comprises an identifier for a subsequent partition in the series, a set of variables from the partition, and instructions to push the frame to a run storage;

wherein, during execution for a run for the workflow:

a) a partition of the series is executed;

b) during partition execution, a frame is pushed to a run stack;

c) when the partition execution does not suspend the run, a next partition is determined from a frame popped from the run stack, and a) and b) are repeated for the next partition; and

d) when the partition execution suspends the run, the run stack is stored to persistent storage;

wherein executing the partition code block comprises writing a value to coordination storage shared between runs,

wherein the value is provided from the coordination storage to another run when a set of coordination conditions are met.

2. The method of claim 1 , wherein the frame comprises an identifier for another partition, a variable set from the partition, and a set of values from the partition bound to at least a subset of the variable set.

3. The method of claim 2 , wherein the frame does not comprise compiled code.

4. The method of claim 2 , wherein each partition is identified using a persistent identifier.

5. The method of claim 1 , further comprising tearing down a runtime environment executing a) and b) after the partition suspends the run, wherein a new runtime environment is initialized when the continuation condition is met, and wherein c) is repeated using the new runtime environment.

6. The method of claim 1 , further comprising:

receiving a run configuration from a client, the run configuration comprising a workflow identifier identifying the series of partitions; and

identifying an initial partition of the identified workflow, wherein a) is performed using the initial partition.

7. The method of claim 1 , wherein the continuation condition comprises a call comprising an identifier for the run and a return value, wherein the return value is bound to an unbound variable in a frame within the run stack, and wherein the partition identified in the frame is executed using the return value.

8. The method of claim 7 , wherein the call is received from a client.

9. The method of claim 7 , further comprising validating the call before repeating c).

10. The method of claim 1 , wherein the continuation condition comprises satisfaction of a set of default conditions, wherein the default conditions are associated with a default return value, wherein the default return value is bound to a previously unbound variable of the next frame within the run stack, and wherein the subsequent partition identified in the next frame is executed using the default return value.

11. The method of claim 10 , wherein the set of default conditions comprise timer satisfaction.

12. The method of claim 1 , wherein the coordination condition comprises occurrence of a real world event.

13. The method of claim 1 , wherein the set of coordination conditions comprises: when a value is added to the coordination storage and when a run queue is not empty, identifying the other run from the run queue, removing a next value from the coordination storage, and executing the other run using the next value.

14. The method of claim 1 , wherein identifying suspending expressions comprises identifying a predetermined set of statements within the code.

15. The method of claim 1 , wherein identifying suspending expressions comprises converting the code to an abstract syntax tree, and identifying suspending expressions within the abstract syntax tree.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2021
From: MALLAVARAPU, ANEIL
To: PRECISE.LY, INC.
Reel/Frame 058262/0069 →
Continuity (4)
Provisional Application 63234908 · Aug 19, 2021
Provisional Application 63117261 · Nov 23, 2020
Provisional Application 63117265 · Nov 23, 2020
Related Publication 20220164224A1 · May 26, 2022