The following diagram illustrates the ESB architecture from a messaging perspective (the components of the pipes are not in a specific order):
- An application sends a message to the ESB.
- The message is picked up by a transport.
- The transport sends the message through a message pipe, which handles quality of service aspects such as security. Internally, this pipe is the in-flow and out-flow of Axis2. The ESB can operate in two modes:
- Both message transformation and routing can be considered as a single unit. As the diagram specifies, there is no clear separation between message transformation components and routing components. In WSO2 ESB, this is known as the mediation framework. Some transformations take place before the routing decision has been made while others take place after the routing decision. This is part of the Synapse implementation.
- The message is injected to the separate pipes depending on the destinations. Here again, quality of service aspects of the messages are determined.
- The transport layer takes care of the transport protocol transformations required by the ESB.
This section describes the component-based architecture of WSO2 ESB.
A transport is responsible for carrying messages that are in a specific format. WSO2 ESB supports all the widely used transports including HTTP/s, JMS, and VFS, and domain-specific transports like FIX. You can easily add a new transport using the Axis2 transport framework and plug it into the ESB. Each transport provides a receiver, which the ESB users to receive messages, and a sender, which it uses to send messages. The transport receivers and senders are independent of the ESB core.
The Management Console provides a graphical user interface (GUI) that allows you to easily configure the components mentioned above as well as manage and the ESB.
WSO2 Carbon provides the runtime environment for the ESB. It contains all the platform-wide features such as security, logging, clustering, caching, etc. Because of the platform, you can install extra features on WSO2 ESB that don’t ship with the default package, which makes WSO2 ESB more flexible and extensible. For complete information, see the WSO2 Carbon Documentation.
You can deploy WSO2 ESB in a clustered environment with a load balancer to achieve failover and high availability. For complete information, see the WSO2 Clustering and Deployment Guide.