James Dixon’s Blog

James Dixon’s thoughts on commercial open source and open source business intelligence

Archive for April 2009

The Importance of Plug-Ins and Configurable Architectures

leave a comment »

We have added additional plug-in functionality into the Pentaho BI platform in the latest version (V3.0). The platform has always been very customizable (you could always replace every component, engine, and sub-system through configuration) but now it is even easier to add new features into the platform. I really like the results, we have already added several new features to the platform (like the community dashboard framework) with very little effort. I think the combination of plug-ins and a configurable architecture enable several things:

  • `Yes you can`
  • Cleaner design
  • Cleaner code
  • Reduced risk of forking in open source software

`Yes You Can`

The combination of plug-ins (to add new feature/function) and a configurable architecture (to enable the architecture itself to be modified) provides you with a `yes you can` answer to almost any question. No matter what your users or customers want to do they always have the ability to create a plug-in that meets their needs or modify a piece of the architecture to solve their problem. This design makes it very easy to make the modifications desired with the smallest possible change: you can extend an existing component or layer by sub-classing it and changing the one function you need to, then telling the system to use your version of the component.

Cleaner Design

Creating a plug-in architecture mean, as a matter of necessity, you have to have clean interfaces and well-defined boundaries between the various sub-systems and objects. These things are clearly good to have. You can of course have these things without a plug-in architecture but having a plug-in architecture forces you to have them.

Cleaner Code

I have worked for proprietary software companies where the code was littered with flags and special cases that were put there to support a single customer’s special use case. This was necessary because the software was not sufficiently extensible to allow the custom behavior to be easy added as a plug-in.

Reduced Forking

For open source projects benefit of this kind of extensibility is that it can reduce the risk / necessity of a fork. If the software can be customized to the extent that almost anything is possible you reduce the ‘direction’ arguments. In many cases forks occur because a part of the community would like to see the software go in one direction while the core developers want to take the software in another direction. If the software is pluggable at all levels it can be possible for the software to support both modes, keeping everyone happy and reducing the risk of a fork.

Written by James

April 6, 2009 at 4:54 pm

Posted in open source

Oracle Trying to Acquire Red Hat?

with 3 comments

If this rumor is true I think it is a good thing. Oracle has gone from trying to destroy Red Hat to trying to buy them. It shows that they failed trying to beat Red Hat at their own game with Oracle’s Unbreakable Linux offering. It proves the robustness of open source and a commercial open source offering. Microsoft provides us with another example.

Microsoft identified the threat from open source in the late nineties (see the Halloween documents). In the ten years following that Microsoft was unable to do anything to stop the growth of open source and finally entered the field by forming the Novell alliance. Now they have codeplex and claim to be open source friendly. But during that same period Microsoft aggressively targeted many commercial companies and technologies resulting in anti-trust law suits. Why were there no law suits claiming Microsoft used unfair practices against open source? Because there was no unfair practice they could have used that would not have ultimately helped open source rather than hurting it.

So I think Oracle trying to acquire Red Hat is a good thing, it is more proof that open source is hard to compete against. Oralce actually acquring Red Hat? Not so sure.

Written by James

April 2, 2009 at 3:39 pm

Alfresco (Open Source CMS) Adjusts Business Model

with 3 comments

It looks like Alfresco has changed back to the ‘open core’ model judging by John Newton’s blog.

Just over 2 years ago Alfresco used a modified Mozilla Public License for its open source code and provided enterprise extensions for its customers. Then they switched to a dual-license (commercial / GPL) model with no enterprise extensions. Now they are moving to a position closer to their initial one.

This does not mean that Alfresco does not know what they are doing. It is merely an indication that they are one of the pioneers in a new business realm and are refining a model that works for them. I think John does a good job of defining the principles used to distinguish between open source and enterprise features. There is also no mention in John’s blog about switching away from the GPL V2 license that they use, and there is also no mention of introducing the attribution clause they had before.

The attribution clause is interesting: Alfresco, SugarCRM, and Pentaho all started with attribution clauses in their licenses. They have all since dropped it. Ironically the  Common Public Attribution License (CPAL) did not exist at the time. All those companies are now operating a open core with enterprise addons and commercial licenses and so are MySQL, and Zenoss, Zimbra. All of these companies except Zimbra have a GPL core, Zimbra still has an MPL-based license with attribution clauses.

Maybe the best options for the single-vendor commercial open source business model are getting clearer. Hopefully I’ll find some time soon to update the Beekeeper Model.

Written by James

April 1, 2009 at 7:29 am