Complex Event Processing

„πάντα ῥεῖ (panta rhei), everything is in a state of flux, alles fließt“ (Heraklit)

Viele Geschäftsanwendungen und Produktionsprozesse unterliegen sich fortlaufend ändernden Rahmenbedingungen und Umgebungseigenschaften. Betriebswirtschaftliches Controlling und Prozesssteuerung erfordern umgehendes Reagieren auf diese Veränderungen. CEP ist ein systematischer Ansatz, mit dem in Echtzeit eine Vielzahl von unterschiedlichen Ereignissen, Messwerten und Geschäftsindikatoren ausgewertet, korreliert und verdichtet werden kann. Im Rahmen von CEP wird auf dieser Seite stets der englische Begriff Event für ein Ereignis verwendet, das mit einer CEP-Engine verarbeitet wird.

Was ist CEP?

Das Complex Event Processing (CEP) ist eine Ansammlung neuer Ansätze und Werkzeuge zur Datenanalyse. Ziel von CEP ist es, ereignisgetriebene Anwendung zu unterstützen und die dabei anfallenden Events und ihren zeitlichen Verlauf auszuwerten. Events fallen in vielen Szenarien an:

  • Sensorik, Messwerteerfassung, Sensordatenfusion
  • Logistik, Fahrzeugüberwachung, Verkehrssteuerung und Billing
  • Serverüberwachung, Intrusion Detection, Monitoring
  • Transaktionssysteme wie elektronische Warenhäuser und Handelsplattformen
  • Anmelde- und Abmeldevorgänge
  • uvm.

Anwendungen in diesen Szenarien haben gemein, dass die Event-Rate schwankt und der Beobachtungszeitraum potenziell unendlich ist. Häufig wird daher von potenziell unendlichen Event- oder Datenströmen gesprochen. Herkömmliche Ansätze sehen für diese Anwendungen vor:

  • Speichern in einer Datenbank und periodisches Auswerten bzw. Triggern von Events
  • Spezialanwendungen

Speichern in einer Datenbank hat den Nachteil, dass es langsam und ressourcenhungrig ist. Die Entwicklung von Spezialanwendungen zieht einen hohen Entwicklungs- und Wartungsaufwand nach sich.

Verarbeitung on-the-fly

Durch den Einsatz von Datenstromsystemen und CEP-Engines ist es möglich, eine schnelle und ressourcenschonende Verarbeitung von Event-Strömen zu realisieren. Herkömmliche Techniken wie SQL-Anfragen auf Datenbanken oder Data Warehouses pflegen einen persistenten Datenbestand, der periodisch oder durch Trigger getrieben ausgewertet wird. Im Gegensatz dazu werden beim CEP Events bzw. Sequenzen von Events direkt nach der Übertragung an die CEP-Engine ausgewertet. Beim Complex Event Processing werden Anfragen vorformuliert und der Event-Strom wird on-the-fly ausgewertet. Treffen auf eine Folge von Events im Strom die Bedingungen zu, welche durch eine Anfrage (Query) formuliert wurden, bzw. folgen sie einem relevanten Muster (Pattern), wird ein Ergebnis erstellt, das auch wieder eine potenziell unendliche Folge von Events sein kann. Diese Verarbeitung findet vorwiegend im Hauptspeicher statt. CEP-Engines sind besser für die Verarbeitung von Event-Sequenzen geeignet als Datenbanksysteme, da die gegebene zeitliche Ordnung der Events besser im Verarbeitungsmodell berücksichtigt wird. In der klassischen Lehre arbeiten Datenbanken auf Relationen, die eine, auch zeitlich, ungeordnete Menge von Tupeln darstellt. CEP-Engines haben Fensteroperatoren, die auf zeitlichen Attributen oder Ordnung basieren, bzw. verwenden sie zur Auswertung endliche Automaten (Finite State Machines), um Muster in Sequenzen analysieren zu können. Dies erübrigt aufwändige Sortierschritte, wie sie bei herkömmlichen Datenbanksystemen notwendig sind.