- Complex Event Processing
-
Complex Event Processing (kurz CEP, dt. Verarbeitung komplexer Ereignisse) ist ein Themenbereich der Informatik, der sich mit der Erkennung, Analyse, Gruppierung und Verarbeitung voneinander abhängiger Ereignisse (engl. 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.[1]
Inhaltsverzeichnis
Einleitung
In einfachen, ereignisgesteuerten Computerapplikationen wird der Ablauf des Programms meist durch eine sequentielle Abfolge 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 Ereignisse aus, wie z.B. das Speichern einer Datei auf der Festplatte, das Aufleuchten einer Hinweismeldung oder das Öffnen eines Programmfensters. Bei CEP geht es im Speziellen um die Behandlung von Ereignissen, die erst durch das Zusammenwirken mehrerer kleinerer, zusammengehörender Ereignisse auftreten.
Geschichte des Begriffs
Ursprünglich wurde der Begriff von David Luckham erstmals in seinem Buch The Power of Events[2] bekannt gemacht. Er leitete den Begriff von Event Processing ab, einer Menge von Technologien und Konzepten, die das erste Mal um 1950 Verwendung fanden.[3] Ü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 Komplexität von vielen Endnutzern mit negativen Assoziationen belegt ist. Aus diesem Grund wird heute auch häufig wieder Event Processing synonym zu Complex Event Processing verwendet. Die Vereinfachung steht allerdings im Widerspruch mit 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.
Konzepte
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 sie generell doch kompatibel mit der existierenden Literatur und ihre Bedeutung kann grundsätzlich vom verwendeten Kontext abgeleitet werden.
Was ist ein Event
Complex Event Processing verwendet den Begriff Event in den folgenden zwei Bedeutungen:
- Alles was passiert, oder als passiert angesehen wird[4]
- Ein Objekt, das ein Ereignis repräsentiert, kodiert oder speichert; für gewöhnlich zum Zwecke der maschinenbasierten Verarbeitung[4]
- Ein Event ist ein Ereignis innerhalb eines bestimmten Systems oder einer Domäne. Es ist etwas, das bereits passiert ist oder als etwas Geschehenes innerhalb dieser Anwendungsdomäne betrachtet wird. Der Ausdruck Event wird auch dazu verwendet, um eine Programmierentität zu beschreiben, die ein derartiges Ereignis in einem IT-System repräsentiert[5]
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."[4] 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.
Abstraktionsebenen und Abhängigkeiten
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 zu 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.
Akademische und unternehmerische Aktivitäten
Complex Event Processing ist sowohl in der akademischen Forschung als auch in der Produktentwicklung der Softwarehäuser angekommen.
Akademische Forschungsprojekte
Das Thema Complex Event Processing hat sich ab etwa der Jahrtausendwende als fester Bestandteil verschiedenster Forschungsprojekte unterschiedlichster Universitäten etabliert. Die aufgeführte Liste gibt einen Überblick über einige bekannt Projekte.
- STREAM (Stanford University): Motivation des STREAM Projekts ist die Notwendigkeit lang laufender, kontinuierlicher Abfragen auf Datenströmen, die beispielsweise aus dem Netzwerk Monitoring, dem Telco Datenmanagement, der Produktion und aus Sensornetzwerken stammen, anstelle von einmaligen Abfragen auf gespeicherten Datensätzen.
- Rapide (Stanford University): Um Events und ihre horizontalen und vertikalen Abhängigkeiten formal beschreiben zu können, wurde an der Universität von Stanford eine Event Processing Language (EPL) mit dem Namen Rapide entwickelt. Sie ist dafür gedacht, dass man sie als Erweiterung in moderne objektorientierte Sprachen wie Java oder C# integrieren kann.
- Telegraph (UC Berkeley): Telegraph ist ein adaptives Datenflusssystem, das es erlaubt auf Daten aus unterschiedlichen Quellen zuzugreifen, zu kombinieren, analysieren. Als Datenflusssystem kann Telegraph sowohl gespeicherte Daten als auch Datenströme aus Sensornetzwerken verarbeiten.
- Aurora (Brandeis University, Brown University and MIT): Aurora adressiert drei breite Anwendungstypen in einem einzigen Framework. Diese sind kontinuierliches Echtzeit Monitoring von Anwendungen, zugleich die Verarbeitung von persistent gehaltenen, archivierten Daten in großen Mengen, sowie die Kombination der Echtzeitdaten mit den historischen auf eine effiziente Art und Weise.
- Borealis (Brandeis University, Brown University and MIT): Borealis ist eine verteilte Datenstrom Engine, die auf den Erfahrungen aus den Projekten Aurora und Medusa aufbaut. Die Software ist für Linux x86 basierte Rechner designed.
- SASE (UC Berkeley/UMass Amherst): Eine wachsende Anzahl von Anwendungen benötigt ein hohes Volumen von Echtzeitdaten beispielsweise in den Bereichen von Financial Services, Netzwerk Monitoring und Sensornetzwerken. Diese Anforderungen werden im SASE Projekt mittels einer deklarativen Ereignissprache mit einer formalen Semantik, den theoretischen Grundlagen von CEP auf einem effizienten, automatenbasierten Implementierung umgesetzt.
- Cayuga (Cornell University): Publish/Subscribe ist ein beliebtes Paradigma, um das Interesse eines Nutzers („Subscribtion“) an Ereignissen („Publications“) auszudrücken. Cayuga beschäftigt sich mit dem Thema zustandsbehafteter Subscriptions und es Nutzern zu ermöglichen, den Kontext über mehrere Ereignisse zu halten.
- PIPES (Universität Marburg): PIPES beschäftigt sich mit den Forschungsproblemen von adaptivem Speichermanagement für das Scheduling und die Query Optimierung in einer generischen Laufzeitumgebung, der Wartbarkeit von Datenströmen sowie dem Indexing von historischen Abfragen, der Maintanance von nicht parametrisierten Schätzvariablen über Datenströmen, statischen und dynamischen Multy-Query Optimierungen und Sortierten, mehrfachen Join Operationen über Datenströmen.
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.
Einzelnachweise
- ↑ M. Eckert, F. Bry, Complex Event Processing (CEP), Dienstag, 5. Mai 2009, Gesellschaft für Informatik e.V.
- ↑ D. Luckham, The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems, Addison-Wesley Professional, May 18, 2002, ISBN 978-0-201-72789-0
- ↑ D. Luckham, A Short History of Complex Event Processing, Part 1: Beginnings, 2007
- ↑ a b c D. Luckham, R. Schulte: Event Processing Glossary - Version 1.1, July 2008
- ↑ O. Etzion, P. Niblett: Event Processing in Action, Manning Publications, to appear in May 2010 , ISBN 978-1-935182-21-4
- complexevents.com Complex Event Processing Portal das u.a. von David Luckham gepflegt wird
- event-based.org Publikationsserver im Umfeld von Event basierter Systeme gepflegt von Arnd Schröter
- Event Processing Technical Society (EPTS) ist eine Interessengruppe für Event Processing
Wikimedia Foundation.