moveDescriptionElements
[cdmlib.git] / src / docbkx / guid-resolution.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <chapter version="5.0" xml:id="guid-resolution"
3 xmlns="http://docbook.org/ns/docbook"
4 xmlns:ns5="http://www.w3.org/1999/xhtml"
5 xmlns:ns4="http://www.w3.org/2000/svg"
6 xmlns:ns3="http://www.w3.org/1998/Math/MathML"
7 xmlns:ns2="http://www.w3.org/1999/xlink"
8 xmlns:ns="http://docbook.org/ns/docbook">
9 <info>
10 <title>Globally Unique Identifier Resolution</title>
11 </info>
12
13 <section>
14 <caution>
15 <title>Likely To Change</title>
16
17 <para>Globally unique identifiers, their use and implementation are
18 still an unresolved topic. The implementaton of objects that are
19 identifiable and resolvable in a global sense must, given an open world,
20 reflect the standards and best practices being used by the community as
21 a whole. Consequently this area of the CDM is likely to change to
22 reflect this.</para>
23 </caution>
24
25 <para>The service layer implements a number of services designed to serve
26 as the basis of a LSID Resolution Service. This includes implementations
27 of <interfacename>LSIDAuthorityService</interfacename>,
28 <interfacename>LSIDMetadataService</interfacename>, and
29 <interfacename>LSIDDataService</interfacename>. Note that these are
30 service-layer implementations - the http-specific components can be found
31 in the <package>cdmlib-remote</package> package.</para>
32
33 <para>In addition to implementations of the three core LSID Resolution
34 services, the service layer holds the
35 <interfacename>LSIDRegistry</interfacename>, the component that maps LSID
36 authority + namespace combinations onto CDM classes. The implementation
37 assumes that a given authority and namespace will map onto a single CDM
38 base class, but that authorities may use different namespaces for the same
39 class of objects. In addition, the
40 <interfacename>LSIDRegistry</interfacename> provides a way of controlling
41 which authority + namespace combinations a CDM application will respond
42 to. For example, it is possible that an application will store objects
43 with identifiers published by another (foreign) authority, but doesn't
44 wish to serve metadata about these objects. By only registering specific
45 authority + namespace combinations in the
46 <interfacename>LSIDRegistry</interfacename>, a CDM store can resolve some
47 combinations but not others.</para>
48
49 <para>The three most common methods used are the
50 <methodname>getAuthorityWSDL</methodname> and
51 <methodname>getAvailableServices</methodname> methods that return a
52 <interfacename>javax.xml.transform.Source</interfacename> within an
53 <interfacename>ExpiringResponse</interfacename> object suitable for
54 rendering in a response to a client, and
55 <methodname>getMetadata</methodname>, that returns an
56 <interfacename>IIdentifiableEntity</interfacename> within a
57 <interfacename>MetadataResponse</interfacename>. If the
58 authority+namespace is not resolved, or if the object cannot be resolved,
59 or if the client requests metadata in an unavailable format, an exception
60 is thrown.</para>
61 </section>
62 </chapter>