Data Synchronization - Number One Reason for the failure of Maximo's mobile implementation. How can this be fixed?

Maximo’s mobile applications are becoming complex day by day. The mobile applications are expected to deal with vast amounts of data, complex business rules/workflows, and GIS maps/data; all these features demand a constant high-quality internet connection and a powerful server to ensure seamless data synchronization. The transformation of data back and forth from the server requires high computational capabilities for the server. The best way to complement the server & internet bandwidth requirement is to manage data in offline mode and handle the synchronization effectively.

Why Offline Data, after all?

Though most Business applications can work online, few unavoidable circumstances require business applications to work offline. The primary causes that can push for offline apps are:

  • Work environments with poor/no connectivity
  • Data/Content heavy applications
  • Server independent functionalities

Consider a municipality that manages the assets related to various needs of the people like drinking water supply, telephone connectivity, road management, etc. The data with which they’re going to work is going to be too high that if the app tries to establish connections with the server for every transaction, it will impact the performance and make it difficult to use the mobile app.

Data Synchronization in Mobile apps

Almost any Maximo Mobile application available in the market provides offline data management. The primary reason is that the assets are in remote areas with the poor network quality. So, effective data synchronization is vital for a Maximo mobile app. Accustomed to using social media apps, Maximo mobile users expect automatic data synchronization. However, automating the data synchronization can become complex in mobile apps considering the massive volume of data involved. Some common problems are listed below.

  • Long sync Processing times, making the app slow.
  • Lack of reliability in the data displayed in the app (Few data fail to synchronize)
  • Missed update of the modifications made in offline mode

Few apps synchronize by pushing the server's data through notifications, while others synchronize by making the clients pull the data from the server. The latter method (pulling data) is more successful when compared to the former (pushing the data), considering the uncertainty in the delivery of notifications. Few apps try to pull the data from the mobile at an interval using queues, but frequent pulls will also drain the mobile battery. Some apps even go to the extreme of allowing only manual data synchronization to avoid all these issues.

How can it be fixed?

The following are the approaches used by EAM360 Mobile to address the data synchronization issues for a successful Mobile implementation for Maximo

1. Offline-first approach

In the offline-first approach, the data is downloaded from Maximo to a local database deployed on individual users’ mobile devices. The mobile app always retrieves and updates data from the local database , which makes the EAM360 app highly performant irrespective of whether it is offline or online. The network engine of the app will constantly look for the internet connection availability and its strength. If good internet connectivity is available, EAM360’s network engine will initiate the synchronization of data with Maximo.

2. User Specific Data & Delta Data

In user specific data approach, the mobile app downloads only the data required for a specific user. For example, the app downloads Asset/ Location of the user’s department or the user’s responsible area. As the app is working with limited set of data specific to the logged-in user, it enhances the app performance significantly with reduced download time, quicker searches and contextual data for the user.

In Delta Data approach, the APIs download the delta data i.e. data modified since its last synchronization, where required, to reduce the redundant data transfers and improve performance.

3. Pluggable synchronization

EAM360’s data synchronizations are set up/ configured for each customer differently based on their data volume and usage. A data audit is performed to ascertain the data volume and usage for each master and transaction data of the customer. The audit results are used to configure EAM360’s data and network synchronization engines. When it comes to mobility, it’s impossible to expect one solution to fit all, which is why 85% of the mobile implementations fail.

Unlike other mobile apps, EAM360 uses a combination of synchronization approaches such as file transfers, REST API, or URL download based on data volume and usage. Each approach will have its advantages and disadvantages, and the decision is made based on the customer’s Maximo environment and data usage. For example, the file transfer approach will help to download a large volume of data. However, it takes more time than REST API-based data synchronization. REST API is faster but cannot handle a large volume of data and will have substantial performance issues if used for a large volume.

The bulk Files (CSV File) synchronization method can be used for data-intensive records that need to be synchronized. In this method, the files will be uploaded into a URL (defined in the EAM360 Administration application in Maximo) from where it gets downloaded in the specified interval.

Exhibit 1: Bulk File URL Definition

API-based synchronization can be utilized for attributes with low data volume that need not be synchronized so frequently. Also, APIs will be used to synchronize even the attributes that follow the Bulk data synchronization method when synchronization is initiated manually between the preset time intervals to retrieve some data immediately, which can be done by using the Synchronization icon on the respective lookup screens, as displayed in Exhibit 2. A consolidated report on the Synchronization status can also be viewed in the app, as shown in Exhibit 3.

Exhibit 2: Delta Data sync.

Exhibit 3: Consolidated sync.

4. Structuring Download / Upload calls

EAM360’s API calls are sequenced based on the dependencies to ensure data integrity. For example, the work order status update API call is invoked after the work order data update calls are successfully synchronized. If the work order data update is failed due to user error or business validation, the mobile app must hold the status update call till it’s successful.

5. Configurable synchronization frequency

Data synchronization frequency can be configured/modified based on the need. In the app configuration, the administrator will have the provision to define the following information, like the sample provided below:

Data Attribute Synchronization Method Auto Synchronization Interval Time Unit
Assets Bulk File (CSV File) 3 Days
Locations Bulk File (CSV File) 3 Days
Labor Bulk File (CSV File) 2 Weeks
Service Address OSLC API 2 Weeks
Work Type OSLC API 1 Month
Work Priority OSLC API 1 Year
Open Work Orders OSLC API 3 Hours

6. Conflict resolution and Error Handling

The mobile app shall be designed to handle conflicts when several users modify the same record. EAM360’s conflict resolution engine invokes any of the following conflict rules - Last one wins, First one wins, Both wins.

Also, the mobile app shall have a robust error handling mechanism. EAM360 app displays Maximo errors to the user with an option to retry, delete or ignore depending on the situation.

Author: 

Rajesh Kumar K

Lead Product Consultant

Explore More About EAM360

Submit your email with us to connect and discuss more about the EAM360 mobile applications and how we can enhance your Enterprise Asset Management processes.