Adapter architecture

The adapter for Maximo MEA is built using the WBI adapter framework. The components are, at a high level, two transports and one or more logic modules. Logic modules process an internal business object enroute from the originating transport to the target transport. Logic modules can be chained together if necessary. A routing path defines a path for a particular business object from one transport through certain logic modules and into the other transport.

Figure 2 is a detailed view showing components. Each of these components is described below.

Figure 2. Detail view of the adapter for Maximo MEA components

Detail view of the adapter for Maximo MEA components

The adapter components

The following are the adapter components:

XML Profile
The adapter framework configuration is specified in an XML profile. Appendix D, XML rules lists the rules for developing a profile.

Adapter Core
The adapter core controls the data and logic flows in the adapter.

Transport
A transport provides the custom interface to the specific application. The outbound component of the transport is the sender. The inbound component of the transport is the receiver. The persistence component is the eventstore. A different application might have different protocols for different portions of its interface (for example, an SQL database interface for some data and an MQ messaging interface for other data). Therefore, one transport can contain multiple senders and receivers. Transports are provided for some common interfaces.

Logic Modules
Logic Modules process data inbound from an inbound transport receiver enroute to the outbound transport sender. For example, an XSLT logic module is provided for the situation where both inbound format and outbound are in XML format. You could create a specific XSL file to define a specific grammar transformation. Logic modules can be chained. This package provides some logic modules. You can create custom logic modules.

Adapter transport

The standard WBI sender and receiver transport modules are used for communication with ICS. They expect the body of the message to contain WBIX WebSphere XML, which gets converted into a WBI Java object and sent into ICS for processing. The WBI transport consists of the following components packaged with WBIX:

com.ibm.wbix.datahandlers.XMLDataHandler
The data handler converts WBI business objects to and from WBIX WBI XML.

com.ibm.wbix.adapter.transports.wbi.WBISender
This module does not require any configuration parameters.

com.ibm.wbix.adapter.transports.wbi.WBIReceiver
This module does not require any configuration parameters.

Event life cycle

Events generated are propagated to ICS as follows:

  1. The adapter adds the event to the local event store with status "EVENT_RECEIVED".
  2. Processing occurs on the event in the local event store which changes status:
  3. When the processing and polling completes, the local event has its status changed to the appropriate status value, for example, "ERROR_POSTING_EVENT" or "SUCCESS".
  4. The event is archived:

Event store file naming

The FileSystemEventStore uses the local file system as the provided default persistent event store implementation. When the adapter is started, it creates separate directories for the event store proper and the event store archive.

For each event added to store, it writes a new log file with the event contents. The naming convention of event records is "hashOfeventID_status". The class, by default, does a best effort to handle event IDs with special characters when writing to the file system. However, IDs with special characters can result in ID collisions.

If you use this event store, ensure that the eventIDs generated by the receivers contain no special characters that are disallowed by your file system. For event status changes, the event store generally renames the file to reflect the updated status. However, for status changes that indicate a change in the event body, for example, IN_PROCESSING to READY_FOR_POLL, the event store rewrites the file contents.

The status constants are listed in Table 1. Error constants are listed in Table 2.

Table 1. Status constants
Status constant Value
EVENT_RECEIVED 2147483647
IN_PROCESSING 2147483646
EVENT_PROCESSED 2147483645
READY_FOR_POLL 0
IN_PROGRESS 1
SUCCESS 3

The error constants are:

Table 2. Error constants
Error Value
ERROR_IN_LOGIC_PROCESSING -2147483647
UNSUBSCRIBED 2
ERROR_PROCESSING_EVENT -1
ERROR_POSTING_EVENT -2
ERROR_OBJECT_NOT_FOUND -3

Copyright IBM Corp. 1997, 2003