Table of Contents
The term web service can mean a number of different things:
Throughout this guide the term “Web Service” will be used to refer to services intended for use by programs.
While many bioinformatics resources are available on the web, they are usually only available via web interfaces which are targeted at interactive use via a web browser. This limits their utility in applications which require systematic access to a resource, where local resources are not available to install and maintain the data and software required to support the resources functionality. Or in cases where a data resource or analytical tool needs to be integrated into a web portal or workbench application. In these cases Web Services offer a method for accessing the resource remotely. This has the advantage of delegating the maintenance costs for the resource to the service provider, rather then having to absorb these costs locally, and significantly reduces the development and deployment costs for applications which need to consume data or results from the resource.
Web Services use the traditional client server model: a, possibly remote, server provides resources which are requested and consumed by a client which the user interacts with. A simple example of this is browsing the web where the web browser is a client which displays pages and allows the user to intact with the pages, and the web server(s) provide the data for the pages (HTML, images, etc.) when it is requested by the client.
While many resources will return a result almost immediately and thus are suitable for synchronous requests, where the client makes the request and waits for the server to send the response containing the result, some types of analysis take longer. In these cases a synchronous request will have issues with timeouts and may make the client unresponsive. To address these issues services which provide access to such resources provide a mechanism for making asynchronous requests. This usually takes the form of a collection of methods which allow the client to:
The nomenclature for these methods and the job status codes depends on the service and additional methods may also be provided giving more control over the life cycle of the job.
The general workflow is shown below.
Many technologies exist for accessing remote services over a computer network, for example:
Some of these are programming language specific (e.g. DRb and Java RMI), have operating system dependencies (e.g. DCE/RPC and ONC RPC) or use special network protocols (e.g. CORBA and ILU), which have issues with network proxies and firewalls. Today the most commonly used technologies for Web Services are Representational State Transfer (REST) and the Simple Object Access Protocol (SOAP), these are both programming language and operating system neutral and use common network protocols which are well supported by proxies and firewalls.
1) Goujon, M., McWilliam, H., Li, W., Valentin, F., Squizzato, S., Paern, J. and Lopez, R. (2010)
A new bioinformatics analysis tools framework at EMBL-EBI
Nucleic Acids Research; DOI: 10.1093/nar/gkq313; PubMed: 20439314
2) Senger M., Rice P., Bleasby A. and Uludag M. (2009)
Soaplab: Open Source Web Services Framework for Bioinformatics Programs
The 10th Annual Bioinformatics Open Source Conference; PDF