Further Reading
BeepBeep Research Papers
BeepBeep has been the subject of multiple scientific research papers in the past couple of years. Here is a list of these publications. Note that each of them covers only a specific part of the system and that, depending on its age, may not faithfully reflect the current state of the implementation. Moreover, a few publications (mostly from 2014 and earlier) refer to version 1.x of BeepBeep, which worked differently from the current software. Some of these articles, however, detail interesting use cases where BeepBeep has been involved.
Simon Varvaressos, Kim Lavoie, Sébastien Gaboury, Sylvain Hallé. (2017). Automated Bug Finding in Video Games: A Case Study for Runtime Monitoring. Computers in Entertainment 15(1): 1:1-1:28, ACM. DOI: 10.1145/2700529.
Mohamed Recem Boussaha, Raphaël Khoury, Sylvain Hallé. (2017).
Monitoring of Security Properties Using BeepBeep. FPS 2017: 160-169. DOI: 10.1007/978-3-319-75650-9_11
Sylvain Hallé, Raphaël Khoury, Sébastien Gaboury. (2017).
Event Stream Processing with Multiple Threads. RV 2017: 359-369. DOI: https://doi.org/10.1007/978-3-319-67531-2_22
Sylvain Hallé. (2017). From Complex Event Processing to Simple Event Processing. CoRR abs/1702.08051 (2017).
Sylvain Hallé, Sébastien Gaboury, Bruno Bouchard. (2016). Activity Recognition Through Complex Event Processing: First Findings. AAAI Workshop: Artificial Intelligence Applied to Assistive Technologies and Smart Environments 2016.
http://www.aaai.org/ocs/index.php/WS/AAAIW16/paper/view/12561
Sylvain Hallé, Sébastien Gaboury, Raphaël Khoury. (2016). A glue language for event stream processing. BigData 2016: 2384-2391. DOI: 10.1109/BigData.2016.7840873
Raphaël Khoury, Sylvain Hallé, Omar Waldmann. (2016). Execution Trace Analysis Using LTL-FO+. ISoLA (2) 2016: 356-362. DOI: 10.1007/978-3-319-47169-3_26
Sylvain Hallé, Sébastien Gaboury, Bruno Bouchard. (2016). Towards User Activity Recognition Through Energy Usage Analysis And Complex Event Processing. PETRA 2016: 3. DOI: 10.1145/2910674.2910707
Sylvain Hallé. (2016). When RV Meets CEP. RV 2016: 68-91. DOI: https://doi.org/10.1007/978-3-319-46982-9_6
Sylvain Hallé. (2015). A Declarative Language Interpreter for CEP. EDOC Workshops 2015: 156-159. DOI: 10.1109/EDOCW.2015.19
Sylvain Hallé, Simon Varvaressos. (2014). A Formalization of Complex Event Stream Processing. EDOC 2014: 2-11. DOI: 10.1109/EDOC.2014.12
Simon Varvaressos, Kim Lavoie, Alexandre Blondin Massé, Sébastien Gaboury, Sylvain Hallé. Automated Bug Finding in Video Games: A Case Study for Runtime Monitoring. ICST 2014: 143-152. DOI: https://doi.org/10.1109/ICST.2014.27
Simon Varvaressos, Dominic Vaillancourt, Sébastien Gaboury, Alexandre Blondin Massé, Sylvain Hallé. (2013). Runtime Monitoring of Temporal Logic Properties in a Platform Game. RV 2013: 346-351. DOI: 10.1007/978-3-642-40787-1_23
Sylvain Hallé, Roger Villemaire. (2012). Runtime Enforcement of Web Service Message Contracts with Data. IEEE Trans. Services Computing 5(2): 192-206 (2012). DOI: 10.1109/TSC.2011.10
Sylvain Hallé, Tevfik Bultan, Graham Hughes, Muath Alkhalaf, Roger Villemaire. (2010). Runtime Verification of Web Service Interface Contracts. IEEE Computer 43(3): 59-66. DOI: 10.1109/MC.2010.76
Sylvain Hallé, Roger Villemaire. (2009). Browser-Based Enforcement of Interface Contracts in Web Applications with BeepBeep. CAV 2009: 648-653. DOI: 10.1007/978-3-642-02658-4_50
Sylvain Hallé, Roger Villemaire. (2008). Runtime Monitoring of Message-Based Workflows with Data. EDOC 2008: 63-72. DOI: 10.1109/EDOC.2008.32
Complex Event Processing Systems
As was mentioned in the introduction, BeepBeep is very close to the field of complex event processing (CEP). Here are a few pointers to books and papers on this topic.
General Literature
Neha Narkhede. (2017). Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale. O'Reilly. ISBN: 978-1491936160
Jay Kreps. (2014). I Heart Logs: Event Data, Stream Processing, and Data Integration. O'Reilly. ISBN: 978-1491909386
David C. Luckham. (2005). The power of events -- An introduction to complex event processing in distributed enterprise systems. ACM. ISBN: 978-0-201-72789-0
Research Papers and Technical Papers
Multiple CEP systems have been mentioned in the introduction. Here are links to research papers and whitepapers about some of these systems.
Ugur Çetintemel, Daniel J. Abadi, Yanif Ahmad, Hari Balakrishnan, Magdalena Balazinska, Mitch Cherniack, Jeong-Hyon Hwang, Samuel Madden, Anurag Maskey, Alexander Rasin, Esther Ryvkina, Mike Stonebraker, Nesime Tatbul, Ying Xing, Stan Zdonik. (2016). The Aurora and Borealis Stream Processing Engines. Data Stream Management 2016: 337-359. DOI: 10.1007/978-3-540-28608-0_17
Remco M. Dijkman, Sander P.F. Peters, Arthur M.F. ter Hofstede. (2016). A Toolkit for Streaming Process Data Analysis. EDOCW 2016: 304-312. DOI: 10.1109/EDOCW.2016.7584341
Matei Zaharia, Reynold S. Xin, Patrick Wendell, Tathagata Das, Michael Armbrust, Ankur Dave, Xiangrui Meng, Josh Rosen, Shivaram Venkataraman, Michael J. Franklin, Ali Ghodsi, Joseph Gonzalez, Scott Shenker, Ion Stoica. (2016). Apache Spark: a unified engine for big data processing. Communications of the ACM 59(11): 56-65. DOI: 10.1145/2934664
Michael Armbrust, Reynold S. Xin, Cheng Lian, Yin Huai, Davies Liu, Joseph K. Bradley, Xiangrui Meng, Tomer Kaftan, Michael J. Franklin, Ali Ghodsi, Matei Zaharia. (2015). Spark SQL: Relational Data Processing in Spark. DOI: 10.1145/2723372.2742797
Alexander Alexandrov, Rico Bergmann, Stephan Ewen, Johann{-}Christoph Freytag, Fabian Hueske, Arvid Heise, Odej Kao, Marcus Leich, Ulf Leser, Volker Markl, Felix Naumann, Mathias Peters, Astrid Rheinländer, Matthias J. Sax, Sebastian Schelter, Mareike Höger, Kostas Tzoumas, Daniel Warneke. (2014). The Stratosphere platform for big data analytics. VLDB Journal 23(6): 939-964. DOI: 10.1007/s00778-014-0357-y
Jian Cao and Xing Wei and Yaqi Liu and Dianhui Mao and Qiang Cai. (2014). LogCEP: -- Complex Event Processing based on Pushdown Automaton. Int. Journal of Hybrid Information Technology 7(6): 71-82. DOI: 10.14257/ijhit.2014.7.6.06
Gianpaolo Cugola, Alessandro Margara. (2012). Processing flows of information: From data stream to complex event processing. ACM Comput. Surv. 44(3): 15:1-15:62. DOI: 10.1145/2187671.2187677
Sriskandarajah Suhothayan, Kasun Gajasinghe, Isuru Loku Narangoda, Subash Chaturanga, Srinath Perera, Vishaka Nanayakkara. (2011). Siddhi: a second look at complex event processing architectures. SC-GCE 2011: 43-50. DOI: 10.1145/2110486.2110493
Gerald G. Koch, Boris Koldehofe, Kurt Rothermel. (2010). Cordies: expressive event correlation in distributed systems. DEBS 2010: 10.1145/1827418.1827424
Leonardo Neumeyer, Bruce Robbins, Anish Nair, Anand Kesari. (2010). S4: Distributed Stream Computing Platform. ICDMW 2010: 170-177. DOI: 10.1109/ICDMW.2010.172
Lars Brenna, Johannes Gehrke, Mingsheng Hong, Dag Johansen. (2009). Distributed event stream processing with non-deterministic finite automata. DEBS 2009. DOI: 10.1145/1619258.1619263
Lars Brenna, Alan J. Demers, Johannes Gehrke, Mingsheng Hong, Joel Ossher, Biswanath Panda, Mirek Riedewald, Mohit Thatte, Walker M. White. (2007). Cayuga: a high-performance event processing engine. SIGMOD Conference 2007: 1100-1102. DOI: 10.1145/1247480.1247620
Eugene Wu, Yanlei Diao, Shariq Rizvi. (2006). High-performance complex event processing over streams. SIGMOD 2006: 407-418. DOI: 10.1145/1142473.1142520
Arvind Arasu, Brian Babcock, Shivnath Babu, John Cieslewicz, Mauyr Datar, Keith Ito, Rajeev Motwani, Utkarsh Srivastava, Jennifer Widom. (2004). STREAM: The Stanford Data Stream Management System. Technical Report, Stanford InfoLab.
http://ilpubs.stanford.edu:8090/641/
Sirish Chandrasekaran, Owen Cooper, Amol Deshpande, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong, Sailesh Krishnamurthy, Samuel Madden, Vijayshankar Raman, Frederick Reiss, Mehul A. Shah. (2003). TelegraphCQ: Continuous Dataflow Processing for an Uncertain World. CIDR 2003.
http://www-db.cs.wisc.edu/cidr/cidr2003/program/p24.pdf
Donald Carney, Ugur Çetintemel, Mitch Cherniack, Christian Convey, Sangdon Lee, Greg Seidman, Michael Stonebraker, Nesime Tatbul, Stanley B. Zdonik. (2002). Monitoring Streams - A New Class of Data Management Applications. VLDB 2002: 215-226.
http://www.vldb.org/conf/2002/S07P02.pdf
Shivnath Babu, Jennifer Widom. (2001). Continuous Queries over Data Streams. SIGMOD Record 30(3): 109-120. DOI: 10.1145/603867.603884.
Praveen Seshadri, Miron Livny, Raghu Ramakrishnan. (1994). Sequence Query Processing. SIGMOD 1994: 430-441. DOI: 10.1145/191839.191926
Nicolas Halbwachs, Fabienne Lagnier, Christophe Ratel. (1992). Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE. IEEE Trans. Software Eng. 18(9): 785-793. DOI: 10.1109/32.159839
Runtime Verification and Log Analysis
Martin Leucker, César Sánchez, Torben Scheffel, Malte Schmitz, Alexander Schramm:
TeSSLa: runtime verification of non-synchronized real-time streams. SAC 2018: 1925-1933. DOI: 10.1145/3167132.3167338
Normann Decker, Jannis Harder, Torben Scheffel, Malte Schmitz, Daniel Thoma. (2016). Runtime Monitoring with Union-Find Structures. ETAPS 2016: 868-884. DOI: 10.1007/978-3-662-49674-9_54
Martin Leucker. (2016). Runtime Verification for Linear-Time Temporal Logic. SETSS 2016: 151-194. DOI: 10.1007/978-3-319-56841-6_5
Ariane Piel, Jean Bourrely, Stéphanie Lala, Sylvain Bertrand, Romain Kervarc. (2016). Temporal Logic Framework for Performance Analysis of Architectures of Systems. NFM 2016: 3-18. DOI: 10.1007/978-3-319-40648-0_1
David A. Basin, Felix Klaedtke, Srdjan Marinovic, Eugen Zalinescu. (2015). Monitoring of temporal first-order properties with aggregations. Formal Methods in System Design. 45 (3): 262-285. DOI: 10.1007/s10703-015-0222-7.
Yliès Falcone, Klaus Havelund, Giles Reger. A Tutorial on Runtime Verification. (2013). Engineering Dependable Software Systems 2013: 141-175. DOI: 10.3233/978-1-61499-207-3-141
Howard Barringer, Yliès Falcone, Klaus Havelund, Giles Reger, David E. Rydeheard. (2012). Quantified Event Automata: Towards Expressive and Efficient Runtime Monitors. FM 2012: 68-84. DOI: 10.1007/978-3-642-32759-9_9
Patrick O'Neil Meredith, Dongyun Jin, Dennis Griffith, Feng Chen, Grigore Rosu (2012). An overview of the {MOP} runtime verification framework. STTT 14(3): 249-289. DOI: 10.1007/s10009-011-0198-6
Howard Barringer, Klaus Havelund. (2011). TraceContract: A Scala DSL for Trace Analysis. FM 2011: 57-72. DOI: 10.1007/978-3-642-21437-0_7
Fabrizio Maria Maggi, Marco Montali, Michael Westergaard, Wil M. P. van der Aalst. (2011). Monitoring Business Constraints with Linear Temporal Logic: An Approach Based on Colored Automata. BPM 2011: 132-147. DOI: 10.1007/978-3-642-23059-2_13
Howard Barringer, Alex Groce, Klaus Havelund, Margaret H. Smith. (2010). Formal Analysis of Log Files. JACIC 7(11): 365-390. DOI: 10.2514/1.49356
David A. Basin, Felix Klaedtke, Samuel Müller. (2010). Policy Monitoring in First-Order Temporal Logic. CAV 2010: 1-18. DOI: 10.1007/978-3-642-14295-6_1
Eric Bodden, Laurie J. Hendren, Patrick Lam, Ondrej Lhoták, Nomair A. Naeem. (2010). Collaborative Runtime Verification with Tracematches. J. Log. Comput. 20(3): 707-723. DOI: 10.1093/logcom/exn077
Christian Colombo, Andrew Gauci, Gordon J. Pace. (2010). LarvaStat: Monitoring of Statistical Properties. RV 2010: 480-484. DOI: 10.1007/978-3-642-16612-9_38
Kari Kähkönen, Jani Lampinen, Keijo Heljanko, Ilkka Niemelä. (2009). The LIME Interface Specification Language and Runtime Monitoring Tool. RV 2009: 93-100. DOI: 10.1007/978-3-642-04694-0_7
Feng Chen, Grigore Rosu. (2009). Parametric Trace Slicing and Monitoring. TACAS 2009: 246-261. DOI: 10.1007/978-3-642-00768-2_23
Martin Leucker, Christian Schallhart. (2009). A brief account of runtime verification. J. Log. Algebr. Program. 78 (5): 293–303. DOI: 10.1016/j.jlap.2008.08.004
Ahmed Awad, Gero Decker, Mathias Weske. (2008). Efficient Compliance Checking Using BPMN-Q and Temporal Logic. BPM 2008: 326-341. DOI: 10.1007/978-3-540-85758-7_24
Federico Chesani, Paola Mello, Marco Montali, Fabrizio Riguzzi, Maurizio Sebastianis, Sergio Storari. (2008). Checking Compliance of Execution Traces to Business Rules. BPM-W 2008: 134-145. DOI: 10.1007/978-3-642-00328-8_13
Christian Colombo, Gordon J. Pace, Gerardo Schneider. (2008). Dynamic Event-Based Runtime Monitoring of Real-Time and Contextual Properties. FMICS 2008: 135-149. DOI: 10.1007/978-3-642-03240-0_13
Aditya Ghose and George Koliadis. (2007). Auditing Business Process Compliance. ICSOC 2007: 169-180. DOI: 10.1007/978-3-540-74974-5_14
Guido Governatori and Zoran Milosevic and Shazia W. Sadiq. (2006). Compliance checking between business processes and business contracts. EDOC 2006: 221-232. DOI: 10.1109/EDOC.2006.22
Ben D'Angelo, Sriram Sankaranarayanan, César Sánchez, Will Robinson, Bernd Finkbeiner, Henny B. Sipma, Sandeep Mehrotra, Zohar Manna. (2005). LOLA: Runtime Monitoring of Synchronous Systems. TIME 2005: 166-174. DOI: 10.1109/TIME.2005.26
Hubert Garavel and Radu Mateescu. (2004). SEQ.OPEN: A Tool for Efficient Trace-Based Verification. SPIN 2004: 151-157. DOI: 10.1007/978-3-540-24732-6_11
Moonzoo Kim, Mahesh Viswanathan, Sampath Kannan, Insup Lee, Oleg Sokolsky. (2004). Java-MaC: A Run-Time Assurance Approach for Java Programs. FMSD 2004: 129-155. DOI: 10.1023/B:FORM.0000017719.43755.7c
Automata, Logic, Formal Methods
Michael Huth, Mark Ryan. (2004). Logic in Computer Science: Modelling and Reasoning about Systems. Cambridge University Press. ISBN: 978-0521543101
Amir Pnueli. (1977). The Temporal logic of programs. FOCS18: 46-57. DOI: 10.1109/SFCS.1977.32
Last updated