BEA Logo BEA WebLogic Enterprise Release 5.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   WebLogic Enterprise Doc Home   |   Administration Topics   |   Previous Topic   |   Next Topic   |   Contents   |   Index

Managing Remote Client Applications (BEA WebLogic Enterprise Systems)

 

This chapter explains how to configure connections from remote client applications to CORBA objects via the standard Internet Inter-ORB Protocol (IIOP). This chapter is specific to BEA WebLogic Enterprise servers.

This topic includes the following sections:

 


Terms and Definitions

The following terms are used in this chapter.

DLL

Dynamic Link Libraries. These are a collection of functions grouped into a load module that is dynamically linked with an executable program at run time for a Microsoft Windows or an OS/2 application.

IIOP

Internet Inter-ORB Protocol (IIOP). IIOP is basically TCP/IP with some CORBA-defined message exchanges that serve as a common backbone protocol.

ISH

IIOP Handler. This is a client process running on an application site that acts as a surrogate on behalf of the remote client.

ISL

IIOP Listener. This is a server process running on an application site that listens for remote clients requesting connection.

server

A server hosted on a machine in a BEA WebLogic Enterprise domain. A server is built with the BEA WebLogic Enterprise buildobjserver command. Servers implement BEA WebLogic Enterprise functionality, such as security, transactions, and object state management.

Note: In BEA WebLogic Enterprise 4.0, servers could only make invocations on other servers inside the BEA WebLogic Enterprise domain. In BEA WebLogic Enterprise 4.2, the servers can make invocations on any server, inside or outside a BEA WebLogic Enterprise domain.

native client

A client located within a BEA WebLogic Enterprise domain, using the BEA WebLogic Enterprise ORB to make invocations on objects either inside or outside the BEA WebLogic Enterprise domain. A native client's host contains the BEA WebLogic Enterprise administrative and infrastructure components, such as tmadmin, FactoryFinder, and ISL/ISH. Native clients use the environmental objects to access BEA WebLogic Enterprise objects. You build native clients with either the buildobjclient command or Java client commands.

Note: In BEA WebLogic Enterprise 4.0, a native client could not make invocations on objects outside the BEA WebLogic Enterprise domain.

remote client

A client not located within a BEA WebLogic Enterprise domain. A remote client can use the BEA WebLogic Enterprise ORB to make invocations on objects either inside or outside the BEA WebLogic Enterprise domain. A remote client's host does not contain BEA WebLogic Enterprise administrative and infrastructure components, such as tmadmin, FactoryFinder, and ISL/ISH; it does contain supporting software (the BEA WebLogic Enterprise ORB) that allows remote clients to invoke objects. Remote clients use the environmental objects to access BEA WebLogic Enterprise objects. You build remote clients with either the buildobjclient command or the Java client commands.

native joint client/server

A process that has two purposes: 1) to execute code acting as the starter for some business actions and 2) to execute method code for invocations on objects.

A joint client/server located within a BEA WebLogic Enterprise domain. You build C++ native joint client/servers with the buildobjclient command. Java native joint client servers are not supported.

Note: In BEA WebLogic Enterprise 4.0 and 4.1, a client could not act as a server.

Note: The server role of the native joint client/server is considerably less robust than that of an server. It has none of the BEA WebLogic Enterprise administrative and infrastructure components, such as tmadmin, FactoryFinder, and ISL/ISH (hence none of BEA WebLogic Enterprise's scalability and reliability attributes), it does not use the BEA WebLogic Enterprise TP Framework, and it requires more direct interaction between the client and the ORB.

remote joint client/server

A process that has two purposes: 1) execute code acting as the starter for some business actions and 2) execute method code for invocations on objects. A joint client/server located outside a BEA WebLogic Enterprise domain. The joint client/server does not use the BEA WebLogic Enterprise TP Framework and requires more direct interaction between the Client and the ORB. You build remote joint client/servers with the buildobjclient command or the Java client commands.

Note: In BEA WebLogic Enterprise 4.0, a remote client could not act as a server.

Note: A joint client/server is different from a server that acts as a client as part of its server role. Once the server completes processing of an invocation, it returns to dormancy. A joint client/server is always in the active mode, executing code not related to a server role; the server role temporarily interrupts the active client role, but the client role is always resumed.

Note: The server role of the remote joint client/server is considerably less robust than that of a server. Neither the client nor the server has any of the BEA WebLogic Enterprise administrative and infrastructure components, such as tmadmin, FactoryFinder, and ISL/ISH (hence, none of BEA WebLogic Enterprise's scalability and reliability attributes).

BEA WebLogic Enterprise object

A CORBA object that is implemented using TP Framework and that implements security, transactions, and object state management. BEA WebLogic Enterprise objects are implemented in servers; that is, it is in a BEA WebLogic Enterprise domain and uses the BEA WebLogic Enterprise infrastructure.

Callback object

A CORBA object supplied as a parameter in a client's invocation on a target object. The target object can make invocations on the callback object either during the execution of the target object or at some later time (even after the invocation on the target object has been completed). A callback object might be located inside or outside a BEA WebLogic Enterprise domain.

Note: In BEA WebLogic Enterprise 4.0 and 4.1, callback objects existed but were not named as such; they could have implementations only in the BEA WebLogic Enterprise domain; that is, they could be located only in a server (as a CORBA object).

 


Remote Client Overview

In this chapter, the term remote client means BEA WebLogic Enterprise client applications that you deployed on systems that do not have the full BEA WebLogic Enterprise server software installed. This means that no administration or application servers are running there and that no Bulletin Board is present. All communication between the client and the application takes place over the network. The types of clients are:

A client process can be running UNIX or Microsoft Windows. The CORBA and ActiveX clients have access to the CORBA ORB interface. RMI clients have access to Enterprise JavaBeans (EJBs). Jolt and Tuxedo /WS clients have access to Tuxedo services. The networking behind the calls is transparent to the user. The client process registers with the system and has the same status as a native client. The client can do the following:

Illustration of an Application with Remote Clients

Figure 12-1 shows an example of an application with remote clients connected. Any request by a remote client to access the CORBA server application is sent over the network to the ISH. This process sends the request to the appropriate server and sends the reply back to the remote client.

Figure 12-1 Bank Application with Remote Clients

How the Remote Client Connects to an Application

The client connects to the ISL process in the IIOP Listener/Handler using a known network address. This is initiated when the client calls the Bootstrap object constructor. The ISL process uses a function that is specific to the operating system to pass the connection directly to the selected ISH process. To the client application, there is only one connection. The client application does not know, or need to know, that it is now connected to the ISH process.

 


Setting Environment Variables

For CORBA C++ clients, environment variables can be used to pass information to the system, as follows:

 


Setting the Maximum Number of Remote Clients

To join remote clients to an application, you must specify the MAXWSCLIENTS parameter in the MACHINES section of the UBBCONFIG file.

MAXWSCLIENTS tells the BEA WebLogic Enterprise system at boot time how many accesser slots to reserve exclusively for remote clients. For native clients, each accesser slot requires one semaphore. However, the ISH process (executing on the native platform on behalf of remote clients) multiplexes remote client accessers through a single accesser slot and, therefore, requires only one semaphore. This points out an additional benefit of the remote extension. By putting more clients out on remote systems and taking them off the native platform, an application reduces its IPC resource requirements.

MAXWSCLIENTS takes its specified number of accesser slots from the total set in MAXACCESSERS. This is important to remember when specifying MAXWSCLIENTS; enough slots must remain to accommodate native clients as well as servers. Do not specify a value for MAXWSCLIENTS greater than MAXACCESSERS. The following table describes the MAXWSCLIENTS parameter.

Parameter

Description

MAXWSCLIENTS

Specifies the maximum number of remote clients that may connect to a machine.

The default is 0. If a value is not specified, remote clients may not connect to the machine being described.

The syntax is MAXWSCLIENTS=number.

 


Configuring a Listener for a Remote Client

Remote clients access your application through the services of an ISL process and one or more ISH processes. The ISL is specified in one entry as a server supplied by the BEA WebLogic Enterprise system. The ISL can support multiple remote clients and acts as the single point of contact for all the remote clients connected to your application at the network address specified on the ISL command line. The listener schedules work for one or more remote handler processes. An ISH process acts as a surrogate within the administrative domain of your application for remote clients on remote systems. The ISH uses a multiplexing scheme to support multiple remote clients concurrently.

To join remote clients to an application, you must list the ISL processes in the SERVERS section of the UBBCONFIG file. The processes follow the same syntax for listing any server.

Format of the CLOPT Parameter

You use the following ISL command-line options (CLOPT) to pass information to the ISL process for remote clients. The format of the CLOPT parameter is as follows:

ISL SRVGRP="identifier"
SRVID="number"
CLOPT="[ -A ] [ servopts options ] -- -n netaddr
[ -C {detect|warn|none} ]
[ -d device ]
[ -K {client|handler|both|none} ]
[ -m minh ]
[ -M maxh ]
[ -T client-timeout]
[ -x mpx-factor ]
[ -H external-netaddr"

For a detailed description of the command-line options (CLOPT), see the ISL command in the Command, System Processes, and MIB Reference.

 


Modifying the UBBCONFIG File to Support Remote Clients

Listing 12-1 shows a sample UBBCONFIG file to support remote clients, as follows:

 


Configuring Outbound IIOP for Remote Joint Client/Servers

Support for outbound IIOP provides native clients and servers acting as native clients the ability to invoke on a remote object reference outside of the BEA WebLogic Enterprise domain. This means that calls can be invoked on remote clients that have registered for callbacks, and objects in remote servers can be accessed.

Administrators are the only users who interact directly with the outbound IIOP support components. Administrators are responsible for booting the ISLs with the correct startup parameters to enable outbound IIOP to objects not located in a connected client. Administrators may need to adjust the number of ISLs they boot and the various startup parameters to obtain the best configuration for their installation's specific workload characteristics. They have the option of booting the ISLs with the default parameters.

Note: In this release, outbound IIOP is not supported for transactions or security.

Functional Description

Outbound IIOP support is required to support client callbacks. In version 4.0 and version 4.1 releases of the BEA WebLogic Enterprise software, the ISL/ISH was an inbound half-gateway. Outbound IIOP support adds the outbound half-gateway to the ISL/ISH (see Figure 12-2).

There are three types of outbound IIOP connections available, depending on the version of GIOP supported by the native server and the remote joint client/server application:

Bidirectional and dual-paired connection outbound IIOP provides outbound IIOP to object references located in joint client/servers connected to an ISH. Asymmetric outbound IIOP provides outbound IIOP to object references not located in a joint client/server connected to an ISH, and also allows BEA WebLogic Enterprise clients to invoke on any object reference, not only object references located in clients currently connected to an ISH.

Each type of outbound IIOP is described in more detail in the following sections.

Figure 12-2 Joint Client/Server IIOP Connections Supported

Bidirectional Outbound IIOP

With bidirectional outbound IIOP, the following operations are executed (see Figure 12-3):

  1. A client creates an object reference and invokes on a BEA WebLogic Enterprise server. The client ORB identifies the connection as being bidirectional using the service context. The service context travels with the message to the BEA WebLogic Enterprise server.

  2. When unmarshaling the object reference, the BEA WebLogic Enterprise server compares the host/port in the service context with the host/port in the object reference. If they match, the ORB adds the ISH client information needed for routing to the ISH. This client information travels with the object reference whenever it is passed to other BEA WebLogic Enterprise servers.

  3. At some point in time, a BEA WebLogic Enterprise server or native client invokes on the object reference, and the routing code invokes on the appropriate ISH, given the client information.

  4. The ISH sends the request to the client over the same client connection.

  5. The client executes the method and sends the reply back to the ISH via the client connection.

  6. The ISH receives the reply and sends it to the BEA WebLogic Enterprise server.

    Figure 12-3 Bidirectional Connection

Asymmetric Outbound IIOP

With asymmetric outbound IIOP, the following operations are executed (see Figure 12-4):

  1. A server gets an object reference from some source. It could be a naming service, a string_to_object, or it could be passed in through a client, but not located in that client. Since the object reference is not located in a client connected to an ISH, the outgoing call cannot be made using the bidirectional method. The BEA WebLogic Enterprise server invokes on the object reference.

  2. On the first invoke, the routing code invokes a service in the ISL and passes in the host/port.

  3. The ISL selects an ISH to handle the outbound invoke and returns the ISH information to the BEA WebLogic Enterprise server.

  4. The BEA WebLogic Enterprise server invokes on the ISH.

  5. The ISH determines which outgoing connection to use to send the request to the client. If none is connected, the ISH creates a connection to the host/port.

  6. The client executes the method and sends the reply back to the ISH.

  7. The ISH receives the reply and sends it to the BEA WebLogic Enterprise server.

    Figure 12-4 Asymmetric Outbound IIOP

Dual-paired Connection Outbound IIOP

With dual-paired connection outbound IIOP, the following operations are executed (see Figure 12-5):

  1. A client creates an object reference and calls the Bootstrap function (register_callback_port) and passes the object reference.

  2. The ISH gets the host/port from the IOR and stores it with the client context.

  3. The client invokes on a BEA WebLogic Enterprise server and passes the object reference. From the register_callback_port call, the ISH creates a service context containing the host/port. The service context travels with the message to the BEA WebLogic Enterprise server.

  4. When unmarshaling the object reference, the BEA WebLogic Enterprise server compares the host/port in the service context with the host/port in the object reference. If they match, the ORB adds the ISH client information to the object reference. This client information travels with the object reference whenever it is passed to other BEA WebLogic Enterprise servers.

  5. At some point in time, a BEA WebLogic Enterprise server or native client invokes on the object reference. The routing code invokes on the appropriate ISH, passing the client information.

  6. The ISH creates a second connection to the client. It sends the request to the client over the second connection.

  7. The client executes the method and sends the reply back to the ISH via the first client connection.

  8. The ISH receives the reply and sends it to the BEA WebLogic Enterprise server. If the client disconnects from the ISH, the second connection is also disconnected.

    Figure 12-5 Dual-paired Connections Outbound IIOP

How the Routing Code Finds an ISL

The steps to finding an ISL are as follows:

  1. A service is advertised in each ISL.

  2. The routing code invokes on that service name.

    Note: Normal BEA Tuxedo routing is used to find an ISL.

  3. An idle ISL on the same machine is always chosen, if available. If not available, NETLOAD ensures that a local ISL is chosen most often.

    Note: Some invokes may be made to ISLs on nonlocal machines.

 


Using the ISL Command to Configure Outbound IIOP Support

Outbound IIOP support is used when a native C++ or Java client, or a server acting as a native client, invokes on an object reference that is a remote object reference. The routing code recognizes that the object reference is from a nonBEA WebLogic Enterprise ORB or from a remote BEA WebLogic Enterprise joint client/server.

Types of Object References

There are two kinds of remote object references:

Both are detected by the routing code and sent to the outbound IIOP support for handling.

User Interface

The user interface to outbound IIOP support is the command-line interface for booting the ISL process(es).

Command-line options to configure the outbound IIOP processing were added to the ISL command in a previous release of the BEA WebLogic Enterprise software. These options enable support for asymmetric IIOP to object references not located in clients connected to an ISH.

Additional command-line options were added in the WebLogic Enterprise 5.1 release for SSL and Secure Connection Pools. Listing 12-2 shows the ISL command syntax and highlights the new options.

Listing 12-2 ISL Command-line Options


ISL SRVGRP="identifier"

SRVID="number"

CLOPT="[ -A ] [ servopts options ] -- -n netaddr
[ -C {detect|warn|none} ]
[ -d device ]
[ -K {client|handler|both|none} ]
[ -m minh ]
[ -M maxh ]
[ -T Client-timeout]
[ -x mpx-factor ]
[-H external-netaddr]
#Options for outbound IIOP
[-O]
[-o outbound-max-connections]
[-s Server-timeout]
[-u out-mpx-users] "
#NEW options for SSL
[a]
[-R renegotiation-interval]
[-S secure-port]
[-v {detect | warn | none}]
[-z [0|40|56|128]]
[-Z [0|40|56|128]]
#NEW options for Secure connection Pools
[-E principal_nane]"


For a detailed description of the CLOPT command-line options, see the ISL command in the Command, System Processes, and MIB Reference.