VIATRA Complex Event Processing framework (VIATRA-CEP)
Complex event processing (CEP) aims to predict high-level events likely to result from specific sets of low-level factors. CEP identifies and analyzes cause-and-effect relationships among events in real time, allowing personnel to proactively take effective actions in response to specific scenarios. [source]
CEP plays an important role in the model-driven engineering (MDE) as a supporting technique in various scenarios. The VIATRA project delivers a state-of-the-art event processing framework for the MDE scene, called VIATRA-CEP. The main features of the framework:
- A model-driven event processing engine. We not just designed the engine using model-driven techniques, but it actually employs an explicit runtime model to process events. The runtime model is captured via EMF and put into motion using the VIATRA-EMF model transformation framework and the EMF-IncQuery incremental graph pattern search engine.
- A textual domain-specific language for modeling event patterns and executable actions. The VIATRA Event Processing Language (VEPL) is based on our event algebra and relies on formal techniques like temporal logic and automaton theory. The user, however, is not expected to reason about event patterns on this level, thanks to the Xtext-based implementation of the DSL and the user-friendly editor the framework comes with.
- An integrated modeling environment. It comprises an editor for VEPL models (featuring syntax highlighting, on-the-fly validation, intelligent content-assist and automated generation of high-quality Java code); as well as wizards for enabling a more efficient workflow.
- Tight integration with the EMF-IncQuery engine. This enables processing change events in EMF models, facilitating MDE techniques like streaming model transformations and operation-based model representation and reasoning.
- Download the latest Eclipse Luna Modeling (currently SR1) package.
- Install the following plugins or import their source plug-ins into a running Eclipse instance: