Wednesday, June 21, 2006

The Rise and Fall of CORBA

The Rise and Fall of CORBA is a good summary of how CORBA never gained general acceptance (Miscrosoft had competing standards, the specs and APIs were overly complex, spec discussions were bogged down in committees) and quickly died when Web Services emerged (MS championed their cause when they gave up on their own DCOM).

Finetix own Charles Alvarez co-authored the CORBA Persistence spec.

My thoughts on why CORBA died as quickly as it did:
  • To do mappings for anything but simple object structures was hard.
  • It took a very long time to standardize the basic API calls (don't get me started on BOA vs POA!) and services. In the mean time if you had used Iona's proprietary APIs then most of the time you couldn't be bothered to port your code to another vendors proprietary API (except when Iona tried to increase their license fees x10 in the early 00'!).
  • The CORBA protocol is binary. XML is at least semi-readable text, which makes it easier to debug. Of course text-based protocols are much slower, but nobody seems to have been able to agree yet on a binary version of XML for web services.
A couple of things I don't agree on the article author with:
  • Security. A number of CORBA vendors support the CSIv2 spec (part of J2EE 1.4 spec, supported by WebSphere and others since appservers use the CORBA on-the-wire protocol IIOP) or simply SSL wrappers.
  • While C# bindings were never officially specified (MS didn't support this effort) a couple of open source efforts did a good job at filling this need: IIOP.NET (which is really cool, allows you to call EJBs from .NET!) and Remoting.CORBA

No comments: