Anmelden / Registrieren Konto

Integration

Was ist EDA (Event Driven Architecture)?

Jump to section

EDA (Event Driven Architecture) steht für eine ereignisgesteuerte Softwarearchitektur und das Modell eines Anwendungsdesigns. Bei ereignisgesteuerten Systemen steht die Erfassung, Kommunikation, Verarbeitung und Persistenz von Ereignissen im Mittelpunkt. Sie unterscheiden sich damit von herkömmlichen Systemen, die durch Anfragen gesteuert werden.

Viele moderne Anwendungsdesigns sind ereignisgesteuert. Ereignisgesteuerte 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 Ereignisse warten, und das Event nicht weiß, welche Konsequenzen sein Auftreten hat.

 

Was ist ein Ereignis?

Ereignisse stellen bedeutsame Vorkommnisse oder Änderungen des Status von System-Hardware oder -Software dar. Sie sind nicht dasselbe wie Ereignisbenachrichtigungen oder Meldungen, mit denen Systembereiche darüber informiert werden, dass ein Ereignis stattgefunden hat.

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

 

Wie funktioniert eine EDA (Event Driven Architecture)?

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

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

Die Ereignisplattform führt die korrekte Antwort auf ein Ereignis aus und sendet die Aktivität „downstream“ an die richtigen Consumer. In einer solchen Downstream-Aktivität werden die Folgen eines Ereignisses sichtbar. 

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

Der Markt bietet noch weitere Middleware-Ereignismanager, die zur Ereignisverarbeitung genutzt werden können.

 

EDA-Modelle

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 Ereignisströme abonniert werden. Wenn ein Ereignis auftritt oder veröffentlicht wird, wird es an den jeweiligen Abonnenten gesendet.

Event Streaming-Modell

Bei diesem Modell werden Ereignisse in ein Protokoll eingetragen. Event Consumer abonnieren keine Ereignisströme. Stattdessen haben sie Lesezugriff auf alle Teile des Ereignisstroms 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 Ereignisse aufzunehmen und den Ereignisstrom zu verarbeiten oder zu transformieren. Dieses Modell kann dazu verwendet werden, wichtige Muster in Ereignisströmen zu erkennen.
  • Simple Event Processing: Ein Ereignis löst unmittelbar eine Aktion beim Event Consumer aus.
  • Complex Event Processing: Erfordert einen Event Consumer, der eine Reihe von Ereignissen verarbeitet, um Muster zu erkennen.

 

Vorteile einer EDA

Mit einer EDA 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. 

Ereignisse 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 ereignisgesteuerte Architekturen zu ihren Systemen und Anwendungen hinzufügen. Damit können Skalierbarkeit und Reaktionsfähigkeit von Apps sowie der Zugriff auf den Kontext und die Daten verbessert werden, die für bessere Geschäftsentscheidungen benötigt werden.

 

Warum Red Hat für eine agile Integration?

Die lose gekoppelten Cloud Computingnativen Anwendungen und ereignisgesteuerten Architekturen von heute, die mithilfe von agilen und DevOps -Methoden erstellt werden, erfordern eine gleichermaßen agile wie skalierbare Integrationsstrategie

So interpretiert auch Red Hat agile Integration, nämlich als Konzept zur Verbindung von Ressourcen, das Integrationstechnologien, agile Bereitstellungstechniken und Cloud Computingnative 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 Computing-Umgebungen in kurzer Zeit verbinden und so Ihre ereignisgesteuerte Architektur mit agiler Integration unterstützen können.

Integrationslösung von Red Hat

Red Hat Integration logo

Red Hat Integration umfasst diverse Integrations- und Messaging-Technologien, mit denen sich Anwendungen und Daten in Hybrid-Infrastrukturen verbinden lassen. Red Hat Integration ist eine agile, verteilte, containerisierte und API-zentrierte Lösung. Sie enthält folgende Funktionen: Service-Komposition und -Orchestrierung, Anwendungskonnektivität und Datentransformation, Echtzeit-Messaging und -Streaming, Erfassung von Änderungsdaten sowie API-Management – und all das kombiniert mit einer Cloud Computingnativen Plattform und Toolchain, die das vollständige Spektrum moderner Anwendungsentwicklung unterstützt.

Mehr zum Thema Integration mit Red Hat