Event processing makes dramatic improvements in business processes and IT systems possible. It has a direct, tangible impact on the lives of businesspeople. Event processing changes the way they do their jobs by giving them better visibility into what is happening in their company and its external environment. It also improves a company’s reaction time to unforeseeable situations, reduces the end-to-end elapsed time of business processes, and improves the quality and availability of information.
When you can see what is going on in your sales operations, customer contact center, supply chain, or service network in near real time through a dashboard on your web browser, you are using event processing. When an insurance company condenses a 25-day process for paying a claim down to 9 days, it is using event processing. When an application system can be adapted in days rather than weeks to support a new set of requirements, it is likely using event processing as well.
Event processing is an increasingly important part of enterprise service-oriented architecture (SOA) and business process management (BPM) strategies. Event processing is synergistic with SOA and BPM, making them more effective and better able to respond quickly to escalating business requirements.
An event is just what you think it is—anything that happens. We react to events every day, and we’re always learning better ways to handle them. Events are all around us and have always been all around us, like the air we breathe and the winds that we exploit to fill our sails and create windmill power. For many centuries, people used sails and windmills without understanding the Bernoulli principle or much else about the scientific properties of airflow. However, thanks to advances in the fields of aerodynamics, engine design, and material science, we now use the power of air currents to fly airplanes, helicopters, and spaceships. Even our windmills are more powerful and efficient because they use specially shaped impeller blades instead of using simple sails or blades mounted on wheels as in early designs.
In a similar way, companies that deal with millions of events in their daily operations can learn better ways to use events to their benefit. Analysts have an intuitive understanding of how to design business processes that are triggered by events. However, they could accomplish much more if they understood better how events actually work and used modern design patterns and software tools to harness the power of events.
We need to distinguish between the general concept of responding to real-world events, which is practiced more or less continuously by every company and person, and the design discipline known as event processing, which encompasses the principles, reference architectures, design patterns, and best practices that are the subject of this book. Many business analysts, managers, and application architects have only an informal and limited knowledge of this subject. Event processing is not included in many business and computer science courses and textbooks, and when it is, it is treated as a side issue rather than a focus. Most people are more familiar with the characteristics of systems that are not event based, such as time-driven and request-driven systems, because those design styles are more commonly used in business applications (although the terms time-driven and request-driven aren’t explicitly recognized in many cases).
In some crucial ways, event processing changes the rules of the game. Event-driven design differs from conventional design in a way that can be compared to the difference between left-brain and right-brain thinking.
If event processing is such a great idea, why hasn’t everyone been doing it all along? Event processing is underutilized partly because relatively little data on current business events has been available in digital form until recently. In the past, many events either were undetected or were detected but not reported in a digital form that could be sent over a network or manipulated by a computer. Now, more events are detected and represented electronically, although, unfortunately, many are still not readily accessible to the people, devices, or IT systems that could benefit from them.
The amount of available event data is rapidly expanding because of the decreasing costs and increasing speed of computers and networks, and the unifying power of the World Wide Web and its communication standards. We are blessed with an explosion of event “streams” flowing over corporate networks—data from websites, enterprise application systems, e-mail systems, cell phones, RFID readers, GPS systems, and a variety of other sensors and devices. This wealth of event data will grow as the cost of the relevant technologies continues to drop and companies create new sources of event data in their operations and the outside environment. Our challenge is to make better use of this data.
The other reason that formal event processing has been used sparingly until now is that competition and customer demands were less urgent in the past. Companies had more time to respond to events than they have today. A person driving 30 miles per hour doesn’t need as much advance warning of upcoming curves or obstructions on the road as a person driving 60 miles per hour. Companies today are operating at a faster pace, so early notification of emerging business threats and opportunities is increasingly important. Companies that know how to leverage event processing have an advantage over those that don’t.
The goal of this book is to make the knowledge of the event-processing design discipline more widely available. If you understand how event processing really works, you can design business processes and IT systems that will offer your company better timeliness, agility, and information availability.
The book is aimed at a broad audience, including business analysts, IT architects, CIOs, application managers, project leaders, process modelers, and technology-aware businesspeople outside of the IT department. It bridges the gap between the business literature, which describes the aspirations of agile companies, and the technical literature, which explains how to write event-driven programs. The book does not expound on the value of situation awareness, rapid response, accelerated business processes, or expanding the event horizon to see further into the future, because it assumes that you either already know about these concepts or can find an explanation elsewhere (Appendix A provides a reference to some of the better resources on those topics). This book focuses on how to achieve these, not why you’d want to.
The first three chapters of the book introduce the basic concepts and terminology so that you understand the gist of event processing. Chapters 4 and 5 explain the kinds of business problems that event processing addresses and give more examples of realworld applications. Chapters 6 and 7 explore logical design and architectural issues. (This book neither assumes that you have knowledge of a programming language nor delves into how to write code, but it does explain how things work. Wherever we need to dive into technical details, we’ll give you the bottom line in plain language.) Chapters 8 through 11 address best practices, organizational issues, industry standards, and a bit about the software technology. We don’t evaluate commercial software products because they change too frequently, but we identify the kinds of software that are relevant. Finally, Chapter 12 concludes the book with a look at current and future impact of this discipline. Appendix B includes a glossary of terms to help you navigate through this subject.
Event processing is one of the most interesting aspects of modern technology. It will bring fundamental—and favorable—shifts in the nature of business and the practice of IT.
3.147.81.186