Cloud Messaging with OpenSplice DDS

2,865 views

Published on

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

Published in: Technology
  • Be the first to comment

Cloud Messaging with OpenSplice DDS

  1. 1. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging with OpenSplice DDS Angelo Corsaro, Ph.D. Chief Technology Officer OMG DDS SIG Co-Chair PrismTech angelo.corsaro@prismtech.com
  2. 2. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./traditional-messaging
  3. 3. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD 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.
  4. 4. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD 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.
  5. 5. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./cloud-messaging
  6. 6. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging [1/2] ‣ Cloud Messaging allows messaging to be promoted to the rank of an “Internet Service” ‣ Applications can be completely shielded from the specifics of REST/HTTP the messaging DDSI/RTPS XMPP ‣ Applications “connect” to the Cloud Messaging XMPP platform using a wide DDSI/RTPS REST/HTTP variety of protocols, e.g., HTTP, DDSI, XMPP, etc.
  7. 7. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging [2/2] ‣ Cloud Providers supply the infrastructure required to build a Cloud Messaging solution ‣ The Cloud Messaging providers supply the messaging platform REST/HTTP and the infrastructure as a DDSI/RTPS XMPP consumable service can e xploit ne: you oud XMPP om-Li helf cl DDSI/RTPS Bott he-s ur own REST/HTTP t an off- ing or roll yo m essag
  8. 8. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging Desirable Properties Scalability ‣ Effectively support localized as well as global applications potentially spanning over the whole globe
  9. 9. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging Desirable Properties Throughput ‣ Cope effectively with single-stream as well Messaging Bus as aggregated high throughputs Cloud Messaging Internet Messaging Bus Bank Exchange
  10. 10. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging Desirable Properties QoS Control ‣ Provide control over key QoS impacting resource usage (e.g. network bandwidth) as well as end-to-end message deliver
  11. 11. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging Desirable Properties Push/Pull/Push-Pull Communication ‣ To allow the optimization of the performance/resource-usage trade- off, the cloud messaging should support different notification Push-Pull Pull paradigms Push Push
  12. 12. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Cloud Messaging Desirable Properties Connectivity ‣ Provide access to the messaging service via multiple REST/HTTP protocols, and technologies, DDSI/RTPS such as, REST, SOAP, HTTP, XMPP DDS/RTPS. XMPP, etc. XMPP DDSI/RTPS REST/HTTP
  13. 13. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./dds
  14. 14. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG DDS The 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.
  15. 15. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD DDS Recommendations ! The infrastructure evolution cycle is churning… – New -> Emerging -> Standard -> Commodity – Middleware is emerging as OS declines ! …DDS is maturing… Increasingly Mandated/Recommended by Administrations – OMG focus ‣ US Navy: Open Architecture – Wire spec – Tools ‣ DISR/DISA: Net-centric Systems integration – Enterprise – Multiple products fielded ‣ EuroControl: Air Traffic Control applications! – Deployed Center Operational Interoperability! …and adoption is on the rise – Navy ‣ QinetiQ & MILVA: –Recommending DDS for Vehicles DISR Electronic ArchitectureFCS/SoSCOE –
  16. 16. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./opensplice-on-the-cloud
  17. 17. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD OpenSplice DDS on the Cloud ‣ Addresses keys properties Application required to implement a good Cloud Messaging Infrastructure Ownership Durability Content Subscription API ‣ Open and Interoperable Minimum Profile International Standard (API + Data Centric Publish/Subscribe (DCPS) WireProtocol) Protocol Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol ‣ High quality Open Source Implementation with large UDP/IP deployed base
  18. 18. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Scalability ATCC ‣ OpenSplice DDS has proven ATCC Reims Brest ATCC Paris to be scalable from small ATCC embedded systems to system Zurich ATCC Geneve of systems like the CoFlight ATCC ATCC ATCC Milano Padova Bordeaux Air Traffic Control System ATCC Aix-en- Provence ‣ OpenSplice DDS v5.4 has ATCC Roma several new optimizations ATCC Brindisi that further its scalability over very large systems
  19. 19. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Throughput -./0/1/23' 456/' #+(+%++' &&++%++' ")(%&!' ""&%,&'&+++%++' $+(+%++' "*(%)+' !"#$%&#' "!+%++' "++%++' ‣ OpenSplice DDS can )"#%*)' )$,%$*' !+(+%++' )++%++' deliver millions of &'$($)$*+% *!#%,&' !"#$% ,+(+%++' *++%++' ()(!%(*' messages per second on (+(+%++' &")&%+)' #++%++' traditional COTS HW &+(+%++' $&"%,,' &!(,%!)' $++%++' ),,%$#' !++%++' ,*+%&)' !,*%))' ,($%!+' (("%!"' &&)%*$' $"%"$' ,+%($' ,++%++' (+%++' )' &#' ,(' #!' &()' ($#' $&(' &+(!' (+!)' !+"#' !*$$,(*%-./*%
  20. 20. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS ‣ DDS provides a rich set of QoS that allow control of: ‣ resource usage, ‣ end-to-end data delivery, and ‣ data availability
  21. 21. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS
  22. 22. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS [ex-1] Cloud Messaging Internet Bank Exchange ‣ Batching ‣ Data Durability ‣ Priority ‣ Redundancy ‣ Deadline ‣ Data History
  23. 23. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS ‣ DDS provides a rich set of QoS that allow control of: ‣ resource usage, ‣ end-to-end data delivery, and ‣ data availability
  24. 24. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS [ex-2] ‣ Temporal Filtering Cloud ‣ Batching Messaging Internet ‣ Data History
  25. 25. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Communication Model odel liver y my the ata de neral b imal d s in ge T he opt epend twork and netraints ‣ DDSI/RTPS supports multiple delivery d application cons models: ‣ Push: Data is pushed to subscribers ‣ Push-Pull: Notification of new data are pushed to subscriber which in turn pull data when needed Cloud ‣ The Pull delivery model is available Messaging supported by the Web-Enabled DDS Internet protocols (e.g. via REST)
  26. 26. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Connectivity ‣ OpenSplice DDS Apache Connector provides you REST/HTTP access to DDS from the DDSI/RTPS 80 connectors (REST, XMPP JMS, AMQP, XMPP, HTTP, DBMS, etc.) currently XMPP DDSI/RTPS available in Apache REST/HTTP Camel http://fusesource.com/wiki/display/CAMELOPENSPLICE/Home
  27. 27. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./putting-it-all-together
  28. 28. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD XM PP DDSI/RTPS RE S T /H TT P DDSI/RTPS RE ST /HT P T OpenSplice on the Cloud
  29. 29. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./tweetter
  30. 30. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD A “Tweet” with DDS Topic: Tweet ‣ Unit of information Name exchanged between Publisher and Subscribers. Type Topic QoS ‣ An association between a unique name, a type and { TweetType a QoS setting Reliable, Persistent, ... }
  31. 31. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD A “Tweet” with DDS Topic Type: ‣ Type describing the data associated with one or more struct TweetType { Topics string userId; string tweet; ‣ A Topic type can have a key }; #pragma keylist Tweet userId represented by an arbitrary number of attributes ‣ Expressed in IDL (or XML)
  32. 32. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tweeting With DDS @bird @ocell ‣ Tweeters come... DDS Global Data Space ‣ Tweeters go... @oiseau @lintu @lind @vogel
  33. 33. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tweeting With DDS {@ocell, @oiseau} @bird @ocell ‣ Tweeters follow DDS (subscribe) to Global Data Space @oiseau @lintu other tweeters {@vogel} {@oiseau, @bird, ocell} @lind @vogel
  34. 34. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tweeting With DDS {@ocell, @oiseau} @birdTopic @ocellTopic @ocell ‣ Each Tweeter @bird can be @oiseauTopic represented @lintuTopic with a unique @oiseau @lindTopic @lintu topic {@vogel} {@oiseau, @bird, ocell} @vogelTopic @lind @vogel
  35. 35. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tweeting With DDS {@ocell, @oiseau} ‣ ...or all Tweeters use the same @ocell @bird topic ‣ Content @TweetTopic filtering or @oiseau @lintu queries are {@vogel} {@oiseau, @bird, ocell} used to extract relevant data @vogel @lind
  36. 36. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tweeting With DDS Note: D DS pa rtit ions c by usi ng an ied be specif er.* e.g . tweet wildc ards, {@ocell, @oiseau} ‣ ...or each tweeter.bird tweeter.ocel Tweeter can @TweetTopic @TweetTopic @ocell be represented @bird with a unique @TweetTopic tweeter.oiseau partition @TweetTopic @oiseau @lintu @TweetTopic tweeter.lintu ‣ All tweeters {@vogel} tweeter.lind {@oiseau, @bird, ocell} use the same @TweetTopic topic tweeter.vogel @lind @vogel
  37. 37. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tweeting With DDS in C++ Writing Tweets Reading Tweets dds::Topic<TweetType> topic("TweetTopic"); dds::Topic<TweetType> topic("TweetTopic"); std::vector<std::string> partitions = { dds::PublisherQos pubQoS; "tweeter.ocel", pubQoS.set_partition("Tweeter.bird"); "tweeter.oiseau" dds::Publisher pub(pubQoS); }; dds::PublisherQos pubQoS; dds::DataWriter<TweetType> dw(pub); pubQoS.set_partition(partitions); dds::Publisher pub(pubQoS); TweetType tt = { "@bird", dds::DataReader<TweetType> dr(pub); "Writing next-gen tweeter in DDS" }; std::vector<TweetType> data; std::Vector<SampleInfo> info; dw.write(tt); dr.read(data, info);
  38. 38. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD ./demo
  39. 39. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD 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”
  40. 40. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD nice -20 ./questions
  41. 41. OpenSplice DDS Delivering Performance, Openness, and Freedom http://www.opensplice.com/ References http://www.opensplice.org/ http://www.slideshare.net/angelo.corsaro emailto:opensplicedds@prismtech.com http://bit.ly/1Sreg http://twitter.com/acorsaro/ http://www.youtube.com/OpenSpliceTube http://opensplice.blogspot.com

×