Java RMI = Remote Method Invocation that is transported over JRMP - java native protocol.
It supports different services than IIOP like : distributed garbage collection, downloading of class files and more.
In JRMP the object itself is sent over the network, de serialized by the other party, and then the method is called.
RMI-IIOP : Remote Method Invocation that is transported using IIOP-which is the protocol used by CORBA OMG. RMI-IIOP was introduced as a "settlement" during the specification of
EJB, and some parties of JCP that wanted CORBA interoperability.
Prior to CORBA 2.3 it only supported passing arguments (data types) to remote objects. The remote machine needs to build the object, give it state, and then call the method with the argument sent to it.
It does not broadcast the object itself.
In CORBA 2.3 the "object by value" (sending the object) specification was added (I have never used it though).
JRMP is said to have better performance - mainly because it is not generic as IIOP. Note that both protocols are not secured as is. I think that in most cases they are also sent over SSL - to provide the encryption.