posted 17 years ago
CORBA is a "language-neutral" distributed object scheme - this means you can have a C++ client and a Java server, and as long as they use CORBA to communicate, they can "talk" to each other. You basically create an interface you want the client and server to agree upon in IDL (CORBA "language" used to define "language independent" interfaces), and run an IDL compiler on it that produces corresponding interfaces for both languages and produces some "plumbing" code for them to talk to each other.
RMI is a more "Java only" distributed object scheme (though there are some projects that allow other languages to be able to "talk" RMI, it's pretty Java-centric). Basically, you make an interface extending Java's "special" Remote interface, implement that interface in your server and run "rmic" on it to produce "plumbing" code (stubs and skeletons). If you want your RMI objects to be able to talk to CORBA objects you can use RMI-IIOP - IIOP is the protocol that CORBA objects use to "talk" to each other, so if RMI uses that to "talk" it is treated like any other CORBA object.
-Nate
Write once, run anywhere, because there's nowhere to hide! - /. A.C.