Your SlideShare is downloading. ×
  • Like
Introducing the OMG DDS to the Aerospace Valley
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introducing the OMG DDS to the Aerospace Valley

  • 1,441 views
Published

This presentation provides (1) a tutorial of the OMG DDS standard, (2) an overview of OpenSplice DDS, and (3) concludes with a use case showing how DDS is being used in the next generation European …

This presentation provides (1) a tutorial of the OMG DDS standard, (2) an overview of OpenSplice DDS, and (3) concludes with a use case showing how DDS is being used in the next generation European Air-Traffic Control and Management System

Published in Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,441
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
190
Comments
0
Likes
1

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. OpenSplice DDS Delivering Performance, Openness, and Freedom OMG DDS: The Data Distribution Service for Real-Time Systems
  • 2. Presentation Roadmap •PART I -- The DDS Standard • PART II -- OpenSplice DDS • PART III -- CoFlight Use Case
  • 3. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  • 4. © 2009, PrismTech. All Rights Reserved The Need for Data Distribution Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
  • 5. Time Scale © 2009, PrismTech. All Rights Reserved The Need for Data Distribution Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
  • 6. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. © 2009, PrismTech. All Rights Reserved
  • 7. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Parallelism Systemic Data Signal Processing Processing Parallel Systems © 2009, PrismTech. All Rights Reserved
  • 8. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Parallelism Determinism Systemic Real-Time Data Signal Information Processing Processing Processing Parallel Systems © 2009, PrismTech. All Rights Reserved
  • 9. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Parallelism Determinism Throughput, Availability Systemic Real-Time Near Real-Time Fault- Data Signal Information Tolerant Information Processing Processing Processing Processing Parallel Systems © 2009, PrismTech. All Rights Reserved
  • 10. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Parallelism Determinism Throughput, Availability Scalability, Persistence, Security Systemic Real-Time Near Real-Time Fault- Data Complex Information Signal Information Tolerant Information Processing Processing Management Processing Processing Parallel Systems Distributed Systems © 2009, PrismTech. All Rights Reserved
  • 11. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Parallelism Determinism Throughput, Availability Scalability, Persistence, Security Systemic Real-Time Near Real-Time Fault- Data Complex Information Signal Information Tolerant Information Processing Processing Management Processing Processing Data Distribution Parallel Systems Distributed Systems © 2009, PrismTech. All Rights Reserved
  • 12. Data Exchange / Distribution ‣ Network Centric Architectures are emerging as a key trend for next generation military and civil system of systems ‣ Efficient, scalable and QoS-enabled data dissemination is an enabling technology for Network Joint Forces Joint Forces Centric Systems Global Info Grid Global Info Grid Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Adapted from “The Future of AWACS”, by LtCol Joe Chapa The Right Information => To the Right People => At the Right Time © 2009, PrismTech. All Rights Reserved
  • 13. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  • 14. Addressing Data Distribution Challenges DDS is standard designed to address the data-distribution challenges across The OMG DDS Standard a wide class of Defense and Aerospace Applications ‣ Introduced in 2004 to address the Data Distribution challenges faced by a wide class of Defense and Aerospace Applications Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Key requirement for the standard were its ability to deliver very high performance while seamlessly scaling from embedded to ultra- large-scale deployments ‣ Today recommended by key administration worldwide and widely adopted across several different application domains, such as, Automated Trading, Simulations, SCADA, Telemetry, etc. © 2009, PrismTech. All Rights Reserved
  • 15. The OMG Data Distribution Service (DDS) DDS v1.2 API Standard ‣ Language Independent, OS and HW architecture Application independent Object/Relational Mapping ‣ DCPS. Standard API for Data-Centric, Topic- Data Local Reconstruction Layer (DLRL) Based, Real-Time Publish/Subscribe Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Content ‣ Ownership Durability DLRL. Standard API for creating Object Views out Subscription of collection of Topics Minimum Profile Data Centric Publish/Subscribe (DCPS) DDSI/RTPS v2.1 Wire Protocol Standard ‣ Standard wire protocol allowing interoperability Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol between different implementations of the DDS standard UDP/IP ‣ Interoperability demonstrated among key DDS vendors in March 2009 © 2009, PrismTech. All Rights Reserved
  • 16. OMG DDS Recommendations is churning… ! The infrastructure evolution cycle – New -> Emerging -> Standard -> Commodity – Middleware is emerging as Mandated/Recommended by key Administrations OS declines ! …DDS is maturing… ‣ US Navy: Open Architecture focus – OMG – Wire spec Proprietary Information - Distribution without Expressed Written Permission is Prohibited. – Tools ‣ DISR/DISA: Net-centric Systems – Enterprise integration – Multiple products fielded ‣ EuroControl: Air Traffic Control Center Operational – Deployed applications! Interoperability ! …and adoption is on the rise – Navy for VSI ‣ QinetiQ: Recommending DDS – DISR – FCS/SoSCOE – Many significant applications © 2009, PrismTech. All Rights Reserved
  • 17. OMG DDS Adoptions Adopted by Most Challenging International Programs ‣ US FCS/SOSCOE Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ European Next Generation Flight Data Processor ‣ US ZUMWALT [DDG(1000)] ‣ VTID adopting DDS for the architectural demonstrator © 2009, PrismTech. All Rights Reserved
  • 18. OMG DDS Applicability Adapted from NSWC-DD Open Architecture Documentation Communication Technologies Standards Web SVCs The DDS is the only technology that spans across Java RTSJ the board. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. JMS It guarantees exceptional real- time behavior, CORBA RT-CORBA while providing unparalleled level OMG Data Distribution Service (DDS) of throughput ! MPI Message Passing Interface Non Real-Time Soft Real-Time Hard Real-Time Extreme Real-Time © 2009, PrismTech. All Rights Reserved
  • 19. Some DDS Use Cases Defense ‣ Combat Management Systems ‣ Flycatcher system ‣ Unmanned Vehicles (Air + Land) ‣ Tactical Links Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Radar Processing ‣ Submarine Systems ‣ Future Combat Systems ‣ Simulation SCADA/Utilities ‣ Industrial Automation ‣ Power Grids ‣ Rocket Launch Systems © 2009, PrismTech. All Rights Reserved
  • 20. Some DDS Use Cases Transportation ‣ Air Traffic Management/Control ‣ Metropolitan Traffic Management ‣ Underground Metropolitan Transportation Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Financial Services ‣ Automated Trading Firms ‣ Compliance Systems ‣ Market Data Platforms © 2009, PrismTech. All Rights Reserved
  • 21. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  • 22. OpenSplice DDS Delivering Performance, Openness, and Freedom Loosely Coupled Technology
  • 23. Counting the “W’s” of Coupling Request Client Server The “4Ws” of Client/Server Reply ‣ Who+Where: Space Coupling Client/Server ‣ What: Structural Coupling CORBA, COM+, Java RMI, .Net Remoting, Web SVCs ‣ When: Time Coupling Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Subscriber Publisher A Single “W” for DDS Publisher Subscriber ‣ What: Structural Coupling Publisher DDS features dynamic discovery Subscriber DDS and full time decoupling! © 2009, PrismTech. All Rights Reserved
  • 24. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client © 2009, PrismTech. All Rights Reserved
  • 25. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client © 2009, PrismTech. All Rights Reserved
  • 26. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client © 2009, PrismTech. All Rights Reserved
  • 27. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client © 2009, PrismTech. All Rights Reserved
  • 28. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment ‣ Inherently One-to-One ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. © 2009, PrismTech. All Rights Reserved
  • 29. Client Server vs. Publish Subscribe Server Client/Server Client ‣ Tight Coupling (4W) ‣ Complex Deployment ‣ Inherently One-to-One ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. © 2009, PrismTech. All Rights Reserved
  • 30. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher Subscriber Publisher Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 31. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS Subscriber Publisher Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 32. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS ‣ Loosely Coupled (1W) Subscriber Publisher Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 33. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS ‣ Loosely Coupled (1W) Subscriber Publisher ‣ Plug & Play Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 34. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS ‣ Loosely Coupled (1W) Subscriber Publisher ‣ Plug & Play Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 35. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS ‣ Loosely Coupled (1W) Subscriber Publisher ‣ Plug & Play ‣ Inherently Many-to-Many Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 36. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS ‣ Loosely Coupled (1W) Subscriber Publisher ‣ Plug & Play ‣ Inherently Many-to-Many ‣ Fault Resilient Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 37. Client Server vs. Publish Subscribe Server Client/Server Server Client ‣ Tight Coupling (4W) Client ‣ Complex Deployment Server ‣ Inherently One-to-One Server ‣ Fragile to Fault Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Client Client Subscriber Publisher DDS ‣ Loosely Coupled (1W) Subscriber Publisher ‣ Plug & Play ‣ Inherently Many-to-Many ‣ Fault Resilient Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 38. OpenSplice DDS Delivering Performance, Openness, and Freedom High Performance/Availability Pub/Sub
  • 39. High Performance Pub/Sub The right data, at the right place, at the right time ‣ Fully distributed, Peer-to-Peer -- All the Time. Communication ‣ No Single Point of Failure Publisher Subscriber ‣ No Single Point of Bottleneck Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Multicast-enabled Brokers Subscriber ‣ High performance and highly Publisher scalable ‣ High availability Publisher ‣hot-swap Subscriber ‣hot-hot architecture © 2009, PrismTech. All Rights Reserved
  • 40. OpenSplice DDS Delivering Performance, Openness, and Freedom Application Object/Relational Mapping Data Local Reconstruction Layer (DLRL) Data-Centric Pub/Sub Fundamentals Content Ownership Durability Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol UDP/IP
  • 41. DDS Topics {Circle, Square, Triangle} Topic ‣ Unit of information exchanged between Publisher and Subscribers. ‣ An association between a unique name, a Proprietary Information - Distribution without Expressed Written Permission is Prohibited. type and a QoS setting {ShapeType} {...} Topic Type. struct ShapeType { ‣ Type describing the data associated with one long x; or more Topics long y; ‣ A Topic type can have a key represented by an long shapesize; string color; arbitrary number of attributes }; ‣ Expressed in IDL #pragma keylist ShapeType color © 2009, PrismTech. All Rights Reserved
  • 42. DDS Topics Circle Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct ShapeType { long x; long y; long shapesize; Topic QoS string color; }; #pragma keylist ShapeType color © 2009, PrismTech. All Rights Reserved
  • 43. DDS Topics Triangle Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct ShapeType { long x; long y; long shapesize; Topic QoS string color; }; #pragma keylist ShapeType color © 2009, PrismTech. All Rights Reserved
  • 44. DDS Topics Square Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct ShapeType { long x; long y; long shapesize; Topic QoS string color; }; #pragma keylist ShapeType color © 2009, PrismTech. All Rights Reserved
  • 45. DDS Topic Instances and Samples Topic Instances ‣ Each key value identifies a unique Topic Instance, ‣ Topic’s instance lifetime can be explicitly managed in DDS Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Topic Samples ‣ The values assumed by a Topic Instance over time are referred as Instance Sample struct ShapeType { long x; long y; long shapesize; string color; }; #pragma keylist ShapeType color © 2009, PrismTech. All Rights Reserved
  • 46. Topic/Instances/Samples Recap. Topics Instances Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Samples ti tj tnow time © 2009, PrismTech. All Rights Reserved
  • 47. Content Filtering X0 X1 X0 <= X <= X1 ‣ DDS allows to specify content- filtered Topics for which a a subset of SQL92 is used to express the filter condition Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Y0 ‣ Content filters can be applied on the entire content of the Topic Y0 <= Y <= Y1 Type ‣ Content filters are applied by Y1 DDS each time a new sample is produced/delivered © 2009, PrismTech. All Rights Reserved
  • 48. Local Queries ‣ Subscribed Topics can be seen locally as “Tables” ‣ A subset of SQL92 can be used for performing queries on X0 multiple topics as well as natural joins ‣ Queries are Circle Topic Proprietary Information - Distribution without Expressed Written Permission is Prohibited. performed under Y0 color x y shapesize Y0 user control and red 57 62 50 provide a result that blue 90 85 50 Y0 <= Y <= Y1 depends on the yellow 30 25 50 current snapshot of SELECT * FROM ShapeType s WHERE s.x > 25 AND s.y < 55 Y1 the system, e.g., samples currently color x y shapesize available yellow 30 25 50 © 2009, PrismTech. All Rights Reserved
  • 49. OpenSplice DDS Delivering Performance, Openness, and Freedom Application Object/Relational Mapping Data Local Reconstruction Layer (DLRL) Data-Centric Pub/Sub Putting it all together Content Ownership Durability Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol UDP/IP
  • 50. Distributed Relational Information Modeling ‣ Topic Keys can be used to identify instances as well as relationships ‣ Relationships can be navigated by relying on a subset of SQL 92 ‣ One-to-many relationships can be captured using foreign keys ‣ Many-to-many relationships need to be modeled using a topics Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Keys can be represented by an arbitrary number of Topic fields TConditioner cID: long temp: float TTempSensor humidity: float tID: long fan_level: long temp: float status: long TRoom humidity: float rID: long rID: long rID: long width: float height: float length: float TFloor fID: long fID: long level: long © 2009, PrismTech. All Rights Reserved open: long
  • 51. Data-Centric Pub/Sub ‣ Data-Centric Features are built-in and don’t rely on an external DBMS ‣ Providing thus performance, scalability, and availability ‣ Distributed Relational Data Model Subscriber Publisher DBMS ‣ Local Queries B ‣ Continuous Queries / Content Based Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m Subscriptions A F Subscriber ‣ Windows Publisher J D C ‣ Object/Relational Mapping K E ‣ Support for a subset of SQL-92 Publisher Subscriber Perfect Blend of Data-Centric and Real-Time Publish/Subscribe Technologies © 2009, PrismTech. All Rights Reserved
  • 52. “Visualizing” Data-Centric Pub/Sub Subscriber Publisher B D J D C E K A B A B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m Subscriber D C Publisher A F J J A F D C K A F K E Subscriber Publisher D J D K E E © 2009, PrismTech. All Rights Reserved
  • 53. Organizing Information ‣ All DDS communication is Domain Partition happens within a Domain ‣ Domain can divided into Publisher Subscriber Partitions Proprietary Information - Distribution without Expressed Written Permission is Prohibited. B ‣ Topics are published and m subscribed across on or A F Subscriber more Partitions Publisher J D C K E Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 54. OpenSplice DDS Delivering Performance, Openness, and Freedom Application Ownership Object/Relational Mapping Data Local Reconstruction Layer (DLRL) Durability Content Object-Oriented Pub/Sub Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol UDP/IP
  • 55. Object/Relational Mapping TempSensor temp: float humidity: float ‣ Automatically bridges the getTemp() getHumidity() * Room Floor 1 width: float level: int Object/Relational Impedance height: float length: float * open: int 1 climate: int Conditioner Mismatch temp: float humidity: float 1 climate: int set_climate(); set_status() set_climate() * ‣ Arbitrary object setTemp() get_level() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. setHumidity() setFanLevel() reconstructions start() stop() ‣ Automatic Relationships pause(): Management TConditioner cID: int TTempSernsor ‣ Inheritance temp: float tID: int humidity: float temp: float fan_level: int TRoom humidity: float ‣ Local Operations status: int rID: int rID: int width: float height: float rID: int ‣ Local/Distributed State length: float fID: int TFloor fID: int level: int open: int © 2009, PrismTech. All Rights Reserved
  • 56. Object/Relational Mapping Unleashing the power of Objects... Object Oriented Canvas OO Relational handle: Handle ‣ Middleware can automatically Flight RadarTrack manage the generation and FlightView call_sign: string x: float image: string route: list association between the refresh_rate: int * origin: string y: float * z: float * 1 Object-Oriented Model and the visible: bool dest: string radar_id: string Relational Model uid: GUID aircraft: string operationOne() display() operationX() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. operationY() FlightViewTopic FlightViewAssociation FlightTopic Relational call_sign: string image: string call_sign: string route: list RadarTrackTopic refresh_rate: int uid: GUID origin: string x: float visible: bool handle: Handle dest: string y: float uid: GUID aircraft: string z: float radar_id: string radar_id: string Relational OO ‣ The Relational Model can be mapped to an Object Oriented model ‣ The mapping is under control of the architect © 2009, PrismTech. All Rights Reserved
  • 57. Multiple Object/Relational Mappings Canvas handle: Handle DLRL Flight RadarTrack FlightView call_sign: string x: float image: string route: list y: float refresh_rate: int * * origin: string 1 * z: float visible: bool dest: string radar_id: string uid: GUID aircraft: string operationOne() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. display() operationX() operationTwo() operationY() FlightViewTopic FlightViewAssociation FlightTopic DCPS call_sign: string image: string call_sign: string route: list RadarTrackTopic refresh_rate: int uid: GUID origin: string x: float visible: bool handle: Handle dest: string y: float uid: GUID aircraft: string z: float radar_id: string radar_id: string Multiple Mappings ‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems ‣ The state is shared across all the local reconstruction (ORMs) © 2009, PrismTech. All Rights Reserved
  • 58. Multiple Object/Relational Mappings Canvas handle: Handle DLRL Flight RadarTrack FlightView call_sign: string x: float image: string route: list y: float refresh_rate: int * * origin: string 1 * z: float visible: bool dest: string radar_id: string uid: GUID aircraft: string operationOne() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. display() operationX() operationTwo() operationY() FlightViewTopic FlightViewAssociation FlightTopic DCPS call_sign: string image: string call_sign: string route: list RadarTrackTopic refresh_rate: int uid: GUID origin: string x: float visible: bool handle: Handle dest: string y: float uid: GUID aircraft: string z: float radar_id: string radar_id: string Multiple Mappings ‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems ‣ The state is shared across all the local reconstruction (ORMs) © 2009, PrismTech. All Rights Reserved
  • 59. Multiple Object/Relational Mappings Canvas FastFlightView image: string handle: Handle DLRL DLRL refresh_rate: int visible: bool Flight uid: GUID RadarTrack FlightView call_sign: string x: float x: float image: string route: list y: float y: float refresh_rate: int * * origin: string 1 * z: float z: float visible: bool dest: string call_sign: string radar_id: string uid: GUID aircraft: string display() operationOne() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. display() operationX() operationTwo() operationY() FlightViewTopic FlightViewAssociation FlightTopic DCPS call_sign: string image: string call_sign: string route: list RadarTrackTopic refresh_rate: int uid: GUID origin: string x: float visible: bool handle: Handle dest: string y: float uid: GUID aircraft: string z: float radar_id: string radar_id: string Multiple Mappings ‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems ‣ The state is shared across all the local reconstruction (ORMs) © 2009, PrismTech. All Rights Reserved
  • 60. Multiple Object/Relational Mappings Canvas FastFlightView image: string handle: Handle DLRL DLRL refresh_rate: int visible: bool Flight uid: GUID RadarTrack FlightView call_sign: string x: float x: float image: string route: list y: float y: float refresh_rate: int * * origin: string 1 * z: float z: float visible: bool dest: string call_sign: string radar_id: string uid: GUID aircraft: string display() operationOne() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. display() operationX() operationTwo() operationY() FlightViewTopic FlightViewAssociation FlightTopic DCPS call_sign: string image: string call_sign: string route: list RadarTrackTopic refresh_rate: int uid: GUID origin: string x: float visible: bool handle: Handle dest: string y: float uid: GUID aircraft: string z: float radar_id: string radar_id: string Multiple Mappings ‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems ‣ The state is shared across all the local reconstruction (ORMs) © 2009, PrismTech. All Rights Reserved
  • 61. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float refresh_rate: int FlightViewTopic image: string z: float radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 62. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float refresh_rate: int FlightViewTopic image: string z: float radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 63. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float refresh_rate: int FlightViewTopic image: string z: float radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 64. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float refresh_rate: int FlightViewTopic image: string z: float radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 65. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float z: float refresh_rate: int FlightViewTopic image: string radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 66. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float z: float refresh_rate: int FlightViewTopic image: string radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 67. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float z: float refresh_rate: int FlightViewTopic image: string radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 68. An Example High-End 3D Visualization Primary Radar RadarTrack x: float y: float z: float radar_id: string operationOne() operationTwo() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. FastFlightView RadarTrackTopic x: float image: string y: float z: float refresh_rate: int FlightViewTopic image: string radar_id: string visible: bool refresh_rate: int visible: bool uid: GUID uid: GUID x: float y: float RadarTrackTopic x: float z: float y: float z: float call_sign: string radar_id: string display() RadarTrackTopic x: float y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string dest: string aircraft: string radar_id: string Flight call_sign: string route: list RadarTrack origin: string RadarTrackList dest: string aircraft: string operationX() operationY() Flight Data Processor © 2009, PrismTech. All Rights Reserved
  • 69. An Example High-End 3D Visualization Primary Radar Secondary Radar RadarTrack x: float y: float z: float radar_id: string RadarTrack operationOne() x: float operationTwo() y: float Proprietary Information - Distribution without Expressed Written Permission is Prohibited. z: float radar_id: string operationOne() operationTwo() FastFlightView RadarTrackTopic RadarTrackTopic x: float x: float image: string y: float y: float refresh_rate: int FlightViewTopic image: string z: float radar_id: string z: float radar_id: string visible: bool refresh_rate: int RadarTrackTopic visible: bool x: float uid: GUID uid: GUID y: float x: float z: float radar_id: string y: float RadarTrackTopic z: float x: float call_sign: string RadarTrackTopic y: float x: float z: float display() y: float radar_id: string z: float FlightTopic call_sign: string radar_id: string route: list origin: string RadarTrack dest: string Flight aircraft: string call_sign: string radar_id: string route: list origin: string RadarTrackList dest: string aircraft: string RadarTrack operationX() operationY() Automatically Manage Flight Data Processor Relationships © 2009, PrismTech. All Rights Reserved
  • 70. Custom Filter Example High-End 3D Visualization Primary Radar Secondary Radar RadarTrack x: float y: float z: float radar_id: string RadarTrack operationOne() x: float operationTwo() y: float Proprietary Information - Distribution without Expressed Written Permission is Prohibited. z: float radar_id: string operationOne() operationTwo() FastFlightView RadarTrackTopic RadarTrackTopic x: float x: float image: string y: float y: float refresh_rate: int FlightViewTopic z: float z: float SQL Filter image: string radar_id: string radar_id: string visible: bool refresh_rate: int RadarTrackTopic uid: GUID visible: bool uid: GUID x: float y: float Custom Filter x: float z: float radar_id: string y: float z: float RadarTrackTopic x: float call_sign: string y: float RadarTrackTopic z: float display() x: float radar_id: string y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string RadarTrack Flight dest: string aircraft: string call_sign: string Filter based on Region-of-interest radar_id: string route: list origin: string RadarTrackList dest: string SQL Filter aircraft: string RadarTrack Custom Filter operationX() operationY() Automatically Manage Flight Data Processor Relationships © 2009, PrismTech. All Rights Reserved
  • 71. Custom Filter Example High-End 3D Visualization Primary Radar Secondary Radar RadarTrack x: float y: float z: float radar_id: string RadarTrack operationOne() x: float operationTwo() y: float Proprietary Information - Distribution without Expressed Written Permission is Prohibited. z: float radar_id: string operationOne() operationTwo() FastFlightView RadarTrackTopic RadarTrackTopic x: float x: float image: string y: float y: float refresh_rate: int FlightViewTopic z: float z: float SQL Filter image: string radar_id: string radar_id: string visible: bool refresh_rate: int RadarTrackTopic uid: GUID visible: bool uid: GUID x: float y: float Custom Filter x: float z: float radar_id: string y: float z: float RadarTrackTopic x: float call_sign: string y: float RadarTrackTopic z: float display() x: float radar_id: string y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string RadarTrack Flight dest: string aircraft: string call_sign: string Filter based on Region-of-interest radar_id: string route: list origin: string RadarTrackList dest: string SQL Filter aircraft: string RadarTrack Custom Filter operationX() operationY() Automatically Manage Flight Data Processor Relationships © 2009, PrismTech. All Rights Reserved
  • 72. Custom Filter Example High-End 3D Visualization Primary Radar Secondary Radar RadarTrack x: float y: float z: float radar_id: string RadarTrack operationOne() x: float operationTwo() y: float Proprietary Information - Distribution without Expressed Written Permission is Prohibited. z: float radar_id: string operationOne() operationTwo() FastFlightView RadarTrackTopic RadarTrackTopic x: float x: float image: string y: float y: float refresh_rate: int FlightViewTopic z: float z: float SQL Filter image: string radar_id: string radar_id: string visible: bool refresh_rate: int RadarTrackTopic uid: GUID visible: bool uid: GUID x: float y: float Custom Filter x: float z: float radar_id: string y: float z: float RadarTrackTopic x: float call_sign: string y: float RadarTrackTopic z: float display() x: float radar_id: string y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string RadarTrack Flight dest: string aircraft: string call_sign: string Filter based on Region-of-interest radar_id: string route: list origin: string RadarTrackList dest: string SQL Filter aircraft: string RadarTrack Custom Filter operationX() operationY() Automatically Manage Flight Data Processor Relationships © 2009, PrismTech. All Rights Reserved
  • 73. Custom Filter Example High-End 3D Visualization Primary Radar Secondary Radar RadarTrack x: float y: float z: float radar_id: string RadarTrack operationOne() x: float operationTwo() y: float Proprietary Information - Distribution without Expressed Written Permission is Prohibited. z: float radar_id: string operationOne() operationTwo() FastFlightView RadarTrackTopic RadarTrackTopic x: float x: float image: string y: float y: float refresh_rate: int FlightViewTopic z: float z: float SQL Filter image: string radar_id: string radar_id: string visible: bool refresh_rate: int RadarTrackTopic uid: GUID visible: bool uid: GUID x: float y: float Custom Filter x: float z: float radar_id: string y: float z: float RadarTrackTopic x: float call_sign: string y: float RadarTrackTopic z: float display() x: float radar_id: string y: float FlightTopic call_sign: string z: float route: list radar_id: string origin: string RadarTrack Flight dest: string aircraft: string call_sign: string Filter based on Region-of-interest radar_id: string route: list origin: string RadarTrackList dest: string SQL Filter aircraft: string RadarTrack Custom Filter operationX() operationY() Automatically Manage Flight Data Processor Relationships © 2009, PrismTech. All Rights Reserved
  • 74. OpenSplice DDS Delivering Performance, Openness, and Freedom ...Putting it all Together
  • 75. DCPS Application Application ‣ The application works directly at the DCPS level TConditioner cID: int temp: float TTempSensor tID: int temp: float Proprietary Information - Distribution without Expressed Written Permission is Prohibited. humidity: float TRoom humidity: float ‣ When using OO Programming fan_level: int rID: int rID: int status: int width: float rID: int height: float Languages the Object/Relational length: float fID: int TFloor fID: int level: int Impedance Mismatch has to be open: int manually dealt Content DDS v1.2 Ownership Durability Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) © 2009, PrismTech. All Rights Reserved
  • 76. DLRL Application Application TempSensor temp: float ‣ The DLRL Layer is used to humidity: float getTemp() getHumidity() * Room Floor width: float level: int 1 height: float open: int 1 climate: int provide a Language Integrated Conditioner length: float * temp: float climate: int set_status() humidity: float 1 set_climate(); set_climate() fan_level: int * set_temp() get_level() set_humidity() access to DDS data status: int setTemp() setHumidity() setFanLevel() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. start() stop() ‣ The Designer has great freedom pause(): DDS v1.2 Object/Relational Mapping in deciding how Objects have to Data Local Reconstruction Layer (DLRL) map to Topics TConditioner cID: int TTempSensor tID: int temp: float temp: float humidity: float TRoom humidity: float ‣ Different Object Reconstruction fan_level: int rID: int rID: int status: int width: float rID: int height: float length: float TFloor can be created for different fID: int fID: int level: int open: int applications Content DDS v1.2 Ownership Durability Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) © 2009, PrismTech. All Rights Reserved
  • 77. Generic DDS Application Application TempSensor temp: float humidity: float getTemp() getHumidity() * Room Floor width: float level: int 1 ‣ In the most general case, different height: float open: int Conditioner length: float 1 climate: int * temp: float climate: int set_status() humidity: float 1 set_climate(); set_climate() fan_level: int * set_temp() get_level() set_humidity() portion of the application might rely on status: int setTemp() setHumidity() setFanLevel() start() Proprietary Information - Distribution without Expressed Written Permission is Prohibited. DLRL or DCPS depending on their stop() pause(): specific needs Application Object/Relational Mapping Data Local Reconstruction Layer (DLRL) ‣ DCPS access might be required for TConditioner TTempSensor cID: int tID: int temp: float temp: float humidity: float TRoom humidity: float accessing and tuning some specific fan_level: int status: int rID: int rID: int width: float height: float rID: int length: float TFloor QoS fID: int fID: int level: int open: int Content DDS v1.2 Ownership Durability Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) © 2009, PrismTech. All Rights Reserved
  • 78. OpenSplice DDS Delivering Performance, Openness, and Freedom QoS-Enabled Pub/Sub
  • 79. Communicating with Topics, Partitions and Domains Topic Topic Topic Samples Samples Instances Samples Instances Instances 121 62 1 21 62 1 22 62 1 22 62 1 23 63 1 23 63 DataReader DataReader 1 21 62 2 20 61 1 22 62 2 19 60 1 23 63 DataReader DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 2 20 61 2 19 60 DataReader DataReader 2 20 61 2 19 60 DataWriter DataWriter DataReader 3 25 70 3 25 70 3 25 71 25 3 25 71 25 3 25 74 3 25 74 3 26 77 3 26 77 3 26 77 DataWriter struct TempSensor { 3 25 70 3 25 71 25 3 25 74 int tID; float temp; float humidity; }; #pragma keylist TempSensor tID © 2009, PrismTech. All Rights Reserved
  • 80. Communicating with Topics, Partitions and Domains Topic Topic Topic Samples Samples Instances Samples Instances Instances 121 62 1 21 62 1 22 62 1 22 62 1 23 63 1 23 63 DataReader DataReader 1 21 62 2 20 61 1 22 62 2 19 60 1 23 63 DataReader DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 2 20 61 2 19 60 DataReader DataReader 2 20 61 2 19 60 DataWriter DataWriter DataReader 3 25 70 3 25 70 3 25 71 25 3 25 71 25 3 25 74 3 25 74 3 26 77 3 26 77 3 26 77 DataWriter struct TempSensor { 3 25 70 3 25 71 25 3 25 74 int tID; float temp; Arrows }; float humidity; show #pragma keylist TempSensor tID structural relationship s, not data- Subscriber Publisher flows Partition © 2009, PrismTech. All Rights Reserved
  • 81. Communicating with Topics, Partitions and Domains Topic Topic Topic Samples Samples Instances Samples Instances Instances 121 62 1 21 62 1 22 62 1 22 62 1 23 63 1 23 63 DataReader DataReader 1 21 62 2 20 61 1 22 62 2 19 60 1 23 63 DataReader DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 2 20 61 2 19 60 DataReader DataReader 2 20 61 2 19 60 DataWriter DataWriter DataReader 3 25 70 3 25 70 3 25 71 25 3 25 71 25 3 25 74 3 25 74 3 26 77 3 26 77 3 26 77 DataWriter struct TempSensor { 3 25 70 3 25 71 25 3 25 74 int tID; float temp; Arrows }; float humidity; show #pragma keylist TempSensor tID structural relationship s, not data- Subscriber Publisher flows Partition Domain Participant Domain © 2009, PrismTech. All Rights Reserved
  • 82. QoS Model ‣ QoS-Policies are used to control relevant properties of OpenSplice DDS entities, Type Matching QoS matching such as: QoS QoS QoS QoS QoS QoS QoS ‣ Temporal Properties ‣ Priority Topic Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Name Publisher Subscriber ‣ Durability ... DataWriter writes Type reads DataReader ... ... ‣ Availability DomainParticipant writes Type reads DataReader DomainParticipant DataWriter ‣ ... Name ‣ Some QoS-Policies are matched based on Topic QoS QoS QoS a Request vs. Offered Model thus QoS- enforcement ‣ Publications and Subscriptions match only if the declared vs. requested QoS are compatible ‣ e.g., it is not possible to match a publisher which delivers data unreliably with a subscriber which requires reliability © 2009, PrismTech. All Rights Reserved
  • 83. Sample QoS Policies QoS Policy Applicability RxO Modifiable Type Matching QoS matching DURABILITY T, DR, DW Y N Data Availability QoS QoS QoS QoS QoS QoS QoS DURABILITY SERVICE T, DW N N Topic Name Publisher Subscriber LIFESPAN T, DW - Y ... DataWriter writes Type reads DataReader ... T, DR, DW N N ... HISTORY DomainParticipant DataWriter writes Type reads DataReader DomainParticipant PRESENTATION P, S Y N Data Delivery Name Topic RELIABILITY T, DR, DW Y N PARTITION P, S N Y QoS QoS QoS Proprietary Information - Distribution without Expressed Written Permission is Prohibited. DESTINATION ORDER T, DR, DW Y N OWNERSHIP T, DR, DW Y N ‣ Rich set of QoS allow to configure OWNERSHIP DW - Y STRENGTH several different aspects of data DEADLINE T, DR, DW Y Y Data Timeliness availability, delivery and timeliness LATENCY BUDGET T, DR, DW Y Y TRANSPORT PRIORITY T, DW - Y ‣ QoS can be used to control and optimize network as well as TIME BASED FILTER DR - Y Resources computing resource RESOURCE LIMITS T, DR, DW N N USER_DATA DP, DR, DW N Y Configuration TOPIC_DATA T N Y GROUP_DATA P, S N Y © 2009, PrismTech. All Rights Reserved
  • 84. Mapping QoS Which properties does QoS controls? TimeBasedFilter Deadline Data Throughput Latency LatencyBudget TransportPriority Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Control over Latency/Throughput tradeoff Control over data latency Control over data priority © 2009, PrismTech. All Rights Reserved
  • 85. Mapping QoS Which properties does QoS controls? TimeBasedFilter Deadline History Data Data Throughput Lifespan Durability Latency Availability Ownership LatencyBudget TransportPriority Ownership Strength Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Control over Latency/Throughput tradeoff Control over data queueing Control over data latency Control over data persistency Control over data priority Control over data sources hot-swap © 2009, PrismTech. All Rights Reserved
  • 86. Mapping QoS Which properties does QoS controls? TimeBasedFilter Deadline History Data Data Throughput Lifespan Durability Latency Availability Ownership LatencyBudget TransportPriority Ownership Strength Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Control over Latency/Throughput tradeoff Control over data queueing Control over data latency Control over data persistency Control over data priority Control over data sources hot-swap Reliability OpenSplice DDS provides programmatic Destination QoS-driven support for configuring the most Presentation Data Delivery Order important properties of data distribution! Control over data distribution reliability Control over data ordering Control over presentation © 2009, PrismTech. All Rights Reserved
  • 87. Reliability Destination Presentation Data Delivery Order Data Delivery QoS Policy Applicability RxO Modifiable PRESENTATION P, S Y N RELIABILITY T, DR, DW Y N PARTITION P, S N Y DESTINATION T, DR, DW Y N Data Delivery ORDER OWNERSHIP T, DR, DW Y N OWNERSHIP DW - Y STRENGTH © 2008, PrismTech. All Rights Reserved
  • 88. Reliability The RELIABILITY QoS indicate the level of guarantee offered by the DDS in delivering data to subscribers. Possible variants are: QoS Policy Applicability RxO Modifiable ‣ Reliable. In steady-state the RELIABILITY T, DR, DW Y N middleware guarantees that all Proprietary Information - Distribution without Expressed Written Permission is Prohibited. samples in the DataWriter history will QoS matching eventually be delivered to all the QoS QoS QoS DataReader QoS Topic QoS ‣ Best Effort. Indicates that it is DataWriter writes Type Name reads DataReader acceptable to not retry propagation of Publisher ... Subscriber ... ... any samples DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching © 2009, PrismTech. All Rights Reserved
  • 89. Partition ‣ All DDS communication is QoS Policy PARTITION Applicability P, S RxO N Modifiable Y happens within a Domain ‣ Domain can divided into Domain Partition Partitions ‣ Topics are published and Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Subscriber subscribed across on or more Publisher RedPartition Partitions B ‣ The Partition QoS allows to m specify to which “Partition(s)” is a A F Subscriber publisher/subscriber connected Publisher J D C ‣ Each Partition is identified by a K string (e.g. “RedPartition, E GreenPartition “YellowPartition”, YellowPartition “GreenPartition”) Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 90. Ownership Who owns the data? The OWNERSHIP QoS specifies whether it is allowed for multiple DataWriters to write the same instance of the data and if so, how these modifications should be arbitrated. Possible choices are: ‣ Shared. Multiple writers are allowed to QoS Policy Applicability RxO Modifiable update the same instance and all the OWNERSHIP T, DR, DW Y N Proprietary Information - Distribution without Expressed Written Permission is Prohibited. updates are made available to the reader QoS matching ‣ Exclusive. Indicates that each instance can QoS QoS QoS only be owned by one DataWriter, but the Topic owner of an instance can change QoS Name QoS dynamically -- due to liveliness changes DataWriter writes Type reads DataReader Publisher ... Subscriber ... ‣ The selection of the owner is controlled by DataWriter writes ... Type reads DataReader the setting of the OWNERSHIP_STRENGTH Name QoS policy Topic QoS QoS QoS QoS matching © 2009, PrismTech. All Rights Reserved
  • 91. Ownership Strength How strong are you? The OWNERSHIP_STRENGTH Specifies the value of the “strength” used to arbitrate among DataWriters that attempt to modify the same data instance ‣ Data instance are identified QoS matching by the couple (Topic, Key) QoS QoS QoS ‣ The policy applies only if the Proprietary Information - Distribution without Expressed Written Permission is Prohibited. OWNERSHIP is EXCLUSIVE QoS Topic Name QoS DataWriter writes Type reads DataReader Publisher ... Subscriber ... ... QoS Policy Applicability RxO Modifiable OWNERSHIP DW - Y DataWriter writes Type reads DataReader STRENGTH Name Topic QoS QoS QoS QoS matching © 2009, PrismTech. All Rights Reserved
  • 92. Ownership @ Work ‣ A Topic can have Shared or Exclusive Ownership ‣ Exclusively owned Topics can be modified by a single writer ‣ Writer strength is used to coordinate replicated writers Proprietary Information - Distribution without Expressed Written Permission is Prohibited. StockQuote symbol: "MSFT" StockQuote StockQuote name: "Microsoft Corp." StockQuote symbol: "GOOG" symbol: "GOOG" exchange: "NASD""GOOG" symbol: name: "Google Inc." quote: 33.73 name: "Google Inc." name: "Google Inc." exchange: "NASD" exchange: "NASD" exchange: "NASD" StockQuote StockQuote StockQuote quote: 663.97 W1 quote: 663.97"AAPL" symbol: "AAPL" quote: 663.97 symbol: "AAPL" symbol: name: "Apple Inc." name: "Apple Inc." name: "Apple Inc." exchange: "NASD" exchange: "NASD" exchange: "NASD" R1 quote: 165.37 quote: 165.37 quote: 165.37 STRENGTH=3 StockQuote symbol: "AAPL" StockQuote Inc." name: "Apple symbol: "GOOG""NASD" exchange: name: quote: 165.37 "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1’ R2 STRENGTH=2 StockQuote symbol: "AAPL" StockQuote Inc." name: "Apple symbol: "GOOG""NASD" exchange: name: quote: 165.37 "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1’’ R3 STRENGTH=1 © 2009, PrismTech. All Rights Reserved
  • 93. Ownership @ Work ‣ A Topic can have Shared or Exclusive Ownership ‣ Exclusively owned Topics can be modified by a single writer ‣ Writer strength is used to coordinate replicated writers Proprietary Information - Distribution without Expressed Written Permission is Prohibited. StockQuote symbol: "MSFT" StockQuote StockQuote name: "Microsoft Corp." StockQuote symbol: "GOOG" symbol: "GOOG" exchange: "NASD""GOOG" symbol: name: "Google Inc." quote: 33.73 name: "Google Inc." name: "Google Inc." exchange: "NASD" exchange: "NASD" exchange: "NASD" quote: 663.97 W1 quote: 663.97 quote: 663.97 StockQuote symbol: "AAPL" R1 STRENGTH=3 name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1’ R2 StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" STRENGTH=2 quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1’’ StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 R3 STRENGTH=1 © 2009, PrismTech. All Rights Reserved
  • 94. Ownership @ Work ‣ A Topic can have Shared or Exclusive Ownership ‣ Exclusively owned Topics can be modified by a single writer ‣ Writer strength is used to coordinate replicated writers Proprietary Information - Distribution without Expressed Written Permission is Prohibited. StockQuote symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1 StockQuote symbol: "AAPL" R1 STRENGTH=3 name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" quote: 33.73 StockQuote W1’ R2 symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" STRENGTH=2 quote: 165.37 StockQuote symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" StockQuote quote: 33.73 symbol: "GOOG" R3 name: "Google Inc." W1’’ exchange: "NASD"StockQuote quote: 663.97symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 STRENGTH=1 © 2009, PrismTech. All Rights Reserved
  • 95. Managing Hot-Swap ‣ A Topic can have Shared or Exclusive Ownership ‣ Exclusively owned Topics can be modified by a single writer ‣ Writer strength is used to coordinate replicated writers Proprietary Information - Distribution without Expressed Written Permission is Prohibited. StockQuote R1 symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" R2 quote: 165.37 StockQuote StockQuote StockQuote StockQuote symbol: "MSFT" symbol: "MSFT" symbol: "MSFT" symbol: "GOOG" name: "Microsoft Corp." name: "Microsoft Corp." name: "Microsoft Corp." exchange: "NASD" exchange: "NASD" name: "Google Inc." exchange: "NASD" quote: 33.73 quote: 33.73 quote: 33.73 exchange: "NASD" quote: 663.97 StockQuote R3 symbol: "AAPL" W1’’ name: "Apple Inc." exchange: "NASD" quote: 165.37 STRENGTH=1 © 2009, PrismTech. All Rights Reserved
  • 96. Managing Hot-Swap ‣ A Topic can have Shared or Exclusive Ownership ‣ Exclusively owned Topics can be modified by a single writer ‣ Writer strength is used to coordinate replicated writers Proprietary Information - Distribution without Expressed Written Permission is Prohibited. StockQuote R1 symbol: "AAPL" name: "Apple Inc." exchange: "NASD" StockQuote quote: 165.37 symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" quote: 33.73 StockQuote symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote R2 symbol: "MSFT" name: "Microsoft Corp." StockQuote exchange: "NASD" quote: 33.73 symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." StockQuote exchange: "NASD" symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 StockQuote R3 symbol: "AAPL" W1’’ name: "Apple Inc." exchange: "NASD" quote: 165.37 STRENGTH=1 © 2009, PrismTech. All Rights Reserved
  • 97. TimeBasedFilter Deadline Data Throughput Latency LatencyBudget TransportPriority Data Timeliness QoS Policy Applicability RxO Modifiable DEADLINE T, DR, DW Y Y LATENCY T, DR, DW Y Y Data BUDGET Timeliness TRANSPORT T, DW - Y PRIORITY © 2008, PrismTech. All Rights Reserved
  • 98. Deadline You can’t be later than... The DEADLINE QoS policy allows to define the maximum inter-arrival time between data samples QoS Policy Applicability RxO Modifiable QoS matching DEADLINE T, DR, DW Y Y QoS QoS QoS ‣ DataWriter indicates that the application QoS Topic Name QoS commits to write a new value at least once Proprietary Information - Distribution without Expressed Written Permission is Prohibited. DataWriter writes Type reads DataReader Publisher ... Subscriber every deadline period ... ... ‣ writes Type reads DataReader DataReaders are notified by the DDS when DataWriter Name the DEADLINE QoS contract is violated Topic QoS QoS QoS QoS matching Publisher Subscriber Deadline Deadline Deadline Deadline Deadline Deadline Violation © 2009, PrismTech. All Rights Reserved
  • 99. Latency Budget I need to get there in at most... The LATENCY_BUDGET QoS policy specifies the maximum acceptable delay from the time the data is written until the data is inserted in the receiver's application-cache QoS Policy Applicability RxO Modifiable LATENCY T, DR, DW Y Y BUDGET ‣ The default value of the duration is zero indicating that the delay should be minimized QoS matching ‣ This policy is a hint to the DDS, not something that must be QoS QoS QoS Proprietary Information - Distribution without Expressed Written Permission is Prohibited. monitored or enforced. QoS Topic QoS Name DataWriter writes Type reads DataReader Publisher ... Subscriber ... ... DataWriter writes Type reads DataReader Name TBuff Latency Budget = Latency = TBuff +T1+T2+T3 Topic QoS QoS QoS QoS matching T3 T1 T2 © 2009, PrismTech. All Rights Reserved
  • 100. Transport Priority VIP Data, stay clear! QoS Policy Applicability RxO Modifiable TRANSPORT T, DW - Y QoS matching PRIORITY QoS QoS QoS QoS Topic QoS The TRANSPORT_PRIORITY QoS policy Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Name is a hint to the infrastructure as to how Publisher DataWriter writes Type reads DataReader Subscriber ... ... ... to set the priority of the underlying Type reads DataReader transport used to send the data. DataWriter writes Name Topic QoS QoS QoS QoS matching © 2009, PrismTech. All Rights Reserved
  • 101. History Data Lifespan Durability Availability Ownership Ownership Strength Data Availability QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N DURABILITY T, DW N N SERVICE Data Availability LIFESPAN T, DW - Y HISTORY T, DR, DW N N © 2008, PrismTech. All Rights Reserved
  • 102. Durability The DURABILITY QoS controls the data availability w.r.t. late joiners, specifically the DDS provides the following variants: QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N ‣ Volatile. No need to keep data instances DURABILITY SERVICE T, DW N N for late joining data readers ‣ Transient Local. Data instance availability Proprietary Information - Distribution without Expressed Written Permission is Prohibited. QoS matching for late joining data reader is tied to the QoS QoS QoS data writer availability QoS Topic QoS ‣ Transient. Data instance availability Name DataWriter writes Type reads DataReader outlives the data writer Publisher ... ... ... Subscriber ‣ Persistent. Data instance availability DataWriter writes Type reads DataReader outlives system restarts Topic Name QoS QoS QoS QoS matching The DURABILITY_SERVICE QoS provide control over configuration of the service that implements the transient and persistent durability features © 2009, PrismTech. All Rights Reserved
  • 103. Lifespan For how long will this data be available? ‣ The LIFESPAN QoS policy QoS Policy Applicability RxO Modifiable LIFESPAN T, DW - Y allows to control what happens to stale data QoS matching ‣ It specifies the validity interval QoS QoS QoS Proprietary Information - Distribution without Expressed Written Permission is Prohibited. for data written by the QoS Topic Name QoS DataWriter DataWriter writes Type reads DataReader ‣ Publisher ... Subscriber ... The default validity interval is ... DataWriter writes Type reads DataReader infinite Name Topic QoS QoS QoS QoS matching © 2009, PrismTech. All Rights Reserved
  • 104. History How many data samples should I keep? The HISTORY QoS policy controls whether the DDS should deliver only the most recent value, attempt to deliver all intermediate values, or do something in between. The policy can be configured to provide the following semantics: ‣ Keep Last. The DDS will only attempt to QoS Policy HISTORY Applicability T, DR, DW RxO N Modifiable N keep the most recent “depth” samples of Proprietary Information - Distribution without Expressed Written Permission is Prohibited. each instance of data identified by its key QoS matching ‣ Keep All. The DDS will attempt to keep all QoS QoS QoS the samples of each instance of data identified by its key. QoS Topic Name QoS ‣ On the DataWriter Samples are kept until DataWriter writes Type reads DataReader delivered to all known subscribers Publisher ... ... ... Subscriber ‣ On the DataReader side samples are kept DataWriter writes Type reads DataReader until the application “takes” them Topic Name QoS QoS QoS QoS matching © 2009, PrismTech. All Rights Reserved
  • 105. OpenSplice DDS Delivering Performance, Openness, and Freedom Topic Used in next section. Managing Data History struct Counter { int cID; int count; }; #pragma keylist Counter cID
  • 106. How many samples? History Depth = 1 (DDS Default) ‣ The History QoS Controls the 1 1 number of samples-per- DataReader 2 1 instance that will be stored by 3 1 the middleware on behalf of a Topic Reader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Keep Last K. The History QoS can be set so to always have History Depth = 5 the latest K samples 1 1 1 2 1 3 1 4 1 5 ‣ Keep All. The History QoS can 2 1 2 2 2 3 2 4 2 5 be set so keep all samples DataReader 3 3 3 4 produced by the writer and not 3 1 3 2 3 5 yet taken, until resource limits Topic are not reached © 2009, PrismTech. All Rights Reserved
  • 107. History in Action History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 1 1 2 DataReader 2 1 1 2 2 3 DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 2 2 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2009, PrismTech. All Rights Reserved
  • 108. History in Action History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 2 1 2 DataReader 2 2 2 3 DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2009, PrismTech. All Rights Reserved
  • 109. History in Action History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 2 1 2 DataReader 2 3 2 3 DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2009, PrismTech. All Rights Reserved
  • 110. History in Action History Depth = 2 History Depth = 1 (DDS Default) Network 1 1 1 2 DataReader 2 1 1 2 2 3 DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 2 2 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2009, PrismTech. All Rights Reserved
  • 111. History in Action History Depth = 2 History Depth = 1 (DDS Default) Network 1 1 1 2 1 2 DataReader 2 1 2 2 2 3 DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2009, PrismTech. All Rights Reserved
  • 112. History in Action History Depth = 2 History Depth = 1 (DDS Default) Network 1 1 1 2 1 2 DataReader 2 2 2 3 2 3 DataWriter Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2009, PrismTech. All Rights Reserved
  • 113. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  • 114. OpenSplice DDS Delivering Performance, Openness, and Freedom Shared Global Data Space
  • 115. Shared Global Data Space Coordination Model ‣ DDS applications are asynchronous and communicate by reading/writing from/to a Global Data Space ‣ DDS applications communicate by simply addressing items in the Global Data Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Space and without any direct knowledge of the parties involved in the production/ consumption of data Consistency Model ‣ The Shared Global Data Space implemented by DDS, can be configured to supports at most the “Eventual Consistency Model” ‣ Under an Eventual Consistency Model we are guaranteed that eventually all application in the system will have a consistent view of the “world”s © 2009, PrismTech. All Rights Reserved
  • 116. Eventual Consistency & R/W Caches DataReader DataReader 1 1 2 1 DataWriter 1 1 3 1 Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 2 1 1 2 Topic DataReader 1 2 2 3 3 1 DataReader Cache 2 2 2 3 3 1 Topic 1 1 DataReader Cache 2 Topic 1 DDS DataWriter Cache 3 1 Topic DataReader Cache Under an Eventual Consistency Model, DDS guarantees that all matched Reader Caches will eventually be identical of the respective Writer Cache © 2009, PrismTech. All Rights Reserved
  • 117. QoS Impacting the Consistency Model The DDS Consistency Model is a property that can be associated to Topics or further refined by Reader/Writers. The property is controlled by the following QoS Policies: ‣ DURABILITY ‣ VOLATILE | TRANSIENT_LOCAL | TRANSIENT | PERSISTENT ‣ LIFESPAN Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ RELIABILITY ‣ RELIABLE | BEST_EFFORT ‣ DESTINATION ORDER ‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N LIFESPAN T, DW - Y RELIABILITY T, DR, DW Y N DESTINATION ORDER T, DR, DW Y N © 2009, PrismTech. All Rights Reserved
  • 118. QoS Impacting the Consistency Model DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency VOLATILE RELIABLE SOURCE_TIMESTAMP INF. (No Crash / Recovery) Eventual Consistency TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. (Reader Crash / Recovery) Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. (Crash/Recovery) Eventual Consistency PERSISTENT RELIABLE SOURCE_TIMESTAMP INF. (Crash/Recovery) Weak Consistency ANY ANY DESTINATION_TIMESTAMP ANY Weak Consistency ANY BEST_EFFORT ANY ANY Weak Consistency ANY ANY ANY N © 2009, PrismTech. All Rights Reserved
  • 119. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B P1 m A F J D C P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved
  • 120. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B P1 m A A F J D C P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved
  • 121. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B A P1 m A A F J D C P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 122. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B A P1 m B A A F J D C P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 123. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B B A P1 m A A F J D C P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 124. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B B A P1 m S= {A, B, J} A A F S2 J D C P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 125. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 P = {A, B} B B A P1 m S= {A, B, J} A A F S2 J D C BA P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 126. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 B B A m S= {A, B, J} A F S2 J D C BA P = {D, C, J} P2 K E S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 127. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 B B A m S= {A, B, J} A F S2 J D C BA P = {D, C, J} S= {A, B, D, J} P2 K E S3 S = {A} S4 © 2009, PrismTech. All Rights Reserved A
  • 128. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 B B A m S= {A, B, J} A F S2 J J D D C BA P = {D, C, J} S= {A, B, D, J} P2 K E S3 S = {A} JB S4 © 2009, PrismTech. All Rights Reserved A
  • 129. Eventual Consistency @ Work DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} Proprietary Information - Distribution without Expressed Written Permission is Prohibited. S = {A, D} S1 B B A m S= {A, B, J} A F S2 J D D C BA P = {D, C, J} S= {A, B, D, J} P2 K E S3 S = {A} JB S4 © 2009, PrismTech. All Rights Reserved A
  • 130. Design Guidelines ‣ For all (non-periodic) Topics for which an eventually consistent model is required use the following QoS settings: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. (Crash / Recovery) ‣ For information produced periodically, with a period P, where P is small enough to be acceptable as a consistency convergence delay, the following QoS settings will provide an approximation of the eventual consistency: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency VOLATILE BEST_EFFORT SOURCE_TIMESTAMP INF. (Crash / Recovery) © 2009, PrismTech. All Rights Reserved
  • 131. OpenSplice DDS Delivering Performance, Openness, and Freedom Topic Used in next section. Getting the Data struct Counter { int cID; int count; Read Semantics }; #pragma keylist Counter cID
  • 132. Reading Samples ‣ Read iterates over the available sample instances 1 1 1 2 1 3 1 4 ‣ Samples are not removed 2 1 2 2 2 3 from the local cache as DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 4 3 5 result of a read 3 1 3 2 3 3 ‣ Read samples can be read Topic again, by accessing the Samples Read Samples not Read cache with the proper options (more later) DataReader Cache © 2009, PrismTech. All Rights Reserved
  • 133. Reading Samples ‣ Read iterates over the available sample instances 1 1 1 2 1 3 1 4 ‣ Samples are not removed 2 1 2 2 2 3 from the local cache as DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 3 2 3 3 3 4 3 5 result of a read ‣ Read samples can be read Topic again, by accessing the Samples Read Samples not Read cache with the proper options (more later) DataReader Cache © 2009, PrismTech. All Rights Reserved
  • 134. Reading Samples ‣ Read iterates over the available sample instances 1 1 1 2 1 3 1 4 ‣ Samples are not removed 2 1 2 2 2 3 from the local cache as DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 1 3 2 3 3 3 4 3 5 result of a read ‣ Read samples can be read Topic again, by accessing the Samples Read Samples not Read cache with the proper options (more later) DataReader Cache © 2009, PrismTech. All Rights Reserved
  • 135. Sample, Instance and View States History Depth = 2 ‣ DataReaders are provided with data samples ane state information allowing to detect relevant transitions in the life-cycle of data as well as data writers DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. SampleInfo ‣ Sample State (READ | NOT_READ): Determines wether a sample has already been read by this 1 1 1 2 DataWriter or not. 2 2 2 3 ‣ Instance State (ALIVE, NOT_ALIVE, DISPOSED). 3 1 Determines wether (1) writer exist for the specific Samples instance, or (2) no matched writers are currently Topic available, or (3) the instance has been disposed DataReader Cache ‣ View State (NEW, NOT_NEW). Determines wether this is the first sample of a new (or re-born) instance © 2009, PrismTech. All Rights Reserved
  • 136. OpenSplice DDS Delivering Performance, Openness, and Freedom Topic Used in next section. Getting the Data struct Counter { int cID; int count; Take Semantics }; #pragma keylist Counter cID
  • 137. Taking Samples ‣ Take iterates over the available sample instances 1 1 1 2 1 3 1 4 ‣ Taken Samples are 2 1 2 2 2 3 removed from the local DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 4 3 5 cache as result of a take 3 1 3 2 3 3 ‣ Topic Samples not Taken DataReader Cache © 2009, PrismTech. All Rights Reserved
  • 138. Taking Samples ‣ Take iterates over the available sample instances 1 2 1 3 1 4 ‣ Taken Samples are 2 2 2 3 removed from the local DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 2 3 3 3 4 3 5 cache as result of a take Topic Samples not Taken DataReader Cache © 2009, PrismTech. All Rights Reserved
  • 139. Taking Samples ‣ Take iterates over the available sample instances 1 3 1 4 ‣ Taken Samples are 2 3 removed from the local DataReader Proprietary Information - Distribution without Expressed Written Permission is Prohibited. 3 3 3 4 3 5 cache as result of a take Topic Samples not Taken DataReader Cache © 2009, PrismTech. All Rights Reserved
  • 140. OpenSplice DDS Delivering Performance, Openness, and Freedom Topic Used in next section. Writing Data struct Counter { int cID; int count; }; #pragma keylist Counter cID
  • 141. Writing Samples ‣ Samples are written in the local cache ‣ Writer control the creation 1 1 DataWriter of instances Topic Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ The DDS ensures that the local caches for the matched DataReader will be Last Sample Written eventually consistent with that of the Data Writer DataWriter Cache © 2009, PrismTech. All Rights Reserved
  • 142. Writing Samples ‣ Samples are written in the local cache ‣ Writer control the creation 1 1 1 2 DataWriter of instances Topic Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ The DDS ensures that the local caches for the matched DataReader will be Last Sample Written eventually consistent with that of the Data Writer DataWriter Cache © 2009, PrismTech. All Rights Reserved
  • 143. Writing Samples ‣ Samples are written in the local cache ‣ Writer control the creation 1 2 1 3 DataWriter of instances Topic Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ The DDS ensures that the local caches for the matched DataReader will be Last Sample Written eventually consistent with that of the Data Writer DataWriter Cache © 2009, PrismTech. All Rights Reserved
  • 144. OpenSplice DDS Delivering Performance, Openness, and Freedom Topic Used in next section. Application / DDS Coordination struct Counter { int cID; int count; }; #pragma keylist Counter cID
  • 145. Application / DDS Coordination DDS provides three main mechanism for exchanging information with the application ‣ Polling. The application polls from time to time for new data or status changes. The interval might depend on the kind of applications as well as data Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ WaitSets. The application registers a WaitSet with DDS and waits (i.e. is suspended) until one of the specified events has happened. ‣ Listeners. The application registers a listener with a specific DDS entity to be notified when relevant events occur, such as state changes or © 2009, PrismTech. All Rights Reserved
  • 146. Presentation Roadmap •PART I -- The DDS Standard • PART II -- OpenSplice DDS • PART III -- CoFlight Use Case
  • 147. The Big News ‣ PrismTech embrace the perspective that “The Future of Software is Open Source” and in alignment with its vision, strategy, and pedigree, releases OpenSplice | DDS as Open Source Software Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ This release, provides the Open Source Community with access to the most advanced and field proven extreme performance data distribution technology ‣ This release, sets a landmark in middleware history! © 2009, PrismTech. All Rights Reserved
  • 148. OpenSplice DDS Delivering Performance, Openness, and Freedom Why Open Source?
  • 149. The Future is Open Source Winning Aspects of the Open Source Model ‣ The Open Source Model establishes a virtuous cycle based on generosity with a non-linear return for community members who donate their time, skills, ideas, money, etc. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ The Open Source Model empowers users ‣ The Open Source Model removes boundaries and is able to “pick the brain” of the smartest people around the world that are willing to contribute ‣ The Open Source Model removes adoptions barriers ‣ The Open Source Model is able to benefit even from egoistic/free-riding behaviour © 2009, PrismTech. All Rights Reserved
  • 150. The Future is Open Source Market Evidences ‣ Open Source software is being increasingly adopted and chosen in place of proprietary software by corporate and administrations ‣ Government EU/US/China Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ DoD ACT HR 5658 ‣ The Open Source Software consistently delivers higher quality and more innovative solutions when compared to closed proprietary software ‣ Ex. GNU Software, Linux OS, Firefox, etc. ‣ Open Source Software market share is consistently growing, and will be further propelled by the Financial Crisis © 2009, PrismTech. All Rights Reserved
  • 151. Open Source Strategic Value ...A User Perspective Open Source Software delivers key Strategic Value to Users: ‣ No Technology Adoption Barriers Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Larger Pool of Talent ‣ Better Support ‣ A Platform for User-Driven Innovation ‣ Security of Supply ‣ Better TCO when compared with Proprietary SW © 2009, PrismTech. All Rights Reserved
  • 152. OpenSplice DDS Delivering Performance, Openness, and Freedom OpenSplice DDS v4.1
  • 153. OpenSplice DDS v4.1 ‣ Product reorganized into Editions ‣ Community Edition Enterprise Ed. ‣ Compact Edition ‣ Professional Edition ‣ Enterprise Edition Professional Ed. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Product Editions provide a a growing set of Enterprise Ed. Compact Ed. functionality to address the needs of increasingly more sophisticated users ‣ The Community Edition is Open Source Community Ed. ‣ Compact, Enterprise and Professional Edition are available only through Commercial Subscriptions © 2009, PrismTech. All Rights Reserved
  • 154. Community Edition Features Licensing ‣ OMG DDS v1.2 DCPS ‣ LGPLv3 ‣ Minimum Profile ‣ Content Subscription Profile Application ‣ Durability Profile Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Ownership Profile Content DDS v1.2 Ownership Durability Subscription ‣ Networking Minimum Profile ‣ DDSI v2.1 Implementation Real-Time Pub/Sub (DCPS) ‣ Real-Time Networking Implementation DDSI v2.1 Interoperable Wire Protocol Real-Time Networking (DDSI) Networking Technology UDP/IP Open Source LGPL Licensed Edition -- The Best Way to Get Started with DDS © 2009, PrismTech. All Rights Reserved
  • 155. Compact Edition Features Licensing ‣ OMG DDS v1.2 DCPS ‣ Commercial + PrismTech Source Code License ‣ Minimum Profile ‣ Content Subscription Profile MDE ‣ Durability Profile Tuner Application Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Ownership Profile PowerTools ‣ Networking Content DDS v1.2 Ownership Durability Subscription ‣ DDSI v2.1 Implementation Minimum Profile ‣ Real-Time Networking Implementation Real-Time Pub/Sub (DCPS) ‣ PowerTools DDSI v2.1 Interoperable Wire Protocol ‣ MDE PowerTools Real-Time Networking (DDSI) ‣ Tuner Networking Technology UDP/IP Commercially Supported, Boosting Your Development with PowerTools © 2009, PrismTech. All Rights Reserved
  • 156. Professional Edition Features Licensing ‣ OMG DDS v1.2 DCPS+DLRL ‣ Commercial + PrismTech Source Code License ‣ Minimum Profile ‣ Content Subscription Profile MDE Application ‣ Durability Profile Tuner ‣ Ownership Profile Object/Relational Mapping Proprietary Information - Distribution without Expressed Written Permission is Prohibited. PowerTools Object-Oriented Pub/Sub (DLRL) ‣ Data Local Reconstruction Layer DDS v1.2 ‣ Networking Ownership Durability Content Subscription ‣ DDSI v2.1 Implementation Minimum Profile ‣ Real-Time Networking Implementation Real-Time Pub/Sub (DCPS) ‣ PowerTools DDSI v2.1 ‣ Connectors SOAP Real-Time Networking Interoperable Wire Protocol (DDSI) ‣ MDE Power Tools ‣ SOAP Connector Networking Technology ‣ Tuner Connectors UDP/IP Unleash the Full Power of the DDS Technology! © 2009, PrismTech. All Rights Reserved
  • 157. Enterprise Edition Features Licensing ‣ OMG DDS v1.2 (DCPS+DLRL) ‣ Commercial + PrismTech Source Code License ‣ Minimum Profile ‣ Content Subscription Profile Application ‣ Durability Profile MDE ‣ Ownership Profile Tuner Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Object/Relational Mapping ‣ Data Local Reconstruction Layer PowerTools Object-Oriented Pub/Sub (DLRL) DDS v1.2 ‣ Networking Ownership Persistence Content Subscription ‣ DDSI v2.1 Implementation DBMS ‣ Real-Time Networking Implementation Minimum Profile Connectors Real-Time Pub/Sub(DCPS) ‣ Spiked Absorber DDSI v2.1 ‣ Secure Networking SOAP Spike Absorber Real-Time Interoperable Wire ‣ PowerTools ‣ Connectors Secure Networking Networking Protocol (DDSI) Connectors Networking Technology ‣ MDE Power Tools ‣ SOAP Connector ‣ Tuner ‣ DBMS Connector UDP/IP Connect Your Enterprise Seamlessly and in Real-Time! © 2009, PrismTech. All Rights Reserved
  • 158. Editions and Commercial Support Community Compact Professional Enterprise SOFTWARE Real-Time Pub/Sub (DCPS) x x x x Commercial Support Interoperable Wire Protocol (DDSI) x x x x ‣ Available only for Compact, Object Oriented Pub/Sub(DLRL) Spike Absorber x x x Professional and Enterprise Security x CONNECTORS ‣ Supported SLA are: SOAP-Connector x x Proprietary Information - Distribution without Expressed Written Permission is Prohibited. DBMS-Connector x ‣ Standard (8x5) TOOLS x x x ‣ Silver (12x5) MDE PowerTools Tuner x x x ‣ Gold (24x7x365) DDS TouchStone x x x x Operating Systems Linux x x(1) x(1) x(1) Windows x x(1) x(1) x(1) Solaris x(1) x(1) AIX x(1) x(1) VxWorks x(1) x(1) x(1) INTEGRITY x(1) x(1) x(1) Language Binding C x x x x C++ x x x x Java x x x x C# x x x x LICENSE LGPL Commercial Commercial Commercial © 2009, PrismTech. All Rights Reserved (1) One per subscription
  • 159. Service Offering ‣ Enable our customers and partners to Discover & Mobilize & Design Implement Deploy Sustain deliver innovative solutions “on-time”, “on- Analyze Plan budget”, and “on-quality”. ‣ Methodology covering the entire life-cycle Beginner Training of all customer projects, regardless of Intermediate size, scope, and duration Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Advanced ‣ Provides all you need for supporting and catalyzing each stage of your project by Accelerated Evaluation Information Modeling Workshop means of training, workshops, and Requirements Discovery Performance Optimization consulting. Architectural Patterns Tuning Your Deployment ‣ Services are delivered by highly-valued world-class consultants, including world- System Analysis and Design renowned technology and domain Consulting Customization / Enahncements experts, and are available in 6 languages Infrastructure / Application Development (English, French, German, Italian, Dutch, On Site Consulting, Support, and Mentoring and Arabic). © 2009, PrismTech. All Rights Reserved
  • 160. OpenSplice DDS Delivering Performance, Openness, and Freedom Who is Using OpenSplice DDS
  • 161. Some OpenSplice DDS Users !"#$%&'()('*+'##,-+.+/($$,012"0 Experti réalisée par Bernard M © 2009, PrismTech. All Rights Reserved
  • 162. OpenSplice DDS Delivering Performance, Openness, and Freedom Technical Highlights
  • 163. Technical Highlights Architecture © 2009, PrismTech. All Rights Reserved
  • 164. OpenSplice DDS Architectural Outlook Architectural Highlights ‣ Shared-Memory based architecture for minimizing intra-nodal latency, as well as Proprietary Information - Distribution without Expressed Written Permission is Prohibited. maximizing nodal scalability ‣ Plugglable Service Architecture ‣ Full control over network scheduling © 2009, PrismTech. All Rights Reserved
  • 165. Technical Highlights Performance © 2009, PrismTech. All Rights Reserved
  • 166. High-Performance on Commodity HW Throughput -./0/1/23' 456/' Latency #+(+%++' &&++%++' $+(+%++' "*(%)+' ")(%&!' ""&%,&'&+++%++' Inter-Node Latency !"#$%&#' ‣ 60 usec "!+%++' )"#%*)' "++%++' )$,%$*' !+(+%++' )++%++' Inter-Core Read-Latency &'$($)$*+% *!#%,&' Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ 2 usec !"#$% ,+(+%++' *++%++' ()(!%(*' #++%++' (+(+%++' &")&%+)' Inter-Core Latency ‣ <10 usec $&"%,,' $++%++' &!(,%!)' &+(+%++' ),,%$#' !++%++' ,*+%&)' !,*%))' ,($%!+' (("%!"' &&)%*$' $"%"$' ,+%($' ,++%++' HW: (+%++' )' &#' ,(' #!' &()' ($#' $&(' &+(!' (+!)' !+"#' ‣ Dell blade-server !*$$,(*%-./*% ‣ Dual-core, Dual-CPU, AMD Opteron 2.4 Ghz Test Scenario OS ‣ Linux 2.6.21-1.3194.fc7 ‣ Single Threaded Application (multi-threaded networking service) Network ‣ 8192 bit message batches ‣ Gigabit Ethernet cards ‣ Dell PowerConnect 5324 switch © 2009, PrismTech. All Rights Reserved
  • 167. Technical Highlights Networking © 2009, PrismTech. All Rights Reserved
  • 168. Real-Time Networking Technology Architecture ‣ Network-channels Shared Single Copy per Node Shared ‣ Priority bands Pack Across Topics/Applications ‣ Network-partitions Memory Optimal Unmarshaling Memory ‣ Multicast Groups ‣ Traffic-shaping ‣ Burst/Throughput Proprietary Information - Distribution without Expressed Written Permission is Prohibited. OpenSplice DDS OpenSplice DDS Binding Binding Scalability and Efficiency Fault-Tolerance Pre-emptive Network Scheduler ‣ Single shared library for applications ‣ Active Channels Networking Priority Scheduler Networking Data Urgency Traffic Pacing & services ‣ Fall back on next ‣ Ring-fenced shared memory segment highest priority active Network Channels channel ‣ Data urgency driven network-packing Priority Bands Determinism & Safety Traffic Shaping ‣ Preemptive network-scheduler ‣ Data importance based network-channel selection ‣ Partition based multicast-group selection ‣ Managed critical network-resource © 2009, PrismTech. All Rights Reserved
  • 169. The Power of Choice ‣ With OpenSplice DDS you can choose wether to use the Real- Time Networking Protocol or the DDSI Interoperability Protocol based on your system Proprietary Information - Distribution without Expressed Written Permission is Prohibited. requirements w.r.t. real-time OpenSplice DDS behavior, scalability and Real-Time Networking DDSI v2.1 interoperability ‣ OpenSplice DDS can simultaneously run over its Native Protocol as well as DDSI thus allowing you to chose what best works for you © 2009, PrismTech. All Rights Reserved
  • 170. Technical Highlights Durability © 2009, PrismTech. All Rights Reserved
  • 171. Durable Data Technology Shared Memory Shared Memory Architecture ‣ Fault-Tolerant Data Availability Disk Disk ‣ Transient -- on memory OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding ‣ Persistent -- on disk Networking Durability Durability Networking ‣ Partitioning Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Persist Partitions Persistent Data on Local Disk ‣ DDS Partitions Transient Data in Memory ‣ Alignment Dedicated Persistence Service Alignment Channel ‣ Dedicated Channels Goal Features ‣ Transient QoS. Keep state-data outside the ‣ Fault-tolerant availability of non-volatile data scope/lifecycle of its publishers ‣ Efficient delivery of initial data to late-joining applications ‣ Persistence QoS. Keep persistent settings to ‣ Pluggable Durability Service outlive the system downtime ‣ Automatic alignment of replicated durability-services © 2009, PrismTech. All Rights Reserved
  • 172. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 173. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 174. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 175. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 176. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 177. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 178. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 179. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 180. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 181. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 182. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 183. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 184. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 185. Durability Configuration Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS Binding Binding OpenSplice DDS OpenSplice DDS Binding Binding Networking Durability Networking Durability B Proprietary Information - Distribution without Expressed Written Permission is Prohibited. m A F J D C K E Shared Memory Shared Memory Disk Disk OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Binding Binding Binding Binding Networking Durability Networking Durability © 2009, PrismTech. All Rights Reserved
  • 186. Technical Highlights Productivity Tools © 2009, PrismTech. All Rights Reserved
  • 187. Boosting Your Productivity Information Modeling Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Application Testing Modeling Application Development Provide MDE Tools supporting the various phases of a system development © 2009, PrismTech. All Rights Reserved
  • 188. Productivity Tools End-to-End System Design cycle ‣ Information, Application, and Deployment Modeling ‣ Productive and correctness-enforcing modeling environment Information Modeling Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Graphical system-wide Information and QoS Modeling ‣ OpenSplice DDS code-generation Application Modeling ‣ Graphical application modeling ‣ Pattern-oriented code-generation Deployment Modeling ‣ Modeling of DDS-configuration Service configuration (networking, durability) ‣ Runtime control with the OpenSplice DDS Tuner © 2009, PrismTech. All Rights Reserved
  • 189. Presentation Roadmap •PART I -- The DDS Standard • PART II -- OpenSplice DDS • PART III -- CoFlight Use Case
  • 190. Challenges Adapted from: “NextGen JPDO Overview” ‣ Predicted traffic growth are not sustainable with currently deployed infrastructures (even Proprietary Information - Distribution without Expressed Written Permission is Prohibited. when considering HW upgrades) © 2009, PrismTech. All Rights Reserved
  • 191. Challenges Capacity ‣ Avoid delays to Travelers ‣ With traffic growing fast the future air traffic management system needs a three-fold increase in capacity to avoid traffic congestion. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Efficiency ‣ Those who fly often bear the cost of air navigation services. ‣ Efficiency gains are obtained by improving flight operations and better coordinating airlines, military users, airports and air traffic management bodies. Environment ‣ Air traffic management professionals reduce this impact by designing fuel-efficient routes, better distributing traffic flows within the available airspace, and optimizing the calculation of departure times. © 2009, PrismTech. All Rights Reserved
  • 192. Challenges Safety ‣ When traffic doubles, the risk is squared ‣ Efforts to maintain safety must be intensified to ensure that the number of incidents does not increase. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Security ‣ The current security level of the Air Traffic Management (ATM) system has to increase to match threats, protect ATM operations and safeguard citizens’ safe mobility. © 2009, PrismTech. All Rights Reserved
  • 193. The CoFlight Project ‣ Large program to replace existing Flight Data Processors (FDPs) ATCC ATCC ‣ 5 Centers in France Reims Brest ATCC Paris ‣ 4 Centers in Italy Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ 2 Centers in Switzerland ATCC ATCC Zurich Geneve ATCC ATCC ATCC Milano Padova Bordeaux ATCC Aix-en- Provence ATCC Roma ATCC ‣ Initial Operational Capability by 2009 Brindisi © 2009, PrismTech. All Rights Reserved
  • 194. DDS in CoFlight -- FDP Core ‣ OpenSplice DDS glues together the most critical components of the DDS CoFlight FDP running at a SWAL-2 assurance level Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ In this context OpenSplice DDS distributes flights data plans of redundant LANs Flight Data Processing Servers © 2009, PrismTech. All Rights Reserved
  • 195. DDS in CoFlight -- CWP Controllers ‣ OpenSplice DDS is used within CoFlight to distribute the “external” Flight Data Plan to Controller Working Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Positions DDS DDS Flight Data Processing Servers © 2009, PrismTech. All Rights Reserved
  • 196. DDS in CoFlight -- IOP Controllers ‣ OpenSplice DDS is used Controllers Controllers to integrate CoFlight- based Centers DDS ‣ OpenSplice DDS is used Proprietary Information - Distribution without Expressed Written Permission is Prohibited. DDS DDS to provide interoperability with other Interoperable Centers (as per ICOG-2) Flight Data Processing Servers Flight Data Processing Servers Flight Data Processing Servers Air Traffic Control Center Air Traffic Control Center Air Traffic Control Center B m DDS A F J D C K E © 2009, PrismTech. All Rights Reserved
  • 197. OpenSplice DDS Delivering Performance, Openness, and Freedom Summing Up
  • 198. Concluding Remarks -- OMG Standard State of the Art ‣ The OMG DDS Standard uniquely addresses some of the key requirements for next generation Mission Application Critical Systems Object/Relational Mapping ‣ The OMG DDS is one of the few middleware standard Data Local Reconstruction Layer (DLRL) defining both API as well as Wire-Protocol, thus Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ensuring application portability and interworking Ownership Durability Content Subscription ‣ The DDS Standard has been recommended/ Minimum Profile mandated by key administration throughout the world Data Centric Publish/Subscribe (DCPS) as well as adopted by the most challenging Defense programs Real-Time Publish/Subscribe Protocol Looking Ahead DDS Interoperability Wire Protocol ‣ The DDS Standard is swiftly moving forward to expand UDP/IP its applicability (Ultra-Large/Small-Scale) simplify its use, and facilitate integration © 2009, PrismTech. All Rights Reserved
  • 199. Concluding Remarks ‣ OpenSplice DDS is now available as Open Source Software under LGPL Licensing OpenSplice DDS Delivering Performance, Openness, and Freedom ‣ This release provide users with access to the most powerful extreme performance data Enterprise Ed. distribution technology available on the market Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ A set of added value Editions along with a very Professional Ed. rich set of Services is available through PrismTech Compact Ed. ‣ A vibrant and innovative community is swiftly being established around OpenSplice DDS, Community Ed. thus... Embrace Performance, Openness and Freedom. Join the OpenSplice DDS Community © 2009, PrismTech. All Rights Reserved
  • 200. Online Resources http://www.opensplice.com/ http://twitter.com/acorsaro/ emailto:opensplicedds@prismtech.com Proprietary Information - Distribution without Expressed Written Permission is Prohibited. http://bit.ly/1Sreg http://opensplice.blogspot.com http://www.dds-forum.org http://www.youtube.com/OpenSpliceTube http://portals.omg.org/dds © 2009, PrismTech. All Rights Reserved