SlideShare a Scribd company logo
1 of 162
Download to read offline
OpenSplice DDS
                                                 Delivering Performance, Openness, and Freedom



       Angelo Corsaro, Ph.D.
Product Strategy & Marketing Manager


                                        OMG DDS Tutorial - Part I
     OMG RTESS and DDS SIG Co-Chair
         angelo.corsaro@prismtech.com
Motivating Forces
         The Standard
Agenda

         Architectural Principles
         Programming Model
         Concluding Remarks
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
    Centric Systems             Joint Forces
                                 Joint Forces
                              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
         Concluding Remarks
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




                                            © 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
         Concluding Remarks
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
                                                                                                ‣ What: Structural Coupling
                   Client/Server                                                                ‣ When: Time Coupling
      CORBA, COM+, Java RMI, .Net Remoting, Web SVCs




                                                                                                                                  Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
                                                           Subscriber
Publisher




                                                                Subscriber                        A Single “W” for DDS
Publisher                                                                                         ‣ What: Structural Coupling
                                                                Subscriber



Publisher
                             DDS                        Subscriber                               DDS features dynamic discovery
                                                                                                    and full time decoupling!

                                                       © 2009, PrismTech. All Rights Reserved
DDS vs. Client-Server
                  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
Counting the “W’s” of Coupling
                              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
‣ Loosely Coupled (1W)                          Publisher
‣ Plug & Play
‣ Inherently Many-to-Many                                                                                          Subscriber

‣ 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




 Ownership
                      Object/Relational Mapping

               Data Local Reconstruction Layer (DLRL)


                     Durability
                                          Content
                                                        Data-Centric
                                                            Pub/Sub
                                        Subscription

                 Minimum Profile

      Data Centric Publish/Subscribe (DCPS)


       Real-Time Publish/Subscribe Protocol

         DDS Interoperability Wire Protocol


                      UDP/IP
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
Topics and Data-Centric Pub/Sub
‣ Topics. Unit of information exchanged between
  Publisher and Subscribers.                                                                      Topic

‣ Data Types. Type associated to a Topic must be
  a structured type expressed in IDL                                                                             struct TempSensor {
                                                                                                                    long tID;
                                                                                              Topic Type            float temp;
‣ Topic Instances. Key values in a datatype




                                                                                                                                                               Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
                                                                                                                    float humidity;
  uniquely identify a Topic Instance (like rows in                                                               };
  table)                                                                                                         #pragma keylist TempSensor tID

                                                                                                                         TempSensor
‣ Content Awareness. SQL Expressions can be                                                                                 tID       temp      humidity

  used to do content-aware subscriptions,                                                         Instances
                                                                                                                            1          21         62
                                                                                                                            2          27         78
  queries, joins, and correlate topic instances                                                                             3         25.5        72.3

                               y
                          idit                           idit
                                                             y                                   ity                              SELECT * FROM TempSensor t
                       um          Samples                                                   mid
                     h                                 um                                 hu
                           62                        h
                                                          65                                   63                                 WHERE t.temp > 25
                 p                                                              p
             tem                             tem
                                                 p                          tem
                21                                                             22
      tID                                       23               tID                                                        tID       temp      humidity
                                     tID
         1                                                          1
                                        1                                                                                    2         27         78
                                                                                                                             3        25.5        72.3
    t1                              t2                           t3                          Time
                                                                        © 2009, PrismTech. All Rights Reserved
Distributed Relational Information Modeling

‣ Topic Keys can be used to identify instances as well as relationships
‣ Relationships can be navigated by relying on a subset of SQL 92
‣ One-to-many relationships can be captured using foreign keys
‣ Many-to-many relationships need to be modeled using a topics




                                                                                             Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Keys can be represented by an arbitrary number of Topic fields

               TempSensor                  Room
                                                                                     Floor
            tID: int                rID: int                                 fID: int
            temp: float              width: float                              level: int
            humidity: float          height: float                             open: int
            rID: int                length: float
                                    fID: int



                                    © 2009, PrismTech. All Rights Reserved
Data Centric Publish/Subscribe
                  Publishers                                                                                     Subscribers
    TempSensor                                                                                                TempSensor
            tID          temp       humidity                                                                    tID            temp         humidity
            1             18             60                                                                      1              18            60
                                                                                                                 2              22            75
                                                                                                                 3              21            71




                                                                                                                                                           Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
                                                struct TempSensor {
TempSensor                                         int tID;
                                                   float temp;                                                  TempSensor
    tID            temp         humidity
                                                   float humidity;                                                       tID         temp       humidity
    2               22            75            };
                                                                                                                         2            22             75
                                                #pragma keylist TempSensor tID
                                                                                                                         3            21             71

                                                                                                               SELECT * FROM TempSensor t
                                                                                                               WHERE s.temp > 20
                                                                                             s.t
  TempSensor                                                                                    ID
                                                                                                     ==
     tID            temp         humidity
                                               Fully Distributed Global                                   1    TempSensor
        3            21             71               Data Space                                                  tID            temp         humidity
                                                                                                                     1           18             60




                                                    © 2009, PrismTech. All Rights Reserved
Data Centric Publish/Subscribe
                  Publishers                                                                                     Subscribers
    TempSensor                                                                                                TempSensor
            tID          temp       humidity                                                                    tID         temp         humidity
            1             21             62                                                                      1           21            62
                                                                                                                 2           22            75
                                                                                                                 3           21            71




                                                                                                                                                       Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
                                                struct TempSensor {
TempSensor                                         int tID;
                                                   float temp;                                                  TempSensor
    tID            temp         humidity
                                                   float humidity;
    2               22            75                                                                                  tID         temp      humidity
                                                };
                                                #pragma keylist TempSensor tID                                        1            21            62
                                                                                                                      2            22            75
                                                                                                                      3            21            71

                                                                                                                SELECT * FROM TempSensor t
                                                                                             s.t                WHERE s.temp > 20
  TempSensor                                                                                    ID
                                                                                                     ==
     tID            temp         humidity
                                               Fully Distributed Global                                   1
                                                                                                              TempSensor
        3            21             71               Data Space
                                                                                                                tID         temp         humidity
                                                                                                                 1           21             62




                                                    © 2009, PrismTech. All Rights Reserved
Processing Content & Structure                                                                                          Complex Event Processing...


‣ Local Queries                                                                           DDS provides some of the most useful features
                                                                                           found in Complex Event Processing platforms!
‣ Continuous Queries (Content-based Subscriptions)
‣ Topics Joins & Projections
‣ Events windows (via History QoS)




                                                                                                                                                            Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
tID   temp       humidity                                                                                                  S1
3     21.5          72.3
      tID    temp          humidity                                                                               {iID = 1}
      2       20              78
                    tID      temp     humidity
                    1         21        62
                                                                                                                                  S2
             P                                                                                                                {temp > 21 | humidity > 75}



                                                                                                                                S3
                                                                                                            { temp <16 }

                                                 © 2009, PrismTech. All Rights Reserved
Processing Content & Structure                                                                                 Complex Event Processing...


‣ Local Queries                                                              DDS provides some of the most useful features
                                                                              found in Complex Event Processing platforms!
‣ Continuous Queries (Content-based Subscriptions)
‣ Topics Joins & Projections
‣ Events windows (via History QoS)




                                                                                                                                                             Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
                                                                                                                 tID         temp          humidity
                                                                                                                   1            21           62


                                                                                                              S1
                                                                                                     {iID = 1}              tID      temp         humidity
                                                                                                                            2         20              78
                                                                                                                            3        21.5             72.3

                                                                                                                        S2
       P                                                                                                         {temp > 21 | humidity > 75}



                                                                                                                       S3
                                                                                               { temp <16 }

                                    © 2009, PrismTech. All Rights Reserved
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
                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
                                                                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
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
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I

More Related Content

What's hot

[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏Insight Technology, Inc.
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive日本マイクロソフト株式会社
 
新プロジェクト Hyperledger Cactus のご紹介
新プロジェクト Hyperledger Cactus のご紹介新プロジェクト Hyperledger Cactus のご紹介
新プロジェクト Hyperledger Cactus のご紹介Hyperleger Tokyo Meetup
 
Palo Alto Networks CASB
Palo Alto Networks CASBPalo Alto Networks CASB
Palo Alto Networks CASBAlberto Rivai
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperleger Tokyo Meetup
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)fisuda
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) NTT DATA Technology & Innovation
 
Transforming enterprise and industry with 5G private networks
Transforming enterprise and industry with 5G private networksTransforming enterprise and industry with 5G private networks
Transforming enterprise and industry with 5G private networksQualcomm Research
 
SD WAN Overview | What is SD WAN | Benefits of SD WAN
SD WAN Overview | What is SD WAN | Benefits of SD WAN SD WAN Overview | What is SD WAN | Benefits of SD WAN
SD WAN Overview | What is SD WAN | Benefits of SD WAN Ashutosh Kaushik
 
Azure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークKuninobu SaSaki
 
Horizon Cloud on Microsoft Azure 概要 (2018年12月版)
Horizon Cloud on Microsoft Azure 概要 (2018年12月版)Horizon Cloud on Microsoft Azure 概要 (2018年12月版)
Horizon Cloud on Microsoft Azure 概要 (2018年12月版)Takamasa Maejima
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)VirtualTech Japan Inc.
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA ExplainedAngelo Corsaro
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたHyperleger Tokyo Meetup
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
 
TWAMP NOKIA.pdf
TWAMP NOKIA.pdfTWAMP NOKIA.pdf
TWAMP NOKIA.pdf
 
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
 
新プロジェクト Hyperledger Cactus のご紹介
新プロジェクト Hyperledger Cactus のご紹介新プロジェクト Hyperledger Cactus のご紹介
新プロジェクト Hyperledger Cactus のご紹介
 
Palo Alto Networks CASB
Palo Alto Networks CASBPalo Alto Networks CASB
Palo Alto Networks CASB
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
 
Transforming enterprise and industry with 5G private networks
Transforming enterprise and industry with 5G private networksTransforming enterprise and industry with 5G private networks
Transforming enterprise and industry with 5G private networks
 
SD WAN Overview | What is SD WAN | Benefits of SD WAN
SD WAN Overview | What is SD WAN | Benefits of SD WAN SD WAN Overview | What is SD WAN | Benefits of SD WAN
SD WAN Overview | What is SD WAN | Benefits of SD WAN
 
SDWAN.pdf
SDWAN.pdfSDWAN.pdf
SDWAN.pdf
 
Azure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワーク
 
Horizon Cloud on Microsoft Azure 概要 (2018年12月版)
Horizon Cloud on Microsoft Azure 概要 (2018年12月版)Horizon Cloud on Microsoft Azure 概要 (2018年12月版)
Horizon Cloud on Microsoft Azure 概要 (2018年12月版)
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA Explained
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 

Viewers also liked

Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Gerardo Pardo-Castellote
 
CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert Faye Brownlie
 
Carols Presentation53
Carols  Presentation53Carols  Presentation53
Carols Presentation53guest576d5
 
SharePoint + Silverlight - new BFF's by Wictor Wilén
SharePoint + Silverlight - new BFF's by Wictor WilénSharePoint + Silverlight - new BFF's by Wictor Wilén
SharePoint + Silverlight - new BFF's by Wictor WilénWictor Wilén
 
GPA 1035: introduction
GPA 1035: introductionGPA 1035: introduction
GPA 1035: introductionoiwan
 
How Do You Measure The Power Of Words
How Do You Measure The Power Of WordsHow Do You Measure The Power Of Words
How Do You Measure The Power Of WordsPrashant Gandhi
 
Rupert.Reading.Jan 2015
Rupert.Reading.Jan 2015 Rupert.Reading.Jan 2015
Rupert.Reading.Jan 2015 Faye Brownlie
 
Rupert. 1st sessions.nov
Rupert. 1st sessions.novRupert. 1st sessions.nov
Rupert. 1st sessions.novFaye Brownlie
 
DDS Web Programming with dscript
DDS Web Programming with dscriptDDS Web Programming with dscript
DDS Web Programming with dscriptAngelo Corsaro
 
Belinda Love Photography
Belinda Love PhotographyBelinda Love Photography
Belinda Love PhotographyBelinda Love
 
Archydro
ArchydroArchydro
Archydroabkhiz
 
Don’t let Your Website Spread Malware – a New Approach to Web App Security
Don’t let Your Website Spread Malware – a New Approach to Web App SecurityDon’t let Your Website Spread Malware – a New Approach to Web App Security
Don’t let Your Website Spread Malware – a New Approach to Web App SecuritySasha Nunke
 

Viewers also liked (20)

Sph 107 Ch 15
Sph 107 Ch 15Sph 107 Ch 15
Sph 107 Ch 15
 
Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)
 
Embrace Change
Embrace ChangeEmbrace Change
Embrace Change
 
SPH 107 Ch 5
SPH 107 Ch 5SPH 107 Ch 5
SPH 107 Ch 5
 
Pintura 2 Eso
Pintura 2 EsoPintura 2 Eso
Pintura 2 Eso
 
CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert
 
Carols Presentation53
Carols  Presentation53Carols  Presentation53
Carols Presentation53
 
SharePoint + Silverlight - new BFF's by Wictor Wilén
SharePoint + Silverlight - new BFF's by Wictor WilénSharePoint + Silverlight - new BFF's by Wictor Wilén
SharePoint + Silverlight - new BFF's by Wictor Wilén
 
GPA 1035: introduction
GPA 1035: introductionGPA 1035: introduction
GPA 1035: introduction
 
How Do You Measure The Power Of Words
How Do You Measure The Power Of WordsHow Do You Measure The Power Of Words
How Do You Measure The Power Of Words
 
Rupert.Reading.Jan 2015
Rupert.Reading.Jan 2015 Rupert.Reading.Jan 2015
Rupert.Reading.Jan 2015
 
ikp213-unifikasi
ikp213-unifikasiikp213-unifikasi
ikp213-unifikasi
 
Rupert. 1st sessions.nov
Rupert. 1st sessions.novRupert. 1st sessions.nov
Rupert. 1st sessions.nov
 
DDS Web Programming with dscript
DDS Web Programming with dscriptDDS Web Programming with dscript
DDS Web Programming with dscript
 
Belinda Love Photography
Belinda Love PhotographyBelinda Love Photography
Belinda Love Photography
 
Mcm ottobre 11
Mcm ottobre 11Mcm ottobre 11
Mcm ottobre 11
 
Archydro
ArchydroArchydro
Archydro
 
Trail Of Tears
Trail Of TearsTrail Of Tears
Trail Of Tears
 
Don’t let Your Website Spread Malware – a New Approach to Web App Security
Don’t let Your Website Spread Malware – a New Approach to Web App SecurityDon’t let Your Website Spread Malware – a New Approach to Web App Security
Don’t let Your Website Spread Malware – a New Approach to Web App Security
 
Carbonara coding
Carbonara codingCarbonara coding
Carbonara coding
 

Similar to OMG DDS Tutorial - Part I

OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsAngelo Corsaro
 
10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDSAngelo Corsaro
 
DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesAngelo Corsaro
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Angelo Corsaro
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaAngelo Corsaro
 
Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Angelo Corsaro
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo Corsaro
 
OMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityOMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityGerardo Pardo-Castellote
 
RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010Gerardo Pardo-Castellote
 
Integration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSIntegration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSSupreet Oberoi
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsAngelo Corsaro
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeSumant Tambe
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeReal-Time Innovations (RTI)
 
Data Center In Healthcare Presentation 02 12
Data Center In Healthcare Presentation 02 12Data Center In Healthcare Presentation 02 12
Data Center In Healthcare Presentation 02 12todmoore
 
Network automation seminar
Network automation seminarNetwork automation seminar
Network automation seminarpatmisasi
 
Gef 2012 InduSoft Presentation
Gef 2012  InduSoft PresentationGef 2012  InduSoft Presentation
Gef 2012 InduSoft PresentationAVEVA
 

Similar to OMG DDS Tutorial - Part I (20)

OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS
 
DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart Cities
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDS
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and Scala
 
Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
OMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityOMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle Interoperability
 
RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010
 
The Network Enabled EOC
The Network Enabled EOCThe Network Enabled EOC
The Network Enabled EOC
 
Integration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSIntegration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDS
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS Applications
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
The Promise of Interoperability
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of Interoperability
 
Data Center In Healthcare Presentation 02 12
Data Center In Healthcare Presentation 02 12Data Center In Healthcare Presentation 02 12
Data Center In Healthcare Presentation 02 12
 
Network automation seminar
Network automation seminarNetwork automation seminar
Network automation seminar
 
Gef 2012 InduSoft Presentation
Gef 2012  InduSoft PresentationGef 2012  InduSoft Presentation
Gef 2012 InduSoft Presentation
 

More from Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationAngelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo Corsaro
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo Corsaro
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo Corsaro
 

More from Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 

Recently uploaded

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

OMG DDS Tutorial - Part I

  • 1. OpenSplice DDS Delivering Performance, Openness, and Freedom Angelo Corsaro, Ph.D. Product Strategy & Marketing Manager OMG DDS Tutorial - Part I OMG RTESS and DDS SIG Co-Chair angelo.corsaro@prismtech.com
  • 2. Motivating Forces The Standard Agenda Architectural Principles Programming Model Concluding Remarks
  • 3. The Need for Data Distribution Time Scale Geographical Scale Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Parallelism Determinism Throughput, Availability Scalability, Persistence, Security Systemic Real-Time Near Real-Time Fault- Data Complex Information Signal Information Tolerant Information Processing Processing Management Processing Processing Data Distribution Parallel Systems Distributed Systems © 2009, PrismTech. All Rights Reserved
  • 4. 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 Centric Systems Joint Forces Joint Forces Global Info Grid Global Info Grid Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Adapted from “The Future of AWACS”, by LtCol Joe Chapa The Right Information => To the Right People => At the Right Time © 2009, PrismTech. All Rights Reserved
  • 5. Motivating Forces The Standard Agenda Architectural Principles Programming Model Concluding Remarks
  • 6. Addressing Data Distribution Challenges DDS is standard designed to address the data-distribution challenges across The OMG DDS Standard a wide class of Defense and Aerospace Applications ‣ Introduced in 2004 to address the Data Distribution challenges faced by a wide class of Defense and Aerospace Applications Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Key requirement for the standard were its ability to deliver very high performance while seamlessly scaling from embedded to ultra- large-scale deployments ‣ Today recommended by key administration worldwide and widely adopted across several different application domains, such as, Automated Trading, Simulations, SCADA, Telemetry, etc. © 2009, PrismTech. All Rights Reserved
  • 7. 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 © 2009, PrismTech. All Rights Reserved
  • 8. OMG DDS Recommendations is churning… ! The infrastructure evolution cycle – New -> Emerging -> Standard -> Commodity – Middleware is emerging as Mandated/Recommended by key Administrations OS declines ! …DDS is maturing… ‣ US Navy: Open Architecture focus – OMG – Wire spec Proprietary Information - Distribution without Expressed Written Permission is Prohibited. – Tools ‣ DISR/DISA: Net-centric Systems – Enterprise integration – Multiple products fielded ‣ EuroControl: Air Traffic Control Center Operational – Deployed applications! Interoperability ! …and adoption is on the rise – Navy for VSI ‣ QinetiQ: Recommending DDS – DISR – FCS/SoSCOE – Many significant applications © 2009, PrismTech. All Rights Reserved
  • 9. OMG DDS Adoptions Adopted by Most Challenging International Programs ‣ US FCS/SOSCOE Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ European Next Generation Flight Data Processor ‣ US ZUMWALT [DDG(1000)] ‣ VTID adopting DDS for the architectural demonstrator © 2009, PrismTech. All Rights Reserved
  • 10. OMG DDS Applicability Adapted from NSWC-DD Open Architecture Documentation Communication Technologies Standards Web SVCs The DDS is the only technology that spans across Java RTSJ the board. Proprietary Information - Distribution without Expressed Written Permission is Prohibited. JMS It guarantees exceptional real- time behavior, CORBA RT-CORBA while providing unparalleled level OMG Data Distribution Service (DDS) of throughput ! MPI Message Passing Interface Non Real-Time Soft Real-Time Hard Real-Time Extreme Real-Time © 2009, PrismTech. All Rights Reserved
  • 11. Some DDS Use Cases Defense ‣ Combat Management Systems ‣ Flycatcher system ‣ Unmanned Vehicles (Air + Land) ‣ Tactical Links Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Radar Processing ‣ Submarine Systems ‣ Future Combat Systems ‣ Simulation SCADA/Utilities ‣ Industrial Automation ‣ Power Grids ‣ Rocket Launch Systems © 2009, PrismTech. All Rights Reserved
  • 12. Some DDS Use Cases Transportation ‣ Air Traffic Management/Control ‣ Metropolitan Traffic Management ‣ Underground Metropolitan Transportation Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Financial Services ‣ Automated Trading Firms ‣ Compliance Systems ‣ Market Data Platforms © 2009, PrismTech. All Rights Reserved
  • 13. Motivating Forces The Standard Agenda Architectural Principles Programming Model Concluding Remarks
  • 14. OpenSplice DDS Delivering Performance, Openness, and Freedom Loosely Coupled Technology
  • 15. Counting the “W’s” of Coupling Request Client Server The “4Ws” of Client/Server Reply ‣ Who+Where: Space Coupling ‣ What: Structural Coupling Client/Server ‣ When: Time Coupling CORBA, COM+, Java RMI, .Net Remoting, Web SVCs Proprietary Information - Distribution without Expressed Written Permission is Prohibited. Subscriber Publisher Subscriber A Single “W” for DDS Publisher ‣ What: Structural Coupling Subscriber Publisher DDS Subscriber DDS features dynamic discovery and full time decoupling! © 2009, PrismTech. All Rights Reserved
  • 16. DDS vs. Client-Server 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
  • 17. Counting the “W’s” of Coupling 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 ‣ Loosely Coupled (1W) Publisher ‣ Plug & Play ‣ Inherently Many-to-Many Subscriber ‣ Fault Resilient Publisher Subscriber © 2009, PrismTech. All Rights Reserved
  • 18. OpenSplice DDS Delivering Performance, Openness, and Freedom High Performance/Availability Pub/Sub
  • 19. 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
  • 20. OpenSplice DDS Delivering Performance, Openness, and Freedom Application Ownership Object/Relational Mapping Data Local Reconstruction Layer (DLRL) Durability Content Data-Centric Pub/Sub Subscription Minimum Profile Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol UDP/IP
  • 21. 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
  • 22. “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
  • 23. 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
  • 24. Topics and Data-Centric Pub/Sub ‣ Topics. Unit of information exchanged between Publisher and Subscribers. Topic ‣ Data Types. Type associated to a Topic must be a structured type expressed in IDL struct TempSensor { long tID; Topic Type float temp; ‣ Topic Instances. Key values in a datatype Proprietary Information - Distribution without Expressed Written Permission is Prohibited. float humidity; uniquely identify a Topic Instance (like rows in }; table) #pragma keylist TempSensor tID TempSensor ‣ Content Awareness. SQL Expressions can be tID temp humidity used to do content-aware subscriptions, Instances 1 21 62 2 27 78 queries, joins, and correlate topic instances 3 25.5 72.3 y idit idit y ity SELECT * FROM TempSensor t um Samples mid h um hu 62 h 65 63 WHERE t.temp > 25 p p tem tem p tem 21 22 tID 23 tID tID temp humidity tID 1 1 1 2 27 78 3 25.5 72.3 t1 t2 t3 Time © 2009, PrismTech. All Rights Reserved
  • 25. Distributed Relational Information Modeling ‣ Topic Keys can be used to identify instances as well as relationships ‣ Relationships can be navigated by relying on a subset of SQL 92 ‣ One-to-many relationships can be captured using foreign keys ‣ Many-to-many relationships need to be modeled using a topics Proprietary Information - Distribution without Expressed Written Permission is Prohibited. ‣ Keys can be represented by an arbitrary number of Topic fields TempSensor Room Floor tID: int rID: int fID: int temp: float width: float level: int humidity: float height: float open: int rID: int length: float fID: int © 2009, PrismTech. All Rights Reserved
  • 26. Data Centric Publish/Subscribe Publishers Subscribers TempSensor TempSensor tID temp humidity tID temp humidity 1 18 60 1 18 60 2 22 75 3 21 71 Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct TempSensor { TempSensor int tID; float temp; TempSensor tID temp humidity float humidity; tID temp humidity 2 22 75 }; 2 22 75 #pragma keylist TempSensor tID 3 21 71 SELECT * FROM TempSensor t WHERE s.temp > 20 s.t TempSensor ID == tID temp humidity Fully Distributed Global 1 TempSensor 3 21 71 Data Space tID temp humidity 1 18 60 © 2009, PrismTech. All Rights Reserved
  • 27. Data Centric Publish/Subscribe Publishers Subscribers TempSensor TempSensor tID temp humidity tID temp humidity 1 21 62 1 21 62 2 22 75 3 21 71 Proprietary Information - Distribution without Expressed Written Permission is Prohibited. struct TempSensor { TempSensor int tID; float temp; TempSensor tID temp humidity float humidity; 2 22 75 tID temp humidity }; #pragma keylist TempSensor tID 1 21 62 2 22 75 3 21 71 SELECT * FROM TempSensor t s.t WHERE s.temp > 20 TempSensor ID == tID temp humidity Fully Distributed Global 1 TempSensor 3 21 71 Data Space tID temp humidity 1 21 62 © 2009, PrismTech. All Rights Reserved
  • 28. Processing Content & Structure Complex Event Processing... ‣ Local Queries DDS provides some of the most useful features found in Complex Event Processing platforms! ‣ Continuous Queries (Content-based Subscriptions) ‣ Topics Joins & Projections ‣ Events windows (via History QoS) Proprietary Information - Distribution without Expressed Written Permission is Prohibited. tID temp humidity S1 3 21.5 72.3 tID temp humidity {iID = 1} 2 20 78 tID temp humidity 1 21 62 S2 P {temp > 21 | humidity > 75} S3 { temp <16 } © 2009, PrismTech. All Rights Reserved
  • 29. Processing Content & Structure Complex Event Processing... ‣ Local Queries DDS provides some of the most useful features found in Complex Event Processing platforms! ‣ Continuous Queries (Content-based Subscriptions) ‣ Topics Joins & Projections ‣ Events windows (via History QoS) Proprietary Information - Distribution without Expressed Written Permission is Prohibited. tID temp humidity 1 21 62 S1 {iID = 1} tID temp humidity 2 20 78 3 21.5 72.3 S2 P {temp > 21 | humidity > 75} S3 { temp <16 } © 2009, PrismTech. All Rights Reserved
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. OpenSplice DDS Delivering Performance, Openness, and Freedom ...Putting it all Together
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. OpenSplice DDS Delivering Performance, Openness, and Freedom QoS-Enabled Pub/Sub
  • 43. 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
  • 44. 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
  • 45. 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