blob: d4dc0d4e9d4a1ca6dcb8843d2585e98dd3e9354d [file] [log] [blame]
<body>
Definition and support classes for the Dispatch Stack. Each processor in
a workflow contains a stack of dispatch layers with each layer being
responsible for a particular aspect of the invocation. At a high level
the stack consumes a queue of events from the iteration system along
with an initial set of service proxy objects and is repsonsible for
taking jobs from the queue and matching them to appropriate invocation
targets.
<p>Taverna 1 has in effect a single hardcoded dispatch stack for
each processor with little control over it aside from a few basic
properties. To replicate the same behaviour within Taverna 2 there are
dispatch layers for parallelism, retry, failover and invocation. As the
dispatch layer is an extension point we or others can provide other
aspects such as recursive invocation and dynamic (runtime) binding from
abstract service proxies to concrete instances. The last is possible
because the service list is passed through the stack along with the
queue or individual job events and can be rewritten or filtered by
dispatch layer implementations.
</body>