SlideShare a Scribd company logo
1 of 35
Twin Oaks Computing, Inc.


CoreDX DDS
Technical Brief
                            Jul 2012
What is CoreDX DDS?

   CoreDX DDS is a Communications
    Middleware
     Eases development and deployment of
     Distributed Applications
     Supports interoperable communications
     High Throughput with Low Latency
     Insulates Application from Communication
     Details
CoreDX DDS Publish /
            Subscribe Middleware
   Message Oriented Middleware          DDS extends MOM concepts
     A Publisher Generates Data           Adds Strong Data Typing
     A Subscriber Accesses Data           Adds Quality of Service Policies
     The Middleware Manages the             ▪ Reliability / History / Durability /
       Connections and the Data                Filtering

   Publisher and Subscriber are           Formalized Standard (API and
                                            Wire Protocol)
    Loosely Coupled
                                             ▪ Portable / Interoperable between
                                               Vendors


                                              Subscriber
    Publisher

                            Data                     Subscriber
Publisher                   Topic
                                                  Subscriber
                   Data Type        QoS
CoreDX DDS Architecture

   DomainParticipant
     Associated with a
      Domain
     Communicates with
      other
      DomainParticipants in
      the same Domain
     Contains
      DataReaders,
      DataWriters, and
      Topics
 A DataWriter publishes data on a Topic
 A DataReader subscribes to a Topic
 Each Topic has a Defined Data Type
Standards Based Data
            Communication
   Object Management Group manages DDS standards:
     DDS API: Data Distribution Service
      ▪   Entities
      ▪   QoS Policies
      ▪   Asynchronous and Synchronous notifications
      ▪   Data Types
     DDS Language Bindings:
     DDS Wire Protocol: Real-Time Publish Subscribe (RTPS) Wire Protocol
      ▪ Discovery
      ▪ Reliability
      ▪ Data Encoding
     DDS-Related Technologies
      ▪ Extensible Types
      ▪ Web Enabled DDS (in work)
      ▪ DDS Security (in work)
Technical Features

Dynamic Discovery        Cross-platform
Reliability              Interoperability
Durability               Portability
Historical Data Caches   High Performance
Filtering                Highly Configurable
Ownership
CoreDX DDS Features:
          Dynamic Discovery

   DDS Dynamic Discovery is powerful and useful
     Built-in to all CoreDX DDS Applications
      ▪ CoreDX DDS applications publish and subscribe to data
        without configuring endpoints
      ▪ CoreDX DDS Entities do not require knowledge of other DDS
        Entities they may be communicating with
     Interoperable between DDS implementations
      ▪ Applications built on compliant DDS implementations will
        automatically discover each other
     Automatic
      ▪ No special configuration required
      ▪ Simply create DDS Entities
CoreDX DDS Features:
           Dynamic Discovery (cont)

   CoreDX DDS Applications (DomainParticipants)
     Automatically discover each other
     Exchange network information
      ▪ IP addresses for multicast and unicast data transfers
   Producers and Consumers (DataWriters, DataReaders)
     Automatically discover each other
     Exchange configuration information
     Determine if data exchange is appropriate
      ▪ Do Topics match?
      ▪ Do Data Types match?
      ▪ Do communication behavior expectations match?
     If so, enable data exchange
CoreDX DDS Features:
           Quality of Service Policies
   QoS Policies tailor the behavior of data
    communications
     What are the reliability requirements?
     How long is data saved for possible future
        publication or future access by the application?
        ▪ What are the storage requirements?
       What are the timing requirements?
       How should data be presented to subscribers?
       Should data be filtered?
       Are there redundancy or failover requirements?
   DDS specifies 22 distinct QoS Policies

                      Twin Oaks Computing, Inc. PROPRIETARY
CoreDX DDS Features:
           Efficient Reliability: Overview

   CoreDX DDS provides configurable Reliable
    data communications
     Even on unreliable networks (e.g. wireless)
     Using UDP (MULTICAST and UNICAST)

   CoreDX DDS Reliability Addresses
       Dropped Packets
       Out of Order Samples
       Communication Disconnects
       Application Re-Starts
CoreDX DDS Features:
              Efficient Reliability: Protocol

                       01      RELIABLE Guarantees:                            01
                       02                                                      02
        Data           03
                                • Delivery and Order               Data        03
        Writer         04                                         Reader       04
                       05      BEST EFFORT Guarantees:                         05
                       06       • Order                                        06
                       07                                                      07


                 07       06     05      04    03     02     01


   Configurable Heartbeat and                  Performance monitored by
    ACK/NACK interval                            readers and writers
        Avoid packet storms                    Flexible handling of slow readers
   Configuration items to balance              Dynamically remove slow readers
    latency and overhead
        Heartbeats, delays, resource limits
CoreDX DDS Features:
           Efficient Reliability: Example
                                                    One dropped
   Writer sends Heartbeats                           sample
     Heartbeats can be sent with
      DATA messages                    Writer                               Reader
   Reader returns ACK/NACK                                       01
                                        01
     Missed samples detected by
      Reader                            02                        02          01
     NACK Indicate specific missing    03                        03 + HB     02
      samples                                                     04          03
                                        04      ACK (1,3),
     Combined with ACK to                      NACK [2]
                                                                              04
      acknowledge other samples         05                        05
                                                   02                         05
   Writer can send Data using          06                        06 + HB
    MULTICAST                           07                        07          06
     Repairs are sent UNICAST                          ACK (6)               07
   Reader delivers samples to the
    application in order
CoreDX DDS Features:
           Durability

   CoreDX DDS provides configurable Durable data
    communications

   CoreDX DDS Durability addresses
     How long data is saved by Data Writers
     If previously published data is sent to „late joining‟ DataReaders

   Durability Options
     Volatile: Published data is saved just long enough to be sent to
      currently matched Readers
     Transient Local: Published data is saved for as long as the Data
      Writer is alive (until application exit)
     Transient, Persistent: Published data is saved by an external
      service, through application restarts, machine reboots
CoreDX DDS Features:
               Durability: Example

   Durability Example
                Data
              Producer
      S1      S3        Data published with
                        Durability = TRANSIENT_LOCAL
      S2      S4

Subscribing to data with         Subscribing to data with   S4   S2
Durability = VOLITILE            Durability =
                   S4            TRANSIENT_LOCAL            S2   S1

                  Data                             Data
               Consumer 1                       Consumer 2
CoreDX DDS Features:
           Historical Data Caches

   Each Data Reader and Data Writer maintains a Data Cache
   Data Reader Cache
     Holds received data to be delivered to the application
     Can be sized and configured to save received data for later use
     Multiple ways to access received data
     CoreDX DDS „loans‟ data to the application
      ▪ Improves performance
      ▪ Eliminates extra data copy
   Data Writer Cache
     Holds published data to be written on the wire
     Can be sized and configured to save historical data to be
      delivered to late joining Readers
CoreDX DDS Features:
           Filtering

   Kinds of Filters:
     Content Filters are specified by an SQL-like query
      ▪ Same syntax as the “WHERE” clause in an SQL query
     Time Based Filters are specified by a duration for
      minimum separate between samples
     Read Filters allow the application to „read‟ specific
      kinds of data from the Data Cache
      ▪   Previously seen / Not seen
      ▪   New data / Old data
      ▪   Alive / Dead
      ▪   Matching a content-based query
CoreDX DDS Features:
           Filtering (cont)

   Filters are configurable
     By each Reader
     Applied at the Writer or Reader
   Filters can reduce network and
    CPU load
     Filter applied at the Writer
      ▪ Writer can send only the data requested by a Reader (UNICAST)
      ▪ Other Readers do not „wake up‟ to receive/process unwanted data
     Filter applied at the Reader
      ▪ Writer can MULTICAST data to all Readers
      ▪ All Readers will „wake up‟ to receive / apply filters to data
CoreDX DDS Features:
           Ownership

   CoreDX DDS provides configurable Ownership of published
    data
     Shared: Readers receive (duplicate) data from all Writers
     Exclusive: Readers receive one copy of data, even when multiple
      Writers are publishing (duplicate) data

            Data                                   Data
         Producer 1                             Producer 2
          S1   Ownership.kind = EXCLUSIVE        S2       Ownership.kind = EXCLUSIVE
               Ownership.strength = 10                    Ownership.strength = 5
                                                 S1
                                       The consumer will see data from
                                S2     only the strongest producer.
                                S1

                                Data
                              Consumer
CoreDX DDS Features:
            Cross-platform, and more

   Cross-Platform communications:
       x86 (32 & 64 bit), UltraSPARC, ARMv5,
        ARVMv7, PPC, MIPS, Microblaze, FPGAs
   Cross-Operating System
    communications:
       Linux, Windows, Solaris, QNX, VxWorks,
        NexusWare, LynxOS, Android, Unison
   Cross-Language
    communications:
       C, C++, C#, Java
CoreDX DDS Features:
        Portability

   Portable across languages
     Common API defined for multiple languages
   Portable across Operating Systems
     Same programming experience on all
     operating systems
   Portable across vendors
     Standardized API
CoreDX DDS Features:
          Interoperability

   What is it?
     The ability of DDS implementations from different
      vendors/sources to communicate
   Why do we want it?
     Increased flexibility in implementation decisions
     Vendor independence
   Open Standards from the OMG allow for
    Interoperability
     DDS API
     RTPS Wire protocol
   Vendors commit to and test Interoperability
      ▪ Twin Oaks Computing, RTI, (partial) Prism Tech, Gallium
CoreDX DDS:
            Source Code: Portable, Certifiable

    Features:
      Minimal Lines of Source Code
       ▪ Entire „C‟ CoreDX DDS library < 35K SLOC
       ▪ Safety Critical Edition < 13K SLOC
      Completely Native Source Code
       ▪ No 3rd party products or packages
      Made in the USA
       ▪ All CoreDX product development performed in the United States, by United States
         Citizens
      Minimal dependencies on Operating System libraries
    Benefits:
      Eases analysis and certification of baseline
      EASY TO PORT TO ANY PLATFORM: Enterprise to Bare-Metal
       operating systems
                                     Twin Oaks Computing, Inc
22                                           PROPRIETARY
CoreDX DDS:
         Performance: Throughput, Latency


No Performance Sacrifice




                                          Performance Summary:
                                          • Throughput > 900 Mbps
                                          • Latency < 70 usec


                      Twin Oaks Computing, Inc
23                          PROPRIETARY
CoreDX DDS:
              Performance: CPU, Network
Long running throughput
  test
     • TX1024 byte messages
     • Total throughput of over
       700 Megabits/sec
     • CPU utilization of a single
       core
       • doesn‟t exceed 30%
       • machine has 4 cores
     • Equates to less than 10%
       of total CPU


                                  Twin Oaks Computing, Inc
24                                     PROPRIETARY
CoreDX DDS:
            Small Run-time Memory Requirements

    CoreDX DDS run-time memory requirements
          Local Entity          Local Entity          Remote (Discovered)
                                Size (bytes)          Entity Size (bytes)
          DomainParticipant *               12000                            2100
          DataReader                          3200                           2500
          DataWriter                          3200                           2400
          Topic                                750                               0


    For example:
     An application with                        * DomainParticipant size includes
       ▪ 1 DomainParticipant,                       all built-in Topics, DataWriters,
       ▪ 6 DataWriters, and                         and DataReaders
       ▪ 4 DataReaders
     will require <100KB Heap Memory
                                Twin Oaks Computing, Inc
25                                    PROPRIETARY
CoreDX DDS:
                Small Library Code Size

        Minimal Binary Code Size
          Measured in Kilobytes (not Megabytes!)
          CoreDX “DDS Ping” application: 250 KB
          Complete CoreDX DDS C library < 500KB
        Conserves valuable Static RAM / Flash
          Critical for embedded devices

        Examples
          Gumstix COMs
          OMAP L138
          Android based phones and tablets
          FPGA‟s

                                 Twin Oaks Computing, Inc
26                                     PROPRIETARY
CoreDX DDS Features:
           Configurability

   DDS API includes specific policies for tailoring
    communication behavior.
      Deadline          Latency Budget          Reliability
      Destination Order Lifespan                Resource Limits
      Durability        Liveliness              Time Based Filter
      Entity Factory    Ownership               Topic Data
      Group Data        Partition               User Data
      History           Reader Data Lifecycle   Writer Data Lifecycle

   In addition, CoreDX DDS allows configuration of:
        Transport                        Threads
        Discovery                        Memory Usage
        Reliability                      Logging
Comparisons


 DDS

 JMS

 Web Services

 XMPP
Comparison:
           DDS and JMS
lookup ConnectionFactory            JNDI           lookup ConnectionFactory
create Connection                                          create Connection
create Session                                                 create Session
create MessageProducer               JMS           create MessageConsumer
start the Connection                Server               start the Connection
write data                                                          read data
JMS requires a Server that must              JMS Server often requires
be configured and connected                  significant resources, and creates
                                             a single point of failure

create a DDS Participant
create a Topic                                         create a DDS participant
create a Publisher                                               create a Topic
create a DataWriter                                         create a Subscriber
write data                                                create a DataReader
Each DDS application contains all                                     read data
necessary code for discovery and
communications, no server
required
DDS and JMS

Feature            JMS                             DDS
Architecture       Publish subscribe               Publish subscribe (multicast)
Platform           Same API is exposed for all HW, Same API is exposed for all HW,
Independence       OS, and languages supported     OS, and languages supported
Discovery of       JNDI and JMS servers must be    Dynamic Discovery, no need to
endpoints          specified and configured        specify where endpoints reside
Type Safety        Generic Objects and XML are     Strong type safety, application
                   not type safe                   calls write() and read() with a
                                                   specific data type
Tailoring          Limited ability to tailor       QoS policies allow for easy
communication      communications                  tailoring of communication
behavior                                           behaviors
Interoperability   None                            Open standard with proven
                                                   interoperability
Comparison:
           DDS and SOA Web Services
          Web Server
                                                               create Service
enable web services                                 configure Server Address
install web service Web                                           call Service
                    Service                                     get response

A web server must be configured              The client must be configured with
to provide web services, and the             the address of the web server
web service must be installed                before the service can be called



create a DDS Participant                               create a DDS participant
create a Topic                                                   create a Topic
create a Publisher                                          create a Subscriber
create a DataWriter                                       create a DataReader
write data                                                            read data
         Each DDS application contains all
         necessary code for discovery and
         communications, no server or
         end point configuration required
DDS and SOA Web Services
Feature            Web Services                     DDS
Architecture       Message oriented Middleware      Publish subscribe (multicast)
Platform           Same API is exposed for all HW, Same API is exposed for all HW,
Independence       OS, and languages supported.    OS, and languages supported
                   Browser clients can run
                   anywhere
Discovery of       Web server must be specified     Dynamic Discovery, no need to
endpoints          and configured                   specify where endpoints reside
Type Safety        Use of HTTP and XML does not     Strong type safety, application
                   provide strong type safety       calls write() and read() with a
                                                    specific data type
Tailoring          Limited ability to tailor        QoS policies allow for easy
communication      communications                   tailoring of communication
behavior                                            behaviors
Interoperability   Some interoperability with       Open standard with proven
                   multiple protocols used: SOAP,   interoperability
                   REST, WSDL
For More Information

   Visit our Website
    http://www.twinoakscomputing.com for:
     Quick Start Guides
     Free Evaluations
     Free Demonstrations (with source code)
     Programmer‟s Guide
     Reference Manuals
     White Papers


   Contact Us
     Phone:      1-855-671-8754
     Email:     contact@twinoakscomputing.com
     Facebook / Linked In / Twitter / Pinterest / Google+
Summary

    Common, Complex Communication Requirements:
      Where do I get my data?
      How often?
      What happens if you don‟t send it?
      What happens if I don‟t receive it?
      How much received data do I need to store for future use?
      How do I select (filter) only the data I need to receive?


    CoreDX DDS addresses all these requirements

                            Twin Oaks Computing, Inc
34                                PROPRIETARY
Questions?

More Related Content

What's hot

Top Three Reasons to Develop Your Next Distributed Application with DDS
Top Three Reasons to Develop Your Next Distributed Application with DDSTop Three Reasons to Develop Your Next Distributed Application with DDS
Top Three Reasons to Develop Your Next Distributed Application with DDS
Real-Time Innovations (RTI)
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
Angelo Corsaro
 
NT Domain Restructuring and Exchange Resource Forests
NT Domain Restructuring and Exchange Resource ForestsNT Domain Restructuring and Exchange Resource Forests
NT Domain Restructuring and Exchange Resource Forests
webhostingguy
 
ServiceDDS
ServiceDDSServiceDDS
ServiceDDS
jadianes
 

What's hot (20)

OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
DDS for JMS Programmers
DDS for JMS ProgrammersDDS for JMS Programmers
DDS for JMS Programmers
 
Connected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with VortexConnected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with Vortex
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Top Three Reasons to Develop Your Next Distributed Application with DDS
Top Three Reasons to Develop Your Next Distributed Application with DDSTop Three Reasons to Develop Your Next Distributed Application with DDS
Top Three Reasons to Develop Your Next Distributed Application with DDS
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part I
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data Distribution
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
Microsoft SQL Azure - Cloud Based Database Datasheet
Microsoft SQL Azure - Cloud Based Database DatasheetMicrosoft SQL Azure - Cloud Based Database Datasheet
Microsoft SQL Azure - Cloud Based Database Datasheet
 
CodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the CloudCodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the Cloud
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
NT Domain Restructuring and Exchange Resource Forests
NT Domain Restructuring and Exchange Resource ForestsNT Domain Restructuring and Exchange Resource Forests
NT Domain Restructuring and Exchange Resource Forests
 
Converged architecture advantages: Dell PowerEdge FX2s and FC830 servers vs. ...
Converged architecture advantages: Dell PowerEdge FX2s and FC830 servers vs. ...Converged architecture advantages: Dell PowerEdge FX2s and FC830 servers vs. ...
Converged architecture advantages: Dell PowerEdge FX2s and FC830 servers vs. ...
 
ServiceDDS
ServiceDDSServiceDDS
ServiceDDS
 
Building Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-WebBuilding Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-Web
 
Server interview[1]
Server interview[1]Server interview[1]
Server interview[1]
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with Vortex
 

Similar to CoreDX DDS Technical Information

Interoperable DDS Strategies
Interoperable DDS StrategiesInteroperable DDS Strategies
Interoperable DDS Strategies
Twin Oaks Computing, Inc.
 
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
HostedbyConfluent
 
Chapter08 -- network operating systems and windows server 2003-based networking
Chapter08  -- network operating systems and windows server 2003-based networkingChapter08  -- network operating systems and windows server 2003-based networking
Chapter08 -- network operating systems and windows server 2003-based networking
Raja Waseem Akhtar
 

Similar to CoreDX DDS Technical Information (20)

What Can DDS Do For You?
What Can DDS Do For You?What Can DDS Do For You?
What Can DDS Do For You?
 
RTI Technical Road Show SPAWAR SD
RTI Technical Road Show SPAWAR SDRTI Technical Road Show SPAWAR SD
RTI Technical Road Show SPAWAR SD
 
Interoperable DDS Strategies
Interoperable DDS StrategiesInteroperable DDS Strategies
Interoperable DDS Strategies
 
Easily Serving and Accessing HDF-EOS2 Datasets Using DODS Technologies
Easily Serving and Accessing HDF-EOS2 Datasets Using DODS TechnologiesEasily Serving and Accessing HDF-EOS2 Datasets Using DODS Technologies
Easily Serving and Accessing HDF-EOS2 Datasets Using DODS Technologies
 
dds.pptx
dds.pptxdds.pptx
dds.pptx
 
Why is Core DX the Best DDS?
Why is Core DX the Best DDS?Why is Core DX the Best DDS?
Why is Core DX the Best DDS?
 
Twin Oaks Computing Introduction
Twin Oaks Computing IntroductionTwin Oaks Computing Introduction
Twin Oaks Computing Introduction
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
 
DDS Interoperability Demo June 2013 (Berlin, Germany)
DDS Interoperability Demo June 2013 (Berlin, Germany)DDS Interoperability Demo June 2013 (Berlin, Germany)
DDS Interoperability Demo June 2013 (Berlin, Germany)
 
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2
 
Ozone: scaling HDFS to trillions of objects
Ozone: scaling HDFS to trillions of objectsOzone: scaling HDFS to trillions of objects
Ozone: scaling HDFS to trillions of objects
 
K8s dds meetup_presentation
K8s dds meetup_presentationK8s dds meetup_presentation
K8s dds meetup_presentation
 
Discover problems in your distributed system before it's too late
Discover problems in your distributed system before it's too lateDiscover problems in your distributed system before it's too late
Discover problems in your distributed system before it's too late
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
 
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
 
DDS Interoperability Demo using the DDS-RTPS standard protocol 2010
DDS Interoperability Demo using the DDS-RTPS standard protocol 2010DDS Interoperability Demo using the DDS-RTPS standard protocol 2010
DDS Interoperability Demo using the DDS-RTPS standard protocol 2010
 
Chapter08 -- network operating systems and windows server 2003-based networking
Chapter08  -- network operating systems and windows server 2003-based networkingChapter08  -- network operating systems and windows server 2003-based networking
Chapter08 -- network operating systems and windows server 2003-based networking
 
DDS Enabling Open Architecture
DDS Enabling Open ArchitectureDDS Enabling Open Architecture
DDS Enabling Open Architecture
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDS
 

Recently uploaded

Recently uploaded (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

CoreDX DDS Technical Information

  • 1. Twin Oaks Computing, Inc. CoreDX DDS Technical Brief Jul 2012
  • 2. What is CoreDX DDS?  CoreDX DDS is a Communications Middleware  Eases development and deployment of Distributed Applications  Supports interoperable communications  High Throughput with Low Latency  Insulates Application from Communication Details
  • 3. CoreDX DDS Publish / Subscribe Middleware  Message Oriented Middleware  DDS extends MOM concepts  A Publisher Generates Data  Adds Strong Data Typing  A Subscriber Accesses Data  Adds Quality of Service Policies  The Middleware Manages the ▪ Reliability / History / Durability / Connections and the Data Filtering  Publisher and Subscriber are  Formalized Standard (API and Wire Protocol) Loosely Coupled ▪ Portable / Interoperable between Vendors Subscriber Publisher Data Subscriber Publisher Topic Subscriber Data Type QoS
  • 4. CoreDX DDS Architecture  DomainParticipant  Associated with a Domain  Communicates with other DomainParticipants in the same Domain  Contains DataReaders, DataWriters, and Topics  A DataWriter publishes data on a Topic  A DataReader subscribes to a Topic  Each Topic has a Defined Data Type
  • 5. Standards Based Data Communication  Object Management Group manages DDS standards:  DDS API: Data Distribution Service ▪ Entities ▪ QoS Policies ▪ Asynchronous and Synchronous notifications ▪ Data Types  DDS Language Bindings:  DDS Wire Protocol: Real-Time Publish Subscribe (RTPS) Wire Protocol ▪ Discovery ▪ Reliability ▪ Data Encoding  DDS-Related Technologies ▪ Extensible Types ▪ Web Enabled DDS (in work) ▪ DDS Security (in work)
  • 6. Technical Features Dynamic Discovery Cross-platform Reliability Interoperability Durability Portability Historical Data Caches High Performance Filtering Highly Configurable Ownership
  • 7. CoreDX DDS Features: Dynamic Discovery  DDS Dynamic Discovery is powerful and useful  Built-in to all CoreDX DDS Applications ▪ CoreDX DDS applications publish and subscribe to data without configuring endpoints ▪ CoreDX DDS Entities do not require knowledge of other DDS Entities they may be communicating with  Interoperable between DDS implementations ▪ Applications built on compliant DDS implementations will automatically discover each other  Automatic ▪ No special configuration required ▪ Simply create DDS Entities
  • 8. CoreDX DDS Features: Dynamic Discovery (cont)  CoreDX DDS Applications (DomainParticipants)  Automatically discover each other  Exchange network information ▪ IP addresses for multicast and unicast data transfers  Producers and Consumers (DataWriters, DataReaders)  Automatically discover each other  Exchange configuration information  Determine if data exchange is appropriate ▪ Do Topics match? ▪ Do Data Types match? ▪ Do communication behavior expectations match?  If so, enable data exchange
  • 9. CoreDX DDS Features: Quality of Service Policies  QoS Policies tailor the behavior of data communications  What are the reliability requirements?  How long is data saved for possible future publication or future access by the application? ▪ What are the storage requirements?  What are the timing requirements?  How should data be presented to subscribers?  Should data be filtered?  Are there redundancy or failover requirements?  DDS specifies 22 distinct QoS Policies Twin Oaks Computing, Inc. PROPRIETARY
  • 10. CoreDX DDS Features: Efficient Reliability: Overview  CoreDX DDS provides configurable Reliable data communications  Even on unreliable networks (e.g. wireless)  Using UDP (MULTICAST and UNICAST)  CoreDX DDS Reliability Addresses  Dropped Packets  Out of Order Samples  Communication Disconnects  Application Re-Starts
  • 11. CoreDX DDS Features: Efficient Reliability: Protocol 01 RELIABLE Guarantees: 01 02 02 Data 03 • Delivery and Order Data 03 Writer 04 Reader 04 05 BEST EFFORT Guarantees: 05 06 • Order 06 07 07 07 06 05 04 03 02 01  Configurable Heartbeat and  Performance monitored by ACK/NACK interval readers and writers  Avoid packet storms  Flexible handling of slow readers  Configuration items to balance  Dynamically remove slow readers latency and overhead  Heartbeats, delays, resource limits
  • 12. CoreDX DDS Features: Efficient Reliability: Example One dropped  Writer sends Heartbeats sample  Heartbeats can be sent with DATA messages Writer Reader  Reader returns ACK/NACK 01 01  Missed samples detected by Reader 02 02 01  NACK Indicate specific missing 03 03 + HB 02 samples 04 03 04 ACK (1,3),  Combined with ACK to NACK [2] 04 acknowledge other samples 05 05 02 05  Writer can send Data using 06 06 + HB MULTICAST 07 07 06  Repairs are sent UNICAST ACK (6) 07  Reader delivers samples to the application in order
  • 13. CoreDX DDS Features: Durability  CoreDX DDS provides configurable Durable data communications  CoreDX DDS Durability addresses  How long data is saved by Data Writers  If previously published data is sent to „late joining‟ DataReaders  Durability Options  Volatile: Published data is saved just long enough to be sent to currently matched Readers  Transient Local: Published data is saved for as long as the Data Writer is alive (until application exit)  Transient, Persistent: Published data is saved by an external service, through application restarts, machine reboots
  • 14. CoreDX DDS Features: Durability: Example  Durability Example Data Producer S1 S3 Data published with Durability = TRANSIENT_LOCAL S2 S4 Subscribing to data with Subscribing to data with S4 S2 Durability = VOLITILE Durability = S4 TRANSIENT_LOCAL S2 S1 Data Data Consumer 1 Consumer 2
  • 15. CoreDX DDS Features: Historical Data Caches  Each Data Reader and Data Writer maintains a Data Cache  Data Reader Cache  Holds received data to be delivered to the application  Can be sized and configured to save received data for later use  Multiple ways to access received data  CoreDX DDS „loans‟ data to the application ▪ Improves performance ▪ Eliminates extra data copy  Data Writer Cache  Holds published data to be written on the wire  Can be sized and configured to save historical data to be delivered to late joining Readers
  • 16. CoreDX DDS Features: Filtering  Kinds of Filters:  Content Filters are specified by an SQL-like query ▪ Same syntax as the “WHERE” clause in an SQL query  Time Based Filters are specified by a duration for minimum separate between samples  Read Filters allow the application to „read‟ specific kinds of data from the Data Cache ▪ Previously seen / Not seen ▪ New data / Old data ▪ Alive / Dead ▪ Matching a content-based query
  • 17. CoreDX DDS Features: Filtering (cont)  Filters are configurable  By each Reader  Applied at the Writer or Reader  Filters can reduce network and CPU load  Filter applied at the Writer ▪ Writer can send only the data requested by a Reader (UNICAST) ▪ Other Readers do not „wake up‟ to receive/process unwanted data  Filter applied at the Reader ▪ Writer can MULTICAST data to all Readers ▪ All Readers will „wake up‟ to receive / apply filters to data
  • 18. CoreDX DDS Features: Ownership  CoreDX DDS provides configurable Ownership of published data  Shared: Readers receive (duplicate) data from all Writers  Exclusive: Readers receive one copy of data, even when multiple Writers are publishing (duplicate) data Data Data Producer 1 Producer 2 S1 Ownership.kind = EXCLUSIVE S2 Ownership.kind = EXCLUSIVE Ownership.strength = 10 Ownership.strength = 5 S1 The consumer will see data from S2 only the strongest producer. S1 Data Consumer
  • 19. CoreDX DDS Features: Cross-platform, and more  Cross-Platform communications:  x86 (32 & 64 bit), UltraSPARC, ARMv5, ARVMv7, PPC, MIPS, Microblaze, FPGAs  Cross-Operating System communications:  Linux, Windows, Solaris, QNX, VxWorks, NexusWare, LynxOS, Android, Unison  Cross-Language communications:  C, C++, C#, Java
  • 20. CoreDX DDS Features: Portability  Portable across languages  Common API defined for multiple languages  Portable across Operating Systems  Same programming experience on all operating systems  Portable across vendors  Standardized API
  • 21. CoreDX DDS Features: Interoperability  What is it?  The ability of DDS implementations from different vendors/sources to communicate  Why do we want it?  Increased flexibility in implementation decisions  Vendor independence  Open Standards from the OMG allow for Interoperability  DDS API  RTPS Wire protocol  Vendors commit to and test Interoperability ▪ Twin Oaks Computing, RTI, (partial) Prism Tech, Gallium
  • 22. CoreDX DDS: Source Code: Portable, Certifiable  Features:  Minimal Lines of Source Code ▪ Entire „C‟ CoreDX DDS library < 35K SLOC ▪ Safety Critical Edition < 13K SLOC  Completely Native Source Code ▪ No 3rd party products or packages  Made in the USA ▪ All CoreDX product development performed in the United States, by United States Citizens  Minimal dependencies on Operating System libraries  Benefits:  Eases analysis and certification of baseline  EASY TO PORT TO ANY PLATFORM: Enterprise to Bare-Metal operating systems Twin Oaks Computing, Inc 22 PROPRIETARY
  • 23. CoreDX DDS: Performance: Throughput, Latency No Performance Sacrifice Performance Summary: • Throughput > 900 Mbps • Latency < 70 usec Twin Oaks Computing, Inc 23 PROPRIETARY
  • 24. CoreDX DDS: Performance: CPU, Network Long running throughput test • TX1024 byte messages • Total throughput of over 700 Megabits/sec • CPU utilization of a single core • doesn‟t exceed 30% • machine has 4 cores • Equates to less than 10% of total CPU Twin Oaks Computing, Inc 24 PROPRIETARY
  • 25. CoreDX DDS: Small Run-time Memory Requirements  CoreDX DDS run-time memory requirements Local Entity Local Entity Remote (Discovered) Size (bytes) Entity Size (bytes) DomainParticipant * 12000 2100 DataReader 3200 2500 DataWriter 3200 2400 Topic 750 0  For example: An application with * DomainParticipant size includes ▪ 1 DomainParticipant, all built-in Topics, DataWriters, ▪ 6 DataWriters, and and DataReaders ▪ 4 DataReaders will require <100KB Heap Memory Twin Oaks Computing, Inc 25 PROPRIETARY
  • 26. CoreDX DDS: Small Library Code Size  Minimal Binary Code Size  Measured in Kilobytes (not Megabytes!)  CoreDX “DDS Ping” application: 250 KB  Complete CoreDX DDS C library < 500KB  Conserves valuable Static RAM / Flash  Critical for embedded devices  Examples  Gumstix COMs  OMAP L138  Android based phones and tablets  FPGA‟s Twin Oaks Computing, Inc 26 PROPRIETARY
  • 27. CoreDX DDS Features: Configurability  DDS API includes specific policies for tailoring communication behavior. Deadline Latency Budget Reliability Destination Order Lifespan Resource Limits Durability Liveliness Time Based Filter Entity Factory Ownership Topic Data Group Data Partition User Data History Reader Data Lifecycle Writer Data Lifecycle  In addition, CoreDX DDS allows configuration of: Transport Threads Discovery Memory Usage Reliability Logging
  • 28. Comparisons DDS JMS Web Services XMPP
  • 29. Comparison: DDS and JMS lookup ConnectionFactory JNDI lookup ConnectionFactory create Connection create Connection create Session create Session create MessageProducer JMS create MessageConsumer start the Connection Server start the Connection write data read data JMS requires a Server that must JMS Server often requires be configured and connected significant resources, and creates a single point of failure create a DDS Participant create a Topic create a DDS participant create a Publisher create a Topic create a DataWriter create a Subscriber write data create a DataReader Each DDS application contains all read data necessary code for discovery and communications, no server required
  • 30. DDS and JMS Feature JMS DDS Architecture Publish subscribe Publish subscribe (multicast) Platform Same API is exposed for all HW, Same API is exposed for all HW, Independence OS, and languages supported OS, and languages supported Discovery of JNDI and JMS servers must be Dynamic Discovery, no need to endpoints specified and configured specify where endpoints reside Type Safety Generic Objects and XML are Strong type safety, application not type safe calls write() and read() with a specific data type Tailoring Limited ability to tailor QoS policies allow for easy communication communications tailoring of communication behavior behaviors Interoperability None Open standard with proven interoperability
  • 31. Comparison: DDS and SOA Web Services Web Server create Service enable web services configure Server Address install web service Web call Service Service get response A web server must be configured The client must be configured with to provide web services, and the the address of the web server web service must be installed before the service can be called create a DDS Participant create a DDS participant create a Topic create a Topic create a Publisher create a Subscriber create a DataWriter create a DataReader write data read data Each DDS application contains all necessary code for discovery and communications, no server or end point configuration required
  • 32. DDS and SOA Web Services Feature Web Services DDS Architecture Message oriented Middleware Publish subscribe (multicast) Platform Same API is exposed for all HW, Same API is exposed for all HW, Independence OS, and languages supported. OS, and languages supported Browser clients can run anywhere Discovery of Web server must be specified Dynamic Discovery, no need to endpoints and configured specify where endpoints reside Type Safety Use of HTTP and XML does not Strong type safety, application provide strong type safety calls write() and read() with a specific data type Tailoring Limited ability to tailor QoS policies allow for easy communication communications tailoring of communication behavior behaviors Interoperability Some interoperability with Open standard with proven multiple protocols used: SOAP, interoperability REST, WSDL
  • 33. For More Information  Visit our Website http://www.twinoakscomputing.com for:  Quick Start Guides  Free Evaluations  Free Demonstrations (with source code)  Programmer‟s Guide  Reference Manuals  White Papers  Contact Us  Phone: 1-855-671-8754  Email: contact@twinoakscomputing.com  Facebook / Linked In / Twitter / Pinterest / Google+
  • 34. Summary  Common, Complex Communication Requirements:  Where do I get my data?  How often?  What happens if you don‟t send it?  What happens if I don‟t receive it?  How much received data do I need to store for future use?  How do I select (filter) only the data I need to receive?  CoreDX DDS addresses all these requirements Twin Oaks Computing, Inc 34 PROPRIETARY

Editor's Notes

  1. “All this, and No tradeoff in performance”These are graphs of performance benchmarks run over a Gbit ETHERNET network. As you can see, these numbers are pretty good.Throughput is above 900 Mbps, and latency is around 75 microsecs
  2. “All this, and No tradeoff in performance”