Reliable access to data is a prerequisite for enterprise applications. Exposing enterprise data to mobile should “do no harm” – the mobile platform must maintain and assure the accuracy and consistency of data over its entire life-cycle. Minor integrity violations, when not detected on time could cause further loss of data; avoidance of integrity violations is vital for the reliability and safety of the stored data. There are some very real issues with maintaining data integrity with offline mobile applications that need to be dealt with.
Other solutions follow the approach of ‘this is inevitable’ and often require a full refresh of data by the user at periodic intervals. This is too burdensome for the user.
Offline gets quite a bit more complex when you consider that mobile users and their devices frequently spend time in areas of “sketchy” or partial connectivity, where only a fraction of the network requests are completed successfully, requiring the system to handle interruption of the sync process. This can happen in many scenarios. The user’s network drops, they decide to shut down the app or switch the device to airplane mode while synchronizing.
When a mobile device synchronizes it is not just sending data from the server to the device. It is often sending data that has been created/updated by the mobile user and inserting/updating in the backend enterprise systems. An interrupted sync that is attempted over and over again can result in inefficient duplicate processing of data that has already been processed or data duplication that can lead to data integrity issues.
TethrOn tracks each sync from devices, from both the TethrOn server’s and the enterprise system’s perspective in the form of a sync-specific handshake. This is completely transparent to the user and the app and allows the system to avoid processing duplicate data or submit inserts or updates to the enterprise system that have already been processed, absolutely protecting against any data loss, corruption or duplication.
Conflicts are an inevitable part of working offline. Data may be modified on both the mobile app and on the enterprise application while mobile users are offline; when mobile users attempt to sync, conflicts between data on the mobile device and data on the backend system can occur.
Approaches that attempt to handle conflicts at the record level can cause a large number of false conflicts – any updates to a record on the enterprise backend will cause a conflict if the same record is also modified on the mobile device, even when the modified field values do not conflict.
<Record-Level Conflict Detection Graphic – two users updating different fields on the same record – Sync fails due to conflict>