An Out-of-the-Box Solution for Provisioning Discovery in Cloud-Based Environments
RTI Cloud Discovery Service is a stand-alone application needed to deploy RTI Connext® applications in dynamic environments where UDP/IP multicast is not available. This is typical of wide area networks or some cloud-based environments where the routers and switches may disable IP multicast forwarding.
DDS has a built-in discovery mechanism that allows all DDS applications to automatically detect the presence of other applications and discover the Topics they publish and subscribe along with the associated data types and Quality of Service (QoS).
The built-in discovery mechanism primarily relies on UDP/IP multicast to bootstrap the detection of other DDS applications and learn their network addresses. The use of UDP/IP multicast allows DDS discovery to be completely peer-to-peer – that is, operate without requiring any additional servers or brokers. The applications themselves can discover each other directly.
However, if Connext applications run in environments where UDP/IP multicast is not available then the built-in (peer-to-peer) discovery is not sufficient. Connext is based on the DDS standard. Connext offers two mechanisms to help with those scenarios:
- For static environments where the network addresses of the applications are known a-priori, you can configure your application to automatically check on these addresses for the presence of other applications. This is accomplished by configuring the Initial Peers.
- For dynamic environments where the network addresses are not known in advance, or in cases where the list is too large or cumbersome to manage, you can leverage RTI Cloud Discovery Service. This external service acts as a reliable “rendezvous” point for Connext applications to learn the presence and network addresses of other DDS applications. This can be accomplished by setting the Initial Peers to include Cloud Discovery Service.
Figure 1. Cloud Discovery Service Overview
Figure 1 shows a simple representation of the operation of Cloud Discovery Service. It acts as a “relay” service that forwards the bootstrap (participant announcement) messages that allow DomainParticipants to learn about the presence of other DomainParticipants.
Cloud Discovery Service operates using the standard Simple Discovery Protocol (SDP) . In SDP, DomainParticipants initially announce their presence to all of the specified Initial Peers. These participant announcements contain the necessary information for other DomainParticipants to discover their presence and bootstrap communications. These messages are also used to maintain participant liveliness.
Figure 2. Cloud Discovery Service Forwards Participant Announcement Messages
Cloud Discovery Service listens for participant announcements to dynamically learn about the current list of DomainParticipants, their DDS domain IDs and their network addresses.
Figure 2 illustrates that each DomainParticipant includes a Cloud Discovery Service instance in its Initial Peers. Hence, the DomainParticipant will send participant announcements to Cloud Discovery Service, which will forward those announcements to the list of DomainParticipants it knows about, enabling them to initiate the discovery process among them.
Figure 3. DomainParticipants Exchange Participant Announcement Messages
Figure 3 illustrates that once a DomainParticipant discovers the presence of another one (via the forwarded message from Cloud Discovery Service) it sends its Participant Announcement messages directly. This step is the same as if the DomainParticipant had included the other DomainParticipant in its Initial Peers or was using multicast to announce its presence. These messages are also used to maintain participant liveliness.
Figure 3 shows that once a DomainParticipant receives an announcement from another one forwarded by Cloud Discovery Service, it can directly send participant announcements. This step is the same as if the DomainParticipant included the other DomainParticipant in its Initial Peers or used multicast to announce its presence.
Figure 4. Domain Participants Exchange Endpoint Discovery Messages
Figure 4 illustrates that once DomainParticipants know about each other, they exchange Endpoint discovery information. That is, information on the DataWriters and DataReaders each has. This step is unaltered by the presence of Cloud Discovery Service.
For a deeper understanding of discovery, refer to the What is Discovery? section in the RTI Connext Users Manual.
Benefits of Cloud Discovery Service
- Dynamic discovery remains possible even if there is no multicast available without the need to anticipate or maintain a list of peers.
- Cloud Discovery Service integrates seamlessly in a DDS environment. Because it operates at the RTPS  level, RTI Connext applications do not need any special behavior or protocol. They just need to configure their Initial Peers to contain the location where Cloud Discovery Service is running. Since this is all configurable at runtime, there is no need to recompile your application. This implies that Cloud Discovery Service will also work with existing services such as RTI Routing Service, Connext Micro, or with other implementations of DDS-RTPS.
- Discovery remains as a distributed process performed among all the DomainParticipants. This allows you to scale the system dynamically, and avoids centralized and bottleneck servers.
RTI Labs Project Type: Application
Maturity level: Experimental
Support. Cloud Discovery Service is an experimental product. As such, it is not officially supported, however, we do offer support through the RTI Community Forum where fellow users and RTI engineers can help you.
Intent. Cloud Discovery Service is slated for continued development.
Feedback. We'd love your feedback! Please visit the RTI Community Forum to provide feedback on Cloud Discovery Service.
Which platform(s) is it available on? For information regarding supported platforms and compatibility, please see the Release Notes.
Product compatibility. Backwards compatibility with RTI products (pre 6.0.x) is not guaranteed. Please see the Release Notes for details.
License. Cloud Discovery Service is governed by Section 3e (Evaluation License) of the Software License Agreement.
Cloud Discovery Service is available via RTI Connext Professional 6.0.0. A free 30-day trial is available here.
Cloud Discovery Service is supported with full documentation.
The Cloud Discovery Service User's Manual contains detailed instructions to help you with:
- Running Cloud Discovery Service from a command line tool
In addition to this, the Cloud Discovery Service User's Manual boasts the following five examples:
- Using a built-in UDP transport. This example illustrates the basic functionality of Cloud Discovery Service. It shows how Connext DDS applications discover each other through an instance of Cloud Discovery Service.
- Using a custom listening port. This example extends the previous example example: Using a built-in UDP transport to run Cloud Discovery Service on a custom listening port over UDP.
- Using RTI TCP Transport. This example extends the previous example: Using a built-in UDP transport to use the RTI TCP transport for both discovery and user data. The example shows how to run Cloud Discovery Service using the pre-registered instance of RTI TCP transport.
- Using RTI TCP Transport with RTI TLS Support. This example extends the previous example: Using a built-in UDP transport to enable TLS for secure communication. The example shows how to run Cloud Discovery Service using the pre-registered transport instance of the RTI TCP transport with TLS enabled.
- Using RTI Secure WAN Transport. This example extends the previous example: Using a built-in UDP transport to use the RTI Secure WAN transport for communication. The example shows how to run Cloud Discovery Service with a user-registered transport instance of the RTI Secure WAN transport.
There is also an XSD Schema available.
If you're interested in using Cloud Discovery Service, we think you'll also enjoy the following content:
- [HOWTO on Community] How to configure Connext to not use multicast
- [Community Glossary] What is Discovery?
- [Community Forum] Multicast and Discovery
- EP 14 of The Connext Podcast - Integrate and Scale your IIoT Systems
Post your questions, search through our Knowledge Base and get the most from your DDS experience by joining the RTI Community!