2.2.5 RMI-over-IIOP Interface
RMI-over-IIOP provides interoperability with CORBA objects implemented in any language if all the remote interfaces are originally defined as RMI interfaces. RMI-over-IIOP is also known as RMI-on-IIOP, RMI/IIOP, or RMI-IIOP. The term RMI-over-IIOP is used in the discussions that follow.
With RMI and CORBA, programmers must decide between RMI, with its easy programming features, and CORBA, with its broad interoperability. IBM and Sun’s JavaSoft, with the cooperation of the Object Management Group (OMG), jointly developed RMI-over-IIOP to solve this dilemma. JavaSoft includes RMI-over-IIOP in its Java Development Kit (JDK).
With RMI-over-IIOP, Java programmers can create applications in RMI that include CORBA connections. And with CORBA 2.3 support for Objects-by-Value, CORBA programmers can create applications in CORBA that include EJB connections.
Note:
For information on Objects-by-Value and supported value types in Oracle Tuxedo CORBA, see “Mapping of OMG IDL Statements to C++” in Oracle Tuxedo CORBA Programming Reference.With RMI-over-IIOP and CORBA support for Objects-by-Value, the following client-server interfaces are possible:
- RMI client → RMI-over-IIOP server
- CORBA client → RMI-over-IIOP server
- RMI-over-IIOP client → RMI server
- RMI-over-IIOP client → CORBA server
- RMI-over-IIOP client → RMI-over-IIOP server
Note:
For the “RMI-over-IIOP client → CORBA server” interface, an RMI-over-IIOP client cannot necessarily access all existing CORBA objects because the semantics of CORBA objects defined in IDL are a superset of those of RMI-over-IIOP objects. Thus, an existing CORBA object’s IDL cannot always be mapped into an RMI-over-IIOP Java interface.A server binary (a class file) created using RMI-over-IIOP APIs can be exported as JRMP (RMI native protocol), IIOP, or both. Exporting an RMI-over-IIOP object to both JRMP and IIOP simultaneously is called dual export.
For more information about RMI-over-IIOP, see Programming WebLogic RMI over IIOP at:
Parent topic: Interoperability Programming Interfaces