I just started reading documentation about DDS as it seems it could be the tool I need to run a simulation: this simulation will consist of N (N could be > 500) instances of a model that is currently being developped. This model will be a multithreaded process, and the N instances of this model will be launched simultaneously on different points of a network. Other models will also be developped in the future. Of course, all these processes (models) will need to communicate with each other.
We first thought that the HLA (High Level Architecture) standard was what we needed to handle these communications between our models as it provide the same publish/subscribe functionality.
At this point I am still trying to figure out what standard would be better for our project.
So here is my question: regardless of additional features (Quality of Service etc.) provided by DDS, what is the fundamental difference between these two standards? Do they have the same purpose?
I briefly described our project so that you can advise me about the standard I should start working on!
As you probably know, HLA is a standard that focuses mainly on interoperability and reusability of simulations, often in a networked environment. DDS serves a larger purpose. It's full name is "Data Distribution Service for Real-time Systems". This already shows that DDS is intended to deliver real-time behavior, which is not the main purpose of HLA. Also, DDS is about distributed data-management in general, not limited to simulation systems like HLA. DDS can be used in many more areas than just simulation. Like HLA, DDS revolves around a globally defined datamodel. With DDS however, defining and adding new datatypes is very easy and does not require any application code -- with HLA that can be quite different if you move away from the standard FOM's. In general, I think it is safe to say that from a feature perspective, DDS is a superset of HLA. It is possible to build an HLA RTI using DDS as the underlying transport layer. The other way around, building a DDS that uses and existing HLA RTI as transport does not seem to work. My statements are supported by the observation that for OpenSpliceDDS in particular, we have customers who moved away from HLA and decided to go with DDS instead. We have not seen anything happen in the reverse order :-)
Hope this helps, Reinier
posted on Monday, January 30, 2012 - 03:49 pm
Summary of diferences:
HLA has…that DDS doesn´t have:
Inheritance in the data model. Simulation services. Interactions.
DDS has...that HLA doesn´t have (in the same degree):
-22 Quality of services: Hla evolved has 2. -Fast self-discovery is part of the standard. -Any new element can join any moment with all capabilities. -Interoperability between all vendors with DDSI has been probed. Interoperability with RTIs of different vendors is not possible. -Easy API. -Great scalability over systems of systems -Hard real time capabilities. -Security services (authentication, cipher…). -Full fault tolerance (both Qos and architectural). -Performance: Low-latency and high throughtput. HLA has worst performance (as seen in http://www.omgwiki.org/dds/sites/default/files/Application_of_DDS_for_Flexible_M anufacturing_Automation.pdf)