Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
Wiki Markup
{center}
!worddava87ec66bf28c396bfd9dcd6fac7dd9dd.png|height=428,width=489!
*Figure 2 -- Fedora Administrator Login Screen*
{center}

...

  1. Client: Clients make requests for content disseminations through the Fedora Access service APIs (i.e., API-A-LITE and API-A). These interfaces include operations for discovering and accessing all disseminations that are available for a particular digital object. A digital object can have both static and dynamic disseminations, which are described below.
  2. Fedora APIs: The Fedora repository service is exposed via a uniform set of APIs. Fedora's API-A and API-A-Lite provide operations (methods) for accessing digital object content. While the default mode of accessing a digital object directly delivers the datastreams (i.e., repository returns a bitstream for a datastream un-transformed), the CMA (Content Model Architecture) enables defining any number of custom services for accessing datastream content. These custom services are produced when the Fedora repository service calls another Web service to transform datastream content. Such transformations can be thought of "virtual" views of digital object content, since these views are created dynamically at runtime.
  3. Web Services: These are Web-accessible programs that are invoked by HTTP to produce disseminations of digital object content. Note that the Fedora repository itself is a Web service to access the default services of digital objects. Also, Fedora can interact with other Web services to product custom access services that transform digital object content on-the-fly. In this tutorial we will describe how Fedora interacts with simple REST-based services to product such custom services. Custom services are produced when the Fedora repository service itself makes outbound service calls to other Web services using simple REST-based requests. We will not discuss Fedora interacting with SOAP-based web services here.
  4. Storage: Digital objects are stored in the Fedora repository service. Datastreams are constituent parts of digital objects - essentially the content streams. Fedora interacts with low-level storage to access digital objects to fulfill client requests for access to content. Datastreams capture the raw content. As shown in the previous examples, Datastreams can be directly disseminated via the Fedora Access service. Also, datastreams can serve as input to other custom services that are produced on-the-fly when the Fedora repository service calls upon another Web service at run time (using a raw Datastream as input).

...

This will create the digital object with PID demo:ex3SDef in your repository. This SDef defines one method getContent. This generic method name is intentional - one could imagine this one SDef being used as the basis for several SDeps, each of which produces "content" via a unique transformation of an underlying source. This is one of the advantages of Fedora - providing a common interface despite multiple underlying representations.

...

You now need to add the two datastreams: the xml source document and the xsl transform document. Using the same method described in Example 1, select the Datastreams tab and:

  • Add a datastream with:
    • ID - source
    • Control Group - Managed Content
    • Mime type - text/xml
    • Label - Poem XML Source
    • Import location: FEDORA_HOME/userdocs/tutorials/2/example3/poem.xml
  • Add a datastream with:
    • ID - xsl
    • Control Group - Managed Content
    • Mime type - text/xml
    • Label - Poem XSL Transform
    • Import location: FEDORA_HOME/userdocs/tutorials/2/example3/poem.xsl

...

  • Create a new digital object (the "XSL" digital object) assigning the PID demo:400. Create one datastream in addition to the DC with ID XSL. As before, this datastream should be configured as:
    • ID - xsl
    • Control Group - Managed Content
    • Mime type - text/xml
    • Label - Poem XSL Transform
    • Import location: FEDORA_HOME/userdocs/tutorials/2/example3/poem.xsl
  • Create another digital object (the "disseminator" digital object) assigning the PID demo:500.
  • Create two new datastreams
    • One configured as follows (the same as the Source datastream in Example 3):
      1. ID - source
      2. Control Group - Managed Content
      3. MIME type - text/xml
      4. Label - Poem XML Source
      5. Import location: FEDORA_HOME/userdocs/tutorials/2/example3/poem.xmlo
    • Now create the datastream that will redirect to the XSL in demo:400 as follows:
      1. ID - xsl
      2. Control Group - Redirect
      3. Mime Type - text/xml
      4. Label - Poem XSL Transform
      5. location: http://localhost:8080/fedora/get/demo:400/XSL
      6. • On the New RELS-EXT... tab add the same hasContentModel relationship to demo:ex3CModel as you did in example 3.

...

You should now understand the basic mechanisms through which SDefs, SDeps and CModels interact with Data objects to provide a richer dynamic view of the data stored in those objects. The next tutorial (Tutorial 3 - Not yet available) steps you through the process of using the admin client to create a SDef, a SDep, and a CModel from scratch and a Data object that will function with the control objects to provide customized services similar to those described in the last example of this tutorial. To explore the other features of Fedora, refer to the Fedora Repository Documentation. You can also join the Fedora-users mailing list to ask questions and learn from the experience of other Fedora users.