Data Distribution Service: Difference between revisions
m →DDS Vendors: open dds is pretty much dead |
No edit summary |
||
Line 1: | Line 1: | ||
'''Data Distribution Service''' ('''DDS''') is a specification of a [[publish/subscribe]] middleware for [[distributed system]]s created in response to the need to augment [[CORBA]] with a data-centric publish-subscribe specification. Few proprietary DDS solutions has been available |
'''Data Distribution Service''' ('''DDS''') is a specification of a [[publish/subscribe]] middleware for [[distributed system]]s created in response to the need to augment [[CORBA]] with a data-centric publish-subscribe specification. Few proprietary DDS solutions has been available for several years, until 2004 when the two major DDS vendors, the American [http://www.rti.com Real-Time Innovations] and the French [http://www.thalesgroup.com Thales] teamed up together to create the DDS specifications that has been approved by the [[Object Management Group]] |
||
== How it works == |
== How it works == |
||
Line 18: | Line 18: | ||
== DDS Vendors == |
== DDS Vendors == |
||
*[http://www.rti.com/products/ndds/ NDDS] — [[COTS]] [[real-time]] DDS API in C, C++, Java for multiple platforms, including [[embedded system]]s. |
*[http://www.rti.com/products/ndds/ NDDS] — [[COTS]] [[real-time]] DDS API in C, C++, Java for multiple platforms, including [[embedded system]]s from Real-Time Innovations, Inc. |
||
*[http://www.prismtech.com/section-item.asp?sid4=&sid3=&sid2=55&sid=18&id=324 SPLICE DDS] — commercial [[COTS]] DDS implementation from PrismTech and Thales. |
*[http://www.prismtech.com/section-item.asp?sid4=&sid3=&sid2=55&sid=18&id=324 SPLICE DDS] — commercial [[COTS]] DDS implementation from PrismTech and Thales. |
||
*[http://www.ociweb.com/products/dds DDS for TAO] — [[Open Source]] DDS implementation from OCI based on the ACE/TAO framework (built on top of CORBA). |
|||
== See also == |
== See also == |
||
Line 29: | Line 30: | ||
*[http://www.prismtech.com/section-item.asp?sid4=&sid3=221&sid2=55&sid=18&id=460 Data Distribution Service DDS links and resources] — Information and links on the Data Distribution Service (DDS) including presentations and specifications. |
*[http://www.prismtech.com/section-item.asp?sid4=&sid3=221&sid2=55&sid=18&id=460 Data Distribution Service DDS links and resources] — Information and links on the Data Distribution Service (DDS) including presentations and specifications. |
||
<!-- |
|||
{{compu-stub}} |
{{compu-stub}} |
||
--> |
|||
[[Category:Distributed computing]] |
[[Category:Distributed computing]] |
Revision as of 02:09, 9 March 2006
Data Distribution Service (DDS) is a specification of a publish/subscribe middleware for distributed systems created in response to the need to augment CORBA with a data-centric publish-subscribe specification. Few proprietary DDS solutions has been available for several years, until 2004 when the two major DDS vendors, the American Real-Time Innovations and the French Thales teamed up together to create the DDS specifications that has been approved by the Object Management Group
How it works
DDS is networking middleware that simplifies complex network programming. It implements a publish/subscribe model for sending and receiving data, events, and commands among the nodes. Nodes that are producing information (publishers) create "topics" (e.g., temperature, location, pressure) and publish "samples." DDS takes care of delivering the sample to all subscribers that declare an interest in that topic.
DDS handles all the transfer chores: message addressing, data marshaling and demarshalling (so subscribers can be on different platforms than the publisher), delivery, flow control, retries, etc. Any node can be a publisher, subscriber, or both simultaneously.
The DDS publish-subscribe model virtually eliminates complex network programming for distributed applications.
DDS supports mechanisms that go beyond the basic publish-subscribe model. The key benefit is that applications that use DDS for their communications are entirely decoupled. Very little design time has to be spent on how to handle their mutual interactions. In particular, the applications never need information about the other participating applications, including their existence or locations. DDS automatically handles all aspects of message delivery, without requiring any intervention from the user applications, including:
- determining who should receive the messages,
- where recipients are located,
- what happens if messages cannot be delivered.
This is made possible by the fact that DDS allows the user to specify Quality of Service (QoS) parameters as a way to configure automatic-discovery mechanisms and specify the behavior used when sending and receiving messages. The mechanisms are configured up-front and require no further effort on the user's part. By exchanging messages in a completely anonymous manner, DDS greatly simplifies distributed application design and encourages modular, well-structured programs.
DDS also automatically handles hot-swapping redundant publishers if the primary fails. Subscribers always get the sample with the highest priority whose data is still valid (that is, whose publisher-specified validity period has not expired). It automatically switches back to the primary when it recovers, too. DDS is available from different vendors with C, C++ and Java APIs.
DDS Vendors
- NDDS — COTS real-time DDS API in C, C++, Java for multiple platforms, including embedded systems from Real-Time Innovations, Inc.
- SPLICE DDS — commercial COTS DDS implementation from PrismTech and Thales.
- DDS for TAO — Open Source DDS implementation from OCI based on the ACE/TAO framework (built on top of CORBA).
See also
External links
- Data Distribution Service for Real-time Systems, v1.0
- DDS resources — General information on DDS, whitepapers, training materials, links to the latest version of DDS and related specifications.
- Data Distribution Service DDS links and resources — Information and links on the Data Distribution Service (DDS) including presentations and specifications.