Esper – Complex Event Processing in Echtzeit
Esper ist eine sehr fortgeschrittene Umsetzung des Complex Event Processing (CEP)-Konzepts. Es bietet alle Möglichkeiten, welche für die Auswertung komplexer Events und komplexer Event-Patterns in Echtzeit benötigt werden. Durch konsequente Umsetzung bestehender Problemlösungsstrategien aus dem Bereich der Informatik wie Divide&Conquer wird dabei die Komplexität für den Benutzer deutlich reduziert und der Ansatz somit beherrschbar gemacht.
Esper erlaubt die Definition von Input-Streams. Diese Input-Streams enthalten Events, welche frei konfiguriert werden können. Das Hinzufügen eines Events zu einem Stream kann auf verschiedenen Plattformen einfach umgesetzt werden. Die Input-Streams können dann in Esper durch den Einsatz von Organisations-Statements auf mehrere Streams verteilt oder zusammengefasst werden. Dabei ist das Herausfiltern und Verwerfen bestimmter Events ebenso möglich wie das Einfügen eines Events in mehrere Streams. Der Sinn der Stream-Organisation besteht darin, Anfragen und Analysen gezielten Zugriff auf relevante Streams zu ermöglichen. Dies erleichtert die Formulierung von Analysen und verbessert die Performance.
Analysen selbst können auf einem oder mehreren Analyse-Streams laufen. Zusätzlich können auch noch weitere externe Quellen wie beispielsweise eine Datenbank mit einbezogen werden. Die Ergebnisse der Analysen können beispielsweise über den Einsatz von Diagrammen oder Tabellen dargestellt werden. Alternativ ermöglicht Esper auch die proaktive Definition von Reaktionen. Dadurch kann beispielsweise automatisch eine Benachrichtigung bei konsequentem Übersteigen definierter Grenzwerte umgesetzt werden. Für die Definition komplexer Reaktionen bietet sich der Einsatz von Prozessen und einer Business Process Management-Software wie ActiveVOS an.
Optional können die Analyse-Streams nach dem Durchlauf der Analysen durch die Definition von Reorganisations-Statements in Output-Streams überführt werden. Dabei stehen dieselben Möglichkeiten wie bei der Aufteilung in Analyse-Streams zur Verfügung. Die Definition von Output-Streams ist insbesondere dann sinnvoll, wenn die Events nicht direkt für Esper definiert, sondern an einen weiteren Empfänger adressiert wurden. Esper soll in diesem Fall also nur zwischen Event-Sender und Event-Empfänger geschaltet werden, ist aber nicht selbst Event-Empfänger. Da Esper die Auswertung in Echtzeit durchführt, wird dabei die Ankunft der Events beim Event-Empfänger nur minimal verzögert.
Durch die skizzierten und viele weitere Konfigurationsmöglichkeiten ist Esper in vielen Anwendungsfällen und Umgebungen einsetzbar. Die Integration in verschiedene Architekturen ist dabei in der Architektur von Esper vorgesehen. Die Anwendungsmöglichkeiten sind somit beinahe unbegrenzt.

