Joel Schäufele
Was ist SAP Event Mesh?
SAP Event Mesh ist ein cloudbasierter Service auf Basis der SAP Business Technology Platform (SAP BTP), der die Umsetzung von Event-Driven-Architekturen im SAP-Umfeld ermöglicht.
Als zentraler Bestandteil einer IT-Landschaft werden über SAP Event Mesh Events veröffentlicht, auf die entsprechend reagiert werden kann. Damit können Ereignisse (sogenannte Events) in Echtzeit zwischen Systemen flexibel ausgetauscht werden, ohne dass eine feste, starre Verbindung zwischen ihnen bestehen muss.
Was ist ein Event?
Ein Event (Ereignis) ist eine Benachrichtigung darüber, dass etwas Bestimmtes geschehen ist. Im SAP-Umfeld kann das zum Beispiel die Anlage oder Änderung eines Business Partners sein, oder auch das Anlegen, Kommissionieren oder Versenden einer Bestellung. Derzeit gibt es bereits über 400 verschiedene Events, die von über 20 SAP-Systemen ausgelöst und über SAP Event Mesh veröffentlicht werden.
Das Format und die Struktur der Events ist dabei nicht SAP-spezifisch und folgt der Spezifikation von CloudEvents – einem Open-Source-Projekt der Cloud Native Computing Foundation. Damit wird eine anbieter-übergreifende Interoperabilität sichergestellt und der Implementierungsaufwand reduziert. Folgendes Beispiel eines aktualisierten Business Partners zeigt ein solches Event, das sich aus den Kontextinformationen (Sender, ID, Zeit, usw.) und den eigentlichen Daten des Events zusammensetzt:
In diesem Beispiel wird im Datenfeld die ID des geänderten Business Partners mitgegeben, und der jeweilige Empfänger ist dann dafür verantwortlich, was er mit diesen Informationen macht und wie er darauf reagiert.
Alle von den SAP-Systemen angebotenen Events können auf dem SAP Business Accelerator Hub gefunden und eingesehen werden.
Was ist Event-Driven Architecture?
Traditionell fragt ein Zielsystem in regelmäßigen Abständen über klassische Schnittstellen beim Sendersystem nach den aktuellsten Daten und Änderungen. Am Beispiel der Business Partner würde ein Zielsystem einen Job laufen haben, der in regelmäßigen Abständen (z. B. stündlich oder täglich) im S/4-System nachfragt, ob es Änderungen oder neue Business Partner gibt und diese dann überträgt.
Alternativ zu diesem Pull-Ansatz kann das S/4-System auch per Push-Ansatz Änderungen aktiv in regelmäßigen Abständen an das Zielsystem übertragen. In beiden Fällen entsteht eine starre Punkt-zu-Punkt-Verbindung, bei der Sender und Empfänger eng verbunden sind und jeweils aufeinander warten müssen. Neben der deutlich geringeren Flexibilität erhöht sich dadurch auch der Implementierungsaufwand sowie die Abhängigkeit von anderen Systemen und gegebenenfalls auch von anderen Teams.
In den letzten Jahren wurden immer mehr asynchrone Verbindungen eingesetzt. Hierbei sind die Systeme weiterhin eng miteinander verbunden, die Verarbeitung findet jedoch zeitversetzt über eine Message Queue statt. Im nachfolgenden Beispiel informiert das S/4-System proaktiv über einen neuen Business Partner und übergibt diese Information an eine Message Queue, von der sich das Zielsystem die Nachrichten abholt. Unabhängig vom Verarbeitungsstatus oder der Verfügbarkeit des Zielsystems ist der Vorgang für das sendende System damit abgeschlossen – auch bekannt als „fire and forget“.
Die Verantwortung für die weitere Verarbeitung obliegt dem Zielsystem; diese kann entweder annähernd in Echtzeit mit minimaler Verzögerung oder Stunden oder Tage später erfolgen. Die direkte Abhängigkeit zwischen den Systemen wird damit reduziert, die Verbindung ist trotzdem explizit definiert und verhältnismäßig starr.
Beim Einsatz von Event-Driven Architecture erfolgt die Verarbeitung ereignisgesteuert. Das bedeutet, dass der Sender einen Eventbroker (Event Mesh) in Echtzeit proaktiv über eine Änderung im System informiert – bekannt als „Publish Event“. Das veröffentlichte Event selbst ist typisiert und wird über ein sogenanntes „Topic“ veröffentlicht. Am Beispiel des Business Partners könnte „BusinessPartner/Changed“ als Topic definiert werden. Zielsysteme können sich dann im Eventbroker für dieses Topic registrieren („Subscription“), und immer dann, wenn ein Event mit diesem Topic veröffentlicht wird, sendet der Eventbroker das Event an das Zielsystem.
Der Messagebroker nimmt somit eine zentrale Rolle ein, steht im Mittelpunkt und deckt sowohl die Konfiguration als auch das Routing ab. Sollte ein Empfänger nicht verfügbar sein, wird das Event in der Regel im Eventbroker persistiert und zu einem späteren Zeitpunkt erneut versendet.
Durch die Event-Driven Architecture sind die Systeme komplett voneinander losgelöst und können beliebig auf Events reagieren. Wenn die IT-Landschaft wächst und neue Empfänger hinzukommen, können sich diese einfach für das bestehende Topic registrieren, und im Sender müssen keine weiteren Anpassungen vorgenommen werden.
Wie funktioniert SAP Event Mesh?
SAP Event Mesh ist ein Eventbroker, der auf Basis der SAP Business Technology Platform angeboten wird. Zur Anbindung stehen die folgenden Protokolle zur Verfügung:
- AMQP (Advanced Message Queuing Protocol)
- MQTT (Message Queuing Telemetry Transport)
- REST APIs (Representational State Transfer Application Programming Interfaces)
Zur Konfiguration stehen im Event Mesh die folgenden Konzepte zur Verfügung: Queues, Topics und Queue Subscriptions.
Zur Konfiguration stehen im Event Mesh die folgenden Konzepte zur Verfügung: Queues, Topics und Queue Subscriptions.
QUEUes
Eine Queue ermöglicht den Austausch von Nachrichten zwischen Applikationen. Hierbei ist jedem Empfänger genau eine Queue zugeordnet, die die Nachrichten persistiert und an den Empfänger weiterleitet. Die Nachrichten können entweder von einem Sender direkt an die Queue übergeben werden oder die Queue wird durch die Registrierung eines Topics befüllt.
QUEUES
Eine Queue dient dem Nachrichtenaustausch zwischen Applikationen. Jedem Empfänger ist genau eine Queue zugeordnet, die die Nachrichten persistiert und weiterleitet. Die Nachrichten können entweder vom Sender direkt an die Queue übergeben werden, oder die Queue wird durch die Registrierung eines Topics befüllt.
QUEUes
Eine Queue ermöglicht den Austausch von Nachrichten zwischen Applikationen. Hierbei ist jedem Empfänger genau eine Queue zugeordnet, die die Nachrichten persistiert und an den Empfänger weiterleitet. Die Nachrichten können entweder von einem Sender direkt an die Queue übergeben werden oder die Queue wird durch die Registrierung eines Topics befüllt.
Topics
Ein Topic ermöglicht einem Sender, Events darüber zu veröffentlichen. Über Filtermöglichkeiten können Empfänger anschließend definieren, für welche Topics sie sich registrieren möchten. Topics werden nicht persistiert, und falls es während des Eingangs eines neuen Events keine registrierten Empfänger gibt, verfällt das Event.
Topics
Ein Topic ermöglicht es einem Sender, Events darüber zu veröffentlichen. Mit Filtern können Empfänger definieren, für welche Topics sie sich registrieren möchten. Topics werden nicht persistiert, und falls es beim Eingang eines neuen Events keine registrierten Empfänger gibt, verfällt das Event.
Topics
Ein Topic ermöglicht es einem Sender, Events darüber zu veröffentlichen. Mit Filtern können Empfänger anschließend definieren, für welche Topics sie sich registrieren möchten. Topics werden nicht persistiert, und falls es während des Eingangs eines neuen Events keine registrierten Empfänger gibt, verfällt das Event.
QUEUE subscriptions
Dieses Konzept ist der empfohlene Ansatz für den Einsatz von SAP Event Mesh. Dabei veröffentlichen Sender ihre Events an ein oder mehrere Topics. Pro Empfänger gibt es eine Queue, die sich auf alle relevanten Topics registriert. So werden bei der Veröffentlichung der Events über die Topics alle Nachrichten direkt in der jeweiligen Empfängerqueue persistiert und anschließend bearbeitet.
Dies ermöglicht eine zuverlässige Zustellung, auch bei kurzzeitiger Nichtverfügbarkeit des Empfängers, und erzeugt flexible Verbindungen zwischen Sendern und Empfängern, ohne dass diese voneinander abhängig sind.
QUEUE subscriptions
Dieses Konzept ist der empfohlene Ansatz für den Aufbau und den Einsatz von SAP Event Mesh. Hierbei veröffentlichen die Sender ihre Events jeweils an ein oder mehrere Topics in Event Mesh. Pro Empfänger gibt es wiederum eine Queue, die sich auf alle relevanten Topics registriert. Somit werden bei der Veröffentlichung der Events über die Topics alle Nachrichten direkt in der jeweiligen Empfängerqueue persistiert und anschließend bearbeitet.
Dies ermöglicht eine zuverlässige Zustellung, auch bei kurzzeitiger Nichtverfügbarkeit des Empfängers, und erzeugt flexible Verbindungen zwischen Sendern und Empfängern, ohne dass diese voneinander abhängig sind.
Vergleich mit anderen SAP-Lösungen
Neben SAP Event Mesh gibt es von SAP noch die weiteren Produkte SAP Advanced Event Mesh und SAP Cloud Application Event Hub.
SAP Advanced Event Mesh wird als Teil der SAP Integration Suite angeboten und ist, mit erweiterten Management- und Monitoring-Möglichkeiten, deutlich umfangreicher als Event Mesh. Dies ist insbesondere bei großen ereignisgesteuerten Architekturen hilfreich.
SAP Cloud Application Event Hub ist das jüngste Produkt – spezialisiert auf die Verbindung von SAP Cloud- und BTP-Applikationen – und bietet hierfür eine einfach zu nutzende Lösung mit geringem Konfigurationsaufwand.
Interesse geweckt?
Sie möchten mehr über Event-Driven Architecture im SAP-Kontext erfahren? Sprechen Sie uns gerne unverbindlich an.
Wir unterstützen Sie beim Wissensaufbau – sei es im Rahmen eines Enablement-Workshops oder bei der Einführung und Umsetzung Ihrer ereignisgesteuerten Integrationsstrategie.
Interessiert an Event-Driven Architecture im SAP-Umfeld?
Wir unterstützen Sie beim Wissensaufbau – ob mit Enablement-Workshops oder bei der Umsetzung Ihrer ereignisgesteuerten Integrationsstrategie.
Kontaktieren Sie uns heute!
Das könnte Sie auch interessieren...
Ereignisgesteuerte Architektur (2) – SAP Event Mesh: eine Fallstudie
Diese Fallstudie zeigt, wie SAP Event Mesh die Rechnungserstellung automatisiert und Folgeaktionen in Echtzeit auslöst.
Ereignisgesteuerte Architektur (3) – SAP-Lösungen für eine Event-Driven Architecture
In diesem Blogartikel betrachten wir SAP Advanced Event Mesh und SAP Cloud Application Event Hub und erläutern ihre Unterschiede und Anwendungsfälle.