Extensions and Integration
The ability to integrate the OIPA application with external systems and extend it beyond what could be done through business rule configuration gives the system unlimited flexibility and allows implementation of specific customer requirements. The OIPA system provides several mechanisms for extensibility.
Currently, all extensions are implemented as Java classes that are injected into specific points or levels in the OIPA infrastructure. Extension developers only need to implement the requisite Java interfaces in order to access this powerful OIPA feature.
Primarily, there are three types of extensions: Anonymous, Feature Specific and Named.
- The Anonymous extensions allow for invocation of custom logic using pre-defined methodologies.
- The Feature Specific extensions allow for extending specific OIPA features.
- The Named extensions allow for custom logic at pre-defined points through the lifecycle of specific system events. Named extensions allow for fine-tuned customization.
Anonymous Extensions
Anonymous extensions are provided with data from running transactions, making them powerful tools for integration. Anonymous extensions can execute when an activity is run or when the FileReceived web service is invoked. In the example below, the policy lifecycle includes the OIPA transactions Premium Receipt, Issue and Billing. The first two transactions illustrate how the system can perform messaging over an enterprise service bus (ESB). The last transaction, Billing, illustrates MQ series integration.
Feature Specific Extensions
Feature Specific extensions provide the ability to enhance a specific OIPA feature. There is only one Feature Specific extension at this time called External Client Integration which can be used to enhance OIPA's client and role management feature to interact with an external agent database.
Named Extensions
When fine-tuned control over the application's lifecycle is required, Named extensions can be employed. Named extensions are provided through the Extensibility Framework, which is discussed later in this document.
Below is a simplified rules engine processing example that illustrates how Named extensions can provide pre- or post-processing, or can replace a processing step altogether.
- Default implementation
- Pre-processing added via an extension
- Post-processing added via an extension
- Math processing lifecycle step is replaced with custom math via an extension