2Harald Schöning Agenda Architekturüberblick Der XML-Datenbankserver Tamino X-Node Tamino X-Tension XML-Anbindung anderer Formate Schnittstellen WebDAV-Server Werkzeuge
3Harald Schöning Architekturüberblick
4Harald Schöning Der XML-Datenbankserver XML Speichern Abfragen Ändern Text Retrieval XML Schema Security Indexierung Internationalisierung Datenbanksystem
5Harald Schöning 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 Collection Doctype Schema Doctype Collection Datenbank
6Harald 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 Beispiel: „Die Titel aller Bücher, die nicht mehr als 200 kosten“: /bib/book[price < 200]/title
7Harald Schöning Der XML-Datenbankserver: XML abfragen XQuery W3C draft Kernfunktionalität plus Funktionsbibliothek Tamino-Namensraum Text-Retrieval Beispiel: „Autoren mit ihren Büchern“: {for $a in input()/alle/Autor return {$a} {for $b in input()//Buch[Autor=$a] return $b/Titel} } Beispiel: „Autoren mit ihren Büchern“: {for $a in input()/alle/Autor return {$a} {for $b in input()//Buch[Autor=$a] return $b/Titel} }
8Harald 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
9Harald Schöning Der XML-Datenbankserver: XML ändern - Beispiele update insert into input()//A insert into input()//B update insert attribute status {“married“} into input()/employee[name=“smith“] update for $a in input()/employee[name=“smith“] do ( insert preceding $a/name insert following $a/name ) update delete update delete input()/employee[name=“smith“]/.. update rename input()/employee[name=“smith“]/name as lastname
10Harald 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
11Harald 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 1 into $a insert 2 into $a ) Konflikt
12Harald 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*")
13Harald 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=" for $b in input()//Buch where tf:containsText($b/Titel,"XML") and $b/Preis<100 return $b
14Harald 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()
15Harald Schöning Der XML-Datenbankserver: Highlighting - Beispiele declare namespace tf=" Function" for $x in input()//description let $hi:=tf:createTextReference($x, "*XML") where $hi return tf:highlight($x, $hi, "HI") Software AG's Tamino is an XML server. It can store XML documents and non- XML documents
16Harald 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
17Harald Schöning XML Schema - Beispiel
18Harald Schöning Der XML-Datenbankserver: Security Autorisierung auf Collection Doctype Knotenebene Funktionen Über ACLs Benutzer Gruppen Rechte Authentisierung Web Server Tamino Betriebssystem
19Harald Schöning Der XML-Datenbankserver: Indexierung Indextypen Standard Elemente Attribute Text Elemente Attribute Struktur doctype compound multipath reference
20Harald Schöning Der XML-Datenbankserver: Internationalisierung mehr als 100 encodings für XML-Dokumente unterstützt 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
21Harald 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
22Harald 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
23Harald Schöning 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
24Harald Schöning Tamino X-Node: XML-Anbindung an RDBMS Definition der externen Datenquelle: DB-Name und Tabelle
25Harald Schöning Tamino X-Node: XML-Anbindung an RDBMS Definition der externen Datenquelle: Spalte
26Harald Schöning 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. Tamino X-Tension: Erweiterung der Serverfunktionalität
27Harald 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
28Harald Schöning 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 Tamino X-Tension: Trigger
29Harald 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
30Harald 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"
31Harald Schöning XML-Anbindung anderer Formate: weitergehende Indizierung Original Nicht-XML Dokument XML Datenbank Metadaten + Inhalt
32Harald Schöning XML-Anbindung anderer Formate: weitergehende Indizierung MS-Word MS-Excel StarOffice Writer StarOffice Spreadsheet Multimedia (pic,mp3,video) PDF....some text.... john glen....some text.... john glen....some text.... john glen....some text.... john glen....some text.... john glen....some text.... john glen
33Harald 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
34Harald Schöning Others Pictures PDF/Text MS Office XML-Anbindung anderer Formate: weitergehende Indizierung Nicht- XML Tamino Schema Server Extension StarOffice XML Tamino WebDAV Server StarOffice WebDAV Client Extraktor Non-XML XML Non- XML Beispielszenario
35Harald Schöning Schnittstellen Server Extension Server Extension X-Tension Server Extension Server Extension WebDAV client Tamino Store XML non-XML X-Node SQL Store ADABAS Store relational Adabas HTTP Client API JScript OCX Tamino Java API Java X-Application Framework SOAP API SOAP API SOAP client HTTP Browser.Net API WebDAV Server WebDAV Server
36Harald Schöning Gesamte Serverfunktionalität verfügbar via Java / EJB / J2EE JScript C ActiveX .NET Über den Web Server oder direkt Zusätzlich SOAP UDDI ... Schnittstellen
37Harald Schöning Tamino WebDAV Server - Architektur Tamino DB http xts ajp13 Web server Tomcat Slide Tamino WebDAV Store Web server Tamino WebDAV Server Clie nt
38Harald 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
39Harald Schöning WebDAV - Clients WebDAV Server Microsoft IE 5.0 with Web Folders Microsoft Office 2000 Altova XML Spy Macromedia Dreamweaver RiverFront Software WebDrive Microsoft Office <2000 Your favorite editor... Microsoft Notepad Sun StarOffice
40Harald Schöning Browser durch die Datenbank Anfragen zur Einschränkung der sichtbaren Dokumente Tamino Werkzeuge: Tamino X-Plorer
41Harald Schöning Syntax highlighting für W3C XQuery Query history Tamino Werkzeuge: Query Tool
42Harald Schöning Tamino Werkzeuge: Schema Editor
43Harald Schöning Tamino Werkzeuge: Adminstration
44Harald 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
45Harald Schöning