In the past month or so I had my first real exposure to an Enterprise Service Bus (ESB), and I decided to write down my experiences in order to get my thoughts lined up.
First of all we may ask ourselves what an ESB is. From what I could tell, it is a piece of software that is used to connect various systems that have been developed in isolation in such a way that they form a product that is greater than the sum of their parts. So, for example, it would be possible to connect an accounting system to a stock tracking system in such a way that new stock is automatically ordered when stock runs low.
Neither the stock tracking nor the accounting system needs to know about each other, they must just implement some commonly acknowledged standards that allows them to communicate with external systems.
This is what sets ESB based integration apart from normal systems integration. In normal systems integration, the systems integrating with each other must know each other and in most cases are designed for each other, or at least one system is designed for the other.