Flexible and Extensible Digital Object and Repository Architecture
(FEDORA)
Sandra PayetteCornell University
June 29, 1999
Harvard University
http://www.cs.cornell.edu/payette/presentations/fedora99.ppt
Carl LagozeCornell University
Repository Services
Component-Ware Digital Libraries
Collection Services
Index Services
Handles
NameService
DigitalObjects
UI GatewayService
FEDORA: Goals
• Normalization of content: via well-defined interfaces
• Interoperability: for digital objects and repositories
• Extensibility: naturally evolving type system
• Flexibility: community-driven type development
• Distribution: of content and services
• Rights management: leveraging existing/future schemes
FEDORA
• Digital Object Model container for aggregating any digital material disseminations of complex types rights management global extensibility mechanisms
• Repository Service layer for “contained” DigitalObjects Object lifecycle management Secure environment for running mobile code
FEDORA History
• Kahn/Wilensky
• Warwick Framework
• Distributed Active Relationships
• Cornell FEDORA (Lagoze, Payette)
• CNRI Repository (Arms, Blanchi, Overly)
• CNRI/FEDORA - Interoperability Project
• Berkeley - Interoperability with MOA2 objects
• U of Virginia - Complex Disseminators
• Project Prism (DLI2)
Fedora DigitalObjects can be...
• Simple, familiar entities
• Complex, compound, dynamic objects
DublinCore
Book
Fu
ture
Dia
ry-MO
A
Multiple “views” of a DigitalObject
DataStream (MIME-typed byte stream)
Digital Object is...
recognizable by what it can do
getChaptergetPage
getTrackgetLabel
getSectiongetArticle
getFramegetLength
Disseminator Type
A set of behaviors that formally describes the functionality of any global
or domain-specific notion of content.
Disseminator
A generic component that associates
a set of behaviors with a DigitalObject.
PrimitiveDisseminator
Extensible Type Disseminator
Generic behaviors Extended behaviors
FEDORA DigitalObject
application/postscript
application/MARC
PrimitiveDisseminator
Structural Kernel
Extensible Behavior Layer
application/MARC DS1
application/postscript DS2
PrimitiveDisseminator
Client communicates with generic requests
Book, DublinCore
ListDisseminatorTypesBook
DisseminatorDublinCore
Disseminator
GetDissemination(Book.GetPage(1))
GetChapterGetTOCGetPage
GetChapter(n), GetPage(n),GetTOC()
GetMethods(Book)
Disseminator Design Principles
• Stability
• Orthogonality to Structure
• Extensibility
These are achieved in FEDORA through the architectural segregation of DigitalObject structure, mechanisms, and interfaces.
DigitalObject Interface Stability
MechanismStructure Interface
Disseminator Type
Mechanisms can be updated or replaced as technology changes ...
… and the interface tothe Digital Object
remains stable
DigitalObject Extensibility: Adding New Types
MechanismStructure Interface
Book
The sameunderlyingdata...
Boo
k
can be operatedon in novel ways…
Photo Collection
to create new disseminationsnot originally conceived of
for the particular digital object.
Pho
toC
olle
ct
A Disseminator is a Generic Component...
… that references another FEDORA DigitalObjectthat disseminates a servlet
GetDCField(e), GetDCRecord
GetMethods(DC)
application/MARC
GetDCFieldGetDCRecord
DC
DS1
application/postscript
DS2
DataStreams = DS1
TypeID = URNDC1
… to produce non-generic behaviors
Extensibility: a look under the hood
application/MARC
DC servlet
application/postscriptDublinCore
Record
GetDissemination( GetDCRecord)
DC
CTID = URNDC1
DC sign
atur
e
GetDCFie
ld
GetDCRec
ord
DCMethodListSignature
Disseminator
URNDC
DC Mechanism
ServletDisseminator
URNDC1
Digital Object attains its extended behaviors through association and delegation
Registration and Proliferation of Disseminator Types
• A Disseminator Type ... becomes registered when the URN of the
DigitalObject that disseminates its Signature is registered (in a DL name service)
becomes usable when the URN of the DigitalObject that disseminates its Servlet is registered
• Other DigitalObjects can utilize Disseminator Types by referencing these URNs.
Access Management
• Must have facilities to protect content
• No single solution
• Association of existing, external rights management schemes
• Accommodate new schemes
FEDORA applies same extensibility model to rights management ...
AccessManager Mechanisms
application/MARC
text/x-acl
DC
ACLMechanism
ServletDisseminator
URNACL1URN1
GetDCFieldGetDCRecord
Disseminator protected by AccessManager
External Servlet Utilized
Current Status
• FEDORA Implementation CORBA IDL defines all component interfaces Java/CORBA reference implementation Java clients for building and accessing
DigitalObjects
• Initial Disseminator Types Dublin Core Image Article/Technical Report Book (with CNRI / Library of Congress)
Current Research and Collaborations
• CNRI interoperability complex Disseminators access manager component
• Berkeley integration of community-developed types
(e.g., MOA2 documents) XML for DigitalObject structure definition
Current Research (cont.)
• U of Virginia complex disseminators (e.g., e-text) distributed content (e.g., DataStream level)
• Project Prism security (associating enforceable policies
and mechanisms with DigitalObjects) preservation (enable long-term survival of
DigitalObjects in distributed environment)
• Project Harmony aggregation and interaction of multiple,
complex metadata sets in DigitalObjects
CNRI/Cornell Interoperability Project
• Developed Joint Interface Definition agreement on all conceptual abstractions merger of RAP and FEDORA IDL
• Separate repository implementations CNRI using Visigenics ORB Cornell using Iona’s OrbixWeb ORB
• Test collections of Digital Objects CNRI - Library Congress materials (books, journals,
photographs, speeches) Cornell - NCSTRL research collections
CNRI/Cornell Interoperability Experiments
• IT0: Fundamental Communication (10/98) Inter-ORB communication IDL recognition: request invocation; proper return types
• IT1: Functional Interoperability (12/98) create/access DigitalObjects in each repository exercise all operations on each other’s repositories
• IT2: Interoperability of Extensibility (3/99) dynamic loading and running of remote servlets full interchangeability of extensibility mechanisms full integration of CNRI’s Handle System
Repository
Interoperable Fedora Repositories
Handles
NameService
MoA2-Breen
MoA2 ArchivalObjects
RAP Client
NCSTRL
Repository Repository Repository
References• Payette, Blanchi, Lagoze, and Overly: Interoperability for
Digital Objects and Repositories: The Cornell/CNRI Experiments, D-Lib Magazine, May 1999. http://www.dlib.org/dlib/may99/payette/05payette.html
• Payette and Lagoze: Flexible and Extensible Digital Object and Repository Architecture (FEDORA), ECDL 1998. http://www.cs.cornell.edu/payette/papers/ECDL98/FEDORA.html
• Lagoze and Payette: An Infrastructure for Open-Architecture Digital Libraries http://ncstrl.cs.cornell.edu/Dienst/UI/1.0/Display/ncstrl.cornell/TR98-1690
• Daniel, Lagoze, and Payette, A Metadata Architecture for Digital Libraries, IEEE ADL 1998. http://www.cs.cornell.edu/lagoze/papers/ADL98/dar-adl.html
• FEDORA Home Page http://www.cs.cornell.edu/NCSTRL/CDLRG/FEDORA.html