Edge-to-Cloud
Use RTI Cloud Discovery Service and Real-Time WAN Transport to Enable Connext for Seamless Edge-to-Cloud Communication.
Introduction
Real-time communication in edge-to-cloud scenarios is crucial for enabling responsive and reliable operations across various industries, such as teleoperation in vehicles, industrial machinery, and even telesurgery. In these applications, immediate data transmission and processing are essential for ensuring safety, precision and efficiency. Connext enables seamless integration of edge and cloud systems, enhancing operational capabilities by providing a real-time communication backbone for modern connected industries.
-
What This Example Does
This example shows how the Connext Real-Time WAN Transport can be used to create DDS networks across a WAN, such as in an edge-to cloud scenario. The two applications also use RTI Cloud Discovery Service (CDS) in order to perform discovery over the cloud, even when obscured by network address translation (NAT).
This example is intentionally simple, to show the easy configuration changes needed to deploy Connext applications in these scenarios. This can then be extended to more complex systems, like having multiple participants on different LANs at the edge, or multiple participants in the cloud. You still only need one CDS instance, and it does not necessarily have to be run on the same instance as the subscriber.
Note: Running this example requires your RTI Connext license to have access to RTI Cloud Discovery Service and RTI Real-Time WAN Transport.
-
Building the Example
Edge Setup:
Verify that your local machine has Connext installed and is behind a Cone NAT. You can use this page which will tell you. Cloud Discovery Service will not work if you are behind a Symmetric NAT.
Cloud Setup:
- First, let’s launch a fresh AWS EC2 Linux instance. You can skip this step if you already have one set up. Note that using AWS is not required, you can use your preferred cloud provider (Azure, Google Cloud, etc.) or your own cloud servers, as long as you have access to a public IP address for Cloud Discovery Service.
- In this instance, we need to start by installing Connext onto the instance. You can follow the debian installation instructions here.
- Configure the security groups for your instance. (The Microsoft Azure equivalent can be found here.)
You need to enable 2 ports to accept inbound traffic (in addition to SSH). CDS listens on Port 7400 by default, and we need another port for the actual DDS traffic. Thus, you should enable inbound UDP traffic on Port 7400 for CDS & Port 7500 for DDS Ping.
QoS Configuration:
Create an XML file called MyQOSProfiles.xml with the necessary QoS settings. First, you must enable the UDPv4_WAN transport (which enables the use of the RTI Real-Time WAN Transport). You can also configure which port it uses, matching the port that was opened previously. Finally, the discovery initial peers list has to include Cloud Discovery Service.
<?xml version="1.0" encoding="UTF-8"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://community.rti.com/schema/7.3.0/rti_dds_profiles.xsd" version="7.3.0">
<qos_library name="EdgeToCloudQoSLib">
<qos_profile name="EdgeToCloudQosProfile" base_name="BuiltinQosLib::Generic.KeepLastReliable">
<participant_qos>
<transport_builtin>
<mask>UDPv4_WAN</mask>
<udpv4_wan>
<comm_ports>
<default>
<host>7500</host>
</default>
</comm_ports>
</udpv4_wan>
</transport_builtin>
<discovery>
<initial_peers>
<element>udpv4_wan://<your CDS public IP>:7400</element>
</initial_peers>
</discovery>
</participant_qos>
</qos_profile>
</qos_library>
</dds>
You will need two copies of this file, one on your local machine and one on your cloud instance. - First, let’s launch a fresh AWS EC2 Linux instance. You can skip this step if you already have one set up. Note that using AWS is not required, you can use your preferred cloud provider (Azure, Google Cloud, etc.) or your own cloud servers, as long as you have access to a public IP address for Cloud Discovery Service.
-
Running the Example
Now, we will run CDS and the two ping applications.
Cloud Terminal 1 - CDS with default configuration:
rticlouddiscoveryservice
Cloud Terminal 2 - Ping Subscriber:
rtiddsping -subscriber -qosFile MyQOSProfiles.xml -qosProfile EdgeToCloudQoSLib::EdgeToCloudQosProfile
Edge Terminal Window - Ping Publisher:
rtiddsping -qosFile MyQOSProfiles.xml -qosProfile EdgeToCloudQoSLib::EdgeToCloudQosProfile
Try out different configurations! Run the subscriber on a different EC2 instance to CDS, or even at the edge on a different LAN, and watch how you don’t need to modify your QoS Configuration at all.
-
Extending this Example:
Now that you can run this basic example, you can apply the same QoS configuration to your own applications. Here are some relevant resources:
-
Summary
This example shows you how you can configure Connext applications to use RTI Cloud Discovery Service & RTI Real-Time WAN Transport to communicate between edge devices and the cloud.
-
Next Steps
Post questions on the RTI Community Forum.
Check out more of the Connext product suite and learn how Connext can help you build your distributed system. If you haven't already, download the free trial.