13.1 Synchronization and MobilityIsolated mobile databases are just discrete islands of data packets. Backend databases play an essential role to glue mobile databases together to form a complete IT network.Most business processes require field data to be aggregated at the back end for centralized decision making and access control.Mobile users need to get periodic data updates from the enterprise back end. For example, a sales representative needs to update his inventory database with new data from the warehouse server several times a day.The backend database is a content provisioning hub for mobile databases. This reduces the complexity of distributed data management.The backend database is also a backup repository for mobile databases. This reduces the chance of data loss from dead batteries or lost devices. 13.1.1 The Disconnected but Synchronized ArchitectureAs we discussed in Chapter 11, the need for the backend database does not always justify always-on connectivity. For most applications, the changes on both ends are not time critical and several-times-a-day updates are more than enough. That allows us to design disconnected but synchronized mobile applications. Under that architecture, the backend databases do not need to synchronize every little change at real time. It is a scalable and reliable solution (see Figure 13.1). Figure 13.1. The disconnected but synchronized mobile application architecture.![]() The technical challenge for the synchronized mobile database architecture is to develop efficient, secure, and reliable two-way communication channels between mobile databases and back ends. This is where mobile database vendors sell their value-added proprietary synchronization solutions. 13.1.2 Mobile Database SynchronizationMobile database vendors offer synchronization engines that synchronize their mobile databases to either their own or third-party backend databases. A typical synchronization engine works as the following. The process is also illustrated in Figure 13.2. Figure 13.2. The synchronization process.![]() The synchronization engine (a.k.a. server) is part of the mobile middleware. It connects to both backend databases and the mobile devices it serves.We can configure the synchronization server and specify which backend tables are available (publication) to which users. Filters and custom conflict resolution logics can also be programmed into the synchronization server.The synchronization server connects to backend databases using open protocols like JDBC or database-specific protocols. Proprietary protocols allow the synchronization engine to take advantage of database-specific features and optimization.Mobile databases connect to the synchronization servers via proprietary protocols. Those protocols take advantage of vendor-specific optimization to reduce bandwidth usage, minimize workload on the device side, and enhance security.
|