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.
Lead Product Consultant