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
 
AstroGrid Service Click here for the
AstroGrid Service Web
This is the AstroGrid
Development Wiki

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback