SlideShare une entreprise Scribd logo
1  sur  95
EDA und Complex Event Processing
mit Esper
Papick Garcia
     Taboada
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
Papick Garcia
     Taboada
developer?
Papick Garcia
     Taboada

      hacker
EDA und Complex Event Processing  mit Esper
Papick Garcia
     Taboada

  dipl. hacker
more magic developer?
Papick Garcia
        Taboada

technology scout
Social Media
pgt technology scouting GmbH

                http://pgt.de
EDA und Complex Event Processing  mit Esper
http://blog.oio.de
Integrationsszenarien mit ereignisgesteuerten
Architekturansätzen in Java umsetzen?
Event-driven Architecture (EDA) wird heute
als komplementärer Ansatz zu SOA
wahrgenommen.
Unter EDA versteht man allerdings mehr als nur
Entkopplung mittels "Single Event Processing": Die
Verarbeitung von Ereignisströmen und die
Korrelation von Ereignissen gehören auch zu
diesem Themenkomplex.
Esper ist ein leichtgewichtiges Open-Source-Tool,
das die Verarbeitung von Ereignisströmen erlaubt.
Integrationsszenarien mit ereignisgesteuerten
Architekturansätzen in Java umsetzen?
Event-driven Architecture (EDA) wird heute
als komplementärer Ansatz zu SOA
wahrgenommen.
Unter EDA versteht man allerdings mehr als nur
Entkopplung mittels "Single Event Processing": Die
Verarbeitung von Ereignisströmen und die
Korrelation von Ereignissen gehören auch zu
diesem Themenkomplex.
Esper ist ein leichtgewichtiges Open-Source-Tool,
das die Verarbeitung von Ereignisströmen erlaubt.
Architektur?
Integrationsprojekte als historischer
   Hintergrund für SOA und EDA
Historisches
                      Umfeld

-Probleme bei der Integration von
 Systemen
 -Netzwerke sind nicht
  zuverlässig
 -Netzwerke sind langsam
 -Systeme sind grundsätzlich
  verschieden
 -Änderungen sind
  unvermeidbar
Lösungsansätze
Dateiübertragung

Gemeinsame Datenbank

Entfernte Methodenaufrufe

Remote Procedure Calls...

Nachrichtendienste



                            http://www.enterpriseintegrationpatterns.com/toc.html
Lösungsansätze
Dateiübertragung

Gemeinsame Datenbank

Entfernte Methodenaufrufe

Remote Procedure Calls...   SOA
Nachrichtendienste
                            EDA
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 Business

Unter "Real Time Business" versteht man die
zeitnahe Auslieferung und Evaluierung von
wirtschaftlichen 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
Zeitnah?




  -Informationslatenz
  -Analyselatenz
  -Aktionslatenz
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
Business
       case?
business inteligence
      anyone?
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
Real Time Business Performance
Requirements
 - 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
Abgrenzung

-BAM
  - Deklarativ, 5s Reaktionszeitfenster
  - 1000 Events/s
-Rules
  - Reichhaltige Konfiguration
  - 10000-100000 Events/s
-CEP
  - InMemory, Low Latency, „Real Time“
  - >100000 Events/s
Business
       case?
aber wer, wo, warum?
EDA Anwendungsgebiete

- Transport & Logistik
  - gezielte Transportsteuerung
- Telekommunikation
  - Transaktionsverarbeitung
- Produktion
  - Produktionsüberwachung
- Finanzdienstleistungen
  - algorithmischer Aktienhandel
- Versicherungen
  - Risikoerkennung
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
Adoptionsstatus in der Industrie



 -Eher exotische Business Cases?
  -Militär
  -Casinos
  -Spekulative Finanzinstrumente
  -Moralisch bedenklich
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
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
EDA Paradigma



-Event getriebene Anwendungen lassen sich in
 natürlicher Sprache regelartig komprimieren
 - „wenn .. dann...“
   -When-clause
   -Handler code
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
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
                                                Anwendungsbeispiele: ABS,
  - Sitzbelastung                             Einspritzsysteme,
                                              Airbagabschaltung,
                                                Verhaltensforschung?
  - Lambda-Wert
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 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
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.
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
Complex Event




What is a complex event?
„It is an event that could only happen
if lots of other events happend.“

                                         „The Power of Events“
                                           An introduction to complex event
                                           processing in distributed
                                           enterprise
                                           systems	

     	

     	

  	

                                           	

        by David Luckham
CEP simply explained
  http://soa-eda.blogspot.com/2008/04/cep-simply-explained.html
Complex Event Processing


Unter CEP versteht man die Erkennung von
komplexen Mustern innerhalb eines oder sogar
zwischen verschiedenen Ereignisströmen.

So haben eventuell Ereignisse wenig Relevanz im
einzelnen, sind aber in bestimmten Zusammenhängen
Indiz eines besonderen Ereignisses.
Complex Event Processing


Ereignisse können in
  -kausaler,
  -temporaler oder
  -räumlicher
Korrelation auftreten.

Die einzelnen Ereignisströme können ein sehr
hohes Aufkommen von Ereignissen aufweisen.
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
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
automated emergency call

                                wenn
                      Fahrersitzbelastungsän
                          derung auf null
                             innerhalb
                               200ms
                                 mit
                             negativer
                        Beschleunigung > a
                                 und
                         Reifendruckabfall
                                dann
                       automatische Anwahl
                          Notrufzentrale
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 specific terms and definitions
 -Two event processing models
  -Point-To-Point
  -Publish-and-Subscribe
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 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
Performance Aspekte



-Esper Benchmark
  -RFID tracking sample
  -1000 gruppen zu drei Elementen , 20 Zonen
  -2000 registrierte Statements
  -~ 110 000 Events/s
Big picture   © EsperTech
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.
API Overview

- EPServiceProvider
  - Engine Prozessierungseinheit
  - Threads, Zeit, Streams werden hier verwaltet
- EPStatement
  - Statements / Queries
  - in EQL (Event Query Language)
- UpdateListener
  - Listener
  - POJI
Events

-Sehr flexibler Ansatz
-Esper verschickt EventBeans
-EventBeans können
   -POJOs
   -Java.util.Map
   -org.w3c.dom.Node
enthalten.
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.
Esper 1x1
EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();
EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();


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


EPStatement stmt = engine.getEPAdministrator().createEQL(stmtText);

stmt.addListener(new MyListener());
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);
        }
String stmtText =
       "insert into ThroughputPerFeed " +
       "select feed, count(*) as cnt " +
       "from " + FeedEvent.class.getName() +
       ".win:time_batch(1 sec) " +
       "group by feed";
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 * from
Withdrawal(amount>=200).win:length(5)
CEP Queries



-Abfragen über
  -Muster zwischen Ereignisse/ Ergenissstöme
  -Verwendeter Begriff:
                          „PATTERN“
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
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 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
Zeit für eine kleine Demo?
Fragen?
Danke!

Contenu connexe

En vedette

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

En vedette (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

EDA und Complex Event Processing mit Esper

  • 1. EDA und Complex Event Processing mit Esper
  • 2. Papick Garcia Taboada
  • 7. Papick Garcia Taboada
  • 9. Papick Garcia Taboada hacker
  • 11. Papick Garcia Taboada dipl. hacker
  • 13. Papick Garcia Taboada technology scout
  • 15. pgt technology scouting GmbH http://pgt.de
  • 18. Integrationsszenarien mit ereignisgesteuerten Architekturansätzen in Java umsetzen? Event-driven Architecture (EDA) wird heute als komplementärer Ansatz zu SOA wahrgenommen. Unter EDA versteht man allerdings mehr als nur Entkopplung mittels "Single Event Processing": Die Verarbeitung von Ereignisströmen und die Korrelation von Ereignissen gehören auch zu diesem Themenkomplex. Esper ist ein leichtgewichtiges Open-Source-Tool, das die Verarbeitung von Ereignisströmen erlaubt.
  • 19. Integrationsszenarien mit ereignisgesteuerten Architekturansätzen in Java umsetzen? Event-driven Architecture (EDA) wird heute als komplementärer Ansatz zu SOA wahrgenommen. Unter EDA versteht man allerdings mehr als nur Entkopplung mittels "Single Event Processing": Die Verarbeitung von Ereignisströmen und die Korrelation von Ereignissen gehören auch zu diesem Themenkomplex. Esper ist ein leichtgewichtiges Open-Source-Tool, das die Verarbeitung von Ereignisströmen erlaubt.
  • 21. Integrationsprojekte als historischer Hintergrund für SOA und EDA
  • 22. Historisches Umfeld -Probleme bei der Integration von Systemen -Netzwerke sind nicht zuverlässig -Netzwerke sind langsam -Systeme sind grundsätzlich verschieden -Änderungen sind unvermeidbar
  • 23. Lösungsansätze Dateiübertragung Gemeinsame Datenbank Entfernte Methodenaufrufe Remote Procedure Calls... Nachrichtendienste http://www.enterpriseintegrationpatterns.com/toc.html
  • 29. EDA vs. SOA nein. EDA und SOA
  • 33. Business case? real time business anyone?
  • 35. Real Time Business Unter "Real Time Business" versteht man die zeitnahe Auslieferung und Evaluierung von wirtschaftlichen 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
  • 36. Zeitnah? -Informationslatenz -Analyselatenz -Aktionslatenz
  • 37. 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
  • 38. Business case? business inteligence anyone?
  • 39. 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
  • 40. Real Time Business Performance Requirements - 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
  • 41. Abgrenzung -BAM - Deklarativ, 5s Reaktionszeitfenster - 1000 Events/s -Rules - Reichhaltige Konfiguration - 10000-100000 Events/s -CEP - InMemory, Low Latency, „Real Time“ - >100000 Events/s
  • 42. Business case? aber wer, wo, warum?
  • 43. EDA Anwendungsgebiete - Transport & Logistik - gezielte Transportsteuerung - Telekommunikation - Transaktionsverarbeitung - Produktion - Produktionsüberwachung - Finanzdienstleistungen - algorithmischer Aktienhandel - Versicherungen - Risikoerkennung
  • 44. 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
  • 45. Adoptionsstatus in der Industrie -Eher exotische Business Cases? -Militär -Casinos -Spekulative Finanzinstrumente -Moralisch bedenklich
  • 46. 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
  • 47. 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
  • 48. EDA Paradigma -Event getriebene Anwendungen lassen sich in natürlicher Sprache regelartig komprimieren - „wenn .. dann...“ -When-clause -Handler code
  • 49. 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
  • 50. 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 Anwendungsbeispiele: ABS, - Sitzbelastung Einspritzsysteme, Airbagabschaltung, Verhaltensforschung? - Lambda-Wert
  • 51. Eventverarbeitung bei EDA -SEP: Simple Event Processing -ESP: Stream Event Processing -CEP: Complex Event Processing
  • 52. 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
  • 53. 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.
  • 54. 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
  • 55. Complex Event What is a complex event? „It is an event that could only happen if lots of other events happend.“ „The Power of Events“ An introduction to complex event processing in distributed enterprise systems by David Luckham
  • 56. CEP simply explained http://soa-eda.blogspot.com/2008/04/cep-simply-explained.html
  • 57. Complex Event Processing Unter CEP versteht man die Erkennung von komplexen Mustern innerhalb eines oder sogar zwischen verschiedenen Ereignisströmen. So haben eventuell Ereignisse wenig Relevanz im einzelnen, sind aber in bestimmten Zusammenhängen Indiz eines besonderen Ereignisses.
  • 58. Complex Event Processing Ereignisse können in -kausaler, -temporaler oder -räumlicher Korrelation auftreten. Die einzelnen Ereignisströme können ein sehr hohes Aufkommen von Ereignissen aufweisen.
  • 59. 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
  • 60. 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
  • 61. automated emergency call wenn Fahrersitzbelastungsän derung auf null innerhalb 200ms mit negativer Beschleunigung > a und Reifendruckabfall dann automatische Anwahl Notrufzentrale
  • 62. Wie?
  • 63. EDA with Java -SEP -Java Messaging Service -Enterprise Service Bus -ESP & CEP -No standard -Only products
  • 64. 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
  • 67. ESB – Enterprise Service Bus http://servicemix.apache.org/home.html
  • 69. 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
  • 70. Performance Aspekte -Esper Benchmark -RFID tracking sample -1000 gruppen zu drei Elementen , 20 Zonen -2000 registrierte Statements -~ 110 000 Events/s
  • 71. Big picture © EsperTech
  • 72. 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.
  • 73. API Overview - EPServiceProvider - Engine Prozessierungseinheit - Threads, Zeit, Streams werden hier verwaltet - EPStatement - Statements / Queries - in EQL (Event Query Language) - UpdateListener - Listener - POJI
  • 74. Events -Sehr flexibler Ansatz -Esper verschickt EventBeans -EventBeans können -POJOs -Java.util.Map -org.w3c.dom.Node enthalten.
  • 75. 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.
  • 77. EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();
  • 78. EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider(); EPStatement stmt = engine.getEPAdministrator().createEQL(stmtText);
  • 79. EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider(); EPStatement stmt = engine.getEPAdministrator().createEQL(stmtText); stmt.addListener(new MyListener());
  • 80. 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); }
  • 81. String stmtText = "insert into ThroughputPerFeed " + "select feed, count(*) as cnt " + "from " + FeedEvent.class.getName() + ".win:time_batch(1 sec) " + "group by feed";
  • 82. ESP Queries -Abfragen über: -Einzelne Ereignisse -Ereignisse in einem Zeitfenster -Ereignisse in einem Mengen-Fenster
  • 83. select * from Withdrawal
  • 84. select * from Withdrawal.win:length(5)
  • 86. CEP Queries -Abfragen über -Muster zwischen Ereignisse/ Ergenissstöme -Verwendeter Begriff: „PATTERN“
  • 87. 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
  • 88. pattern [ every A -> B ]
  • 89. pattern [ every (A -> B) ]
  • 90. pattern [ A every -> B ]
  • 91. pattern [ every A -> every B ]
  • 92. 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
  • 93. Zeit für eine kleine Demo?

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. Das Zusammenbringen von komponentenartigen Teilsystemen ist ein Problem, das in sehr unterschiedlichen Bereichen der Softwareentwicklung immer wieder aufgetreten ist. Im Rahmen unternehmenskritischer Anwendungen ist die Kopplung von Systemen innerhalb einer Software- Landschaft eines Unternehmens eine nicht triviale Aufgabe mit der die Softwareindustrie schon lange zu k&amp;#xE4;mpfen hat. \nAlle Integrationsprojekte werden mit folgenden wesentlichen Herausforderungen konfrontiert:\nNetzwerke sind nicht zuverl&amp;#xE4;ssigIntegrative L&amp;#xF6;sungen m&amp;#xFC;ssen Daten zwischen einen oder mehrere Systeme transportieren. Diese Systeme sind &amp;#xFC;blicherweise auf verschiedene Rechner verteilt und miteinander vernetzt. Die zu &amp;#xFC;berwindende Strecke kann sich &amp;#xFC;berschaubar innerhalb&amp;#xA0; eines Unternehmens befinden, aber sich auch gleich &amp;#xFC;ber mehrere Kontinente hinweg erstrecken. Netzwerke sind heterogene Infrastrukturen mit vielen unbekannten beteiligten Systemen. Die m&amp;#xF6;glichen Fehlerursachen steigen mit der Anzahl der beteiligten Netzwerkkomponenten.\nNetzwerke sind langsamNetzwerkverbindungen sind um Magnituden langsamer als lokale Aufrufe. Aus diesem Grund k&amp;#xF6;nnen bisher eigesetzte Architekturen nicht auf stark verteilte Systeme &amp;#xFC;bertragen werden, ohne massive Performance Probleme zu bekommen.\nSysteme sind grunds&amp;#xE4;tzlich verschiedenDie zu integrierenden Systeme haben unterschiedliche Datenstrukturen und setzen oft unterschiedliche Technologien ein. Eine Integration muss diese H&amp;#xFC;rden effizient l&amp;#xF6;sen.\n&amp;#xC4;nderungen sind unvermeidbarAnwendungen werden im Laufe der Zeit ver&amp;#xE4;ndert. Integrationsl&amp;#xF6;sungen m&amp;#xFC;ssen mit den &amp;#xC4;nderungen schritthalten k&amp;#xF6;nnen. Aufgrund der durch Integrationsl&amp;#xF6;sungen entstanden Kopplung zwischen urspr&amp;#xFC;nglich autonomen Systemen k&amp;#xF6;nnen &amp;#xC4;nderungen in einem System Auswirkungen auf das gesamte System haben. Aus diesem Grund d&amp;#xFC;rfen Teilsysteme nur lose miteinander gekoppelt werden.\n
  23. Im Laufe der Zeit wurden diese Herausforderungen mit folgenden Ans&amp;#xE4;tzen gel&amp;#xF6;st:\nDatei&amp;#xFC;bertragungEine Anwendung schreibt eine Datei, die eine andere lesen wird. Anwendungen m&amp;#xFC;ssen sich &amp;#xFC;ber Ort und Zeitpunkt einig sein, wann diese Dateien geschrieben und gelesen werden. Au&amp;#xDF;erdem muss man sich in Bezug auf die Struktur der Daten in der Datei einigen.\nGemeinsame DatenbankMehrere Anwendungen k&amp;#xF6;nnen sich eine gemeinsame Datenbank teilen. Da keine Daten doppelt gehalten werden, muss auch kein Datentransfer stattfinden. \nEntfernte Methodenaufrufe (Remote Procedure Calls)Eine Anwendung stellt Methoden (bzw. Funktionen) zur Verf&amp;#xFC;gung, die andere Anwendungen aufrufen k&amp;#xF6;nnen. Diese werden auch Dienste bzw. Services genannt. Dienstaufrufe finden in Echtzeit statt und sind synchroner Natur.\nNachrichtendiensteEine Anwendung verschickt Nachrichten in einen gemeinsam verwendeten Nachrichtendienst. &amp;#xDC;blicherweise kennt ein Nachrichtendienst mehrere Kan&amp;#xE4;le (Channels, Destinations). Andere Anwendungen k&amp;#xF6;nnen zu einem sp&amp;#xE4;terem Zeitpunkt Nachrichten aus diesem Nachrichten- Kanal abholen. Die Kommunikation zwischen den Systemen findet asynchron statt.\n
  24. Im Laufe der Zeit wurden diese Herausforderungen mit folgenden Ans&amp;#xE4;tzen gel&amp;#xF6;st:\nDatei&amp;#xFC;bertragungEine Anwendung schreibt eine Datei, die eine andere lesen wird. Anwendungen m&amp;#xFC;ssen sich &amp;#xFC;ber Ort und Zeitpunkt einig sein, wann diese Dateien geschrieben und gelesen werden. Au&amp;#xDF;erdem muss man sich in Bezug auf die Struktur der Daten in der Datei einigen.\nGemeinsame DatenbankMehrere Anwendungen k&amp;#xF6;nnen sich eine gemeinsame Datenbank teilen. Da keine Daten doppelt gehalten werden, muss auch kein Datentransfer stattfinden. \nEntfernte Methodenaufrufe (Remote Procedure Calls)Eine Anwendung stellt Methoden (bzw. Funktionen) zur Verf&amp;#xFC;gung, die andere Anwendungen aufrufen k&amp;#xF6;nnen. Diese werden auch Dienste bzw. Services genannt. Dienstaufrufe finden in Echtzeit statt und sind synchroner Natur.\nNachrichtendiensteEine Anwendung verschickt Nachrichten in einen gemeinsam verwendeten Nachrichtendienst. &amp;#xDC;blicherweise kennt ein Nachrichtendienst mehrere Kan&amp;#xE4;le (Channels, Destinations). Andere Anwendungen k&amp;#xF6;nnen zu einem sp&amp;#xE4;terem Zeitpunkt Nachrichten aus diesem Nachrichten- Kanal abholen. Die Kommunikation zwischen den Systemen findet asynchron statt.\n
  25. Im Laufe der Zeit wurden diese Herausforderungen mit folgenden Ans&amp;#xE4;tzen gel&amp;#xF6;st:\nDatei&amp;#xFC;bertragungEine Anwendung schreibt eine Datei, die eine andere lesen wird. Anwendungen m&amp;#xFC;ssen sich &amp;#xFC;ber Ort und Zeitpunkt einig sein, wann diese Dateien geschrieben und gelesen werden. Au&amp;#xDF;erdem muss man sich in Bezug auf die Struktur der Daten in der Datei einigen.\nGemeinsame DatenbankMehrere Anwendungen k&amp;#xF6;nnen sich eine gemeinsame Datenbank teilen. Da keine Daten doppelt gehalten werden, muss auch kein Datentransfer stattfinden. \nEntfernte Methodenaufrufe (Remote Procedure Calls)Eine Anwendung stellt Methoden (bzw. Funktionen) zur Verf&amp;#xFC;gung, die andere Anwendungen aufrufen k&amp;#xF6;nnen. Diese werden auch Dienste bzw. Services genannt. Dienstaufrufe finden in Echtzeit statt und sind synchroner Natur.\nNachrichtendiensteEine Anwendung verschickt Nachrichten in einen gemeinsam verwendeten Nachrichtendienst. &amp;#xDC;blicherweise kennt ein Nachrichtendienst mehrere Kan&amp;#xE4;le (Channels, Destinations). Andere Anwendungen k&amp;#xF6;nnen zu einem sp&amp;#xE4;terem Zeitpunkt Nachrichten aus diesem Nachrichten- Kanal abholen. Die Kommunikation zwischen den Systemen findet asynchron statt.\n
  26. Im Laufe der Zeit wurden diese Herausforderungen mit folgenden Ans&amp;#xE4;tzen gel&amp;#xF6;st:\nDatei&amp;#xFC;bertragungEine Anwendung schreibt eine Datei, die eine andere lesen wird. Anwendungen m&amp;#xFC;ssen sich &amp;#xFC;ber Ort und Zeitpunkt einig sein, wann diese Dateien geschrieben und gelesen werden. Au&amp;#xDF;erdem muss man sich in Bezug auf die Struktur der Daten in der Datei einigen.\nGemeinsame DatenbankMehrere Anwendungen k&amp;#xF6;nnen sich eine gemeinsame Datenbank teilen. Da keine Daten doppelt gehalten werden, muss auch kein Datentransfer stattfinden. \nEntfernte Methodenaufrufe (Remote Procedure Calls)Eine Anwendung stellt Methoden (bzw. Funktionen) zur Verf&amp;#xFC;gung, die andere Anwendungen aufrufen k&amp;#xF6;nnen. Diese werden auch Dienste bzw. Services genannt. Dienstaufrufe finden in Echtzeit statt und sind synchroner Natur.\nNachrichtendiensteEine Anwendung verschickt Nachrichten in einen gemeinsam verwendeten Nachrichtendienst. &amp;#xDC;blicherweise kennt ein Nachrichtendienst mehrere Kan&amp;#xE4;le (Channels, Destinations). Andere Anwendungen k&amp;#xF6;nnen zu einem sp&amp;#xE4;terem Zeitpunkt Nachrichten aus diesem Nachrichten- Kanal abholen. Die Kommunikation zwischen den Systemen findet asynchron statt.\n
  27. Im Laufe der Zeit wurden diese Herausforderungen mit folgenden Ans&amp;#xE4;tzen gel&amp;#xF6;st:\nDatei&amp;#xFC;bertragungEine Anwendung schreibt eine Datei, die eine andere lesen wird. Anwendungen m&amp;#xFC;ssen sich &amp;#xFC;ber Ort und Zeitpunkt einig sein, wann diese Dateien geschrieben und gelesen werden. Au&amp;#xDF;erdem muss man sich in Bezug auf die Struktur der Daten in der Datei einigen.\nGemeinsame DatenbankMehrere Anwendungen k&amp;#xF6;nnen sich eine gemeinsame Datenbank teilen. Da keine Daten doppelt gehalten werden, muss auch kein Datentransfer stattfinden. \nEntfernte Methodenaufrufe (Remote Procedure Calls)Eine Anwendung stellt Methoden (bzw. Funktionen) zur Verf&amp;#xFC;gung, die andere Anwendungen aufrufen k&amp;#xF6;nnen. Diese werden auch Dienste bzw. Services genannt. Dienstaufrufe finden in Echtzeit statt und sind synchroner Natur.\nNachrichtendiensteEine Anwendung verschickt Nachrichten in einen gemeinsam verwendeten Nachrichtendienst. &amp;#xDC;blicherweise kennt ein Nachrichtendienst mehrere Kan&amp;#xE4;le (Channels, Destinations). Andere Anwendungen k&amp;#xF6;nnen zu einem sp&amp;#xE4;terem Zeitpunkt Nachrichten aus diesem Nachrichten- Kanal abholen. Die Kommunikation zwischen den Systemen findet asynchron statt.\n
  28. Im Laufe der Zeit wurden diese Herausforderungen mit folgenden Ans&amp;#xE4;tzen gel&amp;#xF6;st:\nDatei&amp;#xFC;bertragungEine Anwendung schreibt eine Datei, die eine andere lesen wird. Anwendungen m&amp;#xFC;ssen sich &amp;#xFC;ber Ort und Zeitpunkt einig sein, wann diese Dateien geschrieben und gelesen werden. Au&amp;#xDF;erdem muss man sich in Bezug auf die Struktur der Daten in der Datei einigen.\nGemeinsame DatenbankMehrere Anwendungen k&amp;#xF6;nnen sich eine gemeinsame Datenbank teilen. Da keine Daten doppelt gehalten werden, muss auch kein Datentransfer stattfinden. \nEntfernte Methodenaufrufe (Remote Procedure Calls)Eine Anwendung stellt Methoden (bzw. Funktionen) zur Verf&amp;#xFC;gung, die andere Anwendungen aufrufen k&amp;#xF6;nnen. Diese werden auch Dienste bzw. Services genannt. Dienstaufrufe finden in Echtzeit statt und sind synchroner Natur.\nNachrichtendiensteEine Anwendung verschickt Nachrichten in einen gemeinsam verwendeten Nachrichtendienst. &amp;#xDC;blicherweise kennt ein Nachrichtendienst mehrere Kan&amp;#xE4;le (Channels, Destinations). Andere Anwendungen k&amp;#xF6;nnen zu einem sp&amp;#xE4;terem Zeitpunkt Nachrichten aus diesem Nachrichten- Kanal abholen. Die Kommunikation zwischen den Systemen findet asynchron statt.\n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. Die aktuelle Entwicklung im Bereich Vernetzung und Automatisierung von Gesch&amp;#xE4;ftsprozessen f&amp;#xFC;hren dazu, dass Unternehmen auf immer feink&amp;#xF6;rnigere Informationen Zugriff haben. Nicht nur die Informationsmenge und Qualit&amp;#xE4;t hat sich ge&amp;#xE4;ndert, auch die Anzahl m&amp;#xF6;glicher elektronischer Reaktionsschnittstellen hat sich erh&amp;#xF6;ht.\nUnter &quot;Real Time Business&quot; versteht man die zeitnahe Auslieferung und Evaluierung von wirtschaftlichen Ereignissen. \nZiel ist es, sehr fr&amp;#xFC;h auf Marktbed&amp;#xFC;rfnisse zu reagieren und wirtschaftliche Potentiale zu erkennen. Dieses fr&amp;#xFC;he Erkennen schafft wichtige Wettbewerbsvorteile.\nAlle &quot;Real Time Business Systeme&quot; haben Latenzzeiten: \nInformationslatenz: die ben&amp;#xF6;tigte Zeit, Informationen zu sammeln und bereitzustellen.\nAnalyselatenz: die ben&amp;#xF6;tigte Zeit, die Informationen zu analysieren und in Aktionen umzuwandeln.\nAktionslatenz: die ben&amp;#xF6;tigte Zeit, um Aktionen zu starten.\nHauptziel aller Systeme in Real Time Business ist es, alle 3 beschriebenen Latenzzeiten zu minimieren. Zus&amp;#xE4;tzlich m&amp;#xFC;ssen solche Systeme ein sehr hohes Aufkommen an Nachrichten verarbeiten k&amp;#xF6;nnen, &amp;#xFC;blicherweise sind es mehr als 100.000 Ereignisse pro Sekunde. Aus diesen nicht funktionalen Anforderungen wird deutlich, dass heute &amp;#xFC;blichen Datenbankorientierte Architekturen nicht der Aufgabe gewachsen sind. Ein Blick in Performancezahlen bei Datenbanken zeigt, dass die Verarbeitung von sehr hohem Aufkommen von Nachrichten problematisch werden k&amp;#xF6;nnte. \n
  36. Die aktuelle Entwicklung im Bereich Vernetzung und Automatisierung von Gesch&amp;#xE4;ftsprozessen f&amp;#xFC;hren dazu, dass Unternehmen auf immer feink&amp;#xF6;rnigere Informationen Zugriff haben. Nicht nur die Informationsmenge und Qualit&amp;#xE4;t hat sich ge&amp;#xE4;ndert, auch die Anzahl m&amp;#xF6;glicher elektronischer Reaktionsschnittstellen hat sich erh&amp;#xF6;ht.\nUnter &quot;Real Time Business&quot; versteht man die zeitnahe Auslieferung und Evaluierung von wirtschaftlichen Ereignissen. \nZiel ist es, sehr fr&amp;#xFC;h auf Marktbed&amp;#xFC;rfnisse zu reagieren und wirtschaftliche Potentiale zu erkennen. Dieses fr&amp;#xFC;he Erkennen schafft wichtige Wettbewerbsvorteile.\nAlle &quot;Real Time Business Systeme&quot; haben Latenzzeiten: \nInformationslatenz: die ben&amp;#xF6;tigte Zeit, Informationen zu sammeln und bereitzustellen.\nAnalyselatenz: die ben&amp;#xF6;tigte Zeit, die Informationen zu analysieren und in Aktionen umzuwandeln.\nAktionslatenz: die ben&amp;#xF6;tigte Zeit, um Aktionen zu starten.\nHauptziel aller Systeme in Real Time Business ist es, alle 3 beschriebenen Latenzzeiten zu minimieren. Zus&amp;#xE4;tzlich m&amp;#xFC;ssen solche Systeme ein sehr hohes Aufkommen an Nachrichten verarbeiten k&amp;#xF6;nnen, &amp;#xFC;blicherweise sind es mehr als 100.000 Ereignisse pro Sekunde. Aus diesen nicht funktionalen Anforderungen wird deutlich, dass heute &amp;#xFC;blichen Datenbankorientierte Architekturen nicht der Aufgabe gewachsen sind. Ein Blick in Performancezahlen bei Datenbanken zeigt, dass die Verarbeitung von sehr hohem Aufkommen von Nachrichten problematisch werden k&amp;#xF6;nnte. \n
  37. Real Time Business haben viel mehr Daten zur Verf&amp;#xFC;gung\nfeingranularer\nzeitn&amp;#xE4;her\nsehr haufige Ver&amp;#xE4;nderungen der Daten --&gt; die Events\nund schnelle Realtionen gefordert\n\nBy 2008, 67% of new large scale applications will emit business events and 58% of large enterprises will rely on complex event processing. (Gartner, 2005)\n\nFirst among the leading platform vendors, BEA has announced a complex event processing product. This signifies BEA&apos;s recognition of the growing importance of event processing in high-end enterprise computing.\n\n\nBsp.\nRFID\nHaussensoren\nmobile Elektronik\nInformation services (ohloh.net/ mechnical turk..\ntheNextBI ?\n\n Also known as &amp;#x201E;on demand business&amp;#x201C;\n Real time business (intelligence) is the process of delivering information about business operations without any latency. In this context, real time means delivering information in a range from milliseconds to a few seconds after the business event. \n
  38. \n
  39. \n
  40. \n
  41. BAM\nKPI\nReal Time Business\nProzessmonitoring in der Gesch&amp;#xE4;ftsprozessebene\n\nRules\nKonfiguratives Regelrepository\nInnerhalb der Prozessschicht der Architektur\n\nCEP\nAnwendungsnahe Ereignisverarbeitung\n
  42. \n
  43. Oracle:\n\nDatenstr&amp;#xF6;me (Streams)\n. kontinuierlich, hochvolumig\n. in zeitlicher Reihung\n. endlos\n. k&amp;#xF6;nnen mit klassischen,\nrelationalen Datenbanksystemen\nnicht analysiert /\nverarbeitet werden\n\nCEP -Die neue Datenmanagement-\nInfrastruktur zur\nDatenstromanalyse in Echtzeit!\n
  44. \n
  45. Filterung des Datenstroms nach bestimmten\nKriterien, z.B. Kurs &gt; 20&amp;#xBC;\n.Rolierende, zeitbasierende Fenstermetriken,\nz.B. durchschnittliches Handelsvolumen der\nletzten Stunde, alle 5 Sekunden\n.Benachrichtigung bei Erkennung von Mustern,\nz.B. Preis&amp;#xE4;nderung X, Y, und Z innerhalb von 9\nMinuten aufgetreten\n
  46. Recherche Wikipedia \nvent-driven architecture (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events.\nThis architectural pattern may be applied by the design and implementation of applications and systems which transmit events among loosely coupled software components and services. An event-driven system typically consists of event consumers and event producers. Event consumers subscribe to an intermediary event manager, and event producers publish to this manager. When the event manager receives an event from a producer, the manager forwards the event to the consumer. If the consumer is unavailable, the manager can store the event and try to forward it later. This method of event transmission is referred to in message-based systems as &quot;store and forward&quot; [2]. Building applications and systems around an event-driven architecture allows these applications and systems to be constructed in a manner that facilitates more responsiveness, because event-driven systems are, by design, more normalized to unpredictable and asynchronous environments[2].\n\nEine ereignisgesteuerte Architektur (von engl. event-driven architecture, EDA) ist eine Softwarearchitektur, in der das Zusammenspiel der Komponenten durch Ereignisse (events) gesteuert wird. Ereignisse k&amp;#xF6;nnen sowohl von au&amp;#xDF;en kommen (z. B. Benutzereingaben) als auch vom System selbst ausgel&amp;#xF6;st werden (z. B. &amp;#xC4;nderungsbenachrichtigungen). Sie sto&amp;#xDF;en eine Ereignisbehandlung (event handling) an, mit der das System auf die erfolgte Eingabe reagiert. Eine ereignisgesteuerte Architektur hat kaum Kontrolle dar&amp;#xFC;ber, wann Daten verarbeitet werden. Klassisches Anwendungsszenario ist die grafische Benutzeroberfl&amp;#xE4;che: Hier bestimmt der Benutzer, wann welche Daten verarbeitet werden, indem er Aktionen ausf&amp;#xFC;hrt und damit Ereignisse ausl&amp;#xF6;st. Ereignisorientierte Simulationen sind ereignisgesteuerte Teilbereiche gr&amp;#xF6;&amp;#xDF;erer Softwarearchitekturen.\n\nEin Ereignis umfasst mindestens drei Angaben: Den Erstellungszeitpunkt (Zeitstempel), die ausl&amp;#xF6;sende Komponente (Quelle) und die Art des Ereignisses (Typ), die angibt, was im Wesentlichen vorgefallen ist.\n
  47. \n Esper solves a complex set of problems that current SOAs do not solve: how to make meanings of all events flowing through your system at the speed of your business? How to preserve flexibility? How to handle massively growing data volumes?\n\nBSP.\nNerven, f&amp;#xFC;nf Sinne , Hirn - EDA des Menschen\n&amp;#x201E;Wenn hei&amp;#xDF; an der Hand in der K&amp;#xFC;che dann Hand wegziehen&amp;#x201C;\n? Mengendiagramm \n
  48. \n Esper solves a complex set of problems that current SOAs do not solve: how to make meanings of all events flowing through your system at the speed of your business? How to preserve flexibility? How to handle massively growing data volumes?\n\nBSP.\nNerven, f&amp;#xFC;nf Sinne , Hirn - EDA des Menschen\n&amp;#x201E;Wenn hei&amp;#xDF; an der Hand in der K&amp;#xFC;che dann Hand wegziehen&amp;#x201C;\n? Mengendiagramm \n
  49. Event ist ein Indikation\nwas passiert\nwann passiert es\n--&gt; erlaubt eine Reaktion\ntypischer weise aus der Beobachtung eines Zustands resultierend\n
  50. Beispiel RFID\nRadio Frequency Identification\n Bewegungsprofile von identifizierten(indizierten) Gegenst&amp;#xE4;nden\n ID des Gegenstandes\n x-Koordinate\n y-Koordinate\n Zone -aus (x,y) abgeleiteter Wert zur relativen Positionierung\n\nAnwendungsbeispiele\n Monitoring von Produktions/Fertigungsprozessen\n Eigentums&amp;#xFC;berwachung\n Verhaltens/marktforschung\nradie ID wird einem Gegenstand zur Identifikation mitgegeben\num seine Bewegungen im Raum zu detektieren\nz.B. in Gesch&amp;#xE4;ft, Lagerhaus, Produktionshale werden Sensoren angebracht\nder Sensor ermittelt die ID und den Sensor daraus kann ein Aufenthaltsbereich ermittelt werden\nJe mehr Sensoren je besser kann ein Strom vo n Events &amp;#xFC;ber einen Zeitraum ein Bild der Bewegungen der Gegenst&amp;#xE4;nde im Raum erzeugen\nUse Case:\n&amp;#xDC;berwachung einer Gruppe von immer drei Elementen die im gleichen Bereich sein sollten\nansonstern --&gt; Fehler (Dibstahl oder Havarie ?)\n
  51. \n
  52. \n
  53. \n
  54. TODO Grafik\n2 Bereiche in der Forschung der letzten 10 Jahre\nESP Ableitung von Infornation aus Ereignisstr&amp;#xF6;men &amp;#xFC;ber Zeitr&amp;#xE4;ume durch Analyse und Aggregation\n\nEvent 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 languages, or complex event processing (CEP). ESP deals with the task of processing multiple streams of event data with the goal of identifying the meaningful events within those streams, employing techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event-driven processes.\n\n\ngeklautes Beispiel\nMittelere Google Preis wir k&amp;#xF6;nnen Handlesentscheidungen darauf basieren\n
  55. \n
  56. \n
  57. \n
  58. \n
  59. Definition dort\nman nehme EDA und verbinde dies mit Real Time Business Requirements --&gt; Ergebnis XTP\nHauptpunkte:\nGro&amp;#xDF;e Menge an Events gehen ins System\nZiel ist nicht alle diese Events zu publizieren\nstatdessen aggregieren um dem Input eine Bedeutung zu geben/ detektion von complexen Eventmustern\nz.B. zeitverl&amp;#xE4;ufe von Druchschnitten berechnen o.&amp;#xE4;.\nViel Gr&amp;#xF6;&amp;#xDF;erer Input-Stream als der Output-Stream ungef&amp;#xE4;hr 2% werden typischerweise korreliert\n
  60. Gartner http://mediaproducts.gartner.com/reprints/azulsystems/146107.html\nMainstream organizations should primarily look at combinations of established platform\nmiddleware and incremental XTP-enabling technologies to address their emerging\ntransaction processing challenges while minimizing technology risks.\n\n\nThe combined effect of 14 major trends will disrupt the apparently static application server and transaction processing markets. Platform middleware users and vendors will be impacted and must delineate proper survival strategies.\n
  61. TODO Grafik\n2 Bereiche in der Forschung der letzten 10 Jahre\n\nCEP Wikipedia\ndeals with the task of processing multiple events from an event cloud with the goal of identifying the meaningful events within the event cloud. CEP employs techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event-driven processes.\n\ngeklautes Beispiel\nMittelere Google Preis wir k&amp;#xF6;nnen Handlesentscheidungen darauf basieren\n\nEven though there is no direct measurement that can determine conclusively that the driver was thrown, or that there was an accident, the combination of events allows the situation to be detected and a new event to be created to signify the detected situation. This is the essence of a complex (or composite) event. It is complex because one can not directly detect the situation; one has to infer or deduce that the situation has occurred from a combination of other events.\n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. Esper is a component for CEP and ESP applications, available for Java as Esper, and for .NET as NEsper.\n\nEsper and NEsper enable rapid development of applications that process large volumes of incoming messages or events. Esper and NEsper filter and analyze events in various ways, and respond to conditions of interest in real-time.\n
  70. Esper leverages Java 5 enhancements done in the area of concurrency. It also fully supports 32bit and 64bit architectures.\n\nVergleich ESB\n 2600 msg/s auf 4facher HW bei einfachem Pipelining\n 1 Gb network ~ 65 536msg/s (2Ko/msg) ?\n\n\nESP/CEP applications are somewhat complex to benchmark, because the performance figures are highly dependant on the complexity of the situations to detect among the event stream(s) possibly joined together or involved in a causality relationship. There is no industry benchmark available yet that would allow for apple-to-apple comparison. You&apos;ll often see some products claim 100 000 events/s, or 500 000 events/s without any information regarding the scenario, the size of each event, the hardware used, the network link etc.\n\nIf performance is a key requirement for you, let us know and we&apos;ll show you how we scale. We won&apos;t argue with paperwork.\n
  71. Absolut andere Bearbeitung als eine DB\nin Esper wird ein Query Statement regisitriert und der Datenflu&amp;#xDF; wir ddurch dieses geleitet\n\n3 Schl&amp;#xFC;sselelemente\n\nEngine werden die Statements &amp;#xFC;bergeben\nStatements beschreiben wie wir Ereignisse detektieren/wahrnehmen bzw. konsumieren\nListener k&amp;#xF6;nnen dan an Statements angeh&amp;#xE4;ngt werden, welche von der Engine immer dann aufgerufen werden wenn eine Statement getroffen oder sein ResultSet ver&amp;#xE4;ndert wird\nDer Listener erh&amp;#xE4;lt dann ein ge&amp;#xE4;ndertes ResultSet\nStarkes Paradigma\n
  72. \n
  73. Absolut andere Bearbeitung als eine DB\nin Esper wird ein Query Statement regisitriert und der Datenflu&amp;#xDF; wir ddurch dieses geleitet\n\n3 Schl&amp;#xFC;sselelemente\n\nEngine werden die Statements &amp;#xFC;bergeben\nStatements beschreiben wie wir Ereignisse detektieren/wahrnehmen bzw. konsumieren\nListener k&amp;#xF6;nnen dan an Statements angeh&amp;#xE4;ngt werden, welche von der Engine immer dann aufgerufen werden wenn eine Statement getroffen oder sein ResultSet ver&amp;#xE4;ndert wird\nDer Listener erh&amp;#xE4;lt dann ein ge&amp;#xE4;ndertes ResultSet\nStarkes Paradigma\n
  74. \n
  75. \n
  76. \n
  77. TODO Quellcode 17\n\nEvents k&amp;#xF6;nnen kontinuierlich von einem oder mehreren Threads gleichzeitig in die Engine Instanz gesandt werden\n\n verschiedene Eventrepr&amp;#xE4;sentationen\nPOJO/XML/Maps\n\nEsper erlaubt mit EPL sehr machtvolle Interaktionen(detect/consume) mit solchen Events \nsiehe folgende Folien\n \n
  78. TODO Quellcode 17\n\nEvents k&amp;#xF6;nnen kontinuierlich von einem oder mehreren Threads gleichzeitig in die Engine Instanz gesandt werden\n\n verschiedene Eventrepr&amp;#xE4;sentationen\nPOJO/XML/Maps\n\nEsper erlaubt mit EPL sehr machtvolle Interaktionen(detect/consume) mit solchen Events \nsiehe folgende Folien\n \n
  79. TODO Quellcode 17\n\nEvents k&amp;#xF6;nnen kontinuierlich von einem oder mehreren Threads gleichzeitig in die Engine Instanz gesandt werden\n\n verschiedene Eventrepr&amp;#xE4;sentationen\nPOJO/XML/Maps\n\nEsper erlaubt mit EPL sehr machtvolle Interaktionen(detect/consume) mit solchen Events \nsiehe folgende Folien\n \n
  80. TODO Quellcode 17\n\nEvents k&amp;#xF6;nnen kontinuierlich von einem oder mehreren Threads gleichzeitig in die Engine Instanz gesandt werden\n\n verschiedene Eventrepr&amp;#xE4;sentationen\nPOJO/XML/Maps\n\nEsper erlaubt mit EPL sehr machtvolle Interaktionen(detect/consume) mit solchen Events \nsiehe folgende Folien\n \n
  81. TODO Quellcode 17\n\nEvents k&amp;#xF6;nnen kontinuierlich von einem oder mehreren Threads gleichzeitig in die Engine Instanz gesandt werden\n\n verschiedene Eventrepr&amp;#xE4;sentationen\nPOJO/XML/Maps\n\nEsper erlaubt mit EPL sehr machtvolle Interaktionen(detect/consume) mit solchen Events \nsiehe folgende Folien\n \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n