The free Android phone was a splash at the 2009 Google I/O Conference, but the company's introduction of six novel technologies was something more like a tidal wave. Here's Linux Magazine's report. The future starts now.
The Google App Engine and Java
If you want to run your enterprise application on a high-speed, high-bandwidth corporate server, many companies will be happy to arrange a lengthy, lock-in contract. Or you can try Google’s App Engine, a markedly different approach.
Google App Engine is a cloud computing service. There are no set-up or obligatory charges—you only pay for the resources you use and the fees are slight: 12 cents for every outgoing gigabyte; 10 cents for every incoming gigabyte; ten cents for every CPU-hour; and fifteen cents for every gigabyte of data stored per month. If your application can operate on limited resources, there’s no charge at all. See the App Engine site for details on application quotas.
During his keynote presentation, Google CEO Dr. Eric Schmidt announced that the Google App Engine would now be open to all Java developers, too. But there’s more to the Google App Engine than the ability to run Java. It also provides the same scalable, high-performance resources available to Google’s own applications, including its search engine.
Enterprise developers using the Google App Engine can access five new capabilities:
- The Datastore is a scalable, distributed resource for storage of persistent data.
- Memcache provides rapid access to results of datastore queries.
- URL Fetch accesses other Internet resources and applications.
- Images manipulates and transforms image data.
- Cron Jobs schedules tasks for specific times.
The Walk Store application, seen here, is built on the Google App Engine, and its developers discussed their experiences during one technical session. While their site’s performance was poor at first, the application sped up dramatically as the team became more familiar with load testing, memory caching, and the App Engine’s distributed data storage. Ultimately, the developers said they were very pleased with Google App Engine.
Tools for running three-dimensional applications over the Internet have been around since the Virtual Reality Modeling Language (VRML) emerged in the early 1990s. But while VRML use has waned due to lackluster performance, Google’s O3D plugin for Chrome accesses the client system and makes use of native hardware acceleration. Thus, if your Nvidia graphics card can support the latest PC shoot-em-ups, you can get similar speed and responsiveness in your browser. If no graphic acceleration is available, O3D can render three-dimensional scenes in only software.
During the conference, Google engineers demonstrated a full three-dimensional rendering of a forested beach, complete with waving trees and patterns of light reflecting off the water. The advanced lighting and textures were made possible by the O3D Shading Language, which closely resembles Nvidia’s Cg and Microsoft’s High Level Shading Language (HLSL). This language makes it possible to specify per-vertex and per-pixel operations, and then executes these operations directly on the client’s hardware.
Presently, O3D browser plugins can interact with any graphics card that supports DirectX 9 and Pixel Shader 2.0. To download the O3D plugin, visit Google’s O3D site.
Google Web Toolkit 2.0
What’s the Google Web Toolkit? CEO Schmidt put it best: “We used to say ‘Write once, run everywhere’ with Java in my old job. But now it’s ‘Write once, run on any browser.’”
The Future of Computing
All of the Google initiatives may not seem related at first, but the ultimate goal is clear: Google wants to improve the state of web applications to meet and exceed those of desktop applications. With GWT, Elements, and App Engine, Google is making it much easier for developers to design and deploy complex Web applications. As Google’s technologies progress and mature, a future where everyone relies on Google Wave for e-mail and instant messaging, and plays high-speed computer games through their O3D-enabled browser seems more and more likely.
This raises a number of important questions. As Web applications become more and more capable, what tasks will continue to run on the desktop? What roles will the operating system play besides providing an execution environment for a browser? And what about privacy? How will we keep prying eyes away from all our online data? How will we keep Google away?
It’s hard to come up with any helpful answers at this early point in the evolution of web applications. But for more information, Google I/O 2010 promises to be a good place to investigate.