3. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
☐ The term Internet of Things is
rather evocative...
4. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
Let’s analyse the meaning:
☐ Internet: (noun) a global computer
network providing a variety of
information and communication facilities,
consisting of interconnected networks
using standardized communication
protocols.
☐ of: (preposition) expressing the
relationship between a part and a whole
☐ thing: (noun) (1) an object that one need
not, cannot, or does not wish to give a
specific name to (2) an inanimate
material object as distinct from a living
sentient being
5. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
Definition I
A global network of “things” providing a variety of information and
communication facilities, consisting of interconnected networks using
standardized communication protocols
6. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
☐ Yet, there are plenty of
other definitions for the
internet of things
☐ Let’s look at a few of
them...
7. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
Definition II
Things have identities and virtual personalities operating in smart
spaces using intelligent interfaces to connect and communicate
within social, environment, and user contexts
T. Lu and W. Neng,“Future internet:The internet of things,” in 3rd International Conference on Advanced ComputerTheory and
Engineering(ICACTE), vol. 5,August 2010, pp.V5–376–V5–380. [Online].Available: http://dx.doi.org/10.1109/ICACTE.2010.5579543
8. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
Definition III
The semantic origin of the expression is composed by two words and
concepts: Internet and Thing, where Internet can be defined as the
world-wide network of interconnected computer networks, based on
a standard communication protocol, the Internet suite (TCP/IP), while
Thing is an object not precisely identifiable. Therefore, semantically,
Internet of Things means a world-wide network of interconnected
objects uniquely addressable, based on standard communication
protocols
European Commission,“Internet of things in 2020 road map for the future,”Working Group RFID of the ETP EPOSS,Tech. Rep., May 2008,
http://ec.europa.eu/information society/policy/rfid/ documents/iotprague2009.pdf [Accessed on: 2011-06-12].
9. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
The Internet of Things (IoT)
Definition IV
The Internet of Things allows people and things to be connected
Anytime, Anyplace, with Anything and Anyone, ideally using Any
path/network and Any service.
[Ref: P. Guillemin and P. Friess,“Internet of things strategic research roadmap,”The Cluster of European Research Projects,Tech. Rep., September
2009, http://www.internet-of-things-research.eu/pdf/IoT Cluster Strategic Research Agenda 2009.pdf [Accessed on: 2011-08- 15].
11. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Variations on the Theme
☐ Intelligent Systems and Industrial Internet have been recently
defined by analysts as special cases of the Internet of Things
☐ Yet, regardless of the term we use, these systems share similar
needs in terms of standardized protocols for data exchange
12. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
IoT/IS/II Applications Pipeline
Collect | Store | Analyze | Share
Public/Private Cloud
Devices Data Center Devices / IT Infrastructure
13. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Decomposing the Problem
☐ Device to Device
Communication
☐ Device to Cloud
Communication
☐ Intra Data-Center
Communication
☐ Inter Data-Center
Communication
Device to cloud
protocol
Server to Server
Protocol
Data-Center to Data-
Center Protocol
Device to
Device protocol
14. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Device to Device Communication
☐ Peer-to-Peer Communication between devices with potentially
very different hardware and networking capabilities
☐ Usually aggregating data from sensors to kiosks, etc.
☐ In some use cases low latency / high throughput are relevant
15. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Device-to-Cloud Communication
☐ Characteristic of the communication depends on the kind of application
☐ Sporadic data updates vs. Real-Time data updates
☐ Potentially Constrained Bandwidth
☐ Intermittent Connectivity
☐ Variable Latency Links
☐ NAT, Firewalls
☐ Security
☐ To enable Open and Interoperable IoT, Device- to-Data Center
communication has to rely on standard protocols
☐ Two of the current candidates for Device-to-Data Center communications
are DDS and MQTT
16. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Intra Data-Center Communication
☐ Requirements are similar to those of typical mission/business critical
systems
☐ High throughput and low per/message overhead are important to
keep the per-message cost under control
☐ Standards are not a top necessity for inter-data-center
communication since this is not exposed to third parties
17. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Inter Data-Center Communication
☐ Requirements are similar to those of typical mission/business critical
systems integration
☐ High throughput and low per/message overhead are important to
keep the per-message cost under control
☐ Standards could play a role if some form of interoperability
between clouds providers is desirable
20. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data Distribution Service
☐ Introduced in 2004 to address
the Data Distribution
challenges faced by a wide
class of Defense and
Aerospace Applications
☐ Key requirement for the
standard were to deliver very
high and predictable
performance while scaling
from embedded to ultra-
large-scale deployments
For Real-Time Systems
ScaleReal-Timeliness
Near Real-Time Fault-
Tolerant Information
Processing
Throughput, Availability
Real-Time Information
Processing
Determinism
Systemic
Signal
Processing
Data
Processing
Parallelism
Complex Information
Management
Scalability, Persistence, Security
Parallel Systems Distributed Systems
21. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data Distribution Service
☐ Recommended by key
administration worldwide,
e.g. DoD, MoD, EUROCAE,
etc.
☐ Widely adopted across
several different domains,
e.g., Smart Cities, Smart
Grids, Automated Trading,
Simulations, SCADA,
Telemetry, etc.
ScaleReal-Timeliness
Near Real-Time Fault-
Tolerant Information
Processing
Throughput, Availability
Real-Time Information
Processing
Determinism
Systemic
Signal
Processing
Data
Processing
Parallelism
Complex Information
Management
Scalability, Persistence, Security
Parallel Systems Distributed Systems
For Real-Time Systems
22. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Defense and Aerospace
Integrated Modular Vetronics Training & Simulation Systems Naval Combat Systems
Air Traffic Control & Management Unmanned Air Vehicles Aerospace Applications
23. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Commercial Applications
Agricultural Vehicle Systems
Train Control Systems Complex Medical Devices
Smart CitiesLarge Scale SCADA Systems
High Frequency Auto-Trading
[see http://yhoo.it/11dGbGO ]
24. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Standard Family
Application
RPC over DDS
ScalaJavaC/C++
DDS
RPC over DDS
X-Types
DDSI-RTPS
Security
Security
DDSI-RTPS
X-Types
2004
2013 2013
2013 2013
Application
API
Wire Protocol
UDP, TCP, (WebSocket)
Python JavaScript
25. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Interoperability
DDSI Wire Interoperability
Data Model
Common “Language”
+
QoS Requirements
Interoperability
26. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Portability
DDS API Standard
Application
Portability
28. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data Distribution Service
☐ Topics: data distribution subject’s
☐ DataWriters: data producers
☐ DataReaders: data consumers
DDS provides a Topic-Based Publish/
Subscribe abstraction based on:
DDS Global Data Space
...
TopicA
TopicB
TopicC
TopicD
Data
Writer
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Reader
For Real-Time Systems
29. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data Distribution Service
☐ DataWriters and DataReaders
are automatically and
dynamically matched by the
DDS Dynamic Discovery
☐ A rich set of QoS allows to
control existential, temporal,
and spatial properties of data
DDS Global Data Space
...
TopicA
TopicB
TopicC
TopicD
Data
Writer
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Reader
For Real-Time Systems
30. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
IDL
DDS Topics
☐ A Topic defines a class of
streams
☐ A Topic has associated a user
defined extensible type and a
set of QoS policies
☐ The Topic name, type and QoS
defines the key functional and
non-functional invariants
☐ Topics can be discovered or
locally defined
DURABILITY,
DEADLINE,
PRIORITY,
…
“TTempSensor”
Topic
Type
Name
QoS
struct TempSensor {
long sid;
float temp;
float hum;};
#pragma keylist TempSensor sid
TempSensor
32. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Anatomy of a DDS Application
Domain
Reader/Writers for User Defined for Types
Session
// Create a DataWriter/DataWriter
auto writer = DataWriter<TempSensor>(pub, topic);
auto reader = DataReader<TempSensor>(sub, topic);
Reader/Writer for
application defined
TopicTypes
Domain
Participant
Publisher
DataWriter
Topic
Subscriber
DataReader
[DDS C++ API 2010]
auto dp = DomainParticipant(domainId);
// Create a Publisher / Subscriber
auto pub = Publisher(dp);
auto sub = Subscriber(dp);
// Create a Topic
auto topic = Topic<TempSensor>(dp, “TTemSensor”);
33. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Anatomy of a DDS Application
Domain
Reader/Writers for User Defined for Types
Session
// Write data
writer.write(TempSenspir(101, 23.5F, 0.55F));
// But you can also write like this...
writer << TempSenspir(102, 24.5F, 0.65F);
// Read new data
auto data = reader.read();
Reader/Writer for
application defined
TopicTypes
auto dp = DomainParticipant(domainId);
Domain
Participant
Publisher
DataWriter
Topic
Subscriber
DataReader
// Create a Publisher / Subscriber
auto pub = Publisher(dp);
auto sub = Subscriber(dp);
// Create a Topic
auto topic = Topic<VehicleDynamics>(dp, “TVehicleDynamics”);
[DDS C++ API]
34. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Simple and Powerful
package dds.demo.oximeter
import dds.demo.oximeter.config.OximeterEntities._
import dds.demo._
import dds._
import dds.demo.common._
object Oximeter {
def main(args: Array[String]) {
if (args.length < 2) {
println("USAGEntOximeter <device-id> <period>")
sys.exit
}
val did = args(0)
val period = args(1)
val topic = Topic[Oximetry]("Oximetry")
val w = DataWriter(topic)
while (true) {
val oximetry = new Oximetry(did, genValue(), genValue(), genValue(), genValue(), genValue())
w.write(oximetry)
Thread.sleep(period)
}
}
}
35. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Simple and Powerful
package dds.demo.oximeter
import dds.demo.oximeter.config.OximeterEntities._
import dds.demo._
import dds._
import dds.demo.common._
object Oximeter {
def main(args: Array[String]) {
if (args.length < 2) {
println("USAGEntOximeter <device-id> <period>")
sys.exit
}
val did = args(0)
val period = args(1)
val topic = Topic[Oximetry]("Oximetry")
val w = DataWriter(topic)
while (true) {
val oximetry = new Oximetry(did, genValue(), genValue(), genValue(), genValue(), genValue())
w.write(oximetry)
Thread.sleep(period)
}
}
}
Where are the
DomainParticipant,
Publisher, Subscriber
and QoS?!?
36. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Simple and Powerful
package dds.demo.oximeter
import dds.demo.oximeter.config.OximeterEntities._
import dds.demo._
import dds._
import dds.demo.common._
object Oximeter {
def main(args: Array[String]) {
if (args.length < 2) {
println("USAGEntOximeter <device-id> <period>")
sys.exit
}
val did = args(0)
val period = args(1)
val topic = Topic[Oximetry]("Oximetry")
val w = DataWriter(topic)
while (true) {
val oximetry = new Oximetry(did, genValue(), genValue(), genValue(), genValue(), genValue())
w.write(oximetry)
Thread.sleep(period)
}
}
}
...configured via
dependency injection!
Thus leaving
application code simple
and clean...
38. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
QoS Model
☐ QoS-Policies control local and
end-to-end properties of DDS
entities
☐ Local properties controlled by
QoS are related resource usage
☐ End-to-end properties
controlled by QoS are related
to temporal and spatial aspects
of data distribution
☐ Some QoS-Policies are matched
based on a Request vs. Offered
Model thus QoS-enforcement
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
......
QoS QoS
Type Matching
DomainParticipant DomainParticipant
QoS QoS
39. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Temporal Properties
Throughput
TimeBasedFilter
[Inbound]
[Outbound]
Latency
Deadline
TransportPriority
LatencyBudget
40. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data Availability
Data
Availability
History
Ownership
DurabilityLifespan
Ownership
Strength
41. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data Delivery
Data Delivery
Reliability
Presentation
Destination
Order
Partition
42. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
DDS Applicability
☐ The DDS/DDSI standards
are able to cover the
requirements of device-
to-cloud, intra- and inter-
cloud communication
☐ DDS can provide
efficient Device-to-Cloud
and Device-toDevice
communication as well
as intra-cloud
communication Device to Cloud Protocol
Server to Server Protocol
Data-Center to Data-Center
Protocol
Device to Device
Protocol
DDS/DDSI
DDS/DDSI
DDS/DDSI
DDS/DDSI
44. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
MQTT Overview
☐ MQTT (Message Queueing Telemetry Transport) has been heavily
hyped as the protocol for the Internet of Things
☐ MQTT was introduced by IBM in the 90s and is now being
standardized through OASIS
45. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
What MQTT.org Says of MQTT
☐ MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely
simple and lightweight messaging protocol, designed for constrained
devices and low-bandwidth, high-latency or unreliable networks.
☐ The design principles are to minimise network bandwidth and device
resource requirements whilst also attempting to ensure reliability and some
degree of assurance of delivery.
☐ These principles also turn out to make the protocol ideal of the emerging
“machine-to-machine” (M2M) or “Internet of Things” world of connected
devices, and for mobile applications where bandwidth and battery power
are at a premium.
[http://mqtt.org/faq]
46. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
MQTT Overview
☐ Topic-based brokered Pub/Sub abstraction
☐ Publications simply post topics which are identified by strings
☐ Subscriptions define their interest by using a regular expression
☐ Example:
☐ Topic Name: Building/room123/temp-sensor
☐ Subscriptions:
☐ Building/room123/temp-sensor
☐ Building/room123/# (all topics with prefix Building/room123/
☐ Building/#/temp-sensor (all temp-sensor data for the building across rooms)
47. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
MQTT Overview
☐ Publishers and Subscribers communicate with the broker via
TCP/IP connections
☐ MQTT does not provide standard encoding for data
☐ In other terms, data is opaque to MQTT and it is up to the
applications to ensure they agree on serialization schemes
48. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
MQTT Overview
pub MQTT
Broker
“building/room101/TempSensor/SID-123” sub
“building/room101/TempSensor/SID-123”
“building/room101/TempSensor/SID-124”
pub
sub
“building/room101/TempSensor/#”
49. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Publications QoS
MQTT provides different levels of QoS for publications:
☐ At most once
☐ At least once
☐ Exactly once
In addition MQTT allows messages to be retained, meaning the broker
keeps them for delivery to late joiners
50. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
MQTT Example
☐ http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/index.jsp?
topic=%2Fcom.ibm.mq.doc%2Ftt60100_.htm
51. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
MQTT Applicability
☐ MQTT targets the
Device to Cloud
connectivity
☐ As it stands, MQTT (1)
does not support peer-
to-peer device-to-
device
communication, and
(2) is not targeting high
performance data
sharing
Device to Cloud Protocol
MQTT
53. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
DDS vs MQTT
DDS MQTT
Abstraction Topic-based Pub/Sub Topic-based Pub/Sub
Architectural Style Peer-2-Peer /
Broker-Based
Broker-Based
Applicability Device-2-Device, Device-2-
Cloud, Intra-Cloud, Inter-Cloud
Device-to-Cloud
QoS 22 4
Transports UDP, TCP TCP
Subscription Control Partitions, Topics, Content
Filtering
Topics with hierarchical
matching
Data Serialization CDR Undefined
Endianness Same as Data Source Big Endian
54. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Interoperability
☐ DDS enables interoperable data sharing
☐ Technically this means that DDS relies on a standard protocol to
exchange messages and a standard data representation format
☐ MQTT enable interoperable exchange of messages
☐ Notice that this does not infer anything on content of messages, thus
making it much harder to support data sharing in large distributed
systems
55. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data vs Messages
☐ The first and foremost reason why DDS should be more attractive
than competing technologies is the abstraction it provides
☐ From a very high level perspective DDS enables “Data-Sharing”
while other technology just allow to “send messages around”
☐ The important point here is that “Data” is something that end-user
understand since it represents entities in their domain. Messages
usually are a mechanism to share data thus much lower
abstraction
56. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Data vs Messages
From a business perspective the advantage of Data-Centricity are:
☐ Reduced effort in infrastructure software => more time to develop
business application
☐ Adoption of Taxonomies / Common Info-Models => Better
interoperability and reuse
☐ No mismatch between Domain Abstractions (e.g. Data) and their
implementation => Maintainability and extensibility
57. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
P2P and Brokered
☐ DDS does not require a broker. Yet this does not mean that it
cannot take advantage of brokers when this makes sense
☐ As such, DDS is the only technology that allows for both,
infrastructure-less Peer-2-Peer communication, as well as mediated
communication
☐ In other terms, DDS provides an efficient solution for device-2-
device and device-2-data-center communication
58. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Multi-*
☐ DDS is multi-platform and multi-language
☐ DDS targets Enterprise as well as Embedded and Real-Time OS
☐ OpenSplice Everywhere provides Device-to-Data-Center
connectivity in a completely platform agnostic manner
59. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Real-Time Support
In the context of IS/IoT/I2 the most relevant real-time features of DDS
are:
☐ Support for UDP => Facilitates working with intermittent connectivity
☐ UDP-based Reliability => Provides support for last value reliability,
this is key for any real-time data flow (e.g. telemetry) to avoid
head-of line blocking issues
☐ QoS driven Traffic Shaping => Allows to control incoming data (via
filtering) as well as optimize the outgoing data channel
61. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
DDS Everywhere Platform
☐ A DDS-based, interoperable
product family addressing
systems needs from Embedded
and Mobile to Enterprise and
Cloud
☐ An Open Source core providing
free access to the OpenSplice
Ecosystem, security of supply and
a vibrant, innovative community
OpenSplice
Community
OpenSplice
Cloud
OpenSplice
Embedded
OpenSplice
OpenSplice
Enterprise
62. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
DDS Everywhere Platform
☐ RTOS (VxWorks, QNX,
etc.)
☐ FPGA
☐ BSP / No-OS
☐ IP + Exotic
Transports
Industrial
Platforms
☐ OS (Linux, Windows, etc)
☐ Cloud
☐ DBMS
☐ No-SQL
☐ InfiniBand + IP
Transports
IT
Platforms
☐ Browser / HTML5
☐ iOS
☐ Android
☐ Cloud
☐ No-SQL
☐ Mobile/WiFi IP
Transp.
Consumer
Platforms
OpenSplice
Community
OpenSplice
Cloud
OpenSplice
Embedded
OpenSplice
OpenSplice
Enterprise
65. Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSpliceDDS
Concluding Remarks
☐ An increasing number of domains, such as medical, energy,
infrastructure and fleet management, are seeing the emergence
of IoT requirements
☐ For IoT is key to have available open and standardized data
sharing protocols
☐ The DDS standard provides an end-to-end solution for the IoT while
MQTT addresses the device-to-cloud connectivity issue