Java(tm) RMI-IIOP Documentation
JavaTM RMI-IIOP Documentation
RMI over IIOP is part of the JavaTM 2 Platform, Standard Edition, v1.3. RMI over IIOP provides the ability to write CORBA applications for the Java platform without learning CORBA Interface Definition Language (IDL). To work with CORBA applications in other languages, IDL can be generated from Java programming language interfaces using the rmic compiler with the -idl option. Use the rmic compiler with the -iiop option to generate IIOP stub and tie classes, rather than Java Remote Messaging Protocol (JRMP) stub and skeleton classes. For older versions of the JDK, the RMI over IIOP compiler is available as a separate download.
RMI over IIOP includes the full functionality of a CORBA Object Request Broker (ORB). The good news for developers is that the JavaTM Standard Edition, v1.2 and higher includes a fully-functional ORB that is available in every deployment of the Java 2 Platform, Standard and Enterprise Editions. Now you can write Java CORBA code without having to license any other software!
RMI-IIOP combines the best features of Java Remote Method Invocation (RMI) with the best features of Common Object Request Broker Architecture (CORBA). It provides you with a powerful environment in which to do distributed programming using the Java platform.
Like RMI, RMI-IIOP speeds distributed application development by allowing developers to work completely in the Java programming language. When using RMI-IIOP to produce Java technology-based distributed applications, there is no separate Interface Definition Language (IDL) or mapping to learn. Like RMI, RMI-IIOP provides flexibility by allowing developers to pass any serializable Java object (Objects By Value) between application components. Like CORBA, RMI-IIOP is based on open standards defined with the participation of hundreds of vendors and users in the Object Management Group. Like CORBA, RMI-IIOP uses Internet Inter-ORB Protocol (IIOP) as its communication protocol. IIOP eases legacy application and platform integration by allowing application components written in C++, Smalltalk, and other CORBA supported languages to communicate with components running on the Java platform.
With RMI-IIOP, developers can write remote interfaces in the Java programming language and implement them simply using Java technology and the Java RMI APIs. These interfaces can be implemented in any other language that is supported by an OMG mapping and a vendor supplied ORB for that language. Similarly, clients can be written in other languages using IDL derived from the remote Java technology-based interfaces. Using RMI-IIOP, objects can be passed both by reference and by value over IIOP.
The RMI Programming Model
The RMI Programming model enables the programming of CORBA servers and applications via the rmi API. You can choose to work completely within the Java programming language, using the Java Remote Method Protocol (JRMP) or work with other CORBA-compliant programming languages using the Internet InterORB Protocol (IIOP). This page discusses using IIOP as the transport. For more information on using the JRMP transport, link to the RMI page at http://java.sun.com/j2se/1.3/docs/guide/rmi/.
There are several scenarios that will define how you will want to create distributed applications. Here are some of them:
- If you have been developing CORBA applications using IDL for some time, you will probably want to stay in this environment. Create the interfaces using IDL, and define the client and server applications using the Java programming language to take advantage of its "Write Once, Run AnywhereTM" portability, its highly productive implementation environment, and its very robust platform.
- If all of your applications are written in the Java programming language, you will probably want to use Java RMI to enable communication between Java objects on different virtual machines and different physical machines. Using Java RMI without its IIOP option leverages its strengths of code portability, security, and garbage collection.
- If you writing most of your new applications using the Java programming language, but need to maintain legacy applications written in other programming languages as well, you will probably want to use Java RMI with its IIOP compiler option.
The OMG is the official source of information for all CORBA and IIOP related information. The CORBA/IIOP 2.3.1 Specification, formal/99-10-07 is available electronically.
Send questions or comments to: JavaIDL@eng.sun.com.