BioNemus Web Services generation tool


Requirements

BioNemus is a pure Java application that requires Java 6 update 4 version (or better) that can be obtained from Oracle (SUN) download page (http://java.sun.com/javase/downloads/index.jsp). The application is implemented as a Java applet (http://inb.bsc.es/applications/java/bionemus2/index.html), but can be run as an usual stand-alone Java application through auto-executable BioNemus2.jar file. The latter requires a java compiler so to successfully run either JDK must be used or java compiler libraries must be put along the application:

wrong java version

An intention to execute the application on a previous, obsolete version (java 5) will rise a warning message. Even older versions will give an "unsupported version" error.

Web services generated by the application are Java Enterprise Edition 5 (JEE5), JAX-WS based. These services are packed as a Web Application Archive (WAR) and can be deployed on any JEE5 compatible application server (Tomcat 6, JBoss 5 GA, Glassfish 2, etc.). But because SAWSDL implementation library is based on reference implementation of JAX-WS (METRO) it is mandatory to have this concrete implementation on the chosen platform.

BioNemus Graphical User Interface
GUI

To develop web services the application maintains its own XML Schema based ontology. This ontology is stored as an XML Schema files packed in a zip archive and can be found in an user home directory.

Managing an ontology

Internal ontology manager facilitates all basic operations such as creating, removing, renaming of datatypes and their properties.

manage
buttons

Overlaid buttons panel provides load, reload and save file operations.

import

It is also possible to import datatypes from BioMoby using drag and drop operation or a context menu. Drag and drop operation imports a dragged datatype with all its referenced dataypes (i.e. parents). On the other hand "import all" imports a complete tree (including children).



BioMoby integration
registries

BioMoby integration is encapsulated in "BioMoby" tab panel and provides an access to several BioMoby registry servers.

User can choose within several predefined servers. After selection, the application connects to the selected server and gets all necessary information about BioMoby web services and datatypes. This information is cached in a user's home directory, so there is no need to load it each time from a registry.

log bar

The loading progress is logged to an application status bar that can be found at the bottom. It is possible to view a log history moving a mouse pointer over a log icon.

A major functionality of BioMoby integration panel is a generation of semantically annotated web services based on already existent BioMoby services.


moby

User can select one or more services or entire authorities and save a generated application to a disk. Apart of possibility to import BioMoby datatypes into the ontology editor, there is also a possibility to export entire datatype ontology tree as JAXB annotated Java classes. These classes can be used for web service development.


moby

By pressing a "save" button in a BioMoby services panel user is offered several choices for proxy generation.


Web Services generation
service generation panel

Web service generation functionality can be found in a "BioNemus" tab panel. It is obligatory to specify a web service name and an least one parameter (either input or output). The latter can be done through dragging a datatype from the ontology tree or using a context menu. It is also obligatory to specify a parameter name otherwise an operation of adding a new parameter may be canceled. There is a possibility to annotate the service. An annotation consists in an URI and a literal string. Later these annotations may be included into the generated WSDL service description file. If everything is OK, "generate" button is enabled allowing to save a generated web service to a disk.

WAR structure

Generated service is packaged as a Web Application Archive file (WAR) as defined in Servlet 2.4 specification. This format is understood by many Java Integrated Development Tools. For instance, it is possible to decompress it into some directory and use this directory as a project using Netbeans development tool.

Command line usage

To generate a proxy application it is possible to use command line parameters. In this case generation is completely automatic.


Examples:

java -jar BioNemus2.jar -mode REST

Generates REST-based web services for all INB authorities.

java -jar BioNemus2.jar -authority inb.bsc.es -mode SAWSDL

Generates SOAP-based Semantically annotated web services for 'inb.bsc.es' authority.