Replay to reconstruct program state
First Claim
Patent Images
1. A system for reconstructing the state of an application, the system comprising one or more hardware computing devices configured to execute:
- one or more activity modules configured to execute an action of a workflow definition; and
a workflow decision module configured to;
receive a first workflow history record from a data store, wherein the first workflow history record comprises data related to an event of a workflow application execution;
determine a first activity module to execute based at least in part on the first workflow history record, wherein determining the first activity module alters the program state of the workflow decision module;
create a first command to execute the first activity module;
issue the first command;
determine whether the first command completed successfully;
if the first command completes successfully;
replay the determination of the first activity module to execute; and
recreate the first command;
receive a second workflow history record from the data store; and
in response to receiving the second workflow history record;
disregard the recreated first command, wherein disregarding the recreated first command comprises preventing re-execution of the first command;
determine a second activity module to execute based at least in part on the altered program state;
create a second command to execute the second activity module; and
issue the second command.
1 Assignment
0 Petitions
Accused Products
Abstract
The state of a workflow application in a distributed computing environment can be reconstructed by replaying previously executed portions of the workflow application. Embodiments maintain non-serialized event data relating to workflow history and use the data to determine subsequent actions to take in order to advance the workflow. In some embodiments, workflow instances can be serialized in order to create a checkpoint.
32 Citations
26 Claims
-
1. A system for reconstructing the state of an application, the system comprising one or more hardware computing devices configured to execute:
-
one or more activity modules configured to execute an action of a workflow definition; and a workflow decision module configured to; receive a first workflow history record from a data store, wherein the first workflow history record comprises data related to an event of a workflow application execution; determine a first activity module to execute based at least in part on the first workflow history record, wherein determining the first activity module alters the program state of the workflow decision module; create a first command to execute the first activity module; issue the first command; determine whether the first command completed successfully; if the first command completes successfully; replay the determination of the first activity module to execute; and recreate the first command; receive a second workflow history record from the data store; and in response to receiving the second workflow history record; disregard the recreated first command, wherein disregarding the recreated first command comprises preventing re-execution of the first command; determine a second activity module to execute based at least in part on the altered program state; create a second command to execute the second activity module; and issue the second command. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method of reconstructing the state of an application, the method comprising:
-
receiving, from an electronic data store, a first event record comprising data related to an event of a workflow application at a previous time; executing a first portion of the workflow application, wherein the execution is based at least in part on the first event record received from the electronic data store and wherein the execution alters a state of the workflow application; creating a first command, wherein the first command is based at least in part on the execution of the first portion of the workflow application, and wherein completion of the first command advances the workflow application; issuing the first command; determining whether the first command completed successfully; if the first command completes successfully; replaying the execution of the first portion of the workflow application; and recreating the first command without re-execution of the first portion of the workflow application; receiving, from the electronic data store, a second event record comprising data related to the completion of the first command; executing a second portion of the workflow application, wherein the execution of the second portion is based at least in part on the altered state of the workflow application; creating a second command, wherein the second command is based at least in part on the execution of the second portion, and wherein completion of the second command further advances the workflow application; and issuing the second command; wherein said replaying is implemented by a computer system comprising computer hardware configured with specific executable instructions. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. Non-transitory physical computer storage comprising instructions stored therein for implementing, in one or more processors, operations for reconstructing the state of an application, the operations comprising:
-
receiving, from an electronic data store, a first event record comprising data related to a command initiated by an application at a previous time; determining a first activity of the application, wherein the determining is based at least in part on the first event record received from the electronic data store, and wherein the determining alters a state of the application; creating a first command to execute the first activity, wherein completion of the first command allows advancement of the application; causing the first command to be scheduled for execution; determining whether the first command completed successfully; and if the first command completes successfully; replaying the determining of the first activity; and recreating the first command without causing re-execution of the first activity; receiving, from the electronic data store, a second event record comprising data related to the completion of the first command; determining a second activity of the application, wherein the determination of the second activity is based at least in part on the altered state of the workflow application; creating a second command to execute the second activity, wherein completion of the second command allows further advancement of the application; and issuing the second command. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification