UML Profile for DDS - Object Management Group
Transcript of UML Profile for DDS - Object Management Group
![Page 1: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/1.jpg)
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)
![Page 2: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/2.jpg)
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
![Page 3: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/3.jpg)
The OMG Data Distribution Service (DDS)
• DDS v1.2 API Standard
– Language Independent, OS and HW architecture independent
– DCPS. Standard API for Data-Centric, Topic-Based, Real-Time Publish/Subscribe
– DLRL. Standard API for creating Object Views out of collection of Topics
• DDSI/RTPS v2.1 Wire Protocol Standard
– Standard wire protocol allowing interoperability between different implementations of the DDS standard
ctct
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Data Local Reconstruction Layer (DLRL)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
![Page 4: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/4.jpg)
High Performance Pub/Sub
– Fully distributed, Peer-to-Peer Communication
– No Single Point of Failure
– No Single Point of Bottleneck
– Multicast-enabled
– High performance and highly scalable
– High availability
The right data, at the right place, at
the right time
-- All the Time.
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Broke
![Page 5: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/5.jpg)
Data-Centric Pub/Sub
– Distributed Relational Data Model
– Local Queries
– Continuous Queries / Content Based Subscriptions
– Windows
– Object/Relational Mapping
– Support for a subset of SQL-92
Perfect Blend of Data-Centric and Real-Time
Publish/Subscribe Technologies
! Data-Centric Features are built-in and
don’t rely on an external DBMS
! Providing thus performance, scalability,
and availability
A
B
CD
E
F
m
J
K
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
DBMS
![Page 6: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/6.jpg)
Topics and Data-Centric Pub/Sub
– Topics. Unit of information exchanged between Publisher and Subscribers.
– Data Types. Type associated to a Topic must be a structured type expressed in IDL
– Topic Instances. Key values in a datatype uniquely identify a Topic Instance (like rows in table)
– Content Awareness. SQL Expressions can be used to do content-aware subscriptions, queries, joins, and correlate topic instances
struct TempSensor {
long tID;
float temp;
float humidity;
};
#pragma keylist TempSensor tID
Topic Type
Topic
tID temp humidity
1
2
3
21 62
27 78
25.5 72.3
tID temp humidity
2
3
27 78
25.5 72.3
SELECT * FROM TempSensor t WHERE t.temp > 25
![Page 7: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/7.jpg)
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
![Page 8: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/8.jpg)
Object/Relational Mapping
– Automatically bridges the Object/Relational Impedance Mismatch
– Arbitrary object reconstructions
– Automatic Relationships Management
– Inheritance
– Local Operations
– Local/Distributed State
![Page 9: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/9.jpg)
Sample QoS Policies
– Rich set of QoS allow
to configure several
different aspects of
data availability,
delivery and
timeliness
– QoS can be used to
control and optimize
network as well as
computing resource
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
......
QoS QoS
Type Matching
DomainParticipant DomainParticipant
QoS QoS
QoS Policy Applicability RxO Modifiable
DURABILITY
DURABILITY
SERVICE
LIFESPAN
HISTORY
PRESENTATION
RELIABILITY
PARTITION
DESTINATION
ORDER
OWNERSHIP
OWNERSHIP
STRENGTH
DEADLINE
LATENCY
BUDGET
TRANSPORT
PRIORITY
TIME BASED
FILTER
RESOURCE
LIMITS
USER_DATA
TOPIC_DATA
GROUP_DATA
T, DR, DW Y N Data
T, DW N N Availability
T, DW - Y
T, DR, DW N N
P, S Y N Data
T, DR, DW Y N Delivery
P, S N Y
T, DR, DW Y N
T, DR, DW Y N
DW - Y
T, DR, DW Y Y Data
T, DR, DW Y Y Timeliness
T, DW - Y
DR - Y Resources
T, DR, DW N N
DP, DR, DW N Y Configuratio
T N Y n
P, S N Y
![Page 10: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/10.jpg)
A
B
D
E
F
m
J
K
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 vendorsRadar
Sensor 1
Sensor n
PDA
Aircraft
n
WorkstationWoWoWoWoWoWoWoWoWorkWork
WorkstationWo
X
![Page 11: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/11.jpg)
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
![Page 12: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/12.jpg)
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.
![Page 13: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/13.jpg)
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
![Page 14: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/14.jpg)
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
![Page 15: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/15.jpg)
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
![Page 16: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/16.jpg)
Vendor Support
• Sparx Systems – MDG Technology for DDS– Language Addin for Enterprise Architect
– DDS-specific Toolboxes, Constructs, Diagrams
– Automatically generates PSM code forOpenSplice & RTI DDS
• Other DDS platform targets coming soon!
![Page 17: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/17.jpg)
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)
![Page 18: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/18.jpg)
Language Architecture
• Part 2 – Metamodel
• Defines meta-level artifacts for XMI serialization
![Page 19: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/19.jpg)
Worked Example - NetChat
Stage 1 – DCPS-only Application
Stage 2 – DLRL-Enabled
![Page 20: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/20.jpg)
Designing DDS Systems
![Page 21: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/21.jpg)
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
![Page 22: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/22.jpg)
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
![Page 23: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/23.jpg)
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
![Page 24: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/24.jpg)
DCPS Topics & Data Types
• Data Types
– Describes the data payloads for DCPS topics
– IDL-based library
– structs, unions, arrays
![Page 25: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/25.jpg)
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
![Page 26: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/26.jpg)
DCPS Topics & Data Types
• DDS Topics
– Describes the DCPS characteristics of the published/subscribe data type,constrained to QoS Policy
![Page 27: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/27.jpg)
DCPS Topics & Data Types
• DDS Topics
– Describes the DCPS characteristics of the published/subscribe data type,constrained to QoS Policy
![Page 28: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/28.jpg)
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
![Page 29: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/29.jpg)
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
![Page 30: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/30.jpg)
DCPS – QoS Policy Library
• qosPolicyLibraryPackage
– Top-Level Classifiers defining ‘default’ QoS Policies
– Define sets of qosPolicyLibraries for domain-specific applications
– Template of reusable QoS assets for multiple projects
![Page 31: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/31.jpg)
DCPS – QoS Policy Library
![Page 32: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/32.jpg)
DCPS – QoS Policy Library
Defines QoS policy dataas tagged values
![Page 33: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/33.jpg)
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
![Page 34: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/34.jpg)
DCPS Domain & Entities
• Domain Entity
– Logical ‘grouping’ of DCPS Topics, & DomainParticipants
![Page 35: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/35.jpg)
DCPS Domain & Entities
• DomainParticipant Entity
– DDS Publish/Subscribe entity
![Page 36: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/36.jpg)
DCPS Domain & Entities
• DomainParticipant Entity
– Participate in domain nominated by tagged value
![Page 37: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/37.jpg)
DCPS Domain & Entities
• DomainParticipant Entity
– Qos applied as properties, typed by the QoS Policy types in the qosPolicyLibrary
![Page 38: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/38.jpg)
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
![Page 39: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/39.jpg)
DCPS Domain & Entities
• Added Publisher, Subscriber Entities
![Page 40: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/40.jpg)
DCPS Domain & Entities
• Added DataReaders, DataWriters Entities
![Page 41: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/41.jpg)
DCPS Domain & Entities
DDS Topics connected to DataReaders &
DataWriters
![Page 42: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/42.jpg)
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
![Page 43: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/43.jpg)
Application Targets
• ddsAppTarget
– Binds one or more DomainParticipants to a PSM configuration
![Page 44: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/44.jpg)
Application Targets
• ddsAppTarget
– Binds one or more DomainParticipants to a PSM configuration
‘usage’ Dependency binds the DomainParticipant to the Target
![Page 45: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/45.jpg)
Application Targets
• ddsAppTarget
– Binds one or more DomainParticipants to a PSM configuration
Tagged values specify the desired PSM output
![Page 46: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/46.jpg)
Code (PSM) Generation
Tool Specific: Enterprise Architect prompts the user to
designate the application targets to a specific DDS
output platform
![Page 47: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/47.jpg)
Code (PSM) Generation
![Page 48: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/48.jpg)
Code (PSM) Generation
![Page 49: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/49.jpg)
Worked Example
DLRL
![Page 50: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/50.jpg)
Object/Relational Mapping
– Automatically bridges the Object/Relational Impedance Mismatch
– Arbitrary object reconstructions
– Automatic Relationships Management
– Inheritance
– Local Operations
– Local/Distributed State
![Page 51: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/51.jpg)
DLRL: How does it Work?
ConceptsThe 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.
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.
![Page 52: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/52.jpg)
DLRL: How does it Work?
OpenSplice DDS Information backbone
DR DR DR
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.
PPPProcessing 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 inthe 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.Pull mode: the application can
![Page 53: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/53.jpg)
Notification Patterns
OpenSplice DDS Information backbone
DR DR DRApplication
on_object_modified()
on_begin_
updates()
on_end_
updates()
on_object_created()
get_modified_objects()
attach_listener
attach_listener
Notifying the applicationThe 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.
![Page 54: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/54.jpg)
CacheAccess: Examining Objects in Isolation
DCPS
DR DR DR
Using snapshotsSome 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.
UUUUssiiiinngg ssnnaappsshhhhoottttssSome 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.
![Page 55: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/55.jpg)
CacheAccess: Modifying and Creating Objects
DCPS
DR DR DR
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.
DWDW DW
UUUUUUUUUUssssiiiiiinnnngggg ssssnnnnaaaappppsssshhhhhhoooottttttssss
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 thesystem.
![Page 56: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/56.jpg)
Using Selections to Manage Subsets
DCPS
DR DR DR
Creating and managing SelectionsA 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.
S
Application
on_object_in()
CCCCCCrreeaattttiiiinngg aanndddd mmaannaaggiiiinngg SSSSSeelllleeccttttiiiioonnssA 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.
![Page 57: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/57.jpg)
DLRL – Class & Type Mapping
• dlrlClass
– DLRL Class representing a subscribed DCPS Topic Type
![Page 58: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/58.jpg)
DLRL – Class & Type Mapping
• dlrlClass
– DLRL Class representing a subscribed DCPS Topic Type
![Page 59: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/59.jpg)
DLRL – Class & Type Mapping
• dlrlAttribute
– DLRL Attribute representing mapped DCPS Type fields
![Page 60: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/60.jpg)
DLRL – Class & Type Mapping
• relation
– Association used to aggregate multiple classes using DLRL foreign keys
![Page 61: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/61.jpg)
DLRL – Local Reconstruction
• Cache
– Describes a DLRL cache entity used to provide dlrl class access to the user
![Page 62: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/62.jpg)
DLRL – Local Reconstruction
• Cache
– Describes a DLRL cache entity used to provide dlrl class access to the user
DCPS ChatRoom DomainParticipant
DLRL Classes
![Page 63: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/63.jpg)
DLRL – Local Reconstruction
• objectHome, topicManager
– Binds the cache to DataReaders to access the specific DCPS Topic, Types
![Page 64: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/64.jpg)
Application Targets
• ddsAppTarget
– Binds one or more DomainParticipants to a PSM configuration
– Binds at most one DLRL cache to the PSM configuration
![Page 65: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/65.jpg)
Conclusion & Wrap Up
![Page 66: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/66.jpg)
Other Applications
• Not just a DDS architecture description
• Not just a PIM
![Page 67: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/67.jpg)
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
![Page 68: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/68.jpg)
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
![Page 69: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/69.jpg)
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
![Page 70: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/70.jpg)
Concluding Remarks
• Next Steps
– Complete the FTF submission
– Unleash to the world – promote industry adoption, drive market demand
• For More information
– Contact us
– Visit the Sparx exhibit for more information & demo
![Page 71: UML Profile for DDS - Object Management Group](https://reader031.fdocuments.in/reader031/viewer/2022021206/62061a1c8c2f7b1730049cce/html5/thumbnails/71.jpg)
Thank you for your attention!