Language integration of complex event processing

Language integration of complex event processing

Bachelor Thesis, Master Thesis

Complex Event Processing (CEP) is about performing queries over time-changing streams of data. This technology is used to correlate low-level events and generate higher-level events when a certain pattern occurs. Applications include trading software, elaboration from environmental sensors, and intrusion detection through network packets analysis. For example, a CEP system can receive a stream of data from the trading market and perform the following query: “For the five most recent trading days starting today, select all stocks that closed higher than the company X on a given day. Keep the query standing for 20 trading days”. CEP engines, however are usually not integrated in the programming language and simply accept SQL-like queries in the form of strings. In the last few years, parallel line of research investigated event-based languages, that provide ah-hoc support for events. For example C# allows one to define events beside fields and methods in class interfaces. However, this class of languages often simply provides syntactic support for the Observer pattern and does not reach the expressivity of CEP. The goal of the thesis is to achieve high expressivity and integration with the existing abstractions in the same language.

Research objective
The goal of this thesis is to integrate a CEP engine into the Scala language. The candidate will extend Scala (by using library-based and domain specific languages techniques) to include time correlation and event joins. The resulting language will mix object-oriented design, event-based computations and the expressiveness of CEP systems.

Expected gain of knowledge
The principles of CEP, event correlation, queries over time-changing values and complex-event patterns. Programming in Scala, a mixed functional/object-oriented language that is getting more and more popular (the next Java?).

Publications

  • Patrick Eugster and K. R. Jayaram: EventJava: An Extension of Java for Event Correlation. In Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming (Genoa), Sophia Drossopoulou (Ed.). Springer-Verlag, Berlin, Heidelberg, 570-594. DOI=10.1007/978-3-642-03013-0_26 http://dx.doi.org/10.1007/978-3-642-03013-0_26
  • Sirish Chandrasekaran, Owen Cooper, Amol Deshpande, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong, Sailesh Krishnamurthy, Samuel R. Madden, Fred Reiss, and Mehul A. Shah: TelegraphCQ: continuous dataflow processing. In Proceedings of the 2003 ACM SIGMOD international conference on Management of data (SIGMOD '03). ACM, New York, NY, USA, 668-668. DOI=10.1145/872757.872857 http://doi.acm.org/10.1145/872757.872857