16
Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Embed Size (px)

Citation preview

Page 1: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Phaidra Core - Design Overview

Thomas Wana, Zentraler Informatikdienst, Universität Wien

Page 2: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Oracle

LDAP

Storage

Web-Frontend

Architektur - Übersicht

Objekte anlegen, editieren, suchen

Page 3: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Repository Security

• Authentifikation über LDAP: Mitarbeiter/innen, Studierende, Externe.Zukünftig über Shibboleth

• Autorisation über XACML: Wer darf welche API-(A|M)-Funktionen unter welchen Bedingungen aufrufen?

• Phaidra: Alle User können (bestimmte) API-M-Funktionen aufrufen, nicht bloß Administratoren. XACML alleine reicht nicht aus!

Page 4: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Repository Security: Fedora Hooks

• SOAP-“Trigger” für API-M-Aufrufe

• preCommit- und postCommit-Hooks

• preCommit: wird als letzte Aktion in der Transaktion aufgerufen, Abbruch der Transaktion möglich: Validator

• postCommit: wird nach erfolgreichem Abschluss der Transaktion aufgerufen: Generator

Page 5: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Repository Security: Fedora Hooks II

• Konfiguration per fedora.fcfg: <module role="fedora.server.hooks.APIHooks" class="fedora.server.hooks.APISOAPHooksImpl"> <comment>Configures callbacks that are triggered upon API calls.</comment> <param name="soapuri" value="http://hooks.phaidra.univie.ac.at/Phaidra::Hooks::APIHooks"/> <param name="soapproxy" value="http://hooks.phaidra.univie.ac.at/apihooks.cgi"/> <param name="soapmethodprecommit" value="phaidraHookPreCommit"/> <param name="soapmethodpostcommit" value="phaidraHookPostCommit"/> <param name="modifyDatastreamByValue_PreCommit" value="true"/> <param name="modifyDatastreamByValue_PostCommit" value="true"/> <param name="modifyDatastreamByReference_PreCommit" value="true"/> <param name="modifyDatastreamByReference_PostCommit" value="true"/> <param name="addDatastream_PreCommit" value="true"/> <param name="addDatastream_PostCommit" value="true"/> </module>

Page 6: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Repository Security: Fedora Hooks III

• Beispiele in Phaidra für preCommit-Validation:

Metadata-ValidationsetStatus ‘A’

• Beispiele in Phaidra für postCommit-Generation:

DC aus Metadaten generierenPOLICY aus RIGHTS generieren:

<uwr:rights xmlns:uwr="http://phaidra.univie.ac.at/XML/V1.0/rights"> <uwr:allow> <uwr:username expires=”2008-01-01”>tw</uwr:username> </uwr:allow></uwr:rights>

Page 7: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Weitere Fedora-Erweiterungen

• LDAP-Simplebind-ServletFilter

• DB-Query-ServletFilter

• AccessServlet: HTTP-Authentifizierung bei XACML-Deny

• getDissemination: param0:/fedora/get/o:4711/bdef:Content/get/example1.html&foo=bar ->/fedora/get/o:4711/bdef:Content/get?param0=example1.html&foo=bar

Page 8: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Metadaten-Schema

• Entwickelt von einer Arbeitsgruppe der Universitätsbibliothek

• Modifiziertes LOM-Schema (Learning Object Metadata)

• Fakultäten können zusätzliche Metadaten zu ihren Objekten speichern

• Klassifikation nach beliebigen Klassifikations-Datenbanken möglich

• Wird als XML-Datastream mit jedem Objekt gespeichert

• DC wird automatisch bei jeder Änderung generiert

Page 9: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Content Models - Objektgruppen

Single File 1 Content-DS: Bild, Dokument, ...

CollectionKein Content, aber Mitglieder (RELS-EXT)

Container Mehrere Content-DS

Page 10: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Content Models - Objekte

• Objektgruppen: Single File, Container, Collection

• Objekttypen (“Content Model”): Bild, Dokument, Audio, Video, Ressource, aber auch Container und Collection

• Aufbau eines typischen Phaidra-Objekts:

DCPOLICYRELS-EXT

OCTETSUWMETADATARIGHTSSTYLESHEETTHUMBNAIL

bdef:Asset

Page 11: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Content Models - Behaviour Definitions

• Jedem Objekt gemeinsam: bdef:Asset:getUWMETADATA, getDC, getTHUMBNAIL, getSTYLESHEET, getObjectInfo, view

• Zentral: bdef:Asset/view: erzeugt mittels XSLT aus getObjectInfo und getSTYLESHEET ein HTML-Dokument, das im Browser angezeigt wird.“Externe Ansicht” - http://phaidra.univie.ac.at/o:4711

• Stylesheet Benutzer-Änderbar

Page 12: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Content Models - Behaviour Definitions II

• Weitere BDefs:

bdef:Content: get und download

• Abhängig vom Objekttyp z.B.:

bdef:ImageManipulator/resizeImage?width=640&height=480bdef:Audio/stream?format=mp3bdef:Video/stream?format=flvbdef:Document/getPDF...

• Implementation maßgeschneidert abhängig vom Objekt- und MIME-Typ durch unterschiedliche Behaviour Mechanisms

Page 13: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Features “Phaidra Core”

• Maschinenschnittstelle

• Suchmöglichkeiten: Volltext, Metadaten, “Google-Suche”, Browse

• Metadaten: Schema für Fakultäten erweiterbar

• User-Interface: vollständig lokalisiert in Deutsch und Englisch, Benutzerfreundlichkeit

• Durchgehend Unicode (UTF-8)

• Rechtemanagement: Vergabe von Rechten für einzelne Benutzer, Benutzergruppen, Institute und Fakultäten. Rechte können ablaufen.

• Versionsverwaltung: über RELS-EXT, auch in der “externen Ansicht” verfügbar

Page 14: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Status “Phaidra Core”

• Entwicklung mit Ende November weitgehend abgeschlossen

• Testphase mit Pilotpartnern ab Dezember 2007

• Regelbetrieb geplant ab März 2008

Page 15: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Ausblick: "Anwendungen"

• Image Viewer: Bildbetrachter für sehr große Bilder (> 100 MB) im Web-Browser

• eBook-Viewer: Browser für Objekte vom Typ “Digitalisiertes Buch”

• Weitere Ideen: Speichern und Wiedergabe von Molekülen in digitaler Form (Fakultät für Chemie), Speichern von bereits existierenden “Physlets” (Fakultät für Physik), ...

Phaidra Core

Anwendungen

Page 16: Phaidra Core - Design Overview Thomas Wana, Zentraler Informatikdienst, Universität Wien

Abschließend: Erfahrungen mit eingesetzten Technologien

• Web-Frontend: mod_perl-Anwendung

• Catalyst: MVC-Framework für PerlModel: DBIx::Class als ORM, eigenes Model für Fedora (Facade)View: Template::Toolkit

• Fedora 2.2.1 auf Linux 2.6, Tomcat 5.5.20, Apache 2.2.3 als Frontend-Server

• Datenbanken: Oracle 10 und MySQL 5.0.32