Cloud Messaging with OpenSplice DDS

41
Angelo Corsaro, Ph.D. Chief Technology Officer OMG DDS SIG Co-Chair PrismTech [email protected] OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Cloud Messaging with OpenSplice DDS

description

The Cloud computing trend is increasingly commoditizing and delocalizing several different elements of the computing stack. It all started with bare hardware, but we are now at the point where organizations are starting to recognize the benefits of cloud messaging, either in the form of public or private clouds.This presentation introduce the use case for cloud messaging, the key requirements it poses on messaging technology and will showcase how OpenSplice DDS uniquely addresses these needs. The webcast will conclude with a demo showing how OpenSplice DDS could be used to quickly build a simple twitter application.A WebEx recording for this presentation is available at http://bit.ly/1Sreg

Transcript of Cloud Messaging with OpenSplice DDS

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