Cloud Messaging with OpenSplice DDS
-
Upload
angelo-corsaro -
Category
Technology
-
view
2.213 -
download
2
description
Transcript of Cloud Messaging with OpenSplice DDS
Angelo Corsaro, Ph.D.Chief Technology OfficerOMG DDS SIG Co-Chair
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S Cloud Messaging with OpenSplice DDS
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./traditional-messaging
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Stand-Alone Messaging‣ Stand-Alone Messaging is
typically found in distributed, yet stand-alone, applications
‣ The scope of the system is well known and completely managed by a single entity
‣ Resources are controlled and abundant
‣ Examples: Control System (car, airplane, ships), etc.
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Federated-Messaging‣ Collections of messaging buses
interconnected through the Internet
‣ Federated system with good control over federates
‣ Often relies on leased lines
‣ Examples:
Banks, Legacy ATC Systems,etc.
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./cloud-messaging
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Cloud Messaging
‣ Applications can be completely shielded from the specifics of the messaging
‣ Cloud Messaging allows messaging to be promoted to the rank of an “Internet Service”
[1/2]
‣ Applications “connect” to the Cloud Messaging platform using a wide variety of protocols, e.g., HTTP, DDSI, XMPP, etc.
DDSI/RTPS
REST/HTTP
XMPP
XMPP
REST/HTTP
DDSI/RTPS
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Cloud Messaging
‣ The Cloud Messaging providers supply the messaging platform and the infrastructure as a consumable service
‣ Cloud Providers supply the infrastructure required to build a Cloud Messaging solution
[2/2]
Bottom-Line: you can exploit
an off-the-shelf cloud
messaging or roll your ownDDSI/RTPS
REST/HTTP
XMPP
XMPP
REST/HTTP
DDSI/RTPS
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Desirable PropertiesScalability‣ Effectively support
localized as well as global applications potentially spanning over the whole globe
Cloud Messaging
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Desirable Properties
Throughput‣ Cope effectively with
single-stream as well as aggregated high throughputs
Cloud Messaging
Messaging Bus
Messaging Bus
Internet
Cloud Messaging
Exchange
Bank
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
QoS Control‣ Provide control over key QoS
impacting resource usage (e.g. network bandwidth) as well as end-to-end message deliver
Desirable PropertiesCloud Messaging
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Push/Pull/Push-Pull Communication‣ To allow the optimization of the
performance/resource-usage trade-off, the cloud messaging should support different notification paradigms
Desirable PropertiesCloud Messaging
PullPush-Pull
Push
Push
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Connectivity‣ Provide access to the
messaging service via multiple protocols, and technologies, such as, REST, SOAP, HTTP, DDS/RTPS. XMPP, etc.
Desirable PropertiesCloud Messaging
DDSI/RTPS
REST/HTTP
XMPP
XMPP
REST/HTTP
DDSI/RTPS
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./dds
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
The OMG DDSThe OMG DDS Standard‣ Introduced in 2004 to address the Data
distribution challenges typical of Defense and Aerospace Mission Critical Applications
‣ Key requirements for the standard were high performance and scalability from embedded to ultra-large-scale deployments
‣ Today recommended by key administrations worldwide and widely adopted well beyond Aerospace and Defense in domains, such as, Automated Trading, Simulations, SCADA, Telemetry, etc.
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
DDS RecommendationsIncreasingly Mandated/Recommended by Administrations
‣ US Navy: Open Architecture
‣ DISR/DISA: Net-centric Systems
‣ EuroControl: Air Traffic Control Center Operational Interoperability
‣ QinetiQ & MILVA: Recommending DDS for Vehicles Electronic Architecture
A Great Time for DDS!
! The infrastructure evolution cycle is churning…– New -> Emerging -> Standard -> Commodity
– Middleware is emerging as OS declines
! …DDS is maturing…– OMG focus
– Wire spec
– Tools
– Enterprise integration
– Multiple products fielded
– Deployed applications!
! …and adoption is on the rise– Navy
– DISR
– FCS/SoSCOE
– Many significant applications
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./opensplice-on-the-cloud
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
OpenSplice DDS on the Cloud‣ Addresses keys properties
required to implement a good Cloud Messaging Infrastructure
‣ Open and Interoperable International Standard (API + WireProtocol)
‣ High quality Open Source Implementation with large deployed base
Ownership Durability Content Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
Protocol
API
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Scalability‣ OpenSplice DDS has proven
to be scalable from small embedded systems to system of systems like the CoFlight Air Traffic Control System
‣ OpenSplice DDS v5.4 has several new optimizations that further its scalability over very large systems
ATCCBrest
ATCCReimsATCC
Paris
ATCCMilano
ATCCBrindisi
ATCCAix-en-Provence
ATCCBordeaux
ATCCRoma
ATCCPadova
ATCCGeneve
ATCCZurich
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Throughput
‣ OpenSplice DDS can deliver millions of messages per second on traditional COTS HW
!"#$%&#'
()(!%(*'
&")&%+)'
&!(,%!)'
),,%$#'
!,*%))'(("%!"'
&&)%*$' $"%"$' ,+%($',($%!+'
,*+%&)'
$&"%,,'
*!#%,&'
)$,%$*'
)"#%*)'
"!+%++'
"*(%)+' ")(%&!' ""&%,&'
,++%++'
!++%++'
$++%++'
#++%++'
*++%++'
)++%++'
"++%++'
&+++%++'
&&++%++'
(+%++'
&+(+%++'
(+(+%++'
,+(+%++'
!+(+%++'
$+(+%++'
#+(+%++'
)' &#' ,(' #!' &()' ($#' $&(' &+(!' (+!)' !+"#'
!"#$%
&'$($)$*+%
!*$$,(*%-./*%
-./0/1/23' 456/'
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
QoS‣ DDS provides a rich set of QoS that allow
control of:
‣ resource usage, ‣ end-to-end data delivery, and‣ data availability
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
QoS
Internet
Cloud Messaging
ExchangeBank
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
QoS
‣ Batching
‣ Priority
‣ Deadline
[ex-1]
‣ Data Durability
‣ Redundancy
‣ Data History
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
QoS‣ DDS provides a rich set of QoS that
allow control of:
‣ resource usage, ‣ end-to-end data delivery, and‣ data availability
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
QoS
‣ Temporal Filtering
‣ Batching
‣ Data History
[ex-2]
Cloud Messaging
Internet
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Communication Model‣ DDSI/RTPS supports multiple delivery
models:‣ Push: Data is pushed to subscribers‣ Push-Pull: Notification of new data are pushed to subscriber which in turn pull data when needed
‣ The Pull delivery model is available supported by the Web-Enabled DDS protocols (e.g. via REST)
Cloud Messaging
Internet
The optimal data delivery model
depends in general by the
application and network
constraints
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Connectivity
‣ OpenSplice DDS Apache Connector provides you access to DDS from the 80 connectors (REST, JMS, AMQP, XMPP, HTTP, DBMS, etc.) currently available in Apache Camel
http://fusesource.com/wiki/display/CAMELOPENSPLICE/Home
DDSI/RTPS
REST/HTTP
XMPP
XMPP
REST/HTTP
DDSI/RTPS
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./putting-it-all-together
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
OpenSplice on the Cloud
DDSI/RTPS
REST/HTTP
XMPP
REST/HTTP
DDSI/RTPS
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./tweetter
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
A “Tweet” with DDS
Topic:
‣ Unit of information exchanged between Publisher and Subscribers.
‣ An association between a unique name, a type and a QoS setting
TweetType
Tweet
{ Reliable, Persistent, ...}
TopicType QoS
Name
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
A “Tweet” with DDS
Topic Type:
‣ Type describing the data associated with one or more Topics
‣ A Topic type can have a key represented by an arbitrary number of attributes
‣ Expressed in IDL (or XML)
struct TweetType { string userId; string tweet;};#pragma keylist Tweet userId
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Tweeting With DDS
@bird
@oiseau
@ocell
@vogel
@lintu
@lind
Global Data Space
DDS‣ Tweeters come...‣ Tweeters go...
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Tweeting With DDS
@bird
@oiseau
@ocell
@vogel
@lintu
@lind
{@ocell, @oiseau}
{@oiseau, @bird, ocell}{@vogel}
‣ Tweeters follow (subscribe) to other tweeters
DDSGlobal Data Space
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Tweeting With DDS
@bird
@oiseau
@ocell
@vogel
@lintu
@lind
{@ocell, @oiseau}
{@vogel}
@birdTopic
@oiseauTopic
@lindTopic@lintuTopic
@vogelTopic
@ocellTopic
‣ Each Tweeter can be represented with a unique topic {@oiseau, @bird, ocell}
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Tweeting With DDS
@bird
@oiseau
@ocell
@vogel
@lintu
@lind
{@ocell, @oiseau}
{@vogel}
@TweetTopic
‣ ...or all Tweeters use the same topic
‣ Content filtering or queries are used to extract relevant data
{@oiseau, @bird, ocell}
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Tweeting With DDS
@bird
@oiseau
@ocell
@vogel
@lintu
@lind
{@ocell, @oiseau}
{@vogel}
@TweetTopic@TweetTopic
@TweetTopic
@TweetTopic
@TweetTopic
@TweetTopic
tweeter.bird tweeter.ocel
tweeter.oiseau
tweeter.lind
tweeter.vogel
tweeter.lintu
‣ ...or each Tweeter can be represented with a unique partition
‣ All tweeters use the same topic
Note: DDS partitions can
be specified by using
wildcards, e.g. tweeter.*
{@oiseau, @bird, ocell}
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Tweeting With DDS in C++
dds::Topic<TweetType> topic("TweetTopic");
std::vector<std::string> partitions = {"tweeter.ocel", "tweeter.oiseau"};
dds::PublisherQos pubQoS;pubQoS.set_partition(partitions);dds::Publisher pub(pubQoS);
dds::DataReader<TweetType> dr(pub);
std::vector<TweetType> data;std::Vector<SampleInfo> info;
dr.read(data, info);
dds::Topic<TweetType> topic("TweetTopic");
dds::PublisherQos pubQoS;pubQoS.set_partition("Tweeter.bird");dds::Publisher pub(pubQoS);
dds::DataWriter<TweetType> dw(pub);
TweetType tt = { "@bird", "Writing next-gen tweeter in DDS"};
dw.write(tt);
Writing Tweets Reading Tweets
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
./demo
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
Epilogue
‣ Cloud Messaging provides an opportunity to scale out applications to a global scale as well as increase connectivity without upfront investments
‣ OpenSplice DDS is the perfect technology for (1) user to roll their own cloud messaging, and (2) for cloud provider to roll their own cloud messaging offering
‣ OpenSplice DDS is currently in use to implement in cloud messaging in several “Private Clouds”
Ope
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
SOpe
nSpl
ice
DD
S
nice -20 ./questions
http://www.opensplice.com/
http://www.opensplice.org/
emailto:[email protected]
http://www.youtube.com/OpenSpliceTube http://opensplice.blogspot.com
http://bit.ly/1Sreg
http://www.slideshare.net/angelo.corsaro
http://twitter.com/acorsaro/
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDSReferences