Service Bus Patterns
The term “Service Bus”, or “Enterprise Service Bus” (ESB)
has been around for about a decade. As web services and Service Oriented
Architecture have become common place in applications the need for
standardization and “SOA Governance” has risen. There are a number of vendors
providing products with “ESB” or Service Bus functionality.
There are many ideas and opinions on what features “Service
Bus” should provide, the following three patters can be used to provide a high
level view of service bus architecture.
Enterprise
Service Bus
Wikipedia describes an Enterprise Service Bus (ESB) as
follows:
“An enterprise service bus (ESB) is a software architecture
model used for designing and implementing the interaction and communication
between mutually interacting software applications in Service Oriented
Architecture.”

The team gained wide recognition in 2004 after the
publication of the book “Enterprise Service Bus: Theory in Practice” by David
A. Chappell. The team ESB is typically used to refer to a system used within an
organization, or enterprise to manage and govern the use of services within
that organization. We typically think of the ESB integrating with SOAP based
web services, though this is not a requirement.
As there are a number of companies developing software that
is sold as an “ESB”, the definitions of the functionality provided by an ESB
can vary.
Message
Bus
The book “Enterprise Integration Patterns” includes a
description of the “Message Bus” pattern and describes it as follows:
“A Message Bus is a combination of a common data model, a
common command set, and a messaging infrastructure to allow different systems
to communicate through a shared set of interfaces.”

When we think of a service bus, we typically think of web
services, SOAP and request-response communication. The message bus pattern
shares many similarities with the service bus patterns, but differs in that the
way information is exchanged between systems. The message bus typically
transmits messages asynchronously, and may well use a durable store to provide
reliable delivery. Messages are not necessarily SOAP messages; they could be
test-based, binary or EDI documents.
Internet
Service Bus
In 2007 the first version of the Service Bus was released
under the name of “BizTalk Services”. An article written by Microsoft in The
Architecture Journal titled “The Internet Service Bus” provides a description
of the ISB pattern, and relates if to the BizTalk Services capabilities. The
article describes an Internet Service Bus as follows.
“The ISB links devices to each other, devices to local
servers, Web sites to Web sites, and ESBs to ESBs, and is itself an ESB. The
ISB is a platform for “do-it-yourself” composite applications and business
processes. The ISB is also an example of Software as a Service (SaaS).”
Whilst an ISB shares a lot of the functionality of an ESB,
the ISB is different in that is hosted by a third-party, and is offered as a
service and customers are billed for using that service.

The Architecture Journal article “The Internet Service Bus”
can be found here.