org.biomoby.shared
Class LSIDResolver
java.lang.Object
org.biomoby.shared.LSIDResolver
public class LSIDResolver
- extends Object
Implementation of LSID resolution for data and metadata. LSIDs are a OMG standard
for referring to pieces of biomedical data using URNs. See http://lsids.sourceforge.net/
Currently, this implementation only supports HTTP GET/POST resolution (resolution
for SOAP-based LSID servers is in the works). Essentially, given a URN such as
urn:lsid:biomoby.org:servicetype:Retrieval:2001-09-21T16-00-00Z
, the
resolvcer takes these steps:
- Parses out the authority "biomoby.org" from the URN
- Uses DNS SRV records to determine if the authority has a LSID
resolution server (e.g. moby.ucalgary.ca, port 80 for biomoby.org)
- Does an HTTP GET for /authority/ on the server to get the WSDL for the getAvailableServices operation
- Calls getAvailableServices on the LSID, which returns a WSDL of things you can do with the LSID
- Determines from the WSDL how to retrieve the data or metadata for the LSID
- Resolves any lsid:latest predicate in the response (if the requested LSID was versionless)
- Returns the URL where the data or metadata can be retrieved
For the moment, the First Well-Known Rule of LSID resolution is ignored because
lsid.urn.arpa is not registered in DNS, and all known hosts have DNS SRV records.
Steps 1 and 2 described here implement the Second Well-Known Rule in the LSID DDDS process (RFC 3405).
SRV_PREFIX
public static final String SRV_PREFIX
- See Also:
- Constant Field Values
AUTHORITY_WSDL_LOCATION
public static final String AUTHORITY_WSDL_LOCATION
- See Also:
- Constant Field Values
AUTHORITY_SERVICE_HTTP_BINDING
public static final String AUTHORITY_SERVICE_HTTP_BINDING
- See Also:
- Constant Field Values
AUTHORITY_SERVICE_SOAP_BINDING
public static final String AUTHORITY_SERVICE_SOAP_BINDING
- See Also:
- Constant Field Values
LSID_DATA_NAMESPACE
public static final String LSID_DATA_NAMESPACE
- See Also:
- Constant Field Values
LSID_HTTP_NAMESPACE
public static final String LSID_HTTP_NAMESPACE
- See Also:
- Constant Field Values
LSID_SOAP_NAMESPACE
public static final String LSID_SOAP_NAMESPACE
- See Also:
- Constant Field Values
LSID_WSDL_NAMESPACE
public static final String LSID_WSDL_NAMESPACE
- See Also:
- Constant Field Values
LSIDResolver
public LSIDResolver()
isLSID
public static boolean isLSID(String id)
findAuthorityWSDL
public URL findAuthorityWSDL(String lsid)
throws Exception
- Throws:
Exception
resolveDataURL
public URL resolveDataURL(String lsid)
throws Exception
- Throws:
Exception
resolveMetadataURL
public URL resolveMetadataURL(String lsid)
throws Exception
- Throws:
Exception
resolveMetadataService
public Dispatch resolveMetadataService(String lsid)
throws Exception
- Throws:
Exception
Submit a bug or feature
Generated: Sat May 29 04:26:35 EDT 2010