Google Gears was developed to introduce a new breed of functionality into existing web browsers, enabling them to locally store and sync resources, store and sync structured data, all without locking up the browser. Some of the Gears-enabled websites are: Google Reader, Google Docs and Wordpress, that allow the user to take advantage of the above features.
While most of the current use cases of Gears attempt to address only the offline access and syncing part of the offering, there is a possible use case for Gears that has not been fully exploited yet. You can easily use Google Gears for distributed computing too. I am just surprised that we have not seen any such project on the horizon yet.
To do distributed computing with Gears, the enabled website becomes the master node that would break down the task into chunks the nodes can handle. The master node would also maintain chunk status as assigned to nodes, marking each chunk as in-progress, unprocessed and processed.
At the client end, each node can download a chunk or a group of chunks and process them in the background. If the client is in the offline mode, it can wait till it gets to be online again and sync up with the master server. This does imply that there is the potential for a lot of wasted processing if clients wind up being frequently online, but any distributed computing application will assume degrees of wasted cycles.
Does all of this sound eerily familiar? It does, because it is basically just a Gear-ed interpretation of Map Reduce. Gears can very much take on the excellent work already being done by seti@home or folding@home and carry it further, taking advantage of an already existing huge installed base of Firefox and eliminating the need for separate client-server infrastructure for such projects.
