<p><a href='http://en.wikipedia.org/wiki/Web_service'>Web-services</a> using SOAP or REST style are becoming more and more popular in also bioinformatics. The <a href='http://www.embraceregistry.net/'>Embrace Registry</a> and <a href='http://www.biocatalogue.org/'>BioCatalogue</a> are registries which provide a good overview of publicly available bioinformatics services. They aim at making services easier to describe and find. It is also often heard that web-services provide a platform- and language-independent interface to databases and computation. Furthermore, web-services can be <a href='http://www.ncbi.nlm.nih.gov/pubmed/16845108'>composed into complex-workflows</a>, <a href='http://www.ncbi.nlm.nih.gov/pubmed/18056132'>used for data-integration,</a> automated user-interface and API-generation, that's at least the theory. How does the reality look for you?</p>

<p>Do you use  SOAP/REST/.NET services in bioinformatics,
and what are your experiences with the different services and service providers?</p>

<p>Main aspects I am interested in are motivated by my own recent (and very mixed) experiences:</p>

<ul>
<li>Did you encounter interoperability or language-dependence problems?</li>
<li>How did the providers react?</li>
<li>What would make you replace local scripts and tools by web-services?</li>
</ul>

<hr />

<p>Edit: I will have difficulties to choose the right answer, because everything said so far is valid.  </p>

<p>Here are some intermediate results. I am testing different SOAP services using Axis2/Java at the moment, using the wsdl2code to generate the Java trying adb and xmlbeans databindings. Maybe this list will grow:</p>

<ol>
<li>KEGG: wsdl2code: only with xmlbeans , usable: no, couldn't set arrayOfString because use of soapenc:array</li>
<li>BRENDA: wsdl2code: Error message: Wsdl not WS-I compliant, usable: no</li>
<li>BioMart soap: wsdl2code: yes, usable: no, after few mods of wsdl-file and tweaking axis2 params could send a valid message, response message is not valid </li>
</ol>

<p>I have used the Stanford HIVdb web service, which is a fantastic tool for identifying drug resistant mutations in HIV sequences. Fortunately, they provide the entire client-side base code in both Perl and Java, otherwise it might have been too onerous to deal with. I think this is absolutely critical to getting any traction if you intend to roll out a web service like this.</p>
<p>I believe our group was the first to submit pyrosequencing data to this service, which meant they received tens of thousands of hits from us instead of a just a few. Still, it was able to deal with the increased load over a weekend.</p>
<ul>
<li>Did you encounter interoperability or language-dependence problems?</li>
<li>
<p>Yes their Perl client did not work after a certain version. Fortunately they provided a Java client which continued to work.</p>
</li>
<li>
<p>How did the providers react?</p>
<ul>
<li>Very well. They were very helpful.</li>
</ul>
</li>
<li>
<p>What would make you replace local scripts and tools by web-services?</p>
</li>
<li>
<p>Because I work in industry now it
   would be difficult for me to get the
   use of these services blessed by the
   powers that be without a security
   framework in place (https?). There also appears to be a lot more available on the human side than for plants.</p>
</li>
</ul>
<p>I would say SOAP is losing the popularity contest to REST, not because of a lack of merits, but because only Pierre Lindenbaum understands how to use SOAP. Seriously though, I think SOAP was/is too complex or intimidating for most end-users to wrap their head around even though it is a more powerful framework.</p>
<p>Another factor that I think will be in REST's favor is the proliferation of modern web frameworks like Rails and Grails that make it easy to develop RESTy interfaces which serve both human and robot clients with the flip of a switch.</p>