SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Cloud-based CEP 
on Healthcare 
Modeling CEP for the 
cloud 
www.plugtree.com 
info@plugtree.com
Agenda 
● What is Complex Event Processing? 
○ Definitions and examples 
● Event Driven Architecture 
○ EDA and BPM, SOA, BAM, BRMS 
○ CEP as a component of EDA 
● Cloud Case 
○ Business Rule Management Systems 
○ Cloud-wide event streaming modes 
○ Handling CEP on the cloud 
○ Knowledge Engineering lessons 
○ Future improvements
What is Complex Event Processing? 
● Event Definition 
○ A significant change in state at a particular point in time, 
in a specific domain 
○ Events can be embedded in a situation, where 
sometimes we want to react to some type of events. 
● Complex Event Definition 
○ Non-atomic event: An abstraction, composition, or 
aggregation of other events called its members
Complex Event Examples 
● 1929 stock market crash: Composition of individual stock 
trades 
● Natural disasters: Aggregation of many natural events 
perceivable through sensors 
● DDOS attack detection: Aggregation of each HTTP request 
basic information and temporal relation
What is Complex Event Processing? 
● Complex Event Processing 
○ The ability to detect, correlate, abstract or aggregate 
simple events to react to complex events 
○ Uses temporal reasoning: Discrete sequence of points in 
time (or intervals) to correlate simple events between 
each other 
● Event Streaming Processing 
○ Events come in streams: Related to mostly filtering and 
finding events within streams 
○ Once they started adding constraints to such events, they 
started calling it CEP
Event Driven Architecture 
● Building applications focused on the generation of events 
● Proposes a set of building blocks 
○ Event producers: They send new events into the Event 
Driven System 
○ Event consumers: They listen to specific events from 
the Event Driven System 
○ Event processing agents: Works using Complex Event 
Processing 
○ Event channels: Connections and protocols for 
transmitting events
Event Driven Architecture
Characteristics of EDA 
● Applications are naturally centered on events 
● Decoupled design 
○ The event producer doesn’t know the consumer 
○ The processing agents don’t know consumers or 
producers 
● The application will have the possibility to react based on 
events 
● Proposes a non invasive approach to extending applications 
○ Provides scalability and fault tolerance for free 
○ Ideal for dynamic nature of cloud environments
EDA and SOA 
● SOA proposes a design based on shareable and reusable 
components with well defined interfaces 
● Each of the services inside SOA can generate events that 
can be consumed by EDA components to analyse or extend 
the system 
○ Example: system monitoring of ESBs
EDA and BPM 
● The Business Process activities can serve as event 
producers, sending events outside the process’ scope 
● Business Processes can also wait to receive events from 
external sources to change its internal state
EDA and BAM 
● Business Activity Monitoring Systems are always related with 
KPIs 
● How we aggregate events will allow us to provide better 
feeds for new indicators
EDA and BRMS 
● BRMS: Business Rule Management Systems 
● Business Rules can be used to filter, route and compose 
events 
● Event Processing Agents can be written using rules 
○ Events can trigger which rules are fired
Cloud case
Architecture Overview
Characteristics 
● Rule based CEP engine 
● Business Rule Management System (BRMS) for storing and 
populating rule definitions 
○ Rules updated on runtime after tests pass 
● Handling thousands of events from multiple sources 
○ Generic events 
○ Typed events 
● Receiving events from multiple applications 
○ Event streaming framework based on AOP 
● Event subscribers, persistent (with SLA) and non-persistent 
(without SLA)
Cloud vs CEP 
● Cloud Servers: Limited size, Unlimited amount 
○ Scalability is key 
● Drools-based CEP: All events in one common processing 
network 
○ Requires a large amount of memory 
○ Usually runs all rules inside one server 
● Compromise: Creating a distributed Event Processing 
Network based on responsibility grouping of rules 
○ Architecture based on splitting CEP environment into 
several servers depending on demand
Domain-splitted CEP nodes 
● Distributed Event Processing Network 
○ Based on responsibility grouping of rules 
○ Broker CEP node: quick distribution of events to 
corresponding domain-based nodes
Domain-splitted CEP nodes 
● Implemented with Drools Fusion 
○ Rule engine based, with support for temporal operators 
○ BRMS provides editors for rules, processes, and data 
■ Exposes definitions through Git and Maven
What are rules? 
● Basic structure to diagram requirements as isolated 
conditions and their correspondent actions 
rule "rule name" 
when 
a condition is met 
then 
an action is taken 
end
CEP Rule events: Drools Fusion 
● Simple event declaration 
○ define a point in time event 
■ by default, when added 
○ define an interval event 
● Can create new types of events on 
demand 
● Usually immutable, but not enforced 
● Events can come from different 
sources 
● Drools provides 13 temporal operators 
to compare events between each other 
import some.package.VoiceCall; 
declare VoiceCall 
@role( event ) 
@timestamp( callTime ) 
@duration( callDuration ) 
end 
declare StockTick 
@role( event ) 
symbol: String 
price: double 
@expires( 2h30m ) 
end
Temporal Operators
CEP Rule example 
● Drools provides ways to collect and accumulate different 
groups of facts and events by the conditions they meet 
rule "5 voice calls in two hours by same client" 
when //we have over 4 calls from the same client within 2 hours since first call 
$vc: VoiceCall($cn: clientNumber) 
$c: Client(clientNumber == $cn) 
$count:: Number(intValue > 4) from accumulate( 
VoiceCall(this != $vc, clientNumber == $cn, 
$vc before this, this after $vc, this meets[2h] $vc 
),count()) 
then //mark his problem as urgent and requiring advanced treatment 
globalHelper.sendAlert("user called over and over"); 
globalHelper2.markCallsAsUrgent($cn); 
globalHelper2.setDifficulty(DifficultyLevel.ADVANCED); 
end
BRMS and CEP nodes 
● JBoss BRMS 6 
○ Open Source project. Prepared for cloud 
○ Manage rule groups as Maven projects stored on Git 
■ Automatic CI for all environments
Handling the volume of events 
● Scalable Message Broker: cloud 
based (can grow with necessity) 
● Multiple CEP nodes 
○ Drools works in memory 
○ Domain divided environments 
○ n CEP nodes - m servers 
● Reduced global domain for cross 
reference problems 
● Old events: persisted in scalable cache (MongoDB) 
○ Discard policies more long-lived than in-memory events 
○ Queried when new events trigger retrieval rules
Event subscriptions 
● Persistent subscribers 
○ SLA previously agreed 
○ No message loss 
○ Policy on SLA breaching 
■ Drop messages 
■ Store for a while and notify 
action required 
● Non-persistent subscribers 
○ No SLA needed 
○ Possible message loss 
○ Ideal for quick project kick-off
Cloud Integration 
● Fuse ESB: Cloud based and scalable, but couldn’t take the 
varying volume of events 
○ Events handled through RabbitMQ
App Integration 
● Java: if you use AOP based architecture 
○ Events sent through an interceptor of your services 
○ Your applications gain the capacity of sending events 
without adding any code!
BPM Engine Integration (cloud-based) 
● JBoss BPM Suite: jBPM6 based 
○ BPMN2: Extensible definitions 
○ jBPM6: Extensible parsing for 
runtime modification 
○ Added event sending to all 
relevant steps of processes 
● Added special handling for complex 
events in relevant process 
definitions (i.e. human task 
automatic management based on 
SLAs)
BPM Engine Integration (cloud-based) 
● JBoss BPM Suite and CEP engine 
run on the same technology stack 
● Splitting based on: 
○ CEP gets events from many 
other sources than BPM 
○ Non-functional requirements 
● Processes delegate fast and persist 
long running processes 
● CEP handles thousands of events 
in memory (mostly) and very 
closely related in time.
Cloud Operational Tasks 
● SLA breach handling 
○ Cloud plan that allows spikes in use 
○ DevOps lesson: Continuous monitoring is key! 
○ : : When SLA is breached, message increase can be 
handled and actions taken 
■ Message discarding 
■ SLA changed 
● All cloud components are monitored continuously 
○ Monitoring results can be fed back to the CEP engine
Knowledge Engineering Lessons 
● Knowledge Engineering: Discipline that involves 
transferring, modeling, and integrating knowledge from 
humans into artificial intelligence systems. 
● Experience on gathering information from healthcare 
experts led to the following maturity stages definitions: 
○ Stage 1: Analysts translate expert knowledge into rules 
○ Stage 2: Analysts teach experts basic rule structures 
○ Stage 3: Provide tools to experts to improve and write 
rules directly 
■ DSL: Domain Specific Languages 
■ Decision Tables
Knowledge Engineering Lessons 
● Stage 1 and 2: Defining knowledge into structures 
BASIC RULES CEP RULES 
when 
a condition is met 
then 
take a specific action 
detect 
a correlation of events 
and 
take a related action 
● Stage 3 
○ DSL: Providing translations from natural language to 
specific technical implementation for rule executions 
○ Decision Tables: Ideal for highly structured rules with 
specific delimiters.
Risk Factors 
● Environment allocation is still done manually 
● Memory allocation problem 
○ Event after splitting in nodes by domain, some 
domains might require too much memory. Currently 
suggested for private cloud 
● Nodes are not replicated 
○ In case of a node failure, a node is restarted 
○ The in-memory events are lost 
○ Small time window where event correlations can be 
missed
Future Improvements 
● Automatic node generation 
○ Cloud PaaS providers have APIs to create new 
environments 
○ Based on new detected complex events, new 
environments could be created 
■ i.e. New rule domain created → Automated 
environment generation 
● DSL Coverage: Extend usage for Business Analysts
Future Improvements 
● Automatic node replication 
○ In-memory events replicated on extra nodes 
○ Rule execution conditioned to one node at a time 
○ Continuously update events and rule activations 
between nodes 
○ Drools: Agenda Filters and WM Event Listeners
Briefing up 
● CEP can be handled in cloud environments 
○ Special understanding of domain and processing size are 
needed to avoid crashes 
○ Special operational tasks must be created 
■ Integration on existing enterprise administration 
“accepted good practices” is possible 
■ Continuous Delivery is a very real possibility 
● CEP interactions with enterprise architecture can provide a huge 
added value 
○ Automatic control of near to SLA breach operations 
○ Better detection of unexpected behaviour in event producers
questions? 
please come next to the computer :)
Thank you! 
www.plugtree.com 
info@plugtree.com

Weitere ähnliche Inhalte

Ähnlich wie Decision CAMP 2014 - Mariano de Maio

Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesRise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesDiUS
 
Scaling Monitoring At Databricks From Prometheus to M3
Scaling Monitoring At Databricks From Prometheus to M3Scaling Monitoring At Databricks From Prometheus to M3
Scaling Monitoring At Databricks From Prometheus to M3LibbySchulze
 
Ghost Environment
Ghost EnvironmentGhost Environment
Ghost EnvironmentPratipD
 
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ UberKafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uberconfluent
 
Scalability truths and serverless architectures
Scalability truths and serverless architecturesScalability truths and serverless architectures
Scalability truths and serverless architecturesRegunath B
 
Empowering Real-Time Decision Making with Data Streaming
Empowering Real-Time Decision Making with Data StreamingEmpowering Real-Time Decision Making with Data Streaming
Empowering Real-Time Decision Making with Data StreamingSafe Software
 
Workflows via Event driven architecture
Workflows via Event driven architectureWorkflows via Event driven architecture
Workflows via Event driven architectureMilan Patel
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016aspyker
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Sharma Podila
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open SourceAll Things Open
 
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons LearntLast Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons LearntMark Grebler
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...Timo Walther
 
Stream processing with Apache Flink (Timo Walther - Ververica)
Stream processing with Apache Flink (Timo Walther - Ververica)Stream processing with Apache Flink (Timo Walther - Ververica)
Stream processing with Apache Flink (Timo Walther - Ververica)KafkaZone
 
SDN in the Management Plane: OpenConfig and Streaming Telemetry
SDN in the Management Plane: OpenConfig and Streaming TelemetrySDN in the Management Plane: OpenConfig and Streaming Telemetry
SDN in the Management Plane: OpenConfig and Streaming TelemetryAnees Shaikh
 
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...Amazon Web Services
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 

Ähnlich wie Decision CAMP 2014 - Mariano de Maio (20)

Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesRise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
 
Scaling Monitoring At Databricks From Prometheus to M3
Scaling Monitoring At Databricks From Prometheus to M3Scaling Monitoring At Databricks From Prometheus to M3
Scaling Monitoring At Databricks From Prometheus to M3
 
Ghost Environment
Ghost EnvironmentGhost Environment
Ghost Environment
 
Apache flink
Apache flinkApache flink
Apache flink
 
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ UberKafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
 
Scalability truths and serverless architectures
Scalability truths and serverless architecturesScalability truths and serverless architectures
Scalability truths and serverless architectures
 
Empowering Real-Time Decision Making with Data Streaming
Empowering Real-Time Decision Making with Data StreamingEmpowering Real-Time Decision Making with Data Streaming
Empowering Real-Time Decision Making with Data Streaming
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
Workflows via Event driven architecture
Workflows via Event driven architectureWorkflows via Event driven architecture
Workflows via Event driven architecture
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Nexmark with beam
Nexmark with beamNexmark with beam
Nexmark with beam
 
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons LearntLast Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
 
Stream processing with Apache Flink (Timo Walther - Ververica)
Stream processing with Apache Flink (Timo Walther - Ververica)Stream processing with Apache Flink (Timo Walther - Ververica)
Stream processing with Apache Flink (Timo Walther - Ververica)
 
SDN in the Management Plane: OpenConfig and Streaming Telemetry
SDN in the Management Plane: OpenConfig and Streaming TelemetrySDN in the Management Plane: OpenConfig and Streaming Telemetry
SDN in the Management Plane: OpenConfig and Streaming Telemetry
 
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 

Mehr von Decision CAMP

Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP
 
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01Decision CAMP
 
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP
 
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP
 
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP
 
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP
 
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP
 
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP
 
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision CAMP
 
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP
 
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP
 
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP
 

Mehr von Decision CAMP (13)

Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performance
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
 
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
 
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101
 
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
 
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
 
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
 
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
 
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
 
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
 
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
 
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
 
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
 

Kürzlich hochgeladen

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
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
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
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
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Decision CAMP 2014 - Mariano de Maio

  • 1. Cloud-based CEP on Healthcare Modeling CEP for the cloud www.plugtree.com info@plugtree.com
  • 2. Agenda ● What is Complex Event Processing? ○ Definitions and examples ● Event Driven Architecture ○ EDA and BPM, SOA, BAM, BRMS ○ CEP as a component of EDA ● Cloud Case ○ Business Rule Management Systems ○ Cloud-wide event streaming modes ○ Handling CEP on the cloud ○ Knowledge Engineering lessons ○ Future improvements
  • 3. What is Complex Event Processing? ● Event Definition ○ A significant change in state at a particular point in time, in a specific domain ○ Events can be embedded in a situation, where sometimes we want to react to some type of events. ● Complex Event Definition ○ Non-atomic event: An abstraction, composition, or aggregation of other events called its members
  • 4. Complex Event Examples ● 1929 stock market crash: Composition of individual stock trades ● Natural disasters: Aggregation of many natural events perceivable through sensors ● DDOS attack detection: Aggregation of each HTTP request basic information and temporal relation
  • 5. What is Complex Event Processing? ● Complex Event Processing ○ The ability to detect, correlate, abstract or aggregate simple events to react to complex events ○ Uses temporal reasoning: Discrete sequence of points in time (or intervals) to correlate simple events between each other ● Event Streaming Processing ○ Events come in streams: Related to mostly filtering and finding events within streams ○ Once they started adding constraints to such events, they started calling it CEP
  • 6. Event Driven Architecture ● Building applications focused on the generation of events ● Proposes a set of building blocks ○ Event producers: They send new events into the Event Driven System ○ Event consumers: They listen to specific events from the Event Driven System ○ Event processing agents: Works using Complex Event Processing ○ Event channels: Connections and protocols for transmitting events
  • 8. Characteristics of EDA ● Applications are naturally centered on events ● Decoupled design ○ The event producer doesn’t know the consumer ○ The processing agents don’t know consumers or producers ● The application will have the possibility to react based on events ● Proposes a non invasive approach to extending applications ○ Provides scalability and fault tolerance for free ○ Ideal for dynamic nature of cloud environments
  • 9. EDA and SOA ● SOA proposes a design based on shareable and reusable components with well defined interfaces ● Each of the services inside SOA can generate events that can be consumed by EDA components to analyse or extend the system ○ Example: system monitoring of ESBs
  • 10. EDA and BPM ● The Business Process activities can serve as event producers, sending events outside the process’ scope ● Business Processes can also wait to receive events from external sources to change its internal state
  • 11. EDA and BAM ● Business Activity Monitoring Systems are always related with KPIs ● How we aggregate events will allow us to provide better feeds for new indicators
  • 12. EDA and BRMS ● BRMS: Business Rule Management Systems ● Business Rules can be used to filter, route and compose events ● Event Processing Agents can be written using rules ○ Events can trigger which rules are fired
  • 15. Characteristics ● Rule based CEP engine ● Business Rule Management System (BRMS) for storing and populating rule definitions ○ Rules updated on runtime after tests pass ● Handling thousands of events from multiple sources ○ Generic events ○ Typed events ● Receiving events from multiple applications ○ Event streaming framework based on AOP ● Event subscribers, persistent (with SLA) and non-persistent (without SLA)
  • 16. Cloud vs CEP ● Cloud Servers: Limited size, Unlimited amount ○ Scalability is key ● Drools-based CEP: All events in one common processing network ○ Requires a large amount of memory ○ Usually runs all rules inside one server ● Compromise: Creating a distributed Event Processing Network based on responsibility grouping of rules ○ Architecture based on splitting CEP environment into several servers depending on demand
  • 17. Domain-splitted CEP nodes ● Distributed Event Processing Network ○ Based on responsibility grouping of rules ○ Broker CEP node: quick distribution of events to corresponding domain-based nodes
  • 18. Domain-splitted CEP nodes ● Implemented with Drools Fusion ○ Rule engine based, with support for temporal operators ○ BRMS provides editors for rules, processes, and data ■ Exposes definitions through Git and Maven
  • 19. What are rules? ● Basic structure to diagram requirements as isolated conditions and their correspondent actions rule "rule name" when a condition is met then an action is taken end
  • 20. CEP Rule events: Drools Fusion ● Simple event declaration ○ define a point in time event ■ by default, when added ○ define an interval event ● Can create new types of events on demand ● Usually immutable, but not enforced ● Events can come from different sources ● Drools provides 13 temporal operators to compare events between each other import some.package.VoiceCall; declare VoiceCall @role( event ) @timestamp( callTime ) @duration( callDuration ) end declare StockTick @role( event ) symbol: String price: double @expires( 2h30m ) end
  • 22. CEP Rule example ● Drools provides ways to collect and accumulate different groups of facts and events by the conditions they meet rule "5 voice calls in two hours by same client" when //we have over 4 calls from the same client within 2 hours since first call $vc: VoiceCall($cn: clientNumber) $c: Client(clientNumber == $cn) $count:: Number(intValue > 4) from accumulate( VoiceCall(this != $vc, clientNumber == $cn, $vc before this, this after $vc, this meets[2h] $vc ),count()) then //mark his problem as urgent and requiring advanced treatment globalHelper.sendAlert("user called over and over"); globalHelper2.markCallsAsUrgent($cn); globalHelper2.setDifficulty(DifficultyLevel.ADVANCED); end
  • 23. BRMS and CEP nodes ● JBoss BRMS 6 ○ Open Source project. Prepared for cloud ○ Manage rule groups as Maven projects stored on Git ■ Automatic CI for all environments
  • 24. Handling the volume of events ● Scalable Message Broker: cloud based (can grow with necessity) ● Multiple CEP nodes ○ Drools works in memory ○ Domain divided environments ○ n CEP nodes - m servers ● Reduced global domain for cross reference problems ● Old events: persisted in scalable cache (MongoDB) ○ Discard policies more long-lived than in-memory events ○ Queried when new events trigger retrieval rules
  • 25. Event subscriptions ● Persistent subscribers ○ SLA previously agreed ○ No message loss ○ Policy on SLA breaching ■ Drop messages ■ Store for a while and notify action required ● Non-persistent subscribers ○ No SLA needed ○ Possible message loss ○ Ideal for quick project kick-off
  • 26. Cloud Integration ● Fuse ESB: Cloud based and scalable, but couldn’t take the varying volume of events ○ Events handled through RabbitMQ
  • 27. App Integration ● Java: if you use AOP based architecture ○ Events sent through an interceptor of your services ○ Your applications gain the capacity of sending events without adding any code!
  • 28. BPM Engine Integration (cloud-based) ● JBoss BPM Suite: jBPM6 based ○ BPMN2: Extensible definitions ○ jBPM6: Extensible parsing for runtime modification ○ Added event sending to all relevant steps of processes ● Added special handling for complex events in relevant process definitions (i.e. human task automatic management based on SLAs)
  • 29. BPM Engine Integration (cloud-based) ● JBoss BPM Suite and CEP engine run on the same technology stack ● Splitting based on: ○ CEP gets events from many other sources than BPM ○ Non-functional requirements ● Processes delegate fast and persist long running processes ● CEP handles thousands of events in memory (mostly) and very closely related in time.
  • 30. Cloud Operational Tasks ● SLA breach handling ○ Cloud plan that allows spikes in use ○ DevOps lesson: Continuous monitoring is key! ○ : : When SLA is breached, message increase can be handled and actions taken ■ Message discarding ■ SLA changed ● All cloud components are monitored continuously ○ Monitoring results can be fed back to the CEP engine
  • 31. Knowledge Engineering Lessons ● Knowledge Engineering: Discipline that involves transferring, modeling, and integrating knowledge from humans into artificial intelligence systems. ● Experience on gathering information from healthcare experts led to the following maturity stages definitions: ○ Stage 1: Analysts translate expert knowledge into rules ○ Stage 2: Analysts teach experts basic rule structures ○ Stage 3: Provide tools to experts to improve and write rules directly ■ DSL: Domain Specific Languages ■ Decision Tables
  • 32. Knowledge Engineering Lessons ● Stage 1 and 2: Defining knowledge into structures BASIC RULES CEP RULES when a condition is met then take a specific action detect a correlation of events and take a related action ● Stage 3 ○ DSL: Providing translations from natural language to specific technical implementation for rule executions ○ Decision Tables: Ideal for highly structured rules with specific delimiters.
  • 33. Risk Factors ● Environment allocation is still done manually ● Memory allocation problem ○ Event after splitting in nodes by domain, some domains might require too much memory. Currently suggested for private cloud ● Nodes are not replicated ○ In case of a node failure, a node is restarted ○ The in-memory events are lost ○ Small time window where event correlations can be missed
  • 34. Future Improvements ● Automatic node generation ○ Cloud PaaS providers have APIs to create new environments ○ Based on new detected complex events, new environments could be created ■ i.e. New rule domain created → Automated environment generation ● DSL Coverage: Extend usage for Business Analysts
  • 35. Future Improvements ● Automatic node replication ○ In-memory events replicated on extra nodes ○ Rule execution conditioned to one node at a time ○ Continuously update events and rule activations between nodes ○ Drools: Agenda Filters and WM Event Listeners
  • 36. Briefing up ● CEP can be handled in cloud environments ○ Special understanding of domain and processing size are needed to avoid crashes ○ Special operational tasks must be created ■ Integration on existing enterprise administration “accepted good practices” is possible ■ Continuous Delivery is a very real possibility ● CEP interactions with enterprise architecture can provide a huge added value ○ Automatic control of near to SLA breach operations ○ Better detection of unexpected behaviour in event producers
  • 37. questions? please come next to the computer :)
  • 38. Thank you! www.plugtree.com info@plugtree.com