Zeitgemäße Datenversorgung von Anwendungen mit Talend

Datenlogistik Open

Steffen Lang und Wilhelm Kuhn

LKW-Kolonnen auf den Straßen nerven Autofahrer, laute Güterzüge rauben Anwohnern den Schlaf – Logistikprobleme allerorten! Zum Glück gibt es für die Datenlogistik zwischen Unternehmensanwendungen elegantere Lösungen. Dieser Artikel stellt eine leistungsfähige und kostengünstige Umsetzung dafür auf Basis der Open-Source-Software „Talend Open Studio“ vor.

Moderne Anwendungslandschaften beschränken sich selten auf das Zusammenspiel weniger Systeme. Stattdessen bestehen sie oft aus einem Team von spezialisierten Teilanwendungen, die gemeinsam die verschiedenen Abläufe in Unternehmen unterstützen und automatisieren. Die Ergebnisse dieser Teamarbeit stehen und fallen dabei mit der Zuverlässigkeit, Effizienz und nicht zuletzt der Flexibilität von Abstimmung und Informationsaustausch zwischen den Teilsystemen. Während es in der traditionellen Logistik darum geht, Waren und Güter von einem Ort zum anderen zu transportieren, werden in der „Datenlogistik“ Informationen und Daten zur Versorgung von Anwendungen abgeholt, bei Bedarf modifiziert, transportiert und ausgeliefert. Um dies anschaulicher zu machen, stellen wir uns das System einer Bank vor, mit dem die Kunden Wertpapiere ordern können (Abb. 1):

Der Kunde gibt dazu zunächst an seinem Browser einen Kaufauftrag ein. Dieser wird nach Plausibilitätsprüfungen und weiteren Zwischenstationen an das Kernbankensystem übergeben. Von dort werden Nachrichten zur Ausführung an ein Handelssystem versendet. Dieses antwortet zu einem späteren Zeitpunkt, und bei Erfolg wird die Transaktion im Depot des Kunden eingetragen. Schließlich übermittelt das Kernsystem Daten an ein Output-Management-System, das Belege erzeugt, die an einen externen Druckdienstleister übermittelt und zusätzlich dem Archivsystem übergeben werden.

Abb. 1: Auftragssystem einer Bank

Wer die Datenlogistik durch selbst entwickelten Code abdeckt, verschwendet oft Zeit und Geld. Denn Standardwerkzeuge aus den Feldern MOM (Message Oriented Middleware), MFT (Managed File Transfer) oder ETL (Extract, Transform, Load) kapseln immer wiederkehrende Logistikaufgaben in Komponenten und Domänensprachen. Sie entlasten so die Kernanwendungen von stereotypen Aufgaben und ermöglichen elegante und ökonomische Lösungen. Talend Open Studio ist ein Tool aus der Kategorie ETL und bildet durch eine reichhaltige Auswahl an Komponenten sowie seine gerade für Java-Entwickler leichte Erlernbarkeit eine ausgezeichnete Basis für eine Lösung im Bereich Datenlogistik. Jitterbit [1], CloverETL [2] und Kettle [3] sind ähnliche Produkte, die ebenso für Datenlogistik verwendet werden können. Auf sie wird in diesem Artikel jedoch nicht näher eingegangen.

Anforderungen der Datenlogistik

In der Datenlogistik gibt es typischerweise viele Schnittstellen, an denen Daten zwischen internen und auch externen Anwendungen übermittelt werden müssen. An manchen findet ein synchroner Austausch statt und die empfangenen Informationen werden sofort verarbeitet. Viele Teilanwendungen kommunizieren aber auch asynchron, indem sie Informationen als Dateien, Einträge in Queues oder in Datenbanksystemen bereitstellen und abholen. In diesem Fall sind Bereitstellung, Abholung, Verarbeitung und Rückmeldung zeitversetzt. Ein Vorteil dieses asynchronen Austauschs ist, dass er die Entkopplung von Anwendungen erleichtert und deshalb besonders flexibel und robust ist. Dabei kann aber die Verarbeitung langsamer und im Vergleich zur synchronen Kommunikation weniger effizient sein.

Oftmals sprechen die kommunizierenden Systeme auch unterschiedliche Sprachen. Die Informationen können dann nicht unmittelbar weiterverwendet werden, sondern müssen von der Darstellung des sendenden in die des empfangenden Systems übersetzt werden. Diese Übersetzungen können unterschiedlichster Art sein: So kann es notwendig sein, Zeichendarstellungen zu konvertieren (z. B. Unix- durch Windows-Zeilenumbrüche zu ersetzen). Oder es muss die Struktur der Daten verändert werden und z. B. aus Datenbankeinträgen XML produziert werden. Außerdem kann noch eine Übersetzung der Daten selbst nötig sein, wie bei der Umwandlung einer nationalen in eine internationale Kontonummer. Da selten alle Verwendungszwecke a priori feststehen, müssen mit der Zeit häufig Erweiterungen an der Funktionalität durchgeführt werden – wer das von vornherein bedenkt, kann sich so manchen späteren Ärger ersparen. Daraus ergeben sich die folgenden funktionalen Anforderungen an eine Lösung für Datenlogistik:

  • Unterstützung synchroner und asynchroner Verarbeitungsmuster
  • Transformationsmöglichkeiten auf Zeichensatz-, Struktur- und Datenebene
  • Kompatibilität mit Standardschnittstellen und -protokollen
  • Lesen und Schreiben gängiger Dateiformate
  • Erweiterbarkeit der Funktionalität

Neben den funktionalen gibt es zusätzliche nichtfunktionale Anforderungen. Dazu gehört die Effizienz in Form kurzer Bearbeitungszeiten und guter Durchsatzleistungen bei größerem Datenaufkommen. Für ein dauerhaft erfolgreiches Zusammenspiel der Teilanwendungen ist außerdem Flexibilität nötig, um neue Partner leicht integrieren und Teilsysteme schnell und mit geringem Aufwand anpassen zu können. Schließlich bilden Zuverlässigkeit, Verfügbarkeit und Nachvollziehbarkeit im Verhalten Grundvoraussetzungen geschäftskritischer Systeme: Die einzelnen Teilsysteme müssen sich darauf verlassen können, dass Nachrichten und Aufträge bei positiver Rückmeldung erfolgreich verarbeitet wurden, und dass Ausnahmebedingungen ebenfalls verlässlich zurückgemeldet werden. Dazu muss die Datenlogistik möglichst jederzeit zur Verfügung stehen und ein nachvollziehbares Verhalten für spätere Analysen an den Tag legen. Am Ende nützt die schönste Lösung jedoch wenig, wenn sie nicht mit den schon existierenden Systemen harmoniert und von den Benutzern akzeptiert und verwendet wird. Deshalb sind Integrierbarkeit und Ergonomie zwei weitere Eigenschaften, die nicht vernachlässigt werden sollten.

Zusammengefasst ergeben sich daraus folgende nichtfunktionale Anforderungen an eine Umsetzung der Datenlogistik:

  • Effiziente Verarbeitung
  • Flexibilität
  • Zuverlässigkeit von Verarbeitung und Übertragung
  • Hohe Verfügbarkeit
  • Nachvollziehbarkeit der Abläufe
  • Integrierbarkeit
  • Gute Ergonomie

Um zu illustrieren, wie mit Talend Open Studio Aufgaben der Datenlogistik bewältigt werden können, wollen wir jetzt zwei Beispiele näher betrachten. Zunächst wird der Transfer von Dateien mittels SFTP gezeigt, wie er etwa für Lieferungen an einen externen Druckdienstleister aus dem Bankenbeispiel (Abb. 1 ) genutzt werden kann. Im zweiten Beispiel werden Informationen über die Queue einer nachrichtenorientierten Middleware ausgetauscht, um kritische Handelsaufträge verlässlich zu übermitteln.

Geschrieben von
Steffen Lang und Wilhelm Kuhn
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.