Deploying Infrastructure Services

If you are using version 6.1.0 or higher, and want to deploy one of RTI’s infrastructure services (e.g., Routing Service, Persistence Service or Recording Service) as a standalone application, you will need to copy some of the files from your rti_connext_dds-<version> installation directory into your deployment directory. If you are using an older version, this information still applies except for the third_party section.

The specific set of files and their location depends on the platform where you want to deploy the infrastructure service. It depends on whether your platform is supported as a host or target platform.

Note: To know which platforms are supported as host or target, take a look at the Platforms Notes for your RTI Connext version.

To determine whether the platform you will be running is compatible with the host or target platform, consider the following:

  • If one of the platforms within resource/app/bin/ is suitable for the operating system where you are deploying your DDS application, use the host platform. Follow the Host Platform deployment instructions below.
    Note: If the infrastructure service needs to load a shared library you have compiled (e.g., a custom Routing Service Adapter or a Recording Service Storage Plugin), you should deploy an infrastructure service compiled using the same set of libraries and compiler you have used for that shared library. Otherwise, you may run into ABI compatibility issues. In that case, follow the Target Platform deployment instructions.
  • Otherwise, if you need one of the target platforms that RTI provides as an rtipkg (e.g., INTEGRITY, or a specific Linux or macOS version), use a target platform. Follow the Target Platform deployment instructions below.

Deploying Infrastructure Services on Host Platforms

In this case, you will need executables, shared libraries, and configuration files that are part of your host installation.

Required

  • resource/app/bin/<arch>/rtiserviceexample[.exe]: The service application. (Note that the executable of some infrastructure services may have an "app" suffix.)
  • resource/app/lib/<arch>: The shared libraries used by the services.

Optional

  • bin/rtiserviceexample[.bat]: The script that sets up the environment variables for shared libraries.  You can run the application without this script, but you will need to configure library paths.
  • resource/scripts/rticommon[.sh|.bat]: Called by the services’ scripts as a general way to set environment variables consistently. If you are running using the scripts in bin/, those scripts expect this to be in a known relative path.
  • resource/scripts/rticommon_config[.sh|.bat]: If you deploy the script in bin/ and the rticommon script, you will also need to deploy this script, and you will have to add the following line that disables copying the workspace:
    # resource/scripts/rticommon_config.sh
    copy_workspace=false  
    @REM resource/scripts/rticommon_config.bat
    set copyWorkspace=false
  • resource/xml/<RTI_SERVICE_EXAMPLE>.xml: The default XML QoS configuration files used by the service.
  • third_party/<openssl>/<arch>/<Debug|Release>/lib/libssl
  • third_party/<openssl>/<arch>/<Debug|Release>/lib/libcrypto

Deploying Infrastructure Services on Target Platforms

If the application you are looking to deploy runs on a platform different than your host, such as INTEGRITY, you will need to install the target bundle of your choice using the appropriate rtipkg (please refer to the RTI Connext DDS Installation Guide).

Once you have installed the rtipkg for your target platform, you will have all the necessary dependencies within your RTI Connext DDS installation directory. The files you need to copy to your deployment directory are the following:

Required

  • resource/app/bin/<arch>/rtiserviceexample[.exe]: The service application. (Note that the executable of some infrastructure services may have an "app" suffix.)
  • lib/<arch>: The shared libraries used by the services. (You will only need to copy a subset of the available shared libraries, which vary from infrastructure service to infrastructure service.)

Optional

  • Scripts: You may copy the scripts required to run your application (see instructions to deploy infrastructures services on platforms compatible with the host platforms). However, you may need to adapt those scripts to your deployed platform.
    If you choose not to copy the scripts, you will have to launch the executable under resource/app/bin/<arch> and add the libraries under lib/<arch> to your library path (e.g.,  LD_LIBRARY_PATH or DYLID_LIBRARY_PATH) or path (i.e.,  Path on Windows systems).
  • resource/xml/<RTI_SERVICE_EXAMPLE>.xml: The default XML QoS configuration files used by the service.
  • third_party/<openssl>/<arch>/<Debug|Release>/lib/libssl
  • third_party/<openssl>/<arch>/<Debug|Release>/lib/libcrypto