Event processing is an emerging area. The term event processing refers to an approach to software systems that is based on the idea of events, and that includes specific logic to filter, transform, or detect patterns in events as they occur. Recent years have seen the appearance of various commercial products and open source offerings that serve as generic event processing software platforms. According to some studies, this is the fastest growing segment of enterprise middleware software. Although interest in this subject is growing, gaining a deep understanding of event processing is still a challenge. As it is a relatively new area, it is not surprising that several different approaches to event processing have been evolving in parallel. This means that when trying to understand what event processing is, it can be difficult to see the forest for the trees. Our intention in writing this book was is to dive deeply into the meaning of event processing (the forest) and to give you an opportunity to experience event processing by using some of its languages and tools (the trees).
This is a book intended for those interested in understanding what’s behind event processing technologies and how they should be employed to design and implement applications. This book is the first comprehensive view of event processing for the technical reader. It treats event processing as a generic technology, in a way that fits all the different implementation approaches, and thus familiarizes you with the entire forest, and not just one particular tree. The book provides a deep dive into all the concepts that need to be understood in order to design event processing applications, and guides you through these concepts by showing the construction of a single example application that uses event processing—the Fast Flower Delivery application.
If you are interested, you also have the unique opportunity of learning how to implement this example using representatives of today’s programming styles: SQL extensions, rule-based languages, and imperative languages. These languages may have either textual or graphical user interfaces, or a mix of the two. The website that accompanies the book provides examples based on the Fast Flower Delivery application, with instructions on how to download trial versions of various commercial and open source event processing products. This allows the reader to see the concepts applied in action, to play with the code, and to devise further examples. The book also discusses implementation issues and the authors’ opinion about event processing of the future.
The book is intended for those who want to gain understanding about event processing concepts in depth; its primary audience is technical, consisting of architects, designers, developers, and students. The book will benefit designers and architects who wish to know how to design applications that use event processing, and developers who would like to understand the relationship of these concepts to current event processing languages and products. It can also serve as a textbook for an academic or professional course on event processing, and for this reason each chapter includes an additional reading list along with a few exercises.
In this book we have taken a top-down approach by describing the concepts (the forest), and then providing the reader an opportunity to view the trees (representatives of the different approaches) and experiment with them through the associated website. This is different from the bottom-up approach of describing a single language or product. We have used this method because there are several different ways to implement event processing applications, and it’s not easy to transfer thinking from one to another. We use a general model that consists of seven building blocks, which we believe is an effective way to explain the concepts and facilities of event processing. We feel that there are advantages in using this level of abstraction when designing and developing applications.
To illustrate these concepts we use a single example which we follow throughout the course of the book. This example, based on flower delivery, can be understood with no prior domain knowledge, but nevertheless contains many of the concepts that we discuss in the book.
Terminology varies among different event processing products, so in this book we have tried to define all the terms and concepts that we use, and we provide a summary of these definitions in appendix A. Our definitions are written in an explanatory style rather than in a formal style, to make them accessible to a broad audience. Where possible we use definitions that are consistent with the terminology established by the Event Processing Technical Society (EPTS); however our scope of terms is broader.
The book has three parts. The first consists of chapter 1 and chapter 2 and is an introduction to the subject and to the terms and concepts that we use. If you are already familiar with event processing, you can browse through part 1, noting the definitions we use.
Part 2 delves into the concepts in detail, showing how the seven building blocks can be used to describe an event processing application, illustrating them in the context of the Fast Flower Delivery example:
Part 3 deals with additional issues that relate to the implementation of event processing applications:
Some topics mentioned in the book are not thoroughly discussed, because they fall outside the scope of the book and they are the subject of books in their own right.
Business topics, such as a review of the types of event processing applications being used and analysis of current event processing products, are beyond the scope of the book. Chapter 1 contains an additional reading list for those of you who want to explore business topics further. We provide event processing application examples in chapter 1, but these are intended to motivate the use of event processing rather than to give a detailed survey of applications.
Many technologies and architectural concepts are related to event processing, starting from service-oriented architecture (SOA), and including Enterprise Integration Patterns (EIP), and other disciplines such as business process management (BPM), business intelligence (BI), and Business Activity Monitoring (BAM). In chapter 1 we briefly survey the relationship of event processing to each of these areas and provide an additional reading list.
All source code in listings or in text is in a fixed-width font like this to separate it from ordinary text. Code annotations accompany many of the listings, highlighting important concepts. In some cases, numbered bullets link to explanations that follow the listing.
Source code for all working examples in this book is available for download from the publisher’s website at http://www.manning.com/EventProcessinginAction.
This book’s website is hosted by the Event Processing Technical Society and can be found at http://www.ep-ts.com/EventProcessingInAction.
The website contains implementations of the Fast Flower Delivery example that accompanies this book in several different event processing languages representing different programming styles. Some code samples from these solutions are embedded inside the book, but if you wish to learn a specific language you should download the documentation from the appropriate link on the website. There is also a link to an editor that will let you create a model of the Fast Flower Delivery application using the building block language described in this book.
The purchase of Event Processing in Action includes free access to a private forum run by Manning Publications where you can make comments about the book, ask technical questions, and receive help from the authors and other users. To access and subscribe to the forum, point your browser to http://www.manning.com/EventProcessingin Action. This page provides information on how to get on the forum once you are registered, what kind of help is available, and the rules of conduct in the forum.
Manning’s commitment to our readers is to provide a venue where a meaningful dialogue between individual readers and between readers and the authors can take place. It’s not a commitment to any specific amount of participation on the part of the authors, whose contribution to the book’s forum remains voluntary (and unpaid). We suggest you try asking the authors some challenging questions, lest their interest stray!
The Author Online forum and the archives of previous discussions will be accessible from the publisher’s website as long as the book is in print.