Google Native Client challenges Microsoft and Adobe RIAs
If only they can get the security to work
Google is entering the rich-client game with a project allowing online applications to tap your desktop through the browser.
Google has so far devised a version of Native Client for Ubuntu - the flavor of Linux that Google runs. Versions of Native Client for Windows XP and Mac OS X have been developed and tested. Native Client works with Firefox, Safari, Opera, and Google Chrome, with plans to support ARM and PowerPC.
Google has released the open-source Native Client code to take feedback from the security community, in addition to those in the broader open-source community.
The company has proposed a system of two sandboxes - called the inner and outer sandboxes - to prevent untrusted modules from the web running amok on your machine. Google has proposed a model where application calls are made using ptrace in Linux and Mac OS X. Access control lists have been proposed for Native Client on Windows.
You can read more about the proposed Native Client architecture here (warning: PDF).
However, Google wants consumers do be able to do things such as modify photos hosted on photo-sharing websites using their machine's processor and memory, rather than flogging the service provider's servers and or going out over the network - both of which produce delays.
Brad Chen, with Google's Native Client Team, blogged: "With the ability to seamlessly run native code on the user's machine, you could instead perform the actual image processing on the desktop CPU, resulting in a much more responsive application by minimizing data transfer and latency."
Also, Google wants such applications to be "browser neutral". In other words, to allow application and content creators to build their applications without needing to tweak for different browsers' idiosyncrasies or different levels of support for web standards.
Many will see Google's Native Client in terms of a head-to-head with Microsoft and a challenge to the Windows desktop - and there's certainly an element of truth to that view. Native Client could potentially provide more options for Windows-application developers interested in putting their software online and freeing themselves of dependency on the desktop or being tied into Microsoft's Silverlight browser-based plug-in for video and audio.
The challenge will be in how far Microsoft is willing to work with Google on making its Windows APIs open and available to talk to the sandbox architecture. That'll be one reason why Google is reaching out to the security community: to garner feedback and assistance.
Adobe Systems' Flash and AIR, though, are the real competitors here. Adobe is working on the same goals with AIR: to let applications on the internet or intranets access the data and processing resources on your PC and present server-side information in visually slick and pleasing ways.