SlideShare a Scribd company logo
IoT Protocols Integration
Angelo	
  Corsaro,	
  PhD	
  
Chief	
  Technology	
  Officer	
  
angelo.corsaro@prismtech.com
with
IaaS
analytics
operational systems
information systems
mobile
desktop
web
embedded
fog computing
messaging / data-sharing
Cloud Messaging
Fog
Fog
Storage
IoT Systems are heterogeneous by nature
IoT architectures have to be designed so to
facilitate integration
The danger of O(N2
) integration should be
addressed architecturally
Integration
Stable
Core
Define a Stable Core made by a
Reference Platform and Data Model.
Integrate always toward the Stable Core
This approach ensure that the integration
problem retains O(N) complexity
Stable
Core
Stable Core withVortex
Vortex is a universal data-sharing backbone
CopyrightPrismTech,2015
Vortex supports natively a large number of mobile, enterprise,
embedded, cloud, web, and analytics computing platforms
Mobile
& Web
Embedded
General
Purpose
ClouD
Private Cloud
Analytics
Vortex is programming language independent
Programming
Langauges
Programming
Langauges
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)
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 (true) {
val meter = readMeter()

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

}

}
Vortex is data-centric and natively supports the
definition of canonical data models
Data-Modeling
Data-Modeling
	
  	
  	
  	
  	
  enum	
  UtilityKind	
  {	
  
	
   	
  	
  	
  	
  ELECTRICITY,	
  
	
   	
  	
  	
  	
  GAS,	
  
	
   	
  	
  	
  	
  WATER	
  
	
  	
  	
  	
  	
  	
  };	
  
	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  struct	
  Meter	
  {	
  
	
   	
  	
  	
  	
  string	
  sn;	
  
	
   	
  	
  	
  	
  UtilityKind	
  utility;	
  
	
   	
  	
  	
  	
  float	
  reading;	
  
	
   	
  	
  	
  	
  float	
  error;	
  
	
  	
  	
  	
  	
  	
  };	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  #pragma	
  keylist	
  Meter	
  sn	
  
Vortex provide an extremely rich
technological base to define the
infrastructure of an IoT System
Vortex natively supports the definition of
canonical data models
In
Summary
Integration withVortex-Gateway
Vortex integration swiss-army knife
Based on Apache Camel and supporting
200+ connectors to protocols, data stores,
analytics, etc.
Supports protocol, format and encoding
transformation
Extensible to allow quick integration of
proprietary technologies
messaging/
Data-Sharing
Data Stores
Putting it all Together
IaaS
Storage
Getting Started with
Vortex-Gateway
CopyrightPrismTech,2015
Architecture
camel-ospl

Component
VortexOpenSplice
camel-ddsi

Component
Vortex-Cafe
•
Based on 

DataReader & 

DataWriter
•
Typed data
•
No native or

generated code
•
No marshalling

(raw data buffer)
Camel DDS Processors
•
DDSI demarshaller / 

marshaller
•
Data transformation
•
Dynamic Poll Enricher
•
QoS adaptations 

CopyrightPrismTech,2015
Components: Provide connectivity to a given technology
Endpoints: Represent a source/destination of messages from/to a components
Exchanges: Encapsulate data and meta coming from and end-point
Routes: Define path from input endpoints to output endpoints
Processors: Allow to perform transformation to the data, its format, etc.
Key Elements
endpoint exchange
route
processor
CopyrightPrismTech,2015
A component is a factory of Endpoint instances. Over 200 components are supported
Endpoints are specified using URI:
- dds:TopicName:DomainID/TopicType?QoS
- cometd://host:port/channelname
- jms:[topic:]destinationName
- [tcp|udp|vm]:host[:port]
- xmpp://host:port/room
- …
Components and Endpoints
CopyrightPrismTech,2015
Sample Route in Scala
val route= new RouteBuilder {!
“ddsi:Foo:1/FooType” to “dds:Bar:2/FooType” !
}!
DDSI Endpoint! Topic Name! DomainID! TypeName!
val route= new RouteBuilder {!
“dds:Foo:1/FooType” to “dds:Bar:2/FooType” !
}!
DDS Endpoint! Topic Name! DomainID! TypeName!
CopyrightPrismTech,2015
EIP provide pre-specified ways of integrating endpoints
The most common integration patterns are supported,
such as, multicast, filtering, correlation, content-routing,
load-balancing, etc.
Multicast Ex:
Enterprise Integration Patterns
val shapesRoute = new RouteBuilder {!
“dds:Foo:1/FooType” !
"to (“dds:Bar:2/BarType”, “jms:topic:Foo”)!
}!
Recipient List Content Based
Router
Message
FIlter
A B
Correlation ID
Splitter Aggregator
Data Integration
CopyrightPrismTech,2015
Data Integration Patterns are a synthesis of the most commonly used techniques for
integrating systems that don’t share the same representation for some given entities
Some common Data Integration Patterns are
- Content Enricher
- Content Filter
- Type Transformation
- Canonical Data Model
Data Integration Patterns
CopyrightPrismTech,2015
Enriches a data type by adding additional information required by the target
system/subsystem
Example: Compute speed and enrich position
Content Enricher
struct CartesianCoord2D {
long x;
long y;
};
struct Dynamics2D {
long x;
long y;
long dx;
long dy;
};System A System B
Content Enricher
CopyrightPrismTech,2015
Projects a data type by removing information not required by the target system/
subsystem
Example: Going from Dynamics to Position
Content Filter
struct CartesianCoord2D {
long x;
long y;
};
struct Dynamics2D {
long x;
long y;
long dx;
long dy;
};System A System B
Content Filter
CopyrightPrismTech,2015
The Canonical Data Model Pattern is commonly used in DDS
systems. In this case, data is always transformed into the
representation used by the “Canonical Model”. This approach is very
useful as it reduces the integration complexity
Example: Coordinate Systems
Canonical Data Model
Type Transformer
struct CartesianCoord2D {
long x;
long y;
};
struct PolarCoord2D {
long rho;
float theta;
};
System A System B
Canonical Data Model
CopyrightPrismTech,2015
When using a DDSI endpoint de-marshaling is lazy. Thus in this
example data is never de-marshalled but simply sent-over to the
target domain, with the result that domain bridging is very
efficient!
Topic/Domain Bridging
Vortex

Domain 1
Vortex

Domain 0
Topic

“Circle”
Topic

“Square”
1 val in = "ddsi:Circle:0/ShapeType"
2 val out = "ddsi:Square:1/ShapeType"
3
4 val shapesRoute = new RouteBuilder {
5 in to out
6 }
CopyrightPrismTech,2015
process allows to perform arbitrary
modifications to the exchange content
As such it can be used to implement arbitrary
type transformations
Type Transformation
Vortex

Domain 1
Vortex

Domain 0
Topic

“Foo”
Topic

“Bar”
1 val shapeRoute0 = new RouteBuilder {
2 in unmarshal(cdrData) process ({
3 e => foo2Bar(e.getIn.getBody(classOf[Foo]))})
4 to out
5 }
Data Policing
CopyrightPrismTech,2015
Content Router
1 // Define endpoints
2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
3 val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType
4 val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType
5
6 val cdrData = new DataFormatDefinition(new CDRDataFormat)
7 val shapesRoute = new RouteBuilder {
8 inEndpoint unmarshal(cdrData) choice {
9 when ( e => {
10 val s = e.getIn.getBody(classOf[ShapeType])
11 if (s.x > s.y) true else false
12 }) to outEndpoint1
13
14 when (e => {
15 val s = e.getIn.getBody(classOf[ShapeType])
16 if (s.x < s.y) true else false
17 }) to outEndpoint2
18
19 otherwise { to (outEndpoint1, outEndpoint2) }
20 }
21
22 }
Vortex

Domain 2
Vortex

Domain 0
Topic

“Circle”
Topic

“Circle”
Vortex

Domain 1
Topic

“Circle”
if (x >= y) if (x <= y)
CopyrightPrismTech,2015
Load Balancing
Vortex

Domain 2
Vortex

Domain 0
Topic

“Circle”
Topic

“Circle”
Vortex

Domain 1
Topic

“Circle”
load balance
1 // Define endpoints
2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
3 val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType
4 val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType
5
6 // Define a Route using the Java DSL
7 val shapesRoute = new RouteBuilder {
8 override def configure() =
9 from(inEndpoint).sample(period, TimeUnit.MILLISECONDS)
10 loadBalance() roundRobin()
11 to(outEndpoint1, outEndpoint2)
12 }
Impedance Adaptation
CopyrightPrismTech,2015
Data Sampling
Vortex

Domain 1
Vortex

Domain 0
Topic

“Circle”
Topic

“Circle”
1 per 500 msec
1 // Define endpoints
2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
3 val outEndpoint = "ddsi:"+ outTopic +":"+ outDomain +"/" + shapeType
4
5 // Define a Route using the Java DSL
6 val shapesRoute = new RouteBuilder {
7 override def configure() =
8 from(inEndpoint) sample(period, TimeUnit.MILLISECONDS)
9 to(outEndpoint)
10 }
Technology Integration
CopyrightPrismTech,2015
JMS Integration
JMS
Vortex

Domain
Topic

“Circle”
Topic

“Circle”
To Json
1 val dds = "ddsi:Circle:0/ShapeType"
2 val jms =
3 "jms:topic:circle?jmsMessageType=Text&deliveryPersistent=false"
4
5 val shapeRoute = new RouteBuider {
6 from(dds) unmarshal("cdr") marshal().json() to(jms)
7 }
CopyrightPrismTech,2015
1 // Define endpoints
2 val inEndpoint =
3 "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
4 val outEndpoint =
5 "websocket://"+inTopic.toLowerCase + "?sendToAll=true"
6
7 // Define a Route using the Scala DSL
8 val shapesRoute = new RouteBuilder {
9 override def configure() =
10 from(inEndpoint) unmarshal("cdr") marshal() json() to(outEndpoint)
11 }
WebSocket Integration
Vortex

Domain
Topic

“Circle”
To JSON
CopyrightPrismTech,2014
MQTT Integration
MQTT
Vortex

Domain
Topic

“Circle”
Topic

“Circle”
To Json
1 val dds = "ddsi:Circle:0/ShapeType"
2 val mqtt =
3 "mqtt:topic:circle"
4
5 val shapeRoute = new RouteBuider {
6 from(dds) unmarshal("cdr") marshal().json() to(mqtt)
7 }
CopyrightPrismTech,2014
HBase Integration
Vortex

Domain
Topic

“Circle”
To Json
1 val dds = "ddsi:Circle:0/ShapeType"
2 val hbase =
3 "hbase:Circle?mappingStrategyName=body&operation=CamelHBasePut""
4
5 val shapeRoute = new RouteBuider {
6 from(dds) unmarshal("cdr") marshal().json() to(hbase)
7 }
Demo
Vortex provides, probably, the best
technology base for defining the stable core
of an IoT System
Vortex Gateway makes it trivial to integrate
other systems, applications and technologies
Vortex
CopyrightPrismTech,2015

More Related Content

What's hot

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
Angelo 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 I
Angelo Corsaro
 
Building IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter KitBuilding IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter Kit
Angelo Corsaro
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
Angelo 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 ReactiveX
Angelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
Angelo Corsaro
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
Angelo Corsaro
 
Vortex Tutorial Part 2
Vortex Tutorial Part 2Vortex Tutorial Part 2
Vortex Tutorial Part 2
ADLINK Technology IoT
 
Building Reactive Applications with DDS
Building Reactive Applications with DDSBuilding Reactive Applications with DDS
Building Reactive Applications with DDS
Angelo Corsaro
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
Angelo Corsaro
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
Angelo Corsaro
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part II
Angelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
Angelo 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 Java
Angelo Corsaro
 
Connected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with VortexConnected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with Vortex
Angelo Corsaro
 
The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
Angelo Corsaro
 
DDS Security
DDS SecurityDDS Security
DDS Security
Angelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
Angelo Corsaro
 
Reactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDSReactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDS
Angelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
Angelo Corsaro
 

What's hot (20)

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
 
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
 
Building IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter KitBuilding IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter Kit
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
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
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
 
Vortex Tutorial Part 2
Vortex Tutorial Part 2Vortex Tutorial Part 2
Vortex Tutorial Part 2
 
Building Reactive Applications with DDS
Building Reactive Applications with DDSBuilding Reactive Applications with DDS
Building Reactive Applications with DDS
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part II
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
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
 
Connected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with VortexConnected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with Vortex
 
The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
Reactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDSReactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDS
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 

Viewers also liked

The Data Distribution Service: The Communication Middleware Fabric for Scala...
The Data Distribution Service: The Communication  Middleware Fabric for Scala...The Data Distribution Service: The Communication  Middleware Fabric for Scala...
The Data Distribution Service: The Communication Middleware Fabric for Scala...
Angelo Corsaro
 
Smart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoTSmart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoT
Angelo Corsaro
 
Fluid IoT Architectures
Fluid IoT ArchitecturesFluid IoT Architectures
Fluid IoT Architectures
Angelo Corsaro
 
Vortex 2.0 -- The Industrial Internet of Things Platform
Vortex 2.0 -- The Industrial Internet of Things PlatformVortex 2.0 -- The Industrial Internet of Things Platform
Vortex 2.0 -- The Industrial Internet of Things Platform
Angelo Corsaro
 
Fog Computing with Vortex
Fog Computing with VortexFog Computing with Vortex
Fog Computing with Vortex
Angelo Corsaro
 
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
Angelo Corsaro
 
Happy 2016!
Happy 2016!Happy 2016!
Happy 2016!
Angelo Corsaro
 
Master Refined Staging Pp
Master Refined Staging PpMaster Refined Staging Pp
Master Refined Staging PpMonicaObershaw
 
Vsb sec lit #1
Vsb sec lit #1Vsb sec lit #1
Vsb sec lit #1
Faye Brownlie
 
Visita parque ciencias 2º ciclo
Visita parque ciencias 2º cicloVisita parque ciencias 2º ciclo
Visita parque ciencias 2º ciclo
XXX XXX
 
The Dawn
The DawnThe Dawn
The DawnRuthEA
 
Ugliest Nhl Jerseys
Ugliest Nhl JerseysUgliest Nhl Jerseys
Ugliest Nhl Jerseys
steve0965
 
Kamloops.#2.nov.2012
Kamloops.#2.nov.2012Kamloops.#2.nov.2012
Kamloops.#2.nov.2012
Faye Brownlie
 
In Memoriam Octavian Paler
In Memoriam Octavian PalerIn Memoriam Octavian Paler
In Memoriam Octavian Palerpuicarmariana
 

Viewers also liked (17)

The Data Distribution Service: The Communication Middleware Fabric for Scala...
The Data Distribution Service: The Communication  Middleware Fabric for Scala...The Data Distribution Service: The Communication  Middleware Fabric for Scala...
The Data Distribution Service: The Communication Middleware Fabric for Scala...
 
Smart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoTSmart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoT
 
Fluid IoT Architectures
Fluid IoT ArchitecturesFluid IoT Architectures
Fluid IoT Architectures
 
Vortex 2.0 -- The Industrial Internet of Things Platform
Vortex 2.0 -- The Industrial Internet of Things PlatformVortex 2.0 -- The Industrial Internet of Things Platform
Vortex 2.0 -- The Industrial Internet of Things Platform
 
Fog Computing with Vortex
Fog Computing with VortexFog Computing with Vortex
Fog Computing with Vortex
 
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
 
Happy 2016!
Happy 2016!Happy 2016!
Happy 2016!
 
Master Refined Staging Pp
Master Refined Staging PpMaster Refined Staging Pp
Master Refined Staging Pp
 
Vsb sec lit #1
Vsb sec lit #1Vsb sec lit #1
Vsb sec lit #1
 
Sph 107 Ch 9
Sph 107 Ch 9Sph 107 Ch 9
Sph 107 Ch 9
 
Madurodam
MadurodamMadurodam
Madurodam
 
Visita parque ciencias 2º ciclo
Visita parque ciencias 2º cicloVisita parque ciencias 2º ciclo
Visita parque ciencias 2º ciclo
 
The Dawn
The DawnThe Dawn
The Dawn
 
ikh323-01
ikh323-01ikh323-01
ikh323-01
 
Ugliest Nhl Jerseys
Ugliest Nhl JerseysUgliest Nhl Jerseys
Ugliest Nhl Jerseys
 
Kamloops.#2.nov.2012
Kamloops.#2.nov.2012Kamloops.#2.nov.2012
Kamloops.#2.nov.2012
 
In Memoriam Octavian Paler
In Memoriam Octavian PalerIn Memoriam Octavian Paler
In Memoriam Octavian Paler
 

Similar to IoT Protocols Integration with Vortex Gateway

Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
Angelo Corsaro
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
Angelo Corsaro
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
Jaime Martin Losa
 
Vortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud MessagingVortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud Messaging
ADLINK Technology IoT
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and Rx
Sumant Tambe
 
Data Mesh Part 4 Monolith to Mesh
Data Mesh Part 4 Monolith to MeshData Mesh Part 4 Monolith to Mesh
Data Mesh Part 4 Monolith to Mesh
Jeffrey T. Pollock
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
Jaime Martin Losa
 
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
HostedbyConfluent
 
Product overview 6.0 v.1.0
Product overview 6.0 v.1.0Product overview 6.0 v.1.0
Product overview 6.0 v.1.0
Gianluigi Riccio
 
Overview of the DDS-XRCE specification
Overview of the DDS-XRCE specificationOverview of the DDS-XRCE specification
Overview of the DDS-XRCE specification
Gerardo Pardo-Castellote
 
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
OpenStack Korea Community
 
Flash session -streaming--ses1243-lon
Flash session -streaming--ses1243-lonFlash session -streaming--ses1243-lon
Flash session -streaming--ses1243-lon
Jeffrey T. Pollock
 
DICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made EasyDICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made Easy
Cloudify Community
 
Confluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & LearnConfluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & Learn
confluent
 
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed KafsiSpark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit
 
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in SwitzerlandMobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
François Garillot
 
Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...
Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...
Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...
BigData_Europe
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
Luca Garulli
 
Metaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdfMetaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdf
湯米吳 Tommy Wu
 
AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...
AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...
AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...
Stavros Papadopoulos
 

Similar to IoT Protocols Integration with Vortex Gateway (20)

Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Vortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud MessagingVortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud Messaging
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and Rx
 
Data Mesh Part 4 Monolith to Mesh
Data Mesh Part 4 Monolith to MeshData Mesh Part 4 Monolith to Mesh
Data Mesh Part 4 Monolith to Mesh
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
Streaming Data Into Your Lakehouse With Frank Munz | Current 2022
 
Product overview 6.0 v.1.0
Product overview 6.0 v.1.0Product overview 6.0 v.1.0
Product overview 6.0 v.1.0
 
Overview of the DDS-XRCE specification
Overview of the DDS-XRCE specificationOverview of the DDS-XRCE specification
Overview of the DDS-XRCE specification
 
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
 
Flash session -streaming--ses1243-lon
Flash session -streaming--ses1243-lonFlash session -streaming--ses1243-lon
Flash session -streaming--ses1243-lon
 
DICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made EasyDICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made Easy
 
Confluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & LearnConfluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & Learn
 
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed KafsiSpark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
 
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in SwitzerlandMobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
 
Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...
Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...
Big Data Europe SC6 WS #3: Big Data Europe Platform: Apps, challenges, goals ...
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 
Metaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdfMetaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdf
 
AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...
AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...
AIS data management and time series analytics on TileDB Cloud (Webinar, Feb 3...
 

More from Angelo Corsaro

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
Angelo Corsaro
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
Angelo Corsaro
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
Angelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Angelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Angelo Corsaro
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
Angelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
Angelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
Angelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
Angelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
Angelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
Angelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
Angelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
Angelo 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 Standard
Angelo Corsaro
 
Fog Computing Defined
Fog Computing DefinedFog Computing Defined
Fog Computing Defined
Angelo Corsaro
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
Angelo Corsaro
 

More from Angelo Corsaro (19)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
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
 
Fog Computing Defined
Fog Computing DefinedFog Computing Defined
Fog Computing Defined
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 

IoT Protocols Integration with Vortex Gateway

  • 1. IoT Protocols Integration Angelo  Corsaro,  PhD   Chief  Technology  Officer   angelo.corsaro@prismtech.com with
  • 2. IaaS analytics operational systems information systems mobile desktop web embedded fog computing messaging / data-sharing Cloud Messaging Fog Fog Storage
  • 3. IoT Systems are heterogeneous by nature IoT architectures have to be designed so to facilitate integration The danger of O(N2 ) integration should be addressed architecturally Integration
  • 4. Stable Core Define a Stable Core made by a Reference Platform and Data Model. Integrate always toward the Stable Core This approach ensure that the integration problem retains O(N) complexity
  • 7. Vortex is a universal data-sharing backbone
  • 9. Vortex supports natively a large number of mobile, enterprise, embedded, cloud, web, and analytics computing platforms
  • 15. Vortex is programming language independent
  • 17. Programming Langauges 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) 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 (true) { val meter = readMeter()
 dw.write(meter) Thread.sleep(SAMPLING_PERIOD) }
 }
 }
  • 18. Vortex is data-centric and natively supports the definition of canonical data models
  • 20. Data-Modeling          enum  UtilityKind  {            ELECTRICITY,            GAS,            WATER              };                            struct  Meter  {            string  sn;            UtilityKind  utility;            float  reading;            float  error;              };                                      #pragma  keylist  Meter  sn  
  • 21. Vortex provide an extremely rich technological base to define the infrastructure of an IoT System Vortex natively supports the definition of canonical data models In Summary
  • 23. Vortex integration swiss-army knife Based on Apache Camel and supporting 200+ connectors to protocols, data stores, analytics, etc. Supports protocol, format and encoding transformation Extensible to allow quick integration of proprietary technologies
  • 24.
  • 27. Putting it all Together
  • 30. CopyrightPrismTech,2015 Architecture camel-ospl
 Component VortexOpenSplice camel-ddsi
 Component Vortex-Cafe • Based on 
 DataReader & 
 DataWriter • Typed data • No native or
 generated code • No marshalling
 (raw data buffer) Camel DDS Processors • DDSI demarshaller / 
 marshaller • Data transformation • Dynamic Poll Enricher • QoS adaptations 

  • 31. CopyrightPrismTech,2015 Components: Provide connectivity to a given technology Endpoints: Represent a source/destination of messages from/to a components Exchanges: Encapsulate data and meta coming from and end-point Routes: Define path from input endpoints to output endpoints Processors: Allow to perform transformation to the data, its format, etc. Key Elements endpoint exchange route processor
  • 32. CopyrightPrismTech,2015 A component is a factory of Endpoint instances. Over 200 components are supported Endpoints are specified using URI: - dds:TopicName:DomainID/TopicType?QoS - cometd://host:port/channelname - jms:[topic:]destinationName - [tcp|udp|vm]:host[:port] - xmpp://host:port/room - … Components and Endpoints
  • 33. CopyrightPrismTech,2015 Sample Route in Scala val route= new RouteBuilder {! “ddsi:Foo:1/FooType” to “dds:Bar:2/FooType” ! }! DDSI Endpoint! Topic Name! DomainID! TypeName! val route= new RouteBuilder {! “dds:Foo:1/FooType” to “dds:Bar:2/FooType” ! }! DDS Endpoint! Topic Name! DomainID! TypeName!
  • 34. CopyrightPrismTech,2015 EIP provide pre-specified ways of integrating endpoints The most common integration patterns are supported, such as, multicast, filtering, correlation, content-routing, load-balancing, etc. Multicast Ex: Enterprise Integration Patterns val shapesRoute = new RouteBuilder {! “dds:Foo:1/FooType” ! "to (“dds:Bar:2/BarType”, “jms:topic:Foo”)! }! Recipient List Content Based Router Message FIlter A B Correlation ID Splitter Aggregator
  • 36. CopyrightPrismTech,2015 Data Integration Patterns are a synthesis of the most commonly used techniques for integrating systems that don’t share the same representation for some given entities Some common Data Integration Patterns are - Content Enricher - Content Filter - Type Transformation - Canonical Data Model Data Integration Patterns
  • 37. CopyrightPrismTech,2015 Enriches a data type by adding additional information required by the target system/subsystem Example: Compute speed and enrich position Content Enricher struct CartesianCoord2D { long x; long y; }; struct Dynamics2D { long x; long y; long dx; long dy; };System A System B Content Enricher
  • 38. CopyrightPrismTech,2015 Projects a data type by removing information not required by the target system/ subsystem Example: Going from Dynamics to Position Content Filter struct CartesianCoord2D { long x; long y; }; struct Dynamics2D { long x; long y; long dx; long dy; };System A System B Content Filter
  • 39. CopyrightPrismTech,2015 The Canonical Data Model Pattern is commonly used in DDS systems. In this case, data is always transformed into the representation used by the “Canonical Model”. This approach is very useful as it reduces the integration complexity Example: Coordinate Systems Canonical Data Model Type Transformer struct CartesianCoord2D { long x; long y; }; struct PolarCoord2D { long rho; float theta; }; System A System B Canonical Data Model
  • 40. CopyrightPrismTech,2015 When using a DDSI endpoint de-marshaling is lazy. Thus in this example data is never de-marshalled but simply sent-over to the target domain, with the result that domain bridging is very efficient! Topic/Domain Bridging Vortex
 Domain 1 Vortex
 Domain 0 Topic
 “Circle” Topic
 “Square” 1 val in = "ddsi:Circle:0/ShapeType" 2 val out = "ddsi:Square:1/ShapeType" 3 4 val shapesRoute = new RouteBuilder { 5 in to out 6 }
  • 41. CopyrightPrismTech,2015 process allows to perform arbitrary modifications to the exchange content As such it can be used to implement arbitrary type transformations Type Transformation Vortex
 Domain 1 Vortex
 Domain 0 Topic
 “Foo” Topic
 “Bar” 1 val shapeRoute0 = new RouteBuilder { 2 in unmarshal(cdrData) process ({ 3 e => foo2Bar(e.getIn.getBody(classOf[Foo]))}) 4 to out 5 }
  • 43. CopyrightPrismTech,2015 Content Router 1 // Define endpoints 2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 3 val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType 4 val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType 5 6 val cdrData = new DataFormatDefinition(new CDRDataFormat) 7 val shapesRoute = new RouteBuilder { 8 inEndpoint unmarshal(cdrData) choice { 9 when ( e => { 10 val s = e.getIn.getBody(classOf[ShapeType]) 11 if (s.x > s.y) true else false 12 }) to outEndpoint1 13 14 when (e => { 15 val s = e.getIn.getBody(classOf[ShapeType]) 16 if (s.x < s.y) true else false 17 }) to outEndpoint2 18 19 otherwise { to (outEndpoint1, outEndpoint2) } 20 } 21 22 } Vortex
 Domain 2 Vortex
 Domain 0 Topic
 “Circle” Topic
 “Circle” Vortex
 Domain 1 Topic
 “Circle” if (x >= y) if (x <= y)
  • 44. CopyrightPrismTech,2015 Load Balancing Vortex
 Domain 2 Vortex
 Domain 0 Topic
 “Circle” Topic
 “Circle” Vortex
 Domain 1 Topic
 “Circle” load balance 1 // Define endpoints 2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 3 val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType 4 val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType 5 6 // Define a Route using the Java DSL 7 val shapesRoute = new RouteBuilder { 8 override def configure() = 9 from(inEndpoint).sample(period, TimeUnit.MILLISECONDS) 10 loadBalance() roundRobin() 11 to(outEndpoint1, outEndpoint2) 12 }
  • 46. CopyrightPrismTech,2015 Data Sampling Vortex
 Domain 1 Vortex
 Domain 0 Topic
 “Circle” Topic
 “Circle” 1 per 500 msec 1 // Define endpoints 2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 3 val outEndpoint = "ddsi:"+ outTopic +":"+ outDomain +"/" + shapeType 4 5 // Define a Route using the Java DSL 6 val shapesRoute = new RouteBuilder { 7 override def configure() = 8 from(inEndpoint) sample(period, TimeUnit.MILLISECONDS) 9 to(outEndpoint) 10 }
  • 48. CopyrightPrismTech,2015 JMS Integration JMS Vortex
 Domain Topic
 “Circle” Topic
 “Circle” To Json 1 val dds = "ddsi:Circle:0/ShapeType" 2 val jms = 3 "jms:topic:circle?jmsMessageType=Text&deliveryPersistent=false" 4 5 val shapeRoute = new RouteBuider { 6 from(dds) unmarshal("cdr") marshal().json() to(jms) 7 }
  • 49. CopyrightPrismTech,2015 1 // Define endpoints 2 val inEndpoint = 3 "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 4 val outEndpoint = 5 "websocket://"+inTopic.toLowerCase + "?sendToAll=true" 6 7 // Define a Route using the Scala DSL 8 val shapesRoute = new RouteBuilder { 9 override def configure() = 10 from(inEndpoint) unmarshal("cdr") marshal() json() to(outEndpoint) 11 } WebSocket Integration Vortex
 Domain Topic
 “Circle” To JSON
  • 50. CopyrightPrismTech,2014 MQTT Integration MQTT Vortex
 Domain Topic
 “Circle” Topic
 “Circle” To Json 1 val dds = "ddsi:Circle:0/ShapeType" 2 val mqtt = 3 "mqtt:topic:circle" 4 5 val shapeRoute = new RouteBuider { 6 from(dds) unmarshal("cdr") marshal().json() to(mqtt) 7 }
  • 51. CopyrightPrismTech,2014 HBase Integration Vortex
 Domain Topic
 “Circle” To Json 1 val dds = "ddsi:Circle:0/ShapeType" 2 val hbase = 3 "hbase:Circle?mappingStrategyName=body&operation=CamelHBasePut"" 4 5 val shapeRoute = new RouteBuider { 6 from(dds) unmarshal("cdr") marshal().json() to(hbase) 7 }
  • 52. Demo
  • 53. Vortex provides, probably, the best technology base for defining the stable core of an IoT System Vortex Gateway makes it trivial to integrate other systems, applications and technologies Vortex