Content deleted Content added
Reverted to revision 890925997 by 192.54.144.229 (talk): Better (less promotional) before (TW) |
No edit summary |
||
Line 1:
{{third-party|date=July 2014}}
The '''Data Distribution Service'''
DDS addresses the needs of applications like aerospace and defense, [[air-traffic control]], [[autonomous vehicles]], medical devices, robotics, power generation, simulation and testing, [[smart grid]] management, transportation systems, and other applications that require real-time data exchange.
== History ==▼
Development of the DDS specification started in 2001. It was developed by Real-Time Innovations, a US government contractor, and [[Thales Group]], a French defense company. In 2004, the [[Object Management Group]] (OMG) published DDS version 1.0.<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.0 |date= December 2, 2004 |publisher= Object Management Group |url= http://www.omg.org/spec/DDS/1.0 |accessdate= November 9, 2016 }}</ref> Version 1.1 was published in December 2005,<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.1 |date= December 4, 2005 |url= http://www.omg.org/spec/DDS/1.1 |accessdate= November 9, 2016 }}</ref> 1.2 in January 2007,<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.2 |date= January 1, 2007 |url= http://www.omg.org/spec/DDS/1.2 |accessdate= November 9, 2016 }}</ref> and 1.4 in April 2015.<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.4 |date= April 10, 2015 |url= http://www.omg.org/spec/DDS/1.4 |accessdate= November 9, 2016 }}</ref>▼
DDS is covered by several US patents,<ref>[https://www.google.com/patents/US8874686 US Patent US8874686]</ref><ref>[http://www.google.com/patents/US8671135 US Patent US8671135]</ref><ref>[http://www.google.com/patents/US8150988 US Patent US8150988]</ref><ref>[http://www.google.com/patents/US9015672 US Patent US9015672]</ref> among others.▼
The DDS specification describes two levels of interfaces:▼
* A lower data-centric publish-subscribe (DCPS) level that is targeted towards the efficient delivery of the proper information to the proper recipients.▼
* An optional higher data local reconstruction layer (DLRL), which allows for a simple integration of DDS into the [[application layer]].▼
Other related standards followed the initial core document.▼
The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification ensured that information published on a topic using one vendor's DDS implementation is consumable by one or more subscribers using the same or different vendor's DDS implementations. Although the specification is targeted at the DDS community, its use is not limited. Versions 2.0 was published in April 2008, version 2.1 in November 2010, and 2.2 in September 2014.<ref name="RtpsRef"/>▼
DDS for Lightweight [[CORBA Component Model|CCM]] (dds4ccm) offers an architectural pattern that separates the business logic from the non-functional properties. A 2012 extension added support for streams.<ref>DDS for Lightweight CCM (dds4ccm), Version 1.1, formal/2012-02-01, February 2012, http://www.omg.org/spec/dds4ccm/1.1/PDF/</ref>▼
A Java 5 Language PSM for DDS defined a Java 5 language binding, referred to as a Platform Specific Model (PSM) for DDS. It specified only the Data-Centric Publish-Subscribe (DCPS) portion of the DDS specification; Additionally, it encompasses the DDS APIs introduced by DDS-XTypes and DDS-CCM.▼
DDS-PSM-Cxx defines the ISO/IEC C++<ref>Programming languages — C++, 15 October 2003, ISO/IEC 14882, http://www.iso.org/iso/catalogue_detail.htm?csnumber=38110</ref> PSM language binding, referred to as a Platform Specific Model (PSM) for DDS. It provides a new C++ API for programming DDS that is more natural to a C++ programmer.<ref>DDS-PSM-Cxx: ISO/IEC C++ 2003 Language DDS PSM, Version ptc/2011-01-02, January 2011, http://www.omg.org/spec/DDS-PSM-Cxx/1.0/Beta1/PDF</ref>▼
The specification provides mappings for the [[application programming interface]] (API) specified in DDS-XTypes, and accessing [[quality of service]] (QoS) profiles specified in DDS-CCM.▼
Extensible and Dynamic Topic Types for DDS (DDS-XTypes) provided support for data-centric publish-subscribe communication where topics are defined with specific data structures. To be ''extensible'', DDS topics use data types defined before compile time and used throughout the DDS global data space. This model is desirable when static type checking is useful.<ref>Extensible and Dynamic Topic Types for DDS (DDS-XTypes), 1.0, formal/2012-11-10, November 2012, http://www.omg.org/spec/DDS-XTypes/1.0/PDF</ref>▼
A [[Unified Modeling Language]] (UML) profile specified DDS domains and topics to be part of analysis and design modeling.<ref>UML Profile for Data Distribution, version: 1.0, http://www.omg.org/cgi-bin/doc?ptc/10-05-17.pdf </ref> This specification also defined how to publish and subscribe objects without first describing the types in another language, such as XML or OMG IDL.<ref>DDS-Java: Java 5 Language PSM for DDSVersion 1.0, ptc/2012-12-01, March 2013 http://www.omg.org/spec/DDS-Java/1.0/Beta3/PDF</ref>▼
An [[interface definition language]] (IDL) was specified in 2014 independently from the [[Common Object Request Broker Architecture]] (CORBA) specification chapter 3. This IDL 3.5 was compatible with the CORBA 3 specification, but extracted as its own specification so that it can evolve independently from CORBA.<ref>{{Cite web |title= Interface Definition Language (IDL), Version 3.5 |date= March 1, 2014 |publisher= OMG |url= http://www.omg.org/spec/IDL35/3.5/ |accessdate= November 9, 2016 }}</ref>▼
Starting with DDS version 1.4 in 2015, the optional DLRL layer was moved to a separate specification.<ref>{{Cite web |title= DDS Data Local Reconstruction Layer (DDS-DLRL) |date= April 2015 |url= http://www.omg.org/spec/DDS-DLRL/ |accessdate= November 9, 2016 }}</ref>▼
== Architecture ==
Line 33 ⟶ 13:
DDS supports mechanisms that go beyond the basic publish-subscribe model. The key benefit is that applications that use DDS for their communications are decoupled. Little design time needs be spent on handling their mutual interactions. In particular, the applications never need information about the other participating applications, including their existence or locations. DDS transparently handles message delivery without requiring intervention from the user applications, including:
* determining who should receive the messages
* where recipients are located
Line 43 ⟶ 24:
Both commercial and [[open-source software]] implementations of DDS are available. These include [[application programming interface]]s (APIs) and libraries of implementations in [[Ada (programming language)|Ada]], [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Scala (programming language)|Scala]], [[Lua (programming language)|Lua]], [[Pharo]] and [[Ruby (programming language)|Ruby]].
DDS vendors participated in interoperability demonstrations at the OMG Spring technical meetings from 2009 to 2013.<ref name="2009DemoNotes">{{Cite web
During demos, each vendor published and subscribed to each other's topics using a test suite called the shapes demo. For example, one vendor publishes information about a shape and the other vendors can subscribe to the topic and display the results on their own shapes display. Each vendor takes turns publishing the information and the other subscribe.
Two things made the demos possible: the DDS-I or Real-Time Publish-Subscribe (RTPS) protocol,<ref name="RtpsRef">{{Cite web
[[File:Notional OMG DDS Interoperability.jpg|thumb|upright=2.4|OMG Data Distribution Service interoperability]]
In March 2009, three vendors demonstrated interoperability between the individual, independent products that implemented the OMG Real-time Publish-Subscribe protocol version 2.1 from January 2009. The demonstration included the discovery of each other's publishers and subscribers on different OS Platforms ([[Microsoft Windows]] and [[Linux]]) and supported [[multicast]] and [[unicast]] network communications.<ref name="2009DemoNotes" />
The DDS interoperability demonstration used scenarios such as:
Line 55 ⟶ 36:
* Basic connectivity to network using [[Internet Protocol]] (IP)
* Discovery of publishers and subscribers
* Quality of service (QoS) Compatibility between requester and offerer
* Delay-tolerant networking
* Multiple topics and instances of topics
* Exclusive ownerships of topics
* Content filtering of topic data including time and geographic
▲== History ==
▲Development of the DDS specification started in 2001. It was developed by Real-Time Innovations, a US government contractor, and [[Thales Group]], a French defense company. In 2004, the [[Object Management Group]] (OMG) published DDS version 1.0.<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.0 |date= December 2, 2004 |publisher= Object Management Group |url= http://www.omg.org/spec/DDS/1.0 |accessdate= November 9, 2016 }}</ref> Version 1.1 was published in December 2005,<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.1 |date= December 4, 2005 |url= http://www.omg.org/spec/DDS/1.1 |accessdate= November 9, 2016 }}</ref> 1.2 in January 2007,<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.2 |date= January 1, 2007 |url= http://www.omg.org/spec/DDS/1.2 |accessdate= November 9, 2016 }}</ref> and 1.4 in April 2015.<ref>{{Cite web |title= Data Distribution Service (DDS), Version 1.4 |date= April 10, 2015 |url= http://www.omg.org/spec/DDS/1.4 |accessdate= November 9, 2016 }}</ref>
▲DDS is covered by several US patents,<ref>[https://www.google.com/patents/US8874686 US Patent US8874686]</ref><ref>[http://www.google.com/patents/US8671135 US Patent US8671135]</ref><ref>[http://www.google.com/patents/US8150988 US Patent US8150988]</ref><ref>[http://www.google.com/patents/US9015672 US Patent US9015672]</ref> among others.
▲The DDS specification describes two levels of interfaces:
▲* A lower data-centric publish-subscribe (DCPS) level that is targeted towards the efficient delivery of the proper information to the proper recipients.
▲* An optional higher data local reconstruction layer (DLRL), which allows for a simple integration of DDS into the [[application layer]].
▲Other related standards followed the initial core document.
▲The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification ensured that information published on a topic using one vendor's DDS implementation is consumable by one or more subscribers using the same or different vendor's DDS implementations. Although the specification is targeted at the DDS community, its use is not limited. Versions 2.0 was published in April 2008, version 2.1 in November 2010, and 2.2 in September 2014.<ref name="RtpsRef"/>
▲DDS for Lightweight [[CORBA Component Model|CCM]] (dds4ccm) offers an architectural pattern that separates the business logic from the non-functional properties. A 2012 extension added support for streams.<ref>DDS for Lightweight CCM (dds4ccm), Version 1.1, formal/2012-02-01, February 2012, http://www.omg.org/spec/dds4ccm/1.1/PDF/</ref>
▲A Java 5 Language PSM for DDS defined a Java 5 language binding, referred to as a Platform Specific Model (PSM) for DDS. It specified only the Data-Centric Publish-Subscribe (DCPS) portion of the DDS specification; Additionally, it encompasses the DDS APIs introduced by DDS-XTypes and DDS-CCM.
▲DDS-PSM-Cxx defines the ISO/IEC C++<ref>Programming languages — C++, 15 October 2003, ISO/IEC 14882, http://www.iso.org/iso/catalogue_detail.htm?csnumber=38110</ref> PSM language binding, referred to as a Platform Specific Model (PSM) for DDS. It provides a new C++ API for programming DDS that is more natural to a C++ programmer.<ref>DDS-PSM-Cxx: ISO/IEC C++ 2003 Language DDS PSM, Version ptc/2011-01-02, January 2011, http://www.omg.org/spec/DDS-PSM-Cxx/1.0/Beta1/PDF</ref>
▲The specification provides mappings for the [[application programming interface]] (API) specified in DDS-XTypes, and accessing [[quality of service]] (QoS) profiles specified in DDS-CCM.
▲Extensible and Dynamic Topic Types for DDS (DDS-XTypes) provided support for data-centric publish-subscribe communication where topics are defined with specific data structures. To be ''extensible'', DDS topics use data types defined before compile time and used throughout the DDS global data space. This model is desirable when static type checking is useful.<ref>Extensible and Dynamic Topic Types for DDS (DDS-XTypes), 1.0, formal/2012-11-10, November 2012, http://www.omg.org/spec/DDS-XTypes/1.0/PDF</ref>
▲A [[Unified Modeling Language]] (UML) profile specified DDS domains and topics to be part of analysis and design modeling.<ref>UML Profile for Data Distribution, version: 1.0, http://www.omg.org/cgi-bin/doc?ptc/10-05-17.pdf </ref> This specification also defined how to publish and subscribe objects without first describing the types in another language, such as XML or OMG IDL.<ref>DDS-Java: Java 5 Language PSM for DDSVersion 1.0, ptc/2012-12-01, March 2013 http://www.omg.org/spec/DDS-Java/1.0/Beta3/PDF</ref>
▲An [[interface definition language]] (IDL) was specified in 2014 independently from the [[Common Object Request Broker Architecture]] (CORBA) specification chapter 3. This IDL 3.5 was compatible with the CORBA 3 specification, but extracted as its own specification so that it can evolve independently from CORBA.<ref>{{Cite web |title= Interface Definition Language (IDL), Version 3.5 |date= March 1, 2014 |publisher= OMG |url= http://www.omg.org/spec/IDL35/3.5/ |accessdate= November 9, 2016 }}</ref>
▲Starting with DDS version 1.4 in 2015, the optional DLRL layer was moved to a separate specification.<ref>{{Cite web |title= DDS Data Local Reconstruction Layer (DDS-DLRL) |date= April 2015 |url= http://www.omg.org/spec/DDS-DLRL/ |accessdate= November 9, 2016 }}</ref>
== See also ==
* [[Middleware]]
* [[Open architecture computing environment]]
|