Der XML-Datenbankserver

Werbung
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
Herunterladen