IBM BPM, V8.0.1, All platforms > Programming IBM BPM > Service Component Architecture programming > SCA programming model fundamentals > Invocation styles > Considerations when invoking services on different servers
Configure servers to invoke services asynchronously
To enable service components on different servers to communicate, you have to configure the servers similarly. This topic describes the configuration you perform to enable the communication for applications that asynchronously invoke services on a different server.
The task assumes that you have already installed IBM BPM on the systems for which you are configuring the communications but have not yet installed the applications involved. You are using an administrative console that can examine and change the configuration for both servers involved.
Before installing an application that requires the services of a service component installed on another system, configure the systems so they can communicate the requests. For service modules that use asynchronous invocations, the process involves foreign buses and Service Integration Bus (SIB) mediations.
For the purposes of this task, the invoking service module resides on system A and the target resides on system B.
For the purposes of this task, Figure 1 contains the information to use in the configuration.
Figure 1. Invoking a service on a different system
For simplicity, only the servers involved in this communication in each cell is shown and each server resides on a different physical machine.
Procedure
- Collect information about each server involved in the communication. You need the following information for both the originator and target servers:
- Host IP address
- Cell
- Node
- Server
- Bus name
- Messaging engine
- Failed Event Queue name
- Install the applications.
- Create a foreign bus on each server pointing to the other server and set the routing definition type to Direct, service integration bus link.
See the
Connecting service integration buses to use point-to-point messaging topic in the WebSphere Application Server information center for more information.
From the example, the configuration of the foreign bus and SIB mediation link on System A would be:
Name of Service integration bus to connect to (the foreign bus): SCA.SYSTEM.ABCNode01Cell.Bus Gateway messaging engine in the foreign bus: ABCNode01.server1-SCA.SYSTEM.ABCNode01Cell.Bus Service integration bus link name: TestCrossCell Bootstrap service integration bus provider endpoints: 9.26.237.144:7277:BootstrapBasicMessagingThe configuration of the foreign bus and SIB mediation link on System B would be:
Name of Service integration bus to connect to (the foreign bus): SCA.SYSTEM.WBINode01Cell.Bus Gateway messaging engine in the foreign bus: WPSNode.server1-SCA.SYSTEM.WBINode01Cell.Bus Service integration bus link name: TestCrossCell Bootstrap service integration bus provider endpoints: 9.26.237.118:7276:BootstrapBasicMessaging
Attention: The port number in the bootstrap is the SIB endpoint address port. If you enabled security, use the secure SIB endpoint address port.
- Synchronize the SIB mediation links by restarting the servers.
You should see messages like:
[9/25/09 8:04:23:406 CDT] 00000034 SibMessage I [:] CWSIT0032I: The service integration bus link TestCrossCell from messaging engine WPSNode01.server1-SCA.SYSTEM.WPSNode01Cell.Bus in bus SCA.SYSTEM.WPSNode01Cell.Bus to messaging engine ABCNode01.server1-SCA.SYSTEM. ABCNode01Cell.Bus in bus SCA.SYSTEM. ABCNode01Cell.Bus started.- Display the destinations for each service module.
- Modify the default forwarding path of outgoing destinations of the invoking service module that must be wired to targets on the other system.
Select Applications > SCA modules, choose module and then click SCA system bus destinations.
The destination to wire has importlink in the destination name, for example on System A the destination would be sca/AppA/importlink/test/sca/cros/simple/custinfo/CustomerInfo. Modify the path by prefixing the foreign bus name to the destination name. From the example, the foreign bus name for the second system is SCA.SYSTEM.ABCNode01Cell.Bus. The result is
SCA.SYSTEM.ABCNode01Cell.Bus:sca/AppA/importlink/ test/sca/cros/simple/custinfo/CustomerInfo- Optional: Add sender roles to the foreign buses, if you enabled security on the systems. Make sure to define the user each application uses on both systems from the operating system command prompt. The command to add the role is:
wsadmin $AdminTask addUserToForeignBusRole -bus busName -foreignBus foreignBusName -role roleName -user userNameWhere:
- busName
- Is the name of the bus on the system you enter the command.
- foreignBusName
- Is the foreign bus to which you are adding the user.
- userName
- Is the userid to add to the foreign bus.
What to do next
Start the applications.
Considerations when invoking services on different servers