Complex Event Processing (CEP, deutsch Verarbeitung komplexer Ereignisse) ist ein Themenbereich der Informatik, der sich mit der Erkennung, Analyse, Gruppierung und Verarbeitung voneinander abhängiger Ereignisse (englisch events) beschäftigt. CEP ist somit ein Sammelbegriff für Methoden, Techniken und Werkzeuge, um Ereignisse zu verarbeiten, während sie passieren, also kontinuierlich und zeitnah. CEP leitet aus Ereignissen höheres, wertvolles Wissen in Form von sog. komplexen Ereignissen ab, d. h. Situationen, die sich nur als Kombination mehrerer Ereignisse erkennen lassen. Um verschiedenartige Datenströme in Echtzeit zu verarbeiten und die Ereignisse zu extrahieren und zu analysieren, müssen von diesbezüglichen Systemen hohe Lasten verkraftet werden. Einsatzgebiete sind beispielsweise Netzwerküberwachung, öffentliche Sicherheit, Katastrophenschutz oder Energiemanagement.
In ereignisgesteuerten Computerapplikationen wird der Ablauf des Programms durch eine streng sequentielle Folge von Events gesteuert. Das heißt, einzelne Ereignisse wie z. B. ein Maus-Klick, der Eingang einer E-Mail oder das Ende eines Ladevorgangs lösen weitere abhängige Ereignisse aus, wie z. B. das Speichern einer Datei auf der Festplatte, das Aufleuchten einer Hinweismeldung oder das Öffnen eines Programmfensters.
Das CEP befasst sich mit Ereignissen, die mehrfach redundant, mehrläufig nebeneinander und vielfältig unzuverlässig verkettet auftreten. Zudem ist die Logik des Auftretens nicht scharf, sondern unscharf (Fuzzylogik) definiert. Die CEP liefert bereinigte Ereignisse als Status, welche die unerwünschten oder überflüssigen Quellereignisse eliminieren.
Complex Event Processing verwendet den Begriff Event in den folgenden Bedeutungen:
Bei CEP geht es im Speziellen um die Behandlung von Ereignissen, die erst durch das Zusammenwirken mehrerer Ereignisse auftreten. Diese weisen beispielsweise fakultativ folgende Merkmale auf:
Ursprünglich wurde der Begriff von David Luckham erstmals in seinem Buch The Power of Events bekannt gemacht. Er leitete den Begriff von Event Processing ab, einer Menge von Technologien und Konzepten, die das erste Mal um 1950 Verwendung fanden. Über die Zeit hinweg sind Konzepte der Netzwerktechnik, von Active Databases, Middleware, service-orientierter Architektur und anderen Gebieten eingeflossen, die auch mit Ereignisverarbeitung zu tun haben.
Heute ist sich die Community uneins über den Begriff Complex, da häufig versucht wird, statt Komplexität zu verbergen, diese willkürlich zu ignorieren. Aus diesem Grund wird heute auch häufig wieder Event Processing synonym zu Complex Event Processing verwendet. Die begriffliche Vereinfachung steht im Widerspruch zu der Klassifikation ereignisgesteuerter Verarbeitung, die aus dem Bereich Event Driven Architecture (EDA) bekannt ist.
Neben den Begriffen Complex Event Processing und Event Processing wird aus Marketinggründen auch der Ausdruck Business Event Processing verwendet.
In Complex Event Processing sind bisher high-level Konzepte beschrieben, die das Thema der Eventverarbeitung und der Erkennung von Ereignismustern bearbeiten. Einige dieser Begriffe sind stark überladen, da sie auch in anderen Gebieten der Informationstechnologie, der Mathematik sowie in Teilbereichen auch in der Betriebswirtschaft verwendet werden. Auch wenn diese Begriffsüberladung bisher für einige Diskussion innerhalb der Complex Event Processing / Event Processing Community gesorgt hat, so sind die Begriffe kompatibel mit der existierenden Literatur. Ihre Bedeutungen können vom verwendeten Kontext abgeleitet werden.
Complex Event Processing geht noch einen Schritt weiter und definiert ein virtuelles Event als ein "Ereignis, das nicht tatsächlich in der physikalischen Welt auftritt, sondern erscheint, um ein Ereignis in der wirklichen Welt anzudeuten; Ein Ereignis, das man sich vorstellt, modelliert oder simuliert." Ein virtuelles Event wird wie jedes andere Ereignis in CEP behandelt.
Offensichtlich kann fast alles, was in der realen Welt oder innerhalb eines Rechners existiert, als Ereignis für die Nutzung durch CEP angesehen werden. Die Definition ist absichtlich so breit gehalten, da CEP beabsichtigt, Beziehungen sowohl zwischen den unterschiedlichen Ereignisebenen als auch unter den Design Patterns zur Erstellung dieser Ereignisse herzustellen, so dass ihre Semantik, ihr Speichermedium und ihr Übertragungsmechanismus nicht beeinträchtigt werden. In Teilbereichen ist diese Definition kompatibel (wenn auch breiter) zur Ereignisdefinition der Wahrscheinlichkeitstheorie.
Grundlegendes Konzept von CEP ist eine Strukturierung der Ereignisse in Abstraktionsebenen. Auf einer Abstraktionsebene hängen einzelne Events voneinander ab und nehmen aufeinander Einfluss (horizontale Abhängigkeit). Wenn man verschiedene dieser Events zu einer Gruppe zusammenfasst und daraus ein übergeordnetes Ereignis bildet, spricht man von diesem als einer Aggregation oder eben einem komplexen Event. Dieses komplexe Event befindet sich in einer vertikalen Abhängigkeit von den einzelnen Ereignissen, aus denen es besteht und die sich eine Abstraktionsebene tiefer befinden.
Neben der vertikalen Abstraktion gibt es auch noch die horizontale Abstraktion. Hier werden Ereignisse verschiedener Ebenen, z. B. Netzwerk Monitoring Ereignisse, Datenbankereignisse und Geschäftsprozessvorfälle so miteinander verknüpft, dass sich daraus ein höherwertiges, komplexes Ereignis ableiten lässt. Derzeit gibt es noch wenig Implementierungserfahrung mit der Bildung von horizontalen Abhängigkeiten, da es eine nicht triviale Aufgabe ist, die Kausalität der Vorkommnisse zwischen den einzelnen Ebenen darzustellen.
Das Thema Complex Event Processing ist Gegenstand sowohl in der akademischen Forschung als auch der Produktentwicklung der Softwarehäuser.
Seit etwa der Jahrtausendwende ist es Bestandteil verschiedener Forschungsprojekte an den Universitäten. Die folgende Liste gibt einen Einblick.
Neben den genannten Projekten setzt sich die Forschung weiterhin thematisch mit Complex Event Processing oder Event Processing auseinander. Ein Überblick über aktuelle Veröffentlichungen aus dem Forschungsumfeld lässt sich unter anderem auf der von Arnd Schröter gepflegten Link Collection event-based.org gewinnen.