DDS vs. CORBA PreviousNext
Data Distribution Service (DDS) Forum > DDS FAQ >
Next message Angel Corsaro  posted on Friday, October 12, 2007 - 10:25 am

In my experience, one of the common areas of confusion around DDS, regards its relationship with respect to CORBA.

As the DDS standard as emerged from the Object Management Group (OMG), which was the International Standardization Organization pionieering the standardization of CORBA - the most successful distributed object computing platform, many people still identify the OMG as CORBA's father.
However, since the early days of CORBA standardization, the OMG, has moved forward with a track record of technology standards such as UML, XMI, etc.

The "Data Distribution Service", DDS for short, is one of the latest standard ratified by the OMG --that is perhaps the most common similarity it shares with CORBA -- the OMG ;-)

From a technical perspective, it does not make sense to even compare CORBA and DDS, as these technologies serve different purpose and rely on a different computational model. More specifically, CORBA is a Distributed Object Computing (DOC) platform, while the DDS is a data-centric real-time publish/subscribe platform.

Said in another way, CORBA is about objects, interfaces, and the ability to remotely invoke methods on objects. On the other hand, the DDS is about, a data-model, QoS associated with the data model, and the ability to publish and subscribe (with specific QoS) to portions of this data model. To this end, the DDS provides a very rich set of QoS that allow to control every aspect relating to data, such as temporal properties, availability, etc.

As a final remark, it is worth pointing out that CORBA and DDS, are not even competing with each other, but are really complementary technologies. Indeed, in most complex systems DDS is used along with a DOC platform such as CORBA, or Java RMI, and alike.

Next message Anthony DaSilva Jr  posted on Friday, March 07, 2008 - 02:30 pm
Are there any performance metrics on DDS vs. CORBA event channel and/or notification services?

I know that OCI benchmarked their TAO CORBA implmentation against OpenDDS and found a 2 to 1 performance advantage in favor of OpenDDS. Are ther others?

Next message Niels Kortstee  posted on Monday, March 10, 2008 - 08:00 am
It sounds hard to me to state something like a '2 to 1 performance advantage'. What is meant with 'performance'? Is this the average latency? Which scenario(s) are used? What about aspects like scalability, predictability, efficiency, fault-tolerance?
Next message Anthony DaSilva Jr  posted on Tuesday, March 11, 2008 - 12:08 pm
Hi Niels,

They didn't say, but I assume it was either a latency or a thruput speed-related metric. In my mind, the other non-functional requirements that you list are not really "performance" requirements.
Next message Niels Kortstee  posted on Tuesday, March 11, 2008 - 12:51 pm
Hi Anthony,

Ok, but also when only considering latencies and throughput, what are the scenarios? How to compare performance of CORBA to DDS? CORBA is typically synchronous, connection oriented 1-to-1 method invocation whereas DDS is typically asynchronous, connectionless many-to-many data distribution.

What is your view on this?
Next message Sachin  posted on Friday, December 11, 2009 - 07:22 pm

Can somebody tell me why DDS uses CORBA data types?

Next message Erik Hendriks  posted on Tuesday, January 05, 2010 - 10:51 am
The IDL language we use for data modeling in DDS was originaly developed for CORBA users. That's why the IDL-language mappings often refer to CORBA datatypes.

Next message Anthony DaSilva Jr  posted on Friday, March 25, 2011 - 12:46 pm
I think any distributed communication system can be compared with any other in terms of latency and throughput because all of them transfer information between entities. It doesn't matter if they're connection-oriented or connectionless; synchronous or asynchronous. You just have to define what is meant by "information" that is applicable to each system.
Next message Anthony DaSilva Jr  posted on Friday, March 25, 2011 - 01:04 pm
@Sachin It's my understanding that DDS uses IDL - which is not the same as CORBA data types. Here's an example idl file used in DDS:

module HB
struct Heartbeat
long count;

note that there's no "interface" and no mention of CORBA types.
Next message Anthony DaSilva Jr  posted on Friday, March 25, 2011 - 01:13 pm

That's funny that you say that CORBA and DDS are radically different - I agree. However, some hard core CORBA people try to say otherwise. In describing their systems to skeptics (like me), they try to look "modern" by using the terms "publisher/publish" and "subscriber/subscribe" (instead of CORBA terminology like Producer/Consumer, push/pull) and equate the trading/naming services with the DDS "auto-discovery" feature. All it does is confuse less tech-savvy executives who finance development projects. Bummer.
Next message Hans Utz  posted on Friday, May 27, 2011 - 09:55 pm

The closest thing to DDS in CORBA is indeed the Notification Service. The Notification Service has a couple of scalability issues (single point of failure, type-code overhead of CORBA::Any, limited QoS). For pub/sub, DDS is a much more powerful/flexible tool. But only for that part of your distributed system.

RTI just published performance numbers on their DDS implementation. Any papers from the TAO Notification service are seriously dated. So it's hard to do a apples to apples comparison. Generally, the point-to-point communication of DDS should by design outperform the event-channel-based relay of messages in the Notification Service by a factor of 2.
Back to top
Add Your Message Here
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Options: Post as "Anonymous"
Enable HTML code in message
Automatically activate URLs in message