Preface

The Mobile Informer platform is a mobility environment built specifically to support mobile applications that integrate directly with Maximo. The platform enables rapid development of lightweight, extensible applications that allow for direct communication with Maximo via web services and comply with open standards.

Deployed within Maximo, the Mobile Informer server platform requires no middleware software. Mobile Informer manages the heavy-lifting and complexity of mobilizing Maximo, letting you design custom user interfaces specifically to support each business process, while taking advantage of the wide range of native features available in each mobile environment.

The Informer platform management is separated into two Maximo applications: Informer Developer, and Informer Administration. Informer Developer is provided for developers of Informer applications and advanced system administrators. It provides access to all aspects of both configuration and administration of Informer. The Informer Administration application is a limited version of Informer Developer and only contains the functions relevant to the administration of deployed applications.

This document covers the use of the "Informer Administration" Maximo Application.

Tabs

Profile List

The List page is used to search for available Informer profiles and provides access to both the Advanced Search and Where Clause search features.

The Sessions and Queue Processor, Select Action menu items are available from this page and can be used to view the current global active Informer user sessions and queue processor activity respectively.

image

Profile Tab

The Profile tab provides access to the primary Informer Profile configuration information.

From this tab the user can view:

  • Profile name

  • Maximo application to be exposed

  • "Where clause" or workflow process to filter data

  • Informer Catalogs configured for the profile.

  • The profile’s "Active" status

  • The List of Catalogs available to devices for synchronization

  • The list of synced devices, for each Catalog

The Active checkbox indicates if the Profile is currently active and listening for events within Maximo. Activating the profile will be covered later in this guide.

The Available Catalogs table displays the Informer catalogs that have been configured for this profile. For pre-loaded Catalogs the last pre-load generation date is displayed as well as a refresh button that allows a refresh of the pre-loaded data to be manually requested.

The Devices table displays the devices that currently have a copy of the selected Catalog. From this table one or more devices can be selected and their Catalogs reset. Resetting a Catalog for a selected device will cause the device to perform a full reload of the Catalog data. This can be useful in cases where there is uncertainty of the accuracy or completeness of the data on the device.

image

Users Tab

image

The Users tab allows specific users to be granted access to the selected profile. It also allows the user’s active notifications to be viewed and removed if desired.

Users Table

image

Clicking the "sessions" icon button (third from the right) will display the selected user’s session history.

Clicking the "refresh" icon button (second from the right) will cause the system to reevaluate all current notifications for that user. All notifications will be first deactivated; all notifications will then be reevaluated to find any new notifications.

Clicking the "trashcan" icon button will delete the user and all their active notifications. This will prevent the user from performing any further actions and will further prevent them from logging into any application that utilizes the profile.

Clicking the "Send Application Link" button will send an email to the selected users, assuming an email address is available, containing a link for the application download. A communication template named INFORMER is created on install and is used by default for the email template. This template can be modified to contain additional instructions as necessary, or can be replaced with a different template by setting the informer.deploy.commtemplate Maximo system property.

Clicking the "Select Users" button allows multiple users to be selected and added to the profile in a single action.

Clicking the "Import Groups" button provides access to select a Maximo security group from which all the users of that group will be imported into the profile if the user is not already associated with the profile. This is a one time import and will not keep the Informer profile users in sync with the Maximo security group users. When a group is imported a corresponding option group, which is discussed in the Select Action menu options section, is created and all users from the security group are added to the option group by default.

Active Notifications Sub-Table

image

The Active Notification Table displays the list of Notifications currently active for the highlighted user in the Users table above.

The "Last Updated" column indicates the time the Notification was added or was last modified.

The "Last Retrieved" column indicates the last time a device fetched this Notification for the user.

The "Last Device" column indicates which device most recently fetched this Notification for the user.

Active notifications can be removed simply by deleting the notification record to be deactivated. A new version of the deleted notification may still be created if Informer re-evaluates this record and it still satisfies the where clause specified.

Retrieval History

image

Clicking the "info" icon button on a row (second from right) will display the known retrieval history for Notification, if this feature is enabled.

Devices Tab

image

The Devices tab allows an administrator to manage the devices that are being used on the selected profile. While Informer is not designed to be a full device management platform, basic management functionality is provided to block and wipe application data, in addition to viewing application logs and screenshots.

On the Android platform it is possible to implement full device management capabilities such as the ability to remotely lock and factory reset the device. This capability must be implemented and enforced by the application through the Informer client library.

Blocking and Wiping Devices

image

To block a device check the Blocked check box for the desired device and click the OK button to accept. A push message will be sent to the device to log out the current user and prevent further log in attempts. If push support has not been implemented, the next time the device attempts to connect to the server, the server will respond with a BLOCKED message and the application will be denied access to authenticate any user on that device.

The wipe feature is the more extreme form of block, in that in addition to not authenticating any user originating from the device any application data on the device will be removed at the next attempted login. To wipe a device check the Wipe check box for the desired device and click the OK button to accept.

On the Android platform, if device management has been enabled, marking a device for wipe will perform a factory reset.

Deleting a Device

If a device is deleted a full reset of the device data will be requested. Depending on the application design, this may happen in the background or the user may be prompted to re-authenticate and the initial load screen displayed while the application is reloaded. Once the reload is complete the device will be recreated and matched back with previous data based on the device serial number, name, and last user id.

Creating an Asset Record for a Device

To further integrate the management of the mobile devices with Maximo, Informer provides the capability to create an asset record for each device. To create a new asset record for a device click the image button for the desired device. A dialog will ask for confirmation before creating the asset for the device.

image

A dialog will then be displayed requesting the required information to create the asset record. At a minimum a Location and Site must be provided. Optionally an Asset record number can be entered, if left blank an auto-generated asset number will be used. The Item field can be used to specify a rotating item number to associate with the asset record. Clicking the OK button will complete the asset creation process.

image

When the asset is created the most current user is set as the asset record’s owner and subsequent changes in user will change the custodian record for the asset.

Requesting Instrumentation Data

Modern devices contain sensors that can tell position, heading, elevation, speed, along with numerous other data points. To make the most of that information the Informer comes with the ability to request this information built into the platform.

Clicking the Detail button for a selected device will display more information about the last instrumentation data provided by the device.The application developer can design the application to return instrumentation information at specified intervals or events, which can provide near real time updates to Maximo about the location of available workers. Alternatively, the system administrator can click the Request Check-in button and the device will receive a push notification requesting the latest instrumentation data available. This data will be sent back to the server as soon as it has connectivity.

Instrumentation data can be archived by setting the Maximo system property informer.keepinstrumenthistory to the value of 1 or true.

Due to potential privacy concerns the application developer can opt to ignore all requests for instrumentation data and instruct the client to block all attempts to send such data.

image

Managing Device Logging

The administrator may set a particular device’s log level and then request the logs from that device. This can be very useful when troubleshooting a remote user issue where physical access to the device may not be possible. Each device record displays the current log level and the date the log level was confirmed by the device. An administrator can enter a new log level in the Log Level field and once saved, a push message will be sent to the device to update the log level. Once the log level has been set on the device, the device will confirm the new log level by setting the Current Log Level field.

Clicking the Refresh button will update the visible device records so that after a request has been submitted an administrator can watch for the updated value without needing to reload the whole profile record.

Once the log level has been set the current device log can be retrieved by clicking the Request Log button. This will create a new PENDING status log request entry in the Logs table under the Logs sub-tab and a push request will be sent to the device to return its current log set. If push notifications are not supported, the requests will be issued during the next polling cycle, instead. Once the device returns the current log the status will be changed to COMP and a log icon image will be displayed.

Clicking on the log icon will open the log in a Maximo dialog.

Clicking the Refresh button on the Logs table will update the log table status without requiring the whole profile record to be refreshed. This is useful to monitor for a new log entry when an immediate device response is expected.

image

Managing Device Screenshots

When remotely troubleshooting a user issue it is often useful for the administrator to see what the user is seeing. For this reason Informer allows the administrator to request a screenshot from the application.To request a screenshot, select the device and click the Request Screenshot button. A new record will be created with a PENDING status in the Screenshot table, under the Screenshots sub-tab and a push request will be sent to the device requesting a screenshot. If push notifications are not supported, the requests will be issued during the next polling cycle, instead.

When the device receives the request, if the application is active a screenshot will be taken and returned immediately to the server. If the application is not active, the request will be queued until such time as the application is active, at which point the screenshot will be returned.

Once the screenshot request has been fulfilled the request status will change to COMP and the screenshot icon image will be displayed. Clicking on the screenshot icon will open the screenshot in a separate browser window.

image

Error Management Tab

image

The Error Management tab allows the user to view and perform remedial action on any errors associated with the profile. This typically will occur when a command is sent from a device either in an improper format or if the command is unable to resolve a data or system conflict. While application error handling is dependent on the specific application, the Informer platform does return complete error details to the client and the application should properly handle notifying the end user of such errors.

Service Requests (SRs)

Clicking the image button will prompt the user to create a Service Request and if an asset has been associated with the device that the error was generated from, the asset and owner details will be included in the Service Request. This allows errors from the device to be tied into the standard Maximo service desk processes and enables the proactive response to device errors.

image

Error Details

Clicking the image button will display the complete details of the error, including the command that was executed, the user, timestamp, device, and session identifier.

Command XML

The Command XML tab displays the XML that was sent from the device. The system administrator can edit this XML and retry it for processing with the modified values by clicking the Retry button. Retrying the command will cause the server to re-execute the command as the user that originally attempted the command and if successful notify the device of the error resolution. This will cause the device to retry the command which originally failed, at which point the server will return the result from the retried command, if any. This then completes the command transaction and allows errors to be resolved on the server and that resolution to be propagated to the device.

image

Error Stacktrace

The Error Stacktrace tab displays the full error stacktrace, extracted from Maximo system log. This allows an administrator to view the error log without requiring access to the Maximo server and without needing to manually search thousands of lines of log entries.

image

Select Action Menu Items

Reconcile All User Notifications

Selecting the Reconcile All User Notifications action will cause all notifications for all users to be reevluated for accuracy. Please note that this could take several minutes depending on the number of users and the complexity of the notifications.

Push Notifications

Know Issues:

Issue 6150: Update message parameters not used

The Push Notifications action displays a dialog allowing the user to configure push notifications for the iOS Apple Push Notification Service(APNS) and Android Google Cloud Messaging (GCM) push notification frameworks.

image

The Name field contains the name of the application, as registered with the respective service. The Type indicates whether it is Android (GCM)or iOS (APNS). The message field contains a generic message that will be delivered when one or more updates occur to existing user notifications. The Update Message field is the message to push, which can contain numerical parameters such as {0}, {1}, {2}, that will be replaced by the parameters provided in index order. The Update Message Parameters field contains a comma separated list of attributes that will be substituted into the message. The Description is an arbitrary description for the push notification. The Sender ID is required by the GCM server, whereas the Attach Certificate is used by iOS. The password is the password required only for iOS for decrypting the Attached Certificate. The Sound is the name of the sound file to be played on the device when the message arrives. Finally, the Content Where Clause is an arbitrary where clause that can be evaluated against the newly-changed data to check for a match, which will be indicated to the device via the push message to trigger content-conditional behavior.

As devices subscribe to the profile, if they opt to receive push notifications the device will be listed in the Devices table. Once a device has registered, specific features such as sound, message, and application icon badging can be turned on or off on a per device basis.

The Send Test Message allows a test push message to be sent to a selected device. This is useful when trying to troubleshoot connectivity or device refresh issues.

Applications

The Applications action allows a system administrator to view the available Informer application packages for the selected profile.

The Name field is the name of the application and often matches the profile. The Title is a short description of the application. The Type is either ANDROID or IOS depending on the application package. The Version name is the semantic version number provided by the developer. Finally the Application Link is the URL where the application can be downloaded from, which will be included in the communication template if an application link is sent to a user from the Users tab.

image

The application deployment page is configurable and is based on a Velocity template, but a sample deployment page for the Android application shown above would look similar to the following:

image

Sessions

The Sessions action allows the user to view all active session information including the session key, which can be matched to log event entries, the user name, the last time an action was performed on the session, and when the session will expire. The session can also be forced to expire by deleting the record.

image

Monitor

The Monitor action allows an administrator to view current state of the Informer processing queues and their processors, as well as performance information if available. When an action occurs within Maximo that may impact a record on a device the action information is put into a queue to be processed in the background. This ensures that the Maximo UI is never impacted by the evaluation of records destined for mobile devices. To ensure that Informer remains scalable, the queue is designed for high volume parallel processing across multiple threads and multiple nodes within a cluster. Being able to view the state of the various threads across the nodes in the cluster is key to understanding the system health and performance.

Note that when the Maximo system is in Admin Mode, queue processing is suspended.

There are three categories of Queue Processor: Notification, Catalog, and Push.

Notification Queue Tab

image

The Notification Queue dialog displays:

  • The Total number of records in the queue

  • The number of records Actively being processed

  • The number of records that are User Refreshes

  • The number of records in Error status

  • The last update time stamp when the information was collected from the system

The Total records in the queue will include:

  • User Refreshes

  • Notification Refreshes

Active records are those being currently evaluated by the queue processors. A queue processor may evaluate more than one record at a time, in the case that a notification record is present for more than one user.

User Refreshes are evaluations of the query or workflow process that defines the records to be sent to the user. This evaluation determines whether records have come into or gone out of scope of the query or the user’s workflow inbox. These will add and/or remove user notifications, as displayed on the User Tab for each user.

If an error is encountered during processing, in most cases the error is logged to the Maximo log and the record is automatically retried. When an unexpected error occurs, the error is logged to the Maximo log and the record is retried according to the system property informer.queue.maxerror (or 5 times if this property is not set). If this retry count is exceeded, the refresh queue entry is marked in error, and will not be further evaluated until it is reset by an administrator.

Notification Queue Processors

The Queue Processors table then provides information about each Host running one or more processing threads, the node name of the JVM, the name of the thread, its current stated, WAITING, ADMIN MODE, or ACTIVE and the time stamp when the data was last updated. In the screen shot below there are two threads running on a single host running a single JVM node.

image

Actions

The Refresh button can be clicked to refresh the data on the screen with newly collected information from the server if it is available.

The Reset Active button allows an administrator to force all active processes to reset. This is useful if a node improperly shuts down and never recovers, which can leave records in the queue marked as active but with nothing actively processing, which can then lead to updates not being delivered to the device.

The Reset Error button allows an administrator to force all records in Error status to reset. This is useful if the cause of the error has been resolved, and allows the records to be processed by the queue processors.

Catalog Queue Tab

image

The Catalog Queue dialog displays:

  • The Total number of records in the queue

  • The number of records Actively being processed

  • The number of records that are Preload Generation tasks

  • The number of records that are Catalog Reconcile tasks

  • The number of records in Error status

  • The last update time stamp when the information was collected from the system

The Total records in the queue will include:

  • Catalog record refreshes

  • Initialization tasks

  • Preload generation tasks

  • Reconciliation tasks

The actions presented and the Queue Processors interface work the same as described for the Notification tab, above.

Push Queue Tab

image

Informer’s push notifications work on an Informer queue as well.

The Push Queue dialog displays:

  • The Total number of records in the queue

  • The number of records Actively being processed

  • The number of records in Error status

The Total records in the queue will include:

  • Pending outbound GCM communications

  • Pending outbound APNS communications

The actions presented and the Queue Processors interface work the same as described for the Notification tab, above.

Performance Tab

image

Historical performance information presented on this tab is generated by the "InformerStats" CronTask, if enabled.

Profile Groups

Profile Groups allow an administrator to alter the application behavior based on one or more assigned Profile Options that were configured by the application developer. The Group name is an arbitrary name assigned by the administrator that is used to group one or more options into a logical grouping that can be assigned to one or more users. Profile Options are cumulative for a user, aggregated across all groups that the user belongs to.

The assigned users must be valid users on the currently selected Informer profile. Clicking the Import Users from Group allows the administrator to select a Maximo security group and import all the users of that group, first to the profile and then to the Profile Group.

To assign multiple users to a Profile Group click the Select Users button and select one or more profile users to assign to the Profile Group.

image

Options tab provides access to assign Profile Options to the selected Profile Group. Clicking the Select Options button allows the user to select one or more Profile Options defined by the application developer and associated with the Informer profile.

image

Refresh All Catalog Preloads

Selecting the Refresh All Catalog Preloads action will cause all preloaded catalogs to be marked as invalid and queued to be regenerated. Please note that depending on the number of catalogs and the complexity of the catalog structures, this operation can take a minutes or hours before the preloads finish generating. When each Catalog finishes, its corresponding preload timestamp field will be updated in the Catalogs table on the Catalogs tab.

Activate Profile

Selecting the Activate Profile select action menu item causes the profile to become active and registers the listeners within the Maximo system required to capture events that are relevant to the profile and send notifications to the users as defined by the profile.

Before the Profile can be activated, all Catalogs have been initialized. Profile activation will trigger a temporary increase in the Catalog Queue Processors as the Profile checks for any changes it missed while it was deactivated.

Deactivate Profile

Deactivating a profile stops all listeners from capturing system events relevant to the profile and prevents application users from accessing the profile and if connected, the application itself.