Cloud-based Java offers risks and rewards

VMforce shows the revenue potential of Java as a service, but will the cloud model save the Java community or split it apart?

As the fallout from Oracle's acquisition of Sun Microsystems continues, customers remain rightly concerned as to how Oracle might try to wring profit from Sun's software portfolio, including the Java platform. True, most of that software is open source. But while Oracle has long contributed to various independent open source communities, it's much more reluctant to give its own products away. Most recently it slapped a $90 price tag on the OpenDocument Format (ODF) plug-in for Microsoft Office, a product that Sun offered free of charge. If that sounds reasonable, bear in mind that the minimum order is 100 copies.

Specifics of Oracle's future plans remain scant. For anyone seeking insight into how other Sun product lines will fare under Oracle's aegis, however, the ongoing attrition of former Sun execs can't be encouraging. The "father of Java" himself, James Gosling resigned in early April, saying he felt "pretty burned out and trashed" and that the future of Java had "become complicated."

[ Keep up with app dev issues and trends with InfoWorld's Fatal Exception and Strategic Developer blogs. | Follow the latest news in software development with InfoWorld's Developer World newsletter. ]

But fears that Oracle may soon move toward more aggressive commercial licensing for Java may be premature. For one thing, Oracle already has its profitable WebLogic line of Java EE products, which it gained in its $8.5 billion acquisition of BEA Systems in 2008. For another, there's more than one way monetize a platform like Java, as VMware and Salesforce.com demonstrated this week with the announcement of their VMforce joint venture.

Data Explosion iGuide
VMforce brings Java to the cloud On the face of it, Salesforce.com may seem like an odd partner for VMware. As the virtualization market has grown increasingly crowded, however, VMware has sought to break out of its niche and position itself as a provider of infrastructure for the cloud as well as the data center.

With VMforce, VMware and Salesforce.com offer a complete, pay-as-you-go platform for Java development. Customers deploy applications on Java runtime environments powered by VMware's virtualization technology. On the back end is Salesforce.com's Force.com platform, which provides data storage and the ability to interface with services for messaging, search, security, and identity management, among other features.

Notably, VMforce doesn't do Java EE. Applications run on a proprietary version of the Apache Tomcat server that has been optimized for cloud environments. When building their apps, developers can choose from ordinary Java objects, JavaServer Pages (JSPs), servlets, or the Spring framework, which is a popular alternative for customers who feel Java EE has grown too costly and cumbersome to be practical. (No real surprise there: Spring became a VMware product when VMware acquired SpringSource in 2009.)

What customers gain from this arrangement is the ability to deploy Java applications without worrying about purchasing hardware, maintaining an operating system, or tuning their Java runtime or their database. What VMware and Salesforce.com gain is a nice, monthly usage fee. In effect, they've figured out a way to profit from Java without ever selling a single license.

Don't be surprised if other platform vendors increasingly move toward similar platform-as-a-service (PaaS) models. If it can work for VMforce, it can work for Oracle. In fact, PaaS may well turn out to be the strategy Oracle uses to underwrite future Java development, instead of traditional licensing.

The pitfalls of platform-as-a-service

But can it really work? Although the concept is appealing, PaaS as a business model remains largely unproven. Microsoft plans to move its Windows Azure PaaS offering to a commercial production stage this year, but developers will be wary if they judge by Microsoft's own performance. Microsoft execs claim the cloud model will earn Redmond more revenue even as its customers pay less. Yet despite this paradoxical assertion, in truth Microsoft's online services division is hemorrhaging cash at an alarming rate, posting a loss of $713 million for the most recent quarter alone.

Past attempts to enable Java in the cloud should also give developers pause. For example, Google added Java support to its App Engine cloud platform last year, but Sun's Simon Phipps has criticized Google's implementation for supporting only a subset of Java classes, a "forbidden" practice that Phipps deems "wanton and irresponsible."

According to Phipps, when a large vendor uses its resources to back a specific configuration of the Java platform, developers inevitably begin coding to that vendor's implementation, rather than the accepted standard. That flies in the face of one of the foundational principles of Java, which is that an application that runs on one implementation of the platform should run on others without modification. If that principle breaks down, the Java community risks market fragmentation and manipulation, as when Microsoft tried to ship a nonstandard version of Java in the 1990s.

In a market driven by PaaS, the risk of such fragmentation is great. Already Google offers its subset of Java while VMforce encourages the use of Spring, and each platform is based on a unique cloud storage back end. When Oracle enters the market it will likely favor Java EE and a more traditional database. As a result, apps written for one platform will not be readily portable to the others.

To forestall this fragmentation, Phipps believes Java needs a specific "cloud profile" that defines a standard set of APIs and functions that are available to Java apps running in a cloud environment. That profile should furthermore be developed as a community-based effort, he says, adding, "If we allow each cloud provider in turn to define their own subset, we will be left in the same ugly position we have with Java on mobile phones."

There's just one problem with that: Oracle, now the driving force behind the entire Java ecosystem, arguably has a stronger interest in offering Java as a service than any other vendor. In such an arrangement, other players may be hard-pressed to make their voices heard, making fragmentation all but inevitable. Faced with that alternative, a licensing model may still be Java's best bet for the future.

This article, "Cloud-based Java offers risks and rewards," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in software development at InfoWorld.com.

Copyright © 2010 IDG Communications, Inc.

How to choose a low-code development platform