Semplicità e adattabilità del connettore Eclipse Mosquitto

Negli ultimi anni lo sviluppo tecnologico ha aperto nuove strade e nuovi orizzonti da esplorare.
Tra i tanti aspetti interessanti che si stanno consolidando, sicuramente l’IoT (Internet of Things) e i microservizi sono pronti a giocare un ruolo importante nei prossimi anni.
Anche se ancora oggi sono considerati come aree diverse nell’IT, prima o poi, questi due mondi saranno considerati due facce della stessa medaglia.
Entrambi, infatti, si occupano di sistemi distribuiti dove le principali differenze sono rappresentate dai protocolli di comunicazione utilizzati: i microservizi di solito si occupano del protocollo HTTP, mentre l’IoT è basato su altri protocolli come MQTT e CoAP.

In particolare, il protocollo MQTT è stato pensato e progettato appositamente per la comunicazione “machine to machine”. Le sue caratteristiche principali sono la semplicità e la leggerezza, caratteristiche ideali in contesti in cui è presente una piccola impronta di codice e una disponibilità di banda limitata.
Proprio grazie alle sue caratteristiche, MQTT sembra essere diventato uno standard de facto per la comunicazione tra dispositivi e quindi più in generale per tutto l’ecosistema IoT.
Il protocollo MQTT si basa su un classico meccanismo di pubblicazione e sottoscrizione (publish and subscribe). In questo pattern ci sono tre diversi soggetti che entrano in gioco nella comunicazione:
– Il publisher è un dispositivo (ad esempio un sensore) che desidera pubblicare dei messaggi;
– Il subscriber è un dispositivo (ad esempio un PC, uno smartphone) che desidera ricevere dei messaggi;
– Il broker è un software che si inserisce nel mezzo della comunicazione e che si occupa di gestire correttamente tutto lo scambio dei messaggi tra publisher e subscriber.

A questo punto potrebbe sorgere una domanda: è possibile sfruttare contemporaneamente le potenzialità del protocollo MQTT e la leggerezza e adattabilità delle architetture a microservizi?
Il lavoro realizzato e oggetto di questo articolo nasce proprio dall’idea di avvicinare questi due aspetti, e si è concretizzato nella realizzazione di un connettore con il broker Mosquitto per il linguaggio Jolie.
Il lavoro è stato svolto nell’ambito di un tirocinio curricolare per l’Università di Bologna svolto presso Imola Informatica, che mi ha messo a disposizione gli strumenti, il tempo e le preziosissime competenze di persone come Andrea Briganti e Claudio Guidi.
Siamo quindi ora in grado di utilizzare Jolie per costruire servizi e microservizi che comunicano tra di loro utilizzando il protocollo MQTT.
Il connettore è stato implementato in modo tale da offrire quattro API agli sviluppatori. Tramite queste quattro chiamate è possibile realizzare sia client di tipo publisher che client di tipo subscriber. E’ inoltre possibile settare tutte le opzioni di connessione possibili con il broker Mosquitto e procedere allo scambio di messaggi.
Ovviamente non poteva mancare l’attenzione sulla sicurezza della comunicazione. A questo proposito è stata implementata anche la possibilità di scambiare messaggi criptati con il protocollo SSL.

L’obiettivo prefissato di connettere il mondo IoT e i microservizi è stato quindi raggiunto. Trovate un approfondimento come maggiori dettagli in “Eclipse Mosquitto Connector for Jolie Programming Language” su Dzone.

I più interessati possono inoltre accedere al repository di GitHub in cui è presente il connettore (pronto all’uso), tutta la relativa documentazione e anche alcuni interessanti esempi applicativi dell’utilizzo del connettore (tra cui una piccola Web Application che permette a più utenti di chattare sfruttando il protocollo MQTT).
https://github.com/jolie/jolie-mosquitto

Sono all’ultimo anno del corso di studi di Informatica per il Management presso l’Università di Bologna. Dopo una laurea in Ingegneria Energetica, all’età di 25 anni ho scelto di rischiare e rimettermi in gioco completamente ricominciando da zero e iscrivendomi alla facoltà di Informatica per il Management. Durante l’estate 2020 ho svolto un tirocinio curricolare presso Imola Informatica in cui ho collaborato alla realizzazione di un connettore per il broker Mosquitto per il linguaggio Jolie. Attualmente, mentre finisco il percorso accademico, sto collaborando con il Laboratorio di Imola Informatica nella realizzazione di alcuni interessanti progetti.