[seek-dev] [Bug 1040] - set up registry service for ecogrid

bugzilla-daemon@ecoinformatics.org bugzilla-daemon at ecoinformatics.org
Wed Mar 17 15:09:38 PST 2004


jones at nceas.ucsb.edu changed:

           What    |Removed                     |Added
                 CC|jones at nceas.ucsb.edu        |
  BugsThisDependsOn|                            |1165, 1166, 1167
         AssignedTo|jones at nceas.ucsb.edu        |rods at ku.edu
             Status|ASSIGNED                    |NEW
           Priority|P2                          |P1
          QAContact|jones at nceas.ucsb.edu        |seek-dev at ecoinformatics.org

------- Additional Comments From jones at nceas.ucsb.edu  2004-03-17 15:09 -------

Here's the description of the registry backend that I promised on the phone
today.  Using the EcoGrid Query API will allow us to switch around the backend
if we desire, but as we discussed it will be pretty simple to use Metacat to
store the XML documents that constitute the registry information.  For now,
because we don't have an EcoGrid write API defined yet, you can use the
Metacat-specific client library described below to write to the Metacat.  

Metacat Client
Update your CVS version of the metacat module, and make sure you have an updated
copy of the utilities module as well.  With those in place, you should be able
to type "ant clientjar" and build the metacat client.  This will produce
metacat-client.jar and utilities.jar and httpclient.jar -- putting these in your
classpath will allow you to access metacat from any java program.  There are
some detailed examples of using the API in the JUnit tests that I wrote (see
metacat/test/edu/ucsb/nceas/metacattest/client/MetacatClientTest.java).  For the
common cases you'll need of inserting, updating, and deleting registry
documents, it boils down to this (lots of exception handling not shown):
String testdocument = "<?xml
Metacat m = MetacatFactory.createMetacatConnection(metacatUrl);
String identifier = "testid.1.1";
m.login("username", "password");
String response = m.insert(identifier,
                    new StringReader(testdocument), null);
identifier = "testid.1.2";
String response = m.update(identifier,
                    new StringReader(testdocument), null);
String response = m.delete(identifier);

The response is an XML document itself with either a root node of "<success>" or
"<error>" and some messages explaining the result.

Of course, you can use the EcoGrid client API to query the metacat server (or
you can use the metacat client "query()" method).

Registry XML document
The registration process should include information found in bug 1166, bug 1165,
and bug 1167 and consider the discussion in bug 1040.  That said, some of the
info that should be included probably includes:

1) A GSH endpoint for the service
2) A pointer to a WSDL document for the service, or a copy of the WSDL
3) A human readable name for the service
4) An optional coverage section for the service
    -- base this on the EML coverage module, including space, time, taxa
5) For data services, an optional estimate of number of data sets (possibly by
coverage area)
6) For computational services, some optional terms from an analysis
classification ontology that describe what the sevice does (e.g.,
SpeciesDistributionPredictionModel): see bug 1167

Lets chat about this and revise it when you digest it some.

More information about the Seek-dev mailing list