The EMBRACE Technology Recommendation

insidiousbehaviorSecurity

Nov 3, 2013 (3 years and 9 months ago)

63 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.


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>

Client

WSDL

File

Web service

Usage scenario

Client

WSDL

File

Web service

Client reads the WSDL file

Client

WSDL

File

Web service

Client sends request

Client

WSDL

File

Web service

Client receives the response

Extensible Markup Language


A way of structuring information


Use Elements and attributes

<Element> ... </Element>


<Element attribute="..." ></Element>

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


First Name

Last Name

Age

Class

Person


John

Doe

40

Object

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 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

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