EMBRACE technology recommendations

Download Report

Transcript EMBRACE technology recommendations

The EMBRACE
Technology Recommendation
Web Services Interoperability
Through Standardisation
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
The Evolution Of Web Services
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>
Usage scenario
WSDL
File
Client
Web service
Client reads the WSDL file
WSDL
File
Client
Web service
Client sends request
WSDL
File
Client
Web service
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>
XML Schema
Class
Object
Person
Person
First Name
Last Name
Age
John
Doe
40
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>
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>
Person
John
Doe
40
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
Protocol
model for how to deal with the messages
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
IRC
The 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