SAGA D.C. GmbH > SAGA.M31 - Galaxy
 

Schnittstellen

Der XML-Service

Der XML-Service von SAGA.M31 - Galaxy - stellt einen einfachen Zugriffsmechanismus auf einen der definierten Informationscontainer dar.

Mit Hilfe eines HTTP-Post-Requests wird eine in XML formulierte Anfrage an den Galaxyserver abgesetzt, dieser liefert als Antwort die Datenfelder des Containers, ebenfalls als XML-Struktur, zurück. Die Aufrufende Applikation kann die Daten nun beliebig weiterverarbeiten.

Die Strukturen (Abfrage und Antwort) für einen bestimmten Container können mit Hilfe eines Probelaufes (dem Sample Run) angezeigt und entsprechend von einer Anwendung adoptiert werden. Hierbei muss die Checkbox "Show XML Request/Response" aktiviert werden, sowie die Version 1 (V1) der XML-Struktur angewählt werden. Nach einem Klick auf den "Fire!"-Button wird der Container nun ausgeführt und die Strukturen unterhalb des der Ausgabefelder dargestellt.

Jede Anfrage enthält einen Benuzternamen und ein Passwort um sich gegenüber dem Galaxyserver zu authentifizieren, wobei das Passwort nicht im Klartext, sondern als MD5-Checksumme übergeben werden muss.

In der Antwort ist jeweils ein Returncode enthalten, mit dessen Hilfe auf Fehler bei der Ausführung geprüft werden kann. Liefert ein Container einen Returcode größer als 0, so ist der Container nicht oder nicht vollständig durchlaufen worden. In diesem Fall ist Vorsicht bei der Weiterverarbeitung der zurückgegebenen Daten geboten. Im diesem Fall steht eine Fehlermeldung (die ContainerRunMessage ) zur Verfügung, aus der auf die Art des aufgetretenen Fehlers geschlossen werden kann.

Endpunkt für den XML-Service

Der beschriebene HTTP-Post-Request muss hierbei gegen eine spezielle URL abgesetzt werden, die sich wie folgt zusammensetzt:

http[s]://[Hostname]:[Port]/Galaxy/xmlService

Die konkrete URL des Endpunktes kann im Userinterface unter dem Menüpunkt XML via HTTP abgefragt werden.

Die Web Services Schnittstelle

Zusätzlich zur einfachen Variante des XML-Services bietet Galaxy seit der Version 0.6 auch eine Schnittstelle um mit Hilfe eines Web Services auf Container zuzugreifen.

Zu diesem Zweck ist jeder Container mit Hilfe einer WSDL-Definition beschrieben und über einen SOAP Aufruf über HTTP ansprechbar.

Für die meisten Sprachen existieren mittlerweile Werkzeuge um Web Services einzubinden, dies schafft die Möglichkeit, Galaxy Container leicht und schnell in Applikationen zu Integrieren.

Bei der Implementierung dieser Schnittstelle wurde besonders auf die Kompatibilität mit diesen Entwicklungswerkzeugen gelegt, so wurde z.B. der Document/Literal Style gewählt, um auch Implementierungen wie Microsoft Office XP Web Services Toolkit 2.0 ohne Probleme zu unterstützen.

Zugiff auf die WSDL-Beschreibungen eines Containers

Galaxy stellt die WDSL's auf zwei verschieden Arten zur Verfügung:

Zugriff per HTTP

Über die URL

http[s]://[Hostname]:[Port]/Galaxy/wsdl/[ContainerHandle].wsdl

kann die Beschreibung herunter geladen werden. Hierzu muss im entsprechenden Container ein Handle angegeben und die Containerdefinition als public available definiert worden sein.

Zugriff über das Userinterface

Alternativ kann die den Link WSDL in der Containerübersicht (Link Manage Containers im Menü) bezogen werden.

Diese Option steht bereit, falls ein offenlegen der WSDL für nicht autorisierte Benuter nicht gewünscht ist.

Benutzung der Web Services Schnittstelle

Die In der WSDL beschriebene SOAP-Anfrage muss an die folgende URL gesendet werden:

http[s]://[Hostname]:[Port]/Galaxy/services/SOAPService

Die konkrete URL ist auch in der WSDL angeführt und wird in der Regel von den Werkzeugen automatisch übernommen.

Die Antwortstrukturen sind ebenfalls in der WSDL beschrieben und entsprechen den im Container definierten Ausgabefeldern.