Architecture

The technical details of the Taverna 2.x architecture are also described in various technical papers.

We also maintain a wiki page with our latest thoughts and proposals on the architecture.

Taverna 2.x architecture

Within the Design Perspective of the Taverna 2.x Workbench, users can tell Taverna about new services, add services to a workflow and connect the services together. The result is a Taverna 2.x dataflow object (referred to here as a workflow) that can be serialized into a t2flow file. View the xsd for the t2flow format.

If the user decides to run the workflow, then they specify values for the input ports of the workflow within the Run Dialog that pops up if the workflow has any inputs defined.

In Taverna 2.x there is no separate enactment system. Instead, a WorkflowInstanceFacade is created to represent a run of the workflow. The enactment of the workflow is performed by the workflow itself; similarly the invocation of external services is done by the activities (service instances) within the workflow. The information about a particular workflow run is identified by the WorkflowInstanceFacade being used for that run.

Rather than transferring data around within the workflow, Taverna 2.x uses a Reference Service that proxies the actual data by references to them. The workflow run thus passes around the references. When the values are needed, for example to be used in a call of a service, the data is obtained from the Reference Service and rendered.

The events that happen during the execution of the workflow run are listened to by a monitor within the Results Perspective of Taverna 2.x Workbench. The final results can be browsed.

Taverna 2.x Engine also has the infrastructure to generate provenance information. Provenance data contains information about the workflow run, such asĀ  date and time of the run, intermediate values generated by services in the workflow during the run, as well as the final results.

Provenance data can be saved in a database, making it persistent over the Worbbench restarts. However, this also makes the workflow run slower as the Workbench needs to talk to the database all the time to write data to it.

Alternatively, provenance data can be saved in memory, but it will disappear when you close Taverna unless you explicitly tell Taverna to save it to the database. Using the in-memory provenance speeds up the workflow run and is recommended during the desing and testing of your workflows. Once you are satisfied that your workflow is doing what you want, it is recommended to switch to database if you want your provenance data saved. Switching between the in-memory and database can be done from the Preferences in the Workbench.

Extensions

Taverna 2.x has a large number of points at which it can be extended.