LSID conformance test tool
Ricardo Scachetti Pereira
ricardo at TDWG.ORG
Thu Mar 9 09:06:13 CET 2006
There's been a number of new LSID resolvers (prototypes) poping up
here and there due to the recent adoption of LSID specification by the
Biodiversity Informatics community (see http://wiki.gbif.org/guidwiki
for more details).
Since then I found myself spending quite sometime trying to explore
the details of each implementation and also troubleshooting some of the
resolvers. Although there is a number of tools available for testing,
such as both IE and Mozilla Launchpads and the Biopathways web resolver,
I often find myself trying to get more info out of the resolvers using
ad-hoc techniques, such as hacking urls in the web browser address box.
I thought it would be nice to have a more automated tool that would
tell us all about each new resolver that pops up out there. I think
developers setting up their own resolvers would benefit of such tool as
Initially, the idea as to develop a kind of LSID resolver debug
tool, but it quickly evolved into some kind of LSID standard conformance
So before I start doing this on my own, I would be grateful if you
could share your thoughts regarding the development of an automated
conformance testing tool for LSID resolvers, such as requirements, past
and ongoing related activities, or any ideas on the matter.
What I have in mind right now is the following:
* This conformance tool would take one or more LSIDs and would try and
resolve them. It would then output a report about the resolver and
warning and error messages when the server deviates from the standard.
* The tool would output a full report about the LSID authority, including:
1. LSID syntax break up: authority id, namespace, id, version (trivial);
2. Information about the authority DNS SRV record. If none is found,
it would use the Launchpad http fallback mechanism to move on (it would
issue a warning regarding that fact, though);
3. Information about the WSDL found at /authority/ path (WSDL and
human readable report if possible)
4. Information about the getAvailableServices() call (list of
available services, WSDLs and again, a human readable report if possible)
5. Information on calls to all available (data and metadata)
services, with links to the results.
6. What else?
* The tool could also test for (http) error codes by providing data that
is known to be invalid (something like Unit Tests).
* Would it be nice to have a client conformance test tool? I'm just not
sure yet how this tool would keep track of calls made by the same client.
The other issue I'm struggling at the moment is the question of how
to implement it. The first thing that came to my mind was to hack one of
the existing clients. Now I'm not sure whether to use IE Launchpad and
thus make this available as a desktop client or to use the Perl or Java
client stacks to implement the tool as a web application.
Anyway, thoughts are really appreciated.
PS. Sorry about the cross post. This message is being sent to both the
LSID developers and the TDWG/GBIF GUID mailing lists, as I believe it
will interest both communities.
More information about the tdwg-tag