You are on page 1of 55

OpenSplice DDS

Delivering Performance, Openness, and Freedom

Angelo Corsaro, Ph.D.

From OpenSplice DDS


Chief Technology Officer
OMG DDS SIG Co-Chair
angelo.corsaro@prismtech.com

to Anywhere you Want


http://bit.ly/dhQCDb
OpenSplice DDS
Delivering Performance, Openness, and Freedom

The Challenge
Episode 1
Flight Data Processor
Controller
Working
Positions

OpenSplice DDS

Radar
Flight Data Processor
Controller
Working
Positions

Radar

OpenSplice DDS OpenSplice DDS

Controller
Working
Radar Positions Multi-Radar
Tracker
OpenSplice DDS
Delivering Performance, Openness, and Freedom

The Challenge
Episode II
Flight Data Processor
Controller
Working
Positions

OpenSplice DDS
Multi-Radar
Tracker

Radar
Flight Data Processor
Controller
Working
Positions

JMS
OpenSplice DDS
Controller
Multi-Radar Working
Tracker Positions

Radar
Flight Data Processor Enterprise
Applications
Controller
Working Web
Positions
Services

JMS
OpenSplice DDS
Controller
Multi-Radar Working
Tracker Positions

Radar
Flight Data Processor Enterprise
Applications
Controller
Working Web
Positions
Services

JMS
OpenSplice DDS
Web Browser Controller
Multi-Radar Working
Tracker Positions

REST

Radar
iPhone
OpenSplice DDS
Delivering Performance, Openness, and Freedom

The Challenge
Episode III
Ultra-Large Scale Systems
H 1,1,h

N2,5 R N1,1 H 1,1,1


R
SN H 1,1,0
H 2,1,m
SN
H 1,0,k
SN
R
N2,0 H 1,0,1 N1,0
H 2,0,i H 1,0,0 R
R N2,4
R SN
N2,1
SN H 2,1,n

N2,2 R R N2,3
Ultra Large H 2,1,j

Scale System
H 2,1,k H 2,1,h

© 2009, PrismTech. All Rights Reserved


Data Discovery Challenges

Global Data Space


Data Discovery Global Data Space “B”
‣ Standard Discovery Protocol “A”

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


Requires Multicast
‣ Standard Discovery poses DDS
DDS
Scalability issues for ULS
‣ Limited Control over Topics
Visibility, e.g., choosing what to Global Data Space
expose to the external world “C”

DDS
© 2009, PrismTech. All Rights Reserved
Data Discovery Challenges

Global Data Space


Data Discovery Global Data Space “B”
‣ Standard Discovery Protocol “A”

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


Requires Multicast
‣ Standard Discovery poses DDS
DDS
Scalability issues for ULS
‣ Limited Control over Topics
Visibility, e.g., choosing what to Global Data Space
expose to the external world “C”

DDS
© 2009, PrismTech. All Rights Reserved
Data Discovery Challenges

Global Data Space


Data Discovery Global Data Space “B”
‣ Standard Discovery Protocol “A”

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


Requires Multicast
‣ Standard Discovery poses DDS
DDS
Scalability issues for ULS
‣ Limited Control over Topics
Visibility, e.g., choosing what to Global Data Space
expose to the external world “C”

DDS
© 2009, PrismTech. All Rights Reserved
Data Communication Challenges

Data Communication
‣ Standard Communication Protocol Relies on UDP

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


‣ No Support for Compression
‣ Difficult NAT/Firewall traversal
‣ Sub-Optimal Data Distribution for WAN Scenario (limited exploitation
of multicast)
‣ Scalability

© 2009, PrismTech. All Rights Reserved


Data Communication Challenges

Publisher Publisher

B B
Subscriber Subscriber

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


m m
A F A F

Publisher J Publisher
D C J
X Z

K
E
K
Subscriber Y
Subscriber
DDS-1
Publisher

Wan

© 2009, PrismTech. All Rights Reserved


Data Communication Challenges

Publisher A Publisher

B B
Subscriber Subscriber

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


m m
A F A F

Publisher J Publisher
D C J
X Z

K
E
K
Subscriber Y
Subscriber
DDS-1
Publisher

Wan

© 2009, PrismTech. All Rights Reserved


Data Communication Challenges

Publisher Publisher

B
B
A
Subscriber Subscriber

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


m m
A F A F

Publisher J Publisher
D C J
X Z

K
A
E
K
Subscriber Y
Subscriber
DDS-1
Publisher

Wan

© 2009, PrismTech. All Rights Reserved


OpenSplice DDS
Delivering Performance, Openness, and Freedom

The Challenge
Episode IV
Flight Data Processor Enterprise
Applications
Controller
Working Web
Positions
Services

JMS
OpenSplice DDS
Web Browser Controller
Multi-Radar Working
Tracker Positions
H 1,1,h

N2,5 R N1,1 H 1,1,1


R

REST
SN H 1,1,0
H 2,1,m
SN
H 1,0,k
SN
R
N2,0 H 1,0,1 N1,0
H 2,0,i H 1,0,0 R
R N2,4
R SN
N2,1
SN H 2,1,n

Radar Ultra Large H 2,1,j


N2,2 R R N2,3

Scale System H 2,1,k H 2,1,h


iPhone
OpenSplice DDS
Delivering Performance, Openness, and Freedom

Enterprise Integration
vs.
Mission Critical
Enterprise Integration

‣ Business integration focuses on


“gluing” systems together
‣ Content and format
transformation are the key
aspects of Enterprise Integration

© 2009, PrismTech. All Rights Reserved


Mission Critical Integration
Controllers
Controllers Controllers

‣ Like business integration focuses DDS

on “gluing” systems together DDS DDS

‣ Content, format and QoS


transformation are the key Flight Data Processing Servers

aspects of Enterprise Integration


Flight Data Processing Servers Flight Data Processing Servers
Air Traffic Control Center

Air Traffic Control Center Air Traffic Control Center

B
DDS
Integration of Mission-Critical Systems
m
A F

Requires that QoS is adapted end-to-end


D C

K E

© 2009, PrismTech. All Rights Reserved


OpenSplice DDS
Delivering Performance, Openness, and Freedom

Enterprise Integration
CamelOS

What
‣ Camel Connector for OpenSplice DDS
‣ Allows to bridge from DDS to any of the Camel-provided
connectors, e.g. JMS, HTTP, etc.

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


Where
‣ Available at:
‣ http://fusesource.com/forge/projects/CAMELOPENSPLICE

© 2010, PrismTech. All Rights Reserved


CamelOS in Action

‣ This simple examples ctx = new DefaultCamelContext();


shows how to specify template = ctx.createProducerTemplate();
final String fromURI = "dds:ExampleStrTopic:0/?target=stringTarget";
DDS-endpoints endpoint = ctx.getEndpoint(fromURI);
ctx.addRoutes(new RouteBuilder() {
‣ The uses Camel to public void configure() {
receive from(fromURI).process(new Processor() {
public void process(Exchange e) {
ExampleStrTopic displayExchange(e);
samples and then print });
}

them on the screen }


});

© 2009, PrismTech. All Rights Reserved


restful-dds
What
‣ RESTful Connector for OpenSplice DDS
‣ Driving the standardization of the REST API for the Web-
Enabled DDS

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


‣ Provides a full REST-based API for reading/writing data
over HTTP
Where
‣ Available at:
‣ http://code.google.com/p/restful-dds/

© 2010, PrismTech. All Rights Reserved


Using the REST API

URI HTTP Request Replace Body Description


Method Body
/ dds/<participantname>/<partition >/<topic>/ GET list of read Read data from a data-reader
samples and their

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


<type>/subscribe/<datareadername>/read?
state info
sample_state=xx&view_state=xx
&instance_state=xx&max_sample s=xx

/ dds/<participantname>/<partition > /<topic>/ POST sample data Write a sample


<type>/publish /<datawritername>/write?
time_stamp=xx

© 2010, PrismTech. All Rights Reserved


OpenSplice DDS
Delivering Performance, Openness, and Freedom

Mission Critical
Integration
The Blend-Box
OpenSplice DDS Connector
Custom Connectors
‣ The BLEND-Box will provide a very high
performance, qos-enabled, extensible and
configurable protocol gateway framework OpenSplice DDS Custom

allowing to automatically bridge from one

ULS DDSI
BLEND-Box

WS-*
communication technology to another
‣ The BLEND-Box will allow to expose DDSI REST JMS
relevant data in the required communication
protocol, without imposing changes into
existing systems
DDS Connectors
Web/Enterprise Connectors

© 2009, PrismTech. All Rights Reserved


System and SoS Integration
OpenSplice DDS Custom

‣ The BLEND-Box provides an integration

ULS DDSI
BLEND-Box

WS-*
infrastructure that allows to:
‣ Decide what data has to be exposed to other systems REST DDSI JMS
‣ Decide over which transport the data should be exposed
H 1,1,h

N2,5
N1,1
‣ Control the Content, format and QoS adaptation
R H 1,1,1
R
SN H 1,1,0
H 2,1,m
SN
H 1,0,k

‣ The BLEND-Box allows to optimally integrate N2,0


R
SN
H 1,0,1 N1,0
DDS-based systems using: H 2,0,i H 1,0,0 R
R N2,4

‣ DDSI or the OpenSplice Real-Time Networking over a LAN


R SN
N2,1
SN H 2,1,n
‣ Ultra-Large-Scale (ULS) DDSI over a WAN
N2,2 R R N2,3
H 2,1,j

H 2,1,k H 2,1,h
© 2009, PrismTech. All Rights Reserved
OpenSplice DDS
Delivering Performance, Openness, and Freedom

ULS-DDSI
Architecture for Internet Scale DDS
‣ DDS-Level Routers establish a Peer-to- H 1,1,h
Peer overlay that relays DDS data over
N2,5
the WAN R N1,1 H 1,1,1
R
‣ The Router provides a single access point for SN H 1,1,0
deciding what to expose to the external world H 2,1,m

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


‣ The Router can perform Topic Transformation, H 1,0,k
SN

etc. R
SN
N2,0
‣ A Network of Super-Nodes is used for H 1,0,1 N1,0
H 2,0,i H 1,0,0 R N2,4
ensuring: R

‣ Scalable (Global) Discovery R SN


N2,1
‣ Subscription Management (when crossing the SN H 2,1,n
boundaries of a System)
‣ Support for establishing communication between N2,2 R R N2,3
H 2,1,j
Pub and Sub (perhaps via STUNT to circumvent

H 2,1,k H 2,1,h
© 2009, PrismTech. All Rights Reserved
DDS Router
‣ DDS Router communicates with the
local DDS Domain by Multicast N i R
‣ DDS Router are configured with the
set of topics to be exposed along with
potential transformations
‣ Router2Router communication is

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


R N
carried on by RTPS over TCP (since k

TCP has been tuned over years to


work fine in WAN
‣ If required the Router takes care of
compressing Data
‣ DDS Router Runs a “variation” or
DDSI/RTPS
‣ Topic, Subscription and Publication are propagated to Super Nodes
‣ Information available into super nodes ensure that local reader/writer will be properly matched
© 2009, PrismTech. All Rights Reserved
DDS Super-Nodes (SN)
‣ Super-Nodes store all the “discovery information”
‣ List of Topics available in the system R
SN
‣ Associations between Topics and Router role (e.g. Pub or SN
R
Sub)

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


‣ A distributed protocol is used to replicated data,
SN
eventually, on all replicas
SN
‣ Router keep a list of well-known Super-Nodes to
bootstrap discovery R

‣ NOTE: Super-Nodes can also be used to support


the implementation of STUNT-like protocols to
facilitate NAT/Firewall trespassing
© 2009, PrismTech. All Rights Reserved
How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} R1-{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R4-{S(B), S(D),P(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3 R3-{S(A),P(D),S(E)}
R2-{S(A),P(B),P(C)}

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
{P(A)} R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{P(B)}

{S(A),P(B),P(C)} R2 R3 {S(A),P(D),S(E)}

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
{P(A)} R3-{S(A),P(D),P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{P(B)}

{S(A),P(B),P(C)} {P(B)} R3 {S(A),P(D),S(E)}


R2

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
{P(A)} R3-{S(A),P(D),P(E)} {P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{P(B)} {P(D)}
{S(A),P(B),P(C)} {P(B)} R3 {S(A),P(D),S(E)}
R2

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


{P(A)} R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
{P(A)} R3-{S(A),P(D),P(E)} {P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{P(B)} {P(D)}
{S(A),P(B),P(C)} {P(B)} R3 {S(A),P(D),S(E)}
R2

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS A R1 SN1 SN4 R4 DDS


{P(A)} R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
{P(A)} R3-{S(A),P(D),P(E)} {P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{P(B)} {P(D)}
{S(A),P(B),P(C)} {P(B)} R3 {S(A),P(D),S(E)}
R2

DDS DDS

© 2009, PrismTech. All Rights Reserved


How it Works
{P(A),S(B),P(C)} {S(B), S(D),P(E)}

DDS R1 SN1 SN4 R4 DDS


{P(A)} R1-{P(A),S(B),P(C)}
R2-{S(A),P(B),P(C)}
{P(A)} R3-{S(A),P(D),P(E)} {P(E)}
R4-{S(B), S(D),S(E)}

Proprietary Information - Distribution without Expressed Written Permission is Prohibited.


SN2 SN3

{P(B)} {P(D)}
{S(A),P(B),P(C)} {P(B)} R3 {S(A),P(D),S(E)}
R2
A A

DDS DDS
A A

A
A A
A
© 2009, PrismTech. All Rights Reserved
Controller
Working
Positions
OpenSplice DDS
OpenSplice DDS Custom

ULS DDSI
BLEND-Box Web

WS-*
Flight Data
Processor REST DDSI JMS
Services
H 1,1,h
Enterprise
N2,5 R
R
N1,1 H 1,1,1 Applications
Radar
SN H 1,1,0
H 2,1,m
SN
H 1,0,k

JMS
SN
R
N2,0 H 1,0,1 N1,0
H 2,0,i R N2,4

REST
H 1,0,0 R

R SN
N2,1
H 2,1,n

Controller
SN

N2,2 N2,3

Ultra Large
R R
H 2,1,j

H 2,1,k H 2,1,h Working


Scale System Positions
JMS: Java Messaging Service
DDSI: DDS Interoperability Wire Protocol
ULS: Ultra Large Scale Web
iPhone
Browser
OpenSplice DDS
Delivering Performance, Openness, and Freedom

Demo!
Concluding Remarks
‣ The integration of Mission- and Business-
Critical systems is more complex than that of
Enterprise Systems because of the additional
complexity introduced by the end-to-end QoS
requirements

‣ The OpenSplice DDS ecosystem provides


already solutions for integrating DDS-based
system with Enterprise or Web Applications

‣ The BLEND-Box will enable a holistic approach


to integration for mission- and business-critical
systems and system-of-systems

© 2009, PrismTech. All Rights Reserved


Online Resources

http://www.opensplice.com/
http://www.slideshare.net/angelo.corsaro
emailto:opensplicedds@prismtech.com

http://bit.ly/1Sreg http://twitter.com/acorsaro/

http://opensplice.blogspot.com
http://www.youtube.com/OpenSpliceTube

© 2009, PrismTech. All Rights Reserved

You might also like