SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
The Present and Future "
of DDS

 Angelo Corsaro, Ph.D.
 Chief Technology Officer!
 OMG DDS Sig Co-Chair
 PrismTech
 angelo.corsaro@prismtech.com!
The Present
The DDS Standard
Data Distribution for Real-Time Systems

¨    Introduced in 2004 to address the Data




                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      Distribution challenges faced by a wide
      class of Defense and Aerospace
      Applications
¨    Key requirement for the standard were to
      deliver very high, predictable,
      performance while scaling from
      embedded to ultra-large-scale
      deployments
¨    Recommended by key administration
      worldwide
¨    Widely adopted across several different
      domains, e.g., Automated Trading,
      Simulations, SCADA, Telemetry, etc.
DDS Standards Family




                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
   App          Standard API

         2004

   DDS             §    Standard API for Data-
                         Centric Real-Time Pub/Sub
                   §    Automatic fail-over
                   §    Persistence
                   §    Dynamic Discovery
                   §    Content Filtering / Queries
DDS Standards Family




                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
    App                                              App
                                 Standard API

          2004                                             2004

    DDS                                              DDS
          2006                                             2006

  DDSI/RTPS                          network       DDSI/RTPS
                                Interoperable
                                 Wire Protocol
                 §  High Performance
                 §  Interoperable Wire Protocol
DDS Standards Family
          2008                                         2008
  UML4DDS        §  UML-Based Modeling   of   UML4DDS




                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                     DDS applications

    App                                          App
                       Standard API

          2004                                         2004

    DDS                                          DDS
          2006                                         2006

  DDSI/RTPS               network              DDSI/RTPS

                      Interoperable
                       Wire Protocol
DDS Standards Family
                          2008                                        2008

                UML4DDS                                       UML4DDS




                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                   App                                          App
                                             Standard API

                          2004                                        2004
2010




                                                                             2010
                   DDS                                          DDS
   X-Types




                                                                                X-Types
                          2006                                        2006

                DDSI/RTPS                       network       DDSI/RTPS

             §  Extensible/Evolvable Type   Interoperable
                 System                       Wire Protocol
             §  Dynamic Topic Types, Data
                 Readers & Writers
             §  Encoding Negotiation
DDS Standards Family
                     2008      §  ISO C++ DDS PSM                     2008
                               §  Simple, Safe, Efficient,
             UML4DDS                                           UML4DDS




                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                   Elegant and Ergonomic API


               App                                               App
                                    Standard API

                     2004           2010                               2004
                            ISO-C++ PSM
2010




                                                                              2010
               DDS                                               DDS
   X-Types




                                                                                 X-Types
                     2006                                              2006

             DDSI/RTPS                  network                DDSI/RTPS

                                   Interoperable
                                    Wire Protocol
DDS Standards Family
                     2008      §  Java 5 DDS PSM                      2008
                               §  Simple, Safe, Efficient,
             UML4DDS                                           UML4DDS




                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                   Elegant and Ergonomic API


               App                                               App
                                    Standard API

                     2004           2010              2010             2004
                            ISO-C++ PSM      Java5 PSM
2010




                                                                              2010
               DDS                                               DDS
   X-Types




                                                                                 X-Types
                     2006                                              2006

             DDSI/RTPS                  network                DDSI/RTPS

                                   Interoperable
                                    Wire Protocol
OMG DDS + DDSI/RTPS
¨    Language Independent, OS




                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                           Application
      and HW architecture
      independent                                              Object/Relational Mapping

                                                        Data Local Reconstruction Layer (DLRL)
¨    Standard API Topic-Based, Real-
      Time Publish/Subscribe              Ownership           Durability
                                                                                   Content
                                                                                 Subscription

¨    Built-in support for fail-over,                     Minimum Profile
      filtering, query, data durability        Data Centric Publish/Subscribe (DCPS)

¨    Standard wire protocol allowing           Real-Time Publish/Subscribe Protocol
      interoperability between                    DDS Interoperability Wire Protocol
      different implementations of the
      DDS standard                                             UDP/IP
How does it work?
What is Data Distribution?
                         [1/2]


      Data distribution is about




                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨ 
      making application defined
      data available where needed
      and when needed

¨    Data is a first class concept, it
      can be created, updated, read
      and eventually disposed

¨    The last value (or last N-values)
      of a Data is available

                                          Global Data Space
What is Data Distribution?
     [2/2]




                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    The details of how
      application data is
      encapsulated and
      propagated are dealt by
      the data distribution
      technology
DDS Topics
      The definition of Data in DDS is                 com.myco.VehiclePositionTopic!




                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨ 
      tied to the definition of a Topic
¨    A Topic is the association                                Name
      between:
      ¨    Unique Name
      ¨    Type
      ¨    QoS                                 Type            Topic           QoS
¨    A Topic can have associated a
      key in order to express data  com::myco::VehiclePosition!
                                                                         {Reliability,!
                                                                          Deadline,!
      instances identities                                                Priority,!
                                                                          Durability}!
Topic Types
                                                         struct VehiclePosition{!
                                                            string plate; //@Key!
¨    Topic types can be defined                            long x;!
      in IDL, XML, Java




                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                            longy;!
                                                         }!
¨    Topics types are extensible
      and evolvable
¨    Rich set of annotations to               Topic          TrakCo.VehiclePosition
      deal with fields that might be
      optional, shared, etc.             Topic Type               VehiclePosition
                                          Topic Key               plate        x       y
¨    Each unique key value
      identifies a Topic Instance                                “A123”       101 202
                                       Topic Instances           “B456”       303 202
¨    Topic Instance, can be
      Created, Read, Updated,                                    “C789”       101 606
      and Disposed (CRUD)
Topic Instances and Samples
¨    An update for a Topic Instance is called Sample




                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    DDS can maintain a configurable history of samples per Topic
      Instance
Demo#1
DDS in Action
DDS X-Types
The Type System Debate
¨    The debate around type Programming Languages Type




                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      Systems has animated computer scientist over several
      decades and is far from being resolved
¨    New Programming Languages are continuing to appear
      on both sides of the fence


       Statically Typed (ex.)          Dynamically Typed (ex.)


                            F #
Are you a Type-Phobic Type?




                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Proponents of Dynamically Typed Programming Languages
      advocate against strong typing in favor of reduced verbosity
      and added flexibility



        Yet... Are they so sure that a type system always gets
         between you and what you are trying to achieve?
Strongly Typed Type Systems




                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Well designed type-systems don’t add unnecessary verbosity
      to your application since use sophisticated inference to
      derive types

¨    Allow the detection of many errors at compile time, thus
      improving productivity, safety, code quality and reducing the
      potential for run-time errors

¨    Enable the generation of more efficient code
Types and Distributed Systems
¨    The “Type System debate” has not spared distributed systems




                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Today we can find different technologies taking different
      approaches: from completely untyped to strongly typed

¨    The differences are in this case more complex to organize:
      ¨    Some technologies support only one type, being a string or an array
            of bytes (e.g. AMQP)
      ¨    Other technologies support some predefined types (e.g JMS)
      ¨    Other technologies allow the definition of user-specified types (e.g
            DDS)
Types and Distributed Systems
                                     T3
       T1
                                     T2




                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
       T2


  T3

  T4
                      ?                    T1

                                           T4


       T1                             T1

       T3                             T2



            User Defined Types   Example:
                                  T1 = RadarTrack          T3 = FlightPlan
            T1   T2   T3   T4
                                  T2 = ClassificationInfo   T4 = ...
Types and Distributed Systems
                                           T3
       T1




                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
       T2                                  T2


                 Pub/Sub Types
  T3                                             T1
             octect sequence
  T4                                             T4


       T1                                   T1

       T3
            AMQP                            T2



            User Defined Types         Example:
                                        T1 = RadarTrack          T3 = FlightPlan
            T1     T2   T3       T4
                                        T2 = ClassificationInfo   T4 = ...
Types and Distributed Systems
                                               T3
       T1
                                               T2




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
       T2
                  MapMessage

  T3        ObjectMessage      TextMessage           T1

  T4                        StreamMessage            T4
                ByteMessage    Pub/Sub Types
       T1                                       T1


                    JMS
       T3                                       T2



                                          Example:
                                            T1 = RadarTrack          T3 = FlightPlan
                                            T2 = ClassificationInfo   T4 = ...
Types and Distributed Systems
                                                T3
       T1   Pub/Sub Types == User Types!
                                                T2




                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
       T2
               T1         T1
  T3                                                  T1
                    T2        T3
  T4                               T3                 T4
                         T4
       T1                                        T1

       T3
                     DDS                         T2



                                           Example:
                                             T1 = RadarTrack          T3 = FlightPlan
                                             T2 = ClassificationInfo   T4 = ...
“Pre X-Types” DDS Type System
¨    Nominal Type-System w/o sub-typing




                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Designed with the Closed-World Assumption in
      mind, e.g., the information model is global and
      immutable

¨    Changes to the information model are either non-
      transparent or non-interoperable with legacy, e.g.
      require compile/deploy cyce
Example
¨    In pre X-Types DDS systems the    struct RadarTrack {!




                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      RadarTrack and RadarTrack3D          string id; //@Key!
                                           long x;!
      cannot be associated with         }!
                                           longy;!

      the same Topic by different
      DDS entities
¨    Nor it is possible for Readers
      expecting RadarTrack types       struct RadarTrack3D {!
                                          string id; //@Key!
      to match Writers producing          long x;!
                                          longy;!
      RadarTrack3D                        long z;!
                                       }!
DDS X-Types Type System
¨    Structural Type System




                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Support extensible and evolvable types

¨    A structural sub-type relationship is used to match
      DataReader and DataWriters

¨    Annotations + QoS Policy provide control on the
      sub-typing rule
Example
¨    Under the X-Types type-system:                 struct RadarTrack {!




                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      ¨    RadarTrack3D <: RadarTrack                  string id; //@Key!
                                                        long x;!
                                                        long y;!
¨    As a result Subscribers to                     }!
      RadarTrack match Publishers of
      RadartTrack3D
¨    How about the dual case?                      struct RadarTrack3D {!
      ¨    QoS allow to control whether type          string id; //@Key!
            widening are allowed and in provide        long x;!
            control on widened attributes have to      long z;!
            be initialized                             long y;!
                                                    }!
More on X-Types




                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
The DDS X-Types standard also provides
¨    An API for dynamically registering topic types and
      creating DataReader/Writer for these types

¨    A rich set of annotations for declaring shared and
      optional attributes, etc.
X-Types Efficiency
Encoding Efficiency
                                     Size for Serialized CoFlight Flight Data Plan
      DDS serialization is




                                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨ 

      several times more
      efficient than JSON,
      XML and YAML

¨    Differences can be
      quite extreme when
      dealing with complex
      types

            DDS encoding is 10x more space efficient than XML!
Encoding Impact on RTT




                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                              DDS RTT with different Serialization Format
¨    Inefficient encoding
      can easily dominate
      RTT

¨    DDS native encoding
      is the most efficient
      among extensible
      encodings!
DDS is very Efficient!
      DDS implementations are




                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨ 

      capable of delivering very
      low and predictable
      latencies




                                   Latency (usec)
¨    No other Pub/Sub
      technology can approach
      similar level of
      performance!
                                                    Size (bytes)
ISO C++ PSM
PIM/PSM Approach
      The DDS standard is




                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨ 
                                           PIM (UML)
      composed by a PIM
      specified in UML and A
      PSM specified in IDL
                                           PSM (IDL)
¨    Language specific APIs are
                                   IDL2C
      derived via IDL-based                      IDL2C++
                                                           IDL2Java

      mappings (e.g. IDL2C++,
      etc.)
                                     C       C++           Java
What is the Problem?




                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    IDL is very good for describing DDS Topic Types, yet...

¨    IDL’s biggest strength, namely (programming) language
      independence, becomes its biggest weakness when trying to
      define APIs that are well integrated with a programming
      language

¨    For some programming languages (e.g. C++) the IDL2C++
      mapping is “seasoned”
What is the Problem?




                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Resulting DDS APIs are more complicated than they should

¨    API don’t feel natural or ergonomic to programmers

¨    API (esp. for C++) don’t integrate well with standard libraries
      nor implements common idioms/patterns.
Native C++/Java PSM
¨    The new C++/Java PSM are




                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      derived starting directly from
      the PIM
                                               PIM (UML)
¨    The new C++/Java PSM take
      advantage of all the features
      available in C++/Java to         ISO C++ PSM     Java 5 PSM
      provide a natural,
      productive, efficient, safe
      and portable API
ISO C++ PSM in a Nutshell
¨    Provides transparent, safe, precise and real-time automatic memory




                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      management

¨    Takes advantage of C++ Template Meta-programming to automate
      tasks such as type registration and provide a strongly typed API (no
      downcast ever!)

¨    Provides a DDS API that exploits Iterators and containers as well as
      other C++ Standard Types

¨    API is extensible, efficient and portable
Type Mapping




                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    DDS primitive types are
      mapped to C99/C++ standard
      types

¨    DDS container types are
      mapped to standard C++
      containers, namely std::vector
      and std::map
Topic Type Mapping
                                                    C++ Topic Type Mapping

                                        class VehiclePosition {




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
        IDL Topic Type Definition        !   VehiclePosition();
                                        !   VehiclePosition(const std::string& plate,
                                        !   ! ! int32_t x, int32_t y);
  struct VehiclePosition {
!    string plate;                      !   virtual ~VehiclePosition();
!    long x;
!    long y;                            !   const std::string& plate() const;
};                                      !   void plate(const std::string& s);
#pragma keylist VehiclePosition plate
                                        !   const int32_t x() const;
                                        !   void x(int32_t i);

                                        !   const int32_t y() const;
                                        !   void y(int32_t i);

                                        private:
                                        ! // Encapsulated state representation
                                        };
Writing Samples
// ================== DataWriter ===================




                                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
try {
                                                        dds::topic::Topic<RadarTrack> topic =
  DomainId id = 0;
                                                          dp.create_topic<RadarTrack>("TrackTopic",
  DomainParticipant dp =
                                                                         "RadarTrack", tqos);
    TheParticipantFactory().create_participant(id);
                                                        pub::qos::DataWriterQos dwqos(tqos);
  pub::qos::PublisherQos pqos;
  pqos << policy::Partition("Tracks");
                                                        pub::DataWriter<RadarTrack> dw =
                                                          pub.create_datawriter(topic, dwqos);
  pub::Publisher pub =
    dp.create_publisher(pqos);
                                                        RadarTrack track("alpha", 100, 200);
  topic::qos::TopicQos tqos;
                                                       dw.write(track);
  tqos << policy::Reliability::Reliable()
                                                       // or
       << policy::Durability::Transient()
                                                       dw << track;
       << policy::History::KeepLast(10)
       << policy::TransportPriority(14);
                                                       } catch (const dds::core::Exception& e) { }
Reading Samples
// ================== DataReader===================
                                                        dds::topic::Topic<RadarTrack> topic =




                                                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                          dp.create_topic<RadarTrack>("TrackTopic",
try {
                                                      "RadarTrack", tqos);
  DomainId id = 0;
  DomainParticipant dp =
                                                        sub::qos::DataReaderQos dwqos(tqos);
    TheParticipantFactory().create_participant(id);
                                                        sub::DataReader<RadarTrack> dr =
  sub::qos::SubscriberQos sqos;
                                                          sub.create_datareader(topic, drqos);
  sqos << policy::Partition("Tracks");
                                                        std::vector<RadarTrack> samples(MY_MAX_LEN);
                                                        std::vector<SampleInfo> info(MY_MAX_LEN);
  sub::Subscriber sub =
                                                        dr.read(samples.begin(), info.begin(), MY_MAX_LEN);
    dp.create_subscriber(sqos);

  topic::qos::TopicQos tqos;
                                                       } catch (const dds::core::Exception& e) { }
  tqos << policy::Reliability::Reliable()
       << policy::Durability::Transient()
       << policy::History::KeepLast(10)
       << policy::TransportPriority(14);
OpenSplice DDS
Modern History
                 2008




                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                 • Gartner selects DDS as a Cool Technology and Prismtech/OpenSplice
                   DDS as the cool vendor among DDS provider


                 2009
                 • To propel and accelerate the adoption of DDS beyond Aerospace and
                   Defense PrismTech Open Sources OpenSplice DDS


                 2010
OpenSplice DDS   • With over 3000 new users in the last year OpenSplice DDS establishes
    #1             itself as the most widely used and deployed DDS implementation
Product Adoption
                  20000

                                                      OpenSplice Downloads
                                   15000


      ~20000 Unique




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                       Downloads
¨ 
                                   10000

      downloads
      since October
                                    5000




      2009                         3000
                                       0



                                                     OpenSplice DDS Registered Users
¨    ~3000 Unique                 2250


      OpenSplice DDS               1500

      Users                         750



                                      0
                                          Oct 2009                                     Oct 2010
Product Organization




                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Four different editions with       Enterprise Edition
      growing sets of functionalities
                                        Professional Edition
¨    The Community Edition is
      Open Source. Compact,              Compact Edition
      Professional and Enterprise
      Edition are available through     Community Edition
      Commercial Subscriptions /
      Licensing
Community Edition




                                                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    OMG DDS v1.2                              Application


                                                                          Content
      Real-Time Networking




                                                                                         DDS v1.2
                             Ownership              Durability
                                                                        Subscription
¨ 
                                              Minimum Profile


¨    DDSI/RTPS v2.1                       Real-Time Pub/Sub (DCPS)




                                                                                         DDSI v2.1
                                                           Interoperable Wire Protocol
                             Real-Time Networking
                                                                     (DDSI)
Licensing                                  Networking Technology

      ¨    LGPLv3                                   UDP/IP
Compact Edition
      All Community Ed. features




                                                                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨                                                  MDE
                                                                                Application
                                                   Tuner

¨    Power Tools                                PowerTools



            Eclipse Visual Modeling Tool                                                                   Content




                                                                                                                          DDS v1.2
      ¨                                                      Ownership              Durability
                                                                                                         Subscription


      ¨    Tuner Tool                                                         Minimum Profile

                                                                            Real-Time Pub/Sub (DCPS)




                                                                                                                          DDSI v2.1
Licensing                                                     Real-Time Networking
                                                                                            Interoperable Wire Protocol
                                                                                                      (DDSI)


      ¨    Commercial Subscription / Licenses                              Networking Technology



            PrismTech Source Code License
                                                                                      UDP/IP
      ¨ 
            (non-copy-left)
Professional Edition




                                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      All Compact Ed. Features
                                                 MDE                         Application
¨ 
                                                 Tuner
                                                                                    Object/Relational Mapping


      DLRL v1.2
                                             PowerTools                          Object-Oriented Pub/Sub (DLRL)




                                                                                                                       DDS v1.2
¨ 
                                                                                                        Content
                                                          Ownership              Durability
                                                                                                      Subscription

¨    Connectors                                                           Minimum Profile

                                                                        Real-Time Pub/Sub (DCPS)
      ¨    SOAP




                                                                                                                       DDSI v2.1
                                                                                         Interoperable Wire Protocol
                                                 SOAP     Real-Time Networking
                                                                                                   (DDSI)

Licensing                                    Connectors
                                                                        Networking Technology


      ¨    Commercial Subscription / Licenses                                    UDP/IP


      ¨    PrismTech Source Code License
            (non-copy-left)
Enterprise Edition
¨    All Professional Ed. Features




                                                                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                 MDE                               Application


      Security
                                                 Tuner
                                                                                       Object/Relational Mapping
¨ 
                                             PowerTools                             Object-Oriented Pub/Sub (DLRL)




                                                                                                                           DDS v1.2
      Connectors
                                                                                                           Content
                                                             Ownership             Persistence
¨                                                                                                       Subscription
                                                 DBMS
                                                                                 Minimum Profile


      DBMS
                                             Connectors                       Real-Time Pub/Sub(DCPS)
¨ 




                                                                                                                           DDSI v2.1
                                                                                   Real-Time          Interoperable Wire
                                                 SOAP     Secure Networking
                                                                                   Networking           Protocol (DDSI)

Licensing                                    Connectors                       Networking Technology


      ¨    Commercial Subscription / Licenses                                       UDP/IP


      ¨    PrismTech Source Code License
            (non-copy-left)
OpenSplice DDS
[Users & Use Cases]
Some Selected Users




Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Some Use Cases
Aerospace & Defense




                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Naval Combat Management Systems
¨    Submarines
¨    Vetronics (Military Vehicles)
¨    Tactical Links
¨    Simulation
¨    Cybercrime
¨    Flycatcher Systems
¨    Data Fusion
¨    Battle Transformation Center
Some Use Cases
Transportation




                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    Drones
¨    Air Traffic Control & Management
¨    Metropolitan Transportation

Financial Services
¨    Automated Trading Firms
¨    Risk Management Firms
The Future
DDS Standard Evolution
                     2008                                          2008

             UML4DDS                                       UML4DDS




                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
               App                                           App
                                    Standard API

                     2004           2010            2010           2004
                            ISO-C++ PSM    Java5 PSM
2010




                                                                          2010
               DDS                                           DDS
   X-Types




                                                                             X-Types
                     2006                                          2006

             DDSI/RTPS                 network             DDSI/RTPS

                                   Interoperable
                                    Wire Protocol
DDS Standard Evolution
                     2008                                                                      2008

             UML4DDS                                                                 UML4DDS




                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
               App                                                                      App
                                              Standard API

                     2004                        2010          2010                            2004




                                                                      2011
                            2011




                                                                         Web-DDS
                               Web-DDS
                                         ISO-C++ PSM    Java5 PSM
2010




                                                                                                      2010
               DDS                                                                      DDS
   X-Types




                                                                                                         X-Types
                     2006                                                                      2006

             DDSI/RTPS                            network                           DDSI/RTPS

                                              Interoperable
                                                                             §  Standardized way of
                                               Wire Protocol                     accessing DDS from Web
                                                                                 Technologies
                                                                             §  REST, W3C WS-*, RSS, etc.
DDS Standard Evolution
                      2008                                                                   2008

             UML4DDS                                                                 UML4DDS




                                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
              App                                                                     App
                                                Standard API

                     2004                         2010           2010                        2004




                                                                        2011
                             2011




                                                                           Web-DDS
                                Web-DDS
                                          ISO-C++ PSM     Java5 PSM
2010




                                                                                                    2010
               DDS                                                                     DDS
   X-Types




                                                                                                       X-Types
                     2011                                                                    2011

             ULS-DDSI                              network                           ULS-DDSI

             §  Ultra-Large Scale Extensions   Interoperable
                 to the DDSI/RTPS wire-          Wire Protocol
                 protocol
             §  New Discovery
             §  Support for TCP, etc.
DDS Standard Evolution
                     2008                                                                                               2008

             UML4DDS                                                                                            UML4DDS




                                                                                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
               App                                                                                               App
                                                             Standard API

                     2004                                      2010           2010                                      2004




                                                                                     2012


                                                                                                   2011
                            2011


                                         2012




                                                                                                      Web-DDS
                               Web-DDS

                                                       ISO-C++ PSM    Java5 PSM




                                                                                        Security
                                            Security
2010




                                                                                                                               2010
               DDS                                                                                                DDS
   X-Types




                                                                                                                                  X-Types
                     2006                                                                                               2006
             ULS-DDSI                                            network                                        ULS-DDSI

                                                             Interoperable                  §  Interoperable Security
                                                              Wire Protocol                     Architecture
                                                                                            §  Pluggable Policy / Labeling
                                                                                                and Tagging
DDS Standard Evolution
                     2008                                                                                                 2008

             UML4DDS                            §  Remote Method                                                 UML4DDS
                                                    Invocations over DDS




                                                                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                §  Synchronous, Asynchronous
              App                                   and one ways RMI                                               App
             2012                                                                                                                2012
                                                              Standard API
        DDS-RMI                                                                                                       DDS-RMI
                     2004                                       2010            2010                                      2004




                                                                                       2012


                                                                                                     2011
                            2011


                                         2012




                                                                                                        Web-DDS
                               Web-DDS

                                                       ISO-C++ PSM      Java5 PSM




                                                                                          Security
                                            Security
2010




                                                                                                                                   2010
               DDS                                                                                                  DDS
   X-Types




                                                                                                                                        X-Types
                     2006                                                                                                 2006
             ULS-DDSI                                             network                                         ULS-DDSI

                                                              Interoperable
                                                               Wire Protocol
Concluding Remarks
¨    The DDS specification provides you the most




                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      advanced middleware infrastructure for building
      mission-critical systems
¨    The Specification is evolving to support System of
      Systems and Cloud Messaging
¨    OpenSplice DDS is emerging as the leading
      implementation in the DDS market, quickly
      expanding well beyond its traditional core market
OpenSplice DDS
Delivering Performance, Openness, and Freedom


   http://www.opensplice.com/
  http://www.opensplice.org/                    http://www.slideshare.net/angelo.corsaro
   emailto:opensplicedds@prismtech.com




   http://bit.ly/1Sreg
                                                http://twitter.com/acorsaro/




   http://www.youtube.com/OpenSpliceTube        http://opensplice.blogspot.com

Mais conteúdo relacionado

Mais procurados

Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Angelo Corsaro
 
DDS for JMS Programmers
DDS for JMS ProgrammersDDS for JMS Programmers
DDS for JMS ProgrammersAngelo Corsaro
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IAngelo Corsaro
 
Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Gerardo Pardo-Castellote
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileAngelo Corsaro
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
Advanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAdvanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAngelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIAngelo Corsaro
 
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 ScalaAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
OpenSplice Security Module
OpenSplice Security ModuleOpenSplice Security Module
OpenSplice Security ModuleAngelo Corsaro
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Angelo Corsaro
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSAngelo Corsaro
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Sumant Tambe
 
RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010Gerardo Pardo-Castellote
 

Mais procurados (20)

DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
 
Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley
 
DDS for JMS Programmers
DDS for JMS ProgrammersDDS for JMS Programmers
DDS for JMS Programmers
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
 
Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice Mobile
 
HLA over DDS
HLA over DDSHLA over DDS
HLA over DDS
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
Advanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAdvanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part II
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
Real time simulation with HLA and DDS
Real time simulation with HLA and DDSReal time simulation with HLA and DDS
Real time simulation with HLA and DDS
 
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
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
OpenSplice Security Module
OpenSplice Security ModuleOpenSplice Security Module
OpenSplice Security Module
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.
 
Simware RTI: Hello World!
Simware RTI: Hello World!Simware RTI: Hello World!
Simware RTI: Hello World!
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDS
 
ISO C++ DDS PSM
ISO C++ DDS PSMISO C++ DDS PSM
ISO C++ DDS PSM
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++
 
RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010
 

Destaque

Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDSAngelo Corsaro
 
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSOverloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSSumant Tambe
 
Cyberpolitics 2009 W5
Cyberpolitics 2009 W5Cyberpolitics 2009 W5
Cyberpolitics 2009 W5oiwan
 
Investment decisions for pension funds by intangible value capital
Investment decisions for pension funds by intangible value capitalInvestment decisions for pension funds by intangible value capital
Investment decisions for pension funds by intangible value capitalJAYARAMAN IYER
 
Women's Social Leadership Awards 2013 presentation
Women's Social Leadership Awards 2013 presentationWomen's Social Leadership Awards 2013 presentation
Women's Social Leadership Awards 2013 presentationOgunte CIC
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology IncubatorsAngelo Corsaro
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютераVirus91
 
Ralph credentials Deck 2012
Ralph credentials Deck 2012Ralph credentials Deck 2012
Ralph credentials Deck 2012Jay Armitage
 
Argus & Associates Brochure
Argus & Associates BrochureArgus & Associates Brochure
Argus & Associates Brochureargusgos
 
Crosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingCrosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingFaye Brownlie
 
The Flu Virus In An Aerosol Droplet
The Flu Virus In An Aerosol DropletThe Flu Virus In An Aerosol Droplet
The Flu Virus In An Aerosol Dropletdushan
 
Haverhill, MA needs a fiber network
Haverhill, MA needs a fiber network Haverhill, MA needs a fiber network
Haverhill, MA needs a fiber network John Michitson
 

Destaque (20)

Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDS
 
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSOverloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
 
Presentation 12.19
Presentation 12.19Presentation 12.19
Presentation 12.19
 
1fevrier
1fevrier1fevrier
1fevrier
 
Cyberpolitics 2009 W5
Cyberpolitics 2009 W5Cyberpolitics 2009 W5
Cyberpolitics 2009 W5
 
MRLC Feb Reading
MRLC Feb ReadingMRLC Feb Reading
MRLC Feb Reading
 
Investment decisions for pension funds by intangible value capital
Investment decisions for pension funds by intangible value capitalInvestment decisions for pension funds by intangible value capital
Investment decisions for pension funds by intangible value capital
 
Women's Social Leadership Awards 2013 presentation
Women's Social Leadership Awards 2013 presentationWomen's Social Leadership Awards 2013 presentation
Women's Social Leadership Awards 2013 presentation
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology Incubators
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
 
Pangkor
PangkorPangkor
Pangkor
 
Ralph credentials Deck 2012
Ralph credentials Deck 2012Ralph credentials Deck 2012
Ralph credentials Deck 2012
 
Argus & Associates Brochure
Argus & Associates BrochureArgus & Associates Brochure
Argus & Associates Brochure
 
Crosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingCrosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about Thinking
 
Simplethings
SimplethingsSimplethings
Simplethings
 
The Flu Virus In An Aerosol Droplet
The Flu Virus In An Aerosol DropletThe Flu Virus In An Aerosol Droplet
The Flu Virus In An Aerosol Droplet
 
ikh323-01
ikh323-01ikh323-01
ikh323-01
 
Haverhill, MA needs a fiber network
Haverhill, MA needs a fiber network Haverhill, MA needs a fiber network
Haverhill, MA needs a fiber network
 
Negation
NegationNegation
Negation
 
Regency Lodge Omaha
Regency Lodge OmahaRegency Lodge Omaha
Regency Lodge Omaha
 

Semelhante a The Present and Future of DDS

OMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityOMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityGerardo Pardo-Castellote
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability DemoAngelo Corsaro
 
Interoperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareInteroperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareGerardo Pardo-Castellote
 
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/SubscribeSumant Tambe
 
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/SubscribeReal-Time Innovations (RTI)
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDSRick Warren
 
Why join eccma 2013 02-26
Why join eccma 2013 02-26Why join eccma 2013 02-26
Why join eccma 2013 02-26PeterBenson
 
OMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integrationOMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integrationGerardo Pardo-Castellote
 
MPEG DASH Developments in ST
MPEG DASH Developments in STMPEG DASH Developments in ST
MPEG DASH Developments in STIMTC
 
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25Real-Time Innovations (RTI)
 
Optimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDNOptimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDNinside-BigData.com
 
DDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoDDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoAngelo Corsaro
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSRick Warren
 
Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brusselsmilsoftSDC
 
SoftDEL HART Protocol Stack Exclusive Offer
SoftDEL HART Protocol Stack Exclusive OfferSoftDEL HART Protocol Stack Exclusive Offer
SoftDEL HART Protocol Stack Exclusive OfferSoftDEL
 

Semelhante a The Present and Future of DDS (20)

OMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityOMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle Interoperability
 
Business Models for Interoperability
Business Models for InteroperabilityBusiness Models for Interoperability
Business Models for Interoperability
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability Demo
 
Interoperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareInteroperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric Middleware
 
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
 
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
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 
Why join ECCMA
Why join ECCMAWhy join ECCMA
Why join ECCMA
 
Why join eccma 2013 02-26
Why join eccma 2013 02-26Why join eccma 2013 02-26
Why join eccma 2013 02-26
 
OMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integrationOMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integration
 
The Promise of Interoperability
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of Interoperability
 
Interoperable DDS Strategies
Interoperable DDS StrategiesInteroperable DDS Strategies
Interoperable DDS Strategies
 
MPEG DASH Developments in ST
MPEG DASH Developments in STMPEG DASH Developments in ST
MPEG DASH Developments in ST
 
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
 
Optimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDNOptimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDN
 
DDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoDDS 2010 Interoperability Demo
DDS 2010 Interoperability Demo
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDS
 
What Can DDS Do For You?
What Can DDS Do For You?What Can DDS Do For You?
What Can DDS Do For You?
 
Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brussels
 
SoftDEL HART Protocol Stack Exclusive Offer
SoftDEL HART Protocol Stack Exclusive OfferSoftDEL HART Protocol Stack Exclusive Offer
SoftDEL HART Protocol Stack Exclusive Offer
 

Mais de Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationAngelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo Corsaro
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo Corsaro
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo Corsaro
 

Mais de Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

The Present and Future of DDS

  • 1. The Present and Future " of DDS Angelo Corsaro, Ph.D. Chief Technology Officer! OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com!
  • 4. Data Distribution for Real-Time Systems ¨  Introduced in 2004 to address the Data Copyright  2011,  PrismTech  –    All  Rights  Reserved.   Distribution challenges faced by a wide class of Defense and Aerospace Applications ¨  Key requirement for the standard were to deliver very high, predictable, performance while scaling from embedded to ultra-large-scale deployments ¨  Recommended by key administration worldwide ¨  Widely adopted across several different domains, e.g., Automated Trading, Simulations, SCADA, Telemetry, etc.
  • 5. DDS Standards Family Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App Standard API 2004 DDS §  Standard API for Data- Centric Real-Time Pub/Sub §  Automatic fail-over §  Persistence §  Dynamic Discovery §  Content Filtering / Queries
  • 6. DDS Standards Family Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2004 DDS DDS 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol §  High Performance §  Interoperable Wire Protocol
  • 7. DDS Standards Family 2008 2008 UML4DDS §  UML-Based Modeling of UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   DDS applications App App Standard API 2004 2004 DDS DDS 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 8. DDS Standards Family 2008 2008 UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2004 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS §  Extensible/Evolvable Type Interoperable System Wire Protocol §  Dynamic Topic Types, Data Readers & Writers §  Encoding Negotiation
  • 9. DDS Standards Family 2008 §  ISO C++ DDS PSM 2008 §  Simple, Safe, Efficient, UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   Elegant and Ergonomic API App App Standard API 2004 2010 2004 ISO-C++ PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 10. DDS Standards Family 2008 §  Java 5 DDS PSM 2008 §  Simple, Safe, Efficient, UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   Elegant and Ergonomic API App App Standard API 2004 2010 2010 2004 ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 11. OMG DDS + DDSI/RTPS ¨  Language Independent, OS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   Application and HW architecture independent Object/Relational Mapping Data Local Reconstruction Layer (DLRL) ¨  Standard API Topic-Based, Real- Time Publish/Subscribe Ownership Durability Content Subscription ¨  Built-in support for fail-over, Minimum Profile filtering, query, data durability Data Centric Publish/Subscribe (DCPS) ¨  Standard wire protocol allowing Real-Time Publish/Subscribe Protocol interoperability between DDS Interoperability Wire Protocol different implementations of the DDS standard UDP/IP
  • 12. How does it work?
  • 13. What is Data Distribution? [1/2] Data distribution is about Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  making application defined data available where needed and when needed ¨  Data is a first class concept, it can be created, updated, read and eventually disposed ¨  The last value (or last N-values) of a Data is available Global Data Space
  • 14. What is Data Distribution? [2/2] Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  The details of how application data is encapsulated and propagated are dealt by the data distribution technology
  • 15. DDS Topics The definition of Data in DDS is com.myco.VehiclePositionTopic! Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  tied to the definition of a Topic ¨  A Topic is the association Name between: ¨  Unique Name ¨  Type ¨  QoS Type Topic QoS ¨  A Topic can have associated a key in order to express data com::myco::VehiclePosition! {Reliability,! Deadline,! instances identities Priority,! Durability}!
  • 16. Topic Types struct VehiclePosition{! string plate; //@Key! ¨  Topic types can be defined long x;! in IDL, XML, Java Copyright  2011,  PrismTech  –    All  Rights  Reserved.   longy;! }! ¨  Topics types are extensible and evolvable ¨  Rich set of annotations to Topic TrakCo.VehiclePosition deal with fields that might be optional, shared, etc. Topic Type VehiclePosition Topic Key plate x y ¨  Each unique key value identifies a Topic Instance “A123” 101 202 Topic Instances “B456” 303 202 ¨  Topic Instance, can be Created, Read, Updated, “C789” 101 606 and Disposed (CRUD)
  • 17. Topic Instances and Samples ¨  An update for a Topic Instance is called Sample Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  DDS can maintain a configurable history of samples per Topic Instance
  • 20. The Type System Debate ¨  The debate around type Programming Languages Type Copyright  2011,  PrismTech  –    All  Rights  Reserved.   Systems has animated computer scientist over several decades and is far from being resolved ¨  New Programming Languages are continuing to appear on both sides of the fence Statically Typed (ex.) Dynamically Typed (ex.) F #
  • 21. Are you a Type-Phobic Type? Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Proponents of Dynamically Typed Programming Languages advocate against strong typing in favor of reduced verbosity and added flexibility Yet... Are they so sure that a type system always gets between you and what you are trying to achieve?
  • 22. Strongly Typed Type Systems Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Well designed type-systems don’t add unnecessary verbosity to your application since use sophisticated inference to derive types ¨  Allow the detection of many errors at compile time, thus improving productivity, safety, code quality and reducing the potential for run-time errors ¨  Enable the generation of more efficient code
  • 23. Types and Distributed Systems ¨  The “Type System debate” has not spared distributed systems Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Today we can find different technologies taking different approaches: from completely untyped to strongly typed ¨  The differences are in this case more complex to organize: ¨  Some technologies support only one type, being a string or an array of bytes (e.g. AMQP) ¨  Other technologies support some predefined types (e.g JMS) ¨  Other technologies allow the definition of user-specified types (e.g DDS)
  • 24. Types and Distributed Systems T3 T1 T2 Copyright  2011,  PrismTech  –    All  Rights  Reserved.   T2 T3 T4 ? T1 T4 T1 T1 T3 T2 User Defined Types Example: T1 = RadarTrack T3 = FlightPlan T1 T2 T3 T4 T2 = ClassificationInfo T4 = ...
  • 25. Types and Distributed Systems T3 T1 Copyright  2011,  PrismTech  –    All  Rights  Reserved.   T2 T2 Pub/Sub Types T3 T1 octect sequence T4 T4 T1 T1 T3 AMQP T2 User Defined Types Example: T1 = RadarTrack T3 = FlightPlan T1 T2 T3 T4 T2 = ClassificationInfo T4 = ...
  • 26. Types and Distributed Systems T3 T1 T2 Copyright  2011,  PrismTech  –    All  Rights  Reserved.   T2 MapMessage T3 ObjectMessage TextMessage T1 T4 StreamMessage T4 ByteMessage Pub/Sub Types T1 T1 JMS T3 T2 Example: T1 = RadarTrack T3 = FlightPlan T2 = ClassificationInfo T4 = ...
  • 27. Types and Distributed Systems T3 T1 Pub/Sub Types == User Types! T2 Copyright  2011,  PrismTech  –    All  Rights  Reserved.   T2 T1 T1 T3 T1 T2 T3 T4 T3 T4 T4 T1 T1 T3 DDS T2 Example: T1 = RadarTrack T3 = FlightPlan T2 = ClassificationInfo T4 = ...
  • 28. “Pre X-Types” DDS Type System ¨  Nominal Type-System w/o sub-typing Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Designed with the Closed-World Assumption in mind, e.g., the information model is global and immutable ¨  Changes to the information model are either non- transparent or non-interoperable with legacy, e.g. require compile/deploy cyce
  • 29. Example ¨  In pre X-Types DDS systems the struct RadarTrack {! Copyright  2011,  PrismTech  –    All  Rights  Reserved.   RadarTrack and RadarTrack3D string id; //@Key! long x;! cannot be associated with }! longy;! the same Topic by different DDS entities ¨  Nor it is possible for Readers expecting RadarTrack types struct RadarTrack3D {! string id; //@Key! to match Writers producing long x;! longy;! RadarTrack3D long z;! }!
  • 30. DDS X-Types Type System ¨  Structural Type System Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Support extensible and evolvable types ¨  A structural sub-type relationship is used to match DataReader and DataWriters ¨  Annotations + QoS Policy provide control on the sub-typing rule
  • 31. Example ¨  Under the X-Types type-system: struct RadarTrack {! Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  RadarTrack3D <: RadarTrack string id; //@Key! long x;! long y;! ¨  As a result Subscribers to }! RadarTrack match Publishers of RadartTrack3D ¨  How about the dual case? struct RadarTrack3D {! ¨  QoS allow to control whether type string id; //@Key! widening are allowed and in provide long x;! control on widened attributes have to long z;! be initialized long y;! }!
  • 32. More on X-Types Copyright  2011,  PrismTech  –    All  Rights  Reserved.   The DDS X-Types standard also provides ¨  An API for dynamically registering topic types and creating DataReader/Writer for these types ¨  A rich set of annotations for declaring shared and optional attributes, etc.
  • 34. Encoding Efficiency Size for Serialized CoFlight Flight Data Plan DDS serialization is Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  several times more efficient than JSON, XML and YAML ¨  Differences can be quite extreme when dealing with complex types DDS encoding is 10x more space efficient than XML!
  • 35. Encoding Impact on RTT Copyright  2011,  PrismTech  –    All  Rights  Reserved.   DDS RTT with different Serialization Format ¨  Inefficient encoding can easily dominate RTT ¨  DDS native encoding is the most efficient among extensible encodings!
  • 36. DDS is very Efficient! DDS implementations are Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  capable of delivering very low and predictable latencies Latency (usec) ¨  No other Pub/Sub technology can approach similar level of performance! Size (bytes)
  • 38. PIM/PSM Approach The DDS standard is Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  PIM (UML) composed by a PIM specified in UML and A PSM specified in IDL PSM (IDL) ¨  Language specific APIs are IDL2C derived via IDL-based IDL2C++ IDL2Java mappings (e.g. IDL2C++, etc.) C C++ Java
  • 39. What is the Problem? Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  IDL is very good for describing DDS Topic Types, yet... ¨  IDL’s biggest strength, namely (programming) language independence, becomes its biggest weakness when trying to define APIs that are well integrated with a programming language ¨  For some programming languages (e.g. C++) the IDL2C++ mapping is “seasoned”
  • 40. What is the Problem? Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Resulting DDS APIs are more complicated than they should ¨  API don’t feel natural or ergonomic to programmers ¨  API (esp. for C++) don’t integrate well with standard libraries nor implements common idioms/patterns.
  • 41. Native C++/Java PSM ¨  The new C++/Java PSM are Copyright  2011,  PrismTech  –    All  Rights  Reserved.   derived starting directly from the PIM PIM (UML) ¨  The new C++/Java PSM take advantage of all the features available in C++/Java to ISO C++ PSM Java 5 PSM provide a natural, productive, efficient, safe and portable API
  • 42. ISO C++ PSM in a Nutshell ¨  Provides transparent, safe, precise and real-time automatic memory Copyright  2011,  PrismTech  –    All  Rights  Reserved.   management ¨  Takes advantage of C++ Template Meta-programming to automate tasks such as type registration and provide a strongly typed API (no downcast ever!) ¨  Provides a DDS API that exploits Iterators and containers as well as other C++ Standard Types ¨  API is extensible, efficient and portable
  • 43. Type Mapping Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  DDS primitive types are mapped to C99/C++ standard types ¨  DDS container types are mapped to standard C++ containers, namely std::vector and std::map
  • 44. Topic Type Mapping C++ Topic Type Mapping class VehiclePosition { Copyright  2011,  PrismTech  –    All  Rights  Reserved.   IDL Topic Type Definition ! VehiclePosition(); ! VehiclePosition(const std::string& plate, ! ! ! int32_t x, int32_t y); struct VehiclePosition { ! string plate; ! virtual ~VehiclePosition(); ! long x; ! long y; ! const std::string& plate() const; }; ! void plate(const std::string& s); #pragma keylist VehiclePosition plate ! const int32_t x() const; ! void x(int32_t i); ! const int32_t y() const; ! void y(int32_t i); private: ! // Encapsulated state representation };
  • 45. Writing Samples // ================== DataWriter =================== Copyright  2011,  PrismTech  –    All  Rights  Reserved.   try { dds::topic::Topic<RadarTrack> topic = DomainId id = 0; dp.create_topic<RadarTrack>("TrackTopic", DomainParticipant dp = "RadarTrack", tqos); TheParticipantFactory().create_participant(id); pub::qos::DataWriterQos dwqos(tqos); pub::qos::PublisherQos pqos; pqos << policy::Partition("Tracks"); pub::DataWriter<RadarTrack> dw = pub.create_datawriter(topic, dwqos); pub::Publisher pub = dp.create_publisher(pqos); RadarTrack track("alpha", 100, 200); topic::qos::TopicQos tqos; dw.write(track); tqos << policy::Reliability::Reliable() // or << policy::Durability::Transient() dw << track; << policy::History::KeepLast(10) << policy::TransportPriority(14); } catch (const dds::core::Exception& e) { }
  • 46. Reading Samples // ================== DataReader=================== dds::topic::Topic<RadarTrack> topic = Copyright  2011,  PrismTech  –    All  Rights  Reserved.   dp.create_topic<RadarTrack>("TrackTopic", try { "RadarTrack", tqos); DomainId id = 0; DomainParticipant dp = sub::qos::DataReaderQos dwqos(tqos); TheParticipantFactory().create_participant(id); sub::DataReader<RadarTrack> dr = sub::qos::SubscriberQos sqos; sub.create_datareader(topic, drqos); sqos << policy::Partition("Tracks"); std::vector<RadarTrack> samples(MY_MAX_LEN); std::vector<SampleInfo> info(MY_MAX_LEN); sub::Subscriber sub = dr.read(samples.begin(), info.begin(), MY_MAX_LEN); dp.create_subscriber(sqos); topic::qos::TopicQos tqos; } catch (const dds::core::Exception& e) { } tqos << policy::Reliability::Reliable() << policy::Durability::Transient() << policy::History::KeepLast(10) << policy::TransportPriority(14);
  • 48. Modern History 2008 Copyright  2011,  PrismTech  –    All  Rights  Reserved.   • Gartner selects DDS as a Cool Technology and Prismtech/OpenSplice DDS as the cool vendor among DDS provider 2009 • To propel and accelerate the adoption of DDS beyond Aerospace and Defense PrismTech Open Sources OpenSplice DDS 2010 OpenSplice DDS • With over 3000 new users in the last year OpenSplice DDS establishes #1 itself as the most widely used and deployed DDS implementation
  • 49. Product Adoption 20000 OpenSplice Downloads 15000 ~20000 Unique Copyright  2011,  PrismTech  –    All  Rights  Reserved.   Downloads ¨  10000 downloads since October 5000 2009 3000 0 OpenSplice DDS Registered Users ¨  ~3000 Unique 2250 OpenSplice DDS 1500 Users 750 0 Oct 2009 Oct 2010
  • 50. Product Organization Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Four different editions with Enterprise Edition growing sets of functionalities Professional Edition ¨  The Community Edition is Open Source. Compact, Compact Edition Professional and Enterprise Edition are available through Community Edition Commercial Subscriptions / Licensing
  • 51. Community Edition Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  OMG DDS v1.2 Application Content Real-Time Networking DDS v1.2 Ownership Durability Subscription ¨  Minimum Profile ¨  DDSI/RTPS v2.1 Real-Time Pub/Sub (DCPS) DDSI v2.1 Interoperable Wire Protocol Real-Time Networking (DDSI) Licensing Networking Technology ¨  LGPLv3 UDP/IP
  • 52. Compact Edition All Community Ed. features Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  MDE Application Tuner ¨  Power Tools PowerTools Eclipse Visual Modeling Tool Content DDS v1.2 ¨  Ownership Durability Subscription ¨  Tuner Tool Minimum Profile Real-Time Pub/Sub (DCPS) DDSI v2.1 Licensing Real-Time Networking Interoperable Wire Protocol (DDSI) ¨  Commercial Subscription / Licenses Networking Technology PrismTech Source Code License UDP/IP ¨  (non-copy-left)
  • 53. Professional Edition Copyright  2011,  PrismTech  –    All  Rights  Reserved.   All Compact Ed. Features MDE Application ¨  Tuner Object/Relational Mapping DLRL v1.2 PowerTools Object-Oriented Pub/Sub (DLRL) DDS v1.2 ¨  Content Ownership Durability Subscription ¨  Connectors Minimum Profile Real-Time Pub/Sub (DCPS) ¨  SOAP DDSI v2.1 Interoperable Wire Protocol SOAP Real-Time Networking (DDSI) Licensing Connectors Networking Technology ¨  Commercial Subscription / Licenses UDP/IP ¨  PrismTech Source Code License (non-copy-left)
  • 54. Enterprise Edition ¨  All Professional Ed. Features Copyright  2011,  PrismTech  –    All  Rights  Reserved.   MDE Application Security Tuner Object/Relational Mapping ¨  PowerTools Object-Oriented Pub/Sub (DLRL) DDS v1.2 Connectors Content Ownership Persistence ¨  Subscription DBMS Minimum Profile DBMS Connectors Real-Time Pub/Sub(DCPS) ¨  DDSI v2.1 Real-Time Interoperable Wire SOAP Secure Networking Networking Protocol (DDSI) Licensing Connectors Networking Technology ¨  Commercial Subscription / Licenses UDP/IP ¨  PrismTech Source Code License (non-copy-left)
  • 56. Some Selected Users Copyright  2011,  PrismTech  –    All  Rights  Reserved.  
  • 57. Some Use Cases Aerospace & Defense Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Naval Combat Management Systems ¨  Submarines ¨  Vetronics (Military Vehicles) ¨  Tactical Links ¨  Simulation ¨  Cybercrime ¨  Flycatcher Systems ¨  Data Fusion ¨  Battle Transformation Center
  • 58. Some Use Cases Transportation Copyright  2011,  PrismTech  –    All  Rights  Reserved.   ¨  Drones ¨  Air Traffic Control & Management ¨  Metropolitan Transportation Financial Services ¨  Automated Trading Firms ¨  Risk Management Firms
  • 60. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 61. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 2011 2011 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable §  Standardized way of Wire Protocol accessing DDS from Web Technologies §  REST, W3C WS-*, RSS, etc.
  • 62. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 2011 2011 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2011 2011 ULS-DDSI network ULS-DDSI §  Ultra-Large Scale Extensions Interoperable to the DDSI/RTPS wire- Wire Protocol protocol §  New Discovery §  Support for TCP, etc.
  • 63. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 2012 2011 2011 2012 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM Security Security 2010 2010 DDS DDS X-Types X-Types 2006 2006 ULS-DDSI network ULS-DDSI Interoperable §  Interoperable Security Wire Protocol Architecture §  Pluggable Policy / Labeling and Tagging
  • 64. DDS Standard Evolution 2008 2008 UML4DDS §  Remote Method UML4DDS Invocations over DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved.   §  Synchronous, Asynchronous App and one ways RMI App 2012 2012 Standard API DDS-RMI DDS-RMI 2004 2010 2010 2004 2012 2011 2011 2012 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM Security Security 2010 2010 DDS DDS X-Types X-Types 2006 2006 ULS-DDSI network ULS-DDSI Interoperable Wire Protocol
  • 65. Concluding Remarks ¨  The DDS specification provides you the most Copyright  2011,  PrismTech  –    All  Rights  Reserved.   advanced middleware infrastructure for building mission-critical systems ¨  The Specification is evolving to support System of Systems and Cloud Messaging ¨  OpenSplice DDS is emerging as the leading implementation in the DDS market, quickly expanding well beyond its traditional core market
  • 66. OpenSplice DDS Delivering Performance, Openness, and Freedom http://www.opensplice.com/ http://www.opensplice.org/ http://www.slideshare.net/angelo.corsaro emailto:opensplicedds@prismtech.com http://bit.ly/1Sreg http://twitter.com/acorsaro/ http://www.youtube.com/OpenSpliceTube http://opensplice.blogspot.com