Tamino 4.1 Technical Presentation
Download
Report
Transcript Tamino 4.1 Technical Presentation
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