ZDNet asks: What's an ESB? It seems to me the best definition is that it's a burgeoning new market for a lot of software companies. That always makes me a bit wary.
Wikipedia defines an ESB as:
an enterprise service bus refers to a software architecture construct, implemented by technologies found in a category of middleware infrastructure products usually based on Web services standards, that provides foundational services for more complex service-oriented architectures via an event-driven and XML-based messaging engine (the bus). An enterprise service bus generally provides an abstraction layer on top of an Enterprise Messaging System which allows integration architects to exploit the value of messaging without writing code. Contrary to the more classical EAI approach of a monolithic stack in a hub and spoke architecture, the foundation of an enterprise service bus is built of base functions broken up into their constituent parts, with distributed deployment where needed, working in harmony as necessary.
perhaps we should all contribute our thoughts in that forum.
Ron Ten-Hove offers the more succinct: " An Enterprise Service Bus (ESB) is a distributed middleware system for integrating enterprise IT assets using a service-oriented approach." It may be worth mentioning that Ron and others have been working on the Open ESB project.
Do I need one? I'm not sure. I've heard many say that with good planning of services, and a well thought out infrastructure, depending on your needs and circumstances, and ESB is not required, but that it could certainly make life easier.
A strategy I've heard is that it's wise to plan your services as if you don't have one, and are not going to have one... essentially treating the ESB as an addition or an afterthought, thereby encouraging robust and efficient service design. Sounds like sage advice. I've also heard that a good governance structure around SOA would be important before implementing an ESB.
Perhaps then it would be best to wait until things are a bit more mature before diving into the still undefined world of the ESB? It seems pretty clear that a good strategy would be to concern ourselves with the architecture first, and ESBs second.