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