|
Comments
|
Features A Simple Approach to Complex Event Processing
Modern IT suggests a handful of practical applications for real-time event processing
By: Dmitry Paramzin
Jun. 16, 2010 10:45 AM
What is an event? Generally speaking, an event is an occurrence that brings about significant change in the state of an object from a certain point of view. For example, the "sunrise" is an event that is defined from the perspective of an earthling. Yet from the perspective of an alien, Earth's sunrise is not a sunrise at all, but merely a lonely planet's celestial rotation. On a simple scale, we can view the change of time as an event in itself. Consider a sun dial's interpretation of time. While a sun dial doesn't move, the forces of time act upon the object, thus causing an event. The former describes simple events, or a singular event defined from the perspective of its onlooker, whereas complex events are the product of an onlooker's interpretation of a series of events. The same event can be defined as either "complex" or "simple" depending on its context. For example, the Siberian spring can be distinguished as a simple event if one learns of it from a newspaper. The same event would be considered complex if taken from the perspective of a Siberian wolf that does not read newspapers, but acknowledges spring's arrival due to a number of sub-events, such as rising air temperatures, thawing snow, and leaves appearing on the trees. Event-Driven Systems Programmers have successfully applied this event-driven approach for many years to build artificial event-driven systems that provide scalability, reliability and adaptive behavior. Figure 1 provides a visual representation of how event-driven system (EDS) can be organized.
Figure 1: Simple EDS architecture First, the sensors detect occurrences of events, form an event stream, and then deliver that stream to the atomic events dispatcher. Next, the dispatcher feeds these events to the appropriate business activity.
Figure 2: Extended EDS Architecture The application of Figure 1 can be made more complex by adding an events preprocessing unit to recognize significant patterns of indivisible events coming from the sensors. Once a pattern is recognized, the new "complex" event will be delivered to the event dispatching logic as shown in Figure 1. As we can see, CEP may be seen to be a generalization of Simple Event Processing (SEP). Complex Task Solving Let's define "decision" as a specific outcome of the event processing cycle that turns into the basis for further business activity. This basis can be represented as the recommendation produced by the Event Processing Unit (see Figure 2). As such, the term "decision making" became generally associated with the concept of event processing. Continuing this generalization, we notice that a decision-making process should consider factual data. For example, a bartender recognizes a specific customer (event), considers historical preferences of the customer and/or the local inhabitants, and then makes a decision to offer a drink based on such information. Most important, a decision-making algorithm can use long-term memory to chronicle input events, along with its own decisions and feedback, then utilizes this data to produce improved outputs in the future.
Figure 3: SEQ Diagram: Full-fledged DDS architecture As we can see, decision-making is quite a complicated process; it considers a wide range of data and is not confined only to events per se. Event processing is a function that uses input data (not only events) to produce outputs (decisions that are the basis for future business activities). Generally speaking, the implementation of this function becomes the task for the artificial intelligence (AI). I don't intend to discuss AI theory since it's beyond the scope of this article. Nevertheless, let's consider the basic approaches. Neural Network Simulation Deduction Rules Implementation Overview All of the above mentioned languages are SQL-based. They represent event streams as the tables of relational databases that continuously update content. Another approach is provided by the imperative-based Apama's MonitorScript. For those who don't want to touch textual programming, the market also provides a number of visual tools such as Alery Streaming Platform [1] or StreamBase Studio. References Reader Feedback: Page 1 of 1
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week |
|||||||||||||||||||||||||||