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?
WC: Much of the new data is unstructured, so developers need a database that is capable of efficiently storing it. The rigidly defined, schema-based approach used by relational databases makes it impossible to quickly incorporate new types of data, and is a poor fit for unstructured data. NoSQL or non-relational databases are able to process large quantities of disparate data. These large volumes of unstructured data require the highest level of scalability, performance, and reliability.
An embedded full-featured NoSQL database on the device in combination with a highly scalable sync tier and a highly scalable, high performance NoSQL database in the cloud enables developers to produce rich mobile applications that are always accessible, and not affected by network availability or latency.
TRP: How will this simplify the needs of developers when it comes to building truly effective productivity applications?
WC: Until now, mobile applications were built with the requirement that data must be stored in the cloud and then synced back and forth to the device. Mobile NoSQL database solutions that include an embedded database on device, give developers the tools they need to build always-available and always-responsive applications. Consequently, the network no longer impacts application performance.
Couchbase Mobile provides mobile application developers with a powerful new platform for creating robust and network-flexible applications, simplifying the code needed to manage data synchronisation and considerably reducing time to market.
TRP: What are the benefits of network-flexible mobile applications for businesses?
WC: The benefits for businesses are clear: users are able to access their applications even if the network is unavailable. In return this means true flexibility for businesses as they can rest assured that their workforce will not be limited in their mobility, even when working remotely. When all has been said and done, network-flexible mobile applications mean two things for companies – higher productivity and efficiency.
TRP: What does this development mean for the future of mobile data storage?
WC: Unstructured data has exploded over the last decades, growing more than a hundredfold every ten years. Data volumes with more than 50GB per object require a new approach in data storage to support the value and richness of future mobile applications.
As users have grown accustomed to interactive apps that react quickly to their actions, it is no longer acceptable for apps to freeze or be slow. In order to provide the best experience for both users and developers the location of mobile data will be essential. While remotely stored data still suffers in terms of responsiveness and availability as it depends on networks, an only-local data storage approach is only viable for applications that never need to share their data.
If we want to make sure that a mobile data model is suitable for a large variety of applications, then a hybrid model is ideal. With a hybrid model, data is stored both on the device and in the cloud, which makes the data always available. Not only can the data be shared outside the device but intermittent access to a network allows the network to synchronise data and ensure consistent application responsiveness.