ImplementationCase: asynchronous activity as part of workflow
Motivation
To allow long-running operations in workflows.
Story
Agent wants to invoke an operation on a Service. The operation is known to be long running: i.e. takes 10 minutes or more. Agent wants the long-running activity (LRA) to run in a workflow: other operations must start when the LRA completes.
Agent passes the job instructions to a Workflow Engine. The instruction define the workflow as a pattern of steps. The instructions identify the LRA as an asynchronous job-step.
Workflow Engine and Service execute
IcAsynchronousActivity with Workflow Engine in the role of Client. Notifications are used.
When Workflow Engine gets the notification of the end of the LRA it marks that job step as complete and goes on with the next step.
Discussion
'Agent' in this case may be a portal. It doesn't have to be an autonomous agent.
The benefit of this scheme is that the LRA goes on whether or not Agent and Workflow Engine are present for the whole duration. Only Service itself needs to stay up and connected for the whole time. If the LRA is synchronous, then Workflow Engine has to hang around and to keep alive a HTTP transaction for the whole duration. This is unlikely to work well in practice when the job step lasts more than a few hours.
The whole workflow could also be an asychronous activity, with Workflow Engine as Service and Agent as Client.
--
GuyRixon - 22 Apr 2004
Topic revision: r2 - 2004-04-26 - 09:47:00 -
GuyRixon