Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

VIATRA/CEP/Language

< VIATRA‎ | CEP
Revision as of 07:43, 22 July 2014 by Davidi.inf.mit.bme.hu (Talk | contribs) (An event processing example)

VIATRA-CEP User Documentation

VIATRA-CEP supports two main aspects of the typical event processing workflow:

  • modeling atomic and complex event patterns;
  • detecting the modeled patterns on streams of events by its own event processing stack.

One of the great features of VIATRA-CEP is the tight integration with EMF-IncQuery, an incremental query engine for EMF models, which enables defining event patterns essentially describing elementary or compound changes in EMF models.


An event processing example

The Problem

A server-side cluster consists of two servers: the Primary (P) and the Backup(B). The cluster works in a failover fashion, that is, it is the Primary server by default providing the service, but in any case of potential failure (e.g. memory overload, CPU overload, etc), the service is switched to the Backup server.

A monitoring framework is employed to detect the following threats in the cluster:

  • there is a problem with the Primary server (CPU load is above 0.9);
  • there is a problem with the Backup server (CPU load is above 0.9).

The framework sends notifications if any of the above problems arises. Notifications are also generated if the threat is over.

In case both servers experience problems, the administrator should be alerted. In case of a failover action (i.e. switching from the Primary server to the Backup), this event should be logged.

Our task is to model the events generated by the monitoring framework and thus detect threads using the VIATRA-CEP complex event processing engine.

Step 1: Defining event patterns

Step 2: Defining rules for executable actions

Step 3: Execution

Adding EMF models into the mix

//TODO modify the above example appropriately

Step 1: Defining the model

Step 2: Defining EMF-IncQuery patterns

Step 3: Reusing EMF-IncQuery patterns in VEPL

Step 3: Execution

Back to the top