Remark: The presentation contains an animation which cannot be seen directly from slideshare. To see the animation, please download the presentation first.
Abstract — We present a novel and powerful logical framework for Complex Event Processing (CEP). CEP deals with finding composed events, and has useful applications in areas ranging from agile business and enterprise processes management, financial market applications to active Web and service oriented computation.
Currently many systems for processing events have ad-hoc semantics, usually with an unexpected behavior. We believe formal logical semantics is an important requirement for event-driven reactive systems. On the other hand, many logic-based approaches for CEP (based on formal semantics) fail, due to their inability to compute complex patterns in the event-driven fashion. Our approach enables both logic-based and event-driven complex pattern detection. Moreover, the proposed event-driven backward chaining approach allows for very efficient deductive reasoning of complex events and situations.
We have implemented the logic-based framework for Complex Event Processing. The prototype is called ETALIS, which stands for Event-driven Transaction Logic Inference System. See our demo: http://krake26.perimeter.fzi.de:8080/etalis
or access the code:
http://code.google.com/p/etalis
1. An Approach for Data-Driven and Logic-
Based Complex Event Processing
Darko Anicic, Paul Fodor, Roland Stühmer, Nenad Stojanovic
3rd ACM International Conference on Distributed Event-Based Systems (DEBS
2009), Nashville, USA
2. Motivation
Role of Logic in Event Processing:
• Formal logical semantics to ground well defined behaviour of EP;
• Further on, to control reactive behaviour (actions/reactions)
triggered by detected events;
Problem:
• State-of-the-art logic-based EP is query driven (not event-driven)
ETALIS approach is logic-based and event-driven!
• Reasoning over time, space, and context in EP;
• Detection of complex events, states, and situations of interest;
• Pattern rule management: consistency checking, minimal set of
rules, correctness.
3. ETALIS Algorithm
1. Complex pattern (not
a ⊗ b ⊗ c → ce1
event-driven rule)
((a ⊗ b) ⊗ c) → ce1 2. Decoupling
a ⊗ b → ie1 3. Binarization
ie1 ⊗ c → ce1
a :- while_do(a,1).
a(1) :- ins(goal(b,a,ie1)). 4. Event-driven
backward
b :- while_do(b,1).
b(1) :- goal(b,a,ie1) ⊗ del(goal(b,a,ie1)) ⊗ ie1. chaining
rules
ie1 :- while_do(ie1,1).
ie1(1) :- ins(goal(c,ie1,ce1)).
c :- while_do(c,1).
c(1) :- goal(c,ie1,ce1) ⊗ del(goal(c,ie1,ce1)) ⊗ ce1.
ce1 :- action1.
4. ETALIS Update Algorithm
a ⊗ b ⊗ c → ce1 a :- while_do(a,1).
a :- while_do(a,1).
a(1) :- ins(goal(b,a,ie1)).
b ⊗ c ⊗ d → ce2 a(1) :- ins(goal(b,a,ie1)).
b :- while_do(b,1).
c ⊗ d → ce3 b(1)while_do(b,1). ⊗ del(goal(b,a,ie1)) ⊗ ie1.
b :- :- goal(b,a,ie1)
b(1) :- goal(b,a,ie1) * del(goal(b,a,ie1)) * ie1.
b(2):-:-while_do(ie1,1).
ie1 ins(goal(c,b,ie2)).
ie1(1) :- ins(goal(c,ie1,ce1)).
c :- while_do(c,1).
c(1) :- goal(c,ie1,ce1) * del(goal(c,ie1,ce1)) * ce1.
c :- while_do(c,1).
c(2) goal(c,b,ie2) * ⊗ del(goal(c,ie1,ce1))
c(1) :- goal(c,ie1,ce1)del(goal(c,b,ie2)) * ie2. ⊗ ce1.
c(3) :- ins(goal(d,c,ce3)).
ce1 :- action1.
d :- while_do(d,1).
d(1) :- goal(d,ie2,ce2) * del(goal(d,ie2,ce2)) * ce2.
d(2) :- goal(d,c,ce3) * del(goal(d,c,ce3)) * ce3.
ie1 :- while_do(ie1,1).
ie1(1) :- ins(goal(c,ie1,ce1)).
ie2 :- while_do(ie2,1).
ie2(1) :- ins(goal(d,ie2,ce2)).
5. Representation of Binary Events
1. Complex pattern (not
a ⊗ b ⊗ c → ce1
event-driven rule)
((a ⊗ b) ⊗ c) → ce1 2. Decoupling
a ⊗ b → ie1 3. Binarization
ie1 ⊗ c → ce1
ie1 ce1 4. Representation
of binary events
⊗ ⊗
a b ie1 c
6. ETALIS Candelas
a ⊗ b ⊗ c → ce1 a
b ⊗ c ⊗ d → ce2 b
c ⊗ d → ce3 c
d
ie1
⊗
ie2
⊗
⊗ ce1
ce2
⊗ ce3
⊗
7. Advantages of ETALIS
Possibilities to Different consumption Standard event
Reasoning and discover a desired policies of events operators supported:
querying over whole state in the process supported.
event space. of pattern detection. • sequence
• parallel composition
• conjunction
• negation
• disjunction
⊗
• window operators
etc.
⊗
⊗ New operators easy to
develop.
Aggregation
functions supported:
⊗ • count
⊗ • sum
Handling out-of- • min
order events
supported. • max
• average
8. Thank you!
ETALIS
(Event-driven Transaction Logic Inference System)
Open source:
http://code.google.com/p/etalis
See also our Live DEMO at:
http://krake26.perimeter.fzi.de:8080/etalis
darko.anicic@fzi.de
pfodor@cs.sunysb.edu
roland.stuehmer@fzi.de
nenad.stojanovic@fzi.de