Note: This content has been edited for better readability…
Hub/Spoke architecture uses a centralized broker (Hub) and adapters (Spoke) which connect applications to Hub. A Spoke connects to an application and converts application data format to a format which the Hub understands, and vice versa. A Hub, on the other hand, brokers all messages and takes care of content transformation/translation of the incoming message into a format the destination system understands and routes the message. Adapters take data from the source application and publish messages to the message broker, which, in turn, does transformation/translation/routing and passes messages to a subscribing adapter which sends it to destination application(s). Having a single Hub makes a system with this architecture easy to manage but scalability takes a hit. At some point, as the number of messages increases, scalability gets dependent on hardware. Having a bigger box to scale the application has never been an ideal solution. So to overcome this limitation, most vendors have incorporated the concept of a federated hub and spoke architecture in which multiple hubs can be present. Each hub would have local metadata and rules as well as global metadata. Changes to global rules and metadata are automatically propagated to other hubs. Federated hub spoke architecture alleviates scalability issue while central management of multiple hubs makes this architecture easy to manage and brings down support cost.
Bus architecture uses a central messaging backbone (bus) for message propagation. Applications would publish messages to the bus using adapters. These messages would flow to subscribing applications using the message bus. Subscribing applications have adapters which would take a message from the bus and transform the message into a format required for the application. A key difference between hub/spoke and bus topology is that for the bus architecture, the integration engine that performs message transformation and routing is distributed to the application adapters. The bus architecture requires an application adapter
to run on the same platform as the original applications. Since each adapter has an integration engine and runs on same platform on which source and target applications run, this scales much better and is relatively complex to maintain compared to hub/spoke topology.
Enterprise service bus is an infrastructure to facilitate SOA. It provides an API which can be used to develop services and makes services interact with each other reliably. Technically, the ESB is a messaging backbone which does protocol conversion, message format transformation, routing, accept and deliver messages from various services and application which are linked to the ESB. The current EAI landscape is seeing many vendors who offer enterprise service bus solutions and claim it to be a brand new concept. This brings a question on what exactly is the difference between ESB and the bus based implementations which have been there in market for quite a long time now. Actually there is not much difference between ESB and proprietary buses except for a few subtle ones. The main difference between ESB and proprietary bus implementation is cost, which is significantly lower for ESB. The reason for this cost difference is twofold: (1) proprietary bus offers lot of built in functionalities as a suit of product which need to be developed for ESB implementations based on business requirement, (2) most proprietary buses use some proprietary formats to enhance the performance which increases the cost. ESB on the other hand is usually standard based, so it is a tradeoff between performance and cost between proprietary bus and ESB. The main advantage of ESB is that it costs much less then hub/spoke or bus based product suits, and is standards based.
- Oracle: Enterprise Service Bus (soadevelopers.wordpress.com)
- IBM: Patterns: Integrating Enterprise Service Buses in a Service-Oriented Architecture (soadevelopers.wordpress.com)
- Defining ESB: Exactly What Is It? (soadevelopers.wordpress.com)
- IBM: Model and build ESB SOA frameworks (soadevelopers.wordpress.com)
- SOA World Magazein: ESB Integration Patterns (soadevelopers.wordpress.com)
- Fiorano Announces Platform 10: B2B Integration, SWIFT Connectivity to Augment ESB Stack (hispanicbusiness.com)
- Hub and Spoke [or] Zen and the Art of Message Broker Maintenance (eaipatterns.com)
- ESB Does Not Equal SOA; Learn the Real Equation (thetibcoblog.com)