Sunday, January 6, 2008

On Enterprise Service Bus and Event Processing


This is one of the variations of Enterprise Service Bus (ESB) illustrations that I have taken from an article by one of my IBM colleagues. The topic of today is -- what are the relations between ESB and Event Processing ?
  • An event processing functionality that runs Event Processing Agents in various sources, requires a that will take care of the routing and execution in a distributed environment. There are three alternatives here:
  1. No native platform -- an engine that can run in multiple platforms (thus need to be integrated to each platform that it runs in by adapters etc...).
  2. Dedicated event processing platform -- the event processing part has a dedicated platform that provides the infrastructure for the event processing functions.
  3. Event Processing is built as part of an already existing platform.

All of these variations exist in the market today, and there are pros and cons for each of them, smaller vendors may prefer the first alternative as my friend Marco noted in his Blog.

When getting to the third alternative, if the environment is a SOA environment, then the ESB is a natural place in the SOA middleware to be the principle carrier of event processing functionality:

  • It provides messaging infrastructure and routing capabilities
  • It provides mediations like - validation, transformation and enrichment that can be reused for event processing (have a large intersection with the "mediated event processing" functions)
  • It supports distributed environment.

While the principle usage of ESB in SOA has been to mediate between consumer and producer of services, being a carrier for event processing is now considered as a step in the evolution of ESBs.

This does not say that ESB is the ONLY place in which event processing functionality can run, which brings to a discussion about the Event Processing Conceptual Model- which I'll deal in a subsequent posting.

The ESB gets into the picture in alternative

1 comment:

Suneth Ranasinghe said...

Enterprise Service Bus (ESB) is a software architecture for middle ware which provides fundamental services  for  more  complex  architectures.  It  is  a  software  architecture  model used  for  designing  and implementing the interaction and communication between mutually interacting software applications in service
oriented  architecture (SOA).  In  a  general  sense,  an ESB  can  be  thought  of  as  a  mechanism  that  manages access  to  applications  and  services (especially  legacy  versions)  to  present  a  single,  simple,  and  consistent interface  to  end­users  via  Web­  or  forms­based  client­side  front  ends. eBay uses the 100% Open Source WSO2 Enterprise Service Bus to process over 1 billion transactions per day (http://wso2.com/casestudies/ebay-uses-100-open-source-wso2-esb-to-process-more-than-1-billion-transactions-per-day/). Interesting presentation which is based on complex event processing with esper and WSO2 ESB could be found in http://blog.facilelogin.com/2008/07/complex-event-processing-with-esper-and.html.