Saturday, May 23, 2009

A Cool Tool (kwout)

There's a new tool called "kwout" that makes it extremely easy to cut out parts of web pages as images and use them to "quote" the sites. Installing it on Firefox is as easy as dragging a hyperlink to the toolbar. I used Kwout to cut its own logo out of its web page (above). Pasting it into Blogger took only seconds.

Check it out.

Friday, May 22, 2009

Advice to Sun from Michelangelo

Sun is a great company with some great software, yet something holds it back from achieving its true potential. What is it that's missing? I've been thinking about this ever since I got back from Sun Developer Day earlier this week.

And then I got it. Nothing's missing. On the contrary, there's too much.

Michelangelo defined sculpture as the art of "taking away", not "adding on". The sculpture already exists inside the block of marble. The sculptor only has to take away the excess to reveal the work of art within.

Sun has a full line-up of extremely useful products. But there's some superfluous marble covering the work of art within. That's what prevents us from seeing the masterpiece. It's an unfinished work, and the sculptor's unwarranted sentimentality towards superfluous marble is what prevents him from completing the statue.

The biggest piece that Sun needs to sculpt away is OpenSolaris. No, really, the world doesn't need another Open Source Unix. Now that we have Linux, that's more than enough. Let's not get into bureaucratic arguments over which is the more senior Unix. Put bluntly, OpenSolaris is a dog-in-the-manger that just muddies the waters. It will limp along, delaying Linux's inevitable triumph, yet never quite succeeding, and in the process, never letting Sun achieve greatness. To quote from one of Sun's own marketing campaigns, they need to put "all the wood behind one arrowhead." An arrowhead called Linux. Sun should help port ZFS and DTrace to Linux, and quietly bury OpenSolaris.

But OpenSolaris isn't the only offending piece. There's the GlassFish app server. Mind you, there's a lot that's cool in GlassFish, such as Jersey (for REST services) and Metro (for .NET-compatible SOAP/WS-* Web Services). But these are components that should simply be contributed to Tomcat as libraries. We don't need an app server when we have Spring and Tomcat. By clinging to a heavyweight EJB container, Sun is refusing to chip away at one of the ugliest pieces of marble obscuring Enterprise Java. (There's no such thing as a lightweight EJB container, by the way. The EJB spec is heavyweight, even with the figleaf of annotations.)

The last bit is NetBeans. NetBeans is all right by itself as an IDE, but the world already has one - Eclipse. Why doesn't Sun throw in the towel already? If they have something to contribute in IDE land, let it be in the form of Eclipse plugins! That's what the rest of the world does.

There's altogether too much "invented here" sentiment that prevents Sun from ruthlessly pruning its inventory and letting elegance shine.

So much for taking away. Moving on from sculpture to painting, which is all about "adding on", there's some stuff Sun is neglecting, too.

I think they're wasting time with MySQL when they should just leave it alone. MySQL is doing just fine by itself. It's an OK database for a lot of people, but Sun's energies are better spent improving another one. Let me beat the drum once more for my favourite Open Source database, which seems to me to be the world's best-kept secret - Ingres.

Sun should contribute to Ingres. I believe Ingres is near-perfect, with just one fatal flaw. It requires the installer to understand sophisticated database concepts before even installing it. If you don't understand why the database snapshot and journal files should be on a separate disk from the database itself, then you've missed the whole point about database recoverability and also messed up your install. Sun should contribute to the usability of Ingres, just as they poured millions of dollars into Star Division GmbH's software to make it a friendly office suite known as OpenOffice 3. My mouth waters at the thought of a rejuvenated Ingres, more beginner-friendly and riding as a package on board the best distribution channel in the world - a Linux installation CD.

But fat chance of that happening now that Oracle has its hooks into Sun :-(.

On second thoughts, forget painting. If Sun can just be a good sculptor and chip away at extra marble, they can still contribute to that masterpiece - a lean and clean Enterprise Java ecosystem that is also Open Source.

Tuesday, May 19, 2009

Will Windows Become a Drain on Microsoft?

A friend just pointed me to the latest blog posting of Sun's CEO Jonathan Schwartz. Titled "Will the Java Platform Create the World's Largest App Store?", the post reveals a side of the Java platform I hadn't much thought about. I suspect not many people are aware of the revenue model that the Java runtime has created for Sun. Google and Yahoo! (I reckon they're the companies Schwartz refers to) obviously find it worthwhile to pay Sun for the opportunity to reach out to the billion users of the Java runtime.

Three observations I can make immediately:

1. Microsoft ironically did Sun a favour by trying to corrupt Java in the mid-nineties. This caused Sun to bypass Microsoft and go direct to the user's computer. That's what has now resulted in the happy situation of Sun being able to negotiate effectively with the search giants without having to cut Microsoft in on the deal.

2. Oracle probably has a financial reason to buy Sun after all :-).

3. I can now understand another motivation for Google to innovate Android. With Android, Google can be in the position that Sun now occupies as gatekeeper to a billion users' eyeballs. Like Sun cut Microsoft out of the negotiation, Google can cut Sun out with a simpler licensing deal (for the Java VM) and lock onto a growing revenue stream instead. But they may have to share their profits with the owners of the hardware platform.

This line of thinking leads me to a conclusion that is very bad news for Microsoft. If I was an executive at Nokia, I would be talking to Google about getting a share of the ad revenues that Google will surely get through widespread penetration of Android. Armed with a likely deal of that nature, I would then approach Microsoft to work out something similar. Microsoft will probably be in for a shock. Rather than be able to charge hardware vendors for the privilege of licensing Windows, they would be asked to pay rents to those vendors (and their telco partners) for the privilege of reaching millions of customer eyeballs. If Microsoft doesn't play ball, the phone vendors can simply switch to Android. It's not like the PC platform where users have been dog-trained to demand Windows. Even a zero-licence fee Windows won't be good enough in the mobile device market.

I read an article recently that speculated Microsoft was cutting Windows licence fees to the bone to make it viable on Netbooks, and the article then went on to say it was no wonder Microsoft was shedding staff. Now, if OEMs start expecting Microsoft to pay for them to use Windows, the job losses at Redmond will only mount.

All because of a little operating system called Linux, and an open platform called Java (that together go to make up the base platform for Android).

It's wonderful what a bit of competition will do.

Sun Developer Day Sydney (19 May 2009)

I attended Sun Developer Day in Sydney today. Compared to the three-day extravaganza of last year, this was a much simpler affair, with just eight short sessions over a single day.

The sessions were as follows:

1. Keynote (Reginald Hutcherson)
2. JavaFX (Angela Caicedo)
3. Java, Dynamic Languages and Domain-Specific Languages (Lee Chuk Munn)
4. MySQL (Peter Karlsson)
5. OpenESB (Lee Chuk Munn)
6. Virtualization (Peter Karlsson)
7. Developing and Deploying apps with Java SE 6 Update 10 (Angela Caicedo)
8. DTrace (Peter Karlsson)

I'll organise my feedback grouping the topics by speaker, since they specialise in related fields.

Reginald Hutcherson is "Director, Technology Outreach" at Sun and seems to have been with the company forever. I remember hearing him speak at a Sun event more than 10 years ago. He provided an overview of the topics that would be covered over the rest of the day. The key takeaway from his speech was the central role of the Java Virtual Machine. On one side, there are multiple languages (including the increasingly popular scripting languages) that are capable of running on the JVM. On the other side, the JVM has been ported to "all the screens of our life" - computers, TVs, mobile phones, GPS devices, etc. Java the platform, as has always been emphasised by Sun, is more important than Java the language.

Angela Caicedo spoke about JavaFX and later about new options to develop and deploy applications after the innovations in Java 6 update 10. I didn't get the impression that anything very major had occurred in the JavaFX world since last year. My reaction to all these RIA tools (Flash/Flex, Silverlight and JavaFX) is, why bother? JavaScript-based tools are becoming so much more powerful these days that we can build astoundingly rich applications using nothing more heavyweight than JavaScript and HTML. So I don't know where JavaFX will go. I commented last year after Jim Weaver's demo that the declarative JavaFX code quickly ends up looking like the dog's breakfast. I haven't seen anything this year to change my opinion of JavaFX.

[Out of curiosity, I tried downloading NetBeans 6.5 later in the evening and was more than a little disappointed to see that it had no JavaFX support on Linux, only on Windows. Why not? As an Ubuntu user, I'm offended that this excellent platform isn't deemed a first-class development environment.]

Angela's second talk (on the latest options for developing and deploying applications since Java 6 update 10) was, in my opinion, the best session of the day.

Minor revisions (called updates) don't break APIs, but update 10 is still quite revolutionary.

Where do I begin? First, my personal background - unlike most Java developers in the industry today (who build web applications), I have actually built Swing, Applet and Java WebStart-based applications for a number of organisations. And I've been personally disappointed in the fact that these technologies did not become more popular.

With Java 6u10, perhaps some of the reasons for their relative unpopularity have gone away (but it may be too late to get the developers back).

In a nutshell, Sun has now unified the development and deployment of applets and Java WebStart applications, cleaned up the browser-JVM architecture and improved the bidirectional interoperability between Java and JavaScript. I can only ask Sun, where have you been these ten long years?

JVMs no longer have to share process space with the browser, and different applets can run in different JVMs if required. This reduces the impact of an applet crash on other applets and on the browser. Note this: the crash of an applet no longer results in the browser crashing, but more importantly, one can close the browser and have an applet continue to run. This is big stuff. When one then tries to close the applet, one is prompted with the choice to save the applet as a desktop icon. In other words, it's no different from Java WebStart. This is really powerful and cool.

There are a number of other improvements and optimisations. The JRE is now broken into a number of smaller components, and a more lazy download strategy is employed under the covers to reduce the startup time of applications. There is a more modern look and feel to replace the dated Metal appearance. Components are now rendered using scalable vector graphics rather than bitmaps.

I'm most excited about the three major improvements I listed earlier. I can see a very elegant way to implement SOFEA using these innovations. The MVC controller on the client should be an applet, running in a persistent JVM outside the browser process. The Application Download will start the applet and configure it with the wiring logic for the application's Presentation Flow. The controller will handle not only Presentation Flow but also Data Interchange with services hosted by remote servers. Perhaps a variant of Spring Web Flow suitably modified for the client side will be a good model for Presentation Flow. Server-side UI resources in the form of Freemarker or other templates could be pulled by the controller and populated using appropriate models. With the seamless interaction between Java and JavaScript, many things are now possible.

Lee Chuk Munn spoke about Java, Dynamic Languages and Domain-Specific Languages and in a later session, about OpenESB.

There wasn't anything very new in the session on scripting languages, but it may be worth repeating the benefits of scripting.

Scripting helps build an ecosystem for an application. Applications become platforms. Witness plugins for Firefox. Firefox is no longer just an application. It is a platform by itself, because of the JavaScript-based plugins that it supports. Scripting also enables domain-specific applications, such as Mathematica.

[I hadn't heard of Lua before. This is a scripting language for gaming.]

In his second session, Lee worked through an example to demonstrate the features of OpenESB. I must confess I'm a bit of an ESB skeptic. To be fair, the ESB feature that was demonstrated was plain BPEL functionality, so it wasn't so much an ESB as a BPEL engine. I have no objections to BPEL engines as long as they don't pretend to be "SOA fabric in a box", which is my grouse against ESB products.

The main feature of OpenESB as a BPEL engine seems to be its support for JBI (Java Business Integration). Put bluntly, JBI seems to mean a WSDL-defined interface on both the service consumption side and the service provision side. Lee demonstrated how a process could be graphically mapped using NetBeans. The WSDL on the service provision side made the entire process look like a standard SOAP service. On the other side, the actual implementation of business logic was encapsulated in a Stateless Session EJB (ugh!) The interface to the EJB was once again a WSDL. The demo worked quite well, showing not only how logic could be placed in components but also in the process definition itself. However, I fear that powerful tools that simplify service and process development, when placed in the hands of developers without a sufficiently "SOAphisticated" understanding of concepts, will lead to horribly designed applications. (And why are we still wasting our time with EJBs?)

Peter Karlsson gave three talks, one on MySQL, one on virtualisation and one on DTrace. Unfortunately, his areas of specialisation (other than databases) are not of great interest to me personally, so I'll just give a brief run-down of what he covered.

My biggest takeaway from the MySQL talk was that MySQL supports multiple "storage engines", each optimised for a different task. In the same database, one can allocate different storage engines to different tables depending on usage. Examples:

MyISAM is useful for tables that don't require transactional integrity. This is the default, and is most useful for web and data warehouse applications.
InnoDB should be used for tables that do require transactional integrity, but because of the extra performance overhead, should not be used for other tables. Slashdot, Google, Yahoo! and Facebook are InnoDB users.
Archive should be used for log and audit trail type tables, because of its native compression and high insert performance.
In-memory should be used for scratch tables (working storage).

I was a bit confused during the virtualisation talk because there were some generic virtualisation techniques being described, but also some Sun products, and I wasn't always able to tell them apart.

There are four broad categories of virtualisation:
1. Hard partitions (e.g., Dynamic System Domains).
2. Virtual Machines (e.g., Logical Domains, Solaris xVM x86 hypervisors, VirtualBox).
3. OS Virtualisation (Solaris Containers, Solaris Trusted Extensions, Brand Z Solaris Containers, Trusted VirtualBox).
4. Resource Management (Solaris Resource Manager).

My takeaway from this was that VirtualBox was something worth looking into as a developer. This is a Sun product that is Open Source.

Peter Karlsson's last talk was on DTrace, in which I have not the slightest interest. This is a Solaris-based system tool, I understand, and provides relatively low-overhead diagnostic capability. It is reportedly safe for use in production environments because it is supposedly zero-overhead (though Peter did warn about some specific settings that had high performance impact), because it cannot change data, because it cannot cause crashes and because it eliminates the need for post-processing of data.

There are Probes and Providers and a scripting language called D. Traces can be set on activities using a predicate-based expression language. The approach reminded me of AOP (Aspect-Oriented Programming).

Overall, I was satisfied with the coverage of the day's topics, but I have a lingering feeling that the action in the Java world has moved away from Sun.

NetBeans => Eclipse
GlassFish => Tomcat
EJB => Spring POJOs
JavaFX => JavaScript/Ajax libraries (AJAX is now so common it's now spelt Ajax)

It'd be good if Sun could drag itself closer to where the action is, instead of seeming to play in its own little sandpit.

I'll be at JavaOne in two weeks, and I'll report on my impressions there.

Friday, May 15, 2009

Intel's Turn at Monopoly

It's about time. I've been wondering where all the competition watchdogs have been the last few years. Surely the recent dominance of Intel-based computers over AMD wasn't due to product superiority!

At last, the European Union has woken up and taken Intel to task for abusing its monopoly. And how! 1 billion Euros should hurt even a company raking in monopoly profits.

I hope that with increasing regulatory oversight, prices of hardware and software will fall even lower.

Microsoft had better take note, because there's surely a similar level of monopoly arm-twisting going on in the Netbook market. At price points like $300, there's no way a Windows Netbook can be cheaper than a Linux-based one when taking into account OS licence fees. In a competitive market, OEMs would be scrambling to shave off every possible dollar from the price of their offerings. Yet, it's very rare to find a Linux-based Netbook even today. Surely it's not the lack of user-friendliness of Linux. Check out Ubuntu today. Surely it's not the lack of applications for Linux. Take the most popular application, the office suite. Linux comes bundled with OpenOffice. You have to pay extra for MS-Office. How do Windows-based Netbooks even sell? How? How??

I'm waiting for the new US administration to follow the EU in returning to a tough stand against monopolies.

When the playing field is level and fair, I believe we will soon see $50 Netbooks running either Intel or AMD chips. And Microsoft will go bankrupt.

Tuesday, May 12, 2009

The Next Target for SpringSource?

I'm convinced there is a new powerhouse emerging in the Java enterprise domain, now that the Sun has virtually set. SpringSource is rapidly entering the radar of industry watchers with its recent acquisitions. These acquisitions extend its reach outwards from its core strength (application frameworks), both downwards (the Apache products through the Covalent acquisition) and sideways (the acquisition of G2One and the Groovy/Grails toolset, Hyperic and its enterprise monitoring tools). While important, these acquisitions have all been rather technology-focused and limited in mainstream commercial potential. Now logic demands that SpringSource move up the stack into userland.

Up the stack, there are plenty of soft, juicy targets ripe for the plucking.

Among the softest targets is Enterprise Content Management. Gartner's Magic Quadrant has the usual suspects in it: IBM, Oracle and Microsoft, plus EMC and OpenText. None of them is particularly known for affordable pricing, except perhaps Microsoft (which is known for predatory pricing - killing off competitors before turning on the customer.)

I believe there is pent-up demand (especially in this economic climate) for an affordable ECM product that provides Document Management, Records Management, Image Management, Web Content Management and Collaboration.

There are many Open Source products in this category - Joomla!, Drupal, Plone and Alfresco. If SpringSource acquires (or otherwise takes over the stewardship of) one of these products and gears itself up to offer comprehensive support, training and consultancy around it, they could enter the big league.

The SharePoint phenomenon is rich in lessons to be learnt. By all accounts, SharePoint is a bear to install and maintain. Yet it's growing like a weed in thousands of organisations worldwide. A reasonably-priced alternative with strong support can carve a good chunk out of this market. Plus, my technical suggestion (putting on my architect's hat) is for this alternative to ensure adherence to the CMIS standard. CMIS is still only a proposal, but Alfresco is already implementing support for it, I understand. (It'll be a great coup to be able to tout AtomPub as the interface to content :-). This isn't just a nerdy bragging right. Integration costs are probably the biggest component in any rollout, and integration should be a breeze with the RESTian AtomPub interface.

My only caution, as before, is that SpringSource should be careful not to get too greedy. The customer is the goose that lays the golden eggs. If SpringSource scrupulously respects the freedom of its customers (including the freedom to shop elsewhere for the same products), they'll definitely see more business flowing their way.

Sunday, May 10, 2009

The Unsung Wonder Called DHCP

Some of the best features of the Internet are unglamorous. DNS, for example. We would be typing in raw IP addresses into our browsers and keeping personal directories of our favourite websites' IP addresses without DNS to derive them from more human-friendly domain names.

I realised the worth of another such humble Internet protocol last week, when I helped a friend install Ubuntu onto his laptop. His motive was fairly standard and increasingly common - growing exasperation with the number of viruses and malware that regularly infected his Windows laptop.

At any rate, what amazed me was not the ease with which I was able to install Linux on a machine. Ubuntu's friendliness and speed of installation (under 30 minutes) no longer surprise me, although they're still pretty impressive.

He brought his laptop to my house and I hooked it up to my network when I installed Ubuntu 9.04. Ubuntu quietly detected the network, reached out into the Internet and downloaded all the updates that had been released after the release of 9.04, then announced that it was all done. So far, nothing extraordinary (although it's a poke in the eye to those who claim Linux still isn't friendly enough or "there yet" - try installing Windows with as much ease.)

The real wonder was when he went home with his laptop, plugged it into his network and booted it up. Everything worked straightaway. He was online immediately.

It was then that the power of DHCP (Dynamic Host Configuration Protocol) struck me with full force. I didn't have to configure his laptop's IP address. DHCP allowed the laptop to pull its IP address from a server on the network. In the case of both his home network and mine, the DHCP server was the cable modem/router.

This episode reinforced two important lessons for me:

1. Open standards are very powerful. DHCP is an open protocol owned by no proprietary vendor. The manufacturer of his router and mine just don't matter. Mine's NetGear. I know it because I happened to look at the name on the box. I didn't have to know it in order to set up anything. I still don't know what make his router is. And everything still works.

2. If it wasn't already blindingly obvious, loose coupling is perhaps the greatest factor that facilitates ease of integration. DHCP makes it unnecessary to configure IP addresses statically. What if his private IP network is 192.168.0.x and mine is 10.x.x.x? It just doesn't matter. The D in DHCP stands for "Dynamic". The "late binding" that it allows makes all the difference between a smooth installation and one with frustrating setup and numerous support calls.

Though I'm a tech-head who would normally be expected to favour "cool" technology, I'm beginning to think technology actually needs to be boring in order to work well. Boring is the new cool.

Thursday, May 07, 2009

Open Source's Assault on the Enterprise Data Centre

This week's announcement of SpringSource's acquisition of Hyperic, a maker of Open Source enterprise monitoring software, made me think about a number of things.

1. What does this mean for the prospects of Open Source within enterprises, especially in data centres?
2. What are the prospects for SpringSource as a company? Crucially, what are SpringSource's strategic intentions?
3. What do these trends mean for customers, users and the community as a whole?

I keep reading about how Open Source's prospects have paradoxically brightened thanks to the deepening economic gloom. For all the wrong reasons, enterprises are now looking to Open Source. I say their reasons are wrong because short-term cost savings in the form of lower licence fees are not the major advantage of using Open Source. The opportunity to control their own destiny, free from coercion by vendor agendas, is the greatest benefit, and this can deliver savings far in excess of the measly amounts that licence fees alone would suggest.

I believe that the increasing profile of Open Source in the enterprise software stack is a good thing for user organisations, with some qualifications that I will come to later. I have believed for some time, based on my experiences in large commercial organisations, that proprietary software (and hardware) companies manage to earn a hefty premium from corporate customers on the basis of benefits that are more mythical than real. There is a certain type of corporate decision-making animal that wants to be convinced and comforted by the brand shorthand of large vendors that spell safety, reliability, and a general "enterprise classness". Thus a WebSphere "has to be" better than a Tomcat, an Enterprise Service Bus "has to be" better than simple REST, and an AIX, HP-UX or Solaris "has to be" better than Linux. They cost so much more, so they've got to be better. Cheaper alternatives damn themselves by being cheaper.

How can this mentality be overcome?

It's instructive to consider the hardware market. The most dangerous stealth assault weapon in hardware is the Intel platform. I made the mistake of underestimating the potential of Intel in the early nineties. Those who worked in the industry in the nineties would remember a product category called the Unix workstation. Unix workstations were desktop machines used by the elite in the IT industry. Compared to Unix workstations, Intel PCs were woefully underpowered apologies for computing platforms. Lowly, second-rate developers wrote applications on PCs using pathetic tools like FoxPro. Real developers (like me) built high-end applications using real tools like Oracle Forms on workstations.

Well, the bottomline is that today's generation of developers has probably never heard of a Unix workstation. The puny, pathetic PC platform, like an imperceptibly rising tide, completely swamped its high-end cousin. The tables turned swiftly. "Underpowered" no longer was. That change swiftly repositioned the alternative as "overpriced". End of story.

Today, the Intel assault continues, this time against big iron in the data centre. I'm frankly skeptical about the value proposition of big iron. Intel power and capability are constantly rising, and its price-performance trend continues unabated. The ability of Intel to virtualise is changing the game rather rapidly. The argument in the data centre, like on the desktop, will shift from "underpowered" to "overpriced" in short order, and big iron will be out. Big Unix will go first, followed by mainframes when organisations can wean themselves off their legacy mainframe applications.

But as on the desktop, the Intel platform cannot prevail against the incumbent without the help of software. And that's where the SpringSource acquisition drops a piece of the jigsaw puzzle into place. Hyperic now challenges enterprise monitoring tools like IBM Tivoli, HP OpenView and BMC Patrol, providing similar capability at a fraction of the price. The pattern is familiar.

For a while, corporate decision-makers will hesitate, reluctant to abandon the comfort blanket of familiar brand names from the big end of town. But I suspect the growing pressure to find cost reduction opportunities in the current climate will force many of them out of their comfort zone. Many of them will sample Open Source. Most, I suspect, will like what they find, once they overcome their own mental roadblocks. [I have never ceased to be amazed at the reluctance of customers of software to choose options that will give them control of their own destiny. No wonder Marx had to exhort workers to unite with the reminder that they had nothing to lose but their chains. Humans seem to prefer the comfort of familiar bondage to unfamiliar freedom. It's the Matrix's choice of red pill (harsh reality) and blue pill (comfortable illusion). Many actually prefer the blue pill. It's only when the blue pill is no longer an option will they try the red pill.]

But that brings me to the qualification I expressed earlier. I support the notion of Commercial Open Source as long as certain principles are respected, the main one being the ability of users to control their own destiny. SpringSource and its increasingly powerful stack of products (Tomcat or tc Server, the Spring framework and now Hyperic) are most definitely liberators when compared to the gouging data centre vendors that we all know and (don't) love. But will SpringSource stay faithful to the Open Source social contract?

I believe that software must be collaboratively developed to amortise the costs of development among a number of developers and thereby reduce the requirement to show a return on investment on the core product. That is the fundamental difference between the Open Source development model and the proprietary one. Proprietary software is forced to show a return in the form of per-copy licence fees because it is funded by an investment model. Open Source is not, because its funding can follow an expense model with development costs written off, or amortised. Thus Open Source appears "fairer" because it doesn't charge "rents" on copies of software whose marginal cost of production is actually zero. Commercial Open Source carries this model to its logical conclusion by only charging for non-repeatable services that cannot be stored and replicated, such as training, consultancy and support.

So far, SpringSource as a company has followed the book on Commercial Open Source. Their products tend to be freely downloadable (with some exceptions such as their "enterprise" versions), and organisations can run them without having to pay either licence fees or support fees if they can also maintain them in-house. There is sufficient documentation available to give users control of their own destiny, which is the crucial benefit of Open Source.

My fear is about the future. Will SpringSource continue to maintain a benign pay-for-services model on top of genuinely Open Source products, or will they go the way of so many others before them (like Compiere), and be tempted to convert their stewardship of a powerful stack of enterprise software into a model with tighter control and less user freedom? I sincerely hope they can avoid the temptation of greed, because the long-term benefits to them as well as the rest of the industry are much higher if they retain a light touch. A tighter grip will make their users want to wriggle free. Witness the challenges of Adempiere to Compiere, MariaDB to MySQL and CentOS to Red Hat Linux. If a commercial entity seems to wield an unhealthy degree of influence on an Open Source product, the tendency to fork the project will increase, to the detriment of all (the company more than the community, ultimately). It's a bit worrisome that only SpringSource employees have commit rights to their software. A more inclusive and meritocratic development community around products under SpringSource's stewardship would allay user apprehensions and pre-empt such forking.

This month's Indian elections underline my point. How could an incredibly diverse country of over a billion people have stayed united and largely peaceful for over sixty years? Only by giving those people genuine control over their own destiny through democracy. Much smaller and more ethnically homogeneous countries have been less successful at this.

In future, SpringSource could attain sufficient gravitational mass to pull the stewardship of the Java platform itself into their orbit. If they can avoid the temptation to tighten their grip, "monetise" their influence or otherwise break faith with the community, they can look forward to a (gradual) rise to a position of pre-eminence in the enterprise software market.

The current big names in the enterprise data centre have the most to fear from this development. If SpringSource is wise, the enterprise market is theirs. Customers will gladly give them their business in return for guaranteed control of their destiny.