Integration Patterns

Einbindungsmuster

In dem Buch Enterprise Integration Patterns von Gregor Hohpe und Bobby Wolf finden Sie eine Sammlung solcher Muster. In dem Kapitel Integrationsstile werden die üblichen Möglichkeiten vorgestellt: Unternehmensintegrationsmuster: Jeder Integrationsansatz hat Vor- und Nachteile. Viele übersetzte Beispielsätze mit "Business Integration Models" - Deutsch-Englisches Wörterbuch und Suchmaschine für deutsche Übersetzungen. Im Top-Down-Ansatz wurden Cloud-Integrationsschemata auf Szenarioebene festgelegt.

Anwendungsintegrationsmuster in Unternehmens-Webanwendungen - Blog

Sie werden zunehmend in Betrieben mit Unterstützung von webbasierten Anwendungen implementiert. An die eingesetzte Software-Architektur werden besondere Ansprüche gestellt, da sie miteinander und mit Legacy-Systemen verbunden werden müssen. Anhand der Analyseergebnisse konnten die Struktur des Projekts, die derzeitige Nutzung von Anwendungsintegrationsmustern und das Potenzial für die weitere Nutzung von Mustern herausgearbeitet werden.

In der zweiten Hälfte der Arbeiten wurde eines der Muster, das sich im ersten Teil als potenziell für das Vorhaben von Interesse erwies, auf seine handfeste Tauglichkeit getestet. Zu diesem Zweck wurde für das Vorhaben eine exemplarische Architektur realisiert, die das Muster nachvollzieht. Welche sind Applikationsintegrationsmuster? Muster werden aus Lösungsansätzen gewonnen, die das Problemfeld bereits in der praktischen Anwendung gelöst haben und können daher als ein guter Ansatz für das Problemfeld angesehen werden[Fo02, S. 10][HW03, S. 34].

Bei der Software-Entwicklung gibt es eine Fülle von Mustern, aber viele von ihnen sind nur für einen bestimmten Zweck oder eine bestimmte Software-Abteilung relevant[Fo02, S. 2]. Anwendungsintegrationsmuster sind eine solche Musterart. Dabei werden die Unterbereiche des Altsystems sukzessive in einzelne Web-Anwendungen (z.B. Artikelliste, Debitorenstamm, Auftragsverwaltung) umgewandelt und wieder mit dem Altsystem aufbereitet.

Dieses Verfahren wird auch als Strangler-Muster oder Würgegriff genannt. Durch die daraus resultierende Aufteilung der Funktionen auf mehrere aufeinander abgestimmte Lösungen ergeben sich eine Reihe von Einzelvorteilen. Bei strikter Implementierung hat jede Anwendung nur einen einzigen Integrationsort mit den anderen Komponenten. Es werden keine weiteren Informationen abgelegt, es wird keine weitere Verknüpfung zu anderen Bereichen des Gesamtsystems in der Anwendung gefunden.

Projektbeteiligte, die zu einem spÃ?teren Zeitpunkt der Projektmitarbeiterschaft beitreten, können leichter den Weg ins Arbeitsprogramm finden. Die Funktionalität der einzelnen Anwendungsbereiche hängt auch von ihrer Wechselwirkung mit anderen Anwendungsbereichen ab und muss daher zum Teil durch anwendungsübergreifende Integrationsprüfungen abgesichert werden. Weil das alte System schrittweise ersetzt wird, müssen die noch leistungsfähigen Bereiche des neuen System in die neue Systemarchitektur eingebunden werden.

Weil das Legacy-System während der Projektdurchführung jederzeit funktionstüchtig sein soll, wird jede neue Anwendung unmittelbar mit dem entsprechenden Teil des Legacy-Systems aufgesetzt. Es gibt keine Abhängigkeiten von einem einzigen Knoten, aber dieses Verfahren hat auch Auswirkungen auf die Grösse der Applikationen. Ausgehend von den Analyse-Ergebnissen des Fokusgruppen-Interviews wurde ein Teil der Projektarchitektur entwickelt.

In diesem Auszug sind nur Anwendungen aufgeführt, die im Laufe des Projekts realisiert wurden, nicht die in die Systemarchitektur eingebundenen Legacy-Systeme. Über REST-APIs greift die Software auf die Messdaten anderer Anwendungen zu. Jede der Anwendungen kann einen Zwischenspeicher mit den vorher angeforderten Informationen aus anderen Anwendungen halten. Werden nun die relevanten Informationen im Artikelliste fortgeschrieben, informiert die App die Message -Oriented Midware darüber durch eine Nachrichtigkeit.

Dadurch wird die Meldung an alle Anwendungen weitergeleitet, die diese Schnittstelle nutzen, die dann ihren Zwischenspeicher für die betroffene Ressourcen aufheben. Sie bekommen bei der nÃ??chsten Anforderung die aktuellen Angaben. Die auch in der Grafik sichtbare Portalseite enthält Angaben zu den im Rahmen des Projekts verfügbaren Schnittstellen und fungiert als zentraler Anlaufpunkt für alle Anwendungen, die innerhalb des Projekts Schnittstellen verbrauchen.

Die Suche basierte auf Mustern aus drei unterschiedlichen Literaturquellen: Weil sich Anwendungsintegrationsmuster aus der Struktur und den Anwendungen von erfolgreichen Projekten ergeben, basieren sie letztlich auf der persönlichen Erfahrungsgrundlage der Autorinnen und Autoren. Bei der Entwicklung von Anwendungsmustern geht es um die Integration von Anwendungen. Die Auflistung der aus den literarischen Quellen resultierenden Muster ist daher nicht als abgeschlossen zu deuten.

Die im Rahmen des Projekts ermittelten Muster sind auch keineswegs eine komplette Auflistung der im Rahmen des Projekts enthalten. Die Serviceschicht enthält alle im Rahmen des Projekts zur Verfügung gestellten Dienste (APIs). In diesem speziellen Anwendungsfall stellen die Schnittstellen diese Schicht dar. In diesem Muster wird der für die Kommunikation mit einem Dienst in einem Element erforderliche Quellcode zusammengefasst.

Durch die Wiederverwendbarkeit dieses Moduls in mehreren Anwendungen werden Doppelungen des Quellcodes umgangen. Auf diese Weise wird der für die Nutzung der Programmierschnittstellen erforderliche Programmcode im Rahmen des Projekts weiterverwendet. Die Information über die im Projektauftrag beinhalteten Dienste wird in einer Dienstregistrierung abgelegt. Das Muster des Nachrichtenübersetzers kann verwendet werden, um Anwendungen zu integrieren, die Nachrichten in verschiedenen Formen senden.

Dabei wird es gezielt eingesetzt, um das Legacy-System in das Gesamtprojekt zu binden, indem es seine Botschaften in ein für die nachrichtenorientierte Middelware lesbares Zielformat umwandelt. Eine Gateways sind auch ein Weg, um ein altes System in eine neue Umgebung zu implementieren. Allerdings ist sein Konzept allgemeiner und nicht nur auf Messaging-Systeme übertragbar, da es eine Schnittstelle für das Legacy-System bietet, die wie eine Schnittstelle für die hinzugekommenen Anwendungen ist.

Dieses Muster wird im Rahmen des Projekts genutzt, um COBOL-Dateien für die Webanwendungen auslesbar zu machen. Das Muster Publish-Subscribe Channel[HW03, S. 113], Message[HW03, S. 81-83], Message Channel[HW03, S. 76-81] und Message Router[HW03, S. 92] werden zusammen eingesetzt, um die Funktionalität der nachrichtenorientierten Middelware darzustellen.

Viele Abonnenten abonnieren Neuigkeiten zu einem speziellen Schwerpunkt. Verlage versenden nun Meldungen an die Middelware, die nach gewissen Merkmalen bestimmt, welchem Themenbereich die Meldung zugewiesen und damit an die jeweiligen Abonnenten weitergegeben wird. Ein solches Middleware-System setzt sich im Wesentlichen aus drei Komponenten zusammen: Nachrichtenkanäle, in die die Publishing-Anwendungen ihre Botschaften versenden können.

Der im Rahmen des Projekts eingesetzte nachrichtenorientierte Mittelstand RabbitMQ bezeichnet diese Komponenten als "Exchanges". Nachrichtenrouter, die festlegen, wie die Botschaften weitergereicht werden. Veröffentlichen-Abonnement Kanäle, an die die Middelware die weitergereichten Meldungen schickt und von denen die Teilnehmer die Meldungen erhalten. Mit RabbitMQ wird hier für jeden Teilnehmer, in den die Mitteilung umgeleitet wird, eine eigene "Warteschlange" angelegt.

Aus der Zusammenstellung dieser Muster, wie sie im Rahmen des Projekts eingesetzt werden, resultiert folgender Aufbau: Die vom Herausgeber im Nachrichtenkanal publizierte Botschaft wird vom Nachrichtenrouter (hier ein Inhaltsbasierter Router) verarbeitet. Anhand des Vorhandenseins von einzelnen Feldern in der Mitteilung und deren Inhalten kann der Benutzer bestimmen, wohin die Mitteilung an[ HW03, S. 213] geleitet wird.

In dem Beispiel bedeutet dies, dass die Mitteilung nur an den obersten Publish Subscribe Channel geleitet wird. Auch das Potenzial für die Integration weiterer Muster in das Gesamtprojekt konnte festgestellt werden. Dazu gehören der Nachrichtenspeicher [Fo02, S. 487] und das Muster Verknüpfte Dienste[DA11, S. 77]. Das Muster des Nachrichtenspeichers ermöglicht es, gesendete E-Mails in einer zentralen Ablage zu speichern, anstatt sie bei erfolgreichem Versand und Bearbeitung zu stornieren.

Anwendungen, die im Laufe des Projekts hinzugefügt werden, können die fehlenden Meldungen anschließend verbrauchen, um einen einheitlichen Status zu erreichen. Das könnte z.B. durch die Nutzung von Kafka als Message-orientiertem Mittel. Die Verknüpfte Dienststruktur zeigt, wie der Verbraucher eines Dienstes anhand der erhaltenen Rückmeldungen nur zusätzliche Dienste und eventuelle Anforderungen innerhalb des laufenden Dienstes erkennen kann.

Im zweiten Teil der Arbeiten wird dieses Muster exemplarisch im Sinne einer Struktur von Hypermedia-APIs umgesetzt. In einem weiteren Blog-Post werden das Muster und die exemplarische Struktur näher beschrieben. Insgesamt wurde die Bedeutung von Anwendungsintegrationsmustern für Web Applications nachgewiesen. Ein Teil des zu untersuchenden Projektes wurde gezielt nach verschiedenen Mustern gebaut, während andere Komponenten entsprechend den bestehenden Mustern wurden.

Mehr zum Thema