SlideShare a Scribd company logo
OpenSplice DDS
           Delivering Performance, Openness, and Freedom




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

•PART I -- The DDS Standard

• PART II -- OpenSplice DDS

• PART III -- CoFlight Use Case
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Future Directions
© 2009, PrismTech. All Rights Reserved
                                                                                                                                      The Need for Data Distribution




                                         Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Time Scale




© 2009, PrismTech. All Rights Reserved
                                                                                                                                                   The Need for Data Distribution




                                         Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
The Need for Data Distribution
  Time Scale                                            Geographical Scale




                                                                             Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
               © 2009, PrismTech. All Rights Reserved
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
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
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
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
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
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
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Future Directions
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
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
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
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
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
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
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
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Future Directions
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                     Loosely Coupled
                          Technology
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom




       High Performance/Availability
                         Pub/Sub
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
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
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
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
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
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
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
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
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
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
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
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
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
“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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                          ...Putting it all
                               Together
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                          QoS-Enabled
                             Pub/Sub
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Future Directions
OpenSplice DDS
Delivering Performance, Openness, and Freedom




           Shared Global Data Space
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom



 Topic Used in next section.
                                Writing Data
  struct Counter {
     int cID;
     int count;
  };
  #pragma keylist Counter cID
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
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
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
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
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
Presentation Roadmap

•PART I -- The DDS Standard

• PART II -- OpenSplice DDS

• PART III -- CoFlight Use Case
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom



                 Why Open Source?
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom



              OpenSplice DDS v4.1
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
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
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
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
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom



                      Who is Using
                    OpenSplice DDS
Some OpenSplice DDS Users




                                                    !"#$%&'()('*+'##,-+.+/($$,012"0




                                                                                    Experti
                                                                    réalisée par Bernard M
           © 2009, PrismTech. All Rights Reserved
OpenSplice DDS
Delivering Performance, Openness, and Freedom



                 Technical Highlights
Technical Highlights

                                         Architecture



© 2009, PrismTech. All Rights Reserved
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
Technical Highlights

                                         Performance



© 2009, PrismTech. All Rights Reserved
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
Technical Highlights

                                         Networking



© 2009, PrismTech. All Rights Reserved
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
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
Technical Highlights

                                         Durability



© 2009, PrismTech. All Rights Reserved
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Technical Highlights

                                         Productivity Tools



© 2009, PrismTech. All Rights Reserved
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
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
Presentation Roadmap

•PART I -- The DDS Standard

• PART II -- OpenSplice DDS

• PART III -- CoFlight Use Case
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
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
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
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
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
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
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
OpenSplice DDS
Delivering Performance, Openness, and Freedom



                           Summing Up
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
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
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

More Related Content

PDF
UML Profile for DDS
PDF
OMG DDS: The Data Distribution Service for Real-Time Systems
PDF
OMG DDS Tutorial - Part I
PDF
The Data Distribution Service
PDF
OMG Data-Distribution Service (DDS) Tutorial - 2009
PDF
The Present and Future of DDS
PDF
Getting Started with DDS in C++, Java and Scala
PDF
Introduction to OMG DDS (1 hour, 45 slides)
UML Profile for DDS
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS Tutorial - Part I
The Data Distribution Service
OMG Data-Distribution Service (DDS) Tutorial - 2009
The Present and Future of DDS
Getting Started with DDS in C++, Java and Scala
Introduction to OMG DDS (1 hour, 45 slides)

What's hot (20)

PDF
Tuning and Troubleshooting OpenSplice DDS Applications
PDF
RTI Data-Distribution Service (DDS) Master Class - 2010
PDF
DDS Everywhere
PDF
The Data Distribution Service
PDF
Distributed Simulations with DDS and HLA
PPTX
Move your Data Center to the Cloud
PPT
RTI Data-Distribution Service (DDS) Master Class 2011
PDF
DDS + Android = OpenSplice Mobile
PDF
DDS in SCADA, Utilities, Smart Grid and Smart Cities
PDF
DDS for JMS Programmers
PPTX
Rapid Integration of Software-as-a-Service with On-Premise Applications Using...
PDF
Embrace Change
PPTX
Introduction to DDS
PDF
Communication Patterns Using Data-Centric Publish/Subscribe
PPTX
Simware RTI: Hello World!
PDF
OMG DDS Security Submission Presentation (September 2013 - 6th Revised Submis...
PDF
OpenSplice Security Module
PDF
Cloudsecurity
PDF
DDS: The IoT Data Sharing Standard
Tuning and Troubleshooting OpenSplice DDS Applications
RTI Data-Distribution Service (DDS) Master Class - 2010
DDS Everywhere
The Data Distribution Service
Distributed Simulations with DDS and HLA
Move your Data Center to the Cloud
RTI Data-Distribution Service (DDS) Master Class 2011
DDS + Android = OpenSplice Mobile
DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS for JMS Programmers
Rapid Integration of Software-as-a-Service with On-Premise Applications Using...
Embrace Change
Introduction to DDS
Communication Patterns Using Data-Centric Publish/Subscribe
Simware RTI: Hello World!
OMG DDS Security Submission Presentation (September 2013 - 6th Revised Submis...
OpenSplice Security Module
Cloudsecurity
DDS: The IoT Data Sharing Standard
Ad

Viewers also liked (20)

PDF
Kamloops.#2.nov.2012
PDF
Mobile QoS Management using Complex Event Processing
PDF
ikd312-05-kalkulus-relasional
PDF
ikd312-02-three-schema
PPT
Cbi Revenue Recognition Panel Slides 031709 Final
PDF
Gmecdeck
PDF
Visita biblioteca municipal 2013
PDF
Scientific Applications of The Data Distribution Service
PDF
Crosscurrents, 2011, Collaboration Counts!
PDF
BCIC Town hall may5th
PDF
Vision for Haverhill Comprehensive Plan Concept & Framework
PPT
Investment decisions for pension funds by intangible value capital
KEY
Science world
PDF
The OpenSplice DDS Revolution -- Episode II
PDF
Quesnel.Adolescent Literacy.Feb 2016
KEY
Science World Board Presentation
PPTX
Pe le projektin loppuarviointi
PPT
Jules Cheret (1836-1933) y sus contemporáneos
PDF
B2: The OpenSplice BlendBox
PPTX
Kamloops.#2.nov.2012
Mobile QoS Management using Complex Event Processing
ikd312-05-kalkulus-relasional
ikd312-02-three-schema
Cbi Revenue Recognition Panel Slides 031709 Final
Gmecdeck
Visita biblioteca municipal 2013
Scientific Applications of The Data Distribution Service
Crosscurrents, 2011, Collaboration Counts!
BCIC Town hall may5th
Vision for Haverhill Comprehensive Plan Concept & Framework
Investment decisions for pension funds by intangible value capital
Science world
The OpenSplice DDS Revolution -- Episode II
Quesnel.Adolescent Literacy.Feb 2016
Science World Board Presentation
Pe le projektin loppuarviointi
Jules Cheret (1836-1933) y sus contemporáneos
B2: The OpenSplice BlendBox
Ad

Similar to Introducing the OMG DDS to the Aerospace Valley (20)

PDF
High Performance Distributed Computing with DDS and Scala
PDF
Mike Stolz Dramatic Scalability
PDF
Network automation seminar
PDF
Security in the Cloud
PDF
Security in the Cloud
PDF
Best Practices for Migration
PDF
Best Practices for Migration
PDF
NGN Hybrid Cloud Matrix
PDF
Data Center In Healthcare Presentation 02 12
PDF
10 Reasons for Choosing OpenSplice DDS
PDF
Windows of Opportunity: Big Data on Tap
PDF
Nfp Seminar Series Danny November 18 Emerging Technology Challenges And...
PPT
Understanding Intelligent Military-Grade Optical Ethernet Networks: A Versati...
PDF
Accel Partners New Data Workshop 7-14-10
PDF
S series presentation
PDF
Rrw – a robust and reversible watermarking technique for relational data
PPTX
Iia 2012 Spring Conference Philly V Final
PDF
OSS Presentation Keynote by Hal Stern
PDF
International approaches to critical information infrastructure protection ...
PPTX
When Where Why Cloud
High Performance Distributed Computing with DDS and Scala
Mike Stolz Dramatic Scalability
Network automation seminar
Security in the Cloud
Security in the Cloud
Best Practices for Migration
Best Practices for Migration
NGN Hybrid Cloud Matrix
Data Center In Healthcare Presentation 02 12
10 Reasons for Choosing OpenSplice DDS
Windows of Opportunity: Big Data on Tap
Nfp Seminar Series Danny November 18 Emerging Technology Challenges And...
Understanding Intelligent Military-Grade Optical Ethernet Networks: A Versati...
Accel Partners New Data Workshop 7-14-10
S series presentation
Rrw – a robust and reversible watermarking technique for relational data
Iia 2012 Spring Conference Philly V Final
OSS Presentation Keynote by Hal Stern
International approaches to critical information infrastructure protection ...
When Where Why Cloud

More from Angelo Corsaro (20)

PDF
Zenoh: The Genesis
PDF
zenoh: The Edge Data Fabric
PDF
Zenoh Tutorial
PDF
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
PDF
zenoh: zero overhead pub/sub store/query compute
PDF
zenoh -- the ZEro Network OverHead protocol
PDF
zenoh -- the ZEro Network OverHead protocol
PDF
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
PDF
Eastern Sicily
PDF
fog05: The Fog Computing Infrastructure
PDF
Cyclone DDS: Sharing Data in the IoT Age
PDF
fog05: The Fog Computing Platform
PDF
Programming in Scala - Lecture Four
PDF
Programming in Scala - Lecture Three
PDF
Programming in Scala - Lecture Two
PDF
Programming in Scala - Lecture One
PDF
Data Sharing in Extremely Resource Constrained Envionrments
PDF
The DDS Security Standard
PDF
RUSTing -- Partially Ordered Rust Programming Ruminations
PDF
Vortex II -- The Industrial IoT Connectivity Standard
Zenoh: The Genesis
zenoh: The Edge Data Fabric
Zenoh Tutorial
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
zenoh: zero overhead pub/sub store/query compute
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Eastern Sicily
fog05: The Fog Computing Infrastructure
Cyclone DDS: Sharing Data in the IoT Age
fog05: The Fog Computing Platform
Programming in Scala - Lecture Four
Programming in Scala - Lecture Three
Programming in Scala - Lecture Two
Programming in Scala - Lecture One
Data Sharing in Extremely Resource Constrained Envionrments
The DDS Security Standard
RUSTing -- Partially Ordered Rust Programming Ruminations
Vortex II -- The Industrial IoT Connectivity Standard

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Getting Started with Data Integration: FME Form 101
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A comparative analysis of optical character recognition models for extracting...
Getting Started with Data Integration: FME Form 101
The Rise and Fall of 3GPP – Time for a Sabbatical?
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Building Integrated photovoltaic BIPV_UPV.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Spectral efficient network and resource selection model in 5G networks
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
SOPHOS-XG Firewall Administrator PPT.pptx
MYSQL Presentation for SQL database connectivity
Network Security Unit 5.pdf for BCA BBA.
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Mobile App Security Testing_ A Comprehensive Guide.pdf

Introducing the OMG DDS to the Aerospace Valley

  • 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