Mise en réseau de l'IdO : Modèles de communication, protocoles et systèmes de messagerie

L'IdO est une question de communication de données, même au niveau de la couche applicative. Ce billet explore trois concepts clés qui rendent possible la circulation transparente des données dans les systèmes IdO :

  1. Modèles de communication
  2. Protocoles de communication
  3. Systèmes de messagerie avancés

Examinons ce que chaque concept apporte à une communication efficace des données de l'IdO.

Mise en œuvre de modèles de communication efficaces pour les applications IoT

L'une des premières décisions à prendre concernant un système IdO est de savoir quels nœuds doivent communiquer avec quels autres nœuds. Sur un réseau IdO, la communication peut se faire d'un nœud à un autre nœud (point à point), d'un nœud à plusieurs nœuds (ou de plusieurs nœuds à un nœud), ou de plusieurs nœuds à de nombreux autres nœuds.

Une fois l'architecture du réseau choisie, l'étape suivante consiste à définir quand et comment les données seront transmises d'un nœud à l'autre. Les modèles de communication les plus courants sont l'envoi de données en réponse à une demande ou la diffusion à tout nœud souhaitant les recevoir.

Modèle demande-réponse

Quiconque a déjà utilisé un téléphone ou Internet connaît la communication demande-réponse. Dans ce modèle, un point d'extrémité émet une demande d'information et un autre nœud y répond.

La communication demande-réponse est bien adaptée aux communications point à point lorsque l'entité qui répond est connue de l'entité qui demande (comme sur un réseau téléphonique). Elle est également efficace lorsque de nombreuses entités requérantes doivent communiquer avec une entité répondante, comme dans les architectures client-serveur sur lesquelles repose une grande partie de l'internet actuel. Dans une architecture client-serveur, les informations sont centralisées en un seul endroit (un serveur) et tout nœud (client) connaissant cet endroit peut lui demander des informations.

Un modèle demande-réponse exige que les clients demandeurs sachent où se trouve l'information et quand elle est disponible. Par conséquent, il est difficile à mettre en œuvre dans les communications de plusieurs à plusieurs où les informations circulent plus librement et sont décentralisées, ce qui est un scénario courant dans les réseaux IoT pilotés par les événements.

Dans ces situations, un modèle de publication et d'abonnement (PubSub) est plus approprié.

Modèle de publication et d'abonnement

Les modèles de publication et d'abonnement surmontent les problèmes d'évolutivité des implémentations demande-réponse en diffusant des données sous forme de messages classés par thèmes.

Dans un réseau PubSub, les « éditeurs » (expéditeurs de messages) diffusent des messages relatifs à un sujet sur le réseau et les nœuds abonnés (récepteurs de messages) s'inscrivent pour recevoir toutes les mises à jour relatives à ce sujet. Les déploiements PubSub peuvent inclure une technologie appelée courtier de messages, qui aide à gérer l'échange de données entre les applications, les systèmes et les services abonnés à un sujet.

Dans certains cas, les courtiers de messages effectuent également la conversion des protocoles pour les déploiements IoT qui utilisent HTTP, MQTT, AMQP, CoAP et/ou d'autres protocoles. Cela améliore la transparence de la communication et la flexibilité architecturale dans les réseaux IoT hétérogènes, en particulier lorsque le déploiement plug-and-play de nœuds distribués est nécessaire.

Protocoles de communication IoT populaires

Différents protocoles de communication sont mieux adaptés à différentes architectures de réseau et à différents modèles de communication. Ces protocoles, dont certains sont mentionnés ci-dessus, décrivent la manière dont les données sont transmises sur un réseau.

Quatre protocoles en particulier se distinguent par leur utilisation généralisée et leur efficacité dans les déploiements de l'IdO : HTTP, CoAP, MQTT et AMQP.

Un tableau détaillé est disponible ici.

HTTP (Hypertext Transfer Protocol) est un protocole bien établi pour la communication web. Son principal avantage est sa familiarité : il est aussi proche de l'universalité qu'un protocole peut l'être, les développeurs sont déjà à l'aise avec lui et il est pris en charge par une multitude d'outils et de bibliothèques existants.

HTTPS offre également une grande sécurité grâce au cryptage des données, ce qui réduit le risque de falsification. Toutefois, cette sécurité a pour contrepartie une augmentation de la puissance de traitement et des besoins en mémoire, ce qui peut poser problème pour les appareils IoT dont les ressources sont limitées.

Le protocole CoAP (Constrained Application Protocol) est conçu spécifiquement pour les nœuds et les réseaux limités, et utilise les modèles demande-réponse et PubSub. Il est léger, rapide et utilise une communication sans état, ce qui le rend idéal pour les réseaux à faible puissance et à perte.

CoAP utilise des en-têtes binaires efficaces pour réduire la transmission de données et fonctionne sur UDP, ce qui permet de transmettre des données sans établir de connexion au préalable. Cependant, il est moins mature que MQTT ou HTTP, ce qui peut se traduire par des ressources et des outils de développement limités.

MQTT (Message Queuing Telemetry Transport) est un protocole léger de publication et d'abonnement qui fonctionne sur TCP/IP. Très évolutif, il utilise un courtier qui permet à un appareil client de communiquer avec des milliers de points d'extrémité simultanément. Avec une faible surcharge de données, il est idéal pour les environnements où la bande passante est limitée ou coûteuse, et pour les appareils dont les ressources sont limitées.

MQTT offre des niveaux de qualité de service (QoS) configurables et une fonction de dernière volonté et testament (LWT) pour gérer les déconnexions. Cependant, sa flexibilité peut conduire à des erreurs de configuration et il manque de mécanismes de sécurité intégrés, s'appuyant plutôt sur la sécurité au niveau du réseau.

A titre d'exemple, la suite logicielle Clea IoT de SECO utilise MQTT comme composant de base pour la communication d'appareil à appareil et d'appareil à nuage. Le module d'orchestration des données de la plateforme, Astarte, s'appuie sur le protocole MQTT pour communiquer avec les appareils de terrain et les connecter au nuage.

AMQP (Advanced Message Queuing Protocol) est un protocole de publication et d'abonnement comme MQTT, mais il prend en charge un courtier de messages avancé qui permet un routage plus sophistiqué et une meilleure qualité de service. L'une des façons d'y parvenir est d'utiliser une technique appelée mise en file d'attente des messages, qui garantit que les messages sont livrés dans le bon ordre.

Dans un réseau AMQP, les messages sont publiés dans un échange à l'intérieur du courtier AMQP. L'échange applique ensuite des règles de routage pour transmettre les messages aux files d'attente. Un déploiement AMQP peut contenir plusieurs échanges et files d'attente de messages, qui se combinent avec d'autres capacités pour permettre des fonctionnalités telles que la persistance des messages, la communication transactionnelle et la flexibilité du réseau.

Toutefois, ces fonctionnalités et capacités ont un prix. AMQP a une empreinte réseau plus importante et nécessite plus de ressources informatiques que des protocoles tels que MQTT et CoAP. Il est également plus complexe à configurer, à déployer et à gérer.

Le rôle des systèmes de messagerie avancés dans les applications IoT

Les systèmes de messagerie avancés tels que les courtiers MQTT et AMQP jouent un rôle crucial dans la gestion de la communication entre les nœuds IoT. RabbitMQ est un courtier de messages open-source qui peut collecter des messages à partir de plusieurs sources de flux et les acheminer vers différentes destinations clientes sur un réseau.

RabbitMQ est compatible avec de nombreux modèles de messagerie, notamment publish-subscribe et request-reply. Il est également capable de prendre en charge de gros volumes de messages et de s'adapter horizontalement à des déploiements distribués de grande envergure.

À cette fin, l'un des principaux atouts de RabbitMQ est de faciliter la communication entre des clients utilisant des protocoles différents. Par exemple, un message publié via MQTT peut être consommé par un client utilisant AMQP ou le protocole STOMP de type HTTP.

Les protocoles de messagerie pris en charge nativement par RabbitMQ sont les suivants

  • MQTT
  • AMQP
  • STOMP, un protocole de messagerie basé sur le texte
  • HTTPS, via STOMP ou des plugins MQTT qui communiquent à l'aide de WebSockets.

Parmi les autres avantages de RabbitMQ, citons la mise en file d'attente intégrée des messages (qui garantit que les messages sont délivrés dans le bon ordre), la prise en charge de la communication asynchrone qui permet aux périphériques d'envoyer et de recevoir des messages indépendamment, et une capacité de messagerie persistante qui empêche la perte de données et améliore la fiabilité des transferts de données.

Ces caractéristiques se combinent pour faire de RabbitMQ un système de messagerie polyvalent qui peut s'adapter à toute une série de cas d'utilisation. Dans le secteur industriel, RabbitMQ peut gérer les données télémétriques des capteurs pour des analyses en temps réel. Dans le domaine de la santé, il peut gérer des données provenant d'appareils portables afin de créer des alertes pour les patients. Dans les villes intelligentes, il peut faciliter la gestion du trafic en traitant les données provenant de divers capteurs.

Des solutions de mise en réseau IoT performantes

SECO propose une gamme complète de solutions matérielles et logicielles qui prennent en charge différents modèles de communication, protocoles IoT et systèmes de messagerie. Des puissants appareils de edge computing aux passerelles IoT polyvalentes, les produits SECO sont conçus pour répondre aux divers besoins de mise en réseau IoT de multiples applications et industries.

En s'appuyant sur les solutions de SECO, les entreprises peuvent mettre en œuvre des réseaux IoT robustes, évolutifs et efficaces qui stimulent l'innovation et apportent une valeur réelle. Que vous développiez une petite maison intelligente ou un grand système IoT industriel, SECO dispose des outils et de l'expertise nécessaires pour répondre à vos besoins en matière de réseau.

Pour en savoir plus sur la manière dont SECO peut accélérer le développement de votre infrastructure IoT et améliorer vos capacités de mise en réseau, contactez notre équipe d'experts IoT.