getting started with vortex
TRANSCRIPT
![Page 1: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/1.jpg)
Data Sharing in Industrial IoT
AngeloCorsaro,PhDChiefTechnologyOfficer
![Page 2: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/2.jpg)
Vortex is a standard technology for efficient, ubiquitous, interoperable, secure and platform independent data sharing across network connected devices
in151 Characters
![Page 3: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/3.jpg)
Vortex's Coordination Model
![Page 4: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/4.jpg)
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
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
Global Data Space
![Page 5: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/5.jpg)
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
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
Dynamic Discovery
![Page 6: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/6.jpg)
The relevant portion of the data space is projected on
the application address space. Each typed projection is commonly called a Cache
No single point of failure or bottleneck
Decentralised Data Space
Data Writer
Data Writer
Data Writer
Data Reader
Data Reader
Data Reader
Data Writer
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
TopicDQoS
TopicDQoS
TopicAQoS
![Page 7: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/7.jpg)
Connectivity is dynamically adapted to chose the most
effective way of sharing data
Adaptive ConnectivityData
Writer
Data Writer
Data Writer
Data Reader
Data Reader
Data Reader
Data Writer
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
TopicDQoS
TopicDQoS
TopicAQoS
ThecommunicationbetweentheDataWriterandmatchingDataReaderscanbepeer-to-peerexploitingUDP/IP(UnicastandMulticast)orTCP/IP
ThecommunicationbetweentheDataWriterandmatchingDataReaderscanbe“brokered”butstillexploitingUDP/IP(UnicastandMulticast)orTCP/IP
![Page 8: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/8.jpg)
Topic
![Page 9: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/9.jpg)
A domain-wide information’s class A Topic defined by means
of a <name, type, qos>
TopicDDS Global Data Space
...
Data Writer
Data Writer
Data Writer
Data Reader
Data Reader
Data Reader
Data Reader
Data Writer
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
TopicTypeName
QoS
![Page 10: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/10.jpg)
Topic Types
![Page 11: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/11.jpg)
Topic Types: Language Independent
Definitions
![Page 12: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/12.jpg)
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
![Page 13: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/13.jpg)
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
![Page 14: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/14.jpg)
Topic Types: Language Specific
Definitions
![Page 15: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/15.jpg)
Topic types can be expressed using different syntaxes,
including IDL and ProtoBuf
Topic Type class CarDynamics: constructor: (@cid, @x, @y, @dx, @dy) ->
CoffeeScript
![Page 16: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/16.jpg)
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#
![Page 17: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/17.jpg)
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
![Page 18: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/18.jpg)
Topics, Instances and Samples
![Page 19: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/19.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5
Each unique key value identifies a stream of data
Vortex demultiplexes “streams” and provides lifecycle information
A DataWriter can write samples belonging to multiple instances
Topic Instances
CarDynamics
\
Instances
struct CarDynamics { @key string cid; long x; long y; float dx; long dy; }
Topic
Topic Type
Sample
![Page 20: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/20.jpg)
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
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
QoS - Enabled
![Page 21: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/21.jpg)
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
![Page 22: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/22.jpg)
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
DomainParticipant
offered QoS
Topicwrites reads
Domain Idjoins joins
produces-in consumes-from
RxO QoS Policies
requested QoS
![Page 23: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/23.jpg)
Interacting with the Data Cache
![Page 24: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/24.jpg)
Each Data Reader is associated with a Cache
The Cache stores the last n∊𝜨∞ samples for each
relevant instance
Data Cache
Data Writer
Data Writer
Data Writer
Data Reader
Data Reader
Data Reader
Data Writer
TopicAQoS
TopicBQoS
TopicCQoS
TopicDQoS
TopicDQoS
TopicDQoS
TopicAQoS
![Page 25: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/25.jpg)
Each Data Reader is associated with a Cache
The Cache stores the last n∊𝜨∞ samples for each
relevant instance
Data Cache
DataReader Cache
DataReader
...
Samples
Instances
Cache
![Page 26: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/26.jpg)
The action of reading samples for a Reader Cache
is non-destructive.
Samples are not removed from the cache
Reading Data
DataReader Cache
DataReader
...
DataReader Cache
DataReader
...read
![Page 27: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/27.jpg)
The action of taking samples for a Reader Cache
is destructive.
Samples are removed from the cache
Taking Data
DataReader Cache
DataReader
...
DataReader Cache
DataReader
...take
![Page 28: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/28.jpg)
Samples can be selected using composable content
and status predicates
Sample Selectors
DataReader Cache
DataReader
...
![Page 29: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/29.jpg)
Filters allow to control what gets into a DataReader
cache
Filters are expressed as SQL where clauses or as
Java/C/JavaScript predicates
Content-Filtering
DataReader Cache
DataReader
...
Filter
Application
Network
![Page 30: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/30.jpg)
Content Filters can be used to project on the
local cache only the Topic data
satisfying a given predicate
Content Filters structCarDynamics{
@keystringcid;longx;longy;floatdx;longdy;}
cid x y dx dyGR 33N GO 167 240 45 0LO 00V IN 65 26 65 0AN 637 OS 32 853 0 50AB 123 CD 325 235 80 0
“dx>50ORdy>50”
Type
CarDynamics
cid x y dx dyLO 00V IN 65 26 65 0AB 123 CD 325 235 80 0
Reader Cache
![Page 31: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/31.jpg)
Queries allow to control what gets out of a
DataReader Cache
Queries are expressed as SQL where clauses or as
Java/C/JavaScript predicates
Content-Based Selection
DataReader Cache
DataReader
...
Query
DataReader Cache
DataReader
...
Application
Network
![Page 32: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/32.jpg)
Reader Cache
Queries can be used to select out of the local cache
the data matching a given predicate
QueriesstructCarDynamics{@keystringcid;longx;longy;floatdx;longdy;}
cid x y dx dyGR 33N GO 167 240 45 0LO 00V IN 65 26 65 0AN 637 OS 32 853 0 50AB 123 CD 325 235 80 0
“dx>50ORdy>50”
Type
CarDynamics
cid x y dx dyGR 33N GO 167 240 45 0LO 00V IN 65 26 65 0AN 637 OS 32 853 0 50AB 123 CD 325 235 80 0
cid x y dx dyLO 00V IN 65 26 65 0AB 123 CD 325 235 80 0
query
![Page 33: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/33.jpg)
State based selection allows to control what gets out of a DataReader Cache
State base selectors predicate on samples meta-
information
State-Based Selection
DataReader Cache
DataReader
...
State Selector
DataReader Cache
DataReader
...
Application
Network
![Page 34: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/34.jpg)
Sample State (READ, NOT_READ) allows to distinguish between new
samples and samples that have already been read
State-Based Selection
DataReader Cache
DataReader
...
State Selector
DataReader Cache
DataReader
...
Application
Network
![Page 35: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/35.jpg)
The View State (NEW, NOT_NEW) allows to distinguish a new instance
from an existing one
State-Based Selection
DataReader Cache
DataReader
...
State Selector
DataReader Cache
DataReader
...
Application
Network
![Page 36: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/36.jpg)
The Instance State (ALIVE, NOT_ALIVE_DISPOSED,
NOT_ALIVE_NO_WRITERS) allows to track the life-cycle transitions of the instance to which a sample belongs
State-Based Selection
DataReader Cache
DataReader
...
State Selector
DataReader Cache
DataReader
...
Application
Network
![Page 37: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/37.jpg)
Selector Example
// == ISO C++ DDS API ==
auto data = dr.select() .content(query) .state(data_state) .instance(handle) .read();
![Page 38: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/38.jpg)
your first vortex app
![Page 39: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/39.jpg)
Cop
yrig
ht P
rism
Tech
, 201
4
Anatomy of a DDS Application
![Page 40: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/40.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5
Writing Data in C++#include <dds.hpp>
int main(int, char**) {
DomainParticipant dp(0); Topic<Meter> topic(“SmartMeter”); auto pqos = dp.get_default_pubqos() << Partition (“FR:IdF:Essonne:Gif:Essonne:Mnts:123”); Publisher pub(dp, pqos); DataWriter<Meter> dw(pub, topic);
while (!done) { auto value = readMeter() dw.write(value); std::this_thread::sleep_for(SAMPLING_PERIOD); }
return 0; }
enumUtilityKind{ ELECTRICITY, GAS, WATER};structMeter{ stringsn; UtilityKindutility; floatreading; floaterror;};#pragmakeylistMetersn
![Page 41: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/41.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5
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; }
enumUtilityKind{ ELECTRICITY, GAS, WATER};structMeter{ stringsn; UtilityKindutility; floatreading; floaterror;};#pragmakeylistMetersn
![Page 42: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/42.jpg)
Cop
yrig
ht P
rism
Tech
, 201
4
Writing Data in Scalaimport 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) } }}
enumUtilityKind{ ELECTRICITY, GAS, WATER};structMeter{ stringsn; UtilityKindutility; floatreading; floaterror;};#pragmakeylistMetersn
![Page 43: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/43.jpg)
Cop
yrig
ht P
rism
Tech
, 201
4
Reading Data in Scala
import dds._import dds.prelude._import dds.config.DefaultEntities._
object SmartMeterLog { def main(args: Array[String]): Unit = { val topic = Topic[Meter](“SmartMeter”) val dr = DataReader[Meter](topic) dr listen { case DataAvailable(_) => dr.read.foreach(println) } }}
enumUtilityKind{ ELECTRICITY, GAS, WATER};structMeter{ stringsn; UtilityKindutility; floatreading; floaterror;};#pragmakeylistMetersn
![Page 44: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/44.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5
Writing Data in Python
import dds import timeif __name__ == '__main__': topic = dds.Topic("SmartMeter", "Meter") dw = dds.Writer(topic) while True: m = readMeter() dw.write(m) time.sleep(0.1)
enumUtilityKind{ ELECTRICITY, GAS, WATER};structMeter{ stringsn; UtilityKindutility; floatreading; floaterror;};#pragmakeylistMetersn
![Page 45: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/45.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5
Reading Data in Pythonimport ddsimport 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
enumUtilityKind{ ELECTRICITY, GAS, WATER};structMeter{ stringsn; UtilityKindutility; floatreading; floaterror;};#pragmakeylistMetersn
![Page 46: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/46.jpg)
Vortex Technology Stack
![Page 47: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/47.jpg)
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
infra
structure
sdk
![Page 48: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/48.jpg)
Available across IT, Consumer and OT platforms Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 49: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/49.jpg)
Polyglot and Interoperable across Programming
Languages Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 50: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/50.jpg)
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
infra
structure
sdk
![Page 51: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/51.jpg)
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
infra
structure
sdk
![Page 52: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/52.jpg)
Integration with mainstream Dashboard Technologies
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 53: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/53.jpg)
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
infra
structure
sdk
![Page 54: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/54.jpg)
>10 μs fog/cloud routing latency
High Performance Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 55: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/55.jpg)
SecureData-Level security with Pluggable Authentication Access Control and Crypto
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 56: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/56.jpg)
Default Plug-insX.509 Public Key
Infrastructure (PKI) based authentication
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 57: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/57.jpg)
Default Plug-insAccess Control List file
signed by a shared Certificate Authority for
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 58: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/58.jpg)
Default Plug-ins
Crypto based on TLS Cipher Suite
Device-2-DeviceDevice-2-Cloud
Fog-2-Cloud
Device-2-Fog
Cloud-2-Cloud
Fog-2-Fog
infra
structure
sdk
![Page 59: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/59.jpg)
SecureData-Security as opposed to simply Transport-Level
security
Arthur Dent
Arthur Dent
Ford Prefect
Zaphod Beeblebrox
Marvin
Trillian
left/A(r,w), left/B(r)
left/A(r,w), left/B(r,w), left/X(r)
left/*(r,w)
left/*(r), right/(w)
left/A(r,w), left/B(r,w), right/C(r,w)
Ford Prefect
Zaphod Beeblebrox
Trillian
Marvin
A
B
A,BX
*
*
A,B,C
Identity Access RightsSessions are authenticated and communication is encrypted
Only the Topic included as part of the access rights are visible and accessible
![Page 60: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/60.jpg)
SecureFine-grained access control
over Partition/Topic/Instance regular expressions
Arthur Dent
Arthur Dent
Ford Prefect
Zaphod Beeblebrox
Marvin
Trillian
left/A(r,w), left/B(r)
left/A(r,w), left/B(r,w), left/X(r)
left/*(r,w)
left/*(r), right/(w)
left/A(r,w), left/B(r,w), right/C(r,w)
Ford Prefect
Zaphod Beeblebrox
Trillian
Marvin
A
B
A,BX
*
*
A,B,C
Identity Access RightsSessions are authenticated and communication is encrypted
Only the Topic included as part of the access rights are visible and accessible
![Page 61: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/61.jpg)
SecureSupport for Symmetric and Asymmetric Authentication
Arthur Dent
Arthur Dent
Ford Prefect
Zaphod Beeblebrox
Marvin
Trillian
left/A(r,w), left/B(r)
left/A(r,w), left/B(r,w), left/X(r)
left/*(r,w)
left/*(r), right/(w)
left/A(r,w), left/B(r,w), right/C(r,w)
Ford Prefect
Zaphod Beeblebrox
Trillian
Marvin
A
B
A,BX
*
*
A,B,C
Identity Access RightsSessions are authenticated and communication is encrypted
Only the Topic included as part of the access rights are visible and accessible
![Page 62: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/62.jpg)
Boundary SecurityBoundary security support is
enabled by Vortex-Fog
Device-to-Cloud Communication
Peer-to-Peer (Broker-less)
Device-to-Device Communication
Fog Computing Fog ComputingFog Computing
TLS
TLS
![Page 63: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/63.jpg)
Boundary SecuritySeparates security concerns at
different scales and controls what information is exposed
Device-to-Cloud Communication
Peer-to-Peer (Broker-less)
Device-to-Device Communication
Fog Computing Fog ComputingFog Computing
TLS
TLS
![Page 64: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/64.jpg)
Typical Deployment
![Page 65: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/65.jpg)
Vortex device, such as Lite, Café, and Web are used to share data between different kinds of applications within a car
Café and Web are typically used Android / HTML5 based infotainment
Lite in typically used in ECU, sensors and onboard analytics
![Page 66: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/66.jpg)
Vortex Fog is used to transparently (for in car apps) decouple and control the data sharing within and across the car
Vortex Fog also helps defining security boundaries and policies
![Page 67: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/67.jpg)
Vortex Fog efficiently and securely deals with car to car communication
Vortex Fog allows to decouple the transport used for in-car communication and that used for car-to-car communication
![Page 68: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/68.jpg)
Vortex Fog efficiently and securely deals with cloud connectivity adapting traffic flows and protocols
Device-to-Cloud Communication
Cloud Analytics
Fog AnalyticsFog Analytics
Fog Analytics
Vortex Cloud efficiently and securely makes data available to any device at an Internet Scale
![Page 69: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/69.jpg)
Vortex Cloud efficiently and securely makes data available to any device at an Internet Scale
Device-to-Cloud Communication
Cloud Analytics
Fog AnalyticsFog Analytics
Fog Analytics
![Page 70: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/70.jpg)
Use Cases
![Page 71: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/71.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5
Connected Boulevard — Nice, FranceVortex enables is the data sharing platform
for the City Operating System
Tens of thousands of devices connected by Vortex
![Page 72: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/72.jpg)
Autonomous Vehicles
coordination of fast moving autonomous vehicles
intermittent connectivity
dynamic pairing of devices
![Page 73: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/73.jpg)
Cop
yrig
ht P
rism
Tech
, 201
4
Smart Factory0.5 TB of data
produced per day
![Page 74: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/74.jpg)
Cop
yrig
ht P
rism
Tech
, 201
4
Smart-Grid
20ms deadline for phase alignment data
![Page 75: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/75.jpg)
ESA Extremely Large & SMART Telescope (ELT)
1750 computing nodes
100.000 mirrors whose position is
adjusted 100 times per second!
ELT will allow astronomers to probe the earliest stages
of the formation of planetary systems and to detect water and organic
molecules in proto-planetary discs around
stars in the making
![Page 76: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/76.jpg)
Launch System
80K+ data points with aggregate updates rate of ~400K msgs/sec
![Page 77: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/77.jpg)
Connected Aircrafts
10 TB of data every 30m of flight
![Page 78: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/78.jpg)
Oil Rig 30000 data pointsonly 1% of available data
used today
![Page 79: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/79.jpg)
Smart Lightbulbs96Kbytes Memory
Connected Medical Devices
12 msec period for pleath data
Peer-to-Peer connectivity
![Page 80: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/80.jpg)
Vortex enables Smart, Secure and Efficient Data Sharing in IoT
In Summary
![Page 81: Getting Started with Vortex](https://reader031.vdocument.in/reader031/viewer/2022021922/5879efcf1a28ab70298b474f/html5/thumbnails/81.jpg)
Cop
yrig
ht P
rism
Tech
, 201
5