Saturday, July 2, 2011

Preview of the DEBS 2011 tutorial on non functional properties of event processing

During the next few weeks I am planned to attend two conferences in the USA, DEBS'11 and AAAI'11, in both of them I am delivering tutorials (each with another colleague).    The DEBS tutorial is about non functional properties of event processing, and it is now in advanced phases of preparation.   
Non functional is a strange name, since typically name refer to positive aspects and not to negative aspects (starting with "non").    The slide below sows the agenda,  the two large topic we'll discuss are the "performance and scalability" and "usability".   The other topics are discussed more in brief.
I think that systematic treatment in these aspects are both interesting and important -- for example,  we found out that in the two major performance criteria - throughput and latency, different people mean different things and measure different things.  I'll dedicate some posts in this Blog on the insights we collected during preparation of this tutorial,  on these and other aspects.     After the DEBS conference I'll post the full tutorial slides on slideshare, as done in the past.

Monday, June 27, 2011

A course based on the EPIA book

I got a request today to share the slides that I am using for the event processing course at the Technion,  based on the EPIA book, in order to use it for an event processing academic course.    At this point I will share it in a controlled way for those who wish to use it to give a course,  if you are interested to give a course based on this book, please let me know and I'll give you access to the course's site. 

On backwards windows

Continuing the series of posts about temporal windows:
Like the clock going backwards in this picture, one type of window is a window that is opened backwards.  The idea is that when event occurs, open a window backwards, to start either in some time offset, or by an occurrence of a specified event.   This is another type of window that is supported by some models, and emulated by using queries to databases that store past events in most models.   

An example is that an event processing system detects, using some pattern detection, that a person is a suspect in money laundering,  but substantiate the suspect is done by looking for another pattern on past event history.   This is known as "reinforcement" pattern use.  

The main difference between forward and backwards windows, is that in regular forward windows, events are being kept in the internal state only if they are required by some EPA which lives within this window, thus the events that should be kept in the system's state are well defined.   
In the backwards window case, since the window is not open when the event occur, then it should still be kept, thus we need to know of all possible backwards windows that might access this event in order to determine if an event should be kept,  or just keep all possible events (which in the most flexible case, since it allow unrestricted addition of backwards windows,  but may not be practical, as we may not know that an event even exists until some EPA that consumes it within a backwards window is defined.

This posting concludes the series of postings on temporal windows - for now.