Search code examples
ccomparisoncorba

CORBA: omniORB vs. TAO vs. MICO vs. Orbit


I want to use CORBA for a C application and thus I wanted to compare the various implementations available on the internet, e.g. the ones mentioned in the title. However, I can't find any comparison that is remotely up-to-date, like this and this.

My core requirements are as follows:

  • Client and server can be created in different languages and compiled on different OS's.
  • The server must be able to push calls.
  • No data overhead, i.e. Web Service with their relatively huge xml messages are out of question.
  • The CORBA implementation must be available under a free license that allows creation of commercial applications.

Can anyone here give advice? I know CORBA is old, as I have read Why has CORBA lost popularity? and Is CORBA legacy?, so I don't want to start another discussion on how horribly bloated CORBA is etc. I'd just like to know which implementation fits my requirements the best, but if you know of something that's better than CORBA, feel free to post it here, too.

Cheers Alex


Solution

  • I think the old comparisons are very old and not relevant any more. Of the three ORBs you mention TAO is actively maintained and supported, it is the leading ORB supporting the IDL to C++ language mapping.

    TAO and MICO are both C++ ORBs, Orbit has support for C, so if your requirement is only pure C, than Orbit is the only option. If you can wrap again a C++ ORB in C, than TAO would be the option.

    If you are looking for a more modern implementation, than check the new IDL to C++11 language mapping, which is very easy to use. There is one implementation already on the market, called TAOX11, which is 100% open source.