GSoC

Google Summer of Code

Unity Logo

Esper Ideas

Esper is a 100% Java component for CEP and ESP applications. Esper enables rapid development of applications that process large volumes of incoming messages or events. Esper filters and analyzes events in various ways, and responds to conditions of interest in real-time.

Esper works like a database system turned upside-down: first one supplies the queries, and then runs the data through. Esper tells you query results right away on a continuous basis, as soon as any data (events) or combination matches one of the queries and produces new results. So, for example, take q query like:

select zone, count(*) from RFIDEvent.win:time(1 min) group by zone;

The sample query above looks at a stream of radio frequency tag reading events and counts the number of RFID readings per zone for the last 1 minute of events. This can be useful in the RFID domain to monitor zones, for example. Or take one more example which picks more individual events out of an event 'cloud' via a pattern:

every first=RFIDEvent(zone = 1) \-> RFIDEvent(assetId=first.assetId and zone = 3) where timer:within(1 hour)

Now the "every" is an operator that indicates that a pattern looks at each RFID event and doesn't stop. The "->" indicates a followed-by relationship between events. The "where" is a condition that turns false after 1 hour. In total, the pattern looks at all RFID events that indicate that the RFID reading is in zone 1, and are followed by an event for the same asset id and now in zone 3, skipping zone 2! It's alerting of that condition as soon as it happens.

Interested in more? May we suggest the O'Reilly article on Esper: Event Stream Processing and Correlation

Home page: [http://esper.codehaus.org]

Title Esper tools: ESP/CEP code completion plugin
Keywords Java, event streams, ESP, CEP, Eclipse, grammar

Description 1/ Implement an Eclipse plugin to write ESP/CEP statements with code completion support following grammar keywords

2/ Incorporate event type awareness

3/ Bonus: develop new event-driven bean (EDB) annotations thru Java 5 APT and Eclipse 3.3 APT extensions
Mentor(s) Alexandre Vasseur (avasseur@codehaus.org)

Thomas Bernhardt (bernhardttom@codehaus.org)



This project idea is archived and has been completed in 2007:

Title Implement performance benchmarking kit and run it
Keywords Java, event streams, ESP, CEP, performance
Description Goal is to code a benchmarking application for Esper that will be used to showcase Esper performance and suggest optimization for the codebase

1/ Understand what Esper, ESP/CEP are about. Discuss with mentor a real world yet simple enough application for benchmark (f.e. in the field of algorithmic trading)

2/ Write the Esper application and statement, write the load injectors both local (in process) and remote (accross the wire)

3/ Write code to dump performance data (throuhput and latency on average and peak) and reports of runs so that it can be added in our continuous build and test process

4/ Run the kit with several JVM (Sun, JRockit, other) try various parameters of fine tuning, document the kit so that all users can use it for capacity planning

5/ Establish a base line by implementing a solution to the same problem without Esper - only with hand written code
Mentor(s) Alexandre Vasseur (avasseur@codehaus.org)

Thomas Bernhardt (bernhardttom@codehaus.org)

This project idea is archived and has been completed in 2007:

Title Make Esper a HA platform with Terracotta
Keywords Java, event streams, ESP, CEP, cluster, HA, AOP
Description 1/ Understand what Esper, ESP/CEP are about. Discuss with mentor the HA requirements (hot standby, n+1 cluster, long time windows for events streams)

2/ Write the required configuration for Terracotta and spot / adapt Esper code where necessary

2a/ distributed timer processing

2b/ replicated data structures

3/ Write code to test HA of some scenarios and ESP/CEP statement identified in 1/

4/ Establish a list of spotted limitations in Terracotta and Esper that are blocking for full HA support of the whole Esper ESP/CEP grammar
Mentor(s) Alexandre Vasseur (avasseur@codehaus.org)

Thomas Bernhardt (bernhardttom@codehaus.org)
© 2003-2008 Codehaus