Enterprise Integration Patterns

Den Herausforderungen in der Integration begegnen
Fragen?

Das Standardwerk Enterprise Integration Patterns in der praktischen Anwendung

Bei der Integration orientieren wir uns an bewährten Vorgehensweisen, wie sie auch im Standardwerk „Enterprise Integration Patterns“ von Gregor Hohpe und Booby Woolf beschrieben werden.

Um Ihnen hier einen Überblick über die Thematik der Integration zu geben, erhalten Sie hier im Wesentlichen eine deutsche Version des Einführungskapitels aus oben genanntem Buch, weil es schlichtweg nicht klarer und einfacher auf den Punkt zu bringen ist. Einen Quellenverweis finden Sie am Ende der Seite, falls Sie an weiteren Informationen interessiert sind oder den Originaltext lesen möchten.

Sie haben Fragen zu unseren Integrationslösungen?

Sie möchten wissen, wie ein Integrationsprojekt in Ihrem Unternehmen ablaufen würde?
Oder haben eine allgemeine Frage zu unseren Leistungen? Dann rufen Sie uns doch einfach an.

Grundsätzliche Herausforderungen von Integrationslösungen

Anspruchsvolle Applikationen laufen selten für sich alleine. Ob Ihre Kundenverwaltung mit der Logistik verbunden werden muss, Ihr Einkaufsmodul Zugriff auf eine Auktionsplattform benötigt oder ob sich ein Smartphone mit dem Unternehmenskalender synchronisieren soll: Jede Anwendung scheint nützlicher zu werden, wenn sie mit anderen Anwendungen verbunden wird. Allerdings müssen sich alle Integrationslösungen mit ein paar grundsätzlichen Herausforderungen herumschlagen:

Integrationslösungen müssen Daten von einem Rechner zu einem anderen Rechner über Netzwerke übertragen. Verglichen mit einem Prozess innerhalb eines Rechners stehen verteilte Systeme einer wesentlich größeren Liste von potenziellen Problemen gegenüber. Manchmal befinden sich die zu verbindenden Rechner auf unterschiedlichen Kontinenten und die Daten müssen über Telefonleitungen, LANs, Router, Switche, öffentliche Netzwerke oder gar Satelliten übertragen werden. Und jeder Schritt kann Verzögerungen oder Unterbrechungen mit sich bringen.

Daten über ein Netzwerk zu versenden ist erheblich langsamer, als innerhalb eines Rechners eine Funktion aufzurufen. Ein verteiltes System mit der Denke einer lokalen Applikation zu designen kann sich enorm ungünstig auf die Performance auswirken.

Integrationslösungen vermitteln Daten zwischen Applikationen, die in unterschiedlichen Programmiersprachen geschrieben sind, auf unterschiedlichen Plattformen laufen und unterschiedliche Datenformate haben. Die Integrationslösung muss diese unterschiedlichen Technologien harmonisieren.

Applikationen verändern sich im Laufe der Zeit. Eine Integrationslösung muss mit diesen Veränderungen umgehen können. In schlecht designten Systemen entsteht schnell ein Schneeball-Effekt, so dass bei einer Änderung an einem System alle anderen Systeme ebenfalls betroffen sind. Daher müssen die Abhängigkeiten zwischen den Systemen möglichst minimiert werden, was in der Regel durch eine lose Kopplung der Systeme erreicht wird.

Den Herausforderungen begegnen

Mit der Zeit haben sich in der Integration vier verschiedene Ansätze entwickelt, um diesen Herausforderungen zu begegnen:

Eine Anwendung schreibt Informationen in eine Datei, eine andere Applikation liest diese Datei. Dabei müssen die Applikationen einige Dinge miteinander vereinbaren: Dateiname, Speicherort der Datei, Format der Datei, der Zeitplan für das Schreiben und Lesen der Datei und die Verantwortlichkeit zum Löschen oder Verschieben der Datei.

Applikationen teilen sich eine Datenbank nach einem abgestimmten Schema. Die Daten sind physisch nur einmal vorhanden, müssen also nicht von einer Anwendung auf die andere übertragen werden.

Eine Applikation bietet den Zugriff auf eine Funktion, die von einer anderen, externen Applikation aufgerufen werden kann. Die Kommunikation findet hier synchron und in Echtzeit statt. Unter diesen Punkt fallen im Prinzip alle serviceorientierten Konzepte (SOA) und Microservices.

Eine Applikation erzeugt eine Nachricht in einem gewöhnlichen Nachrichtenkanal. Eine andere Applikation kann Nachrichten aus diesem Kanal lesen, auch zu einem späteren Zeitpunkt. Die Applikationen müssen sich dabei auf den Nachrichtenkanal und das Nachrichtenformat einigen. Die Kommunikation ist hier asynchron.

Integrationsansätze passend zum Use Case kombinieren

Für jeden Integrationsansatz gibt es Vor- und Nachteile. Daher ist eine Kombination je nach Use Case durchaus üblich. Tatsächlich setzen wir in unseren Integrationslösungen im Mittelstand meist mehrere, wenn nicht gar alle Ansätze ein.

Hierzu ein Beispiel:

Das Legacy-ERP System bieten zum Datenaustausch den Ex- und Import von csv Dateien für Artikelinformationen (1. Dateien). Diese Informationen werden im ESB ausgelesen, transformiert und in eine zentrale Datenbank geschrieben. Ein anderer Service greift auf diese Daten zu (2. Gemeinsame Datenbank) und konvertiert diese Daten für einen Artikelimport in einen Webshop. Innerhalb des ESB gibt es außerdem einen REST Service, der zu einer Artikelnummer einen aktuellen Preis und einen Lagerbestand zurückgibt (3. Remote Procedure Call). Zusätzlich werden aus den Artikeldaten und den Preisen nun Preislisten im Excel Format erzeugt und per (S)FTP auf einen Server übertragen. Dieser Übertragungsauftrag wird über eine Nachricht realisiert (4. Messaging), da der Prozess nicht warten muss, bis die Übertragung abgeschlossen ist und sich darauf verlassen kann, dass das Messaging System es so lange versucht, bis die Übertragung erfolgreich war.

Pragmatische Integrationslösungen für den Mittelstand

Es gibt hier keinen „besten“ Integrationsansatz, sondern nur ein zum Unternehmen passendes Design. Warum sollte man Aufwand und Performance für ausschließlich synchrone Services investieren, wenn manche Prozesse keine synchrone Kommunikation erfordern? Speziell im Mittelstand ist es häufig möglich, auch über pragmatische Lösungen nachzudenken – ohne sich nach einer Konzernvorgabe richten zu müssen, die im Anwendungsfall nicht passt oder höhere Kosten verursacht.

Quelle: Gregor Hohpe / Bobby Woolf: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison Wesley, Bosten, 2013.