1

I am new to DDS,I am using CyclonesDDS c++ packages

as I know DDS implementation mechanism is published/subscribe

is it possible to perform a request-response in DDS? like in clenet-server applications?

A client pc will request data then a central pc will respond with data

should I implement it logically in the program? is following way is the optimum method

client PC -> request logic -> client PC publish to a requestData topic

central PC -> waiting for requst topic -> central PC subscribe requestData check if data is requesting

central PC -> response logic -> central PC publish data to a dataWrite topic

client PC -> waiting for data topic -> central PC subscribe dataWrite topic and read data

are there callback functions to perform this?

kobi89
  • 152
  • 9

1 Answers1

1

Yes, it is possible to implement request-response logic over DDS. In fact, the OMG RPC Over DDS specification defines a Remote Procedure Calls (RPC) framework using the basic building blocks of DDS. That seems to provide what you are looking for.

For some concrete documentation provided by a vendor that implements this kind of logic as part of their product, you could check out the RTI Connext User's Manual Part 4: Request-Reply Communication Pattern.

Reinier Torenbeek
  • 16,669
  • 7
  • 46
  • 69
  • is it possible to use them with eclipse CycloneDDS c++? – kobi89 Jan 15 '21 at 05:16
  • the implementation in the doc provided is for opendds isn't it? – kobi89 Jan 15 '21 at 09:09
  • 1
    No, that user's manual is not for OpenDDS but for Connext DDS. If you were referring to the other document: that is a standards specification so independent of any implementation or vendor. – Reinier Torenbeek Jan 15 '21 at 16:33
  • OMG RPC Over DDS specification we have to code the rest of the procedure for each implementation in header files isn't it? I meant we have to code source .cpp program since only method declaration is in those header files – kobi89 Jan 18 '21 at 04:37
  • 1
    Speaking for RTI's implementation only: no, you do not have to implement the procedures yourself. The infrastructure takes care of that. For an impression of what your code could look like, you could check out [Request-Reply Examples](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/api/connext_dds/api_cpp/group__RequestReplyExampleModule.html) – Reinier Torenbeek Jan 18 '21 at 16:04