30
What can DDS do for you? January 2012 1

What Can DDS Do For You?

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: What Can DDS Do For You?

1

What can DDS do for you?January 2012

Page 2: What Can DDS Do For You?

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

Page 3: What Can DDS Do For You?

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?

Page 4: What Can DDS Do For You?

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

Page 5: What Can DDS Do For You?

Aerospace and Defense Cloud Computing Communications Consumer Electronics Energy Financial Healthcare Simulation Transportation Unmanned Vehicles

Industries Implementing DDS

Page 6: What Can DDS Do For You?

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

Page 7: What Can DDS Do For You?

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

Page 8: What Can DDS Do For You?

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

Page 9: What Can DDS Do For You?

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

Page 10: What Can DDS Do For You?

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

Page 11: What Can DDS Do For You?

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

Page 12: What Can DDS Do For You?

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

Page 13: What Can DDS Do For You?

  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

Page 14: What Can DDS Do For You?

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

Page 15: What Can DDS Do For You?

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)

Page 16: What Can DDS Do For You?

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.

Page 17: What Can DDS Do For You?

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

Page 18: What Can DDS Do For You?

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

Page 19: What Can DDS Do For You?

CoreDX DDS offers High Performance: CoreDX DDS provides exceptionally low latency and sustained high throughput numbers across all supported hardware architectures.

CoreDX DDS Advantages

Page 20: What Can DDS Do For You?

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

Page 21: What Can DDS Do For You?

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

Page 22: What Can DDS Do For You?

CoreDX DDS has proven vendor interoperability: CoreDX DDS can exchange data and communicate with every other implementation of DDS.

CoreDX DDS Advantages

Page 23: What Can DDS Do For You?

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

Page 24: What Can DDS Do For You?

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

Page 25: What Can DDS Do For You?

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

Page 26: What Can DDS Do For You?

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

Page 27: What Can DDS Do For You?

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

Page 28: What Can DDS Do For You?

Using DDS for data communications between distributed applications provides a

number of benefits over other traditional data communication solutions. Dynamic DiscoveryStrong Type SafetyQoS policiesInteroperabilityPerformance

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

Page 29: What Can DDS Do For You?

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