SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
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.”
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

Contenu connexe

Tendances

貪欲法による
単調劣モジュラ関数の最大化
貪欲法による
単調劣モジュラ関数の最大化貪欲法による
単調劣モジュラ関数の最大化
貪欲法による
単調劣モジュラ関数の最大化Ikumi Shimizu
 
A Modern Introduction to Decision Tree Ensembles
A Modern Introduction to Decision Tree EnsemblesA Modern Introduction to Decision Tree Ensembles
A Modern Introduction to Decision Tree EnsemblesIchigaku Takigawa
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出Kai Sasaki
 
Tips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitionsTips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitionsDarius Barušauskas
 
PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方HiroyukiSogo
 
PRML ベイズロジスティック回帰 4.5 4.5.2
PRML ベイズロジスティック回帰 4.5 4.5.2PRML ベイズロジスティック回帰 4.5 4.5.2
PRML ベイズロジスティック回帰 4.5 4.5.2tmtm otm
 
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learntKaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learntEugene Yan Ziyou
 
劣モジュラ最適化と機械学習 2.5節
劣モジュラ最適化と機械学習 2.5節劣モジュラ最適化と機械学習 2.5節
劣モジュラ最適化と機械学習 2.5節Hakky St
 
PRML 3.5.2, 3.5.3, 3.6
PRML 3.5.2, 3.5.3, 3.6PRML 3.5.2, 3.5.3, 3.6
PRML 3.5.2, 3.5.3, 3.6Kohei Tomita
 
PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」Keisuke Sugawara
 
劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化
劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化
劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化Akiyoshi Hara
 
レコメンド研究のあれこれ
レコメンド研究のあれこれレコメンド研究のあれこれ
レコメンド研究のあれこれMasahiro Sato
 
今こそStream API入門
今こそStream API入門今こそStream API入門
今こそStream API入門Yuichi Sakuraba
 
わかりやすいパターン認識 4章
わかりやすいパターン認識 4章わかりやすいパターン認識 4章
わかりやすいパターン認識 4章Motokawa Tetsuya
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴Yuya Unno
 
20170422 数学カフェ Part2
20170422 数学カフェ Part220170422 数学カフェ Part2
20170422 数学カフェ Part2Kenta Oono
 
Flow-based programming with Elixir
Flow-based programming with ElixirFlow-based programming with Elixir
Flow-based programming with ElixirAnton Mishchuk
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半Ohsawa Goodfellow
 

Tendances (20)

貪欲法による
単調劣モジュラ関数の最大化
貪欲法による
単調劣モジュラ関数の最大化貪欲法による
単調劣モジュラ関数の最大化
貪欲法による
単調劣モジュラ関数の最大化
 
RでAHP
RでAHPRでAHP
RでAHP
 
A Modern Introduction to Decision Tree Ensembles
A Modern Introduction to Decision Tree EnsemblesA Modern Introduction to Decision Tree Ensembles
A Modern Introduction to Decision Tree Ensembles
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
 
Tips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitionsTips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitions
 
PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方
 
PRML ベイズロジスティック回帰 4.5 4.5.2
PRML ベイズロジスティック回帰 4.5 4.5.2PRML ベイズロジスティック回帰 4.5 4.5.2
PRML ベイズロジスティック回帰 4.5 4.5.2
 
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learntKaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
 
劣モジュラ最適化と機械学習 2.5節
劣モジュラ最適化と機械学習 2.5節劣モジュラ最適化と機械学習 2.5節
劣モジュラ最適化と機械学習 2.5節
 
Xgboost
XgboostXgboost
Xgboost
 
PRML 3.5.2, 3.5.3, 3.6
PRML 3.5.2, 3.5.3, 3.6PRML 3.5.2, 3.5.3, 3.6
PRML 3.5.2, 3.5.3, 3.6
 
PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」
 
劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化
劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化
劣モジュラ最適化と機械学習 2.0-2.3 劣モジュラ関数の基本性質・例・最適化
 
レコメンド研究のあれこれ
レコメンド研究のあれこれレコメンド研究のあれこれ
レコメンド研究のあれこれ
 
今こそStream API入門
今こそStream API入門今こそStream API入門
今こそStream API入門
 
わかりやすいパターン認識 4章
わかりやすいパターン認識 4章わかりやすいパターン認識 4章
わかりやすいパターン認識 4章
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
 
20170422 数学カフェ Part2
20170422 数学カフェ Part220170422 数学カフェ Part2
20170422 数学カフェ Part2
 
Flow-based programming with Elixir
Flow-based programming with ElixirFlow-based programming with Elixir
Flow-based programming with Elixir
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
 

En vedette

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
 
Introducing Drools
Introducing DroolsIntroducing Drools
Introducing DroolsMario Fusco
 
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
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
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
 

En vedette (19)

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
 
Introducing Drools
Introducing DroolsIntroducing Drools
Introducing Drools
 
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
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
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
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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.”
  • 16.
  • 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