Datenzugriff bedeutet für einen Entwickler immer sich mit einer speziellen Technologie auseinanderzusetzen. Seinen es Datenbanken, ERM-Systeme, Verzeichnis oder eine sonstige Datenquelle, jede besitzt ihren spezifisches Zugriffsmechanismus.
SAGA.M31 - Galaxy hat es sich zu Ziel gesetzt, diesen Mechanismus zu standardisieren, und eine einheitliche Schnittstelle zu schaffen, um auf Daten aus beliebigen Quellen zuzugreifen.
Zusätzliche Flexibilität bietet die Option, Datenquellen für einzelne Felder im Hintergrund auszutauschen, ohne dass dies Auswirkungen auf die Applikationen hat, die ihre Daten über Galaxy beziehen. Bei Migrationen auf andere Systeme muss also lediglich die Galaxy-Konfiguration angepasst werden und nicht wie bisher jede Anwendung, die Daten aus dem System verwendet hat.
VorraussetzungenSAGA.M31 - Galaxy ist eine Webanwendung und benötigt einen Java-Applicationserver als Plattform, der mindestens mit der Java Version 1.4.2 betrieben wird.
Getestet wurde die Installation auf der Open-Source Implementierung Jarkarta Tomcat(ab Version 5.0). Diese kann kostenlos unter: http://jakarta.apache.org/tomcat/index.html herunter geladen werden.
Alternativ kann dass kommerzielle Produkt WebSphere von IBM (ab Version 5.1) verwendet werden.
Darüber hinaus wird zum Speichern der Konfiguration Zugriff MySQL-Datenbank benötigt, auch hier gibt es eine kostenlose Version zum Download unter http://www.mysql.com
Download und InstallationDas Installationspaket kann unter http://galaxy.sagadc.com herunter geladen werden. Es beinhaltet die eigentliche Web-Applikation sowie eine Anleitung zur Installation und der Konfiguration der benötigten Datenbankstruktur.
Erster LoginUm die Installation nun zu überprüfen, kann nun die folgende URL mit einem Browser ihrer Wahl aufgerufen werden:
http://[Host]:[Port]/Galaxy/wui
(Host und Port sind gegen die konkreten Werte zu ersetzen)
Es sollte sich nun die Loginseite von Galaxy öffnen, die den User auffordert, sich zu authentifizieren. Bei der Installation wird ein Standartbenutzer angelegt, die Zugangsdaten sind:
Username: admin
Passwort: galaxy
Nach Eingabe der Daten und klicken des Login-Buttons öffnet sich die Einstiegsseite von Galaxy.
Einen Connector erstellenEiner der Hauptkomponenten von SAGA.M31 - Galaxy sind die so genannten Connectoren. Sie sind die Datenlieferanten und bieten eine definierte Liste an Ein-und Ausgabefeldern, die dann über Container der Außenwelt zur Verfügung gestellt werden.
Connectoren gibt es in verschiedenen Ausführungen, jede mit dem Zweck, Daten aus einer spezifischen Datenquelle zu lesen (zukünftig auch zu schreiben).
In der Basisversion von Galaxy stehen drei Arten von Connectoren zur Verfügung:
Connectoren können in verschiedenen Instanzen existieren. So können z.B. zwei Instanzen des SQL-Connectors aus zwei verschiedenen Datenbanken unterschiedliche Daten auslesen. Die beiden Instanzen operieren so vollkommen unabhängig.
Um nun eine solchen Connector zu erstellen, muss im Menü der Startseite der Punkt "Create Connector" angewählt werden.
Es zeigt sich nun eine Auswahl an Connectorentypen, die erstellt werden können:
Nach Auswahl des gewünschten Typs und Betätigung des Go-Buttons werden Felder zum konfigurieren dieser Instanz angezeigt.
Beim Beispiel LDAP wird hier ein LDAP-Server sowie ein Port benötigt, gegen den die Verbindung aufgebaut werden soll:
Optional können noch Username und Passwort eingegeben werden. Sind diese Werte spezifiziert, so werden sie zum binden an den Server herangezogen, andernfalls wird versucht, ein anonymes Binden durchzuführen.
Über den "Add configuration"-Button kann eine weitere Konfiguration zu diesem Connector erstellt werden. Sollte der Verbindungsaufbau zur ersten nicht zustande kommen, so werden automatisch alle weiteren Konfigurationen durchlaufen, bis eine erfolgreiche Verbindung besteht, oder keine weiteren Konfigurationen definiert sind.
Hinweis: Diese Funktionalität ist als Ausweichmechanismus im Fehlerfall gedacht, und macht nur Sinn, wenn hinter der zweiten Konfiguration die gleichen Daten zur Verfügung stehen.
Sind alle benötigten Werte eingetragen, so kann der Connector über den Save-Button gespeichert werden.
Konfiguration einer AnfrageUm nun eine Anfrage gegen den gerade konfigurierten Connector durchzuführen, muss diese zunächst Konfiguriert werden. Nach Anwählen des Menüpunktes "Configuration" -> "LDAP Connector" öffnet sich eine Tabelle mit allen bereits konfigurierten Anfragen. (Bei einer Neuinstallation ist diese zunächst leer)Über den Verweis "Create new Request" kann nun eine neue Anfrage erstellt werden, dies wird in einem 3 Schritte Verfahren durchgeführt:
Schritt 1In Schritt 1 werden die Parameter für die Anfrage spezifiziert:
Die folgenden können Parameter hierbei bestückt werden:
| Feld | Bedeutung |
|---|---|
| Name | Ein frei vergebener Name für diesen Container |
| Target connector | Die Connector-Instanz für diese Anfrage |
| Base DN | Der Base DN für die Anfrage |
| Filter | Der Filter für die Anfrage |
| Provide as Table | Definiert, ob die Daten als Tabelle ausgeliefert werden sollen. |
| Error on empty result | Definiert, ob die Anfrage bei leerem Resultat einen Fehler generieren soll. |
Im Filter-Feld können nun Variablen definiert werden, die zur Laufzeit der Anfrage ersetzt werden. Um eine Variable zu deklarieren, muss der Name in zwei "#"-Zeichen eingefasst sein. (z.B. #uid# oder #kundennummer#, siehe Screenshot)
Die so definierten Variablen können später mit einem Eingabefeld eines Conatiners verknüpft werden, und sind somit für jede Anfrage spezifizierbar.
Beispiel: In einem Verzeichnis stehen Informationen zu Kunden einer Firma. Jeder Kunde hat eine eindeutige Kennnummer, anhand der er identifiziert werden kann. Möchte nun eine Applikation nur einen speziellen dieser Datensätze lesen, so muss bei der XML-Anfrage eine Kundennummer spezifizieren. Bei der internen Verzeichnisabfrage wird nun eine Variable (z.B. #uid#) durch den mitgelieferten Wert ersetzt, wodurch nur der gewünschte Datensatz gefunden wird. Dieser wird nun wieder in XML umgesetzt und zurück an die Applikation gesendet.
Schritt 2Im Schritt 2 werden alle in Schritt 1 definierten Felder nochmals aufgelistet. Darüber hinaus besteht die Möglichkeit, jeweils einen Wert anzugeben.
Mit Hilfe dieser Werte wird die vorher definierte Anfrage durchgeführt, um im Schritt 3 das Resultat zu präsentieren.
Schritt 3Ein weiterer Klick auf den "Next Step"-Button führt zur Verknüpfungsseite. Dort müssen nun die Felder definiert werden, die diese Anfrage bereitstellen soll. Wurden im Schritt 2 Werte für die Eingabefelder definiert, so wird eine Liste der Attribute angezeigt, die bei der Anfrage zurückgeliefert wurden:
Um ein Attribut hinzuzufügen, muss der "Add "-Link betätigt werden. Es erscheint eine neue Zeile in der unteren Tabelle. Die Zeile besteht aus einem Namen unter dem das Feld später intern geführt wird und einem verknüpften LDAP-Attribut das später den Inhalt des Feldes darstellt.
Mit Hilfe des "Add Mapping"-Buttons können auch Felder hinzugefügt werden, die nicht in der Liste aufgeführt sind. Name und gemapptes Attibut müssen dann selbst spezifiziert werden. Auf diese Art können nun beliebig viele Felder definiert werden.
Wurde im ersten Schritt die Option "Provide as Table" ausgewählt, so findet sich auf dieser Seite ein zusätzliches Textfeld, in dem der Name eingegeben werden muss, unter dem die Tabelle später geführt wird. Jedes Attribut wird sich später als Spalte in der Tabelle wieder finden. Wenn die Anfrage also mehrere Ergebnisse liefert, können diese einfach als Tabelle ausgeliefert werden.
Ein Klick auf "Save" speichert nun die Anfrage, sie steht ab diesem Zeitpunkt zur Ausführung bereit.
Erstellen eines ContainersDas Erstellen eines Conainers dient nun dem bereitstellen von Informationen über die XML-Schnittstelle. Er ist als definierte Schnittstelle zu sehen, die nach außen hin nicht verändert, auch wenn die Quelle der Daten für die Felder wechselt.
Ein Container definiert, welche Connectorfelder (diese wurden beim erstellen der Anfrage definiert) gelesen werden sollen und welche Eingabefelder hierfür benötigt werden (z.B. eine Kundennummer).
Um nun einen Container zu erstellen, muss im Menu der Punkt "Create Containers" ausgewählt werden. Dieser führt zu einem Konfigurationsdialog mit vier Schritten.
Schritt 1Im ersten Schritt werden die Grundeinstellungen konfiguriert:
In das Feld "Summary" ist ein frei wählbarer Name einzutragen, unter dem der Container von nun an geführt wird. Der Name sollte kurz und prägnant seinen Sinn widerspiegeln, für eine detaillierte Beschreibung steht das Feld "Description" zur Verfügung.
Es besteht die Möglichkeit, ein Handle anzulegen. Ein Handle ist eine Kurzform des Namens und wird zum ansprechen des Containers verwendet. Soll ein Handle genutzt werden, so muss das Textfeld über den "Add"-Link aktiviert und ein Handelname eingetragen werden.
Um die Web-Services Schnittstelle von Galaxy zu nutzen, ist ein Handle erforderlicht
Ist die Checkbox "WSDL public available" aktiviert ist, kann eine Beschreibung im WSDL-Format über die folgende URL herunter geladen werden:
http://[Host]:[Port]/Galaxy/wsdl/[ContainerHandle].wsdl
(Host, Port und ContainerHandle müssen hierbei durch die ensprechenden Werter ersetzt werden.)
Ist die Veröffentlichung der Schnittstellen unerwünscht, kann die Web-Service Definition alternativ über Link WSDL in der Containerübersicht aus dem Benutzerinterface bezogen werden.
Schritt 2Ein Klick auf den Button "Next Step" führt nun zu Schritt 2, in dem die Ausgabefelder für den Container definiert werden:
In der Auswahlliste "Fields in connector" ist zunächst der gewünschte Connector auszuwählen. Anschießend sind in der Ersten Tabelle alle Felder aufgezeigt, die dieser Connector bereitstellt. Ein Klick auf den "Add"-Link fügt das Feld zu diesem Container hinzu, dies muss nun für alle benötigten Felder durchgeführt werden.
Jedem Feld kann nun noch ein eindeutiger Name in der Spalte "Field Name" vergeben werden, dies dient der einheitlichen Schnittstelle, auch wenn Felder im Hintergrund ersetzt werden, weil z.B. auf ein anderes System migriert wird.
Hinweis: Es können ohne weiteres Felder aus mehreren Connectoren in einem Container zusammengefasst werden, Galaxy kümmert sich um die korrekte Abarbeitung der einzelnen Connectoranfragen.
Schritt 3Ein weiterer Klick auf den "Next Step"-Button führt zu Schritt 3, in dem die Abhängigkeiten aufgelöst werden. Zunächst wird eine Übersicht aller benötigten Inputfelder aufgezeigt.
In diesem Falle wird genau ein Feld benötigt, es ist die Variable, die zu Anfang beim erstellen der Anfrage definiert wurde. Ein Klick auf "Add as new" fügt dieses Feld diesem Container hinzu:
Es kann nun wie auch schon in Schritt 2 ein Name für dieses Eingabefeld definiert werden. In der Standardeinstellung wird der Name der Variable vorgegeben.
Hinweis: Es ist notwendig, alle benötigten Eingabefelder auf diese Weise zu definieren
Schritt 4Der letzte Schritt stellt eine Zusammenfassung des Containers dar:
Ein Klick auf "Save Container" speichert den Container letzten Endes, er ist nun bereit, getestet zu werden.
Test des Containers
Um den Container nun zu Testen, muss zunächst per Manage Containers im Menu die Liste aller definierten Container angezeigt werden:
Ein Klick auf den Link "Sample Run" bei dem erstellten Container führt zur Testseite:
Dort wird nun nach einem Usernamen gefragt, dies entspricht dem Feld, dass bei einer XML Anfrage mitgeliefert werden müsste. Es ist nun eine im Verzeichniss hinterlegter Username einzutragen und der "Fire"-Button zu betätigen.
Wenn vor der Ausführung die Option "Show XML Request/Response" angewählt wird, so werden zusätzlich noch die XML-Strukturen angezeigt, die zum Datenaustausch verwendet werden, dies kann als Vorlage zur Implementierung einer Applikation dienen.
Seit der Version 0.6 Stehen zwei Versionen des XML-Formates zur Verfügung ("V1" oder "V2"), die über eine Auswahliste angezeigt werden können.
Version 1 entspringt den ersten Versionen von Galaxy, Version 2 ist per WSDL beschrieben und entspricht somit den Vorraussetzungen als WebService genutzt zu werden.
Sollte die Anfrage nicht dass gewünschte Ergebnis erzielen, so können mit Hilfe der Option "Show the Trace" detaillierte Informationen zur Ausführung angefragt werden. Hieraus lässt sich in der Regel erkennen, wo der Fehler zu suchen ist.
Nun sollte das Ergebnis des Laufes wie folgt angezeigt werden:
| » Impressum » Haftungsausschluß » AGB » Kontakt » Datenschutz | © 2006, SAGA D.C. GmbH - Alle Rechte vorbehalten ![]() |
|