One of the goals of the Drools Team for the product (besides world domination 😉 ) is to enable it as a research platform. We believe that there is still a lot to be researched and much knowledge to be created in the field, and providing a flexible and customizable engine to the community may both speed up the achievements of the researcher’s goals as well as bring interesting new features for the product. Features that can also be further explored in new researches.
One of the researchers currently working with the Drools platform is Matthias Groch, a German student from Dresden University of Technology, under the supervision of Ph.D candidate Karen Walzer.
Matthias was kind to answer a few questions about him and the work he is doing at the moment and I think you all may find it an interesting read.
- Matthias, can you tell us a bit about yourself?
I’m 27 years old and study Computer Science at Dresden University of Technology in Germany (since October 2001). At the moment I’m writing my diploma thesis (i.e. the final project) about extending the Rete algorithm temporally and thus to support CEP. Besides university, I gained some practical experience in software modelling and development by working as student assistant at the Chair of Modelling and Simulation (projects for the printing machine manufacturer KBA and Airbus) and in external internships (IBM Germany, Integranova Spain). In 2004, I attended a semester abroad at Swinburne University of Technology in Melbourne, Australia, and from September 2006 to March 2007 I worked as intern at Integranova in Madrid, Spain. That’s my last years in short.
- What is your Thesis about? Why did you chose this subject? In what manner do you think it helps innovate the field?
At present, complex event processing (CEP) resounds throughout the land. Particularly in the manufacturing domain – partly due to the introduction of RFID technology in the last years – CEP is on the rise. A real-world manufacturing scenario, where all kinds of events have to be processed, was the trigger for my thesis. Together with Karen, who is my supervisor, we want to extend the Rete algorithm (which originally was developed only for static facts) in such a way that processing of “event facts” becomes feasible. This includes application of logical operators and time windows, which originates from the field of data stream management systems. In a second step, we intend to examine whether favourable characteristics from the original algorithm such as almost linear scalability can be preserved.
Originally, the plan was to extend rule-based systems based on the Rete algorithm for CEP. In the course of that, the theoretical foundations were supposed to be applied to an open-source rule-based system. Finally, the enhanced system was ought to be compared with existing CEP engines such as Coral8, StreamBase or Esper. Since this is a pretty comprehensive task and many issues need to be taken into consideration, the scope has been reduced and my thesis will “only” deal with (sliding) windows over incoming events.
So in the end, we will hopefully have found to which degree Rete is suitable for CEP and what adaptations have to be made. Moreover, I will have contributed to a rule engine which processes rules AND is able to do CEP – which would be quite innovative already ;). A long-term goal would be to beat – or at least compete with – established CEP systems.
- What got you interested in Drools?
To be honest, up to the point when I began working on my thesis (which was in August), I’ve never heard of rule-based systems, not to mention Drools. Then, after having become familiar with rule-based systems in general, the search for a mature rule engine so that we could put our ideas into practice. Soon it was clear that we would use Drools; besides being open-source, it had the best documentation available (including lots of examples) plus comprehensive first-hand help. First of all, there’s the great mailing list with precise feedback (within hours) from the core developers and the community. Moreover; there’s the Drools blog which keeps interested people up-to-date about recent developments as well as plans and visions for the future; I soon became a big fan of it. Last but not least I appreciate the possibility to directly get in touch with the core developers in the Drools chat and thus get immediate response to my questions. All these features convinced me to pick Drools and facilitated the access to rule-based systems in general and Drools in particular.
- You already contributed to the Drools project. What have you done so far?
It’s not that much so far. Nevertheless, I try to support Edson with his ambitious plans to integrate CEP in Drools. I illustrated that for correlating complex events, point-based semantics are not expressive enough; with them, only three relations (after, before, equals) between two events can be defined. Instead, interval-based semantics (introduced by Allen) allow for events with a duration greater than zero; the number of possible relations increases to thirteen. After Edson had introduced a pluggable operator interface to Drools, I defined and implemented all the thirteen relations. Moreover, in order to test the implemented operators and to add support events with non-zero duration, I added an overloaded insertion method for (event) facts; in addition to the usual insert(), it is now possible to specify a duration as parameter. At the moment I’m doing some research on how to evaluate sliding windows efficiently. As a result of that, a corresponding implementation for Drools will follow.
- What are your plans for after your Graduation?
I intend to be done with my thesis by April. Then, I would like to start working as software engineer. I would like to continue working in the field of rule-based systems. Since the two semesters abroad in Australia and Spain, respectively, have been such great experiences, I fancy working in a foreign country. Anyway, as long as it is an interesting project, I’m open to anything.
Matthias, thank you for your time and our wishes of a resounding success in your thesis.