Bc webservices

From Bioclipse
Jump to: navigation, search

The bc_webservices Plug-In brings Web Services to Bioclipse.

HowTo? Here we go...

The Plug-In is ready for usage. You can use it by clicking the "New" button in the toolbar of bioclipse or selecting "New" in the "File" menu; a wizard will appear and you may choose "Use WSDbfetch Web Service at EBI" in the Web Service category. Then just follow the wizard's instructions. In example you may select as database "pdb" and as the query "1JR8" (the 3D structure of the erv2 protein in S. cerevisiae). Thank you for using Bioclipse Web Wervices Plug-In.

You want more Web Services integrated? Do a feature request :)

Status

We are now here!

  • done - Creating new Web Services Plug-In skeleton (bc_webservices).
  • done - Creating a script for Axis1 and XFire to easily generate Java code from a WSDL file. (For Axis2 there is an eclipse Plug-In)
  • done - Extending the "New" wizard to fetch a database entry using the WSDbfetch service at EMBL.
  • done - Make the wizard's task a job; user can then continue to work while the WebService is still waiting for results.
  • done - Show the jobs result in an TextEditor window and offer an option to make in example pdb data a resource.
  • done - Added client stub for the SubLoc service.
  • TODO - Implement more Web Services.

For Developers

How to open the WSDbfetch wizard with preselected database and format

   import net.bioclipse.plugins.bc_webservices.wizards.newwizards.EBIWSDbfetchWizard;
   import org.eclipse.jface.wizard.WizardDialog;
   public void SpawnWSDbfetchWizard() {
       String database = "pdb";
       String format = "pdb";
       String style = new String();
       String query = new String();
       String description = "Please enter the pdb identifier.";
       boolean blockcombo = true;
       EBIWSDbfetchWizard wizard = new EBIWSDbfetchWizard(database, format, style, query, description, blockcombo);
       WizardDialog dialog = new WizardDialog(getShell(), wizard);				
       dialog.open();
   }

Concept Discussion

Development Facts:

  • As NCBI (GenBank), EMBL and DDBJ now provide their database entries in the INSD XML format (International Nucleotide Sequence Database Collaboration) we should use this as the default format, too.
  • The Eclipse WTP (Web Tools Platform) does not to provide Web Service development for clients that are not located on a webserver.

Java Web Service Libraries

  • Important note: rpc/encoded style WSDL documents are not WS-I compliant. This is a problem as DDBJ and EMBL offer WSDL files in this style only! (The only library that still supports this style is old slow Axis1...)
  • So far there are three main libraries for using Web Services: Axis1, Axis2 and XFire. All of them have tools to auto-generate client stubs from WSDL files (Web Service Definition Language).
  • About Axis2: according to the documentation there is an eclipse plugin for using the WSDL2Java to generate a client stub from a WSDL file. A problem of this library is that it does not support rpc/encoded style WSDL documents. In addition to this generated code created strange exceptions in eclipse - maybe it's my fault, maybe it's a bug, who knows.
  • About XFire: I create some code generator console script that can be edited and then run from console to generate the client stubs (/bc_webservices/jars/xfire-1.1-stubgenerator). A problem of this library is that it does not support rpc/encoded style WSDL documents.
  • About Axis1: I got this library working with WSDbfetch at EMBL. It seems that all Web Services listed below are done with this kit. This library is the only one that still supports rpc/encoded style WSDL documents that are used at DDBJ and EMBL. However the technology of this library seems to be outdated and people start switching to newer libraries like Axis2 and XFire.


Interesting Webservices for Bioclipse: (to be extended)