Long term workflow management
AssigneeMicrosoft Corporation
InventorMarc Mercuri
Life of this patent
Estimating the term…
Abstract
A workflow may be moved from one provider to another provider by extracting the metadata from an executing workflow describing the workflow state as part of dehydrating the workflow, and transferring the metadata to a second workflow and rehydrating the workflow at a second provider. An automated workflow manager may determine when to move the workflow and may facilitate moving with or without human intervention. When a workflow is moved from one provider to another, the workflow state may be moved without transferring executable code that executes the workflow.
Claims20
A method performed on a computer processor, the method comprising:
- determining that a first representation of a workflow running on a first workflow provider is to be transferred from the first workflow provider to a second workflow provider;
- in response to the transfer determination:
- transferring a first portion of workflow state from said first workflow provider to the second workflow provider, the first portion of workflow state for use by the second workflow provider to configure a second representation of the workflow to accept new work items;
- issuing a stop command to the first workflow provider, the stop command placing the first representation of the workflow in a transfer state for transferring the workflow, the transfer state permitting the first representation of the workflow to continue in parallel with the second representation of the workflow, the first representation of the workflow and the second representation of the workflow continuing in parallel to complete the handling of in-process work items to a state where transfer can be performed, the in-process work items being work items received prior to issuance of the stop command;
- after issuance of the stop command, transferring a second portion of workflow state to the second workflow provider, the second portion of workflow state including the in-process items;
- and
- causing said second workflow provider to execute the second representation of said workflow with the first and second portions of workflow state at the second workflow provider.
A computer program product for use at a computer system, the computer program product for implementing a method for transferring a workflow, the computer program product comprising one or more storage devices having stored thereon computer-executable instructions that, when executed by a processor, cause the computer system to perform the method, including the following:
- determine that a first representation of a workflow running on a first workflow provider is to be transferred from the first workflow provider to a second workflow provider;
- in response to the transfer determination:
- transfer a first portion of workflow state from said first workflow provider to the second workflow provider, the first portion of workflow state for use by the second workflow provider to configure a second representation of the workflow to accept new work items;
- issue a stop command to the first workflow provider, the stop command placing the first representation of the workflow in a transfer state for transferring the workflow, the transfer state permitting the first representation of the workflow to continue in parallel with the second representation of the workflow, the first representation of the workflow and the second representation of the workflow continuing in parallel to complete the handling of in-process work items to a state where transfer can be performed, the in-process work items being work items received prior to issuance of the stop command;
- after issuance of the stop command, transfer a second portion of workflow state to the second workflow provider, the second portion of workflow state including the in-process items;
- and
- cause said second workflow provider to execute the second representation of said workflow with the first and second portions of workflow state at the second workflow provider.
A computer system, the computer system comprising:
- one or more processors;
- system memory;
- one or more storage devices having stored thereon computer-executable instructions representing a workflow manager, the workflow manager configured to:
- determine that a first representation of a workflow running on a first workflow provider is to be transferred from the first workflow provider to a second workflow provider;
- in response to the transfer determination:
- transfer a first portion of workflow state from said first workflow provider to the second workflow provider, the first portion of workflow state for use by the second workflow provider to configure a second representation of the workflow to accept new work items;
- issue a stop command to the first workflow provider, the stop command placing the first representation of the workflow in a transfer state for transferring the workflow, the transfer state permitting the first representation of the workflow to continue in parallel with the second representation of the workflow, the first representation of the workflow and the second representation of the workflow continuing in parallel to complete the handling of in-process work items to a state where transfer can be performed, the in-process work items being work items received prior to issuance of the stop command;
- after issuance of the stop command, transfer a second portion of workflow state to the second workflow provider, the second portion of workflow state including the in-process items;
- and
- cause said second workflow provider to execute the second representation of said workflow with the first and second portions of workflow state at the second workflow provider.
Dependencies are inferred from the claim text.