RMI-IIOP (read as "RMI over IIOP") denotes the Java Remote Method Invocation (RMI) interface over the Internet Inter-Orb Protocol (IIOP), which delivers Common Object Request Broker Architecture (CORBA) distributed computing capabilities to the Java platform. It was initially based on two specifications: the Java Language Mapping to OMG IDL, and CORBA/IIOP 2.3.1.
With features inherited from CORBA, software components that work together can be written in multiple computer languages and run on multiple computers. In other words, it supports multiple platforms and can make remote procedure calls to execute, subroutines on another computer as defined by RMI.
The Java RMI-IIOP specification was created to simplify the development of CORBA applications, while preserving all major benefits. It was developed by Sun Microsystems and IBM, combining features of Java RMI technology with features of CORBA technology.
RMI-IIOP uses generated code for remote objects and does not require supplementary classes for non-trivial data, unlike CORBA. This results in less complexity and a smaller footprint. Both CORBA and RMI-IIOP utilize the General Inter-ORB Protocol communication standard.
RMI-IIOP is largely based on the Object by Value concept that serves as a container or direct replacement for CORBA structures, unions, sequences, arrays and strings. No separate IDL is necessary. Instead, the data structure definitions are discovered automatically via reflection mechanisms. However, it is possible to generate the IDL definitions for the involved RMI-IIOP data structures and use these definitions to exercise finer control between RMI-IIOP and CORBA communicating partners.
Recent versions of RMI-IIOP derive their servants from the standard
Servant class. Hence, it is possible to connect them to a CORBA ORB manually, involving one or more of Portable Object Adapters, Portable Interceptors, CORBA naming services, along with other standard CORBA features.
- "Java SE Core Technologies - CORBA / RMI-IIOP". http://www.oracle.com/: ORACLE. Retrieved 2011-04-12.
In addition to Java IDL, Java SE also supports Java Remote Method Invocation over Internet Inter-ORB Protocol technology ("RMI-IIOP") This technology provides the ability to write CORBA applications for the Java platform without learning CORBA Interface Definition Language (IDL). RMI over IIOP is based on two specifications of the Object Management Group: Java Language Mapping to OMG IDL Specification, and CORBA/IIOP 2.3.1 Specification, formal/99-10-07.
- "RMI-IIOP Programmer's Guide: What is RMI-IIOP? RMI". http://download.oracle.com/: ORACLE. Retrieved 2011-04-12.
With RMI you can write distributed programs in the Java programming language. RMI is easy to use, you don't need to learn a separate interface definition language (IDL), and you get Java's inherent "write once, run anywhere" benefit. Clients, remote interfaces, and servers are written entirely in Java. RMI uses the Java Remote Method Protocol (JRMP) for remote Java object communication.