• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

The Problem

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.

Core Idea

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.

How It Works

  1. EJB Object: Implements javax.ejb.EJBObject which extends java.rmi.Remote
  2. RMI-IIOP: Uses IIOP protocol instead of JRMP
  3. Remote exceptions: All remote methods must throw java.rmi.RemoteException
  4. Parameter passing: Primitives, serializable objects, RMI-IIOP remote objects
  5. CORBA integration: Can interoperate with CORBA objects via IIOP

Appendix A covers RMI-IIOP in detail.

Visual Explanation

G Client JVM Client JVM EJB Object EJB Object Client JVM->EJB Object RMI-IIOP CORBA Object CORBA Object EJB Object->CORBA Object IIOP

Key Properties

  • 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

Connections

  • 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

Edge Cases & Gotchas

  • 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