Your SlideShare is downloading. ×
DDS Efficiency and Extensibility
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

DDS Efficiency and Extensibility

1,065
views

Published on

This presentations provides a measure of DDS time and space efficiency when compared to XML/JSON based technologies (such as WebServices). The presentation also explains how DDS's type systems …

This presentations provides a measure of DDS time and space efficiency when compared to XML/JSON based technologies (such as WebServices). The presentation also explains how DDS's type systems supports the design of extensible and evolvable distributed applications.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,065
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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