Post on 28-May-2018
Introduction to Web Services
Peter Fischer Hallin, Center for Biological Sequence AnalysisComparative Microbial Genomics Workshop
Bangkok, ThailandJune 2nd 2008
Background - why worry...
• Increasing size and number of public sequence databases - faster sequencing methods
• Increasing number of bioinformatic prediction tools
• Requirements for data integration, spanning several types of data, different databases and physical locations.
• Solution: Web Services
• Web Services vs. Web Applications
• Why WS? Advantages / disadvantages
• Design of web services: interoperability
• Implementation case stories
• Invoking a web service
• WS and it’s future role
Topics covered
Web applications• HTML based software designed to interact
with the user - in most cases this involves human interpretation and navigation.
• If designed well, they are user friendly
• Do not require special skills to operate
• In near every case, web pages do not make sense to computers (wget?)
Web Services (on the other hand)- are software designed to enable computer-
to-computer interaction
- should aim to enhance interoperability between different systems
- exchange objects which are well defined
- consist of methods / operations and are well defined
- exchanging data using SOAP over HTTP.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productID>827635</productID> </getProductDetails> </soap:Body> </soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productID>827635</productID> <description>3-Piece luggage set. Black Polyester.</description> <price currency="NIS">96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
Basic concepts of the web service:
‣ XML (Extensible Markup Language): Format for input and output.
‣ Request: An XML message generated by the user/client that are uploaded to a service
‣ Response: An XML message generated by the server as an answer to the request.
‣ WSDL (Web Services Description Language) file: Most often published by the service provider. Describes all aspects of the service
‣ Message: A detailed declaration of how input and output looks.
‣ XSD (XML Schema Definitions) is the language for defining the types that form the messages.
‣ Types: Declarations of input and output objects can be within the WSDL file itself, or linked externally.
‣ Endpoint: A URL pointing the client to a location which will read the request and respond.
‣ Documentation: Every object element/attribute can be documented
Basic concepts of the web service:
How does the WSDL look?• Written in XML
• Looks complicated - most developers fear to write them manually
• Personally, I believe they should be written by hand in a simple text editor...
• But let’s first look at an XSD file - defining objects used for the EasyGene service, which is an ORF finder
Granularity, Granularity, and Granularity
• Our choice of technology sets standards for typing any element in input/output - and these standards should be used!
• To a certain extent, Web Services is all about plumbing - connecting objects (pipes) from different operations to build a workflow and finally to generate a result for you
• This plumbing gets increasingly difficult, the poorer the granularity
• You will not need to examine the WSDL and XSD files during this workshop.
• You should just know of their existence and idea behind the WSDL
Requirements
3 methods to invoke web services:
• Workflow editors: Graphical. Less user un-friendly (supposedly)
• Text/XML editors: Easy-to-use. Less features. For exploring services
• Programmatic access: For writing clients and automating tasks.
Graphical workflows
E.g. Taverna: http://taverna.sourceforge.net/
- Java based stand-alone software for inspecting, invoking, and testing Web Services.
- Downloadable from http://www.soapui.org free of charge.
- ‘pro’ edition available for purchase having extended features.
Demonstration using SoapUI
SoapUI is ...
• Ideal for development/testing of Web Services: Provide the raw XML request/response to/from your server. It allows you to view HTTP headers, attachments etc.
• Construct template/default request messages based on the WSDL/XSD
• SoapUIs strength is inspection and manually invoking of operations, however the Pro edition supports workflows/test cases!
• Handling multiple WSDLs with a project, and multiple projects within a session
Why SoapUI
• Genome Atlas (http://www.cbs.dtu.dk/ws/GenomeAtlas/) Various database tools accessing prokaryotic genomes sequences
• RNAmmer (http://www.cbs.dtu.dk/ws/RNAmmer) Predicts ribosomal RNA genes in full genome sequences.
Example: Inspecting two services
EasyGene - the programmatic way
• Similar example, this time programmed in Perl
• Using Genome Atlas ‘getSeq’ to obtain genome sequence, and submit this to the ORF finder EasyGene.
• Poll for the job status and obtain result.
Case story: meta genomic application of BLAST
atlasesA service which allows visualization of homology between a reference genome and any number of genomes, metagenomic samples, or sequence databases.
Example: Seven ocean samples from various depths (surface to 4km): 63,837,557 nucleotides, in 65,674 sequences.
24,978 proteins from 12 fully sequenced Prochlorococcus marinus genomes
0M
0.5M1M
1.5M
2M
2 .5M
P. marinus str. MIT 93032,682,675 bp
green P. marinus genomesblue=ocean samples
Surface
4km
• Web services are (almost guaranteed) to be more cumbersome to access than its web application counterpart.
• Web services allow automation and integration into your programming language.
• You need only a single (WSDL) file to allow your client to connect to the service
Conclusionpros and cons
Looking into the crystal ball ...
• Will WS replace the bioinformatician or require more of them?
• Will WS ease the access to tools and databases?
• Will WS save time?• Will WS allow more complex analysis
that were impossible before?• Will WS take over - and what will they
take over?