Top Open Source ESB Projects
In today's software markets, open source technologies are giving commercial products some stiff competition. Enterprise Service Busses are no exception. Don Rippert, the chief technology officer at Accenture says, "ESBs are software products that allow you to create a business process with web services running on different platforms." Rippert believes an ESB is essential for achieveing the full potential of service-oriented architecture. In general, an ESB should provide flexibility built on a basis of standards. Jos Dirksen, an author of "Open Source ESBs in Action," said in a recent interview that today's top open source ESBs were "on par with commercial alternatives." Competition drives innovation, and this page has a list of the most competitive open source ESBs on the market.
Here are the the forerunners among open source ESBs (in no particular order):
JBoss generally has mature components in its GA releases with no vendor-lockin characteristics. Their ESB leverages JEMS
technologies like the JBoss business rules engine for content-based
routing and messaging. Content-based routing on the JBoss ESB can use Drools or XPath. The JBoss ESB supports XSLT and the Smooks
transformation engine for XML and non-XML data formats. JBoss' ESB
also runs on the JBoss application server and features a pluggable architecture for swapping out ESB
subsystems.
Apache ServiceMix 4 is OSGi based and a great option for integrating with an XML standards focussed landscape. Apache ServiceMix makes it very easy to hot-deploy new integration flows. Even the pluggable integration components are hot deployable. ServiceMix uses a JBI standard which provides a lot of components like JMS, BPEL, Web service, and Camel. The inclusion of Camel is a strong point for ServiceMix along with the Spring Framework, which is also supported. FUSE ESB is another great distribution of Apache ServiceMix.
OpenESB
has an easy learning curve due to its solid integration with the
GlassFish Application Server and Sun's popular IDE, NetBeans. The
Netbeans IDE provides countless integrated functions for administration
and development. The best thing about OpenESB is its toolset.
OpenESB's tools include WSDL and schema editors, a JPI manager integrated into the service manager, and Ant
running in the background. Another tool is the Composite Application
Service Assembly (CASA) editor, which gives you a graphical overview of
integration applications. Many Java developers will love OpenESB
because it comes straight from the home of Java. OpenESB is also OSGi based.
Mule is the most used open source integration platform. MuleESB's low cost along with easy configuration, expansion, and flexibility make it very popular. Java developers will find MuleESB easy to work with because it is Java centric. There’s also a powerful set of XML schemas in MuleESB. The creation of integration flows is very straightforward. MuleESB can have fairly complex integration flows up and running in minutes. It has many connectivity, routing, and transformation options right out of the box.
Other ESB products take a relatively heavyweight approach by using the JBI specification, but the relative newcomer, WSO2, takes a lightweight approach in its ESB. It does this by focusing on Web service standards for integration. The WSO2 ESB uses Apache Synapse, a nimble Web service mediation and routing engine that focuses on providing fast XML message processing. WSO2 takes advantage of Synapse's non-blocking http://s transport implementation over the Apache HttpComponents/NIO module. This allows the WSO2 ESB to handle thousands of parallel requests using a small amount of resources and threads. You can always expect great XML support from the WSO2 ESB because well-known XML expert James Clark is a company director at WSO2.
Here are the the forerunners among open source ESBs (in no particular order):
JBoss ESB
JBoss
JBoss generally has mature components in its GA releases with no vendor-lockin characteristics. Their ESB leverages JEMS
technologies like the JBoss business rules engine for content-based
routing and messaging. Content-based routing on the JBoss ESB can use Drools or XPath. The JBoss ESB supports XSLT and the Smooks
transformation engine for XML and non-XML data formats. JBoss' ESB
also runs on the JBoss application server and features a pluggable architecture for swapping out ESB
subsystems. Apache ServiceMix
Apache
Apache ServiceMix 4 is OSGi based and a great option for integrating with an XML standards focussed landscape. Apache ServiceMix makes it very easy to hot-deploy new integration flows. Even the pluggable integration components are hot deployable. ServiceMix uses a JBI standard which provides a lot of components like JMS, BPEL, Web service, and Camel. The inclusion of Camel is a strong point for ServiceMix along with the Spring Framework, which is also supported. FUSE ESB is another great distribution of Apache ServiceMix.OpenESB
Sun(Oracle)
OpenESB
has an easy learning curve due to its solid integration with the
GlassFish Application Server and Sun's popular IDE, NetBeans. The
Netbeans IDE provides countless integrated functions for administration
and development. The best thing about OpenESB is its toolset.
OpenESB's tools include WSDL and schema editors, a JPI manager integrated into the service manager, and Ant
running in the background. Another tool is the Composite Application
Service Assembly (CASA) editor, which gives you a graphical overview of
integration applications. Many Java developers will love OpenESB
because it comes straight from the home of Java. OpenESB is also OSGi based.MuleESB
MuleSoft
WSO2 ESB
WSO2
Other ESB products take a relatively heavyweight approach by using the JBI specification, but the relative newcomer, WSO2, takes a lightweight approach in its ESB. It does this by focusing on Web service standards for integration. The WSO2 ESB uses Apache Synapse, a nimble Web service mediation and routing engine that focuses on providing fast XML message processing. WSO2 takes advantage of Synapse's non-blocking http://s transport implementation over the Apache HttpComponents/NIO module. This allows the WSO2 ESB to handle thousands of parallel requests using a small amount of resources and threads. You can always expect great XML support from the WSO2 ESB because well-known XML expert James Clark is a company director at WSO2.| Attachment | Size |
|---|---|
| apache_logo.jpg | 5.92 KB |
| jboss_logo.png | 13.16 KB |
| MuleSoft-Logo.jpg | 5.6 KB |
| sun_logo.jpg | 7.31 KB |
| WSO2_logo.gif | 4.7 KB |
(1 vote)
- Login or register to post comments
- 8433 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)










Comments
Stefan Krause replied on Fri, 2009/10/30 - 2:16am
Comparing those ESBs is very confusing which makes it extremely hard to choose one.
Do you want to deploy code for your services into an ESB (JBoss ESB, Mule and ServiceMix), which turns it into a kind of next-gen application server, or do you want to have just a bus (Synapse) that proxies services and does mediation, routing and transformation (To me this sound pretty much what an ESB should actually be).
Who needs a registry (only WSO seems to have a useable one)?
BPEL is supported on OpenESB (with excellent Netbeans support - if you want to stick with Netbeans 6.5), but there appears to be no production ready human-task extension (which means it just won't work for real life projects)
JBoss ESB has support for jBPM, but they started to develop Riftsaw which makes jBPM's future in JBoss ESB uncertain.
Apache ODE (also without human tasks) can be used with ServiceMix.
Support for monitoring and administrating those processes is minimal in all of those tools.
Except for WSO2 I don't think they have useable support for that essential feature. The JMX console from ServiceMix is a start, but I don't think your admin will appreciate that.
Ever tried to develop with JBoss ESB? Those config files with their dependencies are actually no fun. ServiceMix 3 (better those of JBI) deployment artefacts are no better. Both are way too complicated and Mule shows how much easier configuration can be.
I'm really excited hearing about your experiences (and correcting my statements ;-) ) and your thoughts about those ESBs.
There are two more projects that I'd like to mention:
Lukas Zapletal replied on Fri, 2009/10/30 - 2:28am
in response to: sk45235
Martijn Verburg replied on Fri, 2009/10/30 - 4:57am
in response to: sk45235
Artti Jaakkola replied on Fri, 2009/10/30 - 5:29am
trademak replied on Fri, 2009/10/30 - 8:33am
in response to: sk45235
I don't really get the difference Stefan mentioned between Synapse and the rest of the ESBs. To my opinion you must also deploy your services within Synapse and it also provides a container just like Mule and ServiceMix. What I do think differentiates JBoss ESB and OpenESB from the others is that they run on an application server (JBoss ESB on JBoss and OpenESB on Glassfish).
I do think that Mule Galaxy is a useable registry in addition to the WSO2 registry.
I agree that development with JBoss ESB is a bit harder at first. Mule provides a great XSD schema set that makes it really easy to develop your configurations. But I do think that the configuration of JBoss ESB is also pretty lean and mean and after you get familiar with it, it's also very easy to use. For ServiceMix it should be mentioned that ServiceMix 4 (which is OSGi based by the way) has out-of-the-box support for Camel configurations and that's just great. With Camel you can choose between a XML based configuration and a Java DSL configuration which are both really great examples of how you can keep complex stuff very simple!
In addition to these container (Mule, ServiceMix, OpenESB, Synapse, JBoss ESB) based ESBs, several other frameworks are available that provide ESB like functionality but don't run in a container. You just copy the JAR files into your project and you can use ESB functionality in each Java application you like. Therefore Apache Camel and Spring Integration should certainly be mentioned here. It's interesting to see that Camel and Spring Integration have a similar foundation in supporting EIPs.
Apache Tuscany is another addition to the open source integration / service frameworks. Apache Tuscany is SCA based and provides a standardized, clean service framework. However don't look for routing and transformation functionality in Tuscany, that's not it's purpose. I always use the following matrix to clarify the distinction between the popular open source integration frameworks:
Mule --> Custom architecture, XML based configuration, easy for Java developers
ServiceMix 3 --> JBI based, focus on XML messages
ServiceMix 4 --> OSGi based, integrated with Camel configuration, also provides support for JBI
JBoss ESB --> Custom architecture, runs on JBoss application server, fits great with JBoss products
Synapse --> Focus on WS-*, Rest, build on Axis 2, great if you need things like WS-Security etc
OpenESB --> JBI and OSGi based, runs on Glassfish, nice tool support with Netbeans
Camel --> XML and Java DSL configuration, no container, support for EIPs and lots of transports
Spring Integration --> XML and Java annotation configuration, no container, support for EIPs
PetTALS --> JBI based, nice admin console, French based
Tuscany --> SCA based, provides support for WS-*, focus on service development not integration
Best regards,
Tijs Rademakers
Author of Open Source ESBs in Action
Stefan Krause replied on Fri, 2009/10/30 - 10:46am
Hi Tijs,
first of all thanks for your book - I enjoyed reading it.
> I don't really get the difference Stefan mentioned between Synapse and the rest of the ESBs
To me it seems that Synapse focuses on its proxying capabilities. You have an existing remote service and make that service available on your ESB. The other ESBs appear to focus on deploying business logic into the esb and making that available as a service (Granted mule and service have proxy capabilities but they promote it much less and it appears to work worse). To me that appears to be a large difference, since it limits you on the programming model and environment of the ESB and changes the paradigm what the premier purpose of an ESB is.
trademak replied on Fri, 2009/10/30 - 11:16am
in response to: sk45235
Rodney Bollinger replied on Sat, 2009/10/31 - 1:05pm
Stefan Krause replied on Sat, 2009/10/31 - 2:15pm
trademak replied on Sat, 2009/10/31 - 2:34pm
Good question, I must say that I was a little bit suprised when I saw the description and the frameworks choice of Swordfish ESB. It seems to be ServiceMix 4 + a registry. Now you asked this question I took some time to look at the current status of the Swordfish project and I find it a bit difficult to say. There is almost no material (presentations, how to's and articles) available. Also, most (maybe all) committers seem to work for Sopera. So maybe a swordfish developer can provide a better answer, but I would say at this point, interesting proposal, but I prefer ServiceMix 4.
Best Regards, Tijs