Thursday, October 16, 2008

Complex Event Processing and Data Fusion - Esper demo

I have put together a live demo of a CEP track and trace application based on Esper Complex Event Processing (CEP).

The entire scenario has been designed and developed by Data Fusion Research Center AG, a Switzerland based company "that is quickly becoming a leading center of knowledge, research, and development in the field of geospatial data fusion and analysis". DFRC has chosen Esper for their CEP solution, and has kindly made preliminary results of their work available. I have rewrapped their application bits into a single Java WebStart package so that you can run it securely in a sandboxed environment without installing anything.

The Scenario

The scenario illustrates:
  • Edge computing, with raw events coming from radio sensors or ground based radars at the boundaries of a classical IT infrastructure
  • Complex Event Processing, an automated way for deriving coarse events out of real-time event streams, using advanced concepts such as time driven computations and causality concepts. A CEP solution typically comes with an abstracted programming model or event processing language so as to empowers the application developers with a continuous query paradigm.
  • Data Fusion, a "set of techniques that combine data from multiple sources and gather that information in order to achieve inferences, which will be more efficient and potentially more accurate than if they were achieved by means of a single source" (wikipedia). Data Fusion can sometime appear as a conceptual superset of CEP. In the DFRC application, the CEP algorithm can be tuned in several ways - which directly maps to the "potentially more accurate" goal of the Data Fusion approach.
  • Rich client application, to empower the business user and represent CEP / Data Fusion derived information in the most efficient way (in this case a satellite map with real time moving icons for identified aircrafts). CEP + BAM or CEP + BI - it all comes down to materializing real-time information out of the CEP / Data Fusion engine.
The Problem

Assume ground radars are pushing position events from disparate non-identified sources flying all around (friends or foo, UFO, noise, doesn't matter):
PointEvent {
latitude
longitude
}
For the example app, the events are simulated from a raw flat file:
46.5 7.2
47 7.2
46 7.2
46.5 7.2
47 7.2
46.3 7.2
...
The challenge is to identify all the flight paths in real time and eliminate noise, so as to figure out where are the aircrafts, what are their flight path, and determine if further investigation has to be performed by humans or downstream systems.
It is all about turning real-time raw event streams into situational awareness.
A flight path is a directed sequence of position events that is extremely likely to represent a real aircraft trajectory. It will be displayed on an interactive map, and specific tresholds of the data fusion detection algorithm can be tuned in the client side application.
Relying on CEP and Data Fusion concepts ensures we can scale to a large number of aircrafts, a high troughput of position events, and truely empowers the business users, turning a raw stream of latitute/longitude tuples into a rich system.



The Solution

The solution is implemented using Esper. Esper combines
  1. A full featured EPL - event processing language. It can be for simplicity considered as an SQL-look-alike language augmented with time and causality. Main point here: this is a continuous query paradigm, and not a repeatedly executed query, and there is no database.
  2. An efficient, feature rich CEP engine, implemented in Java (also available in .Net/C#). Refer to the docs, presentations and website for more details and usage scenarios.
  3. An open middleware platform with open APIs, leveraging existing standards, that can be integrated into an existing infrastructure.
The algorithm designed by DFRC can be summarized as below (from their case study). Key capabilities, such as reusing existing geodesic distance and azimuth delta computation libraries straight into the Esper EPL language are also key capabilities being leveraged.
"Basically the algorithm was written to correlate events that are close enough together in distance and direction during a specific time frame.
Those events are considered as a potential flight path. Once it correlates events, it builds a flight path between connected events.

The algorithm compares flight paths, if any two paths share start or end points, which would mean that we have a longer flight path containing 3 points.

It then checks any 3 point flight path measuring the azimuth difference from the 1st to 2nd and the 2nd to 3rd. If difference is less than a predetermined number of degrees we consider it an identified aircraft."

Demonstration and Conclusion

Run the live demo (Java WebStart)
Quick howto:
Accept the Java Web Start security dialog
The rich client application launches and display a satellite map
Click the Start Button
Blue dots on the map are the raw position events. Red lines are the flight paths identified out of the raw data. Green arrows are the identied aircrafts


Read more from DFRC AG case study
Read more about Esper

The demo is entirely databaseless and serverless and fits in just 3 MB binaries. The very same concepts implemented here with Esper can of course be pushed out to the real world, with entire control of the architecture, its scalability and integration with fully fledged sensors/server/client setup.
Congratulations to DFRC for putting it together.

2 comments:

senakafdo said...

Pretty Cool Stuff...

Regards,
Senaka

Jennifer Charny said...

Hi - I work for DFRC in Switzerland and would like to talk to you... maybe add your blog to our site... drop me a line
jennifer@dfrc.ch
thanks Jennifer