Mozilla2:Device Sync:Overview
Author
Dan Mosedale <dmose@mozilla.org>
Goal
Have a device (eg PDA, cell-phone) syncing story for the Mozilla-based applications on the big three platforms. In practice, the most critical data sources for syncing will be related to Calendar:Device_Sync (events, todos) and mail (addressbook, emails), though other things such as bookmarks may also turn out to be interesting.
Requirements
- tie in to the host platform's native syncing architecture, where applicable
- be usable with all major groups of devices (Palm, Windows Mobile, various phones)
- should function whether or not the primary Mozilla UI Apps in question (e.g. Sunbird, Thunderbird) are executing
- provide a basic API to allow developers to easily write conduits for their preferred synchronization architecture
Existing work
- Addressbook synchronization for the Palm on Windows is already implemented. At first glance, the code appears to be highly specific to both the Palm and Windows. The architecture document is worthwhile reading.
- sync.mozdev.org has a basic framework for Calendar synchronization as well as an implementation for Linux (I think this has not been updated to account for Calendar:The Great Refactoring, however).
Strategy
The key thing to do here are to decide how to best focus our efforts as far as exposing sync functionality to the user. As far as I can see, we need to start by writing one of:
- A single conduit for a cross-platform architecture.
- A set of platform-specific conduits
- A minimal SyncML server
Whichever of these we choose, the first big step will be fleshing out Mozilla's sync API such that writing any given conduit will consist of writing relatively simple adapter code to the conduit or SyncML API.
Issues
Known issues that need to be dealt with/thought about:
- intellectual property rights & licensing
- IPC for conduits
I'll add more about the above stuff soon.