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