160 likes | 246 Views
Phaidra Core - Design Overview. Thomas Wana, Zentraler Informatikdienst, Universität Wien. Objekte anlegen, editieren, suchen. Web- Frontend. Architektur - Übersicht. Storage. Oracle. LDAP. Repository Security.
E N D
Phaidra Core - Design Overview • Thomas Wana, Zentraler Informatikdienst, Universität Wien
Objekte anlegen, editieren, suchen Web- Frontend Architektur - Übersicht Storage Oracle LDAP
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
Single File Collection Container 1 Content-DS: Bild, Dokument, ... Kein Content, aber Mitglieder (RELS-EXT) Mehrere Content-DS Content Models - Objektgruppen
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: bdef:Asset DC POLICY RELS-EXT OCTETS UWMETADATA RIGHTS STYLESHEET THUMBNAIL
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), ... Anwendungen Phaidra Core
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