SlideShare a Scribd company logo
1 of 25
Download to read offline
Engineering Interoperable and
                    Reliable Systems
                    Contrasting DDS, JMS, and AMQP


The Global Leader   Rick Warren                      rick.warren@rti.com
in DDS              Director of Technology Solutions
Introductions


      Rick Warren                              rick.warren@rti.com
      !  Director of Technology Solutions
                 –  Aligning product strategy with customer needs
                 –  Coordinating existing product, accelerated product,
                    professional services
      !  OMG principal
                 –  Participated DDS revision task force
                 –  Authored or co-authored Extensible and Dynamic Types
                    (DDS-XTypes), C++ PSM, Java PSM, and other specs
                 –  Chaired several specification finalization task forces
      !  Former Principal Engineer
                 –  With RTI nearly 10 years
                 –  Experience in R&D and Services

© 2011 Real-Time Innovations, Inc.                                           2
Most Important Points in this Presentation

     Themes: Interoperability,
             Reliability
     !  Flow first from architecture                              Agenda
                –  What is the information you’re                 1.  Architecture
                   modeling?
                –  How does it change over time?                     –  Levels of
                                                                        interoperability
                –  How to address dynamic                            –  Levels of
                   systems?                                             reliability
                –  How to address system                             –  Data-centricity
                   evolution, integration?
     !  Pick the right tool for the job                           2.  Technology
                –  Different technologies provide
                                                                     Implications
                          •  Different degrees of architectural      –  DDS
                             support                                 –  JMS
                          •  Different levels of portability,        –  AMQP
                             interoperability
                –  Biggest mistake: “It’s all just
                   ‘messaging’.”
© 2011 Real-Time Innovations, Inc.                                                         3
(Technology Refresher)

  !  Java Message Service (JMS)
      –  Messaging at syntactic level:
         no assumed semantics
      –  Portable API for messaging
         in Java                                !  Data Distribution Service (DDS)
      –  Specification from Java                    –  Application of messaging to
         Community Process (JCP)                       distributed state model
                                                    –  Portable API for data distribution
  !  Advanced Message Queuing
                                                       in multiple languages (DDS)
           Protocol (AMQP)
                                                    –  Interoperable protocol for data
             –  Messaging at syntactic level:          distribution (DDS-RTPS)
                no assumed semantics
                                                    –  Specifications from Object
             –  Interoperable protocol for             Management Group (OMG)
                messaging
             –  Specification from AMQP
                Working Group, industry
                consortium

© 2011 Real-Time Innovations, Inc.                                                          4
Levels of Interoperability and Reliability



                                     Interpretation of
                Semantic                messages         e.g. DDS
   Cumulative




                                     Communication       e.g. JMS,
                Syntactic             fragments—
                                      “messages”          AMQP



                Technical            Bits and bytes      e.g. TCP

© 2011 Real-Time Innovations, Inc.                                   5
Levels of Interoperability and Reliability

Interoperability Means:

               Data Level            Agree on what information
                      Semantic        refers to, how it’s related

                   Message            Distinguish one piece of
                    Level            information from another
                      Syntactic

               Byte Level            Exchange raw information,
                      Technical        regardless of structure
© 2011 Real-Time Innovations, Inc.                                  6
Levels of Interoperability and Reliability

Reliability Means:
                                      Order across      “Summarize”
               Data Level               streams,      data changes for
                                       eliminating    slow / late-joining
                      Semantic         duplicates        consumers


                   Message            Route across
                                                       Store for later
                    Level               multiple
                                      connections
                                                          delivery
                      Syntactic

                                     Repair dropped
               Byte Level              bytes over
                                         reliable
                      Technical        connection

© 2011 Real-Time Innovations, Inc.                                          7
Levels of Interoperability and Reliability



               Data Level             We call these technologies
                      Semantic             “data-centric.”

                   Message            We call these technologies
                    Level               “message-centric.”
                      Syntactic
                                     Higher levels implemented on top of lower
                                     based on chosen conventions
               Byte Level               •  Conventions not standardized => no
                                           interoperability
                      Technical         •  Implementations of lower layers
                                           constrain behavior, performance of upper
© 2011 Real-Time Innovations, Inc.                                                8
Data-Centricity by Example: Calendaring


      Alternative Process #1:
      1.  Email: “Meeting Monday at 10:00.”
      2.  Email: “Meeting moved to Tuesday.”
      3.  Email: “Here’s dial-in info for meeting…”


      4.  You: “Where do I have to be? When?”
      5.  You: (sifting through email…)




© 2011 Real-Time Innovations, Inc.                    9
Data-Centricity by Example: Calendaring


      Alternative Process #2:
      1.  Calendar: (add meeting Monday at 10:00)
      2.  Calendar: (move meeting to Tuesday)
      3.  Calendar: (add dial-in info)


      4.  You: “Where do I have to be? When?”
      5.  You: (check calendar)




© 2011 Real-Time Innovations, Inc.                  10
Data-Centricity by Example: FaceBook


      Alternative Process #1:
      !  Use the FaceBook web site.


      Alternative Process #2:
      !  The web site doesn’t exist.
      !  Deduce your friends’ information based on the
                 notifications FaceBook sends you.




© 2011 Real-Time Innovations, Inc.                       11
What’s the Difference? State.

     !  Things have attributes and
              characteristics                         “State” (“data”) is a
                –  The meeting will run 1:00–2:00     snapshot of those
                   in the conference room.
                –  My friend’s phone number is        attributes and
                   555-1234 and he’s currently        characteristics.
                   grooming his cat.
                –  The car is blue and is traveling
                   north from Sunnyvale at 65
                   mph.
     !  …whether they exist in the                    Best Practice:
              real world, in the computer,
              or both                                 operate on state
     !  …whether or not we observe                    directly, not dialogs
              or acknowledge them                     about state.


© 2011 Real-Time Innovations, Inc.                                            12
Data-Centric =



                                           the part of            you care about

                         Describing the world
                                                as it is
                                     at a certain point in time

      Implication: State of the world can be maintained by
      infrastructure, not each app


© 2011 Real-Time Innovations, Inc.                                                 13
Not Data-Centric =




                  Saying anything else
     !  “Hey you: go do this.”
     !  “The thing changed in this way.”

     Implication: State must be inferred, reconstructed,
     managed by each app

     (“Message-centricity”: focus on what’s said vs. what is)

© 2011 Real-Time Innovations, Inc.                              14
Why is it better to just describe the world?


      !  Reconstructing the state of the world is hard.
                 –  Must infer based on all previous messages             Reduce
                 –  Maintaining all these messages is expensive            Effort
                 –  Each app makes these inferences => duplicate effort
      !  People make mistakes, and systems fail.
                 –  Many copies of state => may be different => bugs
                    vs.                                                   Improve
                                                                           Quality
                 –  Uniform operations on state => fewer bugs
      !  The world changes.
                 –  Learning current state must not require replaying
                    everything ever said to you                           Future-
                 –  Adding a function to a system must not require         Proof
                    modifying every other function                        Design


© 2011 Real-Time Innovations, Inc.                                               15
Before We Forget: the Definition                     For example, data
                                                           structures in XSD
  A data-centric architecture:                                 or IDL file.

  1.  …is based on a data model that is:                   Calendar Event =
                                                             •  Start Time
             –  Appropriately documented—
                                                              •  Duration
                i.e. understandable by humans                 •  Location
             –  Formally defined—                            •  Organizer
                i.e. understandable by machines
             –  Discoverable—i.e. can be found during execution

  2.  The data model is independent of any domain-specific
            functionality / application.
             –  i.e. made of nouns, not verbs
             –  Actions are uniform; typically: Create, Read, Update, Delete (CRUD)

  3.  The (instantiated) data model is the only authoritative source
            of state in the system.
© 2011 Real-Time Innovations, Inc.                                              16
DDS is not messaging.


      DDS is data-centric messaging.
      That is,
      !  Messaging as a technique
      !  …for distributing, accessing, and modifying stateful data

            App                      App   App                 App    App      App


                                                                      Data
                     Data in Motion                                  at Rest

                             e.g. DDS            complements     e.g. database

© 2011 Real-Time Innovations, Inc.                                                   17
Example: Data-Centric Radar Data
          as in DDS

                     Data Schema                               Map this into XML; rows + cols
                   id : string (key)                           Express content-based filters
                   x : float
                                                               Propagate data efficiently
                   y : float

                  Delete                              Create        Update       Create




                                                                                            Subscribe
Publish




              “AA123”                             “DL987”          “AA123”      “AA123”
                                                  65.4             56.7         45.6
                       X                          32.1             89.0         78.9



   © 2011 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL                                          18
Example: Data-Centric Radar Data
          as in DDS

                     Data Schema                             Quality of Service
                   id : string (key)                         History
                   x : float                                 Deadline
                   y : float                                 Time-Based Filter
             !  Once infrastructure understands objects, can attach
                     QoS contracts to them




                                                                                    Subscribe
Publish




             !  “Keep only the latest value” or “I need updates at
                     this rate” make no sense unless per-object
                       –  Flight AA123 updates shouldn’t overwrite DL987, even if
                          AA123 is updated more frequently
                       –  Update rate for one track shouldn’t change just because
                          another track appeared

   © 2011 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL                                  19
Example: Message-Centric Radar Data
          as in JMS or AMQP

                                                                Nothing to base filters, xforms on
                        (No Data                                Error checking dev " integration
                        Schema,
                      Limited QoS)                              Self-describing data is verbose




                                                                                             Subscribe
                  “My app                                    0x00000006      id=“AA123”
Publish




                  knows this                                 4141010203      x=float(45.6)
                  means                                      0042366666
                  delete.”                                   429DCCCD        y=float(78.9)




   © 2011 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL                                           20
Data Level
                                                                Message Level
      Message-Level Interoperability                              Byte Level



     !  JMS, AMQP cover syntax
              of message exchange
                –  If we agree on an abstract
                   destination, I can send you
                   messages
                –  Not addressed:                           Needed for
                          •  What these messages
                             represent                      interoperability!
                          •  What they will contain           –  Especially when integrating
                          •  How the data in the business        independently developed
                             domain changes over time            components

     !  (Interoperability                                   Mitigation: implement
              limitations within                            yourself, idiomatically
              syntactic level):
                                                              –  More work
                –  JMS does not specify
                   network interoperability                   –  Difficult to govern
                –  AMQP does not specify API                  –  Non-standard

© 2011 Real-Time Innovations, Inc.                                                             21
Data Level
                                                               Message Level
      Data-Level Interoperability                               Byte Level


     !  DDS applies semantics to                        !  DDS governs data
              “messages”
                –  Topic = group of similar               structure
                   objects / records
                –  Instance = particular object,
                                                           –  At design time and run
                   identified by key                          time
                –  Sample = state of particular            –  Based on discoverable
                   object at particular point in time
                –  Like relational DB that changes            schemas
                   over time
                                                        !  DDS governs data
                                                          changes
                                                           –  Among pubs, subs
                                     Topic                 –  Based on discoverable
                                                              QoS
            Key 1               Value        Value
            Key 2               Value        Value      #  Machine-readable
                                                          definitions amenable
            Key 3               Value        Value
                                                          to automation
© 2011 Real-Time Innovations, Inc.                                                     22
Data Level
                                                     Message Level
      Message-Level Reliability                        Byte Level


     JMS, AMQP provide                      This model is limited:
     syntactic reliability, 1-to-1.
                                            #  When communication is
     !  You send a message,                   many-to-many
        I receive it                           –  How to order messages
                                                  across multiple
     !  Messages have no                          producers?
              particular relationships to      –  How to eliminate
              each other, outside world           duplicates?
                                            #  When networks are
        Pub                          Sub      dynamic / disconnected
                                               –  How to sync late joiners to
                                                  current state?
        Pub                          Sub    #  When consumers can’t
                                              keep up
                                               –  How to summarize / sub-
        Pub                          Sub          sample message stream?

© 2011 Real-Time Innovations, Inc.                                              23
Data Level
                                                          Message Level
      Data-Level Reliability                                Byte Level


     DDS provides semantic                     #  Addresses many-to-many:
     reliability, many-to-many.                   –  Choose: Should updates come
     !  Some number of sources                       from all sources at once, or one
                                                     at a time?
              publish the changing states
              of some objects                     –  Choose: If all at once, order by
                                                     source time or reception time?
     !  Samples represent                         –  Duplicates detected and
              snapshots of object state              eliminated automatically
              over time
                                               #  Addresses dynamic /
                                                  disconnected networks:
        Pub                      Topic   Sub      –  Identify number of relevant
                                                     previous states; late joiners get
                                                     just these
                              Instance
        Pub                              Sub   #  Addresses slow consumers:
                              Instance            –  Doesn’t (re)deliver obsolete
                                                     previous states
        Pub                   Instance   Sub      –  Sub-sample rapid updates based
                                                     on configuration

© 2011 Real-Time Innovations, Inc.                                                       24
Summary

     1.       Architect for interoperability and                        Technology Score Card
              reliability
                –       Start with common data model of business        !  DDS
                        domain                                            –  Interoperability, reliability
                          •  …Including static and dynamic elements          founded on system-defined
                                                                             data model
                –       Design interactions based on applying uniform         •  Discoverable
                        operations (CRUD) on this model
                                                                              •  Machine-readable
                –       Account for enforcement / governance                  •  Automatically enforced
     2.       Select technology based on                                  –  Portable API in multiple
              conformance to architecture wherever                           languages
              possible                                                    –  Interoperable protocol
                –       Supports and enforces data model?               !  JMS
                –       Provides standards-based code portability?        –  Interoperability, reliability
                –       Provides standards-based component                   defined at message level
                        interoperability?                                    only: no pre-defined
                                                                             semantics
     3.       Mitigate lack of architectural support                      –  Portable API in Java
              wherever necessary
                –       Document and implement data model               !  AMQP
                        governance                                        –  Interoperability, reliability
                –       Create portable API wrappers where lacking           defined at message level
                –       Define protocol usage idioms to increase             only: no pre-defined
                        interop, reliability levels                          semantics
                                                                          –  Interoperable protocol

© 2011 Real-Time Innovations, Inc.                                                                           25

More Related Content

What's hot

CL100.pdf
CL100.pdfCL100.pdf
CL100.pdf
Novell
 
Peter Coffee at share2010seattle
Peter Coffee at share2010seattlePeter Coffee at share2010seattle
Peter Coffee at share2010seattle
Peter Coffee
 

What's hot (19)

Best Practices for Administering Novell GroupWise 8
Best Practices for Administering Novell GroupWise 8Best Practices for Administering Novell GroupWise 8
Best Practices for Administering Novell GroupWise 8
 
Digital Pen En 2008
Digital Pen En 2008Digital Pen En 2008
Digital Pen En 2008
 
Data distribution in the cloud with Node.js
Data distribution in the cloud with Node.jsData distribution in the cloud with Node.js
Data distribution in the cloud with Node.js
 
Complex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBaseComplex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBase
 
Accelerate Microsoft Lync Deployments with Session Border Controllers
Accelerate Microsoft Lync Deployments with Session Border ControllersAccelerate Microsoft Lync Deployments with Session Border Controllers
Accelerate Microsoft Lync Deployments with Session Border Controllers
 
WebSphere Connectivity & Integration: What's New in the Messaging Family?
WebSphere Connectivity & Integration: What's New in the Messaging Family?WebSphere Connectivity & Integration: What's New in the Messaging Family?
WebSphere Connectivity & Integration: What's New in the Messaging Family?
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
Diagnosability versus The Cloud, Toronto 2011-04-21
Diagnosability versus The Cloud, Toronto 2011-04-21Diagnosability versus The Cloud, Toronto 2011-04-21
Diagnosability versus The Cloud, Toronto 2011-04-21
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Sdnhpkorea
SdnhpkoreaSdnhpkorea
Sdnhpkorea
 
CL100.pdf
CL100.pdfCL100.pdf
CL100.pdf
 
Programmable WAN Networking is SFW
Programmable WAN Networking is SFWProgrammable WAN Networking is SFW
Programmable WAN Networking is SFW
 
Move your Data Center to the Cloud
Move your Data Center to the CloudMove your Data Center to the Cloud
Move your Data Center to the Cloud
 
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
 
Telecoms in the Clouds Issue 1
Telecoms in the Clouds Issue 1Telecoms in the Clouds Issue 1
Telecoms in the Clouds Issue 1
 
Extending IT Investment with Connectivity & Integration
Extending IT Investment with Connectivity & IntegrationExtending IT Investment with Connectivity & Integration
Extending IT Investment with Connectivity & Integration
 
20 74-1-pb
20 74-1-pb20 74-1-pb
20 74-1-pb
 
Shahed Anwar Resume
Shahed Anwar ResumeShahed Anwar Resume
Shahed Anwar Resume
 
Peter Coffee at share2010seattle
Peter Coffee at share2010seattlePeter Coffee at share2010seattle
Peter Coffee at share2010seattle
 

Viewers also liked

Viewers also liked (6)

Extensible and Dynamic Topic Types For DDS (out of date)
Extensible and Dynamic Topic Types For DDS (out of date)Extensible and Dynamic Topic Types For DDS (out of date)
Extensible and Dynamic Topic Types For DDS (out of date)
 
From the Tactical Edge to the Enterprise: Integrating DDS and JMS
From the Tactical Edge to the Enterprise: Integrating DDS and JMSFrom the Tactical Edge to the Enterprise: Integrating DDS and JMS
From the Tactical Edge to the Enterprise: Integrating DDS and JMS
 
Web-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionWeb-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised Submission
 
Data-centric Invocable Services
Data-centric Invocable ServicesData-centric Invocable Services
Data-centric Invocable Services
 
DDS in a Nutshell
DDS in a NutshellDDS in a Nutshell
DDS in a Nutshell
 
Introduction to Robotic Technology Components (RTC), Robotics DTF
Introduction to Robotic Technology Components (RTC), Robotics DTFIntroduction to Robotic Technology Components (RTC), Robotics DTF
Introduction to Robotic Technology Components (RTC), Robotics DTF
 

Similar to Engineering Interoperable and Reliable Systems

High-Performance Interoperable Architecture for Information Dominance
High-Performance Interoperable Architecture for Information DominanceHigh-Performance Interoperable Architecture for Information Dominance
High-Performance Interoperable Architecture for Information Dominance
Real-Time Innovations (RTI)
 
The Single Most Important Decision in Designing Your Distributed System
The Single Most Important Decision in Designing Your Distributed SystemThe Single Most Important Decision in Designing Your Distributed System
The Single Most Important Decision in Designing Your Distributed System
Real-Time Innovations (RTI)
 
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountElastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Yakura Coffee
 
Cisco Presentation 1
Cisco Presentation 1Cisco Presentation 1
Cisco Presentation 1
changcai
 
Thomas.mc vittie
Thomas.mc vittieThomas.mc vittie
Thomas.mc vittie
NASAPMC
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
Ant Phillips
 

Similar to Engineering Interoperable and Reliable Systems (20)

High-Performance Interoperable Architecture for Information Dominance
High-Performance Interoperable Architecture for Information DominanceHigh-Performance Interoperable Architecture for Information Dominance
High-Performance Interoperable Architecture for Information Dominance
 
Interoperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareInteroperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric Middleware
 
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
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
 
The Single Most Important Decision in Designing Your Distributed System
The Single Most Important Decision in Designing Your Distributed SystemThe Single Most Important Decision in Designing Your Distributed System
The Single Most Important Decision in Designing Your Distributed System
 
HTML5 Mobile Application Framework
HTML5 Mobile Application FrameworkHTML5 Mobile Application Framework
HTML5 Mobile Application Framework
 
RESTful SOA and the Spring Framework (EMCWorld 2011)
RESTful SOA and the Spring Framework (EMCWorld 2011)RESTful SOA and the Spring Framework (EMCWorld 2011)
RESTful SOA and the Spring Framework (EMCWorld 2011)
 
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountElastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction Count
 
Understanding Intelligent Military-Grade Optical Ethernet Networks: A Versati...
Understanding Intelligent Military-Grade Optical Ethernet Networks: A Versati...Understanding Intelligent Military-Grade Optical Ethernet Networks: A Versati...
Understanding Intelligent Military-Grade Optical Ethernet Networks: A Versati...
 
Scaling MySQL: Catch 22 of Read Write Splitting
Scaling MySQL: Catch 22 of Read Write SplittingScaling MySQL: Catch 22 of Read Write Splitting
Scaling MySQL: Catch 22 of Read Write Splitting
 
Cloud Computing - Making IT Simple
 Cloud Computing - Making IT Simple Cloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
 
Cisco Presentation 1
Cisco Presentation 1Cisco Presentation 1
Cisco Presentation 1
 
Cloud Computing: Making IT Simple
Cloud Computing: Making IT SimpleCloud Computing: Making IT Simple
Cloud Computing: Making IT Simple
 
Thomas.mc vittie
Thomas.mc vittieThomas.mc vittie
Thomas.mc vittie
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
 
Cloud Computing - Making IT Simple
Cloud Computing - Making IT SimpleCloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
 
Transform Microsoft Application Environment With EMC Information Infrastructure
Transform Microsoft Application Environment With EMC Information InfrastructureTransform Microsoft Application Environment With EMC Information Infrastructure
Transform Microsoft Application Environment With EMC Information Infrastructure
 
Application architecture for cloud
Application architecture for cloudApplication architecture for cloud
Application architecture for cloud
 
Dds the ideal_bus_for_event_processing_engines
Dds the ideal_bus_for_event_processing_enginesDds the ideal_bus_for_event_processing_engines
Dds the ideal_bus_for_event_processing_engines
 
A Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise ApplicationsA Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise Applications
 

More from Rick Warren

More from Rick Warren (20)

Real-World Git
Real-World GitReal-World Git
Real-World Git
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
 
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to ProductionLetters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
 
Scaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and DevicesScaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and Devices
 
Java 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final SubmissionJava 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final Submission
 
Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised Submission
 
Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)
 
Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1
 
Mapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric ModelMapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric Model
 
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
 
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
 
Extensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDSExtensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDS
 
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
 
Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 
Extensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDSExtensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDS
 
Proposed Java 5 API for DDS (out of date)
Proposed Java 5 API for DDS (out of date)Proposed Java 5 API for DDS (out of date)
Proposed Java 5 API for DDS (out of date)
 
Robotic Technology Component (RTC) Specification
Robotic Technology Component (RTC) SpecificationRobotic Technology Component (RTC) Specification
Robotic Technology Component (RTC) Specification
 
Introduction to Robotic Technology Components (RTC), MARS PTF
Introduction to Robotic Technology Components (RTC), MARS PTFIntroduction to Robotic Technology Components (RTC), MARS PTF
Introduction to Robotic Technology Components (RTC), MARS PTF
 

Recently uploaded

Recently uploaded (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Engineering Interoperable and Reliable Systems

  • 1. Engineering Interoperable and Reliable Systems Contrasting DDS, JMS, and AMQP The Global Leader Rick Warren rick.warren@rti.com in DDS Director of Technology Solutions
  • 2. Introductions Rick Warren rick.warren@rti.com !  Director of Technology Solutions –  Aligning product strategy with customer needs –  Coordinating existing product, accelerated product, professional services !  OMG principal –  Participated DDS revision task force –  Authored or co-authored Extensible and Dynamic Types (DDS-XTypes), C++ PSM, Java PSM, and other specs –  Chaired several specification finalization task forces !  Former Principal Engineer –  With RTI nearly 10 years –  Experience in R&D and Services © 2011 Real-Time Innovations, Inc. 2
  • 3. Most Important Points in this Presentation Themes: Interoperability, Reliability !  Flow first from architecture Agenda –  What is the information you’re 1.  Architecture modeling? –  How does it change over time? –  Levels of interoperability –  How to address dynamic –  Levels of systems? reliability –  How to address system –  Data-centricity evolution, integration? !  Pick the right tool for the job 2.  Technology –  Different technologies provide Implications •  Different degrees of architectural –  DDS support –  JMS •  Different levels of portability, –  AMQP interoperability –  Biggest mistake: “It’s all just ‘messaging’.” © 2011 Real-Time Innovations, Inc. 3
  • 4. (Technology Refresher) !  Java Message Service (JMS) –  Messaging at syntactic level: no assumed semantics –  Portable API for messaging in Java !  Data Distribution Service (DDS) –  Specification from Java –  Application of messaging to Community Process (JCP) distributed state model –  Portable API for data distribution !  Advanced Message Queuing in multiple languages (DDS) Protocol (AMQP) –  Interoperable protocol for data –  Messaging at syntactic level: distribution (DDS-RTPS) no assumed semantics –  Specifications from Object –  Interoperable protocol for Management Group (OMG) messaging –  Specification from AMQP Working Group, industry consortium © 2011 Real-Time Innovations, Inc. 4
  • 5. Levels of Interoperability and Reliability Interpretation of Semantic messages e.g. DDS Cumulative Communication e.g. JMS, Syntactic fragments— “messages” AMQP Technical Bits and bytes e.g. TCP © 2011 Real-Time Innovations, Inc. 5
  • 6. Levels of Interoperability and Reliability Interoperability Means: Data Level Agree on what information Semantic refers to, how it’s related Message Distinguish one piece of Level information from another Syntactic Byte Level Exchange raw information, Technical regardless of structure © 2011 Real-Time Innovations, Inc. 6
  • 7. Levels of Interoperability and Reliability Reliability Means: Order across “Summarize” Data Level streams, data changes for eliminating slow / late-joining Semantic duplicates consumers Message Route across Store for later Level multiple connections delivery Syntactic Repair dropped Byte Level bytes over reliable Technical connection © 2011 Real-Time Innovations, Inc. 7
  • 8. Levels of Interoperability and Reliability Data Level We call these technologies Semantic “data-centric.” Message We call these technologies Level “message-centric.” Syntactic Higher levels implemented on top of lower based on chosen conventions Byte Level •  Conventions not standardized => no interoperability Technical •  Implementations of lower layers constrain behavior, performance of upper © 2011 Real-Time Innovations, Inc. 8
  • 9. Data-Centricity by Example: Calendaring Alternative Process #1: 1.  Email: “Meeting Monday at 10:00.” 2.  Email: “Meeting moved to Tuesday.” 3.  Email: “Here’s dial-in info for meeting…” 4.  You: “Where do I have to be? When?” 5.  You: (sifting through email…) © 2011 Real-Time Innovations, Inc. 9
  • 10. Data-Centricity by Example: Calendaring Alternative Process #2: 1.  Calendar: (add meeting Monday at 10:00) 2.  Calendar: (move meeting to Tuesday) 3.  Calendar: (add dial-in info) 4.  You: “Where do I have to be? When?” 5.  You: (check calendar) © 2011 Real-Time Innovations, Inc. 10
  • 11. Data-Centricity by Example: FaceBook Alternative Process #1: !  Use the FaceBook web site. Alternative Process #2: !  The web site doesn’t exist. !  Deduce your friends’ information based on the notifications FaceBook sends you. © 2011 Real-Time Innovations, Inc. 11
  • 12. What’s the Difference? State. !  Things have attributes and characteristics “State” (“data”) is a –  The meeting will run 1:00–2:00 snapshot of those in the conference room. –  My friend’s phone number is attributes and 555-1234 and he’s currently characteristics. grooming his cat. –  The car is blue and is traveling north from Sunnyvale at 65 mph. !  …whether they exist in the Best Practice: real world, in the computer, or both operate on state !  …whether or not we observe directly, not dialogs or acknowledge them about state. © 2011 Real-Time Innovations, Inc. 12
  • 13. Data-Centric = the part of you care about Describing the world as it is at a certain point in time Implication: State of the world can be maintained by infrastructure, not each app © 2011 Real-Time Innovations, Inc. 13
  • 14. Not Data-Centric = Saying anything else !  “Hey you: go do this.” !  “The thing changed in this way.” Implication: State must be inferred, reconstructed, managed by each app (“Message-centricity”: focus on what’s said vs. what is) © 2011 Real-Time Innovations, Inc. 14
  • 15. Why is it better to just describe the world? !  Reconstructing the state of the world is hard. –  Must infer based on all previous messages Reduce –  Maintaining all these messages is expensive Effort –  Each app makes these inferences => duplicate effort !  People make mistakes, and systems fail. –  Many copies of state => may be different => bugs vs. Improve Quality –  Uniform operations on state => fewer bugs !  The world changes. –  Learning current state must not require replaying everything ever said to you Future- –  Adding a function to a system must not require Proof modifying every other function Design © 2011 Real-Time Innovations, Inc. 15
  • 16. Before We Forget: the Definition For example, data structures in XSD A data-centric architecture: or IDL file. 1.  …is based on a data model that is: Calendar Event = •  Start Time –  Appropriately documented— •  Duration i.e. understandable by humans •  Location –  Formally defined— •  Organizer i.e. understandable by machines –  Discoverable—i.e. can be found during execution 2.  The data model is independent of any domain-specific functionality / application. –  i.e. made of nouns, not verbs –  Actions are uniform; typically: Create, Read, Update, Delete (CRUD) 3.  The (instantiated) data model is the only authoritative source of state in the system. © 2011 Real-Time Innovations, Inc. 16
  • 17. DDS is not messaging. DDS is data-centric messaging. That is, !  Messaging as a technique !  …for distributing, accessing, and modifying stateful data App App App App App App Data Data in Motion at Rest e.g. DDS complements e.g. database © 2011 Real-Time Innovations, Inc. 17
  • 18. Example: Data-Centric Radar Data as in DDS Data Schema Map this into XML; rows + cols id : string (key) Express content-based filters x : float Propagate data efficiently y : float Delete Create Update Create Subscribe Publish “AA123” “DL987” “AA123” “AA123” 65.4 56.7 45.6 X 32.1 89.0 78.9 © 2011 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 18
  • 19. Example: Data-Centric Radar Data as in DDS Data Schema Quality of Service id : string (key) History x : float Deadline y : float Time-Based Filter !  Once infrastructure understands objects, can attach QoS contracts to them Subscribe Publish !  “Keep only the latest value” or “I need updates at this rate” make no sense unless per-object –  Flight AA123 updates shouldn’t overwrite DL987, even if AA123 is updated more frequently –  Update rate for one track shouldn’t change just because another track appeared © 2011 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 19
  • 20. Example: Message-Centric Radar Data as in JMS or AMQP Nothing to base filters, xforms on (No Data Error checking dev " integration Schema, Limited QoS) Self-describing data is verbose Subscribe “My app 0x00000006 id=“AA123” Publish knows this 4141010203 x=float(45.6) means 0042366666 delete.” 429DCCCD y=float(78.9) © 2011 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 20
  • 21. Data Level Message Level Message-Level Interoperability Byte Level !  JMS, AMQP cover syntax of message exchange –  If we agree on an abstract destination, I can send you messages –  Not addressed: Needed for •  What these messages represent interoperability! •  What they will contain –  Especially when integrating •  How the data in the business independently developed domain changes over time components !  (Interoperability Mitigation: implement limitations within yourself, idiomatically syntactic level): –  More work –  JMS does not specify network interoperability –  Difficult to govern –  AMQP does not specify API –  Non-standard © 2011 Real-Time Innovations, Inc. 21
  • 22. Data Level Message Level Data-Level Interoperability Byte Level !  DDS applies semantics to !  DDS governs data “messages” –  Topic = group of similar structure objects / records –  Instance = particular object, –  At design time and run identified by key time –  Sample = state of particular –  Based on discoverable object at particular point in time –  Like relational DB that changes schemas over time !  DDS governs data changes –  Among pubs, subs Topic –  Based on discoverable QoS Key 1 Value Value Key 2 Value Value #  Machine-readable definitions amenable Key 3 Value Value to automation © 2011 Real-Time Innovations, Inc. 22
  • 23. Data Level Message Level Message-Level Reliability Byte Level JMS, AMQP provide This model is limited: syntactic reliability, 1-to-1. #  When communication is !  You send a message, many-to-many I receive it –  How to order messages across multiple !  Messages have no producers? particular relationships to –  How to eliminate each other, outside world duplicates? #  When networks are Pub Sub dynamic / disconnected –  How to sync late joiners to current state? Pub Sub #  When consumers can’t keep up –  How to summarize / sub- Pub Sub sample message stream? © 2011 Real-Time Innovations, Inc. 23
  • 24. Data Level Message Level Data-Level Reliability Byte Level DDS provides semantic #  Addresses many-to-many: reliability, many-to-many. –  Choose: Should updates come !  Some number of sources from all sources at once, or one at a time? publish the changing states of some objects –  Choose: If all at once, order by source time or reception time? !  Samples represent –  Duplicates detected and snapshots of object state eliminated automatically over time #  Addresses dynamic / disconnected networks: Pub Topic Sub –  Identify number of relevant previous states; late joiners get just these Instance Pub Sub #  Addresses slow consumers: Instance –  Doesn’t (re)deliver obsolete previous states Pub Instance Sub –  Sub-sample rapid updates based on configuration © 2011 Real-Time Innovations, Inc. 24
  • 25. Summary 1.  Architect for interoperability and Technology Score Card reliability –  Start with common data model of business !  DDS domain –  Interoperability, reliability •  …Including static and dynamic elements founded on system-defined data model –  Design interactions based on applying uniform •  Discoverable operations (CRUD) on this model •  Machine-readable –  Account for enforcement / governance •  Automatically enforced 2.  Select technology based on –  Portable API in multiple conformance to architecture wherever languages possible –  Interoperable protocol –  Supports and enforces data model? !  JMS –  Provides standards-based code portability? –  Interoperability, reliability –  Provides standards-based component defined at message level interoperability? only: no pre-defined semantics 3.  Mitigate lack of architectural support –  Portable API in Java wherever necessary –  Document and implement data model !  AMQP governance –  Interoperability, reliability –  Create portable API wrappers where lacking defined at message level –  Define protocol usage idioms to increase only: no pre-defined interop, reliability levels semantics –  Interoperable protocol © 2011 Real-Time Innovations, Inc. 25