Download - Cloud Messaging with OpenSplice DDS

Transcript
Page 1: Cloud Messaging with OpenSplice DDS

Angelo Corsaro, Ph.D.Chief Technology OfficerOMG DDS SIG Co-Chair

[email protected]

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

Page 2: 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

Page 3: 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

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.

Page 4: 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

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.

Page 5: 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

./cloud-messaging

Page 6: 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

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

Page 7: 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

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

Page 8: 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

Desirable PropertiesScalability‣ Effectively support

localized as well as global applications potentially spanning over the whole globe

Cloud Messaging

Page 9: 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

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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

./dds

Page 14: 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

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.

Page 15: 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

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

Page 16: 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

./opensplice-on-the-cloud

Page 17: 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

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

Page 18: 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

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

Page 19: 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

Throughput

‣ OpenSplice DDS can deliver millions of messages per second on traditional COTS HW

!"#$%&#'

()(!%(*'

&")&%+)'

&!(,%!)'

),,%$#'

!,*%))'(("%!"'

&&)%*$' $"%"$' ,+%($',($%!+'

,*+%&)'

$&"%,,'

*!#%,&'

)$,%$*'

)"#%*)'

"!+%++'

"*(%)+' ")(%&!' ""&%,&'

,++%++'

!++%++'

$++%++'

#++%++'

*++%++'

)++%++'

"++%++'

&+++%++'

&&++%++'

(+%++'

&+(+%++'

(+(+%++'

,+(+%++'

!+(+%++'

$+(+%++'

#+(+%++'

)' &#' ,(' #!' &()' ($#' $&(' &+(!' (+!)' !+"#'

!"#$%

&'$($)$*+%

!*$$,(*%-./*%

-./0/1/23' 456/'

Page 20: 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

QoS‣ DDS provides a rich set of QoS that allow

control of:

‣ resource usage, ‣ end-to-end data delivery, and‣ data availability

Page 21: 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

QoS

Page 22: Cloud Messaging with OpenSplice DDS

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

Page 23: 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

QoS‣ DDS provides a rich set of QoS that

allow control of:

‣ resource usage, ‣ end-to-end data delivery, and‣ data availability

Page 24: 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

QoS

‣ Temporal Filtering

‣ Batching

‣ Data History

[ex-2]

Cloud Messaging

Internet

Page 25: 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

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

Page 26: 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

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

Page 27: 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

./putting-it-all-together

Page 28: 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

OpenSplice on the Cloud

DDSI/RTPS

REST/HTTP

XMPP

REST/HTTP

DDSI/RTPS

Page 29: 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

./tweetter

Page 30: 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

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

Page 31: 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

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

Page 32: 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

Tweeting With DDS

@bird

@oiseau

@ocell

@vogel

@lintu

@lind

Global Data Space

DDS‣ Tweeters come...‣ Tweeters go...

Page 33: 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

Tweeting With DDS

@bird

@oiseau

@ocell

@vogel

@lintu

@lind

{@ocell, @oiseau}

{@oiseau, @bird, ocell}{@vogel}

‣ Tweeters follow (subscribe) to other tweeters

DDSGlobal Data Space

Page 34: 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

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}

Page 35: 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

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}

Page 36: 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

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}

Page 37: 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

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

Page 38: 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

./demo

Page 39: 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

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”

Page 40: 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

nice -20 ./questions