Integration-Service is a tool developed and maintained by eProsima that allows intercommunicating any DDS or DDS-based system with any other protocol, integrating them into a larger, more complex system. SOSS, the core of Integration-Service, is a System-Of-Systems Synthesizer that enables communication among an arbitrary number of protocols that speak different languages, acting as an intermediate message-passing tool that, by speaking a common language, centralizes and mediates the integration.
A SOSS instance can connect N middlewares through dedicated plugins that speak the same language as the core. This common language is eProsima xtypes -a fast and lightweight OMG DDS-XTYPES standard C++11 header-only implementation. The plugins, or System-Handles, are discovered at runtime after they have been installed.
Integration-Service enriches the functionalities of SOSS by offering a built-in DDS specific System-Handle that automatically implements integration of any protocol with the DDS world. ROS and ROS 2 specific System-Handles are also available, allowing seamless communication of any other platform that is integrated into the SOSS world with these two systems. Other System-Handles supported to date provide connection with Orion ContextBroker and WebSocket.
Integration-Service can be configured with a YAML text file, through which the user can provide a mapping between the topics and services on the DDS-based middleware and those on the system(s) to which the user wants to bridge it.
New System-Handles for additional protocols can be easily created, automatically allowing communication of the new protocols with DDS and with the middlewares that are already supported. Thanks to this, downstream users can extend eProsima Integration-Service to communicate DDS-based systems with any middleware. This plugin-based framework is especially advantageous when it comes to integrating a new DDS component into a complex system where the rest of sub-systems use incompatible protocols, or viceversa. Indeed, once all protocols of interest are communicated with eProsima Integration-Service, each via a dedicated System-Handle, the integration is mediated by the core and relies on centralization rather than on the creation of dedicated bridges for each pair of components. For a system made of N components, this means that the number of new software parts to add grows as N rather than N².