Mobile computing gives everybody access to their business or personal data everywhere, using devices like Personal Digital Assistants (PDAs), smart phones, mobile phones, and laptops. An online connection to a corporate datastore might not always be possible, due to lack of network coverage, for example. Sometimes even if a connection is available, using it might not necessarily be the fastest and most cost-effective way for the application to operate. In situations such as these, data synchronization is a key technology to alleviate those shortcomings.
Data synchronization allows a consistent local "copy" of various kinds of data, from a central corporate datastore or a service provider datastore on the user's device. It is therefore possible to look up or change data locally on the device without requiring an online connection to the master copy of that datastore. The simplest case is a user retrieving data for his local copy. Here, the application needs to get only the changes from the master datastore to the local copy, without copying the complete datastore again. Synchronization gets more complicated as soon as a lot of different users make modifications to their local copies of the datastore. Now, somehow, these modifications need to be reconciled between all copies of that datastore.
Data synchronization is the technology used to keep all these distributed copies of a datastore consistent by communicating the actual changes between these copies and by resolving conflicts that may arise due to contradictory changes in different copies of the same datastore.
Today, synchronization services support Personal Information Management (PIM) data, such as addresses, calendar entries, memos, and to-do's, as well as Relational Databases and file systems.
The following paragraphs describe the different possible synchronization topologies: one-to-one, many-to-one, many-to-many, and two hybrid versions. These definitions are followed by explanations of the different synchronization modes: local, pass-through, and remote.
The different challenges and problems that arise while keeping data synchronized are elaborated in the following part. This chapter closes with an overview of related standards organizations, most of which have chosen to change their synchronization technology in favor of SyncML®.