29.07.2013 Views

Computational tools and Interoperability in Comparative ... - CBS

Computational tools and Interoperability in Comparative ... - CBS

Computational tools and Interoperability in Comparative ... - CBS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

EMBRACE: An EU <strong>in</strong>itiative for enhance <strong>in</strong>teroperability<br />

Web Services described by WSDL files where data structures are typed us<strong>in</strong>g the XSD<br />

format.<br />

4.3.1 Quasi - a light-weight SOAP server<br />

One of the ma<strong>in</strong> obstacles for many SOAP servers <strong>and</strong> clients is the computational overhead<br />

<strong>and</strong> memory consumption <strong>in</strong>volved <strong>in</strong> pars<strong>in</strong>g large <strong>and</strong> complex XML structures.<br />

For the BLASTatlas service, this was a limitt<strong>in</strong>g factor. Try<strong>in</strong>g a conventional server package<br />

called SOAP::Lite, rendered the submit process to require more memory than what is<br />

<strong>in</strong> a modern desktop computer while tak<strong>in</strong>g around 20 m<strong>in</strong>utes just to prepare the message<br />

before submit. Once submitted, the server required the same overhead to parse the <strong>in</strong>com<strong>in</strong>g<br />

XML. The XML::Compile package for Perl prooved superior as a client framework.<br />

However, for the server side, there was a dem<strong>and</strong> for speed, flexibility <strong>and</strong> custom adjustment<br />

which led to the development of a light-wight SOAP server called ’quasi’ (’QUite<br />

A Soap Implementaion’ or ’QUAsi Soap Implementation’). Apart from the speed it has<br />

further advantages:<br />

• The server can be launched both remotely <strong>and</strong> locally. The later allows quick <strong>and</strong><br />

easy test<strong>in</strong>g of services by read<strong>in</strong>g SOAP message from STDIN<br />

• XML pars<strong>in</strong>g method (e.g. XML::Simple or XML::Twig) may be chosen <strong>in</strong>dependently<br />

for each operations <strong>and</strong> even postponed until after the job is placed <strong>in</strong> the<br />

queue <strong>and</strong> the job id is returned. This is an advantage for very big messages<br />

• Control over the code stack enable implementation of custom functionality much<br />

faster.<br />

4.3.2 quasi mktemp - From template to Web Service<br />

To take the ease-of-implementation to a new step, a template creator was written which<br />

reads from a st<strong>and</strong>ard <strong>CBS</strong> template an example Web Service. The user provides the<br />

name <strong>and</strong> version of the service <strong>and</strong> the tool prepares an entire <strong>in</strong>stallation of the service<br />

on the servers. The template created gives the follow<strong>in</strong>g :<br />

• Creates automatically WSDL <strong>and</strong> XSD files for the name <strong>and</strong> version of the service,<br />

placed <strong>in</strong> the proper location of the file system<br />

• Example directory with a work<strong>in</strong>g Perl example us<strong>in</strong>g the service<br />

• Has built-<strong>in</strong> templates for both syncrhonous <strong>and</strong> asynchronous access<br />

• Creates the proper entry <strong>in</strong> the central services database table<br />

• When the template creator has run a web page will be available describ<strong>in</strong>g the<br />

service <strong>and</strong> provid<strong>in</strong>g l<strong>in</strong>ks to WSDL <strong>and</strong> XSD files as well as WSDL-embedded<br />

documentation<br />

When design<strong>in</strong>g Web Services, it is not a trivial task to keep track of namespaces,<br />

declerations of <strong>in</strong>put/output objects, operation names etc. The feedback received so far<br />

for this tool <strong>in</strong>dicates that function<strong>in</strong>g examples clearly reduces chances for mistakes. The<br />

manual for the software is found <strong>in</strong> appendix D.6.<br />

150

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!