SlideShare a Scribd company logo
1 of 39
 Why and How to Engage a Complex Event Processor from a Java Web Application Lucas Jellema CTO, AMIS (The Netherlands) Oracle ACE Director
An Event A fact When it becomes a fact Timestamp! Of potential interest to anyone With some information associated with it When the fact is changed, that too may constitute an event Note that even when no change occurs, that could be considered an event (absence of expected event)
The Data Avalanche The league of real time events Continuous stream of a multitude of tiny events with hardly any payload, most of which are not interesting at all Sent 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 Processing Useful information could be hidden in those streams of events – and CEP extracts it By detecting patterns, deviations, aggregations in these event streams CEP publishes ‘meaningful’ (business) events to report its findings – by executing some Event Processing Langugae events Complex Event Processor
Continuous Query Language (CQL) Standard extension/complement to SQL For handling large volumes of continuously arriving events Executing the queries continuously Operates on streams of continually arriving events instead of static relational data sets Events can be enriched with context Results keep being produced as event stream Is used for comparing events of same type, to find Trends and Patterns Exceptions Aggregates Complex Event Processor CQL
Example CQL Query Report the average temperature Aggregated over last 60 seconds Reported every 30 seconds Determined per Cluster Temperaturereadings Complex Event Processor Average temperature values (over 60s, per cluster, every 30s)
Event Processing Network Adapters – consuming or producing events Channels – carrying specific event types Processors – running CQL
Complex Event Processing Alert JMS Dashboard SOA Application DB Data Warehouse WebService File events Complex Event Processor JMS HTTP JMX File DB Event Consumer
events events events Java Applications interacting with a complex event processor  Complex Event Processor Java application JMS 1 3 2
Various CEP offerings available Progress 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)   EsperTech JBoss Drools Fusion
Oracle CEP 11g Architecturefka BEA WLEVS(erver) Design Time Run Time CEP Visualizer(web console) Other WebApp Eclipse http CEP plugin Web (Bayeux)Server CEP Server DB JMS
Demo: HelloWorld
The EPN source side of things
Java Application as Event Consumer events Complex Event Processor Java application JMS
Temperature Vigil CEP
Case of Temperature Hospital Temperature sensors Cooling units Maternity Ward and Intensive Care units Fire detection Frequent readings (subsecond) Monitoring for: trends of threshold crossing, fire!, fault detection
Demo: Temperature Sensors Application should display a dashboard for temperature sensor readings The user is interested in cluster aggregates , deviations from pre-set values and broken sensors How would a Java Application process thousands of events per second extract and report aggregates detect and report missing values Note: user wants real time updates – but not more frequently than once per minute
Technical Layout Temperature Sensors are all over the place Clustered per room or location Temperature Readings arrive over JMS Results are sent through JMS to dashboard JMS queue for temperature aggregates Per cluster, once every 30 seconds JMS queue for failed sensor detection
Demo of Temperature Aggregations
Event Processor for aggregation Group by Cluster Report once every 30 seconds Over all events in the last 60 seconds
Sensor Failure When a sensor has not reported for 30 seconds, we consider it failed And potentially broken down CEP needs to trap the missing events and report those
Demo of Sensor Failure detection
Feeding Temperature Aggregate Findings into real time BAM CEP publishes result events on JMS CEP is not aware of Business Activity Monitoring BAM creates an enterprise message source Based on JMS and MapMessages Feeding into a Data Object in the Active Data Cache BAM listens on the JMS Queue and maps the messages to the ADC Data Object
Business Activity Monitoring
Java Application as Event Producer events Complex Event Processor Java application JMS 3
Java Application producing the events to process The user interaction with an application produces many events Navigation, Selection, Submission (scroll, expand/collapse, drill down) Most events are not recorded persistently The events can reveal interesting information about the application, the data and the users For example in a web shop The information could be used to improve the effectiveness of the application
Product Details Search Buy Product mario Mario Kart (WII) €24,99 2010 Rating:****o Details: 1 article in shoppingbasket: €24,99 ,[object Object]
Super Mario
Super Mario Galaxy
Mario Super Sluggers
Super Mario Bros.Search Event ‘mario’ View Event‘Mario Kart’ Buy Event‘Mario Kart’ User interaction events in a WebShop
The WebShop Application
Derive intelligence from WebShop events Actual Metrics: #searches in last 5 minutes, #buyers in the last 24 hours, #search-to-views drilldowns Top 10 search terms (in last [24] hour) Top 10 useless search terms After search on term there is no view event Most Effective search terms Search is followed by (one or more) view events and subsequently a buy event Items frequently viewed but not often bought #buy/#views is ranks low
WebShop & CEP WebShop sends JMS events to single queue Whenever a user in a session searches, drills down or buys Type of event, search term or item identifier, session id CEP reads from JMS channel Routes based on event type Processes events using CQL processor Emits derived events to JMS queue WebShop listens to JMS queue Updates application scope ‘top10’ beans Provides dashboard based on ‘top10’ beans Potentially using Server Push (or periodic poll)
Webshop feeding into CEP and receiving refined feedback WebShop Top 10 Popular Search Terms Top 10 Useless Search Terms Most Effective Search Terms search view buy
Popular useless search terms(missing viewevent following the search)

More Related Content

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

Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platformYves Goeleven
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?confluent
 
Event Stream Processing SAP
Event Stream Processing SAPEvent Stream Processing SAP
Event Stream Processing SAPGaurav Ahluwalia
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event ProcessingJohn Plummer
 
Microsoft SQL Server - StreamInsight Overview Presentation
Microsoft SQL Server - StreamInsight Overview PresentationMicrosoft SQL Server - StreamInsight Overview Presentation
Microsoft SQL Server - StreamInsight Overview PresentationMicrosoft Private Cloud
 
Intelligent Monitoring
Intelligent MonitoringIntelligent Monitoring
Intelligent MonitoringIntelie
 
ArcSight Basics.ppt
ArcSight Basics.pptArcSight Basics.ppt
ArcSight Basics.pptneoalt
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido Schmutz
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Alexandre Vasseur
 
What is going on - Application diagnostics on Azure - TechDays Finland
What is going on - Application diagnostics on Azure - TechDays FinlandWhat is going on - Application diagnostics on Azure - TechDays Finland
What is going on - Application diagnostics on Azure - TechDays FinlandMaarten Balliauw
 
Event Driven Architecture (EDA), November 2, 2006
Event Driven Architecture (EDA), November 2, 2006Event Driven Architecture (EDA), November 2, 2006
Event Driven Architecture (EDA), November 2, 2006Tim Bass
 
Event Stream Processing with Kafka and Samza
Event Stream Processing with Kafka and SamzaEvent Stream Processing with Kafka and Samza
Event Stream Processing with Kafka and SamzaZach Cox
 
Q radar architecture deep dive
Q radar architecture   deep diveQ radar architecture   deep dive
Q radar architecture deep diveKamal Mouline
 
善用分析與推播訊息增加及留住用戶
善用分析與推播訊息增加及留住用戶善用分析與推播訊息增加及留住用戶
善用分析與推播訊息增加及留住用戶Amazon Web Services
 
WebAction In-Memory Computing Summit 2015
WebAction In-Memory Computing Summit 2015WebAction In-Memory Computing Summit 2015
WebAction In-Memory Computing Summit 2015WebAction
 
Real-time data integration to the cloud
Real-time data integration to the cloudReal-time data integration to the cloud
Real-time data integration to the cloudSankar Nagarajan
 
The present and future of serverless observability (QCon London)
The present and future of serverless observability (QCon London)The present and future of serverless observability (QCon London)
The present and future of serverless observability (QCon London)Yan Cui
 
The present and future of Serverless observability
The present and future of Serverless observabilityThe present and future of Serverless observability
The present and future of Serverless observabilityYan Cui
 
The present and future of Serverless observability
The present and future of Serverless observabilityThe present and future of Serverless observability
The present and future of Serverless observabilityYan Cui
 

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

Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platform
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?
 
Event Stream Processing SAP
Event Stream Processing SAPEvent Stream Processing SAP
Event Stream Processing SAP
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event Processing
 
Intellica evam summary
Intellica evam summaryIntellica evam summary
Intellica evam summary
 
Microsoft SQL Server - StreamInsight Overview Presentation
Microsoft SQL Server - StreamInsight Overview PresentationMicrosoft SQL Server - StreamInsight Overview Presentation
Microsoft SQL Server - StreamInsight Overview Presentation
 
Intelligent Monitoring
Intelligent MonitoringIntelligent Monitoring
Intelligent Monitoring
 
ArcSight Basics.ppt
ArcSight Basics.pptArcSight Basics.ppt
ArcSight Basics.ppt
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soa
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?
 
What is going on - Application diagnostics on Azure - TechDays Finland
What is going on - Application diagnostics on Azure - TechDays FinlandWhat is going on - Application diagnostics on Azure - TechDays Finland
What is going on - Application diagnostics on Azure - TechDays Finland
 
Event Driven Architecture (EDA), November 2, 2006
Event Driven Architecture (EDA), November 2, 2006Event Driven Architecture (EDA), November 2, 2006
Event Driven Architecture (EDA), November 2, 2006
 
Event Stream Processing with Kafka and Samza
Event Stream Processing with Kafka and SamzaEvent Stream Processing with Kafka and Samza
Event Stream Processing with Kafka and Samza
 
Q radar architecture deep dive
Q radar architecture   deep diveQ radar architecture   deep dive
Q radar architecture deep dive
 
善用分析與推播訊息增加及留住用戶
善用分析與推播訊息增加及留住用戶善用分析與推播訊息增加及留住用戶
善用分析與推播訊息增加及留住用戶
 
WebAction In-Memory Computing Summit 2015
WebAction In-Memory Computing Summit 2015WebAction In-Memory Computing Summit 2015
WebAction In-Memory Computing Summit 2015
 
Real-time data integration to the cloud
Real-time data integration to the cloudReal-time data integration to the cloud
Real-time data integration to the cloud
 
The present and future of serverless observability (QCon London)
The present and future of serverless observability (QCon London)The present and future of serverless observability (QCon London)
The present and future of serverless observability (QCon London)
 
The present and future of Serverless observability
The present and future of Serverless observabilityThe present and future of Serverless observability
The present and future of Serverless observability
 
The present and future of Serverless observability
The present and future of Serverless observabilityThe present and future of Serverless observability
The present and future of Serverless observability
 

More from Lucas Jellema

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

More from Lucas Jellema (20)

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

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

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 Application Lucas Jellema CTO, AMIS (The Netherlands) Oracle ACE Director
  • 2. An Event A fact When it becomes a fact Timestamp! Of potential interest to anyone With some information associated with it When the fact is changed, that too may constitute an event Note that even when no change occurs, that could be considered an event (absence of expected event)
  • 3. The Data Avalanche The league of real time events Continuous stream of a multitude of tiny events with hardly any payload, most of which are not interesting at all Sent 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 Processing Useful information could be hidden in those streams of events – and CEP extracts it By detecting patterns, deviations, aggregations in these event streams CEP publishes ‘meaningful’ (business) events to report its findings – by executing some Event Processing Langugae events Complex Event Processor
  • 6. Continuous Query Language (CQL) Standard extension/complement to SQL For handling large volumes of continuously arriving events Executing the queries continuously Operates on streams of continually arriving events instead of static relational data sets Events can be enriched with context Results keep being produced as event stream Is used for comparing events of same type, to find Trends and Patterns Exceptions Aggregates Complex Event Processor CQL
  • 7. Example CQL Query Report the average temperature Aggregated over last 60 seconds Reported every 30 seconds Determined per Cluster Temperaturereadings Complex Event Processor Average temperature values (over 60s, per cluster, every 30s)
  • 8. Event Processing Network Adapters – consuming or producing events Channels – carrying specific event types Processors – running CQL
  • 9. Complex Event Processing Alert JMS Dashboard SOA Application DB Data Warehouse WebService File events Complex Event Processor JMS HTTP JMX File DB Event Consumer
  • 10. events events events Java Applications interacting with a complex event processor Complex Event Processor Java application JMS 1 3 2
  • 11. Various CEP offerings available Progress 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) EsperTech JBoss Drools Fusion
  • 12. Oracle CEP 11g Architecturefka BEA WLEVS(erver) Design Time Run Time CEP Visualizer(web console) Other WebApp Eclipse http CEP plugin Web (Bayeux)Server CEP Server DB JMS
  • 14. The EPN source side of things
  • 15. Java Application as Event Consumer events Complex Event Processor Java application JMS
  • 17. Case of Temperature Hospital Temperature sensors Cooling units Maternity Ward and Intensive Care units Fire detection Frequent readings (subsecond) Monitoring for: trends of threshold crossing, fire!, fault detection
  • 18. Demo: Temperature Sensors Application should display a dashboard for temperature sensor readings The user is interested in cluster aggregates , deviations from pre-set values and broken sensors How would a Java Application process thousands of events per second extract and report aggregates detect and report missing values Note: user wants real time updates – but not more frequently than once per minute
  • 19. Technical Layout Temperature Sensors are all over the place Clustered per room or location Temperature Readings arrive over JMS Results are sent through JMS to dashboard JMS queue for temperature aggregates Per cluster, once every 30 seconds JMS queue for failed sensor detection
  • 20. Demo of Temperature Aggregations
  • 21. Event Processor for aggregation Group by Cluster Report once every 30 seconds Over all events in the last 60 seconds
  • 22.
  • 23. Sensor Failure When a sensor has not reported for 30 seconds, we consider it failed And potentially broken down CEP needs to trap the missing events and report those
  • 24. Demo of Sensor Failure detection
  • 25.
  • 26. Feeding Temperature Aggregate Findings into real time BAM CEP publishes result events on JMS CEP is not aware of Business Activity Monitoring BAM creates an enterprise message source Based on JMS and MapMessages Feeding into a Data Object in the Active Data Cache BAM listens on the JMS Queue and maps the messages to the ADC Data Object
  • 28. Java Application as Event Producer events Complex Event Processor Java application JMS 3
  • 29. Java Application producing the events to process The user interaction with an application produces many events Navigation, Selection, Submission (scroll, expand/collapse, drill down) Most events are not recorded persistently The events can reveal interesting information about the application, the data and the users For example in a web shop The information could be used to improve the effectiveness of the application
  • 30.
  • 34. Super Mario Bros.Search Event ‘mario’ View Event‘Mario Kart’ Buy Event‘Mario Kart’ User interaction events in a WebShop
  • 36. Derive intelligence from WebShop events Actual Metrics: #searches in last 5 minutes, #buyers in the last 24 hours, #search-to-views drilldowns Top 10 search terms (in last [24] hour) Top 10 useless search terms After search on term there is no view event Most Effective search terms Search is followed by (one or more) view events and subsequently a buy event Items frequently viewed but not often bought #buy/#views is ranks low
  • 37. WebShop & CEP WebShop sends JMS events to single queue Whenever a user in a session searches, drills down or buys Type of event, search term or item identifier, session id CEP reads from JMS channel Routes based on event type Processes events using CQL processor Emits derived events to JMS queue WebShop listens to JMS queue Updates application scope ‘top10’ beans Provides dashboard based on ‘top10’ beans Potentially using Server Push (or periodic poll)
  • 38. Webshop feeding into CEP and receiving refined feedback WebShop Top 10 Popular Search Terms Top 10 Useless Search Terms Most Effective Search Terms search view buy
  • 39. Popular useless search terms(missing viewevent following the search)
  • 40. Real Time Event Driven Dashboard in WebShop application
  • 41. Summary Complex Event Processing For analysis of real time, high volume, continuous streams of fine grained, non-persistent events Used for detecting patterns, spotting exceptions, calculating aggregates and tracking trends CEP uses CQL queries to derive information from event streams – continuously, as events continue to arrive Results are published as (higher level) events – often to JMS queues
  • 42. Summary [Java] Applications can have CEP pre-process events to do complex analysis and filtering producing business events that applications can understand Java Applications produce events that CEP can process And possibly feed back into the applications JMS and http are primary communication channels
  • 43. Resources Presentation and demos are on our blog http://technology.amis.nl/blog Contact me at:lucas.jellema@amis.nl Note: Chapter 19 in Oracle SOA Suite 11gHandbook describesOracle CEP and BAM

Editor's Notes

  1. Demo in plain SQL: http://technology.amis.nl/blog/3569/simple-event-processing-using-sql-with-analytical-functions-to-detect-traffic-patterns
  2. 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