2harald schöning 8.5.2003 agenda architekturüberblick der xml-datenbankserver tamino x-node tamino...
Post on 06-Apr-2016
214 Views
Preview:
TRANSCRIPT
Harald Schöning 8.5.20032
Agenda
Architekturüberblick Der XML-Datenbankserver Tamino X-Node Tamino X-Tension XML-Anbindung anderer Formate Schnittstellen WebDAV-Server Werkzeuge
Harald Schöning 8.5.20033
Architekturüberblick
Harald Schöning 8.5.20034
Der XML-Datenbankserver
XML Speichern Abfragen Ändern
Text Retrieval XML Schema Security Indexierung Internationalisierung Datenbanksystem
Harald Schöning 8.5.20035
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 Schema
Doctype
Collection
Datenbank
Harald Schöning 8.5.20036
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 8.5.20037
Der XML-Datenbankserver:XML abfragen
XQuery W3C draft Kernfunktionalität plus Funktionsbibliothek
Tamino-NamensraumText-Retrieval
Beispiel:„Autoren mit ihren Büchern“:
<Autorenliste>{for $a in input()/alle/Autorreturn <Eintrag> {$a} {for $b in input()//Buch[Autor=$a]
return $b/Titel}</Eintrag>}</Autorenliste>
Harald Schöning 8.5.20038
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.5.20039
Der XML-Datenbankserver:XML ändern - Beispiele
update insert <A/> into input()//Ainsert <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“]/nameas lastname
Harald Schöning 8.5.200310
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 8.5.200311
Der XML-Datenbankserver:XML ändern - Beispiele
update for $a in input()/employee[name=“smith“]/salarydo replace $a/text() with $a*1.029
Relative Änderung
update for $a in input()/employee[name=“smith“]/namedo ( 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 8.5.200312
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 8.5.200313
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 8.5.200314
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 8.5.200315
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 8.5.200316
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 8.5.200317
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 8.5.200318
Der XML-Datenbankserver: Security
Autorisierung auf Collection Doctype Knotenebene Funktionen
Über ACLs Benutzer Gruppen Rechte
Authentisierung Web Server Tamino Betriebssystem
Harald Schöning 8.5.200319
Der XML-Datenbankserver: Indexierung
Indextypen Standard
Elemente Attribute
Text Elemente Attribute
Struktur doctype
compound multipath reference
Harald Schöning 8.5.200320
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 8.5.200321
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 8.5.200322
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 8.5.200323
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 8.5.200324
Tamino X-Node:XML-Anbindung an RDBMS
Definition der externen Datenquelle:
DB-Name und Tabelle
Harald Schöning 8.5.200325
Tamino X-Node:XML-Anbindung an RDBMS
Definition der externen Datenquelle:
Spalte
Harald Schöning 8.5.200326
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
ð
Harald Schöning 8.5.200327
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 8.5.200328
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
Harald Schöning 8.5.200329
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 8.5.200330
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 8.5.200331
XML-Anbindung anderer Formate:weitergehende Indizierung
Original
Nicht-XML Dokument
XML
Datenbank
Metadaten+
Inhalt
Harald Schöning 8.5.200332
XML-Anbindung anderer Formate:weitergehende Indizierung
MS-Word
MS-Excel
StarOffice Writer
StarOffice Spreadsheet
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>
<?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 8.5.200333
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 8.5.200334
OthersPictures
PDF/TextMS Office
XML-Anbindung anderer Formate:weitergehende Indizierung
Nicht-XML Tamino
SchemaServerExtension
StarOffice
XMLTamino
WebDAVServerStarOffice
WebDAVClient
ExtraktorNon-XML
XMLNon-XML
Beispielszenario
Harald Schöning 8.5.200335
Schnittstellen
ServerExtension
X-TensionServer
Extension
WebDAVclient
TaminoStore
XMLnon-XML
X-Node
SQLStore
ADABASStore
relational Adabas
HTTP Client API
JScript
OCX
Tamino Java API
Java
X-ApplicationFramework
SOAPAPI
SOAP client
HTTP
Browser
.Net API WebDAVServer
Harald Schöning 8.5.200336
Gesamte Serverfunktionalität verfügbar via Java / EJB / J2EE JScript C ActiveX .NET
Über den Web Server oder direkt
Zusätzlich SOAP UDDI ...
Schnittstellen
Harald Schöning 8.5.200337
Tamino WebDAV Server - Architektur
TaminoDB
http
http
http
xts
ajp13Web server
Tomcat SlideTamino
WebDAVStore
Web server
Tamino WebDAV Server
Client
Harald Schöning 8.5.200338
WebDAV - Extensions
DeltaVVERSION-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 8.5.200339
WebDAV - Clients
WebDAV Server
Microsoft IE 5.0 with Web Folders
Microsoft Office 2000
Altova XML Spy
Macromedia Dreamweaver
Rive
rFro
nt S
oftw
are
Web
Dri
ve
Microsoft Office <2000
Your favorite editor...
Microsoft Notepad
Sun StarOffice
Harald Schöning 8.5.200340
Browser durch die Datenbank Anfragen zur Einschränkung der sichtbaren
Dokumente
Tamino Werkzeuge:Tamino X-Plorer
Harald Schöning 8.5.200341
Syntax highlighting für W3C XQuery
Query history
Tamino Werkzeuge:Query Tool
Harald Schöning 8.5.200342
Tamino Werkzeuge:Schema Editor
Harald Schöning 8.5.200343
Tamino Werkzeuge:Adminstration
Harald Schöning 8.5.200344
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 8.5.200345
top related