Mobile applications that rely on the availability of networks to connect to cloud-based data will become a thing of the past. We spoke to Wayne Carter, architect at Couchbase, about storing data on devices when applications are offline, then syncing once connectivity is restored, and how this will change the way developers build mobile applications.
TechRadar Pro: How will the business imperative for workers to be productive 'on the go' drive the mobilisation of business apps?
Wayne Carter: Today it is rare that work is done exclusively at a single designated office or only with company-sponsored computer environments. With the rise of BYOD, workforces are more flexible and mobile, managing their work from both their company devices as well as their own devices.
This development brings along challenges that need to be taken into consideration by companies, for example: creating a secure process in a multi-device work environment, finding productivity applications that are flexible and highly reliable, and still adequately address the work concerns they intend to resolve.
Up until now, the internet and Software-as-a-Service products have been a vital factor in making this mobile strategy work. But how many of us have found ourselves without any reception and therefore with no access to our productivity applications? The next step in the mobilisation of business apps must be independence from these network-only strategies to provide always-on applications.
TRP: What more can be done to allow remote workers and mobile users to access their application wherever they are?
WC: Applications have to be flexible with their network requirements and still be productive. So far, synchronisation of data shared between the cloud and the device required an uninterrupted internet connection. In order to create a truly mobile workforce, a productised solution is necessary to allow a constant presence of data, meaning a system that has synchronisation, remote storage and local storage solutions that works even with intermittent internet access.
TRP: What are 'always-available' mobile applications?
WC: Always-available mobile applications are apps that work regardless of network presence. With always-available applications, users do not need to be connected to the internet all the time to be able to access their mobile applications.
In the past, most mobile applications have relied on a remote data strategy that is based on data existing in the cloud. To access this information applications needed a network connection. This approach put them at the complete mercy of the network and resulted in applications that are only available and responsive when they have a good connection. For example, users wouldn't be able to check Facebook updates when on the London underground.
TRP: How can technology overcome the dependence on network connectivity?
WC: The answer is to create an ultra-lightweight local database to offset network unavailability, as well as an advanced mobile data sync technology to coordinate the local database with a larger aggregate backend.
Today's mobile apps leverage rich data sources via open RESTful APIs that enable developers to tap into rich databases of data (predominantly in JSON format). As, by nature, mobile apps are more data driven, continuous access to content is what really makes a difference to the user.
One solution to circumvent unreliable network connections is to implement some amount of offline support in the app. This means using local data storage within the app to capture and store app data while offline, and then sync this data back to the cloud when online. This allows users to continue using an application, accessing, modifying, and sharing information without being affected by network connectivity and speed. The app just works.
TRP: How does embedded NoSQL change the game by storing data locally?