Enterprise Service Bus - Salient Characteristics

Salient Characteristics

Most observers accept certain core capabilities as functions of an ESB:

Category Functions
Invocation support for synchronous and asynchronous transport protocols, service mapping (locating and binding)
Routing addressability, static/deterministic routing, content-based routing, rules-based routing, policy-based routing
Mediation adapters, protocol transformation, service mapping
Messaging message-processing, message transformation and message enhancement
Process choreography implementation of complex business processes
Service orchestration² coordination of multiple implementation services exposed as a single, aggregate service
Complex event processing event-interpretation, correlation, pattern-matching
Other quality of service security (encryption and signing), reliable delivery, transaction management
Management monitoring, audit, logging, metering, admin console, BAM (BAM is not a management capability in other words the ESB doesn’t react to a specific threshold. It is a business service capability surfaced to end users. )
Agnosticism general agnosticism to operating-systems and programming-languages; for example, it should enable interoperability between Java and .NET applications
Protocol Conversion comprehensive support for topical communication protocols service standards
Message Exchange Patterns support for various MEPs (Message Exchange Patterns) (for example: synchronous request/response, asynchronous request/response, send-and-forget, publish/subscribe)
Adapters adapters for supporting integration with legacy systems, possibly based on standards such as JCA
Security a standardized security-model to authorize, authenticate and audit use of the ESB
Transformation facilitation of the transformation of data formats and values, including transformation services (often via XSLT or XQuery) between the formats of the sending application and the receiving application
Validation validation against schemas for sending and receiving messages
Governance the ability to apply business rules uniformly
Enrichment enriching messages from other sources
Split and Merge the splitting and combining of multiple messages and the handling of exceptions
Abstraction the provision of a unified abstraction across multiple layers
Routing and Transformation routing or transforming messages conditionally, based on a non-centralized policy (without the need for a central rules-engine)
Queuing and staging queuing, holding messages if applications temporarily become unavailable or work at different speeds
Commodity Services provisioning of commonly used functionality as shared services depending on context

² While process choreography supports implementation of complex business processes that require coordination of multiple business services (usually using BPEL), service orchestration enables coordination of multiple implementation services (most suitably exposed as an aggregate service) to serve individual requests..

Read more about this topic:  Enterprise Service Bus