2.3.3 ORB

The ORB serves as an intermediary for requests that CORBA client applications send to CORBA server applications, so that these applications do not need to contain information about each other. The ORB is responsible for all the mechanisms required to find the implementation that can satisfy the request, to prepare an object's implementation to receive the request, and to communicate the data that makes up the request. The Oracle Tuxedo CORBA product includes a C++ client/server ORB.

The following figure shows the relationship between an ORB, a CORBA client application, and a CORBA server application.

Figure 2-3 The ORB in a CORBA Client/Server Environment

Describes the ORB in a CORBA Client/Server Environment diagram

When the client application uses IIOP to send a request to the Oracle Tuxedo domain, the ORB performs the following functions:

  • Validates each request and its arguments to ensure that the client application supplied all the required arguments.
  • Manages the mechanisms required to find the CORBA object that can satisfy the request from the CORBA client application. To do this, the ORB interacts with the Portable Object Adapter (POA). The POA prepares an object's implementation to receive the request and communicates the data in the request.
  • Marshals data. The ORB on the client machine writes the data associated with the request into a standard form. The ORB receives this data and converts it into the format appropriate for the machine on which the server application is running. When the server application sends data back to the client application, the ORB marshals the data back into its standard form and sends it back to the ORB on the client machine.