25
Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: 1.3 Esper - Open Source Complex Event Processing Ist Event-driven Architecture (EDA) mit Esper reif für echte Businessintegration? Dieser Vortrag bietet Ihnen eine Einführung in EDA und Complex Event Processing (CEP) und stellt den Zusammenhang zwischen EDA und SOA her. Darüber hinaus veranschaulicht er die Architektur und den Aufbau von Esper und zeigt CEP Einsatzszenarien am Beispiel von Esper. © 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 2 Integrationsprojekte als historischer Hintergrund für SOA und EDA Probleme bei der Integration von Systemen Netzwerke sind nicht zuverlässig Netzwerke sind langsam Systeme sind grundsätzlich verschieden Änderungen sind unvermeidbar Historisches Umfeld

Esper - Open Source Complex Event Processing - oio.de · 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.3 [email protected] Esper - Open Source Complex Event

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]: 1.3

Esper - Open SourceComplex Event

ProcessingIst Event-driven Architecture (EDA) mit Esper reif für echteBusinessintegration? Dieser Vortrag bietet Ihnen eineEinführung in EDA und Complex Event Processing (CEP)und stellt den Zusammenhang zwischen EDA und SOA her.Darüber hinaus veranschaulicht er die Architektur und denAufbau von Esper und zeigt CEP Einsatzszenarien amBeispiel von Esper.

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 2

• Integrationsprojekte als historischer Hintergrund für SOA und EDA

• Probleme bei der Integration von Systemen

– Netzwerke sind nicht zuverlässig– Netzwerke sind langsam– Systeme sind grundsätzlich verschieden– Änderungen sind unvermeidbar

Historisches Umfeld

2

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 3

Realtime Business

• Wirtschaftliche Potentiale entdecken– Marktbedürfnisse münden in Nachfragen– Früherkennung schafft Wettbewerbsvorteile

• unterstützende Trends– zunehmende Verfügbarkeit elektronischer Daten– elektronische Bereitstellung von Detailinformationen

• feinkörnige Daten• häufige Updates

– zeitnaher Zugriff Reaktionsschnittstellen möglich

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 4

• Unter "Real Time Business" versteht man die zeitnaheAuslieferung und Evaluierung von wirtschaftlichen Ereignissen.

• Zeitnah?

– Informationslatenz– Analyselatenz– Aktionslatenz

Real Time Business

3

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 5

• Sehr hohe Anforderungen– Extrem hohe Anzahl an Events (>> 100.000) ‏

• OLTP Architekturen können nicht so viele Ereignisse verarbeiten• „High transactions per second“

– eBay, Amazon 1,000 - 10,000 TPS• „Medium transactions per second“

– International web application100 - 1,000 TPS• Low transactions per second

– Small internal OLTP 10 - 100 TPS

Real Time Business Requirements

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 6

• Auf der Seite des „Transaction Processing Performance Council“liegt der aktuelle Spitzenwert bei 68,000 Transaktionen proSekunde (TPC-C). Dabei handelt es sich um einen Server mit 64Intel 1.6 GHz Prozessoren, also insgesamt 128 Kernen.

• 11 978 134 US$ = 8.09552176 million Euros

OLTP Benchmarks heute...

4

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 7

• Grundprinzipien

– sehr lose Kopplung

– basiert vollständig auf Nachrichten

– abstrahierter Nachrichtentransport

– Unabhängigkeit der Eventbearbeitung von Ort und Weg zwischen denbeteiligten Komponenten

EDA - Event Driven Architecture

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 8

Alternativen zu EDA

• Datenbanken– polling– Resourcenverschwendung– SQL unterstützt keine zeitlichen und kausalen Zusammenhänge

• Rule engines + JMS– keine Optimierung für zeitliche Eventflüsse– keine kontinuierliche Evaluierung von EPL-Statements

• Distributed Caches bzw. JINI spaces– bieten Listener aber kein EPL

5

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 9

• EDA konzentriert sich auf Anwendungen nach folgendem Muster– Events müssen zeitgerecht in Ihrem Eingang erkannt– konsumiert– und anschließend folgerichtig darauf reagiert werden

• Event getriebene Anwendungen lassen sich in natürlicherSprache regelartig komprimieren– - „wenn .. dann...“

• When-clause• Handler code

EDA

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 10

EDA Requirements

• Events benötigen Ströme– Durchsatz– Verfügbarkeit

• Events treten häufig auf– geringe Latenz

• Eventbeziehungen• Unterstützung einer Eventmodellierung

– ausdrucksstarke Semantik• Grund-Folge Modellierung

– Kopplung mit Stromkonzept zur In/Out-Adaptierung

6

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 11

• SOA– Services sind Remote Procedure Calls/Document Exchanges

• Point-To-Point Kommunikation– Lösungen für die Probleme Komplexität und Verwaltbarkeit:

• Orchestrierung• Monitoring

• EDA– Nachrichtenbasiert

• Geringe Kopplung

SOA / EDA Vergleich

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 12

• EDA konzentriert sich auf Anwendungen mitWahrnehmungsreaktionsmustern

– Oft verbunden mit komplexer Transaktionalität– Sehr viel „loser“ als typische SOA

• SOA Paradigma - „Dienst anbieten und Nachfragen bearbeiten“

– SOA ermöglicht, Events zwischen Systemen, Protokollen und Rollenauszutauschen

EDA vs. SOA

7

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 13

• Beobachtung einer Zustandsänderung– Quittierung einer Autorisierungsprüfung– Antwortzeit der letzten Anfrage– Messwert eines Sensors im Haus– Aktienpreisänderung

• benötigen eine technische Repräsentation– Schlüssel/Wert- Paare– XML– POJO

Events

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 14

Event Beispiele im Engineering

• KFZ-sensoren– Ermittlung von Betriebsgrößen durch verschiedene häufig über ein

Bussystem verbundender Sensoren• Drehgeschwindigkeit des Rades• Beschleunigung in allen drei Raumachsen• Luftdruck der Reifen• Aussenlufttemperatur• Luftfeuchtigkeit• Sitzbelastung• Lambda-Wert

• Anwendungsbeispiele– ABS– Einspritzsysteme– Airbagabschaltung– Verhaltensforschung?

8

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 15

• SEP– Simple Event Processing

• ESP– Event Stream Processing

• CEP– Complex Event Processing

Eventverarbeitung bei EDA

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 16

• Ein Ereignis kann als wichtige Zustandsänderung in einerNachrichtenquelle angesehen werden.

• Diese Ereignisse lösen durch ihr Auftreten Prozesse in denSystemen aus, die die Nachricht empfangen werden.

• Das ist Verarbeiten von Nachrichten, wie es in der „JavaMessaging Service“ Spezifikation beschrieben ist.

SEP – Simple Event Processing

9

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 17

• Unter „Event Stream Processing“ versteht man die flussartigeBearbeitung der eingehenden Nachrichten.

• Bei der Abarbeitung der Nachrichten ist nicht jede einzelneNachricht ausschlaggebend, sondern der Fluss als solches. Sowird zum Beispiel erst reagiert, wenn ein Temperatursensor füreinen bestimmten Zeitraum durchgehend eine bestimmteTemperatur über- oder unterschritten hat.

ESP – Event Stream Processing

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 18

• Unter CEP versteht man die Erkennung von komplexen Musterninnerhalb eines oder sogar zwischen verschiedenenEreignisströmen. So haben eventuell Ereignisse wenig Relevanzim einzelnen, sind aber in bestimmten Zusammenhängen Indizeines besonderen Ereignisses.

• Ereignisse können in kausaler, temporaler oder räumlicherKorrelation auftreten. Die einzelnen Ereignisströme können einsehr hohes Aufkommen von Ereignissen aufweisen.

CEP – Complex Event Processing

10

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 19

• What is a complex event?

– It is an event that could only happen if lots of other events happend.

– siehe auch “The Power of Events”An introduction to complex event processing in distributed enterprisesystems

by David Luckham

Complex Event

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 20

• Esper ist ein Softwarebaustein für CEP und ESP Anwendungen,der in Java als Esper und .NET als Nesper bereitgestellt wird.

• Esper erlaubt die zeitnahe Entwicklung von Anwendungen mithohem Aufkommen eingehender Ereignisse bzw. Nachrichten.Dabei können Ereignisse auf verschiedene Arten in Echtzeitanalysiert, gefiltert und konsumiert werden.

• Esper Homepage: http://esper.codehaus.org– Lizenz: dual licensing, GPL + commercial license through Espertech– Umfangreiche Dokumentation– viele Beispiele– Abfragemuster auf der Homepage– Aktuelle Version: 2.3 ?

Esper

20

11

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 21

Big picture

© EsperTech

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 22

• Kontinuierliche Bearbeitung

• Listener werden benachrichtigt, wenn sich die Ereignismengeverändert

• Datenbank „inside-out“

– Nicht Anfragen gegen die Daten ausführen sondern Daten durch dieAnfragen schicken.

Processing Model

12

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 23

• Analogie zu SQL

– Ereignisströme sind Tabellen– Ein Ereignis entspring ein Datensatz– Eigenschaften im Ereignis entsprechen Datenfelder

• EQL Queries lassen sich grob einteilen in– ESP Queries und– CEP Queries

EQL Kurz & Gut

23

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 24

String stmtText = "insert into ThroughputPerFeed " + " select feed, count(*) as cnt " + "from " + FeedEvent.class.getName() + ".win:time_batch(1 sec) " + "group by feed";

EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();EPStatement stmt = engine.getEPAdministrator().createEQL(stmtText);

stmt.addListener(new MyListener());

while(true) { FeedEvent event; event = new FeedEvent(FeedEnum.FEED_A, "IBM", 70); engine.getEPRuntime().sendEvent(event); event = new FeedEvent(FeedEnum.FEED_B, "IBM", 70); engine.getEPRuntime().sendEvent(event); }

Esper 1x1

13

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 25

• Abfragen über

– Einzelne Ereignisse– Ereignisse in einem Zeitfenster– Ereignisse in einem Mengen-Fenster

ESP Queries

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 26

select * from Withdrawal

14

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 27

select * from Withdrawal.win:length(5)

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 28

select * fromWithdrawal(amount>=200).win:length(5)

15

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 29

• Abfragen über

– Muster zwischen Ereignisse/ Ergenissstöme

– Verwendeter Begriff: „pattern“

– select * from pattern[

every s = StartEvent -> a = AbortedEvent(exchangeId = s.echangeId) where timer:within(30 sec)]

CEP Queries

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 30

• Patterns werden über den Konstrukt „pattern […]“ definiert

– Wiederholungsangabe mit „every“– Logische Operatoren

• and, or, not– Zeitliche Operatoren

• „->“ (followed-by)– Guards are where-conditions that control the lifecycle of

subexpressions.• timer:within

– Observers observe time events as well as other events.• timer:interval• timer:at

Event Pattern Überblick

16

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 31

• ( A or B ) where timer:within (5 sec)– Ein A oder B in den nächsten 5 Sekunden

• (every A) where timer:within( 10 sec )– Alle A Ereignisse in den nächsten 10 Sekunden

• A -> timer:interval(10 seconds)– Nach A 10 Sekunden warten

• every timer:at(5, *, *, *, *)‏– Alle 5 Minuten

Guards und Observer

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 32

insert into TicksPerSecondselect feed, count(*) as cntfrom MarketDataEvent.win:time_batch(1 sec)group by feed

Computing Rates Per Feed

17

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 33

We define a rapid fall-off by alerting when the number of ticks persecond for any second falls below 75% of the average number ofticks per second over the last 10 seconds.

Detecting a fall-off:select feed, avg(cnt) as avgCnt, cnt as feedCntfrom TicksPerSecond.win:time(10 seconds)group by feed having cnt < avg(cnt) * 0.75

Rapid fall-off

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 34

• Esper Benchmark– RFID tracking sample– 1000 gruppen zu drei Elementen , 20 Zonen– 2000 registrierte Statements– ~ 110 000 Events/s

Performance Aspekte

18

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 35

• Business/ System Monitoring– Ausführliche Fallstudie bei Esper zu Terminalüberwachung– Überwachung von Informationen aus Trackingdevices– Echtzeitauswertung von Finanzdaten–

• Inteligente Steuerungssysteme– Automobil– Haussteuerung/ Hausautomatisierung

Einsatzscenarien

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 36

• „By 2011, a new generation of application platforms stemmingfrom the convergence of diverse XTP-enabling technologies willsupersede Java EE and .NET as the platforms of choice for large-scale, business-critical applications (0.8 probability).“

• „By 2010, support for advanced, event-centric programmingmodels will be a standard feature in all application platformsaimed at XTP applications (0.8 probability).“

– Quelle: Gartner RAS Core Research Note G00146107 Q1/2007

EDAS Zukunft ?

19

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 37

Event Driven Applicationservers

• Middleware für Deployment,Laufzeit und Management von EDA-Anwendungen– Grundlegende Konzepte

• Event Stream Processing (ESP)• Complex Event Processing (CEP)

– offen– standardisiert– Java/.Net support

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 38

EDAS Services

• Abstraktion von Transport und Transformation• Ortstransparenz

– Eventrouting zwischen EDAS-instanzen– Listener können an beliebigen Instanzen registriert werden

• Event Protokollierung/Speicherung• Replay-mechanismen• Finite Zustandsautomaten

– Modellierung– Dialogzustand

• Zeitgeber und Kalender

20

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 39

Event Driven AppServer

EDAS Plattform

EDAS Studio

HA

Transport/Format

-SDK

Built-in transport/formats

specific transport/formats

EDB Container

Event DrivenBean

Security

RealTime

Transport/Format

-SDK

Built-in transport/formats

specific transport/formats

DB Connector

Event Input Event Output

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 40

Esper in JEE

• Vorteile– Deployment– Monitoring– Tooling– Transportabstraktion– Anbieterunabhängigkeit

• Nachteile– Performance– Alternativen zu JMS/HTTP– Entwicklungs- und Testaufwand

JMS

MDBContainer

HTTP/RMIEsper

EJB/ServletContainer

JEE Server

Esper

21

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 41

Idee: Event Driven Bean

• Annotationsbasiert und Typisiert

@EventEnginepublic class RFIDQuietTag {

@When(“every LR(zone=1) ->(timer:interval(1min) and not LR(zone!=1))“)

public void onEvent(LR assetEvent) {//action handler

}}

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 42

Esper + Microkernel

• Vorteile– Anbieterunabhängigkeit(JMX,OSGI..)– Leichtgewichtiger Container– Deployment– Monitoring– Performance

• Nachteile– Transportabstraktion– Tooling– Entwicklungs- und Testaufwand– Operating

Remote

Client

Microkernel

Esper Engines

Additional Services

Java Virtual Machine

Proxy

Connector

22

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 43

Esper als EDAS Basis

Esper Esper- Nischen-integration Produkt

Open + ++ ?Komm. Support – – ++Performance + +/– +(+?)Embeddable ++ + –Tools +/– + ?Monitoring +/– + ?

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 44

Wishlist - EDAS Tooling

• Typical Software Lifecycle– Event ontology– Event Model– Standardisierte Deployment Unit

• Event Driven Bean– Debug– Tracing– Test– Visualization– Monitoring

23

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 45

Zusammenfassung

• EDA Architekturparadigma für „Real Time Business“- Anwendung– Anwendungen mit Wahrnehmungsmustern– komplementär zu SOA

• CEP/ESP sind– zur Mustererkennung werden Eventdatenströme gefiltert, aggregiert

und korreliert– besitzen Zeit und Kausalitätsanforderungen an eine

Programmiersystem

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 46

Zusammenfassung

• Esper– ESP/CEP Engine– Leichtgewichtig/integrierbar/open Source– Eigene EQL

• Ausdruckstark• Zeitfenster und Zeitabhängigkeiten modellierbar

• EDAS– erleichtert EDA Entwicklung ähnlich JEE Containern

• schnell wachsender Toolmarkt ?

24

© 2008 Orientation in Objects GmbH Esper - Open Source Complex Event Processing 47

Links

• Esper at Codehaus– http://esper.codehaus.org– NEsper for .NET

• EsperTech Inc.– http://www.espertech.com– support, services, and training

• Literatur– David Luckham: The Power of Events

• CEP portal– http://www.complexevents.com

• Forum– [email protected]

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]: 1.3

? ?

???

Fragen ?

25

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]: 1.3

Vielen Dank für IhreAufmerksamkeit !