Chapter 2 Features of Connext
Connext supports mechanisms that go beyond the basic publish-subscribe model. The key benefit is that applications that use Connext for their communications are entirely decoupled. Very little of their design time has to be spent on how to handle their mutual interactions. In particular, the applications never need information about the other participating applications, including their existence or locations. Connext automatically handles all aspects of message delivery, without requiring any intervention from the user applications, including:
- determining who should receive the messages,
- where recipients are located,
- what happens if messages cannot be delivered.
This is made possible by how Connext allows the user to specify Quality of Service (QoS) parameters as a way to configure automatic-discovery mechanisms and specify the behavior used when sending and receiving messages. The mechanisms are configured up-front and require no further effort on the user's part. By exchanging messages in a completely anonymous manner, Connext greatly simplifies distributed application design and encourages modular, well-structured programs.
Furthermore, Connext includes the following features, which are designed to meet the needs of distributed real-time applications:
- Data-centric publish-subscribe communications: Simplifies distributed application programming and provides time-critical data flow with minimal latency.
- Clear semantics for managing multiple sources of the same data.
- Efficient data transfer, customizable Quality of Service, and error notification.
- Guaranteed periodic samples, with maximum rate set by subscriptions.
- Notification by a callback routine on data arrival to minimize latency.
- Notification when data does not arrive by an expected deadline.
- Ability to send the same message to multiple computers efficiently.
- Request-Reply interactions and Remote Procedure Calls: Allow client applications to request information or perform an action on a service application.
- User-definable data types and service interfaces: Enables you to tailor the format of the information being sent to each application.
- Reliable messaging: Enables subscribing applications to specify reliable delivery of samples.
- Multiple Communication Networks: Multiple independent communication networks (DDS domains), each using Connext, can be used over the same physical network. Applications are only able to participate in the DDS domains to which they belong. Individual applications can be configured to participate in multiple DDS domains.
- Symmetric architecture: Makes your application robust:
- No central server or privileged nodes, so the system is robust to node failures.
- Subscriptions and publications can be dynamically added and removed from the system at any time.
- Pluggable Transports Framework: Includes the ability to define new transport plug-ins and run over them. Connext comes with a standard UDP/IP pluggable transport and a shared memory transport. It can be configured to operate over a variety of transport mechanisms, including backplanes, switched fabrics, and new networking technologies.
- Multiple Built-in Transports: Includes UDP/IP and shared memory transports.
- Multi-language support: Includes APIs for the C++ (Traditional and Modern APIs), Python, C#, Java™, and C programming languages.
- Multi-platform support: Includes support for flavors of UNIX®, real-time operating systems, and Windows®. (Consult the RTI Connext Core Libraries Platform Notes to see which platforms are supported in this release.)
- Compliance with Standards:
- Publish-Subscribe API complies with the OMG DDS Specification (OMG Data Distribution Service (DDS) standard API, version 1.4).
- Data type definition and serialization comply with:
- The OMG 'Extensible and Dynamic Topic Types for DDS' specification, version 1.3
- The OMG Interface Definition Language™ specification, version 4.2, also available as ISO/IEC 19516:2020(en)
- Request-Reply API complies with the OMG DDS RPC specification.
- Qos and System file definition complies with the OMG DDS Consolidated XML Syntax (DDS-XML) specification.
- Network (Wire) Protocol complies with the OMG Real-Time Publish-Subscribe (RTPS) specification, version 2.5 (DDSI-RTPS).
- Long-running systems support: Both the Connext public API (Time_t) and internal date representation use a 64-bit signed integer to represent seconds, enabling representing dates up to approximately 292 billion years. However, the actual maximum date Connext supports is limited by the RTPS protocol:
- In compliance with the OMG Real-Time Publish-Subscribe (RTPS) specification (DDSI-RTPS), version 2.3 and greater, the Connext RTPS Time_t second representation uses a 32-bit unsigned integer. Therefore, the maximum system time Connext supports is 7 February 2106, 06:28:15 UTC. After this date, Connext behavior is undefined.
- Interoperability with other DDS implementations is as follows:
- DDS implementations compliant with DDSI-RTPS 2.3 and greater: Connext will correctly interoperate until 7 February 2106, 06:28:15 UTC. After this date, interoperability behavior is undefined.
- DDS implementations using the DDSI-RTPS 2.2 RTPS Time_t second representation (a 32-bit signed integer): Connext will correctly interoperate until 19 January 2038, 03:14:07 UTC. After this date, interoperability behavior is undefined.