Java makes Google App Engine more mainstream
As cloud computing gathers steam, Google gives programmers what they've been asking for by gracing its App Engine with support for Java programs.
Corrected at 11:53 a.m. PDT. See below for details.
MOUNTAIN VIEW, Calif.--In a case of converging technologies, Google App Engine took several steps toward the mainstream on its first birthday Tuesday at the same time that the concept of cloud computing in general is becoming more accepted.
Cloud computing presents applications as Internet-accessible services rather than software that runs on corporate servers or people's own PCs. It can mean anything from raw computing services that can be bolted together, as in the case of Amazon Web Services, to finished products such as the Picnik photo-editing site or SalesForce.com customer-management service. Google App Engine is an intermediate level, offering a general-purpose foundation.
Thus far, App Engine had been limited to Web applications written in the Python programming language favored internally at Google but not as much elsewhere. But on Tuesday, the top-requested App Engine feature, support for Java programs, arrived--albeit only in a initially available only to the first 10,000 developers who sign up.
"It's the language of the enterprise," said Ryan Nichols, leader of product management and marketing at Appirio, a 140-person start-up that builds software for clients who want cloud computing applications. "It allows us to have a different level of conversation with our customers."
Google announced the Java support and a handful of other new App Engine features on its blog and at a Campfire One event for developers at its headquarters here. As with the regular App Engine service, use within certain limits is free, but developers must .
The idea of cloud computing is catching on, and Google is a major proponent. Even Microsoft, whose twin cash cows of Windows and Office today are tethered to physical machines, plans cloud-based versions of both those products.
About 150,000 developers have built 50,000 applications on App Engine so far, Google said, and those apps draw about 100 million page views per day. The most popular is BuddyPoke, which provides social networking sites with an application that people add and control avatars. It's got 35 million users, and meanwhile, BestBuy, eBay, and Forbes "have started to outsource pieces" of their computing operations to App Engine, said Graham Spencer, a Google engineering director.
Cloud computing can bring penalties such as primitive user interfaces, long waits for services to respond, and problems when the network is down or unavailable. In-house computing systems aren't infallible, but when, customers are beholden to another company's skills at restoring them.
But all these areas are being addressed, and cloud computing has some advantages, too. Online documents can more easily be shared or collaboratively authored. Applications are available from a variety of computers and mobile devices. And for those willing to yield control, another company bears the burdens of system management and data backup.
Google also announced a handful of other developments that make App Engine more useful for regular programmers:
Through a feature called Secure Data Connector, App Engine can incorporate private data stored servers behind company firewalls, said App Engine Product Manager Andrew Bowers. For example, information from a company's sales database can be retrieved by App Engine and displayed in a Google Docs chart.
Using a command called "cron," App Engine can perform some automated actions timed in advance to take place, such as collecting daily statistics and e-mailing them to an administrator, Bowers said.
App Engine is getting better tools for import and, later this week, export, so it's easier to move information stored in conventional databases to App Engine and back, said App Engine Product Manager Mike Repass. For example, custom instructions can be applied to help convert the data.
Java: a natural fit
Sun Microsystems first released Java in 1995 as a way to add pizzazz to Web sites, but it caught on commercially as a way to run server software such as online banking applications. Java's design insulates software from the particulars of the hardware it's running on, so in a way building it into Google App Engine is a natural extension of the technology.
However, there are differences. On the plus side, running Java programs on App Engine means administrators won't have to worry about whether they have enough servers to handle a spike in traffic.
But because App Engine stores data with Google's BigTable technology rather than the conventional SQL databases, programmers will have to use newer interfaces such as Java Data Objects (JDO) or the Java Persistence API (JPA) rather than the older Java Database Connectivity (JDBC) standard, said Kevin Gibbs, App Engine's technical leader.
Google aims to comply with Java standards, though it offered cautionary words about the preliminary nature of App Engine's Java support. It hasn't passed Sun's Java certification tests, and Google wouldn't comment on whether it plans to do so or on whose Java foundation it actually uses under the covers.
Overall, programming Java on Google App Engine should look more familiar than not to Java programmers, Gibbs said. IBM, for example, demonstrated moving an App Engine Java program to its own WebSphere software using Big Blue's DB2 database.
"Hopefully, it'll be a matter of months when any Java developer can use it and be really satisfied," Gibbs said.
Corrected 11:53 a.m. PDT to note that the Java version of App Engine permits billing.