Framework for modeling continuations in workflows
First Claim
Patent Images
1. A method for enabling creation of control flow patterns in a workflow, said method comprising:
- generating, during execution of one or more program fragments by a meta-runtime engine, a plurality of continuations for each of the program fragments that have been suspended during execution, said meta-runtime engine virtualizing a managed execution environment having fixed functionality, each of the generated plurality of continuations representing an activity execution context for a corresponding suspended program fragment, each continuation permitting the corresponding suspended program fragment to subsequently resume executing from the point of suspended execution based on a user request;
storing, by the meta-runtime engine, the generated plurality of continuations to create an execution journal for the suspended program fragments, said execution journal enabling the plurality of continuations to execute multiple times and in arbitrary order;
enabling, by the meta-runtime engine, the user to browse the execution journal via an application programming interface exposed by the meta-runtime engine, said execution journal indicating which of the continuations are being executed in the managed execution environment and which of the continuations are not being executed in the managed execution environment; and
receiving, by the meta-runtime engine, a selection from the user of one of the stored continuations from the execution journal for which to resume the execution of the corresponding suspended program fragment;
retrieving, by the meta-runtime engine, the selected continuation responsive to the request from a user to resume the execution of the corresponding suspended program fragment;
recreating, by the meta-runtime engine, the activity execution context associated with the retrieved continuation prior to being stored in the execution journal; and
resuming, by the meta-runtime engine, execution of the suspended program fragment corresponding to the retrieved continuation within the re-created activity execution context in the managed execution environment, said retrieved continuation being made available in the journal to any user based on the virtualized execution previously executed to generate the continuations, said resuming being independent of how many times the re-created activity is executed and independent of the real-time actual platform of the user in which the re-created activity is executed via the managed execution environment.
2 Assignments
0 Petitions
Accused Products
Abstract
Enabling creation of control flow patterns in a workflow via continuations. Each continuation represents an activity execution context for an activity executing in the workflow by a workflow engine virtualizing a managed execution environment. Responsive to a request, the activity execution context is recreated via the continuation and the activity is executed within the recreated context.
132 Citations
19 Claims
-
1. A method for enabling creation of control flow patterns in a workflow, said method comprising:
-
generating, during execution of one or more program fragments by a meta-runtime engine, a plurality of continuations for each of the program fragments that have been suspended during execution, said meta-runtime engine virtualizing a managed execution environment having fixed functionality, each of the generated plurality of continuations representing an activity execution context for a corresponding suspended program fragment, each continuation permitting the corresponding suspended program fragment to subsequently resume executing from the point of suspended execution based on a user request; storing, by the meta-runtime engine, the generated plurality of continuations to create an execution journal for the suspended program fragments, said execution journal enabling the plurality of continuations to execute multiple times and in arbitrary order; enabling, by the meta-runtime engine, the user to browse the execution journal via an application programming interface exposed by the meta-runtime engine, said execution journal indicating which of the continuations are being executed in the managed execution environment and which of the continuations are not being executed in the managed execution environment; and receiving, by the meta-runtime engine, a selection from the user of one of the stored continuations from the execution journal for which to resume the execution of the corresponding suspended program fragment; retrieving, by the meta-runtime engine, the selected continuation responsive to the request from a user to resume the execution of the corresponding suspended program fragment; recreating, by the meta-runtime engine, the activity execution context associated with the retrieved continuation prior to being stored in the execution journal; and resuming, by the meta-runtime engine, execution of the suspended program fragment corresponding to the retrieved continuation within the re-created activity execution context in the managed execution environment, said retrieved continuation being made available in the journal to any user based on the virtualized execution previously executed to generate the continuations, said resuming being independent of how many times the re-created activity is executed and independent of the real-time actual platform of the user in which the re-created activity is executed via the managed execution environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for modeling continuations in workflows of one or more executing computer applications, said system comprising:
-
a memory area for storing an execution journal representing a plurality of continuations associated with program fragments executed by an execution machine, each of the plurality of continuations representing an activity execution context for a corresponding program fragment suspended during execution by the execution machine, each continuation permitting the suspended program fragment to subsequently resume executing from the point of suspended execution; and a processor configured to execute computer-executable instructions for executing the execution machine, said instructions comprising; virtualizing, by a meta-runtime engine of the execution machine, a managed execution environment for the execution machine, said managed execution environment having a fixed functionality; generating, by the meta-runtime engine, the plurality of continuations for the program fragments that have been suspended during execution of the program fragments, wherein the execution of one or more of the program fragments is episodic and each episode of program fragment execution is persisted as a continuation when the one or more of the program fragments are suspended; storing, by the meta-runtime engine, the generated plurality of continuations in an execution journal; providing an interface to the execution journal in the memory area, said interface including an application programming interface exposed by an activity writer; enabling, by the meta-runtime engine, the user to browse the execution journal via an application programming interface, said execution journal indicating which of the continuations are being executed in the managed execution environment and which of the continuations are not being executed in the managed execution environment; receiving, by the execution machine from the user, a selection of one of the stored continuations from the execution journal for which to resume the execution of the corresponding suspended program fragment; responsive to a request for a particular continuation received via the provided interface, retrieving, by the execution machine, the particular continuation from the execution journal in the memory area to resume the execution of the suspended program fragment corresponding to the retrieved continuation; recreating, by the execution machine, the activity execution context associated with the retrieved continuation prior to being stored in the execution journal in the managed execution environment; and resuming execution of the suspended program fragment corresponding to the retrieved continuation, by the execution machine, within the re-created activity execution context in the managed execution environment, said retrieved continuation being made available in the journal to any user based on the virtualized execution previously executed to generate the continuations, said resuming being independent of how many times the re-created activity is executed and independent of the real-time actual platform of the user in which the re-created activity is executed via the managed execution environment. - View Dependent Claims (14, 15, 16)
-
-
17. One or more computer-readable storage media having computer-executable components, said components comprising:
-
an execution machine component for executing a plurality of program fragments associated with a workflow, said execution machine component virtualizing a managed execution environment having fixed functionality; a state component for generating a plurality of continuations for the program fragments suspended during execution by the execution machine component, each of said plurality of continuations including a runtime state and an application state for a corresponding suspended program fragment, each continuation permitting the suspended program fragment to subsequently resume executing from the point of suspended execution based on a user request, the state component for storing the generated continuations in an execution journal, the execution journal indicating which of the continuations are being executed in the managed execution environment and which of the continuations are not being executed in the managed execution environment;
said execution journal enabling the plurality of continuations to execute multiple times and in arbitrary order, said runtime state indicating a scheduler queue status, said application state indicating an activity status; anda memory component for serializing the continuations; and a replay component for re-creating, responsive to a request from a user, the runtime state and the application state associated with one or more of the continuations prior to being stored in the execution journal and serialized by the memory component and for resuming execution of the suspended program fragments corresponding to the one or more continuations within the re-created runtime state and the application state in the managed execution environment, said user request comprising a user selection of one of the stored continuations from the execution journal via an application programming interface exposed by the execution machine for which to resume the execution of the corresponding suspended program fragment, said one or more continuations being made available in the journal to any user based on the virtualized execution previously executed to generate the continuations, said replay component resuming execution of the suspended program fragments independent of how many times the re-created runtime state is executed and independent of the real-time actual platform of the user in which the re-created runtime state is executed via the managed execution environment. - View Dependent Claims (18, 19)
-
Specification