Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Adalheidis Reffner Geändert vor über 11 Jahren
2
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
3
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
4
Idee Elektronische Kommunikation wissenschaftlicher Ergebnisse schneller, kostengünstig und transparent Zugang zu wissenschaftlichen Produkten Profile Publikationen Projekte Verbesserung und Optimierung Wissenstransfer Zentraler Zugangspunkt ?Wettbewerbssteigerung
5
Zeitraum und Organisation Start Januar 2004 Anforderungsaufnahme und Konzeptionsphase von Januar bis Juni 2004 unter Einbeziehung und monatlichen Treffs mit Verantwortlichen der Institute Implementation von Juni 2005 bis April 2005 Datenvorerfassung parallel noch während Implementation im November 2004 Leitungsausschuss mit Einbindung unterschiedlicher Institutionen wie Rektorat, Forschungskommission und Bibliothek Mehr als 30 Institute mit ca. 400 aktuellen Forschern Durchführung: 2 wissenschaftliche Mitarbeiter 1 Mitarbeiter für Projektkoordination und Betreuung 1 Mitarbeiter für Implemtierung
6
Anforderung Integration relevanter bereits bestehender Datenbanken auf Lotus Notes Basis Import aus unterschiedlichen Quellen (Word, Lotus Notes, Exel usw.) Export Funktion zurück in Lotus Notes basiertes Content Management Framework Integration in bestehende Webseiten Darstellungsunabhängige Bereitstellung Export in Bibliothekssysteme Anbindung an bestehendes Lotus Notes Authentifizierungssystem auf Basis eines LDAP Baums Distribution in weitere Systeme (Sidos usw.)
7
Anforderung Funktions- bzw. Datenumfang Forscherprofile Publikationsdatenbank Projektdatenbank Unterschiedliche Auswertungsmechanismen Schnelle Variationen und Veränderungen der Formularfelder und Datenbankstruktur aufgrund der Organistationstruktur des Projektes
8
Anforderung Verknüpfung der Forscherprofile, Projekte und Publikationen (Relationen erstellen) Gruppierung von Personen (virtuelle Zusammenarbeit an Publikationen oder Projekten) Rechteproblematik (Urheberrechtsaspekte usw.) Sehr detaillierte und spezifische Suchmöglichkeiten über die Metadaten (Bibliographische Daten) Volltextsuche über Dokumente wurde nicht als dringend notwendig erachtet Mehrsprachigkeit
9
Gestaltungs- und Informationsdesign Informationsreduzierung Design in Zusammenarbeit mit Universität der Künste entstanden Dreifache Clusterung der Navigation Bedardsbezogen Kontextuell […]
10
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
11
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
12
Plattformarchitektur // Komponenten PHP5 Start mit 5.0.0 Aktuell 5.0.4 MySQL als Datenbank Start mit 4.1.x Aktuell 5.0.5dev mit XPath Patch Gettext (Mehrsprachigkeit) Pear::Translation2 mit Gettext Erweiterung Smarty als Template Engine LiveUser als Security Framework Noch auf Liveuser 0.13.3 (ausgekoppelt aus Pear Tree wegen Anpassungen)
13
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
14
Design Patterns // Code Structure geplant als Open Source Projekt Veröffentlichung als LGPL Code in den nächsten Wochen Wichtig Code Struktur und Dokumentation PEAR Klassen als Richtlinie + PHPDOC http://pear.php.net/manual/en/standards.sample.php (+) http://pear.php.net/manual/en/standards.sample.php http://manual.phpdoc.org/ (+) http://manual.phpdoc.org/ http://cvs.sourceforge.net/viewcvs.py/wikipedia/phase3/includes/S pecialSearch.php?view=markup (-) < NO GO! http://cvs.sourceforge.net/viewcvs.py/wikipedia/phase3/includes/S pecialSearch.php?view=markup
15
Design Patterns // DESIGN Horde Framework http://www.horde.org/papers/ DESIGN: What does designing NOT mean? [2] Making everything a class. Using UML. Having a complete API before starting to code. Using classes at all. DESIGN: What DOES it mean? [2] Having a plan for an API, and considering everything that it affects, before starting to code each component of an application. Writing organized, consistent code. Being aware of code duplication, and being willing to refactor as you go. Being wary of the easy path.
16
Design Patterns // Factory & Singleton // Call Factory $instance = ClassName::factory(mysql); /** * Create a new DB connection object for the specified database * type * * @param string $type database type, for example "mysql" * * @return mixed a newly created DB object, or a DB error code on * error * * access public */ static function factory($type) { include_once("DB/${type}.php"); $classname = "DB_${type}"; if (!class_exists($classname)) { return PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null, null, 'DB_Error', true); } $obj = new $classname; return $obj; }
17
Design Patterns // Whats new about PHP5? Neues Object Modell [3] kein & mehr notwendig um Referenz auf Objekten zu erzeugen (nun Default) explicit object cloning (clone $object) public, private & protected access modifiers Unified constructor name __construct() Object destructor support by defining a __destructor() Interfaces Final methods and classes Static members and functions (Singleton & Factory) Exception handling (try - catch)
18
Design Patterns // Whats new about PHP5? Neue Funktionen e.g. http_build_query() SimpleXML LIBXML2 + UTF8 jetzt als Default vorher EXPAT Siehe Thread: http://bugs.php.net/bug.php?id=29711http://bugs.php.net/bug.php?id=29711 SOAP Neue Zend Engine (schnelle & stabiler) Wikipedia Erweiterung (!)
19
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
20
Sicherheitskonzept (=pear::liveuser) Umsetzung mit Pear::LiveUser [1] http://pear.limbourg.com Authentifizierung gegen multiple Quelle (auch zusammen verwendbar) LDAP IMAP / POP3 XML DB Permission Layer – Zugriffsteuerung auf einzelne Module der Plattform Simple Permissions (e.g. Rights To User) Medium Permissions (e.g. +Groups & +Area Admins) Complex Permissions (e.g. +Subgroups, Rights Level & Inheritance)
21
Sicherheitskonzept (=pear::liveuser) Anbindung an Lotus Notes LDAP Baum mit mehr als 4000 Accounts O=UNISG, C=CH OU=MCMOU=IWI CN = Max Muster2 CN = Max Muster1 CN = Max Muster3 CN = Max Muster4 Attr BAttr AAttr BAttr A
22
Sicherheitskonzept (=pear::liveuser) Stufenmodell für Authentifizierung Anmeldung Publikationen Projekte Profile LiveUserDB / LDAPBACKEND Versuch der AnmeldungPrüfen gegen DB Interface Erfolgreiche Anmeldung Gescheitert gegen DB Prüfen gegen LDAP Erfolgreiche Anmeldung ggf. Update Passwort Gescheitert gegen LDAP
23
Sicherheitskonzept (=pear::liveuser) Vierstufiges Sichermodel (KISS!!!) LDAP UniversitätInstitutPerson Content Object PEAR::LiveUser Publikationen Projekte Profile Module
24
Sicherheitskonzept // ContentObjects Owner-Status Edit Rights View Rights Content Objects vergibt sehen ändern sehenändernlöschen v e r g i b t
25
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
26
Datenbankmodell // Basisstruktur MySQL Content Object PublikationenProjekte Profile Parser XML Document XML Document XML Document Pear::Quickform Transforming XML Elements to Quickform Elements Creating Formulare Smarty Display Formular Daten eingabe Parser Matching Input Data against XML File and Cleanup e.g. hidden or not used Fields
27
Datenbankmodell // XML Dokument type select article book publication-details hidden submit language …..
28
Datenbankmodell // XML in Datenbank book de Erfolgreiches Benchmarking in Forschung und Entwicklung Verlag Carl Hanser München, Wein 2002 0 none 1 0 ….
29
Datenbankmodell // Dublin Core Dublin Core noch nicht implementiert Web Services sollen jedoch Dublin Core XML Format liefern <metadata xmlns="http://example.org/myapp/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.org/myapp/ http://example.org/myapp/schema.xsd" xmlns:dc="http://purl.org/dc/elements/1.1/"> UKOLN UKOLN is a national focus of expertise in digital information management. It provides policy, research and awareness services to the UK library, information and cultural heritage communities. UKOLN is based at the University of Bath. UKOLN, University of Bath http://www.ukoln.ac.uk/ …
30
Datenbankmodell // Datenbankstruktur Normales Text Feld (z.B. Longtext) XML Data Field (Fulltext)
31
Datenbankmodell // XPath Queries Einfache Datenabfrage mittels extractValue(xml, xpath) [5] mysql> SELECT co_object_data FROM cO_publications; +--------------------------------------------+ | co_object_data | +--------------------------------------------+ | |<conte... | +--------------------------------------------+ mysql> SELECT extractValue(co_object_data,/contentObject/title) FROM cO_publications; +-------------------------------------------------------+ | extractValue(co_object_data,/contentObject/title) | +-------------------------------------------------------+ |Erfolgreiches Benchmarking in Forschung und Entwicklung| +-------------------------------------------------------+
32
Datenbankmodell // XPath Queries Schnelle Datenabfrage mittels Nutzung des Match Operators [and match (xml) against (Benchmarking')] Auch komplexere Abfrage möglich nach Index, Attribut, Value oder Boolean Match mysql> SELECT extractValue(co_object_data,/contentObject/title) as title FROM cO_publications and match (co_object_data) against (Benchmarking'); +-------------------------------------------------------+ | title | +-------------------------------------------------------+ |Erfolgreiches Benchmarking in Forschung und Entwicklung| +-------------------------------------------------------+
33
Datenbankmodell // XPath Queries Update von XML Teilen im Dokument möglich mit updateXML(xml, xpath, value) mysql> select updateXML(co_object_data,'/contentObject/title', ' Neuer titel ') as title; +-------------------------------------------------------+ | title | +-------------------------------------------------------+ | ein neuer titel … | +-------------------------------------------------------+
34
Datenbankmodell // Towards MySQL 5.1 100% XPath Standard Implementierung [5] ExistsNode() -> Boolean Check Fulltext Optimized für XML Special XML data type (Data Integrity!!!) + Compression (!) Automatic invocation of FULLTEXT searches from inside ExtractValue() and ExistsNode() without having to use explicit MATCH operator Stored Procedures + XPath = :-O Performance Einfacheres Handling – Wrapper auf Datenbankbasis und nicht als Middleware?
35
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
36
Features // WS - ImageMagick Wikipedia Integration via PHP5 Webservices Schnittstelle Wikipedia Amazon Integration bei Büchern mit ISBN Nummer Amazon Google Suggestion Check Google Image Rendering der Photos für einheitliches Design mittels ImageMagick Farbverschiebung + Skalierung (Zuschneiden) in Graustufendesign
37
Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP) Sicherheitskonzept (=pear::LiveUser) Datenbankmodell (=MySQL) Features (=WebServices) Weiterentwicklungen
38
Integration Dublin Core Meta Data Standard [4] Amazon nutzen um fehlende Bücherdaten zu replizieren Web Services Schnittstelle mit Dublin Core Freier Zugang für Öffentlichkeit an Schnittstelle (Google & Amazon Modell) Automatisch PDF Generierung von Forscherprofil + Publikationsverzeichnis + Projektverzeichnis mit Verlinkung auf Alexandria Diverse Exports und Statistische Auswertung Search Engine Friendly Optimization (mod_rewrite): // Danke Hannes ;-) Integration XPath Update Befehl
39
Thomas Nicolai {thomas dot nicolai} at {unisg dot ch} Institut für Medien und Kommunikationsmanagement Universität St.Gallen Blumenbergplatz 9 9000 St.Gallen Switzerland http://www.mcm.unisg.ch Kontakt
40
Referenzen [1] Pear::Liveuser http://php-mag.net/itr/online_artikel/show.php3?nodeid=114&id=595 http://www.backendmedia.com/LiveUser/LiveUser-Dateien/v3_document.htm [2] Horde Framework http://www.horde.org/papers/kongress2002-design_patterns/ [3] PHP5 Zend News http://www.zend.com/php5/articles/engine2-php5-changes.php http://www.zend.com/php5/articles/engine2-php-oo.php [4] Dublin Core Meta Data Standard http://www.dublincore.org [5] Alexander Barkov@MySQL XPath Patch http://mysql.r18.ru/~bar/myxml/XMLXpathSupportInMySQL.pdf http://mysql.r18.ru/~bar/myxml/mysql-xml.tar.gz
41
Referenzen [6] MySQL XPath Installationsanleitung http://lists.mysql.com/mysql/184167 [7] Gadgetopia Diskussion über MySQL + XPath http://www.gadgetopia.com/2004/07/13/DataGlobbingWithMySQLRegex.html
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.