Esper is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
-based software product for
Complex event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
(CEP) and
Event stream processing
In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views data streams, or sequences of events in time, as the central input and ...
(ESP), that analyzes series of events for deriving conclusions from them.
Esper extends the
SQL-92
SQL-92 was the third revision of the SQL database query language. Unlike SQL-89, it was a major revision of the standard. Aside from a few minor incompatibilities, the SQL-89 standard is forward-compatible with SQL-92.
The standard specificatio ...
standard for its engine and enterprise framework, providing
Aggregate function
In database management, an aggregate function or aggregation function is a function where the values of multiple rows are grouped together to form a single summary value.
Common aggregate functions include:
* Average (i.e., arithmetic mean)
* ...
,
Pattern matching
In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact: "either it will or will not be ...
, event windowing and joining. Esper implements
Event-driven programming
In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or message passing from other programs or th ...
and
event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
Overview
An ''event'' can be defined as "a significant change in state". For example, when a consume ...
.
Esper was created in 2006 by EsperTech Inc. It offers a
Domain-specific language for processing events called Event Processing Language (EPL). EPL is a
Declarative programming
In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow.
Many languages that a ...
language for analyzing time-based event data and detecting situations as they occur.
Esper is a Java-based application but has been ported to the
C# programming language and is available for the
.NET Framework
The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
under the name NEsper.
EsperTech Inc. provides Esper Enterprise Edition with enterprise-ability features.
Example
This example
illustrates a simple EPL query that outputs a row immediately when within a sliding window of 3 minutes the number of order events reaches 5 or more events.
select count(*) from OrderEvent#time(3 min) having count(*) >= 5
Related systems
Rapide (Stanford)*
StreamSQL: StreamSQL is a query language that extends SQL with the ability to process real-time data streams.
See also
*
Complex event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
(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
*
Event correlation
Event correlation is a technique for making sense of a large number of events and pinpointing the few events that are really important in that mass of information. This is accomplished by looking for and analyzing relationships between events.
Hi ...
*
Event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
Overview
An ''event'' can be defined as "a significant change in state". For example, when a consume ...
— (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events.
*
Event stream processing
In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views data streams, or sequences of events in time, as the central input and ...
— (ESP) is a related technology that focuses on processing streams of related data.
*
Operational intelligence
Operational intelligence (OI) is a category of real-time dynamic, business analytics that delivers visibility and insight into data, streaming events and business operations. OI solutions run queries against streaming data feeds and event data to ...
— Both CEP and ESP are technologies that underpin operational intelligence.
*
Pattern matching
In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact: "either it will or will not be ...
*
Real-time business intelligence Real-time business intelligence (RTBI) is a concept describing the process of delivering business intelligence (BI) or information about business operations as they occur. Real time means near to zero latency and access to information whenever it i ...
— Business Intelligence is the application of knowledge derived from CEP systems
*
Real-time computing
Real-time computing (RTC) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constra ...
— CEP systems are typically real-time systems
*
Real time enterprise Real-time enterprise (commonly abbreviated to RTE) is a concept in business systems design focused on ensuring organisational responsiveness that was popularised in the first decade of the 21st century. It is also referred to as on-demand enterprise ...
References
External links
Esper Official WebsiteEsperTech Inc.Research Papers referencing Esper, by Google Scholar* ''Analysis of Complex Event Processing with Esper'' by Eric Miller, a book on Esper and CEP.
* ''Event Processing in Action'' by Opher Etzion and Peter Niblett, Manning Publications (), a book that provides Esper examples
* ''Open Source SOA'' by Jeff Davis, Manning Publications (), a book that provides examples of Esper for monitoring web services
* ''OSWorkflow: A guide for Java developers and architects to integrating open-source Business Process Management'', by Diego Adrian Naya Lazo, PACKT ({{ISBN, 978-1847191526 ), a book with a chapter on Esper
Fraunhofer CEP Market Overview, by Fraunhofer, year 2010Forrester Wave for Complex Event Processing, by Forrester - Oct. '09Real-Time Stream Processing as Game Changer in a Big Data World with Hadoop and Data Warehouse, InfoQ - Sept. '14
Events (computing)
Java (programming language) software
Free business software