cdlrg.jpg (11645 bytes)

Cornell Digital Library
Research Group

Flexible and Extensible Digital Object and Repository Architecture

An essential requirement of our component-ware digital library infrastructure is a reliable and secure means to store and access digital content. In the FEDORA project, we are investigating a general digital object model and repository architecture for encapsulating and securing multimedia content. Fundamental to the architecture are mechanisms to provide for extensibility and interoperability of content types and rights management schemes. The key challenges we are addressing in FEDORA include:


The Digital Object and Repository Model

FEDORA defines a container abstraction known as the DigitalObject that encapsulates multimedia content in typed byte stream packages called DataStreams. Any Datastream may reference remote data in other DigitalObjects, resulting in distributed content.  All DigitalObjects have a set of generic behaviors (the PrimitiveDisseminator methods) to create and access DataStreams and to manipulate the structure of the DigitalObject.  The DigitalObject also has an extensible interface layer that provides views, or disseminations, of encapsulated data in a contextually meaningful manner. A dissemination can be either a direct transcription of stored data (e.g. a page of a book), any computable derivation of stored content, an interactive object (e.g., a book viewing applet), or any mixture of these. A Disseminator   is a FEDORA component that associates an extended set of service requests with a DigitalObject to produce disseminations. The Repository is the FEDORA component that provides services to deposit, store, replicate and access DigitalObjects as generic entities, identifiable by their unique names (URNs).

The architectural segregation of structure, extensible interfaces, and mechanisms for executing extensible behaviors is key to the FEDORA DigitalObject model.  Many types of Disseminators can be associated with a DigitalObject to extend its behavior beyond the generic methods.   For example, a DigitalObject can have a Disseminator that endows it with a set book-like behaviors, allowing a client to interact with the DigitalObject through a set of requests such as "get next page" or "get next chapter."   A Disseminator references a Signature which is a formal definition of the set of methods that pertain to a particular Disseminator Type.   It also references a Servlet which is a mechanism (a program) that executes the methods defined by the referenced Signature.   Both Signatures and Servlets can be stored in DigitalObjects and registered with a global naming service (e.g., the Handle System).  This creates a de facto registry of Disseminator Types -- Signatures and Servlets become "known" when their names (e.g., URNs of their DigitalObject containers) are registered with a global naming service.  A FEDORA Repository provides an environment for activating and running Servlets. The FEDORA extensibility model depends heavily on mobile code security, an area of research that we are incorporating into our continuing architectural work.

A simple DigitalObject is depicted below. It contains a structural kernel with two DataStreams (a Postscript stream and MARC metadata) and the PrimitiveDisseminator, which is the set of generic service requests. There are also three Disseminators (BOOK, MARC, and DublinCore). Clients can obtain various disseminations of the DigitalObject by invoking the methods of each Disseminator.  For example, a client can obtain a Dublin Core record by invoking the getDCRecord() request. Although there is no Dublin Core data inside this object, the DC Disseminator activates an external mechanism that derives Dublin Core from MARC data. This is one simple example of how the underlying structure of a DigitalObject is distinct from the disseminations it can produce.


The FEDORA CORBA IDL can be found at:

To download FEDORA Software:

Researchers are free to get the java source code of the FEDORA Reference Implementation at:

For more information:

Dushay, Naomi and Carl Lagoze, "Modeling Decisions for Digital Content," Cornell University Computer Science, Technical Report TR2000-1807, July, 2000.

Payette, Sandra and Carl Lagoze, Policy-Carrying, Policy-Enforcing Digital Objects, accepted by Fourth European Conference on Research and Advanced Technology for Digital Libraries, Portugal, forthcoming Springer, 2000, (Lecture notes in computer science), draft available at

Payette, Sandra and Carl Lagoze, Value Added Surrogates for Distributed Content: Establishing a Virtual Control Zone, D-Lib Magazine, June 2000,

Payette, Sandra, Christophe Blanchi, Carl Lagoze, and Edward Overly, Interoperability for Digital Objects and Repositories: The Cornell/CNRI Experiments,  D-Lib Magazine, May 1999.

Payette, Sandra and Carl Lagoze, Flexible and Extensible Digital Object and Repository Architecture, Second European Conference on Research and Advanced Technology for Digital Libraries, Heraklion, Crete, Greece, September 21-23, 1998, Springer, 1998, (Lecture notes in computer science; Vol. 1513).

FEDORA, Presentation at Second European Conference on Research and Advanced Technology for Digital Libraries, September 21, 1998.

Daniel Jr., Ron, Carl Lagoze, and Sandra Payette, A Metadata Architecture for Digital Libraries, IEEE Advances in Digital Libraries 1998, Santa Barbara, California, April 1998.

Daniel Jr., Ron and Carl Lagoze, Distributed Active Relationships in the Warwick Framework, Proceedings of the 1997 IEEE Metadata Conference, Silver Spring, Maryland, July 1997.

Contact Sandy Payette at or Naomi Dushay at

Page last upated 07/19/00

Return to CDLRG Home Page