Event-driven reactive functionalities are urgently needed in present-day distributed systems and dynamic Web-based environments. Reaction rules constitute a promising approach to specify and program such reactive systems in a declarative manner. In particular, they provide the ability to reason over events, actions and their effects, and allow detecting events and responding to them automatically. Various reaction rule approaches have been developed, which for the most part have been advanced separately, hence led to different views and terminologies. This chapter surveys and classifies the wide variety of rule-based calculi approaches, engines and languages for event, action and state processing, and describes their main features. Founded on the original formalisms, major lines of development are traced to the present and extrapolated to the future.
Introduction And Motivation
Event-driven applications based on reactive rules and in particular ECA rules, which trigger actions in response to the detection of events, have been extensively studied during the 1990s. Originating from the early days of programming language where system events were used for interrupt and exception handling, active event-driven rules have received great attention in different areas such as active databases, which started in the late 1980s (Paton, 1999) (Widom and Ceri, 1996), real-time applications, and system and network management tools which emerged in the early 1990s, as well as publish-subscribe systems, which appeared in the late 1990s (Baldoni et al, 2003). Recently, a strong demand for reactive functionalities has come from the Web community, where data sources are enriched with reactive behavior to make them active and allow dynamic behavior (as opposed to the conventional query-driven passive Web). Additionally, there is an increased interest in industry and academia in event-driven mechanisms such as Complex Event Processing (CEP) (Luckham 2002) and high-level Event-Driven Architectures (EDA) (Chandy, 2006) . (Pro-)active real-time and just-in-time reactions to events and relevant situations are a key factor in upcoming agile and flexible IT infrastructures and distributed service oriented environments. Among many other industry developments, Real-Time Enterprise (RTE), Business Activity Management (BAM) and Business Performance Management, as well as closely related areas such as IT Service Level Management (SLM) (Paschke, 2007a), are business drivers for this renewed interest.
A great variety of approaches have been developed for reaction rules, which have for the most part evolved separately in their respective domains, and which have led to different views and terminologies. Some detect events as they occur and directly react to them, as e.g. in active databases or implicitly in production rule systems which are fired by changing conditions in the working memory. Others, e.g., KR event / action logics, focus on the development of axioms to formalize the notions of actions and causality, and on the inferences that can be made from the fact that certain events are known to have occurred or are planned to happen in future.
This chapter defines the basic concepts of reaction rules and event processing technologies. It introduces a general multi-dimensional classification scheme for the major families of reaction rule languages, with the four dimensions event, condition, action, and processing and reasoning for the classification of the space of (possible) language features. It also gives a survey of the major lines of reaction rule approaches and systems of the past decades. The objectives are:
to provide a common set of foundational terms and definitions;
to classify and survey the wide variety of reaction rule languages and event, action and state processing approaches;
to provide a common vocabulary to describe the language features of different reaction rule languages.
to provide a common frame of reference as a basis for understanding and analyzing the core properties of a reaction rule language and a rule-based reactive system architecture;
to support the selection of an appropriate reaction rule approach and language for engineering a rule-based system in a particular application domain.
This chapter is structured as follows: Sections 2 and 3 introduce foundational definitions and a multi-dimensional classification scheme for the major families of reaction rule languages. The central section 4 gives a survey of the main families of reaction rule languages, their core properties and features, and the major developments in each field in the past decades till now. Section 5 highlights future trends in event processing and reaction rule technology. Finally, section 6 concludes this chapter.Top
This section introduces the foundational notions and definitions of the reaction rule and rule-based event processing technology.1