OpenSplice DDS
                                            Delivering Performance, Openness, and Freedom



 Angelo Corsar...
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Futu...
The Need for Data Distribution
    Time Scale                                                                         Geog...
Data Exchange / Distribution
‣ Network Centric Architectures are emerging as a key trend for next generation military and ...
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Futu...
Addressing Data Distribution Challenges
                                                          DDS is standard designed...
The OMG Data Distribution Service (DDS)

DDS v1.2 API Standard
‣ Language Independent, OS and HW architecture             ...
OMG DDS Recommendations is churning…
      ! The infrastructure evolution cycle
                     – New -> Emerging -> ...
OMG DDS Adoptions
Adopted by Most Challenging International Programs


‣ US FCS/SOSCOE




                               ...
OMG DDS Applicability
                                                                           Adapted from NSWC-DD Open...
Some DDS Use Cases
Defense
‣ Combat Management Systems
‣ Flycatcher system
‣ Unmanned Vehicles (Air + Land)
‣ Tactical Lin...
Some DDS Use Cases
Transportation
‣ Air Traffic Management/Control
‣ Metropolitan Traffic Management
‣ Underground Metropo...
Leading DDS Implementations

        ‣ Full Implementation of the OMG DDS Standard (DCPS+DLRL + DDSI)
        ‣ DCPS + DDS...
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                       DDS vs AMQP
Scope of Standardization
      AMQP                                              OMG DDS
                                 ...
Architectural Style

                      AMQP                                                                      OMG D...
Key Differences in Summary
            AMQP                                                             DDS
‣ Brokered Com...
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Futu...
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                     Loosely Coupled
                    ...
Counting the “W’s” of Coupling
                        Request
       Client                             Server           ...
OpenSplice DDS
Delivering Performance, Openness, and Freedom




       High Performance/Availability
                    ...
High Performance Pub/Sub
                                    The right data, at the right place, at the right time
‣ Fully...
OpenSplice DDS
Delivering Performance, Openness, and Freedom


                  Application




 Ownership
              ...
Data-Centric Pub/Sub
                                                             ‣ Data-Centric Features are built-in and...
“Visualizing” Data-Centric Pub/Sub
                                                                                    Sub...
Organizing Information

‣ All DDS communication is                                           Domain
                      ...
Topics and Data-Centric Pub/Sub
‣ Topics. Unit of information exchanged between
  Publisher and Subscribers.              ...
Distributed Relational Information Modeling

‣ Topic Keys can be used to identify instances as well as relationships
‣ Rel...
Data Centric Publish/Subscribe
                  Publishers                                                               ...
Data Centric Publish/Subscribe
                  Publishers                                                               ...
Processing Content & Structure                                                                                          Co...
Processing Content & Structure                                                                                 Complex Eve...
OpenSplice DDS
Delivering Performance, Openness, and Freedom


                  Application




 Ownership
              ...
Object/Relational Mapping
                                   TempSensor
                               temp: float
        ...
Object/Relational Mapping                                                                                                 ...
Multiple Object/Relational Mappings
                                                                               Canvas
...
An Example
   High-End 3D Visualization                                   Primary Radar



                               ...
An Example
   High-End 3D Visualization                                   Primary Radar



                               ...
An Example
   High-End 3D Visualization                                   Primary Radar

                                 ...
Custom Filter Example
   High-End 3D Visualization                                                  Primary Radar

       ...
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                          ...Putting it all
             ...
DCPS Application

                                                                                      Application
‣ The ...
DLRL Application
                                                                                                     Appl...
Generic DDS Application
                                                                                                  ...
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                          QoS-Enabled
                   ...
Communicating with Topics, Partitions and Domains


                                                              Topic
  ...
Communicating with Topics, Partitions and Domains


                                                                      ...
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
Upcoming SlideShare
Loading in...5
×

OMG DDS: The Data Distribution Service for Real-Time Systems

4,028

Published on

These slides were presented at the CANOE Summer School in OSLO (http://bit.ly/pYSD2) and provide an introduction to the OMG DDS Pub/Sub Standard.

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

No Downloads
Views
Total Views
4,028
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
338
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

OMG DDS: The Data Distribution Service for Real-Time Systems

  1. 1. OpenSplice DDS Delivering Performance, Openness, and Freedom Angelo Corsaro, Ph.D. OMG DDS: The Data Distribution Product Strategy Manager OMG RTESS and DDS SIG Co-Chair angelo.corsaro@prismtech.com Service for Real-Time Systems
  2. 2. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  3. 3. 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
  4. 4. 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
  5. 5. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. Leading DDS Implementations ‣ Full Implementation of the OMG DDS Standard (DCPS+DLRL + DDSI) ‣ DCPS + DDSI available as Open Source at http://www.opensplice.org ‣ Developed and Commercially supported by PrismTech Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Implementation of the OMG DDS Standard (DCPS + DDSI) ‣ Developed and Commercially supported by RTI ‣ Partial Implementation of the OMG DDS Standard (Subset of DCPS) ‣ Available as Open Source at http://www.opendds.com ‣ Developed and Commercially supported by OCI © 2009, PrismTech. All Rights Reserved
  14. 14. OpenSplice DDS Delivering Performance, Openness, and Freedom DDS vs AMQP
  15. 15. Scope of Standardization AMQP OMG DDS Application Application Object/Relational Mapping Object Relational Mapping Standard API Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Data Local Reconstruction Layer (DLRL) DDS v1.2 Content Ownership Durability Subscription API (?) Minimum Profile Pub/Sub Standard API Data Centric Publish/Subscribe (DCPS) DDSI v2.1 AMQP v0.10 Advanced Message Queuing Protocol Real-Time Publish/Subscribe Protocol Wire Protocol Standard Interoperability Wire Protocol DDS Interoperability Wire Protocol (TCP, SCTP, UDP)/IP UDP/IP © 2009, PrismTech. All Rights Reserved
  16. 16. Architectural Style AMQP OMG DDS Subscriber Subscriber Publisher Publisher Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Broker Broker Publisher Broker Subscriber Publisher Broker Subscriber Broker Broker Publisher Publisher Subscriber Subscriber © 2009, PrismTech. All Rights Reserved
  17. 17. Key Differences in Summary AMQP DDS ‣ Brokered Communication ‣ Peer-to-Peer Communication Architecture Architecture ‣ Wire Protocol Standard ‣ Wire Protocol + API Standard Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Interoperability across AMQP ‣ Interoperability across DDS implementations implementations ‣ Application Portability across DDS Implementation ‣ Header Based Routing ‣ Content-Based Filtering/Quering ‣ Not geared for High-Performance ‣ Designed bottom-up for maximum performance and determinism © 2009, PrismTech. All Rights Reserved
  18. 18. Motivating Forces The Standard Agenda Architectural Principles Programming Model Future Directions
  19. 19. OpenSplice DDS Delivering Performance, Openness, and Freedom Loosely Coupled Technology
  20. 20. Counting the “W’s” of Coupling Request Client Server The “4Ws” of Client/Server Reply ‣ Who+Where: Space Coupling ‣ What: Structural Coupling Client/Server ‣ When: Time Coupling CORBA, COM+, Java RMI, .Net Remoting, Web SVCs Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Subscriber Publisher Subscriber A Single “W” for DDS Publisher ‣ What: Structural Coupling Subscriber Publisher DDS Subscriber DDS features dynamic discovery and full time decoupling! © 2009, PrismTech. All Rights Reserved
  21. 21. OpenSplice DDS Delivering Performance, Openness, and Freedom High Performance/Availability Pub/Sub
  22. 22. 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
  23. 23. OpenSplice DDS Delivering Performance, Openness, and Freedom Application Ownership Object/Relational Mapping Data Local Reconstruction Layer (DLRL) Durability Content Data-Centric Pub/Sub Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol UDP/IP
  24. 24. 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
  25. 25. “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
  26. 26. 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
  27. 27. Topics and Data-Centric Pub/Sub ‣ Topics. Unit of information exchanged between Publisher and Subscribers. Topic ‣ Data Types. Type associated to a Topic must be a structured type expressed in IDL struct TempSensor { long tID; Topic Type float temp; ‣ Topic Instances. Key values in a datatype Proprietary Information - Distribution without Expressed Written Permission is Prohibited. float humidity; uniquely identify a Topic Instance (like rows in }; table) #pragma keylist TempSensor tID TempSensor ‣ Content Awareness. SQL Expressions can be tID temp humidity used to do content-aware subscriptions, Instances 1 21 62 2 27 78 queries, joins, and correlate topic instances 3 25.5 72.3 y idit idit y ity SELECT * FROM TempSensor t um Samples mid h um hu 62 h 65 63 WHERE t.temp > 25 p p tem tem p tem 21 22 tID 23 tID tID temp humidity tID 1 1 1 2 27 78 3 25.5 72.3 t1 t2 t3 Time © 2009, PrismTech. All Rights Reserved
  28. 28. 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 TempSensor Room Floor tID: int rID: int fID: int temp: float width: float level: int humidity: float height: float open: int rID: int length: float fID: int © 2009, PrismTech. All Rights Reserved
  29. 29. Data Centric Publish/Subscribe Publishers Subscribers TempSensor TempSensor tID temp humidity tID temp humidity 1 18 60 1 18 60 2 22 75 3 21 71 Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct TempSensor { TempSensor int tID; float temp; TempSensor tID temp humidity float humidity; tID temp humidity 2 22 75 }; 2 22 75 #pragma keylist TempSensor tID 3 21 71 SELECT * FROM TempSensor t WHERE s.temp > 20 s.t TempSensor ID == tID temp humidity Fully Distributed Global 1 TempSensor 3 21 71 Data Space tID temp humidity 1 18 60 © 2009, PrismTech. All Rights Reserved
  30. 30. Data Centric Publish/Subscribe Publishers Subscribers TempSensor TempSensor tID temp humidity tID temp humidity 1 21 62 1 21 62 2 22 75 3 21 71 Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct TempSensor { TempSensor int tID; float temp; TempSensor tID temp humidity float humidity; 2 22 75 tID temp humidity }; #pragma keylist TempSensor tID 1 21 62 2 22 75 3 21 71 SELECT * FROM TempSensor t s.t WHERE s.temp > 20 TempSensor ID == tID temp humidity Fully Distributed Global 1 TempSensor 3 21 71 Data Space tID temp humidity 1 21 62 © 2009, PrismTech. All Rights Reserved
  31. 31. Processing Content & Structure Complex Event Processing... ‣ Local Queries DDS provides some of the most useful features found in Complex Event Processing platforms! ‣ Continuous Queries (Content-based Subscriptions) ‣ Topics Joins & Projections ‣ Events windows (via History QoS) Proprietary Information - Distribution without Expressed Written Permission is Prohibited. tID temp humidity S1 3 21.5 72.3 tID temp humidity {iID = 1} 2 20 78 tID temp humidity 1 21 62 S2 P {temp > 21 | humidity > 75} S3 { temp <16 } © 2009, PrismTech. All Rights Reserved
  32. 32. Processing Content & Structure Complex Event Processing... ‣ Local Queries DDS provides some of the most useful features found in Complex Event Processing platforms! ‣ Continuous Queries (Content-based Subscriptions) ‣ Topics Joins & Projections ‣ Events windows (via History QoS) Proprietary Information - Distribution without Expressed Written Permission is Prohibited. tID temp humidity 1 21 62 S1 {iID = 1} tID temp humidity 2 20 78 3 21.5 72.3 S2 P {temp > 21 | humidity > 75} S3 { temp <16 } © 2009, PrismTech. All Rights Reserved
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. OpenSplice DDS Delivering Performance, Openness, and Freedom ...Putting it all Together
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. OpenSplice DDS Delivering Performance, Openness, and Freedom QoS-Enabled Pub/Sub
  46. 46. 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
  47. 47. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×