*

IIOP Usage

The Java Application Web Server provides a communications infrastructure based on OMG's CORBA/IIOP (Common object Request Broker Architecture/Internet Inter-ORB Protocol) specifications. The IIOP protocol allows client communication with Business Object Framework objects on a remote server. The use of IIOP focuses on incorporating objects into Internet- or Intranet-based network computing to enable 3-tier client/server business solutions. By using the CORBA/IIOP protocol, the Java Application Web Server is capable of communicating with other clients supporting IIOP, regardless of the language used in the client. IIOP is also much more efficient than HTTP communications by using a single connection, single request protocol.

Communication Process Model

The communication process model selected for the Java Application Web Server allows a single applet to servlet communication link, with each servlet controlling access to many class instances contained in a base collection. The base collection is determined by the implementation of the servlet. The applet is loaded into the browser from a HTTP server, activates a client ORB, and sends a HTTP request to back to the server to load and run the servlet. The servlet will then activate the server ORB which controls IIOP communication with the client over the same communications port used for the original HTTP request.

Once the IIOP communication is established, object activations and method requests on those objects may occur. The client will resolve an object reference by name to the client side ORB. This will instantiate a stub that represents the object in the client process. The client application may then execute method request on the stub, just as it would a local object.

The object ID, method and parameters will be marshalled (i.e. converted into the IIOP protocol format) by the stub into a stream and sent to the server. The server ORB will demarshall the object ID and instantiate the object through the base collection. An associated skeleton will also be created to represent the object on the server for demarshalling the method request. The skeleton uses the method name to determine how to demarshall the parameters and execute the method code on the object. The return value from the method is sent back to the client in much the same manner.