5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen bzw. API -API - Anwendung -API generische Ansätze: SAX und DOM nicht generische Ansätze: Data Binding Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 136
Java und besondere Eignung von Java für die -Verarbeitung nutzt Unicode plattformunabhängig objektorientiert für das Internet entwickelt frei verwendbar Klassen und Bibliotheken zur -Verarbeitung in praktisch allen Programmier- und Script-Sprechen Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 137
Document Object Model (DOM) DTD oder -Schema Hauptspeicher - Anwendung DOM-Parser objektorientiertes Modell DOM ist eine plattform- und sprachunabhängige Schnittstelle (Interface) Webseite: http://www.w3.org/dom/ Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 139 Vergleich von SAX und DOM SAX ereignisorientiertes Modell während dem Lesen werden keine Daten im Speicher abgelegt Modifikation oder Serialisierung von - Dokumenten wird nicht unterstützt Dokumentdaten stehen nur in dem Augenblick zur Verfügung, in dem sie gelesen werden DOM objektorientiertes Modell erzeugt Bild des gesamten Dokuments im Hauptspeicher Bild im Hauptspeicher kann nach Belieben geändert werden Dokumentdaten stehen erst nach dem Lesen des gesamten Dokuments zur Verfügung Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 140
Data Binding -Schema compilieren Java Klassen validieren instanzieren -Instanz marshalling unmarshalling Objekte Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 141 Data Binding nicht-generische Verarbeitung wird in natives Datenformat der Applikation übersetzt (wird vom Entwickler intuitiv gemacht) im engeren Sinn: komplexer Prozess des (automatischen) Mappings von -Daten auf Java-Objekte Data Binding Architecture benötigen: Schema- Compiler und Binding-Framework Beispiele für Data Binding Architekturen: JAXB (Java Architecture for Binding) von Oracle (früher Sun Microsystems).NET Framework von Microsoft Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 142
6. und Datenbanken Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 143 Generierung von aus Datenbanken Modellierung -Schema Datenbank Generierung XSLT Datenbank Generierung XSL- Prozessor nach [KLE2003] Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 144
Visualisierung von Datenbankinhalten Modellierung -Schema XSLT Datenbank Generierung XSL- Prozessor HTML nach [KLE2003] Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 145 Austausch von Datenbankinhalten Modellierung -Schema Datenbank 1 Generierung Speicherung Datenbank 2 nach [KLE2003] Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 146
in relationalen Datenbanken Beispiel: Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 147 -Datenbank-Anwendungen Präsentation Präsentation Präsentation - Zwischenschicht Anwendungslogik Anwendungslogik - Zwischenschicht Anwendungslogik - Zwischenschicht Persistenz Persistenz Persistenz Einfache -Anwendung -Middleware -Datenbank Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 148
-Datenbanken Notwendigkeit: Speicherung großer Datenmengen bzw. vieler -Dateien Vorteile: standardisierte Schnittstellen Abfragesprache(n) Transaktionssicherheit Skalierbarkeit Beispiele: Tamino (Software AG) exist (www.exist-db.org) Apache Xindice (xml.apache.org/xindice) Sedna (sedna.org) Oracle Berkeley DB DB2 pure Intelligent database management Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 149 Tamino (Software AG) Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 150
exist - Open Source Native Database XQuery 1.0 / XPath 2.0 XSLT 1.0 (using Apache Xalan) or XSLT 2.0 (optional using Saxon) HTTP interfaces: REST, WebDAV, SOAP, RPC, Atom Publishing Protocol It stores data according to the data model and features efficient, index-based XQuery processing. (www.exist-db.org) Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 151 XQuery XQuery 3.0: An Query Language - W3C Recommendation 08 April 2014 if-then-else (conditional expressions) Verwendung von XPath (path expressions) zentrales Konstrukt: FLWOR for let Festlegung der Datenbank, Datei bzw. Relation Auswahl (XPath-Syntax) where Einschänkung (boolscher Ausdruck) order by Sortierung return Ausgabe-Konstrukt Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 152
Beispiel Beispiel (bezogen auf den Buchkatalog): <html> <body> <h1>buchauswahl</h1> <ul>{ for $v in doc("buecher.xml")/buchkatalog/buch let $a := $v/autor/vorname, $b := $v/autor/nachname where $v/preis < 20 order by $b descending return <li><strong>{data($v/buchtitel)}</strong> von {data($a)} {data($b)}</li> }</ul> </body> </html> Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 153