Glossary#

Common Terms#

Adaptive Communication Environment#
ACE#

ACE is an open source C++ framework that is maintained alongside TAO and is extensively used by OpenDDS. It provides a platform abstraction layer and various utilities such as reactors for event handing.

See ACE for more information.

Built-in Topics#
BITs#

Built-in Topics are topics that contain meta-information about local and remote DDS entites and the operational status of OpenDDS.

See Built-in Topics for more information.

Common Data Representation#
CDR#
Extended Common Data Representation#
XCDR#

CDR is a family of binary encoding formats used by OpenDDS to serialize and deserialize samples. XCDR is an extended form of CDR defined by the XTypes specification.

See Data Representation for more information.

Common Object Request Broker Architecture#
CORBA#

CORBA, put simply, is a set of specifications that allows a client to perform remote procedure calls on objects held in a server. It is separate from DDS, but both are published by the OMG and make use of IDL and CDR. TAO is a CORBA implementation that OpenDDS uses for InfoRepo discovery.

See https://www.corba.org/ for more information.

Condition#

Conditions are a method of being notified of events from entities, such a new sample being available from a DataReader, via a status that can be checked synchronously.

See Conditions and Listeners for more information.

Data Distribution Service#
DDS#

DDS is a specification for exchanging strongly-typed data across a distributed system. It is essentially synonymous with DCPS, but can specifically refer to the main DDS specification.

See Data Distribution Service (DDS) for Real-Time Systems for more information.

Data-Centric Publish-Subscribe#
DCPS#

DCPS is essentially synonymous with DDS, but can specifically refer to the API described in the main DDS specification.

DataReader#

A DataReader is an Entity that is used to read samples from a topic. DataReaders are created and managed by Subscribers.

DataWriter#

A DataWriter is an Entity that is used to write samples to a topic. DataWriters are created and managed by Publishers.

Discovery#

Discovery is the configurable method that DomainParticipants use to find one another.

See Discovery, Matching, and Association for more information.

Dispose#

When an instance is disposed by a DataWriter, it means keeping the cached data related to it is no longer necessary. This is done automatically if the instance is unregistered and autodispose_unregistered_instances of Writer Data Lifecycle QoS is set to true. This can also be done manually using dispose method on DataWriter.

Domain#

Domains are sets of DomainParticipant that can interact with one another. To interact they must share the same domain identifier and must have compatible discovery and transport.

DomainParticipant#

DomainParticipant is an Entity that is used to create and manage Publishers and Subscribers.

Entity#

Entity is the abstract base class for the main classes in the DDS/DCPS API, including DataReader and DataWriter. All entities have QoS and can accept Listeners and Conditions.

Instance#

In the specific context of DDS and samples, instances refer to a set of samples that share a common key value. Many parts of the DDS API involve instances, including the dispose and unregister operations.

See Keys for more information.

Interface Definition Language#
IDL#

IDL, specifically OMG IDL, is a C-like language for describing data-structures and interfaces. In OpenDDS opendds_idl and tao_idl are used to generate code from IDL.

Listener#

Listeners are a method of being notified of events from entities, such a new sample being available from a DataReader, via asynchronous callbacks.

See Conditions and Listeners for more information.

Makefile, Project, and Workspace Creator#
MPC#
mwc.pl#
mpc.pl#

A build-system that generates GNU Makefiles, Visual Studio projects, and other such files. It serves the same role that CMake, Meson, and Automake do in other projects.

See MPC for more information.

Object Management Group#
OMG#

A standards organization which publishes DDS and the other specifications used by OpenDDS.

See https://www.omg.org/ for more information.

opendds_idl#

A program that generates C++ code from IDL for use in OpenDDS.

Publisher#

Publisher is an Entity that is used to create and manage DataWriters.

Quality of Service#
QoS#

QoS is a set of requested policies for how entities should behave.

See Quality of Service for more information.

Real-time Publish-Subscribe#
RTPS#

RTPS, sometimes also called DDSI-RTPS, is a specification that defines how different DDS implementations can interact with one another.

See Real-time Publish-Subscribe (RTPS) for more information.

Sample#

Samples are the messages sent from DataWriters and received by DataReaders.

Subscriber#

Subscriber is an Entity that is used to create and manage DataReaders.

tao_idl#

A program that is part of TAO that generates C++ code from IDL for use in TAO and OpenDDS.

The ACE ORB#
TAO#

TAO is a CORBA implementation that is maintained alongside ACE. OpenDDS uses it for InfoRepo discovery and tao_idl.

See TAO for more information.

Topic#

A Topic is an Entity with a name and a type that the system uses to figure out which DataReaders get a sample from a DataWriter.

Topic type#

A topic type, sometimes also called a data type, is the IDL type of a topic and also type of the samples of the DataWriters and DataReaders that use that topic.

Transport#

Transports are the configurable methods that DataWriters and DataReaders use to communicate.

Unregister#

When an instance is unregistered by a DataWriter, it means the writer “no longer has ‘anything to say’ about the instance”, as phrased by the DDS specification. This is similar, but separate from disposing an instance. They are usually done at the same time, but this can be changed using Writer Data Lifecycle QoS and the unregister_instance method of DataWriter to make what unregister means application-defined.

XTypes#
Extensible and Dynamic Topic Types for DDS#

XTypes is an OMG specification that defines how DDS systems can have topic types that can evolve over time and be used without defining IDL.

See Extensible and Dynamic Topic Types for DDS (XTypes) and XTypes for more information.

Environment Variables#

ACE_ROOT#

The path of the ACE source tree or installation prefix being used.

DDS_ROOT#

The path of the OpenDDS source tree or installation prefix being used.

TAO_ROOT#

The path of the TAO source tree or installation prefix being used.

OPENDDS_CONFIG_DIR#

Makes -DCPSConfigFile paths relative to the path in the environment variable.

See here for more information.