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