The Data Distribution Service (DDS) technology may not be as well known or understood as other middleware communications technologies like Corba, JMS, Web Services or even traditional sockets that are key components of nearly all distributed applications. Developers everywhere are familiar with these conventional data communications solutions, and may be comfortable customizing them to their particular domain and application. However, the flexibility and configurability of DDS makes it a better solution for applications in a wide variety of industries, from enterprise servers to deeply embedded applications.
This paper focuses on the DDS technology in embedded environments and compares it with Sockets, Corba, JMS, and SOA Web Services.
2. The Data Distribution Service (DDS) technology may not
be as well known or understood as other middleware
communications technologies like Corba, JMS, Web
Services or even traditional sockets that are key
components of nearly all distributed applications.
The flexibility and configurability of DDS makes it a better
solution for applications in a wide variety of industries,
from enterprise servers to deeply embedded applications.
This paper focuses on the DDS technology in embedded
environments and compares it with Sockets, Corba, and
JMS Web Services.
Abstract
3. DDS, the Data Distribution
Service, is a data
communications standard
managed by the OMG
(http://www.omg.org) that
describes low-latency data
communications for
distributed applications.
There are currently several
commercial and open source
implementations of the DDS
standard available for use,
including products built for
and targeting embedded
communications.
What is DDS?
4. Easy to use, well defined Application
Programming Interface (API), which allows for
portable code
References the Real Time Publish Subscribe
(RTPS) Wire Protocol, which allows for
interoperability
DDS is a peer-to-peer communication model
requiring no gateways, servers, or daemons that
must be run or configured.
Each application that will communicate over DDS
contains the DDS API and provides the discovery,
and other required communication details.
DDS Standard
6. Publish Subscribe Architecture
DDS provides a flexible publish subscribe architecture, promoting a loose
coupling between data architecture that is flexible and dynamic; it is easy to
adapt and extend DDS based systems to changing environments and
requirements.
Strengths of DDS
7. Publish/Subscribe System
An application may be a publisher of data, a
subscriber of data, or both a publisher and subscriber.
An application may participate in multiple Domains
and include multiple publishers and subscribers.
Strengths of DDS
8. Dynamic Discovery
The application does not have to know
or configure the endpoints for
communications because they are
automatically discovered by DDS.
DDS will discover if the endpoint is
publishing data, subscribing to data, or
both. It will discover the type of data
being published or subscribed to. It
will also discover the publisher’s
offered communication characteristics
and the subscriber’s requested
communications characteristics.
DDS participants can be on the same
machine or across a network: the
application uses the same DDS API for
communications.
Strengths of DDS
9. Strong Type Safety
DDS provides strong type
safety by requiring the
application to specify the
types of data used for
communications. The
application then reads and
writes typed data.
This allows for more errors
to be caught early in the
development cycle,
reducing development
costs.
Strengths of DDS
10. QoS Policies
DDS provides a rich set of
Quality of Service (QoS)
policies to tailor the
behavior of
communications.
QoS policies affect
reliability, performance,
persistence of data, and
amount of system
resources used.
QoS policies set DDS
apart from all other
communication
middleware solutions.
Strengths of DDS
11. Interoperability
DDS Interoperability is the ability of DDS implementations
from different vendors to communicate.
Not all DDS implementations are interoperable, however,
CoreDX DDS can exchange data and communicate with
every other implementation of DDS.
Strengths of DDS
12. Performance
DDS is a low-latency high
performance communication
architecture
DDS has a compact data
encoding on the wire, light-
weight notification mechanisms,
and the ability for the application
to specify resources limits:
allowing DDS to pre-allocate
memory and reduce the number
of memory allocations during
run-time.
DDS implementations are
efficient, low-overhead, and high-
performance.
Strengths of DDS
13. The architecture between the TCP Sockets API and DDS is
fundamentally different:
TCP Sockets are connection oriented, a point-to-point, client-server
architecture. This requires that clients and servers know each other’s
location in order to connect.
DDS has a publish-subscribe architecture .
With DDS, the development of distributed applications is simplified.
DDS provides a common API regardless of operating system or hardware
architecture.
DDS handles the discovery and management of remote endpoints.
DDS handles the details of communication behaviors like filtering, reliability,
durability, saving historical data, detecting deadline misses and changes in
liveliness, and many more.
DDS provides low-latency, high-throughput data communications. DDS can
run in resource constrained environments, and can also be easily ported to
run on and use custom hardware and operating systems.
DDS vs. Sockets API
14. The CORBA and DDS technologies are both
Open standards managed by the OMG (however,
DDS vendors have shown a unique cooperation in
testing and demonstrating inter-product
interoperability). Both employ client-server
middleware, based on remote procedure calls, or
“remote invocations” in CORBA terminology.
CORBA provides a layer of abstraction using an
Object Request Broker (ORB) to manage
connections, and Clients and Servers need to
know about each other directly or use a Naming
Service.
DDS vs. CORBA
15. Java Messaging Service (JMS) and DDS are both
publish-subscribe middleware technologies.
JMS uses a server for communications that must be
configured with the queues or topics that will be
used. Each application participating in JMS
communications must connect to a JMS server. The
JMS server handles the details of connecting
publishers and subscribers.
DDS does not require any servers or daemons: DDS
handles discovery and management of endpoints in
each DDS application. Using DDS eliminates the
need for a server, reducing complexity.
DDS vs. Java Messaging
Service (JMS)
16. The Twin Oaks Advantage
There are a number of factors that contribute to the complexity of a software
system, all of which increase schedule budget and risk. Using a
communications middleware reduces system complexity, making this line of
increasing complexity a linear one. CoreDX DDS
further reduces this complexity with advanced features.
17. Small Footprint: With a
small footprint and full
Quality of Service
coverage, CoreDX DDS
is designed specifically to
meet the performance
and complexity
requirements of real-time,
embedded, time-critical,
and mission-critical
applications, while still
being small in size and
conservative in memory
usage.
CoreDX DDS Advantages
18. Small Source Code
Baseline: CoreDX DDS
is well designed and
compact with a low line of
code count. Code bloat
results in in-efficient code,
code that is more likely to
contain errors, and code
that is harder to extend,
maintain, and port to
additional platforms.
CoreDX DDS Advantages
19. CoreDX DDS offers
High Performance:
CoreDX DDS
provides
exceptionally low
latency and sustained
high throughput
numbers across all
supported hardware
architectures.
CoreDX DDS Advantages
20. CoreDX DDS is highly
scalable: CoreDX DDS
has the ability to
communicate data to
thousands of subscribers
without requiring high
powered machines or
typical desktop memory
resources. This allows the
network to scale to large
numbers of DDS entities
while conserving run-time
memory resources.
CoreDX DDS Advantages
21. CoreDX DDS supports
advanced reliable
communications
technology: CoreDX
DDS can easily be
employed reliably in
wireless and other
unreliable network
environments. CoreDX
DDS has lightweight,
reliable communications
protocols that have higher
efficiency and scalability
than TCP.
CoreDX DDS Advantages
22. CoreDX DDS has
proven vendor
interoperability:
CoreDX DDS can
exchange data and
communicate with
every other
implementation of
DDS.
CoreDX DDS Advantages
23. CoreDX DDS does not
have a single point of
failure: CoreDX DDS
does not require any
operating system services
or daemons. This eases
installation, deployment
and maintenance, and
eliminates the concern
that if one process fails,
so would all DDS
communications
CoreDX DDS Advantages
24. CoreDX DDS has
advanced support for
single and multi-core
architecture:
Applications running on
multi-core hardware can
take advantage of all
cores by simply using
CoreDX DDS for
communications. CoreDX
DDS can also be used in
single threaded mode to
improve performance on
smaller, single-core
hardware.
CoreDX DDS Advantages
25. Dynamic Types: CoreDX
DDS Dynamic Types
allows the run time
creation and
determination of DDS
topics and Data Types.
This technology eases
integration challenges,
enables flexible bridging
between disparate
systems, and reduces
static memory usage.
CoreDX DDS Advantages
26. CoreDX DDS supports multiple development
languages and environments:
Languages: C, C++, C#, and Java.
Operating Systems: Linux, Windows, Solaris,
QNX, VxWorks, NexusWare, LynxOS, Android.
Hardware Architectures: x86 (32 & 64 bit),
UltraSPARC, ARMv5, ARVMv7, PPC, MIPS,
Microblaze, FPGAs.
Transports: IP, VME, cPCI, Serial, and Xbee.
CoreDX DDS Advantages
27. CoreDX DDS is the leading small footprint implementation of Data Distribution
Standard (DDS)
CoreDX DDS has a small footprint and a small source code baseline
CoreDX DDS is well designed and compact with a low line of code count
CoreDX DDS has small run time requirements
CoreDX DDS offers high performance
CoreDX DDS is highly scalable
CoreDX DDS supports advanced reliable communications technology
CoreDX DDS has proven vendor interoperability
CoreDX DDS does not have a single point of failure
CoreDX DDS has advanced support for single and multi-core architecture
CoreDX DDS has dynamic types
CoreDX DDS supports multiple development languages and environments
Key Points
28. Using DDS for data communications between distributed applications
provides a number of benefits over other traditional data communication
solutions.
Dynamic Discovery
Strong Type Safety
QoS policies
Interoperability
Performance
While the DDS technology has been available for nearly two decades,
until recently these implementations required resources not available to
embedded application designers. Today, all the benefits of DDS are
available in a significantly smaller footprint, the perfect solution for not
only embedded environments, but also safety critical applications that
must certify every line of code.
Conclusion
29. Twin Oaks Computing, Inc. is a company dedicated to developing and delivering quality software
solutions. Our staff has extensive experience developing and supporting robust communication
architectures. We leverage this world-class technical experience to provide innovative and
useful communication software systems. We build the software that collects, manages, and
distributes information in a wide range of industries. Our software is in use around the world
supporting critical missions.
Equally important, our clients are amazed and totally satisfied with our super responsive customer
service. One of our early customers in China states,
“Twin Oaks Computing [provided] great porting work during very short period of time (each porting
for about 2-3 weeks). This made me really appreciate the portability framework of CoreDX
DDS.”
- Mr. Huang
“There is nothing I don’t like about working with Twin Oaks Computing. In particular, working with
Nina is a singular pleasure in today’s world of technical support - she is very responsive and
helpful.”
- Dr. Michael Mezzino
Super-small and blazingly fast, our flagship product, CoreDX DDS is the leading Publish-Subscribe
middleware available for small-footprint and embedded systems.
For more information please visit www.twinoakscomputing.com.
About
Twin Oaks Computing