The WSO2 ESB is a lightweight and easy-to-use Open Source Enterprise Service Bus (ESB) available under the Apache Software License v2.0. WSO2 ESB allows administrators to simply and easily configure message routing, virtualization, intermediation, transformation, logging, task scheduling, load balancing, failover routing, event brokering, etc.. The runtime has been designed to be completely asynchronous, non-blocking and streaming based on the Apache Synapse core.
WSO2 ESB 2.1.0 is developed on top of the revolutionary Carbon platform (Middleware a' la carte), and is based on the OSGi framework to achieve the better modularity for your Service Oriented Architecture (SOA). This also contains a lots of new features and many other optional components to customize the behavior of the server. Further, if you do not want any of the built in features, you can uninstall those features without any trouble. In other words, this ESB can be customized to your SOA needs.
You can download this distribution from Project Download Page and give it a try.
Getting your integration project off the ground with the WSO2 ESB is fairly simple.
WSO2 ESB supports all the widely used transports including HTTP/s, JMS, VFS and domain specific transports like FIX, HL7 and so on.. A new transport can be added easily using the Axis2 transport framework and plug-in to the ESB. Variety of transports brings variety of message content/payload to the ESB. To identify the message by using the content type and make it to common XML infoset done by the message builders. So there are message builders associate with each content type. WSO2 ESB contains message builders for text based content as well as binary content. Message formatters are the opposite partners of the builders, formatter convert back the message to the original format by referring the content type just before the message handover to the transports. Similar to the transports user can implement new message builders and formatters by using the Axis2 framework.
Endpoints stay as a logical component with the transports. There are three sets of first level endpoints Address and WSDL & Default. An endpoint can use any available transport to dispatch the messages. Proxy services the virtual services in the WSO2 ESB that implemented using message receivers and open up to accept the messages. A proxy service can access using a URL similar to a normal web service address. Proxy service allow to publish a WSDL to suite for advance usage. Any available transport can be use to recive and send messages through the proxy services.
Event-sources are another implementation of message recover to handle messages on eventing, including both subscriptions and events. The power of the WSO2 ESB remains with the comprehensive mediator library that serves for different aspects. Using the mediator library we can implement widely used Message Exchange Patterns (MEP) and Enterprise Integration Patterns (EIP). Writing a mediator is a simple task for a developer because WSO2 ESB provides a healthy framework for that, though it is not required to write a mediator by your own to get most of the mediations implemented on ESB. Mediators can be implemented using various technologies including Java, scripting and Spring, all of whihc are considered as extension points to the WSO2 ESB. Sequences is a speciall mediator that act as the configuration component for the mediators. Sequences allow to organize the mediators to implement an ordered pipes and filters pattern to achieve the mediation.
Tasks provide facility to configure scheduled jobs in the WSO2 ESB and it allows to execute internal and external commands for mediation. QoS components that implements reliable messaging and security for the proxy services and for mediation comes with the Apache implementations of those two modules for axis2, which are Rampart and Sandesha.
WSO2 ESB has an inbuilt registry/repository to store the configuration and configuration metadata and it provides the facility to use a remote repository as well. Components that helps to run WSO2 ESB on production environment are clustering, high availability and load balancing capabilities. Finally the GUI components that make the comprehensive management, configuration and monitoring capabilities to the ESB. GUI has done on a layered architecture by separating the backend and frontend concerns. This allow the user to connect to multiple backends using a single GUI console. The component based architecture of the WSO2 ESB has enhanced the loosely coupling nature with the usage of OSGi. All the components are built as OSGi bundles.