There are many popular open source software solutions available for SOA. Open source is making incredible inroads into software infrastructure and SOA middleware is no exception. Open source software thrives where standards exist and SOA has plenty -- some would say too many! There is a great variety of open source SOA solutions available, ranging from message queues to data transformation, application adaptors to orchestration engines,...
and most notably the ESBs, Web services solutions and SOA stacks that contain many middleware components. The following table shows some of these popular SOA open source solutions:
|ObjectWeb Celtix||ESB||celtix.objectweb.org||A Java ESB runtime and set of extensible APIs to simplify the construction, integration and reuse of business components using a standards-based SOA. Recently merged with the XFire Java SOAP framework and now housed at Apache.|
|JBoss JEMS||SOA Stack||www.jboss.org/products/index||JBoss Enterprise Middleware System (JEMS) is an extensible and scalable suite of products for creating and deploying e-business applications that includes:
|LogicBlaze FUSE||SOA Stack||www.logicblaze.com/software.jsp||An open source ESB and SOA toolkit built on the semantics and APIs of the Java Business Integration (JBI) specification that includes:
|OpenSymphony Mule||ESB||mule.codehaus.org||An ESB messaging framework that includes a scalable object broker that can handle interactions with services and applications using disparate transport and messaging technologies. Ships with several end-point adaptors.|
|SUN open-esb||ESB||open-esb.dev.java.net||An ESB runtime based on JBI.|
|WSO2 Tungsten||Web Services Stack||http://www.wso2.com/products/tungsten/||A service mediation framework that supports web services specifications. The stack includes:
|openadaptor||Services Connector||www.openadaptor.org||A Java/XML-based software platform which allows for rapid business system integration with little or no custom programming.|
Why open source?
Before digging into some of these solutions, let's quickly review the major benefits of open source over its commercial counterparts. I do not find that total cost of ownership is the key advantage of open source software, although on its surface it seems it would be because open source is free to download and use. Cost can be a benefit, but many companies still pay for professional support for their major open source components to give them a "throat-to-choke." Formal support is available for most major open source projects. And installation, integration and deployment still require effort just like a commercial product would.
Open source's key benefits are its agility and transparency. My article on assembling software discusses how open source enables agility when compared to commercial software because there is no long procurement process and refactoring is made easier because there no vendor lock-in.
The transparency of open source has major benefits as well. Because users have access to the source code and all documentation, they can readily review the solution's features, bugs and future roadmap - usually made available through the project's JIRA pages. Users can often gain access directly to the developers of the solution and community that uses it.
These benefits are real. Open source may be less expensive than commercial software, but look to its transparency and its ability to enable agility for a truly better way to build software.
Let's now review in a bit more detail some of the popular solutions that are setting the pace for open source SOA software. In particular we will take a look at LogicBlaze FUSE and WSO2 Tungsten. There are certainly other very good solutions available, but we will use these to highlight some of the latest SOA options and trends.
LogicBlaze FUSELogicBlaze, like many of the other SOA solutions available, has integrated several SOA middleware components into a stack. Within the FUSE stack lie several independent SOA solutions that include:
- Apache ActiveMQ to provide JMS
- jUDDI Web services directory
- Jetty HTTP Server
- Apache BPEL Engine
- Apache ServiceMix Enterprise Service Bus
- Apache Derby database
- Several application protocol adaptors
- LifeRay Portal
- Eclipse IDE integration
These components together provide powerful SOA capabilities. You should also be aware that the individual component solutions within any of the SOA open source stacks can be used independently very effectively in your SOA implementation. And the user can pick-and-choose to exclude, include or swap any component of the stack. But if many of the capabilities of the individual components are required, then choosing a stack solution such as FUSE should be considered because they have already done the integration.
LogicBlaze FUSE does not have the mindshare of Mule or the name recognition of JBoss. Mule was one of the very early open source ESBs and is still a very popular open source SOA solution. Mule is well known for its ability to package many connectors to communicate with all sorts of heterogeneous services.
JBoss has ridden to fame on the back of its application server and a Red Hat acquisition. JBoss has integrated its application server and its other well-known open source projects to build JEMS. JBoss does not have an ESB as part of their stack yet, but they are working towards a production release of their ESB due near the end of the year.
Even though LogicBlaze FUSE does not have the fame of JBoss or Mule, it is a formidable contender. LogicBlaze's projects had previously resided within the Codehaus open source repository, but have since moved to Apache to get closer to some of the other projects contained in the FUSE stack. IBM has also contributed to the FUSE stack, offering committers (developers on open source projects are called committers) and hardware to the effort.
IBM also has a relationship with the people at Simula Labs, the parent company of LogicBlaze. IBM acquired Gluecode, and Simula Labs has individuals on the management team that used to work at Gluecode. IBM's involvement in FUSE and with LogicBlaze may be seen as a benefit or a drawback, but the relationship does exist. The developers on the FUSE stack components are well-respected in the open source and SOA middleware space. And like most of the other solutions listed in the table above, FUSE does offer professional support through its sponsor company, LogicBlaze.
The ServiceMix ESB is at the heart of FUSE. It is a solid ESB with a good following. One of the perceived issues with ServiceMix is its support for Java Business Integration (JBI) as a way of plugging-in ESB components. Early-on the support of JBI was a differentiator for ServiceMix against other ESBs, most notably Mule. But the adoption of JBI has been spotty and LogicBlaze has been moving its messaging for ServiceMix away from this stigma that it is only appropriate if JBI is being used.
ServiceMix is built internally on JBI and does support the API, but can also support many other APIs, including Web services. If you are looking for an ESB with JBI support, then ServiceMix is very compelling. But FUSE should still be considered even if JBI is not how you would like to integrate your SOA services.
Tungsten is an SOA stack that specializes in Web services. Actually Tungsten is not a compelling solution for SOA implementations that use endpoints other than Web services, but given the popularity of Web services for SOA, WSO2's Tungsten is a solution that is getting a lot of consideration. Tungsten blends many of the Apache Web services projects into its stack, including:
- Apache Axis2 (SOAP, WSDL)
- Apache WSS4J (WS-Security, WS-SecureConversation, WS-Trust)
- Apache Sandesha (WS-ReliableMessaging)
- Apache Kandula (WS-Coordination, WS-Atomic Transactions)
- Apache WS-Policy (WS-Policy)
These components represent many advanced Web services capabilities, though not all are fully developed standards yet. Note that the solution does not contain a formal ESB. Still, if Web services are being used as endpoints to integrate SOA functionality, Tungsten may be the best SOA stack to consider.
And if advanced Web services capabilities are being evaluated, such as reliable and secure Web services, then the components within Tungsten represent one of the most capable Web services stacks available, open source or commercial. Like FUSE, the Tungsten WSO2 engineers are very well-respected in the open source community and have a long history building middleware. There are other committers to the Tungsten stack as well, including classic commercial middleware companies such as Sonic Software.
Not to be left out, ObjectWeb, the consortium behind the JOnAS J2EE application server, has built an open source ESB project called Celtix, donated by Iona Technologies. Celtix recently merged with the XFire Java SOAP framework and will be called CeltiXfire in the future, with wider support for WS-* specifications and integration with the Apache Geronimo, ServiceMix and Tuscay projects as some of its chief goals moving forward. As part of the merge, it will move from ObjectWeb to Apache.
WSO2, for its part, is a relatively young company compared to LogicBlaze, JBoss or SymphonySoft. WSO2 is still trying to grapple with how to grow as an organization while continuing to build and support their popular open source stack. I would recommend evaluating this solution if you see Web services as the key integration technique for your organization.
As the table above shows, there are many open source options available for SOA, we don't have the space here to review them all. The stack movement represents some consolidation, which likely shows a maturing of the open source SOA market. Tungsten and FUSE represent just two of these stacks, but all of the projects within the table are compelling, as are the individual components within the various stacks.
There are more open source projects still, than those listed in the table – the complete list is a bit overwhelming. These simply represent a good sampling to show that open source middleware has arrived and act as a guide for your search for your next great open source SOA download.
About the author
Adam Michelson has more than a decade of technology implementation experience. Adam is currently the director of service-oriented and enterprise architecture for Optaros Inc., an international consulting and systems integration firm that provides enterprises with best-fit solutions to IT business challenges, maximizing the benefits of open source software.