Figure 1. MobiLink synchronization server architecture
MobiLink allows you to choose selected portions of the data for synchronization. MobiLink synchronization also allows you to resolve conflicts between changes made in different databases. The synchronization process is controlled by synchronization logic, which can be written as a SQL, Java, or .NET application. Each piece of logic is called a script. With scripts, for example, you can specify how uploaded data is applied to the consolidated database, specify what gets downloaded, and handle different schema and names between the consolidated and remote databases. Event-based scripting provides great flexibility in the design of the synchronization process, including such features as conflict resolution, error reporting, and user authentication.
All changes can be uploaded in a single transaction and downloaded in a single transaction. At the end of each successful synchronization, the consolidated and remote databases are consistent. (To preserve the order of transactions, you can also choose to have each transaction on the remote database uploaded as a separate transaction.) Either a whole transaction is synchronized, or none of it is synchronized. This ensures transactional integrity for each database.
Figure 2. Steps taken during a synchronization session