What is the difference between CORBA and Java RMI?
Hi,
I know little about RMI concepts. But I wanted to know what CORBA is and what is the difference between CORBA and Java RMI. It would be great if you adding the minor differences as major ones. In what scenario's one can opt RMI over CORBA or vice-versa? Will appreciate if somebody can clear my doubts?
Re: What is the difference between CORBA and Java RMI?
RMI is completely based on Java, CORBA is language independent. There are many adapters for CORBA, and programs can call procedures written in any language that has a CORBA interface. CORBA has more features documented in the specification that only communication between processes. RMI is easier to implement if you know Java - is the same as calling a local process - but is limited only to call other Java applications.
Re: What is the difference between CORBA and Java RMI?
RMI provides support for polymorphic parameter passing, while not strictly CORBA. CORBA supports multiple languages is good for some applications, but MRI has the advantage of being dynamic, which is good for other applications. It allows dynamic loading of classes at runtime. In language CORBA environment, dynamic class loading is not possible. The major advantage of dynamic class loading is that it allows arguments to be passed in remote invocations that are subtypes of the declared types. In CORBA, all types must be known in advance.
Re: What is the difference between CORBA and Java RMI?
RMI allows full objects to be passed and returned. CORBA allows remote method invocations as well as the exchange of primitive data types and structures. Many places have CORBA infrastructures, to allow J2EE people to pretend that EJBs might in some crazy world be compatible with CORBA components, CORBA also appears to have a performance increase over RMI, which makes it an attractive option for systems that are accessed by users who require real-time interaction.