Tuesday, November 20, 2007

Google Gears

The new buzz word in the web applications market is “Browser extensions”. You may be already aware of Silverlight technology from Microsoft.Now, there is something from Google as well. Google has introduced an open source browser extension called as Google Gears. Though it is still in preliminary stage, developers can use to build future applications.

For .NET developers, the word ‘Smart Client’ is pretty much known. Windows applications can be downloaded using the URL and then run locally using .NET CLR. Users of the application can sync with latest version of the application available on that URL. Now, if you apply this approach broadly to web based application, you will get smart web applications. Isn’t it? These smart web applications will have their own resources to cater user’s needs when offline. This concept has been extended by Google Gears so much that you can actually have web applications running locally now and contacting server on demand basis or when required only.

In order to make your applications Google Gear enabled, user will have to download and install Google Gears from the Google website. Google Gears (or GG) has used AJAX extensively such that now you can have data layer in the client side code. Isn’t it amazing? Developers have been writing web applications since so many years. Now, the time has come for these developers to revisit and re-architect architectures for such applications. Trust me; these designs can be really complex sometimes. Okay, so what is GG all about? Basically, it contains following things:
1. Local server: It caches all the resources like HTML, images, media etc. locally and serves user requests.
2. SQlite database: A data store used for caching the data locally. Then synchronization of this data with the actual server data is big thing.
3. A Worker Thread Pool: It makes application more responsive. Now, one can do so many things in the background using worker thread pool.

One may ask that what Architects have in store for them? Well, first thing is that while architecting offline applications, they need to think about modality of the applications. Then which features should be supported in offline mode and which features in online mode. They also need to think if they really need modal applications or modeless applications. Next big thing is data synchronization. Should this be automatic in the background or manual? Answers to all these questions actually depend on the application’s requirement.

Should you want more information on GG, you can visit this URL.

Cheers,
Amol

No comments: