I am currently working on a large command and control system written many years ago when CORBA was still a hot technology. At the time it really was the only suitable realtime middleware with C++ and Java interoperability available and amenable to the US Navy. CORBA has many failings, but it can be successfully used if you constrained your use of it. (Of course, this is a truism for all technologies and appetites.) Nevertheless, CORBA is now an antique and should not be used for new work. In 2006 Michi Henning wrote "The Rise and Fall of CORBA"  which is still an excellent enumeration of the breakdown of a technology and a cautionary tale about committees and consortia.