Source :
Thales
PSM (Power Saving Mode) : diminution de la signalisation
eDRX (Extended Discontinuous Reception) : extinction du récepteur une partie du temps
Coverage Extension : augmentation des niveaux de puissance et répétitions
etc.
buts :
10 ans de fonctionnement sur pile
terminal plus simple ⇒ coût plus faible
Caractéristiques
débit : jusqu'à 158 kb/s uplink et 124 kb/s downlink
latence : 1,4 à 10 s
pas de voix
Réseaux en activité (août 2020)
LTE-M : 46 réseaux
NB-IoT : 96 réseaux
en France :
LTE-M : Orange
NB-IoT : SFR
Intégration d'un terminal réseau mobile
Deux grands types d'intégration :
terminal séparé contrôlé par l'application
le terminal embarque l'application
Terminal séparé
niveau physique : liaison série (tension carte ou V.28)
niveau données :
"commandes AT"
3GPP TS 27.007
Format des commandes
Format des réponses
Commandes
presque 300 commandes :
gestion des appels voix
gestion des services réseaux
gestion des échanges de données
informations sur le terminal
etc.
chaque fabricant ajoute ses propres commandes :
GPIO
système de gestion de fichiers
sockets TCP et UDP
FTP, HTTP, ping, CoAP, MQTT, LwM2M
GNSS
date et heure
etc.
Modes de fonctionnement
échange de données : nécessite l'activation d'un contexte PDP (Packet Data Protocol)
sélection du réseau cible : APN (Access Point Name)
Internet, intranet
protocoles et ports autorisés
etc.
Utilisation de PPP (Point to Point Protocol)
Utilisation d'une pile TCP/IP interne
Application dans le terminal/module
souvent deux processeurs : "modem" et application
API (Application Programming Interface) donnant accès aux services
OS (Linux) ou RTOS (Thread-X, etc.)
Réseaux LPWAN en fréquences non soumises à autorisation
Certaines fréquences sont utilisables sans licence.
Réglementation
recommandations internationales (ITU, CEPT, etc.)
réglementations nationales
concernent tous fréquences sous licence également
⇒ fréquences ISM (Industrial, Scientific and Medical)
initialement assignées aux usages autres que télécommunications
maintenant utilisées pour Wi-Fi, Bluetooth, Zigbee, etc.
tolérance aux interférences requise
6,7 MHz - 13 MHz - 27 MHz - 40 MHz - 433 MHz - 915 MHz - 2,4 GHz - 5,8 GHz - 24 GHz - 61 GHz
- 122 GHz - 245 GHz
⇒ SRD (Short Range Devices)
faible capacité à provoquer des interférences avec autres équipements radio
en cas d'interférence : non protégés par la réglementation
utilisation des fréquences ISM et de fréquences additionnelles (868 MHz, etc.)
limitation de la puissance : 1 à 500 mW e.r.p. selon fréquences
éventuelle limitation temps d'émission (duty cycle) : 1% à 0,001% selon fréquences
Deux grands types de réseaux LPWAN
réseau Sigfox
réseaux utilisant la technologie LoRaWAN
Radio :
transmission asynchrone du terminal vers le réseau
message répété 3 fois sur 3 fréquences
UNB (Ultra Narrow Band)
modulations DBPSK (Differential Binary Phase Shift Keying) et GFSK (Gaussian Frequency Shift
Keying)
technologie propriétaire
fréquences : 862 à 876 MHz, 902 à 928 MHz, selon régions
largeur de bande : 100 Hz
débit : 100 b/s ou 600 b/s, selon régions
Charge utile d'un message :
uplink : 12 octets
downlink : 8 octets
limitation du nombre de messages par jour et par terminal
Couverture
attention : carte de présence par pays, pas carte de couverture
Note : Unabiz a acquis Sigfox en avril 2022. Unabiz est un fournisseur de services IoT et un opérateur Sigfox pour Singapour et Taiwan
Radio : LoRa
étalement de spectre basé sur CSS (Chirp Spread Spectrum)
correction d'erreur dans la couche physique
technologie propriétaire
largeur de bande :
uplink : 125 kHz ou 500 kHz
downlink : 500 kHz
facteurs d'étalement orthogonaux
débit adaptable aux conditions radio
uplink : 980 b/s à 12500 b/s
downlink : 980 b/s à 21900 b/s
LoRaWAN
protocole de communication + architecture système
⇒ réseaux et terminaux LoRaWAN interopérables
Classes de terminaux
classe A : communication initiée par l'équipement - puis deux fenêtres successives de
réception
classe B : classe A + fenêtres de réception périodiques synchronisées
classe C : réception ouverte en permanence en-dehors des émissions
Charge utile
51 à 222 octets, selon débit
le débit peut être adaptatif ⇒ taille charge utile variable
Réseaux
attention : carte de présence par pays, pas carte de couverture
148 opérateurs dans 162 pays
en France :
Objenious (Bouygues Telecom)
Orange
réseaux communautaires :
il est aussi possible d'installer son propre réseau
Orbite géostationnaire (GEO - Geosynchronous Equatorial Orbit)
36000 km d'altitude
semble fixe par rapport à la Terre
couverture restreinte à la zone "sous" le satellite
latence de bout en bout minimale : 2 x 36000 km / 300000 km/s ⇒ 240 ms
BGAN M2M
IP - jusqu'à 448 kb/s
latence : > 800 ms
couverture : presque globale
IsatM2M
messages de 10 ou 25 octets (TX) ou 100 octets (RX)
latence : 30 à 60 s
couverture : presque globale
IsatDataPro
message de 6400 octets (TX) ou 10000 octets (RX
latence : 15 à 60 s
couverture : presque globale
différents services de données
couverture : 2/3 du globe
Orbite basse (LEO - Low Earth Orbit)
en-dessous de 2000 km d'altitude
(rayon de la Terre : environ 6400 km)
(ISS : entre 330 et 420 km d'altitude)
période : de 80 à 130 min
latence : souvent plus élevée (stockage et transfert...)
puissance d'émission du terminal plus faible
Réseaux PMR (Professional/Private Mobile Radio)
Informations pour la France
Réseaux PMR :
réseaux indépendants
à destination des professionnels, de services de l'Etat, des hôpitaux, des collectivités
locales, d'établissements publics
la voix est la première fonction
couverture locale ou régionale
bandes de fréquences soumises à licence (payante) :
29-54 MHz
54-68 MHz
68-87 MHz
146-174 MHz
174-230 MHz
406-430 MHz
440-470 MHz
gestion : Agence Nationale des Fréquences (ANFR)
Technologies
il existe encore des réseaux analogiques (voix - données possibles)
en numérique :
(Digital Mobile Radio) :
TDMA (Time Division Multiple Access) sur 12,5 kHz ou 6,25 kHz
jusqu'à 9600 b/s débit brut
messages courts et UDP/IP
(Digital Private Mobile
Radio) :
FDMA (Frequency Division Multiple Access) sur 6,25 kHz
jusqu'à 4800 b/s débit brut
messages courts
permettent :
les échanges terminal à terminal
le trunking (partage entre plusieurs groupes d'utilisateurs)
FDMA - TDMA
En numérique (suite) :
(TErrestrial Trunked RAdio) :
pour réseaux partagés entre groupes d'utilisateurs (trunking)
SDS (Short Data Service) - messages jusqu'à 256 octets
messages de statut
données en mode circuit
données en mode paquets (IP) - maximum 14 Kb/s
TEDS (TETRA Enhanced Data Service) : permet la vidéo
En numérique (suite) :
pour réseaux partagés entre groupes d'utilisateurs (trunking)
SMS (Short Message Service)
messages de statut
données en mode paquets (IP)
réseaux peu connus du grand public mais très nombreux :
en 2018, 25000 réseaux PMR en France
conviennent aux applications à couverture locale ou régionale
avantages :
la couverture peut être adaptée à l'application
utilisation exclusive des fréquences (hors trunking)
protection légale contre les brouillages
Communications radio courte distance
basé sur le standard IEEE 802.11
réseau local sans fil (WLAN - Wireless Local Area Network)
fréquences ISM : 2,4 GHz et 5,8 GHz
802.11g : jusqu'à 54 Mb/s - standards ultérieurs permettent plus
portée : environ 100 m
récemment, Wi-Fi HaLow (802.11ah) pour l'IoT :
fréquences ISM : 915 MHz
portée : environ 1 km
bonne pénétration dans les bâtiments (bande étroite)
faible consommation
fréquences ISM : 2,4 GHz
deux modes radio :
LE (Low Energy) - jusqu'à 2 Mb/s - point à point, diffusion, maillage
Classic - jusqu'à 3 Mb/s - point à point
portée : More than a kilometer. Less than a meter. - attention à la
réglementation !
fréquences ISM : 2,4 GHz et 868 MHz en Europe, 915 MHz aux USA
réseau maillé auto-organisé
plusieurs centaines de nœuds sur un même réseau
type de nœuds : coordinateur, routeur, équipement terminal
débit : 250 kb/s
portée : 300 m en vue directe, 75 à 100 m en intérieur
faible consommation
fréquences SRD/ISM : 868 MHz en Europe, 915 MHz aux USA
réseau maillé
jusqu'à 232 nœuds sur un même réseau
débit : jusqu'à 100 kb/s
portée : 100 m en vue directe
faible consommation
Z-Wave Long Range
annoncé en décembre 2020
devrait permettre des distances de plusieurs km
devrait supporter jusqu'à 4000 nœuds sur un même réseau
Protocole propriétaire spécifique
vous pouvez développer votre propre protocole, ou utiliser un protocole propriétaire
existant
vous devez respecter la réglementation locale
Notre exemple
couverture globale ⇒ réseaux satellitaires
temps de latence court pour transmission alarme ⇒ constellation GEO
pour encore diminuer le temps de latence : réseaux mobiles 3G/4G lorsque disponibles
échange des positions entre véhicules pour calcul distance :
communications courte distance
au moins deux bandes de fréquences pour lutter contre brouillage
protocole propriétaire pour sécurité
A retenir
différencier standard ou norme / technologie radio / réglementation / opérateur :
une technologie peut être utilisée sur des fréquences différentes (ex.: réseaux 4G
privés)
un standard ou norme peut proposer des services qui ne seront pas mis en place par
un opérateur donné
une même techno peut être proposée par plusieurs opérateurs
les fréquences ISM/SRD vont-elles saturer un jour ?
il est possible d'installer et de gérer son propre réseau (PMR)
il peut être nécessaire d'intégrer plusieurs technologies
attention : avec la radio, la perte de données est certaine
Flux ou messages ?
capteurs : quelques (dizaines d')octets
valeur mesurée
identifiant
date et heure
position
etc.
actionneurs : quelques (dizaines d')octets
commande à exécuter
identifiant
etc.
⇒ messages
voix : flux
vidéo : flux
images : (gros) messages
Nous allons nous intéresser aux messages.
La transmission de la voix ou de la vidéo est plus rare,
bien que parfois nécessaire (comme dans notre exemple).
Pourquoi des messages ?
l'application destinataire doit savoir quand toute l'information
relative à une mesure d'un capteur a été reçue
un actionneur doit savoir quand toute l'information relative à
la commande qu'il doit effectuer a été reçue
Qu'est-ce qu'un message ?
une suite d'octets contenant la totalité de l'information nécessaire à un traitement donné
Technologies avec interfaces de type message
UDP/IP
SMS (réseaux mobiles terrestres)
LoRaWAN, Sigfox
messages sur réseaux satellitaires
messages sur réseaux PMR
etc.
Interface de type message
Interface de type flux
Attention !
TCP/IP est de type flux !
Retour à la liaison série
comment étaient construits les messages d'un récepteur GNSS ?
comment étaient construites les commandes AT et les réponses ?
⇒ utilisation de délimiteurs (début, fin)
Solutions générales pour un cas simple
on suppose :
pas d'erreur (perte, modification)
transmission des données respectant l'ordre
solution 1 : le temps
attendre une durée minimale entre deux messages
durée entre deux octets successifs d'un même message doit être inférieure à la durée
entre messages
la durée entre deux messages doit être supérieure à la gigue du réseau
solution 2 : une délimitation
séquence de début spécifique
Problèmes avec le contenu du message
Problème 1
supposons que l'on utilise la solution 2, avec l'octet de valeur 01 comme délimiteur :
question : comment transmettre la valeur 01 dans un message ?
c'est le problème de la transparence
Problème 2
L'entier 32 bits 11223344 peut être stocké en mémoire de deux façons :
question : comment transmettre un entier de 32 bits entre deux processeurs utilisant chacun
la mémoire de façon différente ?
c'est le problème du boutisme (endianness)
Vocabulaire :
gros-boutisme (big-endianness) : octet de poids fort à l'adresse
la plus basse
petit-boutisme (little-endianness) : octet de poids faible à
l'adresse la plus basse
bi-boutisme (bi-endianness) : les deux sont possibles
gros-boutistes : microprocesseurs 68000, microcontrôleurs AVR32, etc.
petits-boutistes : RISC-V, microprocesseurs x86, etc.
bi-boutistes : cœurs Arm, Alpha, etc.
Problème 3
Comment échanger des structures de données entre ordinateurs ?
struct sensor {
uint32_t sensor_id;
char sensor_name[20];
struct {
double latitude;
double longitude;
} location;
};
généralisation du problème du boutisme
c'est le problème de la sérialisation
Pour ces problèmes (délimitation, transparence, boutisme, sérialisation) :
plus ou moins compliqué de définir sa propre solution
si pas d'expérience préalable, choisir une solution existante !
Sérialisation, boutisme et délimitation
ASN.1 (Abstract Syntax Notation number 1):
maintenu par l'ITU
notation permettant de définir des structures de données indépendamment de
l'encodage utilisé pour les transmettre
règles d'encodage standard associées (BER, PER, etc.)
générateurs de code pour de nombreux langages
auto-délimitant
Sérialisation et boutisme
Protocol Buffers :
développé par Google (qui ne devait pas connaître l'existence d'ASN.1...)
générateur de code pour de nombreux langages
nécessite une délimitation, à l'inverse d'ASN.1
Sérialisation, boutisme et délimitation
CBOR (Concise Binary Object Representation) :
définie par l'IETF - RFC 7049
basé sur JSON
pas besoin de délimitation
librairies disponibles pour de nombreux langages
Sérialisation, boutisme et délimitation
Pour besoin précis et spécifique : assez facile de définir son propre formatage
Communication (+ délimitation et transparence)
MQTT :
origine acronyme : Message Queuing Telemetry Transport
mais n'utilise pas de mécanisme de file de message, et n'est pas restreint au
transport de mesures
nécessite une couche transport de type flux, ordonné et sans perte (TCP)
mélange protocole message et mécanisme de publication/abonnement
une version non TCP (pour Zigbee, etc.) existe
standard OASIS Open
plusieurs implémentations
libres
Communication (+ délimitation et transparence)
CoAP :
Constrained Application Protocol
même modèle que HTTP : requêtes portant sur ressources
prévu pour UDP
standard IETF - RFC 7252
nombreuses implémentations libres
Communication (+ délimitation et transparence)
de nombreux systèmes utilisent leurs propres protocoles (propriétaires)
beaucoup de communication sur MQTT et CoAP, mais difficile de déterminer leur réel taux
d'utilisation
sur TCP, pas très compliqué de définir son propre protocole, plus léger que MQTT
sur UDP (plus généralement : transport de messages avec perte) : plus compliqué
TP : UDP sur Wi-Fi
Eléments :
un ESP32-DevKitC
un point d'accès Wi-Fi
un ordinateur sous Linux ou macOS, adressable depuis le point d'accès Wi-Fi
TP :
Intégration à l'Internet
réseaux Sigfox, LoRaWAN, etc : courts messages
les en-têtes protocolaires de l'Internet (TCP/UDP/IP) sont trop longs
⇒ les équipements connectés à ces réseaux ne sont pas intégrés à l'Internet
Une solution : SCHC
Static Context Header Compression -
RFC 8724
sur réseaux LPWAN, la nature des flux est prédictible
⇒ stockage du contexte dans l'équipement et dans le réseau
⇒ très fort niveau de compression des en-têtes possible
Notre exemple
pour messages sur réseaux satellitaires : définir un protocole spécifique
pour réseaux mobiles terrestres, en TCP : définir un protocole spécifique
pour communication entre véhicules : définir un protocole spécifique
la vraie complexité est dans l'intégration : gérer plusieurs réseaux
intégration IP avec SCHC
A retenir
le protocole dépend de la couche de transport (avec ou sans perte)
nécessité de délimiter les messages sur un transport de type flux (TCP)
décider de l'utilisation d'un protocole existant selon l'expérience, les besoins et le
contexte
contrainte souvent forte : taille du code en embarqué
avec SCHC, usage d'IP dans tous les équipements ⇒ véritable Internet des Objets
Distribution des traitements
Architecture avec réseau mobile et plate-forme (voir plus loin)
Architecture avec réseau LPWAN licence libre et plate-forme (voir plus loin)
des fonctions de l'équipement communiquent avec des fonctions distantes (application
distribuée)
plusieurs types de réseaux, avec des caractéristiques différentes
de nombreux cas d'usage possibles
⇒ architecture à couches
Architecture à couches
vision idéale !
avantages :
séparation des préoccupations (separation of concerns)
migration d'un type de réseau à un autre facilitée
réutilisation des composants techniques dans d'autres systèmes
maintenance facilitée
etc.
Plates-formes
Groupe générique de couches permettant :
l'abstraction de la couche communication
la fourniture d'une partie des services de gestions (des utilisateurs et des équipements)
la fourniture d'une partie de la sécurité
certains composants techniques complexes (analyse de données, apprentissage automatique,
etc.)
la montée en charge
l'hébergement de l'ensemble de ces services
Contrairement à ce que l'on pourrait penser, il existe de très nombreuses
plates-formes...
Plates-formes à implémentation libre (open source)
Avantages d'une plate-forme :
possibilité d'avoir très rapidement un système complet
passage à l'échelle (> 1000 équipements ?)
peut éviter d'avoir à développer des composants techniques complexes
Inconvénients d'une plate-forme :
peut rendre plus complexe le développement d'un système
peut introduire des problèmes de fiabilité non maîtrisés
généricité ⇒ peut freiner le développement de systèmes sur mesure
mutualisation ⇒ peut obliger à des évolutions non désirées
Objectifs
confidentialité
intégrité
disponibilité
(en anglais : CIA (confidentiality, integrity, availability))
Surface d'attaque
Ensemble des éléments qu'un attaquant peut utiliser pour attaquer un système.
Comment faire face
gouvernance de la gestion :
désigner un responsable en charge de la sécurité
sécurité par conception :
concevoir dès le départ matériel et logiciel par rapport à la sécurité
utilisation correcte du chiffrement :
suivre les meilleurs standards et les bonnes pratiques
sécurisation réseau(x) et applications :
sécuriser les applications, les interfaces, les serveurs
sécurisation chaîne de production et chaîne d'approvisionnement :
surveiller les processus de fabrication, de livraison et d'installation
sécurité des utilisateurs :
informer le client des vulnérabilités, fournir des mises à jour, etc.
A retenir
la sécurisation à apporter dépend de l'application
toutefois, ne pas sous-estimer - exemple : température dans une maison peut indiquer
l'absence des occupants
nécessite une vue d'ensemble
demande de l'expérience
Aujourd'hui :
Presque tous les systèmes à objets connectés sont des systèmes fermés :
l'application de l'équipement échange des informations avec seulement une
application centrale
l'intégration des équipements d'un autre constructeur est habituellement complexe
ou impossible
l'intégation de fonctions d'un développeur tiers est habituellement complexe ou
impossible
l'intégration d'un nouveau type de réseau par un tiers est complexe ou impossible
l'intégration d'un nouveau type de réseau est complexe
etc.
Comment lever ces contraintes ?
La standardisation peut aider :
protocoles de communication
interfaces réseau
architectures systèmes
structure de données
sémantique des données
etc.
Quelques standards préexistants :
V.24 ,
V.28 ,
TIA-232 (ex-RS-232), etc. pour les liaisons série
I2C ,
CAN , etc. pour les bus série
commandes AT pour les terminaux des réseaux cellulaires
Wi-Fi ,
Bluethooth , etc. pour les communications sans-fil courte distance
IPv4 ,
IPv6 ,
TCP ,
UDP , etc. pour l'Internet
etc.
Note : certains sont des normes
Des standards additionnels sont requis, principalement pour les couches hautes...
Mission :
We are the global community that develops IoT standards to enable interoperable,
secure, and simple-to-deploy services for the IoT ecosystem. oneM2M standards
are open, accessible and internationally recognized.
Proposition de valeur :
OneM2M standards allow any IoT application to discover and interact with any IoT device.
Architecture fonctionnelle
AE : Application Entity - CSE : Common Services Entity - NSE : Network
Services Entity
Membres :
Organismes d'élaboration de normes (SDO : Standards Development Organizations) :
Deux forums/consortiums industriels :
Membres des SDOs
Study Group 20
Mission :
Address the standardization requirements of Internet of Things (IoT)
technologies, with an initial focus on IoT applications in smart cities
and communities (SC&C)
L'Union Internationale des Télécommunications (UIT):
fondée en 1865
agence des Nations Unies spécialisée dans le domaine des télécommunications,
et des technologies de l'information et de la communication (ICTs)
Pour le secteur des télécommunications - UIT-T :
étudie les questions techniques, opérationnelles et tarifaires
édite des Recommandations, avec comme objectif une standardisation au
niveau mondial
Rôles du Study Group 20 :
mène un groupe d'étude sur l'Internet des Objets et ses applications
mène un groupe d'étude sur les villes et les communautés intelligentes, incluant
les services électroniques et les services intelligents
mène un groupe d'étude sur l'identification pour l'Internet des Objets
Recommandations UIT-T sous responsabilité SG20 :
série F :
services de télécommunication non téléphoniques
série H :
systèmes audiovisuels et multimédias
série L :
environnement et TIC, changement climatique, déchets d'équipements électriques et
électroniques, efficacité énergétique; construction, installation et protection
des câbles et autres éléments des installations extérieures
série Q :
commutation et signalisation et mesures et tests associés
série Y :
infrastructure mondiale de l'information, protocole Internet, réseaux de prochaine
génération, Internet des objets et villes intelligentes
Les normes OneM2M sont transposées dans la série Y.4500 (17 Recommandations)
Nombreuses autres Recommandations :
Modèle de référence
Exemple - Véhicules en réseau et infrastructures ITS
Membres :
193 états et plus de 900 entreprises, universités, instituts de recherche et organisations
internationales et régionales
Internet of Things Directorate
Mission :
Coordination within the IETF on IoT-related work, and increasing the visibility
and communication between IETF IoT activities and other SDOs, industry alliances,
and other organizations.
L'IETF (Internet Engineering Task Force) :
large open international community of network designers, operators, vendors, and
researchers concerned with the evolution of the Internet architecture and the
smooth operation of the Internet.
RFCs (à l'origine : Request For Comments) :
Web of Things
Mission :
By providing standardized metadata and other re-usable technological building blocks,
W3C WoT enables easy integration across IoT platforms and application domains.
Le W3C (World Wide Web Consortium) :
international community where Member organizations, a full-time staff, and the public
work together to develop Web standards.
Blocs de base du Web des Objets
TD : Thing Description
De nombreuses autres organisations :
De nombreuses autres organisations (suite) :
Question : tant de standards ! Qu'en faire ?
Réponse : ce que vous voulez 🙂
Plus sérieusement :
restez informé(e)
écoutez vos clients
utilisez des architectures en couches avec des interfaces bien définies
Projet industriel habituel
s'assurer des vrais besoins des utilisateurs
se préparer à l'intégration des technologies nécessaires
développer de l'outillage spécifique pour le développement et les tests
Problèmes
un système objets connectés peut transformer la façon de travailler du client
le client n'est peut-être pas capable de prévoir cette transformation
certaines technologies à intégrer peuvent ne pas être maîtrisées
certaines technologies à intégrer peuvent ne pas être encore mûres
certaines technologies à intégrer peuvent vieillir rapidement
etc.
Elément de solution : être agile
Valoriser :
les individus et leurs interactions plus que les processus et les outils
des logiciels opérationnels plus qu’une documentation exhaustive
la collaboration avec les clients plus que la négociation contractuelle
l’adaptation au changement plus que le suivi d’un plan
Ce manifeste, pensé pour le développement logiciel, peut apporter de très bons résultats à des
projets autres que logiciels.
Rester agile en s'inspirant de ce manifeste ! 🙂
A chaque itération :
les besoins des utilisateurs sont mieux définis (y compris par le client)
les composants techniques sont mieux maîtrisés
le système se construit sur des bases solides
le client voit l'avancement du développement
A propos de bases solides :
prévoir dès la conception les pertes de connectivité
séparer les difficultés : preuves de concepts distinctes
tester l'élasticité (la résistance à la tension)
décomposer en couches (voir architecture )
s'assurer de la solidité d'une couche avant de construire dessus
développer des tests automatisés (validation et non régression) au fur et à mesure
Développement par itérations :
utilisable même dans le cas de réponse à appel d'offres (le proposer au client !)
bénéfice pour le client et pour l'intégrateur
être agile est bien plus important que de respecter un plan de bout en bout !
Pour un projet objets connectés
prototyper et présenter aux utilisateurs (pas seulement au client)
tester sur le terrain le plus rapidement possible
prévoir, si possible, des mises à jour OTA (Over The Air)
utiliser du matériel avec possibilité d'extensions
utiliser du matériel plus puissant que strictement nécessaire
etc.
Tournées de collecte de déchets ménagers
Demande :
fournir quotidiennement les rapports des tournées de collecte des déchets ménagers de la
veille :
points de collecte prévus et faits
points de collecte prévus et non faits
points de collectes non prévus et faits
évènements divers : monstres, containers cassés, marche arrière, etc.
Analyse des besoins :
le client pensait à un équipement embarqué remontant en temps réel les données sur réseau
cellulaire
mais pas de demande de temps réel pour les rapports
Proposition :
données de position enregistrées dans le véhicule
données transmises en fin de journée par câble (!)
Gains :
coût d'investissement plus faible (pas de module de communication dans l'équipement
embarqué)
coût de fonctionnement plus faible : pas d'abonnements réseau mobile
⇒ importance de la relation avec le client
⇒ séparer le fonctionnel du technique
Attribution de courses taxis
Demande :
attribution d'une course taxi au taxi le plus proche
surveillance entre taxis
alarme agression
connexion taximètre
réservations
etc.
Contexte :
le groupe de taxis n'a aucune expérience d'un tel système
ne connaît pas le nombre de courses par jour
le fournisseur :
ne connaît pas le métier de taxi
se pose des questions sur certains points techniques
Proposition :
mettre en place une première version minimale rapidement
progresser ensuite par étapes
changements fonctionnels en fonction de la prise en main
planifier de faire évoluer le réseau radio selon le trafic
⇒ itérations pour permettre au client de mieux définir ses besoins
⇒ itérations pour permettre au fournisseur de bien prendre en main les composants
techniques
⇒ itérations rendant visible l'avancement
Système d'Aide à l'Exploitation bus urbains
Demande :
prise de service et fin de service conducteur
affichage au conducteur de l'arrêt suivant et de l'heure d'arrivée prévue
alarme au centre de supervision sur retard ou avance trop importants
alarme agression
consommation carburant par connexion au débimètre
etc.
Contexte :
les conducteurs peuvent se sentir surveillés par le système
⇒ risque de grève
Proposition :
procéder par étapes
livrer d'abord les fonctions utiles aux conducteurs :
alarme agression
messages courts entrants personnels (non prévus au départ)
⇒ déterminer les attentes des utilisateurs, pas seulement du client
⇒ livrer d'abord ce qui a le plus de valeur pour l'utilisateur
GPRS
Contexte :
premier service de transmission de données par paquets sur réseau cellulaire GSM
présenté par les opérateurs comme permettant de passer des réseaux fixes aux réseaux
mobiles de façon transparente
Réalité :
deux caractéristiques non documentées :
fermeture de session TCP si pas d'échanges pendant n minutes
fermeture du context radio toutes les n heures même si échanges
pas un problème pour les développeurs habitués aux réseaux radio
mais un vrai problème pour les autres (ex. : utilisation d'un routeur LAN)
⇒ lire la doc technique ne suffit pas, il faut tester
⇒ tenter de transporter dans un domaine les solutions d'un autre domaine peut être une
mauvaise idée
⇒ intégrer la gestion des erreurs dès le départ
Sous-traitance de la réalisation d'un équipement embarqué
Contexte :
besoin d'un équipement embarqué destiné à contrôler un émetteur-récepteur et un combiné
audio/clavier
réalisation sous-traitée à un grand équipementier radio
Résultat :
livraison tardive
des tests de charge exhibent une erreur de conception électronique et une bogue
logicielle majeure
délai trop court pour corriger l'électronique
le code source est demandé
un contournement logiciel est heureusement trouvé
⇒ tester l'élasticité au plus tôt
⇒ un grand groupe peut fort bien faire de la mauvaise qualité
⇒ avoir une vision globale (ici : matériel + logiciel)
Sous-traitance de la réalisation d'un équipement embarqué - suite
Contexte :
demande d'un version corrigée de l'équipement
l'équipementier propose un équipement qui permet également de répondre à d'autres clients
⇒ trop complexe
⇒ trop cher
Résultat :
conception internalisée
coûteux sur le court terme
mais très bon retour sur investissement sur le long terme :
parfaite adaptation aux besoins
production adaptée à chaque client (carte d'extension, composants non montés)
⇒ dans un système à objets connectés, l'équipement connecté est le cœur technique
:
le maîtriser est nécessaire
⇒ cet exemple est assez ancien. Aujourd'hui, la conception aurait pu
être
dérivée d'une carte existante
Dysfonctionnement d'un équipement embarqué
Contexte :
un millier d'équipements embarqués, installés dans des véhicules, cessent de fonctionner
la fonction de mise à jour à distance (sur réseau cellulaire) ne fonctionne plus
un audit de l'équipement est demandé
Résultat de l'audit :
le logiciel est de très mauvaise qualité
il a été écrit par un développeur sénior. Mais dont l'expérience est dans les applis web
la fonction de mise à jour à distance écrit directement dans la mémoire la nouvelle
version reçue,
et sans contrôle de flux :
si perte de couverture pendant la mise à jour, l'équipement a un logiciel
incomplet
si réseau trop rapide, perte de données ⇒ échec de la mise à jour
⇒ le chef de projet est en faute : il n'a pas assigné le bon profil à la tâche
⇒ le chef de projet n'avait pas le bon profil ⇒ son responsable est en faute
⇒ le développement logiciel n'est pas un monde monolithique : développer pour
l'embarqué est
différent de développer un frontal web, ce qui est différent de développer un dorsal
applicatif...
Capteur autonome en énergie, avec remontées de données
Demande :
concevoir un capteur de particules fines autonome en énergie
le capteur doit remonter régulièrement les mesures vers une application distante
Réponse :
carte électronique avec microcontrôleur basse consommation
batterie rechargée par panneau solaire
mais protocole de remontée des données très énergivore :
données remontées en ASCII au lieu de binaire
utilisation de FTP au lieu d'un protocole applicatif simple sur TCP ou même UDP
le concepteur était plutôt bon en capteurs mais très moyen en protocoles de communication
⇒ savoir évaluer son niveau de compétence par domaine, pour savoir quand demander de
l'aide
⇒ avoir une vision globale (matériel + logiciel)
développer un système objets connectés peut être un défi :
grande diversité des besoins utilisateurs ⇒ référence parfois difficile
parfois difficile d'obtenir les vrais besoins des utilisateurs
il faut maîtriser différents domaines technologiques
peut-être plus que pour d'autres types de projets :
passer du temps avec les utilisateurs (et pas seulement le client)
anticiper la maîtrise des technologies nécessaires
garder la vue d'ensemble
être agile
valoriser les profils en T
Mais c'est un domaine passionnant ! 🙂
Merci pour votre attention !