Moduli di sorveglianzaGuardian modules

Un modulo di sorveglianza è un componente hardware aggiuntivo che incorpora un chip Azure Sphere e si collega fisicamente a una porta su un dispositivo "brownfield", ovvero un dispositivo esistente che potrebbe essere già in uso.A guardian module is add-on hardware that incorporates an Azure Sphere chip and physically attaches to a port on a "brownfield" device—that is, an existing device that may already be in use. Usando un modulo di sorveglianza, è possibile aggiungere funzionalità sicure IoT ad apparecchiature che non supportano la connettività Internet o che non la supportano in modo sicuro.By using a guardian module, you can add secure IoT capabilities to equipment that either doesn't support internet connectivity or doesn't support it securely. In breve, un modulo di sorveglianza consente di implementare la connettività sicura in dispositivi esistenti senza esporre tali dispositivi su Internet.In short, a guardian module provides a way to implement secure connectivity in existing devices without exposing those devices to the internet. Poiché si tratta di un dispositivo Azure Sphere, sono disponibili tutte le funzionalità di sicurezza e connettività Azure Sphere: tutti i dati sono crittografati, gli aggiornamenti del sistema operativo e delle applicazioni vengono recapitati in modo sicuro e l'autenticazione garantisce che il modulo comunichi solo con gli host attendibili.Because it's an Azure Sphere device, all the Azure Sphere security and connectivity features are available: all data is encrypted, OS and application updates are delivered securely, and authentication ensures that the module communicates only with trusted hosts.

Viene descritto di seguito come funziona un modulo di sorveglianza:Here's how a guardian module works:

  • Il modulo di sorveglianza si connette a un dispositivo brownfield tramite una periferica esistente sul dispositivo e si connette a Internet tramite Wi-Fi o Ethernet.The guardian module connects to a brownfield device through an existing peripheral on the device, and connects to the internet through Wi-Fi or Ethernet. Il dispositivo brownfield non è connesso alla rete.The brownfield device itself is not connected to the network.

  • Il sistema operativo Azure Sphere è in esecuzione nel modulo di sorveglianza insieme a un'applicazione di alto livello personalizzata e a qualsiasi altra applicazione Azure Sphere richiesta dallo scenario.The Azure Sphere OS runs on the guardian module along with a custom high-level application and any other Azure Sphere applications your scenario requires.

  • Il modulo di sorveglianza usa il servizio di sicurezza Azure Sphere per l'autenticazione basata su certificati, la segnalazione degli errori e gli aggiornamenti software over-the-air.The guardian module uses the Azure Sphere Security Service for certificate-based authentication, failure reporting, and over-the-air software updates.

  • Il dispositivo brownfield comunica con il modulo di sorveglianza, che può rispondere eseguendo un'azione locale o inviando una segnalazione a una presenza cloud, ad esempio Azure IoT Central.The brownfield device communicates with the guardian module, which can respond by taking a local action or by reporting to a cloud presence such as Azure IoT Central.

Ogni modulo di sorveglianza deve disporre di un'applicazione Azure Sphere di alto livello e può disporre anche di applicazioni con funzionalità in tempo reale.Every guardian module must have a high-level Azure Sphere application and may also have real-time capable applications.

È possibile acquistare moduli di sorveglianza da un fornitore e personalizzarli ulteriormente per lo scenario di utilizzo oppure è possibile progettare un proprio modulo di sorveglianza, eventualmente collaborando con un partner hardware.You can buy guardian modules from a vendor and further customize them for your usage scenario, or you can design your own guardian module, possibly working with a hardware partner. Per informazioni sui fornitori di hardware, vedere il sito Web di Azure Sphere.See the Azure Sphere website for information about hardware suppliers.

Utilizzi di un modulo di sorveglianzaUses for a guardian module

Un modulo di sorveglianza può eseguire tutte le operazioni eseguite da qualsiasi altro dispositivo Azure Sphere.A guardian module can do anything any other Azure Sphere device can do. Tra i possibili scenari di utilizzo per un modulo di sorveglianza sono inclusi i seguenti:Possible usage scenarios for a guardian module include:

  • Eliminare i dati dal dispositivo brownfield, elaborarli e trasmetterli in modo sicuro a un endpoint cloudCull data from the brownfield device, process it, and transmit it securely to a cloud endpoint
  • Inviare dati a più endpoint, purché sia possibile autenticare ogni endpointSend data to multiple endpoints, provided that it can authenticate each endpoint
  • Raccogliere dati aggiuntivi non disponibili dal dispositivo brownfield, ad esempio i sensori del modulo di sorveglianza potrebbero fornire dati ambientali da usare con i dati operativi del dispositivo brownfieldGather additional data that's not available from the brownfield device; for example, sensors on the guardian module could provide environmental data for use with operating data from the brownfield device
  • Salvare i dati dal dispositivo brownfield in caso di perdita della connettivitàSave data from the brownfield device in case connectivity is lost

Applicazioni di alto livello per i moduli di sorveglianzaHigh-level applications for guardian modules

Un modulo di sorveglianza richiede almeno un'applicazione di alto livello.A guardian module requires at least one high-level application. L'applicazione di alto livello comunica upstream con Internet (inclusi il servizio di sicurezza Azure Sphere e altri servizi cloud) e downstream con il dispositivo brownfield.The high-level application communicates upstream with the internet (including the Azure Sphere Security Service and other cloud services) and downstream with the brownfield device. Queste connessioni, insieme ad altri dettagli specifici del dispositivo e dell'applicazione, devono essere elencate nel manifesto dell'applicazione.These connections, along with other device- and application-specific details, must be listed in the application manifest. Di conseguenza, l'applicazione di alto livello deve essere scritta in modo personalizzato o deve essere personalizzata per i dispositivi brownfield di ogni organizzazione.As a result, the high-level application must be custom-written or customized for each organization's brownfield devices. Se il fornitore del modulo di sorveglianza fornisce un'applicazione, assicurarsi di ricevere il codice sorgente e le librerie dell'applicazione di alto livello in modo che sia possibile aggiornare l'applicazione in base alle esigenze.If your guardian module supplier provides an application, be sure that you receive the high-level application source code and libraries so that you can update the application as necessary.

Un'applicazione di alto livello in esecuzione in un modulo di sorveglianza è responsabile di:A high-level application that runs on a guardian module is responsible for:

  • Stabilire e gestire la connettività downstream con le apparecchiature brownfield e la connettività upstream con InternetEstablishing and maintaining downstream connectivity with the brownfield equipment and upstream connectivity with the internet
  • Gestire i dati inviati upstream dal dispositivo brownfield, decomprimerli e archiviarli, se necessario, nonché comunicare con gli host Internet in base alle esigenzeHandling data sent upstream from the brownfield device, unpacking and storing if necessary, and communicating with the internet hosts as appropriate
  • Gestire i dati inviati da un host Internet, decomprimerli e archiviarli, se necessario, nonché comunicare con le apparecchiature brownfield in base alle esigenzeHandling data sent from an internet host, unpacking and storing if necessary, and communicating with the brownfield equipment as appropriate

L'applicazione può connettersi ed eseguire l'autenticazione a server Web, nonché usare l'autenticazione reciproca per tali connessioni.The application can connect and authenticate to web servers and use mutual authentication for such connections. I dati inviati upstream possono includere report di errori, parametri operativi o dati di telemetria generale.Data sent upstream might include error reports, operating parameters, or overall telemetry. Azure Sphere garantisce che tutti questi dati vengano crittografati.Azure Sphere ensures that all such data are encrypted.

I dati inviati downstream possono includere software aggiornato o modifiche di impostazioni o parametri del dispositivo brownfield.Data sent downstream might include updated software or changes to settings or parameters for the brownfield device. Per evitare potenziali violazioni della sicurezza, l'app deve convalidare i dati in ingresso prima di passarli downstream al dispositivo brownfield.To avoid potential security breaches, the app should validate incoming data before passing it downstream to the brownfield device.

ConnettivitàConnectivity

Per le connessioni upstream dal modulo di sorveglianza a Internet, Azure Sphere supporta attualmente connessioni Ethernet e Wi-Fi cablate.For upstream connections from the guardian module to the internet, Azure Sphere currently supports wired Ethernet and Wi-Fi.

Per le connessioni downstream dal modulo di sorveglianza alle apparecchiature brownfield, è possibile usare qualsiasi periferica esposta dal modulo di sorveglianza.For downstream connections from the guardian module to the brownfield equipment, you can use any peripheral that the guardian module exposes. Il supporto Ethernet privato nel sistema operativo Azure Sphere consente la connessione al dispositivo brownfield tramite Ethernet senza esporlo sulla rete Internet pubblica.Private Ethernet support in the Azure Sphere OS allows a connection to the brownfield device over Ethernet without exposing it to the public internet.

Supporto di periferichePeripheral device support

Analogamente ad altri dispositivi Azure Sphere, i moduli di sorveglianza differiscono nelle periferiche che espongono.Like other Azure Sphere devices, guardian modules differ in the peripherals that they expose. Scegliere un modulo di sorveglianza che fornisca le funzionalità di connettività e rilevamento richieste dallo scenario.Choose a guardian module that provides the connectivity and sensing capabilities your scenario requires. A seconda dell'architettura hardware del modulo di sorveglianza, ovvero del modo in cui vengono esposte le funzionalità del chip Azure Sphere, è possibile determinare se il software per l'accesso alle singole funzionalità debba essere implementato come applicazione di alto livello o come applicazione con funzionalità in tempo reale.Depending on the hardware architecture of the guardian module—that is, how it exposes capabilities of the Azure Sphere chip—you can determine whether the software to access individual features must be implemented as a high-level or a real-time capable application.

Considerazioni sulle risorse di archiviazioneStorage considerations

Azure Sphere dispone di risorse di archiviazione limitate, quindi è necessario valutare attentamente la quantità di dati che verranno scambiati tra il modulo di sorveglianza e il dispositivo brownfield e tra il modulo di sorveglianza e il cloud.Azure Sphere has limited storage, so carefully consider how much data will be exchanged between the guardian module and the brownfield device, and between the guardian module and the cloud.

Le applicazioni Azure Sphere possono usare fino a 256 KiB di RAM.Azure Sphere applications can use up to 256 KiB of RAM. Se si prevede di inviare dati downstream dal cloud al dispositivo brownfield, assicurarsi che il modulo di sorveglianza disponga di spazio sufficiente per conservare i dati.If you plan to send data downstream from the cloud to the brownfield device, ensure that the guardian module has enough space to hold the data. Se ad esempio si intende recapitare gli aggiornamenti del firmware per il dispositivo brownfield, assicurarsi che possano essere contenuti nello spazio di archiviazione disponibile nel modulo di sorveglianza.For example, if you want to deliver firmware updates for the brownfield device, make sure they will fit in the storage available on the guardian module. Potrebbe essere necessario inviare tali aggiornamenti in "blocchi". L'esempio HTTPS_Curl_Multi nel repository di esempi GitHub per Azure Sphere illustra come eseguire questa operazione.You might need to send such updates in "chunks"; the HTTPS_Curl_Multi sample in the Azure Sphere GitHub samples repo shows how to do this. Tenere presente che anche il dispositivo downstream richiederà un meccanismo simile.Keep in mind that your downstream device will also need a similar mechanism.

Per i dati upstream (dal dispositivo brownfield al modulo di sorveglianza), assicurarsi che l'applicazione sia in grado di gestire gli errori di connettività upstream.For data that travels upstream (from the brownfield device to the guardian module), ensure that your application can handle upstream connectivity failures. Se il dispositivo brownfield fornisce dati di telemetria continui, è necessario valutare quali e quanti dati mantenere e trasmettere in un secondo momento quando viene ripristinata la connettività.If the brownfield device provides ongoing telemetry, you need to consider which data and how much of it to retain and later transmit when connectivity is restored.

Considerazioni sul risparmio di energia bassoLow power considerations

Il consumo di energia è un fattore cruciale per i dispositivi Azure Sphere alimentato a batteria.Power consumption is a critical factor for battery-powered Azure Sphere devices. Esistono numerose applicazioni in cui il modulo Guardian è inattivo nella maggior parte dei casi.There are numerous applications in which the guardian module is inactive most of the time. Si consideri, ad esempio, un dispositivo Azure Sphere che una volta ogni ora raccoglie i dati da una rete di sensori e li carica nel cloud, un'operazione che può richiedere, al massimo, un minuto o due ogni volta che viene eseguita.For example, consider an Azure Sphere device that once every hour collects data from a network of sensors and uploads that data to the cloud—an operation that might take, at most, a minute or two each time it's performed. In queste circostanze la maggior parte della potenza usata dal dispositivo viene sprecata.Under these circumstances most of the power consumed by the device is wasted.

Quando il dispositivo è inattivo, è possibile ridurre drasticamente il consumo di energia e quindi aumentare la durata della batteria.Placing the device in the Power Down state when it is inactive can drastically reduce power consumption and thus increase battery life.

Sviluppo e distribuzione di appApp development and deployment

Lo sviluppo di un'applicazione per un modulo di sorveglianza non è diverso dallo sviluppo di un'applicazione per qualsiasi altro dispositivo Azure Sphere.Developing an application for a guardian module is no different from developing an application for any other Azure Sphere device. Per poter leggere e scrivere dal dispositivo locale, è necessario accedere al servizio UART sul chip Azure Sphere.You'll need access to the service UART on the Azure Sphere chip so that you can read and write from the local device. Se si progetta un dispositivo personalizzato, è necessario assicurarsi che i segnali del servizio UART siano esposti e che sia supportata una modalità di interfaccia con il servizio UART sul modulo di sorveglianza stesso o su un componente hardware distinto.If you design your own device, you will need to ensure that the service UART signals are exposed and that you support a way to interface with the service UART either on the guardian module itself or on a separate piece of hardware. Se si acquistano moduli da un fornitore, il fornitore deve fornire una soluzione che consenta la connessione.If you purchase modules from a vendor, the vendor should provide a solution that enables this connection.

Se il fornitore o un'altra terza parte creerà l'applicazione, potrebbe essere necessario fornire l'accesso al proprio tenant Azure Sphere in modo che lo sviluppatore dell'applicazione possa caricare e testare l'applicazione e creare una distribuzione.If your supplier or another third party will create the application, you might need to provide access to your Azure Sphere tenant so that the application developer can load and test the application and create a deployment. Se il modulo fornisce una connessione UART di servizio, è possibile trasferire localmente l'app di produzione prima della distribuzione finale.If your module provides a service UART connection, you can sideload the production app before final deployment.

Il repository Azure Sphere Samples in GitHub include una soluzione di riferimento che illustra come usare un dispositivo Azure Sphere per fornire l'accesso a Internet sicuro per un dispositivo esistente.The Azure Sphere samples repo on GitHub includes a reference solution that demonstrates how an Azure Sphere device might be used to provide secure internet access for an existing device. Il dispositivo Azure Sphere funge da interfaccia tra il cloud e una MCU esterna connessa a un'appliance.The Azure Sphere device acts as the interface between the cloud and an external MCU connected to an appliance. La MCU viene riattivata da uno stato di alimentazione basso quando viene attivato da un utente.The MCU wakes up from a low power state when activated by a user. Raccoglie informazioni dal dispositivo, ad esempio il conteggio dell'utilizzo e l'inventario rimanente.It collects information from the appliance such as usage count and remaining inventory. Torna quindi a uno stato di basso consumo.It then goes back into a low power state. Il dispositivo Azure Sphere raccoglie periodicamente i dati dalla MCU esterna, esegue calcoli, invia i dati al cloud e trasferisce i dati tra il cloud e la MCU.The Azure Sphere device periodically collects data from the external MCU, performs computations, sends the data to the cloud, and transfers data between the cloud and the MCU. Inoltre, la MCU può essere configurata in modo da riattivare il dispositivo Azure Sphere da uno stato di alimentazione basso per segnalare una condizione di inventario insufficiente.Additionally, the MCU can be configured to wake the Azure Sphere device from a low power state in order to report a low inventory condition.