Corba is a lot like RMI, but is designed to be cross language and cross platform. Since I tend to use Java, I dislike all the extra "stuff" that Corba brings. But if you want to do C++ to Java from an Intel PC to a Itanium Server, Corba is your solution.
SOAP is just XML, both Corba and RMI are about remote execution of procedures (functions). Different problem space.