How does CORBA compare to RMI? to SOAP? to .NET?

Pavel Tavoda

It's not simple question and to completely answer this question you need good study. At first I want point you on one very good bookmark page Cetus Links. And now my answer:

  • CORBA - is set of standards, definitions, language mappings, application interfaces, standard services. Many of Java interface standards are java mapping of standard CORBA interfaces sometimes with small extensions. One part of CORBA is protocol description between server and client for interchanging data and calling procedure. This part of CORBA standard is called GIOP (General Inter-Orb Protocol) and TCP/IP realization is called IIOP (Internet Inter-Orb Protocol).
  • RMI - is protocol for remote invocation of services for Java and only for Java. As low level protocol is using proprietary communication and both sides (client and server) have to be in Java.
  • RMI with IIOP plugin - it's standard RMI with IIOP used as communication low level protocol. Thanks to this you can have full interoperability between RMI and CORBA and IIOP plugin is used as bridge between this two worlds. However if you want build heterogenous, enterprise, stable solutions then I would advise you to use full CORBA and not intermix RMI with CORBA. Some CORBA implementations are free, tested, very stable, fast, well documented ... .
  • SOAP (Simple Object Access Protocol) - Is XML based protocol for interchanging XML objects. It's description of wire format for interchanging XML objects. It give you answers on question similar to this: "How to transfer object 2,3 and 5 from my set on server to client".
  • .NET - something very similar to what already J2EE (Java Enterprise Edition) have except reason that .NET is only in state of strategy and promising great features.