Invocation channel and Java class comparison
Before you develop an integration module, consider the advantages and disadvantages of using a Java™ class or an invocation channel.
Advantages and disadvantages of using an invocation channel
Implementing an integration module by using an invocation channel has the following advantages:
- An invocation channel is useful when you pass complex data to the endpoint. It is also useful when you can define a clear mapping between the fields in the source object and the input the endpoint requires.
- Can support hierarchical object structures on input and output transactions.
- The integration framework handles the conversion of objects to XML, and XML to objects.
- Can be configured to use processing classes, user exits, and XSL mapping for inbound and outbound transactions.
- The integration framework performs endpoint invocation.
- Can be invoked directly without an association to an integration module or a logical management operation.
- A simple integration can be implemented using system configuration that does not require you to restart the application server.
Implementing an integration module by using an invocation channel has the following disadvantages:
- Requires more registration and configuration of system artifacts, even when the invocation is simple.
- Multiple applications cannot use the integration module with different business objects.
- Requires additional knowledge of the integration framework.
- Supports only a single invocation of the configured endpoint. It requires additional coding to support multiple invocations.
- Requires additional coding to support a long-running service. By default, the invocation channel waits for a response from the endpoint.
Advantages and disadvantages of using a Java class
Implementing an integration module by using a Java class has the following advantages:
- Requires less registration and configuration of system artifacts.
- Can be used by different applications while using different business objects.
- Can be designed to make multiple external invocations.
- Can use different communication protocols for different logical management operations and operational management products.
- Supports the use of another thread to accommodate a long-running service.
- Can implement multiple logical management operations, even when the input configuration and the output configuration is different.
- Is less likely to require the use of an external integration module.
Implementing an integration module by using a Java class has the following disadvantages:
- Requires you to perform more Java coding.
- Does not support an object structure with a parent and child relationship as input or output. Only the parent object can be used as input, and the Java code must find the child relationship.
- Conversions of objects to XML and XML to objects must be coded when you use an endpoint handler.
- Customization must be built into the design of the integration module. Customization cannot be added later without redeploying the code.
- Use of any integration framework components, such as an endpoint handler, must be coded in the Java class.