SlideShare a Scribd company logo
UML Profile for DDS
a tutorial for OMG Specification in Government
 Workshop (Real-Time & Embedded Systems)
                 July 13, 2009

      Prepared by: Sam Mancarella (Sparx Systems)
        Presented by: Angelo Corsaro (PrismTech)
Agenda
• Part 1 - Introduction
   – DDS Overview
   – Motivating the UML4DDS

• Part 2 – UML4DDS by Examples
   –   DCPS
   –   DLRL
   –   Application Targets
   –   MDA, PIM  PSM

• Part 3 - Conclusion
   – Other Applications
   – Concluding Remarks
   – Discussion
The OMG Data Distribution
                       Service (DDS)
•   DDS v1.2 API Standard
    – Language Independent, OS and HW                           Application
      architecture independent
                                                                    Object/Relational Mapping
    – DCPS. Standard API for Data-Centric,                   Data Local Reconstruction Layer (DLRL)
      Topic-Based, Real-Time Publish/
      Subscribe                                Ownership           Durability
                                                                                        Content
                                                                                      Subscription

    – DLRL. Standard API for creating Object                   Minimum Profile
      Views out of collection of Topics             Data Centric Publish/Subscribe (DCPS)


•   DDSI/RTPS v2.1 Wire Protocol                     Real-Time Publish/Subscribe Protocol

    Standard                                           DDS Interoperability Wire Protocol


    – Standard wire protocol allowing                               UDP/IP

      interoperability between different
      implementations of the DDS standard
High Performance Pub/Sub
                        The right data, at the right place, at
– Fully distributed,                           the right time
  Peer-to-Peer
                                               -- All the Time.
  Communication
– No Single Point of
                                                       Subscriber
                        Publisher


  Failure
– No Single Point of    Publisher     Broke              Subscriber


  Bottleneck
– Multicast-enabled     Publisher
                                                     Subscriber

– High performance
  and highly scalable
– High availability
Data-Centric Pub/Sub
                                            ‣   Data-Centric Features are built-in and
                                                don’t rely on an external DBMS
                                            ‣   Providing thus performance, scalability,
                                                and availability
– Distributed Relational Data
  Model
                                                                               DBMS          Subscriber
– Local Queries                 Publisher


– Continuous Queries /
                                                             B

                                                                   m

  Content Based                                              A             F

                                                                                               Subscriber
  Subscriptions                 Publisher                   J
                                                                       D          C


– Windows                                                   K
                                                                       E


– Object/Relational Mapping
                                Publisher
– Support for a subset of                                                                  Subscriber

  SQL-92
                                Perfect Blend of Data-Centric and Real-Time
                                           Publish/Subscribe Technologies
Topics and Data-Centric
                       Pub/Sub
                                          Topic
– Topics. Unit of information
  exchanged between Publisher and
  Subscribers.

– Data Types. Type associated to a                   struct TempSensor {
                                                        long tID;
  Topic must be a structured type                       float temp;
  expressed in IDL                      Topic Type      float humidity;
                                                     };
                                                     #pragma keylist TempSensor tID
– Topic Instances. Key values in a
  datatype uniquely identify a Topic
                                                           tID    temp    humidity
  Instance (like rows in table)
                                                           1       21       62
                                                           2       27       78
– Content Awareness. SQL                                   3       25.5     72.3
  Expressions can be used to do
  content-aware subscriptions,                                   SELECT * FROM TempSensor t
                                                                 WHERE t.temp > 25
  queries, joins, and correlate topic
  instances
                                                           tID    temp    humidity
                                                           2       27       78
                                                           3       25.5     72.3
Distributed Relational
                Information Modeling
– Topic Keys can be used to identify instances as well as
  relationships
– Relationships can be navigated by relying on a subset of SQL 92
– One-to-many relationships can be captured using foreign keys
– Many-to-many relationships need to be modeled using a topics
– Keys can be represented by an arbitrary number of Topic fields
Object/Relational
                         Mapping
– Automatically bridges
  the Object/Relational
  Impedance Mismatch
– Arbitrary object
  reconstructions
– Automatic
  Relationships
  Management
– Inheritance
– Local Operations
– Local/Distributed
  State
Sample QoS Policies
QoS Policy     Applicability   RxO   Modifiable
DURABILITY      T, DR, DW       Y       N          Data                                                       Type Matching

DURABILITY        T, DW        N        N        Availability                                                                                    QoS matching



SERVICE
                                                                QoS             QoS                 QoS                   QoS                   QoS                QoS              QoS


                                                                                                                          Topic

LIFESPAN          T, DW         -       Y                                     Publisher
                                                                                                                                    Name
                                                                                                                                                                Subscriber

                                                                                           ...   DataWriter      writes   Type       reads   DataReader
                                                                                                                                                          ...
HISTORY         T, DR, DW      N        N                                                                                     ...
                                                                 DomainParticipant               DataWriter    writes     Type      reads    DataReader                  DomainParticipant
PRESENTATION       P, S         Y       N          Data                                                                             Name
                                                                                                                          Topic

RELIABILITY     T, DR, DW       Y       N         Delivery
                                                                                                   QoS                    QoS                    QoS


PARTITION          P, S        N        Y
DESTINATION     T, DR, DW       Y       N
ORDER
                                                                                          – Rich set of QoS allow
OWNERSHIP       T, DR, DW       Y       N
                                                                                            to configure several
OWNERSHIP          DW           -       Y
STRENGTH                                                                                    different aspects of
DEADLINE        T, DR, DW       Y       Y           Data                                    data availability,
                                                 Timeliness
LATENCY
BUDGET
                T, DR, DW       Y       Y
                                                                                            delivery and
TRANSPORT         T, DW         -       Y                                                   timeliness
PRIORITY
TIME BASED         DR           -       Y        Resources                                – QoS can be used to
FILTER
                                                                                            control and optimize
RESOURCE        T, DR, DW      N        N
LIMITS                                                                                      network as well as
USER_DATA      DP, DR, DW      N        Y        Configuratio                                computing resource
TOPIC_DATA          T          N        Y            n
GROUP_DATA         P, S        N        Y
Overcoming the Challenges of
                          DDS Design
•   DDS is a PIM
    – Provides a platform independent model of entities, roles and QoS Policies
    – PIM is mapped to specific implementations, or platform specific models
      (PSM)
         • Variety of software languages
         • Variety of runtime platforms
         • Variety of vendors                                                  Radar
                                  B

                                           m

       Sensor 1                   A                F
                                                                               Aircraft


                                                                           X
                                  J
                                               D


      Sensor n                    K
                                               E
                                                                     PDA



                  Workstation


                                                       Workstation
Overcoming the Challenges of
                 DDS Design
• Manage Complexity
  – Complex information models with QoS data

• Heterogeneous Design
  – Different implementations, same information model

• Reuse
  – Repository, Patterns

• Change Management
  – One change in model  00’s changes in code
UML 4 DDS
• A UML Profile designed for the analysis and
  design of object-oriented systems using Data
  Distribution Service technology.

• Provides DDS designers, architects and
  practitioners with a standard, domain-specific
  modeling language to design DDS-based
  distributed information systems in a manner not
  specific to the underlying implementation of that
  design.
UML 4 DDS

• Beta Specification: mars/2008-06-18
• Joint Submission by:
  – PrismTech
  – Real Time Innovations Inc
  – Sparx Systems
• Request For Proposal: mars/2006-09-40
Model - Driven Architecture

• Domain-Specific Modeling
  – Taxonomy of constructs, relationships, constraints
  – Notation, presentation, diagrams
  – MOF or UML mappings (UML Profiles)

• PIM  PSM Transformation
  – Platform Independent Model transformed to
    Platform specific model automatically
  – One domain-specific model to another
Timeline
–   RFP Issued                 September, 2006
–   First LOI                  November, 2006
–   First Initial Submission   March, 2007
–   First Revised Submission   September, 2007
–   Second LOI                 October, 2007
–   Second Initial Sub         December, 2007
–   Second Revised Sub         February, 2008
–   BoD Adoption               June, 2008
–   FTF Charter                June, 2008
–   FTF Report Due             August 2009
Vendor Support
• Sparx Systems – MDG Technology for DDS
  – Language Addin for Enterprise Architect
  – DDS-specific Toolboxes, Constructs, Diagrams
  – Automatically generates PSM code for
    OpenSplice & RTI DDS
     • Other DDS platform targets coming soon!
Language Architecture
•   Part 1 - UML Profile
•   Defines a collection of constructs that represent:
     – Data Centric Publish Subscribe Entites (+ QoS)
     – Data Local Reconstruction Layer

•   Introduced a collection of common constructs to define:
     – PSM Application Targets
     – Topic Data Types (IDL)
Language Architecture
• Part 2 – Metamodel
• Defines meta-level artifacts for XMI serialization
Worked Example - NetChat

  Stage 1 – DCPS-only Application
     Stage 2 – DLRL-Enabled
Designing DDS Systems
DDS Design Steps
• Designing DDS-based system can be decomposed in the
  following few simple steps:
   – Step#1: Define Information Model
   – Step #2: Associate QoS representing key non-
      functional invariants for your system with the
      Information Model
   – Step #3: Define Topics / Partition / Domain Mapping
   – Step #4: Identify Topic Readers/Writers
   – Step #5: Define QoS requirements for Readers/Writers
   – Step #6: Bind the model to a specific PSM
NetChat Overview
•   Hypothetical, peer-to-peer network chat application
•   Two Components:
     – “ChatRoom” DDS Dataspace containing conversation threads amongst users
     – “Directory Server” Application to maintain a collection of active NetChat users

•   Real-world application of DDS DCPS and DLRL in distributed application
    designs
DDS Design Steps
• Designing DDS-based system can be decomposed in the
  following few simple steps:
   – Step#1: Define Information Model
   – Step #2: Associate QoS representing key non-
      functional invariants for your system with the
      Information Model
   – Step #3: Define Topics / Partition / Domain Mapping
   – Step #4: Identify Topic Readers/Writers
   – Step #5: Define QoS requirements for Readers/Writers
   – Step #6: Bind the model to a specific PSM
DCPS Topics & Data Types
• Data Types
  – Describes the data
    payloads for DCPS
    topics
  – IDL-based library
  – structs, unions, arrays
DCPS Topics & Data Types
• Data Types
  – Describes the data
    payloads for DCPS
    topics
  – IDL-based library
  – structs, unions, arrays

              Attributes can be
               nominated as
              DCPS Key fields
DCPS Topics & Data Types
• DDS Topics
  – Describes the DCPS characteristics of the published/
    subscribe data type,
    constrained to QoS Policy
DCPS Topics & Data Types
• DDS Topics
  – Describes the DCPS characteristics of the published/
    subscribe data type,
    constrained to QoS Policy
DCPS Topics & Data Types
• DDS Topics
    – Describes the DCPS characteristics of the published/
      subscribe data type,
      constrained to QoS Policy




ContentFilteredTopic,
MultiTopic denoted by
kind, expression tags
DDS Design Steps
• Designing DDS-based system can be decomposed in the
  following few simple steps:
   – Step#1: Define Information Model
   – Step #2: Associate QoS representing key non-
      functional invariants for your system with the
      Information Model
   – Step #3: Define Topics / Partition / Domain Mapping
   – Step #4: Identify Topic Readers/Writers
   – Step #5: Define QoS requirements for Readers/Writers
   – Step #6: Bind the model to a specific PSM
DCPS – QoS Policy Library
• qosPolicyLibrary
  Package
   – Top-Level Classifiers
     defining ‘default’ QoS
     Policies

   – Define sets of
     qosPolicyLibraries for
     domain-specific
     applications

   – Template of reusable QoS
     assets for multiple projects
DCPS – QoS Policy Library
DCPS – QoS Policy Library




               Defines QoS policy data
                  as tagged values
DDS Design Steps
• Designing DDS-based system can be decomposed in the
  following few simple steps:
   – Step#1: Define Information Model
   – Step #2: Associate QoS representing key non-
      functional invariants for your system with the
      Information Model
   – Step #3: Define Topics / Partition / Domain Mapping
   – Step #4: Identify Topic Readers/Writers
   – Step #5: Define QoS requirements for Readers/Writers
   – Step #6: Bind the model to a specific PSM
DCPS Domain & Entities
• Domain Entity
  – Logical ‘grouping’ of
    DCPS Topics, &
    DomainParticipants
DCPS Domain & Entities
• DomainParticipant Entity
  – DDS Publish/Subscribe entity
DCPS Domain & Entities
• DomainParticipant Entity
  – Participate in domain nominated by tagged value
DCPS Domain & Entities
• DomainParticipant
  Entity
  – Qos applied as
    properties, typed by
    the QoS Policy types
    in the qosPolicyLibrary
DDS Design Steps
• Designing DDS-based system can be decomposed in the
  following few simple steps:
   – Step#1: Define Information Model
   – Step #2: Associate QoS representing key non-
      functional invariants for your system with the
      Information Model
   – Step #3: Define Topics / Partition / Domain Mapping
   – Step #4: Identify Topic Readers/Writers
   – Step #5: Define QoS requirements for Readers/Writers
   – Step #6: Bind the model to a specific PSM
DCPS Domain & Entities
• Added Publisher, Subscriber Entities
DCPS Domain & Entities
• Added DataReaders, DataWriters Entities
DCPS Domain & Entities




          DDS Topics connected to
              DataReaders &
               DataWriters
DDS Design Steps
• Designing DDS-based system can be decomposed in the
  following few simple steps:
   – Step#1: Define Information Model
   – Step #2: Associate QoS representing key non-
      functional invariants for your system with the
      Information Model
   – Step #3: Define Topics / Partition / Domain Mapping
   – Step #4: Identify Topic Readers/Writers
   – Step #5: Define QoS requirements for Readers/Writers
   – Step #6: Bind the model to a specific PSM
Application Targets
• ddsAppTarget
  – Binds one or more
    DomainParticipants to
    a PSM configuration
Application Targets
• ddsAppTarget
  – Binds one or more
    DomainParticipants to
    a PSM configuration




              ‘usage’ Dependency binds the
             DomainParticipant to the Target
Application Targets
• ddsAppTarget
  – Binds one or more
    DomainParticipants to
    a PSM configuration

     Tagged values specify
    the desired PSM output
Code (PSM) Generation




  Tool Specific: Enterprise
Architect prompts the user to
  designate the application
  targets to a specific DDS
       output platform
Code (PSM) Generation
Code (PSM) Generation
Worked Example

     DLRL
Object/Relational
                         Mapping
– Automatically bridges
  the Object/Relational
  Impedance Mismatch
– Arbitrary object
  reconstructions
– Automatic
  Relationships
  Management
– Inheritance
– Local Operations
– Local/Distributed
  State
DLRL: How does it Work?




Concepts
The mechanism at the foundation is a managed Object Cache:
‣ An Object Cache can be populated by different types (classes) of Objects.
‣ Each object class has its own manager called an ObjectHome.
  ‣ They can inform the application about object creation/modification/deletion.
‣ Classes may contain navigable relationships to other classes.
‣ Each Object class may inherit from 1 other Object class.
DLRL: How does it Work?



                        DR      DR       DR


                                     OpenSplice DDS Information backbone




Processing Updates
‣ ‘vanilla DDS’: updates arrive as separate samples at separate times.
‣ DDS Object Technology: updates are processed in ‘update rounds’:
  ‣ ObjectHomes read all available samples from the DDS information backbone and update their corresponding objects in
     the Cache accordingly.
  ‣  Objects are allocated once and their state is ‘overwritten’ on subsequent updates.
  ‣  Therefore an Object always contains the latest available state.
  ‣  Push mode: update rounds start when new data arrives. The application gets notified by Listeners.
  ‣ Pull mode: the application can determine the start of each update round manually.
Notification Patterns
                                                         on_object_modified()

                                                               on_object_created()
                                                             attach_listener
                                                                        on_begin_
                                                                        updates()
                                                                               attach_listener
                                                                                  on_end_
                                                                                 updates()


  DR       DR        DR
                                                                                                         Application
                                                     get_modified_objects()
                                         OpenSplice DDS Information backbone


Notifying the application
The Object Caches offer two ways to notify an application of incoming information:
‣ Listeners can be triggered for each modification of an object’s state.
  ‣ Listeners registered to the Cache indicate the start and end of each update round.
  ‣ Listeners registered to the ObjectHome pass each modification back as a callback argument.
  ‣ With a simple mechanism that can be translated into callbacks for Listeners on individual objects.
‣ It is possible to get a separate list of all objects that have been created/modified/deleted in the
   current update round.
CacheAccess: Examining Objects in Isolation




         DR         DR         DR


                                                                      DCPS


Using snapshots
Some applications want to be able to store temporal ‘snapshots’:
‣       A CacheAccess can be used to contain a temporal graph of objects.
    ‣    The graph is identified by a so-called ‘cloning contract’.

‣       Objects must physically be cloned from Cache to CacheAccess.
‣       A CacheAccesses is not automatically kept in sync with the main Cache.
‣       A ‘refresh’ operation can be used to resync the contents of CacheAccess with the contents of the
        main Cache.
CacheAccess: Modifying and Creating Objects




DR       DR     DR                                                                    DW       DW   DW


                                                 DCPS


     Using snapshots
     Some applications want to be able to modify or create certain objects:
     ‣   An initial set of Objects may be cloned into a writeable CacheAccess.
     ‣   Available objects may then be modified locally.
     ‣   New objects can be created in the CacheAccess as well.
     ‣   The ‘write’ operation instructs the ObjectHomes to write any modifications into the
         system.
Using Selections to Manage Subsets

                                                   S            on_object_in()




                                                                                           Application

DR     DR        DR


                                                         DCPS


     Creating and managing Selections
     A Selection mechanism can keep track of subsets of information:
     ‣ Selections are created and managed by the ObjectHomes.
     ‣ A Criterion plugged into a Selection determines the boundaries of a subset:
       ‣ A QueryCriterion determines boundaries based on an SQL statement.
       ‣ A FilterCriterion determines boundaries based on user-defined callback filters.
     ‣ Selections can notify the application when objects enter and leave it.
DLRL – Class & Type
                   Mapping
• dlrlClass
  – DLRL Class
    representing a
    subscribed DCPS
    Topic Type
DLRL – Class & Type
                   Mapping
• dlrlClass
  – DLRL Class
    representing a
    subscribed DCPS
    Topic Type
DLRL – Class & Type
                 Mapping
• dlrlAttribute
   – DLRL Attribute
     representing mapped
     DCPS Type fields
DLRL – Class & Type
                  Mapping
• relation
   – Association used to
     aggregate multiple
     classes using DLRL
     foreign keys
DLRL – Local
                 Reconstruction
• Cache
  – Describes a DLRL cache entity used to provide dlrl
    class access to the user
DLRL – Local
                 Reconstruction
• Cache
  – Describes a DLRL cache entity used to provide dlrl
    class access to the user

                                 DCPS ChatRoom
                                DomainParticipant

                                  DLRL Classes
DLRL – Local
                Reconstruction
• objectHome, topicManager
  – Binds the cache to DataReaders to access the
    specific DCPS Topic, Types
Application Targets
• ddsAppTarget
  – Binds one or more
    DomainParticipants to
    a PSM configuration
  – Binds at most one
    DLRL cache to the
    PSM configuration
Conclusion & Wrap Up
Other Applications
• Not just a DDS architecture description
• Not just a PIM
Other Applications
• XMI Serialization  Direct Deployment
  – XMI Document describes the DDS application
    configuration with Participants, Topics, QoS, etc
  – Configuration loaded by runtime to configure nodes
  – No source code
Other Applications
• Visual Deployment Interface
   – DDS discovery to create a DDS model which visualizes a
     running deployment
   – Field Engineers interact with the DDS model to make changes to
     the deployment
   – Maintenance, re-engineering, documentation applications
Concluding Remarks
• UML Profile for DDS exemplifies the co-
  operation of multiple OMG standards to:
  – Overcome the real-world challenges of design
    complexity management
  – Provide turnkey rapid-development solutions for DDS
    applications
• Culmination of OMG’s
  –   Real-time distributed data middleware technology
  –   UML extensibility (domain-specific languages)
  –   Model-Driven Development / Architecture
  –   XML Metadata Interchange specifications
Concluding Remarks
• Next Steps
  – Complete the FTF submission
  – Unleash to the world – promote industry adoption,
    drive market demand

• For More information
  – Contact us
     • sam.mancarella@sparxsystems.com
     • angelo.corsaro@prismtech.com
  – Visit the Sparx exhibit for more information & demo
Thank you for your
    attention!

More Related Content

PDF
The Data Distribution Service Tutorial
PDF
The Data Distribution Service
PDF
The DDS Tutorial Part II
PPTX
DDS Over Low Bandwidth Data Links
PDF
DDS QoS Unleashed
PPTX
Introduction to RTI DDS
PDF
Micro XRCE-DDS: Bringing DDS into microcontrollers
PPT
RTI Data-Distribution Service (DDS) Master Class 2011
The Data Distribution Service Tutorial
The Data Distribution Service
The DDS Tutorial Part II
DDS Over Low Bandwidth Data Links
DDS QoS Unleashed
Introduction to RTI DDS
Micro XRCE-DDS: Bringing DDS into microcontrollers
RTI Data-Distribution Service (DDS) Master Class 2011

What's hot (20)

PPTX
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
PPTX
androidstudio.pptx
PPTX
Introduction to ThousandEyes
PPTX
Android studio installation
PDF
Android SDK Tutorial | Edureka
PPTX
LPWAN Cost Webinar
PDF
Elastic Observability
PPTX
Introduction to Android and Android Studio
PPTX
Google cloud
PDF
The Art and Science of DDS Data Modelling
PPTX
The Basics of MongoDB
PDF
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
 
PDF
DDS Best Practices
ODP
Introduction to MongoDB
PPTX
Introduction to DDS
PDF
Machine learning with firebase ml kit
PPTX
STATE-MANAGEMENT-IN-FLUTTER-TECHNOLOGY.pptx
PDF
NFS(Network File System)
PPT
Active Directory
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
androidstudio.pptx
Introduction to ThousandEyes
Android studio installation
Android SDK Tutorial | Edureka
LPWAN Cost Webinar
Elastic Observability
Introduction to Android and Android Studio
Google cloud
The Art and Science of DDS Data Modelling
The Basics of MongoDB
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
 
DDS Best Practices
Introduction to MongoDB
Introduction to DDS
Machine learning with firebase ml kit
STATE-MANAGEMENT-IN-FLUTTER-TECHNOLOGY.pptx
NFS(Network File System)
Active Directory
Ad

Viewers also liked (20)

PPTX
Two Approaches You Must Consider when Architecting Radar Systems
PDF
Communication Patterns Using Data-Centric Publish/Subscribe
PDF
Activist Angels - Leadership Development Programme
PPT
7fevrier2009
PDF
Ogunte intro feb2013
PDF
Distributed Events, State and Commands
PDF
Investorguide Eng
PPSX
Animation in Diamond Resorts
PDF
ikp213-06-template-c++
PDF
Social Media Uprising (Preview)
PPT
Sph 106 Ch 15
PPT
Cyberpolitics 2009 W11
PPT
learning: yankin' out an engine
PPT
Sph 107 Ch 8
PPT
Stem And Leaf
PPS
Conflict Resolution (Part I)
PPT
Goodxi
PDF
Michitson inuguration speech for haverhill city council president 010614
PDF
Haverhill, MA needs a fiber network
PDF
OpenSplice DDS v5.1
Two Approaches You Must Consider when Architecting Radar Systems
Communication Patterns Using Data-Centric Publish/Subscribe
Activist Angels - Leadership Development Programme
7fevrier2009
Ogunte intro feb2013
Distributed Events, State and Commands
Investorguide Eng
Animation in Diamond Resorts
ikp213-06-template-c++
Social Media Uprising (Preview)
Sph 106 Ch 15
Cyberpolitics 2009 W11
learning: yankin' out an engine
Sph 107 Ch 8
Stem And Leaf
Conflict Resolution (Part I)
Goodxi
Michitson inuguration speech for haverhill city council president 010614
Haverhill, MA needs a fiber network
OpenSplice DDS v5.1
Ad

Similar to UML Profile for DDS (20)

PDF
The DDS Tutorial - Part I
PDF
10 Reasons for Choosing OpenSplice DDS
PDF
Standardizing the Data Distribution Service (DDS) API for Modern C++
PDF
A Gentle Introduction to OpenSplice DDS
PDF
OMG DDS: The Data Distribution Service for Real-Time Systems
PPTX
Don't Architect a Real-Time System that Can't Scale
PDF
Stream Processing with DDS and CEP
PDF
Getting Started with OpenSplice DDS Community Ed.
PDF
Transition from relational to NoSQL Philly DAMA Day
PDF
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
PDF
Introduction to NoSQL and Couchbase
PDF
OpenSplice DDS: The Open Source Middleware Accelerating Wall Street
PDF
The Data Distribution Service: The Communication Middleware Fabric for Scala...
PDF
Dds the ideal_bus_for_event_processing_engines
PDF
OMG DDS Tutorial - Part I
PDF
The Open Source Messaging Powering Wall Street
PDF
Communication Patterns Using Data-Centric Publish/Subscribe
PDF
DDS Interoperability Demo 2013 (Washington DC)
PDF
DDS vs AMQP
PDF
Go simple-fast-elastic-with-couchbase-server-borkar
The DDS Tutorial - Part I
10 Reasons for Choosing OpenSplice DDS
Standardizing the Data Distribution Service (DDS) API for Modern C++
A Gentle Introduction to OpenSplice DDS
OMG DDS: The Data Distribution Service for Real-Time Systems
Don't Architect a Real-Time System that Can't Scale
Stream Processing with DDS and CEP
Getting Started with OpenSplice DDS Community Ed.
Transition from relational to NoSQL Philly DAMA Day
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
Introduction to NoSQL and Couchbase
OpenSplice DDS: The Open Source Middleware Accelerating Wall Street
The Data Distribution Service: The Communication Middleware Fabric for Scala...
Dds the ideal_bus_for_event_processing_engines
OMG DDS Tutorial - Part I
The Open Source Messaging Powering Wall Street
Communication Patterns Using Data-Centric Publish/Subscribe
DDS Interoperability Demo 2013 (Washington DC)
DDS vs AMQP
Go simple-fast-elastic-with-couchbase-server-borkar

More from Angelo Corsaro (20)

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

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Big Data Technologies - Introduction.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Monthly Chronicles - July 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
Teaching material agriculture food technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Big Data Technologies - Introduction.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Monthly Chronicles - July 2025
The AUB Centre for AI in Media Proposal.docx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
MYSQL Presentation for SQL database connectivity
Mobile App Security Testing_ A Comprehensive Guide.pdf
Teaching material agriculture food technology
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Weekly Chronicles - August'25 Week I
“AI and Expert System Decision Support & Business Intelligence Systems”

UML Profile for DDS

  • 1. UML Profile for DDS a tutorial for OMG Specification in Government Workshop (Real-Time & Embedded Systems) July 13, 2009 Prepared by: Sam Mancarella (Sparx Systems) Presented by: Angelo Corsaro (PrismTech)
  • 2. Agenda • Part 1 - Introduction – DDS Overview – Motivating the UML4DDS • Part 2 – UML4DDS by Examples – DCPS – DLRL – Application Targets – MDA, PIM  PSM • Part 3 - Conclusion – Other Applications – Concluding Remarks – Discussion
  • 3. The OMG Data Distribution Service (DDS) • DDS v1.2 API Standard – Language Independent, OS and HW Application architecture independent Object/Relational Mapping – DCPS. Standard API for Data-Centric, Data Local Reconstruction Layer (DLRL) Topic-Based, Real-Time Publish/ Subscribe Ownership Durability Content Subscription – DLRL. Standard API for creating Object Minimum Profile Views out of collection of Topics Data Centric Publish/Subscribe (DCPS) • DDSI/RTPS v2.1 Wire Protocol Real-Time Publish/Subscribe Protocol Standard DDS Interoperability Wire Protocol – Standard wire protocol allowing UDP/IP interoperability between different implementations of the DDS standard
  • 4. High Performance Pub/Sub The right data, at the right place, at – Fully distributed, the right time Peer-to-Peer -- All the Time. Communication – No Single Point of Subscriber Publisher Failure – No Single Point of Publisher Broke Subscriber Bottleneck – Multicast-enabled Publisher Subscriber – High performance and highly scalable – High availability
  • 5. Data-Centric Pub/Sub ‣ Data-Centric Features are built-in and don’t rely on an external DBMS ‣ Providing thus performance, scalability, and availability – Distributed Relational Data Model DBMS Subscriber – Local Queries Publisher – Continuous Queries / B m Content Based A F Subscriber Subscriptions Publisher J D C – Windows K E – Object/Relational Mapping Publisher – Support for a subset of Subscriber SQL-92 Perfect Blend of Data-Centric and Real-Time Publish/Subscribe Technologies
  • 6. Topics and Data-Centric Pub/Sub Topic – Topics. Unit of information exchanged between Publisher and Subscribers. – Data Types. Type associated to a struct TempSensor { long tID; Topic must be a structured type float temp; expressed in IDL Topic Type float humidity; }; #pragma keylist TempSensor tID – Topic Instances. Key values in a datatype uniquely identify a Topic tID temp humidity Instance (like rows in table) 1 21 62 2 27 78 – Content Awareness. SQL 3 25.5 72.3 Expressions can be used to do content-aware subscriptions, SELECT * FROM TempSensor t WHERE t.temp > 25 queries, joins, and correlate topic instances tID temp humidity 2 27 78 3 25.5 72.3
  • 7. Distributed Relational Information Modeling – Topic Keys can be used to identify instances as well as relationships – Relationships can be navigated by relying on a subset of SQL 92 – One-to-many relationships can be captured using foreign keys – Many-to-many relationships need to be modeled using a topics – Keys can be represented by an arbitrary number of Topic fields
  • 8. Object/Relational Mapping – Automatically bridges the Object/Relational Impedance Mismatch – Arbitrary object reconstructions – Automatic Relationships Management – Inheritance – Local Operations – Local/Distributed State
  • 9. Sample QoS Policies QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N Data Type Matching DURABILITY T, DW N N Availability QoS matching SERVICE QoS QoS QoS QoS QoS QoS QoS Topic LIFESPAN T, DW - Y Publisher Name Subscriber ... DataWriter writes Type reads DataReader ... HISTORY T, DR, DW N N ... DomainParticipant DataWriter writes Type reads DataReader DomainParticipant PRESENTATION P, S Y N Data Name Topic RELIABILITY T, DR, DW Y N Delivery QoS QoS QoS PARTITION P, S N Y DESTINATION T, DR, DW Y N ORDER – Rich set of QoS allow OWNERSHIP T, DR, DW Y N to configure several OWNERSHIP DW - Y STRENGTH different aspects of DEADLINE T, DR, DW Y Y Data data availability, Timeliness LATENCY BUDGET T, DR, DW Y Y delivery and TRANSPORT T, DW - Y timeliness PRIORITY TIME BASED DR - Y Resources – QoS can be used to FILTER control and optimize RESOURCE T, DR, DW N N LIMITS network as well as USER_DATA DP, DR, DW N Y Configuratio computing resource TOPIC_DATA T N Y n GROUP_DATA P, S N Y
  • 10. Overcoming the Challenges of DDS Design • DDS is a PIM – Provides a platform independent model of entities, roles and QoS Policies – PIM is mapped to specific implementations, or platform specific models (PSM) • Variety of software languages • Variety of runtime platforms • Variety of vendors Radar B m Sensor 1 A F Aircraft X J D Sensor n K E PDA Workstation Workstation
  • 11. Overcoming the Challenges of DDS Design • Manage Complexity – Complex information models with QoS data • Heterogeneous Design – Different implementations, same information model • Reuse – Repository, Patterns • Change Management – One change in model  00’s changes in code
  • 12. UML 4 DDS • A UML Profile designed for the analysis and design of object-oriented systems using Data Distribution Service technology. • Provides DDS designers, architects and practitioners with a standard, domain-specific modeling language to design DDS-based distributed information systems in a manner not specific to the underlying implementation of that design.
  • 13. UML 4 DDS • Beta Specification: mars/2008-06-18 • Joint Submission by: – PrismTech – Real Time Innovations Inc – Sparx Systems • Request For Proposal: mars/2006-09-40
  • 14. Model - Driven Architecture • Domain-Specific Modeling – Taxonomy of constructs, relationships, constraints – Notation, presentation, diagrams – MOF or UML mappings (UML Profiles) • PIM  PSM Transformation – Platform Independent Model transformed to Platform specific model automatically – One domain-specific model to another
  • 15. Timeline – RFP Issued September, 2006 – First LOI November, 2006 – First Initial Submission March, 2007 – First Revised Submission September, 2007 – Second LOI October, 2007 – Second Initial Sub December, 2007 – Second Revised Sub February, 2008 – BoD Adoption June, 2008 – FTF Charter June, 2008 – FTF Report Due August 2009
  • 16. Vendor Support • Sparx Systems – MDG Technology for DDS – Language Addin for Enterprise Architect – DDS-specific Toolboxes, Constructs, Diagrams – Automatically generates PSM code for OpenSplice & RTI DDS • Other DDS platform targets coming soon!
  • 17. Language Architecture • Part 1 - UML Profile • Defines a collection of constructs that represent: – Data Centric Publish Subscribe Entites (+ QoS) – Data Local Reconstruction Layer • Introduced a collection of common constructs to define: – PSM Application Targets – Topic Data Types (IDL)
  • 18. Language Architecture • Part 2 – Metamodel • Defines meta-level artifacts for XMI serialization
  • 19. Worked Example - NetChat Stage 1 – DCPS-only Application Stage 2 – DLRL-Enabled
  • 21. DDS Design Steps • Designing DDS-based system can be decomposed in the following few simple steps: – Step#1: Define Information Model – Step #2: Associate QoS representing key non- functional invariants for your system with the Information Model – Step #3: Define Topics / Partition / Domain Mapping – Step #4: Identify Topic Readers/Writers – Step #5: Define QoS requirements for Readers/Writers – Step #6: Bind the model to a specific PSM
  • 22. NetChat Overview • Hypothetical, peer-to-peer network chat application • Two Components: – “ChatRoom” DDS Dataspace containing conversation threads amongst users – “Directory Server” Application to maintain a collection of active NetChat users • Real-world application of DDS DCPS and DLRL in distributed application designs
  • 23. DDS Design Steps • Designing DDS-based system can be decomposed in the following few simple steps: – Step#1: Define Information Model – Step #2: Associate QoS representing key non- functional invariants for your system with the Information Model – Step #3: Define Topics / Partition / Domain Mapping – Step #4: Identify Topic Readers/Writers – Step #5: Define QoS requirements for Readers/Writers – Step #6: Bind the model to a specific PSM
  • 24. DCPS Topics & Data Types • Data Types – Describes the data payloads for DCPS topics – IDL-based library – structs, unions, arrays
  • 25. DCPS Topics & Data Types • Data Types – Describes the data payloads for DCPS topics – IDL-based library – structs, unions, arrays Attributes can be nominated as DCPS Key fields
  • 26. DCPS Topics & Data Types • DDS Topics – Describes the DCPS characteristics of the published/ subscribe data type, constrained to QoS Policy
  • 27. DCPS Topics & Data Types • DDS Topics – Describes the DCPS characteristics of the published/ subscribe data type, constrained to QoS Policy
  • 28. DCPS Topics & Data Types • DDS Topics – Describes the DCPS characteristics of the published/ subscribe data type, constrained to QoS Policy ContentFilteredTopic, MultiTopic denoted by kind, expression tags
  • 29. DDS Design Steps • Designing DDS-based system can be decomposed in the following few simple steps: – Step#1: Define Information Model – Step #2: Associate QoS representing key non- functional invariants for your system with the Information Model – Step #3: Define Topics / Partition / Domain Mapping – Step #4: Identify Topic Readers/Writers – Step #5: Define QoS requirements for Readers/Writers – Step #6: Bind the model to a specific PSM
  • 30. DCPS – QoS Policy Library • qosPolicyLibrary Package – Top-Level Classifiers defining ‘default’ QoS Policies – Define sets of qosPolicyLibraries for domain-specific applications – Template of reusable QoS assets for multiple projects
  • 31. DCPS – QoS Policy Library
  • 32. DCPS – QoS Policy Library Defines QoS policy data as tagged values
  • 33. DDS Design Steps • Designing DDS-based system can be decomposed in the following few simple steps: – Step#1: Define Information Model – Step #2: Associate QoS representing key non- functional invariants for your system with the Information Model – Step #3: Define Topics / Partition / Domain Mapping – Step #4: Identify Topic Readers/Writers – Step #5: Define QoS requirements for Readers/Writers – Step #6: Bind the model to a specific PSM
  • 34. DCPS Domain & Entities • Domain Entity – Logical ‘grouping’ of DCPS Topics, & DomainParticipants
  • 35. DCPS Domain & Entities • DomainParticipant Entity – DDS Publish/Subscribe entity
  • 36. DCPS Domain & Entities • DomainParticipant Entity – Participate in domain nominated by tagged value
  • 37. DCPS Domain & Entities • DomainParticipant Entity – Qos applied as properties, typed by the QoS Policy types in the qosPolicyLibrary
  • 38. DDS Design Steps • Designing DDS-based system can be decomposed in the following few simple steps: – Step#1: Define Information Model – Step #2: Associate QoS representing key non- functional invariants for your system with the Information Model – Step #3: Define Topics / Partition / Domain Mapping – Step #4: Identify Topic Readers/Writers – Step #5: Define QoS requirements for Readers/Writers – Step #6: Bind the model to a specific PSM
  • 39. DCPS Domain & Entities • Added Publisher, Subscriber Entities
  • 40. DCPS Domain & Entities • Added DataReaders, DataWriters Entities
  • 41. DCPS Domain & Entities DDS Topics connected to DataReaders & DataWriters
  • 42. DDS Design Steps • Designing DDS-based system can be decomposed in the following few simple steps: – Step#1: Define Information Model – Step #2: Associate QoS representing key non- functional invariants for your system with the Information Model – Step #3: Define Topics / Partition / Domain Mapping – Step #4: Identify Topic Readers/Writers – Step #5: Define QoS requirements for Readers/Writers – Step #6: Bind the model to a specific PSM
  • 43. Application Targets • ddsAppTarget – Binds one or more DomainParticipants to a PSM configuration
  • 44. Application Targets • ddsAppTarget – Binds one or more DomainParticipants to a PSM configuration ‘usage’ Dependency binds the DomainParticipant to the Target
  • 45. Application Targets • ddsAppTarget – Binds one or more DomainParticipants to a PSM configuration Tagged values specify the desired PSM output
  • 46. Code (PSM) Generation Tool Specific: Enterprise Architect prompts the user to designate the application targets to a specific DDS output platform
  • 50. Object/Relational Mapping – Automatically bridges the Object/Relational Impedance Mismatch – Arbitrary object reconstructions – Automatic Relationships Management – Inheritance – Local Operations – Local/Distributed State
  • 51. DLRL: How does it Work? Concepts The mechanism at the foundation is a managed Object Cache: ‣ An Object Cache can be populated by different types (classes) of Objects. ‣ Each object class has its own manager called an ObjectHome. ‣ They can inform the application about object creation/modification/deletion. ‣ Classes may contain navigable relationships to other classes. ‣ Each Object class may inherit from 1 other Object class.
  • 52. DLRL: How does it Work? DR DR DR OpenSplice DDS Information backbone Processing Updates ‣ ‘vanilla DDS’: updates arrive as separate samples at separate times. ‣ DDS Object Technology: updates are processed in ‘update rounds’: ‣ ObjectHomes read all available samples from the DDS information backbone and update their corresponding objects in the Cache accordingly. ‣ Objects are allocated once and their state is ‘overwritten’ on subsequent updates. ‣ Therefore an Object always contains the latest available state. ‣ Push mode: update rounds start when new data arrives. The application gets notified by Listeners. ‣ Pull mode: the application can determine the start of each update round manually.
  • 53. Notification Patterns on_object_modified() on_object_created() attach_listener on_begin_ updates() attach_listener on_end_ updates() DR DR DR Application get_modified_objects() OpenSplice DDS Information backbone Notifying the application The Object Caches offer two ways to notify an application of incoming information: ‣ Listeners can be triggered for each modification of an object’s state. ‣ Listeners registered to the Cache indicate the start and end of each update round. ‣ Listeners registered to the ObjectHome pass each modification back as a callback argument. ‣ With a simple mechanism that can be translated into callbacks for Listeners on individual objects. ‣ It is possible to get a separate list of all objects that have been created/modified/deleted in the current update round.
  • 54. CacheAccess: Examining Objects in Isolation DR DR DR DCPS Using snapshots Some applications want to be able to store temporal ‘snapshots’: ‣ A CacheAccess can be used to contain a temporal graph of objects. ‣ The graph is identified by a so-called ‘cloning contract’. ‣ Objects must physically be cloned from Cache to CacheAccess. ‣ A CacheAccesses is not automatically kept in sync with the main Cache. ‣ A ‘refresh’ operation can be used to resync the contents of CacheAccess with the contents of the main Cache.
  • 55. CacheAccess: Modifying and Creating Objects DR DR DR DW DW DW DCPS Using snapshots Some applications want to be able to modify or create certain objects: ‣ An initial set of Objects may be cloned into a writeable CacheAccess. ‣ Available objects may then be modified locally. ‣ New objects can be created in the CacheAccess as well. ‣ The ‘write’ operation instructs the ObjectHomes to write any modifications into the system.
  • 56. Using Selections to Manage Subsets S on_object_in() Application DR DR DR DCPS Creating and managing Selections A Selection mechanism can keep track of subsets of information: ‣ Selections are created and managed by the ObjectHomes. ‣ A Criterion plugged into a Selection determines the boundaries of a subset: ‣ A QueryCriterion determines boundaries based on an SQL statement. ‣ A FilterCriterion determines boundaries based on user-defined callback filters. ‣ Selections can notify the application when objects enter and leave it.
  • 57. DLRL – Class & Type Mapping • dlrlClass – DLRL Class representing a subscribed DCPS Topic Type
  • 58. DLRL – Class & Type Mapping • dlrlClass – DLRL Class representing a subscribed DCPS Topic Type
  • 59. DLRL – Class & Type Mapping • dlrlAttribute – DLRL Attribute representing mapped DCPS Type fields
  • 60. DLRL – Class & Type Mapping • relation – Association used to aggregate multiple classes using DLRL foreign keys
  • 61. DLRL – Local Reconstruction • Cache – Describes a DLRL cache entity used to provide dlrl class access to the user
  • 62. DLRL – Local Reconstruction • Cache – Describes a DLRL cache entity used to provide dlrl class access to the user DCPS ChatRoom DomainParticipant DLRL Classes
  • 63. DLRL – Local Reconstruction • objectHome, topicManager – Binds the cache to DataReaders to access the specific DCPS Topic, Types
  • 64. Application Targets • ddsAppTarget – Binds one or more DomainParticipants to a PSM configuration – Binds at most one DLRL cache to the PSM configuration
  • 66. Other Applications • Not just a DDS architecture description • Not just a PIM
  • 67. Other Applications • XMI Serialization  Direct Deployment – XMI Document describes the DDS application configuration with Participants, Topics, QoS, etc – Configuration loaded by runtime to configure nodes – No source code
  • 68. Other Applications • Visual Deployment Interface – DDS discovery to create a DDS model which visualizes a running deployment – Field Engineers interact with the DDS model to make changes to the deployment – Maintenance, re-engineering, documentation applications
  • 69. Concluding Remarks • UML Profile for DDS exemplifies the co- operation of multiple OMG standards to: – Overcome the real-world challenges of design complexity management – Provide turnkey rapid-development solutions for DDS applications • Culmination of OMG’s – Real-time distributed data middleware technology – UML extensibility (domain-specific languages) – Model-Driven Development / Architecture – XML Metadata Interchange specifications
  • 70. Concluding Remarks • Next Steps – Complete the FTF submission – Unleash to the world – promote industry adoption, drive market demand • For More information – Contact us • sam.mancarella@sparxsystems.com • angelo.corsaro@prismtech.com – Visit the Sparx exhibit for more information & demo
  • 71. Thank you for your attention!