SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Downloaden Sie, um offline zu lesen
DDS Tutorial
                                                       2009 OMG RT Workshop

                                                Gerardo Pardo-Castellote, Ph.D.
                     Gerardo Pardo-Castellote, Ph.D.
The Real-Time        Co-chair OMG DDS SIG
                     CTO, Real-Time Innovations
Middleware Experts   gerardo.pardo@rti.com
Agenda



              Context: Middleware Technologies


              Overview: DDS Model & Applicability


              Details: DDS in depth




© 2009 Real-Time Innovations, Inc.
Context: Middleware Technologies




      The concept of network middleware:
                 –      Communications Model
                 –      Object Model
                 –      Architecture Model
                 –      Protocol




© 2009 Real-Time Innovations, Inc.
With increased complexity…




                                     End User Application




© 2009 Real-Time Innovations, Inc.
With increased complexity…




                                                End User Application




                        Network Stack                Routing protocols      File System

                                       Kernel                   Device Drivers
                                     Operating System


© 2009 Real-Time Innovations, Inc.
With increased complexity…




                                                End User Application



        HTTP Service                    Mail Service     FTP Service       Data base

                        Network Stack                  Routing protocols        File System

                                       Kernel                     Device Drivers
                                     Operating System


© 2009 Real-Time Innovations, Inc.
… middleware becomes necessary



                                                End User Application

                   Application Server                     Event Processing
                                                              Engine          Physics Engine
           Message Service
                                           Data base      Middleware          Graphics Engine


               HTTP Service                Mail Service    FTP Service

                        Network Stack                Routing protocols       File System

                                       Kernel                   Device Drivers
                                     Operating System & Pre-Packaged Services


© 2009 Real-Time Innovations, Inc.
What is network middleware?


      Middleware =
              API and service layer above operating system and below
              “application” code that abstracts common interaction patterns


      Network Middleware =
              Most popular class of middleware
              Middleware used for developing distributed applications


      Distributed Applications =
              Those requiring interaction/communication between multiple
              computers


© 2009 Real-Time Innovations, Inc.
Network Middleware Examples

              DDS, RTI DDS, OpenSplice, tao-dds,
              JMS, WebSphere MQ, ActiveMQ, SoniqMQ
              DCE/RPC, DCOM, CORBA, ICE
              TIBCO RV, 29West, GigaSpaces
              Bundles & ESBs:
                 – Application Servers (WebSphere, WebLogic, JBOSS) Include network
                   middleware as a component


              NOTE: Middleware “packages” are building blocks, not stand-alone
              applications like…
                 – Skype, gtalk, …
                 – BitTorrent, eMule, …

              Why aren’t ‘popular’ consumer applications built on top of
              middleware?
© 2009 Real-Time Innovations, Inc.
Historical note: From Telephone to Blogs


              Why so many flavors?


              Parallels evolution of general communication patterns:
                 –      Started with point-to-point connections
                 –      Then request-reply services
                 –      Then Message Queue Services
                 –      Then Publish-Subscribe Services
                 –      Then Data-Caching services


              Other examples:
                 – FTP, email -> WEB -> Blogs, RSS -> Podcasts


© 2009 Real-Time Innovations, Inc.
Middleware Communication Models




            Point-to-Point                            Client-Server
            Telephone, TCP                            File systems, Database, RPC, CORBA, DCOM
            Simple, high-bandwidth                    Good if information is naturally centralized
            Leads to stove-pipe systems               Single point failure, performance bottlenecks




               Publish/Subscribe Messaging                 Replicated Data
               Magazines, Newspaper, TV                    Libraries, Distributed databases
               Excels at many-to-many                      Excels at data-mining and analysis
               communication
               Excels at distributing time-critical
               information
© 2009 Real-Time Innovations, Inc.
RMI vs Pub-Sub/Messaging/Data-Distribution

            RMI (WebServices, CORBA, DCOM) offer a remote method
            abstraction
               –      Familiar OO programming model
               –      Results in a tightly-coupled system
                           Forces synchronous invocations
                           Imposes global object model
                           Limited QoS (appearance of local method call)
                           Lack robustness: cascading points of failure
               –      Typically built on top of TCP:
                           impacts scalability and time-determinism
               –      Best-suited to smaller, closely-coupled systems

                                                                                     Topic/Queue


            Pub-Sub (Messaging Data-Distribution) offer a queue-based
            and/or replicated-data model
               –      Subsystems are decoupled in time, space, and synchronization
                           Contracts established by verifying QoS compatibility
               –      Supports a variety of transports including multicast UDP
               –      Better suited for high-performance and real-time




© 2009 Real-Time Innovations, Inc.
Queue versus Pub-Sub

              Queue                                                    1   2   3                 1
                 –      Message sent to Queue
                 –      Multiple readers can read from the queue                                             2
                                                                                     Queue
                 –      Each message is delivered to ONLY one
                        reader
                          •    Readers “affect each other”                                           3
                 –      Apps:
                          •    Job Scheduling
                          •    Load Balancing
                          •    Collaboration



              Pub Sub
                 –      Message Sent to Topic                                            1       2       3
                 –      Multiple readers can subscribe to Topic with   1   2   3
                        or without filters
                                                                                                                 1   2   3
                 –      Each message delivered to ALL subscribers                  Topic/Queue
                        that pass filter
                          •    Readers are decoupled

                                                                                             1           3
                 –      Apps:                                          1
                          •    Notifications
                          •    Information Distribution



© 2009 Real-Time Innovations, Inc.
Pub-Sub versus Data-Distribution
            Pub-Sub
              –       Only messages no concept of data                                                    1       2       3
              –       Each message is interpreted without context           1       2       3
              –       Messages must be delivered FIFO or according to                                                             1   2   3
                      some “priority” attribute                                                 Topic/Queue
              –       No Caching of data
              –       Simple QoS: filters, durability, lifespan
                                                                                                              1           3
                                                                        1
            Data-Distribution
              –       Messages represent update to data-objects
              –       Data-Objects identify by a key
              –       Middleware maintains state of each object
              –       Objects are cached. Applications can read at
                      leisure                                                               1     2                   2       3
              –       Smart QoS
                        •    Ownership
                        •    History (per key)
                        •    Deadline
              –       Subsumes Pub-Sub
                                                                        1       2       3             1   2       3               1   2   3




© 2009 Real-Time Innovations, Inc.
DDS Service Model:
      Communication Model

            Provides a “Global Data Space” that is accessible to all interested
             applications.
                   –      Data objects addressed by Domain, Topic and Key
                   –      Subscriptions are decoupled from Publications
                   –      Contracts established by means of QoS
                   –      Automatic discovery and configuration



         Participant                                                              Participant
                                     Pub                                    Pub

                                                   Track,2
                                                                                  Participant
                                     Sub                                    Sub
                                               Track,1       Track,3

                                             Global Data Space
         Participant                 Pub                                          Participant
                                                  Alarm                     Sub


© 2009 Real-Time Innovations, Inc.
DDS Service Model: Object Model

                                       Topic                                           Topic




                                      Data       Offered                               Data      Requested
                                      Writer      QoS                                 Reader       QoS

                                     Publisher    Domain                            Subscriber     Domain
                                                  Participant                                      Participant



                                                           Global Data Space

             DomainParticipant – Allows application to join a DDS Domain (Global Data Space)
             Topic – A string that addresses a group of objects in the Global Data Space
                –      Each Object is identified by a Key (some fields within the object data)
             Publisher, Subscriber – Pools resources for DataWriters and DataReaders
             DataWriter – Declares intent to publish a Topic and provides type-safe operations to write/send
             data
             DataReader – Declares intent to subscribe to a Topic and provides type-safe operations to
             read/receive data
© 2009 Real-Time Innovations, Inc.
Other (non DDS)
      Commercial Pub-Sub Models


              Older, but widely deployed
                 – TIBCO (RendezVous, EMS)
                 – IBM WebSphere MQ
              Limited deployment:
                 – CORBA Event Service
                 – CORBA Notification Service
              Emerging standards – not widely deployed
                 – WS-Eventing
                 – WS-Notification
              Proprietary Systems
                 – 29West
                 – IBM LLM

© 2009 Real-Time Innovations, Inc.
Agenda



              Context: Middleware Technologies


              Overview: DDS Model & Applicability


              Details: DDS in depth




© 2009 Real-Time Innovations, Inc.
History:                                   DDS the Standard(s)
                   Data Distribution Service for Real-Time Systems
                    – Joint submission (RTI, THALES, OIS)
                    – DDS version 1.0 Adopted December 2004
                    – DDS version 1.1 Adopted December 2005
                    – DDS version 1.2 Adopted October 2006

                   Interoperability wire protocol
                     –       Joint submission (RTI and PrismTech)
                     –       DDS-RTPS version 1.2 adopted in July 2006
                     –       DDS-RTPS version 2.0 adopted in June 2007
                     –       DDS-RTPS version 2.1 approved in June 2008


                   Related Standards
                     –       Joint submission (Sparx, RTI, PrismTech)
                     –       UML Profile for DDS adopted June 2008
                     –       DDS for light weight CCM adopted 2008


                   Standards under Development
                     –       Extensible and Dynamic Topic Types for DDS
                     –       Native Language C++ API for DDS



© 2009 Real-Time Innovations, Inc.
© 2009 Real-Time Innovations, Inc.
Main differences of DDS vs other Pub-Sub



                 Flexibility and Power of the data-centric model

                 Performance & Scalability

                 Rich set of built-in services


                 Interoperability across platforms and Languages


                 Natural integration with SOA building-blocks




© 2009 Real-Time Innovations, Inc.
#1 RTI Data-Centric Model

    “Global Data Space” generalizes Subject-Based Addressing
           –      Data objects addressed by DomainId, Topic and Key
           –      Domains provide a level of isolation
           –      Topic groups homogeneous subjects (same data-type & meaning)
           –      Key is a generalization of subject
                     • Key can be any set of fields, not limited to a “x.y.z …” formatted string




                                                                                                   Data Reader
           Data Writer                   Topic (subject)
                                          Key

                                      Data Object
                                                                                                           Data Reader
                Data Writer



                                                                                                   Data Reader
                Data Writer



© 2009 Real-Time Innovations, Inc.
Demo: Concepts                                  Start demo

       Display Area:
       Shows state of objects              Topics
                                           – Square, Circle, Triangle
                                           – Attributes
                                           Data types (schemas)
                                           – Shape (color, x, y, size)
                                                 • Color is instance Key
                                           – Attributes
                                                 • Shape & color used for key

                                           QoS
                                           –   Deadline, Liveliness
                                           –   Reliability, Durability
                                           –   History, Partition
                                           –   Ownership

     Control Area:
     Allows selection of objects and QoS
© 2009 Real-Time Innovations, Inc.
DDS communications model


                                      Data         Domain                        Data          Domain
           New                        Writer     Participant                    Reader       Participant
                                     “Alarm”
                                                               Got new          “Alarm”
        subscriber!                                             data
                                               Offered                                    Requested
                         Listener              QoS                   Listener              QoS




                  Participants scope the global data space (domain)
                  Topics define the data-objects (collections of subjects)
                  Writers publish data on Topics
                  Readers subscribe to data on Topics
                  QoS Policies are used configure the system
                  Listeners are used to notify the application of events
© 2009 Real-Time Innovations, Inc.
QoS: Quality of Service




              QoS Policy              QoS Policy
              DURABILITY              USER DATA
              HISTORY (per subject)   TOPIC DATA
              READER DATA LIFECYCLE   GROUP DATA
              WRITER DATA LIFECYCLE   PARTITION
              LIFESPAN                PRESENTATION
              ENTITY FACTORY          DESTINATION ORDER
              RESOURCE LIMITS         OWNERSHIP
              RELIABILITY             OWNERSHIP STRENGTH
              TIME BASED FILTER       LIVELINESS
              DEADLINE                LATENCY BUDGET
              CONTENT FILTERS         TRANSPORT PRIORITY

© 2009 Real-Time Innovations, Inc.
Demo: Quality of Service (QoS)
       Writers and readers state
                                                   Start demo
       Their needs
                                     Topics
                                      – Square, Circle, Triangle
                                      – Attributes
                                     Data types (schemas)
                                      – Shape (color, x, y, size)
                                           • Color is instance Key
                                      – Attributes
                                           • Shape & color used for key

                                     QoS
                                      –   Deadline, Liveliness
                                      –   Reliability, Durability
                                      –   History, Partition
                                      –   Ownership


       RTI DDS delivers
© 2009 Real-Time Innovations, Inc.
#2 Performance & Scalability

      DDS was designed to support high performance


              DDS uses high-performance data-access APIs
                 –      Read data by array (no additional copies)
                 –      Buffer loaning for zero copy access

              DDS Supports advanced features such as:
                 –      Message prioritization (via latency budget QoS)
                 –      Network prioritization (via transport priority QoS)
                 –      Source filtering (via Content-based and Time-based filters)


              DDS does not require the presence of intermediate brokers
                 –      Applications can communicate directly peer-to-peer


              DDS Protocol supports UDP, multicast and reliable multicast
                 –      Multicast can be used for high-performance scalability
                 –      Use of UDP avoids head-of-line blocking
                 –      Best efforts can be used for repetitive time-critical data


© 2009 Real-Time Innovations, Inc.
Data-Distribution and Real-Time
     Messaging Technologies and Standards




                                                       Web Services




                                                            Java              RTSJ (soft RT)         RTSJ (hard RT)




                                                            Java/RMI
                                                            Java/JMS



                                                            CORBA                           RT CORBA



                                                                             Data Distribution Service / DDS



                                                                                                                MPI


                                            Non-real-time              Soft real-time          Hard real-time         Extreme real-time

© 2009 Real-Time Innovations, Inc. Documentation
   Adapted from NSWC-DD OA
Latency – (Linear Scale)



                                     DDS/JMS/Notification Service Comparison - Latency

               2500




               2000


                                     DDS        JMS     Notification Service
               1500




               1000




                500




                   0
                           4          8    16     32   64      128    256      512   1024   2048   4096   8192   16384
                                                              Message Size (bytes)

                                                            Message Length (samples)


                 Adapted from Vanderbilt presentation at July 2006 OMG Workshop on RT Systems
© 2009 Real-Time Innovations, Inc.
Jitter – (Linear Scale)

                                                                                                DDS/CORBA Notification Service Comparison - Jitter

                                                                             100
                                                                             DDS/JMS/CORBA Notification Service Comparison - Jitter

                                                                             80
                                                Standard Deviation (usecs)




                                         2000

                                         1800
                                                                                                DDS         JMS            Notification service
                                                                             60
            Standard Deviation (usecs)




                                         1600

                                         1400
                                                                                         DDS          JMS          Notification service
                                         1200
                                                                             40
                                         1000

                                         800
                                                                             20
                                         600

                                         400
                                                                                 0
                                         200
                                                                                     4     8       16       32       64      128     256     512   1024   2048   4096   8192    16384
                                           0
                                                                                                                         Message Size (bytes)
                                                                                                                 Message Length (samples)
                                                                             4       8     16      32       64       128     256     512    1024   2048   4096   8192   16384

                                                                                                        Message LengthSize (bytes)
                                                                                                              Message (samples)




                                         Source: Vanderbilt presentation at July 2006 OMG Workshop on RT Systems
© 2009 Real-Time Innovations, Inc.
DDS compared to JMS


                                              ( 2KB messages )
                                            Throughput with a single publisher

                                       45
                                       40              DDS
                                                       JMS
                   [1000's sample/s]




                                       35
                                       30
                                       25
                                       20
                                       15
                                       10
                                        5
                                        0
                                            2      4      6      9      11       18

                                                         CPU load [%]

          Platform: Linux 2.6 on AMD Athlon, Dual core, 2.2 GHz
© 2009 Real-Time Innovations, Inc.
Study on impact of WS technologies for future European ATC: XML is
        not suitable for European Flight Data Distribution

                Data size explodes 10X vs. CDR
                  –      Flight Plans go from 100KB to 1MB

                Communication speed drops 20X
       Not good for Real-Time!!




Source: Christian Esposito and Domenico Cotroneo, Dario Di Crescenzo.
           SELEX-SI/Consorzio SESM/University of Naples.
          “Flexible Communication Among DDS Publishers and Subscribers”
           July 2008, Real-Time Systems Workshop, Washington, DC
  © 2009 Real-Time Innovations, Inc.
Message bus architectures



                                     JMS               Enterprise
                                                       Messaging


                                     Centralized
                                                   Clustered




                                                   DDS
                                      Enterprise
                                      Messaging
                                                   Peer to Peer
                                      Federated

© 2009 Real-Time Innovations, Inc.
#3 Powerful Services



                 Included in the Standard:
                 –      Discovery
                 –      Ownership, Redundancy & Failover
                 –      Persistence (Durable) Data
                 –      Last value and historical caches


              Enabled by the DDS protocol:
                 – Recording service
                 – Routing Service




© 2009 Real-Time Innovations, Inc.
Discovery Service


              DDS provides the means for an application to discover
              other participants on the Domain
                 – And the Topics the Publish and Subscribe
                 – And the Quality of Service of the remote endpoints


              A participant can determine who it is communicating
              with…
                 – And selectively decide who to communicate with…




                     shapes_demo                   discovery_in_excel

© 2009 Real-Time Innovations, Inc.
Ownership and High Availability

        Producer / Writer
                                               I1 Prim
             strength=10                              a ry
                                                                             Topic T1
        Producer / Writer                      I 1 B a c ku p
              strength=5
                                                                I2 Primary   I1   I2
        Producer / Writer                      I2 Backup
              strength=1


              Owner determined per subject
              Only extant writer with highest strength can publish a subject (or topic for
              non-keyed topics)
              Automatic failover when highest strength writer:
                 –      Loses liveliness                                       Start demo
                 –      Misses a deadline
                 –      Stops writing the subject


              Shared Ownership allows any writer to update the subject
© 2009 Real-Time Innovations, Inc.
Data Persistence


      A standalone service that persists data outside of the
      context of a DataWriter                           Data
         Can be configured for:               Data              Writer          Data
                                              Writer                           Reader
         • Redundancy
         • Load balancing
                                      Data                   Global
                                     Reader                Data Space

     Demo:
     1. PersistenceService
     2. ShapesDemo                             Persistence              Persistence
     3. Application failure                      Service                  Service
     4. Application (ShapesDemo) re-start      Permanent                 Permanent
                                                Storage                   Storage



© 2009 Real-Time Innovations, Inc.
Persistent Data Service

              Modes:
                 –      High-performance “direct” model. Data flows in directly to subscribers and to the
                        persistent service
                 –      Transactional “relay” mode persists first, then sends to subscribers
              Fault-tolerant: Redundant services are supported
       Direct              Data                 Relay        Data                                  Data
                                                                                 Redundant
                           Writer                            Writer                                Writer
       Mode                                     Mode                              Service



                                                                                     Persistence              Persistence
                                                                                       Service                  Service




                      Persistence                         Persistence
                        Service                             Service




       Data                           Data        Data                   Data                 Data           Data
      Reader                         Reader      Reader                 Reader               Reader         Reader

© 2009 Real-Time Innovations, Inc.
Durable Writers

              Durable Writers keep their history cache
              in permanent storage                          Application

              Upon re-starts they automatically rebuild               write
              their history from storage
              New messages will automatically be                                 To Readers

              appended to the history
              Readers will treat the writer re-start as a                        Msg(GUID, SN)
              “temporary” disconnect
              Automatically-assigned sequence                        Permanent
              numbers ensure no messages are                          Storage

              dropped or duplicated




© 2009 Real-Time Innovations, Inc.
Durable Readers
                 Durable Readers Keep information on
                 the messages read on permanent                              Application
                 storage
                 Information uniquely identifies each                     read
                 message
                                                           From Writers
                 Upon re-start they automatically load
                 information so they only request new
                                                         Msg(GUID, SN)
                 messages and avoid duplicates
                 Combined with the other services it
                                                                                 Permanent
                 can guarantee exactly-once delivery                              Storage




© 2009 Real-Time Innovations, Inc.
Last value cache

              A last-value cache is already built-in into every Writer in
              the system
                 – Can used in combination with a Durable Writer

              A late joiner will automatically initialize to the last value
              Last value cache can be configure with history depth
              greater than 1
              The Persistence Service can be used to provide a last
              value cache for durable data




© 2009 Real-Time Innovations, Inc.
Start demo
      Historical cache

              A partial historical cache is already built-in into every Writer in the
              system
                 – Can used in combination with a Durable Writer
              The Persistence Service can be used to provide a historical cache
              with larger/unlimited depth
              A late joiner will automatically initialize to the desired history
                 – Currently amount of history can only be specified as message count.
                 – Next release will also allow a age/time based specification.
              Request for historical cache is done by creating a Reader with the
              desired history depth specified as a QoS




© 2009 Real-Time Innovations, Inc.
DDS Real-Time Recording Service


              Applications:                 Record high-rate data arriving
                 – Future analysis and      in real-time
                   debugging
                                            Non-intrusive – multicast
                 – Post-mortem
                                            reception
                 – Compliance checking
                 – Replay for testing and
                   simulation purposes




    Demo:
    1. Start RecorderService
    2. Start ShapesDemo
    3. See output files
    4. Convert to: HTML XML CSV
    5. View Data: HTML XML CSV
© 2009 Real-Time Innovations, Inc.
#4 Interoperability


              Protocol
                 –      Interoperability Wire protocol adopted in 2006

              Languages: C/C++, Java, ADA, .NET
              Systems/Platforms/Models
                 –      Data distribution (publishers and subscribers): DDS
                 –      Data management (storage, retrieval, queries): SQL
                 –      ESB Integration, Business process integration: WSDL


        Distributed                                                                   Distributed
                                     SQL                                        SQL
           Node                                                                          Node
                                                                         DBMS
                                                            D    T                    Distributed
                                     DDS                                        SQL      Node
                                                     Global Data Space

        Distributed                  WSDL         DBMS                   DBMS         Distributed
           Node                                                                 DDS      Node


© 2009 Real-Time Innovations, Inc.
#5 Natural with SOA building blocks

                Real-Time
                 Devices                 Fault   Auditing &
                                       Tolerance Recording


                                                              WS-DDS




          Real-Time Pub-Sub/Caching/Messaging
                                                                              SOA &
                                                                             Real-Time
                                                                            Web Services


                                     Database

                                                                 Event
                                                               Processing


                    Tools &
                  Visualization

© 2009 Real-Time Innovations, Inc.
Relational Database Integration

             Messaging Actions                Relational Actions
           Write()                          UPDATE & INSERT
           Read() & Take()                  SELECT
           Dispose()                        DELETE
           Wait() & Listener



                                 Topic T1         Table T1
                                                      I1
                               I1 I2 I3               I2
                                                      I3


   Event driven – The fastest way to observe database
   changes!
© 2009 Real-Time Innovations, Inc.
Complex Event Engine Integration

            CEP: programmable engines used to transform “data” into “information”
            CEP engines are programmed using a derivative of SQL
            CEP engines save time: They can implement a lot of the application logic:
              –       Classification, Correlation, Aggregation, Filter, Cleansing, Pattern Detection, etc.
            DDS is the perfect ‘data’ and ‘information’ pipe for CEP engines
              –       Use high-speed data streams (1,000-1,000,000 msg/sec)
              –       Require latency measured in sub-milliseconds
              –       Demand access to events from a heterogeneous systems




                                                                                                     Dashboards

                                                                                                     Applications
                       DDS
                                                                                                     Alerts

                                                        CEP Engine
© 2009 Real-Time Innovations, Inc.
Web-Enabled DDS (upcoming spec)

                                                   Web         Hi-Performance
                                                   Enabled     Embedded
                                                   Protocols   Real-Time




                                         HTTP


            Generic
           Web Client
        (.NET / Java)

                                             SOAP
                                                                                 DDS-RTPS
                                                 WebEnabled           Global
                                                    DDS             Data Space
                                                               RTI, DDS, Real-Time                    DDSParticipant



           IONA                      IONA Artix Transports
         Web Client                  SOAP, JMS, IIOP
                                                                                     DDSParticipant




© 2009 Real-Time Innovations, Inc.
Agenda



              Context: Middleware Technologies


              Overview: DDS Model & Applicability


              Details: DDS in depth




© 2009 Real-Time Innovations, Inc.
Do-yourself Message-Centric System
              Model
                 –      1-1, FIFO
              Applications coupled in Lifespan & Content
                 –      Both must be present simultaneously
                 –      Everything sent is received
              Excellent performance
              Doesn’t scale
                 –      To large-scale systems
                 –      To loosely-coupled systems


                     Application
                                                                                Application

                                       Queue co-located with each application




© 2009 Real-Time Innovations, Inc.
Middleware-based Message-Centric Systems (JMS)

              Model
                 –      Broker-based, n n communication
                 –      Independent messages, No state
              Coupling
                 –      Not coupled in Lifespan
                 –      Coupled in Order and Content (presentation)
              Worse performance
              Better scalability

              Application                                                Application




                                            Global Queues             Application
                      Application
                                            Queue per message kind

© 2009 Real-Time Innovations, Inc.
Do-yourself Data-Centric System


              Model
                 – Shared/replicated structured data/state
                 – Asynchronous, Selective sharing
              Coupling:
                 – Coupled in Lifespan, Decoupled in Presentation & Content
              Excellent performance & scalability


                      Application                            Application
                                             Replication
                                             Mechanism




© 2009 Real-Time Innovations, Inc.
Middleware-based Data-Centric Systems (DDS)

              Shared data-space, shared state
              Asynchronous communication
              Decoupled in Lifespan, Content, presentation
              Excellent performance & scalability
              Subsumes Message-Centric via QoS
                         Application                  Application




© 2009 Real-Time Innovations, Inc.
DDS Data-Centric Model

            Provides a virtual “Global Data Space” that is accessible to all
             interested applications.
                   –      Data objects addressed by DomainId, Topic and Key
                   –      Subscriptions are decoupled from Publications
                   –      Contracts established by means of QoS
                   –      Automatic discovery and configuration




                                                                              Data Reader
           Data Writer

                                     Data Object
                                                                                      Data Reader
                Data Writer



                                                                              Data Reader
                Data Writer



© 2009 Real-Time Innovations, Inc.
DDS Data-Centric Model

            Provides a virtual “Global Data Space” that is accessible to all
             interested applications.
                   –      Data objects addressed by DomainId, Topic and Key
                   –      Subscriptions are decoupled from Publications
                   –      Contracts established by means of QoS
                   –      Automatic discovery and configuration




                                                                              Data Reader
           Data Writer                  Topic


                                                                                      Data Reader
                Data Writer



                                                                              Data Reader
                Data Writer



© 2009 Real-Time Innovations, Inc.
DDS Data-Centric Model

            Provides a virtual “Global Data Space” that is accessible to all
             interested applications.
                   –      Data objects addressed by DomainId, Topic and Key
                   –      Subscriptions are decoupled from Publications
                   –      Contracts established by means of QoS
                   –      Automatic discovery and configuration




                                                                              Data Reader
           Data Writer                   Key



                                                                                      Data Reader
                Data Writer



                                                                              Data Reader
                Data Writer



© 2009 Real-Time Innovations, Inc.
DDS Global Data
                   Address in Global Data Space = (DomainId, Topic, Key)
                     –       Each topic corresponds to a multiple data instances with a common schema
                     –       A DataWriter can write to any instances of a single topic
                     –       Multiple DataWriters may write to the same instance
                     –       A DataReader receives updates from all instances of a single topic
                     –       Multiple DataReaders may read from the same instances & values




                                                                                     Data Reader
           Data Writer



                                                                                             Data Reader
                Data Writer



                                                                                      Data Reader
                Data Writer



© 2009 Real-Time Innovations, Inc.
DDS Global Data: Domains
                   Address in Global Data Space = (DomainId, Topic, Key)
                     –       Each Domain is identified by the value of the domainId
                     –       Each Domain is a separate Global Data Space
                               • The same Topic name can mean different things in different domains
                               • The same Topic can have different Types on each Domain
                     –       An application may join multiple Domains
                     –       Domains can be used for isolation, scalability, modularity




© 2009 Real-Time Innovations, Inc.
Example: Publication

     // Entities creation
     DomainParticipant participant =
         TheParticipantFactory->create_participant(
            domain_id, participant_qos, participant_listener);

     Publisher publisher = domain->create_publisher(
             publisher_qos, publisher_listener);

     Topic topic = domain->create_topic(
             “MyTopic”, “Text”, topic_qos, topic_listener);

     DataWriter writer = publisher->create_datawriter(
             topic, writer_qos, writer_listener);

     TextDataWriter twriter = TextDataWriter::narrow(writer);


     TextStruct my_text;
     twriter->write(&my_track);


© 2009 Real-Time Innovations, Inc.
Example: Subscription

            // Entities creation
            Subscriber subscriber = domain->create_subscriber(
                   subscriber_qos, subscriber_listener);

            Topic topic = domain->create_topic(
                   “Track”, “TrackStruct”,
                   topic_qos, topic_listener);

            DataReader reader = subscriber->create_datareader(
                   topic, reader_qos, reader_listener);

            // Use listener-based or wait-based access




© 2009 Real-Time Innovations, Inc.
How to Get Data? (Listener-Based)
      // Listener creation and attachment
      Listener listener = new MyListener();
      reader->set_listener(listener);

      // Listener code
      MyListener::on_data_available( DataReader reader )
      {
          TextSeq received_data;
          SampleInfoSeq sample_info;
          TextDataReader reader = TextDataReader::narrow(reader);

                  treader->take( &received_data, &sample_info, …)
                  // Use received_data
                  printf(“Got: %sn”, received_data[0]->contents);
      }




© 2009 Real-Time Innovations, Inc.
How to Get Data? (WaitSet-Based)
         // Creation of condition and attachement
         Condition foo_condition =
            treader->create_readcondition(…);
         waitset->add_condition(foo_condition);
         // Wait
         ConditionSeq active_conditions;
         waitset->wait(&active_conditions, timeout);
         // Wait returns when there is data (or timeout)
         FooSeq received_data;
         SampleInfoSeq sample_info;
         treader->take_w_condition
               (&received_data,
                &sample_info,
                foo_condition);
         // Use received_data
         printf(“Got: %sn”, received_data[0]->contents);
© 2009 Real-Time Innovations, Inc.
Listeners, Conditions & WaitSets

       Middleware must notify user application of relevant events:
                 – Arrival of data
                 – But also:
                           • QoS violations
                           • Discovery of relevant entities
                 – These events may be detected asynchronously by the middleware
                           … Same issue arises with POSIX signals


       DDS allows the application to choice:
                 – Either to get notified asynchronously using a Listener
                 – Or to wait synchronously using a WaitSet

       Both approaches are unified using STATUS changes




© 2009 Real-Time Innovations, Inc.
Status Changes
      DDS defines
              A set of enumerated STATUS
              The statuses relevant to each kind of DDS Entity
      DDS entities maintain a value for each STATUS
                   STATUS                      Entity
                   INCONSISTENT_TOPIC          Topic
                   DATA_ON_READERS             Subscriber
                   LIVELINESS_CHANGED          DataReader
                   REQUESTED_DEADLINE_MISSED   DataReader
                                                            struct LivelinessChangedStatus
                   RUQESTED_INCOMPATIBLE_QOS   DataReader   {
                   DATA_AVAILABLE              DataReader      long active_count;
                                                               long inactive_count;
                   SAMPLE_LOST                 DataReader      long active_count_change;
                   SUBSCRIPTION_MATCH          DataReader      long inactive_count_change;
                   LIVELINESS_LOST             DataWriter
                                                            }
                   OFFERED_INCOMPATIBLE_QOS    DataWriter
                   PUBLICATION_MATCH           DataWriter
© 2009 Real-Time Innovations, Inc.
Listeners, Conditions and Statuses
             A DDS Entity is associated with:
                –      A listener of the proper kind (if attached)
                –      A StatusCondition (if activated)
             The Listener for an Entity has a separate operation for each of the relevant
             statuses
     STATUS                                       Entity             Listener operation
     INCONSISTENT_TOPIC                           Topic              on_inconsistent_topic
     DATA_ON_READERS                              Subscriber         on_data_on_readers
     LIVELINESS_CHANGED                           DataReader         on_liveliness_changed
     REQUESTED_DEADLINE_MISSED                    DataReader         on_requested_deadline_missed
     RUQESTED_INCOMPATIBLE_QOS                    DataReader         on_requested_incompatible_qos
     DATA_AVAILABLE                               DataReader         on_data_available
     SAMPLE_LOST                                  DataReader         on_sample_lost
     SUBSCRIPTION_MATCH                           DataReader         on_subscription_match
     LIVELINESS_LOST                              DataWriter         on_liveliness_lost
     OFFERED_INCOMPATIBLE_QOS                     DataWriter         on_offered_incompatible_qos
     PUBLICATION_MATCH                            DataWriter         on_publication_match




© 2009 Real-Time Innovations, Inc.
Listeners & Condition duality

                   A StatusCondition can be selectively activated to respond to
                   any subset of the statuses
                   An application can wait changes in sets of StatusConditions
                   using a WaitSet
                   Each time the value of a STATUS changes DDS
                     – Calls the corresponding Listener operation
                     – Wakes up any threads waiting on a related status change



                                                            Asynchronous notification
                                                             via Listener operation
                                          DDS
          Status Change                   Entity            Synchronous notification
                                                            via activation/wakeup of
                                                               conditions/waitsets

© 2009 Real-Time Innovations, Inc.
Hands-on Example (C++)

                                                  Type           Four easy steps:
                                                Definition       1. Define your data
                                                                 2. Create your project
                                                 MyType          3. Build
                                                                 4. Run: publisher subscriber
       MyType.sln
                                     rtiddsgen
                MyType.h

        MyTypeSupport.c                      MyTypePublisher.cpp
                                                                           Aux:
                                                                           File Browser
                                          MyTypeSubscriber.cpp             Console
                                     compiler

                                     Publisher.exe        Subscriber.exe
© 2009 Real-Time Innovations, Inc.
Components/Mechanics of the GDS
                          Application                                        Application




                                                            GDS Definition

                                                            Discovery

                           Application                                       Application


                       Listener                                                     Listener
                                                      Protocol




                                           Cache
                                         Management                            Cache
                                                                             Management
© 2009 Real-Time Innovations, Inc.
Components/Mechanics of the GDS
                          Application                                           Application




                                                                               Domain Modeling
                                                                                & Sys. Design

                                                              GDS Definition

                                                              Discovery

                           Application         Config &
                                                                                 Application
                                                 Qos

                       Listener                                                        Listener
                                                          Protocol




                                           Cache
                                         Management                               Cache
                                                                                Management
© 2009 Real-Time Innovations, Inc.
Designing a Data-Centric System


              Define/Model the Global Data Space
              Configure the Cache Management
              Configure Discovery
              Configure the Protocol


              Configure/Use hooks for
                 – Fault detection
                 – Controlled access




© 2009 Real-Time Innovations, Inc.
Global Data Space / Global State


              Identify the number of domains


              Domain Information model
                 –      Topics
                 –      Types
                 –      Keys
                 –      Ownership




© 2009 Real-Time Innovations, Inc.
Domain and Domain Participants

                                                          N4 App 4    • Container for
                   N1 App 1
                    Pub/Sub                               Pub/Sub     applications that
                   (A,B/C,D)                              (D/C,E,F)   want to communicate

                                                                      • Applications can
                  N2 App 2                                N4 App 5    join or leave a
                  Subscribe               Domain           Publish    domain in any order
                     (C)                                     (C)
                                                                      • New Applications
                                                                      are “Auto-Discovered”

                  N3 App 3                                N5 App 6
                                                                      • An application that
                  Pub/Sub                                 Subscribe
                  (E,F/A,C)                                 (B,C)     has joined a domain
                                                                      is also called a
                                                                      “Domain Participant”


                                     Single ‘Domain’ System


© 2009 Real-Time Innovations, Inc.
Domain and Domain Participants

       Using Multiple domains for Scalability, Modularity & Isolation

                      Node 1 - App 1                           Node 4 - App 1
                        Pub/Sub              Domain A            Pub/Sub



                      Node 2 - App 1                           Node 4 - App 2
                        Subscribe                                 Publish

                                              Domain B

                      Node 3 - App 1                           Node 5 - App 1
                        Pub/Sub                                  Subscribe


                                               Domain C
                      Node 5 - App 2          Added Func.      Node 6 - App 1
                        Pub/Sub                                  Pub/Sub




       demo_domain_0                   Multiple Domain System demo_domain_1
© 2009 Real-Time Innovations, Inc.
Topics & Datatypes, Keys & Subjects
      Topic “MarketData”                       Data-type (name-type-value pairs)


        source             type      symbol          Exchange      volume           bid             ask

        OPRA                         IBM             NYSE          200000           118.30          118.36
        OPRA                         AAPL            NASDAQ                         171.20          171.28
        RTFP               EQ



                          Key fields       Subject                          Additional fields (payload)


      Topic “OrderEntry”
       Exchange               type     Symbol        Order num     number       limit        stop         expiration

       NYSE                   BUY      IBM           11956         500          120          -            DAY

       NYSE                   BUY      IBM           11957         1000         124.5        124          DAY

       NASDAQ                 SELL     AAPL          11958         400          -            160          DAY


                           Subject
© 2009 Real-Time Innovations, Inc.
                                                      Key fields                    demo_filters
QoS: Ownership
            Specifies whether more than one DataWriter can
              update the same instance of a data-object

            Ownership = EXCLUSIVE                          Ownership = SHARED
            “Only highest-strength                          “All data-writers can
             data writer can update                         each update data-
             each data-instance”                            instance”

                    Data                 Data     Data     Data                Data     Data
                    Writer               Writer   Writer   Writer              Writer   Writer




                                Data-                                 Data-
                              Instance                              Instance

       Provides fast, robust, transparent replacement for fail-
       over and/or take-over.
© 2009 Real-Time Innovations, Inc.
demo_ownership

      QoS: Ownership Strength

         Specifies which DataWriter is allowed to update the
           values of data-objects
                                                              OWNERSHIP_STRENGTH
                                                              “Integer to specify the
                                                      ORDER    strength of an instance”

             Strength = 1              Strength = 4                                Domain
                                                                                 Participant
                   Data              AfterData Expires
                                            QoS                    Data      “RIGHT”
                   Writer                 Writer                  Reader
                  “LEFT”               - Deadline
                                         “RIGHT”                             “LEFT”
                                       - Liveliness
               Publisher               Publisher                Subscriber
                      S                    S




                            Note: Only applies to Topics with Ownership = Exclusive
© 2009 Real-Time Innovations, Inc.
Configure the Cache Management


              Cache State Content
                 –      History                  Writer
                                               Application
                 –      Lifespan
                 –      Persistence
                 –      Resources



              Reader Cache View
                 –      Partitions
                 –      Content-Based Filter
                 –      Time-Based Filter
                 –      Order
                                                Reader
                                               Application


© 2009 Real-Time Innovations, Inc.
QoS: History – Last x or All
      KEEP_ALL:                                                                KEEP_LAST: “depth” integer for
      Publisher: keep all until delivered                                      the number of samples to keep at
      Subscriber: keep each sample until the                                   any one time
      application processes that instance
                                                                                             demo_history

                                          S7                                                          S7
                     Data                                Data
                                                                    S7                     Data
                                          S6                                                          S6
                     Writer                              Writer     S6                    Reader
                                          S5                                                          S5
                                          S4                                                          S4
                                          S3
                 Publisher
                                          S2         Publisher                          Subscriber
                                          S1
                           Keep All                         Keep Last 2                       Keep Last 4




                                     S7        S6   S5        S4   S3     S2      S1
© 2009 Real-Time Innovations, Inc.
lifespan_pub

      QoS: Lifespan                                            lifespan_sub

                                                     User can set lifespan duration
                                                     Manages samples in
                                                     the history queues, attached to each
                                                     Sample
                                        Topic




                                                                         S1
                               Data                    Data
                               Writer                 Reader             S2
                                                                         S3
                                                                         S4
                                                                         S5       Perm.
                          Publisher                  Subscriber          S6      Storage
                                                                         S7      S1    S2




                                                S4    S3       S2   S1

© 2009 Real-Time Innovations, Inc.
Content-Based Filtering

           Instance 1                Value = 249
                                                                   Content Filtered
                                     Value = 230                       Topic
           Instance 2

           Instance 3                Value = 275                                      Topic


           Instance 4                Value = 262

                                                                   “Filter Expression ”
           Instance 5                Value = 258
                                                                     Ex. Value > 260

           Instance 6                Value = 261


           Instance 7                Value = 259


                                                   The Filter Expression and Expression
                                                   Params will determine which instances of the
                                                   Topic will be received by the subscriber.
       content_filter_example
© 2009 Real-Time Innovations, Inc.
QoS: TIME_BASED_FILTER
                                                                      time_filter_example
                                              Topic     “minimum_separation”:
                                                        Data Reader does not want to receive data
             Domain                                     faster than the min_separation time
             Participant


                                     Data                                     Data
                                     Writer                                  Reader


                                Publisher             Discarded
                                                                            Subscriber
                                                      samples



                                              S        SSS        S         S            S
                                              minimum separation        Data Samples
© 2009 Real-Time Innovations, Inc.
Configure the Protocol

              Discovery
              Reliability                        Writer
                                               Application
              Liveliness
              Flow Control
              Asynchronous write
              Network Configuration
                 –      Enabled Transports +
                        transport properties
                 –      Multicast addresses
                 –      Transport Priority
              OS settings
                 –      Threads
                 –      Memory                  Reader
                                               Application


© 2009 Real-Time Innovations, Inc.
Tunable Reliability Protocol
                 Configurable AckNack reply times                    Performance can be tracked by
                 to eliminate storms                                 senders and recipients
                                                                      –     Configurable high/low watermark,
                 Fully configurable to bound                                Buffer full
                 latency and overhead                                Flexible handling of slow
                   –      Heartbeats, delays, buffer sizes           recipients
                                                                      –     Dynamically remove slow
                                                                            receivers

                                          S7                                                          S1
                   Data                   S6
                                                    Reliable                          Data            S2
                   Writer                                                            Reader
                                          S5        •Guaranteed                                       S3
                                          S4         Ordered Delivery                                 S4
                                          S3                                                          S5
                Publisher                           •“Best effort” also              Subscriber       S6
                                          S2
                                          S1
                                                     supported                                        S7


                                     S8        S7   S3    S5    S4     S2       S1
                                                           NACK #6
                                                    S6
© 2009 Real-Time Innovations, Inc.
Best Efforts


            01                                              01
                                                                 01
            02                                              02
                                                                 02
            03                                              03
                                                                 X
            04                                              04
                                                                 04
            05                                              05
                                                                 05
            06                                              06
                                                                 06
            07                                              07
                                                                 07
            08                                              08
                                                                 08




                                     Company Confidential
© 2009 Real-Time Innovations, Inc.
Confirmed Reliability I
      No packet loss


            01                                                    01
                                                                           01
            02                                                    02
                                                                           02
            03                                                    03
                                                                           03
            04                                                    04, HB
                                 ACK 1-4                                   04
            05                                                    05
                                                                           05
            06                                                    06
                                                                           06
            07                                                    07
                                                                           07
            08                                                    08, HB
                                 ACK 1-8                                   08




                                           Company Confidential
© 2009 Real-Time Innovations, Inc.
Confirmed Reliability II
      Some packet loss


            01                                                            01
                                                                                    01
            02                                                            02
                                                                                    02
            03                                                            03
                                                                                    X
            04                                                            04, HB
                                 ACK 1-2, NACK 3                                    04
            05                                                            05
                                                                               03   05
            06                                                            06
                                                                                    06
            07                                                            07
                                                                                    07
            08                                                            08, HB
                                 ACK 1-8                                            08




                                                   Company Confidential
© 2009 Real-Time Innovations, Inc.
Configure Notifications, Fault Detection &
      Management



                                           Writer
                                         Application


              Listeners
              Deadline Qos
              Liveliness Qos
              Built-in Readers
              Notification of matching

                                          Reader
                                         Application


© 2009 Real-Time Innovations, Inc.
QoS: Deadline                                                  deadline_example


                                                       Topic
                                                                         DEADLINE “deadline period”




                                         Commits                 Failed to
                                         to provide              get data
                         Data            data each                                            Data
                         Writer          deadline                                Listener    Reader
                                         period.

                     Publisher                                   Expects data every         Subscriber
                                                                 deadline period.



                                                      deadline


                                     S      X     S        S        S        S    S
© 2009 Real-Time Innovations, Inc.
QoS: Liveliness –                                              liveliness_example
      Type and Duration

         Type: Controls who is responsible for issues of ‘liveliness packets’
           AUTOMATIC = Infrastructure Managed
           MANUAL        = Application Managed
                                                                                          kill_apps
                                     Topic                                       Topic


                                                    Failed to
                                                     renew
                                                      lease
                                     Data                                         Data
                                     Writer                       Listener       Reader




                                 Publisher                                   Subscriber



                                              lease_duration

                                              LP        LP         LP        S

                                                                Liveliness Message
© 2009 Real-Time Innovations, Inc.
Summary


              Designing a fault-tolerant high-performance distributed
              system is not a simple task
              A powerful middleware framework can provide a lot of
              value and help you focus on the business logic
              The middleware can save you a lot of time and effort.
                 – It is worth learning how to use its power!




© 2009 Real-Time Innovations, Inc.

Weitere ähnliche Inhalte

Was ist angesagt?

Dns protocol design attacks and security
Dns protocol design attacks and securityDns protocol design attacks and security
Dns protocol design attacks and security
Michael Earls
 

Was ist angesagt? (20)

DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Data-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureData-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System Architecture
 
10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
Introduction to RTI DDS
Introduction to RTI DDSIntroduction to RTI DDS
Introduction to RTI DDS
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
UML Profile for DDS
UML Profile for DDSUML Profile for DDS
UML Profile for DDS
 
RTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureRTI DDS Intro with DDS Secure
RTI DDS Intro with DDS Secure
 
20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
Dns protocol design attacks and security
Dns protocol design attacks and securityDns protocol design attacks and security
Dns protocol design attacks and security
 
DDS and XMPP
DDS and XMPPDDS and XMPP
DDS and XMPP
 
The Art and Science of DDS Data Modelling
The Art and Science of DDS Data ModellingThe Art and Science of DDS Data Modelling
The Art and Science of DDS Data Modelling
 

Ähnlich wie OMG Data-Distribution Service (DDS) Tutorial - 2009

Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
Ant Phillips
 
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Raga Yustia
 

Ähnlich wie OMG Data-Distribution Service (DDS) Tutorial - 2009 (20)

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
 
Large-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceLarge-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and Finance
 
Tutorial Jaringan komputer
Tutorial Jaringan komputerTutorial Jaringan komputer
Tutorial Jaringan komputer
 
Engineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsEngineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable Systems
 
Chapter1 intro
Chapter1 introChapter1 intro
Chapter1 intro
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
 
3rd edition chapter1
3rd edition chapter13rd edition chapter1
3rd edition chapter1
 
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
 
Cloud security deep dive infoworld jan 2011
Cloud security deep dive infoworld jan 2011Cloud security deep dive infoworld jan 2011
Cloud security deep dive infoworld jan 2011
 
Integration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSIntegration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDS
 
Eclipse Paho - MQTT and the Internet of Things
Eclipse Paho - MQTT and the Internet of ThingsEclipse Paho - MQTT and the Internet of Things
Eclipse Paho - MQTT and the Internet of Things
 
03.09.10 Stn Presentation On Exchange Server And Share Point 2010
03.09.10 Stn Presentation On Exchange Server And Share Point 201003.09.10 Stn Presentation On Exchange Server And Share Point 2010
03.09.10 Stn Presentation On Exchange Server And Share Point 2010
 
Middleware Technologies ppt
Middleware Technologies pptMiddleware Technologies ppt
Middleware Technologies ppt
 
Ead pertemuan-7
Ead pertemuan-7Ead pertemuan-7
Ead pertemuan-7
 
Lecture 1 4
Lecture 1 4Lecture 1 4
Lecture 1 4
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDS
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
 
Remote Asset Management with InduSoft Web Studio
Remote Asset Management with InduSoft Web StudioRemote Asset Management with InduSoft Web Studio
Remote Asset Management with InduSoft Web Studio
 

Mehr von Gerardo Pardo-Castellote

Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and SimulinkApplying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Gerardo Pardo-Castellote
 
OPC UA/DDS Gateway version 1.0 Beta
OPC UA/DDS Gateway version 1.0 BetaOPC UA/DDS Gateway version 1.0 Beta
OPC UA/DDS Gateway version 1.0 Beta
Gerardo Pardo-Castellote
 
Extensible Types for DDS (DDS-XTYPES) version 1.2
Extensible Types for DDS (DDS-XTYPES) version 1.2Extensible Types for DDS (DDS-XTYPES) version 1.2
Extensible Types for DDS (DDS-XTYPES) version 1.2
Gerardo Pardo-Castellote
 

Mehr von Gerardo Pardo-Castellote (20)

DDS, the US Navy, and the Need for Distributed Software
DDS, the US Navy,  and the Need for Distributed SoftwareDDS, the US Navy,  and the Need for Distributed Software
DDS, the US Navy, and the Need for Distributed Software
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.
 
DDS-TSN OMG Request for Proposals (RFP)
DDS-TSN OMG Request for Proposals (RFP)DDS-TSN OMG Request for Proposals (RFP)
DDS-TSN OMG Request for Proposals (RFP)
 
A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial Automation
 
Overview of the DDS-XRCE specification
Overview of the DDS-XRCE specificationOverview of the DDS-XRCE specification
Overview of the DDS-XRCE specification
 
DDS-Security Interoperability Demo - March 2018
DDS-Security Interoperability Demo - March 2018DDS-Security Interoperability Demo - March 2018
DDS-Security Interoperability Demo - March 2018
 
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and SimulinkApplying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
 
OPC UA/DDS Gateway version 1.0 Beta
OPC UA/DDS Gateway version 1.0 BetaOPC UA/DDS Gateway version 1.0 Beta
OPC UA/DDS Gateway version 1.0 Beta
 
DDS for eXtremely Resource Constrained Environments 1.0 Beta
DDS for eXtremely Resource Constrained Environments 1.0 BetaDDS for eXtremely Resource Constrained Environments 1.0 Beta
DDS for eXtremely Resource Constrained Environments 1.0 Beta
 
DDS-Security Interoperability Demo - December 2017
DDS-Security Interoperability Demo - December 2017DDS-Security Interoperability Demo - December 2017
DDS-Security Interoperability Demo - December 2017
 
DDS-Security Interoperability Demo - September 2017
DDS-Security Interoperability Demo - September 2017DDS-Security Interoperability Demo - September 2017
DDS-Security Interoperability Demo - September 2017
 
Extensible Types for DDS (DDS-XTYPES) version 1.2
Extensible Types for DDS (DDS-XTYPES) version 1.2Extensible Types for DDS (DDS-XTYPES) version 1.2
Extensible Types for DDS (DDS-XTYPES) version 1.2
 
DDS-Security version 1.1
DDS-Security version 1.1DDS-Security version 1.1
DDS-Security version 1.1
 
Interface Definition Language (IDL) version 4.2
Interface Definition Language (IDL) version 4.2 Interface Definition Language (IDL) version 4.2
Interface Definition Language (IDL) version 4.2
 
DDS Security Specification version 1.0
DDS Security Specification version 1.0DDS Security Specification version 1.0
DDS Security Specification version 1.0
 
DDS for eXtremely Resource Constrained Environments
DDS for eXtremely Resource Constrained EnvironmentsDDS for eXtremely Resource Constrained Environments
DDS for eXtremely Resource Constrained Environments
 
DDS-XRCE - Revised Submission Presentation (September 2017)
DDS-XRCE - Revised Submission Presentation (September 2017)DDS-XRCE - Revised Submission Presentation (September 2017)
DDS-XRCE - Revised Submission Presentation (September 2017)
 
DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)
 
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
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
panagenda
 

Kürzlich hochgeladen (20)

"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 ...
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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, ...
 
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
 

OMG Data-Distribution Service (DDS) Tutorial - 2009

  • 1. DDS Tutorial 2009 OMG RT Workshop Gerardo Pardo-Castellote, Ph.D. Gerardo Pardo-Castellote, Ph.D. The Real-Time Co-chair OMG DDS SIG CTO, Real-Time Innovations Middleware Experts gerardo.pardo@rti.com
  • 2. Agenda Context: Middleware Technologies Overview: DDS Model & Applicability Details: DDS in depth © 2009 Real-Time Innovations, Inc.
  • 3. Context: Middleware Technologies The concept of network middleware: – Communications Model – Object Model – Architecture Model – Protocol © 2009 Real-Time Innovations, Inc.
  • 4. With increased complexity… End User Application © 2009 Real-Time Innovations, Inc.
  • 5. With increased complexity… End User Application Network Stack Routing protocols File System Kernel Device Drivers Operating System © 2009 Real-Time Innovations, Inc.
  • 6. With increased complexity… End User Application HTTP Service Mail Service FTP Service Data base Network Stack Routing protocols File System Kernel Device Drivers Operating System © 2009 Real-Time Innovations, Inc.
  • 7. … middleware becomes necessary End User Application Application Server Event Processing Engine Physics Engine Message Service Data base Middleware Graphics Engine HTTP Service Mail Service FTP Service Network Stack Routing protocols File System Kernel Device Drivers Operating System & Pre-Packaged Services © 2009 Real-Time Innovations, Inc.
  • 8. What is network middleware? Middleware = API and service layer above operating system and below “application” code that abstracts common interaction patterns Network Middleware = Most popular class of middleware Middleware used for developing distributed applications Distributed Applications = Those requiring interaction/communication between multiple computers © 2009 Real-Time Innovations, Inc.
  • 9. Network Middleware Examples DDS, RTI DDS, OpenSplice, tao-dds, JMS, WebSphere MQ, ActiveMQ, SoniqMQ DCE/RPC, DCOM, CORBA, ICE TIBCO RV, 29West, GigaSpaces Bundles & ESBs: – Application Servers (WebSphere, WebLogic, JBOSS) Include network middleware as a component NOTE: Middleware “packages” are building blocks, not stand-alone applications like… – Skype, gtalk, … – BitTorrent, eMule, … Why aren’t ‘popular’ consumer applications built on top of middleware? © 2009 Real-Time Innovations, Inc.
  • 10. Historical note: From Telephone to Blogs Why so many flavors? Parallels evolution of general communication patterns: – Started with point-to-point connections – Then request-reply services – Then Message Queue Services – Then Publish-Subscribe Services – Then Data-Caching services Other examples: – FTP, email -> WEB -> Blogs, RSS -> Podcasts © 2009 Real-Time Innovations, Inc.
  • 11. Middleware Communication Models Point-to-Point Client-Server Telephone, TCP File systems, Database, RPC, CORBA, DCOM Simple, high-bandwidth Good if information is naturally centralized Leads to stove-pipe systems Single point failure, performance bottlenecks Publish/Subscribe Messaging Replicated Data Magazines, Newspaper, TV Libraries, Distributed databases Excels at many-to-many Excels at data-mining and analysis communication Excels at distributing time-critical information © 2009 Real-Time Innovations, Inc.
  • 12. RMI vs Pub-Sub/Messaging/Data-Distribution RMI (WebServices, CORBA, DCOM) offer a remote method abstraction – Familiar OO programming model – Results in a tightly-coupled system Forces synchronous invocations Imposes global object model Limited QoS (appearance of local method call) Lack robustness: cascading points of failure – Typically built on top of TCP: impacts scalability and time-determinism – Best-suited to smaller, closely-coupled systems Topic/Queue Pub-Sub (Messaging Data-Distribution) offer a queue-based and/or replicated-data model – Subsystems are decoupled in time, space, and synchronization Contracts established by verifying QoS compatibility – Supports a variety of transports including multicast UDP – Better suited for high-performance and real-time © 2009 Real-Time Innovations, Inc.
  • 13. Queue versus Pub-Sub Queue 1 2 3 1 – Message sent to Queue – Multiple readers can read from the queue 2 Queue – Each message is delivered to ONLY one reader • Readers “affect each other” 3 – Apps: • Job Scheduling • Load Balancing • Collaboration Pub Sub – Message Sent to Topic 1 2 3 – Multiple readers can subscribe to Topic with 1 2 3 or without filters 1 2 3 – Each message delivered to ALL subscribers Topic/Queue that pass filter • Readers are decoupled 1 3 – Apps: 1 • Notifications • Information Distribution © 2009 Real-Time Innovations, Inc.
  • 14. Pub-Sub versus Data-Distribution Pub-Sub – Only messages no concept of data 1 2 3 – Each message is interpreted without context 1 2 3 – Messages must be delivered FIFO or according to 1 2 3 some “priority” attribute Topic/Queue – No Caching of data – Simple QoS: filters, durability, lifespan 1 3 1 Data-Distribution – Messages represent update to data-objects – Data-Objects identify by a key – Middleware maintains state of each object – Objects are cached. Applications can read at leisure 1 2 2 3 – Smart QoS • Ownership • History (per key) • Deadline – Subsumes Pub-Sub 1 2 3 1 2 3 1 2 3 © 2009 Real-Time Innovations, Inc.
  • 15. DDS Service Model: Communication Model Provides a “Global Data Space” that is accessible to all interested applications. – Data objects addressed by Domain, Topic and Key – Subscriptions are decoupled from Publications – Contracts established by means of QoS – Automatic discovery and configuration Participant Participant Pub Pub Track,2 Participant Sub Sub Track,1 Track,3 Global Data Space Participant Pub Participant Alarm Sub © 2009 Real-Time Innovations, Inc.
  • 16. DDS Service Model: Object Model Topic Topic Data Offered Data Requested Writer QoS Reader QoS Publisher Domain Subscriber Domain Participant Participant Global Data Space DomainParticipant – Allows application to join a DDS Domain (Global Data Space) Topic – A string that addresses a group of objects in the Global Data Space – Each Object is identified by a Key (some fields within the object data) Publisher, Subscriber – Pools resources for DataWriters and DataReaders DataWriter – Declares intent to publish a Topic and provides type-safe operations to write/send data DataReader – Declares intent to subscribe to a Topic and provides type-safe operations to read/receive data © 2009 Real-Time Innovations, Inc.
  • 17. Other (non DDS) Commercial Pub-Sub Models Older, but widely deployed – TIBCO (RendezVous, EMS) – IBM WebSphere MQ Limited deployment: – CORBA Event Service – CORBA Notification Service Emerging standards – not widely deployed – WS-Eventing – WS-Notification Proprietary Systems – 29West – IBM LLM © 2009 Real-Time Innovations, Inc.
  • 18. Agenda Context: Middleware Technologies Overview: DDS Model & Applicability Details: DDS in depth © 2009 Real-Time Innovations, Inc.
  • 19. History: DDS the Standard(s) Data Distribution Service for Real-Time Systems – Joint submission (RTI, THALES, OIS) – DDS version 1.0 Adopted December 2004 – DDS version 1.1 Adopted December 2005 – DDS version 1.2 Adopted October 2006 Interoperability wire protocol – Joint submission (RTI and PrismTech) – DDS-RTPS version 1.2 adopted in July 2006 – DDS-RTPS version 2.0 adopted in June 2007 – DDS-RTPS version 2.1 approved in June 2008 Related Standards – Joint submission (Sparx, RTI, PrismTech) – UML Profile for DDS adopted June 2008 – DDS for light weight CCM adopted 2008 Standards under Development – Extensible and Dynamic Topic Types for DDS – Native Language C++ API for DDS © 2009 Real-Time Innovations, Inc.
  • 20. © 2009 Real-Time Innovations, Inc.
  • 21. Main differences of DDS vs other Pub-Sub Flexibility and Power of the data-centric model Performance & Scalability Rich set of built-in services Interoperability across platforms and Languages Natural integration with SOA building-blocks © 2009 Real-Time Innovations, Inc.
  • 22. #1 RTI Data-Centric Model “Global Data Space” generalizes Subject-Based Addressing – Data objects addressed by DomainId, Topic and Key – Domains provide a level of isolation – Topic groups homogeneous subjects (same data-type & meaning) – Key is a generalization of subject • Key can be any set of fields, not limited to a “x.y.z …” formatted string Data Reader Data Writer Topic (subject) Key Data Object Data Reader Data Writer Data Reader Data Writer © 2009 Real-Time Innovations, Inc.
  • 23. Demo: Concepts Start demo Display Area: Shows state of objects Topics – Square, Circle, Triangle – Attributes Data types (schemas) – Shape (color, x, y, size) • Color is instance Key – Attributes • Shape & color used for key QoS – Deadline, Liveliness – Reliability, Durability – History, Partition – Ownership Control Area: Allows selection of objects and QoS © 2009 Real-Time Innovations, Inc.
  • 24. DDS communications model Data Domain Data Domain New Writer Participant Reader Participant “Alarm” Got new “Alarm” subscriber! data Offered Requested Listener QoS Listener QoS Participants scope the global data space (domain) Topics define the data-objects (collections of subjects) Writers publish data on Topics Readers subscribe to data on Topics QoS Policies are used configure the system Listeners are used to notify the application of events © 2009 Real-Time Innovations, Inc.
  • 25. QoS: Quality of Service QoS Policy QoS Policy DURABILITY USER DATA HISTORY (per subject) TOPIC DATA READER DATA LIFECYCLE GROUP DATA WRITER DATA LIFECYCLE PARTITION LIFESPAN PRESENTATION ENTITY FACTORY DESTINATION ORDER RESOURCE LIMITS OWNERSHIP RELIABILITY OWNERSHIP STRENGTH TIME BASED FILTER LIVELINESS DEADLINE LATENCY BUDGET CONTENT FILTERS TRANSPORT PRIORITY © 2009 Real-Time Innovations, Inc.
  • 26. Demo: Quality of Service (QoS) Writers and readers state Start demo Their needs Topics – Square, Circle, Triangle – Attributes Data types (schemas) – Shape (color, x, y, size) • Color is instance Key – Attributes • Shape & color used for key QoS – Deadline, Liveliness – Reliability, Durability – History, Partition – Ownership RTI DDS delivers © 2009 Real-Time Innovations, Inc.
  • 27. #2 Performance & Scalability DDS was designed to support high performance DDS uses high-performance data-access APIs – Read data by array (no additional copies) – Buffer loaning for zero copy access DDS Supports advanced features such as: – Message prioritization (via latency budget QoS) – Network prioritization (via transport priority QoS) – Source filtering (via Content-based and Time-based filters) DDS does not require the presence of intermediate brokers – Applications can communicate directly peer-to-peer DDS Protocol supports UDP, multicast and reliable multicast – Multicast can be used for high-performance scalability – Use of UDP avoids head-of-line blocking – Best efforts can be used for repetitive time-critical data © 2009 Real-Time Innovations, Inc.
  • 28. Data-Distribution and Real-Time Messaging Technologies and Standards Web Services Java RTSJ (soft RT) RTSJ (hard RT) Java/RMI Java/JMS CORBA RT CORBA Data Distribution Service / DDS MPI Non-real-time Soft real-time Hard real-time Extreme real-time © 2009 Real-Time Innovations, Inc. Documentation Adapted from NSWC-DD OA
  • 29. Latency – (Linear Scale) DDS/JMS/Notification Service Comparison - Latency 2500 2000 DDS JMS Notification Service 1500 1000 500 0 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 Message Size (bytes) Message Length (samples) Adapted from Vanderbilt presentation at July 2006 OMG Workshop on RT Systems © 2009 Real-Time Innovations, Inc.
  • 30. Jitter – (Linear Scale) DDS/CORBA Notification Service Comparison - Jitter 100 DDS/JMS/CORBA Notification Service Comparison - Jitter 80 Standard Deviation (usecs) 2000 1800 DDS JMS Notification service 60 Standard Deviation (usecs) 1600 1400 DDS JMS Notification service 1200 40 1000 800 20 600 400 0 200 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 0 Message Size (bytes) Message Length (samples) 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 Message LengthSize (bytes) Message (samples) Source: Vanderbilt presentation at July 2006 OMG Workshop on RT Systems © 2009 Real-Time Innovations, Inc.
  • 31. DDS compared to JMS ( 2KB messages ) Throughput with a single publisher 45 40 DDS JMS [1000's sample/s] 35 30 25 20 15 10 5 0 2 4 6 9 11 18 CPU load [%] Platform: Linux 2.6 on AMD Athlon, Dual core, 2.2 GHz © 2009 Real-Time Innovations, Inc.
  • 32. Study on impact of WS technologies for future European ATC: XML is not suitable for European Flight Data Distribution Data size explodes 10X vs. CDR – Flight Plans go from 100KB to 1MB Communication speed drops 20X Not good for Real-Time!! Source: Christian Esposito and Domenico Cotroneo, Dario Di Crescenzo. SELEX-SI/Consorzio SESM/University of Naples. “Flexible Communication Among DDS Publishers and Subscribers” July 2008, Real-Time Systems Workshop, Washington, DC © 2009 Real-Time Innovations, Inc.
  • 33. Message bus architectures JMS Enterprise Messaging Centralized Clustered DDS Enterprise Messaging Peer to Peer Federated © 2009 Real-Time Innovations, Inc.
  • 34. #3 Powerful Services Included in the Standard: – Discovery – Ownership, Redundancy & Failover – Persistence (Durable) Data – Last value and historical caches Enabled by the DDS protocol: – Recording service – Routing Service © 2009 Real-Time Innovations, Inc.
  • 35. Discovery Service DDS provides the means for an application to discover other participants on the Domain – And the Topics the Publish and Subscribe – And the Quality of Service of the remote endpoints A participant can determine who it is communicating with… – And selectively decide who to communicate with… shapes_demo discovery_in_excel © 2009 Real-Time Innovations, Inc.
  • 36. Ownership and High Availability Producer / Writer I1 Prim strength=10 a ry Topic T1 Producer / Writer I 1 B a c ku p strength=5 I2 Primary I1 I2 Producer / Writer I2 Backup strength=1 Owner determined per subject Only extant writer with highest strength can publish a subject (or topic for non-keyed topics) Automatic failover when highest strength writer: – Loses liveliness Start demo – Misses a deadline – Stops writing the subject Shared Ownership allows any writer to update the subject © 2009 Real-Time Innovations, Inc.
  • 37. Data Persistence A standalone service that persists data outside of the context of a DataWriter Data Can be configured for: Data Writer Data Writer Reader • Redundancy • Load balancing Data Global Reader Data Space Demo: 1. PersistenceService 2. ShapesDemo Persistence Persistence 3. Application failure Service Service 4. Application (ShapesDemo) re-start Permanent Permanent Storage Storage © 2009 Real-Time Innovations, Inc.
  • 38. Persistent Data Service Modes: – High-performance “direct” model. Data flows in directly to subscribers and to the persistent service – Transactional “relay” mode persists first, then sends to subscribers Fault-tolerant: Redundant services are supported Direct Data Relay Data Data Redundant Writer Writer Writer Mode Mode Service Persistence Persistence Service Service Persistence Persistence Service Service Data Data Data Data Data Data Reader Reader Reader Reader Reader Reader © 2009 Real-Time Innovations, Inc.
  • 39. Durable Writers Durable Writers keep their history cache in permanent storage Application Upon re-starts they automatically rebuild write their history from storage New messages will automatically be To Readers appended to the history Readers will treat the writer re-start as a Msg(GUID, SN) “temporary” disconnect Automatically-assigned sequence Permanent numbers ensure no messages are Storage dropped or duplicated © 2009 Real-Time Innovations, Inc.
  • 40. Durable Readers Durable Readers Keep information on the messages read on permanent Application storage Information uniquely identifies each read message From Writers Upon re-start they automatically load information so they only request new Msg(GUID, SN) messages and avoid duplicates Combined with the other services it Permanent can guarantee exactly-once delivery Storage © 2009 Real-Time Innovations, Inc.
  • 41. Last value cache A last-value cache is already built-in into every Writer in the system – Can used in combination with a Durable Writer A late joiner will automatically initialize to the last value Last value cache can be configure with history depth greater than 1 The Persistence Service can be used to provide a last value cache for durable data © 2009 Real-Time Innovations, Inc.
  • 42. Start demo Historical cache A partial historical cache is already built-in into every Writer in the system – Can used in combination with a Durable Writer The Persistence Service can be used to provide a historical cache with larger/unlimited depth A late joiner will automatically initialize to the desired history – Currently amount of history can only be specified as message count. – Next release will also allow a age/time based specification. Request for historical cache is done by creating a Reader with the desired history depth specified as a QoS © 2009 Real-Time Innovations, Inc.
  • 43. DDS Real-Time Recording Service Applications: Record high-rate data arriving – Future analysis and in real-time debugging Non-intrusive – multicast – Post-mortem reception – Compliance checking – Replay for testing and simulation purposes Demo: 1. Start RecorderService 2. Start ShapesDemo 3. See output files 4. Convert to: HTML XML CSV 5. View Data: HTML XML CSV © 2009 Real-Time Innovations, Inc.
  • 44. #4 Interoperability Protocol – Interoperability Wire protocol adopted in 2006 Languages: C/C++, Java, ADA, .NET Systems/Platforms/Models – Data distribution (publishers and subscribers): DDS – Data management (storage, retrieval, queries): SQL – ESB Integration, Business process integration: WSDL Distributed Distributed SQL SQL Node Node DBMS D T Distributed DDS SQL Node Global Data Space Distributed WSDL DBMS DBMS Distributed Node DDS Node © 2009 Real-Time Innovations, Inc.
  • 45. #5 Natural with SOA building blocks Real-Time Devices Fault Auditing & Tolerance Recording WS-DDS Real-Time Pub-Sub/Caching/Messaging SOA & Real-Time Web Services Database Event Processing Tools & Visualization © 2009 Real-Time Innovations, Inc.
  • 46. Relational Database Integration Messaging Actions Relational Actions Write() UPDATE & INSERT Read() & Take() SELECT Dispose() DELETE Wait() & Listener Topic T1 Table T1 I1 I1 I2 I3 I2 I3 Event driven – The fastest way to observe database changes! © 2009 Real-Time Innovations, Inc.
  • 47. Complex Event Engine Integration CEP: programmable engines used to transform “data” into “information” CEP engines are programmed using a derivative of SQL CEP engines save time: They can implement a lot of the application logic: – Classification, Correlation, Aggregation, Filter, Cleansing, Pattern Detection, etc. DDS is the perfect ‘data’ and ‘information’ pipe for CEP engines – Use high-speed data streams (1,000-1,000,000 msg/sec) – Require latency measured in sub-milliseconds – Demand access to events from a heterogeneous systems Dashboards Applications DDS Alerts CEP Engine © 2009 Real-Time Innovations, Inc.
  • 48. Web-Enabled DDS (upcoming spec) Web Hi-Performance Enabled Embedded Protocols Real-Time HTTP Generic Web Client (.NET / Java) SOAP DDS-RTPS WebEnabled Global DDS Data Space RTI, DDS, Real-Time DDSParticipant IONA IONA Artix Transports Web Client SOAP, JMS, IIOP DDSParticipant © 2009 Real-Time Innovations, Inc.
  • 49. Agenda Context: Middleware Technologies Overview: DDS Model & Applicability Details: DDS in depth © 2009 Real-Time Innovations, Inc.
  • 50. Do-yourself Message-Centric System Model – 1-1, FIFO Applications coupled in Lifespan & Content – Both must be present simultaneously – Everything sent is received Excellent performance Doesn’t scale – To large-scale systems – To loosely-coupled systems Application Application Queue co-located with each application © 2009 Real-Time Innovations, Inc.
  • 51. Middleware-based Message-Centric Systems (JMS) Model – Broker-based, n n communication – Independent messages, No state Coupling – Not coupled in Lifespan – Coupled in Order and Content (presentation) Worse performance Better scalability Application Application Global Queues Application Application Queue per message kind © 2009 Real-Time Innovations, Inc.
  • 52. Do-yourself Data-Centric System Model – Shared/replicated structured data/state – Asynchronous, Selective sharing Coupling: – Coupled in Lifespan, Decoupled in Presentation & Content Excellent performance & scalability Application Application Replication Mechanism © 2009 Real-Time Innovations, Inc.
  • 53. Middleware-based Data-Centric Systems (DDS) Shared data-space, shared state Asynchronous communication Decoupled in Lifespan, Content, presentation Excellent performance & scalability Subsumes Message-Centric via QoS Application Application © 2009 Real-Time Innovations, Inc.
  • 54. DDS Data-Centric Model Provides a virtual “Global Data Space” that is accessible to all interested applications. – Data objects addressed by DomainId, Topic and Key – Subscriptions are decoupled from Publications – Contracts established by means of QoS – Automatic discovery and configuration Data Reader Data Writer Data Object Data Reader Data Writer Data Reader Data Writer © 2009 Real-Time Innovations, Inc.
  • 55. DDS Data-Centric Model Provides a virtual “Global Data Space” that is accessible to all interested applications. – Data objects addressed by DomainId, Topic and Key – Subscriptions are decoupled from Publications – Contracts established by means of QoS – Automatic discovery and configuration Data Reader Data Writer Topic Data Reader Data Writer Data Reader Data Writer © 2009 Real-Time Innovations, Inc.
  • 56. DDS Data-Centric Model Provides a virtual “Global Data Space” that is accessible to all interested applications. – Data objects addressed by DomainId, Topic and Key – Subscriptions are decoupled from Publications – Contracts established by means of QoS – Automatic discovery and configuration Data Reader Data Writer Key Data Reader Data Writer Data Reader Data Writer © 2009 Real-Time Innovations, Inc.
  • 57. DDS Global Data Address in Global Data Space = (DomainId, Topic, Key) – Each topic corresponds to a multiple data instances with a common schema – A DataWriter can write to any instances of a single topic – Multiple DataWriters may write to the same instance – A DataReader receives updates from all instances of a single topic – Multiple DataReaders may read from the same instances & values Data Reader Data Writer Data Reader Data Writer Data Reader Data Writer © 2009 Real-Time Innovations, Inc.
  • 58. DDS Global Data: Domains Address in Global Data Space = (DomainId, Topic, Key) – Each Domain is identified by the value of the domainId – Each Domain is a separate Global Data Space • The same Topic name can mean different things in different domains • The same Topic can have different Types on each Domain – An application may join multiple Domains – Domains can be used for isolation, scalability, modularity © 2009 Real-Time Innovations, Inc.
  • 59. Example: Publication // Entities creation DomainParticipant participant = TheParticipantFactory->create_participant( domain_id, participant_qos, participant_listener); Publisher publisher = domain->create_publisher( publisher_qos, publisher_listener); Topic topic = domain->create_topic( “MyTopic”, “Text”, topic_qos, topic_listener); DataWriter writer = publisher->create_datawriter( topic, writer_qos, writer_listener); TextDataWriter twriter = TextDataWriter::narrow(writer); TextStruct my_text; twriter->write(&my_track); © 2009 Real-Time Innovations, Inc.
  • 60. Example: Subscription // Entities creation Subscriber subscriber = domain->create_subscriber( subscriber_qos, subscriber_listener); Topic topic = domain->create_topic( “Track”, “TrackStruct”, topic_qos, topic_listener); DataReader reader = subscriber->create_datareader( topic, reader_qos, reader_listener); // Use listener-based or wait-based access © 2009 Real-Time Innovations, Inc.
  • 61. How to Get Data? (Listener-Based) // Listener creation and attachment Listener listener = new MyListener(); reader->set_listener(listener); // Listener code MyListener::on_data_available( DataReader reader ) { TextSeq received_data; SampleInfoSeq sample_info; TextDataReader reader = TextDataReader::narrow(reader); treader->take( &received_data, &sample_info, …) // Use received_data printf(“Got: %sn”, received_data[0]->contents); } © 2009 Real-Time Innovations, Inc.
  • 62. How to Get Data? (WaitSet-Based) // Creation of condition and attachement Condition foo_condition = treader->create_readcondition(…); waitset->add_condition(foo_condition); // Wait ConditionSeq active_conditions; waitset->wait(&active_conditions, timeout); // Wait returns when there is data (or timeout) FooSeq received_data; SampleInfoSeq sample_info; treader->take_w_condition (&received_data, &sample_info, foo_condition); // Use received_data printf(“Got: %sn”, received_data[0]->contents); © 2009 Real-Time Innovations, Inc.
  • 63. Listeners, Conditions & WaitSets Middleware must notify user application of relevant events: – Arrival of data – But also: • QoS violations • Discovery of relevant entities – These events may be detected asynchronously by the middleware … Same issue arises with POSIX signals DDS allows the application to choice: – Either to get notified asynchronously using a Listener – Or to wait synchronously using a WaitSet Both approaches are unified using STATUS changes © 2009 Real-Time Innovations, Inc.
  • 64. Status Changes DDS defines A set of enumerated STATUS The statuses relevant to each kind of DDS Entity DDS entities maintain a value for each STATUS STATUS Entity INCONSISTENT_TOPIC Topic DATA_ON_READERS Subscriber LIVELINESS_CHANGED DataReader REQUESTED_DEADLINE_MISSED DataReader struct LivelinessChangedStatus RUQESTED_INCOMPATIBLE_QOS DataReader { DATA_AVAILABLE DataReader long active_count; long inactive_count; SAMPLE_LOST DataReader long active_count_change; SUBSCRIPTION_MATCH DataReader long inactive_count_change; LIVELINESS_LOST DataWriter } OFFERED_INCOMPATIBLE_QOS DataWriter PUBLICATION_MATCH DataWriter © 2009 Real-Time Innovations, Inc.
  • 65. Listeners, Conditions and Statuses A DDS Entity is associated with: – A listener of the proper kind (if attached) – A StatusCondition (if activated) The Listener for an Entity has a separate operation for each of the relevant statuses STATUS Entity Listener operation INCONSISTENT_TOPIC Topic on_inconsistent_topic DATA_ON_READERS Subscriber on_data_on_readers LIVELINESS_CHANGED DataReader on_liveliness_changed REQUESTED_DEADLINE_MISSED DataReader on_requested_deadline_missed RUQESTED_INCOMPATIBLE_QOS DataReader on_requested_incompatible_qos DATA_AVAILABLE DataReader on_data_available SAMPLE_LOST DataReader on_sample_lost SUBSCRIPTION_MATCH DataReader on_subscription_match LIVELINESS_LOST DataWriter on_liveliness_lost OFFERED_INCOMPATIBLE_QOS DataWriter on_offered_incompatible_qos PUBLICATION_MATCH DataWriter on_publication_match © 2009 Real-Time Innovations, Inc.
  • 66. Listeners & Condition duality A StatusCondition can be selectively activated to respond to any subset of the statuses An application can wait changes in sets of StatusConditions using a WaitSet Each time the value of a STATUS changes DDS – Calls the corresponding Listener operation – Wakes up any threads waiting on a related status change Asynchronous notification via Listener operation DDS Status Change Entity Synchronous notification via activation/wakeup of conditions/waitsets © 2009 Real-Time Innovations, Inc.
  • 67. Hands-on Example (C++) Type Four easy steps: Definition 1. Define your data 2. Create your project MyType 3. Build 4. Run: publisher subscriber MyType.sln rtiddsgen MyType.h MyTypeSupport.c MyTypePublisher.cpp Aux: File Browser MyTypeSubscriber.cpp Console compiler Publisher.exe Subscriber.exe © 2009 Real-Time Innovations, Inc.
  • 68. Components/Mechanics of the GDS Application Application GDS Definition Discovery Application Application Listener Listener Protocol Cache Management Cache Management © 2009 Real-Time Innovations, Inc.
  • 69. Components/Mechanics of the GDS Application Application Domain Modeling & Sys. Design GDS Definition Discovery Application Config & Application Qos Listener Listener Protocol Cache Management Cache Management © 2009 Real-Time Innovations, Inc.
  • 70. Designing a Data-Centric System Define/Model the Global Data Space Configure the Cache Management Configure Discovery Configure the Protocol Configure/Use hooks for – Fault detection – Controlled access © 2009 Real-Time Innovations, Inc.
  • 71. Global Data Space / Global State Identify the number of domains Domain Information model – Topics – Types – Keys – Ownership © 2009 Real-Time Innovations, Inc.
  • 72. Domain and Domain Participants N4 App 4 • Container for N1 App 1 Pub/Sub Pub/Sub applications that (A,B/C,D) (D/C,E,F) want to communicate • Applications can N2 App 2 N4 App 5 join or leave a Subscribe Domain Publish domain in any order (C) (C) • New Applications are “Auto-Discovered” N3 App 3 N5 App 6 • An application that Pub/Sub Subscribe (E,F/A,C) (B,C) has joined a domain is also called a “Domain Participant” Single ‘Domain’ System © 2009 Real-Time Innovations, Inc.
  • 73. Domain and Domain Participants Using Multiple domains for Scalability, Modularity & Isolation Node 1 - App 1 Node 4 - App 1 Pub/Sub Domain A Pub/Sub Node 2 - App 1 Node 4 - App 2 Subscribe Publish Domain B Node 3 - App 1 Node 5 - App 1 Pub/Sub Subscribe Domain C Node 5 - App 2 Added Func. Node 6 - App 1 Pub/Sub Pub/Sub demo_domain_0 Multiple Domain System demo_domain_1 © 2009 Real-Time Innovations, Inc.
  • 74. Topics & Datatypes, Keys & Subjects Topic “MarketData” Data-type (name-type-value pairs) source type symbol Exchange volume bid ask OPRA IBM NYSE 200000 118.30 118.36 OPRA AAPL NASDAQ 171.20 171.28 RTFP EQ Key fields Subject Additional fields (payload) Topic “OrderEntry” Exchange type Symbol Order num number limit stop expiration NYSE BUY IBM 11956 500 120 - DAY NYSE BUY IBM 11957 1000 124.5 124 DAY NASDAQ SELL AAPL 11958 400 - 160 DAY Subject © 2009 Real-Time Innovations, Inc. Key fields demo_filters
  • 75. QoS: Ownership Specifies whether more than one DataWriter can update the same instance of a data-object Ownership = EXCLUSIVE Ownership = SHARED “Only highest-strength “All data-writers can data writer can update each update data- each data-instance” instance” Data Data Data Data Data Data Writer Writer Writer Writer Writer Writer Data- Data- Instance Instance Provides fast, robust, transparent replacement for fail- over and/or take-over. © 2009 Real-Time Innovations, Inc.
  • 76. demo_ownership QoS: Ownership Strength Specifies which DataWriter is allowed to update the values of data-objects OWNERSHIP_STRENGTH “Integer to specify the ORDER strength of an instance” Strength = 1 Strength = 4 Domain Participant Data AfterData Expires QoS Data “RIGHT” Writer Writer Reader “LEFT” - Deadline “RIGHT” “LEFT” - Liveliness Publisher Publisher Subscriber S S Note: Only applies to Topics with Ownership = Exclusive © 2009 Real-Time Innovations, Inc.
  • 77. Configure the Cache Management Cache State Content – History Writer Application – Lifespan – Persistence – Resources Reader Cache View – Partitions – Content-Based Filter – Time-Based Filter – Order Reader Application © 2009 Real-Time Innovations, Inc.
  • 78. QoS: History – Last x or All KEEP_ALL: KEEP_LAST: “depth” integer for Publisher: keep all until delivered the number of samples to keep at Subscriber: keep each sample until the any one time application processes that instance demo_history S7 S7 Data Data S7 Data S6 S6 Writer Writer S6 Reader S5 S5 S4 S4 S3 Publisher S2 Publisher Subscriber S1 Keep All Keep Last 2 Keep Last 4 S7 S6 S5 S4 S3 S2 S1 © 2009 Real-Time Innovations, Inc.
  • 79. lifespan_pub QoS: Lifespan lifespan_sub User can set lifespan duration Manages samples in the history queues, attached to each Sample Topic S1 Data Data Writer Reader S2 S3 S4 S5 Perm. Publisher Subscriber S6 Storage S7 S1 S2 S4 S3 S2 S1 © 2009 Real-Time Innovations, Inc.
  • 80. Content-Based Filtering Instance 1 Value = 249 Content Filtered Value = 230 Topic Instance 2 Instance 3 Value = 275 Topic Instance 4 Value = 262 “Filter Expression ” Instance 5 Value = 258 Ex. Value > 260 Instance 6 Value = 261 Instance 7 Value = 259 The Filter Expression and Expression Params will determine which instances of the Topic will be received by the subscriber. content_filter_example © 2009 Real-Time Innovations, Inc.
  • 81. QoS: TIME_BASED_FILTER time_filter_example Topic “minimum_separation”: Data Reader does not want to receive data Domain faster than the min_separation time Participant Data Data Writer Reader Publisher Discarded Subscriber samples S SSS S S S minimum separation Data Samples © 2009 Real-Time Innovations, Inc.
  • 82. Configure the Protocol Discovery Reliability Writer Application Liveliness Flow Control Asynchronous write Network Configuration – Enabled Transports + transport properties – Multicast addresses – Transport Priority OS settings – Threads – Memory Reader Application © 2009 Real-Time Innovations, Inc.
  • 83. Tunable Reliability Protocol Configurable AckNack reply times Performance can be tracked by to eliminate storms senders and recipients – Configurable high/low watermark, Fully configurable to bound Buffer full latency and overhead Flexible handling of slow – Heartbeats, delays, buffer sizes recipients – Dynamically remove slow receivers S7 S1 Data S6 Reliable Data S2 Writer Reader S5 •Guaranteed S3 S4 Ordered Delivery S4 S3 S5 Publisher •“Best effort” also Subscriber S6 S2 S1 supported S7 S8 S7 S3 S5 S4 S2 S1 NACK #6 S6 © 2009 Real-Time Innovations, Inc.
  • 84. Best Efforts 01 01 01 02 02 02 03 03 X 04 04 04 05 05 05 06 06 06 07 07 07 08 08 08 Company Confidential © 2009 Real-Time Innovations, Inc.
  • 85. Confirmed Reliability I No packet loss 01 01 01 02 02 02 03 03 03 04 04, HB ACK 1-4 04 05 05 05 06 06 06 07 07 07 08 08, HB ACK 1-8 08 Company Confidential © 2009 Real-Time Innovations, Inc.
  • 86. Confirmed Reliability II Some packet loss 01 01 01 02 02 02 03 03 X 04 04, HB ACK 1-2, NACK 3 04 05 05 03 05 06 06 06 07 07 07 08 08, HB ACK 1-8 08 Company Confidential © 2009 Real-Time Innovations, Inc.
  • 87. Configure Notifications, Fault Detection & Management Writer Application Listeners Deadline Qos Liveliness Qos Built-in Readers Notification of matching Reader Application © 2009 Real-Time Innovations, Inc.
  • 88. QoS: Deadline deadline_example Topic DEADLINE “deadline period” Commits Failed to to provide get data Data data each Data Writer deadline Listener Reader period. Publisher Expects data every Subscriber deadline period. deadline S X S S S S S © 2009 Real-Time Innovations, Inc.
  • 89. QoS: Liveliness – liveliness_example Type and Duration Type: Controls who is responsible for issues of ‘liveliness packets’ AUTOMATIC = Infrastructure Managed MANUAL = Application Managed kill_apps Topic Topic Failed to renew lease Data Data Writer Listener Reader Publisher Subscriber lease_duration LP LP LP S Liveliness Message © 2009 Real-Time Innovations, Inc.
  • 90. Summary Designing a fault-tolerant high-performance distributed system is not a simple task A powerful middleware framework can provide a lot of value and help you focus on the business logic The middleware can save you a lot of time and effort. – It is worth learning how to use its power! © 2009 Real-Time Innovations, Inc.