Schnelle Gateway-Programmierung mit Talend

Eine äußerst beliebte Redewendung beim Blick auf die IT-Landschaft von Großunternehmen lautet »historisch gewachsen«.

Als Außenstehender sieht man eine riesige Tapete mit lauter kleinen Kästchen (=Systemen), die munter miteinander durch bunte Striche verbunden sind. Nun mag man dazu stehen wie man will – solche heterogenen Landschaften sind einfach die Realität.

Die Einführung neuer Funktionen erfolgt üblicherweise mittels eines weiteren »Kästchens«, das mit den bereits vorhandenen zu »verdrahten« ist. Gern wird dabei geschaut, ob es für die neue Funktionalität  am Markt eine fertige “Standard”-Lösung gibt. Um dieses Fertigbauteil aber in den eigenen Zoo zu integrieren, bedarf es meist spezifischer Adapter. Diese Koppelelemente, auch Gateways genannt, setzen technisch und fachlich Schnittstellenprotokolle ineinander um, damit die Teilsysteme zusammenwirken können.

Im einfachsten Fall erzeugt System A zyklisch eine CSV-Datei, deren Inhalt nachfolgend zeilenweise per REST-Request an einen Webservice des Systems B übergeben wird. Eventuell sind in diesem Zuge noch Werte eines Attributes umzuschlüsseln, weil System A und B abweichende Produktnomenklaturen aufweisen. Klassischerweise folgt nun der Auftrag zur Entwicklung eines solchen Adapters, wobei ganz selbstverständlich der im Hause übliche Technologie-Stack (z.B. Java Servlets) benutzt wird. Es entsteht in endlicher Zeit die spezialisierte Anwendung und man hat ein Stück proprietäre Software mehr im Haus.

Wir haben die Erfahrung gemacht, dass auch für solche Zwecke ganz hervorragende Standardwerkzeuge am Markt verfügbar sind, die schnell und vor allem sicher zum Ziel führen. Diese liegen nicht sofort im Fokus, weil sie primär »nur« von den Kollegen aus der Business Intelligence -Abteilung verwendet werden und nicht zum üblichen Repertoire des klassischen Applikationsentwicklers gehören. Gemeint sind ETL-Tools, die üblicherweise Data Warehouses mit Daten befüllen. Neben kostenpflichtigen Ausgaben großer Anbieter haben sich insbesondere auch Open Source Werkzeuge gut etabliert.

Für unsere Kunden haben wir mehrere Schnittstellenprogramme im oben geschilderten Sinne mit dem freien Werkzeug »Talend Open Studio« erstellt. Dieses ermöglicht einen weitgehend grafischen Entwurf der Gateway-Logik. Gängige technische Schnittstellen wie Dateien verschiedener Formate, Webservices als REST oder SOAP, Datenbankanbindungen etc. sind einfach per Mausklick anbindbar und müssen nur noch konfiguriert werden. Dies steigert die Produktivität und senkt zugleich die Gefahren hinsichtlich Implementierungsfehlern. Falls eine Abbildungsvorschrift so komplex ist, dass die Talend-Bordmittel nicht ausreichen, können spezifische Java-Klassen als Sonderlösung erstellt und in den Talend-Job eingebunden werden. Somit ist es im wahrsten Sinne des Wortes eine “offene” Lösung.

Aus dem so gewonnenen Gateway-Entwurf wird nachfolgend Java-Quelltext generiert, welcher auf Wunsch natürlich auch sofort kompiliert werden kann. Der für den Betrieb zuständige Bereich erhält letztlich einfach ein JAR-Package, welches sich mit einer fast überall verfügbaren Java Virtual Machine ohne weitere Installationen und Lizenzen ausführen lässt.

Ein Beispiel aus unserer Praxis

Ein mittelständischer Kunde ist im Dienstleistungsgeschäft aktiv. Die in diesem Kontext anfallenden auftragsbezogenen Informationen werden in einem klassischen ERP-System verwaltet und hieraus beispielsweise Angebote und Rechnungen erstellt. Die von den Mitarbeitern erbrachten Dienstleistungen wurden bisher per Stundenzettel in Papierform der Zentrale gemeldet und dort manuell im ERP-System erfasst.

Zur Senkung des manuellen Aufwands sowie zur Steigerung der Datenqualität wurde seitens des Kunden ein elektronisches Zeiterfassungssystem angeschafft, welches aber leider keine Kompatibilität zum ERP-System aufwies.

Wir haben innerhalb eines Tages mittels Talend ein entsprechendes Gateway entworfen, welches Stammdaten aus dem ERP-System ausliest und nach entsprechender Konvertierung in das Zeiterfassungssystem überführt, selbstverständlich inklusive der erforderlichen Änderungslogik für bereits im Vorfeld übernommene Daten. In gleicher Weise fließen die nun von den Mitarbeitern dezentral über die webbasierte Zeiterfassung hinterlegten Tätigkeitsnachweise in das ERP-System zurück.

Zusammen mit dem daraus resultierenden JAR-Package liefert Talend die erforderlichen Windows-Batch- und alternativ UNIX-Shell-Skripte, die den einfachen automatisierten Betrieb über die Betriebsystem-Scheduler ermöglichen.

Unser Job läuft auf diese Weise im UNIX-cron einmal pro Nacht und verrichtet still und wartungsfrei seinen Dienst.