SOA is a kind of architecture, an approach to building an integrated IT landscape. Enterprise service bus, like the definitions of “service” and “SOA” themselves, can mean different things depending on whom you talk to. But one clear distinction is that an ESB is generally considered a piece of infrastructure. You can’t buy SOA, but you can buy an ESB.
Some would argue that you needn’t buy an ESB either and you could instead implement basic routing patterns by following Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf (Addison-Wesley Professional). The only problem with this approach is that you could end up replicating a lot of already available features that could have gotten you up and running very quickly and losing the advantage of the product having been tested and optimized. In fact, the MuleSource open source ESB is an explicit implementation of the patterns recorded in Hohpe and Woolf’s book.
There are many architects who view ESB as a set of patterns, and not a product at all. This view is discussed in ESB As a Set of Patterns.
That having been said, let’s look at what really constitutes an ESB. The term ESB is derived from the idea of a hardware bus, which transfers messages from one subsystem to another, using the same set of wires to logically connect several hardware peripheral components such as PCI cards. We’re all familiar with the Universal Serial Bus, which allows us to connect a wide variety of hardware components to our PCs, and ...