Event stream processing
Event stream processing, or ESP, is a set of technologies designed to assist the construction of event-driven information systems. ESP technologies include event visualization, event databases, event-driven middleware, and event processing languages, or complex event processing (CEP). In practice, the terms ESP and CEP are often used interchangeably. ESP deals with the task of processing streams of event data with the goal of identifying the meaningful pattern within those streams, employing techniques such as detection of relationships between multiple events, event correlation, event hierarchies, and other aspects such as causality, membership and timing.
ESP enables many different applications such as algorithmic trading in financial services, radio-frequency identification (RFID) event processing applications, fraud detection, process monitoring, and location-based services in telecommunications.
By way of illustration, the following code fragments demonstrate detection of patterns within event streams. The first is an example of processing a data stream using a continuous SQL query (a query that executes forever processing arriving data based on timestamps and window duration). This code fragment illustrates a JOIN of two data streams, one for stock orders, and one for the resulting stock trades. The query outputs a stream of all Orders matched by a Trade within one second of the Order being placed. The output stream is sorted by timestamp, in this case, the timestamp from the Orders stream.
SELECT DataStream Orders.TimeStamp, Orders.orderId, Orders.ticker, Orders.amount, Trade.amount FROM Orders JOIN Trades OVER (RANGE INTERVAL '1' SECOND FOLLOWING) ON Orders.orderId = Trades.orderId;
Another sample code fragment detects weddings among a flow of external "events" such as church bells ringing, the appearance of a man in a tuxedo or morning suit, a woman in a flowing white gown and rice flying through the air. A "complex" or "composite" event is what one infers from the individual simple events: a wedding is happening.
WHEN Person.Gender EQUALS "man" AND Person.Clothes EQUALS "tuxedo" FOLLOWED-BY Person.Clothes EQUALS "gown" AND (Church_Bell OR Rice_Flying) WITHIN 2 hours ACTION Wedding
- Complex event processing (CEP) - A related technology for building and managing event-driven information systems.
- Data Stream Management System (DSMS) - A type of software system for managing and querying data streams
- openPDC A complete set of applications for processing streaming time-series data in real-time.
- Real-time computing - ESP systems are typically real-time systems
- RFID - Radio-frequency identification, or RFID, recommends application of ESP to prevent from data flooding
- SCADA - Supervisory control and data acquisition, a similar technology used in engineering applications
- Apache Flink - An open-source stream processing framework for distributed, scalable data streaming applications
- WSO2 Stream Processor - An open-source Steaming SQL based stream processing framework for distributed, scalable data streaming applications
- MIT/Brown/Brandeis "Aurora" Stream Processing Project
- "PIPES" Project at University of Marburg
- The Power of Events by David Luckham (ISBN 0-201-72789-7), from Stanford University, a book on CEP.
- Separating the Wheat from the Chaff Article about CEP as applied to RFID, appeared in RFID Journal
- Complex Event Processing & Real Time Intelligence - A source of industry neutral information on applications, research, usecases, reference architectures, and developments in event processing, run by Prof David Luckham
- Odysseus - An open source framework for event processing engines based on Java