An Approach for Data-driven and Logic-based Complex Event Processing Darko Anicic1 [email protected]

Paul Fodor2 [email protected] Nenad Stojanovic1 [email protected]

Roland Stühmer1 [email protected]

1

2

FZI Forschungszentrum Informatik, Haid-und-Neu-Straße 10-14, 76131 Karlsruhe, Germany Department of Computer Science, Stony Brook University, Stony Brook, NY 11794-4400, U.S.A

ABSTRACT In this paper, we present a powerful logic-based approach for Complex Event Processing (CEP). The approach is founded on a logical transformation of event processing into logic programs. Many systems for event processing have ad-hoc semantics with unexpected behaviors. Further on, many formal approaches (with well defined semantics) cannot effectively be used in CEP, due to their inability to compute events in the data-driven fashion. Our approach enables both logic-based and data-driven complex event detection. Moreover, the backward chaining approach allows for very efficient reasoning of complex events and actions triggered by these events.

1.

INTRODUCTION

Complex Event Processing (CEP) has the task of processing multiple events with the goal of identifying meaningful event patterns. Detected event patterns are then used to trigger response actions, which in turn may trigger other events. In this cycle, a reactive system is supposed to achieve some useful job. It has been recognized elsewhere [1, 3] that some sort of logic is required to keep event-driven systems running in a controlled manner. The logic should ensure correctness of an event-driven execution. It means that the execution is handled in a way which guarantees satisfiability of predefined constraints on states (in a state-changing environment). A number of declarative approaches [3, 1] utilize different kinds of logic to archive afore mentioned goals. However declarative approaches also have their own limitations. The main common drawback is their inability to do an effective event or data-driven computation of event patterns. Data-driven computation means that an event pattern is detected as soon as the last event required for a complete match of that pattern has occurred. Logic-based approaches attempt to deduce an event pattern rater than to detect it. This is why they have typically been suitable for request-response systems. These systems detect an event (or situation) based on a request, followed by an action which is a response. However, they fail when patterns need to be detected as soon as they really occur. In this paper we present an approach which is based on a logic,

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. DEBS ’09 Nashville, TN, USA Copyright 2009 ACM 0-12345-67-8/90/01 ...$5.00.

and still it is event or data-driven. The approach is based on decomposition of complex event patterns into intermediate patterns (i.e., goals). The status of achieved goals at the current state shows the progress toward matching of one or more event patterns. Goals are automatically asserted as relevant events occur. They can persist over a period of time “waiting” in order to support detection of a more complex goal or complete pattern. Important characteristics of these goals are that they are asserted only if they are used later on (to support a more complex goal or an event pattern), goals are all unique, and goals persist as long as they remain relevant (after the relevant period they are deleted). Goals are asserted by declarative rules, which are executed in the backward chaining mode. A specific property of these rules is that they are event-driven.

2.

LOGIC-BASED EVENT-DRIVEN CEP

The execution in CEP applications is driven by events. In order to react on an event, we need first to specify event patterns which we want our application to react on. An event pattern is a template which matches certain events. For example, an event pattern matches all orders from customers in response to a discount announcement event. Sometimes the discount announcement event is called an atomic event, which is used to build a complex event. In general, an event pattern is a pattern which is built out of (atomic and complex) events satisfying certain relational operators, contexts, and data parameters. Currently we support the following set of event operators (the list, in this abstract, is not complete)1 : a ⊗ b (sequence of events), a ∧ b (classical conjunction of events), a|b (concurrent conjunction of events), a ∨ b (disjunction of events), and ¬a (negation). A rule is a formula of the form a ← b, where a is an atomic event, and b is either an atomic or a complex event pattern. Every event a, b is defined over a time interval [T1 , T2 ] with possible set of data terms, that are omitted due to space reasons. Event patterns contain data relevant for a reactive system2 . The data of an event pattern is a data term that may be either a variable, a constant, or a function symbol. In the following, we present our approach, based on a goaldirected event-driven rules. The approach is established on decomposition of complex event patterns into two-input intermediate events (i.e., goals). The status of achieved goals at the current state shows the progress toward completeness of an event pattern. Goals are automatically asserted by rules as relevant events occur. 1 For a complete list of operators and implementation, see our full technical report: http://code.google.com/p/etalis/wiki/TechnicalReport?ts=1241893 834&updated=TechnicalReport. 2 We avoid representing data due to space reasons.

They can persist over a period of time “waiting” in order to support detection of a more complex goal or pattern. Let us consider our example rules (1). e1 represents a conjunction of e2 and e3 , while the conjunct further represent two sequences of a and b, and further of c and d. In their present form, these rules are not convenient to be used for event-driven computation. These are rather a Prolog-style rules suitable for backward chaining evaluation. Such rules are understood as goals which at certain time either can or cannot be proved by an inference engine. The difficulty is that such an inference process cannot be done in an event-driven fashion. e1([T5 , T6 ]) ← e2([T1 , T2 ]) ∧ e3([T3 , T4 ]). e2([T1 , T4 ]) ← a([T1 , T2 ]) ⊗ b([T3 , T4 ]). e3([T1 , T4 ]) ← c([T1 , T2 ]) ⊗ d([T3 , T4 ]).

e3 happened (in scope of detection of e1) is inserted3 .

(1)

Rules (2)-(9) represent our example rules (1), rewritten so to enable event-driven backward chaining. First, they are suitable for detection of events as soon as they occur. Second, detection of events is focused on patterns of interest, rather than merely detecting irrelevant events. Each rule from (2)-(9) falls in one of two types of rules. One type is used to generate goals, and another one generates either intermediate events (e.g., e2, e3) or pattern events (e.g., e1). The first type of rules are used to generate goals (i.e., insert goals into database). Every generated goal represents that an event has occurred. For example, rule (2) inserts goal(b([_, _]), a([T1 , T2 ]), e2([_, _]))) every time an event of type a occurs. A goal consists of three events (terms). Its interpretation is that “an instance of event a has occurred at [T1 , T2 ], and we are waiting for b to happen in order to detect e2”. In general, the second event in a goal always denotes an event that has just occurred. The role of the first event is to specify what we are waiting for to detect an event that is on the third position. The second type of rules checks whether a certain goal already exists in the database, in which case it triggers an event. For example, the second rule in rules (3) will fire whenever b occurs. The rule checks whether goal(b([_, _]), a([T1 , T2 ]), e2([_, _])) already exists (i.e., a previously has happened), in which case it triggers e2 (by calling e2([T1 , T4 ]). The time occurrence of e2 (i.e., [T1 , T4 ]) is defined based on the occurrence of constituting events (i.e., a([T1 , T2 ]), and b([T3 , T4 ])). Calling e2([T1 , T4 ]), this event is effectively propagated either upward (if it is an intermediate event) or used for triggering an action (if it is an event pattern, e.g., e1). While rules (2)-(5) are used to detect the two sequences, rules (7) and (8) detect conjunction from our example. Let us assume that the sequence e2 was detected as the first one (followed by e3 afterwards). In this situation, rules (7) will fire. The loop will execute two rules. The first rule will check whether e3 has previously happened, in which case it will trigger e1([T5 , T6 ]), provided that T5 = min(T1 , T3 ) and T5 = max(T2 , T4 ). “Consumed” goals are set to be removed from the database once they become irrelevant (if necessary, this can be avoided by omitting del operations). However if e3 had not previously happened (by the time when e2 occurred), the second rule will insert goal(e3([_, _]), e2([T3 , T4 ]), e1([_, _])). This goal has the meaning that e2 occurred in [T3 , T4 ], and now we are waiting for e3 to happen in order to detect e1. Once e3 occurs, rules (8) will execute. Again there is a loop firing two rules. The first rule will trigger e1, provided that e2 has already happened. A time interval on which e1 has been detected is again T5 = min(T1 , T3 ) and T6 = max(T2 , T4 ). If e2 has not occurred, a goal stating that

a([T1 , T2 ]) : −while_do(a, 1, [T1 , T2 ]). a(1, [T1 , T2 ]) : −ins(goal(b([_, _]), a([T1 , T2 ]), e2([_, _]))).

(2)

b([T1 , T2 ]) : − while_do(b, 1, [T1 , T2 ]). b(1, [T3 , T4 ]) : − goal(b([_, _]), a([T1 , T2 ]), e2([_, _]))⊗ del(goal(b([_, _]), a([T1 , T2 ]), e2([_, _]))) ⊗ e2([T1 , T4 ]).

(3)

c([T1 , T2 ]) : − while_do(c, 1, [T1 , T2 ]). c(1, [T1 , T2 ]) : − ins(goal(d([_, _]), c([T1 , T2 ]), e3([_, _]))).

(4)

d([T1 , T2 ]) : − while_do(d, 1, [T1 , T2 ]). d(1, [T3 , T4 ]) : − goal(d([_, _]), c([T1 , T2 ]), e3([_, _]))⊗ del(goal(d([_, _]), c([T1 , T2 ]), e3([_, _]))) ⊗ e3([T1 , T4 ]).

(5)

e1([T1 , T2 ]) : −while_do(e1, 1, [T1 , T2 ]). e1(1, [T1 , T2 ]) : −action1([T1 , T2 ]).

(6)

e2([T1 , T2 ]) : −while_do(e2, 1, [T1 , T2 ]). e2(1, [T3 , T4 ]) : −goal(e2([_, _]), e3([T1 , T2 ]), e1([_, _]))⊗ del(goal(e2([_, _]), e3([T1 , T2 ]), e1([_, _]))) ⊗ min(T1 , T3 , T5 )⊗ max(T2 , T4 , T6 ) ⊗ e1([T5 , T6 ]). e2(1, [T3 , T4 ]) : −not(goal(e2([_, _]), e3([T1 , T2 ]), e1([_, _])))⊗ ins(goal(e3([_, _]), e2([T3 , T4 ]), e1([_, _]))).

(7)

e3([T1 , T2 ]) : −while_do(e3, 1, [T1 , T2 ]). e3(1, [T3 , T4 ]) : −goal(e3([_, _]), e2([T1 , T2 ]), e1([_, _]))⊗ del(goal(e3([_, _]), e2([T1 , T2 ]), e1([_, _]))) ⊗ min(T1 , T3 , T5 ) max(T2 , T4 , T6 ) ⊗ e1([T5 , T6 ]). e3(1, [T3 , T4 ]) : −not(goal(e3([_, _]), e2([T1 , T2 ]), e1([_, _])))⊗ ins(goal(e2([_, _]), e3([T3 , T4 ]), e1([_, _]))).

(8)

min(T1 , T2 , T3 ) : −(T1 < T2 → T3 = T1 ; T3 = T2 ). max(T1 , T2 , T3 ) : −(T1 > T2 → T3 = T1 ; T3 = T2 ).

(9)

Transformed rules (2)-(5) are, in practice, automatically generated for a set of user defined rules (e.g., rules (1)). In the mentioned technical report we have described an algorithm for each event operator of our logic-based event processing framework. Further on, we have provided an implementation of our approach, and shown the first evaluation results. The implementation is based on Prolog and Concurrent Transaction Logic (CT R) [2], that is a general logic designed specifically for the rule-based paradigm. First results are more than encouraging, and we aim to continue on this work. Particularly we will provide definitions for new event operators as well as an optimization of the current implementation.

3.

ACKNOWLEDGMENT

We thank Ahmed Khalil Hafsi and Jia Ding for their help in the implementation and testing of the prototype.

4.

REFERENCES

[1] E. Behrends, O. Fritzen, W. May, and F. Schenk. Combining eca rules with process algebras for the semantic web. In RuleML, 2006. [2] A. J. Bonner and M. Kifer. Concurrency and communication in transaction logic. In Joint International Conference and Symposium on Logic Programming. MIT Press, 1996. [3] P. Haley. Data-driven backward chaining. In International Joint Conferences on Artificial Intelligence. Milan, Italy, 1987.

3 It is worth noting that a non-occurrence of an event is checked by using a negated goal.

An Approach for Data-driven and Logic-based Complex ...

matches all orders from customers in response to a discount an- nouncement event. ... http://code.google.com/p/etalis/wiki/TechnicalReport?ts=1241893.

110KB Sizes 2 Downloads 142 Views

Recommend Documents

An Approach to Pursue Complex Task-Oriented ...
further by providing auto text facilities while typing queries in the search engines. User profiles ... support users in their long-term information quests on the Web, search engines keep track of their queries and clicks ... History displays have to

Event-driven Approach for Logic-based Complex Event ...
from agile business and enterprise processes management, fi- nancial market .... capabilities and actions, all in one declarative framework. Concluding this ...

Event-driven Approach for Logic-based Complex Event ...
from agile business and enterprise processes management, fi- nancial market ... sort of logic is required to keep event-driven systems running in a controlled manner. The logic ...... Joint Conferences on Artificial Intelligence. Milan, Italy, 1987.

An advanced modelling tool for simulating complex ...
1. Introduction. Modelling of water flow and transport processes are, nowadays, common ..... CS are the deposited concentrations of the particulate property and sediments at the ... released in the first flood event of the hydrological year. ..... su

An Integrated Static and Dynamic Approach for Thread ...
Department of Computer Science. University of ..... Software engineering, pages 221–230, New York, NY,. USA, 2008. ACM. 7 ... In VM'04: Pro- ceedings of the ...

Orthogonal complex spreading method for multichannel and ...
Sep 2, 2004 - CSEM/Pro Telecom, et al., “FMAiFRAMEs Multiple. Access A Harmonized ... Sequence WM'nl by a ?rst data Xnl of a mh block and. (51) Int. Cl.

Orthogonal complex spreading method for multichannel and ...
Sep 2, 2004 - CSEM/Pro Telecom, et al., “FMAiFRAMEs Multiple. Access A Harmonized Concept for UMTS/IMT*2000;. FMA2*Wideband CDMA”, Homepage: ...

The retromer complex and clathrin define an early ...
Seaman, M. N., McCaffery, J. M. and Emr, S. D. (1998). A membrane coat complex essential for endosome-to-Golgi retrograde transport in yeast. J. Cell Biol. 142 ...

PDF Complex Functions: An Algebraic and Geometric ...
functions. A distinctive feature of their presentation is the way in which they ... lectures given to advanced undergraduates and is well-suited as a textbook for a ...

A unified approach to the recognition of complex ...
20 Feb 2014 - vulnerabilities of a truck is a challenging task with applications in fields such as .... of behaviour models towards the tracking module [36]. Actions are .... has the advantage to work on-line without needing to specify the num-.

Complex system approach to language games
tem science has started to contribute, mainly by means of computer simula- .... the success rate, S(t), defined as the probability of a successful interaction.

Energy and momentum for Complex electric and ...
Dec 13, 2009 - the application I have in mind I do not actually need anything more than Tµ0, so rather than show something .... [3] D. Bohm. Quantum Theory.

Method and radio system for digital signal transmission using complex ...
Jun 22, 2011 - Calderbank, A. et al: “Space-Time Codes for Wireless Communica tion,” ISIT 1997, Jun. ... Proceddings of the 1999 VTC-Fall IEEE VTS 50th Vehicular Tech ..... wireless systems, which will be third generation (3G) systems and.

HT Area and Pure Complex Crofton Measure for ...
HT AREA AND PURE COMPLEX CROFTON MEASURE FOR. COMPLEX L1 SPACE. LOUIS YANG LIU. Abstract. We find a discrete Crofton measure on the space of affine lines. Gr1(R2) in real L1 plane, and show that there is no pure complex Crofton measure for complex L1

An Interdisciplinary Approach
Human-Computer Interaction (HCI) design. His area of ... The Industrial Design Centre (IDC) in IIT Bombay has had an interdisciplinary approach towards design education for several years. .... Since the year 2000, IDC has been conducting an elective

An Applied Approach
as resume writing, interview survival, job description authoring, performance appraisal, ... Managing Organizational Change: A Multiple Perspectives Approach.

Method and radio system for digital signal transmission using complex ...
Jun 22, 2011 - less communications and Networking Conference, 2000. WCNC. 20001EEE. ..... data services in addition to high quality voice services. Con.