building and scaling internet of things applications with vortex cloud
DESCRIPTION
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.TRANSCRIPT
Building and Scaling Internet of Things Applications with
Angelo Corsaro, PhD Chief Technology Officer
- Cloud
Cop
yrig
ht P
rism
Tech
, 201
4Cloud 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
Cop
yrig
ht P
rism
Tech
, 201
4
E-Health
Hospital A
AnalyticsBig Data Store
Hospital B
?
Cop
yrig
ht P
rism
Tech
, 201
4
Smart City
?
Vortex
Cop
yrig
ht P
rism
Tech
, 201
4
The Vortex Platform
Vortex enable seamless, ubiquitous, efficient and timely data sharing across mobile, embedded, desktop, cloud and web applications
OpenSpliceEnterprise
Cop
yrig
ht P
rism
Tech
, 201
4
One Standard, One set of Tools, One Goal — Ubiquitous Data Sharing
The Vortex Platform
VORTEXWeb
VORTEXLite
VORTEXGateway
VORTEXCloud
PrivateClouds
VORTEXTools
• Insight • Record/Replay • Tuner • Tester • Configurator
OpenSpliceEnterprise
VORTEXCafé
Vortex Cloud
Cop
yrig
ht P
rism
Tech
, 201
4Vortex Cloud provides a universally accessible “Internet Service” for sharing data between DDS-enabled applications
Vortex Cloud
Cop
yrig
ht P
rism
Tech
, 201
4
!
Elastic and Fault-Tolerant
Public/Private Clouds Deployments
Unicast and Multicast Communication
Source Filtering
Customisable Load-Balancing
Vortex Cloud
Cop
yrig
ht P
rism
Tech
, 201
4
!
Efficient Binary Protocol (DDSI)
Multiple Transports:
- UDP/IP
- TCP/IP
- WebSockets
Connectivity to MQTT, AMQP, etc., via Vortex Gateway
Vortex Cloud
Architecture
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
App1
DWX
DRY
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
LBApp1
DWX
DRY
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
App1
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
(DWX,DRY )
App1
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
(GUID1, DWX,DRY )App1
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
App2
DWY
DRX
App1 (GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
App1
LBApp2
(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
App2App1 (GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
(DWY,DRX ) App2App1 (GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
(GUID2, DWY,DRX )
App2App1 (GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
Match!
Match!
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
App2
DWA
DRB
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App2
LB
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App2(DWA,DRB )
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App3
(GUID3, DWA,DRB )App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App3
(GUID3, DWA,DRB )App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App3
(GUID3, DWA,DRB )App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App3
(GUID3, DWA,DRB )App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
LBApp1
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App3
(GUID3, DWA,DRB )App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )App1
(DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Discovery Service
Discovery Service
DWX
DRY
DWY
DRX
DWA
DRB
App3
(GUID3, DWA,DRB )App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )App1
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
Match!
Match!
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
App1App2
(RS2,2, GUID1, GUID2)
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
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 )
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
(RS2,2, GUID1, GUID2)
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
(RS2,2, GUID1, GUID2)
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
(RS2,2, GUID1, GUID2)
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
(RS2,2, GUID1, GUID2)
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
(RS2,1, GUID1, GUID2)
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
(RS2,1, GUID1, GUID2)
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
(RS2,1)(RS2,1)
Cop
yrig
ht P
rism
Tech
, 201
4
Routing Service
Discovery Service Routing Service
DWX
DRY
DWY
DRX
App1App2
(GUID2, DWY,DRX )(GUID1, DWX,DRY )
(RS2,2, GUID1, GUID2)
Deployments
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
Cop
yrig
ht P
rism
Tech
, 201
4
VORTEXCloud
IaaS
Cop
yrig
ht P
rism
Tech
, 201
4
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
Cop
yrig
ht P
rism
Tech
, 201
4
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
Management
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
Cloud Management Tool
Live Demo!http://demo-eu.prismtech.com:9000
bit.ly/vortex-chat
Cop
yrig
ht P
rism
Tech
, 201
4
Vortex Demo
VORTEXCafé
VORTEXCafé
VORTEXWeb
VORTEXCloud
Private Clouds
VORTEXCafé
Cop
yrig
ht P
rism
Tech
, 201
4
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
Cop
yrig
ht P
rism
Tech
, 201
4
Application Configuration
java \ -Dddsi.network.transport=tcp \ -Dddsi.discovery.tcp.peers=88.80.185.102:7400 \ -Dddsi.discovery.externalNetworkAddresses=none \ [email protected] \ -DrefreshTimeout=40 \ -Dddsi.discovery.externalNetworkAddresses=none \ -jar ./ishapes-2.0.0-SNAPSHOT.jar &>/dev/null
Cop
yrig
ht P
rism
Tech
, 201
4Vortex 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
Thanks!