CORBA, I Loved Thee Well

by William Grosso

Related link:

About a month ago, I was invited to give a presentation on Web Services to a software engineering class at the University of San Francisco. I demurred, pointing out that I'm not really an expert on Web Services, and definitely not a fan of them.

Some e-mail was exchanged and I wound up giving a historical talk on CORBA. For those who don't know, CORBA is an object-distribution framework defined by the Object Management Group. It was a nice framework, which accomplished most of its main goals (letting programmers write new programs access legacy programs and data), was heavily promoted during the mid 1990's, and has subsequently all but disappeared from the computing landscape.

The goal of the talk was to try and figure out why. I took some old slides from my Enterprise Java Course, wrote some new ones centered around the evolution of modern computing, and ran the resulting slides past a dozen or so of my closest friends who also know CORBA. The result is an admittedly idiosyncratic history of a technology that never quite lived up to its hype. I managed to present a pretty good overview of CORBA, discuss the reasons it never achieved widespread adoption, and shoehorn in a fairly nice discussion of RMI at the end. Maybe I'll get around to that in a future talk.

The original abstract was:

CORBA, the Common Object Request Broker Architecture, is a specification for distributed objects that has been around since the late 1980's. The goal of CORBA was to provide a language independent standard for middleware (both the basic protocols and for standard pieces of infrastructure). After an initial wave of hype, CORBA never really lived up to the expectations that were set for it, and it has since been mostly displaced by other technologies. In this talk, we'll present an overview of CORBA and discuss whether or not it succeeded, and what lessons can be drawn for future distribution mechanisms.

Tell me what I got wrong about CORBA. Alternatively, tell me why web services are better.


2003-04-17 22:30:47
Where are the slides?
We'd like to tell you what you got wrong about CORBA -- but you're not really giving us anything to go on here.
2003-04-17 23:37:22
Sorry about that
Oops. Sorry. The link at the top points to them now.
2003-04-18 13:07:27

I'm not trying to stick up for CORBA, just accuracy.

I haven't read your slides, but the statements in your blog are not accurate. You say CORBA has disappeared from the computer landscape. If you mean the HYPEscape, then that certainly is true. But if you talk to people in the military, telcos and finance you will fill that CORBA is still heavily used. It is true that many people in the finance industry are moving towards XML-based web-services.

You say CORBA never lived up to its hype. What are you referring to specifically. It was and is a good platform for doing Distributed Object Computing behind the firewall. It has bindings for the major languages. Its interoperability is better, at this time, than web services.

Many people say CORBA failed because it doesn't work well across the internet. That is true. However, that was not a main goal. It is definitely too bad that OMG did not define a standard and efficient HTTP transport/encoding. But the point is, it did not fail what it did not have as a goal.

CORBA did not achieve widespread adoption (in the sense of the web) because by the time OMG members realized CORBA could and should work seemlessly on port 80 it was too late - SOAP had already got the mindshare.

CORBA is being displaced by XML-based technologies which are essentially reinventing everything in CORBA, but with pointy brackets.

ANother random point: CORBA (in the form of RMI-IIOP) is the remoting architecture for EJBs. It provides security and transactions in that role. To be a certified J2EE platform a vendor must interoperate with Sun's J2EE RI, so RMI-IIOP remoting, security and transactions are being tested heavily every day.

Plus, CORBA in JDK 1.4 received a major upgrade in terms of support for GIOP 1.2, Portable Interceptors, Portable Object Adapter, etc.

I don't mind CORBA being replaced. I just wish the people designing the "new" systems would do a literature search (like any good graduate student is required to do) and learn from the past.

Bottom line: "fail" is not an accurate term when discussing CORBA. "Superceded" or "replaced" are more accurate.


2003-04-18 22:27:44
Thanks for responding
I'm not sure why you think I wrote that CORBA "failed" (as I said, "It was a nice framework, which accomplished most of its main goals." Hardly the sort of thing one would write of a failure). And the slides contain a quote from Marc Andreesen which more than addresses the "what hype" question.

But, the point about "disappearance" is well taken. How does one measure "disappearance" from the computing landscape? Your claim is that CORBA has a lot of users, and that's the way to measure it. But that's not a particularly good measure, for three reasons: because it's hard to measure (most projects using any technology are not publicized), because the right measure should be relative (and it's hard to do relative measurements when most of the data is missing), and because it leads to the impression that COBOL matters.

So here's ten related measurements of "technological presence" in the computer software industry : number of courses being offered (for example, at major conferences); number of free and/or open-source implementations; number of conferences devoted to the technology; number of companies whose primary offering involves the technology (or whom even mention the technology on their main web page); number of students being taught the technology in depth; number of books and articles being written about it; number of free and/or open-source projects using the technology; total number of users; number of high-profile projects relying on the technology, and number of user groups.

Those are a bit of a jumble. And maybe discussing a set of indices that measure whether a technology is disappearing is another weblog post entirely. But I feel comfortable claiming that any viable technology that still maintains a presence in the industry, and hopes to have a presence in the future, should be doing well on at least a couple of these indices.

My, admittedly unscientific and idiosyncratic, impressions are that CORBA is doing badly on each of these metrics. And that this year, CORBA is doing worse than last year (which, itself, was worse than the year before).

It's okay to be fond of CORBA. I am. But, the fact is, it's a niche technology which has all but disappeared from the landscape.