Quality-Aware Runtime Adaptation in Complex Event Processing

Complex event processing (CEP) is a fundamental paradigm for a software system to self-adapt to environmental changes. CEP provides efficient means to detect (complex) events corresponding to environmental changes by performing a real-time analysis on many, possibly heterogeneous, data sources. The way current CEP systems detect events is determined at design time without accounting for dynamic changes of the environment monitored by the CEP system. This can lead to situations where the performance, quality and reliability of event detection significantly drop (e.g., due to mobility) since initial assumptions of the environment are violated or stated too general. In this paper, we propose A DAPTIVE CEP, a CEP system that is able to self-adapt to detected changes in environmental conditions. We propose a CEP query language that allows specifying changes in the behavior of the CEP system and its mechanisms in detecting events dependent on environmental conditions. This way, A DAPTIVE CEP can select the best-suited configurations for given quality demands. In our evaluation, we show by means of a reference concept how the flexibility exposed by the query language helps to achieve significant performance gains.

[1]  Mira Mezini,et al.  i3QL: language-integrated live data views , 2014, OOPSLA.

[2]  Scott Shenker,et al.  Discretized streams: fault-tolerant streaming computation at scale , 2013, SOSP.

[3]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[4]  Ada Diaconescu,et al.  Autonomic management via dynamic combinations of reusable strategies , 2008, Autonomics.

[5]  Matteo Pradella,et al.  Context-oriented programming: A software engineering perspective , 2012, J. Syst. Softw..

[6]  Yanlei Diao,et al.  High-performance complex event processing over streams , 2006, SIGMOD Conference.

[7]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[8]  Ralf Lämmel,et al.  Strongly typed heterogeneous collections , 2004, Haskell '04.

[9]  Kurt Rothermel,et al.  Securing Broker-Less Publish/Subscribe Systems Using Identity-Based Encryption , 2014, IEEE Transactions on Parallel and Distributed Systems.

[10]  Margo I. Seltzer,et al.  Network-Aware Operator Placement for Stream-Processing Systems , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[11]  Johannes Gehrke,et al.  Towards Expressive Publish/Subscribe Systems , 2006, EDBT.

[12]  Kurt Rothermel,et al.  Distributed spectral cluster management: a method for building dynamic publish/subscribe systems , 2012, DEBS.

[13]  Martin Odersky,et al.  Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition , 2010 .

[14]  Annika Hinze,et al.  Event-based applications and enabling technologies , 2009, DEBS '09.

[15]  Erik Meijer Reactive extensions (Rx): curing your asynchronous programming blues , 2010, CUFP '10.

[16]  Kurt Rothermel,et al.  Efficient content-based routing with network topology inference , 2013, DEBS.

[17]  Rocco De Nicola,et al.  A Formal Approach to Autonomic Systems Programming: The SCEL Language , 2014, TAAS.

[18]  Badrish Chandramouli,et al.  Trill: A High-Performance Incremental Query Processor for Diverse Analytics , 2014, Proc. VLDB Endow..

[19]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[20]  Andrei Olaru,et al.  S-CLAIM: An Agent-based Programming Language for AmI, A Smart-Room Case Study , 2012, ANT/MobiWIS.

[21]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[22]  Danny Weyns,et al.  Software Engineering of Self-adaptive Systems , 2019, Handbook of Software Engineering.

[23]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[24]  Matteo Pradella,et al.  ContextErlang: A language for distributed context-aware self-adaptive applications , 2015, Sci. Comput. Program..

[25]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[26]  Gian Luigi Ferrari,et al.  A Two-Component Language for Adaptation: Design, Semantics and Program Analysis , 2016, IEEE Transactions on Software Engineering.

[27]  Frank Dürr,et al.  Solving the Multi-Operator Placement Problem in Large-Scale Operator Networks , 2010, 2010 Proceedings of 19th International Conference on Computer Communications and Networks.

[28]  Hidehiko Masuhara,et al.  EventCJ: a context-oriented programming language with declarative event-based context transition , 2011, AOSD '11.

[29]  Mira Mezini,et al.  Distributed REScala: an update algorithm for distributed reactive programming , 2014, OOPSLA 2014.

[30]  Michael R. Genesereth,et al.  Software agents , 1994, CACM.

[31]  Kurt Rothermel,et al.  Rollback-recovery without checkpoints in distributed event processing systems , 2013, DEBS '13.

[32]  Shriram Krishnamurthi,et al.  Flapjax: a programming language for Ajax applications , 2009, OOPSLA '09.

[33]  Matt Welsh,et al.  Flask: staged functional programming for sensor networks , 2008, ICFP.

[34]  Mira Mezini,et al.  REScala: bridging between object-oriented and functional style in reactive applications , 2014, MODULARITY.

[35]  Alessandro Margara,et al.  TESLA: a formally defined event specification language , 2010, DEBS '10.

[36]  Shriram Krishnamurthi,et al.  Embedding Dynamic Dataflow in a Call-by-Value Language , 2006, ESOP.

[37]  Wolfgang De Meuter,et al.  A survey on reactive programming , 2013, CSUR.

[38]  Kurt Rothermel,et al.  MCEP: A Mobility-Aware Complex Event Processing System , 2014, ACM Trans. Internet Techn..

[39]  Stephen Chong,et al.  Asynchronous functional reactive programming for GUIs , 2013, PLDI.

[40]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[41]  Kurt Rothermel,et al.  MigCEP: operator migration for mobility driven distributed complex event processing , 2013, DEBS.

[42]  Paul Hudak,et al.  Arrows, Robots, and Functional Reactive Programming , 2002, Advanced Functional Programming.