In gCube, the Metadata Management has been designed to rely on the storage facilities provided by the Storage Management layer and its support to manage primary and secondary relations between Information Objects. The subsystem is called upon to support the management of metadata objects and metadata collections, i.e. supporting their creation, access, storage and removal of objects compliant with one or more metadata format and their efficient search. To implement such functions the internals of the subsystem has been organised according to the following architecture.
The functionalities expected by the Metadata Management subsystem are implemented by two cooperating services: one taking care of the creation and management of Metadata and Metadata Collections (Metadata Manager) and another taking care of the support to metadata object retrieval (XML Indexer) as depicted in Figure 1.
- Metadata Manager – this Service is responsible for storing, changing, accessing and manipulating Metadata according to the gCube Metadata Model (see the image below);
- XML Indexer – this Service is a generic XML Indexer service allowing to query Metadata by resolving arbitrary XQuery and XPath expressions against its managed content. It indexes homogeneous collections of XML data.
gCube Metadata Model
A Metadata Object (MO) is a source Information Object for an IDB-relationship. An MO can be associated to one and only one target Information Object (even if in the context of different Metadata Collections) which is described by the MO. An MO here is always intended as an XML document wrapped in a well defined envelope. As to content, the Metadata Manager Service adopts an exchange model to add a number of system-level properties needed for the appropriate management of the Metadata Objects within the context of the Metadata Manager Service.
The following figure shows the gCube Metadata Model implemented by the Metadata Management Services:
gCube MO serialization
This is an example of MO serialization compliant with the exchange model defined in the Metadata Management Services.
<mc:metadata xmlns:mc="http://gcube-system.org/namespaces/metadatamanagement/mm/model"> <mc:header> <mc:OID/> <mc:targetOID>ec6c6950-8a1f-11dd-8a94-ab195c7ec6c7</mc:targetOID> <mc:memberOf></mc:memberOf> <mc:creation>2009-01-08:07:24:16.CET </mc:creation> <mc:lastUpdate>2009-01-08:07:24:16.CET </mc:lastUpdate> </mc:header> <mc:body> <!-- MO payload --> </mc:body> </mc:metadata>