publish-subscribedata-distribution-service

What is DCPS and what does it have to to with DDS?


It says in the OMG DDS specification Version 1.4

The DDS specification describes a Data-Centric Publish-Subscribe (DCPS) model for distributed application communication and integration.

I have three questions about this:

  1. What is DCPS?
  2. Does DDS always use DCPS?
  3. Is DCPS used for other standards?

Solution

  • Historically speaking, DDS and DCPS were not the same thing. The following excerpt is from the introduction of version 1.2 of the DDS specification, published in 2006:

    This specification describes two levels of interfaces:

    • A lower DCPS (Data-Centric Publish-Subscribe) level that is targeted towards the efficient delivery of the proper information to the proper recipients.
    • An optional higher DLRL (Data Local Reconstruction Layer) level, which allows for a simple integration of the Service into the application layer.

    Then it goes on two explain in more detail so you can read it for yourself there.

    It turned out that users adopted DCPS much more widely for their applications than DLRL and over time, DDS became synonymous to DCPS. In 2015, OMG published DLRL as a specification on its own, split off from the main DDS specification. The original acronym DCPS was maintained in the DDS specification.

    If you look at Annex A - Compliance Points of the current version 1.4 of the DDS specification, you see:

    This specification includes the following compliance profiles.

    • Minimum profile: This profile contains just the mandatory features of DCPS. None of the optional features are included.

    So DDS-compliant products always include a mandatory subset of DCPS.

    Note that the name DDS may be used to indicate the one DDS specification specifically, but also to indicate the whole ecosystem of DDS specifications -- it depends on the context.