Complex Event Processing

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

  1. M. Eckert, F. Bry, Complex Event Processing (CEP), Dienstag, 5. Mai 2009, Gesellschaft für Informatik e.V.
  2. 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
  3. D. Luckham, A Short History of Complex Event Processing, Part 1: Beginnings, 2007
  4. a b c D. Luckham, R. Schulte: Event Processing Glossary - Version 1.1, July 2008
  5. O. Etzion, P. Niblett: Event Processing in Action, Manning Publications, to appear in May 2010 , ISBN 978-1-935182-21-4

Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Complex event processing — (CEP) consists of processing many events happening across all the layers of an organization, identifying the most meaningful events within the event cloud, analyzing their impact, and taking subsequent action in real time. Complex event… …   Wikipedia

  • Complex Event Processing — Complex Event Processing, or CEP, is primarily an event processing concept that deals with the task of processing multiple events with the goal of identifying the meaningful events within the event cloud. CEP employs techniques such as detection… …   Wikipedia

  • Complex event processing — Traitement des événements complexes ou Complex Event Processing (CEP) Le Traitement des événements complexes ou CEP, est principalement un concept de traitement des événements dans le but d identifier les événements significatifs dans un nuage d… …   Wikipédia en Français

  • Event-driven architecture — (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. An event can be defined as a significant change in state [K. Mani Chandy Event Driven Applications: Costs, Benefits and Design… …   Wikipedia

  • Event Stream Processing — Event Stream Processing, or ESP, is a set of technologies designed to assist the construction of event driven information systems. ESP technologies include event visualization, event databases, event driven middleware, and event processing… …   Wikipedia

  • Event Correlation — is a technique for making sense of a large number of events and pinpointing the few events that are really important in that mass of information. It has been notably used in Telecommunications and Industrial Process Control since the 1970s, in… …   Wikipedia

  • Event-Driven Architecture — Eine Ereignisgesteuerte Architektur (von engl. Event Driven Architecture, EDA) ist ein Softwarearchitektur Muster, in dem das Zusammenspiel der Komponenten durch Ereignisse (Events) gesteuert wird. Inhaltsverzeichnis 1 Ereignisse (Events) 2… …   Deutsch Wikipedia

  • Event Driven Architecture — Eine Ereignisgesteuerte Architektur (von engl. Event Driven Architecture, EDA) ist ein Softwarearchitektur Muster, in dem das Zusammenspiel der Komponenten durch Ereignisse (Events) gesteuert wird. Inhaltsverzeichnis 1 Ereignisse (Events) 2… …   Deutsch Wikipedia

  • Event-driven programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • Event monitoring — In computer science, event monitoring is the process of collecting, analyzing, and signalling event occurrences to subscribers such as operating system processes, active database rules as well as human operators. These event occurrences may stem… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”