An Enterprise Service Bus (ESB) is a modular and component based architecture and a key enabler used for implementing the infrastructure for service oriented architecture (SOA). For building a comprehensive service oriented infrastructure (SOI), an ESB is only one of many components used. An ESB allows the interaction between heterogeneous service and interface that might be mismatched or that may change over time.
In an ESB includes three different terms.
In component based architecture assumes that services are generally autonomous and availability of a service at a certain moment of time. So messages required to routed accordingly through the message bus for buffering to permits inspection and enhancement of content as well as correction, rerouting of message flow and filtering.
The responsibilities of ESBs are,
The ESB architecture includes the following process.
1) Managed message processing
In an enterprise service bus architecture an application will communicate through the bus, which acts as the single message exchange between applications. This concept reduces the number of point to point connections between communicating applications and it helps to monitor for failure and misbehavior in highly complex systems and permits easier changing of components. In the concept of ESB every client directs its entire request through the ESB instead of passing it directly to a potential server. This indirection permits the ESB to monitor and log the traffic. The ESB can interfere message exchange and overwrite standard rules for service execution. The possible used interventions are:
2) ESB commodity services
The ESA services deal with directing and arranging the routing of messages doing common and often required data exchanges. Popular use commodity services are,
Commonly used commodity services are,
3) ESB and message queuing
A mandatory and hence characteristic component of an ESB is a staging or (buffering) component that is typically implemented as a message queue and can be controlled an and used by internal and external services at discretion. The message queue is needs to cope with differing handling speed and temporary failure of services as well as being able to reschedule processing in case of a processing error of a service. Message queues provide an asynchronous communications protocol, meaning that the sender and receiver of the message do not need to interact with the message queue at the same time.
4) ESB as software
The ESB represents the piece of software that lives between the business applications and enables communication among them.
Invocation: – It support for synchronous and asynchronous transport protocols, service mapping (locating and binding).
Routing: – Routing means addressability, static/deterministic routing, content-based routing, rules-based routing, and policy-based routing.
Mediation: – In metadata and data warehouse, a data transformation convert’s data from a source data format into destination data. Data transformation can be divided into two steps:
The functions of mediation are adapters, protocol transformation and service mapping.
Process choreography: – It is the implementation of complex business processes.
Service orchestration: – It is the coordination of multiple implementation services exposed as a single, aggregate service.
Complex event processing: – The functions are event-interpretation, correlation and pattern-matching.
Other quality services:- It ensure security (encryption and signing), reliable delivery,transaction management
Management: – Services provide the management categories are 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: – In 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:- It support for various MEPs (Message Exchange Patterns) (for example: synchronous request/response, asynchronous request/response, send-and-forget, publish/subscribe)
Adapters:- Adapters helps for supporting integration with legacy systems, possibly based on standards such as JCA
Security: – It is a standardized security-model to authorize, authenticate and audit use of the ESB.
Transformation:-It is the 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 the schemas for sending and receiving messages.
Governance: – It is the ability to apply business rules uniformly.
Enrichment:- It 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.