Ausarbeitung

Werbung
XML-Datenbanken
Hauptseminar Informatik im Sommersemester 2001
Prof. R. Bayer, Ph.D.
Prof. Dr. D. Kossmann
Thema:
Termin:
Betreuer:
Bearbeiter:
XML-Systeme mit Schwerpunkt "native" XML-DBMS
5. 7. 2001
Frank Ramsak, M.S.(UIUC)
Hicham Loukili
Inhalt
1.
EINFÜHRUNG ..................................................................................................................................................3
2. XML SYSTEME ....................................................................................................................................................3
2.1 ÜBERSICHT ..........................................................................................................................................................3
2.2 PRODUKTKATEGORIEN ........................................................................................................................................4
2.2.1 Middleware.................................................................................................................................................4
2.2.2 XML-Enabled Datenbanken......................................................................................................................6
2.2.3 Native XML Datenbanken .........................................................................................................................7
2.2.4 XML Servers ..............................................................................................................................................7
2.2.4.1 Überblick............................................................................................................................................................... 7
2.2.4.2 Beispiel - Bluestone Server ................................................................................................................................... 8
2.2.4.3 Systemvergleich .................................................................................................................................................... 9
2.2.5 XML Applikation Server............................................................................................................................9
2.2.6 Content Management Systeme (CMS) ....................................................................................................10
2.2.6.1 Beispiel - TEXTML Server................................................................................................................................. 10
3.
ANFORDERUNGEN AN XML-DATENBANKEN .....................................................................................13
3.1 BEGRIFFSDEFINITION .........................................................................................................................................13
3.2 SPEICHERUNGARTEN BEI NATIVE XML-DATENBANKEN ...................................................................................14
3.2.1 Text basierte Speicherung .......................................................................................................................14
3.2.2 Modell basierte Speicherung ...................................................................................................................14
3.2.3 Vergleich der beiden Strategien..............................................................................................................14
3.3 XML-DBMS VS. XED .....................................................................................................................................15
4. PRODUKTEVALUATION ..................................................................................................................................16
4.1 EXCELON...........................................................................................................................................................16
4.1.1 Überblick ..................................................................................................................................................16
4.1.2 Architektur ...............................................................................................................................................18
4.1.3 Extensible Information Server (XIS) ..................................................Fehler! Textmarke nicht definiert.
4.1.3.1 Architektur .......................................................................................................................................................... 18
4.1.3.2 Dynamic XML Engine (DXE) ............................................................................................................................ 19
4.1.3.3 Toolbox und Xconnects ...................................................................................................................................... 21
Die Toolbox dient zur Entwicklung und Verwaltung von grafischen, XML-basierten Web Applikationen und
Datenstrukturen.......................................................................................................................................................... 21
4.1.4 Beispiel: Personalisierung (Personalized Web) ......................................................................................21
4.2 TAMINO ............................................................................................................................................................22
4.2.1 Überblick ..................................................................................................................................................22
4.2.2 Architektur ...............................................................................................................................................23
5. GEMEINSAMKEITEN DER PRODUKTE .............................FEHLER! TEXTMARKE NICHT DEFINIERT.
INFO...........................................................................................................................................................................24
LITERATURVERZEICHNIS: ................................................................................................................................24
1. Einführung
Die Einsatzgebiete von XML weiten sich kontinuierlich aus. War das Meta-Datenformat zunächst nur zur Trennung von Darstellung und Daten in Web-Dokumenten konzipiert, so hat es
sich mittlerweile in so verschiedenen Bereichen wie medienübergreifendes Publizieren (CrossMedia-Publishing), RPC-Protokolle, Datenbankschema-Notationen, Konfigurationsdaten,
Workflow-Sprachen oder universelles Datenaustauschformat als unverzichtbar etabliert.
Mit dieser steigenden Nutzung wächst der Bedarf an einer persistenten Speicherung und
Weiterverarbeitung von XML-Daten. In dieser Hinsicht stellen XML-Datenbanken einen
Lösungsansatz dieses Problems dar. Es gibt jedoch XML-Datenbanken und XML-Datenbanken.
Puristen würde behaupten, daß nur Datenbanken, die XML in seinem „native“ Format speichern,
das Label "XML-Datenbank" verdienen. Andere behaupten, daß, wenn man XML speichern und
zurückholen kann und es sich bei der Quelle um eine Datenbank handelt, es sich um eine XMLDatenbank handelt, unabhängig davon, wie die Daten gespeichert werden. Ungeachtet dieser
Diskussion werden alle Datenbanken, die XML-Dokumente intern als XML speichern, als
„native“ XML-Datenbanken betrachtet. Alle anderen jedoch, die XML-Dokumente nicht als
XML speichern, werden als „XML-enabeld“ bezeichnet.
Die Zahl der Produkte (XML-Systeme), die XML mit Datenbanken benutzen, wächst mit
erstaunlicher Geschwindigkeit. Diese Ausarbeitung soll einen Überblick über verschiedene
XML-Systeme geben. Zusätzlich werden die „native“ XML-Datenbanken ausführlich behandelt.
2. XML Systeme
2.1 Übersicht
Datenbanken haben sich im Laufe der Jahre als ideales Werkzeug zur Verwaltung und Pflege
großer Datenvolumen entwickelt. Im Zuge der rasanten Verbreitung von neuen XML-Standards
stehen Entwickler sehr schnell vor dem Problem, die Vorteile beider Technologien zu nutzen.
Dazu hat heute nahezu jedes Datenbank-Produkt und Datenbank-Tool den Begriff "XML" in
seine Featureliste aufgenommen. Als zentrale Anlaufstelle im Internet zu aktuellen
Entwicklungen und Produktneuheiten rund um XML-Datenbanken hat sich die Sammlung von
Ronald Bourret unter [ROBOU1] und [ROBOU2] etabliert.
In [ROBOU2] findet man unter der Überschrift "XML Database Products" einen strukturierten
Überblick von Produkten zum Thema XML und Datenbanken.
[ROBOU2] schreibt : ich habe Produkte in die folgenden Kategorien unterteilt. Die Grenzen
zwischen einigen dieser Kategorien sind jedoch verschwommen, speziell bei XML-Enabled
Databases, Native XML Databases, XML Servers, und XML Application Servers.
•
•
•
Middleware: Eine Software zum Transferieren von Daten zwischen XML-Dokumenten und
Datenbanken.
XML-Enabled Databases: Datenbanken mit Erweiterungen, um Daten zwischen XMLDokumenten und diesen Datenbanken zu transferieren.
Native XML Databases: Datenbanken, die XML-Dokumente in ihrer „nativen“ Form
speichern. Mit „native“ ist gemeint, daß die Struktur des XML-Dokuments erhalten bleibt.
•
•
•
XML Server: Plattformen, die Daten in Form von XML-Dokumenten an verteilte
Anwendungen senden und von diesen Anwendungen empfangen. Zum Beispiel e-Commerce
und business-to-business Applikationen.
XML Application Server: Web Applikationen Server, die XML an Browser verschicken.
Content Management Systems: Systeme zum Speichern, Wiederfinden und Zusammenstellen
von Dokumenten aus Dokumentfragmenten.
Generell müssen noch Erweiterungen implementiert werden, um Middleware, XML-Enabled
Databases, Native XML Databases, und XML Server in bestehende Anwendungen zu
integrieren. XML Application Server benötigen spezielle Skripte und Content Management
Systeme müssen konfiguriert werden.
2.2 Produktkategorien
So umfangreich das Angebot an Lösungen zur Speicherung von XML-Daten ist, so
verschiedenartig sind auch die Techniken zu deren Realisierung. Generell lassen sich die
verwendeten Techniken durch ihre Eigenschaften in Kategorien einordnen (siehe Punkt 2.2.1
und folgende).
Im Rahmen der Kategorisierung werden die zwei Begriffe “Data-Centric“ und „DocumentCentric“ verwendet, deren Definition [ROBOU1] ich zur Verständniserleichterung voranstellen
möchte.
[ROBOU1] erläutert, dass der wichtigste Faktor bei der Auswahl einer Datenbank die
Überlegung sei, ob man die Datenbank benutzt, um Daten oder Dokumente zu speichern. Er
unterscheidet dabei zwischen datenorientierten XML-Dokumenten ("Data-Centric"), deren
Schwerpunkt auf den Inhalten der einzelnen Strukturen liegt und dokumentorientierten XMLDokumenten ("Document-Centric"), bei denen das Dokument als ganzes betrachtet wird. Bei
dokumentorientierten XML-Dokumenten ist die Granularität das Dokument, bei
datenorientierten XML-Dokumenten sind es Elemente, Attribute und Zeichenketten.
Datenorientierte XML-Dokumenten sind ferner durch eine relativ regelmäßige Struktur
gekennzeichnet, die normalerweise für die maschinelle Verarbeitung entworfen wurde. Im
Gegensatz dazu sind dokumentorientierte XML-Dokumente eher für den menschlichen Benutzer
gemacht. Ein Beispiel für "Data-Centric" sind Bestellformulare und für "Document-Centric"
DBLP, Bibliotheken.
2.2.1 Middleware
In die Klasse Middleware, fallen alle Software Produkte, die bei "Data-Centric" Anwendungen
benutzt werden, um Daten zwischen XML-Dokumenten und Datenbanken zu übertragen. Diese
Software Produkte werden in einer Vielzahl von Programmiersprachen geschrieben, aber fast
alle verwenden ODBC, JDBC oder OLE DB zur DB Verbindung. Obwohl einige von ihnen auch
Daten über das Internet senden können, müssen die meisten in Verbindung mit einem Web
Server benutzt werden, wenn man entfernte Datenzugriffe benötigt.
Ein Beispiel für ein Produkt dieser Klasse ist XML SQL Utility für Java von Oracle.
Das XML SQL Utility für Java besteht aus mehreren Klassen, welche:
• eine Abfrage an die Datenbank schicken und aus dem Resultat ein XML-Dokument generieren.
• XML-Daten in der Datenbank speichern
XML aus Abfrageresultat generieren
Wie die folgende Abbildung zeigt, kann XML SQL Utility SQL-Abfragen ausführen und als
Resultat ein XML-Dokument zurückgeben.
Die Struktur des Resultats im XML-Dokument basiert auf der internen Struktur des
Datenbankschemas. Spaltennamen werden zu den obersten Elementen. Zeilenelemente werden
zu Elementen mit Textinhalt. Objekte werden zu Elementen mit Attributen, welche als
Unterelemente dargestellt werden. Container werden zu Listen von Elementen. Objektreferenzen
und referenzierende Constraints werden zu XML IDREFs.
XML SQL Utility kann entweder einen String, welcher das XML-Dokument darstellt oder eine
Abbildung im Speicher in Form eines Baums (DOM-Modell) erstellen. Wird das XMLDokument einem Aufrufer zurückgegeben, ist die String-Form die Beste. Wenn das XMLDokument mit der Applikation verändert werden soll, empfielt sich die Abbildung ins DOMModell.
Beispiel: XML generieren aus einem Abfrageresultat
Das folgende Beispiel ist eine einfache Anwendung von XML SQL Utility um ein XMLDokument aus einer Abfrage zu generieren. Die folgende Abfrage wird der XML SQL Utility
übergeben:
SELECT EMPNO, ENAME FROM EMP WHERE EMPNO = 7654;
<?xml version="1.0"?>
<ROWSET>
<ROW id="1">
<EMPNO>7654</EMPNO>
<ENAME>MARTIN</ENAME>
</ROW>
</ROWSET>
ROWSET ist der Elementname des XML-Dokumentes. ROW ist der Elementname für jede Zeile
in der Datenbank. Die Spaltennamen wie EMPNO und ENAME werden auch als Elemente
innerhalb des ROW-Knoten dargestellt. Im allgemeinen werden Daten als Elemente dargestellt
und Attribute werden gebraucht um Einschränkungen anzugeben.
2.2.2 XML-Enabled Datenbanken
XML enabled DB (XED): Datenbanken, die Erweiterungen zur Verarbeitung von XML besitzen.
Ein existierendes Datenbanksystem, meist ein relationales DBMS, wurde durch den Hersteller
oder einen Drittanbieter mit einer Komponente / Schicht zur Verarbeitung von XML versehen.
Diese "Wandlerschicht" verwaltet den Lesenden und zum Teil Schreibenden Zugriff auf die
gespeicherten XML-Daten. Die Wandlung der Daten von und nach XML unterscheidet sich bei
den angebotenen Lösungen zum Teil sehr stark. XML-Metadaten und -Struktur können durch die
Wandlung sogar verloren gehen. Der Zugriff und die Bearbeitung der Daten erfolgt entweder
durch standardisierte XML-Technologien (XPath, DOM und SAX) oder mittels SQL. Ein
Beispiel für XEDs ist der DB2 XML Extender von IBM [1].
Der XML Extender für DB2 ist ein Tool, dass das Handling zwischen DB2 und XML
Dokumenten ermöglicht.
Der XML Extender ermöglicht die Extraktion, das Ablegen und den Zugriff des Inhaltes von
XML Dokumenten in einer DB2 Datenbank. So wird die Kombination von strukturierten XML
Informationen mit den traditionellen relationalen Daten vollzogen. Abhängig von der
Anwendung kann das ganze XML Dokument in DB2 als ein User-Defined Data Type
gespeichert werden, oder der Inhalt des XML Dokumentes wird auf traditionelle Datentypen in
relationalen Tabellen abgebildet. Mit Hilfe von anwendungsspezifischen Abbildungsmechanismen, die der XML Extender anbietet, sind Transformationen zwischen XML
Dokumenten und relationaler Daten möglich. Die Transformation schliesst sowohl das Zerlegen
von XML Dokumenten in ein oder mehrere Teile und das Abspeichern als SQL übliche
Datentypen, als auch das Zusammensetzen von XML Dokumenten aus Daten relationaler
Tabellen ein. Im Document Access Definition File (DAD) wird festgehalten, wie strukturierte
XML Dokumente abgelegt oder erstellt werden. Zwei Zugriffs- und Speichermethoden stehen
dafür zur Verfügung:
• XML Column
• XML Collection
Die XML Column Methode legt komplette, intakte XML Dokumente in eine Spalte ab. Die
XML Collection Methode bildet Daten, die den Inhalt von XML Dokumenten darstellen, auf
eine Menge von relationalen Tabellen ab und setzt diese auch wieder zu XML Dokumenten
zusammen.
2.2.3 Native XML Datenbanken
Die Zerlegung von XML-Dokumenten in eine Menge von relationalen Tabellen oder das
Zusammensetzen von XML Dokumente aus Daten einer Menge von relationalen Tabellen
benötigt einen beträchtlichen Verarbeitungsaufwand, besonders für die großen oder
komplizierten Dokumente. Deshalb sind neue Datenbanksysteme entwickelt worden, die ganz
speziell auf die Speicherung von XML-Strukturen ausgerichtet sind (native XML-Datenbanken).
Datenbanken, die XML-Dokumente in ihren reinen („native“) Format speichern, werden als
„native XML-Datenbank“ gekennzeichnet. Wenn XML-Dokumente nicht als XML Format
innerhalb einer Datenbank gespeichert werden können, wird diese Datenbank als "XML-enabled
Datenbank" genannt.
Diese Produktkategorie wird im 3. Kapitel ausführlich behandelt.
2.2.4 XML Servers
2.2.4.1 Überblick
XML-Datenbanken bauen meist auf einem der herkömmlichen Datenbanktypen auf. Das heisst,
sie basieren entweder auf einem objektorientierten, einem objektrelationalen oder einem
relationalen Ansatz. Teilweise hat man auch Standard-Datenbankmanagementsystemen die
XML-Fähigkeit nachträglich eingebaut (Oracle 8i /9i, Microsoft SQL-Server, IBM DB2 etc.).
XML-Server bieten dagegen nicht nur eine Datenbank mit XML-Fähigkeiten, sondern ein meist
komplexes System bestehend aus Werkzeugen und einer (XML-) Datenbank.
XML-Server Architektur Beispiel:
XML-Server sind Plattformen, die Daten für verteilte Anwendungen, wie e-Commerce und
business-to-business, zur Verfügung stellen und von diesen auch Daten empfangen können.
Daten werden in Form von datenorientierten XML-Dokumenten übertragen, obgleich einige
Systeme auch dokumentorientierte Dokumente verarbeiten können. XML-Servers im Allgemeinen enthalten komplette Entwicklungsumgebungen für Applikationen und liefern Zugriff auf
die Daten in verschiedenen Datenspeichern, einschließlich Legacy-Datenbanken, emailMeldungen und der Dateisystemen.
Der Marktforscher GiGa hat eine erste Sichtung und Unterscheidung der derzeit und demnächst
verfügbaren XML-Server vorgenommen und damit zugleich eine erste Marktsegmentierung
versucht. Nach Ansicht der Giga-Analysten lassen sich XML-Server in vier funktionelle
Segmente einteilen:
•
•
•
•
Formatierung und Präsentation von XML-Dokumenten
Ausführung von Geschäftslogik
Im Rahmen einer mehrschichtigen Architektur spielen Anwendungsserver für die
Ausführung der Geschäftslogik eine wichtige Rolle; sie stellen die Funktionalität der
Anwendungen zur Verfügung.
Langfristige und kurzfristige Speicherung
Verbindung zu bestehenden Informationssystemen
Wie bei allen neuen Standards muß XML Anschluß an die Welt der bestehenden
Informationssysteme finden. Andererseits müssen aber auch bestehende Systeme oder
relationale Datenbanken mit XML-Anwendungen kommunizieren – oder besser: zusammengeführt werden. Daher sind spezielle XML-Tools erforderlich, die die Formate integrieren
können.
Nachfolgend wird der Bluestone Server von HP als Beispiel für XML-Server behandelt.
2.2.4.2 Beispiel - Bluestone Server
Der Bluestone Server ist ein XML-Server. Er ist vollständig in eine Java-Umgebung eingebettet.
Der Dynamic XML Application Server (DXAS) bildet das Kernstück des Systems. Der DXAS
ist als Middleware für die Integration von Unternehmensanwendungen konzipiert und besteht
aus mehreren Bauteilen, die nun kurz beschrieben werden.
Communication Services
Die Communication Services verarbeiten die Anfragen der Clients, die nicht direkt an den
Application Server gerichtet sind. Sie sind als Framework implementiert, welches Schnittstellen
zu den meisten Protokollen anbietet. Es können weitere Protokollschnittstellen hinzugefügt
werden. Das Thread Pooling der Communication Services ist dafür zuständig, dass jede Anfrage
in einem eigenen Thread gestartet wird. Diese Threads werden dynamisch zugeordnet. Damit
erhöht sich die Skalierbarkeit der Communication Services, da der Document Handler nicht
verändert werden muss.
Document Handler
Die dokumentenspezifische Anwendungslogik, die für die Verarbeitung verschiedener XMLDokumente notwendig ist, wird von einem Document Handler implementiert. Dieser übernimmt
die übergebenen Daten und wandelt sie gegebenenfalls in XML um. Danach verarbeitet er sie
nach den vorgegebenen Regeln. Für jeden Dokumententyp wird ein eigener Document Handler
implementiert.
XML Core Services
Die XML Core Services, die den Document Handler funktional abstützen, stellen Funktionen zur
Verarbeitung von XML zur Verfügung. Zu diesen Funktionen gehören zum Beispiel das Parsen
von XML-Dokumenten sowie die Verarbeitung von XSL und XQL.
Data Source Integration Modules
Die Data Source Integration Modules (DSIM) bilden die Schnittstelle zu externen Daten und
Objekten. Die externen Daten können mittels DSIM gelesen, verarbeitet und zurückgeschrieben
werden.
Weitere Funktionen des DXAS sind ein flexibles Sessionmanagement, ein plattenzugriffssparender Live Object Cache, die Verwaltung von Benutzerrechten bis auf die Feldebene
und der State Server, welcher den Zustand vor einem Absturz anhand einer neuen Instanz wieder
herzustellen versucht. Die Skalierbarkeit des Bluestone XML-Servers wird dadurch erhöht, dass
mehrere Instanzen von Application Servern eingesetzt werden können und durch einen Load
Balance Broker die Last verteilt wird. Bei fehlender Kapazität können während des Betriebs
weitere Instanzen des Application Servers generiert werden.
2.2.4.3 Systemvergleich
Im Vergleich zu XML-Enabled Datenbanken und XML-Servern können „native“ XMLDatenbanken normalerweise auf eine Vielzahl von Datenquellen zugreifen und eine Verbindung
zum Internet herstellen. Die als XML Server klassifizierten Systeme sind eher Plattformen um eCommerce und andere verteilte Anwendungen zu erstellen.
Im Unterschied zu XML Servern werden XML Applikation Server eher von Scriptsprachen oder
benutzerspezifische Markup Sprachen gesteuert und arbeitet in Verbindung mit einem Web
Server.
2.2.5 XML Applikation Server
XML-Applikationen Server sind Web-Applikationen, die fähig sind, sowohl datenorientierte als
auch dokumentorientierte XML Dokumente dem Web zur Verfügung zu stellen. Sie verwenden
eingebettete SQL-Anweisungen in einer Skript-Sprache, um Daten abzufragen und XMLDokumente dynamisch zu generieren.
[ROBOU1] erklärte: die Trennlinie zwischen XML-Servern und XML-Applikation-Servern ist
vage. Die Systeme, die ich als XML-Applikation-Server katagorisierte, tendieren dazu, für ihre
Datengenerierung Skript-Sprachen oder gewöhnliche Markup-Sprachen zu verwenden. Obgleich
viele Content Management Systeme ebenfalls XML auf dem Web veröffentlichen können, sind
sie doch fundamental unterschiedlich. Sie sind dafür entwickelt, dokumentorientierte Dokumente
zu verarbeiten, wohingegen XML Applikation Server sowohl datenorientierte Dokumente (in der
Form von dynamischen Web-Seiten) als auch dokumentorientierte Dokumente (in der Form von
statischen Web-Seiten) bedienen können.
2.2.6 Content Management Systeme (CMS)
Im Internet spielen Geschwindigkeit und Aktualität von Informationen eine große Rolle. Der
anfängliche statische Aufbau dieser Inhalte kann diesen Ansprüchen aus Effizienz- und
Kostengründen nicht mehr genügen. Neue Architekturen und Technologien weisen den Weg zur
dynamischen (personalisierten) Generierung von Inhalten. Entsprechende Systeme, die die
Integration, Persistenz und Präsentaion von Daten unterstützen, werden mit dem Begriff Content
Management Systeme bezeichnet.
Content Management Systeme sind Systeme für Speicherung, Zurückholen und Zusammenfügen
von Dokumenten aus Dokumentfragmenten (Inhalt). Sie beinhalten im Allgemeinen Werkzeuge
wie Editoren, Versionskontrolle und Multi-Userzugang. Obwohl CMS eine Datenbank benutzt,
ist diese für den Benutzer transparent. Unter CMS versteht man auch die Erstellung, Verwaltung
und Veröffentlichung von Daten und Metadaten eines Unternehmens mittels Web-Technologie.
Content Management Systeme unterscheiden sich von den native XML-Datenbanken dadurch,
daß sie mehr Dokumentmanagementfunktionalitäten anbieten, wie z.B. Versionskontrolle.
2.2.6.1 Beispiel - TEXTML Server
Der IXIA TEXTML Server ist ein Dokument Management Server auf der Basis von XML. Er
nutzt neben XML auch weitere verwandte Technologien wie XSL zur Darstellung von XML
Inhalten und XLink zur Verknüpfung von XML Dokumenten. Das Einsatzgebiet des TEXTML
Servers ist vorrangig die Speicherung und Indexierung von XML Dokumenten. Ein Nachteil des
TEXTML Servers ist die enge Verknüpfung mit Windows NT und die Abhängigkeit von COM.
Der TEXTML Server funktioniert nur in Zusammenarbeit mit dem Microsoft Transaction Server
auf einem Windows NT Server. Die Suche des TEXTML Servers erfolgt über die Eingabe von
Suchbegriffen. Daraufhin wird eine Liste der gefundenen Dokumente zurückgegeben.
Spezifische Abfragesprachen auf Basis von XML Technologien wie XPath oder XQL werden
nicht unterstützt, da ein XML Datei nicht als hierarchisches Dokument sondern als Text
behandelt und indiziert wird.
Überblick
Der Server IXIASOFT XML ist eine Sammlung von COM-Komponenten, welche in der
Windows COM+ Umgebung integriert sind. Der Server besteht aus einem Repository für alle
Dokumente, einer Indexierung Engine und einer Search Engine.
XML Dokumente werden geparst, während sie dem Repository des Servers hinzugefügt werden.
Werte der Elemente, Attribute oder Tagnamen werden entsprechend der definierten
Datenbankstruktur extrahiert. Diese extrahierten Werte bilden Indexe, die durch eine
Anwendung abgefragt werden können. Der Reihe nach verweisen die Indexe auf Dokumente in
dem Repository, um Anfrageergebnisse zurückzugeben.
Repository
Das Repository kann effizient mehrere Millionen Dokumente in einer sicheren Umgebung
speichern und seine Performance ist unabhängig vom Betriebssystem des jeweiligen
Dateisystems. Drei Ebenen der Windowssicherheit steuern den Zugriff auf das Repository.
Nicht-XML Inhalte können über ihren Dateinamen oder über eine Referenz innerhalb des XMLDokumentes abgefragt werden.
Um das Editieren zu kontrollieren prüft das Repository Dokumente bei der Ein- oder Ausgabe.
Der Server Repository ist mit einem Wiederherstellungswerkzeug und einem Backupagent für
gesicherte Speicherung ausgestattet .
Indexing Engine
Um den Overhead zu reduzieren, die mit komplexen Indexstrukturen verbunden sind, können
Indexstrukturen konfiguriert werden: Bei der Selektion und logische Gruppierung von
spezifischen Elementnamen und Attributen, wird die Tiefe der Relation zwischen den
Elementen, die zu indexieren sind, festgelegt und es werden über die indizierten Elemente
Bedingungen erstellt.
Die Indexstruktur kann auch dynamisch umkonfiguriert werden, ohne die Serverleistung
gegenüber anderen Benutzertransaktionen zu beeinflussen. Die Änderungen an der Indexstruktur
werden durchgeführt, um nur die in Verbindung stehenden Indexe zu aktualisieren. Folglich wird
die Indexierungszeit und die Nutzung von Serverresourcen reduziert.
Beim IXIASOFT XML Server ist die Indexierung voll dynamisch und kontinuierlich in
Synchronisation mit dem Basisdokument. Entsprechend der Applikationsanforderungen steuert
ein konfigurierbarer Agent den Indexierungs- und de-Indexierungsprozess. Diese Prozesse
können gegen folgende Ereignisse konfiguriert werden: das Hinzufügen einer gegebenen Anzahl
von Dokumenten, einer bestimmten Informationsgröße (KB), einer spezifischen Tageszeit oder
eine abgelaufene Zeitspanne seit dem letzten Prozeß. Es ist also möglich, den Prozeß manuell zu
starten.
Indexe sind für Texte, Datum, Strings und numerischen Werten verfügbar. Der Server bietet
ausreichende Indexe an, wodurch die Suchkapazität gesteigert wird. Indexe ermöglichen eine
Sortierung der Dokumente nach Elementen, Attributen oder Elementnamen innerhalb der XML
Dokumentstruktur.
Search Engine
Da die IXIASOFT-Search Engine Werte über die Indexe anstatt aus jedem Dokument aussucht,
wird das Performanceniveau beibehalten, unabhängig davon, ob der Repository 10.000 oder
1.000.000 Dokumente enthält.
Die Volltextsuche kann am gesamten Dokument oder an einzelnen Elementen angewendet
werden. Zur Verfügung stehen Boolesche Suchoperatoren als auch Proximity Operatoren,
welche in den Dokumenten das Vorkommen bestimmter Worte, Elemente oder Einheiten, d.h.
Sätzen bzw. Absätzen, abgrenzen können. Der Server kann ebenfalls nach Datum, Zeit oder
numerischen Bereichen, als auch nach Strings suchen.
Technology
Einige Entwicklungsgenerationen ergaben proprietäre Fortschritte, welche die Serverprozesse
optimierten und die COM Technologie Features integrieren. Dies ermöglicht den IXIASOFT
Servern unter allen Bedingungen eine überragende Indexierung und Suchperformance zu leisten.
Einige der Prozesse, die von dieser Evolution profitierten sind: „Smart Proxy“, „Load
Balancing“ und „Indexing Process“.
Smart Proxy
IXIASOFT verwendet eine Proxytechnik, um Objekte lokal auf dem Client und dem Server zu
erstellen. Dies verhilft zu einer effizienten Datenübertragung zwischen den beiden. “Custom
marshalling“ ist nur eine der Techniken, die verwendet wird, um die COM Komponenten zu
verwalten und somit eine ideale Nutzung der Proxy zu erreichen. Infolgedessen vermindert der
Smart Proxy die Serverlast und ermöglicht eine optimale Nutzung der Serverresourcen.
Indexing
Indexierung ist ein Hintergrundsprozeß und als ein solcher beeinflußt er nicht die Serverleistung
Benutzertransaktionen durchzuführen. Die Indexierung besteht in einem Indexinitialisierungsprozeß der Dokumente, in welchem ein Vorindex zusammengestellt wird, das in seiner Struktur
kompatibel zum Hauptindex ist. Die Pre-Indexierung reduziert die Indexierungszeit, da die
Struktur des Indexes übersichtlicher ist als das gesamte Dokument.
Load Balancing
Um die Serverperformance beizuhalten und Transaktionsengpässe zu vermeiden, identifiziert ein
Load Balancing Prozeß die Komplexität der einkommenden, vom Server auszuführenden,
Transaktionen. Eine Transaktion wird sofort ausgeführt, wenn ausreichende Serverresourcen
verfügbar sind. Im Fall, daß eine einkommende Transaktion mehr Resourcen erfordert, als zu
diesem Zeitpunkt verfügbar, behält sie ihre Priorität bis genügend Serverresourcen bereitstehen.
Komplexe Transaktionen, wie die Indexierung von 10.000 Dokumenten, können simultan zu
weniger komplexen Transaktionen, wie die Suche von Dokumenten, durchgeführt werden. Die
komplexere Transaktion wird segmentiert, um die Ausführung der weniger komplexen
Transaktion zu ermöglichen. Dabei bleibt das Basisdokument stabil erhalten. Dies eliminiert
praktisch den Begriff der Stapelverarbeitung und gewährleistet einen dynamischen
Verarbeitungsprozeß.
Fazit
Der IXIASOFT XML Server ist speziell ausgestattet, um auf die neuen Anforderungen der XML
Inhalte zu reagieren. Jedes Feature des Servers wurde in Hinblick auf XML entwickelt, um den
größten Nutzen aus den XML Inhalten zu ziehen, indem eine bessere Indexierung und content
(inhaltliche)-Suchperformance geliefert wird.
3. Anforderungen an XML-Datenbanken
Auf den ersten Blick präsentiert sich bei den XML-Systemen eine beeindruckende Vielfalt. Die
»Bandbreite« zeigt die Sammlung von Ronald Bourret [ROBOU2]. Leider macht diese
Zusammenstellung nicht deutlich, worin sich echte ("native") XML-Datenbanken (ab sofort
verwenden wir den begriff XML-DBMS für "native" XML-Datenbanken) von anderen
Kategorien unterscheiden. Erst bei näherer Analyse zeigt sich, daß es momentan eigentlich nur
drei kommerziell verfügbare XML-DBMS gibt: Excelon B2B Integration Server, Tamino und XHive/DB.
3.1 Begriffsdefinition
Will man aus der Masse der XML-Server und -Datenbanken die »Echten« herausfiltern, so gilt
es zunächst Kriterien zu definieren, die diese erfüllen müssen, damit sie der Bezeichnung XMLDBMS (Datenbank-Management-System) gerecht werden.
Ein Produkt ist dann eine XML-Datenbank, genauer ein XML-DBMS, wenn für dieses Produkt
an erster Stelle die gleichen Anforderungen wie für jede andere Datenbank gelten: es muß eine
persistente Speicherung und Wiederfindung der Daten gewährleisten.
XML-Dokumente müssen in geparster Form so gespeichert werden, dass der Zugriff auf
Elementebene möglich ist, ohne dass stets das ganze Dokument gelesen oder gar geparst werden
muss. XML-DBMS müssen Daten- und Dokumentensicht (mixed content, Kommentare etc.)
unterstützen und eine schematische Beschreibung der Dokumente erlauben. Außerdem muss
man von einem XML-DBMS verlangen, daß es eine der XML-spezifischen Abfragesprachen
(wie z.B. XML-QL, XQL, XPATH, QUILT) verarbeiten kann. XML-Dokumente sollten über
eine effiziente Suchfunktionalität einfach aufzufinden sein. Struktur- und wertebasierte Anfragen
sollten effizient unterstützt werden.
Weitere Anforderungen sind: das XML-Dokument sollte als solche gespeichert werden; das
Ergebnis einer Abfrage sollte eine Menge von XML-Elementen beziehungsweise ein transientes
XML-Dokument sein; das hierarchische Format des XML-Dokumentes sollte bei der
Speicherung erhalten bleiben. Des weiteren sollten XML-DBMS in der Lage sein,
Datenstrukturen unmittelbar aus den Dokumenten abzuleiten. Verlangen kann man sicherlich
auch Updates auf Elementebene, denn wer will schon stets ein ganzes XML-Dokument aus der
Datenbank holen, ändern und dann erneut einlesen, parsen und speichern. Schließlich kann man
wohl verlangen, daß ein XML-Datenbanksystem Funktionen wie Online-Backup und -Restore,
Administrationswerkzeuge, Multi-User-/ Multi-Client-Support, Transaktionen, Replikation und
Benutzermanagement unterstützt.
3.2 Speicherungarten bei native XML-Datenbanken
[ROBOU2] Bei XML-DBMS lassen sich Speicherungsart in zwei Kategorien einteilen:
3.2.1 Text basierte Speicherung
Das gesamte Dokument wird in Textform gespeichert und für den Zugriff auf das Dokument
werden verschiedene Indexierungstechniken verwendet.
3.2.2 Modell basierte Speicherung
Speichert ein binäres Modell des Dokumentes (wie das DOM oder eine Variante davon) in einem
existierenden oder gewöhnlichen Datenspeicher. Dies konnte zum Beipiel das DOM auf
relationalen Tabellen wie Elemente, Attribute, Entities abbilden, oder das DOM in pre-parsed
Form auf Datenspeichern speichern.
3.2.3 Vergleich der beiden Strategien
Bei textbasierter Speicherung kann ein Dokument bis genau ein Zeichen durchsucht werden. Bei
modellbasierter Speicherung wird das Dokument nur auf der Ebene des zugrundeliegenden
Dokumentmodells durchsucht.
Textbasierte Speicherung hat offensichtlich den Vorteil, das gesamte Dokument in Text-format
zurückzuliefern. Modellbasierte Speicherung hat im allgemeinen den Vorteil, Teile der
Dokumente oder kombinierte Fragmente aus unterschiedlichen Dokumenten zurückzugeben.
3.3 XML-DBMS vs. XED
•
•
•
•
•
•
•
•
•
Der Datenbanktyp ist speziell auf die Anforderungen von XML Strukturen zugeschnitten.
Es ist keine Anpassung erforderlich, was zu einer hohen Performance führt.
Die Dokumentstuktur kann relativ leicht in Abfragen berücksichtigt werden (in relationalen
DB nur durch umfangreiche und damit langsamen Join Abfragen möglich).
Es ist möglich, die Native Storage mit relationalen DB zu verbinden (z.B. Tamino).
Es existiert eine standartisierte Abfragesprache über XML Dokumente, welche in diesen
XML-DBMS angewendet werden kann (XML Query Language).
Direkter XML-Input und XML-Output
Ad-hoc Speicherung von XML-Dokumenten
Validierung auf Basis von DTD
Definition von Datentypen etc. über XML-Schemata
XML-DBMS unterscheiden sich von XML-Enabled Datenbanken hauptsächlich in drei Punkten:
•
XML-DBMS können sowohl die physikalische Struktur als auch Kommentare, DTDs, etc.
erhalten. Obwohl XML-Enabled Datenbanken dies theoretisch können, wird es in der Praxis
nicht angewendet.
•
XML-DBMS können XML-Dokumente speichern ohne deren Schema (DTD) zu kennen,
angenommen sie haben überhaupt eines. XML-Enabled Datenbanken könnten Schemata
zwar in Echtzeit generieren, was jedoch unpraktisch ist. Vor allem wenn man mit
schemalosen Dokumenten arbeitet.
•
Die einzige Schnittstelle zu den Daten innerhalb einer XML-DBMS ist XML und verwandte
Technologien, wie XPath, DOM, oder ein XML-basiertes API, wie zum Beispiel XML:DB
API. Im Gegensatz dazu bieten XML-Enabled Datenbanken direkten Zugang zu den Daten,
zum Beispiel durch ODBC.
XML-DBMS unterscheiden sich von XML Servern und XML Applikation Servern aus den
gleichen Gründen, wie XML-Enabled Datenbanken.
4. Produktevaluation
Obwohl die Idee Daten in XML zu speichern noch relativ neu ist, haben bereits mehrere große
Unternehmen diese umgesetzt und eine XML Datenbank entwickelt. Im nachfolgenden Kapitel
werden folgende der derzeit existierenden XML-DBMS vorgestellt: eXcelon Portal Server der
eXcelon Corp (früher Object Design), Der Taminoserver der Software AG. Zuerst wird jetzt
versucht, eine Bewertung der vorgestellten Technologien und Produkte im Hinblick auf die
Speichermodelle, Indexierung, unterstützte Anfragesprachen etc. durchzuführen.
Produkt
Speichermodell
Anfragesprache
Tamino
DOM
XPath-Erweiterung,
XQL
XSL, CSS
structural,
value, text
[3]
Excelon
Objektorientiert
native DOM
XQL
XSLT
structural,
value, text
[4]
X-Hive/DB
DOM
XPath
XSLT
[5]
XPath
XSLT
[6]
XSLT
[7]
Virtuoso
4Suite Server
DOM
XPath
Birdstep DataBase
Engine
DOM
XPath
Transformation- Indexierung Websprache
Adresse
[8]
4.1 eXcelon
4.1.1 Überblick
eXcelon ist eine vollständige Entwicklungsumgebung für XML-baiserte Anwendungssysteme.
eXcelon's XML Plattform besteht aus den folgenden Bestandteilen:
•
Extensible Information Server (XIS)
Extensible Information Server stellen Daten und Informationsansammlungen, Management,
Umwandlung und skalierbare Auslieferungen zur Verfügung. Über hunderte verschiedene
Anschlüsse und Adapter zu existierenden Firmendatenquellen und –Applikationen werden
bereitgestellt, um getrennte Datenquellen zusammenzufassen.
•
Business Process Manager
Die Plattform bietet eine XML-basierte Engine für die Modellierung und Verwaltung
verteilter Businessprozesse.
•
Stylus Studio
Stylus Studio ist eine integrierte Entwicklungsumgebung für XML Applikationen. Er stellt
eine Reihe von leistungsfähigen Werkzeugen für die Entwicklung von XML basierten
Applikationen zur Verfügung. Stylus Studio bietet die Möglichkeit, XML Dokumente, DTD,
XML Schema zu editieren und unterstützt XPath Abfragen.
Bei eXcelon wurde der objektorientierte Ansatz verwendet. Er basiert auf der objektorientierten
Datenbank ObjectStore der gleichen Firma. Der eXcelon Server wurde entworfen, um in
Verbindung mit einem Webserver verwendet zu werden und um XML-Dokumente über das Web
zu senden oder zu empfangen. Er speichert XML-Dokumente in der Datenbank ObjectStore als
DOM-Bäume. Diese werden indexiert und können durch XQL abgefragt werden. Zusätzlich
kann die Datenbank benutzt werden, um XQL-Abfragen, Dateien (wie multimedia Dokumente)
und Java Klassen zu speichern.
eXcelon erlaubt es dem Benutzer, mit der Hilfe von Servererweiterungen Applikationslogik in
den Server einzufügen; sie können auf XML-Dokumente durch das DOM und durch XQL
zugreifen.
eXcelon kann Daten von den relationalen Datenbanken (durch ODBC- und OLE-DB) und vom
Dateisystem problemlos importieren. Dieses ist besonders wichtig, wenn diese als Datenquellen
dienen. Er verwendet "Cache-Forward Architektur", um die Konsistenz der Daten zu garantieren.
4.1.2 Architektur
Der eXcelonserver besteht aus den Komponenten XMLStore, eXcelon Client API, eXcelon
Explorer, eXcelon Management Konsole und Webserver Extension. Der eXcelon XMLStore ist
für die Speicherung der XML Elemente zuständig. Dies geschieht in der Objektdatenbank
ObjectStore, die dem eXcelon Server zugrunde liegt. Die Datenspeicherung erfolgt auf Basis der
hierarchischen Struktur der XML Datei. Der XMLStore erlaubt jedoch nicht nur die Speicherung
von XML Daten, sondern auch das Ablegen von Multimediadaten, wie zum Beispiel Bild- und
Tondateien, Animationen oder Präsentationen. Weiterhin können auch fertige XQL Abfragen
und Java Extensions abgelegt werden. Diese Java Extensions können verwendet werden, um die
Funktionalität des Servers zu erweitern.
Die eXcelon Client API ermöglicht den Zugriff auf die XMLStores durch DCOM
beziehungsweise eine Java API. Die Verbindung von Java mit dem eXcelonserver erfolgt über
CORBA.
Der eXcelon Explorer ist eine einfach zu benutzende Schnittstelle zu den einzelnen XMLStores.
Hier ist es möglich, Dateien aus dem Filesystem in einen XMLStore zu importieren, Dateien zu
ändern oder zu löschen. Weiterhin lassen sich hier Queries auf bestimmten XMLDokumente
definieren, Indexe festlegen, Verknüpfungen mit Stylesheets herstellen und Updates auf
bestimmten Dateien durchführen.
Die eXcelon Management Konsole ist für die Verwaltung der Datenbank zuständig. Hierzu
gehört das Anlegen, Aktivieren und Deaktivieren von Caches für die einzelnen XMLStores.
Außerdem lassen sich hier die Security Roles festlegen, sofern diese aktiviert wurde.
Weiterhin beinhaltet der eXcelonserver ein Hilfsmittel zum Erzeugen und Einladen von
Datenbank Dumps. Dies sind komplette Abbilder der Datenbank, die zur Datensicherung auf ein
anderes Medium gespeichert werden können. Dieses Hilfsmittel beinhaltet auch die Option große
XML Dokumente in kurzer Zeit zu laden.
Im nächsten Abschnitt wird der Extensible Information Server ausführlich behandelt.
4.1.3 Extensible Information Server (XIS)
4.1.3.1 Architektur
Der Extensible Information Server besteht aus Design-time und Run-time Komponenten.
Design-time Komponente unterstützen den Entwickler bei Design, Erstellung und Entwicklung
von Applikationen in eXcelon's XML Plattform. Run-time Komponente stellen die Infastruktur
für die Ausführung, Verteilung und Skalierung von Applikationen. Das Bild ergibt einen
Gesamtüberblick über die Komponente in XIS. Die Run-Time Komponenten vom Extensible
Information Server bestehen aus der dynamischen XML-Maschine (DXE), DXE-Managern und
XConnects. Die Design-Time Komponenten bestehen aus Stylus Studio, DXE-Manager, Map
Designer, (Teil von XConnects) und Prozeß Designer (auch einTeil von XConnects). Diese
Bestandteile bilden zusammen die gesamte Plattform für das Entwerfen, Debugen und
Entwicklen der XML-basierten Anwendungen.
Im nächsten Abchnitt werden wir uns ausschließlich mit Run-Time Komponenten beschäftigen.
Extensible Information Server Architektur
Run-Time Komponente
Die Run-Time Komponenten von XIS stellen eine flexible und leistungsfähige Umgebung für
die Verwaltung und Auslieferung von XML-Daten und -Inhalten zur Verfügung. Diese
Komponente bilden das Kernstück für die XML Plattform von eXcelon.
Die dynamische XML Maschine (DXE) ist eine „native“ XML Repository für die Verwaltung,
Transformation und Auslieferung von Inhalten. XConnects hat die Fähigkeit, Informationen
unterschiedlicher Legacy Datenquellen zusammenzustellen und in Standard XML umzuwandeln.
Der DXE Manager stellt das Hauptwerkzeug, um Administrationsaufgaben zu erledigen.
4.1.3.2 Dynamic XML Engine (DXE)
DXE ist das Kernstück des Extensible Information Servers. DXE stellt externen Web- und
Application Servern entweder über eine API-Schnittstelle (für Browser) oder über Java/COMObjekte (für Web- oder Application Server) native XML-Dokumente zur Verfügung. Damit
bietet es ein skalierbares, hochperformantes Datenmanagement für native XML, „embedded
Query“ und Indexierungsfähigkeiten basierend auf XML-Standard, an. Zusätzlich beinhaltet das
DXE auch die XML-Datenbank zur Speicherung von XML-Daten und XSL Stylesheets.
Die wichtigen Komponenten und Funktionalitäten des DXE:
•
XML Store
Dieser ist für die Speicherung verschiedenster Datentypen zuständig. Er ist auf der Basis der
OODBS Object Store aufgebaut.
•
DOM
Das Standard Document Object Model (DOM) ist eine Schnittstelle zu XML-Daten. DXE
parst XML Daten in einer Baumstruktur und speichert diese in einer Repository. Die DOM
Schnittstelle ermöglicht den Zugriff auf diese Struktur.
•
File System Interface
Die Repository stellt sich dar, wie eine dateisystemähnliche Oberfläche zur Verwaltung der
XML-Daten. Dies vereinfacht die DXE Datenmanagementsspeicherung.
•
Document Linking
Mit diesem Feature ist es möglich, Referenzen auf andere XML Dokumente innerhalb eines
gegebenen XML-Dokumentes zu stellen. So werden konzeptuelle oder physikalische
Relationen zwischen XML-Datenelementen kreiert. Wenn Operationen auf solchen
Dokumenten ausgeführt werden, berücksichtigt DXE die Referenzen, um eine
zusammengesetzte Dokumentansicht zurückzugeben.
•
Binders
Basierend auf dem Mechanismus des Document Linkings, können die in Verbindung
stehenden XML-Dokumente in eine einzelne, virtuelle Dokumentansicht zusammengebunden werden, um die Entwicklung von Anwendung und Aggregation der Daten zu
vereinfachen. Jede mögliche Operation, die an einem einzelnen XML-Dokument durchgeführt werden kann, kann auf einem Binder durchgeführt werden. Binder stellen hochwertige
Beziehungen zwischen XML-Dokumenten dar. Dokumente können Bestandteil unterschiedlicher Binder sein, um komplexe Beziehungen zwischen Daten zu ermöglichen.
•
Indexing
Indexierung der einzelnen XML-Elemente oder Gruppen von Elemente liefert einen
schnelleren Zugriff auf die relevanten Daten. Beim eXcelon wird der Parser Xerces SAX
verwendet. Der Parser baut beim Einlesen eines XML-Quelldokumentes eine Repräsentation
in Form einer hierarchischen Struktur aus Knoten auf. Aus dieser Struktur wird ein C++
Objektbaum generiert, und als C++-Objektstrukturen in ObjectStore abgespeichert.
DXE unterstützt drei Indexarten: structural, value und text. Strukturelle Indexierungen
ermöglichen ein Index auf eine Gruppe von Knoten anzulegen, auf die oft zugegriffen wird.
Dieser Index erlaubt der XPath Engine ein hinreichendes Vorausschauen in den Objektbaum,
damit sie zu den indexierten Objekten schnell navigieren kann.
Ein value Index wird auf einem Knoten angelegt, in dem man Vergleiche auf seinen Wert
ausführen will (z.B. auf der Inhalt eines Element “Preise“, wo numerische Vergleiche
ausgeführt werden können). Ein Text Index wird auf großen Textknoten verwendet, an denen
man die Booleschen Wortsuchen durchführen wollte (using xln:contains-words).
•
XPath Processor
Mit diesem leistungsstarken XPath-basierten Query Engine können Queries hergestellt
werden, die einzelne oder mehrfache Dokumente im Repository umfassen können. DOMKnoten können vom Abfragergebnis leicht erreicht werden. Durch die Existenz von Indexen
wird die Abfrageleistung der XPath-Prozessoren verbessert.
•
XSLT Processor
DXE schließt einen skalierbaren, hochperformanten XSLT-Prozessor mit ein, der XMLInhalte in HTML, in WML oder in jedes mögliche, angeforderte Format für die Endbenutzeranwendungen umwandelt.
4.1.3.3 Toolbox und Xconnects
Diese Komponenten stellen verschiedene Werkzeuge zur Verfügung. Die Toolbox dient zur
Entwicklung und Verwaltung von grafischen, XML-basierten Web Applikationen und
Datenstrukturen.
Xconnects bieten Schnittstellen zu konventionellen Datenbank- und Dateisystemen an. Es gibt
mehr als 70 Adapter für externe Datenverwaltungen. Es besteht auch die Möglichkeit, eigene
Formattransformationen zu programmieren.
4.1.4 Beispiel: Personalisierung (Personalized Web)
Defintion:
Personalisierung bedeutet, dem Benutzer die richtigen Informationen eines Internetauftritts in der präferierten Darstellung und Anordnung zur Verfügung zu stellen.
Technologien
• Benutzerdatenbank
Das zentrale Element für eine Personalisierung ist die Benutzerdatenbank. Ohne Informationen für wen die Webseite personalisiert werden soll, ist kein sinnvolles System
möglich.
• Personalisierungsdaten
Spezielle Daten für die Personalisierung können in einer zusätzlichen Datenbank gespeichert
werden. Dazu gehören auch die aufgezeichneten Daten des Benutzerverhaltens, die für eine
spätere Auswertung gespeichert werden.
• Personalisierungslogik
Die Personalisierungslogik ist das Herzstück. Dort wird entschieden, wer, welche Informationen, nach welchen Kriterien und wie zu sehen bekommt. Diese Logik kann als eigenes
Programm (Java, C++) implementiert werden oder als serverseitiges Skript (ASP, JSP) direkt in
der Webseite eingebettet sein.
Szenario
Basierend auf dem W3C Standard XML könnte Personalisierung realisiert werden. Als XMLDatenbank wurde eXcelon verwendet. Als Personalisierungslogik wurde ein Java-Programm
geschrieben, welches gemäss PIDL (Personalized Information Description Language) die
Personalisierung vornimmt. Figur stellt die Systemarchitektur und den Ablauf bei einer Anfrage
durch einen Benutzer dar.
Beschreibung des Ablaufs einer Benutzeranfrage:
1. Der Kunde startet eine Anfrage beim Webserver.
2. Der Webserver spricht über das ISAPI die zuvor gespeicherte Java-Server-Extension von
eXcelon direkt an und leitet so die Anfrage an die Personalisierungslogik weiter.
3. Vom Java-Programm kann die Anfrage über eXcelon (XLN-API) oder das Document Object
Model (DOM-API) weitergeleitet werden.
4. Falls die Anfrage über das XLN-API erfolgt, kann direkt auf den XML-Data-Store oder über
die Query-Engine zugegriffen werden. Mit dem DOM-API können die Daten nur über die
Query-Engine erreicht werden.
5. Die angeforderten Daten werden über denselben Weg wieder an die Personalisierungslogik
zurückgegeben.
6. Die Personalisierungslogik spricht den XSLT-Processor (eXtensible Style Sheet Transformation) direkt an.
7. Das Ergebnis der Transformation durch den XSLT-Processor wird an die Personalisierungslogik zurückgegeben.
8. Das Ergebnis der Anfrage wird dem Webserver übergeben.
9. Der Webserver leitet das Ergebnis an den Benutzer zurück.
4.2 Tamino
4.2.1 Überblick
Tamino steht für Transaction Architecture for the Management of Internet Objects. Es besteht
aus einer eigens für die Verwaltung von XML-Dokumenten konstruierten Datenbank. Diese ist
auch in der Lage relationale Tabellen und SQL-Abfragen sowie Zugriffe auf externe Datenquellen wie OODBS durchzuführen.
Der Hersteller Software AG sagt über Tamino:
Tamino
• ist der Information-Server für Electronic Business
• basiert auf der nativen XML-Technologie der Software AG (X-Machine)
• integriert unterschiedlichste Datentypen in einem Objekt
• erlaubt umfassende Datenbankabfragen mit XQL aber auch SQL für strukturierte Daten
• unterstützt Mehrsprachigkeit und den Unicode-Standard
•
•
•
•
•
unterstützt das relationale Format durch eine SQL-Engine
ist datenunabhängig durch offene Standards wie XML, HTTP, TCP/IP und ODBC
greift auf beliebige existierende Datenquellen (RDBMS, Office-Systeme usw.) zu (X-Node)
ermöglicht Datenaustausch zwischen Unternehmen auf der Basis von XML-Dokumenten
wurde von Grund auf für Internet-Anwendungen entwickelt
Tamino besteht aus 2 Komponenten: Tamino Server Edition für die eigentliche Datenhaltung
und Tamino Developer Edition für die Anbindung an Anwendungen, die dem Tamino
Information Server nutzen.
4.2.2 Architektur
Im Folgenden werden die einzelnen Komponente der Architektur von Tamino erklärt.
•
X-Machine
Die X-Machine ist das zentrale Element von Tamino. Sie ist ein DBMS für XMLDokumente. XML-Dokumente werden in der Tamino-eigenen XML-Datenbank
abgespeichert. Es besteht jedoch auch die Möglichkeit, Daten extern zu speichern. Die
zugehörigen Metadaten werden im Data Map, dem Repository von Tamino gespeichert. Die
X-Machine beinhaltet den XML-Parser, den XQL Query Interpreter, den Object Processor,
den Object Composer und die Utilities (Dienstprogramme). Der Object Processor ist für die
Verteilung der Daten auf die XML-Datenbank, die relationale Datenbank oder über die XNodes auf eine externe Datenquelle zuständig. Der Object Composer hingegen ist dafür
zuständig, die Dokumente aus den einzelnen Quellen zusammenzufügen.
•
SQL-Engine
Die SQL-Engine verwaltet die relationalen Tabellen in der Datenbank und führt SQLAbfragen durch.
•
Tamino Manager
Mit dem Tamino Manager können mittels einer grafischen Oberfläche alle nötigen
administrativen Aufgaben erledigt werden.
•
Tamino Server Extensions
Dank der Tamino Server Extensions kann Tamino um zusätzliche Funktionalität erweitert
werden. Die sogenannten Plugins können in C oder C++ programmiert werden.
5. Zusammenfassung
Die beide Produkte haben verschiedene Architekturen. Trotzdem findet man gewisse Gemeinsamkeiten, welche für ein XML-DBMS entscheidend sind. Im Allgemein erfüllen sie die oben
gestellten Anforderungen
• Kerndienste
XML-Parser
XQL
XSL-Interpreter
•
Datenbank
XML-Dokumente und XSL-Dokumente in Datenbank verwaltet.
•
Verwaltungsdienste
Benutzermanagement
Zugriffsrechtskonfiguration
Hauptspeicherkonfiguration
•
Schnittstellen zu externen Datenquellen
SQL-Datenbanken
RDBMS
•
Extensions
Plugins
Zusatzprogramme
Info
[1] http://www-4.ibm.com/software/data/db2/extenders/xmlext.html
[2] http://www.bluestone.com/SaISAPI.dll/SaServletEngine.class/products/dynamic.jsp?pid=118
[3] http://www.softwareag.com/tamino/
[4] http://www.exceloncorp.com/products/excelon.html
[5] http://www.x-hive.com/
[6] http://www.openlinksw.com/virtuoso/
[7] http://www.4suite.org/4SuiteIndex.html
[8] http://www.birdstep.com
Literaturverzeichnis:
[ROBOU1] http://www.rpbourret.com/xml/XMLDatabaseProds.htm
[ROBOU2] http://www.rpbourret.com/xml/XMLAndDatabases.htm
Herunterladen