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:
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.
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.
Internal ontology manager facilitates all basic operations such as creating, removing, renaming of datatypes and their properties.
Overlaid buttons panel provides load, reload and save file operations.
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 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.
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.
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.
By pressing a "save" button in a BioMoby services panel user is offered several choices for proxy generation.
- URL prefix - affects an URL service mapping. Prefix will be inserted before a service name.
- JAX-RS (REST) - JAX-RS REST proxy will be generated.
- JAX-WS RI (Metro) - generated proxy will be configured for a reference implementation of JAX-WS based web services.
- Enable SAWSDL - generated webservices will be annotated according SAWSDL specification. SAWSDL library is based on JAX-WS RI implementation, so must be run only with this particular implementation.
- * In case of leaving all checkboxes empty, generated application won't have any specific deployment descriptors and an addidtional configuration may be required (depends of an Application Server on which the proxy is going to be installed).
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.
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.
To generate a proxy application it is possible to use command line parameters. In this case generation is completely automatic.
- -url URL of the Registry. (if not specified, obtained by -registry namespace)
- -registry Registry namespace to connect to. (optional, default 'http://www.inab.org/MOBY/Central')
- -authority Authority to generate a proxy. (if not specified, proxy generated for all services)
- -mode Type of generated proxy. ('METRO', 'SAWSDL', 'REST')
- -fast Reuse cached datatype information.
- -output Generated output proxy (*.war) file. (if not specified, $autority + '.war')
- -help help about parameters.
Generates REST-based web services for all INB authorities.
Generates SOAP-based Semantically annotated web services for 'inb.bsc.es' authority.