CoreDX DDS interoperability - IDL vs DDL Definitions

Hello,

I have recently downloaded an evaluation version of CoreDX DDS and, whilst I am awaiting a license file, have been reading through the documentation and the Getting Started guide (http://www.twinoakscomputing.com/documents/CoreDX_DDS_C++_QuickStartGuid...).

I have worked with other implementations of the DDS protocol (primarily PrismTech's OpenSplice DDS, but also with OpenDDS) and am curious about CoreDX's interoperability. I understand that each implementation which adheres to OMG's DDS standard and which employs the RTPS protocol should be interoperable, but I have been unable to achieve this between OpenSplice and OpenDDS (using RTPS as the discovery method on each). I am hopeful about achieving cross-vendor communication with CoreDX DDS, and I enjoyed reading that "There are no special steps required when developing an interoperable application with CoreDX DDS" though am curious about the implications of using of DDL instead of IDL.

Are there any considerations which need to be made when writing DDL/IDL for cross-vendor compatibility? I have noticed the lack of the "module" keyword in the example DDL files - are modules used in DDL? The lack of a #pragma directive in DDL also stood out to me.

If I write an application using CoreDX DDS to subscribe, and an application using OpenSplice DDS to publish, what must be done to ensure cross-vendor communication is successful?

Many thanks

Comments

Hello, Thank you for your

Hello,

Thank you for your questions!

There is no difference in the syntax of IDL vs. what we have historically called DDL. They both adhere to the same syntax for data definitions.

At one time, DDS was strictly a publish-subscribe technology, used only the data type definitions of IDL, not the interface definitions. That's where the term "DDL" = Data Definition Language came from.

Today, both publish-subscribe and RPC are part of the DDS standards and our CoreDX DDS implementation. As such, both the standardized IDL and XML formats are accepted for data and interface definitions.

With respect to your interoperability question, CoreDX DDS interoperates with OpenSplice, provided OpenSplice is configured to use the standardized RTPS protocol. Please feel free to reach out to support@twinoakscomputing.com with any additional questions you might have!