Introduction to the Microsoft ESB Guidance
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
This guidance explains the architecture and contents of the Microsoft Enterprise Service Bus (ESB) Guidance. It also demonstrates how you can use it in your enterprise applications to enable flexible and secure reuse of services and rapid orchestration of services into new end-to-end business processes.
What Is An Enterprise Service Bus?
The term Enterprise Service Bus (ESB) is widely used in the context of implementing an infrastructure for enabling a service-oriented architecture (SOA). However, real-world experience with the deployment of SOAs has shown that an ESB is only one of many building blocks that make up a comprehensive Service-Oriented Infrastructure (SOI). The term ESB has morphed in a number of different directions, and its definition depends on the interpretation of individual ESB and integration platform vendors and on the requirements of particular SOA initiatives.
Based on the experience Microsoft has gathered from many successful real-world SOI implementations, you can think of an Enterprise Service Bus as a collection of architectural patterns based on traditional enterprise application integration (EAI), message-oriented middleware, Web services, .NET and Java interoperability, host system integration, and interoperability with service registries and asset repositories.
Figure 1 shows a high-level view of the type of interconnectivity that an ESB architecture can provide.
A high-level example of the connectivity provided the Enterprise Service Bus architecture
The Industry View of ESB
There are many sources of information about ESB design, architecture, infrastructure, and implementation available from industry suppliers, system integrators, and independent sources. For example, Wikipedia describes ESB as "... a software architecture construct, implemented by technologies found in a category of middleware infrastructure products usually based on standards, that provides foundational services for more complex architectures via an event-driven and standards-based messaging engine (the bus)." For more information, see Enterprise service bus in Wikipedia.
IBM defines ESB as a system that "...enables a business to make use of a comprehensive, flexible, and consistent approach to integration while also reducing the complexity of the applications being integrated. Due to the complex and varying nature of business needs, ESB is an evolutional progression that unifies message oriented, event driven and service oriented approaches for integrating applications and service." They describe the advantages as "...greater reuse of IT assets by separating application logics and integration tasks, so you can reduce the number, size, and complexity of integration interfaces," and the ability to "...add or change services with minimal interruption to existing IT environment; reduce cost and risk involved as business changes and new opportunities arise." For details, see WebSphere software on the IBM Web site.
Sonic Solutions provide a comprehensive examination of ESB, discussing the principle aspects, and the IT and business benefits. They describe the requirement for ESB: "To integrate old and new, service-oriented architecture (SOA) needs an infrastructure that can connect any IT resource, whatever its technology or wherever it is deployed." For more details, see http://web.progress.com/en/Product-Capabilities/enterprise-service-bus.html.
TIBCO Software define ESB as "...a standards-based communication layer in a service- oriented architecture (SOA) that enables services to be used across multiple communication protocols [to] simplify service deployment and management, and promote service reuse in a heterogeneous environment." They suggest that "...to provide these capabilities, ESBs support both open standards and proprietary technologies, including Web services and UDDI-based registries to discover and publish services, Java Message Service (JMS) and other widely deployed messaging protocols, standards-based (XML) transformations, and basic message routing." For more information, see Enterprise Service Bus (ESB) on the Tibco Web site.
In the description of his book, "Enterprise Service Bus," author David Chappell states that "Rather than conform to the hub-and-spoke architecture of traditional enterprise application integration products, ESB provides a highly distributed approach to integration." He adds "...with unique capabilities that allow individual departments or business units to build out their integration projects in incremental, digestible chunks, maintaining their own local control and autonomy, while still being able to connect together each integration project into a larger, more global integration fabric, or grid." For more information, see Enterprise Service Bus by David Chappell (ISBN: 0596006756).
The Microsoft ESB Guidance
This guidance as a whole introduces architects and developers to ESB architectural concepts as addressed by the Microsoft ESB Guidance, describes the installation procedures, and explains the functionality of the ESB components through a set of commonly accepted ESB use cases.
This section provides an introduction to the Microsoft ESB Guidance and includes the following topics:
- Overview of the Microsoft ESB Guidance
- Contents of the Microsoft ESB Guidance
- Target Audience for the Microsoft ESB Guidance
This guidance also includes the following topics:
- Installing the Microsoft ESB Guidance
- Getting Started with the Microsoft ESB Guidance
- Key Scenarios and Development Tasks
- Microsoft ESB Guidance Sample Applications
- Administration with the Microsoft ESB Guidance
- SOA Governance Integration
- Modifying and Extending the Microsoft ESB Guidance