Presentation on theme: "Using Taverna to access SOAP-based web services Per Larsson CBR 2007-08-22."— Presentation transcript:
Using Taverna to access SOAP-based web services Per Larsson CBR
Outline What is a web service? What is SOAP? What is Taverna? Putting it all together
What is a web service? A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processableformat (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. –W3C, Web Services Architecture Working Group
Why web-services? Allows usage of remote resources without exact knowledge of function Provides standardized access methods to such resources. Can be combined to perform more complex tasks (workflows).
Description of a web service Web Service Description Language (WSDL) Provides an abstract description of a web service and ties it to a concrete endpoint (some server and resource). Is independent of the web service it describes
WSDL-files Describes what is being passed on to the web service and what is returned –Strings, numbers, complex types etc … Tells any client how to pass the messages Specifies a server adress where the web service (SOAP-engine) sits
Architecture of a web service WSDL File Backend Client Server Stub SOAP Engine
Web service messages Messages are what is sent to the web service and later returned Common standard for sending messages is SOAP (used by EMBRACE web services). Formerly known as Simple Object Access Protocol
a SOAP-message … Data to back-end software
the SOAP Engine WSDL File Backend Client Server Stub SOAP Engine Translates from software constructs to SOAP messages (XML) Interprets incoming SOAP messages and performs translation to software constructs
Consumer Serialize into a SOAP message Provider Serialize into a SOAP message De-serialize into native data types Serialize into a SOAP message Message Backend SOAP Engine Transport SOAP Engine Backend
So, whats the point? It´s easy to write SOAP-clients in Perl, C, Java etc … to access any web service No need to exactly understand remote software
Integration into Taverna All this can be integrated into graphical clients such as Taverna Aimed at facilitating standard scientific procedures in silico using workflows (many web services working together) Taverna is a workflow development and enactment environment Developed as part of the myGrid project in the UK (EBI, UMan etc.)
Taverna So, instead of using cut and paste, cgi, shell-scripting, excel etc We have this:
Taverna can integrate many different types of resources and web services SOAP-based services is just one type Other examples include Biomoby, EMBOSS and Biomart.
Adding a WSDL-web service to Taverna
A (really simple) workflow in Taverna looks like this Take a sequence and predict the distance between each residue and the center of the membrane (Zpred)
Putting it all together Web services are resources (local or remote) that can be accessed in a standardized way Web services can be described using XML and WSDL (Web Service Description Language) Simple clients for accessing web services can be written in Perl, C, Java etc… Taverna is a more powerful client, allowing the user to create workflows and perform complex tasks.
Acknowledgments Aron Hennerdal Kristoffer Illergård Arne Elofsson Jan Christian Bryne, UoB The rest of CBR and EMBRACE