• No results found

Festlegung des Modells

In document Datenaustausch mit XML (Page 33-37)

In diesem Abschnitt soll nun festgelegt werden wie die beiden Komponenten genau implementiert werden. Dabei wird aus den vorangegangenen möglichen Varianten eine ausgewählt und mit allen Details beschrieben, damit sich die Implementation auf dieses Modell stützen kann. Das Modell wird in zwei Komponenten gegliedert die jetzt genauer untersucht werden.

4.3.1 Der Konfigurator

Der Konfigurator stellt die Benutzerschnittstelle für die Hauptaufgabe der Benutzer (Mappings vorzu-nehmen) dar und muss sich deshalb um die Erstellung und Speicherung der Projektdaten kümmern.

Die Projektdaten werden in einer XML Datei gesichert welche alle zum Projekt gehörenden Informati-onen speichert. Dies ist der Name des Projekts und das von diesem Projekt benutzte Mappingmodul.

Zusätzlich werden hier die Daten der verschiedenen Datenbankverbindungen und alle benötigten XML

Dateien (Schemas) gespeichert. Die einzelnen Module müssen natürlich ihre Daten (vom Benutzer

generierte Mappingaufgaben) auch speichern können. Diese Daten werden in der Konfigurationsdatei

4 Erstellung eines Modells

als vierter Punkt – abhängig vom verwendeten Mappingmodul - gespeichert. In einem XML Schema ist dies das Element «Mapping» welches eine Auswahl der möglichen Module zulässt. Abbildung 18 zeigt das XML Schema einer Projektkonfiguration in der Baumansicht ohne aufgeklapptes «Mapping»-Element und Abbildung 19 zeigt ein Beispieldokument mit den enthaltenen Informationen.

Abbildung 18 : xmlizer.project.config.xsd (Baum, kein Mapping) [XMLSPY 01]

Solche Informationen wie in Abbildung 19 werden vom Konfigurator erzeugt, gelesen und natürlich

stellt er eine Möglichkeit zur Verfügung diese neu erzeugten Daten in einer Datei zu speichern. Mit

Hilfe dieser Daten kann dann das gewählte Modul auf die Datenbanken zugreifen und die XML

Datei-en öffnDatei-en und bearbeitDatei-en. Um ein neues Projekt zu erzeugDatei-en stellt der Konfigurator einDatei-en Dialog

be-reit, der diese Daten abfragt. Dabei ist zu beachten, dass jedes Projekt mindestens eine

Datenbank-verbindung benötigt. Um den Modulen die Arbeit zu vereinfachen, testet der Konfigurator jede

Datenbankverbindung auf Konnektivität und jede XML Datei auf ihre Richtigkeit (mindestens

«well-formed»).

4 Erstellung eines Modells

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE xmlizerprojectconfig SYSTEM "xmlizer.project.config.dtd">

<xmlizerprojectconfig>

<initialsetup>

<inititem key="name">testproject</inititem>

<inititem key="module">Simple DB Export</inititem >

</initialsetup>

<databasesetup>

<dbitem >

<name>someconnectionname</name>

<driver>org.gjt.mm.mysql.Driver </driver>

<url>jdbc:mysql://localhost:3306/xml</url>

<timeout>20</timeout>

<username>root</username>

<password>20:30:71:88:</password>

</dbitem>

</databasesetup>

<schemasetup>

<xmlitem>

<name>somefilename</name>

<file>somefile.xml</file>

</xmlitem>

</schemasetup>

</xmlizerprojectconfig>

Abbildung 19 : Beispiel einer Konfigurationsdatei ohne Mappinginformationen Ist alles korrekt startet der Konfigurator das Modul welches dann die eigentliche Mappingaufgabe er-ledigt und mit Hilfe der Konfigurationsinformationen sofort mit den Datenbanken und den XML Dateien arbeiten kann.

4.3.2 Die Serverkomponente

Die Serverkomponente ist im Grunde genommen ein auf die speziellen Bedürfnisse angepasster Webserver. Sie erledigt die in den Konfigurationsdateien gespeicherten Mappingaufgaben und liefert die Ergebnisse nach einer Anfrage aus. Um den Server zu steuern wird die Kommandozeile benutzt, da diese alle Anforderungen erfüllt und die einfachste Architektur darstellt (es wird keinen dritte Kom-ponente benötigt). Um an die Daten heranzukommen ist die genaue Kenntnis der URL erforderlich.

Um dies zu vereinfachen wird ein Web-Frontend implementiert, welches die angebotenen Projekte auflistet und einfach mit Hilfe eines Webbrowsers navigiert werden kann. Die Serverkomponente wird so implementiert, dass sie verschiedene Mappingaufgaben parallel verwalten und verarbeiten kann.

Es können alternativ auch verschiedene Server auf verschiedenen Ports arbeiten, wobei jedem Server ein anderes (oder auch das gleiche) Projektverzeichnis zugeteilt werden kann.

4.3.3 Die Mappingmodule

Als erstes Modul wird das in Abschnitt 3.4.1 erläuterte Tabellen-basierte Mapping implementiert. Es ist die einfachste Variante und benutzt nur Datenbankverbindungen, aber keine Manipulation von XML Dateien. Dieses Modul wird im folgenden als «Simple DB Export» Modul bezeichnet, was auch gleich

Ist mit einer DTD verknüpft, wird beim einlesen validiert.

Beispiel: DB Konfiguration, kann mehrmals vorkommen.

Beispiel: XML Datei

4 Erstellung eines Modells

den Zweck dieses Moduls verdeutlicht. Der Benutzer hat keinen grossen Einfluss auf das Format der Ausgabe und kann eventuell nur einige Variablen beeinflussen oder aus verschiedenen vorher festge-legten Outputformaten aussuchen. Da dieses Modul eher als Implementationstest gedacht ist und nicht für den produktiven Einsatz prädestiniert ist, wird es nur in eine Richtung implementiert: eine Datenbank als Input und XML aus Outputformat.

Das zweite Modul wird mit dem in Abschnitt 3.4.2 erklärten Vorlagen-gesteuerten Mapping implemen-tiert und ermöglicht es dem Benutzer Daten aus verschiedenen Datenbanken in ein selbst definiertes XML Format zu bringen. Es ersetzt somit auch gleich das erste Modul, da mit diesem Funktionsum-fang auch einfach das Exportformat des ersten Moduls «nachgebaut» werden kann. Aber auch dieses Modul beschränkt sich auf den Export aus einer Datenbank und greift nur lesend auf diese zu. Eine gelungene Implementation dieses Moduls genügt dann auch den in Abschnitt 1.2 und 4.1 definierten Minimalanforderungen für dieses Projekt. Dieses Modul trägt den Namen «Database to XML».

Ein drittes Modul implementiert dann eventuell das in Abschnitt 3.4.3 erläuterte Objekt-relationale

Mapping, welches dann einer Generalisierung aller möglichen Mappings gleichkommt und es

ermögli-chen würde Daten in beide Richtungen transparent auszutausermögli-chen. Für eine allfällige Implementation

dieses Moduls befindet sich der Autor noch immer auf der Suche nach einer (freien) Bibliothek, da der

Programmieraufwand ansonsten sehr hoch ist, da es sich um ein sehr komplexes Themengebiet

han-delt.

5 Auswahl der Software / Programmiersprache

5 Auswahl der Software / Programmiersprache

In document Datenaustausch mit XML (Page 33-37)

Related documents