Cover image for The power of events : an introduction to complex event processing in distributed enterprise systems
Title:
The power of events : an introduction to complex event processing in distributed enterprise systems
Personal Author:
Publication Information:
Boston, MA : Addison-Wesley Professional, 2002
Physical Description:
xix, 376 p. : ill. ; 24 cm.
ISBN:
9780201727890

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010185707 QA76.9.D5 L83 2002 Open Access Book Book
Searching...

On Order

Summary

Summary

Complex Events Processing technology allows users of a system to specify the information that is of interest to them at any given moment. This text shows how to use the technology to build enterprise IT applications with flexibility.


Author Notes

David Luckham is Professor Emeritus at Stanford University, where he directs the Program Analysis and Verification Project


Excerpts

Excerpts

Complex event processing (CEP) is a set of techniques and tools to help us understand and control event-driven information systems. And today, any kind of information system, from the Internet to a cell phone, is driven by events. What is a complex event ? It is an event that could only happen if lots of other events happened. For example, suppose you see a car you like at your favorite car dealership. That car is on the showroom floor only because a number of other events took place--events in the inventory control systems of the dealership and the manufacturer, shipping events, customs events at the port of entry, and so on. Of course, when you see exactly what you want in the showroom, you don't ask how or why. But if you don't see the model, make, or color you want and ask why not, you'll get an explanation about allocation quotas, backlogs at the factory, or some other factors that affect events in the causal history leading up to the event you wanted. This illustrates one of the ideas behind CEP. Events are related in various ways, by cause, by timing, and by membership. CEP applies to electronic information systems. It makes use of relationships between events to answer questions like, "Is our system providing the correct level of service to our customers," "Will our shipment arrive on time," and "Is someone trying to steal our information?" CEP adds a new dimension of event processing to what our event-driven information systems already do. Why is there a need for CEP? Let's look at the situation briefly. Today's information society is founded upon gathering and sharing information. All our organizations--commercial, government, and military--are dependent upon electronic information processing. Their foundational backbone is the kind of distributed computing system based on computer networks that is nowadays called the "information technology layer" (or IT layer) of the organization. The use of these systems has expanded rapidly over the past ten years to meet the increasing demands of automation, electronic commerce, and the Internet explosion. In vestment in technology has focused on making IT systems faster, capable of handling larger and larger amounts of information, and able to collaborate with one another. We now live in the world of the open enterprise, where commerce and information move across the boundaries of organizations and nations. Our society has become dependent upon IT systems. Less investment has been devoted to develop technology to solve the increasing problem of understanding what is happening in our IT systems. Whenever there is a crisis--a denial-of-service attack or a system failure--at first we don't understand what is going on or how to fix it, and then in the aftermath, we scramble for weeks to find out what caused it. We need to understand and control our critical information infrastructures better than that! A lot of the information in IT systems is never recognized. Messages--or events --pass silently back and forth across our information systems as unrelated pieces of communication. They are a source of great power, for when they are aggregated together, and correlated, and their relationships understood, they yield a wealth of information. A new technology is needed to harness the power of events in global information systems. This book is about such a technology. A few words about CEP--what it is, and where it applies. CEP consists of very simple techniques, a mix of old and new. Some of them are well known in other kinds of computer applications, such as rulebased systems in intelligent programs. Some of them are new techniques, such as tracking causal histories of events in large distributed computer systems. Or using patterns of events and event relationships, to recognize the presence of complex events that are signified by hundreds or thousands of simpler events in our IT systems. In CEP, new techniques are combined with well-known techniques in a unified framework. An example of the kind of electronic complex event we are talking about is the completion of a financial transaction involving a bundle of financial contracts. Several merchant banks and brokerage houses may participate in the transaction. They use a global trading network. The event itself, the completion of the transaction, might be the result of hundreds of electronic messages and entries into several different databases around the world over a span of two or three days. These events don't necessarily happen in a nice linear order, one after the other. Some of them might happen simultaneously and independently of others, mixed in with events from other transactions. We can apply CEP to the trading network to recognize not only when that complex event happens, but, more importantly, whether it is going to happen, or if it is getting off track and may not happen, and why. CEP applies to a very broad spectrum of challenges in information systems. A short list includes Business process automation utilizing the Internet and electronic marketplaces Computer systems to automate the scheduling and control of anything from fabrication lines to air traffic Network monitoring and performance prediction Detecting attempts to intrude into computer systems or attack them There is a fundamental reason for this broad applicability. It is simply because information systems are all driven by events. To be sure, each system, or application running on top of a system, depends upon different kinds of events. Network events are different from database events, which are different from financial trading events. But one of the major themes of CEP is that different kinds of events are related. CEP provides techniques for defining and utilizing relationships between events. CEP applies to any type of event that happens in a computer application or a network or an information system. In fact, one of its techniques lets you define your own events as patterns of the events in your computer system. CEP lets you see when your events happen. This is one way to understand what is going on in your system. That brings us to another point--flexibility. CEP allows users to specify the events that are of interest to them at any moment. Events of interest can be low-level network monitoring alerts or high-level enterprise management intelligence, depending upon the role and viewpoint of individual users. Different kinds of events can be specified and monitored simultaneously. And the specification of the events of interest, how they should be viewed and acted upon, can be changed on the fly, while the system is running. The users of CEP can be human, or they can be autonomous processes. The processes that manage our enterprises are becoming more complex. Linear workflow processes that epitomize document processing in commercial transactions are not capable of managing the open electronic enterprise. In the future, enterprise management processes will be designed to incorporate complex event processing in order to get the kind of events they need to operate. Now, a few words about the book itself and what the reader should expect. First, there are two parts to this book. Part I is for a broad audience of people with an interest in various aspects of the information society, such as electronic commerce, the Internet, B2B collaboration, or, generally, electronic information processing. Part I deals with two questions about CEP: what it is for--that is, the kinds of problems in the information society that CEP can be applied to; and what it is--a simplified view of CEP, the basic concepts and easy examples of applications. Part I includes Chapters 1 through 7.The first four chapters describe the problems and issues in IT systems that CEP applies to. The next three chapters describe basic concepts of CEP, such as what an "event" is, causal and timing relationships between events, patterns of events and event hierarchies, and how to apply them to solve the problems described earlier. Part II consists of Chapter 8 onward. It is intended for information systems specialists with some background in software. Part II presents how-to-build-it details and case studies of CEP applications. The goal of Part II is to describe what is needed to build applications of CEP that are capable of solving real-world problems. It includes first a detailed description of a complex event pattern language, reactive event pattern rules, and event pattern constraints. Second, Part II shows how to build solutions by using the event pattern rules and constraints to build event processing agents and architectures of communicating agents. Part II also includes case studies, as large and as detailed as we can fit in a chapter of a book. The final chapter of this book deals with the question of how to develop an infrastructure for CEP. We can look around the event-driven applications being developed in the commercial world today, utilizing the power of distributed computing, the Internet, and private networks. An almighty commercial struggle is brewing for market share in the world of eMarketplaces and electronic commerce. It is quite predictable, considering the trends in middleware, the Java world, the .NET world, the security world, and so on, that CEP will be developed as a competitive advantage. This chapter deals with leveraging these developments to build an infrastructure for CEP--now and quickly! A word about references. This area of Internet technology is changing so quickly that any attempt to give comprehensive references would be outdated in six months. Not only that, but any less than complete set of references would be unfair to some. I assume that any reader has access to the Internet and can search for current references to, for example, "middleware" or "application server." So I have tended to include only a few references, either general references to Web sites or citations to seminal research papers that are not easily found. At this time in our society, any technology that attempts to view and control IT systems may be seen by some as conflicting with issues concerning privacy. In fact, CEP may provide a foundation for resolving some possible conflicts. However, I cannot deal with this topic here, and I do not. Just a little history. CEP has grown out of a research project at Stanford on event-based simulation called the Rapide project. This research took place between 1990 and 2000.Out of Rapide came some early experiments in CEP applied to viewing small communicating systems built on commercial middleware, or applied to recognizing security threats in progress on the IT layer of a large university, where hackers love to play. These projects are documented on two Web sites: http://pavg.stanford.edu/rapide/ http://pavg.stanford.edu/cep/ 0201727897P04252002 Excerpted from The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems by David C. Luckham All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Table of Contents

Prefacep. xv
Acknowledgmentsp. xix
Part I A Simple Introduction to Complex Event Processingp. 1
1 The Global Information Society and the Need for New Technologyp. 3
1.1 Distributed Information Systems Everywherep. 4
1.2 The Global Communication Spaghetti Potp. 7
1.2.1 Event Causalityp. 10
1.3 Electronic Archeology: Layers upon Layersp. 10
1.3.1 A Layered Enterprise Systemp. 11
1.3.2 Vertical Causality: Tracking Events up and down the Layersp. 15
1.3.3 Event Aggregation: Making High-Level Sense out of Low-Level Eventsp. 16
1.4 The Gathering Storm of New Activities on the Webp. 17
1.5 Global Electronic Tradep. 18
1.6 Agile Systemsp. 21
1.7 Cyber Warfare and the Open Electronic Societyp. 23
1.8 Summary: Staying ahead of Chaosp. 26
2 Managing the Electronic Enterprise in the Global Event Cloudp. 27
2.1 How the Global Event Cloud Formsp. 28
2.1.1 The Open Enterprisep. 28
2.1.2 The Global Event Cloudp. 28
2.1.3 The Electronic Enterprisep. 29
2.2 Operating in the Global Event Cloudp. 30
2.3 Going Beyond Workflowp. 33
2.4 Parallel and Asynchronous Processesp. 35
2.5 On-the-Fly Process Evolutionp. 37
2.6 Exceptions Must Be First-Class Citizens in Process Designp. 39
2.7 Summary: Managing the Electronic Enterprisep. 41
3 Viewing the Electronic Enterprise--Keeping the Human in Controlp. 43
3.1 Today's Event Monitoring Is Too Primitivep. 44
3.1.1 System Monitoring Focuses on the Network Layerp. 44
3.1.2 Network-Level Monitoring Doesn't Even Solve Network Problemsp. 45
3.2 An Example of Causal Trackingp. 46
3.3 Information Gapsp. 49
3.3.1 Examples of Information Gapsp. 50
3.4 Problem-Relevant Informationp. 51
3.5 Viewing Enterprise Systemsp. 53
3.6 Creating and Coordinating Multiple Viewsp. 55
3.7 Hierarchical Viewingp. 56
3.7.1 An Example of Hierarchical Viewingp. 57
3.8 Summary: Viewing the Electronic Enterprisep. 59
4 Designing the Electronic Enterprisep. 61
4.1 Process Architecturesp. 62
4.2 Roles of Architecture in the Process Lifecyclep. 63
4.3 Constituents of Process Architecturesp. 67
4.3.1 Annotationsp. 67
4.3.2 Architectural Structurep. 68
4.3.3 Interface Communication Architecturesp. 68
4.3.4 Architecture Diagramsp. 70
4.3.5 Behavior Specificationp. 72
4.3.6 Design Constraintsp. 74
4.4 Examples of Informal Annotationsp. 74
4.5 Dynamic Process Architecturesp. 78
4.5.1 Diagrams for Dynamic Architectures?p. 81
4.6 Layered Architectures and Plug-and-Playp. 81
4.6.1 Abstraction Principlep. 83
4.7 Summary: Technology to Support Process Architecturep. 84
5 Events, Timing, and Causalityp. 87
5.1 What Events Arep. 88
5.2 How Events Are Createdp. 90
5.3 Time, Causality, and Aggregationp. 94
5.3.1 The Cause-Time Axiomp. 96
5.4 Genetic Parameters in Eventsp. 96
5.4.1 Timestampsp. 96
5.4.2 Causal Vectorsp. 97
5.5 Timep. 97
5.6 Causality and Posetsp. 100
5.7 Causal Event Executions--Real-Time Posetsp. 102
5.8 Orderly Observationp. 109
5.9 Observation and Uncertaintyp. 110
5.10 Summaryp. 111
6 Event Patterns, Rules, and Constraintsp. 113
6.1 Common Kinds of Pattern Searchingp. 113
6.2 Event Patternsp. 114
6.3 A Strawman Pattern Languagep. 116
6.3.1 Pattern Matchingp. 117
6.3.2 Writing Patterns in STRAW-EPLp. 117
6.4 Event Pattern Rulesp. 119
6.5 Constraintsp. 124
6.6 Summaryp. 126
7 Complex Events and Event Hierarchiesp. 127
7.1 Aggregation and Complex Eventsp. 127
7.2 Creating Complex Eventsp. 129
7.3 Event Abstraction Hierarchiesp. 131
7.3.1 Viewing a Fabrication Linep. 132
7.4 Building Personalized Concept Abstraction Hierarchiesp. 133
7.4.1 Viewing Network Activityp. 134
7.4.2 Viewing Stock-Trading Activityp. 138
7.5 Summaryp. 141
Part II Building Solutions with CEPp. 143
8 The Rapide Pattern Languagep. 145
8.1 Event Pattern Languages--Basic Requirementsp. 146
8.2 Features of Rapidep. 147
8.3 Typesp. 148
8.3.1 Predefined Typesp. 149
8.3.2 Structured Typesp. 150
8.3.3 Event Typesp. 151
8.3.4 Execution Typesp. 153
8.3.5 Subtyping of Executionsp. 155
8.4 Attributes of Eventsp. 155
8.5 Basic Event Patternsp. 157
8.6 Placeholders and Pattern Matchingp. 158
8.6.1 Matching Basic Event Patternsp. 159
8.6.2 Placeholder Bindingsp. 159
8.6.3 Notation to Aid in Writing Patternsp. 161
8.7 Relational Operators and Complex Patternsp. 163
8.7.1 Relational Operatorsp. 165
8.8 Guarded Patternsp. 167
8.8.1 Content-Based Pattern Matchingp. 167
8.8.2 Context-Based Pattern Matchingp. 168
8.8.3 Temporal Operatorsp. 169
8.9 Repetitive Patternsp. 169
8.10 Pattern Macrosp. 172
8.11 Summaryp. 174
9 CEP Rules and Agentsp. 175
9.1 Overviewp. 176
9.2 Event Pattern Rulesp. 177
9.2.1 Definition of Event Pattern Rulesp. 178
9.2.2 Rule Bodiesp. 178
9.2.3 Context and Visibility Lawsp. 179
9.2.4 Semantics of Event Pattern Rulesp. 180
9.2.5 Examples of Rulesp. 182
9.3 Event Processing Agentsp. 184
9.3.1 Definition of EPAsp. 184
9.3.2 Semantics of EPAsp. 185
9.4 Event Pattern Filtersp. 187
9.4.1 Definition of Filtersp. 187
9.4.2 Semantics of Filtersp. 188
9.4.3 Action Name Filtersp. 190
9.4.4 Content Filtersp. 191
9.4.5 Context Filtersp. 191
9.5 Event Pattern Mapsp. 192
9.5.1 Definition of Mapsp. 193
9.5.2 Semantics of Mapsp. 193
9.6 Event Pattern Constraintsp. 195
9.6.1 Definition of Constraintsp. 195
9.6.2 Semantics of Constraintsp. 195
9.6.3 Examples of Constraintsp. 199
9.7 Other Classes of EPAsp. 204
9.8 Summaryp. 205
10 Event Processing Networksp. 207
10.1 Common Structures of EPNsp. 208
10.1.1 Flexibility of Event Processing Networksp. 211
10.2 Connecting Event Processing Agentsp. 212
10.2.1 Basic Connectionsp. 212
10.2.2 Guarded Connectionsp. 214
10.2.3 Multiple Basic Connectionsp. 215
10.3 Dynamic Event Processing Networksp. 216
10.3.1 Class Connectionsp. 216
10.3.2 Creation and Termination Rulesp. 217
10.3.3 Connection Generatorsp. 218
10.4 Architectures and Event Processing Networksp. 221
10.4.1 Architecture Classesp. 222
10.4.2 Semantics of Architecture Classesp. 222
10.5 Examples of EPNs and Architecturesp. 224
10.6 Case Study: EPNs for Network Viewingp. 230
10.6.1 Visual Tools for Constructing EPNsp. 234
10.6.2 Securityp. 235
10.6.3 Scalabilityp. 235
10.7 Summaryp. 235
11 Causal Models and Causal Mapsp. 239
11.1 Causality between Events, Revisitedp. 240
11.2 Why We Need Causal Modelsp. 242
11.3 What Causal Models Arep. 243
11.4 Defining a Causal Model and a Causal Mapp. 244
11.5 Using Pattern Pairs to Specify Causal Modelsp. 246
11.5.1 Using Causal Rulesp. 247
11.5.2 Resolving Ambiguitiesp. 248
11.6 Causal Mapsp. 250
11.6.1 A Small Example of a Causal Mapp. 252
11.6.2 A Second Example of a Causal Mapp. 253
11.7 Developing Accurate Causal Modelsp. 258
11.8 Summaryp. 260
12 Case Study: Viewing Collaboration between Business Processesp. 261
12.1 A Collaborative Business Agreementp. 262
12.2 An Interface Communication Architecturep. 264
12.3 Causal Modelp. 265
12.4 Causal Mapp. 265
12.5 Examples of Causal Rulesp. 267
12.6 Examples of Constraintsp. 269
12.7 Analysis of Examples of Posetsp. 269
12.8 Constraint Checking Becomes Part of the Collaborationp. 274
13 Implementing Event Abstraction Hierarchiesp. 277
13.1 The Accessible Information Gapp. 278
13.2 Event Abstraction Hierarchies, Revisitedp. 280
13.2.1 Induced Causalityp. 282
13.2.2 Abstraction Effect on Constraintsp. 282
13.2.3 Modifiabilityp. 283
13.3 Bridging the Information Gapsp. 285
13.4 Steps to Apply a Hierarchy to a Target Systemp. 286
13.5 A Hierarchy for a Fabrication Processp. 287
13.5.1 Personal Viewsp. 288
13.5.2 Implementationp. 290
13.5.3 Diagnosticsp. 290
14 Case Study: Viewing a Financial Trading Systemp. 293
14.1 A Small Stock-Trading Systemp. 294
14.2 The Information Gap for STSp. 296
14.3 An Event Abstraction Hierarchy for STSp. 298
14.4 Building the Event Abstraction Hierarchyp. 299
14.4.1 Level 1p. 300
14.4.2 Level 2p. 301
14.4.3 Level 3p. 311
14.5 Implementing Hierarchical Viewing for STSp. 316
14.6 Three Steps toward Human Controlp. 319
14.6.1 Drill-Down Diagnosticsp. 320
14.6.2 Detecting Constraint Violationsp. 324
14.6.3 The Abstraction Effectp. 326
14.7 Summaryp. 327
15 Infrastructure for Complex Event Processingp. 329
15.1 Examples of Forms of Observed Eventsp. 330
15.2 Interfacing CEP Infrastructure to Target Systemsp. 335
15.3 CEP Adaptersp. 336
15.4 CEP Runtime Infrastructurep. 339
15.5 Infrastructure Interfaces and Componentsp. 340
15.5.1 Functionality of the Interfacep. 341
15.6 Off-the-Shelf Infrastructurep. 343
15.7 Event Pattern Languagesp. 346
15.8 Complex Event Pattern Matchersp. 348
15.8.1 Quest for Scalabilityp. 348
15.8.2 The Naive View of Pattern Matchersp. 348
15.8.3 What Pattern Matchers Really Dop. 348
15.8.4 Design Structurep. 349
15.9 Rules Managementp. 351
15.10 Analysis Toolsp. 353
15.11 Summaryp. 356
Bibliographyp. 357
Indexp. 359