SlideShare a Scribd company logo
1 of 43
Download to read offline
Angelo Corsaro, PhD
Chief Technology Officer
angelo.corsaro@prismtech.com
Beyond Cloud Messaging…
Cloud
CopyrightPrismTech,2014
Infrastructure as as Service (IaaS): Elastic
compute fabric that you can “consume” as
opposed to own and manage, e.g., Azure,
Amazon EC2, Google Compute Engine,
Linode, etc.
Platform as a Service (PaaS): Enhances
IaaS with a series of managed middleware
and storage services ready to be “consumed”
by your application, e.g., Azure Service Bus,
Amazon Dynamo, Vortex Cloud
Software as a Service (IaaS): A full
application as a service available for you to
be consumed, e.g., SalesForces
Cloud Computing
The main idea behind cloud computing incrementally reduce the number of layers that
you are required to own and manage in order to build applications
CopyrightPrismTech,2014
Cloud Messaging replaces local
infrastructure and integration
technologies with an Ubiquitous
Internet Service
Cloud Messaging allows companies
to elastically and transparently deal
with changes of workload and scale
Cloud Messaging
Cloud Messaging provides a ubiquitous and universally
accessible “Internet Service” for distributing messages from
producers to consumers
CopyrightPrismTech,2014
Virtually all the Cloud Messaging implementation available on the market focus on:
Reliable Messaging
Device-to-Cloud communication pattern, i.e., no cloud no communication
Low update rates
Additionally, a large set of Cloud Messaging implementations impose:
HTTP-based communication, e.g. Amazon SQS
Limit on message payload
Limit on deployment across “regions”
Limit on the Deployment/Licensing model, e.g. no OEM options
“Traditional” Cloud Messaging
CopyrightPrismTech,2014
“Traditional” Cloud messaging was designed to address the
requirements of IT systems. As such its main focus is on
highly reliable messaging and device-to-cloud interactions
The surge of the Internet of Things has posed a series of new
requirements for Cloud Messaging, such as:
- Real-Time Data Delivery, i.e. freshness of data is more
important than its reliability
- High Data Rates
- Last Value Reliability
- Support for Cloud and Fog Computing architectures
- Support for embedded and real-time platforms
- Network Efficiency
Beyond Traditional Cloud Messaging?
Vortex Cloud
CopyrightPrismTech,2014
VORTEX Cloud provides
a universally accessible
“Internet Service” for
sharing data between
DDS-enabled
applications
VORTEX Cloud
CopyrightPrismTech,2014
Elastic and Fault-Tolerant
Public/Private Clouds Deployments
Reliable and Best-Effort Data
Sharing
Last value Reliability
Unicast and Multicast
Communication
Support for enterprise, embedded,
and mobile platforms
Source Filtering
Customisable Load-Balancing
VORTEX Cloud
CopyrightPrismTech,2014
Efficient Binary Protocol
(DDSI)
Multiple Transports:
- UDP/IP
- TCP/IP
- WebSockets
C/C++, Java, Scala,
JavaScript, CoffeScript, and
C# API
Connectivity to MQTT, AMQP,
etc., via VORTEX Gateway
VORTEX Cloud
CopyrightPrismTech,2014
VORTEX supports both
the Cloud and the Fog
Computing Paradigm
VORTEX natively
supports:
- Device-to-Device
Communication
- Device-to-Cloud
Communication
Cloud, Fog and Edge Computing
Cloud Computing
Fog Computing
Device-to-Cloud
Communication
Device-to-Device
Communication
Fog-to-Cloud
Communication
Cloud-to-Cloud
Communication
Device-to-Device
Communication
Collect | Store | Analyse | Share
Collect | Store | Analyse | Share
Fog Computing
Fog Computing
CopyrightPrismTech,2015
Performance
Device-2-Device
• Peer-to-Peer Intra-core latency 

as low as 8 µs
• Peer-to-Peer latency as low as 

30 µs
• Point-to-Point throughput 

well over 2.5M msg/sec
Device-2-Cloud
• Routing latency as low as 4 µs
• Linear scale out
• 44K* msgs/sec with a single
router, 4x times more the
average Tweets per second in
the world (~6000 tweets/sec)!
*2048 bytes message payload
Deployment Models
CopyrightPrismTech,2014
Cloud Computing
Device-to-Cloud
Communication
Peer-to-Peer
(Brokerless)
Device-to-Device
Communication
Device communicate
peer-to-peer within a fog-
domain and through
Cloud across fog-
domains
Some device concurrently
communicate with peers
and the cloud
Device-to-Cloud
Communication
Device-to-Cloud
Communication
CopyrightPrismTech,2014
Cloud and Fog Computing
Device communicate
peer-to-peer within a fog-
domain
A Vortex-Fog controls
which data is exchanged
with the could
Device-to-Cloud
Communication
Peer-to-Peer
(Brokerless)
Device-to-Device
Communication
Fog Computing Fog Computing
Fog Computing
CopyrightPrismTech,2014
Fog Computing
Peer-to-Peer
(Brokerless)
Device-to-Device
Communication
Fog domain are
transparently federated
by Vortex-Fog instances
A Vortex-Fog controls
which data is exchanged
with the could
Fog Computing
Fog Computing
Fog Computing
Vortex Platform
CopyrightPrismTech,2015
Specialised device implementations
optimally addressing requirements of
OT and IT platforms
VORTEX can readily deal with data
ingestion seamlessly integrating with
other protocols, e.g. MQTT, CoAP, etc.
VORTEX leverages the DDS standard
for interoperability and uniquely
extends it with support for Internet
Scale systems, mobility and Web 2.0
applications
The VORTEX Platform
PaaS/MaaS
Vortex Cloud Abstraction
CopyrightPrismTech,2014
Vortex provides a Distributed Data
Space abstraction where
applications can autonomously
and asynchronously read and
write data
Its built-in dynamic discovery
isolates applications from
network topology and
connectivity details
DDS’ Data Space is completely
decentralised
High Level Abstraction
DDS Global Data Space
...
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
CopyrightPrismTech,2014
DDS supports the definition of
Common Information Models.
These data models allow to
naturally represent physical and
virtual entities characterising the
application domain
DDS types are extensible and
evolvable, thus allowing incremental
updates and upgrades
Data Centricity
CopyrightPrismTech,2014
A Topic defines a domain-wide information’s
class
A Topic is defined by means of a (name, type,
qos) tuple, where
• name: identifies the topic within the
domain
• type: is the programming language type
associated with the topic. Types are
extensible and evolvable
• qos: is a collection of policies that
express the non-functional properties of
this topic, e.g. reliability, persistence, etc.
Topic
Topic
Type
Name
QoS
struct TemperatureSensor {
@key
long sid;
float temp;
float hum;
}
CopyrightPrismTech,2014
Vortex “knows” about
application data types
and uses this
information provide
type-safety and
content-based routing
Content Awareness
struct TemperatureSensor {
@key
long sid;
float temp;
float hum;
}
sid temp hum
101 25.3 0.6
507 33.2 0.7
913 27,5 0.55
1307 26.2 0.67
“temp > 25 OR hum >= 0.6”
sid temp hum
101 25.3 0.6
507 33.2 0.7
1307 26.2 0.67
Type
TempSensor
CopyrightPrismTech,2014
For data to flow from a DataWriter (DW)
to one or many DataReader (DR) a few
conditions have to apply:
The DR and DW domain participants
have to be in the same domain
The partition expression of the DR’s
Subscriber and the DW’s Publisher
should match (in terms of regular
expression match)
The QoS Policies offered by the DW
should exceed or match those
requested by the DR
Quality of Service
Domain
Participant
DURABILITY
OWENERSHIP
DEADLINE
LATENCY BUDGET
LIVELINESS
RELIABILITY
DEST. ORDER
Publisher
DataWriter
PARTITION
DataReader
Subscriber
Domain
Participant
offered
QoS
Topic
writes reads
Domain Id
joins joins
produces-in consumes-from
RxO QoS Policies
requested
QoS
Building App with Vortex
Example1: Strong Typing
and Extensibility
CopyrightPrismTech,2015
The first step required to build a Vortex application is to define the kind of
information associated with a Topic
This can be done using either IDL or Google Protocol Buffer
Topic Definition
CopyrightPrismTech,2015
Temperature Sensor
message TempSensor {

option (.omg.dds.type) = {name: "dds.TempSensor"};

required string sid = 1 [(.omg.dds.member).key = true];

required float temp = 2;

}

struct TempSensor {

string sid;

float temp;

};
#pragma keylist TempSensor sid

IDL Google Protocol Buffer
CopyrightPrismTech,2015
Data Producer




object TempSensorPub {

val builder = TempSensor.newBuilder()



def main(args: Array[String]): Unit = {

if (args.length > 1) {

val sid = args(0)

val period = args(1).toInt



val topic = Topic[TempSensor]("TempSensor")

val dw = DataWriter[TempSensor](topic)



while (true) {

val s = readTempSensor(sid)

dw.write(s)

println(show (s))

Thread.sleep(period)

}

}

else {

println("USAGE:ntTempSensorPub <sid> <period>")

}

}

}

def readTempSensor(sid: String): TempSensor = {

val minTemp = -20

val tdelta = 100;

val minHum = 0.1F

val hdelta = 9



val t = (tdelta*Math.random()).toInt + minTemp

val h = (hdelta*Math.random()).toInt + minHum



builder.setSid(sid)

builder.setTemp(t)

builder.setHum(h)

builder.build()

}

CopyrightPrismTech,2015
Data Consumer


object TempSensorSub {

def main(args: Array[String]): Unit = {



val topic = Topic[TempSensor]("TempSensor")

val dr = DataReader[TempSensor](topic)



dr.listen {

case DataAvailable(_) =>

dr.take()

.filter(s => s.getData != null)

.map(_.getData)

.foreach(ts => println(show(ts)))

}

Thread.currentThread().join()

}

}

CopyrightPrismTech,2015
Suppose that we want now to use a more advanced sensor that provides an
estimate of the humidity in addition to the temperature
At the same time, while extending the type of our Temperature Sensor we
want older application to continue to work seamlessly with the new sensor
Dealing with Type Evolution
CopyrightPrismTech,2015
The humidity attribute is
declared optional to
allow older consumer to
match this type
At the same time, new
consumer will be able to
detect that old
temperature sensor are
not providing humidity
value
Extended Temperature Sensor Type
message TempSensor {

option (.omg.dds.type) = {name: "dds.TempSensor"};

required string sid = 1 [(.omg.dds.member).key = true];

required float temp = 2;

optional float hum = 3;

}

Example2: Real-Time Web
Applications
CopyrightPrismTech,2015
Vortex Cloud provides a very effective way of sharing data between HTML5/
JavaScript Applications
Additionally, Vortex Cloud can be used to seamlessly share data between
Web and embedded applications
Real-Web Apps with Vortex Cloud
CopyrightPrismTech,2014
Let’s see the steps
required to build a Web
Chat that may look like
this
But before let’s play with it
a bit
Web Chat
demo.prismtech.com
CopyrightPrismTech,2014
When using Vortex Cloud with
web application i topic types
can be declared JavaScript/
CoffeScript
Topic Declaration
# The post type used by the chat application
class Post
constructor: (@name, @msg) ->
CopyrightPrismTech,2014
The Chat CoffeeScript
# Create useful alias for coffez and jQuery
root = this
z_ = coffez
$ = jQuery
server = “ws://demo-eu.prismtech.com:9999"
# The post type used by the chat application
class Post
constructor: (@name, @msg) ->
# Create the runtime
runtime = new dds.runtime.Runtime()
# Define the Post topic used to send and receive chat posts
postTopic = new dds.Topic(0, "Post")
# Define the QoS for the DataReader/Writer
drQos = new dds.DataReaderQos(dds.Reliability.Reliable)
dwQos = new dds.DataWriterQos(dds.Reliability.Reliable)
CopyrightPrismTech,2014
The Chat CoffeeScriptpostReader = z_.None
postWriter = z_.None
avatar = "avatar" + Math.floor((Math.random() * 10000) + 1);
# Add post to the chat and format it to show it is from me
createMyPost = (post) -> ...
# Add post to the chat and format it to show it is from others
createOtherPost = (post) -> ...
# Add post to the chat and format it to show it is from others
processPost = () ->
msg = $("#ChatMessage").val()
post = new Post(avatar, msg)
# Publish the post (notice that postWriter is an Option Monad)
# Take a look at (http://en.wikibooks.org/wiki/Haskell/Understanding_monads/Maybe)
# or (http://www.scala-lang.org/api/2.11.0/index.html#scala.Option)
postWriter.map((dw) -> dw.write(post))
$("#ChatMessageList").append(createMyPost(post))
$("#ChatMessage").val("")
CopyrightPrismTech,2014
The Chat CoffeeScript
# Deal with click and keys events…
$("#ChatMessage").keyup(
(e) ->
if(e.keyCode is 13) then processPost()
)
$("#SendMsgButton").click(
(evt) ->
console.log("Send Button has been clicked")
processPost()
)
$("#SelectAvatarButton").click(
(evt) ->
s = $("#AvatarName").val()
if (s isnt "")
avatar = s
)
CopyrightPrismTech,2014
The Chat CoffeeScript
# Handle the runtime onconnect event
runtime.onconnect = () ->
# Create DataReader and DataWriter for our posts
dr = new dds.DataReader(runtime, postTopic, drQos)
dw = new dds.DataWriter(runtime, postTopic, dwQos)
# Register a listener with the data reader to post messages
# in our chat
dr.addListener(
(post) ->
if (post.name isnt avatar)
$("#ChatMessageList").append(createOtherPost(post)))
postReader = z_.Some(dr)
postWriter = z_.Some(dw)
connectRuntime = () ->
$("#AvatarName").val(avatar)
runtime.connect(server, "uid:pwd")
$(document).ready(() -> connectRuntime())
Putting it all Together
CopyrightPrismTech,2014
CopyrightPrismTech,2014
Vortex Cloud goes beyond traditional Cloud Messaging solutions by providing support
for:
- Real-Time Data Delivery, i.e. freshness of data is more important than its reliability
- High Data Rates
- Last Value Reliability
- Support for Cloud and Fog Computing architectures
- Support for embedded and real-time platforms
- High Network Efficiency
Vortex Cloud is the ideal PaaS infrastructure for Industrial and Consumer IoT
applications
Summing Up
CopyrightPrismTech,2015

More Related Content

What's hot

DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA ExplainedAngelo Corsaro
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
Vortex: The Intelligent Data Sharing Platform for the Internet of ThingsVortex: The Intelligent Data Sharing Platform for the Internet of Things
Vortex: The Intelligent Data Sharing Platform for the Internet of ThingsAngelo Corsaro
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo Corsaro
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with VortexAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)Gerardo Pardo-Castellote
 
Getting Started with Vortex
Getting Started with VortexGetting Started with Vortex
Getting Started with VortexAngelo Corsaro
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IAngelo Corsaro
 
IoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex GatewayIoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex GatewayAngelo Corsaro
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféAngelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIAngelo Corsaro
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex LiteAngelo Corsaro
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDSAngelo Corsaro
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXAngelo Corsaro
 
an enhanced multi layered cryptosystem based secure
an enhanced multi layered cryptosystem based securean enhanced multi layered cryptosystem based secure
an enhanced multi layered cryptosystem based secureIJAEMSJORNAL
 
Fast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAXFast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAXIJERA Editor
 

What's hot (20)

DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA Explained
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
Vortex: The Intelligent Data Sharing Platform for the Internet of ThingsVortex: The Intelligent Data Sharing Platform for the Internet of Things
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 
Overview of the DDS-XRCE specification
Overview of the DDS-XRCE specificationOverview of the DDS-XRCE specification
Overview of the DDS-XRCE specification
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with Vortex
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)
 
Getting Started with Vortex
Getting Started with VortexGetting Started with Vortex
Getting Started with Vortex
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part I
 
IoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex GatewayIoT Protocols Integration with Vortex Gateway
IoT Protocols Integration with Vortex Gateway
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDS
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
an enhanced multi layered cryptosystem based secure
an enhanced multi layered cryptosystem based securean enhanced multi layered cryptosystem based secure
an enhanced multi layered cryptosystem based secure
 
Fast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAXFast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAX
 

Similar to Vortex Cloud Beyond Cloud Messaging

Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEXAngelo Corsaro
 
Cloud computing - dien toan dam may
Cloud computing - dien toan dam mayCloud computing - dien toan dam may
Cloud computing - dien toan dam mayNguyen Duong
 
Cloud Computing | Dimension Data Europe
Cloud Computing | Dimension Data EuropeCloud Computing | Dimension Data Europe
Cloud Computing | Dimension Data EuropeDavid Martin
 
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...ADLINK Technology IoT
 
Overview of cloud computing
Overview of cloud computingOverview of cloud computing
Overview of cloud computingTarek Nader
 
Cloud computing applicatio
Cloud  computing  applicatioCloud  computing  applicatio
Cloud computing applicatioChetan Sontakke
 
GlobalDots - Cloud Computing Explained
GlobalDots - Cloud Computing ExplainedGlobalDots - Cloud Computing Explained
GlobalDots - Cloud Computing ExplainedGlobalDots
 
What is cloud computing
What is cloud computingWhat is cloud computing
What is cloud computingDan Morrill
 
Cloud Computing & CloudStack Open Source
Cloud Computing & CloudStack Open SourceCloud Computing & CloudStack Open Source
Cloud Computing & CloudStack Open SourceAhmadShah Sultani
 
Cloud computing
Cloud computingCloud computing
Cloud computingaryan raj
 
A proposal for implementing cloud computing in newspaper company
A proposal for implementing cloud computing in newspaper companyA proposal for implementing cloud computing in newspaper company
A proposal for implementing cloud computing in newspaper companyKingsley Mensah
 
Introduction to Cloud Computing.pptx
Introduction to Cloud Computing.pptxIntroduction to Cloud Computing.pptx
Introduction to Cloud Computing.pptxojaswiniwagh
 

Similar to Vortex Cloud Beyond Cloud Messaging (20)

Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing - dien toan dam may
Cloud computing - dien toan dam mayCloud computing - dien toan dam may
Cloud computing - dien toan dam may
 
Cloud Computing | Dimension Data Europe
Cloud Computing | Dimension Data EuropeCloud Computing | Dimension Data Europe
Cloud Computing | Dimension Data Europe
 
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
 
cloud computing
cloud computingcloud computing
cloud computing
 
Overview of cloud computing
Overview of cloud computingOverview of cloud computing
Overview of cloud computing
 
Cloud computing applicatio
Cloud  computing  applicatioCloud  computing  applicatio
Cloud computing applicatio
 
GlobalDots - Cloud Computing Explained
GlobalDots - Cloud Computing ExplainedGlobalDots - Cloud Computing Explained
GlobalDots - Cloud Computing Explained
 
What is cloud computing
What is cloud computingWhat is cloud computing
What is cloud computing
 
Cloud Computing & CloudStack Open Source
Cloud Computing & CloudStack Open SourceCloud Computing & CloudStack Open Source
Cloud Computing & CloudStack Open Source
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Cloud presentation
Cloud presentationCloud presentation
Cloud presentation
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
CC ASSIGNMENT 01.docx
CC ASSIGNMENT 01.docxCC ASSIGNMENT 01.docx
CC ASSIGNMENT 01.docx
 
Cloud
CloudCloud
Cloud
 
484 488
484 488484 488
484 488
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
A proposal for implementing cloud computing in newspaper company
A proposal for implementing cloud computing in newspaper companyA proposal for implementing cloud computing in newspaper company
A proposal for implementing cloud computing in newspaper company
 
Introduction to Cloud Computing.pptx
Introduction to Cloud Computing.pptxIntroduction to Cloud Computing.pptx
Introduction to Cloud Computing.pptx
 

More from ADLINK Technology IoT

Harnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsHarnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsADLINK Technology IoT
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudADLINK Technology IoT
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeADLINK Technology IoT
 
Real-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebReal-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebADLINK Technology IoT
 
PrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingPrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingADLINK Technology IoT
 
PrismTech Reflective Language for Communication Systems
PrismTech Reflective Language for Communication SystemsPrismTech Reflective Language for Communication Systems
PrismTech Reflective Language for Communication SystemsADLINK Technology IoT
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...ADLINK Technology IoT
 
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...ADLINK Technology IoT
 
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)ADLINK Technology IoT
 
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...ADLINK Technology IoT
 
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...ADLINK Technology IoT
 
Automating Software Communications Architecture (SCA) Testing with Spectra CX
Automating Software Communications Architecture (SCA) Testing with Spectra CXAutomating Software Communications Architecture (SCA) Testing with Spectra CX
Automating Software Communications Architecture (SCA) Testing with Spectra CXADLINK Technology IoT
 

More from ADLINK Technology IoT (20)

Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
Vortex Tutorial Part 2
Vortex Tutorial Part 2Vortex Tutorial Part 2
Vortex Tutorial Part 2
 
Harnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsHarnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare Systems
 
PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
 
Real-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebReal-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex Web
 
PrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingPrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems Modeling
 
PrismTech Reflective Language for Communication Systems
PrismTech Reflective Language for Communication SystemsPrismTech Reflective Language for Communication Systems
PrismTech Reflective Language for Communication Systems
 
Model_Driven_Development_SDR
Model_Driven_Development_SDRModel_Driven_Development_SDR
Model_Driven_Development_SDR
 
SCA_4_adoption_may2013
SCA_4_adoption_may2013SCA_4_adoption_may2013
SCA_4_adoption_may2013
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...
 
Sca 4 0 _may16_2012_final
Sca 4 0 _may16_2012_finalSca 4 0 _may16_2012_final
Sca 4 0 _may16_2012_final
 
Spectra dtp4700h march2012_final
Spectra dtp4700h march2012_finalSpectra dtp4700h march2012_final
Spectra dtp4700h march2012_final
 
Spectra CX 3.4 Launch Webcast
Spectra CX 3.4 Launch WebcastSpectra CX 3.4 Launch Webcast
Spectra CX 3.4 Launch Webcast
 
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
 
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
 
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
 
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
 
Automating Software Communications Architecture (SCA) Testing with Spectra CX
Automating Software Communications Architecture (SCA) Testing with Spectra CXAutomating Software Communications Architecture (SCA) Testing with Spectra CX
Automating Software Communications Architecture (SCA) Testing with Spectra CX
 

Recently uploaded

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Recently uploaded (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 

Vortex Cloud Beyond Cloud Messaging

  • 1. Angelo Corsaro, PhD Chief Technology Officer angelo.corsaro@prismtech.com Beyond Cloud Messaging… Cloud
  • 2. CopyrightPrismTech,2014 Infrastructure as as Service (IaaS): Elastic compute fabric that you can “consume” as opposed to own and manage, e.g., Azure, Amazon EC2, Google Compute Engine, Linode, etc. Platform as a Service (PaaS): Enhances IaaS with a series of managed middleware and storage services ready to be “consumed” by your application, e.g., Azure Service Bus, Amazon Dynamo, Vortex Cloud Software as a Service (IaaS): A full application as a service available for you to be consumed, e.g., SalesForces Cloud Computing The main idea behind cloud computing incrementally reduce the number of layers that you are required to own and manage in order to build applications
  • 3. CopyrightPrismTech,2014 Cloud Messaging replaces local infrastructure and integration technologies with an Ubiquitous Internet Service Cloud Messaging allows companies to elastically and transparently deal with changes of workload and scale Cloud Messaging Cloud Messaging provides a ubiquitous and universally accessible “Internet Service” for distributing messages from producers to consumers
  • 4. CopyrightPrismTech,2014 Virtually all the Cloud Messaging implementation available on the market focus on: Reliable Messaging Device-to-Cloud communication pattern, i.e., no cloud no communication Low update rates Additionally, a large set of Cloud Messaging implementations impose: HTTP-based communication, e.g. Amazon SQS Limit on message payload Limit on deployment across “regions” Limit on the Deployment/Licensing model, e.g. no OEM options “Traditional” Cloud Messaging
  • 5. CopyrightPrismTech,2014 “Traditional” Cloud messaging was designed to address the requirements of IT systems. As such its main focus is on highly reliable messaging and device-to-cloud interactions The surge of the Internet of Things has posed a series of new requirements for Cloud Messaging, such as: - Real-Time Data Delivery, i.e. freshness of data is more important than its reliability - High Data Rates - Last Value Reliability - Support for Cloud and Fog Computing architectures - Support for embedded and real-time platforms - Network Efficiency Beyond Traditional Cloud Messaging?
  • 7. CopyrightPrismTech,2014 VORTEX Cloud provides a universally accessible “Internet Service” for sharing data between DDS-enabled applications VORTEX Cloud
  • 8. CopyrightPrismTech,2014 Elastic and Fault-Tolerant Public/Private Clouds Deployments Reliable and Best-Effort Data Sharing Last value Reliability Unicast and Multicast Communication Support for enterprise, embedded, and mobile platforms Source Filtering Customisable Load-Balancing VORTEX Cloud
  • 9. CopyrightPrismTech,2014 Efficient Binary Protocol (DDSI) Multiple Transports: - UDP/IP - TCP/IP - WebSockets C/C++, Java, Scala, JavaScript, CoffeScript, and C# API Connectivity to MQTT, AMQP, etc., via VORTEX Gateway VORTEX Cloud
  • 10. CopyrightPrismTech,2014 VORTEX supports both the Cloud and the Fog Computing Paradigm VORTEX natively supports: - Device-to-Device Communication - Device-to-Cloud Communication Cloud, Fog and Edge Computing Cloud Computing Fog Computing Device-to-Cloud Communication Device-to-Device Communication Fog-to-Cloud Communication Cloud-to-Cloud Communication Device-to-Device Communication Collect | Store | Analyse | Share Collect | Store | Analyse | Share Fog Computing Fog Computing
  • 11. CopyrightPrismTech,2015 Performance Device-2-Device • Peer-to-Peer Intra-core latency 
 as low as 8 µs • Peer-to-Peer latency as low as 
 30 µs • Point-to-Point throughput 
 well over 2.5M msg/sec Device-2-Cloud • Routing latency as low as 4 µs • Linear scale out • 44K* msgs/sec with a single router, 4x times more the average Tweets per second in the world (~6000 tweets/sec)! *2048 bytes message payload
  • 13. CopyrightPrismTech,2014 Cloud Computing Device-to-Cloud Communication Peer-to-Peer (Brokerless) Device-to-Device Communication Device communicate peer-to-peer within a fog- domain and through Cloud across fog- domains Some device concurrently communicate with peers and the cloud Device-to-Cloud Communication Device-to-Cloud Communication
  • 14. CopyrightPrismTech,2014 Cloud and Fog Computing Device communicate peer-to-peer within a fog- domain A Vortex-Fog controls which data is exchanged with the could Device-to-Cloud Communication Peer-to-Peer (Brokerless) Device-to-Device Communication Fog Computing Fog Computing Fog Computing
  • 15. CopyrightPrismTech,2014 Fog Computing Peer-to-Peer (Brokerless) Device-to-Device Communication Fog domain are transparently federated by Vortex-Fog instances A Vortex-Fog controls which data is exchanged with the could Fog Computing Fog Computing Fog Computing
  • 17. CopyrightPrismTech,2015 Specialised device implementations optimally addressing requirements of OT and IT platforms VORTEX can readily deal with data ingestion seamlessly integrating with other protocols, e.g. MQTT, CoAP, etc. VORTEX leverages the DDS standard for interoperability and uniquely extends it with support for Internet Scale systems, mobility and Web 2.0 applications The VORTEX Platform PaaS/MaaS
  • 19. CopyrightPrismTech,2014 Vortex provides a Distributed Data Space abstraction where applications can autonomously and asynchronously read and write data Its built-in dynamic discovery isolates applications from network topology and connectivity details DDS’ Data Space is completely decentralised High Level Abstraction DDS Global Data Space ... Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Reader Data Writer TopicA QoS TopicB QoS TopicC QoS TopicD QoS
  • 20. CopyrightPrismTech,2014 DDS supports the definition of Common Information Models. These data models allow to naturally represent physical and virtual entities characterising the application domain DDS types are extensible and evolvable, thus allowing incremental updates and upgrades Data Centricity
  • 21. CopyrightPrismTech,2014 A Topic defines a domain-wide information’s class A Topic is defined by means of a (name, type, qos) tuple, where • name: identifies the topic within the domain • type: is the programming language type associated with the topic. Types are extensible and evolvable • qos: is a collection of policies that express the non-functional properties of this topic, e.g. reliability, persistence, etc. Topic Topic Type Name QoS struct TemperatureSensor { @key long sid; float temp; float hum; }
  • 22. CopyrightPrismTech,2014 Vortex “knows” about application data types and uses this information provide type-safety and content-based routing Content Awareness struct TemperatureSensor { @key long sid; float temp; float hum; } sid temp hum 101 25.3 0.6 507 33.2 0.7 913 27,5 0.55 1307 26.2 0.67 “temp > 25 OR hum >= 0.6” sid temp hum 101 25.3 0.6 507 33.2 0.7 1307 26.2 0.67 Type TempSensor
  • 23. CopyrightPrismTech,2014 For data to flow from a DataWriter (DW) to one or many DataReader (DR) a few conditions have to apply: The DR and DW domain participants have to be in the same domain The partition expression of the DR’s Subscriber and the DW’s Publisher should match (in terms of regular expression match) The QoS Policies offered by the DW should exceed or match those requested by the DR Quality of Service Domain Participant DURABILITY OWENERSHIP DEADLINE LATENCY BUDGET LIVELINESS RELIABILITY DEST. ORDER Publisher DataWriter PARTITION DataReader Subscriber Domain Participant offered QoS Topic writes reads Domain Id joins joins produces-in consumes-from RxO QoS Policies requested QoS
  • 26. CopyrightPrismTech,2015 The first step required to build a Vortex application is to define the kind of information associated with a Topic This can be done using either IDL or Google Protocol Buffer Topic Definition
  • 27. CopyrightPrismTech,2015 Temperature Sensor message TempSensor {
 option (.omg.dds.type) = {name: "dds.TempSensor"};
 required string sid = 1 [(.omg.dds.member).key = true];
 required float temp = 2;
 }
 struct TempSensor {
 string sid;
 float temp;
 }; #pragma keylist TempSensor sid
 IDL Google Protocol Buffer
  • 28. CopyrightPrismTech,2015 Data Producer 
 
 object TempSensorPub {
 val builder = TempSensor.newBuilder()
 
 def main(args: Array[String]): Unit = {
 if (args.length > 1) {
 val sid = args(0)
 val period = args(1).toInt
 
 val topic = Topic[TempSensor]("TempSensor")
 val dw = DataWriter[TempSensor](topic)
 
 while (true) {
 val s = readTempSensor(sid)
 dw.write(s)
 println(show (s))
 Thread.sleep(period)
 }
 }
 else {
 println("USAGE:ntTempSensorPub <sid> <period>")
 }
 }
 }
 def readTempSensor(sid: String): TempSensor = {
 val minTemp = -20
 val tdelta = 100;
 val minHum = 0.1F
 val hdelta = 9
 
 val t = (tdelta*Math.random()).toInt + minTemp
 val h = (hdelta*Math.random()).toInt + minHum
 
 builder.setSid(sid)
 builder.setTemp(t)
 builder.setHum(h)
 builder.build()
 }

  • 29. CopyrightPrismTech,2015 Data Consumer 
 object TempSensorSub {
 def main(args: Array[String]): Unit = {
 
 val topic = Topic[TempSensor]("TempSensor")
 val dr = DataReader[TempSensor](topic)
 
 dr.listen {
 case DataAvailable(_) =>
 dr.take()
 .filter(s => s.getData != null)
 .map(_.getData)
 .foreach(ts => println(show(ts)))
 }
 Thread.currentThread().join()
 }
 }

  • 30. CopyrightPrismTech,2015 Suppose that we want now to use a more advanced sensor that provides an estimate of the humidity in addition to the temperature At the same time, while extending the type of our Temperature Sensor we want older application to continue to work seamlessly with the new sensor Dealing with Type Evolution
  • 31. CopyrightPrismTech,2015 The humidity attribute is declared optional to allow older consumer to match this type At the same time, new consumer will be able to detect that old temperature sensor are not providing humidity value Extended Temperature Sensor Type message TempSensor {
 option (.omg.dds.type) = {name: "dds.TempSensor"};
 required string sid = 1 [(.omg.dds.member).key = true];
 required float temp = 2;
 optional float hum = 3;
 }

  • 33. CopyrightPrismTech,2015 Vortex Cloud provides a very effective way of sharing data between HTML5/ JavaScript Applications Additionally, Vortex Cloud can be used to seamlessly share data between Web and embedded applications Real-Web Apps with Vortex Cloud
  • 34. CopyrightPrismTech,2014 Let’s see the steps required to build a Web Chat that may look like this But before let’s play with it a bit Web Chat demo.prismtech.com
  • 35. CopyrightPrismTech,2014 When using Vortex Cloud with web application i topic types can be declared JavaScript/ CoffeScript Topic Declaration # The post type used by the chat application class Post constructor: (@name, @msg) ->
  • 36. CopyrightPrismTech,2014 The Chat CoffeeScript # Create useful alias for coffez and jQuery root = this z_ = coffez $ = jQuery server = “ws://demo-eu.prismtech.com:9999" # The post type used by the chat application class Post constructor: (@name, @msg) -> # Create the runtime runtime = new dds.runtime.Runtime() # Define the Post topic used to send and receive chat posts postTopic = new dds.Topic(0, "Post") # Define the QoS for the DataReader/Writer drQos = new dds.DataReaderQos(dds.Reliability.Reliable) dwQos = new dds.DataWriterQos(dds.Reliability.Reliable)
  • 37. CopyrightPrismTech,2014 The Chat CoffeeScriptpostReader = z_.None postWriter = z_.None avatar = "avatar" + Math.floor((Math.random() * 10000) + 1); # Add post to the chat and format it to show it is from me createMyPost = (post) -> ... # Add post to the chat and format it to show it is from others createOtherPost = (post) -> ... # Add post to the chat and format it to show it is from others processPost = () -> msg = $("#ChatMessage").val() post = new Post(avatar, msg) # Publish the post (notice that postWriter is an Option Monad) # Take a look at (http://en.wikibooks.org/wiki/Haskell/Understanding_monads/Maybe) # or (http://www.scala-lang.org/api/2.11.0/index.html#scala.Option) postWriter.map((dw) -> dw.write(post)) $("#ChatMessageList").append(createMyPost(post)) $("#ChatMessage").val("")
  • 38. CopyrightPrismTech,2014 The Chat CoffeeScript # Deal with click and keys events… $("#ChatMessage").keyup( (e) -> if(e.keyCode is 13) then processPost() ) $("#SendMsgButton").click( (evt) -> console.log("Send Button has been clicked") processPost() ) $("#SelectAvatarButton").click( (evt) -> s = $("#AvatarName").val() if (s isnt "") avatar = s )
  • 39. CopyrightPrismTech,2014 The Chat CoffeeScript # Handle the runtime onconnect event runtime.onconnect = () -> # Create DataReader and DataWriter for our posts dr = new dds.DataReader(runtime, postTopic, drQos) dw = new dds.DataWriter(runtime, postTopic, dwQos) # Register a listener with the data reader to post messages # in our chat dr.addListener( (post) -> if (post.name isnt avatar) $("#ChatMessageList").append(createOtherPost(post))) postReader = z_.Some(dr) postWriter = z_.Some(dw) connectRuntime = () -> $("#AvatarName").val(avatar) runtime.connect(server, "uid:pwd") $(document).ready(() -> connectRuntime())
  • 40. Putting it all Together
  • 42. CopyrightPrismTech,2014 Vortex Cloud goes beyond traditional Cloud Messaging solutions by providing support for: - Real-Time Data Delivery, i.e. freshness of data is more important than its reliability - High Data Rates - Last Value Reliability - Support for Cloud and Fog Computing architectures - Support for embedded and real-time platforms - High Network Efficiency Vortex Cloud is the ideal PaaS infrastructure for Industrial and Consumer IoT applications Summing Up