2. How do Vortex Link works?¶
2.1. Discovery¶
In usual DDS deployments (single LAN), the discovery between DDS applications is achieved peer-to-peer with the help of UDP multicast. But in systems where UDP multicast is partially or not available (typically in WAN), Vortex Link provides another way for DDS applications to discover each other.
The Vortex Link services will discover the end-user DDS applications that are running locally (in the same LAN) through UDP multicast and applications that connect to them through TCP. The Vortex Link services will collect informations about end-user applications DomainParticipants and sub-entities (Writers and Readers) and propagate those informations to the other Vortex Link services in the system when needed. Finally, Vortex Link services will propagate Writers and Readers informations to all end-user applications that need to communicate with them.
2.2. Routing¶
In the types of environments Vortex Link is designed to address, several circumstances may lead two user applications to be unable to communicate directly with each other:
- Both user applications are using TCP transport, but both are deployed behind a different NAT (on a host that does not have a public address).
- Both user applications are using UDP-multicast transport but are deployed in two different LANs (or private clouds).
- Both user applications use a different transport. One is deployed in a LAN and uses UDP-multicast transport, the other is deployed in a WAN and uses TCP transport.
In such cases, even if they discovered each other with the help of Vortex Link, user applications are not able to communicate with each other and exchange data. Vortex Link services are able to establish a route for data exchanges between the two applications : they will act as bridges between end-user applications, so that two matching end-user applications can communicate with them and exchange data through them.