Evaluating composite events using shared trees

Distributed and concurrent systems tend to generate large numbers of events which require further processing, such as filtering and establishment of co-relations, to become useful for human or automated managers. The work focuses on the detection of composite events defined through event expressions involving primitive events and some operators: Boolean conjunction and disjunction; sequence, repetition, and absolute, periodic and relative timer events. A concrete result of this work was the design and implementation of a general purpose event processing service (EPS) which may be used by monitoring applications to be informed about the occurrence of primitive and composite events. Composite events are commonly represented as trees where the leaf nodes represent primitive event types and the intermediate nodes represent any of the supported event operators. The main contribution of this work is the description of a method to process composite events that share common sub-expressions with other composite events. The EPS was implemented in Java within the framework of the Sampa project.