01 September 2007

The IONA FUSE Model and It's Benefits to the Community

I deal with a lot of customers at IONA and I speak at a lot of conferences around the world. Throughout my travels, quite often I am asked what value there is in the IONA Fuse suite of software vs. downloading the Apache projects individually. My answer always surrounds the same analogy and begins by asking the same question: Are you familiar with Red Hat Enterprise Linux?

DIY or Buy
If you're familiar with Linux, you probably already know that anyone can download one of the numerous Linux distributions available today. You can even follow the directions over at Linux From Scratch and build your own distribution. Although Linux From Scratch requires a lot of time and effort it's doable and a fun experience. And downloading a Linux distribution might be OK for doing development work. However, if you need enterprise level support for Linux across divisions in a company with service level agreements (SLAs), you have to go to a vendor like Red Hat.

Red Hat offers its own Linux distribution in Red Hat Enterprise Linux. This is a commercial Linux distribution that is offered by Red Hat. Using this commercial distribution, Red Hat provides services, support and training. Additionally, Red Hat provides various unique enhancements to it's Linux distribution. If you don't need these benefits, you can always download Fedora (or even CentOS). The Fuse open source model is extremely similar to this.

The Fuse Model is Similar to the Red Hat Linux Model
Fuse is based on Apache ServiceMix but is a completely separate branch from it. The reasons for this are almost identical to the reasons Red Hat creates RHEL but really boil down to this; to be able to provide paid enterprise level support. This involves being able to perform custom development for customers who may not want 100% of a solution released to the open source project, to provide a customer the fastest possible release of the software and to provide SLAs that satisfy customer needs. So why not just use the Apache version of ServiceMix?

The Benefits of the Apache Processes
While the Apache processes guarantee stable releases and the Apache infrastructure provides mailing lists for discussion, these are not appropriate and were not intended to provide support for paying customers. Those resources are for the community projects offered by the Apache Software Foundation (ASF). Let's look at an example.

To perform a release of an Apache project, a vote must be held. There are many rules surrounding the voting process including allowing the voting process to remain open for 72 hours. But that doesn't mean that a vote only takes 72 hours. Oftentimes, votes can be postponed because issues are found. In this case, the issues must be remedied and a new candidate release created before calling for another vote. Depending on the issue(s), the process to remedy the them can take anywhere from a few hours to a few weeks. This process ensures the required collaborative, consensus-based nature of the ASF. This provides many benefits that all result in stable releases and is a Very Good Thing. This is the classic open source mantra that says, It will be released when it's ready. As great as this process is for the community, it is not conducive to running a business.

Enter Fuse...
This is exactly where Fuse enters the picture. IONA offers a lot of options with Fuse including paid professional services, enterprise level developer support and production support, professional training and much more. We are also beginning to work on improved documentation, system testing as opposed to only unit testing. And because we're further integrating each product in the Fuse suite, we are building and testing each product therefore deriving more stability for each product as well as the overall suite. And customers demand that we do these things because they need a product that is stable and professionally supported to deliver the right SLAs. But that's not all, not by a long shot. The fact that IONA is working on these items for ServiceMix means that there are many benefits to the Apache community.

Benefits to the ServiceMix Community
Because IONA works with ServiceMix so much, we provide many direct and indirect benefits to both the project and the community. The biggest possible direct benefit is that IONA contributes almost 100% of the work we do on Fuse back to the ServiceMix project. There is a small percentage of work that isn't contributed back due to customer requirements, most typically something that is very customer specific or involving customer intellectual property. Save those small number of cases, we care very deeply about the ServiceMix project and spend a lot of time working on it for the good of the community. Not only do we develop new features but we also polish and extend existing features. There are also indirect benefits to the ServiceMix project. Because we contribute so much time and effort to the project, we're helping to produce stable releases for the community. Good community releases and a healthy overall project == more folks interested in ServiceMix == more folks becoming involved in the project. The recent discussions about ServiceMix 4.0 are good proof of the collaboration being driven within the ServiceMix project. I'm thrilled to see so many people interested in helping to decide the future of ServiceMix and I foresee many more people in the community earning committer status and PMC membership.


  1. Hi,

    i am a little confused, so there is no differences between Fuse ESB an ServiceMix from architecture and component perspective ?
    PS: i am a student and working on SOA project in which we are planing to use open source software (and we had to choose an ESB :)

  2. The plan was to provide value with FUSE ESB by selling business-related add-ons over time. I'm not sure if this has really taken place yet or not as I am no longer with IONA/Progress.

  3. Hi,

    Thanks for this article, it helps a lot to understand why FuseESB instead of ServiceMix!