At a high level, ESB can be looked upon as composed of three major logical components –
The Service Container is a light weight container( eg JEE, .Net) that holds or hosts servicesThe container comes with several pre-build capabilities like Routing & Transformation, Adapter Framework, Multi-Transport Protocols, Service Management capabilities
The Message Bus is the technology container that manages message flow. It ensures guaranteed delivery of message between application and provides distribution of message across targets like deliver to specific endpoint or publishing to multiple endpoint. It also provides integration capability between multiple ESB containers.
The Connectivity Layer provides the Technology capability that tightly binds an ESB container to the message bus. The capability could be proprietary or based on open standards. It provides seamless integration between service container and Message Bus Service
ESB – Mediation Patterns
We have discussed the definition of ESB Mediation is the Capability that facilitates systematic and seamless service based interaction between requester and provider.
There are various mediation modes in which ESB operates.The same ESB can be configured to operate in various modes for different applications or different business processes.
Before we look into the various modes, let us define the term message .We can assume that messages are passed when interaction happens between requester and provider. The messages could be SOAP message ,simple XML message or any other type .
But any message can be generalized to consist of a Payload (Actual Data or information ) and Context (Meta Data or Information needed to deliver the message)
So , Message = Payload + Context
In this the ESB observes the messages passing through without updating them.
In this mode , the ESB updates the payload of the message without any change to the context information
e.g. – Transformation of message payload from one format (schema) to another ; adding information to the Payload of the message from external data sources
ESB determines whether a message should be delivered to its intended destination or whether the message should be ignored and a rejection response should be send to the requester. ESB can check against the meta-data of the message, such as the schema, or permitted values for specific fields or even authentication and authorization checks
In this mode , ESB monitors messages from one or more sources over a time period and generates a new message. The ESB uses the defined uses aggregation rules to derive the new message