270 likes | 285 Views
Flexible and Extensible Digital Object and Repository Architecture (FEDORA). June 29, 1999 Harvard University. Carl Lagoze Cornell University lagoze@cs.cornell.edu. Sandra Payette Cornell University payette@cs.cornell.edu. http://www.cs.cornell.edu/payette/presentations/fedora99.ppt.
E N D
Flexible and Extensible Digital Object and Repository Architecture (FEDORA) June 29, 1999 Harvard University Carl Lagoze Cornell University lagoze@cs.cornell.edu Sandra Payette Cornell University payette@cs.cornell.edu http://www.cs.cornell.edu/payette/presentations/fedora99.ppt
Component-Ware Digital Libraries Handles UI Gateway Service Name Service Collection Services Index Services Digital Objects Repository Services
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: Goals
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
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)
Simple, familiar entities Fedora DigitalObjects can be... • Complex, compound, dynamic objects
Multiple “views” of a DigitalObject Future Dublin Core Diary-MOA Book DataStream (MIME-typed byte stream)
Digital Object is... getSection getArticle getTrack getLabel getChapter getPage getFrame getLength recognizable by what it can do
Disseminator Type A set of behaviors that formally describes the functionality of any global or domain-specific notion of content.
Disseminator Primitive Disseminator A generic component that associates a set of behaviors with a DigitalObject. Extensible Type Disseminator Generic behaviors Extended behaviors
FEDORA DigitalObject application/ postscript application/ MARC Extensible Behavior Layer Primitive Disseminator Structural Kernel
Client communicates with generic requests Book Disseminator DublinCore Disseminator ListDisseminatorTypes GetMethods(Book) application/ MARC DS1 GetChapter(n), GetPage(n),GetTOC() Primitive Disseminator Book, DublinCore application/ postscript GetDissemination (Book.GetPage(1)) DS2 GetChapter GetTOC GetPage
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 Mechanisms can be updated or replaced as technology changes ... … and the interface to the Digital Object remains stable Mechanism Structure Disseminator Type Interface
DigitalObject Extensibility:Adding New Types Book Photo Collect Photo Collection can be operated on in novel ways… to create new disseminations not originally conceived of for the particular digital object. Book The same underlying data... Structure Mechanism Interface
A Disseminator is a Generic Component... … that references another FEDORA DigitalObject that disseminates a servlet DataStreams = DS1 TypeID = URNDC1 GetDCField GetDCRecord DC application/ MARC DS1 GetMethods(DC) application/ postscript DS2 GetDCField(e), GetDCRecord … to produce non-generic behaviors
Extensibility: a look under the hood DC servlet URNDC1 GetDissemination( GetDCRecord) DC Mechanism DublinCore Record Servlet Disseminator URNDC DC MethodList Signature Disseminator DC signature GetDCField GetDCRecord CTID = URNDC1 DC application/ MARC application/ postscript 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 Servlet Disseminator Disseminator protected by AccessManager URN1 URNACL1 GetDCField GetDCRecord DC ACL Mechanism application/ MARC text/x-acl 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
Interoperable Fedora Repositories Handles RAP Client Name Service Repository Repository Repository Repository MoA2- Breen NCSTRL MoA2 ArchivalObjects
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