US2014372324A1PendingUtilityA1

Long term workflow management

67
Assignee: MICROSOFT CORPPriority: Nov 8, 2010Filed: Aug 18, 2014Published: Dec 18, 2014
Est. expiryNov 8, 2030(~4.3 yrs left)· nominal 20-yr term from priority
Inventors:Marc Mercuri
G06Q 10/103
67
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . 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. 
   
     
     
         2 . The method of  claim 1 , further comprising prior to determining that the first representation of the workflow is to be transferred:
 identifying the first representation of the workflow, the first representation of the workflow being an automated succession of a first set of work steps, which when performed on work items, produces a workflow result, the work items being provided by a work requester; and   identifying a second representation of the workflow available at the second workflow provider, the second representation of the workflow having a second set of work steps, which when performed on the work items also produces the workflow result, at least one work step in the second set of work steps differing from at least one work step in the first set of work steps.   
     
     
         3 . The method of  claim 2 , wherein at least one other work step in the second set of work steps is the same as at least one other work step in the first set of work steps. 
     
     
         4 . The method of  claim 2 , wherein transferring a first portion of workflow state from the first workflow provider to the second workflow provider comprises transferring parameters from the first workflow provider, the parameters defining how the first representation of the workflow behaves. 
     
     
         5 . The method of  claim 4 , further comprising matching the parameters to the second representation of the workflow by transforming the parameters so as to compensate for the at least one differing work step between the first set of work steps and the second set of work steps. 
     
     
         6 . The method of  claim 2 , further comprising:
 querying the first workflow provider to identify state information about the first representation of the workflow; and   receiving the first portion of workflow state from the first workflow provider.   
     
     
         7 . The method of  claim 6 , further comprising subsequent to issuing the stop command:
 receiving a second part of workflow state from the first workflow provider, the second part of workflow state including the in-process items, the second part of workflow state received after the issuance of the stop command; and   sending the second part of workflow state to the second workflow provider.   
     
     
         8 . The method of  claim 1 , further comprising causing new work items to be directed to the second representation of the workflow for processing after the first portion of workflow state is transferred to the second workflow provider. 
     
     
         9 . The method of  claim 1 , wherein causing the second workflow provider to execute the second representation of the workflow comprises sending a portion of executable code to the second workflow provider, the portion of executable code for implementing a customized workflow component within the second representation of the second representation of the workflow, the customized workflow component having also been implemented in the first representation of the workflow. 
     
     
         10 . 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. 
   
     
     
         11 . The computer program product of  claim 10 , further comprising computer-executable instructions that, when executed, cause the computer system to:
 identify the first representation of the workflow, the first representation of the workflow being an automated succession of a first set of work steps, which when performed on work items, produces a workflow result, the work items being provided by a work requester; and   identifying a second representation of the workflow available at the second workflow provider, the second representation of the workflow having a second set of work steps, which when performed on the work items also produces the workflow result, at least one work step in the second set of work steps differing from at least one work step in the first set of work steps, at least one other work step in the second set of work steps being the same as at least one other work step in the first set of work steps.   
     
     
         12 . The computer program product of  claim 11 , wherein computer-executable instructions that, when executed, cause the computer system to transfer a first portion of workflow state from the first workflow provider to the second workflow provider comprise computer-executable instructions that, when executed, cause the computer system to transfer parameters from the first workflow provider, the parameters defining how the first representation of the workflow behaves. 
     
     
         13 . The computer program product of  claim 11 , further comprising computer-executable instructions that, when executed, cause the computer system to match the parameters to the second representation of the workflow by transforming the parameters so as to compensate for the at least one differing work step between the first set of work steps and the second set of work steps. 
     
     
         14 . The computer program product of  claim 11 , further comprising computer-executable instructions that, when executed, cause the computer system to:
 query the first workflow provider to identify state information about the first representation of the workflow; and   receive the first portion of workflow state from the first workflow provider.   
     
     
         15 . The computer program product of  claim 14 , further comprising computer-executable instructions that, when executed, cause the computer system to subsequent to issuing the stop command:
 receive a second part of workflow state from the first workflow provider, the second part of workflow state including the in-process items, the second part of workflow state received after the issuance of the stop command; and   send the second part of workflow state to the second workflow provider.   
     
     
         16 . The computer program product of  claim 11 , further comprising computer-executable instructions that, when executed, cause the computer system to cause new work items to be directed to the second representation of the workflow for processing after the first portion of workflow state is transferred to the second workflow provider. 
     
     
         17 . The method of  claim 11 , wherein computer-executable instructions that, when executed, cause the computer system to cause the second workflow provider to execute the second representation of the workflow comprise computer-executable instructions that, when executed, cause the computer system to send a portion of executable code to the second workflow provider, the portion of executable code for implementing a customized workflow component within the second representation of the second representation of the workflow, the customized workflow component having also been implemented in the first representation of the workflow. 
     
     
         18 . 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. 
 
   
     
     
         19 . The computer system of claim of  claim 18 , wherein the workflow manager is further configured to:
 identify the first representation of the workflow, the first representation of the workflow being an automated succession of a first set of work steps, which when performed on work items, produces a workflow result, the work items being provided by a work requester; and   identifying a second representation of the workflow available at the second workflow provider, the second representation of the workflow having a second set of work steps, which when performed on the work items also produces the workflow result, at least one work step in the second set of work steps differing from at least one work step in the first set of work steps, at least one other work step in the second set of work steps being the same as at least one other work step in the first set of work steps.   
     
     
         20 . The computer system of  claim 19 , wherein the workflow manager being configured to transfer a first portion of workflow state from the first workflow provider to the second workflow provider comprises the workflow manager being configured to transfer parameters from the first workflow provider, the parameters defining how the first representation of the workflow behaves.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.