Possible Duplicate:
RMI and CORBA Differences?
What is the difference between RMI and Corba?
RMI is a Java-specific technology. CORBA has implementations for many languages. You can use CORBA to share objects between programs written in different languages (e.g. C++ and Java).
CORBA uses IDL (Interface Definition Language) to separate interface from implementation. RMI just uses Java interfaces.
Because CORBA is not tied to a particular language, the data types do not always map exactly to the types used by your programming language (e.g. a long in IDL is an int in Java).
RMI programs can download new classes from remote JVMs. CORBA doesn't have this code sharing mechanism.
It's been a while, but I remember (from porting a Java app from CORBA to RMI) that CORBA (or at least the implementation we were using) took care of a lot of the necessary synchronization for concurrent code, which was something we had to do explicitly when using RMI.
RMI can be configured to operate over IIOP (the protocol used by CORBA).
Here is a comparison: Java RMI & CORBA. A comparison of two competing technologies
精彩评论