Is the legacy of CORBA?

For a distributed computing project starting today with 0 legacy components, are there any good reasons to learn CORBA?

+68
corba
Aug 04 '09 at 7:12
source share
7 answers

There are still situations where CORBA might be a good answer:

  • when you create a distributed system that includes multiple programming languages ​​and several platforms,
  • when your system entails sending complex data structures ... and SOAP does not cut it,
  • when you have a high level of messaging ... and HTTP doesn't cut it, or
  • when you need to interact with existing CORBA customers and / or services.

But having said that, there are alternatives that do what CORBA does only better ... or so they say. For example ZeroC ICE

EDIT @fnieto allows you to say (or imply) that ICE is not free, but there is TAO.

This is inaccurate and misleading .

  • ICE is GPL software and is available as a free download. You had to pay for the ICE if you / your company is not ready to live with the terms of the GPL. (Or if you need support.)
  • I used ICE as an alternative to CORBA. TAO - CORBA. ICE authors make a compelling case for why they can get better performance without being CORBA compliant.
  • TAO is by no means the only open / open source version of CORBA. I can think of 3 others from the top of my head.

At the bottom of the ICE, there is no interoperability with CORBA middleware stacks, but in my experience, interoperability between various CORBA implementations can also be problematic. (Things may have improved in this area ... but I haven't done any CORBA work since ~ 2002, so I'm a little saddened.)

+41
Aug 4 '09 at 7:38
source share

Of the existing answers, this becomes an almost religious topic. You can look at CORBA in the same way as semi-empty / semi-filled glass: on the one hand, CORBA dates from an inherited circle, and on the other hand, it is relatively stable with several available implementations and “damn you know”.

In my work, I see that CORBA is deployed in embedded systems, real-time systems (CORBA has RT extensions) and the like. There are not many AFAIK alternatives.

Another “advantage” of CORBA is the availability of several high-quality open source implementations, such as TAO, MICO, JacORB, etc., with various licensing and support models. Commercial editions are also available.

As for the “majority” of CORBA applications deployed in Java, this is not the case in my experience. Although language mapping for CORBA in Java is one of the most enjoyable (which may not be much), Java already has a very good distributed computing model that offers richness outside of CORBA, and all Java applications use it more than CORBA. The vast majority of CORBA developments I've seen are in C ++ (which is also the worst language mapping).

Finally, CORBA offers standard asynchronous client-side calls in the form of AMI, but has never offered asynchronous server-side processing. TAO offers a custom server implementation called AMH.

+29
Aug 05 '09 at 15:52
source share

I believe that Corba was kind of revived according to the original EJB specification, as EJBs can easily be turned into CORBA beans with some configuration. I suspect most Corba deployments are actually implemented in Java.

In terms of popularity, I think some upscale deployments might remain for several decades, but for most people, Korba is dead.

There are so many very sexual ways to do the same (except for the high end mentioned above).

  • Cloud computing (web services, scalable computing, loose connection, priority).
  • REST services (lite web services).
  • SOAP services (heavy web services).
  • Calculation of the grid / cluster (queue, map reduction, etc.)

But, of course, your Mercy May Var.

+18
Aug 04 '09 at 8:50
source share

Obviously, this depends on the type of server and interprocess communication you are considering. And I think that Stephen S and Chris Cleland do very well with Korba’s positives.

Our app has been using CORBA (Orbix) for over 10 years now, so now it's a legacy. And for what is written, CORBA is a good technology. However, if I were to start, I probably would not use CORBA:

  • This is difficult, and only a small number of people in my organization know this well, as a result, all the difficult problems fall on them to solve them.
  • Recruiting staff can be a problem. CORBA is just not cool anymore. While in Ireland, C ++ developers are a bit subtle on earth.
  • Most consulting firms want to use web services for integration, so if you want third parties to integrate, you probably need api web services.

Now, depending on the type of message I wanted, I would probably think:

  • protocol buffers for a large number of small messages (I know that I will need to provide transport)
  • web services for fewer large messages

It depends more on the search for staff and experience, the support of third-party developers and the use of open source libraries, and then the technical quality of CORBA, which I use every day, and is strong, if a little cumbersome.

+14
Aug 05 '09 at 16:14
source share

CORBA is certainly old-fashioned, but also provides some high-level features out of the box (see here ). This functionality can be performed using modern web services, but probably not in a standard form, and not without a lot of additional work.

For 99% of distributed services, CORBA is undesirable. It is ugly, complex and difficult to use.

+13
Aug 04 '09 at 7:37
source share

One thing that no one mentioned is OPEN, OPEN STANDARDS. Of all existing technologies (with the exception of SOAP), this is the only true standard for open white text. The standard does not depend on any technology organization. RMI (Sun / Oracle), DCOM (now not functioning - Microsoft). It is completely neutral to the supplier and language. With the exception of SOAP, none of the other DOS (Distributed Object Technology) technologies are

I am a software architect and should regularly choose which DOS to use in system design. If it were not for the religious war that I encounter every time, it would be mom or KORBA.

Look at it this way; if it were, none of the 3 / 4G networks would work. 3GPP is fully compliant with CORBA. The European satellite system complies with all CORBA requirements. Ask yourself why? This is because they must be based on neutral vendor and language architectures!

+11
Jan 21 '13 at 7:29
source share

I would say that the current maturity level of web services (including REST) ​​and Java EJB (which can even use CORBA under covers) covers what is needed for distributed enterprise systems.

I would advise that one aspect that you should carefully study is the degree of asynchronous interaction that you need in your distributed system. I argue that any distributed system of non-trivial scale needs asynchronous communication, and the selected infrastructure must support asynchronous processing, as a rule, this means queues.

This does not contradict the use of WebServices (or, indeed, CORBA), but points to an aspect of your choice of product that can be overlooked when you initially get distributed processing.

+9
Aug 04 '09 at 7:20
source share



All Articles