Complex Event Processing (CEP) – Best Practices

Das Complex Event Processing (CEP) bietet viele neue Möglichkeiten. Um den größtmöglichen Nutzen aus einem CEP-Einsatz zu ziehen, muss insbesondere die Anfragesemantik verstanden und das zeitliche Verhalten bei der Problemdefinition im Vordergrund stehen.

Einbeziehen der Geschäftsexperten

Das Beherrschen der Anfragetechnik ist ein Problem, das mit den richtigen Spezialisten gelöst werden kann. Eine viel größere Herausforderung ist es häufig, die zu stellenden Anfragen inhaltlich korrekt zu definieren. Es werden sowohl Experten des jeweiligen Fachbereichs als auch CEP-Experten benötigt, um die Muster zu definieren, nach denen im Event-Stream gesucht werden soll. Diese Muster sollten in einem ersten Schritt informal spezifiziert werden und dann Schritt für Schritt formalisiert werden. Die programmiertechnische Umsetzung ist der letzte Schritt und nicht der Erste. Zunächst müssen wie bei herkömmlicher Datenmodellierung die einzelnen Elemente der Event-Ströme modelliert werden. Darüber hinaus müssen die Geschäftsexperten für die Notwendigkeit einer äußert präzisen zeitlichen Semantik bei Beschreibung von Event-Mustern und der Ergebniserstellung sensibilisiert werden. Hier ist Erfahrung über das unterschiedliche Verhalten der eingesetzten CEP-Engines und der beteiligten Datenquellen und Datensenken unverzichtbar.

Testbetrieb der Anfragen

Events treten in vielen Szenarien höchst unregelmäßig auf. Aus diesem Grund sollten nach einer Definition der Anfragen ein angemessener Zeitraum für den Testbetrieb eingeplant werden. Dabei können die Reaktionen noch sehr einfach umgesetzt sein, beispielsweise in Form von Nachrichten. Es empfiehlt sich, sämtliche relevanten Event-Muster in Form von Event-Tabellen schriftlich zu definieren und ebenso die daraus zu resultierende Ergebnistabellen zu visualisieren. Diese Tabellen sind die Grundlage für die Überprüfung der Anfragen der CEP-Engines mittels Event-Feeder und für eine Verifikation durch die Geschäftsexperten. Dieses Vorgehen dient der Vermeidung so genannter false negatives (fälschlich nicht erkannte Situationen) und false positives (fälschlich als relevante Situation klassifizierte Event-Muster), die bei der Auswertung komplexer Event-Zusammenhänge sonst leicht entstehen können. Darüber hinaus sollten die Eingangs-Events und die Ergebnisse auf einer Zeitachse visualisiert werden, um auch das zeitliche Verhalten mit den Geschäftsexperten zu besprechen. Hilfreich für alle Besprechungen ist es dabei auch, die Anfragelogik als Ablaufdiagramm (Boxes and Arrows) darzustellen. Gleichzeitig sollte stichprobenweise eine manuelle Überprüfung der tatsächlichen Event-Streams stattfinden, um die Anfragemuster auf Vollständigkeit zu prüfen. Dies erfordert einen gewissen Aufwand, welcher aber durch die erhöhte Ergebnisqualität und den damit verbundenen Nutzen gerechtfertigt ist.

Analyse der IT-Umgebung

Keine IT-Umgebung gleicht der Anderen. Jede Umgebung hat ihre eigenen Besonderheiten, die sich aus der speziellen Zielsetzung ergeben. Daher muss auch für jede IT-Umgebung analysiert werden, an welcher Stelle oder an welchen Stellen die CEP-Engines angeschlossen werden. Aus Performance-Sicht wird die Integration der Datenquellen der CEP-Engine leicht zur Performance-Bremse. Durch Erfahrung kann abgeschätzt werden, welches Leistungsverhalten auf einem bestimmten System zu erwarten ist.

Einbindung der CEP-Ergebnisse in Geschäftsprozesse

Im einfachsten Fall werden CEP-Ergebnisse je nach Häufigkeit auf der Konsole ausgegeben, in Charts visualisiert oder es werden Benachrichtigungsmechanismen wie E-Mail oder SMS angestoßen. Häufig sind Reaktionen auf das Auffinden von Events nicht trivial, sondern bedingen komplexe Abläufe. Idealerweise ist die Reaktion auf ein Ergebnis genau definiert. In diesem Fall bietet sich die Kombination des CEP mit einem Business Process Management (BPM)-System an. Grundsätzlich sind beispielsweise alle auslösenden BPMN 2.0-Ereignisse als Startpunkt für eine Reaktionsdefinition vorstellbar. Durch die ineinandergreifenden Kompetenzen in den Bereichen CEP, BPM und ESB integrieren wir nicht nur Datenquellen, sondern auch Datensenken aus anderen Kompetenzbereichen. Damit können die Reaktionen auf Events oder Event-Muster übersichtlich, nachvollziehbar und vor allem BPMN-standardkonform definiert werden. Dies erhöht die Wartbarkeit deutlich.