Dynamic
service calls
There are two approaches a collaboration can use to request
services in InterChange Server Express. The first method
is through a static call; you define the destination collaboration
or connector for the service call when you design the collaboration
and bind it to a specific port. This makes the service call static
in that it can only communicate with the explicitly bound destination.
The second method is by making a dynamic service call to the
destination collaboration or connector. This method allows you to
dispatch business objects to multiple destinations that are not
known when you are designing the collaboration. You implement a
dynamic service call using dynamicSend().
The advantages of using dynamic service calls are:
- There is no requirement to bind a port at design time. The information
needed to process the business object is part of the service call.
- The collaboration can interact with many connectors providing
greater flexibility in a dynamic processing environment.
- The collaborations handle the requests synchronously.
When deciding whether to use dynamic service calls, consider
the following:
- You must understand event sequencing when using dynamic service
calls. Because there is no port explicitly configured with a dynamic
service call, the dynamic service call may change the event sequencing
instance queue.
- Dynamic service calls cannot suport compensation. There is no
rollback method available when using a dynamic service call.
- InterChange Server does not consider a dynamic service call
to another collaboration as establishing a collaboration group.
This is because there is no explicit port binding between the two
collaborations.
- A long-lived business process cannot be a consumer of a dynamic
service call.
- A long-lived business process can make a dynamic service call
to a connector but the connector must use JMS as its transport type.
