SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Applying Complex Event Processing
        with Drools Fusion
                                Edson Tirelli
                        etirelli@redhat.com
                              Lead CEP Engineer
                      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
Terminology: Event


“An event is an observable occurrence.”
“An event in the Unified Modeling Language is a
  notable occurrence at a particular point in time.”
                               http://www.wikipedia.org


“Anything that happens, or is contemplated as
  happening.”
“An object that represents, encodes or records an
  event, generally for the purpose of computer
  processing”
                         http://complexevents.com
Terminology: Event


For the scope of this presentation:



 “An event is a significant change of
   state at a particular point in time”
Terminology: Complex Event


    “Complex Event, is an abstraction of other events
      called its members.”

o   Examples:
    o   The 1929 stock market crash – an abstraction denoting many
        thousands of member events, including individual stock trades)
    o   The 2004 Indonesian Tsunami – an abstraction of many natural
        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 – an abstraction of
        shopping cart events on an on-line website



                        Source: http://complexevents.com
Terminology: CEP


“Complex Event Processing, or CEP, is primarily
  an event processing concept that deals with the
  task of processing multiple events with the goal
  of identifying the meaningful events within the
  event cloud.

CEP employs techniques such as detection of
 complex patterns of many events, event
 correlation and abstraction, event hierarchies,
 and relationships between events such as
 causality, membership, and timing, and event-
 driven processes.”
                                        -- wikipedia
Terminology: CEP


o   Examples:
    o   Emergency Response Systems
    o   Credit Card Fraud Detection
    o   Logistics Real-Time Awareness solution
    o   Neonatal ICU: infant vital signs monitoring
Terminology: CEP vs ESP


    Complex Event Processing, or CEP, and Event
     Stream Processing, or ESP, are two
     technologies that were born separate, but
     converged.

●
    An oversimplification: In their origins...
      Event Stream Processing focused on the ability to

       process high volume streams of events.
      Complex Event Processing focused on defining,

       detecting and processing the relationships among
       events.
Terminology: CEP and ESP


For the scope of this presentation:



    “CEP is used as a common term
      meaning both CEP and ESP.”
Terminology: EDA


“Event Driven Architecture (EDA) is a software architecture
  pattern promoting the production, detection, consumption of,
  and reaction to events. An 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,
  detected and consumed by various applications within the
  architecture.”


                      http://en.wikipedia.org/wiki/Event_Driven_Architecture
EDA vs CEP

                    CEP is a 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 muscles and organs

         o EDA is used to build our sensory system
EDA vs SOA




Source: http://soa-eda.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 few of real interest

     o Usually events are immutable

     o Usually queries/rules have to run in reactive mode

     o Strong temporal relationships between events

     o Individual events are usually not important

     o The composition and aggregation of events is important
Drools Vision




“A common platform to model and govern the
     business logic of the enterprise.”
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011
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.
     • Ability to reason over event aggregation

•   Event Abstraction:
     • Ability to compose complex events from atomic events

       AND reason over them
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
Demo


o   Twitter Stream CEP Demo:
     o Listen to the Twitter Stream API

         Twitter4J API

         Listens to a random sample of tweets

     o Detects patterns and reacts

         Drools Fusion

     o Simple one process (multi-thread) demo

         Focus on specific features
Event Declaration and Semantics


// declaring existing class
import some.package.VoiceCall
                                o   Event semantics:
declare VoiceCall                    o Point-in-time and Interval
  @role( event )
  @timestamp( calltime )
  @duration( duration )
end
                                o   An event is a fact with a few
                                    special characteristics:
// generating an event class         o Usually immutable, but not
declare StockTick
  @role( event )                       enforced
                                     o Strong temporal relationships
  symbol : String
  price : double
                                     o Lifecycle may be managed
end                                  o Allow use of sliding windows


                                o   “All 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 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 $pickupTime )
then
   // shipment not picked up... action required.
end
Temporal Relationships


rule “Shipment not picked up in time”
when
  Shipment( $pickupTime : scheduledPickupTime )
  not ShipmentPickup( this before $pickupTime )
then
   // shipment not picked up... Action required.
end


                               Temporal
                              Relationship
Allen’s 13 Temporal Operators


                    Point-Point   Point-Interval   Interval-Interval

                A
 A before B     B

                A
 A meets B      B

                A
A overlaps B
                B

                A
A finishes B    B

                A
A includes B    B

                A
 A starts B     B

                A
A coincides B   B
Allen’s 13 Temporal Operators


                      Point-Point   Point-Interval   Interval-Interval

                  A
   A after B      B

                  A
  A metBy B       B

                  A
A overlapedBy B
                  B

                  A
A finishedBy B    B

                  A
  A during B      B

                  A
  A finishes B    B
Streams : Simple Example Scenario
Stream Support (entry-points)


o   A scoping abstraction for stream support
     o Rule compiler gather all entry-point declarations and
       expose them through the session API
     o Engine manages all the scoping and synchronization
       behind the scenes.

rule “Stock Trade Correlation”
rule “Stock Trade Correlation”
when
when
      $c : Customer( type == “VIP” )
      $c : Customer( type == “VIP” )
      BuyOrderEvent( customer == $c, $id : id ) from entry-point “Home Broker Stream”
      BuyOrderEvent( customer == $c, $id : id ) from entry-point “Home Broker Stream”
    BuyAckEvent( sourceEvent == $id ) from entry-point “Stock Trader Stream”
     BuyAckEvent( sourceEvent == $id ) from entry-point “Stock Trader Stream”
then
then
      // take some action
      // take some action
end
end
Cloud Mode, Stream Mode, Session Clock



             CLOUD                             STREAM
•   No notion of “flow of time”:   •   Notion of “flow of time”:
    the engine sees all facts          concept of “now”
    without regard to time         •   Session Clock has an active
•   No attached Session Clock          role synchronizing the
•   No requirements on event           reasoning
    ordering                       •   Event Streams must be
•   No automatic event lifecycle       ordered
    management                     •   Automatic event lifecycle
•   No sliding window support          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
Session Clock


o Uses the strategy pattern and multiple implementations:
   o Real-time operation
   o Tests
   o Simulations
   o etc
Session Clock


o Selecting the session clock:
   o API:

      KnowledgeSessionConfiguration conf = ...
      conf.setOption( ClockTypeOption.get( “realtime” ) );




   o System Property or Configuration File:

      drools.clockType = pseudo
Sliding Window Support


o   Allows reasoning over a moving window of “interest”
     o Time
     o Length

                      Sliding window 1




                           Sliding window 2
Sliding Window Support


o   Allows reasoning over a moving window of “interest”
     o Time
     o Length

                      Sliding window 1




                           Sliding window 2




                         Joined window
Sliding Window Support


o   Allows reasoning over a moving window of “interest”
     o Time
     o Length

rule “Average Order Value over 12 hours”
rule “Average Order Value over 12 hours”
when
when
      $c : Customer()
      $c : Customer()
      $a : Number() from accumulate (
      $a : Number() from accumulate (
                BuyOrder( customer == $c, $p : price )
                BuyOrder( customer == $c, $p : price )
                over window:time( 12h ),
                over window:time( 12h ),
                average( $p ) )
                average( $p ) )
then
then
      // do something
      // do something
end
end
Delaying Rules


o Negative patterns may require rule firings to be delayed.

rule “Order timeout”
rule “Order timeout”
when
when
      $bse : BuyShares ( $id : id )
      $bse : BuyShares ( $id : id )
      not BuySharesAck( id == $id, this after[0s,30s] $bse )
      not BuySharesAck( id == $id, this after[0s,30s] $bse )
then
then
      // Buy order was not acknowledged. Cancel operation
      // Buy order was not acknowledged. Cancel operation
      // by timeout.
      // by timeout.
end
end
Delaying Rules


o Negative patterns may require rule firings to be delayed.

rule “Order timeout”
rule “Order timeout”
when
when
      $bse : BuyShares ( $id : id )
      $bse : BuyShares ( $id : id )
      not BuySharesAck( id == $id, this after[0s,30s] $bse )
      not BuySharesAck( id == $id, this after[0s,30s] $bse )
then
then
      // Buy order was not acknowledged. Cancel operation
      // Buy order was not acknowledged. Cancel operation
      // by timeout.
      // by timeout.
end
end



 Forces the rule to wait for 30 seconds before firing, because the
            acknowledgement may arrive at any time!
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:
    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 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 such
       “window of interest”
Simple Example Rule

rule “Bag was lost”
rule “Bag was lost”
when
when
      $b : BagScannedEvent() from entry-point “check-in”
      $b : BagScannedEvent() from entry-point “check-in”
      not BagScannedEvent( id == $b.id, this after[0s,5m] $b )
      not BagScannedEvent( id == $b.id, this after[0s,5m] $b )
          from entry-point “pre-load”
          from entry-point “pre-load”
then
then
      // Bag was lost, do something
      // Bag was lost, do something
end
end




      Easy to “see” that the only temporal relationship between the
               events defines a 5 minutes interest window.
Abstract Example Rule

rule “Abstract event relationship example”
rule “Abstract event relationship example”
when
when
      $a : A()
      $a : A()
      $b : B( this after[-2, 2] $a )
      $b : B( this after[-2, 2] $a )
      $c : C( this after[-3, 4] $a )
      $c : C( this after[-3, 4] $a )
      $d : D( this after[ 1, 2] $b, this after[2,3] $c)
      $d : D( this after[ 1, 2] $b, this after[2,3] $c)
      not
      not   E( this after[ 1,10] $d )
            E( this after[ 1,10] $d )
then
then
      // Bag was lost, do something
      // Bag was lost, do something
end
end


      How about now? What is the temporal relationship between
                             A and E?
Temporal Dependency Matrix


        [-2,2]          B          [1,2]
                                                         [1,10]
    A                                       D                             E

        [-3,4]          C          [2,3]
                                                         Constraint tightening

           A                B              C             D           E

A          [ 0, 0 ]         [ -2, 2 ]      [ -3, 2 ]     [ -1, 4 ]   [ 0, 14 ]
B          [ -2, 2 ]        [ 0, 0 ]       [ -2, 0 ]     [ 1, 2 ]    [ 2, 12 ]
C          [ -2, 3 ]        [ 0, 2 ]       [ 0, 0 ]      [ 2, 3 ]    [ 3, 13 ]
D          [ -4, 1 ]        [ -2, -1 ]     [ -3, -2 ]    [ 0, 0 ]    [ 1, 10 ]
E          [ -14, 0 ]       [ -12, -2 ]    [ -13, -3 ]   [-10,-1 ]   [ 0, 0 ]
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

Más contenido relacionado

La actualidad más candente

Fight with Metaspace OOM
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOMLeon Chen
 
Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...
Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...
Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...Databricks
 
Let's talk about Garbage Collection
Let's talk about Garbage CollectionLet's talk about Garbage Collection
Let's talk about Garbage CollectionHaim Yadid
 
Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)
Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)
Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)Brian Brazil
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep diveMario Fusco
 
Streaming Data Pipelines With Apache Beam
Streaming Data Pipelines With Apache BeamStreaming Data Pipelines With Apache Beam
Streaming Data Pipelines With Apache BeamAll Things Open
 
Exploiting Modern Microarchitectures: Meltdown, Spectre, and other Attacks
Exploiting Modern Microarchitectures: Meltdown, Spectre, and other AttacksExploiting Modern Microarchitectures: Meltdown, Spectre, and other Attacks
Exploiting Modern Microarchitectures: Meltdown, Spectre, and other Attacksinside-BigData.com
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm Chandler Huang
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
 
Introduction to Apache Beam
Introduction to Apache BeamIntroduction to Apache Beam
Introduction to Apache BeamKnoldus Inc.
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsSadayuki Furuhashi
 
Apache Beam (incubating)
Apache Beam (incubating)Apache Beam (incubating)
Apache Beam (incubating)Apache Apex
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in GolangBo-Yi Wu
 

La actualidad más candente (20)

Fight with Metaspace OOM
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOM
 
Spark Tips & Tricks
Spark Tips & TricksSpark Tips & Tricks
Spark Tips & Tricks
 
Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...
Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...
Running Apache Spark on a High-Performance Cluster Using RDMA and NVMe Flash ...
 
Storm
StormStorm
Storm
 
Let's talk about Garbage Collection
Let's talk about Garbage CollectionLet's talk about Garbage Collection
Let's talk about Garbage Collection
 
Unix signals
Unix signalsUnix signals
Unix signals
 
Git Webhook Proxy
Git Webhook ProxyGit Webhook Proxy
Git Webhook Proxy
 
Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)
Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)
Monitoring Hadoop with Prometheus (Hadoop User Group Ireland, December 2015)
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep dive
 
Streaming Data Pipelines With Apache Beam
Streaming Data Pipelines With Apache BeamStreaming Data Pipelines With Apache Beam
Streaming Data Pipelines With Apache Beam
 
Exploiting Modern Microarchitectures: Meltdown, Spectre, and other Attacks
Exploiting Modern Microarchitectures: Meltdown, Spectre, and other AttacksExploiting Modern Microarchitectures: Meltdown, Spectre, and other Attacks
Exploiting Modern Microarchitectures: Meltdown, Spectre, and other Attacks
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
 
ZeroMQ
ZeroMQZeroMQ
ZeroMQ
 
Introduction to Apache Beam
Introduction to Apache BeamIntroduction to Apache Beam
Introduction to Apache Beam
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 
Hash DoS Attack
Hash DoS AttackHash DoS Attack
Hash DoS Attack
 
Apache Beam (incubating)
Apache Beam (incubating)Apache Beam (incubating)
Apache Beam (incubating)
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
 
Drools rule Concepts
Drools rule ConceptsDrools rule Concepts
Drools rule Concepts
 

Destacado

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
 
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEJBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEtsurdilovic
 
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
 
JUDCon India 2012 Drools Fusion
JUDCon  India 2012 Drools FusionJUDCon  India 2012 Drools Fusion
JUDCon India 2012 Drools FusionMark Proctor
 
Siddhi: A Second Look at Complex Event Processing Implementations
Siddhi: A Second Look at Complex Event Processing ImplementationsSiddhi: A Second Look at Complex Event Processing Implementations
Siddhi: A Second Look at Complex Event Processing ImplementationsSrinath Perera
 
Parallel Complex Event Processing
Parallel Complex Event ProcessingParallel Complex Event Processing
Parallel Complex Event ProcessingKarol Grzegorczyk
 
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
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Ted Won
 
Oracle R12.1.3 Costing Overview
Oracle R12.1.3 Costing OverviewOracle R12.1.3 Costing Overview
Oracle R12.1.3 Costing OverviewPritesh Mogane
 
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
 
Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)Geoffrey De Smet
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperMatthew McCullough
 
Semantic Complex Event Processing at Sem Tech 2010
Semantic Complex Event Processing at Sem Tech 2010Semantic Complex Event Processing at Sem Tech 2010
Semantic Complex Event Processing at Sem Tech 2010Adrian Paschke
 
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
 
Big data streams, Internet of Things, and Complex Event Processing Improve So...
Big data streams, Internet of Things, and Complex Event Processing Improve So...Big data streams, Internet of Things, and Complex Event Processing Improve So...
Big data streams, Internet of Things, and Complex Event Processing Improve So...Chris Haddad
 
Semantic Complex Event Processing
Semantic Complex Event ProcessingSemantic Complex Event Processing
Semantic Complex Event ProcessingAdrian Paschke
 

Destacado (17)

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
 
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEJBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011
 
JUDCon India 2012 Drools Fusion
JUDCon  India 2012 Drools FusionJUDCon  India 2012 Drools Fusion
JUDCon India 2012 Drools Fusion
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event Processing
 
Siddhi: A Second Look at Complex Event Processing Implementations
Siddhi: A Second Look at Complex Event Processing ImplementationsSiddhi: A Second Look at Complex Event Processing Implementations
Siddhi: A Second Look at Complex Event Processing Implementations
 
Parallel Complex Event Processing
Parallel Complex Event ProcessingParallel Complex Event Processing
Parallel Complex Event Processing
 
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
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects
 
Oracle R12.1.3 Costing Overview
Oracle R12.1.3 Costing OverviewOracle R12.1.3 Costing Overview
Oracle R12.1.3 Costing Overview
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?
 
Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
Semantic Complex Event Processing at Sem Tech 2010
Semantic Complex Event Processing at Sem Tech 2010Semantic Complex Event Processing at Sem Tech 2010
Semantic Complex Event Processing at Sem Tech 2010
 
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
 
Big data streams, Internet of Things, and Complex Event Processing Improve So...
Big data streams, Internet of Things, and Complex Event Processing Improve So...Big data streams, Internet of Things, and Complex Event Processing Improve So...
Big data streams, Internet of Things, and Complex Event Processing Improve So...
 
Semantic Complex Event Processing
Semantic Complex Event ProcessingSemantic Complex Event Processing
Semantic Complex Event Processing
 

Similar a Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011

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
 
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
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorialOpher Etzion
 
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...Zhenzhong Xu
 
Osdc Complex Event Processing
Osdc Complex Event ProcessingOsdc Complex Event Processing
Osdc Complex Event ProcessingMichael Neale
 
SOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingSOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingWSO2
 
Async programming and python
Async programming and pythonAsync programming and python
Async programming and pythonChetan Giridhar
 
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
 
FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015ishkin
 
Mythbusters: Event Stream Processing v. Complex Event Processing
Mythbusters: Event Stream Processing v. Complex Event ProcessingMythbusters: Event Stream Processing v. Complex Event Processing
Mythbusters: Event Stream Processing v. Complex Event ProcessingTim Bass
 
Events, Streams, Devops and Speed - The Next Generation of Application Archit...
Events, Streams, Devops and Speed - The Next Generation of Application Archit...Events, Streams, Devops and Speed - The Next Generation of Application Archit...
Events, Streams, Devops and Speed - The Next Generation of Application Archit...confluent
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event ProcessingJohn Plummer
 
GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)
GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)
GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)OpenCredo
 
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
 
Need for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsNeed for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsKonrad Malawski
 
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
 

Similar a Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011 (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
 
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...
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorial
 
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...
 
Osdc Complex Event Processing
Osdc Complex Event ProcessingOsdc Complex Event Processing
Osdc Complex Event Processing
 
SOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingSOA Pattern Event Driven Messaging
SOA Pattern Event Driven Messaging
 
Async programming and python
Async programming and pythonAsync programming and python
Async programming and python
 
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
 
DZone_RC_RxJS
DZone_RC_RxJSDZone_RC_RxJS
DZone_RC_RxJS
 
FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015
 
Mythbusters: Event Stream Processing v. Complex Event Processing
Mythbusters: Event Stream Processing v. Complex Event ProcessingMythbusters: Event Stream Processing v. Complex Event Processing
Mythbusters: Event Stream Processing v. Complex Event Processing
 
Events, Streams, Devops and Speed - The Next Generation of Application Archit...
Events, Streams, Devops and Speed - The Next Generation of Application Archit...Events, Streams, Devops and Speed - The Next Generation of Application Archit...
Events, Streams, Devops and Speed - The Next Generation of Application Archit...
 
Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event Processing
 
GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)
GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)
GOTO LONDON 2016: Concursus Event sourcing Evolved (Updated)
 
Rx Swift
Rx SwiftRx Swift
Rx Swift
 
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
 
RxJava@DAUG
RxJava@DAUGRxJava@DAUG
RxJava@DAUG
 
Need for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsNeed for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applications
 
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
 

Más 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
 
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
 

Más 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
 
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
 
Drools BeJUG 2010
Drools BeJUG 2010Drools BeJUG 2010
Drools BeJUG 2010
 

Último

20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 

Último (20)

20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 

Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011

  • 1. Applying Complex Event Processing with Drools Fusion Edson Tirelli etirelli@redhat.com Lead CEP Engineer 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
  • 3. Terminology: Event “An event is an observable occurrence.” “An event in the Unified Modeling Language is a notable occurrence at a particular point in time.” http://www.wikipedia.org “Anything that happens, or is contemplated as happening.” “An object that represents, encodes or records an event, generally for the purpose of computer processing” http://complexevents.com
  • 4. Terminology: Event For the scope of this presentation: “An event is a significant change of state at a particular point in time”
  • 5. Terminology: Complex Event “Complex Event, is an abstraction of other events called its members.” o Examples: o The 1929 stock market crash – an abstraction denoting many thousands of member events, including individual stock trades) o The 2004 Indonesian Tsunami – an abstraction of many natural 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 – an abstraction of shopping cart events on an on-line website  Source: http://complexevents.com
  • 6. Terminology: CEP “Complex Event Processing, or CEP, is primarily an event processing concept that deals with the task of processing multiple events with the goal of identifying the meaningful events within the event cloud. CEP employs techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event- driven processes.” -- wikipedia
  • 7. Terminology: CEP o Examples: o Emergency Response Systems o Credit Card Fraud Detection o Logistics Real-Time Awareness solution o Neonatal ICU: infant vital signs monitoring
  • 8. Terminology: CEP vs ESP Complex Event Processing, or CEP, and Event Stream Processing, or ESP, are two technologies that were born separate, but converged. ● An oversimplification: In their origins...  Event Stream Processing focused on the ability to process high volume streams of events.  Complex Event Processing focused on defining, detecting and processing the relationships among events.
  • 9. Terminology: CEP and ESP For the scope of this presentation: “CEP is used as a common term meaning both CEP and ESP.”
  • 10. Terminology: EDA “Event Driven Architecture (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. An 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, detected and consumed by various applications within the architecture.” http://en.wikipedia.org/wiki/Event_Driven_Architecture
  • 11. EDA vs CEP CEP is a 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 muscles and organs o EDA is used to build our sensory system
  • 13. EDA vs SOA Source: http://soa-eda.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 few of real interest o Usually events are immutable o Usually queries/rules have to run in reactive mode o Strong temporal relationships between events o Individual events are usually not important o The composition and aggregation of events is important
  • 15. Drools Vision “A common platform to model and govern the business logic of the enterprise.”
  • 17. 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. • Ability to reason over event aggregation • Event Abstraction: • Ability to compose complex events from atomic events AND reason over them
  • 18. 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
  • 19. Demo o Twitter Stream CEP Demo: o Listen to the Twitter Stream API  Twitter4J API  Listens to a random sample of tweets o Detects patterns and reacts  Drools Fusion o Simple one process (multi-thread) demo  Focus on specific features
  • 20. Event Declaration and Semantics // declaring existing class import some.package.VoiceCall o Event semantics: declare VoiceCall o Point-in-time and Interval @role( event ) @timestamp( calltime ) @duration( duration ) end o An event is a fact with a few special characteristics: // generating an event class o Usually immutable, but not declare StockTick @role( event ) enforced o Strong temporal relationships symbol : String price : double o Lifecycle may be managed end o Allow use of sliding windows o “All 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 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 $pickupTime ) then // shipment not picked up... action required. end
  • 23. Temporal Relationships rule “Shipment not picked up in time” when Shipment( $pickupTime : scheduledPickupTime ) not ShipmentPickup( this before $pickupTime ) then // shipment not picked up... Action required. end Temporal Relationship
  • 24. Allen’s 13 Temporal Operators Point-Point Point-Interval Interval-Interval A A before B B A A meets B B A A overlaps B B A A finishes B B A A includes B B A A starts B B A A coincides B B
  • 25. Allen’s 13 Temporal Operators Point-Point Point-Interval Interval-Interval A A after B B A A metBy B B A A overlapedBy B B A A finishedBy B B A A during B B A A finishes B B
  • 26. Streams : Simple Example Scenario
  • 27. Stream Support (entry-points) o A scoping abstraction for stream support o Rule compiler gather all entry-point declarations and expose them through the session API o Engine manages all the scoping and synchronization behind the scenes. rule “Stock Trade Correlation” rule “Stock Trade Correlation” when when $c : Customer( type == “VIP” ) $c : Customer( type == “VIP” ) BuyOrderEvent( customer == $c, $id : id ) from entry-point “Home Broker Stream” BuyOrderEvent( customer == $c, $id : id ) from entry-point “Home Broker Stream” BuyAckEvent( sourceEvent == $id ) from entry-point “Stock Trader Stream” BuyAckEvent( sourceEvent == $id ) from entry-point “Stock Trader Stream” then then // take some action // take some action end end
  • 28. Cloud Mode, Stream Mode, Session Clock CLOUD STREAM • No notion of “flow of time”: • Notion of “flow of time”: the engine sees all facts concept of “now” without regard to time • Session Clock has an active • No attached Session Clock role synchronizing the • No requirements on event reasoning ordering • Event Streams must be • No automatic event lifecycle ordered management • Automatic event lifecycle • No sliding window support management • Sliding window support • Automatic rule delaying on absence of facts
  • 29. 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
  • 30. Session Clock o Uses the strategy pattern and multiple implementations: o Real-time operation o Tests o Simulations o etc
  • 31. Session Clock o Selecting the session clock: o API: KnowledgeSessionConfiguration conf = ... conf.setOption( ClockTypeOption.get( “realtime” ) ); o System Property or Configuration File: drools.clockType = pseudo
  • 32. Sliding Window Support o Allows reasoning over a moving window of “interest” o Time o Length Sliding window 1 Sliding window 2
  • 33. Sliding Window Support o Allows reasoning over a moving window of “interest” o Time o Length Sliding window 1 Sliding window 2 Joined window
  • 34. Sliding Window Support o Allows reasoning over a moving window of “interest” o Time o Length rule “Average Order Value over 12 hours” rule “Average Order Value over 12 hours” when when $c : Customer() $c : Customer() $a : Number() from accumulate ( $a : Number() from accumulate ( BuyOrder( customer == $c, $p : price ) BuyOrder( customer == $c, $p : price ) over window:time( 12h ), over window:time( 12h ), average( $p ) ) average( $p ) ) then then // do something // do something end end
  • 35. Delaying Rules o Negative patterns may require rule firings to be delayed. rule “Order timeout” rule “Order timeout” when when $bse : BuyShares ( $id : id ) $bse : BuyShares ( $id : id ) not BuySharesAck( id == $id, this after[0s,30s] $bse ) not BuySharesAck( id == $id, this after[0s,30s] $bse ) then then // Buy order was not acknowledged. Cancel operation // Buy order was not acknowledged. Cancel operation // by timeout. // by timeout. end end
  • 36. Delaying Rules o Negative patterns may require rule firings to be delayed. rule “Order timeout” rule “Order timeout” when when $bse : BuyShares ( $id : id ) $bse : BuyShares ( $id : id ) not BuySharesAck( id == $id, this after[0s,30s] $bse ) not BuySharesAck( id == $id, this after[0s,30s] $bse ) then then // Buy order was not acknowledged. Cancel operation // Buy order was not acknowledged. Cancel operation // by timeout. // by timeout. end end Forces the rule to wait for 30 seconds before firing, because the acknowledgement may arrive at any time!
  • 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: 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
  • 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 such “window of interest”
  • 39. Simple Example Rule rule “Bag was lost” rule “Bag was lost” when when $b : BagScannedEvent() from entry-point “check-in” $b : BagScannedEvent() from entry-point “check-in” not BagScannedEvent( id == $b.id, this after[0s,5m] $b ) not BagScannedEvent( id == $b.id, this after[0s,5m] $b ) from entry-point “pre-load” from entry-point “pre-load” then then // Bag was lost, do something // Bag was lost, do something end end Easy to “see” that the only temporal relationship between the events defines a 5 minutes interest window.
  • 40. Abstract Example Rule rule “Abstract event relationship example” rule “Abstract event relationship example” when when $a : A() $a : A() $b : B( this after[-2, 2] $a ) $b : B( this after[-2, 2] $a ) $c : C( this after[-3, 4] $a ) $c : C( this after[-3, 4] $a ) $d : D( this after[ 1, 2] $b, this after[2,3] $c) $d : D( this after[ 1, 2] $b, this after[2,3] $c) not not E( this after[ 1,10] $d ) E( this after[ 1,10] $d ) then then // Bag was lost, do something // Bag was lost, do something end end How about now? What is the temporal relationship between A and E?
  • 41. Temporal Dependency Matrix [-2,2] B [1,2] [1,10] A D E [-3,4] C [2,3] Constraint tightening A B C D E A [ 0, 0 ] [ -2, 2 ] [ -3, 2 ] [ -1, 4 ] [ 0, 14 ] B [ -2, 2 ] [ 0, 0 ] [ -2, 0 ] [ 1, 2 ] [ 2, 12 ] C [ -2, 3 ] [ 0, 2 ] [ 0, 0 ] [ 2, 3 ] [ 3, 13 ] D [ -4, 1 ] [ -2, -1 ] [ -3, -2 ] [ 0, 0 ] [ 1, 10 ] E [ -14, 0 ] [ -12, -2 ] [ -13, -3 ] [-10,-1 ] [ 0, 0 ]
  • 42. 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