SlideShare a Scribd company logo
1 of 37
Download to read offline
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                              Efficiency and Extensibility
                                                              Angelo Corsaro, Ph.D.
                                                              [angelo.corsaro@prismtech.com]
                                                              Chief Technology Officer   DDS SIG Co-Chair
                                                              PrismTech                 Object Management Group (OMG)
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./type-matters




                     © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              The Type Systems Debate
                                                              ‣ The debate around type Programming Languages Type Systems




                                                                                                                                 © 2010 PrismTech. All Rights Reserved.
                                                               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 #
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Are you a Type-Phobic Type?




                                                                                                                              © 2010 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?
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                              Strongly-Typed Type-Systems




                                                                                                                                 © 2010 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
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                              Types and Distributed Systems
                                                               ‣ The “Type System debate” has not spared distributed systems




                                                                                                                                               © 2010 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)
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Types and Distributed Systems




                                                                                                                                              © 2010 PrismTech. All Rights Reserved.
                                                                                                      T3
                                                                        T1
                                                                        T2                            T2



                                                                   T3

                                                                   T4
                                                                                       ?                    T1

                                                                                                            T4


                                                                        T1                             T1

                                                                        T3                             T2



                                                                             User Defined Types   Example:
                                                                                                   T1 = RadarTrack          T3 = FlightPlan
                                                                             T1   T2   T3   T4
                                                                                                   T2 = ClassificationInfo   T4 = ...
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Types and Distributed Systems




                                                                                                                                                    © 2010 PrismTech. All Rights Reserved.
                                                                                                            T3
                                                                        T1
                                                                        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 = ...
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Types and Distributed Systems




                                                                                                                                                        © 2010 PrismTech. All Rights Reserved.
                                                                                                                T3
                                                                        T1
                                                                        T2                                      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 = ...
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Types and Distributed Systems




                                                                                                                                                         © 2010 PrismTech. All Rights Reserved.
                                                                                                                 T3
                                                                        T1   Pub/Sub Types == User Types!
                                                                        T2                                       T2

                                                                                T1         T1
                                                                   T3                                                  T1
                                                                                     T2        T3
                                                                   T4                               T3                 T4
                                                                                          T4
                                                                        T1                                        T1


                                                                                      DDS
                                                                        T3                                        T2



                                                                                                            Example:
                                                                                                              T1 = RadarTrack          T3 = FlightPlan
                                                                                                              T2 = ClassificationInfo   T4 = ...
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./dds-types




                    © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Topic: the unit of Information
                                                              Topic Type




                                                                                                                                                  © 2010 PrismTech. All Rights Reserved.
                                                                                                             Track, UFO, AirCraft, ...
                                                              ‣ Extensible and Evolvable
                                                                Unit of information                              Name
                                                                exchanged between
                                                                Publisher and Subscribers.
                                                                                                 Type            Topic              QoS
                                                              ‣ An association between a
                                                                unique name, a type and      TrackedObject                      {
                                                                                                                                    Reliability
                                                                a QoS setting                                                       Deadline,
                                                                                                                                    Priority
                                                                                                                                    Transient,
                                                                                                                                     ...
                                                                                                                                }
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Topic: the unit of Information
                                                              Topic Type
                                                              ‣ Extensible and evolvable Type




                                                                                                                              © 2010 PrismTech. All Rights Reserved.
                                                                describing the data associated with
                                                                one or more Topics
                                                                                                      struct Track {
                                                                                                         long   tid; //@key
                                                              ‣ A key, made by one or more               long   x;
                                                                attributes                               long   y;
                                                                                                      };
                                                              ‣ Annotations express attribute
                                                                properties

                                                              ‣ Expressed in IDL, Java, XML, or UML
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Writing Tracks
                                                                using dds::core; using dds::domain;
                                                                using dds::pub; using dds::topic;




                                                                                                                                © 2010 PrismTech. All Rights Reserved.
                                                                DomainId id = 0;

                                                                DomainParticipant dp =
                                                                   theParticipantFactory().create_participant(id);

                                                                Publisher pub = dp.create_publisher();

                                                                Topic<RadarTrack> topic = dp.create_topic("RadarTrackTopic");
                                                                DataWriter<RadarTrack> dw = pub.create_datawriter();

                                                                RadarTrack t("T101", 100, 200);

                                                                dw.write(t);
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Reading Tracks
                                                               using dds::core; using dds::domain;
                                                               using dds::pub; using dds::topic;




                                                                                                                               © 2010 PrismTech. All Rights Reserved.
                                                               DomainId id = 0;
                                                               DomainParticipant dp(id);

                                                               DomainParticipant dp =
                                                                  theParticipantFactory().create_participant();

                                                               Subscriber sub = dp.create_subscriber();

                                                               Topic<RadarTrack> topic = dp.create_topic("RadarTrackTopic");
                                                               DataReader<RadarTrack> reader = sub.create_datareader();

                                                               std::vector<RadarTrack> t(max_size);
                                                               std::vector<SampleInfo> i(max_size);

                                                               reader.read(t.begin(), i.begin(), max_size);
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./efficiency




                    © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Encoding Efficiency
                                                                                               Size for Serialized CoFlight Flight Data Plan




                                                                                                                                                               © 2010 PrismTech. All Rights Reserved.
                                                              ‣ DDS serialization is several
                                                                times more efficient than
                                                                JSON, XML and YAML

                                                              ‣ Differences can be quite
                                                                extreme when dealing with                                  see Esposito et al. OMG RTWS 2008


                                                                complex types
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Encoding Impact on RTT
                                                                                           DDS RTT with different Serialization Format
                                                                                                                         see Esposito et al. OMG RTWS 2008




                                                                                                                                                             © 2010 PrismTech. All Rights Reserved.
                                                              ‣ Inefficient encoding can
                                                                easily dominate RTT

                                                              ‣ DDS native encoding is
                                                                the most efficient among
                                                                extensible encodings!
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              DDS is Very Efficient!




                                                                                                                            © 2010 PrismTech. All Rights Reserved.
                                                              ‣ DDS implementations are
                                                               capable of delivering very
                                                               low and predictable




                                                                                            Latency (usec)
                                                               latencies

                                                              ‣ No other Pub/Sub
                                                               technology can approach
                                                               similar level of
                                                               performance!

                                                                                                             Size (bytes)
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./extensibility




                     © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Type Extensibility




                                                                                                                             © 2010 PrismTech. All Rights Reserved.
                                                              Problem
                                                              ‣ What if we need to extend the RadarTrack type to add the
                                                                derivative on the x and y direction?

                                                              ‣ How can we do this with no impact on running applications?
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Type Extensibility
                                                              Solution
                                                              ‣ Simply extend the existing RadarTrack and properly annotate new




                                                                                                                                         © 2010 PrismTech. All Rights Reserved.
                                                                attributes
                                                              ‣ Existing application will detect that the new type is an extension and
                                                                will “project/extend” it to the known type
                                                              ‣ Type “projection/extensions” can be controlled via QoS
                                                                  struct Track {                         struct Track {
                                                                     long   tid; //@key                     long   tid; //@key
                                                                     long   x, y;                           long   x, y;
                                                                  };                                        long   dx, dy;
                                                                                                         };
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Type Extensibility
                                                              Problem




                                                                                                                                   © 2010 PrismTech. All Rights Reserved.
                                                              ‣ OK, that was good. But now I need to add an optional plot to
                                                                my track

                                                              ‣ How can I add an optional field? Furthermore, I don’t want the
                                                                plot to be copied into the topic, I’d like it to be a reference.
                                                                Can I do this to limit the number of copies and reduce he
                                                                memory utilization?
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Type Extensibility
                                                              Solution




                                                                                                                          © 2010 PrismTech. All Rights Reserved.
                                                              ‣ Simply extend the existing RadarTrack and properly
                                                               annotate new attributes


                                                               struct Track {                  struct Track {
                                                                  long   tid; //@key              long   tid; //@key
                                                                  long   x, y;                    long   x, y;
                                                                  long   dx, dy;                  long   dx, dy;
                                                               };                                 sequence<octet> plot;
                                                                                                  //@optional @shared
                                                                                               };
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              In Summary
                                                              ‣ DDS provides a strongly typed extensible type system




                                                                                                                                     © 2010 PrismTech. All Rights Reserved.
                                                              ‣ Types can be evolved and extended without breaking backward
                                                                compatibility nor loosing type-safety

                                                              ‣ Type “Projection/Promotions” can be fully controlled via QoS
                                                              ‣ This flexibility does not come at the cost of introducing the time
                                                                +space overhead typical of XML-based approaches


                                                                       DDS provides extensibility without compromising efficiency!
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./coming-soon




                     © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./web-enabled




                     © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                        Track




  Radar
                                                        Classifier




                      DDS
                                                                     Display




                    © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                           Track
                                           Classifier




                     JMS
                                                        Track




  Radar
                                                        Classifier




                      DDS
                                                                     Display




                    © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                  Track
                                                  Classifier




                          JMS
                                                               Track




  Radar
                         REST
                                                               Classifier




                           DDS
                                                                            Display




                                    Web Browser



                iPhone




                         © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                   Track
                                                   Classifier




                           JMS
                                                                Track




  Radar
                                                                Classifier




                            DDS
                                                                Position
                                                                Working
                                                                Controller




                                                   WS-*




          REST
                                     Web Browser
                                                   Tuner




                 iPhone




                          © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Web-Enabled DDS
                                                              Standardize access to the DDS Global Data Space via:




                                                                                                                     © 2010 PrismTech. All Rights Reserved.
                                                              ‣ RESTful Web Services
                                                              ‣ W3C Web Services
                                                              ‣ RSS
                                                              ‣ Atom
                                                              ‣ XMPP
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./demo




                    © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                  ./security




                    © 2010 PrismTech. All Rights Reserved.
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Secure DDS




                                                                                                                                © 2010 PrismTech. All Rights Reserved.
                                                              ‣ An RFP is close to be finalized for standardizing a security
                                                                solution for DDS

                                                              ‣ Key use cases taken into consideration come from Military and
                                                                Civilian systems
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS




                                                              Concluding Remarks




                                                                                                                                © 2010 PrismTech. All Rights Reserved.
                                                              ‣ DDS is a standard that was designed for time/space efficiency
                                                                as well as real-time predictability

                                                              ‣ DDS provides support for end-to-end type propagation and type
                                                                checking with a very powerful type extensibility mechanism

                                                              ‣ Upcoming standards for DDS are coming to address integration
                                                                with Web/Internet technologies as well as security
DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS



                                                              Learn More
                                                              ‣ Data Distribution Service for Real-Time Systems




                                                                                                                            © 2010 PrismTech. All Rights Reserved.
                                                              ‣ Extensible and Dynamic Topic Types Specification
                                                              ‣ Web-Enabled DDS RFP

                                                                    http://www.omgwiki.org/dds/content/page/specifications

More Related Content

Viewers also liked

Implication Of Web Chat Channel On Business
Implication Of Web Chat Channel On BusinessImplication Of Web Chat Channel On Business
Implication Of Web Chat Channel On Businessmunishvirang
 
The Seven Deadly Sins of Incentive Compensation
The Seven Deadly Sins of Incentive CompensationThe Seven Deadly Sins of Incentive Compensation
The Seven Deadly Sins of Incentive CompensationBriscoe Pelkey
 
Formación en centro 15 16
Formación en centro 15 16Formación en centro 15 16
Formación en centro 15 16XXX XXX
 
Mobile QoS Management using Complex Event Processing
Mobile QoS Management using Complex Event ProcessingMobile QoS Management using Complex Event Processing
Mobile QoS Management using Complex Event ProcessingMauricio Arango
 
Estuarians - Inspiring Social Innovators in Residence
Estuarians - Inspiring Social Innovators in ResidenceEstuarians - Inspiring Social Innovators in Residence
Estuarians - Inspiring Social Innovators in ResidenceOgunte CIC
 
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
 
CBI Presentation March 2011
CBI Presentation March 2011CBI Presentation March 2011
CBI Presentation March 2011thess1121
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféAngelo Corsaro
 
獨立媒體六四專輯
獨立媒體六四專輯獨立媒體六四專輯
獨立媒體六四專輯oiwan
 
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
 
How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2cfrangos
 
Hul cream report why-ratings_are_far_lower
Hul cream report why-ratings_are_far_lowerHul cream report why-ratings_are_far_lower
Hul cream report why-ratings_are_far_lowerJAYARAMAN IYER
 
Bio Pharm Collaborations 9 09
Bio Pharm Collaborations 9 09Bio Pharm Collaborations 9 09
Bio Pharm Collaborations 9 09thess1121
 
Living in a Post-Morrison World
Living in a Post-Morrison WorldLiving in a Post-Morrison World
Living in a Post-Morrison WorldReed Kathrein
 

Viewers also liked (20)

Implication Of Web Chat Channel On Business
Implication Of Web Chat Channel On BusinessImplication Of Web Chat Channel On Business
Implication Of Web Chat Channel On Business
 
Good thoughts
Good thoughtsGood thoughts
Good thoughts
 
The Seven Deadly Sins of Incentive Compensation
The Seven Deadly Sins of Incentive CompensationThe Seven Deadly Sins of Incentive Compensation
The Seven Deadly Sins of Incentive Compensation
 
Formación en centro 15 16
Formación en centro 15 16Formación en centro 15 16
Formación en centro 15 16
 
ISO C++ DDS PSM
ISO C++ DDS PSMISO C++ DDS PSM
ISO C++ DDS PSM
 
Mobile QoS Management using Complex Event Processing
Mobile QoS Management using Complex Event ProcessingMobile QoS Management using Complex Event Processing
Mobile QoS Management using Complex Event Processing
 
Estuarians - Inspiring Social Innovators in Residence
Estuarians - Inspiring Social Innovators in ResidenceEstuarians - Inspiring Social Innovators in Residence
Estuarians - Inspiring Social Innovators in Residence
 
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
 
ikp321-svn
ikp321-svnikp321-svn
ikp321-svn
 
ikp213-02-pendahuluan
ikp213-02-pendahuluanikp213-02-pendahuluan
ikp213-02-pendahuluan
 
CBI Presentation March 2011
CBI Presentation March 2011CBI Presentation March 2011
CBI Presentation March 2011
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
獨立媒體六四專輯
獨立媒體六四專輯獨立媒體六四專輯
獨立媒體六四專輯
 
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
 
How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2
 
ikd312-09-normalisasi
ikd312-09-normalisasiikd312-09-normalisasi
ikd312-09-normalisasi
 
Hul cream report why-ratings_are_far_lower
Hul cream report why-ratings_are_far_lowerHul cream report why-ratings_are_far_lower
Hul cream report why-ratings_are_far_lower
 
Bio Pharm Collaborations 9 09
Bio Pharm Collaborations 9 09Bio Pharm Collaborations 9 09
Bio Pharm Collaborations 9 09
 
ikd312-08-fd
ikd312-08-fdikd312-08-fd
ikd312-08-fd
 
Living in a Post-Morrison World
Living in a Post-Morrison WorldLiving in a Post-Morrison World
Living in a Post-Morrison World
 

Similar to DDS Efficiency and Extensibility

Dynamic Language Practices
Dynamic Language PracticesDynamic Language Practices
Dynamic Language PracticesPaul King
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability DemoAngelo Corsaro
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsAngelo Corsaro
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IAngelo Corsaro
 
Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...
Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...
Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...Guillaume Laforge
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSAngelo Corsaro
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsAngelo Corsaro
 
Paulking dlp
Paulking dlpPaulking dlp
Paulking dlpd0nn9n
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsZettaScaleTechnology
 
Stream Processing with DDS and CEP
Stream Processing with  DDS and CEPStream Processing with  DDS and CEP
Stream Processing with DDS and CEPAngelo Corsaro
 
TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...
TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...
TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...TAUS - The Language Data Network
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDSAngelo Corsaro
 
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Gustavo Fuentes Zurita
 
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Gustavo Fuentes Zurita
 
DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesAngelo Corsaro
 
Building Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDSBuilding Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDSAngelo Corsaro
 

Similar to DDS Efficiency and Extensibility (20)

Dynamic Language Practices
Dynamic Language PracticesDynamic Language Practices
Dynamic Language Practices
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability Demo
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS Applications
 
DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
 
Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...
Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...
Designing Your Own Domain-Specific Language in Groovy by Guillaume Laforge at...
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDS
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
Paulking dlp
Paulking dlpPaulking dlp
Paulking dlp
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The Origins
 
Stream Processing with DDS and CEP
Stream Processing with  DDS and CEPStream Processing with  DDS and CEP
Stream Processing with DDS and CEP
 
Intro To Starling Framework for ActionScript 3.0
Intro To Starling Framework for ActionScript 3.0Intro To Starling Framework for ActionScript 3.0
Intro To Starling Framework for ActionScript 3.0
 
TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...
TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...
TAUS USER CONFERENCE 2010, Man, Machine and advanced translation memory lever...
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDS
 
Cloudand Xchange
Cloudand XchangeCloudand Xchange
Cloudand Xchange
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
 
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02
 
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02
 
DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart Cities
 
Building Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDSBuilding Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDS
 

More from 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
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo 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
 

More from 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
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 

Recently uploaded

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Recently uploaded (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

DDS Efficiency and Extensibility

  • 1. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Efficiency and Extensibility Angelo Corsaro, Ph.D. [angelo.corsaro@prismtech.com] Chief Technology Officer DDS SIG Co-Chair PrismTech Object Management Group (OMG)
  • 2. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./type-matters © 2010 PrismTech. All Rights Reserved.
  • 3. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS The Type Systems Debate ‣ The debate around type Programming Languages Type Systems © 2010 PrismTech. All Rights Reserved. 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 #
  • 4. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Are you a Type-Phobic Type? © 2010 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?
  • 5. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Strongly-Typed Type-Systems © 2010 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
  • 6. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Types and Distributed Systems ‣ The “Type System debate” has not spared distributed systems © 2010 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)
  • 7. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Types and Distributed Systems © 2010 PrismTech. All Rights Reserved. T3 T1 T2 T2 T3 T4 ? T1 T4 T1 T1 T3 T2 User Defined Types Example: T1 = RadarTrack T3 = FlightPlan T1 T2 T3 T4 T2 = ClassificationInfo T4 = ...
  • 8. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Types and Distributed Systems © 2010 PrismTech. All Rights Reserved. T3 T1 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 = ...
  • 9. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Types and Distributed Systems © 2010 PrismTech. All Rights Reserved. T3 T1 T2 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 = ...
  • 10. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Types and Distributed Systems © 2010 PrismTech. All Rights Reserved. T3 T1 Pub/Sub Types == User Types! T2 T2 T1 T1 T3 T1 T2 T3 T4 T3 T4 T4 T1 T1 DDS T3 T2 Example: T1 = RadarTrack T3 = FlightPlan T2 = ClassificationInfo T4 = ...
  • 11. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./dds-types © 2010 PrismTech. All Rights Reserved.
  • 12. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Topic: the unit of Information Topic Type © 2010 PrismTech. All Rights Reserved. Track, UFO, AirCraft, ... ‣ Extensible and Evolvable Unit of information Name exchanged between Publisher and Subscribers. Type Topic QoS ‣ An association between a unique name, a type and TrackedObject { Reliability a QoS setting Deadline, Priority Transient, ... }
  • 13. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Topic: the unit of Information Topic Type ‣ Extensible and evolvable Type © 2010 PrismTech. All Rights Reserved. describing the data associated with one or more Topics struct Track { long tid; //@key ‣ A key, made by one or more long x; attributes long y; }; ‣ Annotations express attribute properties ‣ Expressed in IDL, Java, XML, or UML
  • 14. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Writing Tracks using dds::core; using dds::domain; using dds::pub; using dds::topic; © 2010 PrismTech. All Rights Reserved. DomainId id = 0; DomainParticipant dp = theParticipantFactory().create_participant(id); Publisher pub = dp.create_publisher(); Topic<RadarTrack> topic = dp.create_topic("RadarTrackTopic"); DataWriter<RadarTrack> dw = pub.create_datawriter(); RadarTrack t("T101", 100, 200); dw.write(t);
  • 15. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Reading Tracks using dds::core; using dds::domain; using dds::pub; using dds::topic; © 2010 PrismTech. All Rights Reserved. DomainId id = 0; DomainParticipant dp(id); DomainParticipant dp = theParticipantFactory().create_participant(); Subscriber sub = dp.create_subscriber(); Topic<RadarTrack> topic = dp.create_topic("RadarTrackTopic"); DataReader<RadarTrack> reader = sub.create_datareader(); std::vector<RadarTrack> t(max_size); std::vector<SampleInfo> i(max_size); reader.read(t.begin(), i.begin(), max_size);
  • 16. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./efficiency © 2010 PrismTech. All Rights Reserved.
  • 17. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Encoding Efficiency Size for Serialized CoFlight Flight Data Plan © 2010 PrismTech. All Rights Reserved. ‣ DDS serialization is several times more efficient than JSON, XML and YAML ‣ Differences can be quite extreme when dealing with see Esposito et al. OMG RTWS 2008 complex types
  • 18. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Encoding Impact on RTT DDS RTT with different Serialization Format see Esposito et al. OMG RTWS 2008 © 2010 PrismTech. All Rights Reserved. ‣ Inefficient encoding can easily dominate RTT ‣ DDS native encoding is the most efficient among extensible encodings!
  • 19. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS DDS is Very Efficient! © 2010 PrismTech. All Rights Reserved. ‣ DDS implementations are capable of delivering very low and predictable Latency (usec) latencies ‣ No other Pub/Sub technology can approach similar level of performance! Size (bytes)
  • 20. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./extensibility © 2010 PrismTech. All Rights Reserved.
  • 21. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Type Extensibility © 2010 PrismTech. All Rights Reserved. Problem ‣ What if we need to extend the RadarTrack type to add the derivative on the x and y direction? ‣ How can we do this with no impact on running applications?
  • 22. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Type Extensibility Solution ‣ Simply extend the existing RadarTrack and properly annotate new © 2010 PrismTech. All Rights Reserved. attributes ‣ Existing application will detect that the new type is an extension and will “project/extend” it to the known type ‣ Type “projection/extensions” can be controlled via QoS struct Track { struct Track { long tid; //@key long tid; //@key long x, y; long x, y; }; long dx, dy; };
  • 23. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Type Extensibility Problem © 2010 PrismTech. All Rights Reserved. ‣ OK, that was good. But now I need to add an optional plot to my track ‣ How can I add an optional field? Furthermore, I don’t want the plot to be copied into the topic, I’d like it to be a reference. Can I do this to limit the number of copies and reduce he memory utilization?
  • 24. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Type Extensibility Solution © 2010 PrismTech. All Rights Reserved. ‣ Simply extend the existing RadarTrack and properly annotate new attributes struct Track { struct Track { long tid; //@key long tid; //@key long x, y; long x, y; long dx, dy; long dx, dy; }; sequence<octet> plot; //@optional @shared };
  • 25. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS In Summary ‣ DDS provides a strongly typed extensible type system © 2010 PrismTech. All Rights Reserved. ‣ Types can be evolved and extended without breaking backward compatibility nor loosing type-safety ‣ Type “Projection/Promotions” can be fully controlled via QoS ‣ This flexibility does not come at the cost of introducing the time +space overhead typical of XML-based approaches DDS provides extensibility without compromising efficiency!
  • 26. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./coming-soon © 2010 PrismTech. All Rights Reserved.
  • 27. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./web-enabled © 2010 PrismTech. All Rights Reserved.
  • 28. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Track Radar Classifier DDS Display © 2010 PrismTech. All Rights Reserved.
  • 29. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Track Classifier JMS Track Radar Classifier DDS Display © 2010 PrismTech. All Rights Reserved.
  • 30. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Track Classifier JMS Track Radar REST Classifier DDS Display Web Browser iPhone © 2010 PrismTech. All Rights Reserved.
  • 31. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Track Classifier JMS Track Radar Classifier DDS Position Working Controller WS-* REST Web Browser Tuner iPhone © 2010 PrismTech. All Rights Reserved.
  • 32. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Web-Enabled DDS Standardize access to the DDS Global Data Space via: © 2010 PrismTech. All Rights Reserved. ‣ RESTful Web Services ‣ W3C Web Services ‣ RSS ‣ Atom ‣ XMPP
  • 33. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./demo © 2010 PrismTech. All Rights Reserved.
  • 34. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS ./security © 2010 PrismTech. All Rights Reserved.
  • 35. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Secure DDS © 2010 PrismTech. All Rights Reserved. ‣ An RFP is close to be finalized for standardizing a security solution for DDS ‣ Key use cases taken into consideration come from Military and Civilian systems
  • 36. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Concluding Remarks © 2010 PrismTech. All Rights Reserved. ‣ DDS is a standard that was designed for time/space efficiency as well as real-time predictability ‣ DDS provides support for end-to-end type propagation and type checking with a very powerful type extensibility mechanism ‣ Upcoming standards for DDS are coming to address integration with Web/Internet technologies as well as security
  • 37. DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS OMG DDS Learn More ‣ Data Distribution Service for Real-Time Systems © 2010 PrismTech. All Rights Reserved. ‣ Extensible and Dynamic Topic Types Specification ‣ Web-Enabled DDS RFP http://www.omgwiki.org/dds/content/page/specifications