Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP)

Ähnliche Präsentationen


Präsentation zum Thema: "Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP)"—  Präsentation transkript:

1

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 Aktuell 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 (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 (+) (+) pecialSearch.php?view=markup (-) < NO GO! pecialSearch.php?view=markup

15 Design Patterns // DESIGN Horde Framework 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 * string $type database type, for example "mysql" * 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: 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] 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 none 1 0 ….

29 Datenbankmodell // Dublin Core Dublin Core noch nicht implementiert Web Services sollen jedoch Dublin Core XML Format liefern 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 …

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 | | | 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 % 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 St.Gallen Switzerland Kontakt

40 Referenzen [1] Pear::Liveuser [2] Horde Framework [3] PHP5 Zend News [4] Dublin Core Meta Data Standard [5] Alexander XPath Patch

41 Referenzen [6] MySQL XPath Installationsanleitung [7] Gadgetopia Diskussion über MySQL + XPath


Herunterladen ppt "Wanderpfad Idee der Plattform Zeitraum und Organisation Anforderungen Gestaltungs- und Informationsdesign Plattformarchitektur Design Patterns (=PHP)"

Ähnliche Präsentationen


Google-Anzeigen