A Model For Distributed Event Processing
In my last post, Analytical Patterns for Complex Event Processing, I provided an overview of a few slides I presented in March of 2006 at first event processing symposium titled Processing Patterns for Predictive Business. In that same presentation (slide 15), I also introduced a generic high level architecture (HLA) for event processing in the illustration below:
The figure above is a application of historical work, more than a decade ago, in distributed blackboard architectures applied to complex event processing.
The genesis of the blackboard architectural concept was in the field of Artificial Intelligence (AI) to address issues of information sharing among multiple heterogeneous problem-solving agents. As the name suggests, the term “blackboard architecture” is a processing metaphor where intelligent agents collaborate around a blackboard to solve a complex problem.
Basically, the HLA consists of two key functional elements, (1) distributed data set (the “blackboard”) and “knowledge sources” (KS) that function as (self actuated or orchestrated) intelligent agents working together to solve complex problems.
When I was first introduced to Dr. David Luckham’s book, The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems, I immediately understood that distributed (complex) event processing, which included an event processing network (EPN) and collaborative distributed event processing agents (EPAs), follow the same generic architectual pattern as other distributed, collaborative problem-solving software architectures. This also made perfect sense to me considering Dr. Luckham’s strong background in AI at Stanford.
In a nutshell, in my mind, “CEP engines” should operate as intelligent agents collaborating to solve complex distributed computing problems. Professionally, I have much stronger interest in collaborative distributed agent-based network computing that stand-alone event processing.
An exciting complimentary technology for complex event processing is distributed object caching and grid computing, which I will discuss in more detail in a later post. Together, these architectures, analytics and technologies help paint a total picture of the future of event processing, at least in my mind.