2. Monitor Domain

This application is able to track different Entities that belongs to the DDS communication protocol or are, in some sense, related to these entities. The DDS communication protocol (see DDS specification) divide a DDS network in independent partitions referred to as Domain. This Domains must fulfilled that only the entities in the same Domain can discover and communicate with each other, and so this depends on the Discovery Protocol that is being use. This application implements two different Discovery Protocols that could be use to monitor entities.

Several Domains could be monitored at the same time and the Logical Entities and the DDS Entities under one Domain would never be shared between others (except for Locator). This is not the case with the Physical Entities that could be shared between entities in different domains, as the same Host, or even the same Locator could be related with entities in several Domains.

For the propose of monitoring a Domain, the application gives the button Initialize Monitor where a user can manually specify the configuration of a Discovery type. Once a Monitor is initialized in a specific Domain, the entities in this Domain will start to be discovered and its data collected. Every new entity or data discovered will be notified as a callback in Issues Panel.

Note

Be aware that the discovery of the Fast DDS Monitor entities is made by DDS protocols, and so they will not be instantaneous or simultaneous.

2.1. Simple Discovery Monitor

The DDS Simple Discovery Protocol (SDP) remains on the discovery of individual entities by multicast communication. No previous information about the network and its architecture is needed in order to create a new monitor that connects with the Participants already running in the same network. In order to configure this kind of Domain monitoring, it is only needed to specify the number of the Domain that is going to be tracked

2.2. Discovery Server Monitor

The Discovery Server discovery protocol is a Fast DDS feature that allows to centralize the discovery phase in a single or a network of Discovery Servers. This has been demonstrated to be very useful in order to reduce the discovery traffic and to avoid certain problems that could appear with the Simple Discovery Protocol and multicast.

In order to configure this kind of Domain monitoring, it is required to insert a string with different network addresses. This string consist in one or several addresses in the format of ip_address:port. Each of these are IP-port pair where a Discovery Server is listening. Each network address is separated with ;. It is only needed to successfully connect to one of the addresses set in the parameter, as a network of Discovery Servers interconnected creates a redundancy that makes the network more robust, but it is not required to connect with all of the Servers in it.

The following command shows an example on how to connect with one Discovery Server in your own localhost listening in port 11811, one in the same local network in address 192.168.1.2:12000 and a third one in an external network in address 8.8.8.8:12345.

"127.0.0.1:11811;192.168.1.2:12000;8.8.8.8:12345"

In order to clarify how to set this parameter, please visit the Discovery Server CLI tutorial. The parameter of the Discovery Server Init New Monitor button in this application will be used equally as the input to the CLI command.

Warning

Due to the designed architecture for the communication of the Monitor application and the DDS entities, it is highly recommended not to initialize a Discovery Server Monitor with servers in different Discovery Server Networks (do not connect a monitor to servers that are not connected).

Warning

Do not initialize a Discovery Server monitoring in a Discovery Server Network where another Discovery Server is already been monitored. This will lead to an undefined behavior.