Computational tools and Interoperability in Comparative ... - CBS
Computational tools and Interoperability in Comparative ... - CBS
Computational tools and Interoperability in Comparative ... - CBS
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