As information systems have grown bigger, their complexity changed accordingly. Event-driven architectures have become widely used. Their basic concept is that the change in their components' state as well as the perception and processing of their result events are what set the engines in motion. Therefore, the observation and monitoring of these events can provide lots of meaningful information about the system.
The need arises to identify patterns of events in these systems in order to predict or foresee possible future events. However, the processing of these events are hindered by the difficulties of handling event streams of multiple system components simultaneously which often produce diverse events. The fact that events from different components could correlate with each other can further complicate the exploration of complex event patterns, since these cases require simultaneous monitoring of numerous event streams at the same time. Despite these difficulties, engines based on complex event processing (CEP) are widely used starting from algorithmic trading on stock markets through real-time monitoring of distributed infrastructures to safety of health care personnel or patients.
Nowadays, CEP engines are available on the market in large numbers, however, these systems approach the description and recognition of complex events differently. The aim of this thesis is the introduction, analysis and comparison of CEP engines, their way of approaching CEP as well as their performance. In order to achieve this goal, the thesis also introduces a language (CEDL - Complex Event Description Language), which is capable of describing complex events and generating CEP engine-specific source code. Furthermore, the thesis also presents a benchmarking tool (FINCoS) to measure and analyze performance metrics of CEP engines.