The CoreDX DDS remote procedure call (RPC) functionality leverages existing DDS protocols, providing all the additional benefits of dynamic discovery of endpoints, and configurable communications behavior through QoS policies that are not available in typical RPC protocols. Each service is based on a DataReader / DataWriter pair for receiving requests and sending replies. Conversely, each client has a DataWriter / DataReader pair for sending requests and receiving replies.
The specifics of the applications interface to the RPC architecture is dependent on the selected language binding. The application can choose a Function-Call API, a Request-Reply API, or interact directly with the RPC DataReader[s] and DataWriter[s].
Because the RPC communication takes place over standard DDS DataReaders and DataWriters, all of the DDS communication facilities are available. For example, it is possible to invoke a single request that reaches multiple services; as such, a client can receive replies from all available Servers. Alternatively, a client could receive a stream of replies from one or more servers. These configurations are challenging to accomplish in more traditional RPC implementations.
The user defines interfaces and the data types involved in the communications using IDL or XML, and these interface definitions may be mixed with the publish-subscribe data types in the same file(s). Synchronous and Asynchronous invocations are available, allowing for maximum application architecture flexibility. along with the communication behaviors: reliability, durability, etc.
CoreDX RPC Programmer's Guide
Contact Twin Oaks Computing for a personalized tutorial or in person CoreDX DDS RPC over DDS workshop
OMG RPC over DDS Standard