0% ont trouvé ce document utile (0 vote)
14 vues142 pages

Intégration de Watson dans l'IoT

Transféré par

islemzaghdoudi24
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues142 pages

Intégration de Watson dans l'IoT

Transféré par

islemzaghdoudi24
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ARCHITECTURE IOT

Enseignante : Hanen SHALL


1
Niveau : 3 ème Année IoT
Année Universitaire : 2021-2022
CONTENU

 Introduction à l’IoT
 Introduction à l’IBM Cloud
 Introduction à la Plateforme IBM Watson
 Introduction au Node-RED
 Les protocoles de communication pour l’IBM Watson
 REST APIs
 Les services analytiques de l’IBM Cloud

2
 Introduction à l’IoT
 Solution IoT
Plateforme IoT
Architecture IoT de référence
Plateforme IoT Watson
Connexion des appareils à la plateforme IoT Watson
Introduction aux matériels IoT

[Link]
Introduction à l’IoT

Solution IoT

 Une solution IoT est plus qu'un système embarqué doté d'une fonction de
connectivité.
 Une solution IoT est un ensemble d'appareils et de capteurs connectés à une
plateforme Cloud via une passerelle (Gateway).
 La plateforme Cloud fournit l'infrastructure nécessaire pour gérer, stocker,
sécuriser et analyser une grande quantité de données afin d'extraire des
informations précieuses.

4
Introduction à l’IoT

Plateforme IoT

 Une plateforme IoT fournit un ensemble de fonctionnalités prêtes à l'emploi qui


accélèrent considérablement le développement d'applications pour les appareils
connectés et offrent une évolutivité et une compatibilité entre appareils.
 Une plateforme IoT est un service intégré qui fournit les capacités nécessaires
pour mettre les objets en ligne.
 Les platesformes IoT~middleware IoT.
 Un middleware IoT fonctionne comme un médiateur entre les couches
matérielles (hardware) et applicatives. Les tâches principales de ce middleware
incluent:
la collecte de données à partir d'appareils sur différents protocoles et
topologies de réseau
la configuration et le contrôle des appareils à distance
la gestion des appareils
les mises à jour des firmwares. 5
Introduction à l’IoT

Plateforme IoT

Exemples de plateformes IoT:

 Plateformes IoT Consommateur


IBM Watson IoT Platform
Amazon Web Services (AWS) IoT Platform
Microsoft Azure IoT Platform
Google IoT Cloud Platform
 Plateformes IoT Open-Source
ThingsBoard
myDevices (Cayenne)
Blynk
 Plateformes IoT basées sur l'industrie
IoT platforms for vehicles
IoT platforms for agriculture
IoT platforms for assessts management
6
Introduction à l’IoT

Plateforme IoT

Watson IoT Plateform


 Watson IoT Platform importe les données des appareils et les transforme en
informations significatives, qui peuvent optimiser les processus et guider la
conception de nouveaux produits.

7
Introduction à l’IoT

Plateforme IoT Watson IoT Plateform


Plateforme
 facilite toutes les opérations de base pour les appareils en connexion.
 gère et sécurise les données pour extraire des informations significatives.
 On peut déployer Watson IoT Platform avec la blockchain activée, ce qui peut
être idéal pour une solution impliquant plusieurs parties qui doivent partager les
données signalées à partir d'appareils IoT, Exemple: gestion du fret.
Applications
 Grâce à la plateforme IoT:
 On peut activer les fonctionnalités de connectivité sur les applications IBM
existantes.
 On peut renforcer ces applications afin de pouvoir les utiliser pour adapter des
concepts tels que l'ingénierie continue lorsque Watson IoT Platform est integrée
avec IBM Rational tools.
 Watson IoT Platform peut être intégrée à IBM Maximo ou IBM TRIRIGA.
Solution industrielle
Il est possible de transformer le business des entreprises en utilisant des solutions
pré-packagées qui utilisent les informations dérivées de Watson IoT Platform. 8
Introduction à l’IoT

Architecture IoT de référence

9
Introduction à l’IoT

Architecture IoT de référence

L’architecture la plus élémentaire est une architecture à trois couches:


– La couche dispositif possède des capteurs et actionneurs qui détectent et
recueillent des informations sur l’environnement.
– La couche réseau est responsable de la connexion, du transport et du traitement
des données issues des capteurs et actionneurs.
– La couche application est chargée de fournir à l’utilisateur des services
spécifiques et applications intelligentes.

10
Introduction à l’IoT

Platforme IoT Watson

11
Introduction à l’IoT

Platforme IoT Watson

Les quatre quadrants de la plateforme Watson IoT:

1. Connexion: connecter et gérer les appareils, les réseaux et les passerelles


(gateway).

2. Management de l'information : intégration des données structurées et non


structurées des appareils, des personnes et du monde qui nous entoure.

3. Services Analytiques : analyser et visualiser les données des appareils en


temps réel à l'aide du Tableaux de bord de la plateforme IoT Watson .
 Obtenir des informations à partir des données en utilisant les données en
temps réel, l'analyse prédictive et l'IA en exploitant les services de la plateforme.

4. Management des risques : exploiter les informations correctes provenant de


sources fiablesvotre solution est visible de bout en bout.

12
Introduction à l’IoT

Connexion des appareils à la plateforme IoT Watson

 Connecter et gérer les appareils, passerelles et réseaux IoT à l'aide d'une


infrastructure large et croissante.
 Utiliser une communication basée sur des normes ouvertes (MQTT et HTTPS).
 Sécuriser votre communication et votre gestion.

Connecter:
Importer des données IoT à partir de n'importe quelle source à l'aide de Watson
IoT Platform Service pour enregistrer, connecter et contrôler les appareils IoT.
Activer la consommation sécurisée des données IoT et le contrôle des appareils à
l'aide de Watson IoT Platform Registration Service. 13
Introduction à l’IoT

Connexion des appareils à la plateforme IoT Watson

14
Introduction à l’IoT

o WAN (Wide Area Network) :


o LPWAN (Low Power Wide Area Network) 15
o PAN (Personal Area Network)
o LAN (Local Area Network)
o Satellite : partout dans le monde
Introduction à l’IoT

Les appareils peuvent être connectés directement à la plateforme ou via une


passerelle, selon le cas d'utilisation :

• Le Sensor Area Network est le protocole réseau utilisé pour communiquer les
capteurs IoT à la passerelle. Les exemples incluent Bluetooth ou ZigBee.

• Les événements représentent les valeurs de données mesurées par le capteur.


Par exemple, un événement peut être une lecture par le capteur de température
d’une valeur >30 degrés. Dans de nombreux cas, les appareils n'ont pas à envoyer
les données des capteurs au cloud en continu, mais uniquement lorsque cela est
important, par exemple lorsqu'un événement se produit.

Habituellement, les événements sont envoyés des appareils vers le cloud.


• Les commandes sont envoyées de Watson IoT Platform aux appareils. Les
commandes peuvent être des commandes d'actionnement qui éteignent certains
appareils ou des commandes de diagnostic afin que les appareils puissent
16
signaler des dysfonctionnements.
Introduction à l’IoT

Protocoles de communication

MQTT • Message Queuing Telemetry Transport

HTTP • Hypertext Transfer Protocol

AMQP • Advanced Message Queuing Protocol

CoAP • Constrained Application Protocol

17
Introduction à l’IoT

Introduction aux matériel IoT


 Le matériel utilisé dans l'IoT est un système qui contient les composants suivants :
Processeur
Mémoire
Périphériques d'entrée/sortie
Périphérique/carte de connexion Internet

Des exemples de cartes??

18
Introduction à l’IoT

Un système IoT a quatre composants principaux :

1. Capteurs d'entrée pour mesurer les variables d'environnement physique


nécessaires.

2. Actionneurs de sortie pour contrôler l'environnement physique, tels que les


objets en mouvement et l'augmentation de la température, etc…

3. Le périphérique de connexion réseau pour permettre à l'appareil de partager


ses données collectées avec Cloud.
Cet appareil peut faire partie de la carte IoT comme les cartes Raspberry Pi ou
d'une carte d'extension externe comme les cartes Arduino.

4. La carte IoT collecte les signaux des capteurs, contrôle les actionneurs et envoie
les données collectées et l'état de l'appareil au réseau.

19
Introduction à l’IoT

20
Introduction à l’IoT

21
Introduction à l’IoT

Les cartes de développement pour l’IoT

Arduino

 Arduino est une plate-forme matérielle et logicielle électronique open source.


 Les cartes Arduino peuvent lire les entrées des capteurs (telles que la lumière, le
son ou la pression) et les transformer en sorties (mouvement du moteur, allumer
les LED et publier quelque chose en ligne).
 Arduino a été créé à l'Ivrea Interaction Design Institute pour permettre aux
étudiants une formation en électronique et en programmation de faire du
prototypage rapide.

22
Introduction à l’IoT

Les cartes de développement pour l’IoT

Arduino
Avantages:
Simple et puissant.
 Peu coûteux
 Multi-plateforme : l'environnement de développement intégré (IDE) Arduino
fonctionne sur les systèmes d'exploitation Windows, Macintosh OSX et Linux.
 Logiciel open source et extensible : les outils Arduino sont disponibles pour
extension par des programmeurs expérimentés.
 Matériel extensible et Open source : les concepteurs de circuits expérimentés
peuvent améliorer et étendre la conception du matériel.
Compatibilité et évolutivité : vous pouvez facilement étendre votre code, votre
mémoire, votre processeur et vos E/S en faisant évoluer la carte matérielle en
fonction des besoins de votre projet grâce à la compatibilité entre les différentes
cartes Arduino.
Alimentation intégrée : pas besoin d'un alimentation externe pour la plupart des
applications.
Flasher ROM intégré : pas besoin d'un circuit de programmation externe pour
23
flasher votre code dans la carte Arduino.
Introduction à l’IoT

Les cartes de développement pour l’IoT

Arduino

24
Introduction à l’IoT

Les cartes de développement pour l’IoT

Arduino

Shields

 Les Arduino shields sont des éléments qui peuvent être branchés sur une carte
pour lui donner des fonctionnalités supplémentaires.

 Il existe de nombreux shields Arduino qui permettent aux cartes Arduino


d'interagir avec le monde réel via différents capteurs physiques.

 En utilisant des shields Arduino, nous pouvons avoir une connectivité Arduino
pour Internet pour utiliser les cartes Arduino dans l'IoT (la plupart des cartes
Arduino n'ont pas de connectivité Internet par défaut).

25
Introduction à l’IoT

Les cartes de développement pour l’IoT Arduino

Shields
Câble RJ45

Arduino Ethernet Shield DC motor

Stepper
motor

relais

Arduino Motor Shield


Solenoids

26

Arduino LCD Screen Shield


[Link]
Introduction à l’IoT

Les cartes de développement pour l’IoT Arduino

Shields

SIM Card

Arduino GSM Shield

Arduino Wifi Shield

27
High power loads

Arduino 4 Relays Shield


[Link]
Introduction à l’IoT

Les cartes de développement pour l’IoT

Rasberry Pi

 Raspberry Pi est une série de petits ordinateurs à carte unique développés pour
promouvoir l'enseignement de l'informatique de base dans les écoles
Plusieurs générations de Raspberry Pi ont été lancées. Tous les modèles sont
équipés d'un système sur puce (SoC) avec une unité centrale de traitement (CPU)
compatible ARM et une unité de traitement graphique (GPU) sur puce.
La vitesse du processeur est de 700 MHz -1,5 GHz pour le Pi 4, et la mémoire
intégrée est de 256 Mo -4 Go sur le Pi 4.
Les cartes Secure Digital (SD) sont utilisées en général pour stocker le système
d'exploitation et la mémoire du programme. 28
Introduction à l’IoT

Les cartes de développement pour l’IoT

Rasberry Pi

Plusieurs broches d'entrée/sortie à usage général (GPIO), qui prennent en charge


les protocoles courants comme I²C.
Les modèles B disposent d'un port Ethernet, et les Pi 3, Pi 4 et Pi Zero W
intègrent le Wi-Fi 802.11n et le Bluetooth.
Raspbian est le système d'exploitation officiel pour tous les modèles de
Raspberry Pi.
 Raspbian est basé sur Debian Linux qui est optimisé pour le matériel Raspberry
Pi.
 Raspbian contient l'ensemble des programmes et utilitaires de base qui font
fonctionner Raspberry Pi.

29
Introduction à l’IoT

Les cartes de développement pour l’IoT

Rasberry Pi

Rasberry Pi Sense HAT

Sense HAT est une carte d'extension pour Raspberry Pi qui a été spécialement
conçue pour la mission Astro Pi, qui a été envoyée à la Station spatiale
internationale en décembre 2015.
 Sense HAT est maintenant disponible à l'achat.
Sense HAT dispose d'une matrice de LED RGB 8 × 8, d'un joystick à cinq boutons
et comprend les capteurs suivants :
Gyroscope
Accéléromètre
Magnétomètre
Température
Pression barométrique 30
Humidité
Introduction à l’IoT

Les cartes de développement pour l’IoT

[Link]

SOC

31
Introduction à l’IoT

Les cartes de développement pour l’IoT

Espressif ESP8266

32
Introduction à l’IoT

Les cartes de développement pour l’IoT

Adafruit Feather 32u4 Bluefruit LE

 ATmega32u4 clocked at 8 MHz and at 3.3V logic


 This chip has 32K of flash and 2K of RAM
 USB-to-Serial program & debug capability built in with no
need for an FTDI-like chip, it can also act like a mouse,
keyboard,
USB MIDI device, etc…

33
Introduction à l’IoT

Les cartes de développement pour l’IoT

34
Introduction à l’IoT

Gateways dans l’IoT

Une passerelle (gateway) est une combinaison de composants matériels et


logiciels utilisés pour connecter un réseau à un autre.
 Les gateways permettent de relier les capteurs ou les nœuds de capteurs avec le
monde extérieur.
 Les gateways sont donc utilisées pour la communication de données en
collectant les mesures effectuées par les nœuds de capteurs et en les transmettant
à l'infrastructure Internet.
 La gateway peut faire des traitements locaux sur les données avant de les relayer
au Cloud.

35
 Introduction à l’IBM Cloud
 Présentation de l’IBM Cloud
Base de données sous IBM Cloud
Gestion des utilisateurs et des ressources sous IBM Cloud
Gestion des applications et des services sous IBM Cloud
 Prise en main du service Watson IoT Platform sur IBM Cloud

36
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

 Une plate-forme de cloud computing ouverte et basée sur des normes


 Comprend un catalogue de divers services de plate-forme et d'infrastructure
 combine une plate-forme en tant que service (PaaS) avec une infrastructure en
tant que service (IaaS).
 Utilisé pour créer, déployer et exécuter rapidement des applications d'entreprise
, infrastructures ou les deux.
Software as a Service
SaaS

37
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IaaS de IBM Cloud

 Iaas permet de déployer une infrastructure hautes performances dans les centres
de données IBM Cloud dans le monde entier : serveurs bare metal, serveurs
virtuels, conteneurs, stockage et mise en réseau.
 IaaS fournit des services pour déployer, accéder et gérer l'infrastructure

38
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud PaaS de IBM Cloud


PaaS permet de créer, gérer et exécuter des applications.
 PaaS utilise Cloud Foundry, une offre de PaaS open source qui fournit un choix
de clouds, de frameworks et de services d'application:
 Étendre Cloud Foundry avec les services d'IBM et des partenaires
commerciaux d'IBM.
 Fournir un scriptable command-line interface (CLI).
 S'intègrer au développement des outils, tels qu'Eclipse, pour faciliter le
processus de déploiement.
 PaaS peut s ’exécuter dans les centres de données IBM Cloud dans le monde
entier

39
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud PaaS de IBM Cloud


 Les ressources suivantes sont fournies sur IBM Cloud :
o Runtimes sur lesquels exécuter des applications.
o Catalogues de services pouvant être utilisés pour créer des applications:
Databases
Mobile and web support
Analytics
Artificial intelligence (AI)
Security
o Intégration avec les données et les charges de travail traditionnelles tournant
sur des systèmes sur site.
o Capacités et outils DevOps: code editor, version control,…

40
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IBM Foundary

 Cloud Foundry est le premier standard de l'industrie PaaS qui garantit le


déploiement le plus rapide, le plus simple et le plus fiable des applications natives
Cloud
 Cloud Foundry garantit que les aspects de développement et de déploiement du
codage restent soigneusement coordonnés avec tous les services associés pour
garantir des itérations rapides, cohérente et fiable pour les applications
 Cloud Foundry possède une architecture basée sur des conteneurs qui exécute
des applications avec n'importe quel langage de programmation. Vous pouvez
déployer des applications sur Cloud Foundry en utilisant vos outils existants sans
aucune modification du code.
 Cloud Foundry est un projet open source avec une contribution ouverte et un
modèle de gouvernance ouvert qui offre aux utilisateurs une flexibilité maximale
pour éviter le verrouillage
41
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

Choix du runtime
 Avec IBM Cloud, vous pouvez exécuter votre application à l'aide d'un
environnement d'exécution sans avoir à gérer l'infrastructure
 Un runtime est un ensemble de ressources utilisées pour exécuter une
application
 Pour chaque runtime, un IBM community buildpack fournit les scripts pour
préparer votre code à s'exécuter sur IBM Cloud.
 Un buildpack est une collection de scripts qui préparent votre code à s'exécuter
sur IBM Cloud
 IBM Cloud et Cloud Foundry prennent en charge encore plus d'environnements
d'exécution via les Community Buildpacks.

42
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IBM Cloud: Services


 Les services prédéfinis fournissent des blocs de construction pour les
applications riches en fonctionnalités.

43
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

Services de IBM Cloud

Avec les services Watson, vous pouvez ajouter la puissance de l'IA à votre
application avec des API de parole, de vision et de traitement du langage naturel
(NLP).
Les services de données et d'analyse vous aident à obtenir des données à partir
de bases de données cloud intégrées, à créer des applications basées sur les
données et à analyser vos données.
•Services d'intégration :
oAPI : créez, gérez, appliquez et exécutez des API.
oIntegrate : accédez aux charges de travail traditionnelles qui s'exécutent dans
l'environnement sur site de l'organisation.
 Mobile : utilisez une infrastructure back-end mobile pour créer, surveiller et
tester des applications mobiles.
 IoT : communiquez avec les appareils, les capteurs et les passerelles connectées.
 Fonctions : Exécuter en réponse aux événements entrants (basé sur Apache
OpenWhisk).
44
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

Services de IBM Cloud

 Application Services : de nombreux services d'application, tels que la


blockchain, Message Hub, WebSphere Application Server, Business Rules et
d'autres services d'application, se trouvent sur le cloud.
 DevOps : outils pour aider à innover pour la création de nouvelles applications
plus rapidement et moins cher.
 Sécurité : intégrez la sécurité dans la conception de votre application.
Les services d'infrastructure vous aident à gérer l'infrastructure sous-jacente sur
laquelle votre application s'exécute.

45
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IBM Cloud: Regions et “location”


 IBM Cloud est hébergé dans le monde entier.
 Une région est une zone géographique où votre application est hébergée
 Les emplacements sont des centres de données dans une région où le matériel
est utilisé.
 Il faut Sélectionner une région pour déployer votre application :
o La région la plus proche des utilisateurs peut fournir de meilleures
performances.
o Une région spécifique peut répondre aux exigences de sécurité des données.
o Plusieurs régions offrent une haute disponibilité.

46
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IBM Cloud: Regions et “location”


 Vous pouvez choisir de déployer votre application dans une ou plusieurs
régions:
 Pour une faible latence des applications, sélectionnez la région la plus
proche de vos utilisateurs.
 Pour répondre aux exigences de sécurité des données de certains pays,
sélectionnez la région où vous devez stocker les données de l'application.
 Pour une haute disponibilité, sélectionnez plusieurs régions. Si votre
application échoue dans une région, elle est toujours disponible dans une
autre région.
 Dans la console IBM Cloud, la région est automatiquement définie sur la région
la plus proche

47
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IBM Cloud: Regions et “location”

 L'application Watson IoT Platform est déployée dans l'un des « location »
d'IBM Cloud.
 Choisissez votre région ou votre emplacement le plus proche lorsque vous
créez votre application.
Vous pouvez choisir parmi quatre régions différentes où vous pouvez déployer
votre application Watson IoT (Dallas, Francfort, Washington, D.C. et Londres).

48
Introduction à l’IBM Cloud

Présentation de l’IBM Cloud

IBM Cloud: Regions et “location”

 Les organisations peuvent s'étendre sur plusieurs régions et sont définies par les
éléments suivants :
o Users
o Domains
o Quota
Spaces:
 Spaces: utilisés pour regrouper un ensemble d’applications, services et
utilisateurs.
 Spaces sont liés à une région spécifique dans IBM Cloud. Par exemple, vous
pouvez créer un espace de développement en tant qu'environnement de
développement, un espace de test en tant qu'environnement de test et un espace
de production en tant qu'environnement de production. Ensuite, vous pouvez
associer vos applications à des espaces.
 Chaque application Cloud Foundry ne peut être affectée qu'à un seul espace.
49
Introduction à l’IBM Cloud

Databases sous IBM Cloud

NoSQL SQL Columnar


Key-Value data
databases databases databases
- Stocker et transférer les - Un service de base de
données/objets dans le - Une base de données en - Les services Key-
données SQL fournit des colonnes est une base de
même format que celui bases de données basées value pair data
attendu par les données qui stocke les permettent un
sur des tables données sous forme de
applications, tels que relationnelles. stockage efficace des
JSON ou XML. colonnes au lieu de lignes. Key-value pair data.
- Ils ont été largement -Exemple:
- Pour effectuer une utilisés pour stocker des
requête plus complexe données dans
sur une base de données l'informatique
NoSQL, vous devez d'entreprise.
généralement créer une - Avec SQL, vous pouvez - Chaque colonne est
view. Une view est un écrire des requêtes
self-maintained index stockée dans les databases
combinant des lignes de records suivants:
que le database plusieurs tables liées.
management system - Chaque table a un
(DBMS) fournit pour enregistrement (record)
parcourir rapidement avec divers attributs (un
l'ensemble de données. peu comme un object).
50
Introduction à l’IBM Cloud

Databases sous IBM Cloud

Data services in IBM Cloud catalog

51
Introduction à l’IBM Cloud

Databases sous IBM Cloud

 IBM Cloud propose les DBMSs suivants pris en charge par IBM et les third parties
à utiliser avec le cloud computing :

 Services de base de données NoSQL, y compris Cloudant NoSQL DB et Compose


for MongoDB.
 Services de base de données SQL. y compris Db2 Hosted, Compose for
PostgreSQL, ElephantSQL et Databases for PostgreSQL.
 Services columnar database, y compris Compose pour ScyllaDB.
 Services Key-value pair in memory data, y compris Compose for Redis (open
source), fast key-value et low-maintenance store.

52
Introduction à l’IBM Cloud

Databases sous IBM Cloud

Data storage solutions on the Watson IoT Platform service

 Cloudant NoSQL DB: Contient recent historical data for your IoT devices
 IBM Event Streams pour IBM Cloud: contient the current and recent historical
data for your IoT devices.
 IBM Db2 Warehouse on Cloud-Analytics Service data lake: contient the long-
term historical data for analytics access.
-Utilisez analytics tools pour extraire des connaissances de vos données.
 IBM Cloud Object Storage: L'ensemble complet des données historiques à des
fins d'archivage.

53
Introduction à l’IBM Cloud

Databases sous IBM Cloud

How data storage handles data in Watson IoT Platform

54
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud

 IBM Cloud propose deux méthodes de contrôle d'accès pour les utilisateurs :
Identity and Access Management (IAM)
Cloud Foundry Access

55
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud

Identity and Access Management (IAM)

 Tous les services qui sont organisés dans un ressource group dans votre compte
sont gérés à l'aide d'IBM Cloud IAM.
 Les propriétaires de compte se voient automatiquement attribuer le rôle
d'administrateur de compte pour Cloud IAM.
 En tant qu'administrateur de compte, vous pouvez:
-attribuer et gérer l'accès des utilisateurs,
-créer ressources groups,
-créer access groups,
-afficher les détails de facturation et suivre l'utilisation,
-créer des instances de service.
N.B: Vous fournissez l'accès aux utilisateurs, aux service IDs et access groups en
créant des policies qui définissent une cible pour le sujet afin d’accéder et un rôle
qui définit le type d'accès autorisé.

56
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud

Cloud Foundry Access

 Actuellement, tous les services ne peuvent pas être gérés à l'aide de Cloud IAM.
Vous pouvez continuer à utiliser les rôles Cloud Foundry pour accéder à ces service
instances.
 Les utilisateurs sont ajoutés à l'organisation et aux spaces auxquels l'instance
appartient avec un rôle Cloud Foundry attribué.:
 Les organisations permettent la collaboration entre les utilisateurs et facilitent
le regroupement logique des projet ressources des manières suivantes :
-Vous pouvez regrouper un ensemble de spaces, d'applications, de services,
de domaines, de routes et d'utilisateurs ensemble dans des organisations.
-Vous pouvez gérer l'accès des utilisateurs aux organisations et aux spaces
sur une base individuelle.
Les organisations peuvent s'étendre sur plusieurs régions et sont définies par
les éléments suivants :
-Spaces : un sous-groupe au sein d'une organisation que vous pouvez utiliser
pour organiser des applications, des services et des utilisateurs. Les spaces sont
57
liés à une région spécifique dans IBM Cloud.
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud

Cloud Foundry Access

-Utilisateurs : le rôle avec une autorisation dans les organisations et les spaces.
Vous devez être affecté à une organisation avant de pouvoir obtenir d'autres
autorisations sur les spaces au sein de l'organisation.
-Domaines : Fournissez l'itinéraire (route) sur Internet qui est alloué à
l'organisation.
Une route a un sous-domaine et un domaine.
Un sous-domaine est généralement le nom de l'application.
Un domaine peut être un domaine système ou un domaine personnalisé que
vous avez enregistré pour votre application.
-Quota : représente les ressources disponibles pour une organisation, y compris
le nombre de services et la quantité de mémoire pouvant être allouée pour être
utilisée par l'organisation.
Les quotas sont attribués lors de la création des organisations. Toute application
ou service dans un space au sein d'une organisation contribue à l'utilisation du
quota. Avec les comptes Pay-As-You-Go ou Subscription, vous pouvez ajuster 58
votre quota d'applications et de conteneurs Cloud Foundry en fonction de
l'évolution des besoins de votre organisation.
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud


IBM Cloud: Cloud Foundry access

59
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud

Cloud Foundry: Organizations

 Les organisations sont définies par :


oUsers (membres de l'équipe).
oDomaines.
oQuota.
 Un utilisateur (membre de l'équipe) a un rôle avec des autorisations de base dans
les organisations et les spaces :
 Les utilisateurs doivent être assignés à une organisation avant d’avoir les
permissions nécessaires pour accéder aux spaces au sein d’une organisation.
Les utilisateurs peuvent appartenir à plusieurs organisations, c'est ainsi que
vous partagez l'accès pour contrôler et surveiller vos applications et services.

60
Introduction à l’IBM Cloud

Gestion des utilisateurs et des ressources sous IBM Cloud

Cloud Foundry: User roles

61
 Introduction au Node-RED
 Introduction au flow basic programming
Node-RED overview
Node-RED flow editor
Node-RED Palette Manager

62
Introduction au Node-RED

Introduction au flow-based programming

 Flow-based programming (FBP) est un modèle de programmation inventé par


J. Paul Rodker Morrison à la fin des années 1960.

 Le modèle définit les applications comme un ensemble de processus « boîte


noire » qui communiquent en utilisant des flux de tronçon de données (streams
of data chunks), appelés aussi «information packets », qui circulent à travers un
réseau de processus asynchrones. Cet échange de données peut se faire par la
transmission de messages.

 Une boîte noire en informatique est le système ou l'objet qui peut être visualisé
en termes d'entrées et de sorties sans connaître sa structure interne.
 La transmission de messages est une technique utilisée dans le développement
software comme un moyen pour que les objets d'application interagissent les uns
avec les autres

63
Introduction au Node-RED

Introduction au flow-based programming

 Dans cette vue, l'accent est mis sur les données d'application et les
transformations qui leur sont appliquées pour produire les sorties souhaitées.

Le réseau est défini à l'extérieur des processus comme une liste de connexions
qui est interprétée par un software appelé "scheduler ".

FBP est un moyen efficace pour produire des business applications fiables,
maintenables et assez large. Il suscite un intérêt croissant dans le monde entier.

64
Introduction au Node-RED

Caractéristiques du flow-based programming

 FBP est visuel et orienté composant, ce qui signifie que les processus à
l'intérieur d'une application peuvent être reconnectés à l'infini pour former
différentes applications sans avoir à être modifiés en interne.
 FBP est un « langage de coordination », pas un langage de programmation.
 FBP simplifie la reconfiguration des composants de l'application.
 FBP est indépendant de la langue

65
Introduction au Node-RED

Node-RED overview

 Node-RED est un outil de programmation permettant de connecter des


périphériques matériels, des API et des services en ligne.

 Node-RED a été développé début 2013 en tant que projet parallèle par Nick
O'Leary et Dave Conway-Jones du groupe IBM Emerging Technology Services
pour répondre à un besoin de communication rapide entre (appareils, serveurs
Web) et d'autres programmes .

 Ce travail a commencé comme une preuve de concept pour la visualisation et la


manipulation des mappages entre les topics Message Queuing Telemetry
Transport (MQTT)

 Il est maintenant devenu un outil général et extensible.

66
Introduction au Node-RED

Node-RED overview

67
Introduction au Node-RED

Node-RED overview

68
Introduction au Node-RED

Node-RED overview

69
Introduction au Node-RED

Node-RED overview

Caractéristiques du Node-RED:

Browser-based flow editing:


oNode-RED fournit un éditeur basé sur un navigateur qui facilite la connexion
des flux en utilisant les nœuds de la palette.
oLes fonctions JavaScript peuvent être créées dans l'éditeur à l'aide d'un
éditeur de texte enrichi .
oUne bibliothèque intégrée enregistre des fonctions, des modèles ou des flux
utiles pour les réutiliser

 Built on [Link]:
oTirant pleinement parti de son modèle événementiel et non bloquant.
oIl est facile d'étendre la gamme de nœuds de palette pour ajouter de
nouvelles fonctionnalités.

Social development:
oLes flux créés dans Node-RED sont stockés à l'aide de fichiers JSON, qui
70
peuvent être facilement importés et exportés pour être partagés avec d'autres.
Node-RED peut être déployé sur des environnements locaux sur des appareils
comme Raspberry Pi et sur le cloud comme IBM Cloud
Introduction au Node-RED

Node-RED flow editor


contains the deployment button, main
menu, and, if user authentication is
Contient les noeuds
enabled, the user menu.
disponibles pour
l’utilisation where flows are created.

contains the
information tab to
view information
about the nodes and
to access the help
menu, and the
debug tab to view
messages from the
nodes.

71
Introduction au Node-RED

Node-RED flow editor


Node-RED flow components

 Les nœuds sont les blocs de construction de base pour créer des flux.

inject node :utilisé pour déclencher manuellement un flux en


cliquant sur le bouton du nœud dans l'éditeur ou déclencher
automatiquement un flux à intervalles réguliers.
debug node : utilisé pour afficher des messages dans slidebar.
trois types de base
utilisé pour exécuter du code JavaScript sur les messages qui lui
sont transmis.

utilisé pour prendre en charge l'interaction avec le courrier


électronique et avec Twitter. Ils permettent aux flux d'envoyer ou
de recevoir des e-mails ou des tweets.
sont l’ensemble de nœuds par défaut car il cible des appareils tels
que le Raspberry Pi, sont limités et se concentrent sur le stockage autres ensembles de
basé sur des fichiers. nœuds qui sont une
utilisé comme nœuds de segmentation pour déterminer l’analyse
d'un message entrant en fonction des mots utilisés dans le
combinaison de
message, par exemple, un e-mail ou un tweet. nœuds d'entrée, de
utilisé comme nœuds exécutables pour exécuter une commande sortie et de fonction
72 :
système et renvoyer sa sortie.
Introduction au Node-RED

Node-RED flow editor

Input Nodes

 Les nœuds d'entrée sont des nœuds qui sont utilisés pour démarrer le flux.
 Il y a sept nœuds d'entrée de base qui sont installés par défaut.
 Vous devez inclure au moins un nœud d'entrée dans votre flux de messages.
Exemples:
Inject Node injecte un horodatage (timestamp) ou un texte configuré par
l'utilisateur dans un message. Il peut être configuré pour injecter manuellement, à
un intervalle défini ou à des heures spécifiques.

Mqtt node s'abonne à un MQTT broker et écoute un sujet (topic). Il renvoie


toutes les données publiées sur le sujet en tant que nouveau message.

73
Introduction au Node-RED

Node-RED flow editor

Input Nodes

 Les nœuds d'entrée couvrent les mécanismes de communication de base que les
applications IoT sont susceptibles d'utiliser. Ces applications vont des protocoles
Internet de niveau inférieur tels que UDP et TCP au HTTP de niveau supérieur et
au MQTT de publish/subscribe

Inject Nodes sont des nœuds d'entrée utilisés pour déclencher un flux, ce que
vous pouvez faire en cliquant sur le bouton du nœud dans l'éditeur ou en mettant
en place une configuration pour déclencher automatiquement des flux à
intervalles réguliers. Ces nœuds incluent un bouton sur leur bord gauche afin que
vous puissiez avoir une certaine interaction avec le nœud depuis l'éditeur.

 Node-Red fournit à la fois un nœud MQTT subsctribe (input) et publish (output).


La configuration de ces nœuds est presque identique car la partie principale de la
configuration concerne la connexion existante du client
74
Introduction au Node-RED

Node-RED flow editor

Output Nodes

 Les nœuds de sortie sont essentiellement les images miroir de l'ensemble des
nœuds d'entrée et fournissent un moyen d'envoyer des données sur le même
ensemble de protocoles.
 Vous devez inclure au moins un nœud de sortie pour propager les messages aux
nœuds suivants que vous connectez au sous-flux

Les nœuds de sortie sont les points de terminaison du flux. Ils sont utilisés pour
envoyer des données à un service externe ou à un pin d’un composant, et ils
peuvent générer des messages de réponse

Exemple:
Debug node fournit un moyen simple d'afficher les messages, qui seront affichés
dans le volet de débogage.

75
Introduction au Node-RED

Node-RED flow editor

function Nodes

 Le type function node contient divers nœuds qui exécutent des fonctions de
traitement spécifiques.

Les fonctions varient de simples nœuds de delay et de commutation au nœud de


fonction programmable qui peut être adapté à presque tous les besoins de
programmation.
Ils ont utilisés lorsqu'il n'y a pas de nœud existant dédié à votre tâche.

Exemple:
Function node permet au code JavaScript d'être exécuté sur les messages qui lui
sont transmis.

 Switch node achemine les messages en fonction de leurs propriétés. 76


Introduction au Node-RED

Node-RED flow editor

Node-RED flow components


 Wires :

 Ces fils de connexion définissent les connexions entre les points de terminaison
d'entrée et de sortie des nœuds dans un flux.
Les messages ont généralement une propriété de charge utile (payload), qui est la
propriété par défaut avec laquelle la plupart des nœuds fonctionnent pour afficher
les données.
Node-RED ajoute également une propriété appelée _msgid, qui est un identifiant 77
pour le message qui peut être utilisé pour suivre sa progression à travers un flux.
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT


 IBM fournit des nœuds Node-RED pour vous aider à connecter vos appareils,
passerelles et applications à Watson IoT Platform et à créer rapidement des
solutions IoT

Exemples:
 Watson IoT Node est une paire de nœuds permettant de connecter vos appareils
ou passerelles à Watson IoT Platform. Les appareils ou les passerelles peuvent
utiliser ces nœuds pour envoyer des événements et recevoir des commandes.

oLe nœud d'entrée reçoit les commandes du device de la plate-forme IBM Watson
Internet of Things (Watson IoT Platform).
oLe nœud de sortie envoie des événements du device à Watson IoT Platform.

78
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

IBM IoT App Node est une paire de nœuds permettant de connecter vos
applications à Watson IoT Platform. Les applications peuvent utiliser les nœuds
pour recevoir des événements du device et renvoyer des commandes au device:

o Le nœud d'entrée reçoit les événements du périphérique (device).


o Le nœud de sortie envoie des commandes de périphérique et des événements de
périphérique au nom d'un périphérique

79
Introduction au Node-RED

Node-RED flow editor

Exemple de Node-RED flow

On désire simuler un appareil de température à l'aide de Watson IoT Node, qui
envoie les relevés de température à Watson IoT Platform toutes les secondes.
Une application s'abonne à ces événements de température et déclenche une
commande d'arrêt lorsque la température dépasse les 30°C

Device connecting part:

1/Le nœud d'injection de l'entrée, qui est configuré avec un temps d'intervalle de 1
seconde.
2/Le nœud de fonction génère des nombres aléatoires (comme un simulateur de
température ; dans un environnement de production, les nœuds lisent à partir de
capteurs). 80
3/Le nœud de sortie Watson IoT Platform envoie la température à Watson IoT
Platform.
Introduction au Node-RED

Node-RED flow editor

Exemple de Node-RED flow

Watson IoT Platform connecting part :

1/Le nœud d'entrée ibmiot obtient la lecture.


2/Le nœud de fonction extrait la valeur de température de la charge utile.
3/Le nœud de débogage imprime la valeur de température extraite dans le volet de
débogage.
81
Introduction au Node-RED

Node-RED flow editor

Import and Export flows

 Les flux peuvent être importés et exportés depuis l'éditeur en utilisant le format
JSON.

Compact Formatted JSON:


JSON: sur plusieurs lignes
une seule ligne avec une indentation
82
de JSON sans complèteplus facile
espaces à lire.
Introduction au Node-RED

Node-RED Palette Manager

 Comme tous les nœuds ne se trouvent pas dans la palette, vous pouvez utiliser
le gestionnaire de palettes pour installer de nouveaux nœuds dans la palette.
 Vous pouvez y accéder sous l'onglet Palette sous User settings.
 Le gestionnaire de palettes comporte deux onglets :
oNœuds
oInstall

83
Introduction au Node-RED

Node-RED Palette Manager

 Node tab affiche les modules Installer tab affiche les modules
installés dans le runtime : disponibles qui peuvent être installés :

Chaque entrée de l'onglet Nœuds Vous pouvez utiliser l'onglet Installer pour
affiche le nom et la version du rechercher les modules disponibles et les
module ainsi qu'une liste des types installer.
de nœuds individuels fournis par le
module. Pour rechercher un module, saisissez son
nom dans la barre de recherche. Les
Il existe des options pour résultats de la recherche affichent les détails
supprimer, désactiver ou mettre à des modules, y compris la date de leur
niveau chaque module. Si un nœud dernière mise à jour et un lien vers sa
est utilisé dans le flux, il ne peut pas documentation. Il peut être installé en
être supprimé ou désactivé. cliquant sur Installer.

84
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

85
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

Exemple:

API key

Note:
API Key est utilisé par l’application Node-RED pour accéder aux données envoyées
par le device.
86
Installer node-red-contrib-ibm-watson-iot à partir de Node-RED palette
Installer node-red-contrib-play-audio à partir de Node-RED palette
Installer node-red-contrib-scx-ibmiotapp
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

- Expliquer le fonctionnement de ce flux 1 en se basant sur les différents noeuds

- Expliquer le fonctionnement de ce flux 2 en se basant sur les différents noeuds

87
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

-Éléments de corrections:

88
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

flux 1

89
Introduction au Node-RED

Node-RED flow editor

Node-RED aide pour les applications IoT

flux 2

90
 IoT Platform Communication Protocol
HTTP protocol overview
MQTT protocol overview
HTTP and MQTT protocol comparison

91
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)


 HTTP est un protocole un protocole de communication client-serveur, niveau
application, pour les systèmes d'information hypermédia distribués et
collaboratifs.
 Il s'agit d'un protocole générique qui peut être utilisé pour de nombreuses tâches
au-delà de l'hypertexte, telles que name servers et les systèmes de gestion d'objets
distribués en étendant ses méthodes de requête, ses codes d'erreur et headers.
 Le protocole HTTP possède les composantes suivantes:
 Methods (verbs):
GET (read),
POST (create),
PUT (update),
DELETE (delete),
PATCH (Submits a partial modification to a resource. If you only need to
update one field for the resource, you may want to use the PATCH method)
Error codes (status codes):
▪1XX: Information
▪2XX: Success
92
▪3XX: Redirection
▪4XX: Client Error
▪5XX: Server Error
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)

Headers:
Les headers sont les composants des sections d'en-tête pour les demandes et
les réponses. Un en-tête comprend un nom et des valeurs. Voici deux exemples
d'en-têtes :
▪Content-Type : Décrit le type de média du corps des méthodes POST et PUT.
▪Content-Length : décrit la longueur du corps de la réponse en octets.
Les développeurs peuvent définir leurs propres en-têtes.

93
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)


Client (User)~physical entity
Modèle Client/Server (connected sensor), mobile device,
or another application that uses a
common programming language.
 Le terme client/serveur décrit un
type de traitement distribué dans
lequel une application est divisée en
deux parties. Chaque partie peut se
trouver sur des systèmes
d'exploitation distincts, mais elles
fonctionnent ensemble pour fournir
un service à l'utilisateur.

Back end Service~databases ou


94
applications dévelopées en C, Java,
Python, C++, ou JavaScript
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)

Modèle Client/Server

Les microservices, également connus sous le nom d'architecture de


microservices, sont un style architectural qui structure une application en tant
qu'ensemble de services.
Une application qui appelle une autre application est le principe de base des
microservices, qui est un modèle d'architecture que vous pouvez utiliser pour
créer un réseau distribué de services à couplage lâche qui communiquent entre
eux à l'aide du protocole HTTP.

95
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)

HTTP Request et Response fournit une vue simplifiée des protocoles TCP/IP.
Voici un exemple de la façon dont le modèle à sept couches peut simplifier et
masquer la complexité des couches sous-jacentes.

 Le client initie toujours la connexion.


Si le client souhaite récupérer ou publier quelque chose à partir du back-end, le
96
client doit toujours initier la connexion.
 Une fois que le serveur a répondu avec un code d'état, la connexion est
terminée
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)

 HTTP Request:

97
IoT Platform Communication Protocol

HTTP (Hypertext Transfer Protocol)

98
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

 Il s'agit d'un protocole de transport de messagerie de publication et d'abonnement.

99
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Components
 Topic: c’est l’endroit vers ou depuis lequel un appareil souhaite placer ou
récupérer un message.

 Le topic fait référence à une chaîne de caractère UTF-8 que le broker utilise pour
filtrer les messages pour chaque client connecté.
 Le topic se compose d'un ou plusieurs niveaux de topics. Chaque niveau de
rubrique est séparé par une barre oblique (séparateur de niveau).
Le client peut s'abonner au topic exact ou utiliser un caractère générique. Ex: un
abonnement à myhome/+/temperature entraîne l'envoi de tous les messages au
topic myhome /living-room/temperature et à tout topic avec une valeur arbitraire à
la place de living-room, par exemple house/cuisine/temperature .
100
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Components
Le signe + est un caractère générique à un seul niveau qui autorise des valeurs
arbitraires pour une seule hiérarchie.
 Si vous devez vous abonner à plus d'un niveau, par exemple à l'intégralité de la
sous-arborescence, il existe également un caractère générique à plusieurs niveaux
(#). Vous pouvez l'utiliser pour vous abonner à tous les niveaux hiérarchiques sous-
jacents. Ex: house/# s'abonne à tous les topics commençant par house.

Un broker : est le serveur qui gère la transmission de données entre les clients.
Il reçoit tous les messages des clients, puis achemine les messages vers les clients de
destination appropriés. Il existe de nombreux broker qui implémentent le protocole
MQTT. L'un des plus populaires et des plus couramment utilisés est le courtier
Mosquito.

Message : les données qu'un appareil reçoit « when subscribing" d'un topic ou
envoie « when publishing" à un topic
Publish: le processus qu'un appareil utilise pour envoyer son message au broker.
101
Subscribe: est le processus qu'un appareil utilise pour récupérer un message du
broker
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

Publish and subscribe pattern

 Le modèle publish/subscribe offre une alternative à l'architecture client/serveur


traditionnelle.
 Dans le modèle client-serveur, un client communique directement avec un point de
terminaison.
 Le modèle publish/subscribe découple le client qui envoie un message (publisher)
du ou des clients qui reçoivent les messages (subscribers). Les publishers et les
subscribers ne se contactent jamais directement. En fait, ils ne sont même pas
conscients que l'autre existe. La connexion entre eux est gérée par un troisième
composant: le broker
 Le travail du broker est de filtrer tous les messages entrants et de les distribuer
correctement aux abonnés. L'éditeur envoie le message au courtier et tous les abonnés
sont connectés au même courtier.

102
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)


Subscribers
Publish and subscribe pattern

Le publisher (dans ce cas,


un capteur de température)
envoie les informations de Publisher Broker
température au broker
MQTT.
 Il y a trois abonnés :
- Mobile, qui est contrôlé
par un ingénieur
d'exploitation.
-Un actionneur qui
contrôle une autre
machine.
-Un tableau de bord web
qui représente la boucle
de contrôle.
103

N.B: Lorsque le capteur envoie ses informations à un topic prédéfini (dans ce cas,
CAI/TEMP), tous les abonnés a à ce topic reçoivent une copie de ce message
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

Publish and subscribe pattern

1
2
3
4

5
6

104
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

 Un client MQTT fournit trois types de QoS pour la livraison des publications à
IBM MQ (messaging and queuing middleware) et au client MQTT :
• Au plus une fois: At most once:
• Au moins une fois: At least once
• Exactement une fois: Exactly once:
Lorsqu'un client MQTT envoie une demande à IBM MQ pour créer un
abonnement, la demande est envoyée avec la QoS:
oAt most once: QoS=0: le plus rapide mais le moins fiable.
oAt least once: QoS=1
oExactly once: QoS=2 : le plus lent mais le plus fiable.

105
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

106
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

At most once QoS=0


Ce niveau de service garantit une livraison au mieux. Il n'y a aucune garantie de
livraison.
 Le destinataire n'accuse pas la réception du message, et le message n'est pas
stocké et retransmis par l'expéditeur. Le message peut être perdu si le client est
déconnecté ou si le serveur échoue.
 QoS0 est le mode de transfert le plus rapide et souvent appelé « fire and forget »

107
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

At least once QoS=1


QoS=1 est le mode de transfert par défaut.
QoS=1 garantit qu'un message est remis au moins une fois au destinataire.
L'expéditeur stocke le message jusqu'à ce qu'il reçoive un paquet PUBACK
(acknowledgment) du destinataire qui accuse réception du message.
 Si l’éxpéditeur ne reçoit pas de PUBACK, le message est envoyé à nouveau avec
le flag DUP (duplicate) activé jusqu'à ce qu'un accusé de réception soit reçu.
Il est alors possible qu'un message soit envoyé ou remis plusieurs fois
 Le message doit être stocké localement chez l'expéditeur et le destinataire jusqu'à
ce qu'il soit traité.

108
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

At least once QoS=1


Le message est supprimé du destinataire après son traitement.
Si le destinataire est un broker, le message est publié auprès de ses abonnés.
Si le destinataire est un client, le message est remis à l'application de
l'abonné.
Une fois le message supprimé, le destinataire envoie un accusé de réception à
Une
l'expéditeur.
Le message est supprimé de l'expéditeur après avoir reçu un accusé de réception
du destinataire.

109
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

Exactly once QoS=2


QoS=2 est le plus haut niveau de service dans MQTT. Ce niveau garantit que
chaque message n'est reçu qu'une seule fois par les destinataires prévus.
Le message doit être stocké localement chez l'expéditeur et le destinataire jusqu'à
ce qu'il soit traité.
QoS 2 est le niveau de QoS le plus sûr et le plus lent.
QoS
Ce niveau délivre le message avec deux paires de paquets
Le message peut être traité au niveau du récepteur après la première
transmission.
 L'expéditeur et le destinataire utilisent l'identifiant de paquet du message
PUBLISH d'origine pour coordonner la livraison du message.

110
publish complete
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

Exactly once QoS=2


Dans la première paire de transmissions, l'expéditeur transmet le message et
obtient un accusé de réception du destinataire qu'il a stocké le message. Si
l'expéditeur ne reçoit pas d'accusé de réception, le message est à nouveau envoyé
avec le drapeau DUP activé jusqu'à ce qu'un accusé de réception soit reçu.
Dans la deuxième paire de transmissions, l'expéditeur indique au destinataire
Dans
qu'il peut terminer le traitement du message PUBREL. Si l'expéditeur ne reçoit pas
d'accusé de réception du message PUBREL, le message PUBREL est renvoyé
jusqu'à ce qu'un accusé de réception soit reçu. L'expéditeur supprime le message
qu'il a enregistré lorsqu'il reçoit l'accusé de réception du message PUBREL.
Le récepteur peut traiter le message dans la première ou la deuxième phase s'il. Si
le destinataire est un broker, il publie le message aux abonnés.
Si le destinataire est un client, il délivre le message à l'application abonnée
Le destinataire renvoie un message d'achèvement à l'expéditeur indiquant qu'il a
terminé de traiter le message. 111
IoT Platform Communication Protocol

MQTT (Message Queuing Telemetry Transport)

MQTT Quality of Service (QoS)

112
IoT Platform Communication Protocol

HTTP vs MQTT

 La plupart des protocoles appartiennent à l'une des deux catégories suivantes :


• Client/serveur, comme HTTP.
• Publication et abonnement, comme MQTT.
 Lorsque vous concevez un système IoT, vous devez tenir compte du protocole
que vous utilisez :
• HTTP/ 1.1 est le protocole le plus répandu utilisé pour le Web. Il est limité à
une utilisation avec une solution IoT car il ne va que dans un seul sens, qui est
client-serveur. De plus, la communication se termine lorsque la demande est
satisfaite.
• MQTT 3.1 est conçu pour l'IoT et sa communication est peu fiable. De plus,
l'appareil initie toujours la connexion sortante, qui est intrinsèquement sécurisée.
• MQTT est largement pris en charge par de nombreuses bibliothèques et
fournisseurs. De nombreux brokers open source et commerciaux de MQTT sont
disponibles, tels que HiveMQ, Eclipse Mosquitto, IBM WebSphere MQ et
RabbitMQ. Il existe également une version personnalisée de MQTT fournie par
Watson IoT. 113
 Solutions IoT avec REST API
Application programming interface overview
Watson IoT Platform HTTP REST API
Accessing Watson and Cloudant services with REST APIs
Enhancing an IoT solution with Watson AI

114
Solutions IoT avec REST API

API Concept
 Une interface de programmation d'applications (API) est un intermédiaire
logiciel qui permet à deux applications de communiquer.

Exemple: Rechercher un hôtel (pays, arrivée, départ, nombre de personnes,


nombre de chambres) ------Search

115
Solutions IoT avec REST API

API Concept

Web services API

Les services Web API:


Simple Object Access Protocol (SOAP): un protocole qui définit la
méthode de communication et la structure des messages. Le format de
transfert de données est XML.
Representational State Transfer (REST): REST est un ensemble de
principes architecturaux. Le format de données le plus utilisé est JSON ou
XML. Souvent, le service offre un choix, ce qui signifie que le client peut
demander l'un ou l'autre format de données en incluant « json » ou « xml »
dans le chemin d'URL ou dans un paramètre d'URL.

URI (Uniform Resource Identifier) identifie la ressource à récupérer ou à mettre à


jour L'URI décrit l'emplacement réseau de la ressource.
L'URL (Uniform Resource Locator) désigne communément l'adresse web d'un116 site
Internet
Solutions IoT avec REST API

API Concept

REST API

REST est un style d'architecture permettant de créer des ressources sur le World
Wide Web.
Les ressources Web sont les documents, images et fichiers de script HTML
REST peut récupérer, mettre à jour ou supprimer une ressource à l'aide de
méthodes HTTP telles que : GET, POST et DELETE

117
Solutions IoT avec REST API

API Concept

REST API

118
Solutions IoT avec REST API

API Concept

REST API

119
Solutions IoT avec REST API

API Concept

Solutions IoT et REST API

120
Solutions IoT avec REST API

API Concept

Solutions IoT et REST API

 On utilise Watson IoT Platform pour l'enregistrement des appareils. Cependant,


ce processus n'est pas efficace pour une solution IoT de production, telle que
l'automatisation des appareils d'usine, où le nombre d'appareils qui doivent être
enregistrés est important.
Les API rendent ce processus plus simple et plus rapide.

121
Solutions IoT avec REST API

API Concept

Solutions IoT et REST API

122
Solutions IoT avec REST API

APIs Watson IoT Platform HTTP REST API

 L'API REST d'IBM Watson IoT Platform simplifie l'accès aux appareils et aux
données IoT, ce qui permet aux développeurs de créer des applications
analytiques, des tableaux de bord et des applications IoT mobiles.

 Elle permet aux développeurs de manipuler plus facilement différentes


opérations de gestion des appareils lors de l'accès et du stockage des données de
l'appareil en plus de la connexion des périphériques de passerelle.

123
Solutions IoT avec REST API

API Concept

Solutions IoT et REST API

 Il existe deux types de HTTP APIs qui peuvent être utilisées avec Watson IoT
Platform :
o API HTTP REST pour créer, mettre à jour, répertorier et supprimer des
appareils.
o HTTP Messaging APIs pour envoyer des informations sur les événements
des appareils vers le cloud et accepter les commandes provenant des
applications dans le cloud.

124
Solutions IoT avec REST API

APIs Watson IoT Platform HTTP REST API

 HTTP REST API Watson IoT Platform prend en charge les capacités et les
fonctions suivantes pour les applications :

Récupération d'informations sur l'organisation


Opérations sur les devices (liste, ajout et suppression)
Opérations de gestion de l'utilisation (récupération de la quantité totale de
données utilisées)
Publication d'événements de périphérique (HTTP messaging APIs)
Service status querying (récupérer les états du service par organisation)
Opérations de type d'appareil (lister, créer, supprimer, afficher les détails et
mettre à jour)
Opérations de l'appareil (lister, ajouter, supprimer, afficher les détails, mettre
à jour, afficher l'emplacement et afficher les informations de gestion)

125
Solutions IoT avec REST API

APIs Watson IoT Platform HTTP REST API

Opérations de diagnostic de l'appareil (effacer les journaux, récupérer les


journaux, ajouter des informations de journal, supprimer des journaux,
obtenir des journaux spécifiques, effacer des codes d'erreur, obtenir des codes
d'erreur de périphérique et ajouter des codes d'erreur)
Détermination des problèmes de connexion (lister les événements de journal
de connexion de périphérique)
Cache du dernier événement (afficher le dernier événement pour un
périphérique spécifique)
Opérations de demande de gestion d'appareils (répertorier les demandes de
gestion d'appareils, lancer des demandes, effacer l'état de la demande, obtenir
les détails d'une demande, répertorier tous les états de demande par appareil
et obtenir l'état de la demande pour un appareil spécifique)

126
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs

Watson and APIs


 La documentation Watson fournit des références d'API à chaque service qui
peut être intégré via des API ou un kit de développement logiciel (SDK).

127
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs

Watson and APIs

Exemple: APIsWatson Visual Recognition APIs

128
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs

The Cloudant service on IBM Cloud

 Cloudant est un produit logiciel IBM, qui est principalement fourni en tant que
service basé sur le cloud.
La base de données Cloudant est un service doté d'API pour se connecter à
Watson IoT.
Il s'agit également d'un service de base de données non relationnel et distribué
 Il s'agit d'une base de données de documents JSON entièrement gérée
 Cloudant utilise une API REST pour fournir un accès simple et basé sur le Web
aux données Cloudant.

129
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs

The Cloudant service on IBM Cloud

Documents dans Cloudant


 Les documents sont des objets JSON.
 Les documents Cloudant sont des conteneurs pour les données.
 Tous les documents dans Cloudant doivent contenir les champs uniques
suivants :
Un champ identifiant (_id) sert de clé de document. Il peut être créé par
l'application ou généré automatiquement par Cloudant.
Un champ revision number (_rev) est automatiquement généré et utilisé en
interne par la base de données Cloudant comme numéro de révision.
*Un numéro de révision est ajouté à vos documents par le serveur lorsque
vous les insérez ou les modifiez.
*Vous devez spécifier le dernier _rev lors de la mise à jour d'un document ou
votre demande échoue.
*Le champ _rev vous aide également à éviter les conflits d'état des données.130
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs

The Cloudant service on IBM Cloud

Exemple de database in Cloudant


L'exemple de base de données Cloudant s'appelle my_sample_db et se trouve
dans le répertoire suivant

131
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs


The Cloudant service on IBM Cloud
Reading a document in Cloudant
Pour accéder à un document avec l'API Cloudant, exécutez une requête GET:
GET HTTP REST request

132
Solutions IoT avec REST API

Accessing Watson and Cloudant services with REST APIs


The Cloudant service on IBM Cloud

Viewing all documents


Pour afficher tous les documents qui se trouvent dans une base de données,
exécutez une requête GET

index

133

 include_docs : optional parameter that is named to return the contents of the


documents (payload) in addition to the _id and _rev
Solutions IoT avec REST API

Enhancing an IoT solution with Watson AI

134
Solutions IoT avec REST API

Enhancing an IoT solution with Watson AI

135
Application: CPU Usage

136
Application

137
Application

138
Application

139
Application

140
Application

141
Application

142

Vous aimerez peut-être aussi