DiCEPE is a distributed complex event processing engine that allows propagating events across multiple CEP engines running in separate JVMs connected through bindings like REST and JMS. It supports reconfiguring CEP engines at runtime through CRUD operations on EPL statements, listeners, and remote bindings. DiCEPE also provides an open interface for integrating different CEP engines like Esper and is exploring adding support for standards like WS-Notification and encoding events as RDF triples.
2. Use case: The Museum
Architecture
Configuration: 4 zones 3 guardians 3 visitors
Alert: Whenever a visitor enters a zone not covered
by a guardian
Objective
Propagating events across several CEP engines
Running on separated JVMs
Connected through SCA bindings (JMS, REST…)
DiCEPE: Distributed Complex Event Processing Engine
6. DiCEPE: Supported Bindings
REST (HTTP)
Events pushed into CEP via HTTP POST
Support for multiple representations: XML, JSON…
WADL interface description available
Based on existing SCA binding: <binding.rest uri=“…“/>
Implemented with CXF communication stack
JMS
Events pushed into JMS channels
CEP engine subscribe to and publish into the channels
Based on existing SCA binding: <binding.jms jndiURL=“…“/>
Implemented with JORAM middleware
DiCEPE: Distributed Complex Event Processing Engine
7. DiCEPE: Dynamic Reconfiguration
Support for reconfiguring CEP engines
Dynamic reconfiguration at runtime
Manageable from FraSCAti Explorer
CRUD reconfigurations currently supported
EPL statements
Statement listeners
Remote bindings
DiCEPE: Distributed Complex Event Processing Engine
8. DiCEPE open support for CEP Engines
A simple «push» interface
public interface Notification<T> {
void notify(T event);
}
Associated to an SCA constraining type
<constrainingType name=“cep-engine”>
<service name=“notification”>
<interface.java interface=“soceda.cep.Notification”/>
</service>
<!-- … -->
</constrainingtype>
One component implementation by CEP library
Esper (EPL) available
Etalis (Prolog) under tests
DiCEPE: Distributed Complex Event Processing Engine
10. Perspectives
Including support for the WS-Notification standard
REST and JMS protocols are already supported
Using <sca:binding.ws uri=“…”/>
Including more semantics into events
POJO and XML documents are already
supported
Reflecting events as RDF triples