Connext® DDS is a cornerstone of complex and critical computer systems in every industry around the world. Groups such as the Industrial Internet Consortium are taking advantage of DDS as the connectivity platform for distributed and autonomous systems.
RTI Shapes Demo (Shapes) is a tool you can use to learn about the basic and some advanced DDS concepts, such as publish-subscribe messaging, data centricity, and Quality of Service. Shapes is a standalone graphical application that does not require any programming. Starting with our walkthrough, anyone, including developers, students and business professionals, can learn DDS with Shapes.
Download Shapes Demo
Windows (10 and 8)
- rti_shapes_demo-6.1.0-x64Winx64.exe (x86 64-bit)
Linux (x86 64-bit Red Hat Enterprise Linux 8, 7 and 6, Ubuntu 20.04 LTS, 18.04 LTS, 16.04 LTS)
macOS (10.13 and later)
Android (built for Android 5.0, 5.1 and higher)
How to Use Shapes: A Walkthrough
Shapes Demo is an excellent way to understand Connext DDS technology. The following walkthrough will help you grasp the basic Shapes commands and capabilities seen in the main window.
1. Install Shapes Demo
First, you'll need to select the RTI Shapes Demo software for your platform and run the installer. Once installed, run Shapes Demo and you'll see this:
2. Run concurrent Shapes Demo sessions
Open a second window for Shapes (run the program again without closing the first). Click OK in the Welcome dialog and position the two windows so you can see them side by side:
In the left window, under Publish, click Square. In the dialog that appears, click OK. You've just published a blue square, which should be moving around on the left window:
Publishing in DDS is how an application or system provides information to all the other applications or systems.
Now, in the right window, under Subscribe, click Square. In the dialog that appears, click OK. The right window should now be displaying the blue square from the left window:
You've just set up a basic publish-subscribe system with a single publisher (an application sending out information) and a single subscriber (an application receiving information).
5. Pause Publishing
Now you'll see just how fast DDS works. In the left window, under Controls, click Pause Publishing. Watch the square on the left continue moving as the square on the right simply stops:
The square in the left window still works normally, but the left window is no longer publishing its information to other systems and applications. Click Resume Publishing to see the square on the right instantly imitate the square on the left.
This is the heart of data-centricity. Each system and application instantly gets the latest available data, along with all of the information required to use it properly, as fast as they can communicate with one another. Best of all, this works with hundreds of thousands of publishers and subscribers and incredible amounts of data at speeds only machines can keep up with.
You probably already noticed the red outline on the blue square in the right window. This indicates that the shape is a subscribed item. It also leaves a bit of a trail — its History — as it moves. To stop the history from appearing, under Controls, click Hide History. Click Show History to make it appear again.
7. Publishing Multiple Items (in a single window)
You can publish more than one item in a window. In the left window (with your published square), under Publish, click Circle. In the dialog that appears, select Red as the color and then click OK. Publish a Yellow Triangle as well. You should now see something like this:
8. Subscribing to Multiple Items (in a single window)
In the right window, subscribe to circles and triangles, as you did with squares. You should see this:
Our system is certainly becoming more interesting. But we can make it even more so.
9. A Busier System
Open four more instances of Shapes Demo, for a total of six windows. In one of the new windows, subscribe to just triangles and circles. In each of the remaining three windows, subscribe to the square, circle and triangle separately:
Many real world systems might publish and subscribe to information this way, such as radar systems, industrial automation, remote robotics, traffic logistics and broadcast television.
10. Partitions, or The Real-World is Complex
We can already identify items by shape and color, but real-world systems are far more complex. If you manage a fleet of ambulances, the flip of a switch may indicate whether an ambulance is in service. You might want to track all your ambulances, or just those that can still offer patient care.
Partitions help organize such information.
Let's try them out. Start with 6 fresh windows. You can either open new windows, or just click Delete All under Controls in each of your existing windows. Now, in one window, publish a blue square, and when the dialog appears, click A under Partition and click OK. In a different window, publish a blue circle in partition A. In two more windows, publish a red square and then a red circle, both in partition B.
A quick test: Try to set up two Subscribe windows on the right so you see this (solution immediately following):
For the top right window, if you tried to just subscribe to circles, it probably didn't work. That's because you don't have any circles in the "Default" blank partition. You either have to subscribe to circles in both the A partition and the B partition, or subscribe to circles in the "*" (all) partition. For the lower right window, you have to subscribe once to squares in the B partition, and then to circles in the B partition.
11. Working with Domains
You might have been wondering all along how every window knows which other window to talk to. And if you're on a network with other people using Shapes, you might be wondering why you're getting extra shapes when you subscribe.
The Domain ID (visible in the window title bar) determines what "channel" you're broadcasting and receiving on. All computers (and mobile Android devices) connected to the same Ethernet network will tune in to the same channel (0) by default. To change the domain for a single window, click Configuration (under Controls) and then Stop. Wait a moment for the fields to become editable, change the domain to a number of your choice, and then click Start.
You will have to change the domain to the same number for each non-"0" window, in order for those windows to communicate with one another.
You can learn much more about Quality of Service and other advanced concepts by reading the RTI Shapes Demo User's Manual and experimenting further with Shapes.
If you're a developer, you can skip ahead and download the free trial of Connext DDS to get started right away.
And if you've just been reading along so far, please do download and try the RTI Shapes Demo.