Monday, February 05, 2007

Enterprise Nervous System

The Enterprise Nervous System (ENS) is an allegory to the human body. In the human body, there are two methods of reactions to various stimuli and situations: Conscience and sub-conscience. In this blog, I will attempt to bring together these thoughts and hopefully help make sense as to how events are the signals of the Enterprise Nervous System.
In conscience reactions, the brain determines a course of action based on its interpretation of the stimuli & situations and causes actions to occur directly. In sub-conscience reactions, the actions happen as part of conditioning or reflexes.
I would argue that systems that require a lot of human decisions have a higher conscience quotient which allows for thought before action, but reduces the responsiveness. Systems that are conditioned to respond in a certain way are more like sub-conscience reactions. They have the ability to quickly react to a situation without "thinking" about it.
As we have learned from Six Sigma techniques and process improvement efforts, there is value in conditioning responses. In particular, processes that are rote or have a preplanned responses should be developed using techniques that maximize this responsiveness. These would include using triggers for processes or business rules engines to make decisions. As they are reacting, they will execute services or "the muscle" of the Enterprise IT body.
However, not all responses can be or should be developed as automatic. In particular, innovations either by the company itself or its competitors can not necessarily be anticipated. These situations require the brain power of the Enterprise to work through how do/should we exploit or defend against the opportunity or threat that is reveled. This may require developing new muscles (services) or changing how the automatic reactions are occurring.
The goal should not be to automate everything for automation sake. The goal should be reduce the load placed on the conscience or thinking parts of the organization by creating conditioned responses to familiar or routine stimuli to free it to concentrate on non-routine and extraordinary situations.
Events are critical to this endeavor. Events carry the context and particulars of what has happened. When the event is something that we can in the sub-conscience sense, it is handled. If not, it should be escalated to the attention of the brain through a variety of tools. Business Activity Monitoring (BAM) and Complex Event Processing (CEP) are two of these mechanisms.
CEP allows events to be combined to infer other more complicated events. BAM allows trends and metrics to help determine when a situation changes. It is this change in the "State of the World" or significant event which typically need the attention of the Enterprise Conscience mind. It is important to note that these engines job is not to solve the problem, but rather to find the needles in the haystack that need attention.

Thursday, May 04, 2006

The Attributes of the Architecture

As promised, I hope to reduce some of the confusion of all of the names used in what I refer to as "the SOA Movement." Some of these terms are Event Driven Architecture (EDA), Service Oriented Architecture (SOA), Business Process Management (BPM), Business Activity Monitoring (BAM), Complex Event Processing (CEP) and many others.

First off, all of these things have different purposes. In the course of this blog, I will try to reduce the confusion. I hope that you will help me with comment and pepper me with questions.

Over time, you will see that my perspective of this subject tends to be a little different than what a lot of people are posting now. I believe that inherrently there is a new programming language being developed. A programming language where services are the commands, portals, business process management and integration suites are the logic or flow of the language. And the audience is not the computer science major, but rather the business major.

My philosophy of Service Oriented Abstraction is that our purpose is to allow us to:

Separate the Complexities of Business Processes or What we do

From the Complexities of Data Manipulation or Functionality or How we do it

From the Complexities of Data or Things we do it to