Panoramica della funzionalità del broker MQTT in Griglia di eventi di Azure

Griglia di eventi di Azure consente ai client MQTT di comunicare tra loro e con i servizi di Azure per supportare le soluzioni Internet delle cose (IoT).

La funzionalità del broker MQTT di Griglia di eventi di Azure consente di eseguire gli scenari seguenti:

  • Inserire dati di telemetria usando un criterio di messaggistica molti-a-uno. Questo criterio consente all'applicazione di scaricare il carico della gestione del numero elevato di connessioni con i dispositivi a Griglia di eventi.
  • Controllare i client MQTT usando il criterio di messaggistica richiesta-risposta (uno-a-uno). Questo criterio consente a qualunque client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.
  • Trasmettere avvisi a una flotta di client usando il criterio di messaggistica uno-a-molti. Questo criterio consente all'applicazione di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
  • Integrare dati dei client MQTT instradando i messaggi MQTT ai webhook e ai servizi di Azure tramite la funzionalità di recapito push HTTP. Questa integrazione con i servizi di Azure consente di creare pipeline di dati che iniziano con l'inserimento dati da dispositivi IoT.

È possibile trovare esempi di codice che illustrano questi scenari in questo repository.

Il broker MQTT è ideale per l'implementazione di scenari del settore automobilistico e della mobilità, tra gli altri. Vedere l'architettura di riferimento per scoprire come creare soluzioni sicure e scalabili per connettere milioni di veicoli al cloud usando i servizi di messaggistica e analisi dei dati di Azure.

Diagramma di alto livello di Griglia di eventi che illustra la comunicazione MQTT bidirezionale con i client di editori e sottoscrittori.

Concetti chiave

Di seguito è riportato un elenco di concetti chiave coinvolti nella funzionalità del broker MQTT di Griglia di eventi di Azure.

MQTT

MQTT è un protocollo di trasporto di messaggistica pubblicazione-sottoscrizione concepito per ambienti vincolati. Grazia alla sua efficienza, scalabilità ed affidabilità, rappresenta lo standard di comunicazione ideale per gli scenari IoT. Il broker MQTT consente ai client di pubblicare e sottoscrivere messaggi tramite MQTT v3.1.1, MQTT v3.1.1 su WebSockets, MQTT v5 e MQTT v5 tramite protocolli WebSockets. L'elenco seguente mostra alcune funzionalità principali del broker MQTT:

  • Funzionalità di MQTT v5:

    • Last Will and Testament (LWT) segnala ai client MQTT interruzioni improvvise di altri client MQTT. È possibile usare LWT per garantire un flusso di comunicazione prevedibile e affidabile tra i client MQTT durante le disconnessioni impreviste.
    • Le proprietà utente consentono di aggiungere coppie chiave-valore personalizzate nell'intestazione del messaggio per fornire un contesto più dettagliato sul messaggio. Ad esempio, includere lo scopo o l'origine del messaggio in modo che il destinatario possa gestirlo in maniera efficiente.
    • Il criterio richiesta-risposta consente ai client di sfruttare il criterio asincrono di richiesta-risposta standard specificando l'argomento della risposta e l'ID di correlazione nella richiesta, per consentire la risposta del senza una precedente configurazione.
    • L’intervallo di scadenza del messaggio consente di dichiarare al broker MQTT quando ignorare un messaggio non più pertinente o valido. Ad esempio, ignorare comandi o avvisi non aggiornati.
    • Gli alias argomento consentono ai client di ridurre le dimensioni del campo dell'argomento, riducendo i costi del trasferimento dei dati.
    • Dimensione massima dei messaggi consente ai client di controllare le dimensioni massime dei messaggi che possono gestire dal server.
    • Ricezione massima consente ai client di controllare la frequenza dei messaggi in base alle loro capacità, ad esempio velocità di elaborazione o capacità di archiviazione.
    • Avvio pulito e scadenza sessione consentono ai client di ottimizzare l'affidabilità e la sicurezza della sessione conservando i messaggi e le informazioni di sottoscrizione dei client per un intervallo di tempo configurabile.
    • I Riconoscimenti negativi consentono ai client di reagire in modo efficiente a diversi codici errore.
    • I Pacchetti di disconnessione inviati dal server consentono ai client di gestire in modo efficiente le disconnessioni.
  • Il broker MQTT aggiungerà altre funzionalità MQTT v5 in futuro per un maggiore allineamento alle specifiche MQTT. Gli elementi seguenti illustrano in dettaglio le differenze correnti tra le funzionalità supportate dal broker MQTT e le specifiche MQTT v5: will message, flag di conservazione, ordinamento dei messaggi e QoS 2 non sono supportati.

  • Funzionalità di MQTT v3.1.1:

    • Last Will and Testament (LWT) segnala ai client MQTT interruzioni improvvise di altri client MQTT. È possibile usare LWT per garantire un flusso di comunicazione prevedibile e affidabile tra i client MQTT durante le disconnessioni impreviste.
    • Le Sessioni persistenti garantiscono l'affidabilità mantenendo i messaggi e le informazioni di sottoscrizione del client quando un client si disconnette.
    • QoS 0 e 1 forniscono ai clienti il controllo sull'efficienza e l'affidabilità della comunicazione.
  • Il broker MQTT aggiungerà altre funzionalità MQTT v3.1.1 in futuro per un maggiore allineamento alle specifiche MQTT. Gli elementi seguenti illustrano in dettaglio le differenze correnti tra le funzionalità supportate dal broker MQTT e le specifiche MQTT v3,1.1: flag di conservazione, ordinamento dei messaggi e QoS 2 non sono supportati.

Altre informazioni sul broker MQTT e sulle limitazioni correnti.

Modello di messaggistica pubblicazione-sottoscrizione

Il modello di messaggistica pubblicazione-sottoscrizione fornisce una comunicazione scalabile e asincrona ai client. Consente ai client di scaricare il carico della gestione di un numero elevato di connessioni e messaggi al servizio. Tramite il modello di messaggistica pubblicazione-sottoscrizione, i client possono comunicare in modo efficiente usando criteri di messaggistica uno-a-molti, molti-a-uno e uno-a-uno.

  • Il criterio di messaggistica uno-a-molti consente ai client di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
  • Il criterio di messaggistica molti-a-uno consente ai client di scaricare il carico della gestione dell’elevato numero di connessioni al broker MQTT.
  • Il criterio di messaggistica uno-a-uno consente a qualunque client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.

Spazio dei nomi

Lo spazio dei nomi di Griglia di eventi è un contenitore di gestione per le risorse che supportano la funzionalità del broker MQTT, insieme alle risorse che supportano la funzionalità di recapito pull. Il client MQTT può connettersi al broker MQTT e pubblicare/sottoscrivere i messaggi, mentre il broker MQTT autentica i client, autorizza le richieste di pubblicazione/sottoscrizione e inoltra i messaggi ai client interessati. Altre informazioni sul concetto di spazio dei nomi.

Client

I client fanno riferimento a dispositivi o applicazioni IoT che pubblicano e sottoscrivono messaggi MQTT.

I dispositivi IoT sono oggetti fisici connessi a Internet per la trasmissione di dati di telemetria e la ricezione di comandi. Questi dispositivi possono essere sensori, appliance, computer o altri oggetti dotati di sensori e software incorporati. I sensori e il software consentono loro di comunicare e interagire tra loro e con l'ambiente circostante. Il valore dei dispositivi IoT risiede nella capacità di fornire dati e informazioni dettagliate in tempo reale, consentendo alle aziende e ai singoli utenti di prendere decisioni informate e migliorare l’efficienza e la produttività.

Le applicazioni IoT sono software progettati per interagire con i dati dei dispositivi IoT ed elaborarli. In genere includono componenti come la raccolta di dati, l'elaborazione, l'archiviazione, la visualizzazione e l'analisi. Queste applicazioni consentono agli utenti di monitorare e controllare i dispositivi connessi, automatizzare le attività e ottenere informazioni dettagliate dai dati generati dai dispositivi IoT.

Autenticazione client

Griglia di eventi dispone di un registro client in cui vengono archiviate informazioni sui client autorizzati a connettersi. Prima che un client possa connettersi, deve essere presente una voce per tale client nel registro dei client. Poiché un client si connette al broker MQTT, deve eseguire l'autenticazione con il broker MQTT in base alle credenziali archiviate nel registro delle identità. Il broker MQTT supporta i meccanismi di autenticazione client seguenti:

Controllo di accesso

Il controllo di accesso è critico per gli scenari IoT considerando l'enorme scala degli ambienti IoT e le problematiche di sicurezza uniche dei dispositivi vincolati. Griglia di eventi offre il Controllo degli accessi in base al ruolo (RBAC) tramite un modello di controllo degli accessi flessibile che consente di gestire l'autorizzazione dei client a pubblicare o sottoscrivere argomenti.

Data l'enorme scala degli ambienti IoT, l'assegnazione dell'autorizzazione per ogni client a ogni argomento è incredibilmente noiosa. Il controllo di accesso flessibile di Griglia di eventi gestisce questa problematica tramite il raggruppamento di client e argomenti in gruppi di client e spazi degli argomenti. Dopo aver creato gruppi di client e spazi degli argomenti, è possibile configurare un'associazione di autorizzazione per concedere a un gruppo di client l'accesso alla pubblicazione o alla sottoscrizione in uno spazio degli argomenti.

Diagramma del modello di controllo di accesso.

Gli spazi degli argomenti forniscono anche un controllo di accesso granulare, consentendo di controllare l'autorizzazione di ogni client di un gruppo di client a pubblicare o sottoscrivere il proprio argomento. Questo controllo di accesso granulare viene ottenuto usando le variabili nei modelli di argomento. Altre informazioni sul controllo di accesso.

Definizione dei percorsi di trasferimento

Griglia di eventi consente di instradare messaggi MQTT verso servizi di Azure o ai webhook per un'ulteriore elaborazione. Di conseguenza, è possibile creare soluzioni end-to-end usando i dati IoT per l'analisi dei dati, l'archiviazione e le visualizzazioni, tra gli altri casi d'uso. La configurazione del routing consente di inviare tutti i messaggi MQTT provenienti dai client a un argomento dello spazio dei nomi di Griglia di eventi o a un argomento personalizzato di Griglia di eventi. Quando i messaggi si trovano nell'argomento, è possibile configurare una sottoscrizione di eventi per usare i messaggi dell'argomento. Ad esempio, questa funzionalità consente di usare Griglia di eventi per instradare dati di telemetria dai dispositivi IoT a Hub eventi e quindi ad Analisi di flusso di Azure, per ottenere informazioni dettagliate dai dati di telemetria del dispositivo. Altre informazioni sul routing.

Diagramma del routing dei messaggi MQTT.

Integrazione del broker Edge MQTT

Griglia di eventi si integra con MQ di Azure IoT per collegare la capacità del broker MQTT perimetrale con la funzionalità del broker MQTT di Griglia di eventi di Azure nel cloud. MQ di Azure IoT è un nuovo broker MQTT distribuito per l’edge computing, in esecuzione nei cluster Kubernetes abilitati per Arc. Può connettersi al broker MQTT di Griglia di eventi con l'autenticazione di Microsoft Entra ID (in precedenza Azure Active Directory) tramite l'identità gestita assegnata dal sistema, semplificando la gestione delle credenziali. MQ di Azure IoT offre disponibilità elevata, scalabilità e sicurezza per dispositivi e applicazioni IoT. È ora disponibile in anteprima pubblica come parte di Operazioni di Azure IoT. Altre informazioni sulla connessione di MQ di Azure IoT al broker MQTT di Griglia di eventi di Azure.

Eventi del ciclo di vita dei client MQTT

Gli eventi del ciclo di vita dei client consentono alle applicazioni di reagire agli eventi relativi allo stato della connessione client o alle operazioni delle risorse client. Consente di tenere traccia dello stato della connessione del client, reagire con un'azione di mitigazione per le disconnessioni dei client e tenere traccia dello spazio dei nomi a cui sono collegati i client durante i failover automatizzati. Altre informazioni sugli eventi dei ciclo di vita dei client MQTT.

Nomi di dominio personalizzati

Il supporto dei nomi di dominio personalizzati consente agli utenti di assegnare i propri nomi di dominio agli endpoint MQTT e HTTP dello spazio dei nomi di Griglia di eventi, migliorando la sicurezza e semplificando la configurazione client. Questa funzionalità consente alle aziende di soddisfare i requisiti di sicurezza e conformità ed elimina la necessità di modificare client già collegati al dominio. L'assegnazione di un nome di dominio personalizzato a più spazi dei nomi consente anche di migliorare la disponibilità, gestire la capacità e gestire la mobilità dei client tra aree. Altre informazioni sui nomi di dominio personalizzati.

Passaggi successivi

Leggere gli articoli seguenti per altre informazioni sul broker MQTT e i suoi concetti principali.

Concetti