Java-as-a-Service: a sweet brew, or a bitter grind?

JavaScript code displayed on monitor
(Image credit: Shutterstock)

There were a lot of news announcements coming out of Oracle’s Open World conference. Some of it was substantial, while a good deal was PR spin and some received little attention, but could end up having a significant effect on the way that programming in the cloud is handled in the future.

Java always seems a bit of the poor relation of Oracle. Acquired as part of the deal that brought Sun to the Ellison empire, it never seems to be regarded as main part of the family – in a wedding photo, it would be the one sandwiched in the back row, half-hidden by the bride’s exceptionally tall uncle.

You can tell Java’s status by the fact that its events aren’t part of the main conference but are held in meeting rooms down long hotel corridors. Despite this, there was plenty to talk about, with plenty of optimism for the future - notwithstanding some unspeakable zero-day vulnerability flaws that surfaced earlier in 2013

Oracle Java Central (or whatever they call the mothership) still claims to have seen a 10 percent increase in Java user groups during the year and that’s before we talk about the major new release of Java EE 7 to get excited about too.

So the future is bright for Java then?

VP of Java product management Peter Utzschneider is very upbeat: “The combination of mobility and social have created an incredible amount of new data, of people interacting, sharing and producing things with new services and new applications, all being driven by massive infrastructure, mostly running on Java.”

So, will Java find its movement to cloud-based Internet-fuelled virtualised-only platforms without much trouble too then? Not really; despite Java’s “born on the web” (or pretty damn close to it) pedigree, the true transition to “programming in the cloud” hasn’t really been talked about half as much as it should have been.

From Oracle’s perspective it’s a case of “we have loads of SaaS apps running, so let’s make Java fully service-based too” - which is the informal way of saying Oracle has just made Java-as-a-Service available. This will help “support a wider variety of workloads” says Oracle, and allow full control of dedicated Oracle WebLogic server clusters, support any Java application and gives users greater flexibility and choice over their services.

What Oracle appears to mean by Java-as-a-Service, is Java the platform, not the language in the first instance. The Java application server can reside in the cloud, but the programming element should still reside here on Earth. The notion of an “online language” is still something of an oxymoron, but this will surely not always be so.

So are Oracle’s moves intelligent and enriched with much needed technological foresights, or are they merely corporate and self-serving?

The emergence of Java-as-a-Service comes under the umbrella of the Oracle Database-as-a-Service offering. This provides dedicated database instance(s) running on the firm’s own VM virtualisation, based on tested configurations with support for any database application, language or connection method. Perhaps then it should have been called Java-as-a-Service-Inside-a-Database-App or some such variant.

This is Oracle saying to developers “build your Java app and it’ll sit nicely on Oracle”, this is not Oracle saying “we have a bunch of on-demand Java services for you to help build, augment, test and debug your app” as such.

Although that being said, this does offer a route to an elastic compute service, which is compatible with OpenStack Nova and provides virtual CPUs to which Oracle Virtual Assembly Builder assemblies and Oracle VM templates may be deployed.

The “how do we actually program for the cloud” question may not be quite taboo, but it has been uncomfortably glossed over for many people’s money.

Utzschneider notes that his team now has to “rethink security” and work out how services can move from being container-based to a more service-based model. The Java team wants to be able to move its applications from physical infrastructure to the cloud, but also be able to port it to a different cloud if we wish. It’s still all about post-development migration to cloud though.

Al Hilwa, programme director for software development research at IDC, asks what do we mean by a language in the cloud anyway? “Java EE code generally runs on the server and thus in the cloud, but if you are wondering about the IDE, or authoring the language in the cloud, then you are right, that is still being done by client-side IDEs like Eclipse, JDeveloper or NetBeans,” he says.

IDC’s Hilwa goes on to say that Oracle’s new Java-as-a-Service offering is essentially WebLogic-as-a-Service. “It is oriented towards enterprises who have existing applications built on WebLogic and want to take advantage of cloud economics to run them. These may be burst workloads that extend on-premises applications during peak loads, or they may be testing workloads etc. This is a sound approach for Oracle to take its customers to the cloud, but it is not to be confused with what is being offered by other PaaS providers today.”

Where perhaps this differs from what many PaaS vendors are doing (let’s include Cloud Foundry, Heroku and EngineYard) is that the Oracle model remains virtual machine (VM)-bound in terms of scaling. "In Cloud Foundry, the application is the unit of scale, not the application server and virtual machine, said Andy Piper, developer advocate for Cloud Foundry, speaking at a recent conference.

So, a lightweight container technology is used to enable many application instances to be packed into a single VM instance - and this is said to “drastically” improve cloud economics.

This approach is also argued to enable greater focus for developers, who can work on their code and application without needing to worry about the underlying infrastructure. In this way, applications can be scaled independently and pretty fast. In summary, the route to a “real cloud application” is a cobbled street right now with more than one path open to the intrepid hiker.

Cloud applications are one thing, cloud programming is another thing, but cloud languages and virtual application development is yet another - but not for too long perhaps?