SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Applying Complex Event ProcessingApplying Complex Event Processing
Edson Tirelli
etirelli@redhat.com
Lead CEP Designer
JBoss, a Division of Red Hat
Agenda
o Brief introduction on CEP and Terminology
o Drools Vision
o Drools Fusion: Complex Event Processing extensions
o Event Declaration and Semantics
o Event Cloud, Streams and the Session Clock
o Temporal Reasoning
o Sliding Window Support
o Streams Support
o Memory Management
o Questions & Answers
Brief introduction on CEP and Terminology
Drools Fusion: Complex Event Processing extensions
Event Declaration and Semantics
Event Cloud, Streams and the Session Clock
“An event is an observable occurrence
“An event in the Unified Modeling Language is a
notable occurrence at a particular
Terminology: Event
“Anything that happens,
happening.”
“An object that represents,
event, generally for the
processing”
http://complexevents.com
observable occurrence.”
“An event in the Unified Modeling Language is a
at a particular point in time.”
http://www.wikipedia.org
Terminology: Event
, or is contemplated as
represents, encodes or records an
the purpose of computer
http://complexevents.com
For the scope of this presentation:
“An event is a significant
Terminology: Event
“An event is a significant
state at a particular
For the scope of this presentation:
significant change of
Terminology: Event
significant change of
at a particular point in time”
“Complex Event, is an abstraction of other events
called its members.”
o Examples:
o The 1929 stock market crash –
thousands of member events, including individual stock trades)
Terminology: Complex Event
thousands of member events, including individual stock trades)
o The 2004 Indonesian Tsunami –
events
o A completed stock purchase -an abstraction of the events in a
transaction to purchase the stock
o A successful on-line shopping cart checkout
shopping cart events on an on-line website
Source: http://complexevents.com
, is an abstraction of other events
an abstraction denoting many
member events, including individual stock trades)
Terminology: Complex Event
member events, including individual stock trades)
– an abstraction of many natural
an abstraction of the events in a
line shopping cart checkout – an abstraction of
line website
http://complexevents.com
“Complex Event Processing
an event processing concept that deals with the
task of processing multiple events with the goal
of identifying the meaningful events
event cloud.
Terminology: CEP
CEP employs techniques such as
complex patterns of many events, event
correlation and abstraction
and relationships between events such as
causality, membership, and timing, and event
driven processes.”
Complex Event Processing, or CEP, is primarily
an event processing concept that deals with the
task of processing multiple events with the goal
identifying the meaningful events within the
Terminology: CEP
employs techniques such as detection of
complex patterns of many events, event
abstraction, event hierarchies,
and relationships between events such as
causality, membership, and timing, and event-
-- wikipedia
o Examples:
o Fraud detection (credit cards, social security, banks, telecom
carriers, etc)
o Logistics Real-Time Awareness solution
o Neonatal ICU: infant vital signs monitoring
o BAM (Business Activity Monitoring)
Terminology: CEP
o Risk Assessment
o Rating (telecom, traffic)
o Traffic flow control
o RFID monitoring (products in stores, bags in airports, etc)
o …
Fraud detection (credit cards, social security, banks, telecom
Time Awareness solution
Neonatal ICU: infant vital signs monitoring
BAM (Business Activity Monitoring)
CEP
RFID monitoring (products in stores, bags in airports, etc)
Rules Fest – October 2010 – © Edson Tirelli 7
Complex Event Processing
Stream Processing, or ESP, are two
technologies that were born separate, but
converged.
Terminology: CEP
An oversimplification: In their origins...
Event Stream Processing focused on the ability to
process high volume streams
Complex Event Processing
detecting and processing the
events.
Complex Event Processing, or CEP, and Event
, or ESP, are two
technologies that were born separate, but
Terminology: CEP vs ESP
: In their origins...
focused on the ability to
streams of events.
Complex Event Processing focused on defining,
detecting and processing the relationships among
For the scope of this presentation:
“CEP is used as a common term
Terminology: CEP and ESP
“CEP is used as a common term
meaning both CEP and ESP
For the scope of this presentation:
is used as a common term
Terminology: CEP and ESP
is used as a common term
meaning both CEP and ESP.”
“Event Driven Architecture (EDA)
pattern promoting the production
and reaction to events. An event
significant change in state"[1]. For example, when a
consumer purchases a car, the car's state changes from "for
sale" to "sold". A car dealer's system architecture may treat
this state change as an event to be produced, published,
Terminology: EDA
this state change as an event to be produced, published,
detected and consumed by various applications within the
architecture.”
http://en.wikipedia.org/wiki/Event_Driven_Architecture
Event Driven Architecture (EDA) is a software architecture
production, detection, consumption of,
event can be defined as "a
significant change in state"[1]. For example, when a
consumer purchases a car, the car's state changes from "for
sale" to "sold". A car dealer's system architecture may treat
this state change as an event to be produced, published,
Terminology: EDA
this state change as an event to be produced, published,
detected and consumed by various applications within the
http://en.wikipedia.org/wiki/Event_Driven_Architecture
EDA vs CEP
CEP is a component
Source: http://elementallinks.typepad.com/.shared/image.html?/photos/uncategorized/simple_event_flow.gif
component of the EDA
Source: http://elementallinks.typepad.com/.shared/image.html?/photos/uncategorized/simple_event_flow.gif
EDA vs SOA
o EDA is **not** SOA 2.0
o Complementary architectures
o Metaphor
o In our body:
o SOA is used to build our
o EDA is used to build our
SOA is used to build our muscles and organs
EDA is used to build our sensory system
EDA vs SOA
Source: http://soa-eda.blogspot.com/2006/11/howeda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html
Complex Event Processing
o A few characteristics of common CEP scenarios:
o Huge volume of events, but only a
o Usually events are immutable
o Usually queries/rules have to run in
o Strong temporal relationships
o Individual events are usually
o The composition and aggregation
Complex Event Processing
A few characteristics of common CEP scenarios:
of events, but only a few of real interest
immutable
Usually queries/rules have to run in reactive mode
temporal relationships between events
events are usually not important
aggregation of events is important
Drools Vision
“A common platform to model
logic of the enterprise.”
model and govern the business
of the enterprise.”
Motivation
o Business Rules, Event Processing and Business Processes
are all modelled declaratively.
o A business solution usually involves the
these technologies.
o In short:
Technology overlapo Technology overlap
o Business overlap
o Several (good) products on the market:
o Better either at CEP/ESP or
Business Processes
o The approach: attribute the same importance
complementary business modeling techniques
Business Rules, Event Processing and Business Processes
A business solution usually involves the interaction between
Several (good) products on the market:
or Rules Processing or
attribute the same importance to the three
complementary business modeling techniques
Drools Fusion: Enables…
• Event Detection:
• From an event cloud or set of streams, select all the
meaningful events, and only them.
• [Temporal] Event Correlation:
• Ability to correlate events and facts declaring both
temporal and non-temporal constraints between them.temporal and non-temporal constraints between them.
• Ability to reason over event aggregation
• Event Abstraction:
• Ability to compose complex events from atomic events
AND reason over them
Drools Fusion: Enables…
From an event cloud or set of streams, select all the
meaningful events, and only them.
[Temporal] Event Correlation:
Ability to correlate events and facts declaring both
temporal constraints between them.temporal constraints between them.
Ability to reason over event aggregation
Ability to compose complex events from atomic events
Drools Fusion
o Features:
o Event Semantics as First Class Citizens
o Allow Detection, Correlation and Composition
o Temporal Constraints
o Session Clock
o Stream Processing
o Sliding Windows
o CEP volumes (scalability)
o (Re)Active Rules
o Data Loaders for Input
Event Semantics as First Class Citizens
Allow Detection, Correlation and Composition
Event Declaration and Semantics
o Event
o Point
o An event
special characteristics:
Usually
// declaring existing class
import some.package.VoiceCall
declare VoiceCall
@role( event )
@timestamp( calltime )
@duration( duration )
end
o Usually
enforced
o Strong
o Lifecycle
o Allow use of
o “All events
facts are events.”
// generating an event class
declare StockTick
@role( event )
symbol : String
price : double
end
Event Declaration and Semantics
Event semantics:
Point-in-time and Interval
event is a fact with a few
special characteristics:
Usually immutable, but notUsually immutable, but not
enforced
Strong temporal relationships
Lifecycle may be managed
Allow use of sliding windows
events are facts, but not all
facts are events.”
Temporal Reasoning
o Semantics for:
o time: discrete
o events: point-in-time and interval
o Ability to express temporal relationships:
o Allen’s 13 temporal operators
o James F. Allen defined the 13 possible temporal relations
between two events.
o Eiko Yoneki and Jean Bacon
for event correlation over time and space.
Temporal Reasoning
interval
Ability to express temporal relationships:
Allen’s 13 temporal operators
defined the 13 possible temporal relations
defined a unified semantics
for event correlation over time and space.
Temporal Relationships
rule “Shipment not picked up in time”
when
Shipment( $pickupTime : scheduledPickupTime
not ShipmentPickup( this before
then
rule “Shipment not picked up in time”
when
Shipment( $pickupTime : scheduledPickupTime
not ShipmentPickup( this before
thenthen
// shipment not picked up... action required.
end
then
// shipment not picked up... action required.
end
Temporal Relationships
“Shipment not picked up in time”
scheduledPickupTime )
before $pickupTime )
“Shipment not picked up in time”
scheduledPickupTime )
before $pickupTime )
// shipment not picked up... action required.// shipment not picked up... action required.
Temporal Relationships
rule “Shipment not picked up in time”
when
Shipment( $pickupTime : scheduledPickupTime
not ShipmentPickup( this before
then
rule “Shipment not picked up in time”
when
Shipment( $pickupTime : scheduledPickupTime
not ShipmentPickup( this before
thenthen
// shipment not picked up... Action required.
end
then
// shipment not picked up... Action required.
end
Temporal Relationships
“Shipment not picked up in time”
scheduledPickupTime )
before $pickupTime )
“Shipment not picked up in time”
scheduledPickupTime )
before $pickupTime )
// shipment not picked up... Action required.// shipment not picked up... Action required.
Temporal
Relationship
Allen’s 13 Temporal Operators
Point-Point
A before B
A meets B
A overlaps B
A
B
A
B
A
A overlaps B
A finishes B
A includes B
A starts B
A coincides B
A
B
A
B
A
B
A
B
A
B
Allen’s 13 Temporal Operators
Point-Interval Interval-Interval
Allen’s 13 Temporal Operators
Point-Point
A after B
A metBy B
A overlapedBy B
A
B
A
B
A
A overlapedBy B
A finishedBy B
A during B
A finishes B
A
B
A
B
A
B
A
B
Allen’s 13 Temporal Operators
Point-Interval Interval-Interval
Some references
o Allen, J. F. An interval-based representation of temporal
knowledge. 1981.
o Allen, J. F. Maintaining knowledge about temporal intervals
1983
o Yoneki, Eiko and Bacon, Jean
Event Correlation Over Time and Space in Hybrid NetworkEvent Correlation Over Time and Space in Hybrid Network
Environments. 2005.
o Bennett, Brandon and Galton, Antony P
Semantics for Time and Events
based representation of temporal
Maintaining knowledge about temporal intervals.
and Bacon, Jean. Unified Semantics for
Event Correlation Over Time and Space in Hybrid NetworkEvent Correlation Over Time and Space in Hybrid Network
Bennett, Brandon and Galton, Antony P. A Unifying
Semantics for Time and Events. 2000.
Simple Example ScenarioSimple Example Scenario
Stream Support (entry
o A scoping abstraction for stream support
o Rule compiler gather all entry
expose them through the session API
o Engine manages all the scoping and synchronization
behind the scenes.
StatefulSession session = …
EntryPoint ep = session.getEntryPoint(“Home Broker Stream”);
…
ep.insert(…);
ep.insert(…);
…
Stream Support (entry-points)
A scoping abstraction for stream support
Rule compiler gather all entry-point declarations and
expose them through the session API
Engine manages all the scoping and synchronization
= session.getEntryPoint(“Home Broker Stream”);
Cloud Mode, Stream
CLOUD
• No notion of “flow of time”:
the engine sees all facts
without regard to time
• No attached Session Clock• No attached Session Clock
• No requirements on event
ordering
• No automatic event lifecycle
management
• No sliding window support
Stream Mode, Session Clock
STREAM
• Notion of “flow of time”:
concept of “now”
• Session Clock has an active
role synchronizing therole synchronizing the
reasoning
• Event Streams must be
ordered
• Automatic event lifecycle
management
• Sliding window support
• Automatic rule delaying on
absence of facts
Reference Clock
o Reference clock defines the flow of time
o Named Session Clock
o is assigned to each session created
o Synchronizes time sensitive operations
o duration rules
o event streams
o process timers
o sliding windows
Reference clock defines the flow of time
is assigned to each session created
Synchronizes time sensitive operations
Session Clock
o Uses the strategy pattern and multiple implementations:
o Real-time operation
o Tests
o Simulations
o etc
SessionClockSessionClock
RealTimeClockRealTimeClock PseudoClockPseudoClock
Uses the strategy pattern and multiple implementations:
SessionClockSessionClock
HeartBeatClockHeartBeatClock (custom clocks)(custom clocks)
Session Clock
o Selecting the session clock:
o API:
KnowledgeSessionConfiguration
conf.setOption( ClockTypeOption.get
o System Property or Configuration File:
drools.clockType = pseudo
KnowledgeSessionConfiguration conf = ...
ClockTypeOption.get( “realtime” ) );
System Property or Configuration File:
Sliding Window Support
o Allows reasoning over a moving window of “interest”
o Time
o Length
rule “Average Order Value over 12 hours”
when
rule “Average Order Value over 12 hours”
whenwhen
$c : Customer()
$a : Number() from accumulate (
BuyOrder( customer == $c, $p :
average( $p ) )
then
// do something
end
when
$c : Customer()
$a : Number() from accumulate (
BuyOrder( customer == $c, $p :
average( $p ) )
then
// do something
end
Sliding Window Support
Allows reasoning over a moving window of “interest”
“Average Order Value over 12 hours”“Average Order Value over 12 hours”
== $c, $p : price ) over window:time( 12h ),== $c, $p : price ) over window:time( 12h ),
Delaying Rules
o Negative patterns may require rule firings to be delayed.
rule “Order timeout”
when
$bse : BuyShares ( $id : id )
rule “Order timeout”
when
$bse : BuyShares ( $id : id )
not BuySharesAck( id == $id, this
then
// Buy order was not acknowledged. Cancel operation
// by timeout.
end
not BuySharesAck( id == $id, this
then
// Buy order was not acknowledged. Cancel operation
// by timeout.
end
patterns may require rule firings to be delayed.
this after[0s,30s] $bse )
// Buy order was not acknowledged. Cancel operation
this after[0s,30s] $bse )
// Buy order was not acknowledged. Cancel operation
Delaying Rules
o Negative patterns may require rule firings to be delayed.
rule “Order timeout”
when
$bse : BuyShares ( $id : id )
rule “Order timeout”
when
$bse : BuyShares ( $id : id )
not BuySharesAck( id == $id, this
then
// Buy order was not acknowledged. Cancel operation
// by timeout.
end
not BuySharesAck( id == $id, this
then
// Buy order was not acknowledged. Cancel operation
// by timeout.
end
Forces the rule to wait for 30 seconds before firing, because the
acknowledgement may arrive at any time!
patterns may require rule firings to be delayed.
this after[0s,30s] $bse )
// Buy order was not acknowledged. Cancel operation
this after[0s,30s] $bse )
// Buy order was not acknowledged. Cancel operation
Forces the rule to wait for 30 seconds before firing, because the
acknowledgement may arrive at any time!
Some references
Ghanem, Hammad, Mokbel, Aref
Incremental Evaluation of Sliding
Data Streams.
Aref and Elmagarmid.
Incremental Evaluation of Sliding-Window Queries over
Temporal Dimension
o Requires the support to the temporal dimension
o A rule/query might match in a given point in time, and not
match in the subsequent point in time
o That is the single most difficult requirement to support in a
way that the engine:way that the engine:
o stays deterministic
o stays a high-performance engine
o Achieved mostly by compile time optimizations that enable:
o constraint tightening
o match space narrowing
o memory management
Temporal Dimension
Requires the support to the temporal dimension
A rule/query might match in a given point in time, and not
match in the subsequent point in time
That is the single most difficult requirement to support in a
performance engine
Achieved mostly by compile time optimizations that enable:
Temporal Dimension Support
o CEP scenarios are stateful by nature.
o Events usually are only interesting during a short period of
time.
o Hard for applications to know when events are not
necessary anymore
o Temporal constraints and sliding windows describe sucho Temporal constraints and sliding windows describe such
“window of interest”
Temporal Dimension Support
by nature.
interesting during a short period of
Hard for applications to know when events are not
Temporal constraints and sliding windows describe suchTemporal constraints and sliding windows describe such
Simple Example Rule
rule “Bag was not lost”
when
$c : BagEvent( ) from entry-point “check$c : BagEvent( ) from entry-point “check
$l : BagEvent( this == $c.bagId
from entry-point “pre
then
// bag was not lost
end
Simple Example Rule
point “check-in”point “check-in”
c.bagId, this after[0,5m] $c )
point “pre-load”
Abstract Example Rule
rule “reasoning on events over time”
when
$a : A( )
$b : B( this after[-2,2] $a )$b : B( this after[-2,2] $a )
$c : C( this after[-3,4] $a )
$d : D( this after[1,2] $b, this after[2,3]
not E( this after[1,10] $d )
then
// do something
end
Abstract Example Rule
“reasoning on events over time”
after[2,3] $c )
Temporal Distance Algorithm
1. Gather all temporal relationships between events
2. Create the temporal dependency graph as a dependency
matrix
3. Calculate the reflexive and transitive closures
Floyd-Warshall algorithm: O(n
Check for unbound intervals4. Check for unbound intervals
Infinite time-windows
5. Calculate the maximum expiration time for each of the
event types
6. Calculate necessary delay for the rules with negative
patterns
Temporal Distance Algorithm
Gather all temporal relationships between events
Create the temporal dependency graph as a dependency
Calculate the reflexive and transitive closures
algorithm: O(n3)
Calculate the maximum expiration time for each of the
Calculate necessary delay for the rules with negative
Temporal Dependency Matrix
A D
C
B[-2,2]
[-3,4] [2,3]
[1,2]
A B C
A [ 0, 0 ] [ -2, 2 ] [ -
B [ -2, 2 ] [ 0, 0 ] [ -
C [ -4, 3 ] [ -∞, ∞ ] [ 0, 0 ]
D [ -∞, ∞ ] [ -2, -1 ] [ -
E [ -∞, ∞ ] [ -∞, ∞ ] [ -
Temporal Dependency Matrix
D E
[1,10]
C D E
-3, 4 ] [ -∞, ∞ ] [ -∞, ∞ ]
-∞, ∞ ] [ 1, 2 ] [ -∞, ∞ ]
[ 0, 0 ] [ 2, 3 ] [ -∞, ∞ ]
-3, -2 ] [ 0, 0 ] [ 1, 10 ]
-∞, ∞ ] [ -10, -1 ] [ 0, 0 ]
Temporal Dependency Matrix
A B C
A [ 0, 0 ] [ -2, 2 ] [ -
B [ -2, 2 ] [ 0, 0 ] [ -
C [ -4, 3 ] [ -∞, ∞ ] [ 0, 0 ]
D [ -∞, ∞ ] [ -2, -1 ] [ -
E [ -∞, ∞ ] [ -∞, ∞ ] [ -
A B C
A [ 0, 0 ] [ -2, 2 ] [ -
B [ -2, 2 ] [ 0, 0 ] [ -
C [ -2, 3 ] [ 0, 2 ] [ 0, 0 ]
D [ -4, 1 ] [ -2, -1 ] [ -
E [ -14, 0 ] [ -12, -2 ] [ -
Temporal Dependency Matrix
C D E
-3, 4 ] [ -∞, ∞ ] [ -∞, ∞ ]
-∞, ∞ ] [ 1, 2 ] [ -∞, ∞ ]
[ 0, 0 ] [ 2, 3 ] [ -∞, ∞ ]
-3, -2 ] [ 0, 0 ] [ 1, 10 ]
-∞, ∞ ] [ -10, -1 ] [ 0, 0 ]
C D E
-3, 2 ] [ -1, 4 ] [ 0, 14 ]
-2, 0 ] [ 1, 2 ] [ 2, 12 ]
[ 0, 0 ] [ 2, 3 ] [ 3, 13 ]
-3, -2 ] [ 0, 0 ] [ 1, 10 ]
-13, -3 ] [-10,-1 ] [ 0, 0 ]
Transitive Closure
Temporal Dependency Matrix
A D
B[-2,2]
[-3,4] [2,3]
[1,2]
C
A B C
A [ 0, 0 ] [ -2, 2 ] [ -
B [ -2, 2 ] [ 0, 0 ] [ -
C [ -2, 3 ] [ 0, 2 ] [ 0, 0 ]
D [ -4, 1 ] [ -2, -1 ] [ -
E [ -14, 0 ] [ -12, -2 ] [ -
Temporal Dependency Matrix
D E
[1,10]
C D E
-3, 2 ] [ -1, 4 ] [ 0, 14 ]
-2, 0 ] [ 1, 2 ] [ 2, 12 ]
[ 0, 0 ] [ 2, 3 ] [ 3, 13 ]
-3, -2 ] [ 0, 0 ] [ 1, 10 ]
-13, -3 ] [-10,-1 ] [ 0, 0 ]
Some references
o Teodosiu, Dan and Pollak, Günter
Temporal Information in a Production System
, Günter. Discarding Unused
Temporal Information in a Production System.
Q&A
o Drools project site:
o http://www.drools.org ( http://www.jboss.org/drools/ )
o Documentation:
o http://www.jboss.org/drools/documentation.html
Edson Tirelli
etirelli@redhat.com
Lead CEP Designer
JBoss, a Division of Red Hat
http://www.drools.org ( http://www.jboss.org/drools/ )
http://www.jboss.org/drools/documentation.html

Mais conteúdo relacionado

Destaque

Internet of Things and Complex event processing (CEP)/Data fusion
Internet of Things and Complex event processing (CEP)/Data fusionInternet of Things and Complex event processing (CEP)/Data fusion
Internet of Things and Complex event processing (CEP)/Data fusionBAINIDA
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Fabien Coppens
 
Scalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERScalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERShuyi Chen
 
Semantic Complex Event Processing
Semantic Complex Event ProcessingSemantic Complex Event Processing
Semantic Complex Event ProcessingAdrian Paschke
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event ProcessingJohn Plummer
 
Extending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event ProcessingExtending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event ProcessingOh Chan Kwon
 
Parallel Complex Event Processing
Parallel Complex Event ProcessingParallel Complex Event Processing
Parallel Complex Event ProcessingKarol Grzegorczyk
 
Rule Engine Evaluation for Complex Event Processing
Rule Engine Evaluation for Complex Event ProcessingRule Engine Evaluation for Complex Event Processing
Rule Engine Evaluation for Complex Event ProcessingChandra Divi
 
Reactconf 2014 - Event Stream Processing
Reactconf 2014 - Event Stream ProcessingReactconf 2014 - Event Stream Processing
Reactconf 2014 - Event Stream ProcessingAndy Piper
 
Comparative Analysis of Personal Firewalls
Comparative Analysis of Personal FirewallsComparative Analysis of Personal Firewalls
Comparative Analysis of Personal FirewallsAndrej Šimko
 
Access control attacks by nor liyana binti azman
Access control attacks by nor liyana binti azmanAccess control attacks by nor liyana binti azman
Access control attacks by nor liyana binti azmanHafiza Abas
 
Installing Complex Event Processing On Linux
Installing Complex Event Processing On LinuxInstalling Complex Event Processing On Linux
Installing Complex Event Processing On LinuxOsama Mustafa
 
Debs 2011 tutorial on non functional properties of event processing
Debs 2011 tutorial  on non functional properties of event processingDebs 2011 tutorial  on non functional properties of event processing
Debs 2011 tutorial on non functional properties of event processingOpher Etzion
 
Tutorial in DEBS 2008 - Event Processing Patterns
Tutorial in DEBS 2008 - Event Processing PatternsTutorial in DEBS 2008 - Event Processing Patterns
Tutorial in DEBS 2008 - Event Processing PatternsOpher Etzion
 
Chapter 12
Chapter 12Chapter 12
Chapter 12cclay3
 
Ceh v8 labs module 03 scanning networks
Ceh v8 labs module 03 scanning networksCeh v8 labs module 03 scanning networks
Ceh v8 labs module 03 scanning networksAsep Sopyan
 
Complex Event Processing with Esper and WSO2 ESB
Complex Event Processing with Esper and WSO2 ESBComplex Event Processing with Esper and WSO2 ESB
Complex Event Processing with Esper and WSO2 ESBPrabath Siriwardena
 
CyberLab CCEH Session - 3 Scanning Networks
CyberLab CCEH Session - 3 Scanning NetworksCyberLab CCEH Session - 3 Scanning Networks
CyberLab CCEH Session - 3 Scanning NetworksCyberLab
 

Destaque (20)

Internet of Things and Complex event processing (CEP)/Data fusion
Internet of Things and Complex event processing (CEP)/Data fusionInternet of Things and Complex event processing (CEP)/Data fusion
Internet of Things and Complex event processing (CEP)/Data fusion
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?
 
Scalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERScalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBER
 
Semantic Complex Event Processing
Semantic Complex Event ProcessingSemantic Complex Event Processing
Semantic Complex Event Processing
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event Processing
 
Extending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event ProcessingExtending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event Processing
 
Parallel Complex Event Processing
Parallel Complex Event ProcessingParallel Complex Event Processing
Parallel Complex Event Processing
 
Spark Streaming into context
Spark Streaming into contextSpark Streaming into context
Spark Streaming into context
 
Rule Engine Evaluation for Complex Event Processing
Rule Engine Evaluation for Complex Event ProcessingRule Engine Evaluation for Complex Event Processing
Rule Engine Evaluation for Complex Event Processing
 
Reactconf 2014 - Event Stream Processing
Reactconf 2014 - Event Stream ProcessingReactconf 2014 - Event Stream Processing
Reactconf 2014 - Event Stream Processing
 
Comparative Analysis of Personal Firewalls
Comparative Analysis of Personal FirewallsComparative Analysis of Personal Firewalls
Comparative Analysis of Personal Firewalls
 
Session hijacking
Session hijackingSession hijacking
Session hijacking
 
Access control attacks by nor liyana binti azman
Access control attacks by nor liyana binti azmanAccess control attacks by nor liyana binti azman
Access control attacks by nor liyana binti azman
 
Installing Complex Event Processing On Linux
Installing Complex Event Processing On LinuxInstalling Complex Event Processing On Linux
Installing Complex Event Processing On Linux
 
Debs 2011 tutorial on non functional properties of event processing
Debs 2011 tutorial  on non functional properties of event processingDebs 2011 tutorial  on non functional properties of event processing
Debs 2011 tutorial on non functional properties of event processing
 
Tutorial in DEBS 2008 - Event Processing Patterns
Tutorial in DEBS 2008 - Event Processing PatternsTutorial in DEBS 2008 - Event Processing Patterns
Tutorial in DEBS 2008 - Event Processing Patterns
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
 
Ceh v8 labs module 03 scanning networks
Ceh v8 labs module 03 scanning networksCeh v8 labs module 03 scanning networks
Ceh v8 labs module 03 scanning networks
 
Complex Event Processing with Esper and WSO2 ESB
Complex Event Processing with Esper and WSO2 ESBComplex Event Processing with Esper and WSO2 ESB
Complex Event Processing with Esper and WSO2 ESB
 
CyberLab CCEH Session - 3 Scanning Networks
CyberLab CCEH Session - 3 Scanning NetworksCyberLab CCEH Session - 3 Scanning Networks
CyberLab CCEH Session - 3 Scanning Networks
 

Semelhante a Applying complex event processing (2010-10-11)

st - demystifying complext event processing
st - demystifying complext event processingst - demystifying complext event processing
st - demystifying complext event processingGeoffrey De Smet
 
Aaai 2011 event processing tutorial
Aaai 2011 event processing tutorialAaai 2011 event processing tutorial
Aaai 2011 event processing tutorialOpher Etzion
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorialOpher Etzion
 
Proposed Event Processing Definitions ,September 20, 2006
Proposed Event Processing Definitions,September 20, 2006Proposed Event Processing Definitions,September 20, 2006
Proposed Event Processing Definitions ,September 20, 2006Tim Bass
 
Open Source Event Processing for Sensor Fusion Applications
Open Source Event Processing for Sensor Fusion ApplicationsOpen Source Event Processing for Sensor Fusion Applications
Open Source Event Processing for Sensor Fusion Applicationsguestc4ce526
 
SOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingSOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingWSO2
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido Schmutz
 
Optimizing Your SOA with Event Processing
Optimizing Your SOA with Event ProcessingOptimizing Your SOA with Event Processing
Optimizing Your SOA with Event ProcessingTim Bass
 
Event-driven BPM the JBoss way
Event-driven BPM the JBoss wayEvent-driven BPM the JBoss way
Event-driven BPM the JBoss wayKris Verlaenen
 
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
 
Adding Rules to Improve Flexibility and Effectively Manage Complex Events
Adding Rules to Improve Flexibility and Effectively Manage Complex EventsAdding Rules to Improve Flexibility and Effectively Manage Complex Events
Adding Rules to Improve Flexibility and Effectively Manage Complex EventsTim Bass
 
How Events Are Reshaping Modern Systems
How Events Are Reshaping Modern SystemsHow Events Are Reshaping Modern Systems
How Events Are Reshaping Modern SystemsJonas Bonér
 
EDA With Glassfish ESB Jfall IEP Intelligent Event Processing
EDA With Glassfish ESB Jfall IEP Intelligent Event ProcessingEDA With Glassfish ESB Jfall IEP Intelligent Event Processing
EDA With Glassfish ESB Jfall IEP Intelligent Event ProcessingEugene Bogaart
 
Log Standards & Future Trends by Dr. Anton Chuvakin
Log Standards & Future Trends by Dr. Anton ChuvakinLog Standards & Future Trends by Dr. Anton Chuvakin
Log Standards & Future Trends by Dr. Anton ChuvakinAnton Chuvakin
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignVMware Tanzu
 
Complex Event Processing - A brief overview
Complex Event Processing - A brief overviewComplex Event Processing - A brief overview
Complex Event Processing - A brief overviewIstván Dávid
 
A Model of Events for Integrating Event-based Information in Complex Socio-te...
A Model of Events for Integrating Event-based Information in Complex Socio-te...A Model of Events for Integrating Event-based Information in Complex Socio-te...
A Model of Events for Integrating Event-based Information in Complex Socio-te...Ansgar Scherp
 
DPCL: a Language Template for Normative Specifications
DPCL: a Language Template for Normative SpecificationsDPCL: a Language Template for Normative Specifications
DPCL: a Language Template for Normative SpecificationsGiovanni Sileno
 
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Stijn (Stan) Christiaens
 
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2
 

Semelhante a Applying complex event processing (2010-10-11) (20)

st - demystifying complext event processing
st - demystifying complext event processingst - demystifying complext event processing
st - demystifying complext event processing
 
Aaai 2011 event processing tutorial
Aaai 2011 event processing tutorialAaai 2011 event processing tutorial
Aaai 2011 event processing tutorial
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorial
 
Proposed Event Processing Definitions ,September 20, 2006
Proposed Event Processing Definitions,September 20, 2006Proposed Event Processing Definitions,September 20, 2006
Proposed Event Processing Definitions ,September 20, 2006
 
Open Source Event Processing for Sensor Fusion Applications
Open Source Event Processing for Sensor Fusion ApplicationsOpen Source Event Processing for Sensor Fusion Applications
Open Source Event Processing for Sensor Fusion Applications
 
SOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingSOA Pattern Event Driven Messaging
SOA Pattern Event Driven Messaging
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soa
 
Optimizing Your SOA with Event Processing
Optimizing Your SOA with Event ProcessingOptimizing Your SOA with Event Processing
Optimizing Your SOA with Event Processing
 
Event-driven BPM the JBoss way
Event-driven BPM the JBoss wayEvent-driven BPM the JBoss way
Event-driven BPM the JBoss way
 
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
 
Adding Rules to Improve Flexibility and Effectively Manage Complex Events
Adding Rules to Improve Flexibility and Effectively Manage Complex EventsAdding Rules to Improve Flexibility and Effectively Manage Complex Events
Adding Rules to Improve Flexibility and Effectively Manage Complex Events
 
How Events Are Reshaping Modern Systems
How Events Are Reshaping Modern SystemsHow Events Are Reshaping Modern Systems
How Events Are Reshaping Modern Systems
 
EDA With Glassfish ESB Jfall IEP Intelligent Event Processing
EDA With Glassfish ESB Jfall IEP Intelligent Event ProcessingEDA With Glassfish ESB Jfall IEP Intelligent Event Processing
EDA With Glassfish ESB Jfall IEP Intelligent Event Processing
 
Log Standards & Future Trends by Dr. Anton Chuvakin
Log Standards & Future Trends by Dr. Anton ChuvakinLog Standards & Future Trends by Dr. Anton Chuvakin
Log Standards & Future Trends by Dr. Anton Chuvakin
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven Design
 
Complex Event Processing - A brief overview
Complex Event Processing - A brief overviewComplex Event Processing - A brief overview
Complex Event Processing - A brief overview
 
A Model of Events for Integrating Event-based Information in Complex Socio-te...
A Model of Events for Integrating Event-based Information in Complex Socio-te...A Model of Events for Integrating Event-based Information in Complex Socio-te...
A Model of Events for Integrating Event-based Information in Complex Socio-te...
 
DPCL: a Language Template for Normative Specifications
DPCL: a Language Template for Normative SpecificationsDPCL: a Language Template for Normative Specifications
DPCL: a Language Template for Normative Specifications
 
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
 
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event Processor
 

Mais de Geoffrey De Smet

Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012Geoffrey De Smet
 
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceWhat is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceGeoffrey De Smet
 
2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools planner2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools plannerGeoffrey De Smet
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleGeoffrey De Smet
 
Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planning
Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planningDrools Planner webinar (2011-06-15): Drools Planner optimizes automated planning
Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planningGeoffrey De Smet
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011Geoffrey De Smet
 
2011-03-29 London - drools
2011-03-29 London - drools2011-03-29 London - drools
2011-03-29 London - droolsGeoffrey De Smet
 
2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)Geoffrey De Smet
 
2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?Geoffrey De Smet
 
2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshell2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshellGeoffrey De Smet
 
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)Geoffrey De Smet
 
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)Geoffrey De Smet
 
Open source and business rules
Open source and business rulesOpen source and business rules
Open source and business rulesGeoffrey De Smet
 
Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)Geoffrey De Smet
 
Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Geoffrey De Smet
 
Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)Geoffrey De Smet
 
jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)Geoffrey De Smet
 
Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)Geoffrey De Smet
 
2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use cases2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use casesGeoffrey De Smet
 

Mais de Geoffrey De Smet (20)

Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012
 
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceWhat is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
 
2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools planner2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools planner
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
 
Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planning
Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planningDrools Planner webinar (2011-06-15): Drools Planner optimizes automated planning
Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planning
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011
 
JBoss World 2011 - Drools
JBoss World 2011 - DroolsJBoss World 2011 - Drools
JBoss World 2011 - Drools
 
2011-03-29 London - drools
2011-03-29 London - drools2011-03-29 London - drools
2011-03-29 London - drools
 
2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)
 
2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?
 
2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshell2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshell
 
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
 
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
 
Open source and business rules
Open source and business rulesOpen source and business rules
Open source and business rules
 
Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)
 
Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)
 
Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)
 
jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)
 
Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)
 
2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use cases2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use cases
 

Último

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
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
 
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
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
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
 
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
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Applying complex event processing (2010-10-11)

  • 1. Applying Complex Event ProcessingApplying Complex Event Processing Edson Tirelli etirelli@redhat.com Lead CEP Designer JBoss, a Division of Red Hat
  • 2. Agenda o Brief introduction on CEP and Terminology o Drools Vision o Drools Fusion: Complex Event Processing extensions o Event Declaration and Semantics o Event Cloud, Streams and the Session Clock o Temporal Reasoning o Sliding Window Support o Streams Support o Memory Management o Questions & Answers Brief introduction on CEP and Terminology Drools Fusion: Complex Event Processing extensions Event Declaration and Semantics Event Cloud, Streams and the Session Clock
  • 3. “An event is an observable occurrence “An event in the Unified Modeling Language is a notable occurrence at a particular Terminology: Event “Anything that happens, happening.” “An object that represents, event, generally for the processing” http://complexevents.com observable occurrence.” “An event in the Unified Modeling Language is a at a particular point in time.” http://www.wikipedia.org Terminology: Event , or is contemplated as represents, encodes or records an the purpose of computer http://complexevents.com
  • 4. For the scope of this presentation: “An event is a significant Terminology: Event “An event is a significant state at a particular For the scope of this presentation: significant change of Terminology: Event significant change of at a particular point in time”
  • 5. “Complex Event, is an abstraction of other events called its members.” o Examples: o The 1929 stock market crash – thousands of member events, including individual stock trades) Terminology: Complex Event thousands of member events, including individual stock trades) o The 2004 Indonesian Tsunami – events o A completed stock purchase -an abstraction of the events in a transaction to purchase the stock o A successful on-line shopping cart checkout shopping cart events on an on-line website Source: http://complexevents.com , is an abstraction of other events an abstraction denoting many member events, including individual stock trades) Terminology: Complex Event member events, including individual stock trades) – an abstraction of many natural an abstraction of the events in a line shopping cart checkout – an abstraction of line website http://complexevents.com
  • 6. “Complex Event Processing an event processing concept that deals with the task of processing multiple events with the goal of identifying the meaningful events event cloud. Terminology: CEP CEP employs techniques such as complex patterns of many events, event correlation and abstraction and relationships between events such as causality, membership, and timing, and event driven processes.” Complex Event Processing, or CEP, is primarily an event processing concept that deals with the task of processing multiple events with the goal identifying the meaningful events within the Terminology: CEP employs techniques such as detection of complex patterns of many events, event abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event- -- wikipedia
  • 7. o Examples: o Fraud detection (credit cards, social security, banks, telecom carriers, etc) o Logistics Real-Time Awareness solution o Neonatal ICU: infant vital signs monitoring o BAM (Business Activity Monitoring) Terminology: CEP o Risk Assessment o Rating (telecom, traffic) o Traffic flow control o RFID monitoring (products in stores, bags in airports, etc) o … Fraud detection (credit cards, social security, banks, telecom Time Awareness solution Neonatal ICU: infant vital signs monitoring BAM (Business Activity Monitoring) CEP RFID monitoring (products in stores, bags in airports, etc) Rules Fest – October 2010 – © Edson Tirelli 7
  • 8. Complex Event Processing Stream Processing, or ESP, are two technologies that were born separate, but converged. Terminology: CEP An oversimplification: In their origins... Event Stream Processing focused on the ability to process high volume streams Complex Event Processing detecting and processing the events. Complex Event Processing, or CEP, and Event , or ESP, are two technologies that were born separate, but Terminology: CEP vs ESP : In their origins... focused on the ability to streams of events. Complex Event Processing focused on defining, detecting and processing the relationships among
  • 9. For the scope of this presentation: “CEP is used as a common term Terminology: CEP and ESP “CEP is used as a common term meaning both CEP and ESP For the scope of this presentation: is used as a common term Terminology: CEP and ESP is used as a common term meaning both CEP and ESP.”
  • 10. “Event Driven Architecture (EDA) pattern promoting the production and reaction to events. An event significant change in state"[1]. For example, when a consumer purchases a car, the car's state changes from "for sale" to "sold". A car dealer's system architecture may treat this state change as an event to be produced, published, Terminology: EDA this state change as an event to be produced, published, detected and consumed by various applications within the architecture.” http://en.wikipedia.org/wiki/Event_Driven_Architecture Event Driven Architecture (EDA) is a software architecture production, detection, consumption of, event can be defined as "a significant change in state"[1]. For example, when a consumer purchases a car, the car's state changes from "for sale" to "sold". A car dealer's system architecture may treat this state change as an event to be produced, published, Terminology: EDA this state change as an event to be produced, published, detected and consumed by various applications within the http://en.wikipedia.org/wiki/Event_Driven_Architecture
  • 11. EDA vs CEP CEP is a component Source: http://elementallinks.typepad.com/.shared/image.html?/photos/uncategorized/simple_event_flow.gif component of the EDA Source: http://elementallinks.typepad.com/.shared/image.html?/photos/uncategorized/simple_event_flow.gif
  • 12. EDA vs SOA o EDA is **not** SOA 2.0 o Complementary architectures o Metaphor o In our body: o SOA is used to build our o EDA is used to build our SOA is used to build our muscles and organs EDA is used to build our sensory system
  • 13. EDA vs SOA Source: http://soa-eda.blogspot.com/2006/11/howeda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html
  • 14. Complex Event Processing o A few characteristics of common CEP scenarios: o Huge volume of events, but only a o Usually events are immutable o Usually queries/rules have to run in o Strong temporal relationships o Individual events are usually o The composition and aggregation Complex Event Processing A few characteristics of common CEP scenarios: of events, but only a few of real interest immutable Usually queries/rules have to run in reactive mode temporal relationships between events events are usually not important aggregation of events is important
  • 15. Drools Vision “A common platform to model logic of the enterprise.” model and govern the business of the enterprise.”
  • 16. Motivation o Business Rules, Event Processing and Business Processes are all modelled declaratively. o A business solution usually involves the these technologies. o In short: Technology overlapo Technology overlap o Business overlap o Several (good) products on the market: o Better either at CEP/ESP or Business Processes o The approach: attribute the same importance complementary business modeling techniques Business Rules, Event Processing and Business Processes A business solution usually involves the interaction between Several (good) products on the market: or Rules Processing or attribute the same importance to the three complementary business modeling techniques
  • 17.
  • 18. Drools Fusion: Enables… • Event Detection: • From an event cloud or set of streams, select all the meaningful events, and only them. • [Temporal] Event Correlation: • Ability to correlate events and facts declaring both temporal and non-temporal constraints between them.temporal and non-temporal constraints between them. • Ability to reason over event aggregation • Event Abstraction: • Ability to compose complex events from atomic events AND reason over them Drools Fusion: Enables… From an event cloud or set of streams, select all the meaningful events, and only them. [Temporal] Event Correlation: Ability to correlate events and facts declaring both temporal constraints between them.temporal constraints between them. Ability to reason over event aggregation Ability to compose complex events from atomic events
  • 19. Drools Fusion o Features: o Event Semantics as First Class Citizens o Allow Detection, Correlation and Composition o Temporal Constraints o Session Clock o Stream Processing o Sliding Windows o CEP volumes (scalability) o (Re)Active Rules o Data Loaders for Input Event Semantics as First Class Citizens Allow Detection, Correlation and Composition
  • 20. Event Declaration and Semantics o Event o Point o An event special characteristics: Usually // declaring existing class import some.package.VoiceCall declare VoiceCall @role( event ) @timestamp( calltime ) @duration( duration ) end o Usually enforced o Strong o Lifecycle o Allow use of o “All events facts are events.” // generating an event class declare StockTick @role( event ) symbol : String price : double end Event Declaration and Semantics Event semantics: Point-in-time and Interval event is a fact with a few special characteristics: Usually immutable, but notUsually immutable, but not enforced Strong temporal relationships Lifecycle may be managed Allow use of sliding windows events are facts, but not all facts are events.”
  • 21. Temporal Reasoning o Semantics for: o time: discrete o events: point-in-time and interval o Ability to express temporal relationships: o Allen’s 13 temporal operators o James F. Allen defined the 13 possible temporal relations between two events. o Eiko Yoneki and Jean Bacon for event correlation over time and space. Temporal Reasoning interval Ability to express temporal relationships: Allen’s 13 temporal operators defined the 13 possible temporal relations defined a unified semantics for event correlation over time and space.
  • 22. Temporal Relationships rule “Shipment not picked up in time” when Shipment( $pickupTime : scheduledPickupTime not ShipmentPickup( this before then rule “Shipment not picked up in time” when Shipment( $pickupTime : scheduledPickupTime not ShipmentPickup( this before thenthen // shipment not picked up... action required. end then // shipment not picked up... action required. end Temporal Relationships “Shipment not picked up in time” scheduledPickupTime ) before $pickupTime ) “Shipment not picked up in time” scheduledPickupTime ) before $pickupTime ) // shipment not picked up... action required.// shipment not picked up... action required.
  • 23. Temporal Relationships rule “Shipment not picked up in time” when Shipment( $pickupTime : scheduledPickupTime not ShipmentPickup( this before then rule “Shipment not picked up in time” when Shipment( $pickupTime : scheduledPickupTime not ShipmentPickup( this before thenthen // shipment not picked up... Action required. end then // shipment not picked up... Action required. end Temporal Relationships “Shipment not picked up in time” scheduledPickupTime ) before $pickupTime ) “Shipment not picked up in time” scheduledPickupTime ) before $pickupTime ) // shipment not picked up... Action required.// shipment not picked up... Action required. Temporal Relationship
  • 24. Allen’s 13 Temporal Operators Point-Point A before B A meets B A overlaps B A B A B A A overlaps B A finishes B A includes B A starts B A coincides B A B A B A B A B A B Allen’s 13 Temporal Operators Point-Interval Interval-Interval
  • 25. Allen’s 13 Temporal Operators Point-Point A after B A metBy B A overlapedBy B A B A B A A overlapedBy B A finishedBy B A during B A finishes B A B A B A B A B Allen’s 13 Temporal Operators Point-Interval Interval-Interval
  • 26. Some references o Allen, J. F. An interval-based representation of temporal knowledge. 1981. o Allen, J. F. Maintaining knowledge about temporal intervals 1983 o Yoneki, Eiko and Bacon, Jean Event Correlation Over Time and Space in Hybrid NetworkEvent Correlation Over Time and Space in Hybrid Network Environments. 2005. o Bennett, Brandon and Galton, Antony P Semantics for Time and Events based representation of temporal Maintaining knowledge about temporal intervals. and Bacon, Jean. Unified Semantics for Event Correlation Over Time and Space in Hybrid NetworkEvent Correlation Over Time and Space in Hybrid Network Bennett, Brandon and Galton, Antony P. A Unifying Semantics for Time and Events. 2000.
  • 27. Simple Example ScenarioSimple Example Scenario
  • 28. Stream Support (entry o A scoping abstraction for stream support o Rule compiler gather all entry expose them through the session API o Engine manages all the scoping and synchronization behind the scenes. StatefulSession session = … EntryPoint ep = session.getEntryPoint(“Home Broker Stream”); … ep.insert(…); ep.insert(…); … Stream Support (entry-points) A scoping abstraction for stream support Rule compiler gather all entry-point declarations and expose them through the session API Engine manages all the scoping and synchronization = session.getEntryPoint(“Home Broker Stream”);
  • 29. Cloud Mode, Stream CLOUD • No notion of “flow of time”: the engine sees all facts without regard to time • No attached Session Clock• No attached Session Clock • No requirements on event ordering • No automatic event lifecycle management • No sliding window support Stream Mode, Session Clock STREAM • Notion of “flow of time”: concept of “now” • Session Clock has an active role synchronizing therole synchronizing the reasoning • Event Streams must be ordered • Automatic event lifecycle management • Sliding window support • Automatic rule delaying on absence of facts
  • 30. Reference Clock o Reference clock defines the flow of time o Named Session Clock o is assigned to each session created o Synchronizes time sensitive operations o duration rules o event streams o process timers o sliding windows Reference clock defines the flow of time is assigned to each session created Synchronizes time sensitive operations
  • 31. Session Clock o Uses the strategy pattern and multiple implementations: o Real-time operation o Tests o Simulations o etc SessionClockSessionClock RealTimeClockRealTimeClock PseudoClockPseudoClock Uses the strategy pattern and multiple implementations: SessionClockSessionClock HeartBeatClockHeartBeatClock (custom clocks)(custom clocks)
  • 32. Session Clock o Selecting the session clock: o API: KnowledgeSessionConfiguration conf.setOption( ClockTypeOption.get o System Property or Configuration File: drools.clockType = pseudo KnowledgeSessionConfiguration conf = ... ClockTypeOption.get( “realtime” ) ); System Property or Configuration File:
  • 33. Sliding Window Support o Allows reasoning over a moving window of “interest” o Time o Length rule “Average Order Value over 12 hours” when rule “Average Order Value over 12 hours” whenwhen $c : Customer() $a : Number() from accumulate ( BuyOrder( customer == $c, $p : average( $p ) ) then // do something end when $c : Customer() $a : Number() from accumulate ( BuyOrder( customer == $c, $p : average( $p ) ) then // do something end Sliding Window Support Allows reasoning over a moving window of “interest” “Average Order Value over 12 hours”“Average Order Value over 12 hours” == $c, $p : price ) over window:time( 12h ),== $c, $p : price ) over window:time( 12h ),
  • 34. Delaying Rules o Negative patterns may require rule firings to be delayed. rule “Order timeout” when $bse : BuyShares ( $id : id ) rule “Order timeout” when $bse : BuyShares ( $id : id ) not BuySharesAck( id == $id, this then // Buy order was not acknowledged. Cancel operation // by timeout. end not BuySharesAck( id == $id, this then // Buy order was not acknowledged. Cancel operation // by timeout. end patterns may require rule firings to be delayed. this after[0s,30s] $bse ) // Buy order was not acknowledged. Cancel operation this after[0s,30s] $bse ) // Buy order was not acknowledged. Cancel operation
  • 35. Delaying Rules o Negative patterns may require rule firings to be delayed. rule “Order timeout” when $bse : BuyShares ( $id : id ) rule “Order timeout” when $bse : BuyShares ( $id : id ) not BuySharesAck( id == $id, this then // Buy order was not acknowledged. Cancel operation // by timeout. end not BuySharesAck( id == $id, this then // Buy order was not acknowledged. Cancel operation // by timeout. end Forces the rule to wait for 30 seconds before firing, because the acknowledgement may arrive at any time! patterns may require rule firings to be delayed. this after[0s,30s] $bse ) // Buy order was not acknowledged. Cancel operation this after[0s,30s] $bse ) // Buy order was not acknowledged. Cancel operation Forces the rule to wait for 30 seconds before firing, because the acknowledgement may arrive at any time!
  • 36. Some references Ghanem, Hammad, Mokbel, Aref Incremental Evaluation of Sliding Data Streams. Aref and Elmagarmid. Incremental Evaluation of Sliding-Window Queries over
  • 37. Temporal Dimension o Requires the support to the temporal dimension o A rule/query might match in a given point in time, and not match in the subsequent point in time o That is the single most difficult requirement to support in a way that the engine:way that the engine: o stays deterministic o stays a high-performance engine o Achieved mostly by compile time optimizations that enable: o constraint tightening o match space narrowing o memory management Temporal Dimension Requires the support to the temporal dimension A rule/query might match in a given point in time, and not match in the subsequent point in time That is the single most difficult requirement to support in a performance engine Achieved mostly by compile time optimizations that enable:
  • 38. Temporal Dimension Support o CEP scenarios are stateful by nature. o Events usually are only interesting during a short period of time. o Hard for applications to know when events are not necessary anymore o Temporal constraints and sliding windows describe sucho Temporal constraints and sliding windows describe such “window of interest” Temporal Dimension Support by nature. interesting during a short period of Hard for applications to know when events are not Temporal constraints and sliding windows describe suchTemporal constraints and sliding windows describe such
  • 39. Simple Example Rule rule “Bag was not lost” when $c : BagEvent( ) from entry-point “check$c : BagEvent( ) from entry-point “check $l : BagEvent( this == $c.bagId from entry-point “pre then // bag was not lost end Simple Example Rule point “check-in”point “check-in” c.bagId, this after[0,5m] $c ) point “pre-load”
  • 40. Abstract Example Rule rule “reasoning on events over time” when $a : A( ) $b : B( this after[-2,2] $a )$b : B( this after[-2,2] $a ) $c : C( this after[-3,4] $a ) $d : D( this after[1,2] $b, this after[2,3] not E( this after[1,10] $d ) then // do something end Abstract Example Rule “reasoning on events over time” after[2,3] $c )
  • 41. Temporal Distance Algorithm 1. Gather all temporal relationships between events 2. Create the temporal dependency graph as a dependency matrix 3. Calculate the reflexive and transitive closures Floyd-Warshall algorithm: O(n Check for unbound intervals4. Check for unbound intervals Infinite time-windows 5. Calculate the maximum expiration time for each of the event types 6. Calculate necessary delay for the rules with negative patterns Temporal Distance Algorithm Gather all temporal relationships between events Create the temporal dependency graph as a dependency Calculate the reflexive and transitive closures algorithm: O(n3) Calculate the maximum expiration time for each of the Calculate necessary delay for the rules with negative
  • 42. Temporal Dependency Matrix A D C B[-2,2] [-3,4] [2,3] [1,2] A B C A [ 0, 0 ] [ -2, 2 ] [ - B [ -2, 2 ] [ 0, 0 ] [ - C [ -4, 3 ] [ -∞, ∞ ] [ 0, 0 ] D [ -∞, ∞ ] [ -2, -1 ] [ - E [ -∞, ∞ ] [ -∞, ∞ ] [ - Temporal Dependency Matrix D E [1,10] C D E -3, 4 ] [ -∞, ∞ ] [ -∞, ∞ ] -∞, ∞ ] [ 1, 2 ] [ -∞, ∞ ] [ 0, 0 ] [ 2, 3 ] [ -∞, ∞ ] -3, -2 ] [ 0, 0 ] [ 1, 10 ] -∞, ∞ ] [ -10, -1 ] [ 0, 0 ]
  • 43. Temporal Dependency Matrix A B C A [ 0, 0 ] [ -2, 2 ] [ - B [ -2, 2 ] [ 0, 0 ] [ - C [ -4, 3 ] [ -∞, ∞ ] [ 0, 0 ] D [ -∞, ∞ ] [ -2, -1 ] [ - E [ -∞, ∞ ] [ -∞, ∞ ] [ - A B C A [ 0, 0 ] [ -2, 2 ] [ - B [ -2, 2 ] [ 0, 0 ] [ - C [ -2, 3 ] [ 0, 2 ] [ 0, 0 ] D [ -4, 1 ] [ -2, -1 ] [ - E [ -14, 0 ] [ -12, -2 ] [ - Temporal Dependency Matrix C D E -3, 4 ] [ -∞, ∞ ] [ -∞, ∞ ] -∞, ∞ ] [ 1, 2 ] [ -∞, ∞ ] [ 0, 0 ] [ 2, 3 ] [ -∞, ∞ ] -3, -2 ] [ 0, 0 ] [ 1, 10 ] -∞, ∞ ] [ -10, -1 ] [ 0, 0 ] C D E -3, 2 ] [ -1, 4 ] [ 0, 14 ] -2, 0 ] [ 1, 2 ] [ 2, 12 ] [ 0, 0 ] [ 2, 3 ] [ 3, 13 ] -3, -2 ] [ 0, 0 ] [ 1, 10 ] -13, -3 ] [-10,-1 ] [ 0, 0 ] Transitive Closure
  • 44. Temporal Dependency Matrix A D B[-2,2] [-3,4] [2,3] [1,2] C A B C A [ 0, 0 ] [ -2, 2 ] [ - B [ -2, 2 ] [ 0, 0 ] [ - C [ -2, 3 ] [ 0, 2 ] [ 0, 0 ] D [ -4, 1 ] [ -2, -1 ] [ - E [ -14, 0 ] [ -12, -2 ] [ - Temporal Dependency Matrix D E [1,10] C D E -3, 2 ] [ -1, 4 ] [ 0, 14 ] -2, 0 ] [ 1, 2 ] [ 2, 12 ] [ 0, 0 ] [ 2, 3 ] [ 3, 13 ] -3, -2 ] [ 0, 0 ] [ 1, 10 ] -13, -3 ] [-10,-1 ] [ 0, 0 ]
  • 45. Some references o Teodosiu, Dan and Pollak, Günter Temporal Information in a Production System , Günter. Discarding Unused Temporal Information in a Production System.
  • 46. Q&A o Drools project site: o http://www.drools.org ( http://www.jboss.org/drools/ ) o Documentation: o http://www.jboss.org/drools/documentation.html Edson Tirelli etirelli@redhat.com Lead CEP Designer JBoss, a Division of Red Hat http://www.drools.org ( http://www.jboss.org/drools/ ) http://www.jboss.org/drools/documentation.html