Web Services - Methods for web objects


The traditional web interface is meant to be human-reable, returning a single web page  in response to a request. The results are presented in HTML, which is only concerned with how the data are to be rendered for viewing. HTML pages are not computer-readable, in the sense that there is no formal definition of the data that they contain. There data has no type, no underlying structure. It is essentially free text.

The goal of web services is to return structured data that can be processed directly by a program. By stringing together several or many web services, data pipelines can be constructed. To make this possible, we need a way to call web services from computer programs.

a. Most web services are implemented as Application Program Interfaces (API)

An API can be thought of as a set of extensions to a programming language. The programmer uses the methods or objects in the API exactly as if they were a standard part of the language. In the case of web services. a number of APIs exist that take care of the low-level network tasks necessary to send a request to a service, and receive a result. The result is NOT written to an output file on disk, but rather returned to a variable withing the program itself! The program then decides what to do with the returned data.



b. Example: SOAP Lab - API for the EMOSS package [http://industry.ebi.ac.uk/soaplab/]

SOAP lab is an API for calling programs from the EMBOSS package [http://emboss.sourceforge.net/] from within another program. APIs exist for both Perl and Java.  To write a program using one of the EMBOSS programs, you need to download the Perl or Java API. You do NOT need to download the individual EMBOSS programs. Those run on the remote server.


As illustrated above, your program declares a Bio::Analysis object, and asks the object to call the desired service. Soap lab takes care of the entire process of sending the request, detecting that the results have been completed, and retrieving the results directly to your program.


c. Example: SeqHound - API NCBI databases

Michalickova K, Bader GD, Dumontier M, Lieu H, Betel D, Isserlin R, Hogue CW.(2002) Seqhound: biological sequence and structure database as a platform for bioinformatics research. BMC Bioinformatics.3(1):32. PMID: 12401134   PDF

The SeqHound API is produced by the Blueprint Initiative at Mt. Sinai Hospital, Toronto. [http://www.blueprint.org/seqhound/index.html]. It has methods for retrieval of a wide variety of information from the following databases.
The SeqHound API is available for Java, Perl and C++.


http://home.cc.umanitoba.ca/~frist/Seminars/iims07/iims07.html
FRISTENSKY LAB
BEGINNING Previous outlineNext END
UM