eProsima Fast DDS is a C++ implementation of theDDS (Data Distribution Service) Specification, a protocoldefined by the Object Management Group (OMG).The eProsima Fast DDS library provides both an Application Programming Interface (API) and a communication protocolthat deploya Data-Centric Publisher-Subscriber (DCPS) model, with the purpose of establishing efficient and reliableinformation distribution among Real-Time Systems.eProsima Fast DDS is predictable, scalable, flexible, and efficient in resource handling.For meeting these requirements, it makes use of typed interfaces and hinges on a many-to-manydistributed network paradigm that neatly allows separation of the publisher and subscriber sides of the communication.eProsima Fast DDS comprises:
The DDS API implementation.
Fast DDS-Gen, a generation tool for bridging typed interfaces with the middlewareimplementation.
The underlying RTPS wire protocol implementation.
Operating System: OS X 10.11 (El Capitan), OS X 10.12 (Sierra), Mac OS X 10.13 High Sierra and Mac OS X 10.14 Mojave Only genuine versions of Mac Operating Systems are supported. CPU: Intel processor. Recommended software programs are sorted by OS platform (Windows, macOS, Linux, iOS, Android etc.) and possible program actions that can be done with the file: like open dds file, edit dds file, convert dds file, view dds file, play dds file etc. (if exist software for corresponding action in File-Extensions.org's database). Operating System: OS X 10.11 (El Capitan), OS X 10.12 (Sierra), Mac OS X 10.13 High Sierra and Mac OS X 10.14 Mojave Only genuine versions of Mac Operating Systems are supported. CPU: Intel processor.
UPDATED Video HERE ( no background musin + better audio ) to clone Mac OS X El Capitan to other/new HDD o. DDS-3 is the third-generation of DAT backup formats, and both drives and media are manufactured by multiple companies. We tested each drive in a Power Macintosh G3/400MHz with Mac OS 9, 128MB.
For all the above, eProsima Fast DDS has been chosen as the default middleware supported by theRobot Operating System 2 (ROS 2).
The communication model adopted by DDS is a many-to-many unidirectional data exchange where the applications thatproduce the data publish it to the local caches of subscribers belonging to applications that consume the data.The information flow is regulated by Quality of Service (QoS) policies established between the entities incharge of the data exchange.
As a data-centric model, DDS builds on the concept of a “global data space” accessible to all interested applications.Applications that want to contribute information declare their intent to become publishers, whereas applications thatwant to access portions of the data space declare their intent to become subscribers.Each time a publisher posts new data into this space, the middleware propagates the information to allinterested subscribers.
The communication happens across domains, i. e. isolated abstract planes that link all the distributed applicationsable to communicate with each other.Only entities belonging to a same domain can interact, and the matching between entities subscribing to data andentities publishing them is mediated by topics. Topics are unambiguous identifiers that associate aname, which is unique in the domain, to a data type and a set of attached data-specific QoS.
DDS entities are modeled either as classes or typed interfaces.The latter imply a more efficient resource handling as knowledge of the datatype prior to the execution allows allocating memory in advance rather than dynamically.
Conceptual diagram of how information flows within DDS domains.Only entities belonging to the same domain can discover eachother through matching topics, and consequently exchange data between publishers and subscribers.¶
Relying on interfaces implies the need for a generation tool that translates type descriptions into appropriateimplementations that fill the gap between the interfaces and the middleware.This task is carried out by a dedicated generation tool, Fast DDS-Gen, a Java applicationthat generates source code using the data types defined in anInterface Definition Language (IDL) file.
The protocol used by eProsima Fast DDS to exchange messages over standard networks is the Real-TimePublish-Subscribe protocol (RTPS), an interoperability wireprotocol for DDS defined and maintained by the OMGconsortium.This protocol provides publisher-subscriber communications over transports such as TCP/UDP/IP, and guaranteescompatibility among different DDS implementations.
Given its publish-subscribe roots and its specification designed for meeting the same requirements addressed by the DDSapplication domain, the RTPS protocol maps to many DDS concepts and is therefore a natural choice for DDSimplementations.All the RTPS core entities are associated with an RTPS domain, which represents an isolated communication plane whereendpoints match.The entities specified in the RTPS protocol are in one-to-one correspondence with the DDS entities, thus allowingthe communication to occur.
Two API Layers.eProsima Fast DDS comprises a high-level DDS compliant layer focused on usability and alower-level RTPS compliant layer that provides finer access to the RTPS protocol.
Real-Time behaviour.eProsima Fast DDS can be configured to offer real-time features, guaranteeing responseswithin specified time constrains.
Built-in Discovery Server.eProsima Fast DDS is based on the dynamical discovery of existing publishers andsubscribers, and performs this task continuously without the need to contacting or setting any servers.However, a Client-Server discovery as well as other discovery paradigms can also be configured.
Sync and Async publication modes.eProsima Fast DDS supports both synchronous and asynchronous data publication.
Best effort and reliable communication.eProsima Fast DDS supports an optional reliable communication paradigmover Best Effort communications protocolssuch as UDP. Furthermore, another way of setting a reliable communication is to use our TCP transport.
Transport layers.eProsima Fast DDS implements an architecture of pluggable transports. The current versionimplements five transports: UDPv4, UDPv6, TCPv4, TCPv6 and SHM (shared memory).
Security.eProsima Fast DDS can be configured to provide secure communications. For this purpose, it implementspluggable security at three levels: authentication of remote participants, access control of entities and encryptionof data.
Statistics Module.eProsima Fast DDS can be configured to gather and provide informationabout the data being exchanged by the user application.
Throughput controllers. We support user-configurable throughput controllers, that can be used to limit the amountof data to be sent under certain conditions.
Plug-and-play Connectivity. New applications and services are automatically discovered, and can join and leavethe network at any time without theneed for reconfiguration.
Scalability and Flexibility. DDS builds on the concept of a global data space. The middleware is in charge ofpropagating the information between publishers and subscribers. This guarantees that the distributed network isadaptable to reconfigurations and scalable to a large number of entities.
Application Portability. The DDS specification includes a platform specific mapping to IDL, allowing anapplication using DDS to switch among DDS implementations with only a re-compile.
Extensibility.eProsima Fast DDS allows the protocol to be extended and enhanced with new services withoutbreaking backwards compatibility and interoperability.
Configurability and Modularity.eProsima Fast DDS provides an intuitive way to be configured, either throughcode or XML profiles. Modularity allows simple devices to implement a subset of the protocol and still participate inthe network.
High performance.eProsima Fast DDS uses a static low-level serialization library,Fast CDR,a C++ library that serializes according to the standard CDR serialization mechanism defined in the RTPSSpecification (see the Data Encapsulation chapter as a reference).
Easy to use. The project comes with an out-of-the-box example, the DDSHelloWorld(see Getting Started) that puts into communication apublisher and a subscriber, showcasing how eProsima Fast DDS is deployed.Additionally, the interactive demo ShapesDemo is available for the user to dive into the DDS world.The DDS and the RTPS layers are thoroughly explained in the DDS Layer andRTPS Layer sections.
Low resources consumption.eProsima Fast DDS:
Allows to preallocate resources, to minimize dynamic resource allocation.
Avoids the use of unbounded resources.
Minimizes the need to copy data.
Multi-platform. The OS dependencies are treated as pluggable modules.Users may easily implement platform modules using the eProsima Fast DDS library on their target platforms.By default, the project can run over Linux, Windows and MacOS.
Free and Open Source. The Fast DDS library, the underneath RTPS library, the generator tool, the internaldependencies (such as eProsima Fast CDR) and the external ones (such as the foonathan library) are free andopen source.
Find more about us at eProsima’s webpage.
Support available at:
Email: support@eprosima.com
Phone: +34 91 804 34 48
Fast DDS-Docs is an open source project, and as such all contributions, both in the form of feedback and contentgeneration, are most welcomed.To make such contributions, please refer to theContribution Guidelines hosted in our GitHub repository.
This documentation is organized into the sections below.