450 likes | 564 Views
Agenda. Architekturüberblick Der XML-Datenbankserver Tamino X-Node Tamino X-Tension XML-Anbindung anderer Formate Schnittstellen WebDAV-Server Werkzeuge. Architekturüberblick. Der XML-Datenbankserver. XML Speichern Abfragen Ändern Text Retrieval XML Schema Security Indexierung
E N D
Agenda • Architekturüberblick • Der XML-Datenbankserver • Tamino X-Node • Tamino X-Tension • XML-Anbindung anderer Formate • Schnittstellen • WebDAV-Server • Werkzeuge Harald Schöning
Architekturüberblick Harald Schöning
Der XML-Datenbankserver • XML • Speichern • Abfragen • Ändern • Text Retrieval • XML Schema • Security • Indexierung • Internationalisierung • Datenbanksystem Harald Schöning
Datenbank Collection Collection Schema Schema Doctype Doctype 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 Harald Schöning
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
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
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
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
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
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
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
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()//Buchwhere tf:containsText($b/Titel,"XML") and $b/Preis<100return $b Harald Schöning
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
Der XML-Datenbankserver:Highlighting - Beispiele • declare namespace tf="http://namespaces.softwareag.com/tamino/TaminoFunction"for $x in input()//descriptionlet $hi:=tf:createTextReference($x, "*XML")where $hireturn 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?>non-XML<?HI – 3?> documents</description> Harald Schöning
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
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
Der XML-Datenbankserver: Security • Autorisierung auf • Collection • Doctype • Knotenebene • Funktionen • Über ACLs • Benutzer • Gruppen • Rechte • Authentisierung • Web Server • Tamino • Betriebssystem Harald Schöning
Der XML-Datenbankserver: Indexierung • Indextypen • Standard • Elemente • Attribute • Text • Elemente • Attribute • Struktur • doctype • compound • multipath • reference Harald Schöning
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
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
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
Tamino X-Node:XML-Anbindung an RDBMS • Abbildung relationaler Strukuren nach XML • Teile von Dokumenten aus Tamino, andereaus dem RDBMS • Abfragen • Abspeichern • Ändern • Auch für Adabas Harald Schöning
Tamino X-Node:XML-Anbindung an RDBMS Definition der externen Datenquelle:DB-Name und Tabelle Harald Schöning
Tamino X-Node:XML-Anbindung an RDBMS Definition der externen Datenquelle:Spalte Harald Schöning
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
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
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
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
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
Original XML XML-Anbindung anderer Formate:weitergehende Indizierung Nicht-XML Dokument Datenbank Metadaten + Inhalt Harald Schöning
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> <?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> Harald Schöning
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
XML Non- XML XML-Anbindung anderer Formate:weitergehende Indizierung Beispielszenario Nicht-XML Tamino Non-XML Extraktor Schema StarOffice ServerExtension MS Office Tamino WebDAV Server XML PDF/Text StarOffice WebDAV Client Pictures Others Harald Schöning
X-Tension X-Node Tamino Store SQL Store ADABAS Store Server Extension Server Extension XML non-XML Adabas relational Schnittstellen WebDAV client X-Application Framework Browser SOAP client OCX JScript HTTP SOAP API WebDAV Server Java Tamino Java API HTTP Client API .Net API Harald Schöning
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
Tamino WebDAV Server - Architektur Client http http Web server Tamino WebDAV Store Tomcat Slide http ajp13 Web server xts Tamino WebDAV Server Tamino DB Harald Schöning
WebDAV - Extensions DeltaV VERSION-CONTROL, REPORT, CHECKIN, CHECKOUT, UNCHECKOUT, MKWORKSPACE, LABEL, UPDATE, MERGE, MKACTIVITY, BASELINE-CONTROL DASL (DAV Searching & Locating) SEARCH ACL (Access Control) 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
WebDAV - Clients Microsoft IE 5.0 with Web Folders Microsoft Notepad WebDAV Server Microsoft Office 2000 Microsoft Office <2000 RiverFront Software WebDrive Altova XML Spy Your favorite editor... Macromedia Dreamweaver Sun StarOffice Harald Schöning
Tamino Werkzeuge:Tamino X-Plorer • Browser durch die Datenbank • Anfragen zur Einschränkung der sichtbaren Dokumente Harald Schöning
Tamino Werkzeuge:Query Tool • Syntax highlighting für W3C XQuery • Query history Harald Schöning
Tamino Werkzeuge:Schema Editor Harald Schöning
Tamino Werkzeuge:Adminstration Harald Schöning
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