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."

85 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.
    2. Re:CORBA. by Anonymous Coward · · Score: 2, Funny

      Is that your username or your brain temperature?

    3. Re:CORBA. by Anonymous Coward · · Score: 2, Funny

      One time I was laid off, and during the exit interview I asked about medical coverage. The HR rep told me about this thing called CORBA (she coughed just before she said the word). I didn't know anything and was a bit shellshocked anyway so I said great. A few days later an API manual arrived in the mail. No medical benefits, just some sample code for an interop standard that didn't really work.

      I didn't get no respect.

    4. Re:CORBA. by joto · · Score: 2, Informative
      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?

      If you'd RTFA, you'd understand that that's exactly why it failed. Corba is badly designed, and overly complex for what it does.

      First of all it's a lot of hype. Today, it might sound daft, but when CORBA was envisioned, everybody did not use http and XML for everything. So if you wanted two or more programs to talk to each other, you'd need to invent a new protocol. And people did just that all of the time, with varying success. Of course, there would have been money to be saved, if everybody could agree on a common protocol. But nobody but salespeople could have come up with the idea of making the common protocol using "objects" instead of clients and servers. Almost all CORBA-lingo is equally daft and misleading.

      Secondly, it never worked. There's never existed, and probably will never exist, an implementation of CORBA that has all the features in the standard. And at least at the time I used it, every implementation was buggy, forcing some of the top programmers in our organization had to become "CORBA-experts", so that we would be able to use CORBA at all. This was a waste of talent, as this was the guys with 10-30 years of domain-specific knowledge and experience who used their time on CORBA instead.

      Thirdly, it was never compatible. Every revision of the Corba standard to date, and every implementation by every vendor, were incompatible. And it's not just a question of search and replace in your code-base. Implementations are incompatible in semantically interesting ways that are relevant and important for application developers. It's called "vendor lock-in".

      And fourth, it was overly complex. A simple "Hello World" CORBA-program that merely contacts the naming service and looks up the IOR to get a reference to a remote object, which it calls at least one method on, has to be about 100 lines of code. The verbosity of CORBA in this respect is staggering, especially when you see that it's intended to be an improvement over earlier systems, such as DCE (itself overly complex, but still...).

      Ok, our organisation still uses CORBA, and are even quite happy about it (today). But it has cost us a lot of money in the past. On the other hand, todays web-services would be totally inadequate for us, so the only other alternative would be to roll our own again...

    5. Re:CORBA. by cow-orker · · Score: 3, Interesting

      Well, you can. It's actually dead simple: CORBA is RPC, just that you don't address some particular service, you invoke a method on an object reference, which contains the servers address. Add in an interoperable binary protocol, a standard language to define interfaces and some standard mappings to common programming languages, that's all there is to it. Services are completely optional, the ORB, commonly depicted as an all encompassing cloud with mystic abilities, is just a support library to decode object references and speak the wire protocol. For the long version, here's CORBA in 5 Minutes.

      Now why the confusing websites? Well, what would you do as a vendor? Tell your clients (managers!) that you're selling them an RPC library? No way! It has to be Object Oriented Middleware, it must be Enterprise, and everything ties into the mystic ORB. You absolutely need an ORB! Well, you didn't in the 80's, but this is the 21st century and there you need an ORB! Oh, and what a remarkable conincidence... we are just selling ORBs!

      Anyway, have a look at ORBit. CORBA can actually be simple. It's commercial software that cannot.

    6. Re:CORBA. by jc42 · · Score: 2, Interesting

      First of all it's a lot of hype.

      Heh. This article was actually the first clue I've ever read that CORBA was anything but hype. I've run across the acronym a zillion times, but before today, I'd never actually read anything that got through my thick skull that it was a communication protocol, much less what problems it was designed to solve. Same with pretty much anyone that I worked with. When management pushed it on us (complete with the management-friendly hype but not much more), the reaction of the developers was usually "Hey, that's great; we'll look for places that we can use it effectively." Of course, not really having any idea what it did or how to use it effectively, we never found any places that we could use it. The obtuse examples didn't help; reading code that doesn't make sense without uderstanding what it's supposed to do isn't a very good way to convince your typical developer that it's something they want to use.

      In any case, there's not a lot of implementing you can do with just an acronym and management-level hype for "documentation".

      Thirdly, it was never compatible.

      Sort of a problem for something designed to solve cross-platform communication problems. (If that's actually what it was supposed to do; I'm still not sure about that. ;-)

      I got the idea from TFA that it was a protocol developed mostly by a number of vendors. Are there any cases where this has worked? All the successful standards that I know of were developed with a large government and/or academic contingent, usually both. Companies generally try to hide their secrets from competitors, which is somewhat of a problem when you're trying to get competitors' products to work together. Granted, Sun and Apple are semi-exceptions, but even there, trying to get them to work out a common protocol is just asking for indefinite bureaucratic delays. (That's a voice of experience talking there; again there might be exceptions that I don't know of.)

      I liked the comment in TFA that one of the problems was that Microsoft didn't adopt CORBA. My immediate thought was "Well, duh!" Of course, the XML crowd has been showing signs of nervousness about MS's involvement, especially when the news gets out that MS is applying for patents on XML encodings.

      I've often thought that one of the main reasons for the Internet's success is that it was developed (by government and academic developers) for several decades before either IBM or Microsoft noticed it.

      It sorta reminds me of a comment I read once from a biologist, to the effect that one of the major adaptive constraints on birds is that they have to somehow prevent predators from noticing their nests until the babies can fly.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  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.
    3. Re:Where comes the Sun ... ???? by Yokaze · · Score: 2, Informative
      Alas, it was another Sun driven technlogy, [...]

      CORBA? Sun driven? Everyone else did have more complete Corba implementation than Sun in their JDK.

      1997... I can't claim that my memory is correct on that matter, but sometime before 2000, JacORB provided a FOSS CORBA 2.0 Java implementation, which surpassed Suns by leaps.
      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
    4. Re:Where comes the Sun ... ???? by LizardKing · · Score: 2, Informative

      I was learning CORBA in 1997. Alas, it was another Sun driven technlogy, like Java, before Sun understood how the technology landscape was changing.

      Bullshit. Sun was pushing RMI by 1997. CORBA is a standard backed by the hundreds of companies that signed up to the OMG. (At my side are some NextSTEP developer manuals which I'm amused to see even have an OMG logo on them).

      The only FOSS CORBA implementation that came anywhere close to implementing CORBA 2.0 was Orbit

      Bullshit again. Go check out omniORB, MICO, JacORB and TAO for starters. All open source, all actively maintained and all supporting CORBA version 2.0 or higher.

      In the end CORBA suffered the same fate as Java for the same reason(s).

      So, CORBA is like Java. Ubiquitous in big companies and capable of producing highly scalable systems with excellent reliability, but not popular with PHP wheenies on Slashdot.

    5. Re:Where comes the Sun ... ???? by computational+super · · Score: 2, Funny
      If you cannot add value to the thread, why post?

      You must be really, really, REALLY new here.

      --
      Proud neuron in the Slashdot hivemind since 2002.
  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 lonesometrainer · · Score: 2

      It's a distributed, platform-neutral, language-neutral, object-oriented technology. The best OO could offer. What did you expect?

      Btw. EJB > 2.0 wasn't that hard, either. Just unconvenient in some places.

    2. 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.

    1. Re:Early middleware was doomed by Anonymous Coward · · Score: 2, Insightful

      Some of the technical problems of CORBA went beyond a misunderstanding of what it actually needed to do. The biggest failure from my point of view was uneeded extra state that had to be synchronized. The hardest part of distributed systems is synchronization of views, so anything that makes this harder makes the entire system more brittle. Using CORBA always started out easy enough and then got nastier and nastier as development went on. Good riddance to bad rubbish really.

  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. Other failures by isj · · Score: 2, Interesting

    Initially the specifications for CORBA (object model, servers, language mapping, ...) were not free. Whenever I tried digging for details I ended up at a page which basically said "buy the expensive book". Of course they needed funding, but the lack of a free specification hindered adaption. I was also turned off by the continued references to UML (which was a new-fangled thing back then). When looking for hard details a floffy box does not help.

    It also seems that the vendors had a lot of problems agreeing. AFAIK it wasn't until version 2 that the on-the-wire format was specified. I can only speculate why.

    But I must say that the IDL (interface definition language) is close to ideal. Looks a lot like Sun RPC, and way better than WSDL. It only lacks the versioning as the article also mentions.

  10. 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
  11. 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.

    1. Re:Corba isn't dead! by ultranova · · Score: 2

      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.

      Isn't Gnome based on Corba ? Not that that's neccessarily good publicity for Corba, since Gnome is a huge mess with scalability problems: try opening a 100+ Eye of Gnome windows sequentially, waiting until the processor goes idle before opening the next, and notice how much slower the later windows open.

      Maybe you could convert Hurd into using Corba for message passing ?-)

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  12. 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.
    2. Re:Real reasons by killjoe · · Score: 2, Informative

      One thing that gets overlooked with CORBA is the the stateful two way communication between the clients and the servers. The server can raise an event and tell the client to do something. That's just not possible with web services where constant polling is the order of the day.

      CORBA was a great idea implemented complexly. People don't like complex.

      I should mention that the author of the article works for a company which sells a product they claim is "better then corba". I have never used their products so I can't say anything about it but it's something to keep in mind.

      BTW zeroc guys do you have ruby bindings in the works?

      --
      evil is as evil does
    3. Re:Real reasons by William+Robinson · · Score: 2, Interesting
      One thing that gets overlooked with CORBA is the the stateful two way communication between the clients and the servers. The server can raise an event and tell the client to do something.

      Yes, you are correct. Although, it has trouble with NAT. I remember one case, where we had to drop CORBA and go for designing our own protocol, because clients behind NAT would never recieve the event.

    4. Re:Real reasons by dan+the+person · · Score: 2, Insightful

      CORBA always required holes in firewall, more complicated to setup(as mentioned in article), poor/no load balancing/fault tolerance mechanism/ maintainability

      Right, so SOAP gets around this problem by reusing port 80 which on insecure networks sometimes has an unrestricted hole in the firewall already. In secure environments, you still have to put a new server in the DMZ whether it's port 80 your talking on or port 9001.

      As for load balancing and fault tolerance, Websphere here load balances CORBA clients over multiple machines in a cluster without any development effort. Just add more than one machine into your cluster and it does it.

    5. Re:Real reasons by Michi · · Score: 2, Interesting

      Trust me: Ice is better than CORBA, and by more than just a little bit :-)

      Unfortunately, Ruby has threading issues that prevent an Ice implementation for it. Otherwise, we would have done a Ruby binding long ago.

      Cheers,

      Michi.

  13. I took a close look at CORBA and wrote this by Omnifarious · · Score: 3, Interesting

    Why I think CORBA and other forms of RPC are a bad idea.

    Here is the paper in brief...

    The speed of light is a constant. Latency will never improve beyond a certain point. For all but the simplest things, RPC is the wrong model for dealing with the problem of communicating with other systems.

    Also, the abstraction layer of function calls is the wrong place to put the communication of disparate, unrelated systems. It encourages too many assumptions about the implementation of either side. There is too much hidden state in the caller and reciever of the messages.

    1. 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?
  14. 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
  15. Scary... by Gorimek · · Score: 3, Insightful

    I worked with CORBA around 1997-98. It was one of several new technologies in our project, and we never really got it to work properly. Everything was just really complex and error prone. The company got closed for many reasons, but our stuff didn't help things much.

    Recently I've done a lot of XML Web Services work. This can actually be made to work, but it feels a lot more like filling out your tax returns than programming. Everything is really verbose, and you have to tell the system the same thing over and over.

    I never really connected dots until I read this article, but it is pretty much the same uneasy feeling I have about this that I had about CORBA. And the article even explains how they're similar!

    Not that that has to mean they're destined for identical paths, or that I'm a visionary who can sense the fate of a technology years in advance, but it does make me a bit happier that I quit that job last week.

  16. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 2, Insightful

    The fall of CORBA is just a matter of tools, the technology is clearly better, offers more features, is very performant.

    Well one reason CORBA tools sucked was that it was over-engineered: intended to solve world hunger, clean up the environment, produce a fresh and pleasing scent and tuck you into bed at night - oh yeah and be the glue for distributed systems too. Web-service oriented protocols are simpler because they try to do less. Simpler protocols means that tools are easier to produce, which means tools will be produced.

  17. Re:What a ridiculous trend... CORBA to WebServices by The+Pim · · Score: 2, Insightful
    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
    There may be some truth to this (I've never used those tools), but that's not saying much. You've just built a self-contained "hello world" client and service, accepting all the defaults. Now, take a complicated, pre-existing service, using some non-default binding and non-trivial schemas, and integrate a client for it into a large existing application. I tried this recently using apache axis2, and it was a world of pain. Now, it may be that axis2 sucks and there are better tools, but I've read many of the web service standards, and it's clear that there are complexity and interoperability issues (why do these standards have to offer implementors so many options??) that you can't easily paper over. Ultimately, I agree with the author (and hope!) that web services will fail for technical reasons.
    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  18. Re:What a ridiculous trend... CORBA to WebServices by bigmouth_strikes · · Score: 2, Insightful

    Different people need different things. For many companies being productive - i.e. having appropriate tools - is everything. In many cases tt doesn't matter if you have to roll your own or use a non-standards compliant protocol, as long as you can get the functionality out the door in a matter of months, not years.

    Like the article said, CORBA is a niche product for those who absolutely need it.

    --
    Oh, I can't help quoting you because everything that you said rings true
  19. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 2, Informative

    Unfortanly the IBM MQ and WebSphere (WAS, WPS, LWP) (in fact, all IBM software) is complete crap; slow, bloated and unstable. iSeries and zSeries are actually very good hardware though.

    And no, Axis isn't pretty good, is just as bad as the IBM stuff (probably written by IBM employees, though released through Apache foundation). It's slow and bloated and generates the most horrible code I have ever seen.

    You're right about RMI though, it's very fast and extensible.

  20. Open/Closed argument by Frankie70 · · Score: 3, Insightful

    CORBA was an open standard.
    COM was a propreitary standard.

    But still COM succeeded much more than CORBA.

    Dox Box's book "Essential COM" has a foreword by Charlie Kindel (one of Microsoft's
    COM/ATL developers) which discusses this.

  21. CORBA and DCOM too buggy for the real world by rubies · · Score: 2, Insightful

    Anybody who had to deal with the woeful implementation of naming services in CORBA, who stupidly subjected themselves to cross-platform / cross language system implementations (try Visual C++ on NT talking to Smalltalk systems on SUN == headaches and midnight support calls every day) will tell you CORBA was a crock. Anybody stupid enough to listen to Microsoft when they said they would fix the DCOM dropouts / timeout issues when the system would stop talking to other DCOM clients (requiring server reboots) will tell you DCOM was a crock. The old RPC stuff was hard to use, but at least it worked. Give me a minimal raw socket solution any day of the week.

  22. 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.

  23. 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.

  24. Re:Gnome and CORBA by WWWWolf · · Score: 3, Interesting

    Ayup, GNOME has their own implementation of CORBA stuff, called ORBit.

    Bonobo is the component framework in GNOME, and is built atop CORBA.

    AFAIK they're still pretty much in use.

  25. What's in a name? by Black+Parrot · · Score: 3, Funny

    > focusing specifically on the OMG's technology adoption process itself.

    Calling themselves "OMG" probably didn't do much to encourage adoption.

    --
    Sheesh, evil *and* a jerk. -- Jade
  26. 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.

  27. 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.

    1. Re:Horrible, just horrible! by BattleTroll · · Score: 2, Insightful

      All of these issues are unrelated to CORBA. It sounds like a bad implementation; one which would have been equally bad had they used a roll-your-own RPC mechanism.

  28. Too many features; expressly obscure by bytesex · · Score: 3, Insightful

    CORBA tried to do too many things at once; not only was it supposed to be some kind of OO-RPC, it also specced a declaration language (IDL), which was replaced at some stage by an XML-variant, which it wanted to also use to incorporate data- and other resources, plus some kind of 'discovery' broadcasting protocol that you could use to find (distributed, of course) CORBA servers around you, oh, and object serialization in weird strings. On top of all that, you had to leave your blood, soul and first born child at the omg website in order to obtain documentation, because, as these guys felt it, they had gold in their hands, and they wanted to cash in on it good. And it _was_ good, but it was just that because of this in-built obscurity (in turn caused by its complexity and omg's secretiveness), nobody could really tell where CORBA stood; was it some kind of transactioning system a la the kind that IBM mainframes have ? Was it OO-RPC (but then, why not use RPC) ? Then all kinds of competing tech started to overtake it (java RMI, XML-RPC based tech) to which the omg only vaguely responded (the XML declaration thingy) but couldn't really, because of the moloch that CORBA had become. And thus they faded into obscurity.

    The moral of the story ? When you want to sell a protocol or a language, be as simple as you can (modularize) and be as open as you can (throw it around, even) Otherwise, if you're not IBM or Sun or Oracle, you will not make it.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  29. On CORBA, Web Services, and Ice by Anonymous Coward · · Score: 3, Insightful

    From an OOP point of view CORBA's core architecture is basically very, very good.

    They screwed up the details. Mr. Henning's point of view is much more informed than mine,
    but I want to emphasise this: they got a lot right.

    Look at SOAP and the "Web Services" trend: like the language-du-jour, "everyone" seems to
    think it is something new, something great. Why do we need another MS-DOS every five to nine
    years? Percieved convienence is the usual answer.

    At my company, a major retailer in our market, we're now taking a legacy codebase that is far
    from perfect but nonetheless innovative and moving it all to silver-bullet platforms. You know
    the ones I'm talking about. The full-meal deal: all our problems solved.

    Even though the language we're "moving up to" is basically 1957 technology billed as cutting-edge,
      with a bloated description system being used to transfer what amount to fixed-field data records,
    and all of that piped through another bloated and basically silly but extremely trendy RPC mechanism,
    it's all supposedly for the best. Not.

    See the trend? Why are we always in a hurry, for everything? Sure, you can swing to a point where everything
    is crufty and convoluted (like CORBA), but you can get good things when you think about it a while.

    That brings me to Ice.

    I have a workmanlike understanding of CORBA. From that base, I have an equal understanding-- and appreciation--
    for Ice, gained in much less time. Of course, a lot of that is because the whole paradigm (Ice /does/ keep a lot of the things that were VERY GOOD about CORBA!) wasn't new, but let me say that Ice is a dream in many ways. The C++ bindings are a perfect start. For casual use, blissful. (Great job, guys!)

    What's my point? Okay. First, understand Michi Henning's article. Now, with that understanding, pretend that
    you're in a meeting in which SOAP and certain other "modern technologies" are all being suggested. Take the
    time to absorb the scene. Is the "modern" technology really and truly innovative, or is it just-- and this is /USUALLY/ the case-- crap?

    -Anon.

    (I have no association with ZeroC, by the way.)

  30. Not as bad as all that! by codonaill · · Score: 2, Informative

    CORBA is hard, it really is - but it's not impossible to work with. When CORBA started, the distributed development world was hugely different to what we have now - there were very few code-generation tools at the time. It was originally C++ and the Java mapping never really took off. However it was the seeds of the J2EE movement that came after it - read the EJB 1.0 spec and you can see the influence of CORBA on it. In fact, I seem to remember that it mentioned that CORBA should be used to handle persistence. (Which is bizarre, as the OMG persistence specs were always terrible, and the implementations worse). Things have changed though, and the whole web/firewall/security issues did kill it off in front-end situations (anyone remember CORBA Applets?). However, it's still alive and kicking deep inside in telephone networks, aviation industries, stock brokerages and much more. It'll be decades before the existing applications are removed. I still come across sites that have a CORBA infrastructure playing some part of the Middleware architecture - and working well for years. Bad? Maybe, but it works.

  31. CORBA is alive and well in TAO by michaelwatson · · Score: 3, Informative

    Y'all talk about CORBA as if it were really dead. Hello? Check out Doug Schmidt's The ACE Orb (TAO). Can you say high performance FOSS distributed computing platform, in use in some of the most demanding of applications and demanding environments in the world?

    Yeah, it's got CORBA's steep learning curve, but once you're there, you can write distributed systems that perform much better than any web service platform will ever perform. It's FOSS, completely free for any use, unlike Michi Hennigs' ICE. I respect the hell out of Michi. I love ICE, but Zero-C's commercial usage fees are way too high for me to consider for any of my company's efforts. So I went back to TAO for my distributed computing needs and I'm as happy as can be.

  32. 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.

    1. Re:I think you're missing some standards... by _fuzz_ · · Score: 2, Informative

      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.)

      Because HTTPS only offers point-to-point security. If you need to encrypt or authenticate through a web service proxy (e.g. an ESB) you can't guarantee or prove the security of the document from point A to B to C. Also, SOAP can run over SMTP and other transport protocols. So if either of those situations are a requirement for your architecture, HTTPS doesn't just plain work.

      --
      47% of all statistics are made up on the spot.
  33. Re:What a ridiculous trend... CORBA to WebServices by Just+Some+Guy · · Score: 3, Insightful
    - authentication (no, dear MS people, HTTP basic is _NOT_ sufficient for the IBM MQ guys)

    WS-Security, an OASIS standard (like OpenDocument Format), has been around since 2001. You may wish to update your SOAP knowledge.

    But coding these days requires click and run...

    No: it's all about the APIs and who's making them available. Got CORBA bindings for Google? How 'bout the National Weather Service? If nothing else, people are publishing SOAP APIs that we actually want to use. That alone makes it much more interesting that competing RPC protocols.

    --
    Dewey, what part of this looks like authorities should be involved?
  34. Re:good technologies left behind by stupid mediocr by Viol8 · · Score: 2, Insightful

    "mostly university based people "

    And therein lies the problem. A lot of these ivory tower academics have
    never worked in the real world where there are things known as deadlines,
    costs and "lots of work". Ie , people don't have a few weeks free to kick back
    and learn a highly complex API. They need to be able to learn it on the fly.
    And if the API is over complex and over engineered thats not going to happen.

  35. Re:What a ridiculous trend... CORBA to WebServices by sonofagunn · · Score: 2, Interesting

    Have you ever developed web services? For the most part, it's even more complex. WSDL is more complex than IDL, for sure. Interfaces in WSDL often have to be awkward because they lack object orientedness. Callbacks are a real pain in the neck using SOAP. Performance sucks. Large objects suck. And as someone else said, SOAP is struggling to provide standards and features that were mature in CORBA for years.

    There are some environments, such as .NET, that make developing web services a breeze.

    The author has some good points on why we as an industry moved away from CORBA, but SOAP and web services are even worse in my opinion.

  36. Re:Gnome and CORBA by 21mhz · · Score: 3, Informative

    GNOME is steering away from CORBA, to the point of rewiring their next major release for D-BUS. I believe this includes Bonobo.

    --
    My exception safety is -fno-exceptions.
  37. Re:What a ridiculous trend... CORBA to WebServices by supersnail · · Score: 2, Interesting

    I always had the impression that nobody at OMG had ever worked on a real system in a real environment.

    The killer for CORBA in the real world was how the f*** do you get 5000 copies of the IDL to 10 platforms at the same time?

    The very few succesfull implementations of CORBA had a single IDL that went:
        int msg_type;
        long msg_length;
        char[] msg_buffer;

    Thus quietly dumping 97% of CORBA and implementing a solution that could more easily be done with BSD sockets but without any architects/managers loosing face.

    Currently the only widespread use of CORBA is as the transport for J2EE, and yes they use a single IDL
    not too far removed form the one above.

    --
    Old COBOL programmers never die. They just code in C.
  38. 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
  39. Boneheaded sysadmin port blocking by Goonie · · Score: 3, Insightful
    The article mentioned CORBA's problems with dealing with firewalls.

    Correct me if I'm way off base here, but it seems like the following happened with regards to ports:

    1. In the beginning, services were allocated to different ports, with HTTP going to port 80.
    2. Sysadmins decided to block everything but port 80.
    3. Stuff needed to be put through the firewall.
    4. Rather than developing procedures to get ports opened, everything but port 80 stayed blocked.
    5. Protocols were designed to use port 80 to get through firewall.
    6. Selective port firewalling became useless because everything uses port 80.

    Clearly, blocking ports selectively is not a sufficient security measure, but being able to block services based on the ports they use is a handy tool to have in the armoury. Isn't it? And isn't it one we've thrown away because sysadmins have been to anally retentive?

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
    1. Re:Boneheaded sysadmin port blocking by (H)elix1 · · Score: 2, Informative

      I was going to tag this as insightful, but figured I would add to it rather than mod.

      On the ports, the biggest problem was applications (not necessarily the corba orb - don't remember from my one project with it) wanted a range of ports rather than a specific port. Had we been able to say port 4567 or something like that, our security folks would have been more than happy to open up the firewall a bit. Many of the product we were wanting to use would try to use ports 3000-4000 or something silly like that.

  40. Oh man this peeves me off ... by guysmilee · · Score: 2, Interesting

    I am sure the author of this article is a fine individual ... however I am serious forced to question is opinions. CORBA is far from dead ... CORBA is in fact mandidated for use in every radio used US miltary, coastgaurd etc by 2010 (I believe). One only has to google for JTRS and start searching the links for SCA (the standard being used). And this is just the icing on the cake. CORBA itslef is a enormous overhead saving tool ... I have worked with far to many engineers that want to design there own msg'ing system between processors and devices ... without CORBA you are simply re-inventing the wheel. The CORBA community has already made its mistakes and corrections. And as for his assesment of the individuals contributing to the standard ... well he could not be more wrong ... these people are highly qualified/knowledgeable individuals building real systems and using CORBA to build real systems ... nothing is added to the CORBA spec ad-hoc. The biggest problem CORBA has with its addoption is its foot print size in embedded systems ... however thanks to modern memory sizes this is no longer a problem ... so in my humble opinion the author needs to wake up and jump back on the CORBA bandwagon ... otherwise he can go sit on his own and re-invent CORBA's past while CORBA moves on with life. Rant over :-)

  41. Re:What a ridiculous trend... CORBA to WebServices by XMyth · · Score: 2, Insightful

    How about saying a paved road is better than a dirt bike? :)

  42. Re:What a ridiculous trend... CORBA to WebServices by grimarr · · Score: 2, Interesting

    I really like that word you coined: zealout. Sounds like a cross between zealot and sellout, which may be part of the reason for some of the problems with CORBA.

  43. 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.

  44. Phase Relationships in the Standardization Process by SimHacker · · Score: 3, Interesting

    Phase Relationships in the Standardization Process, James Gosling, August, 1990. [see link for illustrations]

    This is a moderately sarcastic note on the phases that the standardization process goes through, and the relationship between the level of technical and political interest in a topic. It is purely a personal view.

    Toshi Doi of Sony describes the standardization process in terms of the diagram at left. The i axis describes level of interest and the t axis describes time. Ti describes technical interest, and Pi describes political interest. As time passes, technical activity declines as the technology becomes understood. Similarly, generally fueled by economic pressures, the political interest in a technology increases in some period.

    For a standard to be usefully formed, the technology needs to be understood: technological interest needs to be waning. But if political interest in a standard becomes too large, the various parties have too much at stake in their own vested interest to be flexible enough to accommodate the unified view that a standard requires.

    In this model, Ws is the `window of standardization' where technical interest is waning (i.e. the technology has become understood), but the political situation hasn't become too hotly contested for constructive negotiating.

    This model has many interesting insights, but there is more complexity in the situation that can be explored. In the original model, the T and P curves are open ended. The situation is more like the diagram at left. These curves, Ta and Pa, represent technical activity and political activity. In general, technical activity precedes political activity. Both types of activity go through phases of different intensity. As these activities proceed, they produce results. The result curves are the integrals of the activity curves.

    The integrals of these two curves are drawn at left. The integral of Ta is K (knowledge) and the integral of Pa is C (calcification - revealing a strong personal cynicism). Ss, the sensibility of standardization, is just K-C. The optimum time for standardizing a technology is when Ss is at a maximum, which will be in a region where knowledge is high, but calcification has not yet set in.

    A very interesting quantity to observe is the phase relationship between Ta and Pa. When the maximum point on Pa follows the maximum point on Ta by a sufficient distance, there is a wide Ss window. A sensible standard can be fairly easily set since the political activity which leads to the standard has the necessary technical knowledge in hand when needed. If Pa lags Ta sufficiently, Ss will have a long high flat top, which forms a convenient table on which to work.

    Consider moving Pa left, closer to Ta. When it is close to Ta, Ss will have a shallow and flat region where the upward slope of Ta matches Pa approximately. This region is the time of chaos. Before calcification builds up, there isn't enough knowledge to do anything sensible, by the time that there is enough knowledge, there's too much calcification to allow a sensible compromise to be reached. In between, the region is flat enough that there isn't a clearly defined optimum moment for developing a standard, so there is instead a drawn out period of chaotic bargaining and soul searching.

    Consider moving Pa even farther left, until it is to the right of Ta. This is the worst case: Ss is always negative. The long flat minimum region is the time of panic where the political/economic process has decided that a technology needs to be standardized, but no one understands it. Standards get set by making random guesses that are not grounded in any technical reality, but are instead grounded totally on political expedience.

    The case described in the previous diagram is impossible in practice. The very act of setting a standard inhibits technical activity

    --
    Take a look and feel free: http://www.PieMenu.com
  45. Re:What a ridiculous trend... CORBA to WebServices by Urusai · · Score: 2, Interesting

    A standard that is too broad is no standard at all. For instance, I could define a "universal language standard" that encompasses C++, C, Java, C#, D, Smalltalk, Lisp, Algol, Fortran, and S/360 assembler code. Now how dumb would that be? CORBA dumb, it seems.

  46. Re:IDL by Michi · · Score: 2, Informative

    > The big problem with IDL-based RPC is that it becomes essentially impossible to version your APIs.

    That is true for CORBA, but it is not true for Ice. Have a look at http://www.triodia.com/staff/michi/connections/iss ue8.pdf "Can a Leopard Change its Spots?" for a versioning mechanism that allows you to seamlessly version an application without breaking backward compatibility.

    Cheers,

    Michi.

  47. The CORBA Niche by JoeRandomHacker · · Score: 2, Interesting

    For all its faults, CORBA does fill an important niche. As far as I know it is the only communication technology that features:

            High Performance (implementation dependent, of course)
            Language Interoperability (standard language bindings)
            OS Interoperability
            CPU Interoperability
            Vendor Independence
            Object Orientation
            Healthy Open Source Community

    I think we can agree that these are good things to have.

    There are a number of caveats, though:

          CORBA works best when you have tight integration between the client and the server. The more you try to put between the two (e.g. the public Internet) the more problems you will have.

          There is a good bit to learn to be able to design and build a CORBA-based system, from basic concepts to language bindings. Once you have it down most of it makes sense, and developing new applications can go fairly quickly, but it does take a while to get there. You might want to try starting with a Python ORB, since it is a lot easier to use than C++ or Java ORBs, and you can use Python later to build tests for your C++ or Java code.

          You have to ignore a lot of stuff. The bulk of the CORBA services out there aren't really useful; stick to things line Naming, Notification, and Trading. Some features like valuetypes are a pain to support, so are better ignored. CCM might be worth something eventually, but it would require really good vendor tools support, and it is better avoided for now. You can get by pretty well with the concepts in Henning and Vinoski's book, "Advanced CORBA Programming with C++".

          Interface evolution needs to managed carefully, since IDL is generally more rigid than XML.

    These caveats make CORBA inappropriate for a lot of projects, no question, but for those projects which have performance and interoperability requirements which match with CORBA's feature set, it is worthy of consideration.

  48. RMI is better, in a Java-only world by jonabbey · · Score: 2, Informative

    Actually, the ability of RMI to depend on a common code execution on either side of an RMI link (at least when using JRMP, the original wire-level protocol for Java-to-Java RMI) means you can do a good number of tricks that you can't easily do with CORBA. You can pass classes (not just objects) from JVM to JVM. You can operate with distributed garbage collection and multithreading out of the box. You never have to worry about whether your native Double class has the same representation and semantics as the equivalent class on the far side of the RMI link. You can pass any arbitrary object to the other side of the link and know that it will be reconstituted properly, without having to re-do parts of your design in IDL.

    RMI is tragically flawed by its limitation to the Java environment, but within that environment, it is a superb solution, providing simple and flexible support for distributed object systems. Want security? Wrap your RMI communications in SSL and turn on cryptographically random ID codes for your distributed objects. Want the ability to penetrate firewalls? Encapsulate your RMI calls in HTTP. Want to have your software automatically bounce from system to system? Java's ability to transparently pass serialized remote object references makes it a snap.

    As the article says, CORBA was crippled from birth by its creators' insane idea to deliver a set of castle-in-the-sky specs without testing them out with actual implementations. CORBA 1.0 couldn't even speak from ORB to ORB over the Internet, for pete's sake.

  49. This wasn't my impression of things... by Svartalf · · Score: 2, Informative

    When I used TAO, it just all snapped together. Minimal noise. No goofy setup, etc.
    If it's on the same network segment, it just finds the NamingService object on the
    segment (If you've properly started it...) and just works. I know, I've designed
    massively distributed trasaction processing systems with it that had to handle situations
    like vending a toll gate with a vehicle going through it to speeds up to 55 mph.

    Now, to be sure, this is more the ACE/TAO people's doing, but there's NOTHING in CORBA
    that requires all the noise that you typically see with other ORB implementations. And
    CORBA's neither slow nor cumbersome- it's all in the ORB implementations. Of which, many
    just plain flat suck.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  50. Re:What a ridiculous trend... CORBA to WebServices by joto · · Score: 2, Informative
    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.

    Trust me when I say this: CORBA for C++ is much worse!

    I've tried both, and CORBA in java was such a relief from doing it in C++, I almost started thinking CORBA was sane, and only the C++ bindings sucked. Therefore I'm very happy for your perspective and insight.

  51. Re:interop killed CORBA by BattleTroll · · Score: 2, Informative

    "Anyone here ever REALLY try to use CORBA across languages and platforms?
    No ... seriously, using something besides Java on both ends."

    Yes. We use Java for our clients, and C++ for our servers. Works great on Linux, HP, AIX, Windows, and Solaris with very little cross-platform issues. Your assertion that language interpoerability failed is incorrect - it works as designed and works well.

  52. Re:What a ridiculous trend... CORBA to WebServices by cow-orker · · Score: 3, Interesting

    Butbutbut... CORBA is simple! WTF are you doing?

    More specifically, CORBA does what needs to be done. You want location transparency, so you need a wire protocol and object references that include endpoint adresses. You want language neutrality, so you need the IDL. These parts are necessary and not overly complicated. A Naming Service is probably a good idea, and it is still simple.

    What are you doing that's complicated? Trading Service or stuff layered even on that? Useless junk. Programming in C++? Okay, that mapping is crap. But why? People are constantly grappling with stuff they neither want nor need. Just don't use it, and optionally fix the faults in the things that are needed. (My wishlist: gimme a better C++ mapping that knows about STL, gimme me an ORB for Haskell, allow parametric polymorphism.)

  53. CORBA v ICE by hachete · · Score: 2, Interesting

    Michi Henning owns a company which develops ICE...which is a competing product to CORBA. Nothing to see here, move along please.

    As for complexity, SOAP is heading the CORBA way, thanks to Microsoft, IBM et al. SOAP has lots of interoperability problems btn languages, Java and Perl for example.

    You could use xml-rpc but most of the implementations are brain-dead, and unusable for complex apps.

    If you have to go btn two languages, just use sockets.

    --
    Patriotism is a virtue of the vicious
  54. What it all does, and why Linux/Unix lacks it by Animats · · Score: 2, Informative

    What all these systems do is quite similar. The basic idea is this:

    • There's some way to find out what other programs are running that are willing to talk, a "resource location" protocol.
    • Once you find out who's willing to talk, there's a way to find out what messages they understand and their formats. That's the key to all this.
    • Then, hopefully, there's some security mechanism which decides who's allowed to make which calls to whom.
    • Then, the caller and callee can communicate in a subroutine-like way, with some assurance that they're talking the same language.

    This all originated as an internal mechanism within Visual Basic and was responsible for its success. Alan Cooper had finally implemented a reasonably idiot-proof way to make A talk to B. That's why Visual Basic controls were so powerful. Then Microsoft made it a general-purpose mechanism. The Unix/Linux world didn't pick up on this for a long time. The Gnome and OpenOffice people get it, and their stuff plays well together. Most other extensibility is a master-slave relationship, usually involving "plug-ins", "toolbars", or "scripting".

    Part of the problem is that the main languages in the Unix/Linux world are C and C++, which have no introspection. If you have a structure, and you need to go through all its fields and get their name and type info so you can format and marshall them for transmission, there's no way to do that from within C or C++, other than by writing glue code by hand for each interface. Preprocessors have been built to deal with this problem (ones exist for OpenRPC and SOAP), but they're clunky and complicate the build process. CORBA requires that you define each interface in its own special language, IDL. The Java world has a solution to this problem, but it's Java-only. Microsoft has put extensions into their various dialects of C and C++ to deal with this, but they were too Microsoft-specific to go into the standard. So making A talk to B without extra work remains hard in the Unix/Linux world.

  55. Re:What a ridiculous trend... CORBA to WebServices by indifferent+children · · Score: 2, Informative
    Subsetting must hurt compatibility though - different vendors will implement different "10%"s of the features.

    No, the ORB vendors should provide all of the spec'ed functionality. And to be fair, they tend to do a very good job at this completeness. As a programmer who uses CORBA (omniORB, ACE+TAO, and VisiBroker), I only *use* 10% of the features. I never use: POA interceptors, POA policies (hardly at all), Trading Service, AVService, etc.

    There are a few features that are almost never implemented by the ORB vendors, such as the TypedEvent interfaces to the NotificationService. That is one of those stupid features that the domain specialists (e.g. IT people from the Healthcare industry) put into the spec, without knowing how difficult and inefficient it would be to implement and use. The ORB vendors responded by ignoring that feature (mostly out of necessity).

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  56. CORBA in embedded systems by ehovland · · Score: 2, Interesting

    Thanks to Moore's law embedded systems have grown up enough to use CORBA. I know this because I work on a project which uses CORBA heavily (at least in the TAO and JacORB incarnations). Since CORBA has strong typing, it is attractive to developers who depend heavily on typeness to provide checks in systems where no one likes bugs. And really, who wants to write another middleware to deal with distributed systems? I sure don't.

    There is no disclaimer in the article so I think it is worth mentioning that even though Michi was CORBA for all intents and purposes for a number of years, his current employer provides a competitor to CORBA and Web Services. And, you guessed it, that product addresses each and every flaw he outlines in his article.

    To be fair ZeroC and Michi do put their money where their mouth is by supplying Ice in source form, licensed under the GPL. Although I do not see them putting this in front of a body like the IETF or trying to get Ice bindings integrated into something like boost. This would really attack that one point in the article talking about having real systems implemented and having it in front of a standards body.

    Now that I have put in the proper disclaimers, I have to say that having used CORBA the last 5 years I agree with Michi on every point. Our knowledge of POAs is just now getting to the point where we are comfortable using it in complex ways. We are only now willing to entertain the notion that we are actually using CORBA the right way. We have spent weeks reading, coding, recoding, testing and testing again to understand the spec and the real world usage. The learning curve is easily the steepest and tallest of any technology I have had to learn. I said "Amen" out loud when Michi mentions that people really screw up when they don't do it right.

    Using CORBA as a real distributed object system is not possible unless the system is in a network that you have complete control over. Even now we use cumbersome workarounds to develop our system remotely because we can't use CORBA like we were supposed to. Thank you very little script kiddies for making us use firewalls every where! But if CORBA had been built with security in mind in the beginning at all, it would be vastly more useful then it is now.

    And we have not moved on to things like Web Services precisely because we do not want to move away from type checking and we can see the train wreck associated to security. So we use CORBA the best we can (and we have been largely successful, BTW).

    Now I am going back to checking whether try blocks have been done properly for the naming service code we have to implement because of the exact reasons Michi says most implementers need the CORBA naming service.

  57. Re:What a ridiculous trend... CORBA to WebServices by aminorex · · Score: 2, Insightful

    I'm of the opinion that invested vendors want to raise the bar to entry for competitors, so they inject as much complexity as they feel they can easily manage. This turns into a bidding war at the standards table, when multiple vendors all try to inject complexity in areas where they feel they have leverage. It's just like price-fixing, really. It's an anticompetitive practice.

    --
    -I like my women like I like my tea: green-