Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page describes the WSO2 ESB architecture in the following sections:

...

The following diagram illustrates the ESB architecture from a messaging perspective (the components of the pipes are not in a specific order):

WSO2 ESB ArchitectureImage RemovedImage Added

  1. An application sends a message to the ESB.
  2. The message is picked up by a transport.
  3. 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:
  4. 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.
  5. The message is injected to the separate pipes depending on the destinations. Here again, quality of service aspects of the messages are determined.
  6. The transport layer takes care of the transport protocol transformations required by the ESB.

...

This section describes the component-based architecture of WSO2 ESB.

Image RemovedImage Added

Transports

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.

...

Proxy services are virtual services that receive messages and optionally process them before forwarding them to a service at a given endpoint. This approach allows you to perform necessary transformations and introduce additional functionality without changing your existing service. Any available transport can be used to receive and send messages from the proxy services. A proxy service is externally visible and can be accessed using a URL similar to a normal web service address.

See Working with Proxy Services.

...

An API in WSO2 ESB is analogous to a web application deployed in the ESB runtime. Each API is anchored at a user-defined URL context, much like how a web application deployed in a servlet container is anchored at a fixed URL context. An API will only process requests that fall under its URL context. The API defines one or more resources, which is a logical component of an API that can be accessed by making a particular type of HTTP call. This approach allows you to send messages directly into the ESB using REST.

See Creating APIs.

Inbound endpoints

An inbound endpoint is  a message source that can be configured dynamically. In the ESB, when it comes to the existing axis2 based transports, only the HTTP transport works in a multi-tenant mode. Inbound endpoints support all transports to work in a multi-tenant mode.

See Working with Inbound Endpoints

Topics

A topic allows services to receive messages when a specific type of event occurs by subscribing to messages that have been published to a specific topic.

...

The Quality of Service (QoS) component implements security, reliability, and throttling on messages. It includes the Apache implementations of Rampart and Sandesha, which are provided as modules.

See Managing Web ServicesService Groups.

Registry

A registry is a content store and metadata repository. WSO2 ESB provides a registry with a built-in repository that stores the configuration and configuration metadata that define your messaging architecture. You can also use an external registry/repository for resources such as WSDLs, schemas, scripts, XSLT and XQuery transformations, etc. You can hide or merge one or more remote registries behind a local registry interface, and you can configure the ESB to poll these registries to update its current configurations.

...

The Management Console provides a graphical user interface (GUI) that allows you to easily configure the components mentioned above as well as manage and monitor the ESB.

Carbon platform

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.

Flexible deployment

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.