Web services is at this moment the ultimate form of web-enabling: instead of making software available through the use of web browsers, web services allow local applications to call methods of other applications that are located somewhere else within the company (intranet) or somewhere else in the world (internet).
Web Services in BioInformatics | Web Services in Clinical Research | Web Services and the FDA |
![]() |
![]() |
Whereas web enabling requires the user to work through a browser, sending HTTP requests and getting HTML back, web services is about communication between applications.
Essentially, web services mean that applications can "talk to each other", over the
intranet (or internet), independent of the computer languages the applications are written in,
what operating systems are used on both sides (the applications even do not need to know), and
without firewall issues.
Java | Perl | C(++) |
Apache-Axis | SOAP::Lite | gSOAP |
Web services use the HTTP protocol. This means that there are no firewall issues, as web services use port 80, which is the same port as used by web browsers
Web services are independent of the software languages the applications are written in. For example, your own application can be in Java or C++, whereas the application at the other side is written in C or in Perl (or even in Fortran ! ).
Web services are independent of the operating system of the computers involved. For example, your own computer might be running under Windows or Linux, whereas the computer at the other side is running under VMS. The only requirement is that both computers have a connection to the intranet, and that the computer providing a web service has a web server (e.g. Apache) running.
Web services have the advantage over web-enabled applications that the user (consumer) of the web service can develop its own simple sofware (e.g. in Perl) to perform high-throughput calculations. For example, a bioinformatician wanting to perform BLAST-calculations on 100 different aminoacid sequences, can make a Perl script which calls a web service for each of the aminoacid sequence, start it, and do something else, while the Perl script submits the 100 sequences to the BLAST webservice somewhere else on the intranet, or even somewhere else on the internet.
Using web services, an application can call methods of other applications on different computers. For example, a simple application can first connect to a web service that submits a number of search terms to a search engine (without having to use a web browser), and then submits the results to a translating web service, which translates the results of the search into a different language.
As web services use the HTTP protocol, web services which run over the internet can be encrypted using https (secure socket), so that hackers intercepting the messages, cannot read and understand the messages. Even more, as web services use XML for the messages, these messages can be extra encrypted and authenticated through the use of the new XML-Security standard (see www.w3.org/Security/) for encrypting of XML and for electronic signatures
The cost for extra licenses of expensive software is avoided as the software runs on one computer only (the server).
If there are many users, one multi-processor computer can replace many local workstations, leading to cost reduction.
The use of the software can be extended to much more people than ever before. See also our achievements.
Validation of software (required by regulatory authorities) is considerably more easy for centrally deployed software.
Mostly, web services use the SOAP technology. XML4Pharma has a vast amount of experience of developing SOAP applications, in Perl, Java or C++.
For C-applications, SOAP as well as XML-RPC can be used. XML-RPC is the little brother of SOAP, i.e. with less overhead. One can say that XML-RPC is a lightweight SOAP implementation.
XML4Pharma recently SOAP-enabled a good number of applications in the area of Bioinformatics. These applications were written in C, C++, Java or Perl.
Software for which no source code is available, can often be web-services-enabled through the use of "wrapping", i.e. developing a SOAP shell over the application. Mostly this is done using the Perl language, in which XML4Pharma has a good amount of experience.
Through this mechanism of "wrapping", even Fortran programs (usually very "web-unfriendly") can be made available as a web service. Also this technique was used recently by XML4Pharma to web-service-enable Bioinformatics applications.