Abstract
This paper is an introduction to Complex Event Processing (CEP) intended for an practicioners of Runtime Verification. It first describes typical CEP problems, popular tools and their query languages. It then presents BeepBeep 3, an event stream processor that attempts to bridge the gap between RV and CEP. Thanks to BeepBeep’s generic architecture and flexible input language, queries and properties from both fields can be efficiently processed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A few engines allow events to be user-defined objects, but these objects are accessed through methods that return scalar values, which is tantamount.
- 2.
- 3.
The order of arrival of events from the same input trace, obviously, is preserved.
- 4.
The core of BeepBeep is made of less than 2,500 lines of code.
- 5.
An example of BeepBeep’s plotting feature can be seen at: https://www.youtube.com/watch?v=XyPweHGVI9Q.
References
Esper. http://espertech.com
LINQ (language-integrated query). http://msdn.microsoft.com/en-us/library/bb397926.aspx
Simple API for XML. http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPSAX.html. Accessed 13 Dec 2013
StreamBase SQL. http://streambase.com
VoltDB. http://voltdb.com
Abadi, D.J., Ahmad, Y., Balazinska, M., Çetintemel, U., Cherniack, M., Hwang, J.H., Lindner, W., Maskey, A., Rasin, A., Ryvkina, E., Tatbul, N., Xing, Y., Zdonik, S.B.: The design of the Borealis stream processing engine. In: CIDR, pp. 277–289 (2005)
Arasu, A., Babcock, B., Babu, S., Cieslewicz, J., Datar, M., Ito, K., Motwani,R., Srivastava, U., Widom, J.: Stream: the stanford data stream management system. Technical report 2004-20, Stanford InfoLab (2004). http://ilpubs.stanford.edu:8090/641/
Barringer, H., Falcone, Y., Havelund, K., Reger, G., Rydeheard, D.: Quantified event automata: towards expressive and efficient runtime monitors. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 68–84. Springer, Heidelberg (2012). doi:10.1007/978-3-642-32759-9_9
Barringer, H., Rydeheard, D.E., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. J. Log. Comput. 20(3), 675–706 (2010)
Basin, D., Harvan, M., Klaedtke, F., Zălinescu, E.: MONPOLY: monitoring usage-control policies. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 360–364. Springer, Heidelberg (2012). doi:10.1007/978-3-642-29860-8_27
Basin, D.A., Klaedtke, F., Marinovic, S., Zalinescu, E.: Monitoring of temporal first-order properties with aggregations. Formal Methods Syst. Des. 46(3), 262–285 (2015). http://dx.doi.org/10.1007/s10703-015-0222-7
Berry, A., Milosevic, Z.: Real-time analytics for legacy data streams in health: Monitoring health data quality. In: Gasevic, D., Hatala, M., Nezhad, H.R.M., Reichert, M. (eds.) EDOC, pp. 91–100. IEEE (2013)
Bodden, E., Hendren, L.J., Lam, P., Lhoták, O., Naeem, N.A.: Collaborative runtime verification with Tracematches. J. Log. Comput. 20(3), 707–723 (2010)
Brenna, L., Gehrke, J., Hong, M., Johansen, D.: Distributed event stream processing with non-deterministic finite automata. In: Gokhale, A.S., Schmidt, D.C. (eds.) DEBS. ACM (2009)
Chandrasekaran, S., Cooper, O., Deshpande, A., Franklin, M.J., Hellerstein, J.M., Hong, W., Krishnamurthy, S., Madden, S., Raman, V., Reiss, F., Shah, M.A.: TelegraphCQ: continuous dataflow processing for an uncertain world. In: CIDR (2003)
Cheng, K., Krishnakumar, A.S.: Automatic functional test generation using theextended finite state machine model. In: DAC, pp. 86–91 (1993). http://doi.acm.org/10.1145/157485.164585
Colombo, C., Gauci, A., Pace, G.J.: LarvaStat: monitoring of statistical properties. In: Barringer, H., Falcone, Y., Finkbeiner, B., Havelund, K., Lee, I., Pace, G., Roşu, G., Sokolsky, O., Tillmann, N. (eds.) RV 2010. LNCS, vol. 6418, pp. 480–484. Springer, Heidelberg (2010). doi:10.1007/978-3-642-16612-9_38
Colombo, C., Pace, G.J., Schneider, G.: LARVA - safer monitoring of real-time Java programs (tool paper). In: Seventh IEEE International Conference on Software Engineering and Formal Methods (SEFM), pp. 33–37. IEEE Computer Society, November 2009
D’Angelo, B., Sankaranarayanan, S., Sánchez, C., Robinson, W., Finkbeiner, B., Sipma, H.B., Mehrotra, S., Manna, Z.: LOLA: runtime monitoring of synchronous systems. In: 12th International Symposium on Temporal Representation and Reasoning (TIME 2005), 23–25 June 2005, Burlington, Vermont, USA, pp. 166–174. IEEE Computer Society (2005). http://dx.doi.org/10.1109/TIME.2005.26
Erlingsson, Ú., Pistoia, M. (eds.) Proceedings of the 2008 Workshop on Programming Languages and Analysis for Security, PLAS 2008, Tucson, AZ, USA, June 8, 2008. ACM (2008)
Erlingsson, Ú., Schneider, F.B.: IRM enforcement of Java stack inspection. In: IEEE Symposium on Security and Privacy, pp. 246–255 (2000)
Fegaras, L., Dash, R.K., Wang, Y.: A fully pipelined XQuery processor. In: XIME-P (2006)
Finkbeiner, B., Sankaranarayanan, S., Sipma, H.: Collecting statistics over runtime executions. Formal Methods Syst. Des. 27(3), 253–274 (2005). http://dx.doi.org/10.1007/s10703-005-3399-3
Fry, C., Sagar, D.: Streaming API for XML, JSR 173 specification (2003). https://www.jcp.org/aboutJava/communityprocess/final/jsr173/
Goldsmith, S., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: OOPSLA, pp. 385–402 (2005)
Hallé, S., Gaboury, S., Bouchard, B.: Towards user activity recognition through energy usage analysis and complex event processing. In: PETRA. ACM (2016)
Hallé, S., Varvaressos, S.: A formalization of complex event stream processing. In: Reichert, M., Rinderle-Ma, S., Grossmann, G. (eds.) 18th IEEE International Enterprise Distributed Object Computing Conference, EDOC 2014, Ulm, Germany, September 1–5, 2014, pp. 2–11. IEEE Computer Society (2014). http://dx.doi.org/10.1109/EDOC.2014.12
Hallé, S., Villemaire, R.: Runtime monitoring of web service choreographies using streaming XML. In: Shin, S.Y., Ossowski, S. (eds.) SAC, pp. 2118–2125. ACM (2009)
Hallé, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE T. Serv. Comput. 5(2), 192–206 (2012)
Krishnan, R., Goldstein, J., Raizman, A.: A hitchhiker’s guide to StreamInsight queries, version 2.1 (2012). http://support.sas.com/documentation/onlinedoc/dfdmstudio/2.4/dfU_ELRG.pdf
Luckham, D.C.: The power of events - An introduction to complex event processing in distributed enterprise systems. ACM (2005)
Martin, M.C., Livshits, V.B., Lam, M.S.: Finding application errors and security flaws using PQL: a program query language. In: OOPSLA, pp. 365–383 (2005)
Meredith, P.O., Jin, D., Griffith, D., Chen, F., Rosu, G.: An overview of the MOP runtime verification framework. STTT 14(3), 249–289 (2012). http://dx.doi.org/10.1007/s10009-011-0198-6
Perera, S., Suhothayan, S., Vivekanandalingam, M., Fremantle, P., Weerawarana, S.: Solving the grand challenge using an opensource CEP engine. In: Bellur,U., Kothari, R. (eds.) The 8th ACM International Conference on Distributed Event-Based Systems, DEBS 2014, Mumbai, India, May 26–29, 2014, pp.288–293. ACM (2014). http://doi.acm.org/10.1145/2611286.2611331
Reger, G., Cruz, H.C., Rydeheard, D.: MarQ: monitoring at runtime with QEA. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 596–610. Springer, Heidelberg (2015). doi:10.1007/978-3-662-46681-0_55
Rodrigues, J.: Health Information Systems: Concepts, Methodologies, Tools, and Applications, vol. 1. IGI Global, Hershey (2010)
Stolz, V., Bodden, E.: Temporal assertions using AspectJ. Electr. Notes Theor. Comput. Sci. 144(4), 109–124 (2006)
Varvaressos, S., Lavoie, K., Gaboury, S., Hallé, S.: Automated bug finding in video games: A case study for runtime monitoring. ACM Computers in Entertainment (2014, in press)
Wu, E., Diao, Y., Rizvi, S.: High-performance complex event processing over streams. In: Chaudhuri, S., Hristidis, V., Polyzotis, N. (eds.) SIGMOD Conference, pp. 407–418. ACM (2006)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Hallé, S. (2016). When RV Meets CEP. In: Falcone, Y., Sánchez, C. (eds) Runtime Verification. RV 2016. Lecture Notes in Computer Science(), vol 10012. Springer, Cham. https://doi.org/10.1007/978-3-319-46982-9_6
Download citation
DOI: https://doi.org/10.1007/978-3-319-46982-9_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46981-2
Online ISBN: 978-3-319-46982-9
eBook Packages: Computer ScienceComputer Science (R0)