Tamino - XML Datenbank für e-Business Lösungen XML - Neue Wege des Datenaustausches XML ist eines der Themen mit überragender Markterwartung in der IT. Ob als Datenaustauschformat, als Schnittstellenbeschreibungssprache, als Kommunikationsprotokoll oder für die Verlinkung von Content, die Einsatzbereiche von XML sind sehr vielschichtig. Als ein weiteres Einsatzgebiet für XML werden seit einiger Zeit XML-Datenbanken diskutiert, die es ermöglichen, XML-Dokumente in persistenten Speichermedien abzulegen. Auf der einen Seite sind es die klassischen Datenbankanbieter, die über Erweiterungen (Extensions) XML-Funktionalität ihrer Datenbanken hinzufügen, auf der anderen Seite versuchen Anbieter eigene XML-Datenbanken mit SQL-Gateways am Markt zu positionieren. Relationale Datenbankmanagementsysteme (RDBMS) haben beim Speichern von XMLObjekten Nachteile, da das auf Tabellen basierende Datenmodell für die hierarchische, komplex ver-schachtelte Baumstruktur von DOM (Document Object Model)-Bäumen nicht 1 geeignet ist. Ein RDBMS ist gezwungen, diese XML-Objekte in mehrere Tabellen und Spalten zu separieren (bzw. das komplette Dokument als eigenen Datentyp „als Ganzes“ abzuspeichern). Mit Tamino („Transaction Architecture for the Management of Internet Objects“) präsentiert die Software AG im Wettbewerb zu den Anbietern mit XML-Erweiterungen einen Datenbankserver, der vollständig auf XML basiert. Im Rahmen der Innovationssichtung wurde dieses Produkt über einen Zeitraum von vier Wochen vom F&E-Bereich auf Einsatztauglichkeit hin evaluiert. Tamino - Managing XML Objects Die Anbindung von Tamino an das Internet/ Internet ist über marktübliche Web Server möglich (beispielsweise Apache). Die Speicherung der Daten erfolgt im reinen XMLFormat. Integrierte Schnittstellen ermöglichen den Zugriff auf externe Datenquellen, wie z.B. relationale und objektorientierte Datenbanken sowie auf Office Systeme mit OLE DB. X-Machine Technologie Zentraler Bestandteil des Tamino Information Servers ist die X-Machine. Sie stellt den XML-Kernel von Tamino dar. Eingehende XML-Objekte können damit direkt im native XML-Format gespeichert werden, ohne vorher in ein anderes Format konvertiert werden zu müssen. Die X-Machine kann sowohl strukturierte als auch unstrukturierte Daten (z.B. Audio, Video) verarbeiten. Über die integrierte X-Node Schnittstelle lassen sich zusätzlich externe Datenquellen in Tamino einbinden. Die Daten können in dem bestehenden Datenbanksystemen verbleiben und gleichzeitig via ODBC, JDBC oder OLE DB Teil der Tamino XML-Objekte sein. Data Mapping Der Speicherort von eingehenden Objekten wird durch die integrierte „Data Map“ bestimmt und hängt von der DTD (Dokument Type Definition) des Objektes ab. Hybrides Mapping ermöglicht die Speicherung von Objekten teils in internen (native), teils aber auch 2 in externen Datenspeichern. Umgekehrt steuert die Data Map beim Abrufen der Objekte auch den Datenfluss, der aus mehreren Datenquellen stammen kann. Tamino – In der Praxis Nach der konzeptionellen Betrachtung soll nun vorgestellt werden, wie Tamino in der Praxis eingesetzt wird. Wie funktioniert beispielsweise das Speichern von XMLDokumenten, wie das Selektieren von XML-Nodes aus abgelegten Dokumenten heraus? Schreibende Zugriffe Das Äquivalent zur Anlage einer Datenbank in einem RDBMS ist die Definition einer Collection in Tamino (die selbst wiederum Teil einer „Tamino-Datenbank“ ist). Eine Collection kann wiederum mehrere Schemas enthalten (die als Gegenstück zu einer Tabelle in einem RDBMS verstanden werden können). Die Schemabeschreibung und –datentypen liegen wiederum im XML-Format vor und werden in einer eigenen „Grammatik“ definiert. Ausgangspunkt für den Schreibzugriff ist die DTD, welche die Struktur eines Dokumentes vorgibt („Grammatik“). Diese DTD wird in einen sogenannten Schema Editor eingelesen, der ein automatisches Mapping der DTD in das „Schema-Format“ der Datenbank vornimmt (der Anwender hat zusätzlich die Möglichkeit, das Schema unabhängig von der DTD im Editor zu erfassen). Der Editor erlaubt beispielsweise das Festlegen von Attributsbeschreibungen wie Multiplizität, Default-Values, etc. Wurden alle Änderungen im Schema durchgeführt kann es in die Collection übernommen werden. Für den Schreibzugriff werden zwei Möglichkeiten angeboten: - Eingabe von Daten über das Interactive Interface (entspricht einem SQL-Gateway mit GUI). - Eingabe von Daten über die API-Schnittstelle (beispielsweise in Java). Nach Ausführung der Statements wird ein Return-Code von der Datenbank im XMLFormat zurückgegeben. Lesen von Dokumenten Auch für das Selektieren von Informationen aus den Dokumenten werden zwei Möglichkeiten angeboten: - Selektion über das Interactive Interface - Selektion über die API. 3 Der Zugriff auf die XML-Datenbestände über die API wird über ein HTTP-Interface abgebildet. Über einen Web-Server-Zugriff gemäß der GET-Methode werden Requests an die DB-Engine gestellt. Die DB-Engine gibt einen Return-Code und im Erfolgsfalle die gelieferten Daten in Form eines XML-Dokumentes zurück (die Verfahrensweise ist beispielsweise mit dem Produkt Cocoon von der Apache Group vergleichbar). Der von der Datenbank gesendete XML-Datenstrom kann dann über eine XSLT-Engine mit einer XSLBeschreibung in ein Zielformat überführt werden – beispielsweise ein Präsentationsformat (HTML, PDF) oder ein applikationsspezifisches Zielformat in XML. Der Zugriff über das HTTP-Gateway ist aktuell die einzigste Möglichkeit, dynamisch Datenbestände zu selektieren, eventuell wird zukünftig eine JDBC- bzw. ODBC- Implementierung angeboten. Anwendungsgebiete: Tamino wird vom Anbieter nicht als direkter Wettbewerber zu relationalen Datenbanken positioniert, sondern in Ergänzung zu den bereits etablierten Produkten von IBM, Oracle oder MS. Überlegungen für den Einsatz eines solchen Tools ergeben sich aus der Projektsituation: Liegt ein bestehendes Datenmodell gemäß 3NF vor, so wird für die Datenhaltung in aller Regel auch ein RDBMS das bevorzugte System sein (dies trifft ebenfalls zu, wenn Kriterien wie Sicherheit oder der Reifegrad der Technologie eine sehr wichtige Rolle spielen). Kann die Business-Logik der Applikation in Form von XML-Dokumenten dargestellt werden, ist die Darstellung der Datenelemente der Applikation in hierachischer Form geeignet und ist die Komplexität der Anwendung überschaubar, so kann der Einsatz einer XML-Datenbank eine interessante Alternative zum Einsatz einer RDBMS sein, da auf das Mapping der Dokumente in eine relationale Struktur und umgekehrt verzichtet werden kann. Andreas Rinner PASS Consulting Group / Bereich F&E 4