What does Enterprise in an ESB mean?

Many vendors now have an ESB product and there are many open source
products. But what does Enterprise mean in context of an ESB?

I’ve had many discussions with people recently about ESBs and there appears to be a great difference in interpretation of exactly what an ESB is. Literaly it means Enterprise Services Bus. They are some interesting words.

According to wikipedia, an ESB is described as “In computing, an enterprise service bus (ESB) refers to a software architecture construct, implemented by technologies found in a category of middleware infrastructure products usually based on standards, that provides foundational services for more complex architectures via an event-driven and standards-based messaging engine (the bus).”

This definition inherently infers that it is based on messaging infrastructure. True to that a number of ESB products have emerged from the vendors that previosuly were leaders in this space such as IBM, with WebSphere MQ, Progess with SonicMQ. The Open Source ESBs seem to have had a similiar evolution, such as JBoss ESB, with JBossMQ and Mule with ??? (not sure what its evolultion has been).

Ok, if you want to be seen as a player in the SOA (Service Oriented Architecture) space you must have an ESB component. It is a component that can be used but is not necesarilly essential to succesfully implement a SOA style project.

An ESB is a standards base mechanism to achieve loose coupling between service invocation and service fullfilment. With the additional benefit of transformation and routing of messages and protocols. Putting it simple, a client should be able to call a service, regardless of the protocol, without the need to know how the service is being fullfilled.

It would seem that the term Enterprise infers usage in side the constraints of a single Enterprise. But where do the boundaries of an Enterprise end?

An application written that invokes a service on an ESB, does not concern itself where the service that is actually doing the work resides. So in theory, that service may be being fullfilled from any service that is accessible through the network(s) that the application has access to. The implications of this for SaaS is interesting (discussion for another blog entry) .

With the trend towards buying complete stacks from ESB vendors, such as Oracle SOA Suite, and to some degree with the different capabilities available and needed by projects, most organisations would appear to look to deploy an ESB for the application system currently being implemented.

This would mean that whilst the intentions would be to have one ESB for an organisation, which by the way the name Enterprise also infers (clever product marketting), I believe it will be one ESB per major application system. Every major application system, will have teams with different experience and skill sets.

Thus one could argue then that the name ESB is incorrect. The term System Services Bus may have been better.


2 thoughts on “What does Enterprise in an ESB mean?

  1. That conclusion implies that you think a vendor stack model is to be preferred. In theory of course, any application that can use an ESB should be able to use anybody’s ESB, not just their own. Practice may be a little different – ESB/SOA from application stack vendors is always going to favour their own application, which is a contradiction of the entire SOA concept.
    My preferred model would be for a single, enterprise-wide ESB as a foundational element in a service-based architecture, which is more likely to come from a specialist vendor (rather than a vendor who has just bought an ESB and is looking for a problem to solve with it!)

  2. From my experience, ESBs are optimal solutions for real time systems. And by real-time, I mean hard real time, things like automobiles and aircraft control systems.
    Robotic systems could benefit greatly from embedded ESB software, specially when implemented in dynamic and high performing languages like Ruby, haskel or erlang.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s