Java 2 RMI and IDL Comparison

When developing applications using distributed objects, Java developers have to make the choice which distributed object model to use. They can choose among the Remote Method Invocation (RMI) bounded with Java from version 1.1, or, they can use one of the several CORBA implementations. In version 2 Java has been supplemented with a native CORBA implementation known as Java IDL. Lately, even the most enthusiastic users of RMI have started to question which model to use and why Sun has decided to support both, CORBA and RMI.