Upload
valda-schlarb
View
107
Download
0
Embed Size (px)
Citation preview
Phaidra Core - Design Overview
Thomas Wana, Zentraler Informatikdienst, Universität Wien
Oracle
LDAP
Storage
Web-Frontend
Architektur - Übersicht
Objekte anlegen, editieren, suchen
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!
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
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>
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>
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
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
Content Models - Objektgruppen
Single File 1 Content-DS: Bild, Dokument, ...
CollectionKein Content, aber Mitglieder (RELS-EXT)
Container Mehrere Content-DS
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
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
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
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
Status “Phaidra Core”
• Entwicklung mit Ende November weitgehend abgeschlossen
• Testphase mit Pilotpartnern ab Dezember 2007
• Regelbetrieb geplant ab März 2008
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
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