Child pages
  • Digital Repository Services
Skip to end of metadata
Go to start of metadata

Should this page be dissolved, with its contents moved to other pages?

Here's a list of services that we might implement to interact with the Fedora Repository.

  1. Search Service
  2. Item Access Service
  3. Ingest/Update Service
  4. Auth/Authorization Service

Search Service

A user of this service should be able to query the objects stored in our Repository. This will probably use the system wide searching capabilities to return a set of object/item identifiers, along with some more information. These identifiers will be DLP identifiers assigned for those objects.

Item Access Service

This service will accept an DLP object/item id and return a representation of the digital object in XML. Object representations will be provided in XML schemas. For example, for each content model, (image, paged, page, collection, etc.) there will be a schema describing the objects in that content model. A base type definition might look like:

    <xs:complexType name="DLPItem" abstract="true">
        <xs:sequence>
            <xs:element name="id" type="ItemId" maxOccurs="1" minOccurs="1"></xs:element>
            <xs:element name="status" type="ItemStatus" maxOccurs="1"></xs:element>
            <xs:element name="metadata" type="Metadata" maxOccurs="1"></xs:element>
            <xs:element name="lastModDate" type="LastModType" maxOccurs="1"></xs:element>
            <xs:element name="memberOf" type="ItemId"></xs:element>
            <xs:element name="model" type="xs:string" fixed="base" maxOccurs="1"></xs:element>
            <xs:element name="relations" type="ItemId" maxOccurs="unbounded"></xs:element>
        </xs:sequence>
    </xs:complexType>

Ingest/Update service

This service will accept an XML document describing the object to be ingested or updated along with packaged supplementary files. Object representations will be based on the item schemas defined for the Item Access Service. If the item exists on the repository it is going to be updated, otherwise a new object will be created. If the object needs to be reingested replacing the old object completely, the existing object will need to be deleted first. Supplementary files (such as image files for the image content model) will be put in archive file (such as zip, jar) and will be uploaded to the service.

Authentication/Authorization service

This needs to be detailed. Each service above will probably require a kind of authentication. IU CAS might be used for implementing this. If a user authenticates correctly, this service might return a user token which will be used in interactions with all the other services.

A sample scenario for cataloging

A user wants to add some metadata to an item previously ingested using the Ingest Tool. Using the DLP Cataloging Tool, the user searches for the item (a) and retrieves the item ID. She uses the cataloging tool to load the object (b). She enters the metadata information using the cataloging tool interface and saves the item (c)
(a) Search service
(b) Item Access service
(c) Ingest/update service

Open questions

  1. How best to implement the auth/authz service?
  2. Is using item/object schemas a better approach than using Fedora objects directly? The latter will require less effort.
  3. What is the best method for implementing these services? Alternatives are SOAP web services and Servlets.
  • No labels