Building and Scaling Internet of Things Applications with Vortex Cloud

2,999 views

Published on

Cloud Messaging is one of the most critical elements at the core of any Internet of Things and Industrial Internet application. The degree of efficiency and connectivity provided by the cloud messaging technology usually drives the overall efficiency and reach of the entire system.

Vortex Cloud is a Cloud Messaging implementation that targets public as well as private clouds and enables embedded, mobile, web, enterprise and cloud applications to efficiently and securely share data across the Internet. Vortex Cloud has been designed ground up to address easy of connectivity, wire-efficiency, scalability, elasticity and security.

This presentation will (1) introduce the Vortex Cloud architecture and explain how it provides elasticity and fault-tolerance, (2) explain the different deployment models supported for public-cloud, private-cloud and no-cloud (3) get you started developing a simple Internet of Things Application.

Published in: Technology

Building and Scaling Internet of Things Applications with Vortex Cloud

  1. 1. Building and Scaling Internet of Things Applications with Angelo  Corsaro,  PhD   Chief  Technology  Officer   angelo.corsaro@prismtech.com - Cloud
  2. 2. CopyrightPrismTech,2014 Cloud Messaging is a key architectural element at the foundation of any Internet of Things (IoT) and Industrial Internet (I2) Systems As the architectural element providing connectivity, its time and space efficiency, elasticity, and fault-tolerance is key in operating and scaling Internet of Things and Industrial Internet Applications Cloud Messaging
  3. 3. CopyrightPrismTech,2014 E-Health Hospital A Analytics Big  Data  Store Hospital B ?
  4. 4. CopyrightPrismTech,2014 Smart City ?
  5. 5. Vortex
  6. 6. CopyrightPrismTech,2014 The Vortex Platform Vortex enable seamless, ubiquitous, efficient and timely data sharing across mobile, embedded, desktop, cloud and web applications OpenSplice Enterprise
  7. 7. CopyrightPrismTech,2014 One Standard, One set of Tools, One Goal — Ubiquitous Data Sharing The Vortex Platform VORTEX Web VORTEX Lite VORTEX Gateway VORTEX Cloud Private Clouds VORTEX Tools • Insight   • Record/Replay   • Tuner   • Tester   • Configurator OpenSplice Enterprise VORTEX Café
  8. 8. Vortex Cloud
  9. 9. CopyrightPrismTech,2014 Vortex Cloud provides a universally accessible “Internet Service” for sharing data between DDS-enabled applications Vortex Cloud
  10. 10. CopyrightPrismTech,2014 ! Elastic and Fault-Tolerant Public/Private Clouds Deployments Unicast and Multicast Communication Source Filtering Customisable Load-Balancing Vortex Cloud
  11. 11. CopyrightPrismTech,2014 ! Efficient Binary Protocol (DDSI) Multiple Transports: - UDP/IP - TCP/IP - WebSockets Connectivity to MQTT, AMQP, etc., via Vortex Gateway Vortex Cloud
  12. 12. Architecture
  13. 13. CopyrightPrismTech,2014 At its core, Vortex-Cloud is made by two building blocks: Discovery Service: Deals with transparently mediating and scaling the match between applications as well as establishing connectivity Routing Service: Efficiently and scalable mediates the communication between DDS applications Discovery and Routing Services Discovery Service Routing Service
  14. 14. CopyrightPrismTech,2014 The Discovery service, is an elastic and fault tolerant service that: Controls access to information Matches DataReaders and DataWriters while minimising the discovery information propagated to end applications Establish the optimal communication path between communicating end-points Manages and load-balance the Routing Service instances For a generic DDS application, the Discovery Service is completely transparent Discovery Service
  15. 15. CopyrightPrismTech,2014 Discovery Service Discovery Service
  16. 16. CopyrightPrismTech,2014 Discovery Service Discovery Service App1 DWX DRY
  17. 17. CopyrightPrismTech,2014 Discovery Service Discovery Service LB App1 DWX DRY
  18. 18. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY App1
  19. 19. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY (DWX,DRY ) App1
  20. 20. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY (GUID1, DWX,DRY ) App1
  21. 21. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY App2 DWY DRX App1 (GUID1, DWX,DRY )
  22. 22. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX App1 LB App2 (GUID1, DWX,DRY )
  23. 23. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX App2 App1 (GUID1, DWX,DRY )
  24. 24. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX (DWY,DRX ) App2 App1 (GUID1, DWX,DRY )
  25. 25. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX (GUID2, DWY,DRX ) App2 App1 (GUID1, DWX,DRY )
  26. 26. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX Match! Match! App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  27. 27. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX App2 DWA DRB App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  28. 28. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App2 LB App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  29. 29. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App2 (DWA,DRB ) App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  30. 30. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App3 (GUID3, DWA,DRB )App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  31. 31. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App3 (GUID3, DWA,DRB )App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  32. 32. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App3 (GUID3, DWA,DRB )App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  33. 33. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App3 (GUID3, DWA,DRB ) App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) LB App1
  34. 34. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App3 (GUID3, DWA,DRB ) App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) App1 (DWX,DRY )
  35. 35. CopyrightPrismTech,2014 Discovery Service Discovery Service DWX DRY DWY DRX DWA DRB App3 (GUID3, DWA,DRB ) App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) App1
  36. 36. CopyrightPrismTech,2014 The Routing service, is an elastic and fault tolerant service that: Efficiently routes information from producer to consumers Provides configurable decoupling between producing and consuming applications For a generic DDS application, the Routing Service is completely transparent Routing Service
  37. 37. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX Match! Match! App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  38. 38. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX App1 App2 (RS2,2, GUID1, GUID2) (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  39. 39. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX (RS2,2) (RS2,2)App1 App2 (RS2,2, GUID1, GUID2) (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  40. 40. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) (RS2,2, GUID1, GUID2)
  41. 41. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) (RS2,2, GUID1, GUID2)
  42. 42. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) (RS2,2, GUID1, GUID2)
  43. 43. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX (RS2,2, GUID1, GUID2) App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  44. 44. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX (RS2,1, GUID1, GUID2) App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY )
  45. 45. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX (RS2,1, GUID1, GUID2) App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) (RS2,1) (RS2,1)
  46. 46. CopyrightPrismTech,2014 Routing Service Discovery Service Routing Service DWX DRY DWY DRX App1 App2 (GUID2, DWY,DRX ) (GUID1, DWX,DRY ) (RS2,2, GUID1, GUID2)
  47. 47. Deployments
  48. 48. CopyrightPrismTech,2014 Through configuration, Vortex Cloud can be used in a wide cast of deployment scenarios. The main deployment cases can be classified as: Single or Multi site (region) IaaS deployment Federated Deployment In-System Deployment Deployment Scenarios
  49. 49. CopyrightPrismTech,2014 In IaaS deployments Vortex-Cloud is deployed on a private or public IaaS infrastructure such as: - Amazon EC2 - Linode - Digital Ocean - Google Cloud Platform - Microsoft Azure - … Vortex-Cloud can be deployed as a single instance or federated across IaaS regions or even providers (e.g. spanning across Linode and EC2) IaaS Deployment
  50. 50. CopyrightPrismTech,2014
  51. 51. CopyrightPrismTech,2014 VORTEX Cloud IaaS
  52. 52. CopyrightPrismTech,2014
  53. 53. CopyrightPrismTech,2014 IaaS deployment is straight forward First you need to decide how many Discovery and Routing service instance to run — You need two instance of each to ensure fault- tolerance Then you simply need to start the instance with the proper transport and end-point configuration IaaS Deployment Configuration Discovery Service Routing Service
  54. 54. CopyrightPrismTech,2014 Deployment of a Vortex-Cloud instance on a Linode server 88.80.185.102: Example Configuration java -jar -Dlog.level=INFO -Dcloud.discovery.user.tcp.port=7400 -Dcloud.discovery.user.externalNetworkAddresses=88.80.185.102:7400 -Dcloud.discovery.services.tcp.port=6400 discovery-service.jar java -jar -Dlog.level=INFO -Dcloud.routing.user.tcp.port=5000 -Dcloud.routing.user.externalNetworkAddresses=88.80.185.102:5000 -Dcloud.routing.services.tcp.port=5005 -Dcloud.routing.services.tcp.peers=88.80.185.102:6400 routing-service.jar
  55. 55. CopyrightPrismTech,2014 Federated deployment allows to efficiently exchange data between systems without relying on a centralised IaaS infrastructure This deployment can be thought-of as if the servers typically available on a IaaS platform were to be deployed on the edge of the systems being integrated Another way of looking at this deployment is as a special kind of multi-site private cloud deployment in which a single instance of Vortex-Cloud is configured to span multiple sites Federated Deployment
  56. 56. CopyrightPrismTech,2014
  57. 57. CopyrightPrismTech,2014 The federated deployment makes it possible to isolate and decouple subsystems along to transparently integrate them Sub-systems can take advantage of multicast, while communication among Vortex Cloud can be carried over unicast (either UDP/IP or TCP/IP) Federated deployment can be used to transparently connect to a Vortex-Cloud instance deployed on a IaaS an entire subsystem Deployment Options
  58. 58. Management
  59. 59. CopyrightPrismTech,2014 Management of Vortex-Cloud instances will be fully supported through Vortex- Insight In Vortex v1.0 a command line tool is available to inspect the status of an instance of Vortex Cloud - Discovered DataReader and DataWriters - Discovery Service Instances - Routing Service Instances - Routes Vortex Cloud Management
  60. 60. CopyrightPrismTech,2014 Cloud Management Tool
  61. 61. Live Demo! http://demo-eu.prismtech.com:9000 bit.ly/vortex-chat
  62. 62. CopyrightPrismTech,2014 Vortex Demo VORTEX Café VORTEX Café VORTEX Web VORTEX Cloud Private  Clouds VORTEX Café
  63. 63. CopyrightPrismTech,2014 Deployment of a Vortex-Cloud instance on a Linode server 88.80.185.102: Cloud Configuration java -jar -Dlog.level=INFO -Dcloud.discovery.user.tcp.port=7400 -Dcloud.discovery.user.externalNetworkAddresses=88.80.185.102:7400 -Dcloud.discovery.services.tcp.port=6400 discovery-service.jar java -jar -Dlog.level=INFO -Dcloud.routing.user.tcp.port=5000 -Dcloud.routing.user.externalNetworkAddresses=88.80.185.102:5000 -Dcloud.routing.services.tcp.port=5005 -Dcloud.routing.services.tcp.peers=88.80.185.102:6400 routing-service.jar
  64. 64. CopyrightPrismTech,2014 Application Configuration java -Dddsi.network.transport=tcp -Dddsi.discovery.tcp.peers=88.80.185.102:7400 -Dddsi.discovery.externalNetworkAddresses=none -Ddds.partition=demo@vortex.io -DrefreshTimeout=40 -Dddsi.discovery.externalNetworkAddresses=none -jar ./ishapes-2.0.0-SNAPSHOT.jar &>/dev/null
  65. 65. CopyrightPrismTech,2014 Vortex enable seamless, ubiquitous, efficient and timely data sharing across mobile, embedded, desktop, cloud and web applications It is the first platform to address the data-sharing needs of Business Critical IoT, and Industrial Internet Systems Vortex is fully interoperable with DDS compliant implementations Concluding Remarks
  66. 66. Thanks!

×