OSIRIS - Open Source IntegRation InfraStructure

Werbung
Complex Event Processing
Sebastian Schmidbauer
18.01.2011
Cirquent im Profil
Kompetenzen
Zahlen
350
1748
1747
2000
1722
300
1800
1600
1515
250
200
1041
1400
1200
1180
1000
150
247
100
266
286
260
600
165
139
800
400
50
200
0
0
2003
2004
2005
2006
Umsatz in Mio. €
2007
2008
Mitarbeiter
Umsatzverteilung
Standorte
Deutschland
Hamburg
Köln
Frankfurt
.
.
.
Ettlingen
München (Zentrale)
.
..
.
..
Österreich
.
Wien
Schweiz
Zürich
Bern
UK
London
Birmingham
2008
Seite 2
Agenda
1
Motivation zu CEP
2
Einsatzgebiete für CEP
3
Realisierung von CEP am Beispiel von Esper
4
Fazit
Seite 3
Agenda
1
Motivation zu CEP
2
Einsatzgebiete für CEP
3
Realisierung von CEP am Beispiel von Esper
4
Fazit
Seite 4
Die Wal-Mart Story
?
| Seite 5
Seite 5
Was ist CEP?
Erkennen eines Vorgangs anhand verschiedener Ereignisse
?
!
Seite 6
Was kann/ermöglicht CEP im Allgemeinen?

Mustererkennung, d.h. Suchen nach bestimmten
zuvor definierten Eventkonstellationen (Complex
Events) auf multiplen Eventstreams in Echtzeit.

Einteilung der Messabschnitte in Fenster (Zeitfenster /
Längenfenster)

Algo Trading (Algorithmische Funktionen wie min, max, avg, etc.)
über Millionen von Events hinweg in Echtzeit.

Abgleich Messwerte mit historischen Daten
 Reagieren auf komplexe Situationen in Echtzeit
Seite 7
Abgrenzungen
Bekannt ist es (noch) nicht: CEP in der Gartner Hype Cycle
Sichtbarkeit
Web Services
BPM
CEP
SOA
Zeit
Technischer
Auslöser
Übertriebene
Erwartungen
Ernüchterung
Aufklärung
Produktivität
Seite 8
Agenda
1
Motivation zu CEP
2
Einsatzgebiete für CEP
3
Realisierung von CEP am Beispiel von Esper
4
Fazit
Seite 9
Anwendungsbeispiel: Fraud Case Management – Gartner Inc.

Kreditkartenbetrug im Internet ist mittlerweile viermal
so hoch wie im „Real Life“

Traditionelle Bekämpfungsmethoden sind meist
zeitaufwendig und ineffektiv, da große Datenmengen
bewältigt werden müssen

CEP ermöglicht Betrugsbekämpfung Online/Offline,
kundenübergreifend und in Echtzeit

Überwachung sämtlicher Transaktionen und Vergleich mit
bekannten verdächtigen Ablaufmustern und Verhaltensweisen

Sofortige Gegenmaßnahmen wie z.B. Transaktion ablehnen,
Konto sperren oder manuelle Nachverfolgung einleiten
Seite 10
Anwendungsbeispiel: Automatisierter Aktienhandel
Liegt der Preis einer Aktie über dem Durchschnitt der letzten zehn Sekunden?

Analyse riesiger Datenströme
bestehend aus einzelnen
Börseninformationen

Reagieren auf Kursschwankungen
in Millisekunden

Automatisiertes Ausführen von
Kauf- oder Verkaufsaktionen in
Echtzeit

Verwendung mathematischer
Algorithmen (Algo Trading)
Seite 11
Agenda
1
Motivation zu CEP
2
Einsatzgebiete für CEP
3
Realisierung von CEP am Beispiel von Esper
4
Fazit
Seite 12
Was ist Esper ?

Bei Esper handelt es sich um eine codehaus Implementierung einer CEPEngine

Die Esper Engine ist frei verfügbar

Eine EsperHA (High Availability) Version sowie diverse andere
kostenpflichtige Versionen können kommerziell erworben werden

Erhältlich für Java und .NET (Nesper)

http://esper.codehaus.org
Seite 13
Esper Architektur
Seite 14
Was bietet Esper ?

Eine an SQL angelehnte Event Processing Language (EPL) zur
Datenstromanalyse

Pattern Matching zur Mustererkennung

Einteilung der Messabschnitte in Fenster (Zeitfenster / Längenfenster)

Algorithmische Funktionen (Algo Trading)
 avg
 min
 max
 count
 etc.

Verarbeitung von POJO, Node oder Map Objekten
Seite 15
Die Esper EPL

Alle Events, die von der Esper Engine behandelt werden sollen, müssen zuerst
registriert werden

Auf ein unter dem Namen „Fonds“ registriertes Event kann anschließend
einfach über die EPL zugegriffen werden
select avg(price) from Fonds where isin = “LU0123456789“

Soll nach Ausführung eines EPL Statements eine Operation folgen, kann das
Statement mit einer Listenerklasse verknüpft werden. Ein Listener kann
beliebige Implementierungen enthalten
Seite 16
Datenströme

Die von der Engine behandelten Events werden in Streams abgelegt

Bei Insert Streams werden nur aktuelle Events an die Listener gemeldet

Bei Remove Streams werden sowohl die aktuellen als auch die ausscheidenden
Events an die Listener gemeldet
Seite 17
Längenfenster

Ein Längenfenster enthält eine
zuvor konfigurierte Anzahl an
Events
select min(price) from Fonds.win:length(5) where isin = “LU0123456789“
Seite 18
Zeitfenster

Ein Zeitfenster enthält alle Events
über eine konfigurierte Zeitspanne
select isin, count(*) as count from Fonds.win:time(4 sec)
group by isin output all every 4 seconds order by isin
Seite 19
Batch Fenster

Ein Batch Fenster übergibt nach
Eintreffen einer bestimmten Anzahl
Events (Length Batch) oder nach
Verstreichen einer bestimmten
Zeitspanne (Time Batch) alle
betroffenen Events an den Listener
select sum(amount) as amount from Order.win:time_batch(5 sec)
Seite 20
Joinen von Datenströmen

Zu Identifizierung von Eventkonstellationen, die
sich nicht nur auf einen Datenstrom beschränken,
können Joins über eine beliebige Anzahl von
Datenströmen definiert werden
select Stream1.*
from Stream1.win:time(1 min),
Stream2.win:time(1 min)
where Stream1.UserId = Stream2.UserId
Seite 21
Pattern Matching (Mustererkennung)
select * from pattern[every a=ObjectA ->
b=ObjectB -> c=ObjectC]
select * from pattern[not a=Order ->
b=OrderBestaetigung(orderid = a.orderid)
where timer:within(10 min)]]

Esper unterstützt verschiedene Patterns, die z.B. zur zeitlichen Steuerung oder
zur Reihenfolgekontrolle verwendet werden können
Seite 22
Agenda
1
Motivation zu CEP
2
Einsatzgebiete für CEP
3
Realisierung von CEP am Beispiel von Esper
4
Fazit
Seite 23
Fazit - CEP

CEP ermöglicht es, komplexe Sachverhalte „sichtbar“ zu machen

Eventbasierte Systeme können mittels CEP überwacht bzw. gesteuert
werden

CEP macht Geschäftsprozesse transparent

Mittels CEP können beliebig komplexe „reale“ Ereignisse modelliert und auf
die IT-Welt übertragen werden
Seite 24
Fazit - Esper

Der Open-Source-Kernel ist sehr ausgereift und erfüllt alle Anforderungen
an eine CEP Engine

Esper kann hinreichend generische Daten zur Weiterverarbeitung liefern

Esper kann gut und einfach in bestehende Anwendungslandschaften
integriert werden, da Open Source (Java, .NET)

Die Esper Modellierungssprache (EPL) ist einfach erlernbar und ähnelt sehr
der Datenbankabfragesprache SQL

Auch Nicht-IT-Experten ist es möglich, mit Esper komplexe Events zu
definieren
Seite 25
Kontaktdaten
Sebastian Schmidbauer
Senior Consultant
Cirquent GmbH
Königsbergerstr. 29
60487 Frankfurt a.M.
Telefon +49 69 97261-257
Fax +49 69 97261-70
Mobil +49 172 6968 791
[email protected]
www.cirquent.de
Seite 26
Herunterladen