The Sandbox LSID Assigner is currently not in service. However, it is not needed at the moment to run the SyMBA application.

Structure of the SyMBA Web Services

There are four SyMBA modules dealing with WS. The separation of a relatively small number of classes into a relatively large number of Maven modules allows for greater flexibility and simpler installation and use of the WS.

  • symba-lsid-ws-api. The API provides the Java interfaces that must be implemented if you wish to create your own version of the SyMBA WS. It is these classes that are annotated with the JAXB and CXF Java annotations, and it is from these classes that the WS files are auto-generated by CXF where necessary. Within this module are interfaces for LSID assigning (LsidAssigner.java), LSID service checking (LsidResolver.java), and Lsid Data and Metadata Retrieval (LsidDataRetriever.java). There are two other non-interface classes that provide the response / return structures for LSID metadata (LsidMetadataResponse.java), and for returning available WS for a given LSID (LsidDataServiceResponse.java).

  • symba-lsid-ws-assigner. The assigner module is an implementation of the LsidAssigner interface. Its main method, assignLsid(), creates an LSID with a pre-set authority identification of "cisban.cisbs.org", and a namespace you specify. In SyMBA this namespace must be the class name of the object you are referencing.

  • symba-lsid-ws-api-resolver. The resolver module is an implementation of the LsidDataRetriever and the LsidResolver interfaces.

  • symba-lsid-ws-api-client. The client module provides example Java classes and Taverna workflows that can be used to access the two WS.

Accessing the SyMBA Sandbox Web Services

LsidAssigner

  • assignLSID(). The LsidAssigner webservice contains a single method, assignLSID(), which returns an auto-generated LSID based on a namespace you specify. There is a sandbox installation of this webservice running on http://bsu.ncl.ac.uk:8081/symba-lsid-ws-assigner/services/LsidAssigner?wsdl . There are two examples of how to use this webservice.

    • Via a Java client class. You can examine and use the net.sourceforge.symba.lsid.webservices.client.LsidAssignerClient to connect to any running installation of the symba-lsid-ws-assigner module of the SyMBA project. You specify which WS you wish to connect to by modifying the address property of the clientAssignerFactory bean. The value of the address property, as it is checked-out from SyMBA subversion, is the value required to connect to the SyMBA sandbox WS installation.

    • Via Taverna. Within the symba-lsid-ws-client/src/main/resource/taverna-workflows directory, you'll find some example Taverna workflows that connect to the WS running on the SyMBA sandbox server. Load these files up in Taverna, and you'll be able to connect the SyMBA WS to your own Taverna workflows, or even run them on their own. There are also sample workflow inputs, those these may be out of date, as they give sample LSIDs that were in the sandbox at the time of creating the input files, but which are not necessarily always in the sandbox.

LsidResolver

  • getAvailableServices(). Check that the available web services can deal with your LSID. This method only sends you the location of the client-beans.xml file appropriate to the current service setup, which you can get from the SyMBA checkout anyway. In other words, you shouldn't really need this method, and it's just implemented to get closer to the LSID specification. However, if you wish to use it, there are two ways, as described for the assigning WS, i.e.

    • Via a Java client class. You can examine and use the net.sourceforge.symba.lsid.webservices.client.LsidResolveAndRetrieveClient to connect to any running installation of the symba-lsid-ws-resolver module of the SyMBA project. You specify which WS you wish to connect to by modifying the address property of the clientAssignerFactory bean. The value of the address property, as it is checked-out from SyMBA subversion, is the value required to connect to the SyMBA sandbox WS installation.

    • Via Taverna. Within the symba-lsid-ws-client/src/main/resource/taverna-workflows directory, you'll find some example Taverna workflows that connect to the WS running on the SyMBA sandbox server. Load these files up in Taverna, and you'll be able to connect the SyMBA WS to your own Taverna workflows, or even run them on their own. There are also sample workflow inputs, those these may be out of date, as they give sample LSIDs that were in the sandbox at the time of creating the input files, but which are not necessarily always in the sandbox.

LsidDataRetriever

  • getMetadata(). Get some information about an LSID. This method is used to return documents containing the metadata associated with a particular lsid at this particular data retrieval service. According to the LSID specification, metadata can be returned in multiple formats. The acceptedFormats argument is an array of strings, each of which contains a media type. SyMBA only accepts LsidMetadataResponse.LSID_RDF_FORMAT, which equals "application/rdf+xml". You can access this method in the same way as the other WS described, i.e.

    • Via a Java client class. You can examine and use the net.sourceforge.symba.lsid.webservices.client.LsidResolveAndRetrieveClient to connect to any running installation of the symba-lsid-ws-resolver module of the SyMBA project. You specify which WS you wish to connect to by modifying the address property of the clientAssignerFactory bean. The value of the address property, as it is checked-out from SyMBA subversion, is the value required to connect to the SyMBA sandbox WS installation.

    • Via Taverna. Within the symba-lsid-ws-client/src/main/resource/taverna-workflows directory, you'll find some example Taverna workflows that connect to the WS running on the SyMBA sandbox server. Load these files up in Taverna, and you'll be able to connect the SyMBA WS to your own Taverna workflows, or even run them on their own. There are also sample workflow inputs, those these may be out of date, as they give sample LSIDs that were in the sandbox at the time of creating the input files, but which are not necessarily always in the sandbox.

  • getData(). Get the data pointed to from an LSID. The LSID specification states that "This method is used to return data associated with the given lsid. If a copy of the data represented by an LSID cannot be returned for any reason, an exception should be raised. If the given lsid represents an abstract entity (a concept), this method returns an empty array of bytes. Note that the semantics of the returned bytes is not defined by this specification." You can access this method in the same way as the other WS described, i.e.

    • Via a Java client class. You can examine and use the net.sourceforge.symba.lsid.webservices.client.LsidResolveAndRetrieveClient to connect to any running installation of the symba-lsid-ws-resolver module of the SyMBA project. You specify which WS you wish to connect to by modifying the address property of the clientAssignerFactory bean. The value of the address property, as it is checked-out from SyMBA subversion, is the value required to connect to the SyMBA sandbox WS installation.

    • Via Taverna. Within the symba-lsid-ws-client/src/main/resource/taverna-workflows directory, you'll find some example Taverna workflows that connect to the WS running on the SyMBA sandbox server. Load these files up in Taverna, and you'll be able to connect the SyMBA WS to your own Taverna workflows, or even run them on their own. There are also sample workflow inputs, those these may be out of date, as they give sample LSIDs that were in the sandbox at the time of creating the input files, but which are not necessarily always in the sandbox.