340 likes | 360 Views
Web Services Interoperability Through Standardisation. The EMBRACE Technology Recommendation. Why Use Web Services In The First Place?. Interoperability Interoperability Interoperability. Service Oriented Architecture (SOA). Functionality is most commonly expressed as services.
E N D
Web Services Interoperability Through Standardisation The EMBRACE Technology Recommendation
Why Use Web Services In The First Place? • Interoperability • Interoperability • Interoperability
Service Oriented Architecture (SOA) • Functionality is most commonly expressed as services. • Each service provides one clearly defined basic functionality. • Higher level functionality is achieved using service composition.
Web Services Interoperability organisation • Initial Web Service specifications were quite flexible • Many different ways to make Web Services • Hard to make tools that could be used for all types of services • Web Services Interoperability organisation was founded to establish more restrictive specifications • Similar services • Outdated tools
SOA Is Becoming Boring • Has become part of the software industry • SAP • Oracle • IBM • Microsoft
SOA Is A Part Of Society • Applications in Norway: • All parts of government • Police • Major hospitals • Companies
The Technology Recommendation: An EMBRACE of WS-I • WS-I is ready (ish) to use • Many tools and supporting technologies available • Competence is available
A closer look at Web Services <Warning> XML </Warning>
WSDL File Client Web service Usage scenario
WSDL File Client Web service Client reads the WSDL file
WSDL File Client Web service Client sends request
Client receives the response WSDL File Client Web service
Extensible Markup Language • A way of structuring information • Use Elements and attributes <Element> ... </Element> <Element attribute="..." ></Element>
Class Object Person First Name Last Name Age Person John Doe 40 XML Schema Schema <element name=“Person"> <complexType> <sequence> <element name="firstname" type="string"/> <element name="lastname" type="string"/> <element name="age" type="int"/> </sequence> </complexType> </element> Instance <person> <firstname>John</firstname> <lastname>Doe</lastname> <age>40</age> </person>
Person John Doe 40 XML Binding Representing the information in an XML document as an object in computer memory <person> <firstname>John</firstname> <lastname>Doe</lastname> <age>40</age> </person>
Namespaces • Avoids naming conflicts • We can use prefixes for shorter notation <ParentElement xmlns:ns1="http://mysite.com/NS1"> <ns1:Element> ... </ns1:Element> </ParentElement>
SOAP • The protocol formerly known as “Simple Object Access Protocol” • The SOAP Envelope for messages • Processing model for how to deal with the messages • Protocol binding framework
SOAP Message <Envelope> <Header> </Header> <Body> </Body> </Envelope> Or just: <Envelope> <Body> </Body> </Envelope>
Web Service Description Language • Provides an abstract definition of a Web Service and a binding which ties it to a concrete endpoint. • Is completely independent of the Web Service it describes.
WSDL file <definitions> <types> XML Schema definitions of data formats <message> Definition of messages for input and output of the operations in this service. <portType> Definition of the operations available at this service. <binding> The binding of the operations to a set of protocols. SOAP over HTTP is most commonly used <service> Name and network address of this service </definitions>
Schema part of a WSDL ....... <xs:element name="getMatrixById"> <xs:complexType> <xs:sequence> <xs:element name="Id" type="xs:string"/> <xs:element ref="Format"/> <xs:element ref="Database"/> </xs:sequence> </xs:complexType> </xs:element> .......
Corresponding SOAP message <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:jas="http://bccs.uib.no/Jaspar"> <soapenv:Header/> <soapenv:Body> <jas:getMatrixById> <jas:Id>MA0003</jas:Id> <jas:Format>PFM</jas:Format> <jas:Database>CORE</jas:Database> </jas:getMatrixById> </soapenv:Body> </soapenv:Envelope>
Sample Perl Client my $wsdl = XML::LibXML->new->parse_file('http://api.bioinfo.no/wsdl/JasparDB.wsdl'); my $proxy = XML::Compile::WSDL11->new($wsdl); my $getMatrixById = $proxy->compileClient('getMatrixById'); my $answer = $getMatrixById->( Id => $get_by_id, Format => $format, Database => $db ); my $matrix = $answer->{parameters}{Matrix}; _print_matrix($matrix);
eVita Project • Norwegian research council eScience program • Has funded a 2.3 me project to build a SOA to support systems biology research at BCCS. • Built with WS-I Web Services • Partners in UK • MyGrid • Manchester Interdisciplinary Biocentre
EuTRACC The European Transcriptome, Regulome & Cellular Commitment Consortium • Aims to identify TFs and interacting partners expressed in neuronal and haematopoietic cell types. • European NoE • Primarily partners with biological competence • Lenhard group responsible for analysis
EuTRACC tasks • Integrative analysis of proteomics, gene expression, chip-chip and chip-seq data • Determine the principal regulatory network components • Build supporting infrastructure • Performed by the eVita project
IRCThe International Regulome Consortium • The discovery of how gene function is regulated in mammalian cells during development • Collaborates closely with EuTRACC • Will use same/simmilar infrastructure
Jaspar Database • Database of profiles of transcription factor binding sites • Prediction of over-represented TFBS i sets of genes • Statistical analysis
Steps forward in EMBRACE • Define common data types • Links to ontologies
Acknowledgements Vincent Breton Jean Salzemann CNRS /Clermont-Ferrand All other members of the Technology Recommendation and Watch WP Steve Pettifer UMAN Inge Jonassen Pål Puntervoll Rein Aasland BCCS Toby Gibson EMBL