IBM BPM, V8.0.1, All platforms > Programming IBM BPM > Enterprise Service Bus programming > Invocation of Services > Service invocation styles
Invocation style compatibility with prior releases
In version 8.0 of IBM BPM, additional invocation style options are available to control the invocation style that is used by the mediation flow component when it invokes a service. The Async (Compatibility) and Default (Compatibility) invocation style options are for compatability with earlier versions. It is recommended that you use the non-compatibility invocation style options.
Request-response operation
The new invocation styles in a request-response invocation are:
- Async with deferred response
- Async with callback
- As target
Using the new "Async" invocation styles, the type of Async invocation is selected, without the need to consider the invocation style used to invoke the mediation flow, and without the need to specify additional properties.
The "As target" invocation style is the new default style. It provides a similar capability to that of the previous "Default" style, with some modifications. The modifications simplify the determination of the style used, and remove the potential for a deadlock, due to transaction context settings. The previous "Default" style is renamed "Default (Compatibility)".
A comparison of the "As target" style and the "Default (Compatibility)" style for request-response operations Preferred interaction style of the target How the mediation flow component is called Invocation style Default (Compatibility) As target Sync Sync Sync Sync Async one way Sync Sync Async with deferred response Sync Sync Async with callback Sync Sync Async Sync Async with deferred response Sync [1] Async one way Async with deferred response Async with callback [2] Async with deferred response Async with deferred response Async with callback [2] Async with callback Async with callback (or deferred response if the Require mediation flow to wait for service response when the flow component is called asynchronously with callback. property is set) Async with callback [2] Any Sync Sync Sync Async one way Sync Async with callback [2] Async with deferred response Sync Async with callback [2] Async with callback Async with callback (or deferred response if the Require mediation flow to wait for service response when the flow component is called asynchronously with callback. property is set) Async with callback [2] [1] Although the preferred interaction style of the target is "Async", the use of "Sync" by the mediation flow component avoids the potential deadlock that might occur if "Async with deferred response" is used.
[2] "Async with callback" is not available in a subflow, error flow, or aggregation block. A runtime error occurs if this invocation style is required, as determined by the table.
The property Require mediation flow to wait for service response when the flow component is called asynchronously with callback. does not apply to the new invocation styles.
One way operation
The invocation style used for a one way operation has not changed in the current release of WebSphere ESB.
Invocation styles for one way operations Preferred interaction style of the target Invocation style Sync Async one way As target Sync Sync Async one way Sync Async or any Sync Async one way Async one way
Event sequencing
Event sequencing enables IBM Process Server and IBM BPM components to process events from asynchronous invocations, in the order in which they are delivered. Event order is maintained throughout the entire business integration scenario.
Certain types of components and invocations offer limited support for event sequencing.
Limitations for the current release of event sequencing include the following:
- To effectively use event sequencing with a mediation flow component that has asynchronous invocations, it is recommended that you use the request-response method signature. The event sequencing runtime interprets a response as a signal that the work is complete and releases the lock.
If you cannot declare a method as a request-response operation, you might need to specify event sequencing on downstream components, making sure you use the same event sequencing key for all methods.
Event sequencing is not supported when you are using synchronous invocations to components with asynchronous invocations.
Related tasks:
Processing events in a sequence