1. Introduction

1.1. RTI Connext Gateway Architecture

The RTI Connext® Gateway is a software component that allows integrating different types of connectivity protocols with DDS. Integration in this context means that data flows from different protocols are adapted to interface with DDS, establishing communication from and to DDS.

|RTI_GATEWAY| *architecture*

Figure 1.1 RTI Connext Gateway Architecture

Figure above shows the applicability of the RTI Connext Gateway. Note that a set of different protocols have been selected for the sake of the example, but the key capability of the RTI Connext Gateway is that it can adapt any connectivity protocol.

1.2. Routing Service Plugins Architecture

The Adapter SDK included with Routing Service (also known as Routing Service SDK) can already be used to address the main integration use case targeted by RTI Connext Gateway. In fact, Routing Service adapters have become the de-facto standard solution for integrating DDS systems with other technologies.

Nevertheless, the Routing Service SDK is very generic and possibly daunting for inexperienced users, who are faced with a powerful data integration framework, but little guidance on how to best put it to use. The standard distribution also does not include any plugin that users may use either “off-the-shelf” in their systems, or as a reference for creating their own plugins.

For this reason, RTI Connext Gateway includes several examples of ready-to-use protocol integration plugins for DDS. It also exposes a refined plugin development framework, which builds on the Routing Service SDK but simplifies development and management of this class of plugins.

The Routing Service SDK product is pictured in figure the below. Essentially, the SDK is composed of the following components:

  • Routing Service: binary component that provides an engine to process data through a set of plugins.

  • Adapter: pluggable component in charge of providing access to a specific data domain.

  • Transformation: single-input, single-output, pluggable component that performs custom manipulation of data samples.

  • Processor: multi-input, multi-output, pluggable component that controls a user-configurable set of data flows.

|RS| *plugins architecture*

Figure 1.2 Routing Service Plugins Architecture

1.3. RTI Connext Gateway Framework

RTI Connext Gateway provides an open framework for users to easily extend the included set of plugins with support for additional communication protocols.

The Routing Service SDK has been enhanced with a new set of components that better support the development of user-defined plugins. The resulting framework and its different modules are shown in figure below:

|RTI_GATEWAY| *framework*

Figure 1.3 RTI Connext Gateway Framework

  • Routing Service: The Routing Service engine with the pluggable SDK.

  • Plugins: Routing Service plugins that provide integration with external, non-DDS communication protocols. Includes both plugins shipped with RTI Connext Gateway, and those created by users.

  • App SDK: Libraries to aid and support the development of user plugins. Includes the RTI Connext DDS SDK, and a new AppUtils helper module. These libraries provide several useful reusable components, such as the DynamicData API for data manipulation, AsyncWaitSet for multi-threaded event processing, and a JSON parser.

  • Development Infrastructure: This module contains blocks to facilitate the development process of the user plugins. It mainly consists of a build system, a unit test framework, and documentation generation infrastructure.

1.4. RTI Connext Gateway Plugins

RTI Connext Gateway ships with a set of ready-to-use plugins. These include both some examples of protocol integration, and some useful utilities for common data processing needs. Please refer to each plugin’s user manual for more information on its use and configuration:

  • Adapters

    • Modbus® : Integration plugin for the MODBUS protocol.

    • MQTT : Integration plugin for the MQTT protocol.

    • Kafka® : Integration plugin for the Kafka protocol.

  • Processors

    • Forwarder : Custom forwarding of data within a route.

  • Transformations

    • Field : Extract an attribute from input samples and convert its value to a string.

    • JSON : Convert DDS samples to JSON format.