![]() |
Collection Interface |
|
Here we describe the interface between an ADL middleware server and collections hosted by the server. This interface can be appreciated only in the context of the middleware's client interfaces, and thus that document, and the server-side architecture diagram, should be visited first. Conceptually, an ADL collection is 1) a set of items, each of which has item-level metadata and an identifier that is unique within the collection; together with 2) collection-level metadata. Functionally speaking, an ADL collection is a set of services that return collection-level metadata; that return the identifiers of all items in the collection; that return various standard views of item-level metadata; and that, most significantly, query the collection and return items matching one or more constraints placed against item-level metadata. Although not required logically, it is expected that collections respond to requests quickly, consistently, and reliably, and that identifiers have relatively long-term persistence. The interface to a collection is implemented by a driver, or more precisely, by four drivers, which respectively implement the middleware's collection, identifiers, metadata, and query services for that collection. The middleware dynamically and independently loads drivers on demand, and may unload a driver at any time. (The query driver should anticipate that it may be unloaded while there are outstanding query threads.) Drivers must be threadsafe. The middleware refers to collections by short names, e.g.,
" ADL has specified a content standard and XML encoding for collection-level metadata. By contrast, collections are generally free to use any item-level metadata, the only requirement being that item-level metadata must be mapped to the ADL search buckets and to the standard ADL metadata views. Collections may also return other views of item-level metadata not defined by ADL. The Java interfaces that the three drivers must implement are as follows:
|
last modified 2009-02-06 22:43