Service Discovery in DDS

4 posts / 0 new
Last post
Last seen: 6 years 10 months ago
Joined: 11/30/2012
Posts: 13
Service Discovery in DDS


I'm interested to know more about the auto-discovery technique in DDS,

whould you please introduce completely and technicaly the process of service discovery in DDS ?

How DDS discover services ib Distributed Systems ?

What is it's architecture ?

what is the search techniques in service discovery in DDS ?


best regards

Fernando Garcia's picture
Last seen: 6 days 13 hours ago
Joined: 05/18/2011
Posts: 200

Hi Ashlly,

You can find destailed information about Discovery in the RTI Connext Core Libraries and Utilities User's Manual (Chapter 14). Among other thing, the document describes:


  • What discovert is.
  • How to configure the peers list used in discovery
  • Discovery implementation
  • Discovery debugging
  • Ports used for discovery
In a nutshell, discovery is the process in which information of applications publishing and subscribing to a certain topic is propagated. When a Domain Participant is created, the middleware sends out packets on the network to announce its existence. If an application finds another application in the same domain, it exchanges information about its publications and subcribpions and associated QoS with the other application. Then, when new entities are created (e.g., Data Writers and Data Readers), information is sent to know applications.




Last seen: 6 years 10 months ago
Joined: 11/30/2012
Posts: 13

tank you Sir

but I like to know specially about the tactics ( if there is any algorithms or methods ) for AUTO DISCOVERY in DDS !

do you have any useful document ?

many many thanks

Gerardo Pardo's picture
Last seen: 1 month 2 weeks ago
Joined: 06/02/2010
Posts: 602

Hello Ashlly,

Yes. As Fernando said the OMG DDS does include a built-in Algorithm to do discovery of all the other DDS Participants on the network as well as what they publish and subscribe, their quality of service, data-types, etc.  Chapter 14 of the  RTI Connext DDS Core Libraries and Utilities User's Manual, the document Fernando indicated, contains, as far as I know, the most comprehensive and detailed description of this process currently available. 

In addition to the above document, you can also read Section 8.5 of the OMG Data-Distribution Service Interoperability Wire Protocol (DDS-RTPS). This document is the official OMG Specification and also describes the process from a protocol implementation point of view. 

A good way to understand how it works may be to try it out writing some simple applications. The OMG DDS API allows applications to access discovery information so it is not only the middleware that knows who is in the system, but the application can also be notified of all discovery events and see the details of who is joining the system as well as what is being published and subscribed.   There is a HOWTO in the forum titled Detect the presence of DomainParticipants, DataWriters and DataReaders in the DDS Domain. This HOWTO explains the concepts behind these APIs and also includes a Java example that you can use as a starting point. 

I hope the above references are enough to get you the information you seek. I think the reason why there is no more detailed information available is that the details of discovery are mostly relevant to the implementors of OMG DDS products. What a user or developer needs is the higher level configuration and access APIs that are publicly documented.  If this is not enough information in your situation, you could describe here in more detail what you are trying to do and I will try to provide more details to help you.