SlideShare a Scribd company logo
Building IoT Apps with Vortex and
the Intel Edison Starter Kit
Angelo	Corsaro,	PhD	
Chief	Technology	Officer	
angelo.corsaro@prismtech.com
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryIoT Architectures
CopyrightPrismTech,2015
CopyrightPrismTech,2015
Cloud
Cloud Centric Architectures
CopyrightPrismTech,2015
Cloud
Fog
Fog
Fog
Fog
CopyrightPrismTech,2015
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryVortex Intro
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
Vortex is a standard technology for
efficient, ubiquitous, interoperable,
secure and platform independent data
sharing across network connected
devices
in151
Characters
Applications can autonomously
and asynchronously read and
write data enjoying spatial and
temporal decoupling
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
Virtualised Data
Space
Temporal Decoupling
Four different levels of temporal
decoupling allow to control the
trade-off between full temporal
decoupling, performances and
resource usage
t
Source
t
t
Sink
Sink
Volatile Durability
t
Source
t
t
Sink
Sink
Transient Durability
Built-in dynamic discovery
isolates applications from
network topology and
connectivity details
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
Dynamic Discovery
Failure Detection
Vortex provides mechanism for
detecting traditional crashes as
well as performance failures
Source
tSink
Fault Notification
TD
Source
t
Sink
Performance Failure Notification
P
t
P P
Fault Masking
A built-in fault-masking
mechanism transparently
controls and switches between
sources of data
Source
tSink
Source t
Fault Masking
Vortex provides mechanism for
detecting traditional crashes as
well as performance failures
Source
tSink
Source t
QoS policies allow to express
temporal and availability
constraints for data
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
QoS - Enabled
A collection of policies
that control non-
functional properties
such as reliability,
persistence, temporal
constraints and priority
QoS
HISTORY
LIFESPAN
DURABILITY
DEADLINE
LATENCY BUDGET
TRANSPORT PRIO
TIME-BASED FILTER
RESOURCE LIMITS
USER DATA
TOPIC DATA
GROUP DATA
OWENERSHIP
OWN. STRENGTH
LIVELINESS
ENTITY FACTORY
DW LIFECYCLE
DR LIFECYCLE
PRESENTATION
RELIABILITY
PARTITION
DEST. ORDER
RxO QoS Local QoS
QoS Policies controlling
end-to-end properties
follow a Request vs.
Offered
QoS
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
No single point of failure or
bottleneck
Decentralised
Data Space Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
TopicD
QoS
TopicD
QoS
TopicA
QoS
Connectivity is dynamically
adapted to chose the most
effective way of sharing data
Adaptive Connectivity
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
TopicD
QoS
TopicD
QoS
TopicA
QoS
The	communication	between	
the	DataWriter	and	matching	
DataReaders	can	be	peer-to-
peer	exploiting	UDP/IP	
(Unicast	and	Multicast)or	
TCP/IP
The	communication	between	
the	DataWriter	and	matching	
DataReaders	can	be	
“brokered”	but	still	
exploiting	UDP/IP	(Unicast	
and	Multicast)or	TCP/IP
A domain-wide information’s
class A Topic defined by means
of a <name, type, qos>
Topic
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
Topic
Type
Name
QoS
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
Topic Types
— Language Independent Declaration—
Topic types can be expressed
using different syntaxes,
including IDL and ProtoBuf
Topic Type
struct CarDynamics {
string cid;
long x; long y;
float dx; long dy;
}
#pragma keylist CarDynamics cid
IDL
Topic types can be expressed
using different syntaxes,
including IDL and ProtoBuf
Topic Type message CarDynamics {
option (.omg.dds.type) =
{name: "CarDynamics"};
required string cid = 0
[(.omg.dds.member).key = true];
required long x = 1;
required long y = 2;
required float dx = 3;
required long dy = 4;
}
ProtoBuf
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
Topic Types
— Language Dependent Declaration—
Topic types can be expressed
using different syntaxes,
including IDL and ProtoBuf
Topic Type
class CarDynamics:
constructor:
(@cid, @x, @y, @dx, @dy) ->
CoffeeScript
Topic types can be expressed
using different syntaxes,
including IDL and ProtoBuf
Topic Type
public struct CaDynamics {

public string cid { get; set; }

public int x { get; set; }

public int y { get; set; }

public int dx { get; set; }

public int dy { get; set; }



public CaDynamics (string cid,
int x, int y, int dx, int dy)

{

this.cid = cid;

this.x = x; this.y = y;

this.dx = dx; this.dy = dy;

}

}

C#
Topic types can be expressed
using different syntaxes,
including IDL and ProtoBuf
Topic Type
@KeyList ( topicType = "CarDynamics", keys = {"cid"})

public class CarDynamics {

public String cid;

public int x; public int dx;

public int y; public int dy;



public CarDynamics(String s, int a, int b,
int c,int d) {

this.cid = s;

this.x = a; this.dx = b;

this.y = c; this.dy = d;

}



@Override

public String toString() {
…

}



}

Java
Vortex “knows”
about application
data types and
uses this
information
provide type-
safety and
content-based
routing
Content
Awareness struct	CarDynamics	{	
			@key	
			string		cid;	
			long				x;			long		y;	
			float			dx;		long		dy;	
}
cid x y dx dy
GR 33N GO 167 240 45 0
LO 00V IN 65 26 65 0
AN 637 OS 32 853 0 50
AB 123 CD 325 235 80 0
“dx	>	50	OR	dy	>	50”
Type
CarDynamics
cid x y dx dy
LO 00V IN 65 26 65 0
AB 123 CD 325 235 80 0
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryProgramming Model
CopyrightPrismTech,2014
Anatomy of a DDS Application
CopyrightPrismTech,2015
Writing Data in Python
import dds
import time



if __name__ == '__main__':

topic = dds.Topic("SmartMeter", "Meter")

dw = dds.Writer(topic)



while True:

m = readMeter()

dw.write(m)

time.sleep(0.1)
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
CopyrightPrismTech,2015
Reading Data in Python
import dds

import sys



def readData(dr): 

samples = dds.range(dr.read())

for s in samples:

sys.stdout.write(str(s.getData()))



if __name__ == '__main__':

t = dds.Topic("SmartMeter", "Meter")

dr = dds.Reader(t)

dr.onDataAvailable = readData
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
CopyrightPrismTech,2014
Writing Data in Scala
import dds._

import dds.prelude._

import dds.config.DefaultEntities._

object SmartMeter {



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

val topic = Topic[Meter](“SmartMeter”)

val dw = DataWriter[Meter](topic)
while (!done) {
val meter = readMeter()

dw.write(meter)
Thread.sleep(SAMPLING_PERIOD)
}

}

}
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
CopyrightPrismTech,2014
Reading Data in Scala
import dds._

import dds.prelude._

import dds.config.DefaultEntities._

object ChatLog {

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

val topic = Topic[Meter](“SmartMeter”)

val dr = DataReader[Meter](topic)

dr listen {

case DataAvailable(_) => dr.read.foreach(println)

}

}

}
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
CopyrightPrismTech,2014
Writing Data in C++
#include <dds.hpp>
int main(int, char**) {
DomainParticipant dp(0);
Topic<Meter> topic(“SmartMeter”);
Publisher pub(dp);
DataWriter<Meter> dw(pub, topic);
while (!done) {
auto value = readMeter()
dw.write(value);
std::this_thread::sleep_for(SAMPLING_PERIOD);
}
return 0;
}
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
CopyrightPrismTech,2014
Reading Data in C++
#include <dds.hpp>
int main(int, char**) {
DomainParticipant dp(0);
Topic<Meter> topic(”SmartMeter”);
Subscriber sub(dp);
DataReader<Meter> dr(dp, topic);
LambdaDataReaderListener<DataReader<Meter>> lst;
lst.data_available = [](DataReader<Meter>& dr) {
auto samples = data.read();
std::for_each(samples.begin(), samples.end(), [](Sample<Meter>& sample) {
std::cout << sample.data() << std::endl;
}
}
dr.listener(lst);
// Print incoming data up to when the user does a Ctrl-C
std::this_thread::join();
return 0;
}
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryModeling Idioms
A state that is periodically updated
Examples are the reading of a sensor
(e.g. Temperature Sensor), the
position of a vehicle, etc.
Soft State
Reliability						=>		BestEffort	
Durability							=>		Volatile		
History										=>		KeepLast(n)	
Deadline									=>		updatePeriod	
LatencyBudget				=>		updatePeriod/3	
DestinationOrder	=>		SourceTimestamp
// Vortex’s Scala API provides first class implementation of the
// soft-state pattern
val temperature = SoftState[AnalogSensor](topicName)

A state that is sporadically updated
and that often has temporal
persistence requirements
Examples are system configuration, a
price estimate, etc.
Hard State
Reliability						=>		Reliable	
Durability							=>		Transient	|	Persistent		
History										=>		KeepLast(n)	(often	n	=1)	
DestinationOrder	=>		SourceTimestamp
// Vortex’s Scala API provides first class implementation of the
// hard-state pattern. The state is transient by default and can be controlled
// by an additional argument
val runningMicrosvc = HardState[RunningMicrosvc](topicName) 

The occurrence of something
noteworthy for our system
Examples are a collision alert, the
temperature beyond a given
threshold, etc.
Events
Reliability						=>		Reliable	
Durability							=>		any		
History										=>		KeepAll	
DestinationOrder	=>		SourceTimestamp
// Vortex’s Scala API provides first class implementation of the
// hard-state pattern. The state is transient by default and can be controlled
// by an additional argument
val nodeError = Event[NodeError](topicName) 

Data-centric design leverage the
same principle of Feedback-control
loops to assert a state
In other terms, the desired state is
asserted by writing a topic and the
actual state is monitored.
A control action is taken when the
desired and the actual state differ
Feedback Control Loop
Data-centric design leverage the
same principle of Feedback-control
loops to assert a state
In other terms, the desired state is
asserted by writing a topic and the
actual state is monitored.
A control action is taken when the
desired and the actual state differ
Feedback Control Loop Hard State
Soft State
microservice
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryVortex Technology Stack
Device implementations
optimised for OT, IT and
consumer platforms
Native support for Cloud and
Fog Computing Architectures
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
Polyglot and Interoperable
across Programming
Languages
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
Fully Independent of the
Cloud Infrastructure
Private Clouds
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
Native Integration with the
hottest real-time analytics
platforms and CEP Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
Integration with the popular
Node-RED framework
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
Integration with mainstream
Dashboard Technologies
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
High
Performance
30 μs peer-to-peer latency
4+ Mmsgs/sec p2p throughput
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infrastructuresdk
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryIntel Edison Starter Kit
Edison is an Octo-Linux based x86
board for prototyping IoT
applications
Edison shirts an Intel optimised
OpenJDK implementation — perfect
for Café
The Grove Starter Kit Plus provides a
set of nice sensor, displays and
actuators to get started with IoT
IoT Starter Kit
Before getting started with playing
with the demo, make sure your
board is properly configured
You can check the configuration
using the configure_edison
command
Ensure that the WiFi is working!
Configuring your Board
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiarySensors
Building IoT Applications with Vortex and the Intel Edison Starter Kit
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryDisplays
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryLED
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryProgramming
Intel has contributed several Open
Source project that provide high
level abstractions to access Sensors,
LCD, Led, etc. , for a very large
number of different kinds of sensors
and manufacturers
Programming
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
LED
Light Sensor
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
IoT Applications
with Vortex and Edison
CopyrightPrismTech,2015
Cloud
Fog
Fog
Fog
Fog
CopyrightPrismTech,2015
Vortex can be used to virtualise
sensors/displays/motors/.. and
make them universally available
Instead of locally programming
sensors/displays/motors we
abstracts them with Topics and
access /control through DDS in a
location transparent manner
Virtualisation
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
The agentv micro service
framework is used to flexibly
provision and manage applications
Deployment
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
struct AnalogSensor {
short id;
float rvalue;
float value;
};
#pragma keylist AnalogSensor id
Temperature Sensor
Topic
AnalogSensor
Temperature
SoftState
sensor specific microsvc
write
read
read
read
struct LCDText {

short id;

unsigned short row;

unsigned short col;

string text;

};

#pragma keylist LCDText id



LCD
Topic
LCDText
LCDText
HardState
sensor specific microsvc
read
read
struct LCDColor {

short id;

short r;

short g;

short b;

};

#pragma keylist LCDColor id
Topic
LCDColor
LCDColor
HardState
write
write
write
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiaryCoding-Lab
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
This slides have been crafted by Angelo Corsaro
Any use of these slides that does include me as Author/Co-Author is plagiary
Vortex makes it extremely easy
to build IoT applications
Get started Building IoT apps
with Vortex and Edison!
In
Summary
CopyrightPrismTech,2015

More Related Content

What's hot (20)

PDF
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Angelo Corsaro
 
PDF
Distributed Algorithms with DDS
Angelo Corsaro
 
PDF
Introducing Vortex Lite
Angelo Corsaro
 
PDF
DDS and OPC UA Explained
Angelo Corsaro
 
PDF
DDS in Action -- Part I
Angelo Corsaro
 
PDF
Vortex Tutorial Part 2
ADLINK Technology IoT
 
PDF
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
Angelo Corsaro
 
PDF
DDS: The IoT Data Sharing Standard
Angelo Corsaro
 
PDF
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Angelo Corsaro
 
PDF
Vortex II -- The Industrial IoT Connectivity Standard
Angelo Corsaro
 
PDF
The Data Distribution Service
Angelo Corsaro
 
PDF
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
PDF
DDS Everywhere
Angelo Corsaro
 
PDF
Desktop, Embedded and Mobile Apps with Vortex Café
Angelo Corsaro
 
PDF
DDS Tutorial -- Part I
Angelo Corsaro
 
PDF
The DDS Security Standard
Angelo Corsaro
 
PDF
The Data Distribution Service Tutorial
Angelo Corsaro
 
PDF
Connected Mobile and Web Applications with Vortex
Angelo Corsaro
 
PDF
Building Reactive Applications with DDS
Angelo Corsaro
 
PDF
Reactive Data Centric Architectures with DDS
Angelo Corsaro
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Angelo Corsaro
 
Distributed Algorithms with DDS
Angelo Corsaro
 
Introducing Vortex Lite
Angelo Corsaro
 
DDS and OPC UA Explained
Angelo Corsaro
 
DDS in Action -- Part I
Angelo Corsaro
 
Vortex Tutorial Part 2
ADLINK Technology IoT
 
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
Angelo Corsaro
 
DDS: The IoT Data Sharing Standard
Angelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Angelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Angelo Corsaro
 
The Data Distribution Service
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
DDS Everywhere
Angelo Corsaro
 
Desktop, Embedded and Mobile Apps with Vortex Café
Angelo Corsaro
 
DDS Tutorial -- Part I
Angelo Corsaro
 
The DDS Security Standard
Angelo Corsaro
 
The Data Distribution Service Tutorial
Angelo Corsaro
 
Connected Mobile and Web Applications with Vortex
Angelo Corsaro
 
Building Reactive Applications with DDS
Angelo Corsaro
 
Reactive Data Centric Architectures with DDS
Angelo Corsaro
 

Viewers also liked (19)

PDF
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
Angelo Corsaro
 
PDF
Fluid IoT Architectures
Angelo Corsaro
 
PDF
Microservices Architecture with Vortex — Part II
Angelo Corsaro
 
PDF
Vortex 2.0 -- The Industrial Internet of Things Platform
Angelo Corsaro
 
PDF
Fog Computing with Vortex
Angelo Corsaro
 
PDF
Happy 2016!
Angelo Corsaro
 
PPTX
Why IoT needs Fog Computing ?
Ahmed Banafa
 
PPTX
Fog computing technology
Nikhil Sabu
 
PDF
DDS Security
Angelo Corsaro
 
PDF
The Data Distribution Service: The Communication Middleware Fabric for Scala...
Angelo Corsaro
 
PDF
Smart, Secure and Efficient Data Sharing in IoT
Angelo Corsaro
 
PDF
Many Bundles of Things - M Rulli
mfrancis
 
PDF
Fineo Technical Overview - NextSQL for IoT
Jesse Yates
 
PPTX
MongoDB IoT City Tour LONDON: Managing the Database Complexity, by Arthur Vie...
MongoDB
 
PDF
Authorization Aspects of the Distributed Dataflow-oriented IoT Framework Calvin
Tomas Nilsson
 
PPTX
Getting to know oracle database objects iot, mviews, clusters and more…
Aaron Shilo
 
PPTX
Informix - The Ideal Database for IoT
Pradeep Natarajan
 
PDF
Developing io t applications in the fog a distributed dataflow approach
Nam Giang
 
PPTX
Embedded Security and the IoT – Challenges, Trends and Solutions
Real-Time Innovations (RTI)
 
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
Angelo Corsaro
 
Fluid IoT Architectures
Angelo Corsaro
 
Microservices Architecture with Vortex — Part II
Angelo Corsaro
 
Vortex 2.0 -- The Industrial Internet of Things Platform
Angelo Corsaro
 
Fog Computing with Vortex
Angelo Corsaro
 
Happy 2016!
Angelo Corsaro
 
Why IoT needs Fog Computing ?
Ahmed Banafa
 
Fog computing technology
Nikhil Sabu
 
DDS Security
Angelo Corsaro
 
The Data Distribution Service: The Communication Middleware Fabric for Scala...
Angelo Corsaro
 
Smart, Secure and Efficient Data Sharing in IoT
Angelo Corsaro
 
Many Bundles of Things - M Rulli
mfrancis
 
Fineo Technical Overview - NextSQL for IoT
Jesse Yates
 
MongoDB IoT City Tour LONDON: Managing the Database Complexity, by Arthur Vie...
MongoDB
 
Authorization Aspects of the Distributed Dataflow-oriented IoT Framework Calvin
Tomas Nilsson
 
Getting to know oracle database objects iot, mviews, clusters and more…
Aaron Shilo
 
Informix - The Ideal Database for IoT
Pradeep Natarajan
 
Developing io t applications in the fog a distributed dataflow approach
Nam Giang
 
Embedded Security and the IoT – Challenges, Trends and Solutions
Real-Time Innovations (RTI)
 
Ad

Similar to Building IoT Applications with Vortex and the Intel Edison Starter Kit (20)

PDF
Modern Software Architectures - Overview
CodeOps Technologies LLP
 
PDF
(Ebook) TinyOS programming by Philip Levis, David Gay ISBN 9780521896061, 052...
bojtiaslo
 
PPTX
07 chapter03 05_siemens_tags_memory_structure_fa14
John Todora
 
PDF
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
ADLINK Technology IoT
 
PDF
TinyOS programming 1st Edition Philip Levis
schautkasko
 
PDF
TinyOS programming 1st Edition Philip Levis
canqobnv6874
 
PDF
TinyOS programming 1st Edition Philip Levis
flaizjaganej
 
PDF
Architecture 4 Wireless Sensor Networks
Ivano Malavolta
 
PDF
Cyclone DDS: Sharing Data in the IoT Age
Angelo Corsaro
 
PDF
A4WSN: an Architecting environment 4 Wireless Sensor Networks
Ivano Malavolta
 
PPTX
How the Italian Market is Embracing Alternatives to Relational Databases
Sam_Francis
 
PDF
ME4AWSN - a Modeling Environment for Architecting WSNs
Ivano Malavolta
 
PDF
Iot presentation and hand on building tools
AhmedMostafa787
 
PPTX
PROf TEJAS PADGHAN ICEEM ch. sambhajinagar
tejaspadghan2
 
PPTX
Plenary Session: application drive design alberto sv
chiportal
 
PDF
Introducing Vortex Lite
ADLINK Technology IoT
 
PPTX
Internet of Things Anatomy
Tibbo
 
PDF
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Toby McClean
 
PDF
The DDS Tutorial Part II
Angelo Corsaro
 
PDF
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
mfrancis
 
Modern Software Architectures - Overview
CodeOps Technologies LLP
 
(Ebook) TinyOS programming by Philip Levis, David Gay ISBN 9780521896061, 052...
bojtiaslo
 
07 chapter03 05_siemens_tags_memory_structure_fa14
John Todora
 
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
ADLINK Technology IoT
 
TinyOS programming 1st Edition Philip Levis
schautkasko
 
TinyOS programming 1st Edition Philip Levis
canqobnv6874
 
TinyOS programming 1st Edition Philip Levis
flaizjaganej
 
Architecture 4 Wireless Sensor Networks
Ivano Malavolta
 
Cyclone DDS: Sharing Data in the IoT Age
Angelo Corsaro
 
A4WSN: an Architecting environment 4 Wireless Sensor Networks
Ivano Malavolta
 
How the Italian Market is Embracing Alternatives to Relational Databases
Sam_Francis
 
ME4AWSN - a Modeling Environment for Architecting WSNs
Ivano Malavolta
 
Iot presentation and hand on building tools
AhmedMostafa787
 
PROf TEJAS PADGHAN ICEEM ch. sambhajinagar
tejaspadghan2
 
Plenary Session: application drive design alberto sv
chiportal
 
Introducing Vortex Lite
ADLINK Technology IoT
 
Internet of Things Anatomy
Tibbo
 
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Toby McClean
 
The DDS Tutorial Part II
Angelo Corsaro
 
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
mfrancis
 
Ad

More from Angelo Corsaro (15)

PDF
Zenoh: The Genesis
Angelo Corsaro
 
PDF
zenoh: The Edge Data Fabric
Angelo Corsaro
 
PDF
Zenoh Tutorial
Angelo Corsaro
 
PDF
zenoh: zero overhead pub/sub store/query compute
Angelo Corsaro
 
PDF
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
PDF
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Angelo Corsaro
 
PDF
Eastern Sicily
Angelo Corsaro
 
PDF
fog05: The Fog Computing Infrastructure
Angelo Corsaro
 
PDF
fog05: The Fog Computing Platform
Angelo Corsaro
 
PDF
Programming in Scala - Lecture Four
Angelo Corsaro
 
PDF
Programming in Scala - Lecture Three
Angelo Corsaro
 
PDF
Programming in Scala - Lecture Two
Angelo Corsaro
 
PDF
Programming in Scala - Lecture One
Angelo Corsaro
 
PDF
RUSTing -- Partially Ordered Rust Programming Ruminations
Angelo Corsaro
 
PDF
Fog Computing Defined
Angelo Corsaro
 
Zenoh: The Genesis
Angelo Corsaro
 
zenoh: The Edge Data Fabric
Angelo Corsaro
 
Zenoh Tutorial
Angelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Angelo Corsaro
 
Eastern Sicily
Angelo Corsaro
 
fog05: The Fog Computing Infrastructure
Angelo Corsaro
 
fog05: The Fog Computing Platform
Angelo Corsaro
 
Programming in Scala - Lecture Four
Angelo Corsaro
 
Programming in Scala - Lecture Three
Angelo Corsaro
 
Programming in Scala - Lecture Two
Angelo Corsaro
 
Programming in Scala - Lecture One
Angelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
Angelo Corsaro
 
Fog Computing Defined
Angelo Corsaro
 

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 

Building IoT Applications with Vortex and the Intel Edison Starter Kit

  • 1. Building IoT Apps with Vortex and the Intel Edison Starter Kit Angelo Corsaro, PhD Chief Technology Officer [email protected]
  • 2. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryIoT Architectures
  • 7. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryVortex Intro
  • 8. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary Vortex is a standard technology for efficient, ubiquitous, interoperable, secure and platform independent data sharing across network connected devices in151 Characters
  • 9. Applications can autonomously and asynchronously read and write data enjoying spatial and temporal decoupling 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 Virtualised Data Space
  • 10. Temporal Decoupling Four different levels of temporal decoupling allow to control the trade-off between full temporal decoupling, performances and resource usage t Source t t Sink Sink Volatile Durability t Source t t Sink Sink Transient Durability
  • 11. Built-in dynamic discovery isolates applications from network topology and connectivity details 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 Dynamic Discovery
  • 12. Failure Detection Vortex provides mechanism for detecting traditional crashes as well as performance failures Source tSink Fault Notification TD Source t Sink Performance Failure Notification P t P P
  • 13. Fault Masking A built-in fault-masking mechanism transparently controls and switches between sources of data Source tSink Source t
  • 14. Fault Masking Vortex provides mechanism for detecting traditional crashes as well as performance failures Source tSink Source t
  • 15. QoS policies allow to express temporal and availability constraints for data 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 QoS - Enabled
  • 16. A collection of policies that control non- functional properties such as reliability, persistence, temporal constraints and priority QoS HISTORY LIFESPAN DURABILITY DEADLINE LATENCY BUDGET TRANSPORT PRIO TIME-BASED FILTER RESOURCE LIMITS USER DATA TOPIC DATA GROUP DATA OWENERSHIP OWN. STRENGTH LIVELINESS ENTITY FACTORY DW LIFECYCLE DR LIFECYCLE PRESENTATION RELIABILITY PARTITION DEST. ORDER RxO QoS Local QoS
  • 17. QoS Policies controlling end-to-end properties follow a Request vs. Offered QoS 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
  • 18. No single point of failure or bottleneck Decentralised Data Space Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Writer TopicA QoS TopicB QoS TopicC QoS TopicD QoS TopicD QoS TopicD QoS TopicA QoS
  • 19. Connectivity is dynamically adapted to chose the most effective way of sharing data Adaptive Connectivity Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Writer TopicA QoS TopicB QoS TopicC QoS TopicD QoS TopicD QoS TopicD QoS TopicA QoS The communication between the DataWriter and matching DataReaders can be peer-to- peer exploiting UDP/IP (Unicast and Multicast)or TCP/IP The communication between the DataWriter and matching DataReaders can be “brokered” but still exploiting UDP/IP (Unicast and Multicast)or TCP/IP
  • 20. A domain-wide information’s class A Topic defined by means of a <name, type, qos> Topic 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 Topic Type Name QoS
  • 21. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary Topic Types — Language Independent Declaration—
  • 22. Topic types can be expressed using different syntaxes, including IDL and ProtoBuf Topic Type struct CarDynamics { string cid; long x; long y; float dx; long dy; } #pragma keylist CarDynamics cid IDL
  • 23. Topic types can be expressed using different syntaxes, including IDL and ProtoBuf Topic Type message CarDynamics { option (.omg.dds.type) = {name: "CarDynamics"}; required string cid = 0 [(.omg.dds.member).key = true]; required long x = 1; required long y = 2; required float dx = 3; required long dy = 4; } ProtoBuf
  • 24. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary Topic Types — Language Dependent Declaration—
  • 25. Topic types can be expressed using different syntaxes, including IDL and ProtoBuf Topic Type class CarDynamics: constructor: (@cid, @x, @y, @dx, @dy) -> CoffeeScript
  • 26. Topic types can be expressed using different syntaxes, including IDL and ProtoBuf Topic Type public struct CaDynamics {
 public string cid { get; set; }
 public int x { get; set; }
 public int y { get; set; }
 public int dx { get; set; }
 public int dy { get; set; }
 
 public CaDynamics (string cid, int x, int y, int dx, int dy)
 {
 this.cid = cid;
 this.x = x; this.y = y;
 this.dx = dx; this.dy = dy;
 }
 }
 C#
  • 27. Topic types can be expressed using different syntaxes, including IDL and ProtoBuf Topic Type @KeyList ( topicType = "CarDynamics", keys = {"cid"})
 public class CarDynamics {
 public String cid;
 public int x; public int dx;
 public int y; public int dy;
 
 public CarDynamics(String s, int a, int b, int c,int d) {
 this.cid = s;
 this.x = a; this.dx = b;
 this.y = c; this.dy = d;
 }
 
 @Override
 public String toString() { …
 }
 
 }
 Java
  • 28. Vortex “knows” about application data types and uses this information provide type- safety and content-based routing Content Awareness struct CarDynamics { @key string cid; long x; long y; float dx; long dy; } cid x y dx dy GR 33N GO 167 240 45 0 LO 00V IN 65 26 65 0 AN 637 OS 32 853 0 50 AB 123 CD 325 235 80 0 “dx > 50 OR dy > 50” Type CarDynamics cid x y dx dy LO 00V IN 65 26 65 0 AB 123 CD 325 235 80 0
  • 29. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryProgramming Model
  • 31. CopyrightPrismTech,2015 Writing Data in Python import dds import time
 
 if __name__ == '__main__':
 topic = dds.Topic("SmartMeter", "Meter")
 dw = dds.Writer(topic)
 
 while True:
 m = readMeter()
 dw.write(m)
 time.sleep(0.1) enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 32. CopyrightPrismTech,2015 Reading Data in Python import dds
 import sys
 
 def readData(dr): 
 samples = dds.range(dr.read())
 for s in samples:
 sys.stdout.write(str(s.getData()))
 
 if __name__ == '__main__':
 t = dds.Topic("SmartMeter", "Meter")
 dr = dds.Reader(t)
 dr.onDataAvailable = readData enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 33. CopyrightPrismTech,2014 Writing Data in Scala import dds._
 import dds.prelude._
 import dds.config.DefaultEntities._
 object SmartMeter {
 
 def main(args: Array[String]): Unit = {
 val topic = Topic[Meter](“SmartMeter”)
 val dw = DataWriter[Meter](topic) while (!done) { val meter = readMeter()
 dw.write(meter) Thread.sleep(SAMPLING_PERIOD) }
 }
 } enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 34. CopyrightPrismTech,2014 Reading Data in Scala import dds._
 import dds.prelude._
 import dds.config.DefaultEntities._
 object ChatLog {
 def main(args: Array[String]): Unit = {
 val topic = Topic[Meter](“SmartMeter”)
 val dr = DataReader[Meter](topic)
 dr listen {
 case DataAvailable(_) => dr.read.foreach(println)
 }
 }
 } enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 35. CopyrightPrismTech,2014 Writing Data in C++ #include <dds.hpp> int main(int, char**) { DomainParticipant dp(0); Topic<Meter> topic(“SmartMeter”); Publisher pub(dp); DataWriter<Meter> dw(pub, topic); while (!done) { auto value = readMeter() dw.write(value); std::this_thread::sleep_for(SAMPLING_PERIOD); } return 0; } enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 36. CopyrightPrismTech,2014 Reading Data in C++ #include <dds.hpp> int main(int, char**) { DomainParticipant dp(0); Topic<Meter> topic(”SmartMeter”); Subscriber sub(dp); DataReader<Meter> dr(dp, topic); LambdaDataReaderListener<DataReader<Meter>> lst; lst.data_available = [](DataReader<Meter>& dr) { auto samples = data.read(); std::for_each(samples.begin(), samples.end(), [](Sample<Meter>& sample) { std::cout << sample.data() << std::endl; } } dr.listener(lst); // Print incoming data up to when the user does a Ctrl-C std::this_thread::join(); return 0; } enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 37. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryModeling Idioms
  • 38. A state that is periodically updated Examples are the reading of a sensor (e.g. Temperature Sensor), the position of a vehicle, etc. Soft State Reliability => BestEffort Durability => Volatile History => KeepLast(n) Deadline => updatePeriod LatencyBudget => updatePeriod/3 DestinationOrder => SourceTimestamp // Vortex’s Scala API provides first class implementation of the // soft-state pattern val temperature = SoftState[AnalogSensor](topicName)

  • 39. A state that is sporadically updated and that often has temporal persistence requirements Examples are system configuration, a price estimate, etc. Hard State Reliability => Reliable Durability => Transient | Persistent History => KeepLast(n) (often n =1) DestinationOrder => SourceTimestamp // Vortex’s Scala API provides first class implementation of the // hard-state pattern. The state is transient by default and can be controlled // by an additional argument val runningMicrosvc = HardState[RunningMicrosvc](topicName) 

  • 40. The occurrence of something noteworthy for our system Examples are a collision alert, the temperature beyond a given threshold, etc. Events Reliability => Reliable Durability => any History => KeepAll DestinationOrder => SourceTimestamp // Vortex’s Scala API provides first class implementation of the // hard-state pattern. The state is transient by default and can be controlled // by an additional argument val nodeError = Event[NodeError](topicName) 

  • 41. Data-centric design leverage the same principle of Feedback-control loops to assert a state In other terms, the desired state is asserted by writing a topic and the actual state is monitored. A control action is taken when the desired and the actual state differ Feedback Control Loop
  • 42. Data-centric design leverage the same principle of Feedback-control loops to assert a state In other terms, the desired state is asserted by writing a topic and the actual state is monitored. A control action is taken when the desired and the actual state differ Feedback Control Loop Hard State Soft State microservice
  • 43. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryVortex Technology Stack
  • 44. Device implementations optimised for OT, IT and consumer platforms Native support for Cloud and Fog Computing Architectures Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 45. Polyglot and Interoperable across Programming Languages Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 46. Fully Independent of the Cloud Infrastructure Private Clouds Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 47. Native Integration with the hottest real-time analytics platforms and CEP Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 48. Integration with the popular Node-RED framework Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 49. Integration with mainstream Dashboard Technologies Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 50. High Performance 30 μs peer-to-peer latency 4+ Mmsgs/sec p2p throughput Device-2-DeviceDevice-2-Cloud Fog-2-Cloud Device-2-Fog Cloud-2-Cloud Fog-2-Fog infrastructuresdk
  • 51. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryIntel Edison Starter Kit
  • 52. Edison is an Octo-Linux based x86 board for prototyping IoT applications Edison shirts an Intel optimised OpenJDK implementation — perfect for Café The Grove Starter Kit Plus provides a set of nice sensor, displays and actuators to get started with IoT IoT Starter Kit
  • 53. Before getting started with playing with the demo, make sure your board is properly configured You can check the configuration using the configure_edison command Ensure that the WiFi is working! Configuring your Board
  • 54. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiarySensors
  • 56. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryDisplays
  • 57. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary
  • 58. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryLED
  • 59. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary
  • 60. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryProgramming
  • 61. Intel has contributed several Open Source project that provide high level abstractions to access Sensors, LCD, Led, etc. , for a very large number of different kinds of sensors and manufacturers Programming
  • 62. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary LED Light Sensor
  • 63. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary IoT Applications with Vortex and Edison
  • 66. Vortex can be used to virtualise sensors/displays/motors/.. and make them universally available Instead of locally programming sensors/displays/motors we abstracts them with Topics and access /control through DDS in a location transparent manner Virtualisation 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
  • 67. The agentv micro service framework is used to flexibly provision and manage applications Deployment 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
  • 68. struct AnalogSensor { short id; float rvalue; float value; }; #pragma keylist AnalogSensor id Temperature Sensor Topic AnalogSensor Temperature SoftState sensor specific microsvc write read read read
  • 69. struct LCDText {
 short id;
 unsigned short row;
 unsigned short col;
 string text;
 };
 #pragma keylist LCDText id
 
 LCD Topic LCDText LCDText HardState sensor specific microsvc read read struct LCDColor {
 short id;
 short r;
 short g;
 short b;
 };
 #pragma keylist LCDColor id Topic LCDColor LCDColor HardState write write write
  • 70. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiaryCoding-Lab
  • 71. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary
  • 72. This slides have been crafted by Angelo Corsaro Any use of these slides that does include me as Author/Co-Author is plagiary
  • 73. Vortex makes it extremely easy to build IoT applications Get started Building IoT apps with Vortex and Edison! In Summary