Lock-free error handling for transparent online-offline mobile applications
Publication Date: 2014-Dec-01
The IP.com Prior Art Database
A method for lock-free error handling for transparent online or offline mobile applications is disclosed.
Page 01 of 7
Disclosed is a method for lock-free error handling for transparent online or offline mobile applications .
Offline mobile applications may be used to employ a store-and-forward approach to support the lack of network connectivity with a remote system. In a store-and-forward approach, all data is kept in a local storage (commonly this storage is not volatile). Desired data is transmitted to a remote system
when network connectivity is available. To keep the order of data modifications, the transactions are usually kept in a first-in first-out data structure called a queue.
The transactions in the queue can be flushed to a remote system by specific user interaction or by a background process running in time intervals. The processing of the transmitted data to a remote system may generate several responses, for instance, confirmations or error messages. If the remote system replies with an error for one transaction in the queue, the subsequent transactions may not be consistent anymore to be flushed as they are. In systems composed by stateful remote resources, like stateful objects, the processing of a message may generate a more complex response, such as the new state of an object along with a confirmation or error message. This response might be used to both update the local storage and give feedback to the user of the application. Moreover, depending on the error, the application might present an options to the user to fix the error by performing data modifications.
One known approach is to lock the resource until a response has been received from the remote system before allowing new modifications on that resource. This is not suitable for all the cases as a user might be blocked upon intermittent connectivity. Another approach is to perform a consistency operation on a device, which is not possible in all the cases due to the nature of mobile applications and the required resources to perform a full validation or recovery.
The disclosed method provides a lock-free error handling for transparent online and offline mobile applications in a way that users can have a seamless experience without being blocked or losing data caused by unplanned disconnected scenarios. Modifications are tracked by transactions and two persistent queues are used to avoid locks. All the modifications made against a resource are staged in a first queue. Once transactions have been staged, they can be promoted to the output queue. When data is promoted to the output queue it can be pre-processed and/or optimized before being flushed to the server. The user can continue working with the record and new transactions can be staged. Errors are handled by reorganizing the transactions in the output queue and combining possible modifications to fix the error cases where those transactions happened.
The staging queue is a key piece as no entry is modified, meaning that only adds and removes are executed on that queue. This feature is what makes it possible...