WSO2: A lightweight, fast, and free ESB
Open source WSO2 ESB 1.0 makes XML messaging easy to deploy and easy to manage, but lacks high-availability optionsFollow @infoworld
Click for larger view.
The WSO2 ESB includes a simple file-based registry that can be used to dynamically update the ESB by deploying new configuration files. The "integrated registry," as they call it, can be referred to by any particular instance of the ESB, so any number of ESB servers may be deployed with the same configuration. Local registry entries can override remotely derived values.
The simple registry works well enough, but making a remote file system available to all running instances of the ESB isn’t feasible in most production environments, where the ESB is likely to run in a clustered, high-availability configuration.
That said, one advantage to a file-based registry is ease of integration into an organization's existing change management practices. Most commercial vendors have their own form of version control for registries, and shoehorning these schemes into the IT organization's way of doing things is a constant source of frustration for the customer. WSO2 has a separate registry project that will ultimately provide a full feature set; hopefully it will also make it easy to adopt different change management practices.
Apache Synapse provides the core message mediation and transformation framework for the ESB. As such, it doesn’t include a JMS (Java Message Service) provider of its own, but works with third-party providers such as ActiveMQ. Synapse was designed with speed, low overhead, and scalability in mind. By optimizing its design at a network level, and focusing on XML messages, it claims some impressive performance figures, exceeding the performance and scalability of an unspecified proprietary ESB by a significant margin. WSO2 also touts better performance than some of the open source ESBs. I was unable to verify these performance claims, but hope to do so in a future article.
Standard Web services
On the messaging side of things, WSO2 ESB (that is, Synapse) supports a number of advanced Web services standards, among them standards for reliable messaging, security, and message policies. Transmission of binary payloads is also supported by MTOM (Message Transmission Optimization Mechanism) and SwA (SOAP with Attachments). The transport side of things seems heavily slanted toward HTTP/S, but JMS is also available, including SOAP over JMS, although with a proprietary binding.