SlideShare ist ein Scribd-Unternehmen logo
1 von 260
Downloaden Sie, um offline zu lesen
IoT and connected devices
Pascal BODIN
07-Feb-2019
V20190207
2/260
contents
functional
technical
project management
part 0 foreword
part 1 introduction
part 2 functional vs technical
part 3 architecture
part 4 devices
part 5 positioning
part 6 identification
part 7 communications
part 8 platforms
part 9 central side
part 10 big data
part 11 other buzzwords
part 12 security
part 13 standardization
part 14 project perspective
part 15 case studies
part 16 conclusion
3/260
0. foreword
4/260
the egocentric slide
 Acklio - R&D engineer - embedded (Jul-2017 → today)
 Systev – Independent contractor – connected devices (Sep-2016 → today)
 Orange Labs – Senior Software Engineer (Jan-2015 → today)
 before:
– 2007 - 2011 - co-founder (home computing)
– 2004 - 2014 - project manager, developer, expert - Orange Labs (M2M / IoT)
– 1997 - 2001 - team manager - France Telecom R&D
– 1990 - 2004 - co-founder (systems for mobile connected “objects”)
– 1983 - 1993 - software engineer and project leader (McDonnell Douglas, DEC)
(several periods with 2 simultaneous jobs...)
 Telecom Bretagne (now IMT Atlantique) 1982
5/260
and you?
6/260
point of view
 integrator's point of view:
– structuring constraints:
– to deliver on committed date and committed budget
– to deliver a working system
– to integrate / rely on legacy subsystems
– to have the broad view
– target is customer satisfaction
– solving technical problems is only a means
7/260
1. introduction
8/260
in the '70s - '80s
[Def01] [Def02]
9/260
in the '70s - '80s
 SCADA (Supervisory Control And Data Acquisition)
10/260
in the '90s
11/260
in the '90s
 M2M (Machine to Machine)
 LBS (Location Based Services)
12/260
in the '00s
13/260
in the '00s
 IoT (Internet of Things)
14/260
in the '10s
Smart
Agriculture
Smart
HealthSmart Industry
Smart Environment
Smart City
15/260
a definition
 Internet of things: The Internet of Things (IoT) is the network of devices,
vehicles, and home appliances that contain electronics, software,
actuators, and connectivity which allows these things to connect, interact
and exchange data. [Wikipedia]
 is it complete?
[Def03]
16/260
conclusion
 no real definition - domain too vast
 related systems have been in use long before IoT acronym and Smart *
terms were invented
 beware: words simplify reality
 reality:
– on one side: (large diversity of) user needs
– on the other side: (lot of) technologies
17/260
2. functional vs technical
18/260
first use case
 air pollution monitoring
– which services?
– which actors?
– functions?
– technical components?
19/260
second use case
 domestic waste collection
– which services?
– which actors?
– functions?
– technical components?
20/260
analysis
 usual functions - data-centric vision:
– data generation
– data collection
– data storage
– data processing
– ...
21/260
analysis
 usual functions - business-process vision
– tracking
– alarm
– remote control
– mission dispatch
– information publication
– ...
22/260
analysis
 usual support functions:
– device provisioning
– device management
– user management
– backup / restore
– ...
23/260
supporting technical fields
 Question: which technologies?
24/260
supporting technical fields
electronics software
communications
IoT
25/260
supporting technical fields
 devices
– connected embedded electronic boards
– gateways
 interface to the physical world
– sensors
– actuators
– I/O, bus
 embedded software
 secure element
 network
– wired
– wireless
– protocols
 positioning
26/260
supporting technical fields
 identification
 mobile application
 server-side application
– container, virtual machine
– application server
– web server
– database management system
– data analytics tools
– geographical information system
– thin client, thick client
– graphical user interface
 etc.
27/260
a few words about hardware
 1985 - Cray-2: the most powerful supercomputer in the world
– 1,9 GFLOPS - US$32 million (current value)
28/260
a few words about hardware
 2017 - iPhone 8 Plus
– 138 GFLOPS - US$950
29/260
a few words about hardware
 68HC11
 1985 - Motorola --> Freescale --> NXP
– 8-bit
– 2 MHz
– 512 B EEPROM, 512 RAM
– 14 €
30/260
a few words about hardware
 LPC1115
 2010 - NXP
– 32-bit - ARM Cortex M0
– 50 MHz
– 64 KB Flash, 8 KB RAM
– 3,31 €
31/260
a few words about technologies
 impressive hardware evolution
 => new software possibilities
– neural networks, blockchain...
– embedded RTOS, embedded software stack
 => new communication possibilities
– LPWAN
– microsatellites
 => new deployment possibilities
– energy harvesting
– batteries
32/260
ecosystem
 usually, value chain is depicted like this:
Devices Connectivity Integration Applications Customers
33/260
ecosystem
 more realistic view:
Software
developer
Middleware
developer
Software
component
developer
Device
manufacturer
Location
technology
provider
Wireless
module
manufacturer
Network
operator
Integrator Installer
Geocoded data
provider
Customer
Service
provider
Embedded OS
developer
User
Sensor /
actuator
manufacturer
Embedded
software
developer
Electronic
board
manufacturer
Hosting
34/260
project management
 many different use cases
 how to get to know real user needs?
 many different technologies involved
 a successful project: fulfils real user needs thanks to mastered integration
of technologies
 => often a challenge for IoT
35/260
project management
 global view is fundamental
– true for any project
– very important for an IoT project
– 3 distinct technical fields
36/260
project management
 more about project management later
37/260
3. architecture
38/260
a possible architecture
gateway central side
connected device
local wireless
network
long distance
network
39/260
another possible architecture
central side
connected device
long distance
network
40/260
another possible architecture
personal side
connected device
long distance
network
41/260
architecture?
 defines:
– functions
– structure
– behavior
– deployment
 different viewpoints:
– enterprise viewpoint (business requirements)
– information viewpoint (information semantics and processing)
– computational viewpoint (functions, interfaces)
– engineering viewpoint (distribution of processing)
– technology viewpoint (technologies)
[RM-ODP: Reference Model for Open Distributed Processing]
[Arc01]
42/260
computational viewpoint
Central sideRemote side
OS
embedded device
communication services - remote
application software - remote
OS
PC / serverperipherals
communication services - central
software components - central
component
component
component
software components - remote
component
component
component
application software - central
OS API
communication
services API
OS API
components APIscomponents APIs
communication protocols
components protocols
application protocols
Customer-dedicated
integration
Technical components
Communication
Execution platforms
management
security
communication
services API
management
security
43/260
4. devices
4.1. device architecture
4.2. important microcontroller characteristics
4.3. interfacing with peripherals
4.4. storage
4.5. software development
4.6. summary
44/260
communication
module
microcontroller
+ memoryinterfaces
location
module
user
interface
communication
network
data storage
device architecture
45/260
another example
[Dev01] [Dev02]
[Dev03] [Dev04]
microcontr. board: $12.50
GSM/GPS module: $49.95
GSM antenna: $2.95
GPS antenna: $3.95
analog
inputs
digital I/O
microcontroller
+ memory
location
+ communication
module
46/260
4. devices
4.1. device architecture
4.2. important microcontroller characteristics
4.3. interfacing with peripherals
4.4. storage
4.5. software development
4.6. summary
47/260
communication
module
microcontroller
+ memoryinterfaces
location
module
user
interface
communication
network
data storage
device architecture
48/260
important microcontroller characteristics
 what is a microcontroller?
– on same chip: CPU + (some) memory + clock generator + peripherals
 architecture:
– von Neumann, Harvard, modified Harvard
– one core or multicore
 memory types and sizes:
– read-only memory (program): ROM/PROM/EPROM/EEPROM/Flash...
– read/write memory (data): RAM/SRAM/DRAM/MRAM/FRAM...
– data memory and program memory can be separated
 memory width:
– 4-bit, 8-bit, 16-bit, 32-bit
– data memory width may be different from program memory width
– etc.
49/260
important microcontroller characteristics
 processing power
– depends on clock speed and architecture
– options: floating point operations, digital signal processing, etc.
 power consumption
– various low-power modes
 cost
 supporting hardware tools
– development board
– programmer / debugger
– open source schematic
 supporting software tools
– integrated development environment
– open source code
 support
50/260
legacy microcontroller - example
 Freescale 68HC11E1
– 8 bits
– 3 MHz
– RAM: 512 bytes - EEPROM: 512 bytes
– 38 General Purpose I/O (GPIO)
– 1 x Asynchronous Serial Communications Interface (SCI)
– 1 x Synchronous Serial Peripheral Interface (SPI)
– 8 x 8-Bit Analog-to-Digital Converter (ADC)
– 16-bit Timer System
– address / data bus for external memory
– bootstrap mode
– price: ⋍ US$7 (10 000)
[Mic01]
51/260
recent microcontroller - example 1
 Microchip PIC16F1705
– 8-bit data memory, 14-bit program memory
– 32 MHz
– RAM: 1 KB - Flash: 14 KB
– 2 x Capture / Compare / Pulse Width Modulation
– 1 x Universal Asynchronous Receiver Transmitter (UART)
– 1 x SCI - 1 x Inter Integrated Circuit (I2C)
– 8 x 10-bit ADC
– timers: 4 x 8-bit, 1 x 16-bit
– price: ⋍ US$0.88 (10 000)
[Mic02]
52/260
recent microcontroller - example 2
 Microchip ATSAMD21J18 (ex-Atmel)
– 32-bit - ARM Cortex-M0+ core
– 48 MHz
– RAM: 32 KB - Flash: 256 KB
– 6 x serial comm. (UART / SPI / I2C)
– 5 x counters / timers
– 1 x real-time clock
– 1 x 20 channel 12-bit ADC
– USB
– price: < US$1.87 (10 000)
53/260
recent microcontroller - example 3
 NXP LPC1837JET256
– 32 bits - ARM Cortex-M3 core
– 3-stage pipeline, modified Harvard architecture
– 180 MHz
– RAM: 136 KB - Flash: 1024 KB
– 6 x PWM
– 4 x UART - 2 x I2C - 2 x SPI
– 2 x CAN - 2 x USB - 1 x Ethernet
– 8 x 10-bit ADC
– 4 x 32-bit timers
– price: ⋍ US$8 (10 000)
[Mic03]
54/260
4. devices
4.1. device architecture
4.2. important microcontroller characteristics
4.3. interfacing with peripherals
4.4. storage
4.5. software development
4.6. summary
55/260
communication
module
microcontroller
+ memoryinterfaces
location
module
user
interface
communication
network
data storage
device architecture
56/260
interfacing with peripherals
 sensors: pressure, temperature, light level, heat, magnetic field, airflow, tilt,
acceleration, switch, push button, etc.
 actuators: relay, motor, stepper motor, servomotor, etc.
 other devices: printer, display, On-Board Diagnostics connector, RFId tag
reader, etc.
 interface can be wired or wireless.
57/260
interfacing with peripherals - GPIO
 general purpose digital input/output (GPIO):
– read or set a voltage (high / low)
[Per01]
58/260
interfacing with peripherals - GPIO
 an optocoupler may be required
 software debounce may be required (a hardware debouncer is sometimes
provided by the microcontroller)
59/260
interfacing with peripherals - ADC / DAC
 important parameters: resolution and sampling rate
 analog to digital converter (ADC):
– converts an analog voltage to a digital value
– signal conditioning may be required
– some microcontrollers provide integrated Op Amp (e.g. PIC16F527)
 digital to analog converter (DAC):
– converts a digital value to an analog voltage
[Per02]
60/260
interfacing with peripherals - serial interface
 V.24 / RS-232
– minimum 3 wires: transmitted data, received data, signal ground
– asynchronous communication (start bit, stop bit)
– additional wires for control signals (request to send, ready for sending, data
set ready, calling indicator, etc.)
– voltage level:
– V.28:
– bit to 1: -15 V < voltage < -3 V
– bit to 0: +3 V > voltage > +15 V
– distance: < 15 m
– connectors: DB-25, DB-9
– USA: RS-232 (TIA-232)
[Per03]
61/260
UART
Address bus
Control bus
RX TTL
TX TTL
GND
level shifter
TX V.24
RX V.24
GND
CPU
microcontroller
interfacing with peripherals - serial interface
 bytes are serialized using an UART (Universal Asynchronous Receiver Transmitter)
 voltage levels are shifted from board voltage to V.28
for short distances, level
shifting may be omitted
62/260
interfacing with peripherals - serial interface
 interface characteristics:
– asynchronous => a byte starts with a start bit and ends with stop bit(s)
– speed (b/s)
– byte format (number of data bits, parity, number of stop bits)
 a byte is framed. Similar to message framing described in communications
section.
mark or
previous stop bit
start bit
data bits (5 to 8) +
parity (E, O, M, S, N)
stop bit(s)
63/260
interfacing with peripherals - SPI
 Serial Peripheral Interface
– defined by Motorola (then Freescale, then NXP Semiconductors, now
Qualcomm) (1985?)
MOSI: Master Output, Slave Input SCLK: Serial Clock
MISO: Master Input, Slave Output SS: Slave Select
[Per04] [Per05]
64/260
interfacing with peripherals - SPI
 synchronous communication
 full duplex, clock up to a few MHz
 one master, one chip select per slave
 4 wires
 Applications:
– short distance communication (in main board vicinity)
– exemples:
– sensors (temperature, pressure, etc.)
– memory (EEPROM, etc.)
– LCD
– etc.
65/260
interfacing with peripherals - I2
C
 Inter-Integrated Circuit
– defined by Philips (the NXP Semincoductors now Qualcomm) (1980's)
[Per06] [Per07]
66/260
interfacing with peripherals - I2
C
 multi-master
 clock up to a few MHz
 2 wires
 applications:
– same than SPI
67/260
interfacing with peripherals - CAN
 Controller Area Network
– defined by Bosch (1986)
[Per08]
68/260
interfacing with peripherals - CAN
 mainly for vehicles
 2-wire bus
 multi-master, message broadcast system with asynchronous
communication
 bus access: CSMA/CD+AMP (Carrier Sense Multiple Access / Collision Detection with
Arbitration on Message Priority)
 maximum speed: 1 Mb/s
 distance: up to several hundreds of meters (with “low” bit rate)
[Ser03]
69/260
interfacing with peripherals - Bluetooth
 Bluetooth:
– designed in 1994 by Ericsson
– originally: to replace RS-232 cables
– range: less than 100 m
– Serial Port Profile (SPP). Many other profiles (audio, file, telephony, etc.)
 Bluetooth Low Energy (BLE - 4.0):
– designed for very low power operation
– optimized for data transfer
[Blu01]
70/260
at a software point of view
 writing low-level code to handle interfaces:
– serial interface: not too complex
– SPI, I2C: not too complex either
– CAN, Bluetooth: use existing drivers!
71/260
4. devices
4.1. device architecture
4.2. important microcontroller characteristics
4.3. interfacing with peripherals
4.4. storage
4.5. software development
4.6. summary
72/260
communication
module
microcontroller
+ memoryinterfaces
location
module
user
interface
communication
network
data storage
device architecture
73/260
storage
 when on-chip memory is not enough
 additional memory:
– important parameters:
– bus type (serial, parallel)
– max number of program / erase cycles (e.g. 3 000, 100 000)
– write time (e.g. page erase - word / page write)
– soldered IC:
– EEPROM 512 Kb (<=> 64 KB) - 8 pins - SPI - ⋍ US$1.3
– 8 Gb (<=> 1 GB) - 48 pins - multiplexed A/D buses - ⋍ US$8.0
– memory card:
– MMC, SD, miniSD, microSD, etc.
– ex.: microSD 1 GB ⋍ US$27
74/260
4. devices
4.1. device architecture
4.2. important microcontroller characteristics
4.3. interfacing with peripherals
4.4. storage
4.5. software development
4.6. summary
75/260
development environment
● source code edition
● compilation / link
● simulation
● debugging
● load / run
● emulation
● debugging
LPCXpresso
VxWorks
GNU toolchain
TASKING
...
PC running Linux,
OSX, Windows
microcontroller board
Atmel Studio
76/260
execution environment
Morpheus3
VxWorks
RTX
OS
RTOS
specific runtime
interrupt handlers
+ background task
...
...
...
Esterel
Lustre
bare metal
Ada
77/260
bare metal
 let's look more closely at a microcontroller architecture
78/260
bare metal
 some events generated by peripherals
input level changed
character sent
character received
counter limit reached
end of conversion
bit received
frame received
frame sent
watchdog timeout
79/260
bare metal
 an event generates an interrupt
 attach an interrupt handler to the interrupt you want to handle
 example: analog to digital conversion
time
background task
end of
conversion
interrupt handler
background task
interruption
save
context
restore
context
start
conversion
80/260
bare metal
 usual OS services not available:
– process
– thread
– synchronized access to shared resources (memory, peripherals)
– inter-thread communication
– device drivers
– file system
– etc.
81/260
bare metal
 it's less complex than it appears for small applications
 very useful for some classes of requirements:
– (very) small memory footprint
– low power consumption
– low cost
 available tools:
– some commercial or open source code is available (flash file system, TCP/IP
stack, etc.)
– macro definitions preventing use of assembly language
– hardware debugger with trace capture
82/260
bare metal
 available tools (cont'd):
– well known design patterns:
– ring buffer
– finite state machine (FSM)
– etc.
 Note: ring buffer and FSM can be used in OS context
83/260
outPtr inPtr
data
bare metal
 ring buffer (or circular buffer):
– fixed-size memory array, used as an interface between a producer and a
consumer
– pointer outPtr points to first non empty element
– pointer inPtr points to first empty element
– to get next element: read outPtr, read data, increment outPtr
– to put a new element: read inPtr, write data, increment inPtr
– when at the end of the array, pointer is reset to start of array
84/260
bare metal
 ring buffer (cont'd):
– a ring buffer is a FIFO (First In, First Out)
– when put rate is greater than get rate, buffer gets full:
– new data overwrites oldest one, or
– put is not performed
– beware: put and get operations must be atomic
 examples of use:
– receive buffer for a serial interface
– message queue for communication between two different pieces of code
85/260
state S1
state S2
event E1 (+ condition C1)
actions A to perform
bare metal
 finite state machine:
– an abstract machine that can be in one of a finite number of states
– the machine is in only one state at a time (current state)
– transition from one state to another one is triggered by an event (possibly
guarded by a condition)
– one possible way to graphically depict an FSM:
86/260
RTOS
 an RTOS (or an OS) provides many services:
– tasks
– task notifications
– queues
– semaphores
– mutexes
– timers
– memory protection
– etc.
 easier to write feature-rich applications but:
– experience is still required
– debugging can be more complex (but easier as well!)
– an RTOS must be configured for the hardware platform
– larger footprint
– etc.
87/260
88/260
beware!
 this survey mixes OS and RTOS
 survey sample may be biased:
– according to Express Logic, there are 6.2 billion devices running
ThreadX => the most deployed RTOS?
– according to Wind River, there are 2 billion devices running VxWorks
 IoT market is a subset of embedded market
 what about « IoT RTOS »: Contiki, RIOT, Mbed OS...?
89/260
4. devices
4.1. device architecture
4.2. important microcontroller characteristics
4.3. interfacing with peripherals
4.4. storage
4.5. software development
4.6. summary
90/260
summary
 complex technical subset of IoT:
– analog electronics
– digital electronics
– bus
– software
 device software ≠ web server software!!!!
 if you can reuse an existing design, do it!
 more and more open source designs are available
 location, communication: see next sections
communication
module
microcontroller
+ memoryinterfaces
location
module
user
interface
communication
network
data storage
91/260
5. positioning
92/260
positioning - GNSS
 GNSS: Global Navigation Satellite System
 mostly for outdoor use
 working principles:
– constellation of satellites
– every satellite sends messages: satellite position, message time
– satellite time is very accurate (atomic clock)
– listening to 3 satellites, the GNSS receiver estimates its location on earth
(distance = difference of time x speed of light)
– that's only an estimate (the receiver does not have an atomic clock)
– using a 4th satellite, the receiver synchronizes its clock
– => real location can be computed
 satellite orbits: MEO (20 000 km), GEO (36 000 km)
93/260
positioning - GNSS
 speed of light (approx.): 3 x 108 m/s: 10 m <=> 33 ns
 fix: position
 accuracy:
– depends on receiver quality, on satellites being used, etc.
– documented as better than 8 m with 95% confidence level
– usual accuracy: 20 m
 Dilution of Precision (DOP – PDOP/HDOP/VDOP):
– how satellite constellation geometry impacts error in computed location
– good when < 6
94/260
positioning - GPS
 GPS: US system
– 31 operational satellites
– MEO orbit: 20 200 km
 GLONASS: Russia (formerly USSR) system
– 24 operational satellites
– MEO: 19 100 km
95/260
positioning - other GNSS
 Galileo: Europe
– target: 24 satellites + 6 spares
– MEO: 23 200 km
– accuracy: 8 m horiz. 9 m vert. 95% of time
– 12 operational satellites, 4 testing, 2 not fully available
– operational (15-Dec-2016)
 BeiDou ( 北斗 ): China
– target: 5 GEO satellites + 30 MEO satellites
– currently: 19 satellites – operational over China
 Japan (QZSS), India (NAVIC)
96/260
positioning - GNSS accuracy
 example of accuracy:
– GPS receiver indoor, not far from a window => lower reception quality
– one location every 2 s, for 15 minutes
– several locations are more than 60 m far from the real location
97/260
positioning - GNSS augmentation systems
 To increase accuracy (and integrity):
– differential GPS
– a GPS receiver placed at a location known with very good accuracy is
used to generate corrections send to other GPS receivers
– another receiver is required
– => ⋍ 3 – 5 m accuracy
– SBAS (Satellite-Based Augmentation Systems)
– additional satellites broadcast corrections
– no other receiver required
– => ⋍ 1 – 3 m accuracy
– USA: WAAS (Wide Area Augmentation System)
– Europe: EGNOS (European Geostationary Navigation Overlay Service)
– India: GAGAN (GPS Aided Geo Augmented Navigation
– Japan: MSAS (Multi-functional Satellite Augmentation System)
98/260
positioning - GNSS augmentation systems
 A-GPS (Assisted GPS)
– mainly for PLMN terminals (your mobile phone...)
– almanac (coarse orbit and status information for all satellites) and ephemeris
(precise orbit for one satellite) data are sent to the GPS receiver using the
mobile network
– this reduces TTFF (Time To First Fix)
– data generated by mobile operators, or by OTT players (Google, etc.)
 RTK (Real-Time Kinematic)
– signal phase is used, to get an accuracy up to a few centimeters
– fix computation can be quite long
99/260
positioning - interface
command + data
interface
communication
module
microcontroller
+ memoryinterfaces
location
module
user
interface
communication
network
data storage
100/260
positioning - interface
 interface:
– usually: serial (V.28 or board voltage)
– usually: implements subset of NMEA 0183 standard
– most manufacturers provide their own protocol:
– SiRF (then CSR, now Samsung) – u-blox - SkyTraq – ST – Broadcom – etc.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Where:
GGA Global Positioning System Fix Data
123519 Fix taken at 12:35:19 UTC
4807.038,N Latitude 48 deg 07.038' N
01131.000,E Longitude 11 deg 31.000' E
1 Fix quality: 0 = invalid
1 = GPS fix (SPS)
2 = DGPS fix
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning) (2.3 feature)
7 = Manual input mode
8 = Simulation mode
08 Number of satellites being tracked
0.9 Horizontal dilution of position
545.4,M Altitude, Meters, above mean sea level
46.9,M Height of geoid (mean sea level) above WGS84
ellipsoid
(empty field) time in seconds since last DGPS update
101/260
positioning - interface
 most receivers are multi-constellations (GPS, GLONASS, Galileo, BeiDou)
 important: antenna placement
 may be important: tamper protection
– antenna cable short circuit and antenna removal events
102/260
positioning - network - misc.
 network positioning:
– trilateration (several time measures)
– triangulation (several angle measures)
– cell identification
– “fingerprinting”
– beacons
 dead reckoning: first known position then inertial sensor fusion
(accelerometer + magnetometer and filtering)
 position may be available at
– device side
– network side
103/260
positioning - indoor
 all previous technologies may be used for indoor positioning, depending on
constraints
 but no easy-to-integrate, generic system exists today
 domain still open to more innovation
104/260
summary
 GPS is not the only GNSS!
 accuracy increases
 time to first fix decreases
 other systems: keep an eye on
 how to integrate a GNSS receiver: check communications section
105/260
6. identification
106/260
identification
 some systems have to identify / authenticate external objects:
– truck trailers
– shipping containers
– bottles of perfumes
– bottles of wine
– etc.
107/260
identification
 RFID (Radio Frequency Identification):
– tag / label with (almost) unique identity
– passive (no battery) or active (battery)
– read-only or read/write
– reader: transmits
– a passive tag uses incoming energy to transmit back its data
– as usual, distance depends on power, antenna and frequency
– from a few tens of centimeters up to a few meters (more is possible)
 NFC (Near-Field Communication):
– purposely short distances only (a few centimeters)
– for secure applications (e.g., contactless payment)
108/260
identification
 questions: how to identify objects on a global basis, and let every
organization exchange object data?
 part of the answer: GS1
– international not-for-profit organization
– delivers standards, services and solutions
– standards:
– barcodes
– EPCglobal: tag data, tag protocols, reader protocols, ONS (Object Name
Service), discovery services, etc.
– etc.
 a world in itself...
109/260
7. communications
7.1. introduction
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
110/260
communications - introduction
 central part of IoT systems
 wireless or wired
 a given system can use several network technologies
– to increase connectivity reliability
– to increase connectivity coverage
– to provide specific properties (low power, QoS, etc.)
– to support legacy equipments
– to lower operating costs / capital costs
– etc.
111/260
communications - important characteristics
 shared or not
 geographic coverage + possibility to adapt it
 latency
 connectivity setup time
 addressability
 required power for transmission
 terminal cost
 communication cost
 ease of integration
 throughput
 confidentiality
 reliability
 availability
 etc.
112/260
communications - important characteristics
 data: byte stream or messages?
– message: some data, adhering to a known format, exchanged between two or
more communicating entities
 voice?
113/260
communications - byte stream
 serial interface: bytes
– start bit + data bits + stop bit
– a byte can be seen as a n-bit message :-)
 TCP: bytes
– TCP is stream oriented (more later)
 what can we do with a byte stream?
114/260
communications - message
 how to go from a stream oriented layer to a message oriented layer?
115/260
7. communications
7.1. overview
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
116/260
framing
header payload
check
sequence
 detailed frame structure depends on protocol
 header may contain:
– packet numbering
– number of last good packet received
– frame class
– etc.
 a check sequence may be present:
– result of a mathematical operation performed on previous bytes
– receiver performs the same operation and compares result
 Questions:
– how to know when a frame starts and when it stops?
– how to ensure transparency for payload?
117/260
framing - delimitation
 several solutions for delimitation:
– byte count
– flag bytes
– etc.
 byte count:
 flag bytes:
header payload
check
sequence
payload
size
header payload
check
sequence
B E
118/260
framing - delimitation
 flag byte: how to allow E byte to be present in payload?
 => transparency
119/260
framing - transparency
 use a predefined escape byte, ESC for instance
 on transmission side:
– when E is in payload, insert an ESC before it
– when ESC is in payload, insert another ESC before it
 on reception side:
– when ESC is received, delete it and keep following byte
 another solution: reduce payload byte set!
 etc.
120/260
7. communications
7.1. overview
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
121/260
direction
A B
Simplex
122/260
direction
A B
Half-duplex
time
123/260
direction
A B
Full-duplex
124/260
7. communications
7.1. overview
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
125/260
wireless - PMR
 Professional Mobile Radio
– not accessible to consumer
– frequency + associated bandwidth allocated to a user for a given period
– user: private or public organization (company, city, association, etc.)
– cost: annual fee (“license fee”) per terminal. In France:
– fee = I x bf x c x k4 + n x G
– I: bandwidth, in MHz
– bf: depends on frequency
– c: depends on coverage
– k4: constant
– n: number of mobile users
– G: constant
126/260
wireless - PMR
 Frequency (bands):
– 40 MHz, 80 MHz, 150 MHz, 400 MHz, etc.
 Technology:
– analog – voice + data (modem) – 6,25 or 12,5 kHz channels – 1200 b/s
– digital:
– DMR (Digital Mobile Radio) – 2 slot TDMA over 12,5 kHz channels – 9000
kb/s for 2 slots
– dPMR – FDMA over 6,25 kHz channels – 4800 b/s
– TETRA (TErrestrial Trunk RAdio) – 4 slot TDMA over 25 kHz channels –
7200 b/s per slot – for shared networks
– TETRAPOL – FDMA – for shared networks
– TEDS, GSM-R
 Coverage:
– from ⋍ 30 km (mono-site) up to wide area coverage (multi-sites / trunk)
TDMA: Time Division Multiple Access
FDMA: Frequency Division Multiple Access
127/260
wireless - PMR - data
 data communication:
– usually, using a dedicated connector on transceiver
– analog:
– let's forget about it...
– digital:
– DMR: status messages (≤ 128 bytes) - short messages (≤ 36 bytes) –
packet data
– dPMR: short messages (≤ 100 bytes) - packet data
– TETRA: short messages (≤140 bytes) - packet data
128/260
wireless - PMR
 in 2016:
– around 25.000 PMR networks in France
 users:
– taxis, public transports, ambulances, airports, highways, security, industry,
constructions, etc.
– public organizations: cities, hospitals, etc.
[Com06]
129/260
wireless - unlicensed
 France regulation:
– AFP = Appareils de Faible Puissance et de Faible Portée
– freely accessible
– 6.8 MHz, 13.6 MHz, 27.0 MHz, 40.7 MHz, 433.0 MHz, 434.0 MHz, 863-868...
MHz, 2.4 GHz, 5.7-5.9 GHz, 24... GHz, 61 GHz, 122-123 GHz, 244-246 GHz
– ERP: depends on frequency - from 1 mW to 500 mW
– some restrictions on duty cycle, on channel spacing, etc.
– some other frequencies, for specific equipments
– usual range: up to a few kilometers, unobstructed LoS
– throughput: from several 100s of b/s to several 1000s of b/s
ERP: Effective Radiated Power
LoS: Line of Sight
130/260
wireless - unlicensed long range
 for a given radiated power and a given bit error rate, range can be
increased either by:
– using lower bit rate with traditional modulation technologies. But this narrows
spectrum => precise frequency reference is required to decode received
modulation.
 or by
– using spread spectrum modulation. But processing is complex.
 Examples:
– SIGFOX (choice 1) - technology + network operator
– range: documented as up to 40 km LoS
– LoRa (Semtech) (choice 2) - technology (chipsets)
– range: documented as up to 15 km LoS
131/260
wireless - zoom on LoRa / LoRaWAN
 modulation: CSS (Chirp Spread Spectrum)
 robust against interference and fading
 multiple signals can be sent on same RF channels, with different spreading
factors (SF)
 error correction in physical layer
 LoRaWAN:
– provides Adaptative Data Rate (SF management) => battery life, network
capacity
– interoperability device / network
– security
– etc.
132/260
wireless - zoom on LoRa / LoRaWAN
[Com07]
133/260
wireless - zoom on LoRa / LoRaWAN
[Com07]
134/260
wireless - zoom on LoRa / LoRaWAN
[Com07]
135/260
wireless - PLMN
 Public Land Mobile Network
 two main families of standards / technologies:
– 3GPP: 3rd Generation Partnership Project
– GSM, GPRS, EDGE, HSDPA, HSUPA, MBMS, LTE, LTE Advanced...
– 3GPP2: 3rd Generation Partnership Project 2
– CDMA2000, UMB, LTE...
 shared between anybody who subscribes
 broad coverage, but target is population, not territory
136/260
wireless - 3GPP
 data services:
– CSD (Circuit Switched Data): obsolete
– SMS (Short Message Service)
– 140 to 160 characters / bytes
– USSD (Unstructured Supplementary Service Data)
– specific services
– packet data - IP compatible
– throughputs (beware: uplink ≪ downlink):
– 2.5G: 8 to 40 kb/s (GPRS) – EDGE = GPRS x 3
– 3G: 2 Mb/s non-moving, 384 kb/s moving
– 3.5G: 14.4 Mb/s (HSDPA)
– 4G: 100 Mb/s and more (LTE)...
GPRS: General Packet Radio Service
EDGE: Enhanced Data rates for GSM Evolution
HSDPA: High-Speed Downlink Packet Access
LTE: Long Term Evolution
137/260
wireless - 3GPP IoT-oriented
 three LPWA technologies in Release 13:
– NB-IoT (Narrow-Band IoT)
– EC-GSM-IoT (Extended Coverage GSM for the IoT)
– LTE-M (LTE for Machines)
LPWA : Low Power Wide Area
138/260
wireless - NB-IoT
 power consumption decreased => battery life > 10 years (!)
 spectrum efficiency improved
 extended coverage (rural and deep indoors)
 low device complexity => low cost
139/260
wireless - EC-GSM-IoT
 based on eGPRS (EDGE for GPRS)
 software upgrade of existing GSM networks
 battery life > 10 years (!)
140/260
wireless - LTE-M
 simplified term for LTE-MTC CatM1
 lower device complexity - cost reduced to 25% of current eGPRS modules
 extended coverage
 battery life > 10 years (!)
141/260
interfacing with 3GPP module
 AT commands, defined in 3GPP TS 27.007 (and TS 07.07)
 commands:
[Com02]
142/260
interfacing with 3GPP module
 responses:
143/260
wireless - 3GPP - IP connectivity
 APN (Access Point Name):
– name of gateway between 3GPP network and the Internet - real name: GGSN
– defined by the operator
– defines following gateway characteristics:
– static or dynamic IP address
– public or private IP address
– allowed protocols (TCP, UDP, etc.)
– allowed ports
144/260
wireless - 3GPP - IP connectivity with IP stack in µc board
mobile network
the Internet
GGSN (APN)
1 - attach
2 – define and activate context + start comm.
=> comm. module known
to network
=> IP address assigned to
comm. module
3 – start a PPP session
=> IP address assigned to
remote device
communication
module
microcontroller
board
AT commands
GGSN: GPRS Gateway Support Node[Com03] [Com04]
145/260
wireless - 3GPP - IP connectivity
 1/ attach:
AT+CGATT=1
OK
 2/ define PDP context 3:
AT+CGDCONT=3,"IP","orange.m2m.spec"
OK
 activate PDP context 3:
AT+CGACT=1,3
OK
 establish communication using PDP context 3:
ATD*99***3#
CONNECT
 3/ start a PPP session
146/260
wireless - 3GPP - IP connectivity with IP stack in µc board - router
mobile network
the Internet
GGSN
1 - register
2 – define and activate context + start comm.
=> comm. module known
to network
=> IP address assigned to
comm. module
AT commands
3 – define NAT / PAT rule
=> comm. module
performs NAT / PAT
communication
module
microcontroller
board
147/260
wireless - 3GPP - IP connectivity without IP stack in µc board
mobile network
the Internet
GGSN (APN)
1 - attach
2 – define and activate context + start comm.
=> comm. module known
to network
=> IP address assigned to
comm. module
3 – send / receive data
communication
module
microcontroller
board
AT commands
148/260
wireless - 3GPP - programmable comm. module
mobile network
the Internet
GGSN (APN)
1 - attach
2 – define and activate context + start comm.
=> comm. module known
to network
=> IP address assigned to
comm. module
3 – send / receive data
communication
module +
application
API
149/260
wireless - satellites
 geostationary orbits
– characteristics:
– 36.000 km above the Earth
– satellite seen from Earth as stationary
– coverage restricted to desired zone
– minimum end-to-end latency: 2 x 36.000 km / 300.000 km/s => 240 ms
– Inmarsat:
– BGAN M2M: IP at up to 448 kb/s – latency from 800 ms – global coverage
except polar regions
– IsatM2M: messages of 25 (up) / 100 (down) bytes – latency 30 to 60 s –
global coverage except polar regions
– IsatData Pro: messages of 6.4 (up) / 10 (down) kB – latency 15 to 60 s –
global coverage except polar regions
– Thuraya
BGAN: Broadband Global Area Network
150/260
wireless - satellites
 low earth orbit (LEO)
– characteristics:
– satellites constantly in motion around the Earth
– altitude: 170 – 2000 km => period: 90 – 130 min.
– low power
– higher latency !
– Orbcomm:
– messages of 6 to 30 bytes
– average latency: 6 min.
– global coverage
– Globalstar
– Iridium
– Argos
151/260
wireless - (nano)satellites
 low earth orbit (LEO)
– Astrocast
– Fleet
– HeliosWire ( + blockchain)
– Hiberband
– Kepler
– Myriota
– Swarm Technologies
152/260
wireless - short distance
 Wi-Fi
– wireless local area network (WLAN) technology based on IEEE802.11
standards
– Wi-Fi Alliance owns the brand (not an abbreviation...)
– range: usually up to 100 m outdoors
 Bluetooth
– originally designed to replace serial cables – personal area network (PAN)
– managed by the Bluetooth Special Interest Group
– range: less than 100 m
– many profiles
– Bluetooth Low Energy (part of V4.0)
– Bluetooth Mesh
153/260
wireless - short distance
 ZigBee
– managed by ZigBee Alliance
– low-power
– range: up to 100 m
– mesh network => long distance by retransmitting data
 Z-Wave
– managed by Z-Wave Alliance - for home automation
– low-power
– range: around 30 m
– mesh network
154/260
wireless - comparison - 1/2
Techno Shared Range Latency Setup time
PMR no from 30 km up to wide
area
depends on architecture 0
unlicensed yes up to 10 (40) km depends on architecture 0
2.5G/3G yes wide area from 100 ms up to 1 s from 2 s to 5 s
4G yes wide area 50 ms 1 s
satellites
geo
yes global 800 ms to 60 s depends
satellites
LEO
yes global min depends
Wi-Fi yes local ms s
155/260
wireless - comparison - 2/2
Techno Addressability TX power Equipment cost Comm.
cost
PMR full W 100s € 0 €
unlicensed full mW 10s € 0 €
2.5G/3G restricted W 100s € flat rate
4G restricted W 100s € --> 10s € flat rate
satellites
geo
restriced W 1000s € high
satellites
LEO
restricted W 100s € high
Wi-Fi full mW 10s € 0 €
156/260
wireless - 3 dimensions
 3 dimensions, for wireless networks:
– technology
– regulations
– operator
 example 1:
– 4G is a technology mainly used for public cellular networks
– operators (Orange, Verizon, etc.) have to buy licenses
– 4G can be used on private networks as well
 example 2:
– Sigfox is an operator using its proprietary technology on license-free bands
– the technology could be used on licensed bands as well
 example 3:
– LoRa is a technology used on license-free bands
– there are several operators (Orange, Bouygues Telecom, etc.)
– the technology can be used by consumers as well
– the technology can be used on licensed bands as well
157/260
7. communications
7.1. overview
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
158/260
wired
 leased lines
– permanent connection between two locations
– analog or digital – symmetric throughput (unlike ADSL)
– example for France:
– Orange Transfix: up to 2048 Kb/s
– for IoT / M2M: more or less obsolete
 Public Switched Telephone Network (PSTN)
– requires a modem (modulator – demodulator)
– up to 56 Kb/s
– cost proportional to duration (depends on package)
– long setup time (up to 20 or 30 s)
– for IoT / M2M: not so used
 Asymmetric Digital Subscriber Line (ADSL)
– pseudo permanent connection
159/260
wired
 Local Area Network (LAN)
– Ethernet
 field buses:
– PROFIBUS
– DeviceNet
– INTERBUS
– FOUNDATION
– Modbus
– Sercos
– PROFINET
– Powerlink
– EtherCAT
– etc.
160/260
7. communications
7.1. overview
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
161/260
messaging protocols
 just a few words about TCP:
– TCP is a stream-oriented protocol:
– “Hello world” can be received as “Hell” and then “o world”
– “Hello” and then “ world” can be received as “Hello world”
– => framing is required
– simple, for TCP, thanks to TCP characteristics:
– ordered data transfer
– error-free data transfer
162/260
messaging protocols
 data serialization - endianness independency:
– ASN.1: defined 30 years ago by CCITT (now ITU-T) – not so used in
M2M/IoT...
– Google re-invented a solution in 2008: Protocol Buffers – not so used either in
M2M/IoT... (but framing not provided...)
– CBOR (Concise Binary Object Representation): IETF - 2013
– advantages:
– reliable solutions
– data endianness independency
– transparent serialization/deserialization
– forward compatibility
– drawbacks:
– some complexity
– Protocol Buffers needs framing
– libraries in various languages to encode / decode frames
– not so difficult to define your own mechanism
163/260
messaging protocols
 applying web technologies to IoT / M2M communications is often not the
right choice:
– HTTP: request / response (=> polling), ASCII, complex parsing
– XML: verbose
– JSON: still too verbose
 one benefit:
– go through firewalls and proxies
 but should IoT / M2M communications be transported along with web
communications?
164/260
messaging protocols - MQTT
 MQTT acronym comes from Message Queue (not present in MQTT!) and
Telemetry Transport (but MQTT is not restricted to telemetry)
 maintained by OASIS Consortium (Organization for the Advancement of Structured Information
Standards)
 mixes messaging with publish / subscribe (one to many - application
decoupling)
 based on TCP/IP (MQTT-SN for non TCP/IP networks)
 small transport overhead
 abnormal disconnection notification
 free open source implementations:
– Eclipse Mosquitto (server)
– Eclipse Paho (clients in various languages)
165/260
messaging protocols - CoAP
 Constrained Application Protocol
 maintained by the IETF (Internet Engineering Task Force) - RFC7252
 request / response – designed to easily interface with HTTP
 based on UDP or equivalent
 low transport overhead
 low parsing complexity
 resource discovery (a client queries a server)
 several free open source implementations of CoAP (client, server)
166/260
messaging protocols - other
 many other protocols:
– Open Wireless Telematics Protocol (designed by Mobile Devices)
– Cloud Connector (designed by Digi)
– etc.
 not so difficult (for really experienced developer) to define one's own
protocol
167/260
device management protocols
 OMA DM: specified by Open Mobile Alliance (OMA)
 OMA DM supports:
– device provisioning (device initialization and configuration)
– software updates (application and system software)
– fault management (reporting faults, querying status)
 for M2M: OMA Lightweight M2M (LWM2M)
– based on CoAP
– open source implementation: Eclipse Wakaama project
168/260
7. communications
7.1. overview
7.2. framing
7.3. direction
7.4. wireless networks
7.5. wired networks
7.6. messaging protocols
7.7. IP or not IP?
169/260
LPWAN limitations
 LPWAN:
 drastic bandwidth limitation
 => do not rely on TCP/IP protocols
 => not well integrated in the Internet
 one proposed solution: SCHC
170/260
SCHC
 for LPWAN: nature of data flows is highly predictable
 communication contexts are stored on both sides
 => high level of compression is possible
 Static Context Header Compression
 compression
 fragmentation
171/260
SCHC
[Com05]
172/260
SCHC
 => an LPWAN device becomes an IP device
173/260
summary
 many different technologies
 understanding real user needs is important, to choose right network
technology/technologies
 perhaps the most important part of a system, as it transfers data from on
side to the other one
 perhaps the most difficult part of a system, at a technical point of view
174/260
8. platforms
8.1. architecture and services
8.2. RESTful API
175/260
platforms
 beware: the word « platform » may have different meanings
– software development framework
– software application providing communication (and possibly management and
storage) services
– a hosted application providing above services
– hardware system
– hardware system and associated software stack
– etc.
 in what follows: hosted application, that makes easier to integrate
devices into applications
176/260
platforms
central side
connected device
long distance
network
177/260
platforms
Central sideRemote side
OS
embedded device
communication services - remote
application software - remote
OS
PC / serverperipherals
communication services - central
software components - central
component
component
component
software components - remote
component
component
component
application software - central
OS API
communication
services API
OS API
components APIscomponents APIs
communication protocols
components protocols
application protocols
Customer-dedicated
integration
Technical components
Communication
Execution platforms
management
security
communication
services API
management
security
178/260
platforms
 functions usually provided by a platform (as seen by a user):
– device provisioning
– device management
– device authentication
– support of some communication protocols
– user authentication
– data persistence (raw data or decoded data?)
– device groups
– user groups
– easy way to add new communication protocols
– etc.
 two logical interfaces: one for devices, one for applications
179/260
platforms
connected device central side
platform
platform
code solving
customer problem
code solving
customer problem
customer
pays for this,
not for the
platform
relative sizes of software
code,
for a complex system
180/260
platforms
 perceived value is often not in the platform
 a platform may prevent from using some devices (which do not implement a
supported protocol)
 a platform usually creates a protocol break
 when updating the platform, ALL users are impacted
 developing a communication layer + minimum device management is not
complex for an experienced team
 => think twice before deciding on using a platform
 anyway, using a platform may be very nice, for some (simple) applications,
to demonstrate a new service, or for very large sets of devices
181/260
many platforms ?
Afero deviceWISE Microtronics end-to-end platform Sine-Wave
AggreGate dweet.io Mobius SIMPro
AirVantage Electric Imp MODE SmartThings
Ark Enterprise2Cloud mozaiq Solair
ARTIK Cloud EVRYTHNG Murano TempoIQ
AT&T's M2X Exosite myDevices The ThingBox
AWS IoT FlowCloud Nabto thethings.iO
Axeda IoT Platform Gaonic Neo ThingFabric
AXON GoFactory Net4Things ThingPlug
Ayla IoT Cloud Fabric Golgi Netatmo Connect ThingSpeak
Beebotte IFTTT netObjex Thingsquare
Berg iMotion NetPro ThingWorx
Blynk Impact n.io UnificationEngine
Bosch IoT Suite Initial State Octoblu Verizon's M2M platform
Busit IoTAcceleration Platform OpenMTC Vortex
Canopy Itron OpenSensorCloud Waygum
Carriots Hologram Cellular Platform OpenSensors waylay
CloudConnect Home2Cloud Open.Sen.se WyzBee
Combicloud IBM IoT Cloud Parse Xively
Concirrus IoTfy People Power - now FabrUX Yaler
Connext DDS IoT lab Plat-One Zatar
Coversant IoT Cloud IoT-X PubNub
Dashboard of Things iQmenic REDtone IOT Canopy
dataplicity Kii resin.io DeviceHive
Datavenue Lelylan restack FI-WARE
Deutsche Telekom's M2M Device Cloud Loop RuBAN Home*Star / IOTDB
Device Connection Platform Lumata Samsung SAMIIO IoTivity
DeviceCloud M2M Intelligence SAP HANA Kaa
DeviceHub MachineShop SensorLogic macchina.io
DevicePilot mbed Device Server SkyNet Nimbits
Node-RED
OpenIoT
OpenRemotecheck http://www.monblocnotes.com/node/1979
opensource
182/260
platforms - example - Sierra Wireless
 connectivity management
– SIM inventory
– usage tracking
– etc.
 application enablement
– RESTful API
– data storage
– rules engine
– device protocol support
– etc.
 device management
– device monitoring
– command transmission
– OTA firmware update
– configuration deployment
– etc.[Pla02]
183/260
platforms - how to use one
 usual steps, to use a platform for a new development:
– register
– check list of supported devices, and select one, possibly a simulated one
– download client source code or library
– build an « Hello World » client (send/receive data)
– test it
– check send/receive data using available web application
– download central application source code or library
– build an « Hello World » application (send/receive data)
– test it
– test the whole system
184/260
8. platforms
8.1. architecture and services
8.2. RESTful API
185/260
overview
 REST: representational state transfer
 invented in 2000 - an architecture, not a protocol
– client-server
– stateless
– cacheable
– layered system
– uniform interface
– [code on demand]
 for web services: RESTful APIs
– base URL
– HTTP method (GET, HEAD, PUT, POST, DELETE, TRACE, CONNECT)
– data elements - JSON
186/260
example - when you visit google.com from France
client server
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0
Host: google.com
Accept: */*
open TCP socket with address google.com
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: https://www.google.fr/?gfe_rd=cr&ei=J8-MWPedMPL-8AePwISQDA
Content-Length: 259
Date: Sat, 28 Jan 2017 17:04:39 GMT
Alt-Svc: quic=":443"; ma=2592000; v="35,34"
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://www.google.fr/?gfe_rd=cr&amp;ei=J8-MWPedMPL-8AePwISQDA">here</A>.
</BODY></HTML>
187/260
example - AirVantage API
client server
GET /api/v1/users/current?access_token={token} HTTP/1.1
....
{
uid: "81210eca05484d34a29bc6c34dc31bf7",
email: "dsciamma@sierrawireless.com",
name: "David Sciamma",
company: {
uid: "97ba9e22078548a2847912a87152e3f4",
name: "Sierra Wireless"
},
profile: {
uid: "df1c0f7d5f8c4db2b45978f98e1093ad",
name: "Manager"
}
}
188/260
example - AirVantage API
 after authentication:
– get received data
– send command to a device
– get monitoring data
– etc.
189/260
9. central side
190/260
computational viewpoint
 device interface
– via a platform
– with a communication server
 database
 geographic information system (GIS) functions
 data filtering and processing
 user interface(s)
 etc.
191/260
platform
central side
connected device
long distance
network
192/260
communication server
 communication server:
– provides an interface to communicate with devices
– may handle several different network technologies
– switching to another network technology or supporting a new one should be
easy and rapid
– other usual requirements:
– security concerns: authentication, integrity, privacy, (non-repudiation)
– reliability
– scalability
– etc.
193/260
communication server
 example:
– for PMR or unlicensed radio
antennas
transceivers
+ modems
communication
server
[Cen01]
194/260
communication server
 example:
– for 3GPP
communication
server
Internet
195/260
communication server
 3GPP example (cont'd):
– uplink (from devices to server):
– server IP address must be reachable => public or VPN
– downlink:
– device IP address characteristics depend on APN
– static or dynamic?
– public or private?
– several solutions depending on user need and required genericity:
– device initiates and maintains a TCP session
– server sends an SMS to device, requesting its connection
– devices connects periodically
– private APN => VPN
– etc.
196/260
databases
 3 main technologies:
– relational database
– object database
– NoSQL database
 another dimension to be considered sometimes:
– spatial database (but GIS function can be provided as a service)
 a question may arise:
– do application data have to be separated from “technical” data?
– there is no one right answer
 another question:
– should all device generated data be mirrored in the central database?
– again: there is no one right answer
197/260
Geographic Information Systems
 some applications need
– to perform spatial operations and / or
– to display spatial information
 at a technical point of view, two different elements:
– functions:
– spatial queries against spatial database
– spatial libraries
– data:
– digital maps
– georeferenced data
 at an architectural point of view:
– web GIS
– rich client
198/260
Geographic Information Systems
 all-in-one (functions + data) web GIS:
– Google Maps JavaScript API
– Bing Maps APIs
– etc.
 functions only web GIS:
– MapServer (Open Source)
– GeoServer (Open Source)
– etc.
 functions only rich client GIS:
– GRASS GIS (Open Source)
– QGIS (Open Source)
– uDig (Open Source)
– etc.
199/260
Geographic Information Systems
 data:
– OpenStreetMap (Open Source)
200/260
Geographic Information Systems
 many providers of commercial products:
– rich client / desktop GIS
– web GIS
– data (vector, bitmap, additional layers)
 GIS is a complex matter:
– do not try to reinvent the wheel
– take some time to get some experience
201/260
User Interface
 as for GIS: web or rich client
 web:
– ⊕ good for large number of distributed users
– ⊕ can be good for supporting multi-device / multi-OS
– ⊕ good for software updates
– ⊖ usually bad for user-perceived response time
– ⊖ usually bad for « real-time » or complex user interfaces
– ⊖ usually bad for license cost
– etc.
 rich client:
– almost the other way round...
 mixing the two of them can be a good solution
202/260
10. big data
203/260
big data
 data sets too large / too complex to be processed with traditional tools
 we are not talking about Terabyte (1012 bytes)
 we are talking about Petabyte (1015 bytes), Exabyte (1018 bytes), etc.
 Volume, Velocity, Variety
 some tools:
– Hadoop (distributed processing - MapReduce, YARN, HDFS)
– Spark (analytics over Hadoop file system)
– Cassandra (distributed NoSQL)
– ElasticSearch (analytics)
– many, many, many more tools
– check http://bigdata.andreamostosi.name/
204/260
where is big data?
 Q: why big data is not addressed in the central side section?
205/260
where is big data?
 A:
– currently, big data technologies are used at central side
– remember: an IoT system is a whole
– more power processing available on the edge and in devices
– => big data processing could be distributed over devices soon
206/260
an example
cellular
network
400 MB / vehicle / month
207/260
an example
 for electric vehicle prototypes: data about battery, electric engine, location,
speed, etc.
 for 100 vehicles during one year:
– 400 MB x 100 x 12 = 480 GB - this is not big data!
 for 1 million vehicles during one year:
– 400 MB x 1 000 000 x 12 = 4.8 x 1015 B (4.8 Petabytes) - this is big data
 but...
208/260
an example
 but
– current mobile data plans are currently too expansive for such volumes
– mobile network coverage is currently not full => buffering is required =>
memory cost
– there is enough processing power AND energy in a vehicle => processing can
be performed on the fly, so that only main results are sent to the central side
209/260
more generally
 there is no one fits all architecture
210/260
11. other buzzwords
211/260
two recent buzzwords
 blockchain
 AI
212/260
12. security
213/260
information security
 we talk about information security only
 three objectives, according to the CIA triad:
– confidentiality
– integrity
– availability
214/260
checklist
 business processes:
– who is in charge?
– how to address security?
 device hardware and physical security:
– secure boot process
– no active debug interface
– physical protection against tampering
– etc.
 device application:
– signed software
– signed remote software updates
– unused ports are disabled
– good practice coding standard
– well define source code management
– safe failures
– etc.
[Sec01]
215/260
checklist
 device operating system:
– most current patches
– plan for remote update
– non-essential services are remoed
– etc.
 device wired and wireless interfaces:
– unauthorized connections are prevented
– IP packets forwarding between interfaces is disabled
– unused ports are closed
– if existing, default connection password is unique to each device
– connections are secured (TLS...)
– etc.
[Sec01]
216/260
checklist
 authentication and authorization:
– code and data are binded to a specific devie hardware
– a password can’t be null or blank
– protection against repeated login attempts
– stored passwords are encrypted
– etc.
 encryption and key management for hardware:
– true random number generator
– tamper proof location for sensitive data
– etc.
 web user interface:
– strong user authentication
– automatic session timeout
– input validation
– etc.
[Sec01]
217/260
checklist
 mobile application:
– minimum required amount of personal information is stored
– personal user data is encrypted
– stored passwords are encrypted
– etc.
 privacy:
– only authorised personnel have access to personal data of users
– personal data is anonymized
– data retention policy
– product owner is informed about data collection
– etc.
 cloud and network elements:
– latest security patches
– webserver identification switched off
– etc.
[Sec01]
218/260
checklist
 secure supply chain and production:
– test and calibration software erased before dispatch
– duplicate serial numbers are detected
– securely controlled area may be required
– etc.
[Sec01]
219/260
summary
 security is a world by itself
 it applies to all subcomponents
 a broad view is required
 rely on real experience
[Sec01]
220/260
13. standardization
221/260
standardization
 some “old” standards:
– V.24, V.28, etc.
– MODBUS, Fieldbus, etc.
– SPI, I2C, etc.
 but that's really far from being enough
 let's dream:
– any remote side should be able to communicate with any central
side
– any central side should be able to communicate with any central
side
– any side receiving a new type of data should be able to know
whether it has to process this data, and/or what it means
(semantics, ontology)
222/260
standardization
 in Europe: ETSI (European Telecommunications Standards Institute)
 most of ETSI M2M standardization work has been transferred to
oneM2M in 2012
 oneM2M is a global partnership project (China, Japan, Europe, North
America, etc.)
 OMA (Open Mobile Alliance) is member of oneM2M
 goal:
develop technical specifications which address the
need for a common M2M Service Layer that can be
readily embedded within various hardware and software
223/260
standardization
 AE: Application Entity - CSE: Common Services Entity - NSE: Network Services Entity
[Sta01]]
224/260
ITU-T - technical overview
[Sta02]]
225/260
ITU-T - types of devices and relationship with physical things
226/260
standardization
 many other standardization organizations:
– Open Connectivity Foundation
– Thread Group
– Hypercat Consortium
– Industrial Internet Consortium (IIC)
– Global Standards Initiative on Internet of Things (IoT-GSI)
– ITU Joint Coordination Activity on IoT (JCA-IoT)
– TIA TR-50
– Open Mobile Alliance (OMA)
– OMG Data-Distribution Service for Real-Time Systems (DDS)
– IEEE IoT Architecture Working Group
227/260
standardization
 many other standardization organizations (cont'd):
– Internet Engineering Task Force (IETF)
– IPSO Alliance
– W3C Web of Things Community Group
– W3C Semantic Sensor Network Incubator Group
– ZigBee Alliance
– ULE Alliance
– Z-Wave Alliance
– etc. (see http://www.monblocnotes.com/node/2034)
228/260
standardization
 Q: so many standards... What to do with them?
 A: what you want
 more seriously:
– for an integrator:
– try to use standardized interfaces and products
– stay informed
229/260
14. project perspective
230/260
gathering
user
requirements
requirements
analysis
prototyping
product
development
tests
installation -
user
approval
usual projet phases (simplified)
231/260
gathering
user
requirements
requirements
analysis
prototyping
product
development
tests
installation -
user
approval
technology
hands-on
proof of
concepts
tooling
important phases
232/260
agility
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on
the left more.
[Pro08]
233/260
agility
real needs
technology
iterations
delivery
• handling of:
• requirements uncertainty
• technology uncertainty
234/260
agility
 beware: electronics project lifecycle is not software project lifecycle
 => prototypes
 => field user test
 => OTA update
 => expandable hardware
 => more powerful hardware
[Pro08]
235/260
15. case studies
236/260
example - user needs - 1/4 A
237/260
example - user needs - 1/4 B
 project: RFP for a waste collection management system
 time spent talking with the customer led project team to understand that
there was no need for real-time data transmission
 proposal: truck data downloaded by wire at the end of the day
– => lower operating cost than competitors' proposals
– contract signed, while the provider had no experience about waste
collection management system
 understand customer needs better than himself
238/260
example - user needs - 2/4 A
239/260
example - user needs - 2/4 B
 project: RFP for a taxi dispatch system
 taxi drivers had no experience of a dispatch system
 neither the provider
 agreement about « agility »:
– minimum viable product delivered as soon as possible
– feedback from drivers and dispatch people
– => modification of some delivered functions
– => decision about new ones to be added
– => new version
– several successive versions
 be agile
240/260
example - user needs - 3/4 A
241/260
example - user needs - 3/4 B
 project: RFP for a bus schedule checking system
 « big brother » feeling: bus drivers could decide to go on strike
– => first delivered functions were providing immediate value to bus
drivers (free voice calls, attack alarm)
– => no more problem with trade unions
 rapidly deliver value to the users
242/260
example - user needs - 4/4 A
243/260
example - user needs - 4/4 B
 project: for a customer, develop a system allowing to check inner workings
of several car prototypes
 provider's Business Unit asked their R&D to develop the system. They
decided on a monthly 40 MB data package (usual data packages: 10
MB).
 R&D work was done by beginners in the domain. They implemented a thin
client architecture, and were very proud of it (M2M 2.0!) But monthly data
volume was more than 400 MB! And data was lost for every lengthy loss of
connectivity.
 keep broad view in mind
 don't think you are clever than other people when you enter a new domain
244/260
example - technology - 1/4 A
245/260
example - technology - 1/4 B
 GPRS was documented as THE solution for packet data over GSM
networks
 one undocumented trap:
– connectivity reset by the operator on a periodic basis
 not a big deal for developers used to wireless technology
 but a problem for many developers used to LAN
 never assume things work as documented
246/260
example - technology - 2/4 A
247/260
example - technology - 2/4 B
 for a taxi dispatch system:
– the provider ordered an onboard device from a very well known
company (new product)
– two design flaws appeared after first tests (HW + SW)
 no time for correction: a software workaround had to be implemented
 never assume things work as documented (bis)
 plan for contingencies
248/260
example - technology - 3/4 A
249/260
example - technology - 3/4 B
 for corrected version of previous device, manufacturer introduced new
functions required by other customers
– => design too complex
– => cost too high
 it was decided to perform design in-house.
 costly effort:
– => skills ramp-up
– => development of an SDK + testing tools
 but return on investment:
– control over roadmap
– cost reduction by using device for all projects (some components not
assembled, depending on project)
– etc.
 control core technology
250/260
example - technology - 4/4 A
251/260
example - technology - 4/4 B
 request to an electronic design company: design a low power consumption
device, sending some sensor data to a central application, on a periodic
basis.
 they designed a board with:
– a low power microcontroller
– a low power communication module
 but, to upload the few KB of data on a periodic basis, they used FTP
(instead of byte streaming over TCP for instance)
– => longer connections
– => data overhead
– => more power used!
 keep the broad view in mind
252/260
example - legal aspects - A
253/260
example - legal aspects - B
 project: first french « Pay As You Drive » service, for a car insurance
company
 the system was designed and developed
 then, authorization was requested from CNIL (French Personal Data
Protection Agency)
– answer was: « no »
 system had to be re-designed
 think about legal aspects before it's too late
254/260
16. conclusion
255/260
conclusion
 developing IoT systems can be challenging because:
– large diversity of user needs
– sometimes difficult to get real user needs
– different software development paradigms
– integration of technologies from different fields
256/260
conclusion
 perhaps more than in other domains:
– spend time with users
– get (really) experienced with involved technologies
– get the overall view
– be agile
– design/use hardware that allows for agility (easy (remote) update)
 but, in any case, you'll have fun!
257/260
thanks!
systev.com
@PascalBod06
fr.linkedin.com/in/pascalbodin/
pascal.bodin@systev.com
258/260
credits and references
[Def01] https://material.io/icons/
[Def02] https://openclipart.org/detail/237859/factory
[Def03] https://en.wikipedia.org/wiki/Internet_of_things
[Fct01] http://www.libelium.com/resources/top_50_iot_sensor_applications_ranking/
[Fct02] https://www.aylanetworks.com/iot-use-cases/connected-home
[Pr101] http://homelive.orange.fr/accueil/
[Pr102] http://www.samsung.com/fr/consumer/mobile-devices/smartphones
[Pr103] https://openclipart.org/detail/155101/server
[Pr201] https://www.u-blox.com/en/product/neo-m8-series
[Pr202] http://www.ti.com/product/CC3200MOD/description
[Pr203] https://www.sierrawireless.com/products-and-solutions/embedded-solutions/automotive-modules/
[Pr204] https://developer.mbed.org/platforms/FRDM-K64F/
[Pr205] https://openclipart.org/detail/210237/misc-depression-button
[Pr206] https://www.u-blox.com/en/product/c027
[Pr207] https://www.iridium.com/products/details/iridiumedge
[Arc01] http://www.rm-odp.net/
[Arc01] https://openclipart.org/detail/232991/sedan
[Arc02] https://openclipart.org/detail/177832/radiator
[Arc03] https://openclipart.org/detail/24535/street-lamp
[Arc04] https://openclipart.org/detail/202078/printer-inkjet
259/260
credits and references
[Dev01] https://www.adafruit.com/products/2590
[Dev02] https://www.adafruit.com/products/2542
[Dev03] https://www.adafruit.com/products/2461
[Dev04] https://www.adafruit.com/products/1991
[Dev05 https://shop.sodaq.com/en/explorer.html
[Per01] https://wiki.openwrt.org/doc/hardware/port.gpio
[Per02] http://maxembedded.com/2011/06/the-adc-of-the-avr/
[Per03]
[Per04] https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
[Per05] https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi
[Per06] http://www.engineersgarage.com/contribution/i2cinter-integrated-circuittwitwo-wire-interface
[Per07] http://maxembedded.com/2014/02/inter-integrated-circuits-i2c-basics/
[Per08] https://autoelectricalsystems.wordpress.com/2015/11/10/basics-of-controller-area-network-can-bus-part-1/
[Com01] http://www.microchip.com/wwwproducts/en/RN2483
[Com02] https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515
[Com03] http://www.wikiwand.com/it/Gateway_GPRS_Support_Node
[Com04] http://www.robotshop.com/eu/fr/plateforme-developpement-beaglebone-black-beagleboard.html
[Com05] https://www.ackl.io/schc/
[Com06] http://planstrategique.anfr.fr/?p=1247
[Com07] https://www.lora-alliance.org/technology
http://eu.mouser.com/Connectors/D-Sub-Connectors/D-Sub-Standard-Connectors/_/N-9gybx?
No=50&P=1ytmhdqZ1yzv7x2Z1z0z812
260/260
credits and references
[Pla01] http://www.aeris.com/technology/aercloud/
[Pla02]
[Cen01] https://openclipart.org/detail/17312/antenna-square
[Sec01] https://iotsecurityfoundation.org/
[Sta01] http://onem2m.org/images/files/deliverables/Release2/TS-0001-%20Functional_Architecture-V2_10_0.pdf
[Sta02] http://www.itu.int/rec/T-REC-Y.2060-201206-I
[Pro01] https://openclipart.org/detail/259142/garbage-truck
[Pro02] https://openclipart.org/detail/204589/old-british-taxi
[Pro03] https://openclipart.org/detail/144367/chiva
[Pro04] https://openclipart.org/detail/139267/eco-car
[Pro05] https://dir.indiamart.com/impcat/gprs-modem.html
[Pro06] https://openclipart.org/detail/116599/solar-panel
[Pro07] https://openclipart.org/detail/181618/crashed-car
https://www.sierrawireless.com/products-and-solutions/sims-connectivity-and-cloud-services/iot-cloud-
platform/

Weitere ähnliche Inhalte

Was ist angesagt?

Smart M2M gateway based architecture for m2m device and endpoint management
Smart M2M gateway based architecture for m2m device and endpoint managementSmart M2M gateway based architecture for m2m device and endpoint management
Smart M2M gateway based architecture for m2m device and endpoint managementSoumya Kanti Datta
 
WMSN Dev Kit Brochure
WMSN Dev Kit BrochureWMSN Dev Kit Brochure
WMSN Dev Kit BrochureSrideep Ghosh
 
UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE
UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE
UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE cscpconf
 
domain specific iot system
domain specific iot systemdomain specific iot system
domain specific iot systemRadha Mahalle
 
IRJET - Bridge Monitoring System using IoT
IRJET -  	  Bridge Monitoring System using IoTIRJET -  	  Bridge Monitoring System using IoT
IRJET - Bridge Monitoring System using IoTIRJET Journal
 
Re-SPark: Reservation based Smart Parking system using FRDM KL-25Z
Re-SPark: Reservation based Smart Parking system using FRDM KL-25ZRe-SPark: Reservation based Smart Parking system using FRDM KL-25Z
Re-SPark: Reservation based Smart Parking system using FRDM KL-25ZIRJET Journal
 
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre BottaroAn end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaromfrancis
 
Rotary RFID Parking Management Solution Controlled By Microcontroller
Rotary RFID Parking Management Solution Controlled By MicrocontrollerRotary RFID Parking Management Solution Controlled By Microcontroller
Rotary RFID Parking Management Solution Controlled By MicrocontrollerIJSRD
 
Overview of IoT (JNTUK - UNIT 1)
Overview of IoT (JNTUK - UNIT 1)Overview of IoT (JNTUK - UNIT 1)
Overview of IoT (JNTUK - UNIT 1)FabMinds
 
Industrial Automation using IoT
Industrial Automation using IoTIndustrial Automation using IoT
Industrial Automation using IoTIRJET Journal
 
ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12
ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12
ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12Connectorio
 
Addressing the Challenges of IoT Design
Addressing the Challenges of IoT DesignAddressing the Challenges of IoT Design
Addressing the Challenges of IoT DesignMentor Graphics
 

Was ist angesagt? (20)

Final yr proj ppt
Final yr proj pptFinal yr proj ppt
Final yr proj ppt
 
Domain specific IoT
Domain specific IoTDomain specific IoT
Domain specific IoT
 
Smart M2M gateway based architecture for m2m device and endpoint management
Smart M2M gateway based architecture for m2m device and endpoint managementSmart M2M gateway based architecture for m2m device and endpoint management
Smart M2M gateway based architecture for m2m device and endpoint management
 
WMSN Dev Kit Brochure
WMSN Dev Kit BrochureWMSN Dev Kit Brochure
WMSN Dev Kit Brochure
 
M2M communications
M2M communicationsM2M communications
M2M communications
 
UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE
UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE
UBIQUITOUS NETWORK TECHNICAL ROOM MONITORING SYSTEM MODEL USING WEB SERVICE
 
domain specific iot system
domain specific iot systemdomain specific iot system
domain specific iot system
 
Iot
IotIot
Iot
 
IRJET - Bridge Monitoring System using IoT
IRJET -  	  Bridge Monitoring System using IoTIRJET -  	  Bridge Monitoring System using IoT
IRJET - Bridge Monitoring System using IoT
 
Re-SPark: Reservation based Smart Parking system using FRDM KL-25Z
Re-SPark: Reservation based Smart Parking system using FRDM KL-25ZRe-SPark: Reservation based Smart Parking system using FRDM KL-25Z
Re-SPark: Reservation based Smart Parking system using FRDM KL-25Z
 
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre BottaroAn end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
 
Rotary RFID Parking Management Solution Controlled By Microcontroller
Rotary RFID Parking Management Solution Controlled By MicrocontrollerRotary RFID Parking Management Solution Controlled By Microcontroller
Rotary RFID Parking Management Solution Controlled By Microcontroller
 
Overview of IoT (JNTUK - UNIT 1)
Overview of IoT (JNTUK - UNIT 1)Overview of IoT (JNTUK - UNIT 1)
Overview of IoT (JNTUK - UNIT 1)
 
Introduction of iot
Introduction of iotIntroduction of iot
Introduction of iot
 
IoT
IoTIoT
IoT
 
IEEE ACADEMIC PROJECTS
IEEE ACADEMIC PROJECTSIEEE ACADEMIC PROJECTS
IEEE ACADEMIC PROJECTS
 
Industrial Automation using IoT
Industrial Automation using IoTIndustrial Automation using IoT
Industrial Automation using IoT
 
Internet of things
Internet of thingsInternet of things
Internet of things
 
ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12
ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12
ConnectorIO Services, Industrial IoT, Cloud BMS platform - 2019.12
 
Addressing the Challenges of IoT Design
Addressing the Challenges of IoT DesignAddressing the Challenges of IoT Design
Addressing the Challenges of IoT Design
 

Ähnlich wie IoT and connected devices architecture overview

Software virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleSoftware virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleMicroEJ
 
Creating The World’s First
Creating The World’s First Creating The World’s First
Creating The World’s First Bristol Is Open
 
Portfolio of Projects
Portfolio of ProjectsPortfolio of Projects
Portfolio of ProjectsDaniele Pinto
 
DebojyotiLahiri_DetailedResume
DebojyotiLahiri_DetailedResumeDebojyotiLahiri_DetailedResume
DebojyotiLahiri_DetailedResumeDebojyoti Lahiri
 
Industrial Pioneers Days - Machine Learning
Industrial Pioneers Days - Machine LearningIndustrial Pioneers Days - Machine Learning
Industrial Pioneers Days - Machine LearningVEDLIoT Project
 
The solution selling kits of PC-based Automation_20160404_Eric Lo
The solution selling kits of PC-based Automation_20160404_Eric LoThe solution selling kits of PC-based Automation_20160404_Eric Lo
The solution selling kits of PC-based Automation_20160404_Eric LoEric Lo
 
Data Acquisition and Control System for Real Time Applications
Data Acquisition and Control System for Real Time ApplicationsData Acquisition and Control System for Real Time Applications
Data Acquisition and Control System for Real Time Applicationsijsrd.com
 
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdfenriquealbabaena6868
 
3 Software Stacks for IoT Solutions
3 Software Stacks for IoT Solutions3 Software Stacks for IoT Solutions
3 Software Stacks for IoT SolutionsIan Skerrett
 
[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905
[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905
[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905Eric Lo
 
MicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ
 
MicroEJ OS for IoT devices
MicroEJ OS for IoT devicesMicroEJ OS for IoT devices
MicroEJ OS for IoT devicescharlotte75009
 
Intels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminarIntels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminarBlue Line
 
Open Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - OverviewOpen Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - OverviewKrishna-Kumar
 
Internet of Things Anatomy
Internet of Things AnatomyInternet of Things Anatomy
Internet of Things AnatomyTibbo
 
Gluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWANGluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWANPance Cavkovski
 
SS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentation
SS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentationSS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentation
SS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentationVEDLIoT Project
 

Ähnlich wie IoT and connected devices architecture overview (20)

Software virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleSoftware virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scale
 
Creating The World’s First
Creating The World’s First Creating The World’s First
Creating The World’s First
 
Portfolio of Projects
Portfolio of ProjectsPortfolio of Projects
Portfolio of Projects
 
DebojyotiLahiri_DetailedResume
DebojyotiLahiri_DetailedResumeDebojyotiLahiri_DetailedResume
DebojyotiLahiri_DetailedResume
 
Industrial Pioneers Days - Machine Learning
Industrial Pioneers Days - Machine LearningIndustrial Pioneers Days - Machine Learning
Industrial Pioneers Days - Machine Learning
 
The solution selling kits of PC-based Automation_20160404_Eric Lo
The solution selling kits of PC-based Automation_20160404_Eric LoThe solution selling kits of PC-based Automation_20160404_Eric Lo
The solution selling kits of PC-based Automation_20160404_Eric Lo
 
Cv2017
Cv2017Cv2017
Cv2017
 
Data Acquisition and Control System for Real Time Applications
Data Acquisition and Control System for Real Time ApplicationsData Acquisition and Control System for Real Time Applications
Data Acquisition and Control System for Real Time Applications
 
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
 
resum_g
resum_gresum_g
resum_g
 
3 Software Stacks for IoT Solutions
3 Software Stacks for IoT Solutions3 Software Stacks for IoT Solutions
3 Software Stacks for IoT Solutions
 
[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905
[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905
[Sales kits] WISE-PaaS 2.0 - The IoT Edge Intelligent-V1.0.3_Eric Lo_20180905
 
MicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ, the OS for IoT
MicroEJ, the OS for IoT
 
MicroEJ OS for IoT devices
MicroEJ OS for IoT devicesMicroEJ OS for IoT devices
MicroEJ OS for IoT devices
 
Intels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminarIntels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminar
 
Open Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - OverviewOpen Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - Overview
 
Internet of Things Anatomy
Internet of Things AnatomyInternet of Things Anatomy
Internet of Things Anatomy
 
Gluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWANGluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWAN
 
SS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentation
SS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentationSS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentation
SS-CPSIoT 2023_Kevin Mika and Piotr Zierhoffer presentation
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
 

Kürzlich hochgeladen

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Kürzlich hochgeladen (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

IoT and connected devices architecture overview

  • 1. IoT and connected devices Pascal BODIN 07-Feb-2019 V20190207
  • 2. 2/260 contents functional technical project management part 0 foreword part 1 introduction part 2 functional vs technical part 3 architecture part 4 devices part 5 positioning part 6 identification part 7 communications part 8 platforms part 9 central side part 10 big data part 11 other buzzwords part 12 security part 13 standardization part 14 project perspective part 15 case studies part 16 conclusion
  • 4. 4/260 the egocentric slide  Acklio - R&D engineer - embedded (Jul-2017 → today)  Systev – Independent contractor – connected devices (Sep-2016 → today)  Orange Labs – Senior Software Engineer (Jan-2015 → today)  before: – 2007 - 2011 - co-founder (home computing) – 2004 - 2014 - project manager, developer, expert - Orange Labs (M2M / IoT) – 1997 - 2001 - team manager - France Telecom R&D – 1990 - 2004 - co-founder (systems for mobile connected “objects”) – 1983 - 1993 - software engineer and project leader (McDonnell Douglas, DEC) (several periods with 2 simultaneous jobs...)  Telecom Bretagne (now IMT Atlantique) 1982
  • 6. 6/260 point of view  integrator's point of view: – structuring constraints: – to deliver on committed date and committed budget – to deliver a working system – to integrate / rely on legacy subsystems – to have the broad view – target is customer satisfaction – solving technical problems is only a means
  • 8. 8/260 in the '70s - '80s [Def01] [Def02]
  • 9. 9/260 in the '70s - '80s  SCADA (Supervisory Control And Data Acquisition)
  • 11. 11/260 in the '90s  M2M (Machine to Machine)  LBS (Location Based Services)
  • 13. 13/260 in the '00s  IoT (Internet of Things)
  • 14. 14/260 in the '10s Smart Agriculture Smart HealthSmart Industry Smart Environment Smart City
  • 15. 15/260 a definition  Internet of things: The Internet of Things (IoT) is the network of devices, vehicles, and home appliances that contain electronics, software, actuators, and connectivity which allows these things to connect, interact and exchange data. [Wikipedia]  is it complete? [Def03]
  • 16. 16/260 conclusion  no real definition - domain too vast  related systems have been in use long before IoT acronym and Smart * terms were invented  beware: words simplify reality  reality: – on one side: (large diversity of) user needs – on the other side: (lot of) technologies
  • 18. 18/260 first use case  air pollution monitoring – which services? – which actors? – functions? – technical components?
  • 19. 19/260 second use case  domestic waste collection – which services? – which actors? – functions? – technical components?
  • 20. 20/260 analysis  usual functions - data-centric vision: – data generation – data collection – data storage – data processing – ...
  • 21. 21/260 analysis  usual functions - business-process vision – tracking – alarm – remote control – mission dispatch – information publication – ...
  • 22. 22/260 analysis  usual support functions: – device provisioning – device management – user management – backup / restore – ...
  • 23. 23/260 supporting technical fields  Question: which technologies?
  • 24. 24/260 supporting technical fields electronics software communications IoT
  • 25. 25/260 supporting technical fields  devices – connected embedded electronic boards – gateways  interface to the physical world – sensors – actuators – I/O, bus  embedded software  secure element  network – wired – wireless – protocols  positioning
  • 26. 26/260 supporting technical fields  identification  mobile application  server-side application – container, virtual machine – application server – web server – database management system – data analytics tools – geographical information system – thin client, thick client – graphical user interface  etc.
  • 27. 27/260 a few words about hardware  1985 - Cray-2: the most powerful supercomputer in the world – 1,9 GFLOPS - US$32 million (current value)
  • 28. 28/260 a few words about hardware  2017 - iPhone 8 Plus – 138 GFLOPS - US$950
  • 29. 29/260 a few words about hardware  68HC11  1985 - Motorola --> Freescale --> NXP – 8-bit – 2 MHz – 512 B EEPROM, 512 RAM – 14 €
  • 30. 30/260 a few words about hardware  LPC1115  2010 - NXP – 32-bit - ARM Cortex M0 – 50 MHz – 64 KB Flash, 8 KB RAM – 3,31 €
  • 31. 31/260 a few words about technologies  impressive hardware evolution  => new software possibilities – neural networks, blockchain... – embedded RTOS, embedded software stack  => new communication possibilities – LPWAN – microsatellites  => new deployment possibilities – energy harvesting – batteries
  • 32. 32/260 ecosystem  usually, value chain is depicted like this: Devices Connectivity Integration Applications Customers
  • 33. 33/260 ecosystem  more realistic view: Software developer Middleware developer Software component developer Device manufacturer Location technology provider Wireless module manufacturer Network operator Integrator Installer Geocoded data provider Customer Service provider Embedded OS developer User Sensor / actuator manufacturer Embedded software developer Electronic board manufacturer Hosting
  • 34. 34/260 project management  many different use cases  how to get to know real user needs?  many different technologies involved  a successful project: fulfils real user needs thanks to mastered integration of technologies  => often a challenge for IoT
  • 35. 35/260 project management  global view is fundamental – true for any project – very important for an IoT project – 3 distinct technical fields
  • 36. 36/260 project management  more about project management later
  • 38. 38/260 a possible architecture gateway central side connected device local wireless network long distance network
  • 39. 39/260 another possible architecture central side connected device long distance network
  • 40. 40/260 another possible architecture personal side connected device long distance network
  • 41. 41/260 architecture?  defines: – functions – structure – behavior – deployment  different viewpoints: – enterprise viewpoint (business requirements) – information viewpoint (information semantics and processing) – computational viewpoint (functions, interfaces) – engineering viewpoint (distribution of processing) – technology viewpoint (technologies) [RM-ODP: Reference Model for Open Distributed Processing] [Arc01]
  • 42. 42/260 computational viewpoint Central sideRemote side OS embedded device communication services - remote application software - remote OS PC / serverperipherals communication services - central software components - central component component component software components - remote component component component application software - central OS API communication services API OS API components APIscomponents APIs communication protocols components protocols application protocols Customer-dedicated integration Technical components Communication Execution platforms management security communication services API management security
  • 43. 43/260 4. devices 4.1. device architecture 4.2. important microcontroller characteristics 4.3. interfacing with peripherals 4.4. storage 4.5. software development 4.6. summary
  • 45. 45/260 another example [Dev01] [Dev02] [Dev03] [Dev04] microcontr. board: $12.50 GSM/GPS module: $49.95 GSM antenna: $2.95 GPS antenna: $3.95 analog inputs digital I/O microcontroller + memory location + communication module
  • 46. 46/260 4. devices 4.1. device architecture 4.2. important microcontroller characteristics 4.3. interfacing with peripherals 4.4. storage 4.5. software development 4.6. summary
  • 48. 48/260 important microcontroller characteristics  what is a microcontroller? – on same chip: CPU + (some) memory + clock generator + peripherals  architecture: – von Neumann, Harvard, modified Harvard – one core or multicore  memory types and sizes: – read-only memory (program): ROM/PROM/EPROM/EEPROM/Flash... – read/write memory (data): RAM/SRAM/DRAM/MRAM/FRAM... – data memory and program memory can be separated  memory width: – 4-bit, 8-bit, 16-bit, 32-bit – data memory width may be different from program memory width – etc.
  • 49. 49/260 important microcontroller characteristics  processing power – depends on clock speed and architecture – options: floating point operations, digital signal processing, etc.  power consumption – various low-power modes  cost  supporting hardware tools – development board – programmer / debugger – open source schematic  supporting software tools – integrated development environment – open source code  support
  • 50. 50/260 legacy microcontroller - example  Freescale 68HC11E1 – 8 bits – 3 MHz – RAM: 512 bytes - EEPROM: 512 bytes – 38 General Purpose I/O (GPIO) – 1 x Asynchronous Serial Communications Interface (SCI) – 1 x Synchronous Serial Peripheral Interface (SPI) – 8 x 8-Bit Analog-to-Digital Converter (ADC) – 16-bit Timer System – address / data bus for external memory – bootstrap mode – price: ⋍ US$7 (10 000) [Mic01]
  • 51. 51/260 recent microcontroller - example 1  Microchip PIC16F1705 – 8-bit data memory, 14-bit program memory – 32 MHz – RAM: 1 KB - Flash: 14 KB – 2 x Capture / Compare / Pulse Width Modulation – 1 x Universal Asynchronous Receiver Transmitter (UART) – 1 x SCI - 1 x Inter Integrated Circuit (I2C) – 8 x 10-bit ADC – timers: 4 x 8-bit, 1 x 16-bit – price: ⋍ US$0.88 (10 000) [Mic02]
  • 52. 52/260 recent microcontroller - example 2  Microchip ATSAMD21J18 (ex-Atmel) – 32-bit - ARM Cortex-M0+ core – 48 MHz – RAM: 32 KB - Flash: 256 KB – 6 x serial comm. (UART / SPI / I2C) – 5 x counters / timers – 1 x real-time clock – 1 x 20 channel 12-bit ADC – USB – price: < US$1.87 (10 000)
  • 53. 53/260 recent microcontroller - example 3  NXP LPC1837JET256 – 32 bits - ARM Cortex-M3 core – 3-stage pipeline, modified Harvard architecture – 180 MHz – RAM: 136 KB - Flash: 1024 KB – 6 x PWM – 4 x UART - 2 x I2C - 2 x SPI – 2 x CAN - 2 x USB - 1 x Ethernet – 8 x 10-bit ADC – 4 x 32-bit timers – price: ⋍ US$8 (10 000) [Mic03]
  • 54. 54/260 4. devices 4.1. device architecture 4.2. important microcontroller characteristics 4.3. interfacing with peripherals 4.4. storage 4.5. software development 4.6. summary
  • 56. 56/260 interfacing with peripherals  sensors: pressure, temperature, light level, heat, magnetic field, airflow, tilt, acceleration, switch, push button, etc.  actuators: relay, motor, stepper motor, servomotor, etc.  other devices: printer, display, On-Board Diagnostics connector, RFId tag reader, etc.  interface can be wired or wireless.
  • 57. 57/260 interfacing with peripherals - GPIO  general purpose digital input/output (GPIO): – read or set a voltage (high / low) [Per01]
  • 58. 58/260 interfacing with peripherals - GPIO  an optocoupler may be required  software debounce may be required (a hardware debouncer is sometimes provided by the microcontroller)
  • 59. 59/260 interfacing with peripherals - ADC / DAC  important parameters: resolution and sampling rate  analog to digital converter (ADC): – converts an analog voltage to a digital value – signal conditioning may be required – some microcontrollers provide integrated Op Amp (e.g. PIC16F527)  digital to analog converter (DAC): – converts a digital value to an analog voltage [Per02]
  • 60. 60/260 interfacing with peripherals - serial interface  V.24 / RS-232 – minimum 3 wires: transmitted data, received data, signal ground – asynchronous communication (start bit, stop bit) – additional wires for control signals (request to send, ready for sending, data set ready, calling indicator, etc.) – voltage level: – V.28: – bit to 1: -15 V < voltage < -3 V – bit to 0: +3 V > voltage > +15 V – distance: < 15 m – connectors: DB-25, DB-9 – USA: RS-232 (TIA-232) [Per03]
  • 61. 61/260 UART Address bus Control bus RX TTL TX TTL GND level shifter TX V.24 RX V.24 GND CPU microcontroller interfacing with peripherals - serial interface  bytes are serialized using an UART (Universal Asynchronous Receiver Transmitter)  voltage levels are shifted from board voltage to V.28 for short distances, level shifting may be omitted
  • 62. 62/260 interfacing with peripherals - serial interface  interface characteristics: – asynchronous => a byte starts with a start bit and ends with stop bit(s) – speed (b/s) – byte format (number of data bits, parity, number of stop bits)  a byte is framed. Similar to message framing described in communications section. mark or previous stop bit start bit data bits (5 to 8) + parity (E, O, M, S, N) stop bit(s)
  • 63. 63/260 interfacing with peripherals - SPI  Serial Peripheral Interface – defined by Motorola (then Freescale, then NXP Semiconductors, now Qualcomm) (1985?) MOSI: Master Output, Slave Input SCLK: Serial Clock MISO: Master Input, Slave Output SS: Slave Select [Per04] [Per05]
  • 64. 64/260 interfacing with peripherals - SPI  synchronous communication  full duplex, clock up to a few MHz  one master, one chip select per slave  4 wires  Applications: – short distance communication (in main board vicinity) – exemples: – sensors (temperature, pressure, etc.) – memory (EEPROM, etc.) – LCD – etc.
  • 65. 65/260 interfacing with peripherals - I2 C  Inter-Integrated Circuit – defined by Philips (the NXP Semincoductors now Qualcomm) (1980's) [Per06] [Per07]
  • 66. 66/260 interfacing with peripherals - I2 C  multi-master  clock up to a few MHz  2 wires  applications: – same than SPI
  • 67. 67/260 interfacing with peripherals - CAN  Controller Area Network – defined by Bosch (1986) [Per08]
  • 68. 68/260 interfacing with peripherals - CAN  mainly for vehicles  2-wire bus  multi-master, message broadcast system with asynchronous communication  bus access: CSMA/CD+AMP (Carrier Sense Multiple Access / Collision Detection with Arbitration on Message Priority)  maximum speed: 1 Mb/s  distance: up to several hundreds of meters (with “low” bit rate) [Ser03]
  • 69. 69/260 interfacing with peripherals - Bluetooth  Bluetooth: – designed in 1994 by Ericsson – originally: to replace RS-232 cables – range: less than 100 m – Serial Port Profile (SPP). Many other profiles (audio, file, telephony, etc.)  Bluetooth Low Energy (BLE - 4.0): – designed for very low power operation – optimized for data transfer [Blu01]
  • 70. 70/260 at a software point of view  writing low-level code to handle interfaces: – serial interface: not too complex – SPI, I2C: not too complex either – CAN, Bluetooth: use existing drivers!
  • 71. 71/260 4. devices 4.1. device architecture 4.2. important microcontroller characteristics 4.3. interfacing with peripherals 4.4. storage 4.5. software development 4.6. summary
  • 73. 73/260 storage  when on-chip memory is not enough  additional memory: – important parameters: – bus type (serial, parallel) – max number of program / erase cycles (e.g. 3 000, 100 000) – write time (e.g. page erase - word / page write) – soldered IC: – EEPROM 512 Kb (<=> 64 KB) - 8 pins - SPI - ⋍ US$1.3 – 8 Gb (<=> 1 GB) - 48 pins - multiplexed A/D buses - ⋍ US$8.0 – memory card: – MMC, SD, miniSD, microSD, etc. – ex.: microSD 1 GB ⋍ US$27
  • 74. 74/260 4. devices 4.1. device architecture 4.2. important microcontroller characteristics 4.3. interfacing with peripherals 4.4. storage 4.5. software development 4.6. summary
  • 75. 75/260 development environment ● source code edition ● compilation / link ● simulation ● debugging ● load / run ● emulation ● debugging LPCXpresso VxWorks GNU toolchain TASKING ... PC running Linux, OSX, Windows microcontroller board Atmel Studio
  • 76. 76/260 execution environment Morpheus3 VxWorks RTX OS RTOS specific runtime interrupt handlers + background task ... ... ... Esterel Lustre bare metal Ada
  • 77. 77/260 bare metal  let's look more closely at a microcontroller architecture
  • 78. 78/260 bare metal  some events generated by peripherals input level changed character sent character received counter limit reached end of conversion bit received frame received frame sent watchdog timeout
  • 79. 79/260 bare metal  an event generates an interrupt  attach an interrupt handler to the interrupt you want to handle  example: analog to digital conversion time background task end of conversion interrupt handler background task interruption save context restore context start conversion
  • 80. 80/260 bare metal  usual OS services not available: – process – thread – synchronized access to shared resources (memory, peripherals) – inter-thread communication – device drivers – file system – etc.
  • 81. 81/260 bare metal  it's less complex than it appears for small applications  very useful for some classes of requirements: – (very) small memory footprint – low power consumption – low cost  available tools: – some commercial or open source code is available (flash file system, TCP/IP stack, etc.) – macro definitions preventing use of assembly language – hardware debugger with trace capture
  • 82. 82/260 bare metal  available tools (cont'd): – well known design patterns: – ring buffer – finite state machine (FSM) – etc.  Note: ring buffer and FSM can be used in OS context
  • 83. 83/260 outPtr inPtr data bare metal  ring buffer (or circular buffer): – fixed-size memory array, used as an interface between a producer and a consumer – pointer outPtr points to first non empty element – pointer inPtr points to first empty element – to get next element: read outPtr, read data, increment outPtr – to put a new element: read inPtr, write data, increment inPtr – when at the end of the array, pointer is reset to start of array
  • 84. 84/260 bare metal  ring buffer (cont'd): – a ring buffer is a FIFO (First In, First Out) – when put rate is greater than get rate, buffer gets full: – new data overwrites oldest one, or – put is not performed – beware: put and get operations must be atomic  examples of use: – receive buffer for a serial interface – message queue for communication between two different pieces of code
  • 85. 85/260 state S1 state S2 event E1 (+ condition C1) actions A to perform bare metal  finite state machine: – an abstract machine that can be in one of a finite number of states – the machine is in only one state at a time (current state) – transition from one state to another one is triggered by an event (possibly guarded by a condition) – one possible way to graphically depict an FSM:
  • 86. 86/260 RTOS  an RTOS (or an OS) provides many services: – tasks – task notifications – queues – semaphores – mutexes – timers – memory protection – etc.  easier to write feature-rich applications but: – experience is still required – debugging can be more complex (but easier as well!) – an RTOS must be configured for the hardware platform – larger footprint – etc.
  • 88. 88/260 beware!  this survey mixes OS and RTOS  survey sample may be biased: – according to Express Logic, there are 6.2 billion devices running ThreadX => the most deployed RTOS? – according to Wind River, there are 2 billion devices running VxWorks  IoT market is a subset of embedded market  what about « IoT RTOS »: Contiki, RIOT, Mbed OS...?
  • 89. 89/260 4. devices 4.1. device architecture 4.2. important microcontroller characteristics 4.3. interfacing with peripherals 4.4. storage 4.5. software development 4.6. summary
  • 90. 90/260 summary  complex technical subset of IoT: – analog electronics – digital electronics – bus – software  device software ≠ web server software!!!!  if you can reuse an existing design, do it!  more and more open source designs are available  location, communication: see next sections communication module microcontroller + memoryinterfaces location module user interface communication network data storage
  • 92. 92/260 positioning - GNSS  GNSS: Global Navigation Satellite System  mostly for outdoor use  working principles: – constellation of satellites – every satellite sends messages: satellite position, message time – satellite time is very accurate (atomic clock) – listening to 3 satellites, the GNSS receiver estimates its location on earth (distance = difference of time x speed of light) – that's only an estimate (the receiver does not have an atomic clock) – using a 4th satellite, the receiver synchronizes its clock – => real location can be computed  satellite orbits: MEO (20 000 km), GEO (36 000 km)
  • 93. 93/260 positioning - GNSS  speed of light (approx.): 3 x 108 m/s: 10 m <=> 33 ns  fix: position  accuracy: – depends on receiver quality, on satellites being used, etc. – documented as better than 8 m with 95% confidence level – usual accuracy: 20 m  Dilution of Precision (DOP – PDOP/HDOP/VDOP): – how satellite constellation geometry impacts error in computed location – good when < 6
  • 94. 94/260 positioning - GPS  GPS: US system – 31 operational satellites – MEO orbit: 20 200 km  GLONASS: Russia (formerly USSR) system – 24 operational satellites – MEO: 19 100 km
  • 95. 95/260 positioning - other GNSS  Galileo: Europe – target: 24 satellites + 6 spares – MEO: 23 200 km – accuracy: 8 m horiz. 9 m vert. 95% of time – 12 operational satellites, 4 testing, 2 not fully available – operational (15-Dec-2016)  BeiDou ( 北斗 ): China – target: 5 GEO satellites + 30 MEO satellites – currently: 19 satellites – operational over China  Japan (QZSS), India (NAVIC)
  • 96. 96/260 positioning - GNSS accuracy  example of accuracy: – GPS receiver indoor, not far from a window => lower reception quality – one location every 2 s, for 15 minutes – several locations are more than 60 m far from the real location
  • 97. 97/260 positioning - GNSS augmentation systems  To increase accuracy (and integrity): – differential GPS – a GPS receiver placed at a location known with very good accuracy is used to generate corrections send to other GPS receivers – another receiver is required – => ⋍ 3 – 5 m accuracy – SBAS (Satellite-Based Augmentation Systems) – additional satellites broadcast corrections – no other receiver required – => ⋍ 1 – 3 m accuracy – USA: WAAS (Wide Area Augmentation System) – Europe: EGNOS (European Geostationary Navigation Overlay Service) – India: GAGAN (GPS Aided Geo Augmented Navigation – Japan: MSAS (Multi-functional Satellite Augmentation System)
  • 98. 98/260 positioning - GNSS augmentation systems  A-GPS (Assisted GPS) – mainly for PLMN terminals (your mobile phone...) – almanac (coarse orbit and status information for all satellites) and ephemeris (precise orbit for one satellite) data are sent to the GPS receiver using the mobile network – this reduces TTFF (Time To First Fix) – data generated by mobile operators, or by OTT players (Google, etc.)  RTK (Real-Time Kinematic) – signal phase is used, to get an accuracy up to a few centimeters – fix computation can be quite long
  • 99. 99/260 positioning - interface command + data interface communication module microcontroller + memoryinterfaces location module user interface communication network data storage
  • 100. 100/260 positioning - interface  interface: – usually: serial (V.28 or board voltage) – usually: implements subset of NMEA 0183 standard – most manufacturers provide their own protocol: – SiRF (then CSR, now Samsung) – u-blox - SkyTraq – ST – Broadcom – etc. $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47 Where: GGA Global Positioning System Fix Data 123519 Fix taken at 12:35:19 UTC 4807.038,N Latitude 48 deg 07.038' N 01131.000,E Longitude 11 deg 31.000' E 1 Fix quality: 0 = invalid 1 = GPS fix (SPS) 2 = DGPS fix 3 = PPS fix 4 = Real Time Kinematic 5 = Float RTK 6 = estimated (dead reckoning) (2.3 feature) 7 = Manual input mode 8 = Simulation mode 08 Number of satellites being tracked 0.9 Horizontal dilution of position 545.4,M Altitude, Meters, above mean sea level 46.9,M Height of geoid (mean sea level) above WGS84 ellipsoid (empty field) time in seconds since last DGPS update
  • 101. 101/260 positioning - interface  most receivers are multi-constellations (GPS, GLONASS, Galileo, BeiDou)  important: antenna placement  may be important: tamper protection – antenna cable short circuit and antenna removal events
  • 102. 102/260 positioning - network - misc.  network positioning: – trilateration (several time measures) – triangulation (several angle measures) – cell identification – “fingerprinting” – beacons  dead reckoning: first known position then inertial sensor fusion (accelerometer + magnetometer and filtering)  position may be available at – device side – network side
  • 103. 103/260 positioning - indoor  all previous technologies may be used for indoor positioning, depending on constraints  but no easy-to-integrate, generic system exists today  domain still open to more innovation
  • 104. 104/260 summary  GPS is not the only GNSS!  accuracy increases  time to first fix decreases  other systems: keep an eye on  how to integrate a GNSS receiver: check communications section
  • 106. 106/260 identification  some systems have to identify / authenticate external objects: – truck trailers – shipping containers – bottles of perfumes – bottles of wine – etc.
  • 107. 107/260 identification  RFID (Radio Frequency Identification): – tag / label with (almost) unique identity – passive (no battery) or active (battery) – read-only or read/write – reader: transmits – a passive tag uses incoming energy to transmit back its data – as usual, distance depends on power, antenna and frequency – from a few tens of centimeters up to a few meters (more is possible)  NFC (Near-Field Communication): – purposely short distances only (a few centimeters) – for secure applications (e.g., contactless payment)
  • 108. 108/260 identification  questions: how to identify objects on a global basis, and let every organization exchange object data?  part of the answer: GS1 – international not-for-profit organization – delivers standards, services and solutions – standards: – barcodes – EPCglobal: tag data, tag protocols, reader protocols, ONS (Object Name Service), discovery services, etc. – etc.  a world in itself...
  • 109. 109/260 7. communications 7.1. introduction 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 110. 110/260 communications - introduction  central part of IoT systems  wireless or wired  a given system can use several network technologies – to increase connectivity reliability – to increase connectivity coverage – to provide specific properties (low power, QoS, etc.) – to support legacy equipments – to lower operating costs / capital costs – etc.
  • 111. 111/260 communications - important characteristics  shared or not  geographic coverage + possibility to adapt it  latency  connectivity setup time  addressability  required power for transmission  terminal cost  communication cost  ease of integration  throughput  confidentiality  reliability  availability  etc.
  • 112. 112/260 communications - important characteristics  data: byte stream or messages? – message: some data, adhering to a known format, exchanged between two or more communicating entities  voice?
  • 113. 113/260 communications - byte stream  serial interface: bytes – start bit + data bits + stop bit – a byte can be seen as a n-bit message :-)  TCP: bytes – TCP is stream oriented (more later)  what can we do with a byte stream?
  • 114. 114/260 communications - message  how to go from a stream oriented layer to a message oriented layer?
  • 115. 115/260 7. communications 7.1. overview 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 116. 116/260 framing header payload check sequence  detailed frame structure depends on protocol  header may contain: – packet numbering – number of last good packet received – frame class – etc.  a check sequence may be present: – result of a mathematical operation performed on previous bytes – receiver performs the same operation and compares result  Questions: – how to know when a frame starts and when it stops? – how to ensure transparency for payload?
  • 117. 117/260 framing - delimitation  several solutions for delimitation: – byte count – flag bytes – etc.  byte count:  flag bytes: header payload check sequence payload size header payload check sequence B E
  • 118. 118/260 framing - delimitation  flag byte: how to allow E byte to be present in payload?  => transparency
  • 119. 119/260 framing - transparency  use a predefined escape byte, ESC for instance  on transmission side: – when E is in payload, insert an ESC before it – when ESC is in payload, insert another ESC before it  on reception side: – when ESC is received, delete it and keep following byte  another solution: reduce payload byte set!  etc.
  • 120. 120/260 7. communications 7.1. overview 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 124. 124/260 7. communications 7.1. overview 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 125. 125/260 wireless - PMR  Professional Mobile Radio – not accessible to consumer – frequency + associated bandwidth allocated to a user for a given period – user: private or public organization (company, city, association, etc.) – cost: annual fee (“license fee”) per terminal. In France: – fee = I x bf x c x k4 + n x G – I: bandwidth, in MHz – bf: depends on frequency – c: depends on coverage – k4: constant – n: number of mobile users – G: constant
  • 126. 126/260 wireless - PMR  Frequency (bands): – 40 MHz, 80 MHz, 150 MHz, 400 MHz, etc.  Technology: – analog – voice + data (modem) – 6,25 or 12,5 kHz channels – 1200 b/s – digital: – DMR (Digital Mobile Radio) – 2 slot TDMA over 12,5 kHz channels – 9000 kb/s for 2 slots – dPMR – FDMA over 6,25 kHz channels – 4800 b/s – TETRA (TErrestrial Trunk RAdio) – 4 slot TDMA over 25 kHz channels – 7200 b/s per slot – for shared networks – TETRAPOL – FDMA – for shared networks – TEDS, GSM-R  Coverage: – from ⋍ 30 km (mono-site) up to wide area coverage (multi-sites / trunk) TDMA: Time Division Multiple Access FDMA: Frequency Division Multiple Access
  • 127. 127/260 wireless - PMR - data  data communication: – usually, using a dedicated connector on transceiver – analog: – let's forget about it... – digital: – DMR: status messages (≤ 128 bytes) - short messages (≤ 36 bytes) – packet data – dPMR: short messages (≤ 100 bytes) - packet data – TETRA: short messages (≤140 bytes) - packet data
  • 128. 128/260 wireless - PMR  in 2016: – around 25.000 PMR networks in France  users: – taxis, public transports, ambulances, airports, highways, security, industry, constructions, etc. – public organizations: cities, hospitals, etc. [Com06]
  • 129. 129/260 wireless - unlicensed  France regulation: – AFP = Appareils de Faible Puissance et de Faible Portée – freely accessible – 6.8 MHz, 13.6 MHz, 27.0 MHz, 40.7 MHz, 433.0 MHz, 434.0 MHz, 863-868... MHz, 2.4 GHz, 5.7-5.9 GHz, 24... GHz, 61 GHz, 122-123 GHz, 244-246 GHz – ERP: depends on frequency - from 1 mW to 500 mW – some restrictions on duty cycle, on channel spacing, etc. – some other frequencies, for specific equipments – usual range: up to a few kilometers, unobstructed LoS – throughput: from several 100s of b/s to several 1000s of b/s ERP: Effective Radiated Power LoS: Line of Sight
  • 130. 130/260 wireless - unlicensed long range  for a given radiated power and a given bit error rate, range can be increased either by: – using lower bit rate with traditional modulation technologies. But this narrows spectrum => precise frequency reference is required to decode received modulation.  or by – using spread spectrum modulation. But processing is complex.  Examples: – SIGFOX (choice 1) - technology + network operator – range: documented as up to 40 km LoS – LoRa (Semtech) (choice 2) - technology (chipsets) – range: documented as up to 15 km LoS
  • 131. 131/260 wireless - zoom on LoRa / LoRaWAN  modulation: CSS (Chirp Spread Spectrum)  robust against interference and fading  multiple signals can be sent on same RF channels, with different spreading factors (SF)  error correction in physical layer  LoRaWAN: – provides Adaptative Data Rate (SF management) => battery life, network capacity – interoperability device / network – security – etc.
  • 132. 132/260 wireless - zoom on LoRa / LoRaWAN [Com07]
  • 133. 133/260 wireless - zoom on LoRa / LoRaWAN [Com07]
  • 134. 134/260 wireless - zoom on LoRa / LoRaWAN [Com07]
  • 135. 135/260 wireless - PLMN  Public Land Mobile Network  two main families of standards / technologies: – 3GPP: 3rd Generation Partnership Project – GSM, GPRS, EDGE, HSDPA, HSUPA, MBMS, LTE, LTE Advanced... – 3GPP2: 3rd Generation Partnership Project 2 – CDMA2000, UMB, LTE...  shared between anybody who subscribes  broad coverage, but target is population, not territory
  • 136. 136/260 wireless - 3GPP  data services: – CSD (Circuit Switched Data): obsolete – SMS (Short Message Service) – 140 to 160 characters / bytes – USSD (Unstructured Supplementary Service Data) – specific services – packet data - IP compatible – throughputs (beware: uplink ≪ downlink): – 2.5G: 8 to 40 kb/s (GPRS) – EDGE = GPRS x 3 – 3G: 2 Mb/s non-moving, 384 kb/s moving – 3.5G: 14.4 Mb/s (HSDPA) – 4G: 100 Mb/s and more (LTE)... GPRS: General Packet Radio Service EDGE: Enhanced Data rates for GSM Evolution HSDPA: High-Speed Downlink Packet Access LTE: Long Term Evolution
  • 137. 137/260 wireless - 3GPP IoT-oriented  three LPWA technologies in Release 13: – NB-IoT (Narrow-Band IoT) – EC-GSM-IoT (Extended Coverage GSM for the IoT) – LTE-M (LTE for Machines) LPWA : Low Power Wide Area
  • 138. 138/260 wireless - NB-IoT  power consumption decreased => battery life > 10 years (!)  spectrum efficiency improved  extended coverage (rural and deep indoors)  low device complexity => low cost
  • 139. 139/260 wireless - EC-GSM-IoT  based on eGPRS (EDGE for GPRS)  software upgrade of existing GSM networks  battery life > 10 years (!)
  • 140. 140/260 wireless - LTE-M  simplified term for LTE-MTC CatM1  lower device complexity - cost reduced to 25% of current eGPRS modules  extended coverage  battery life > 10 years (!)
  • 141. 141/260 interfacing with 3GPP module  AT commands, defined in 3GPP TS 27.007 (and TS 07.07)  commands: [Com02]
  • 142. 142/260 interfacing with 3GPP module  responses:
  • 143. 143/260 wireless - 3GPP - IP connectivity  APN (Access Point Name): – name of gateway between 3GPP network and the Internet - real name: GGSN – defined by the operator – defines following gateway characteristics: – static or dynamic IP address – public or private IP address – allowed protocols (TCP, UDP, etc.) – allowed ports
  • 144. 144/260 wireless - 3GPP - IP connectivity with IP stack in µc board mobile network the Internet GGSN (APN) 1 - attach 2 – define and activate context + start comm. => comm. module known to network => IP address assigned to comm. module 3 – start a PPP session => IP address assigned to remote device communication module microcontroller board AT commands GGSN: GPRS Gateway Support Node[Com03] [Com04]
  • 145. 145/260 wireless - 3GPP - IP connectivity  1/ attach: AT+CGATT=1 OK  2/ define PDP context 3: AT+CGDCONT=3,"IP","orange.m2m.spec" OK  activate PDP context 3: AT+CGACT=1,3 OK  establish communication using PDP context 3: ATD*99***3# CONNECT  3/ start a PPP session
  • 146. 146/260 wireless - 3GPP - IP connectivity with IP stack in µc board - router mobile network the Internet GGSN 1 - register 2 – define and activate context + start comm. => comm. module known to network => IP address assigned to comm. module AT commands 3 – define NAT / PAT rule => comm. module performs NAT / PAT communication module microcontroller board
  • 147. 147/260 wireless - 3GPP - IP connectivity without IP stack in µc board mobile network the Internet GGSN (APN) 1 - attach 2 – define and activate context + start comm. => comm. module known to network => IP address assigned to comm. module 3 – send / receive data communication module microcontroller board AT commands
  • 148. 148/260 wireless - 3GPP - programmable comm. module mobile network the Internet GGSN (APN) 1 - attach 2 – define and activate context + start comm. => comm. module known to network => IP address assigned to comm. module 3 – send / receive data communication module + application API
  • 149. 149/260 wireless - satellites  geostationary orbits – characteristics: – 36.000 km above the Earth – satellite seen from Earth as stationary – coverage restricted to desired zone – minimum end-to-end latency: 2 x 36.000 km / 300.000 km/s => 240 ms – Inmarsat: – BGAN M2M: IP at up to 448 kb/s – latency from 800 ms – global coverage except polar regions – IsatM2M: messages of 25 (up) / 100 (down) bytes – latency 30 to 60 s – global coverage except polar regions – IsatData Pro: messages of 6.4 (up) / 10 (down) kB – latency 15 to 60 s – global coverage except polar regions – Thuraya BGAN: Broadband Global Area Network
  • 150. 150/260 wireless - satellites  low earth orbit (LEO) – characteristics: – satellites constantly in motion around the Earth – altitude: 170 – 2000 km => period: 90 – 130 min. – low power – higher latency ! – Orbcomm: – messages of 6 to 30 bytes – average latency: 6 min. – global coverage – Globalstar – Iridium – Argos
  • 151. 151/260 wireless - (nano)satellites  low earth orbit (LEO) – Astrocast – Fleet – HeliosWire ( + blockchain) – Hiberband – Kepler – Myriota – Swarm Technologies
  • 152. 152/260 wireless - short distance  Wi-Fi – wireless local area network (WLAN) technology based on IEEE802.11 standards – Wi-Fi Alliance owns the brand (not an abbreviation...) – range: usually up to 100 m outdoors  Bluetooth – originally designed to replace serial cables – personal area network (PAN) – managed by the Bluetooth Special Interest Group – range: less than 100 m – many profiles – Bluetooth Low Energy (part of V4.0) – Bluetooth Mesh
  • 153. 153/260 wireless - short distance  ZigBee – managed by ZigBee Alliance – low-power – range: up to 100 m – mesh network => long distance by retransmitting data  Z-Wave – managed by Z-Wave Alliance - for home automation – low-power – range: around 30 m – mesh network
  • 154. 154/260 wireless - comparison - 1/2 Techno Shared Range Latency Setup time PMR no from 30 km up to wide area depends on architecture 0 unlicensed yes up to 10 (40) km depends on architecture 0 2.5G/3G yes wide area from 100 ms up to 1 s from 2 s to 5 s 4G yes wide area 50 ms 1 s satellites geo yes global 800 ms to 60 s depends satellites LEO yes global min depends Wi-Fi yes local ms s
  • 155. 155/260 wireless - comparison - 2/2 Techno Addressability TX power Equipment cost Comm. cost PMR full W 100s € 0 € unlicensed full mW 10s € 0 € 2.5G/3G restricted W 100s € flat rate 4G restricted W 100s € --> 10s € flat rate satellites geo restriced W 1000s € high satellites LEO restricted W 100s € high Wi-Fi full mW 10s € 0 €
  • 156. 156/260 wireless - 3 dimensions  3 dimensions, for wireless networks: – technology – regulations – operator  example 1: – 4G is a technology mainly used for public cellular networks – operators (Orange, Verizon, etc.) have to buy licenses – 4G can be used on private networks as well  example 2: – Sigfox is an operator using its proprietary technology on license-free bands – the technology could be used on licensed bands as well  example 3: – LoRa is a technology used on license-free bands – there are several operators (Orange, Bouygues Telecom, etc.) – the technology can be used by consumers as well – the technology can be used on licensed bands as well
  • 157. 157/260 7. communications 7.1. overview 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 158. 158/260 wired  leased lines – permanent connection between two locations – analog or digital – symmetric throughput (unlike ADSL) – example for France: – Orange Transfix: up to 2048 Kb/s – for IoT / M2M: more or less obsolete  Public Switched Telephone Network (PSTN) – requires a modem (modulator – demodulator) – up to 56 Kb/s – cost proportional to duration (depends on package) – long setup time (up to 20 or 30 s) – for IoT / M2M: not so used  Asymmetric Digital Subscriber Line (ADSL) – pseudo permanent connection
  • 159. 159/260 wired  Local Area Network (LAN) – Ethernet  field buses: – PROFIBUS – DeviceNet – INTERBUS – FOUNDATION – Modbus – Sercos – PROFINET – Powerlink – EtherCAT – etc.
  • 160. 160/260 7. communications 7.1. overview 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 161. 161/260 messaging protocols  just a few words about TCP: – TCP is a stream-oriented protocol: – “Hello world” can be received as “Hell” and then “o world” – “Hello” and then “ world” can be received as “Hello world” – => framing is required – simple, for TCP, thanks to TCP characteristics: – ordered data transfer – error-free data transfer
  • 162. 162/260 messaging protocols  data serialization - endianness independency: – ASN.1: defined 30 years ago by CCITT (now ITU-T) – not so used in M2M/IoT... – Google re-invented a solution in 2008: Protocol Buffers – not so used either in M2M/IoT... (but framing not provided...) – CBOR (Concise Binary Object Representation): IETF - 2013 – advantages: – reliable solutions – data endianness independency – transparent serialization/deserialization – forward compatibility – drawbacks: – some complexity – Protocol Buffers needs framing – libraries in various languages to encode / decode frames – not so difficult to define your own mechanism
  • 163. 163/260 messaging protocols  applying web technologies to IoT / M2M communications is often not the right choice: – HTTP: request / response (=> polling), ASCII, complex parsing – XML: verbose – JSON: still too verbose  one benefit: – go through firewalls and proxies  but should IoT / M2M communications be transported along with web communications?
  • 164. 164/260 messaging protocols - MQTT  MQTT acronym comes from Message Queue (not present in MQTT!) and Telemetry Transport (but MQTT is not restricted to telemetry)  maintained by OASIS Consortium (Organization for the Advancement of Structured Information Standards)  mixes messaging with publish / subscribe (one to many - application decoupling)  based on TCP/IP (MQTT-SN for non TCP/IP networks)  small transport overhead  abnormal disconnection notification  free open source implementations: – Eclipse Mosquitto (server) – Eclipse Paho (clients in various languages)
  • 165. 165/260 messaging protocols - CoAP  Constrained Application Protocol  maintained by the IETF (Internet Engineering Task Force) - RFC7252  request / response – designed to easily interface with HTTP  based on UDP or equivalent  low transport overhead  low parsing complexity  resource discovery (a client queries a server)  several free open source implementations of CoAP (client, server)
  • 166. 166/260 messaging protocols - other  many other protocols: – Open Wireless Telematics Protocol (designed by Mobile Devices) – Cloud Connector (designed by Digi) – etc.  not so difficult (for really experienced developer) to define one's own protocol
  • 167. 167/260 device management protocols  OMA DM: specified by Open Mobile Alliance (OMA)  OMA DM supports: – device provisioning (device initialization and configuration) – software updates (application and system software) – fault management (reporting faults, querying status)  for M2M: OMA Lightweight M2M (LWM2M) – based on CoAP – open source implementation: Eclipse Wakaama project
  • 168. 168/260 7. communications 7.1. overview 7.2. framing 7.3. direction 7.4. wireless networks 7.5. wired networks 7.6. messaging protocols 7.7. IP or not IP?
  • 169. 169/260 LPWAN limitations  LPWAN:  drastic bandwidth limitation  => do not rely on TCP/IP protocols  => not well integrated in the Internet  one proposed solution: SCHC
  • 170. 170/260 SCHC  for LPWAN: nature of data flows is highly predictable  communication contexts are stored on both sides  => high level of compression is possible  Static Context Header Compression  compression  fragmentation
  • 172. 172/260 SCHC  => an LPWAN device becomes an IP device
  • 173. 173/260 summary  many different technologies  understanding real user needs is important, to choose right network technology/technologies  perhaps the most important part of a system, as it transfers data from on side to the other one  perhaps the most difficult part of a system, at a technical point of view
  • 174. 174/260 8. platforms 8.1. architecture and services 8.2. RESTful API
  • 175. 175/260 platforms  beware: the word « platform » may have different meanings – software development framework – software application providing communication (and possibly management and storage) services – a hosted application providing above services – hardware system – hardware system and associated software stack – etc.  in what follows: hosted application, that makes easier to integrate devices into applications
  • 177. 177/260 platforms Central sideRemote side OS embedded device communication services - remote application software - remote OS PC / serverperipherals communication services - central software components - central component component component software components - remote component component component application software - central OS API communication services API OS API components APIscomponents APIs communication protocols components protocols application protocols Customer-dedicated integration Technical components Communication Execution platforms management security communication services API management security
  • 178. 178/260 platforms  functions usually provided by a platform (as seen by a user): – device provisioning – device management – device authentication – support of some communication protocols – user authentication – data persistence (raw data or decoded data?) – device groups – user groups – easy way to add new communication protocols – etc.  two logical interfaces: one for devices, one for applications
  • 179. 179/260 platforms connected device central side platform platform code solving customer problem code solving customer problem customer pays for this, not for the platform relative sizes of software code, for a complex system
  • 180. 180/260 platforms  perceived value is often not in the platform  a platform may prevent from using some devices (which do not implement a supported protocol)  a platform usually creates a protocol break  when updating the platform, ALL users are impacted  developing a communication layer + minimum device management is not complex for an experienced team  => think twice before deciding on using a platform  anyway, using a platform may be very nice, for some (simple) applications, to demonstrate a new service, or for very large sets of devices
  • 181. 181/260 many platforms ? Afero deviceWISE Microtronics end-to-end platform Sine-Wave AggreGate dweet.io Mobius SIMPro AirVantage Electric Imp MODE SmartThings Ark Enterprise2Cloud mozaiq Solair ARTIK Cloud EVRYTHNG Murano TempoIQ AT&T's M2X Exosite myDevices The ThingBox AWS IoT FlowCloud Nabto thethings.iO Axeda IoT Platform Gaonic Neo ThingFabric AXON GoFactory Net4Things ThingPlug Ayla IoT Cloud Fabric Golgi Netatmo Connect ThingSpeak Beebotte IFTTT netObjex Thingsquare Berg iMotion NetPro ThingWorx Blynk Impact n.io UnificationEngine Bosch IoT Suite Initial State Octoblu Verizon's M2M platform Busit IoTAcceleration Platform OpenMTC Vortex Canopy Itron OpenSensorCloud Waygum Carriots Hologram Cellular Platform OpenSensors waylay CloudConnect Home2Cloud Open.Sen.se WyzBee Combicloud IBM IoT Cloud Parse Xively Concirrus IoTfy People Power - now FabrUX Yaler Connext DDS IoT lab Plat-One Zatar Coversant IoT Cloud IoT-X PubNub Dashboard of Things iQmenic REDtone IOT Canopy dataplicity Kii resin.io DeviceHive Datavenue Lelylan restack FI-WARE Deutsche Telekom's M2M Device Cloud Loop RuBAN Home*Star / IOTDB Device Connection Platform Lumata Samsung SAMIIO IoTivity DeviceCloud M2M Intelligence SAP HANA Kaa DeviceHub MachineShop SensorLogic macchina.io DevicePilot mbed Device Server SkyNet Nimbits Node-RED OpenIoT OpenRemotecheck http://www.monblocnotes.com/node/1979 opensource
  • 182. 182/260 platforms - example - Sierra Wireless  connectivity management – SIM inventory – usage tracking – etc.  application enablement – RESTful API – data storage – rules engine – device protocol support – etc.  device management – device monitoring – command transmission – OTA firmware update – configuration deployment – etc.[Pla02]
  • 183. 183/260 platforms - how to use one  usual steps, to use a platform for a new development: – register – check list of supported devices, and select one, possibly a simulated one – download client source code or library – build an « Hello World » client (send/receive data) – test it – check send/receive data using available web application – download central application source code or library – build an « Hello World » application (send/receive data) – test it – test the whole system
  • 184. 184/260 8. platforms 8.1. architecture and services 8.2. RESTful API
  • 185. 185/260 overview  REST: representational state transfer  invented in 2000 - an architecture, not a protocol – client-server – stateless – cacheable – layered system – uniform interface – [code on demand]  for web services: RESTful APIs – base URL – HTTP method (GET, HEAD, PUT, POST, DELETE, TRACE, CONNECT) – data elements - JSON
  • 186. 186/260 example - when you visit google.com from France client server GET / HTTP/1.1 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 Host: google.com Accept: */* open TCP socket with address google.com HTTP/1.1 302 Found Cache-Control: private Content-Type: text/html; charset=UTF-8 Location: https://www.google.fr/?gfe_rd=cr&ei=J8-MWPedMPL-8AePwISQDA Content-Length: 259 Date: Sat, 28 Jan 2017 17:04:39 GMT Alt-Svc: quic=":443"; ma=2592000; v="35,34" <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>302 Moved</TITLE></HEAD><BODY> <H1>302 Moved</H1> The document has moved <A HREF="https://www.google.fr/?gfe_rd=cr&amp;ei=J8-MWPedMPL-8AePwISQDA">here</A>. </BODY></HTML>
  • 187. 187/260 example - AirVantage API client server GET /api/v1/users/current?access_token={token} HTTP/1.1 .... { uid: "81210eca05484d34a29bc6c34dc31bf7", email: "dsciamma@sierrawireless.com", name: "David Sciamma", company: { uid: "97ba9e22078548a2847912a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" } }
  • 188. 188/260 example - AirVantage API  after authentication: – get received data – send command to a device – get monitoring data – etc.
  • 190. 190/260 computational viewpoint  device interface – via a platform – with a communication server  database  geographic information system (GIS) functions  data filtering and processing  user interface(s)  etc.
  • 192. 192/260 communication server  communication server: – provides an interface to communicate with devices – may handle several different network technologies – switching to another network technology or supporting a new one should be easy and rapid – other usual requirements: – security concerns: authentication, integrity, privacy, (non-repudiation) – reliability – scalability – etc.
  • 193. 193/260 communication server  example: – for PMR or unlicensed radio antennas transceivers + modems communication server [Cen01]
  • 194. 194/260 communication server  example: – for 3GPP communication server Internet
  • 195. 195/260 communication server  3GPP example (cont'd): – uplink (from devices to server): – server IP address must be reachable => public or VPN – downlink: – device IP address characteristics depend on APN – static or dynamic? – public or private? – several solutions depending on user need and required genericity: – device initiates and maintains a TCP session – server sends an SMS to device, requesting its connection – devices connects periodically – private APN => VPN – etc.
  • 196. 196/260 databases  3 main technologies: – relational database – object database – NoSQL database  another dimension to be considered sometimes: – spatial database (but GIS function can be provided as a service)  a question may arise: – do application data have to be separated from “technical” data? – there is no one right answer  another question: – should all device generated data be mirrored in the central database? – again: there is no one right answer
  • 197. 197/260 Geographic Information Systems  some applications need – to perform spatial operations and / or – to display spatial information  at a technical point of view, two different elements: – functions: – spatial queries against spatial database – spatial libraries – data: – digital maps – georeferenced data  at an architectural point of view: – web GIS – rich client
  • 198. 198/260 Geographic Information Systems  all-in-one (functions + data) web GIS: – Google Maps JavaScript API – Bing Maps APIs – etc.  functions only web GIS: – MapServer (Open Source) – GeoServer (Open Source) – etc.  functions only rich client GIS: – GRASS GIS (Open Source) – QGIS (Open Source) – uDig (Open Source) – etc.
  • 199. 199/260 Geographic Information Systems  data: – OpenStreetMap (Open Source)
  • 200. 200/260 Geographic Information Systems  many providers of commercial products: – rich client / desktop GIS – web GIS – data (vector, bitmap, additional layers)  GIS is a complex matter: – do not try to reinvent the wheel – take some time to get some experience
  • 201. 201/260 User Interface  as for GIS: web or rich client  web: – ⊕ good for large number of distributed users – ⊕ can be good for supporting multi-device / multi-OS – ⊕ good for software updates – ⊖ usually bad for user-perceived response time – ⊖ usually bad for « real-time » or complex user interfaces – ⊖ usually bad for license cost – etc.  rich client: – almost the other way round...  mixing the two of them can be a good solution
  • 203. 203/260 big data  data sets too large / too complex to be processed with traditional tools  we are not talking about Terabyte (1012 bytes)  we are talking about Petabyte (1015 bytes), Exabyte (1018 bytes), etc.  Volume, Velocity, Variety  some tools: – Hadoop (distributed processing - MapReduce, YARN, HDFS) – Spark (analytics over Hadoop file system) – Cassandra (distributed NoSQL) – ElasticSearch (analytics) – many, many, many more tools – check http://bigdata.andreamostosi.name/
  • 204. 204/260 where is big data?  Q: why big data is not addressed in the central side section?
  • 205. 205/260 where is big data?  A: – currently, big data technologies are used at central side – remember: an IoT system is a whole – more power processing available on the edge and in devices – => big data processing could be distributed over devices soon
  • 207. 207/260 an example  for electric vehicle prototypes: data about battery, electric engine, location, speed, etc.  for 100 vehicles during one year: – 400 MB x 100 x 12 = 480 GB - this is not big data!  for 1 million vehicles during one year: – 400 MB x 1 000 000 x 12 = 4.8 x 1015 B (4.8 Petabytes) - this is big data  but...
  • 208. 208/260 an example  but – current mobile data plans are currently too expansive for such volumes – mobile network coverage is currently not full => buffering is required => memory cost – there is enough processing power AND energy in a vehicle => processing can be performed on the fly, so that only main results are sent to the central side
  • 209. 209/260 more generally  there is no one fits all architecture
  • 211. 211/260 two recent buzzwords  blockchain  AI
  • 213. 213/260 information security  we talk about information security only  three objectives, according to the CIA triad: – confidentiality – integrity – availability
  • 214. 214/260 checklist  business processes: – who is in charge? – how to address security?  device hardware and physical security: – secure boot process – no active debug interface – physical protection against tampering – etc.  device application: – signed software – signed remote software updates – unused ports are disabled – good practice coding standard – well define source code management – safe failures – etc. [Sec01]
  • 215. 215/260 checklist  device operating system: – most current patches – plan for remote update – non-essential services are remoed – etc.  device wired and wireless interfaces: – unauthorized connections are prevented – IP packets forwarding between interfaces is disabled – unused ports are closed – if existing, default connection password is unique to each device – connections are secured (TLS...) – etc. [Sec01]
  • 216. 216/260 checklist  authentication and authorization: – code and data are binded to a specific devie hardware – a password can’t be null or blank – protection against repeated login attempts – stored passwords are encrypted – etc.  encryption and key management for hardware: – true random number generator – tamper proof location for sensitive data – etc.  web user interface: – strong user authentication – automatic session timeout – input validation – etc. [Sec01]
  • 217. 217/260 checklist  mobile application: – minimum required amount of personal information is stored – personal user data is encrypted – stored passwords are encrypted – etc.  privacy: – only authorised personnel have access to personal data of users – personal data is anonymized – data retention policy – product owner is informed about data collection – etc.  cloud and network elements: – latest security patches – webserver identification switched off – etc. [Sec01]
  • 218. 218/260 checklist  secure supply chain and production: – test and calibration software erased before dispatch – duplicate serial numbers are detected – securely controlled area may be required – etc. [Sec01]
  • 219. 219/260 summary  security is a world by itself  it applies to all subcomponents  a broad view is required  rely on real experience [Sec01]
  • 221. 221/260 standardization  some “old” standards: – V.24, V.28, etc. – MODBUS, Fieldbus, etc. – SPI, I2C, etc.  but that's really far from being enough  let's dream: – any remote side should be able to communicate with any central side – any central side should be able to communicate with any central side – any side receiving a new type of data should be able to know whether it has to process this data, and/or what it means (semantics, ontology)
  • 222. 222/260 standardization  in Europe: ETSI (European Telecommunications Standards Institute)  most of ETSI M2M standardization work has been transferred to oneM2M in 2012  oneM2M is a global partnership project (China, Japan, Europe, North America, etc.)  OMA (Open Mobile Alliance) is member of oneM2M  goal: develop technical specifications which address the need for a common M2M Service Layer that can be readily embedded within various hardware and software
  • 223. 223/260 standardization  AE: Application Entity - CSE: Common Services Entity - NSE: Network Services Entity [Sta01]]
  • 224. 224/260 ITU-T - technical overview [Sta02]]
  • 225. 225/260 ITU-T - types of devices and relationship with physical things
  • 226. 226/260 standardization  many other standardization organizations: – Open Connectivity Foundation – Thread Group – Hypercat Consortium – Industrial Internet Consortium (IIC) – Global Standards Initiative on Internet of Things (IoT-GSI) – ITU Joint Coordination Activity on IoT (JCA-IoT) – TIA TR-50 – Open Mobile Alliance (OMA) – OMG Data-Distribution Service for Real-Time Systems (DDS) – IEEE IoT Architecture Working Group
  • 227. 227/260 standardization  many other standardization organizations (cont'd): – Internet Engineering Task Force (IETF) – IPSO Alliance – W3C Web of Things Community Group – W3C Semantic Sensor Network Incubator Group – ZigBee Alliance – ULE Alliance – Z-Wave Alliance – etc. (see http://www.monblocnotes.com/node/2034)
  • 228. 228/260 standardization  Q: so many standards... What to do with them?  A: what you want  more seriously: – for an integrator: – try to use standardized interfaces and products – stay informed
  • 232. 232/260 agility We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. [Pro08]
  • 233. 233/260 agility real needs technology iterations delivery • handling of: • requirements uncertainty • technology uncertainty
  • 234. 234/260 agility  beware: electronics project lifecycle is not software project lifecycle  => prototypes  => field user test  => OTA update  => expandable hardware  => more powerful hardware [Pro08]
  • 236. 236/260 example - user needs - 1/4 A
  • 237. 237/260 example - user needs - 1/4 B  project: RFP for a waste collection management system  time spent talking with the customer led project team to understand that there was no need for real-time data transmission  proposal: truck data downloaded by wire at the end of the day – => lower operating cost than competitors' proposals – contract signed, while the provider had no experience about waste collection management system  understand customer needs better than himself
  • 238. 238/260 example - user needs - 2/4 A
  • 239. 239/260 example - user needs - 2/4 B  project: RFP for a taxi dispatch system  taxi drivers had no experience of a dispatch system  neither the provider  agreement about « agility »: – minimum viable product delivered as soon as possible – feedback from drivers and dispatch people – => modification of some delivered functions – => decision about new ones to be added – => new version – several successive versions  be agile
  • 240. 240/260 example - user needs - 3/4 A
  • 241. 241/260 example - user needs - 3/4 B  project: RFP for a bus schedule checking system  « big brother » feeling: bus drivers could decide to go on strike – => first delivered functions were providing immediate value to bus drivers (free voice calls, attack alarm) – => no more problem with trade unions  rapidly deliver value to the users
  • 242. 242/260 example - user needs - 4/4 A
  • 243. 243/260 example - user needs - 4/4 B  project: for a customer, develop a system allowing to check inner workings of several car prototypes  provider's Business Unit asked their R&D to develop the system. They decided on a monthly 40 MB data package (usual data packages: 10 MB).  R&D work was done by beginners in the domain. They implemented a thin client architecture, and were very proud of it (M2M 2.0!) But monthly data volume was more than 400 MB! And data was lost for every lengthy loss of connectivity.  keep broad view in mind  don't think you are clever than other people when you enter a new domain
  • 245. 245/260 example - technology - 1/4 B  GPRS was documented as THE solution for packet data over GSM networks  one undocumented trap: – connectivity reset by the operator on a periodic basis  not a big deal for developers used to wireless technology  but a problem for many developers used to LAN  never assume things work as documented
  • 247. 247/260 example - technology - 2/4 B  for a taxi dispatch system: – the provider ordered an onboard device from a very well known company (new product) – two design flaws appeared after first tests (HW + SW)  no time for correction: a software workaround had to be implemented  never assume things work as documented (bis)  plan for contingencies
  • 249. 249/260 example - technology - 3/4 B  for corrected version of previous device, manufacturer introduced new functions required by other customers – => design too complex – => cost too high  it was decided to perform design in-house.  costly effort: – => skills ramp-up – => development of an SDK + testing tools  but return on investment: – control over roadmap – cost reduction by using device for all projects (some components not assembled, depending on project) – etc.  control core technology
  • 251. 251/260 example - technology - 4/4 B  request to an electronic design company: design a low power consumption device, sending some sensor data to a central application, on a periodic basis.  they designed a board with: – a low power microcontroller – a low power communication module  but, to upload the few KB of data on a periodic basis, they used FTP (instead of byte streaming over TCP for instance) – => longer connections – => data overhead – => more power used!  keep the broad view in mind
  • 252. 252/260 example - legal aspects - A
  • 253. 253/260 example - legal aspects - B  project: first french « Pay As You Drive » service, for a car insurance company  the system was designed and developed  then, authorization was requested from CNIL (French Personal Data Protection Agency) – answer was: « no »  system had to be re-designed  think about legal aspects before it's too late
  • 255. 255/260 conclusion  developing IoT systems can be challenging because: – large diversity of user needs – sometimes difficult to get real user needs – different software development paradigms – integration of technologies from different fields
  • 256. 256/260 conclusion  perhaps more than in other domains: – spend time with users – get (really) experienced with involved technologies – get the overall view – be agile – design/use hardware that allows for agility (easy (remote) update)  but, in any case, you'll have fun!
  • 258. 258/260 credits and references [Def01] https://material.io/icons/ [Def02] https://openclipart.org/detail/237859/factory [Def03] https://en.wikipedia.org/wiki/Internet_of_things [Fct01] http://www.libelium.com/resources/top_50_iot_sensor_applications_ranking/ [Fct02] https://www.aylanetworks.com/iot-use-cases/connected-home [Pr101] http://homelive.orange.fr/accueil/ [Pr102] http://www.samsung.com/fr/consumer/mobile-devices/smartphones [Pr103] https://openclipart.org/detail/155101/server [Pr201] https://www.u-blox.com/en/product/neo-m8-series [Pr202] http://www.ti.com/product/CC3200MOD/description [Pr203] https://www.sierrawireless.com/products-and-solutions/embedded-solutions/automotive-modules/ [Pr204] https://developer.mbed.org/platforms/FRDM-K64F/ [Pr205] https://openclipart.org/detail/210237/misc-depression-button [Pr206] https://www.u-blox.com/en/product/c027 [Pr207] https://www.iridium.com/products/details/iridiumedge [Arc01] http://www.rm-odp.net/ [Arc01] https://openclipart.org/detail/232991/sedan [Arc02] https://openclipart.org/detail/177832/radiator [Arc03] https://openclipart.org/detail/24535/street-lamp [Arc04] https://openclipart.org/detail/202078/printer-inkjet
  • 259. 259/260 credits and references [Dev01] https://www.adafruit.com/products/2590 [Dev02] https://www.adafruit.com/products/2542 [Dev03] https://www.adafruit.com/products/2461 [Dev04] https://www.adafruit.com/products/1991 [Dev05 https://shop.sodaq.com/en/explorer.html [Per01] https://wiki.openwrt.org/doc/hardware/port.gpio [Per02] http://maxembedded.com/2011/06/the-adc-of-the-avr/ [Per03] [Per04] https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus [Per05] https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi [Per06] http://www.engineersgarage.com/contribution/i2cinter-integrated-circuittwitwo-wire-interface [Per07] http://maxembedded.com/2014/02/inter-integrated-circuits-i2c-basics/ [Per08] https://autoelectricalsystems.wordpress.com/2015/11/10/basics-of-controller-area-network-can-bus-part-1/ [Com01] http://www.microchip.com/wwwproducts/en/RN2483 [Com02] https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515 [Com03] http://www.wikiwand.com/it/Gateway_GPRS_Support_Node [Com04] http://www.robotshop.com/eu/fr/plateforme-developpement-beaglebone-black-beagleboard.html [Com05] https://www.ackl.io/schc/ [Com06] http://planstrategique.anfr.fr/?p=1247 [Com07] https://www.lora-alliance.org/technology http://eu.mouser.com/Connectors/D-Sub-Connectors/D-Sub-Standard-Connectors/_/N-9gybx? No=50&P=1ytmhdqZ1yzv7x2Z1z0z812
  • 260. 260/260 credits and references [Pla01] http://www.aeris.com/technology/aercloud/ [Pla02] [Cen01] https://openclipart.org/detail/17312/antenna-square [Sec01] https://iotsecurityfoundation.org/ [Sta01] http://onem2m.org/images/files/deliverables/Release2/TS-0001-%20Functional_Architecture-V2_10_0.pdf [Sta02] http://www.itu.int/rec/T-REC-Y.2060-201206-I [Pro01] https://openclipart.org/detail/259142/garbage-truck [Pro02] https://openclipart.org/detail/204589/old-british-taxi [Pro03] https://openclipart.org/detail/144367/chiva [Pro04] https://openclipart.org/detail/139267/eco-car [Pro05] https://dir.indiamart.com/impcat/gprs-modem.html [Pro06] https://openclipart.org/detail/116599/solar-panel [Pro07] https://openclipart.org/detail/181618/crashed-car https://www.sierrawireless.com/products-and-solutions/sims-connectivity-and-cloud-services/iot-cloud- platform/