Jump to section

Was ist eventgesteuerte Architektur?

URL kopieren

Eventgesteuerte Architektur (Event-Driven Architecture, EDA) ist eine Softwarearchitektur und ein Modell für das Anwendungsdesign. Ein eventgesteuertes System ist darauf ausgelegt, Ereignisse zwischen entkoppelten Services zu erfassen, zu kommunizieren und zu verarbeiten. Das heißt, dass Systeme asynchron bleiben können, während sie weiterhin Informationen austauschen und Aufgaben erfüllen. 

Viele moderne Anwendungsdesigns sind eventgesteuert, darunter Kunden-Engagement-Frameworks, die auf Kundendaten in Echtzeit basieren. Eventgesteuerte Anwendungen lassen sich in beliebigen Programmiersprachen erstellen, weil es sich hier um einen Programmieransatz und nicht um eine Sprache handelt. Da eventgesteuerte Architektur eine minimale Kopplung ermöglicht, stellt sie eine geeignete Option für moderne, verteilte Anwendungsarchitekturen dar.

Grund für diese lose Kopplung ist, dass Event Producer nicht wissen, welche Event Consumer auf Events warten, und das Event nicht weiß, welche Konsequenzen sein Auftreten hat.

 

Ein Event ist eine Aufzeichnung signifikanter Ereignisse oder Zustandsänderungen in der Systemhardware oder -software. Ein Event ist nicht dasselbe wie eine Event-Benachrichtigung. Hierbei handelt es sich um eine Nachricht oder Benachrichtigung, die vom System gesendet wird, um einen anderen Teil des Systems über das Auftreten eines Events zu informieren.

Quelle eines Events können interne oder externe Eingaben sein. Events können von Nutzenden generiert werden, wie etwa ein Mausklick oder ein Tastendruck, von einer externen Quelle, wie etwa eine Sensorausgabe, oder sie stammen vom System, wie etwa das Laden eines Programms.

Entkopplung und lose Kopplung beziehen sich auf zwei verwandte, aber unterschiedliche Konzepte innerhalb der Softwarearchitektur und eventgesteuerter Systeme.

Unter Entkopplung versteht man die Beseitigung oder Minimierung direkter Abhängigkeiten zwischen einzelnen Komponenten innerhalb eines Systems, sodass keine Komponente von einer anderen abhängig ist. Im EDA-Kontext wird Entkopplung erreicht, indem sichergestellt wird, dass die Events erzeugenden Komponenten Event-Daten senden, ohne dass eine bestimmte Consumer-Komponente im Fokus steht. Diese Entkopplung ermöglicht die Unabhängigkeit der Komponenten und sorgt für ein insgesamt flexibleres System.

Lose Kopplung ist eine spezielle Form der Entkopplung mit dem Ziel, den Grad der gegenseitigen Abhängigkeit zwischen den Komponenten zu verringern, sie aber nicht vollständig zu trennen. In einem lose gekoppelten System können die Komponenten zwar miteinander interagieren, schaffen dabei aber keinerlei Abhängigkeiten.

Beide Systeme fördern Flexibilität und Unabhängigkeit, wodurch agile und skalierbare Systeme entstehen.

Eine eventgesteuerte Architektur besteht aus Event Producern (Publisher) und Event Consumern (Subscriber). Ein Event Producer erkennt oder empfängt ein Event und stellt dieses als Nachricht dar. Aufgrund der Entkopplung sind ihm weder der Event Consumer noch das Resultat eines Events bekannt.

Nachdem ein Event erkannt wurde, wird es vom Event Producer über Event-Kanäle an die Event Consumer übertragen, wo eine Event-Verarbeitungsplattform das Event asynchron verarbeitet. Event Consumer müssen über das Auftreten eines Events informiert werden. Sie können das Event verarbeiten oder nur davon betroffen sein.

Die Event-Verarbeitungsplattform führt die korrekte Reaktion auf ein Event aus und leitet die Aktivität an die richtigen Consumer weiter. In dieser nachgelagerten Aktivität wird das Ergebnis eines Events sichtbar.

Apache Kafka ist eine verteilte Data Streaming-Plattform und eine beliebte Wahl für die Verarbeitung von Events. Mit ihr lassen sich Event Streams in Echtzeit veröffentlichen, abonnieren, speichern und verarbeiten. Apache Kafka unterstützt eine Reihe von Use Cases, bei denen es auf einen hohen Durchsatz und eine gute Skalierbarkeit ankommt. Durch Minimierung der Notwendigkeit von Punkt-zu-Punkt-Integrationen für die gemeinsame Datennutzung in bestimmten Anwendungen können Latenzzeiten auf Millisekunden reduziert werden.

Es stehen noch weitere Middleware-Eventmanager zur Verfügung, die als Plattform für die Event-Verarbeitung genutzt werden können.

Eine eventgesteuerte Architektur kann auf einem Pub/Sub-Modell oder einem Event Streaming-Modell basieren.

Pub/Sub-Modell
Hierbei handelt es sich um eine Nachrichteninfrastruktur, die auf Abonnements eines Event Streams basieren. Bei diesem Modell wird ein Event nach dessen Auftreten oder Veröffentlichung an die Subscriber gesendet, die entsprechend informiert werden müssen.

Event Streaming-Modell
Bei einem Event Streaming-Modell werden die Events in ein Protokoll aufgenommen. Event Consumer abonnieren keinen Event Stream. Stattdessen können sie Daten aus einem beliebigen Teil des Streams lesen und dem Stream jederzeit beitreten.

Es gibt verschiedene Typen von Event Streaming:

  • Event Stream Processing nutzt eine Data Streaming-Plattform wie Apache Kafka, um Events aufzunehmen und den Event Stream zu verarbeiten oder zu transformieren. 
  • Simple Event Processing bedeutet, dass ein Event sofort eine Aktivität beim Event Consumer auslöst.

Complex Event Processing erfordert die Verarbeitung einer Reihe von Events durch einen Event Consumer, um Muster zu erkennen. Event Stream Processing kann dazu verwendet werden, wichtige Muster in Event Streams zu erkennen.

Mit einer eventgesteuerten Architektur können Unternehmen ein flexibles System erreichen, mit dem sie Workflows an Veränderungen anpassen und Entscheidungen in Echtzeit treffen können. Situationsbewusstsein in Echtzeit bedeutet, dass geschäftliche Entscheidungen, ob manuell oder automatisiert, auf der Grundlage aller verfügbaren Daten getroffen werden können, die den aktuellen Zustand Ihrer Systeme widerspiegeln.

Events werden erfasst, sobald sie bei Event-Quellen wie IoT-Geräten (Internet of Things), Anwendungen und Netzwerken eintreten, sodass Event Producer und Event Consumer Informationen zu Status und Reaktion in Echtzeit austauschen können.

Unternehmen können ihre Systeme und Anwendungen mit eventgesteuerter Architektur ausstatten, um Skalierbarkeit und Reaktionsfähigkeit von Anwendungen sowie den Zugriff auf Daten und den Kontext zu optimieren und so bessere Entscheidungen ermöglichen.

Eventgesteuerte Architektur bietet den Vorteil der Entkopplung, wodurch Producer und Consumer von Daten oder Services nicht direkt miteinander kommunizieren müssen, was ein flexibleres und skalierbares System ermöglicht. Dies wiederum vereinfacht die Integration neuer Komponenten, fördert die Fehlertoleranz und steigert die Gesamteffizienz des Systems.

Red Hat stellt die integrierten Tools und die Managementsoftware bereit, mit denen Sie ältere Technologien und Microservices rasch in verschiedenen Hybrid Cloud-Umgebungen verbinden und Ihre eventgesteuerte Architektur durch agile Integration unterstützen können.

Red Hat OpenShift und die Tools von Red Hat Application Foundations unterstützen Unternehmen dabei, die Produktivität ihrer Entwicklungsteams zu steigern, die CI/CD-Pipelines zu automatisieren und Sicherheitsmaßnahmen früher einzubinden und auf den gesamten Entwicklungszyklus auszuweiten. Durch die Automatisierung von DevSecOps-Praktiken wird für mehr Sicherheit in der Softwarelieferkette gesorgt und gleichzeitig Anwendungssicherheit zur Laufzeit ermöglicht.

OpenShift Dev Spaces bietet Entwicklerinnen und Entwicklern eine schnellere, konsistente und zuverlässige Entwicklungsumgebung und gibt IT-Operations-Teams eine zentralisierte Kontrolle. OpenShift-Funktionen, wie etwa Serverless und Service Mesh, sowie Funktionen von Red Hat Application Services, wie etwa Anwendungs-Runtimes und -Frameworks, API-Management, Data Streaming und eventgesteuerte Services, bieten Entwicklungsteams Self-Service-Zugriff auf Programmiersprachen und Tools und fördern so ihre Produktivität. Und wenn Ihre Entwicklerinnen und Entwickler bestimmte Tools bevorzugen – Red Hat bietet Zugriff auf ein umfassendes IT-Ökosystem an Partnerlösungen, die mit OpenShift kompatibel sind.

Weiterlesen

Artikel

Was ist Integration?

Sie möchten wissen, was Integration ist? Erfahren Sie alles über Integration, wie man sie einsetzt und warum sie in Verbindung mit Open Source noch viel wertvoller ist.

Artikel

Was ist Apache Kafka?

Apache Kafka ist eine verteilte Data-Streaming-Plattform, mit der Sie Daten in Echtzeit veröffentlichen, abonnieren, speichern und verarbeiten können.

Artikel

Was ist eine API?

APIs (Application Programming Interfaces) bestehen aus mehreren Definitionen und Protokollen zur Entwicklung und Integration von Anwendungssoftware.

Mehr über Integration erfahren

Produkte

Red Hat® Integration umfasst diverse Integrations- und Messaging-Technologien für die Daten- und Anwendungsintegration in Hybrid Cloud-Umgebungen. Es enthält Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, Erfassung von Änderungsdaten und Service-Registry. 

Red Hat Runtimes umfasst eine Reihe von Produkten, Tools und Komponenten, mit denen cloudnative Anwendungen entwickelt und gewartet werden können. Es enthält Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, Red Hat build of OpenJDK, Red Hat build of Quarkus, Cloudnative Runtimes, Red Hat Migration Toolkit für Anwendungen, Single Sign-On (SSO) und Launcher-Service.

Red Hat Application Foundations umfasst zahlreiche Integrations- und Runtimes Technologien, um die Entwicklung, Bereitstellung und Nutzung von Anwendungen sicher und in großem Umfang in der Hybrid Cloud zu unterstützen.

Gehostete und gemanagte Plattform-, Anwendungs- und Datenservices, die das Hybrid Cloud-Erlebnis optimieren und die Betriebskosten sowie die Komplexität der Bereitstellung cloudnativer Anwendungen verringern.

Ressourcen

E-Book

Agile Integration: Ein Blueprint für die Unternehmensarchitektur

Training

Kostenloser Trainingskurs

Red Hat Agile Integration Technical Overview