![]() |
![]() |
![]() |
![]() |
![]() |
• idl—compiles the OMG IDL file and generates client stub and server skeleton files required for interface definitions being implemented in C++.For a description of how to use the IDL compiler, see Chapter 3, “Developing Oracle Tuxedo CORBA Applications.” For a description of the idl command, see the Oracle Tuxedo Command Reference in the Oracle Tuxedo online documentation.Table 2‑1 lists the commands that the Oracle Tuxedo CORBA programming environment provides for developing CORBA applications and managing the Interface Repository.
Table 2‑1 Oracle Tuxedo CORBA Development Commands For a description of how to use the development commands to develop client and server applications, see Chapter 3, “Developing Oracle Tuxedo CORBA Applications.”For a description of the development commands, see the Oracle Tuxedo Command Reference in the Oracle Tuxedo online documentation.You can use the commands listed in Table 2‑2 to perform administration tasks for your CORBA application.
Table 2‑2 Administration Commands For information about the Administration commands, see File Formats, Data Descriptions, MIBs, and System Processes Reference in the Oracle Tuxedo online documentation.For information about the AdminAPI, see Setting Up a Oracle Tuxedo Application in the Oracle Tuxedo online documentation.For information about using the Object Life Cycle Service, see “How Oracle Tuxedo CORBA Client and Server Applications Interact” on page 2‑12.For information about using security, see Using Security in CORBA Applications in the Oracle Tuxedo online documentation.The Transaction service is accessed through either the TransactionCurrent environmental object or the TransactionFactory object. The TransactionCurrent and TransactionFactory objects allow a client application to participate in a transaction. The Oracle Tuxedo software provides an implementation of the CORBA Services Object Transaction Service (OTS).For information about using transactions, see Using CORBA Transactions in the Oracle Tuxedo online documentation.For information about using DII, see Creating CORBA Client Applications.
•
• Figure 2‑1 illustrates the components in a Oracle Tuxedo CORBA application.Bootstrapping the Oracle Tuxedo domain establishes communication between a client application and the domain. There are two mechanisms available for bootstrapping, the Oracle mechanism and the CORBA Interoperable Naming Service (INS) bootstrapping mechanism specified by the OMG. Use the Oracle mechanism if you are using Oracle CORBA client software. Use the CORBA INS mechanism if you are using a client ORB from another vendor. For more information about bootstrapping the Oracle Tuxedo domain, see the CORBA Programming Reference in the Oracle Tuxedo online documentation.For more information about the Bootstrap URL address formats, see Using Security in CORBA Applications in the Oracle Tuxedo online documentation.The client application then uses the Bootstrap object or the INS bootstrapping mechanism to obtain references to the objects in a Oracle Tuxedo domain. Once the Bootstrap object is instantiated, the resolve_initial_references() method is invoked by the client application, passing in a string id, to obtain a reference to the objects in the Oracle Tuxedo domain that provide CORBA services.Figure 2‑2 illustrates how the Bootstrap object or INS mechanism operates in a Oracle Tuxedo domain.Figure 2‑2 How the Bootstrap Object or INS OperatesThe IIOP Listener/Handler is a process that receives the CORBA client request, which is sent using IIOP, and delivers that request to the appropriate CORBA server application. The IIOP Listener/Handler serves as a communication concentrator, providing a critical scalability feature. The IIOP Listener/Handler removes from the CORBA server application the burden of maintaining client connections. For information about configuring the IIOP Listener/Handler, see Setting Up a Oracle Tuxedo Application and the description of the ISL command in the Oracle Tuxedo Command Reference in the Oracle Tuxedo online documentation.Figure 2‑3 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 EnvironmentThe TP Framework ensures that the execution of a client request takes place in a coordinated, predictable manner. The TP Framework calls the objects and services available in the Oracle Tuxedo application at the appropriate time, in the correct sequence. In addition, the TP Framework maximizes the reuse of system resources by objects. Figure 2‑4 illustrates the TP Framework.Figure 2‑4 The TP FrameworkThe system administrator enters the tmboot command on a machine in the Oracle Tuxedo domain to start the Oracle Tuxedo CORBA server application. The TP Framework invokes the initialize() operation in the Server object to initialize the server application.
2. Invokes the logon() operation of the PrincipalAuthenticator object, which is retrieved from the SecurityCurrent object.
Note: For information about using certificate based authentication, see Using Security in CORBA Applications in the Oracle Tuxedo online documentation.
2. Invoke the SimpleFactory object to get a reference to the Simple object.If the SimpleFactory object is not active, the TP Framework instantiates the SimpleFactory object by invoking the Server::create_servant method on the Server object, shown in the following figure.
3. The TP Framework invokes the activate_object() and find_simple() operations on the SimpleFactory object to get a reference to the Simple object, shown in the following figure.The SimpleFactory object then returns the object reference to the Simple object to the client application.
Note: Because the TP Framework activates objects by default, the Simpapp sample application does not explicitly use the activate_object() operation for the SimpleFactory object.Using the reference to the CORBA object that the factory has returned to the client application, the client application invokes an operation on the object. For example, now that the client application has an object reference to the Simple object, the client application can invoke the to_upper() operation on it. The instance of the Simple object required for the client request is created as shown in the following figure.