• July 1, 2022

IBM InterConnect breakout session: Meeting the challenges of mobile data and the cloud

synchronizing mobile data
synchronizing mobile data

This was definitely one of the most interesting breakout sessions I attended this week because it covered one of the hottest trends in mobile: “going offline’. According to Forrester Research,

the ability to work offline is the most important and difficult mobile feature…

and will be a consideration for nearly every modern application. Wired Magazine (June 2014) acknowledges this by stating that Mobile business applications aren’t truly mobile if they can’t work offline and that adding that feature is not easy:

… faced with a tripling of time and cost when adding offline functionality to a business app.

It seems like enabling your app to work offline is hard and yet is more important than ever.

Why it is hard to include offline support

In order to support offline you have to consider these factors:

  • Implementing sync and replication between the device and back-end databases
  • The ever changing shape of data
  • The need to place data where you need it

Implementing sync and replication

The cost of sync and replication is complexity. You need to figure out how to store a subset of the application’s data locally and implement a mechanism to keep the data synchronized on both the device and backend databse. The challenge is to handle synchronization conflicts which might occur if changes are made both on the back-end database and the mobile device.

handling synchronization conflicts
handling synchronization conflicts

There are several conflict resolution strategies available to automatically resolve the conflict: ‘last write wins’, ‘first write wins’, … An alternative could be to present both versions to the user and let he/she pick a winner. Whether that is even desirable is up to the developer of the mobile application.

The ever changing shape of mobile data

the ever changing shape of mobile data
the ever changing shape of mobile data

On-device storage of data helps mitigate against network issues. User/device data that is generated by the app or user however, is typically unstructured or semi-structured. Mobile developers prefer JSON so they can easily accommodate any new type of data they choose to work with without disrupting the storage. Enterprise data is often structured so mapping between the different types can be challenging as well.

mobile developers choose JSON and NoSQL
mobile developers choose JSON and NoSQL

The need to place data where you need it

what to store where
what to store where

In reality, you rarely want everything local on the device. User/device data that is generated by the user of the app should be stored on the device and periodically be synched to the Cloud. Shared data that is generated by the enterprise should be stored online and queried as needed by the app.

One thing to consider when storing data online is the geographical location:

  • store date close to your users when reducing network latency is critical
  • store data close to your system when security and control are critical.

Solutions

IBMs solution to handle these challenges is IBM Cloudant: a NoSQL DBaaS solution that is also available as Cloudant Local for on-premise deployment. IBM Cloudant is available as mobile data tile on bluemix so it can very easily be leveraged in a mobile application.

Another solution is couchbase that also offers a database solution for mobile devices to make synchronizing easier. How did you solve your offline challenges? Did you use a DBaaS or did you use something else? Let me know in the comment section below.

Jeroen van Dun 21 Posts

Jeroen van Dun is a Product Manager at Rocket Software.

0 Comments

Leave a Comment

Your email address will not be published.