Taverna can access a large number of Web services in the fields of bioinformatics, astronomy, chemoinformatics, health informatics and others. Although many examples of using Taverna lie in the bioinformatics domain, Taverna is actually domain-independent. This means that Taverna can be applied to a wide range of fields.
Web services make it possible to get automated access to data from the Internet without using a browser. Technically a Web service is a software system designed to support interoperable machine-to-machine interaction over a network. Software or applications written in various programming languages and running on various platforms can use Web services to exchange data over a network such the Internet.
In addition to Web services, Taverna can invoke local Java services (Beanshell scripts), local Java API (API Consumer), R scripts on an R server (Rshell scripts), and import data from a cvs or Excel spreadsheet.
Taverna can also call external tools (commands) on a local or remote machines you can ssh to.
Taverna also provides services (XPath and XML splitters) that can help you assemble XML content or extract content from an XML snippet returned by a service. XML splitters are always in conjunction with WSDL services and are explained together.
Domain and shim services
All services accessible from Taverna can be broadly categorised into domain services and shim services.
- Domain (or scientific) services perform scientific function(s) and are often provided by third-party suppliers. They cannot usually be changed by individual users but can normally be configured though the exposed configuration parameters. Example of domain services in Taverna are: WSDL, REST, BioMart, BioMoby, SoapLab, Rshell and External tool services.
- Shim services are created during workflow design, to specifically connect the inputs and outputs of services in order to achieve interoperation between domain services. This typically involves changing one service’s output into a different format for another service to accept. An example might include changing the output from tab to comma separated values. Taverna comes with a library of frequently used shim services (called Local services, which are essentially pre-canned Beanshell services). Other shim services include Spreadsheet Import, XPath and XML splitter services. A new workflow, however, often brings about the need to develop a new shim or modify an existing one.
A rule of thumb for distinguishing a domain service from a shim service is that a workflow, when the shims services are invisible, is equivalent to the methods section of a scientific paper. If a service needs to be explicitly mentioned in the method, then it is not a shim.
Various service types supported in Taverna: