Más contenido relacionado La actualidad más candente (20) Similar a OMG DDS: The Data Distribution Service for Real-Time Systems (20) Más de Angelo Corsaro (20) OMG DDS: The Data Distribution Service for Real-Time Systems1. OpenSplice DDS
Delivering Performance, Openness, and Freedom
Angelo Corsaro, Ph.D.
OMG DDS: The Data Distribution
Product Strategy Manager
OMG RTESS and DDS SIG Co-Chair
angelo.corsaro@prismtech.com
Service for Real-Time Systems
2. Motivating Forces
The Standard
Agenda
Architectural Principles
Programming Model
Future Directions
3. The Need for Data Distribution
Time Scale Geographical Scale
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Parallelism Determinism Throughput, Availability Scalability, Persistence, Security
Systemic Real-Time Near Real-Time Fault-
Data Complex Information
Signal Information Tolerant Information
Processing Processing Management
Processing Processing
Data Distribution
Parallel Systems Distributed Systems
© 2009, PrismTech. All Rights Reserved
4. Data Exchange / Distribution
‣ Network Centric Architectures are emerging as a key trend for next generation military and civil
system of systems
‣ Efficient, scalable and QoS-enabled data dissemination is an enabling technology for Network
Joint Forces
Joint Forces
Centric Systems Global Info Grid
Global Info Grid
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Adapted from “The Future of AWACS”,
by LtCol Joe Chapa
The Right Information => To the Right People => At the Right Time
© 2009, PrismTech. All Rights Reserved
5. Motivating Forces
The Standard
Agenda
Architectural Principles
Programming Model
Future Directions
6. Addressing Data Distribution Challenges
DDS is standard designed to address the data-distribution challenges across
The OMG DDS Standard a wide class of Defense and Aerospace Applications
‣ Introduced in 2004 to address the Data
Distribution challenges faced by a wide
class of Defense and Aerospace
Applications
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Key requirement for the standard were its
ability to deliver very high performance while
seamlessly scaling from embedded to ultra-
large-scale deployments
‣ Today recommended by key administration
worldwide and widely adopted across
several different application domains, such
as, Automated Trading, Simulations, SCADA,
Telemetry, etc.
© 2009, PrismTech. All Rights Reserved
7. The OMG Data Distribution Service (DDS)
DDS v1.2 API Standard
‣ Language Independent, OS and HW architecture Application
independent Object/Relational Mapping
‣ DCPS. Standard API for Data-Centric, Topic- Data Local Reconstruction Layer (DLRL)
Based, Real-Time Publish/Subscribe
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Content
‣
Ownership Durability
DLRL. Standard API for creating Object Views out Subscription
of collection of Topics Minimum Profile
Data Centric Publish/Subscribe (DCPS)
DDSI/RTPS v2.1 Wire Protocol Standard
‣ Standard wire protocol allowing interoperability
Real-Time Publish/Subscribe Protocol
DDS Interoperability Wire Protocol
between different implementations of the DDS
standard UDP/IP
‣ Interoperability demonstrated among key DDS
vendors in March 2009
© 2009, PrismTech. All Rights Reserved
8. OMG DDS Recommendations is churning…
! The infrastructure evolution cycle
– New -> Emerging -> Standard -> Commodity
– Middleware is emerging as
Mandated/Recommended by key Administrations OS declines
! …DDS is maturing…
‣ US Navy: Open Architecture focus
– OMG
– Wire spec
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
– Tools
‣ DISR/DISA: Net-centric Systems
– Enterprise integration
– Multiple products fielded
‣ EuroControl: Air Traffic Control Center Operational
– Deployed applications!
Interoperability
! …and adoption is on the rise
– Navy for VSI
‣ QinetiQ: Recommending DDS
– DISR
– FCS/SoSCOE
– Many significant applications
© 2009, PrismTech. All Rights Reserved
9. OMG DDS Adoptions
Adopted by Most Challenging International Programs
‣ US FCS/SOSCOE
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ European Next Generation Flight Data Processor
‣ US ZUMWALT [DDG(1000)]
‣ VTID adopting DDS for the architectural demonstrator
© 2009, PrismTech. All Rights Reserved
10. OMG DDS Applicability
Adapted from NSWC-DD Open Architecture Documentation
Communication Technologies Standards
Web SVCs The DDS is the
only technology
that spans across
Java RTSJ the board.
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
JMS It guarantees
exceptional real-
time behavior,
CORBA RT-CORBA while providing
unparalleled level
OMG Data Distribution Service (DDS)
of throughput !
MPI
Message Passing Interface
Non Real-Time Soft Real-Time Hard Real-Time Extreme Real-Time
© 2009, PrismTech. All Rights Reserved
11. Some DDS Use Cases
Defense
‣ Combat Management Systems
‣ Flycatcher system
‣ Unmanned Vehicles (Air + Land)
‣ Tactical Links
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Radar Processing
‣ Submarine Systems
‣ Future Combat Systems
‣ Simulation
SCADA/Utilities
‣ Industrial Automation
‣ Power Grids
‣ Rocket Launch Systems
© 2009, PrismTech. All Rights Reserved
12. Some DDS Use Cases
Transportation
‣ Air Traffic Management/Control
‣ Metropolitan Traffic Management
‣ Underground Metropolitan Transportation
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Financial Services
‣ Automated Trading Firms
‣ Compliance Systems
‣ Market Data Platforms
© 2009, PrismTech. All Rights Reserved
13. Leading DDS Implementations
‣ Full Implementation of the OMG DDS Standard (DCPS+DLRL + DDSI)
‣ DCPS + DDSI available as Open Source at http://www.opensplice.org
‣ Developed and Commercially supported by PrismTech
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Implementation of the OMG DDS Standard (DCPS + DDSI)
‣ Developed and Commercially supported by RTI
‣ Partial Implementation of the OMG DDS Standard (Subset of DCPS)
‣ Available as Open Source at http://www.opendds.com
‣ Developed and Commercially supported by OCI
© 2009, PrismTech. All Rights Reserved
15. Scope of Standardization
AMQP OMG DDS
Application
Application
Object/Relational Mapping Object Relational Mapping
Standard API
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Data Local Reconstruction Layer (DLRL)
DDS v1.2
Content
Ownership Durability
Subscription
API (?) Minimum Profile
Pub/Sub Standard API
Data Centric Publish/Subscribe (DCPS)
DDSI v2.1
AMQP v0.10
Advanced Message Queuing Protocol Real-Time Publish/Subscribe Protocol
Wire Protocol Standard
Interoperability Wire Protocol DDS Interoperability Wire Protocol
(TCP, SCTP, UDP)/IP UDP/IP
© 2009, PrismTech. All Rights Reserved
16. Architectural Style
AMQP OMG DDS
Subscriber Subscriber
Publisher Publisher
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Broker Broker
Publisher
Broker Subscriber
Publisher
Broker Subscriber
Broker
Broker
Publisher Publisher
Subscriber Subscriber
© 2009, PrismTech. All Rights Reserved
17. Key Differences in Summary
AMQP DDS
‣ Brokered Communication ‣ Peer-to-Peer Communication
Architecture Architecture
‣ Wire Protocol Standard ‣ Wire Protocol + API Standard
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Interoperability across AMQP ‣ Interoperability across DDS implementations
implementations
‣ Application Portability across DDS
Implementation
‣ Header Based Routing ‣ Content-Based Filtering/Quering
‣ Not geared for High-Performance ‣ Designed bottom-up for maximum
performance and determinism
© 2009, PrismTech. All Rights Reserved
18. Motivating Forces
The Standard
Agenda
Architectural Principles
Programming Model
Future Directions
20. Counting the “W’s” of Coupling
Request
Client Server The “4Ws” of Client/Server
Reply ‣ Who+Where: Space Coupling
‣ What: Structural Coupling
Client/Server ‣ When: Time Coupling
CORBA, COM+, Java RMI, .Net Remoting, Web SVCs
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Subscriber
Publisher
Subscriber A Single “W” for DDS
Publisher ‣ What: Structural Coupling
Subscriber
Publisher
DDS Subscriber DDS features dynamic discovery
and full time decoupling!
© 2009, PrismTech. All Rights Reserved
22. High Performance Pub/Sub
The right data, at the right place, at the right time
‣ Fully distributed, Peer-to-Peer -- All the Time.
Communication
‣ No Single Point of Failure Publisher
Subscriber
‣ No Single Point of Bottleneck
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Multicast-enabled Brokers Subscriber
‣ High performance and highly Publisher
scalable
‣ High availability Publisher
‣hot-swap
Subscriber
‣hot-hot architecture
© 2009, PrismTech. All Rights Reserved
23. OpenSplice DDS
Delivering Performance, Openness, and Freedom
Application
Ownership
Object/Relational Mapping
Data Local Reconstruction Layer (DLRL)
Durability
Content
Data-Centric
Pub/Sub
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Real-Time Publish/Subscribe Protocol
DDS Interoperability Wire Protocol
UDP/IP
24. Data-Centric Pub/Sub
‣ Data-Centric Features are built-in and
don’t rely on an external DBMS
‣ Providing thus performance, scalability,
and availability
‣ Distributed Relational Data Model Subscriber
Publisher DBMS
‣ Local Queries B
‣ Continuous Queries / Content Based
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
m
Subscriptions A F
Subscriber
‣ Windows
Publisher J
D C
‣ Object/Relational Mapping K
E
‣ Support for a subset of SQL-92
Publisher
Subscriber
Perfect Blend of Data-Centric and Real-Time
Publish/Subscribe Technologies
© 2009, PrismTech. All Rights Reserved
25. “Visualizing” Data-Centric Pub/Sub
Subscriber
Publisher B D J
D C
E K
A
B
A B
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
m
Subscriber
D C
Publisher A F
J
J A F
D C
K
A F K
E
Subscriber
Publisher D
J
D K
E
E
© 2009, PrismTech. All Rights Reserved
26. Organizing Information
‣ All DDS communication is Domain
Partition
happens within a Domain
‣ Domain can divided into Publisher
Subscriber
Partitions
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
B
‣ Topics are published and m
subscribed across on or A F
Subscriber
more Partitions Publisher J
D C
K
E
Publisher
Subscriber
© 2009, PrismTech. All Rights Reserved
27. Topics and Data-Centric Pub/Sub
‣ Topics. Unit of information exchanged between
Publisher and Subscribers. Topic
‣ Data Types. Type associated to a Topic must be
a structured type expressed in IDL struct TempSensor {
long tID;
Topic Type float temp;
‣ Topic Instances. Key values in a datatype
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
float humidity;
uniquely identify a Topic Instance (like rows in };
table) #pragma keylist TempSensor tID
TempSensor
‣ Content Awareness. SQL Expressions can be tID temp humidity
used to do content-aware subscriptions, Instances
1 21 62
2 27 78
queries, joins, and correlate topic instances 3 25.5 72.3
y
idit idit
y ity SELECT * FROM TempSensor t
um Samples mid
h um hu
62 h
65 63 WHERE t.temp > 25
p p
tem tem
p tem
21 22
tID 23 tID tID temp humidity
tID
1 1
1 2 27 78
3 25.5 72.3
t1 t2 t3 Time
© 2009, PrismTech. All Rights Reserved
28. Distributed Relational Information Modeling
‣ Topic Keys can be used to identify instances as well as relationships
‣ Relationships can be navigated by relying on a subset of SQL 92
‣ One-to-many relationships can be captured using foreign keys
‣ Many-to-many relationships need to be modeled using a topics
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ Keys can be represented by an arbitrary number of Topic fields
TempSensor Room
Floor
tID: int rID: int fID: int
temp: float width: float level: int
humidity: float height: float open: int
rID: int length: float
fID: int
© 2009, PrismTech. All Rights Reserved
29. Data Centric Publish/Subscribe
Publishers Subscribers
TempSensor TempSensor
tID temp humidity tID temp humidity
1 18 60 1 18 60
2 22 75
3 21 71
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
struct TempSensor {
TempSensor int tID;
float temp; TempSensor
tID temp humidity
float humidity; tID temp humidity
2 22 75 };
2 22 75
#pragma keylist TempSensor tID
3 21 71
SELECT * FROM TempSensor t
WHERE s.temp > 20
s.t
TempSensor ID
==
tID temp humidity
Fully Distributed Global 1 TempSensor
3 21 71 Data Space tID temp humidity
1 18 60
© 2009, PrismTech. All Rights Reserved
30. Data Centric Publish/Subscribe
Publishers Subscribers
TempSensor TempSensor
tID temp humidity tID temp humidity
1 21 62 1 21 62
2 22 75
3 21 71
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
struct TempSensor {
TempSensor int tID;
float temp; TempSensor
tID temp humidity
float humidity;
2 22 75 tID temp humidity
};
#pragma keylist TempSensor tID 1 21 62
2 22 75
3 21 71
SELECT * FROM TempSensor t
s.t WHERE s.temp > 20
TempSensor ID
==
tID temp humidity
Fully Distributed Global 1
TempSensor
3 21 71 Data Space
tID temp humidity
1 21 62
© 2009, PrismTech. All Rights Reserved
31. Processing Content & Structure Complex Event Processing...
‣ Local Queries DDS provides some of the most useful features
found in Complex Event Processing platforms!
‣ Continuous Queries (Content-based Subscriptions)
‣ Topics Joins & Projections
‣ Events windows (via History QoS)
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
tID temp humidity S1
3 21.5 72.3
tID temp humidity {iID = 1}
2 20 78
tID temp humidity
1 21 62
S2
P {temp > 21 | humidity > 75}
S3
{ temp <16 }
© 2009, PrismTech. All Rights Reserved
32. Processing Content & Structure Complex Event Processing...
‣ Local Queries DDS provides some of the most useful features
found in Complex Event Processing platforms!
‣ Continuous Queries (Content-based Subscriptions)
‣ Topics Joins & Projections
‣ Events windows (via History QoS)
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
tID temp humidity
1 21 62
S1
{iID = 1} tID temp humidity
2 20 78
3 21.5 72.3
S2
P {temp > 21 | humidity > 75}
S3
{ temp <16 }
© 2009, PrismTech. All Rights Reserved
33. OpenSplice DDS
Delivering Performance, Openness, and Freedom
Application
Ownership
Object/Relational Mapping
Data Local Reconstruction Layer (DLRL)
Durability
Content
Object-Oriented
Pub/Sub
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Real-Time Publish/Subscribe Protocol
DDS Interoperability Wire Protocol
UDP/IP
34. Object/Relational Mapping
TempSensor
temp: float
humidity: float
‣ Automatically bridges the
getTemp()
getHumidity() * Room Floor
1 width: float level: int
Object/Relational Impedance height: float
length: float *
open: int
1 climate: int
Conditioner
Mismatch temp: float
humidity: float
1 climate: int
set_climate();
set_status()
set_climate()
*
‣ Arbitrary object setTemp() get_level()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
setHumidity()
setFanLevel()
reconstructions start()
stop()
‣ Automatic Relationships pause():
Management TConditioner
cID: int TTempSernsor
‣ Inheritance
temp: float tID: int
humidity: float temp: float
fan_level: int TRoom humidity: float
‣ Local Operations status: int
rID: int
rID: int
width: float
height: float
rID: int
‣ Local/Distributed State length: float
fID: int
TFloor
fID: int
level: int
open: int
© 2009, PrismTech. All Rights Reserved
35. Object/Relational Mapping Unleashing the power of Objects...
Object Oriented
Canvas
OO Relational handle: Handle
‣ Middleware can automatically Flight
RadarTrack
manage the generation and FlightView call_sign: string
x: float
image: string route: list
association between the refresh_rate: int * origin: string
y: float
* z: float
* 1
Object-Oriented Model and the visible: bool dest: string
radar_id: string
Relational Model uid: GUID aircraft: string
operationOne()
display() operationX()
operationTwo()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
operationY()
FlightViewTopic FlightViewAssociation
FlightTopic Relational
call_sign: string
image: string call_sign: string
route: list RadarTrackTopic
refresh_rate: int uid: GUID
origin: string x: float
visible: bool handle: Handle
dest: string y: float
uid: GUID
aircraft: string z: float
radar_id: string radar_id: string
Relational OO
‣ The Relational Model can be mapped to an Object Oriented model
‣ The mapping is under control of the architect
© 2009, PrismTech. All Rights Reserved
36. Multiple Object/Relational Mappings
Canvas
FastFlightView
image: string
handle: Handle
DLRL
DLRL
refresh_rate: int
visible: bool Flight
uid: GUID RadarTrack
FlightView call_sign: string
x: float x: float
image: string route: list
y: float y: float
refresh_rate: int * * origin: string 1 * z: float
z: float
visible: bool dest: string
call_sign: string radar_id: string
uid: GUID aircraft: string
display() operationOne()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
display() operationX()
operationTwo()
operationY()
FlightViewTopic FlightViewAssociation
FlightTopic DCPS
call_sign: string
image: string call_sign: string
route: list RadarTrackTopic
refresh_rate: int uid: GUID
origin: string x: float
visible: bool handle: Handle
dest: string y: float
uid: GUID
aircraft: string z: float
radar_id: string radar_id: string
Multiple Mappings
‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems
‣ The state is shared across all the local reconstruction (ORMs)
© 2009, PrismTech. All Rights Reserved
37. An Example
High-End 3D Visualization Primary Radar
RadarTrack
x: float
y: float
z: float
radar_id: string
operationOne()
operationTwo()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
FastFlightView RadarTrackTopic
x: float
image: string y: float
refresh_rate: int FlightViewTopic
image: string
z: float
radar_id: string
visible: bool refresh_rate: int
visible: bool
uid: GUID uid: GUID
x: float
y: float RadarTrackTopic
x: float
z: float y: float
z: float
call_sign: string radar_id: string
display() RadarTrackTopic
x: float
y: float FlightTopic
call_sign: string
z: float route: list
radar_id: string origin: string
dest: string
aircraft: string
radar_id: string Flight
call_sign: string
route: list
RadarTrack
origin: string RadarTrackList
dest: string
aircraft: string
operationX()
operationY()
Flight Data Processor
© 2009, PrismTech. All Rights Reserved
38. An Example
High-End 3D Visualization Primary Radar
RadarTrack
x: float
y: float
z: float
radar_id: string
operationOne()
operationTwo()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
FastFlightView RadarTrackTopic
x: float
image: string y: float
z: float
refresh_rate: int FlightViewTopic
image: string radar_id: string
visible: bool refresh_rate: int
visible: bool
uid: GUID uid: GUID
x: float
y: float RadarTrackTopic
x: float
z: float y: float
z: float
call_sign: string radar_id: string
display() RadarTrackTopic
x: float
y: float FlightTopic
call_sign: string
z: float route: list
radar_id: string origin: string
dest: string
aircraft: string
radar_id: string Flight
call_sign: string
route: list
RadarTrack
origin: string RadarTrackList
dest: string
aircraft: string
operationX()
operationY()
Flight Data Processor
© 2009, PrismTech. All Rights Reserved
39. An Example
High-End 3D Visualization Primary Radar
Secondary Radar
RadarTrack
x: float
y: float
z: float
radar_id: string RadarTrack
operationOne() x: float
operationTwo() y: float
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
z: float
radar_id: string
operationOne()
operationTwo()
FastFlightView RadarTrackTopic RadarTrackTopic
x: float x: float
image: string y: float y: float
refresh_rate: int FlightViewTopic
image: string
z: float
radar_id: string
z: float
radar_id: string
visible: bool refresh_rate: int RadarTrackTopic
visible: bool x: float
uid: GUID uid: GUID y: float
x: float z: float
radar_id: string
y: float
RadarTrackTopic
z: float x: float
call_sign: string RadarTrackTopic y: float
x: float z: float
display() y: float radar_id: string
z: float FlightTopic
call_sign: string
radar_id: string route: list
origin: string
RadarTrack
dest: string Flight
aircraft: string call_sign: string
radar_id: string
route: list
origin: string RadarTrackList
dest: string
aircraft: string RadarTrack
operationX()
operationY()
Automatically Manage Flight Data Processor
Relationships
© 2009, PrismTech. All Rights Reserved
40. Custom Filter Example
High-End 3D Visualization Primary Radar
Secondary Radar
RadarTrack
x: float
y: float
z: float
radar_id: string RadarTrack
operationOne() x: float
operationTwo() y: float
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
z: float
radar_id: string
operationOne()
operationTwo()
FastFlightView RadarTrackTopic RadarTrackTopic
x: float x: float
image: string y: float y: float
refresh_rate: int FlightViewTopic z: float z: float
SQL Filter
image: string radar_id: string radar_id: string
visible: bool refresh_rate: int RadarTrackTopic
uid: GUID visible: bool
uid: GUID
x: float
y: float
Custom Filter
x: float z: float
radar_id: string
y: float
z: float RadarTrackTopic
x: float
call_sign: string y: float
RadarTrackTopic z: float
display() x: float radar_id: string
y: float FlightTopic
call_sign: string
z: float
route: list
radar_id: string origin: string RadarTrack
Flight
dest: string
aircraft: string call_sign: string
Filter based on Region-of-interest radar_id: string route: list
origin: string RadarTrackList
dest: string
SQL Filter aircraft: string RadarTrack
Custom Filter operationX()
operationY()
Automatically Manage Flight Data Processor
Relationships
© 2009, PrismTech. All Rights Reserved
42. DCPS Application
Application
‣ The application works directly at the
DCPS level TConditioner
cID: int
temp: float
TTempSensor
tID: int
temp: float
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
humidity: float TRoom humidity: float
‣ When using OO Programming
fan_level: int rID: int rID: int
status: int width: float
rID: int height: float
Languages the Object/Relational length: float
fID: int
TFloor
fID: int
level: int
Impedance Mismatch has to be open: int
manually dealt Content
DDS v1.2
Ownership Durability
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
© 2009, PrismTech. All Rights Reserved
43. DLRL Application
Application
TempSensor
temp: float
‣ The DLRL Layer is used to
humidity: float
getTemp()
getHumidity() * Room Floor
width: float level: int
1
height: float open: int
1 climate: int
provide a Language Integrated
Conditioner length: float
*
temp: float climate: int set_status()
humidity: float 1 set_climate(); set_climate()
fan_level: int * set_temp() get_level()
set_humidity()
access to DDS data
status: int
setTemp()
setHumidity()
setFanLevel()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
start()
stop()
‣ The Designer has great freedom
pause():
DDS v1.2
Object/Relational Mapping
in deciding how Objects have to Data Local Reconstruction Layer (DLRL)
map to Topics TConditioner
cID: int
TTempSensor
tID: int
temp: float temp: float
humidity: float TRoom humidity: float
‣ Different Object Reconstruction
fan_level: int rID: int rID: int
status: int width: float
rID: int height: float
length: float TFloor
can be created for different fID: int fID: int
level: int
open: int
applications Content
DDS v1.2
Ownership Durability
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
© 2009, PrismTech. All Rights Reserved
44. Generic DDS Application
Application
TempSensor
temp: float
humidity: float
getTemp()
getHumidity() * Room Floor
width: float level: int
1
‣ In the most general case, different
height: float open: int
Conditioner length: float 1 climate: int
*
temp: float climate: int set_status()
humidity: float 1 set_climate(); set_climate()
fan_level: int * set_temp() get_level()
set_humidity()
portion of the application might rely on
status: int
setTemp()
setHumidity()
setFanLevel()
start()
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
DLRL or DCPS depending on their stop()
pause():
specific needs Application
Object/Relational Mapping
Data Local Reconstruction Layer (DLRL)
‣ DCPS access might be required for
TConditioner TTempSensor
cID: int tID: int
temp: float temp: float
humidity: float TRoom humidity: float
accessing and tuning some specific fan_level: int
status: int
rID: int
rID: int
width: float
height: float
rID: int
length: float TFloor
QoS fID: int fID: int
level: int
open: int
Content
DDS v1.2
Ownership Durability
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
© 2009, PrismTech. All Rights Reserved
46. Communicating with Topics, Partitions and Domains
Topic
Topic
Topic
Samples
Samples
Instances Samples
Instances
Instances
121 62
1
21 62
1 22 62
1 22 62
1 23 63
1 23 63
DataReader
DataReader
1 21 62
2 20 61
1 22 62
2 19 60
1 23 63
DataReader DataWriter
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
2 20 61 2 19 60
DataReader
DataReader 2 20 61 2 19 60 DataWriter
DataWriter
DataReader 3 25 70
3 25 70
3 25 71
25
3 25 71
25
3 25 74
3 25 74
3 26 77
3 26 77
3 26 77
DataWriter
struct TempSensor { 3 25 70 3 25 71
25 3 25 74
int tID;
float temp;
float humidity;
};
#pragma keylist TempSensor tID
© 2009, PrismTech. All Rights Reserved
47. Communicating with Topics, Partitions and Domains
Topic
Topic
Topic
Samples
Samples
Instances Samples
Instances
Instances
121 62
1
21 62
1 22 62
1 22 62
1 23 63
1 23 63
DataReader
DataReader
1 21 62
2 20 61
1 22 62
2 19 60
1 23 63
DataReader DataWriter
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
2 20 61 2 19 60
DataReader
DataReader 2 20 61 2 19 60 DataWriter
DataWriter
DataReader 3 25 70
3 25 70
3 25 71
25
3 25 71
25
3 25 74
3 25 74
3 26 77
3 26 77
3 26 77
DataWriter
struct TempSensor { 3 25 70 3 25 71
25 3 25 74
int tID;
float temp;
Arrows };
float humidity;
show #pragma keylist TempSensor tID
structural
relationship
s, not data- Subscriber Publisher
flows Partition
© 2009, PrismTech. All Rights Reserved