Jump to section

Was ist EDA (Event Driven Architecture)?

URL kopieren

EDA (Event Driven Architecture) steht für eine event-gesteuerte Softwarearchitektur und das Modell eines Anwendungsdesigns. Bei event-gesteuerten Systemen bilden Erfassung, Kommunikation, Verarbeitung und Persistenz von Events die Kernstruktur der Lösung. Sie unterscheiden sich damit von herkömmlichen Systemen, die durch Anfragen gesteuert werden.

Viele moderne Anwendungsdesigns sind event-gesteuert. Das gilt etwa für Frameworks für Kunden-Engagement, die auf Kundendaten in Echtzeit angewiesen sind. Event-gesteuerte Apps lassen sich in beliebigen Programmiersprachen erstellen, weil es sich hier um einen Programmieransatz und nicht um eine Sprache handelt. Eine EDA ermöglicht minimale Kopplung und eignet sich daher gut für moderne, verteilte Anwendungsarchitekturen.

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.

Events stellen bedeutsame Vorkommnisse oder Änderungen des Status von System-Hardware oder -Software dar. Ein Event ist nicht dasselbe wie eine Event-Benachrichtigung oder Meldung, mit der Systembereiche darüber informiert werden, dass ein Event stattgefunden hat.

Ein Event kann durch interne oder externe Eingaben verursacht werden. Es kann von Nutzenden (über Mausklicks oder Tastaturanschläge), von externen Quellen (wie einem Sensorausgang) oder durch das System (wie das Laden eines Programms) ausgelöst werden.

Eine EDA besteht aus Event Producern und Event Consumern. Ein Event Producer erkennt oder identifiziert das Event und stellt es als Meldung dar. Er kennt den Event Consumer und das Ergebnis des Events nicht. 

Ein Event wird nach seiner Erkennung vom Event Producer über Event-Kanäle an den Event Consumer übertragen, wo es von einer Event-Plattform asynchron verarbeitet wird. Event Consumer müssen stets darüber informiert werden, wenn ein Event auftritt. Es kann sein, dass sie das Event verarbeiten oder nur davon beeinflusst werden. 

Die Event-Plattform führt die korrekte Antwort auf ein Event aus und sendet die Aktivität „downstream" an die richtigen Consumer. In einer solchen Downstream-Aktivität werden die Folgen eines Events sichtbar. 

Apache Kafka ist eine Plattform für verteiltes Data Streaming und eine beliebte Lösung zur Event-Verarbeitung. Sie ist in der Lage, Event Streams in Echtzeit zu veröffentlichen, zu abonnieren, zu speichern und zu verarbeiten. Das Produkt unterstützt eine Reihe von Use Cases, bei denen es auf einen hohen Durchsatz und eine gute Skalierbarkeit ankommt. Dazu minimiert es die Notwendigkeit von Punkt-zu-Punkt-Integrationen für die gemeinsame Datennutzung in bestimmten Anwendungen und reduziert so die Latenzzeiten auf Millisekunden. 

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

Eine EDA kann auf einem Pub/Sub-Modell oder einem Event-Streaming-Modell aufsetzen.

Pub/Sub-Modell

Hier handelt es sich um eine Messaging-Infrastruktur, bei der Event Streams abonniert werden. Wenn ein Event auftritt oder veröffentlicht wird, wird es an den jeweiligen Abonnenten gesendet.

Event-Streaming-Modell

Bei diesem Modell werden Events in ein Protokoll eingetragen. Event Consumer abonnieren keine Event Streams. Stattdessen haben sie Lesezugriff auf alle Teile des Event Streams und können ihm 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. Dieses Modell kann dazu verwendet werden, wichtige Muster in Event Streams zu erkennen.
  • Simple Event Processing: Ein Event löst unmittelbar eine Aktion beim Event Consumer aus.
  • Complex Event Processing: Erfordert einen Event Consumer, der eine Reihe von Events verarbeitet, um Muster zu erkennen.

Mit einer event-gesteuerten Architektur können Organisationen flexibler auf Änderungen reagieren und Entscheidungen in Echtzeit treffen. Ein ständiges Echtzeit-Bewusstsein bedeutet, dass Geschäftsentscheidungen – manuell oder automatisch – mithilfe sämtlicher Daten getroffen werden können, die den aktuellen Systemstatus widerspiegeln. 

Events werden sofort nach ihrem Auftreten aus den jeweiligen Quellen (wie IoT-Geräte, Anwendungen und Netzwerke) erfasst, und Event Producer und Consumer können Status- und Antwortinformationen in Echtzeit teilen. 

Organisationen können event-gesteuerte Architekturen zu ihren Systemen und Anwendungen hinzufügen. So lassen sich die Skalierbarkeit und Reaktionsfähigkeit von Apps sowie der Zugriff auf den Kontext und die Daten optimieren, die für bessere Geschäftsentscheidungen benötigt werden.

Die locker gekoppelten cloudnativen Anwendungen und event-gesteuerten Architekturen von heute, die mithilfe von agilen und DevOps-Methoden erstellt werden, erfordern einen gleichermaßen agilen wie skalierbaren Integrationsansatz

So interpretiert auch Red Hat agile Integration, nämlich als Konzept zur Verbindung von Ressourcen, das Integrationstechnologien, agile Bereitstellungstechniken und cloudnative Plattformen kombiniert, um die Softwarebereitstellung zu beschleunigen und sicherer zu machen. 

Red Hat liefert die Integrationsplattformen und die Management-Software, mit denen Sie ältere Technologien und Microservices über Hybrid Cloud-Umgebungen in kurzer Zeit verbinden und so Ihre event-gesteuerte Architektur mit agiler Integration unterstützen können.

Kafka kostenlos testen

Nutzen Sie Red Hat OpenShift Streams for Apache Kafka, einen vollständig gehosteten und gemanagten Kafka-Service für streambasierte Anwendungen.

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

Ein komplettes Set an Integrations- und Messaging-Technologien.

Eine Reihe von Produkten, Tools und Komponenten für cloudnative Anwendungen.

Eine Gruppe von Produkten zur intelligenten Automatisierung von Geschäftsentscheidungen und -prozessen.

Gehostete und gemanagte Plattform-, Anwendungs- und Datenservices, die das Hybrid Cloud-Erlebnis optimieren.

Ressourcen

E-Book

Agile Integration: Ein Blueprint für die Unternehmensarchitektur

Analystenbericht

Red Hat Integration unterstützt Unternehmen bei der Optimierung von Anwendungsleistung und Geschäftsergebnissen

Training

Kostenloser Trainingskurs

Red Hat Agile Integration Technical Overview

Illustration - mail

Möchten Sie mehr zu diesen Themen erfahren?

Abonnieren Sie unseren kostenlosen Newsletter, Red Hat Shares.