Slashdot Mirror


The Rise and Fall of Corba

ChelleChelle writes "Chief scientist of ZeroC, Michi Henning, has an interesting look at the story behind CORBA a once-promising distributed computing technology. Henning provides more than a brief history, in addition to several reasons pinpointing why CORBA fell short, focusing specifically on the OMG's technology adoption process itself. Most interesting is the final discussion on what we can learn from CORBA's decline, particularly in reference to web services."

29 of 304 comments (clear)

  1. OMG's technology adoption process itself. by Anonymous Coward · · Score: 5, Funny

    1. OMG Stable
    2. ???
    3. OMG Ponies!

  2. Misread the title by Ka+D'Argo · · Score: 5, Funny
    Thought it said "The Rise and Fall of Cobra".

    Was hoping for an outline of Cobra Commander's long list of failures :(

    --
    Aw Frell this
    1. Re:Misread the title by A+Brand+of+Fire · · Score: 5, Funny

      Now we know; and knowing is half the battle!

      --
      [End of Line]
  3. CORBA. by Anonymous Coward · · Score: 5, Interesting

    CORBA might have been a great messaging infrastructure and all, but any corba websites I saw were confusing, over-diagrammed, impenetrably academic documents. Seriously, could you dumb it down a shade? Spare me your medical mumbo jumbo? Hello world apps?

    1. Re:CORBA. by Anonymous Coward · · Score: 5, Funny
      The problem you are experiencing might be that you have absolutely no idea what CORBA is
      As I read it, the OP was talking about websites with information about CORBA. Who knows, maybe I'm wrong... but if I'm right, well it kinda makes you look like an ass.
  4. What a ridiculous trend... CORBA to WebServices. by lonesometrainer · · Score: 5, Insightful

    Let's do SOAs based on WebServices. Right now, right here.

    The only Web-Service-Standard that's currently finalized and widely accepted is WS-I basic profile. So, no standard on...

    - authentication (no, dear MS people, HTTP basic is _NOT_ sufficient for the IBM MQ guys)
    - transaction management, transport and control (please say properietary soap headers)
    - encryption (there IS a standard for XML encryption, but it's unsure how to use it within SOAP)
    - naming services (UDDI is so dead, it's already smelling, go and find a public UDDI registry that's not just a webpage, that you can query via SOAP, IBM's developing a Websphere Naming Service, superb!)
    - ... and so on, and so on...

    Stuff that CORBA has been offering for nearly a decade! So why are webservices popular? Because of the technology? No way! They're freaking slow (our Java RMI services are nearly 50 times faster than those implemented with Apache Axis 1.4 here, and axis is pretty good). No, just because of the tools!

    Go, build a Webservice with NetBeans and a client with VS.net 2005 and you will have to implement two or three lines of code... That would have been possible with CORBA, too! The fall of CORBA is just a matter of tools, the technology is clearly better, offers more features, is very performant.

    But coding these days requires click and run...

    Sad.

  5. Where comes the Sun ... ???? by Zero__Kelvin · · Score: 5, Informative
    FTA:
    CORBA 2.0 in 1997. ... CORBA's future looked rosy indeed.
    I was learning CORBA in 1997. Alas, it was another Sun driven technlogy, like Java, before Sun understood how the technology landscape was changing. The only FOSS CORBA implementation that came anywhere close to implementing CORBA 2.0 was Orbit, and I do not know if the developers didn't have the chops, or (more likely) they were swimming upstream against a Sun that was still either hostile to OSS or simply wrote it off as a non-factor. In the end CORBA suffered the same fate as Java for the same reason(s).

    You can still use both .... but why would you?

    CORBA could *easily* be revived if Sun finally grasped the revolution in the market and decided to do so. Will they? Seeing as .NET/MONO is the only real competitor, they have an obligation to the community to do so IMNSHO. Will Sun step up to the plate and figure out that they have a very real obligation to the future? Hmmm ....

    BTW .. OMG was just a Sun directed organization ....
    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    1. Re:Where comes the Sun ... ???? by timeOday · · Score: 4, Informative
      CORBA could *easily* be revived if Sun finally grasped the revolution in the market and decided to do so.
      I don't think so. I spent almost 3 years working on an abstraction layer over CORBA so the other members of my (very large) development team could use it without being specialists. It's true that CORBA does everything, and does it well, but it's just too much.
    2. Re:Where comes the Sun ... ???? by maelstrom · · Score: 4, Funny

      As a member of the open source community, I have decided to revive the OMG group. To put focus on our roots, we shall be called the Object Management Freedom Group or OMFG for short. Any takers?

      --
      The more you know, the less you understand.
  6. One man's simplicity... by 21mhz · · Score: 4, Funny
    From TFA:
    Many of the APIs were complex, inconsistent, and downright arcane, forcing the developer to take care of a lot of detail. In contrast, the simplicity of component models, such as EJB, made programming a lot simpler
    Wow. If EJB (pre-3.0) is simple in comparison, no wonder CORBA never really took off.
    --
    My exception safety is -fno-exceptions.
    1. Re:One man's simplicity... by Cyberax · · Score: 5, Informative

      EJB 2.0 is just a part of CORBA 3.0 specification :) So it's easy to understand why there is no a single CORBA 3.0 implementation.

  7. Early middleware was doomed by mshurpik · · Score: 4, Insightful

    It's not surprising that an early middleware app like Corba failed because it was being developed at a time when the concept of middleware was just a buzzword. The article mentions the "fracturing" of the middleware market and the over-reliance on "screen scraping" technologies like HTTP+CGI. In other words, it wasn't until the standardization of the web platform (Apache+PHP+MySql or IIS+ASP+SqlServer) that people even knew what middleware was supposed to look like, and this standardization didn't happen, actually, until after the dot-com boom was over.

  8. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 5, Interesting

    CORBA is too complex, an overengineered attempt at creating a clockwork the size of Tokyo whereas a single wristwatch would have sufficed.


    Yes, I have had to use it, unfortunately.


    The OMG people are clever bunch, but why do they insist on making these superheavy monolithical monsters? Why not build interoperable but smaller things which you can grok immediately, almost via intuition?


    Like you yourself put it indirectly via examples, developers like to develop systems which have the best supporting tools, systems which are the most intuitive and easiest to understand, systems which do not fight back when you try to do something, systems for which development is not an exercise in sado-masochism. So there's a design paradigm for you: make the APIs dead simple to use, and they will be used, a lot.


    Nobody wants to hack around some big behemoth. It's about job ergonomics, really. If a chair doesn't feel right for your body, you don't sit in it.

  9. Distributed applications by wysiwia · · Score: 4, Insightful

    Why should anybody create a distributed application when a simple library API is almost always sufficient. Why making something more complex than necessary. In most cases component APIs are rather stable as soon as all the missing pieces from early beta versions are solved. Yet even if they change it's possible to handle most cases without any intermediate interface definition etc.

    Prof. Wirth always said: "Make everything as simple as possible but not simpler". While Prof. Wirth as made many things too simple (to prove his statement true) any component system is yet much too complex for any locale task and many times also even for distributed tasks. I'm still waiting for a component system which is as easy usable as a simple library API.

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
    1. Re:Distributed applications by Ricdude · · Score: 4, Insightful

      Um, there are instances where you *want* to distribute an application across several machines, and not have to worry about the details of implementing a robust inter-process communication layer yourself. Once you get past the boilerplate code of creating an object, publishing it's reference, and locating that object, CORBA breaks down into simple function calls.

      I just wish they'd create a C++ mapping that allowed for STL compliant sequences, and std::string compatibility...

      --
      How's my programming? Call 1-800-DEV-NULL
  10. Corba isn't dead! by Anonymous Coward · · Score: 5, Funny
    Just look at all the projects built on Corba like the Berlin Project and then you tell me Corba is dead.

    This article is nothing but a hatchet job on a mature committee standard. Corba is not falling like DCOM, it's soaring like the Hindenburg.

  11. Real reasons by William+Robinson · · Score: 5, Interesting
    The article focuses on market conditions and forces as reasons behind CORBA's downfall. Having worked on CORBA, I can say there are some technical reasons too.

    CORBA always required holes in firewall, more complicated to setup(as mentioned in article), poor/no load balancing/fault tolerance mechanism/ maintainability(probably this was not meant to be there, but very important for an ecommerce setup), poor QoS (this improved in CORBA 3.0 after Douglas Schmidt's and others contribution), security (though iiop over ssl appeared sometime later, security mechanisms for ecommerce were missing, that could bring collaboration from unknown consumers/providers.)

    SOAP/xmlrpc address some of these issues nicely, and might become defacto tools for business to business integration. I had only one issue with it. The protocol is too verbose.

    My 2 cents.

    1. Re:Real reasons by The+Pim · · Score: 4, Informative
      The article focuses on market conditions and forces as reasons behind CORBA's downfall. Having worked on CORBA, I can say there are some technical reasons too.
      I don't think you read to the second page, where he says:
      No matter how much industry hype might be pushing it, if a technology has serious technical shortcomings, it will eventually be abandoned. This is where we can find the main reasons for CORBA's failure.
      This is the point of the article: You have to get the design basically right for a standard to fly, but getting the design basically right (not even all the way right) in a standards process is darn hard. Frankly, we need standards for standards groups, since they keep making the same mistakes and ignoring the very wise and practical advice of people like Michi Henning.
      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  12. OpenOffice and GNOME use CORBA. by Animats · · Score: 4, Insightful

    The intercommunication system within OpenOffice, the mechanism that allows embedding spreadsheets and drawings in other documents, is CORBA-based. Sort of. Actually, it's something called UNO, which started life as CORBA but went off in an XML direction.

    GNOME also uses CORBA internally. But its CORBA isn't compatible with the one from OpenOffice.

    The UNIX/Linux world has never really had a good way for applications on the same machine to intercommunicate in a subroutine-like way. Microsoft has OLE/COM/DCOM/ActiveX, which is clunky but always available. In the Linux/Unix world, there's nothing you can assume is always there. There's OpenRPC, there's CORBA (in about five incompatible forms), there's Java RMI, and there are various kludges built out of pipes. But there's been no convergence in two decades.

    1. Re:OpenOffice and GNOME use CORBA. by Stalyn · · Score: 4, Informative

      The UNIX/Linux world has never really had a good way for applications on the same machine to intercommunicate in a subroutine-like way. Microsoft has OLE/COM/DCOM/ActiveX, which is clunky but always available. In the Linux/Unix world, there's nothing you can assume is always there. There's OpenRPC, there's CORBA (in about five incompatible forms), there's Java RMI, and there are various kludges built out of pipes. But there's been no convergence in two decades.

      D-BUS

      --
      The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
  13. The parable of the two elephants by Beryllium+Sphere(tm) · · Score: 4, Interesting

    I can't find a citation for this offhand but the original author, whoever it was, deserves credit.

    Imagine two superposed graphs, with time on the x axis. One is the rate of technical change. The other is the rate of adoption.

    Standards activity needs to happen between the peak of technology development and the peak of adoption. Too early, and you standardize on immature technology that nobody will want. Too late, and the market has committed to somethign other than your standard.

    Those two peaks in the charts are called the "two elephants". In fast-moving markets they move closer together, and the standards committee is "squeezed between two elephants".

    Given that people were rushing to deploy immature technology for distributed apps, one factor in CORBA's troubles may have been that there was no room between the two elephants for a reference implementation or for nontrivial test deployments.

  14. Re:What a ridiculous trend... CORBA to WebServices by cryptoluddite · · Score: 5, Interesting

    The problem with CORBA was mostly the technicalities and 'grossness' of the design. Yes I used the Java bindings, and it was just crap. All these "helper" objects and peers and stubs and junk. You'd compile an IDL, which was some hacked up C++ interface which wasn't even C++, get a buttload of Java classes that did not act anything like any other Java object on the planet. Lots of 'icky' exceptions. It just, for lack of a better way to describe it, had no style.

    Try to teach CORBA to some normal programmer and they'll be thinking that creating their own wire protocol is probably going to be easier for 99% of the things they need to do. Seriously, you just don't look at CORBA bindings (for Java at least) and want to have anything to do with it. It's probably not so bad for C++ developers because they are used to a lot of noise and complexity, and they have templates and stuff to 'spray perfume' on CORBA and make it smell... better.

    But seriously, when your technology drains the life out of any competent developer who actually likes to program then you know something is very wrong.

  15. Re:I took a close look at CORBA and wrote this by Moebius+Loop · · Score: 4, Interesting

    I'm not sure I agree with your chief argument, WRT latency in RPC calls. The answer to this is to use asyncronous development techniques as part of your IPC.

    The increasing amount of network-related latency dealt with in everyday communication generally means that in any reasonable interesting application, there are often large numbers of blocking calls that take a variable amount of time to return. Threads in and of themselves are truly not the answer, except possibly when used sparingly as part of a non-blocking system. (as an aside, I've found that as a Python developer, working with the Twisted Python libraries was invaluable in my understanding of asychronous development techniques.)

    With regards to the idea of function calls being an innappropriate abstraction for these mechanisms, I think the issue really depends on the implementation. The reasons I've used an RPC/IPC solution to communicate between processes (either locally or remotely) was because the various processes weren't closely related, and needed to have a common interface between them.

    Making assumptions about implementation is an inherently bad programming habit, and has much farther reaching consequences. APIs would be essentially worthless if the developers made assumptions about how the work is done "behind the scenes". If you need intimate knowledge of the memory space of another process, it may be an indication to use process fork()ing to provide the same results.

    anyways, my 2/100th of a dollar....

    -phil

    --
    have you been seen on slash?
  16. I hate to not bash MS on /. but... by Anonymous Coward · · Score: 5, Insightful

    This is definitely a case where Microsoft's way of doing things was vastly superior. Whereas CORBA was designed by a committee of competitors who all wanted to sell object request brokers, COM was designed by a single company who wanted to sell software that could interoperate.

    MS saw a need, designed something to fill that need, tweaked it until it worked, then released it. OMG designed something to fill that need, and more or less immediately released it. As a result, no two implementations of CORBA could talk to each other without buying another piece of software. Come to think of it, I don't really know why they didn't just copy COM -- at least it worked.

    What they should have done was have a body of experts collaborate on a standard, implement it, tweak it until it worked, and then release it. This is why standards like IEEE 754 (floating point) and JPEG are so successful, while standards like CORBA and VRML2 are such crap. Once the dust settles on ODF, I'm afraid that ODF is going to end up like CORBA, with every program implementing it differently enough that adoption is hindered and it only gets used in-house by companies that mandate it.

    dom

    1. Re:I hate to not bash MS on /. but... by michaelwatson · · Score: 4, Informative

      What planet have you been on? I'm actually an MS fan, but in this case, I have to say that you've missed the boat. CORBA and COM have little to do with one another. One is limited to a single machine (COM). The other is a distributed communications technology (CORBA). True, Microsoft has a distributed version of COM (DCOM), but it's nearly impossible to deploy unless you've got a rocket-science-equivalent degree in Windows security permissions. You say "MS saw a need, designed something to fill that need, tweaked it until it worked, then released it." Yes, they did. And DCOM stank to high heaven. Even Microsoft doesn't talk about it anymore.

      CORBA, on the other hand, is heavily used in telecom, aerospace, financial, and high-performance, realtime scientific and control applications. Check out Doug Schmidt's TAO if you want to see what complete free, open-source CORBA can do. And stop bothering us with MS's abortive attempt at the same.

  17. Horrible, just horrible! by shippo · · Score: 4, Interesting

    Some years ago I worked on a roll-out of some systems management software at a large company.
    This software was based on CORBA.

    It was hoped that by installing this software on every server and workstation in every branch nationwide (typically only around 3 to 6 machines per branch, although there would eventually be over 2000 branches netweorked), it would be possible to determine that all servers were working properly.

    However the memory and CPU footprint used by the monitoring tools was immense. More than half of the RAM in the servers was taken up just by the monitoring software CORBA services, and the CPU load was also huge.

    We also had serious problems with firewalls. Far too many open ports for anyone's liking.

  18. I think you're missing some standards... by DarkMan · · Score: 4, Informative

    encryption: HTTPS
    authentication: HTTP Basic over HTTPS, or certificate based authentication over HTTPS
    transaction management: WS-Coorination.

    I mean, you can use WS-Security; WS-SecureConversation and all that XMLSecurity jazz, but frankly, why bother when HTTPS just plain woks? (You probably have to give up on the 'firewall friendly' approach of everything over port 80, but that is a significant step forward in my book.)

    naming: I'll give you that. UDDI feels overengineered for what it's normally used for. On the other hand, why are you looking for a public UDDI registry? The Registry is essentially the single point of contact for a particular application; thus you normally would want to keep some level of control over it. On the other hand, for public acces web serivces, have a look at Xmethods (which does offer a UDDI query interface).

    Oh, and I disagree that Axis is any good at all, especially not in performance terms. In fact, Axis 1 is the second slowest (and second worst) way of using SOAP (Axis 2 is the only thing worse). If you want something fast, try GSOAP and C++. (To elaborate: every call made with Axis is essentially a dynamic call, the 'compilation' just writes code to change the defaults. This is a very poor design if you want performance, as you can optimise a SOAP engine a lot if you know the schema at compile time - and I'argue that's the most common use case.

    Web serivces have the potential to be approximately the same speed as CORBA, if they're not, look at your middleware. .NET web services are about 2 or 3 times faster than Axis, from our benchmarks (which did use stateful web services via WSRF, but I don't believe that distorts the timings apprechiably.) GSOAP is about 5 times faster.

    Java RMI can always be faster, because it knows that the classes is needs are already on both sides of the wire or that it can get the actual class directly. That's not possible in a language independant system, where instead you have to give a description of the objects. Also, RMI can pass richer objects than SOAP can, (SOAP is can't pass objects with methods, just data holders). That allows for better architectures to be generated, also improving speed.

  19. Re:What a ridiculous trend... CORBA to WebServices by indifferent+children · · Score: 4, Interesting
    Well one reason CORBA tools sucked was that it was over-engineered: intended to solve world hunger...

    Your comment is similar to many of the other comments in this thread. You're right that the CORBA specifications are HUGE and overly complex. But here's one of the great things about CORBA: it can be easily 'subsetted'. I use CORBA every day. I use 10% of it's features, and it is beautiful. If you gave me an exam about the esoterica of CORBA, I would fail, but for the parts that my company uses, it's easy.

    BTW, most of the huge CORBA spec that we ignore is stuff that isn't part of the SOAP spec anyway; SOAP isn't really comparable to CORBA, SOAP is comparable to IIOP (the most popular CORBA wire protocol). Saying that SOAP is better than CORBA because it's easier/simpler is kind of like saying that MS Works is better than MS Office because it's easier/simpler (no, that wasn't a great analogy, but at least it isn't an automotive analogy).

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  20. Re:Biased opinion from Henning by Michi · · Score: 4, Informative

    > Hennings opinions should be taken with a pinch of salt. While he co-authored the bet known book on CORBA, he has since left the CORBA arena following the merger of his own company with IONA, and is now pushing an alternative technology called ICE.

    Correct--I decided to do something better than CORBA after slaving my guts out for seven years trying to make CORBA better, and largely getting nowhere. Eventually, I realized that there was only so much sh*t I could push uphill and decided to focus my efforts on something more productive.

    > The concepts like the POA are too over engineered, but the underlying ideas of language neutrality, a simple interface definition language and a common wire protocol have not been bettered.

    I beg to differ. The CORBA POA interface requires over 200 lines of IDL definitions when, in fact, I can provide all of the functionality of the POA, plus some extra, in just over 30 lines.

    Yes, language neutrality is a good idea. No, CORBA IDL is *not* simple, not by a long shot. (Look at the last section of the Slice chapter in the Ice manual for some of the reasons.)

    IIOP is a very poorly designed protocol that has more flaws than a dog has fleas. Among them a quite major one that prevents efficient implementation of notification services. (See the Ice manual for details.)

    > One area where CORBA is particularily useful, is in event or notification based systems.

    The CORBA event and notification service are interface nightmares, and cannot be efficiently implemented due to design flaws in IIOP. (See http://groups.google.com.au/group/comp.object.corb a/browse_frm/thread/6f47a3d21cd0d9dc/f597718937b8a 3f3?lnk=st&q=3eXDf.916%24k6.18007%40nasal.pacific. net.au&rnum=1&hl=en#f597718937b8a3f3).

    > Most recently, I used CORBA to replace a SOAP based system. Compared to SOAP, the CORBA based system was faster, easier to work with and far more reliable.

    I don't doubt that. It's very hard to beat the ineptitude of SOAP and WS. Now, if you had used Ice to do the same thing, you would probably have done it in half the time, with half the pain, and twice the performance :-)

    Cheers,

    Michi.