Data stream management systems & Complex Event Processing



Data stream management systems & Complex Event Processing

0 0


cep-dsms-presentation


On Github mschewe / cep-dsms-presentation

Data stream management systems & Complex Event Processing

by Christoph Biesinger, Mark Schewe

Crb: Mein Name ist Christop Biesinger, ich studiere Informatik

Msc: Mein Name ist Mark Schewe, ich studiere auch Informatik

Crb: Thema

Download StreamBase: http://streambase.com

Folien auch unter: http://cep.sigint.io

Next big thing in computer science

or

old hat with nothing new?

Msc: Die Fachwelt ist sich bisher uneinig ob CEP die nächste große Revolution der IT-Branche ist

Msc: Nur ein alter Hut, welcher altbekannte Konzepte nur neu zusammen gestellt.

Msc: Um nur einige Konzepte zu nennen Publish/Subscribe oder auch Loose Kopplung von System oder ganz einfach die Asynchrone Verarbeitung von Anfragen

Msc: Auf diese Konzepte werden wir aber zum Teil noch im Verlauf der Präsentation eingehen.

Data Stream Management

Crb

Datastreams

  • Data is continously generated (think of a pipe)
                        
                            $ cat /dev/urandom | fancy_processing
                        
                    

Crb

Data Streams

  • Data is unordered
  • Potential endless
  • Not persisted
  • No exact results through limitations in memory and processing time

Crb: Reihenfolge beliebig

Crb: potentiell unendlich lang

Crb: nicht moeglich alles zu speichern

Crb: nur kleiner Teil speicherbar

Crb: Keine Exakten Ergebnisse

Crb: begrenzter Speicher + Verarbeitungszeit

Crb: Probleme: zeitkritisch -> Echtzeitsysteme

Data Stream Management System

  • Manages task
  • Runs tasks
  • Emits results based on streams
  • Stream management
  • Query management

Crb: verwaltet Aufgaben

Crb: fuehrt Aufgaben aus

Crb: Ergebnisse anhand der Datenstromquelle

Crb: Add/Remove Datenstromquellen

Crb: Add/Remove Anfragen(Query)

Crb: Daemons:

Crb: dynamische Anfrageoptimierer, Speichermanager

Crb: Scheduler(zeitliche Anordnung)

DSMS Overview

Crb: Eingehend DS, Ausgehend DS

Database Management System

Data Stream Management System

Persistent data (relations) Volatile data streams Random access Sequential access One-time queries Continuous queries Little or no time requirements Real-time requirements

Crb: persistente Daten vs. Fluechtige Datenstroeme

Crb: Zuefaelliger Zugriff vs. Sequentieller Zugriff

Crb: Einmalige Anfragen vs. Kontinuierliche Anfragen

keine oder gerineg Zeitanforderung vs. Echtzeitanforderung

Complex Event Processing

Msc: Kommen wir nun zu dem zweiten großen Thema, Complex Event Processing

Msc: Uns ist es nicht leicht gefallen, die Grenze zwischen CEP und DSMS zu ziehen, aber dies fällt der Fachwelt auch nicht so ganz einfach.

Msc: Im Grunde sind wir der Meinung, dass es einfach historisch gewachsen ist und es zwei unterschiedliche Herangehensweisen an das Thema sind.

What is Complex Event Processing?

Msc: Also stellen wir uns zuerst die Frage was CEP eigentlich ist.

Computing was easy

Msc: Früher war Programmieren relativ einfach. Es gab klar definierte Ströme von Programm und Daten.

Msc: Hier in unserem Beispiel sind wir vielleicht ein wenig weit in die Historie zurückgegangen.

Msc: Aber es gab nur das EVA Prizip - Eingabe (hier durch Lochkarten, auf welchen die Daten und das Programm war). Verarbeitung (hier auf einem Mainframe) Ausgabe (hier auf dem Drucker)

Programming today

Event Processing in Action - Opher Etzion & Peter Niblett (page 22)

Msc: Heute geht der Trend zu hochkomplexen Netzwerken, bei dem über viele Schnittstellen verschiede System miteinander kommunizieren.

Chr: Service Orientated Architecture (Vater dieser Ideen / Request-Response)

Msc: Event Driven Architecture & Complex Event Processing (eher Verarbeitung von Stream)

High complex real world requirements

  • Decentralized systems
  • Loose coupled systems
  • Mobile data
  • Real time processing
  • Large amount of data

Concept of event processing

Event producers

Event processing logic

Event consumers

Systems, Applications, Sensors   Datastore, Applications, Actuators, Business process

Event Processing Logic

Bruns, Ralf and Jürgen Dunkel - Event-Driven Architecture

Event Processing Network (EPN)

  • Event producer
  • Agent (with state or without)
  • Channels
  • Event consumers

Components of EPN

Event Processing in Action - Opher Etzion & Peter Niblett (page 43)

Msc: Die einzelnen Bestandteile eines EPN können als ein DSMS angesehen werden

Channels

Event Processing in Action - Opher Etzion & Peter Niblett (page 56)

Channels

Event Processing in Action - Opher Etzion & Peter Niblett (page 57)

Stateless Agents

Stateful Agents

Simple actions on streams Limited knownlege of history

Types of agents

Event Processing in Action - Opher Etzion & Peter Niblett (page 52)

Events

An event is an occurrence within a particular system or domain; it is something that has happened, or is contemplated as having happened in that domain. The word event is also used to mean a programming entity that represents such an occurrence in a computing system.

Crb: Ereignis = Aktivitaet, Vorgang, Entscheidung

Crb: Etwas, das passiert ist oder evtl. passieren wird

Crb: Zustandsaenderung

Event Types

  • Events can be grouped by attributes
  • Often this is done by inheritance

Crb: event type/event class

Crb: Klasse gleichartiger Ereignisse

Crb: definiert Attribute (event properties)

Contextual relation of Events

  • Time
  • Causality
  • Aggregation

Chr: Ereignis Zusammenhaenge

Chr: Die Zeit ordnet Ereignisse auf dem Zeitstrahl.

Chr: E1 verursacht E2

Chr: E1, E2, E3 kennzeichnen EA

Event pattern detection

Specifies the condition and combination of one or more events

Detection is made with event algebra

Chr: Bedinung und Reihenfolge

Chr: Die Detektion finden mit Hilfe von Event Algebra (boolschen Algebra statt)

Event algebra

A → B

A == B

∧ and ∨

¬

Sequenzoperator

Simultanoperator

Boolsche Operatoren (Schnittmenge und Vereinigungsmenge)

Negationsoperator

Structure of an event

Event Processing in Action - Opher Etzion & Peter Niblett (page 63)

Event example using xml

Event Processing in Action - Opher Etzion & Peter Niblett (page 83)

EPL

Esper

on pattern[every b=BidRequest(storeManual=true)->timer:interval(2 min)]
insert into AssignmentManual
select d.* from DeliveryBid d where requestId=b.
requestId order by ranking desc limit 5;


Apama event processing language

if isAuto then {
    DeliveryBid db;
    on DeliveryBid(store=dr.store):db within(ASSIGNMENT_TIME){
        assignmentTimer.quit();
        route Assignment(dr.requestId, dr.store, db.driver,
        dr.addresseeLocationPointX, dr.addresseeLocationPointY,
        db.committedPickUpTime, dr.requiredDeliveryTime);
        watchForPickUp(dr, db.driver, db.committedPickUpTime);
        watchForDelivery(dr, db.driver); } }


Crb: Esper:

Crb: 1.Z detect pattern

Crb: 2.Z send event

Crb:Apama

Crb: "on DeliveryBid(.." detect pattern

Crb: "route Assignment(.." send event

Practical Example

  • Esper
  • StreamBase