EDA und Complex Event Processingmit Esper
Papick Garcia     Taboada
Papick Garcia     Taboada
developer?
Papick Garcia     Taboada      hacker
Papick Garcia     Taboada  dipl. hacker
more magic developer?
Papick Garcia        Taboadatechnology scout
Social Media
pgt technology scouting GmbH                http://pgt.de
http://blog.oio.de
Integrationsszenarien mit ereignisgesteuertenArchitekturansätzen in Java umsetzen?Event-driven Architecture (EDA) wird heu...
Integrationsszenarien mit ereignisgesteuertenArchitekturansätzen in Java umsetzen?Event-driven Architecture (EDA) wird heu...
Architektur?
Integrationsprojekte als historischer   Hintergrund für SOA und EDA
Historisches                      Umfeld-Probleme bei der Integration von Systemen -Netzwerke sind nicht  zuverlässig -Net...
LösungsansätzeDateiübertragungGemeinsame DatenbankEntfernte MethodenaufrufeRemote Procedure Calls...Nachrichtendienste    ...
LösungsansätzeDateiübertragungGemeinsame DatenbankEntfernte MethodenaufrufeRemote Procedure Calls...   SOANachrichtendiens...
http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
EDA vs. SOA     nein.  EDA und SOA
http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html
http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html
Ereignisströme? Korrelation? Muster?
Business      case?real time business      anyone?
IBM ad,Heatrow Airport, 2008...
Real Time BusinessUnter "Real Time Business" versteht man diezeitnahe Auslieferung und Evaluierung vonwirtschaftlichen Ere...
Zeitnah?  -Informationslatenz  -Analyselatenz  -Aktionslatenz
Realtime Business- Wirtschaftliche Potentiale entdecken  - Marktbedürfnisse münden in Nachfragen  - Früherkennung schafft ...
Business       case?business inteligence      anyone?
Business Inteligence  - traditional business intelligence presents historical information    to users for analysis  - real...
Real Time Business PerformanceRequirements - Sehr hohe Anforderungen   - Extrem hohe Anzahl an Events (>> 100.000) - OLTP ...
Abgrenzung-BAM  - Deklarativ, 5s Reaktionszeitfenster  - 1000 Events/s-Rules  - Reichhaltige Konfiguration  - 10000-100000 ...
Business       case?aber wer, wo, warum?
EDA Anwendungsgebiete- Transport & Logistik  - gezielte Transportsteuerung- Telekommunikation  - Transaktionsverarbeitung-...
Einsatzszenarien - Business/ System Monitoring  - Ausführliche Fallstudie bei Esper zu Terminalüberwachung  - Überwachung ...
Adoptionsstatus in der Industrie -Eher exotische Business Cases?  -Militär  -Casinos  -Spekulative Finanzinstrumente  -Mor...
Event Driven Architecture- Grundprinzipien: - sehr lose Kopplung - basiert vollständig auf Nachrichten - abstrahierter Nac...
EDA Paradigma-EDA konzentriert sich auf Anwendungen nach folgendem Muster 1.Events müssen zeitgerecht in Ihrem Eingang   e...
EDA Paradigma-Event getriebene Anwendungen lassen sich in natürlicher Sprache regelartig komprimieren - „wenn .. dann...“ ...
Events- Beobachtung einer Zustandsänderung  - Quittierung einer Autorisierungsprüfung  - Antwortzeit der letzten Anfrage  ...
Event Beispiele im EngineeringKFZ-sensoren:Ermittlung von Betriebsgrößen durch verschiedene häufigüber ein Bussystem verbun...
Eventverarbeitung bei EDA-SEP: Simple Event Processing-ESP: Stream Event Processing-CEP: Complex Event Processing
Simple Event Processing-Ein Ereignis kann als wichtige Zustandsänderung in einer Nachrichtenquelle angesehen werden.-Diese...
Event Stream Processing-Unter „Event Stream Processing“ versteht man die flussartige Bearbeitung der eingehenden Nachrichte...
ESP- Überwachung von Eventstromdaten  - Analyse der Events  - Reaktion bei bestimmten Gegebenheiten      - z.B. Kfz-ABS:  ...
Complex EventWhat is a complex event?„It is an event that could only happenif lots of other events happend.“              ...
CEP simply explained  http://soa-eda.blogspot.com/2008/04/cep-simply-explained.html
Complex Event ProcessingUnter CEP versteht man die Erkennung vonkomplexen Mustern innerhalb eines oder sogarzwischen versc...
Complex Event ProcessingEreignisse können in  -kausaler,  -temporaler oder  -räumlicherKorrelation auftreten.Die einzelnen...
EDA Infrastruktur-EXtreme Transaction Processing (XTP)  -Begriff wurde 2003 durch Gartner erstmals genannt  -> 100 000 Eve...
EDAS Zukunft ?                      „By 2011, a new generation of application platforms stemming                      from...
automated emergency call                                wenn                      Fahrersitzbelastungsän                  ...
Wie?
EDA with Java-SEP  -Java Messaging Service  -Enterprise Service Bus-ESP & CEP  -No standard	  -Only products
Java Messaging Service -Well known technology in the Java EE stack  -Security, transaction -Many implementations... -JMS s...
Point-To-Point
Publish-and-Subscribe
ESB – Enterprise Service Bus                http://servicemix.apache.org/home.html
ESP, CEP?
Esper- Esper ist ein Softwarebaustein für CEP und ESP Anwendungen, der in Java  als Esper und .NET als Nesper bereitgestel...
Performance Aspekte-Esper Benchmark  -RFID tracking sample  -1000 gruppen zu drei Elementen , 20 Zonen  -2000 registrierte...
Big picture   © EsperTech
Processing Model-Kontinuierliche Bearbeitung-Listener werden benachrichtigt, wenn sich die Ereignismenge verändert-Datenba...
API Overview- EPServiceProvider  - Engine Prozessierungseinheit  - Threads, Zeit, Streams werden hier verwaltet- EPStateme...
Events-Sehr flexibler Ansatz-Esper verschickt EventBeans-EventBeans können   -POJOs   -Java.util.Map   -org.w3c.dom.Nodeent...
EQL Kurz & Gut-Analogie zu SQL - Ereignisströme sind Tabellen - Ein Ereignis entspring ein Datensatz - Eigenschaften im Er...
Esper 1x1
EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();
EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();EPStatement stmt = engine.getEPAdministrator().cr...
EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();EPStatement stmt = engine.getEPAdministrator().cr...
EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();EPStatement stmt = engine.getEPAdministrator().cr...
String stmtText =       "insert into ThroughputPerFeed " +       "select feed, count(*) as cnt " +       "from " + FeedEve...
ESP Queries-Abfragen über:  -Einzelne Ereignisse  -Ereignisse in einem Zeitfenster  -Ereignisse in einem Mengen-Fenster
select * from Withdrawal
select * from Withdrawal.win:length(5)
select * fromWithdrawal(amount>=200).win:length(5)
CEP Queries-Abfragen über  -Muster zwischen Ereignisse/ Ergenissstöme  -Verwendeter Begriff:                          „PAT...
Event Pattern Überblick- Patterns werden über den Konstrukt „pattern […]“ definiert  - Wiederholungsangabe mit „every“  - L...
pattern [ every A -> B ]
pattern [ every (A -> B) ]
pattern [ A every -> B ]
pattern [ every A -> every B ]
Guards und Observer- ( A or B ) where timer:within (5 sec)   - Ein A oder B in den nächsten 5 Sekunden- (every A) where ti...
Zeit für eine kleine Demo?
Fragen?
Danke!
EDA und Complex Event Processing  mit Esper
EDA und Complex Event Processing  mit Esper
EDA und Complex Event Processing  mit Esper
EDA und Complex Event Processing  mit Esper
EDA und Complex Event Processing  mit Esper
EDA und Complex Event Processing  mit Esper
Nächste SlideShare
Wird geladen in …5
×

EDA und Complex Event Processing mit Esper

2.257 Aufrufe

Veröffentlicht am

EDA und Complex Event Processing mit Esper

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

EDA und Complex Event Processing mit Esper

  1. 1. EDA und Complex Event Processingmit Esper
  2. 2. Papick Garcia Taboada
  3. 3. Papick Garcia Taboada
  4. 4. developer?
  5. 5. Papick Garcia Taboada hacker
  6. 6. Papick Garcia Taboada dipl. hacker
  7. 7. more magic developer?
  8. 8. Papick Garcia Taboadatechnology scout
  9. 9. Social Media
  10. 10. pgt technology scouting GmbH http://pgt.de
  11. 11. http://blog.oio.de
  12. 12. Integrationsszenarien mit ereignisgesteuertenArchitekturansätzen in Java umsetzen?Event-driven Architecture (EDA) wird heuteals komplementärer Ansatz zu SOAwahrgenommen.Unter EDA versteht man allerdings mehr als nurEntkopplung mittels "Single Event Processing": DieVerarbeitung von Ereignisströmen und dieKorrelation von Ereignissen gehören auch zudiesem Themenkomplex.Esper ist ein leichtgewichtiges Open-Source-Tool,das die Verarbeitung von Ereignisströmen erlaubt.
  13. 13. Integrationsszenarien mit ereignisgesteuertenArchitekturansätzen in Java umsetzen?Event-driven Architecture (EDA) wird heuteals komplementärer Ansatz zu SOAwahrgenommen.Unter EDA versteht man allerdings mehr als nurEntkopplung mittels "Single Event Processing": DieVerarbeitung von Ereignisströmen und dieKorrelation von Ereignissen gehören auch zudiesem Themenkomplex.Esper ist ein leichtgewichtiges Open-Source-Tool,das die Verarbeitung von Ereignisströmen erlaubt.
  14. 14. Architektur?
  15. 15. Integrationsprojekte als historischer Hintergrund für SOA und EDA
  16. 16. Historisches Umfeld-Probleme bei der Integration von Systemen -Netzwerke sind nicht zuverlässig -Netzwerke sind langsam -Systeme sind grundsätzlich verschieden -Änderungen sind unvermeidbar
  17. 17. LösungsansätzeDateiübertragungGemeinsame DatenbankEntfernte MethodenaufrufeRemote Procedure Calls...Nachrichtendienste http://www.enterpriseintegrationpatterns.com/toc.html
  18. 18. LösungsansätzeDateiübertragungGemeinsame DatenbankEntfernte MethodenaufrufeRemote Procedure Calls... SOANachrichtendienste EDA
  19. 19. http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
  20. 20. http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
  21. 21. http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
  22. 22. http://geekandpoke.typepad.com/geekandpoke/2009/12/from-hype-to-hype.html
  23. 23. EDA vs. SOA nein. EDA und SOA
  24. 24. http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html
  25. 25. http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html
  26. 26. Ereignisströme? Korrelation? Muster?
  27. 27. Business case?real time business anyone?
  28. 28. IBM ad,Heatrow Airport, 2008...
  29. 29. Real Time BusinessUnter "Real Time Business" versteht man diezeitnahe Auslieferung und Evaluierung vonwirtschaftlichen Ereignissen All real time business intelligence systems have some latency, but the goal is to minimize the time from the business event happening to a corrective action or notification being initiated
  30. 30. Zeitnah? -Informationslatenz -Analyselatenz -Aktionslatenz
  31. 31. 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
  32. 32. Business case?business inteligence anyone?
  33. 33. Business Inteligence - traditional business intelligence presents historical information to users for analysis - real time business intelligence compares current business events with historical patterns to detect problems or opportunities automatically - enables corrective actions to be initiated and or business rules to be adjusted to optimize business processes
  34. 34. Real Time Business PerformanceRequirements - Sehr hohe Anforderungen - Extrem hohe Anzahl an Events (>> 100.000) - OLTP Architekturen können nicht so viele Ereignisse verarbeiten -„High transactions per second“ - 1,000 - 10,000 TPS: eBay, Amazon -„Medium transactions per second“ - 100 - 1,000 TPS: International web application -„Low transactions per second“ - 10 - 100 TPS: Small internal OLTP
  35. 35. Abgrenzung-BAM - Deklarativ, 5s Reaktionszeitfenster - 1000 Events/s-Rules - Reichhaltige Konfiguration - 10000-100000 Events/s-CEP - InMemory, Low Latency, „Real Time“ - >100000 Events/s
  36. 36. Business case?aber wer, wo, warum?
  37. 37. EDA Anwendungsgebiete- Transport & Logistik - gezielte Transportsteuerung- Telekommunikation - Transaktionsverarbeitung- Produktion - Produktionsüberwachung- Finanzdienstleistungen - algorithmischer Aktienhandel- Versicherungen - Risikoerkennung
  38. 38. Einsatzszenarien - Business/ System Monitoring - Ausführliche Fallstudie bei Esper zu Terminalüberwachung - Überwachung von Informationen aus Trackingdevices - Echtzeitauswertung von Finanzdaten - Intelligente Steuerungssysteme - Automobil - Haussteuerung/ Hausautomatisierung
  39. 39. Adoptionsstatus in der Industrie -Eher exotische Business Cases? -Militär -Casinos -Spekulative Finanzinstrumente -Moralisch bedenklich
  40. 40. Event Driven Architecture- Grundprinzipien: - sehr lose Kopplung - basiert vollständig auf Nachrichten - abstrahierter Nachrichtentransport - Unabhängigkeit der Eventbearbeitung von Ort und Weg zwischen den beteiligten Komponenten
  41. 41. EDA Paradigma-EDA konzentriert sich auf Anwendungen nach folgendem Muster 1.Events müssen zeitgerecht in Ihrem Eingang erkannt 2.konsumiert 3.und anschließend folgerichtig darauf reagiert werden
  42. 42. EDA Paradigma-Event getriebene Anwendungen lassen sich in natürlicher Sprache regelartig komprimieren - „wenn .. dann...“ -When-clause -Handler code
  43. 43. Events- 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
  44. 44. Event Beispiele im EngineeringKFZ-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 Anwendungsbeispiele: ABS, - Sitzbelastung Einspritzsysteme, Airbagabschaltung, Verhaltensforschung? - Lambda-Wert
  45. 45. Eventverarbeitung bei EDA-SEP: Simple Event Processing-ESP: Stream Event Processing-CEP: Complex Event Processing
  46. 46. Simple Event Processing-Ein Ereignis kann als wichtige Zustandsänderung in einer Nachrichtenquelle angesehen werden.-Diese Ereignisse lösen durch ihr Auftreten Prozesse in den Systemen aus, die die Nachricht empfangen werden.-Das ist Verarbeiten von Nachrichten, wie es in der „Java Messaging Service“ Spezifikation beschrieben ist. 19
  47. 47. Event Stream Processing-Unter „Event Stream Processing“ versteht man die flussartige Bearbeitung der eingehenden Nachrichten.-Bei der Abarbeitung der Nachrichten ist nicht jede einzelne Nachricht ausschlaggebend, sondern der Fluss als solches. So wird zum Beispiel erst reagiert, wenn ein Temperatursensor für einen bestimmten Zeitraum durchgehend eine bestimmte Temperatur über- oder unterschritten hat.
  48. 48. ESP- Überwachung von Eventstromdaten - Analyse der Events - Reaktion bei bestimmten Gegebenheiten - z.B. Kfz-ABS: - Wenn Drehgeschwindigkeit des Rades beim Auto null während Fahrzeugbeschleunigung negativ dann öffne Bremsdruckventil- Grund-Folge -Modellierung nutzt als Grund ein „When “-clause - wird auch als ESP/ CEP-Statement bezeichnet
  49. 49. Complex EventWhat is a complex event?„It is an event that could only happenif lots of other events happend.“ „The Power of Events“ An introduction to complex event processing in distributed enterprise systems by David Luckham
  50. 50. CEP simply explained http://soa-eda.blogspot.com/2008/04/cep-simply-explained.html
  51. 51. Complex Event ProcessingUnter CEP versteht man die Erkennung vonkomplexen Mustern innerhalb eines oder sogarzwischen verschiedenen Ereignisströmen.So haben eventuell Ereignisse wenig Relevanz imeinzelnen, sind aber in bestimmten ZusammenhängenIndiz eines besonderen Ereignisses.
  52. 52. Complex Event ProcessingEreignisse können in -kausaler, -temporaler oder -räumlicherKorrelation auftreten.Die einzelnen Ereignisströme können ein sehrhohes Aufkommen von Ereignissen aufweisen.
  53. 53. EDA Infrastruktur-EXtreme Transaction Processing (XTP) -Begriff wurde 2003 durch Gartner erstmals genannt -> 100 000 Events/s -Korrelationsrate < 2% -Kombination von Events mit langlebigen Historiendaten-Event Repositories und Ontologien
  54. 54. EDAS Zukunft ? „By 2011, a new generation of application platforms stemming from the convergence of diverse XTP-enabling technologies will supersede 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 programming models will be a standard feature in all application platforms aimed at XTP applications (0.8 probability).“Quelle: Gartner RAS Core Research Note G00146107 Q1/2007
  55. 55. automated emergency call wenn Fahrersitzbelastungsän derung auf null innerhalb 200ms mit negativer Beschleunigung > a und Reifendruckabfall dann automatische Anwahl Notrufzentrale
  56. 56. Wie?
  57. 57. EDA with Java-SEP -Java Messaging Service -Enterprise Service Bus-ESP & CEP -No standard -Only products
  58. 58. Java Messaging Service -Well known technology in the Java EE stack -Security, transaction -Many implementations... -JMS specific terms and definitions -Two event processing models -Point-To-Point -Publish-and-Subscribe
  59. 59. Point-To-Point
  60. 60. Publish-and-Subscribe
  61. 61. ESB – Enterprise Service Bus http://servicemix.apache.org/home.html
  62. 62. ESP, CEP?
  63. 63. Esper- 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 mit hohem Aufkommen eingehender Ereignisse bzw. Nachrichten. Dabei können Ereignisse auf verschiedene Arten in Echtzeit analysiert, 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
  64. 64. Performance Aspekte-Esper Benchmark -RFID tracking sample -1000 gruppen zu drei Elementen , 20 Zonen -2000 registrierte Statements -~ 110 000 Events/s
  65. 65. Big picture © EsperTech
  66. 66. Processing Model-Kontinuierliche Bearbeitung-Listener werden benachrichtigt, wenn sich die Ereignismenge verändert-Datenbank „inside-out“ -Nicht Anfragen gegen die Daten ausführen sondern Daten durch die Anfragen schicken.
  67. 67. API Overview- EPServiceProvider - Engine Prozessierungseinheit - Threads, Zeit, Streams werden hier verwaltet- EPStatement - Statements / Queries - in EQL (Event Query Language)- UpdateListener - Listener - POJI
  68. 68. Events-Sehr flexibler Ansatz-Esper verschickt EventBeans-EventBeans können -POJOs -Java.util.Map -org.w3c.dom.Nodeenthalten.
  69. 69. EQL Kurz & Gut-Analogie zu SQL - Ereignisströme sind Tabellen - Ein Ereignis entspring ein Datensatz - Eigenschaften im Ereignis entsprechen Datenfelder-EQL Queries lassen sich grob in - ESP Queries und - CEP Queries einteilen.
  70. 70. Esper 1x1
  71. 71. EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();
  72. 72. EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();EPStatement stmt = engine.getEPAdministrator().createEQL(stmtText);
  73. 73. EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();EPStatement stmt = engine.getEPAdministrator().createEQL(stmtText);stmt.addListener(new MyListener());
  74. 74. 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); }
  75. 75. String stmtText = "insert into ThroughputPerFeed " + "select feed, count(*) as cnt " + "from " + FeedEvent.class.getName() + ".win:time_batch(1 sec) " + "group by feed";
  76. 76. ESP Queries-Abfragen über: -Einzelne Ereignisse -Ereignisse in einem Zeitfenster -Ereignisse in einem Mengen-Fenster
  77. 77. select * from Withdrawal
  78. 78. select * from Withdrawal.win:length(5)
  79. 79. select * fromWithdrawal(amount>=200).win:length(5)
  80. 80. CEP Queries-Abfragen über -Muster zwischen Ereignisse/ Ergenissstöme -Verwendeter Begriff: „PATTERN“
  81. 81. Event Pattern Überblick- 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
  82. 82. pattern [ every A -> B ]
  83. 83. pattern [ every (A -> B) ]
  84. 84. pattern [ A every -> B ]
  85. 85. pattern [ every A -> every B ]
  86. 86. Guards und Observer- ( 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
  87. 87. Zeit für eine kleine Demo?
  88. 88. Fragen?
  89. 89. Danke!

×