Introduction to server-initiated synchronization

Server-initiated synchronization allows you to initiate MobiLink synchronization from the consolidated database. This means you can push data updates to remote databases, as well as cause remote databases to upload data to the consolidated database. This MobiLink component provides programmable options for determining what changes in the consolidated database initiate synchronization, how remotes are chosen to receive push messages, and how the remotes respond.

Example

For example, a fleet of truck drivers uses mobile databases to determine routes and delivery points. A driver synchronizes a report of a traffic disruption. A component called the Notifier detects the change in the consolidated database and automatically sends a message to the remote device of every driver whose route is affected, which causes the drivers' remote databases to synchronize so that the drivers use an alternate route.

The notification process

In the following illustration, the Notifier polls a consolidated database and detects a change that it has been configured to look for. In this scenario, the Notifier sends a message to a single remote device, resulting in the remote database being updated via synchronization.

The process of server-initiated synchronization.

Following are the steps that occur in this example:

  1. Using a query based on business logic, the Notifier polls the consolidated database to detect any change that needs to be synchronized to the remote.
  2. When a change is detected, the Notifier prepares a message to send to the remote device.
  3. The Notifier sends the message. By default, it uses the same protocol as you use for synchronization. Alternatively, you can set up UDP or SMTP gateways for it to use.
  4. The Listener checks the subject, content, and sender of the message against a filter.
  5. If the message matches the filter, the Listener runs a program that has been associated with the filter. For example, the Listener runs dbmlsync or it launches an UltraLite application.
Connection-initiated synchronization

In addition to initiating synchronization on the server, you can also initiate synchronization using internal messages that are generated by the Listener on the remote device. These internal messages indicate a change in connectivity, such as when a device enters Wi-Fi coverage, the user makes a RAS connection, or the user puts the device in the cradle.

See Connection-initiated synchronization.