Infrastruttura e connettività dei dispositivi
Questa panoramica presenta i concetti chiave relativi al modo in cui i dispositivi si connettono al cloud in una tipica soluzione Azure IoT. L'articolo presenta anche elementi facoltativi dell'infrastruttura, ad esempio gateway e bridge. Ogni sezione include i collegamenti al contenuto che offre ulteriori dettagli e indicazioni.
Le applicazioni IoT Central usano i servizi hub IoT e Device Provisioning Service (DPS) internamente. Di conseguenza, i concetti di questo articolo si applicano se si usa IoT Central per esplorare uno scenario IoT o creare la soluzione usando hub IoT e DPS.
Il diagramma seguente mostra una visualizzazione generale dei componenti in una tipica soluzione IoT. Questo articolo è incentrato sulla connettività tra i dispositivi e i servizi cloud IoT, inclusi gateway e bridge, illustrati nel diagramma.
Primitives
I dispositivi Azure IoT usano le primitive seguenti per scambiare dati con i servizi cloud. I dispositivi usano:
- Messaggi da dispositivo a cloud per inviare dati di telemetria delle serie temporali al cloud. Ad esempio, i dati relativi alla temperatura raccolti da un sensore collegato al dispositivo.
- Dispositivi gemelli per condividere e sincronizzare i dati sullo stato con il cloud. Ad esempio, un dispositivo può usare il dispositivo gemello per segnalare al cloud lo stato corrente di una valvola controllata e per ricevere una temperatura finale desiderata dal cloud.
- Gemelli digitali per rappresentare un dispositivo nel mondo digitale. Ad esempio, un gemello digitale può rappresentare la posizione fisica di un dispositivo, le sue funzionalità e le sue relazioni con altri dispositivi.
- Caricamenti di file per file multimediali, ad esempio immagini e video acquisiti. I dispositivi connessi in modo intermittente possono inviare batch di telemetria. I dispositivi possono comprimere i caricamenti per risparmiare larghezza di banda.
- Metodi diretti per ricevere comandi dal cloud. Un metodo diretto può avere parametri e restituire una risposta. Ad esempio, il cloud può chiamare un metodo diretto per richiedere il riavvio del dispositivo.
- I messaggi da cloud a dispositivo ricevono notifiche unidirezionale dal cloud. Ad esempio, una notifica che indica che un aggiornamento è pronto per il download.
Per altre informazioni, vedere Linee guida per le comunicazioni da dispositivo a cloud e linee guida per le comunicazioni da cloud a dispositivo.
Endpoint cloud con connessione al dispositivo
Un hub IoT di Azure espone una raccolta di endpoint per dispositivo che consentono ai dispositivi di scambiare dati con il cloud. Questi endpoint includono:
- Invio di messaggi da dispositivo a cloud. Un dispositivo usa questo endpoint per inviare messaggi da dispositivo a cloud.
- Recuperare e aggiornare le proprietà dei dispositivi gemelli. Un dispositivo usa questo endpoint per accedere alle proprietà dei dispositivi gemelli.
- Ricezione di richieste di metodi diretti. Un dispositivo usa questo endpoint per restare in ascolto delle richieste di metodi diretti.
Ogni hub IoT ha un nome host univoco usato per connettere i dispositivi all'hub. Il nome host è nel formato iothubname.azure-devices.net
. Se si usa uno degli SDK per dispositivi, non è necessario conoscere i nomi completi dei singoli endpoint perché gli SDK forniscono astrazioni di livello superiore. Tuttavia, il dispositivo deve conoscere il nome host dell'hub IoT a cui si connette.
Un dispositivo può stabilire una connessione sicura a un hub IoT:
- Direttamente: in questo caso è necessario indicare al dispositivo una stringa di connessione che includa il nome host.
- Indirettamente usando dps, nel qual caso il dispositivo si connette a un endpoint dps noto per recuperare il stringa di connessione per l'hub IoT a cui è assegnato.
Il vantaggio di usare il servizio Device Provisioning è che non è necessario configurare tutti i dispositivi con stringhe di connessione specifiche per l'hub IoT. È invece necessario configurare i dispositivi per connettersi a un endpoint DPS noto e comune in cui vengono identificati i dettagli della connessione. Per altre informazioni, vedere Servizio Device Provisioning.
Per altre informazioni sull'implementazione di riconnessioni automatiche agli endpoint, vedere Gestire le riconnessioni dei dispositivi per creare applicazioni resilienti.
Stringa di connessione dei dispositivi
Un dispositivo stringa di connessione fornisce a un dispositivo le informazioni necessarie per connettersi in modo sicuro a un hub IoT. Il stringa di connessione include le informazioni seguenti:
- Nome host dell'hub IoT.
- ID dispositivo registrato con l'hub IoT.
- Le informazioni di sicurezza necessarie per stabilire una connessione sicura all'hub IoT.
Autenticazione
I dispositivi Azure IoT usano il protocollo TLS per verificare l'autenticità dell'hub IoT o dell'endpoint DPS a cui si connettono. Gli SDK del dispositivo si basano sull'archivio certificati attendibili del dispositivo per includere il certificato TLS DigiCert Global Root G2 attualmente necessario per stabilire una connessione sicura all'hub IoT. Per altre informazioni, vedere Transport Layer Security (TLS) support in hub IoT and TLS support in hub IoT di Azure Device Provisioning Service (DPS).To learn more, see Transport Layer Security (TLS) support in hub IoT and TLS support in hub IoT di Azure Device Provisioning Service (DPS).To learn more, see Transport Layer Security (TLS) support in hub IoT and TLS support in hub IoT di Azure Device Provisioning Service (DPS).
I dispositivi Azure IoT possono usare i token di firma di accesso condiviso o certificati X.509 per autenticarsi in un hub IoT. Negli ambienti di produzione è consigliabile usare i certificati X.509. Per altre informazioni sull'autenticazione del dispositivo, vedere:
- Autenticare i dispositivi per hub IoT usando i certificati della CA X.509
- Autenticare i dispositivi per hub IoT usando i token di firma di accesso condiviso
- Attestazione della chiave simmetrica DPS
- Attestazione del certificato DPS X.509
- Attestazione del modulo della piattaforma attendibile dps
- Concetti relativi all'autenticazione dei dispositivi in IoT Central
Tutti i dati scambiati tra un dispositivo e un hub IoT vengono crittografati.
Per altre informazioni sulla sicurezza nella soluzione IoT, vedere Architettura di sicurezza per le soluzioni IoT.
Protocolli
Un dispositivo IoT può usare uno dei diversi protocolli di rete quando si connette a un hub IoT o a un endpoint DPS:
- MQTT
- MQTT su WebSocket
- Advanced Message Queuing Protocol (AMQP)
- AMQP su WebSockets
- HTTPS
Nota
hub IoT ha un supporto limitato delle funzionalità per MQTT. Se la soluzione richiede il supporto MQTT v3.1.1 o v5, è consigliabile supportare MQTT in Griglia di eventi di Azure. Per altre informazioni, vedere Confrontare il supporto MQTT in hub IoT e Griglia di eventi.
Per altre informazioni su come scegliere un protocollo per i dispositivi da connettere al cloud, vedere:
- Supporto del protocollo in hub IoT di Azure
- Comunicare con dps usando il protocollo MQTT
- Comunicare con DPS usando il protocollo HTTPS (chiavi simmetriche)
- Comunicare con dps usando il protocollo HTTPS (X.509)
Gli scenari IoT industriali usano spesso l'interfaccia aperta Open Platform Communications Unified Architecture (OPC UA) standard del settore. Per abilitare la connettività al cloud di Azure, usare Operazioni IoT di Azure. Per altre informazioni, vedere Informazioni sulle operazioni di Azure IoT.
Modelli di connessione
Esistono due grandi categorie di modelli di connessione usati dai dispositivi IoT per connettersi al cloud:
Connessioni permanenti
Le connessioni permanenti sono necessarie quando la soluzione richiede funzionalità di comando e controllo. Negli scenari di comando e controllo la soluzione IoT invia comandi ai dispositivi per controllarne il comportamento quasi in tempo reale. Le connessioni permanenti mantengono una connessione di rete al cloud e si riconnettono ogni volta che si verifica un'interruzione. Usare il protocollo MQTT o AMQP per le connessioni permanenti dei dispositivi a un hub IoT. Gli SDK per dispositivi IoT consentono sia i protocolli MQTT che AMQP per la creazione di connessioni permanenti a un hub IoT.
Connessioni temporanee
Le connessioni temporanee sono connessioni di breve durata che consentono ai dispositivi di inviare dati di telemetria all'hub IoT. Dopo l'invio dei dati di telemetria da parte di un dispositivo, la connessione viene interrotta. Il dispositivo si riconnette quando ci sono altri dati di telemetria da inviare. Le connessioni temporanee non sono adatte a scenari di comando e controllo. Un client del dispositivo può usare l'API HTTP se deve solo inviare dati di telemetria.
Gateway sul campo
I gateway sul campo, detti talvolta gateway perimetrali, vengono in genere distribuiti in locale e vicini ai dispositivi IoT. I gateway sul campo gestiscono la comunicazione con il cloud per conto dei dispositivi IoT. I gateway sul campo possono:
- Eseguire la conversione del protocollo. Ad esempio, consentendo ai dispositivi Bluetooth abilitati di connettersi al cloud.
- Gestire scenari offline e di disconnessione. Ad esempio, eseguendo il buffering dei dati di telemetria quando l'endpoint cloud non è raggiungibile.
- Filtrare, comprimere o aggregare i dati di telemetria prima di inviarli al cloud.
- Eseguire la logica nella rete perimetrale per rimuovere la latenza associata all'esecuzione della logica per conto dei dispositivi nel cloud. Ad esempio, rilevando un picco di temperatura e aprendo una valvola in risposta.
È possibile usare Azure IoT Edge per distribuire un gateway sul campo nell'ambiente locale. IoT Edge offre un set di funzionalità che consentono di distribuire e gestire i gateway sul campo su larga scala. IoT Edge offre anche un set di moduli che è possibile usare per implementare scenari di gateway comuni. Per altre informazioni, vedere Che cos'è Azure IoT Edge?
Un dispositivo IoT Edge può mantenere una connessione permanente a un hub IoT. Il gateway inoltra i dati di telemetria del dispositivo a hub IoT. Questa opzione abilita il comando e il controllo dei dispositivi downstream connessi al dispositivo IoT Edge.
Bridge
Un bridge di dispositivi consente ai dispositivi connessi a un cloud non Microsoft di connettersi alla soluzione IoT. Esempi di cloud non Microsoft includono Sigfox, Particle Device Cloud e The Things Network.
Il bridge di dispositivi IoT Central open source funge da traduttore che inoltra i dati di telemetria a un'applicazione IoT Central. Per altre informazioni, vedere Azure IoT Central Device Bridge. Esistono soluzioni bridge non Microsoft, ad esempio Tartabit IoT Bridge, per la connessione di dispositivi a un hub IoT.
Passaggi successivi
Dopo aver visto una panoramica della connettività dei dispositivi nelle soluzioni Azure IoT, alcuni passaggi successivi suggeriti includono: