The WSO2 ESB is an Open Source project (under the Apache license) based upon the Apache Synapse project. A detailed description of its capabilities can be found here. In addition to providing a full web service support, WSO2 ESB offers a complete scripting environment:
The WSO2 ESB can be extended using simple Java, JavaScript, Ruby or other scripting languages. In addition there is support for using the Spring Framework to configure the mediation flow.
Last June the first performance report focused on load testing. In this new report, Asankha Perera, Architect at WSO2, focuses on the typical usage scenarios of an ESB:
- Service Proxy
- Content based routing
- Transformation
I encourage you to take a look at the reports, they provide a good data point on the current capabilities of ESBs. Asankha does point out that a comparison between ESBs is:
... made harder by the lack on any industry standard benchmark for ESBs (let alone a standard definition of an ESB)
If a standard definition itself might be something people disagree on, the capabilities provided by ESBs, the usage patterns, and to a certain extend the architecture of ESBs, are becoming fairly standard across the industry. Today, the ESB concept has evolved to become a service container that exposes standard-based web service endpoints from existing web service or non web service endpoints mediated at the transport, protocol, endpoint, interface and content level. The interactions between two end points hosted in the same container are usually optimized. A modern Service Oriented Architecture can be implemented with several types of service containers, sometimes nested, with each container offering specific quality of service, scripting capabilities, legacy integration, price ...