Informationscontainer
Was ist ein Container?
Informationscontainer stellen das Kernkonzept hinter SAGA.M31 - Galaxy - dar. Sie bieten eine einheitliche, konsistente und definierte Schnittstelle für die Integration von Daten in beliebige Anwendungen.
Ein Container wird definiert durch seine Ein- und Ausgabefelder, die die Parameter für eine Abfrage, sowie deren Rückgabewert darstellen. Container selbst definieren hierbei lediglich, die Schnittstelle, nicht die eigentliche Quelle für die Daten.
Um einen Container nun mit Daten zu bestücken, werden seine Felder mit denen eines beliebigen Connectoren verknüpft. Durch diese Abstraktion bietet der Container einen flexiblen Datenzugriff, ohne die Notwendigkeit, die eigentliche Quelle der Daten kennen zu müssen. Bei einer Migration müssen z.B. lediglich die Felder des Containers mit anderen Connectorfeldern verknüpft werden. Da sich die Schnittstelle nach außen hin nicht verändert, müssen die Applikationen, die auf Galaxy aufsetzten, nicht verändert werden.
SAGA.M31 -Galaxy - Informationscontainer können mit Hilfe des Galaxy wui (Web User Interface) komfortabel erstellt, konfiguriert und gewartet werden.
Container sind mit Hilfe einer WSDL Definition beschrieben und als Web Service bereitgestellt, dies ermöglicht die einfache Integratration in beliebige Programmiersprachen und Anwendungen.
Bei der Implementierung der Web Services Schnittstelle wurde besonderen Wert auf Kompatibilität gelegt, so wurde beispielsweise der Document/Literal - Style gewählt, um die Integration in verschiedene Frameworks wie z.B. Microsoft's .NET zu unterstützen.
Erstellen eines Containers
Um einen Container zu erstellen muss zunächst der Link "Create Container" aus dem Menü ausgewählt werden. Der Container wird mit Hilfe eines 4-Schritte Verfahrens erstellt, das hier beschrieben wird.
Step 1 - Basisdaten
Zu den Basisdaten eines Containers zählen:
| Parameter | Beschreibung |
|---|---|
| Name | Der Name des Containers |
| Handle | Ein sprechender Name. Dieser wird beim Aufruf über die verschiedenen Service-Schnittstellen von Galaxy verwendet, um den Zielcontainer für die Abfrage zu definieren. |
| Description | Ein Textfeld in dem die Funktion des Container beschrieben werden kann. |
| WSDL Public available | Ist diese Checkbox aktiviert, so ist die WSDL, die diesen Container beschreibt, über eine HTTP Anfrage verfügbar. Dies hat den Vorteil, dass sie ohne Umwege in die meisten Toolkits für Webservices eingebunden werden kann. Hierdurch wird allerdings die Schnittstelle des Containers öffentlich bekannt gegeben, was unter Umständen aus Gründen der Sicherheit nicht erwünscht ist. Ist die Checkbox nicht aktiviert, muss die WSDL über das Benutzerinterface von Galaxy heruntergeladen, lokal gespeichert und dann eingebunden werden. |
Step 2 - Ausgabefelder definieren
In diesem Schritt müssen die Felder definiert werden, die der Container nach außen hin zur Verfügung stellt. Hierzu wird eine Liste aller verfügbaren Felder der verschiedenen Connectoren angezeigt, die über den "Add"-Link als Containerfeld verfügbar gemacht werden.
Um ein Feld einzufügen muss zunächst in der Auswahlliste "Fields in Connector" der Connector ausgewählt werden, der dass gewünschte Feld bereitstellt. Nach der Auswahl werden zunächst alle Felder dieses Connectoren in der Tabelle zur Auswahl angeboten
Mit Hilfe der Links gezeigten Liste der im Connector definierten Abfragen kann die Liste entsprechend der Auswahl gefiltert werden, um die Suche nach einem bestimmten Feld zu erleichtern.
Ist das Connectorenfeld gefunden, wird es über den "Add"-Link zu den Containerfeldern (untere Tabelle) hinzugefügt. Für jedes auf diese Weise hinzugefügte Feld kann dort noch ein Name definiert werden, unter dem das Containerfeld später ausgeliefert wird.
In der Liste der Containerfelder gibt es zu jedem Feld eine "Remap" Funktion, die über den gleichnamigen Link angesprochen wird. Sie dient der Neuzuordnung eines Feldes zu einem anderen Connetorenfeld, ohne hierbei die Schnittstelle des Containers selbst zu verändern. Ein Auf diese Weise ausgewähltes Containerfeld wird farbig markiert, und der "Add"-Link der Connectorfelder ersetzt dass markierte Feld anstatt es neu Hinzuzufügen. Ein erneuter Klick auf den "Remap"-Link hebt die farbige Markierung wieder auf.
Ein Klick auf den Button "Next Step" führt zur Zuordnung der benötigten Eingabefelder.
Step 3 - Benötigte Eingabefelder definieren
In diese Abschnitt werden zunächst alle Connectorenfelder angezeigt, die in Abhängigkeit zu den ausgewählten Ausgabefeldern stehen. Auch diese müssen wiederum Containerfelden zugeordnet werden. Hierzu steht der Link "Add as new" zur Verfügung, der wie im vorherigen Schritt ein neues Containerfeld definiert, diesmal ein Eingabefeld.
Jedes Connectoreingabefeld, das in Abhängikeit zu einem der gewählten Ausgabefelder steht, muss auf diese Weise zugeordnet werden.
Einmal definierte Eingabefelder können, wie die Ausgabefelder im letzten Schritt, mit Hilfe der "Remap"-Funktion neuen Connectoreingabefeldern zugeordent werden.
Step 4 - Zusammenfassung/Speichern des Containers
Dieser Abschnitt zeigt nochmals die erstellte Konfiguration als Zusammenfassung an. Sind hier alle Angaben korrekt, so kann der Container mit einem Klick auf "Save Container" gespeichert werden. Von diesem Zeitpunkt an steht er zur Ausführung bereit.
Ein neu erstellter Container sollte zunächst mit Hilfe eines "Sample Run's" getestet werden um sicher zu gehen, dass der Container die korrekten Daten liefert. Dies wird im nächsten Abschnitt beschrieben.
Testen des Containers
In der Containersicht (erreichbar über den Menülink "Manage Containers") steht für jeden verfügbaren Container ein Link für den "Sample Run" zur Verfügung. Ein Klick darauf führt zur Testseite.
Dort werden zunächst alle Eingabefelder aufgezählt, die für den Containerlauf erforderlich sind. Für jedes Feld wird ein Textfeld bereitgestellt, in dass ein Wert für den Probelauf eingegeben werden muss.
Ein Klick auf den "Fire!"-Button startet die Abfrage und die zurückgelieferten Felder werden in einer HTML-Tabelle dargestellt.
Um sich die Strukturen für die XML-Anfrage und die XML-Antwort für diesen Container anzuschauen, muss die Checkbox "Show XML Request/Response" ausgewählt werden. Nach der Ausführung werden die Strukturen unterhalb der zurückgelieferten Containerfelder dargestellt.
Um Fehler, die während der Ausführung auftreten analysieren zu können, gibt es noch die Checkbox "Show the Trace". Ist diese aktiviert, so werden detaillierte Informationen über die Verarbeitung innerhalb der Connectoren angezeigt. Im Falle eines SQL Connectoren z.B. welche SQL Statements konkret abgesetzt werden, sowie die zurückgelieferten Daten. Das Format der Ausgabe variiert zwischen den verschiedenen Connectortypen.


