Ereignisgesteuerte Architektur - vom Monolith zur Cloud-Lösung
Der Übergang vom Monolith zur vernetzten Cloud-Lösung erfordert eine Anpassung der Architektur weg von alten Spaghetti-Schnittstellen, die Systeme 1:1 miteinander verbinden, zu flexiblen Plug & Play Integrationen, die eine Echtzeit Kommunikation erlauben und flexibel erweitert werden können.
Die Transformation von einem monolithischen ERP-System zu einem Verbund von Cloud-Lösungen ist in vollem Gange. Anstatt einem ERP-System im Keller haben Sie in der Zukunft vielfältige, hybride Lösungen, die Sie miteinander integrieren müssen. Die Anzahl der Schnittstellen steigt und damit auch die Komplexität. Der Übergang von ECC auf SAP S/4HANA und Cloud-Lösungen ist zudem kein einfacher Prozess. Oftmals ist ein Parallelbetrieb erforderlich, bei dem ECC, SAP S/4HANA und diverse Cloud-Lösungen parallel betrieben werden, da nicht alle Unternehmenseinheiten zeitgleich umgestellt werden. Dies erfordert ein flexibles An- und Abschalten von Schnittstellen pro Organisationseinheiten und Lösungen auf Sender- und Empfängerseite. Eventuell müssen die Schnittstellen zudem parallel betrieben werden und im Projekt können zusätzliche Empfänger für Nachrichten dazu kommen. Eng gekoppelte Schnittstellen wie z. B. IDocs, die Änderungen auf beiden Seiten erfordern, verursachen einen hohen Umstellungsaufwand. Sowohl bei der Softwarearchitektur als auch bei dem Anwendungsdesign kommt hier eine Schlüsselrolle zur Lösung hinzu.
Mit einer ereignisgesteuerten Architektur (Event-Driven Architecture - EDA) wie es das SAP Event Mesh anbietet, können Sie die Anforderungen der Zukunft auf eine Echtzeit Kommunikation umsetzen. Durch die Entkopplung der Kommunikation, die asynchron zwischen Publisher und Subscriber durchgeführt wird, entsteht eine lose Kopplung die mehr Agilität verspricht.
Was ist eine ereignisgesteuerte Architektur (EDA)?
Eine ereignisgesteuerte Architektur (Event-Driven Architecture, EDA) ist ein Integrationsmodell zur Veröffentlichung, Erfassung, Verarbeitung und Reaktion auf Ereignisse in verteilten Systemen in Echtzeit. Wenn in einer Anwendung ein Ereignis eintritt, wird automatisch eine Nachricht an alle anderen Anwendungen gesendet, die davon wissen müssen, sodass diese darauf reagieren können.
Ereignisbasierte Architekturen sind entkoppelt, das heißt die Anwendungen müssen sich nicht gegenseitig kennen, um Informationen auszutauschen und Aufgaben zu erledigen. Ereignisinformationen oder Nachrichten können frei und automatisch zwischen Anwendungen fließen. Daher ist das EDA-Modell viel schneller als das traditionelle Request-/Response-Modell, bei dem eine Anwendung die spezifischen Informationen, die sie benötigt, von einer anderen anfordern und die Antwort abwarten muss, bevor sie mit der nächsten Aufgabe fortfahren kann. Auch aufgrund der entkoppelten Natur einer EDA gilt sie weithin als Best Practice für die Kommunikation von Microservices.
Wie unterscheidet sich EDA von traditionellen Architekturansätzen wie monolithischen oder serviceorientierten Architekturen (SOA)?
Ereignisgesteuerte Architektur (EDA) unterscheidet sich in mehreren Schlüsselaspekten von traditionellen Architekturansätzen wie monolithischen oder serviceorientierten Architekturen (SOA). Hier sind einige der Hauptunterschiede:
Monolithische Architekturen:
• Zentralisiert: Monolithische Systeme sind zentralisierte Einheiten, in denen alle Funktionen in einer einzigen Anwendung integriert sind.
• Kopplung: Sie haben eine starke Kopplung, was bedeutet, dass die Komponenten eng miteinander verbunden sind und Änderungen an einer Stelle weitreichende Auswirkungen haben können.
• Skalierung: Skalierung erfolgt durch Kopieren des gesamten Monolithen auf mehrere Server, was zu Ressourcenineffizienz führen kann.
Serviceorientierte Architekturen (SOA):
• Servicebasiert: SOA besteht aus verschiedenen Diensten, die spezifische Geschäftsfunktionen erfüllen und über Netzwerkaufrufe miteinander kommunizieren.
• Lose Kopplung: Die Dienste sind in der Regel lose gekoppelt, was bedeutet, dass sie unabhängiger voneinander sind und leichter aktualisiert oder ersetzt werden können.
• Synchronität: Kommunikation in SOA ist oft synchron, was zu Wartezeiten führen kann, wenn ein Dienst auf die Antwort eines anderen wartet.
Ereignisgesteuerte Architekturen (EDA):
• Asynchronität: EDA basiert auf asynchroner Kommunikation, bei der Dienste nicht auf Antworten warten müssen und unabhängig voneinander agieren können.
• Reaktivität: Komponenten in EDA reagieren auf Ereignisse, was eine schnellere und flexiblere Reaktion auf Veränderungen ermöglicht.
• Skalierbarkeit: EDA ermöglicht eine effizientere Skalierung, da nur die Komponenten skaliert werden müssen, die aufgrund des Ereignisvolumens mehr Ressourcen benötigen.
Zusammenfassend lässt sich sagen, dass EDA im Vergleich zu monolithischen und SOA-Architekturen eine höhere Flexibilität, bessere Skalierbarkeit und eine effizientere Reaktion auf Geschäftsereignisse bietet.
Diese Eigenschaften machen EDA besonders geeignet für moderne, verteilte Systeme, die eine schnelle Anpassung an sich ändernde Anforderungen erfordern.