Sunday, August 9, 2009

Google reveals plans for Chrome cloud synchronization



Google has revealed plans for a Chrome cloud service that will allow users to synchronize browser data with their Google accounts. The synchronization framework, which is still at an early stage of development, will arrive in Google's open source Chromium project later this week. Google says that a Chrome build with the sync feature enabled could be made available through a dev-channel update this month.

In a message posted to the Chromium developer group, Google engineer Tim Steele described the process through which the feature will be integrated into the browser. Google has also published a design document that provides a high-level overview of the synchronization architecture.

"A bunch of us have been working on a feature to sync user data in Chromium with a Google account," Steele wrote. "We have built a library that implements the client side of our sync protocol as well as the Google server-side infrastructure to serve Google Chrome users and synchronize data to their Google Account."

The Chrome synchronization framework will initially handle bookmarks, but it is designed to support other kinds of browser data in the future. It uses a push messaging model to propagate change notifications, which means that activity in one instance of the browser will be reflected immediately in other instances. This will make it more seamless than other bookmark synchronization services like Weave and XMarks that rely on polling to determine when data needs to be synchronized. Google also plans to provide a Web interface so that users can remotely access their bookmarks from any browser by logging into their Google accounts.

The synchronization framework will use a persistent XMPP connection for change notifications. The Google Talk servers will provide the backend infrastructure for that part of the synchronization process. The actual bookmark data will be transmitted in Google's Protocol Buffer format. The design document suggests that XMPP was adopted instead of a polling model for scalability reasons and to make synchronization more seamless.

Steele says that the sync code represents a major change to the browser's code base and that it will be landing in the Chromium tree incrementally so that it can be properly reviewed. The client-side sync code currently works on Windows and Linux but doesn't work yet on Mac OS X. To enable broader testing, the developers plan to make available an experimental Chrome build for Windows with the synchronization feature enabled; it will be deployed through the developer update channel later this month.

"We're planning to use the syncapi DLL to produce a sync-enabled Google Chrome build for dev-channel users in a week or so, to get the feature into experimentally inclined hands," Steele wrote. "We have a great deal of infrastructure, both in the browser and in the form of production Google services, that needs to start seeing real user traffic and usage. It takes a great deal of testing and confidence inspired by real usage statistics before any complex system like this can be deemed adequate for use by a large user base."

Browser sync will boost the value of Google's browser and advance Google's strategy of converging the desktop with the cloud. It's a particularly intriguing development in light of Google's upcoming Chrome OS. Seamless synchronization of browser data between a desktop and netbook could be a very compelling feature. It's not clear yet if Google will also bring this feature to its Android mobile browser, but it seems like an obvious move.

Google intends to document the protocols and make the client-side source code available under an open license, which means that it could be possible for third-party developers to bring Google synchronization support to other browsers. This will be a welcome development for users who still mourn the loss of Google's Firefox browser sync, which was discontinued last year.
http://arstechnica.com/open-source/news/2009/08/google-reveals-plans-for-chrome-cloud-synchronization.ars

No comments:

Post a Comment