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

  1. 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

  2. Install the applications.

  3. 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:BootstrapBasicMessaging

    The 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.

  4. 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. 
  5. Display the destinations for each service module.
  6. 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

  7. 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  userName

    Where:

    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