RMI (Remote Method Invocation) originally used JRMP (Java Remote Method Protocol), which only works between Java objects. To integrate with CORBA (cross-language), we need RMI to use IIOP (Internet Inter-ORB Protocol) as its transport.
RMI-IIOP is RMI extended to use the IIOP protocol, enabling CORBA integration. It’s the official API used in J2EE (not plain RMI). EJB objects are fully networked RMI-IIOP objects callable from other JVMs.
- EJB Object: Implements
javax.ejb.EJBObjectwhich extendsjava.rmi.Remote - RMI-IIOP: Uses IIOP protocol instead of JRMP
- Remote exceptions: All remote methods must throw
java.rmi.RemoteException - Parameter passing: Primitives, serializable objects, RMI-IIOP remote objects
- CORBA integration: Can interoperate with CORBA objects via IIOP
Appendix A covers RMI-IIOP in detail.
- IIOP protocol: Standard CORBA wire protocol
- Official J2EE: Used instead of plain RMI in J2EE
- RemoteException: All remote methods must declare this
- Parameter rules: Only certain types can be passed (primitives, serializable, remote objects)
- CORBA compatible: Enables cross-language calls
- Built from: RMI — RMI-IIOP extends RMI
- Builds into: EJB Object — EJB objects are RMI-IIOP objects
- Related: Java IDL — Java IDL also uses CORBA/IIOP
- Related: Distributed Objects — RMI-IIOP enables distributed Java objects
- Contrasts with: RMI Registry — RMI-IIOP uses IIOP, not JRMP
- Parameter restrictions: Not all objects can be passed (must be serializable or remote)
- RemoteException: Forgetting to declare it causes compile error
- Firewall issues: IIOP may be blocked (use HTTP tunneling if needed)
- Appendix A: See full RMI-IIOP details there