Why and How to Engage a Complex Event Processor from a Java Web ApplicationLucas JellemaCTO, AMIS (The Netherlands)Oracle ACE Director
An EventA factWhen it becomes a factTimestamp!Of potential interest to anyoneWith some information associated with itWhen the fact is changed, that too may constitute an eventNote that even when no change occurs, that could be considered an event (absence of expected event)
The Data AvalancheThe league of real time eventsContinuous stream of a multitude of tiny events with hardly any payload, most of which are not interesting at allSent from physical sensors (temperature, pressure, RFID, security gates), process sensors, Twitter, manufacturing equipment, database triggers, web servers, ESBs, stock trade tickers, sport statistics, RSS, network switches, …
Most of these events….
Making Sense of Non-senseComplex Event ProcessingUseful information could be hidden in those streams of events – and CEP extracts itBy detecting patterns, deviations, aggregations in these event streamsCEP publishes ‘meaningful’ (business) events to report its findings – by executing some Event Processing LangugaeeventsComplex Event Processor
Continuous Query Language (CQL)Standard extension/complement to SQLFor handling large volumes of continuously arriving eventsExecuting the queries continuouslyOperates on streams of continually arriving events instead of static relational data setsEvents can be enriched with contextResults keep being produced as event streamIs used for comparing events of same type, to findTrends and PatternsExceptionsAggregatesComplex Event ProcessorCQL
Example CQL QueryReport the average temperatureAggregated over last 60 secondsReported every 30 secondsDetermined per ClusterTemperaturereadingsComplex Event ProcessorAverage temperature values (over 60s, per cluster, every 30s)
Event Processing NetworkAdapters – consuming or producing eventsChannels – carrying specific event typesProcessors – running CQL
Complex Event ProcessingAlertJMSDashboardSOA ApplicationDBData WarehouseWebServiceFileeventsComplex Event ProcessorJMSHTTPJMXFileDBEvent Consumer
eventseventseventsJava Applications interacting with a complex event processor Complex Event ProcessorJava applicationJMS132
Various CEP offerings availableProgress Software (Apama)Aleri (Aleri and Coral8)IBM (WebSphere Business Events, System S/InfoSphere Streams, ILog rule engine)StreamBase Systems, TIBCO Software (Tibco Business Events) Oracle (CEP - fka BEA WLEvs - and Glassfish OpenESB IEP) UC4 (Senactive)  EsperTechJBoss Drools Fusion
Oracle CEP 11g Architecturefka BEA WLEVS(erver)Design TimeRun TimeCEP Visualizer(web console)Other WebAppEclipsehttpCEPpluginWeb (Bayeux)ServerCEP ServerDBJMS
Demo: HelloWorld
The EPN source side of things
Java Application as Event ConsumereventsComplex Event ProcessorJava applicationJMS
Temperature VigilCEP
Case of TemperatureHospitalTemperature sensorsCooling unitsMaternity Ward and Intensive Care unitsFire detectionFrequent readings (subsecond)Monitoring for: trends of threshold crossing, fire!, fault detection
Demo: Temperature SensorsApplication should display a dashboard for temperature sensor readingsThe user is interested in cluster aggregates , deviations from pre-set values and broken sensorsHow would a Java Application process thousands of events per secondextract and report aggregatesdetect and report missing valuesNote: user wants real time updates – but not more frequently than once per minute
Technical LayoutTemperature Sensors are all over the placeClustered per room or locationTemperature Readings arrive over JMSResults are sent through JMS to dashboardJMS queue for temperature aggregatesPer cluster, once every 30 secondsJMS queue for failed sensor detection
Demo of Temperature Aggregations
Event Processor for aggregationGroup by ClusterReport once every 30 secondsOver all events in the last 60 seconds
Why and how to engage a Complex Event Processor from a Java Web Application
Sensor FailureWhen a sensor has not reported for 30 seconds, we consider it failedAnd potentially broken downCEP needs to trap the missing events and report those
Demo of Sensor Failure detection
Why and how to engage a Complex Event Processor from a Java Web Application
Feeding Temperature Aggregate Findings into real time BAMCEP publishes result events on JMSCEP is not aware of Business Activity MonitoringBAM creates an enterprise message sourceBased on JMS and MapMessagesFeeding into a Data Object in the Active Data CacheBAM listens on the JMS Queue and maps the messages to the ADC Data Object
Business Activity Monitoring
Java Application as Event ProducereventsComplex Event ProcessorJava applicationJMS3
Java Application producing the events to processThe user interaction with an application produces many eventsNavigation, Selection, Submission (scroll, expand/collapse, drill down)Most events are not recorded persistentlyThe events can reveal interesting information about the application, the data and the usersFor example in a web shopThe information could be used to improve the effectiveness of the application
Product DetailsSearchBuy ProductmarioMario Kart (WII)€24,992010Rating:****oDetails:1 article in shoppingbasket:€24,99Mario Kart
Super Mario
Super Mario Galaxy
Mario Super Sluggers
Super Mario Bros.SearchEvent‘mario’ViewEvent‘Mario Kart’BuyEvent‘Mario Kart’User interaction events in a WebShop
The WebShop Application
Derive intelligence from WebShop eventsActual Metrics: #searches in last 5 minutes, #buyers in the last 24 hours, #search-to-views drilldownsTop 10 search terms (in last [24] hour)Top 10 useless search termsAfter search on term there is no view eventMost Effective search termsSearch is followed by (one or more) view events and subsequently a buy eventItems frequently viewed but not often bought#buy/#views is ranks low
WebShop & CEPWebShop sends JMS events to single queueWhenever a user in a session searches, drills down or buysType of event, search term or item identifier, session idCEP reads from JMS channelRoutes based on event typeProcesses events using CQL processorEmits derived events to JMS queueWebShop listens to JMS queueUpdates application scope ‘top10’ beansProvides dashboard based on ‘top10’ beansPotentially using Server Push (or periodic poll)
Webshop feeding into CEP and receiving refined feedbackWebShopTop 10 Popular Search TermsTop 10 Useless Search TermsMost Effective Search Termssearchviewbuy
Popular useless search terms(missing viewevent following the search)

More Related Content

PPT
Oracle Cep Xstreams adapter
PPTX
Data warehouse system and its concepts
PDF
OBIEE 11g: Configuring LDAP Server
PDF
OBIEE11g Multi User Development - MUD
PDF
ADF Worst Practices (UKOUG Tech2013)
PDF
Obiee and database performance tuning
PDF
Complex Event Processor 3.0.0 - An overview of upcoming features
PPT
Complex Event Processing
Oracle Cep Xstreams adapter
Data warehouse system and its concepts
OBIEE 11g: Configuring LDAP Server
OBIEE11g Multi User Development - MUD
ADF Worst Practices (UKOUG Tech2013)
Obiee and database performance tuning
Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processing

Similar to Why and how to engage a Complex Event Processor from a Java Web Application (20)

PDF
WSO2 Product Release Webinar - WSO2 Complex Event Processor
PDF
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
PDF
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
PDF
st - demystifying complext event processing
PDF
Introducing the WSO2 Complex Event Processor
PPTX
eBiz#3: CEP
PPTX
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
PDF
EDA With Glassfish ESB Jfall IEP Intelligent Event Processing
PDF
Complex Event Processing with Esper
PDF
Applying complex event processing (2010-10-11)
PDF
Enabling predictive analysis in service oriented BPM solutions.
PPTX
Microsoft SQL Server - StreamInsight Overview Presentation
PPT
FIWARE CEP GE introduction, ICT 2015
PDF
Event Stream Processing SAP
PPT
Processing Patterns for Predictive Business
PPT
Combating Fraud and Intrusion Threats with Event Processing
PDF
PPT
Open Source Event Processing for Sensor Fusion Applications
PPT
Processing Patterns for PredictiveBusiness
PPT
CEP: Event-Decision Architecture for PredictiveBusiness, July 2006
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
st - demystifying complext event processing
Introducing the WSO2 Complex Event Processor
eBiz#3: CEP
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
EDA With Glassfish ESB Jfall IEP Intelligent Event Processing
Complex Event Processing with Esper
Applying complex event processing (2010-10-11)
Enabling predictive analysis in service oriented BPM solutions.
Microsoft SQL Server - StreamInsight Overview Presentation
FIWARE CEP GE introduction, ICT 2015
Event Stream Processing SAP
Processing Patterns for Predictive Business
Combating Fraud and Intrusion Threats with Event Processing
Open Source Event Processing for Sensor Fusion Applications
Processing Patterns for PredictiveBusiness
CEP: Event-Decision Architecture for PredictiveBusiness, July 2006
Ad

More from Lucas Jellema (20)

PPTX
Introduction to web application development with Vue (for absolute beginners)...
PPTX
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
PPTX
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
PPTX
Apache Superset - open source data exploration and visualization (Conclusion ...
PPTX
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
PPTX
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
PPTX
Op je vingers tellen... tot 1000!
PPTX
IoT - from prototype to enterprise platform (DigitalXchange 2022)
PPTX
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
PPTX
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
PPTX
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
PPTX
Introducing Dapr.io - the open source personal assistant to microservices and...
PPTX
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
PPTX
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
PPTX
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
PPTX
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
PPTX
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
PPTX
Tech Talks 101 - DevOps (jan 2022)
PPTX
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
PPTX
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Introduction to web application development with Vue (for absolute beginners)...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Apache Superset - open source data exploration and visualization (Conclusion ...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Op je vingers tellen... tot 1000!
IoT - from prototype to enterprise platform (DigitalXchange 2022)
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Introducing Dapr.io - the open source personal assistant to microservices and...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Tech Talks 101 - DevOps (jan 2022)
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Ad

Recently uploaded (20)

PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Five Habits of High-Impact Board Members
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPT
What is a Computer? Input Devices /output devices
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPT
Geologic Time for studying geology for geologist
PPTX
The various Industrial Revolutions .pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PPTX
Configure Apache Mutual Authentication
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
2018-HIPAA-Renewal-Training for executives
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Developing a website for English-speaking practice to English as a foreign la...
Taming the Chaos: How to Turn Unstructured Data into Decisions
Five Habits of High-Impact Board Members
Abstractive summarization using multilingual text-to-text transfer transforme...
Custom Battery Pack Design Considerations for Performance and Safety
What is a Computer? Input Devices /output devices
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Geologic Time for studying geology for geologist
The various Industrial Revolutions .pptx
Enhancing emotion recognition model for a student engagement use case through...
A comparative study of natural language inference in Swahili using monolingua...
OpenACC and Open Hackathons Monthly Highlights July 2025
Final SEM Unit 1 for mit wpu at pune .pptx
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
Configure Apache Mutual Authentication
Zenith AI: Advanced Artificial Intelligence
2018-HIPAA-Renewal-Training for executives

Why and how to engage a Complex Event Processor from a Java Web Application

  • 1. Why and How to Engage a Complex Event Processor from a Java Web ApplicationLucas JellemaCTO, AMIS (The Netherlands)Oracle ACE Director
  • 2. An EventA factWhen it becomes a factTimestamp!Of potential interest to anyoneWith some information associated with itWhen the fact is changed, that too may constitute an eventNote that even when no change occurs, that could be considered an event (absence of expected event)
  • 3. The Data AvalancheThe league of real time eventsContinuous stream of a multitude of tiny events with hardly any payload, most of which are not interesting at allSent from physical sensors (temperature, pressure, RFID, security gates), process sensors, Twitter, manufacturing equipment, database triggers, web servers, ESBs, stock trade tickers, sport statistics, RSS, network switches, …
  • 4. Most of these events….
  • 5. Making Sense of Non-senseComplex Event ProcessingUseful information could be hidden in those streams of events – and CEP extracts itBy detecting patterns, deviations, aggregations in these event streamsCEP publishes ‘meaningful’ (business) events to report its findings – by executing some Event Processing LangugaeeventsComplex Event Processor
  • 6. Continuous Query Language (CQL)Standard extension/complement to SQLFor handling large volumes of continuously arriving eventsExecuting the queries continuouslyOperates on streams of continually arriving events instead of static relational data setsEvents can be enriched with contextResults keep being produced as event streamIs used for comparing events of same type, to findTrends and PatternsExceptionsAggregatesComplex Event ProcessorCQL
  • 7. Example CQL QueryReport the average temperatureAggregated over last 60 secondsReported every 30 secondsDetermined per ClusterTemperaturereadingsComplex Event ProcessorAverage temperature values (over 60s, per cluster, every 30s)
  • 8. Event Processing NetworkAdapters – consuming or producing eventsChannels – carrying specific event typesProcessors – running CQL
  • 9. Complex Event ProcessingAlertJMSDashboardSOA ApplicationDBData WarehouseWebServiceFileeventsComplex Event ProcessorJMSHTTPJMXFileDBEvent Consumer
  • 10. eventseventseventsJava Applications interacting with a complex event processor Complex Event ProcessorJava applicationJMS132
  • 11. Various CEP offerings availableProgress Software (Apama)Aleri (Aleri and Coral8)IBM (WebSphere Business Events, System S/InfoSphere Streams, ILog rule engine)StreamBase Systems, TIBCO Software (Tibco Business Events) Oracle (CEP - fka BEA WLEvs - and Glassfish OpenESB IEP) UC4 (Senactive) EsperTechJBoss Drools Fusion
  • 12. Oracle CEP 11g Architecturefka BEA WLEVS(erver)Design TimeRun TimeCEP Visualizer(web console)Other WebAppEclipsehttpCEPpluginWeb (Bayeux)ServerCEP ServerDBJMS
  • 14. The EPN source side of things
  • 15. Java Application as Event ConsumereventsComplex Event ProcessorJava applicationJMS
  • 17. Case of TemperatureHospitalTemperature sensorsCooling unitsMaternity Ward and Intensive Care unitsFire detectionFrequent readings (subsecond)Monitoring for: trends of threshold crossing, fire!, fault detection
  • 18. Demo: Temperature SensorsApplication should display a dashboard for temperature sensor readingsThe user is interested in cluster aggregates , deviations from pre-set values and broken sensorsHow would a Java Application process thousands of events per secondextract and report aggregatesdetect and report missing valuesNote: user wants real time updates – but not more frequently than once per minute
  • 19. Technical LayoutTemperature Sensors are all over the placeClustered per room or locationTemperature Readings arrive over JMSResults are sent through JMS to dashboardJMS queue for temperature aggregatesPer cluster, once every 30 secondsJMS queue for failed sensor detection
  • 20. Demo of Temperature Aggregations
  • 21. Event Processor for aggregationGroup by ClusterReport once every 30 secondsOver all events in the last 60 seconds
  • 23. Sensor FailureWhen a sensor has not reported for 30 seconds, we consider it failedAnd potentially broken downCEP needs to trap the missing events and report those
  • 24. Demo of Sensor Failure detection
  • 26. Feeding Temperature Aggregate Findings into real time BAMCEP publishes result events on JMSCEP is not aware of Business Activity MonitoringBAM creates an enterprise message sourceBased on JMS and MapMessagesFeeding into a Data Object in the Active Data CacheBAM listens on the JMS Queue and maps the messages to the ADC Data Object
  • 28. Java Application as Event ProducereventsComplex Event ProcessorJava applicationJMS3
  • 29. Java Application producing the events to processThe user interaction with an application produces many eventsNavigation, Selection, Submission (scroll, expand/collapse, drill down)Most events are not recorded persistentlyThe events can reveal interesting information about the application, the data and the usersFor example in a web shopThe information could be used to improve the effectiveness of the application
  • 30. Product DetailsSearchBuy ProductmarioMario Kart (WII)€24,992010Rating:****oDetails:1 article in shoppingbasket:€24,99Mario Kart
  • 34. Super Mario Bros.SearchEvent‘mario’ViewEvent‘Mario Kart’BuyEvent‘Mario Kart’User interaction events in a WebShop
  • 36. Derive intelligence from WebShop eventsActual Metrics: #searches in last 5 minutes, #buyers in the last 24 hours, #search-to-views drilldownsTop 10 search terms (in last [24] hour)Top 10 useless search termsAfter search on term there is no view eventMost Effective search termsSearch is followed by (one or more) view events and subsequently a buy eventItems frequently viewed but not often bought#buy/#views is ranks low
  • 37. WebShop & CEPWebShop sends JMS events to single queueWhenever a user in a session searches, drills down or buysType of event, search term or item identifier, session idCEP reads from JMS channelRoutes based on event typeProcesses events using CQL processorEmits derived events to JMS queueWebShop listens to JMS queueUpdates application scope ‘top10’ beansProvides dashboard based on ‘top10’ beansPotentially using Server Push (or periodic poll)
  • 38. Webshop feeding into CEP and receiving refined feedbackWebShopTop 10 Popular Search TermsTop 10 Useless Search TermsMost Effective Search Termssearchviewbuy
  • 39. Popular useless search terms(missing viewevent following the search)
  • 40. Real Time Event Driven Dashboard in WebShop application
  • 41. SummaryComplex Event ProcessingFor analysis of real time, high volume, continuous streams of fine grained, non-persistent eventsUsed for detecting patterns, spotting exceptions, calculating aggregates and tracking trendsCEP uses CQL queries to derive information from event streams – continuously, as events continue to arriveResults are published as (higher level) events – often to JMS queues
  • 42. Summary[Java] Applications can have CEP pre-process eventsto do complex analysis and filteringproducing business events that applications can understandJava Applications produce events that CEP can processAnd possibly feed back into the applicationsJMS and http are primary communication channels
  • 43. ResourcesPresentation and demos are on our bloghttp://technology.amis.nl/blogContact me at:[email protected]: Chapter 19 in Oracle SOA Suite 11gHandbook describesOracle CEP and BAM

Editor's Notes

  • #7: Demo in plain SQL: http://technology.amis.nl/blog/3569/simple-event-processing-using-sql-with-analytical-functions-to-detect-traffic-patterns
  • #33: Wat zijn de populairste zoektermen van dit moment (bijvoorbeeld de top 10 van de afgelopen 24 uur) – dit is een vrij eenvoudige aggregatie – gegroepeerd op zoekterm en met om de zoveel uur een rapportage in de vorm van tien events voor de top zoek-termenWat zijn de populairste waardeloze zoektermen? Dat zjin zoektermen die de gebruikers kennelijk niet de door hen gewenste resultaten opleveren omdat na het zoek-event met die term niet een bekijk-event volgt, maar een nieuw zoek-event of helemaal geen event meer.Wat zijn kennelijk de meest succevolle zoektermen? Hier zoeken we naar het patroon van zoek-event gevolgd door een of meerdere bekijk–events en leidend tot een koop-event zonder dat er nog een ander zoek-event tussen zitWat zijn items die wel vaak bekeken maar niet vaak gekocht worden? Dat zijn producten waarvoor het percentage kijk+koop van het totaal aantal kijk-events laag is. Ook deze lijst kan bijvoorbeeld iedere 12 of 24 uur worden opgehoest door CEP