NIH Enterprise Architecture Home

Enterprise Service Bus (ESB) Pattern

Description

An Enterprise Service Bus (ESB) is a streamlined, distributed integration middleware infrastructure that combines Extensible Markup Language (XML) and Web services support, basic transformation, and intelligent routing. It either includes message-oriented middleware (MOM) or wraps other MOM transport mechanisms. It also serves as a lightweight integration broker suite (IBS) .
 
ESB provides the key higher level services that are required in order to effectively implement Service-Oriented Architecture (SOA) including management and monitoring, security, service orchestration, support for both asynchronous messaging and request-reply, and adapters for a variety of packaged applications and technology platforms.

The ESB should be used whenever feasible to mediate communications between service providers and service consumers. The ESB selected at NIH is TIBCO BusinessWorks. The ESB provides a number of higher level services that facilitate service reuse and event-driven architecture:

  • Both message-based and request-reply communications
  • Rule-based routing of messages
  • Security
  • Management and monitoring
  • Process orchestration
  • Message transformation

The ESB provides adapters for a variety of technology platforms including J2EE, .NET, and relational databases. These are described in detail in the Integration Adapters brick.

Please view the Enterprise Service Bus (ESB) Pattern below:

Diagram

Benefits

  • Enables a more manageable hub and spoke topology for services allowing for consistent approaches to security, centralized configuration management, and management of quality of service.
  • Accelerates implementation of services by providing interface mapping, adapters to existing systems, and the ability to compose existing services into more complex new services.
  • Provides the framework for service reuse.

Limitations

  • The specific architecture for TIBCO deployment within NIH must be determined.
  • The criteria for ESB use must be determined such as when services need to use the ESB and when point-to-point communications between service consumers and providers are recommended.
  • A service registry technology must be determined.
  • TIBCO product functionality does not provide an integrated Universal Discovery, Description, and Integration (UDDI) registry.
  • The management processes and allocation of responsibilities for administration of the environment must be defined and the Integration Competency Center (ICC) needs to focus in this area.

Recommended Usage

An ESB is preferred in the following usage scenarios when:

  • Integration across heterogeneous systems and databases is required.
  • Services are widely shared across the enterprise.
  • Central management of security is required.
  • Complex message routing or data transformation is required.
  • Service orchestration is being used to define more complex composite services.
  • Both SOA (request-reply) and EDA (message-oriented) interactions are needed to support a business process.

Time Table

This architecture definition approved on: May 24, 2006

The next review is scheduled in: TBD