Agenda Architekturüberblick Der XML-Datenbankserver Tamino X-Node Tamino X-Tension XML-Anbindung anderer Formate Schnittstellen WebDAV-Server Werkzeuge Harald Schöning 2 8.5.2003 Architekturüberblick Harald Schöning 3 8.5.2003 Der XML-Datenbankserver XML Speichern Abfragen Ändern Text Retrieval XML Schema Security Indexierung Internationalisierung Datenbanksystem Harald Schöning 4 8.5.2003 Der XML-Datenbankserver: XML speichern Dokumente mit und ohne Schemaassoziation ggf. Validierung einzeln oder als Menge von Dokumenten zu speichern eindeutige ID pro Dokument optional Dokumentname Datenbank Collection Collection Schema Schema Doctype Harald Schöning 5 Doctype 8.5.2003 Der XML-Datenbankserver: XML abfragen X-Query (Tamino query language) basiert auf XPath erweitert auf Mengensemantik erweitert um Text-Retrieval Beispiel: „Die Titel aller Bücher, die nicht mehr als 200 kosten“: /bib/book[price < 200]/title Harald Schöning 6 8.5.2003 Der XML-Datenbankserver: XML abfragen XQuery W3C draft Kernfunktionalität plus Funktionsbibliothek Tamino-Namensraum Text-Retrieval Beispiel: „Autoren mit ihren Büchern“: <Autorenliste> {for $a in input()/alle/Autor return <Eintrag> {$a} {for $b in input()//Buch[Autor=$a] return $b/Titel} </Eintrag>} </Autorenliste> Harald Schöning 7 8.5.2003 Der XML-Datenbankserver: XML ändern Es gibt keinen W3C Standard für Änderungsoperationen Software AG hat XQuery entsprechend erweitert Funktionalität: insert into insert following insert preceding delete replace rename Relative Änderungen sind möglich z.B. Erhöhung um 1% Mehrere Modifikationen in einer Anweisung sind möglich Harald Schöning 8 8.5.2003 Der XML-Datenbankserver: XML ändern - Beispiele update insert <A/> into input()//A insert <B/> into input()//B update insert attribute status {“married“} into input()/employee[name=“smith“] update for $a in input()/employee[name=“smith“] do ( insert <firstname/> preceding $a/name insert <lastname/> following $a/name ) update delete input()/employee[name=“smith“]/@status update delete input()/employee[name=“smith“]/.. update rename input()/employee[name=“smith“]/name as lastname Harald Schöning 9 8.5.2003 Der XML-Datenbankserver: XML ändern - Konzepte Schnappschuss-Semantik logische Sicht des Änderungsvorgangs zunächst werden die zu ändernden Stellen und die einzusetzenden Daten berechnet dann wird die Änderung durchgeführt dann wird das Ergebnis auf Wohlgeformtheit geprüft und ggf. validiert Deklarativ Reihenfolge von Modifikationsanweisungen in einer Änderungsoperation nicht relevant Konflikte Änderungsoperationen dürfen sich nicht gegenseitig beeinflussen Änderungsoperationen müssen eindeutig sein Harald Schöning 10 8.5.2003 Der XML-Datenbankserver: XML ändern - Beispiele update for $a in input()/employee[name=“smith“]/salary do replace $a/text() with $a*1.029 Relative Änderung update for $a in input()/employee[name=“smith“]/name do ( rename $a as lastname delete $a ) Konflikt update for $a in input()/employee[name=“smith“] do ( insert <ext>1</ext> into $a insert <ext>2</ext> into $a ) Konflikt Harald Schöning 11 8.5.2003 Der XML-Datenbankserver: Text Retrieval In X-Query Operator ~= Suche nach Worten oder Wortfolgen, Wildcards In XQuery eine Familie von Funktionen aus dem Tamino-Namensraum (tf) tf:containsText() tf:containsAdjacentText() tf:containsNearText() beziehen sich auf einen Knoten und seine Nachkommen Suche nach einzelnen Worten und Wortfolgen tf:containsText(Titel, "XML") tf:containsText(Titel,"XML Datenbanken") mit Wildcards tf:containsText(Titel, "Tam* Data*") Harald Schöning 12 8.5.2003 Der XML-Datenbankserver: Text Retrieval Suche nach benachbarten Wörtern tf:containsAdjacentText(Titel,3,"Tamino","Datenbanksystem") Tamino ist ein Datenbanksystem Suche nach Stammformengleichheit tf:containsText(Titel,tf:stem("speichern")) Tamino speichert XML Suche nach gleichem Klang tf:containsNearText(Titel,3,tf:phonetic("stark"), tf:stem("speichern") XML-Speicherung ist Taminos Stärke Thesaurus broader term, narrower term, synonym Mit anderen Bedingungen kombinierbar declare namespace tf="http://namespaces.softwareag.com/tamino/TaminoFunction" for $b in input()//Buch where tf:containsText($b/Titel,"XML") and $b/Preis<100 return $b Harald Schöning 13 8.5.2003 Der XML-Datenbankserver: Highlighting Welche Stelle im Dokument hat zum Treffer geführt? Erzeugung von Referenzen auf Stellen im XML-Dokument tf:createTextReference() tf:createAdjacentTextReference() tf:createNearTextReference() Hervorhebung durch Processing Instructions tf:highlight() Harald Schöning 14 8.5.2003 Der XML-Datenbankserver: Highlighting - Beispiele declare namespace tf="http://namespaces.softwareag.com/tamino/Tamino Function" for $x in input()//description let $hi:=tf:createTextReference($x, "*XML") where $hi return tf:highlight($x, $hi, "HI") <description>Software AG's Tamino is an <?HI + 1?>XML<?HI – 1?> server. It can store <?HI + 2?>XML<?HI – 2?> documents and <?HI + 3?>nonXML<?HI – 3?> documents</description> Harald Schöning 15 8.5.2003 Der XML-Datenbankserver: XML Schema Schemadefinition über W3C XML Schema Das Tamino Schema ist ein gültiges XML Schema Annotationen, um Tamino-Spezifika anzugeben Standard-Mechanismus von XML Schema eigener Tamino-Namensraum wird benutzt Benutzt für logische Angaben, die über XML Schema hinausgehen nationale Sortierordnungen Zugehörigkeit zu Collections usw. Benutzt für physische Angaben Indexierung usw. Schemaänderungen möglich (mit Validierung) offene Schemata Harald Schöning 16 8.5.2003 XML Schema - Beispiel <xs:element name = "Abstract" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:text></tsd:text> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> Harald Schöning 17 8.5.2003 Der XML-Datenbankserver: Security Autorisierung auf Collection Doctype Knotenebene Funktionen Über ACLs Benutzer Gruppen Rechte Authentisierung Web Server Tamino Betriebssystem Harald Schöning 18 8.5.2003 Der XML-Datenbankserver: Indexierung Indextypen Standard Elemente Attribute Text Elemente Attribute Struktur doctype compound multipath reference Harald Schöning 19 8.5.2003 Der XML-Datenbankserver: Internationalisierung mehr als 100 encodings für XML-Dokumente unterstützt <?xml version="1.0" encoding="iso-8859-2"?> Konvertierung beim Speichern und Abfragen möglich IRI-Unterstützung Zeichenrepertoire von Unicode 3.2 nationale Sortierordnungen Text Retrieval für nicht auf Buchstaben beruhende Sprachen Chinesisch Japanisch Koreanisch Harald Schöning 20 8.5.2003 Der XML-Datenbankserver: Internationalisierung Text Retrieval ist sprachspezifisch tf:containsText(.,"Käse") Das ist Kaese tf:containsText(.,"Cafe") Wir treffen uns im Café Regeln für die Behandlung von Unicode-Zeichen sind definierbar Vergleich mit/ohne Groß-Klein-Schreibung Basis-Zeichen ée Großschreibung ß SS Ersatzzeichen ä ae Zeichenklasse number, delimiter, character, single, punctuation Harald Schöning 21 8.5.2003 Der XML-Datenbankserver ... ist ein Datenbanksystem Volle Unterstützung von ACID Transaktionen verschiedene Isolationsebenen können gewählt werden verteilte Transaktionen Cursoring Backup / Recovery Einbindung der Backupkonzepte von EMC, Network Applicances usw. High Availability Replikation Harald Schöning 22 8.5.2003 Tamino X-Node: XML-Anbindung an RDBMS Abbildung relationaler Strukuren nach XML Teile von Dokumenten aus Tamino, andere aus dem RDBMS Abfragen Abspeichern Ändern Auch für Adabas Harald Schöning 23 8.5.2003 Tamino X-Node: XML-Anbindung an RDBMS Definition der externen Datenquelle: DB-Name und Tabelle Harald Schöning 24 8.5.2003 Tamino X-Node: XML-Anbindung an RDBMS Definition der externen Datenquelle: Spalte Harald Schöning 25 8.5.2003 Tamino X-Tension: Erweiterung der Serverfunktionalität Durch benutzerdefinierte Server-Extensions Bibliotheken mit Callback-Möglichkeiten Mapping von XML (Sub-) Dokumenten auf externe Datenquellen Trigger Binden von Aktionen an Operationen auf Knoten Anfragefunktionen Erweiterung von X-Query durch benutzerdefinierte Funktionen Ergebnistransformation Reaktion auf Ereignisse Beendigung einer Transaktion usw. Harald Schöning 26 8.5.2003 Tamino X-Tension: Mapping XML (sub-) documents können auf eine Datenquelle abgebildet werden in Tamino außerhalb ggf. auch dynamisch Die Server Extension bildet das ganze (Sub-) Dokument ab Definition im Schema On Process (Map-In) On Compose (Map-Out) On Delete (onDelete) On Update (onUpdate) Round Trip in der Verantwortung der Server Extension Harald Schöning 27 8.5.2003 Tamino X-Tension: Trigger gebunden an Knoten im Schema bei entsprechenden Operationen auf entsprechenden Knoten (oder ihren Subknoten) im Dokument gefeuert On Process On Delete On Update können Abbruch der Operation erzwingen laufen in derselben Transaktion ab Harald Schöning 28 8.5.2003 Tamino X-Tension: Anfragefunktionen Erweitern die X-Query-Funktionalität Explizit in einer Query aufzurufen Über Security kann die Aufrufberechtigung kontrolliert werden Laufen in derselben Transaktion ab Harald Schöning 29 8.5.2003 XML-Anbindung anderer Formate Tamino kann beliebige Dateien speichern .txt .gif .doc usw. Bei Text erfolgt automatisch eine Textindizierung Weitergehende Indizierung möglich durch Server Extension Erzeugung eines "Schattendokumentes" Harald Schöning 30 8.5.2003 XML-Anbindung anderer Formate: weitergehende Indizierung Datenbank Nicht-XML Dokument Metadaten + Inhalt Original Harald Schöning 31 8.5.2003 XML XML-Anbindung anderer Formate: weitergehende Indizierung StarOffice Writer MS-Word PDF <?xml version=“1.0“ ?> <properties mimetype=“application.....> <content>....some text....</content> <meta> <initial-creator>john glen</initial-creator> </meta> </properties> <?xml version=“1.0“ ?> <properties mimetype=“application.....> <content>....some text....</content> <meta> <initial-creator>john glen</initial-creator> </meta> </properties> <?xml version=“1.0“ ?> <properties mimetype=“application.....> <content>....some text....</content> <meta> <initial-creator>john glen</initial-creator> </meta> </properties> StarOffice Spreadsheet MS-Excel Multimedia (pic,mp3,video) <?xml version=“1.0“ ?> <properties mimetype=“application.....> <content>....some text....</content> <meta> <initial-creator>john glen</initial-creator> </meta> </properties> Harald Schöning <?xml version=“1.0“ ?> <properties mimetype=“application.....> <content>....some text....</content> <meta> <initial-creator>john glen</initial-creator> </meta> </properties> 32 8.5.2003 <?xml version=“1.0“ ?> <properties mimetype=“application.....> <content>....some text....</content> <meta> <initial-creator>john glen</initial-creator> </meta> </properties> XML-Anbindung anderer Formate: weitergehende Indizierung Dokumentinhalt und Metadaten werden in XML-Form zugänglich beliebige Anfragen Extraktion / Konvertierung durch spezielle Server Extension Besonders in Kombination mit WebDAV mächtig DASL kann für Anfragen genutzt werden Dokumentzugriff über Dateisystem XML und Nicht-XML-Dokument bilden eine Einheit Harald Schöning 33 8.5.2003 XML-Anbindung anderer Formate: weitergehende Indizierung Beispielszenario NichtXML Tamino Non-XML Schema StarOffice WebDAV Client Harald Schöning Tamino WebDAV Server NonXML Server Extension XML XML Extraktor StarOffice MS Office PDF/Text Pictures Others 34 8.5.2003 Schnittstellen X-Application Framework Java Tamino Java API Browser OCX 35 X-Node X-Tension Extension SOAP API WebDAV Server .Net API Server Extension Server Harald Schöning SOAP client HTTP JScript HTTP Client API WebDAV client Tamino Store SQL Store ADABAS Store XML non-XML 8.5.2003 relational Adabas Schnittstellen Gesamte Serverfunktionalität verfügbar via Java / EJB / J2EE JScript C ActiveX .NET Über den Web Server oder direkt Zusätzlich SOAP UDDI ... Harald Schöning 36 8.5.2003 Tamino WebDAV Server Architektur Clie nt http Tomcat http Web server Slide ajp13 Tamino WebDAV Store http Web server xts Tamino WebDAV Server Tamino DB Harald Schöning 37 8.5.2003 WebDAV - Extensions DeltaV VERSION-CONTROL, REPORT, CHECKIN, CHECKOUT, UNCHECKOUT, MKWORKSPACE, LABEL, UPDATE, MERGE, MKACTIVITY, BASELINE-CONTROL DASL ACL (DAV Searching & Locating) (Access Control) SEARCH ACL WebDAV (Distributed Authoring Protocol) PROPFIND, PROPPATCH, LOCK, UNLOCK, MKCOL, COPY, MOVE HTTP (HyperText Transfer Protocol) GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE Harald Schöning 38 8.5.2003 Microsoft IE 5.0 with Web Folders Microsoft Office 2000 WebDAV Server Altova XML Spy Macromedia Dreamweaver Sun StarOffice Harald Schöning 39 8.5.2003 RiverFront Software WebDrive WebDAV - Clients Microsoft Notepad Microsoft Office <2000 Your favorite editor... Tamino Werkzeuge: Tamino X-Plorer Browser durch die Datenbank Anfragen zur Einschränkung der sichtbaren Dokumente Harald Schöning 40 8.5.2003 Tamino Werkzeuge: Query Tool Syntax highlighting für W3C XQuery Query history Harald Schöning 41 8.5.2003 Tamino Werkzeuge: Schema Editor Harald Schöning 42 8.5.2003 Tamino Werkzeuge: Adminstration Harald Schöning 43 8.5.2003 Tamino XML Server: Zusammenfassung XML speichern mit oder ohne Schema oder offenes Schema XML-Security Datenbanksystem Werkzeuge WebDAV X-Tension zur Erweiterung der Server-Funktionalität X-Node zur Anbindung externer Datenbanken Harald Schöning 44 8.5.2003 Harald Schöning 45 8.5.2003