Módulos guardião

Um módulo guardião é um hardware de suplemento que incorpora um chip do Azure Sphere e anexa fisicamente a uma porta num dispositivo "brownfield", ou seja, um dispositivo existente que pode já estar a ser utilizado.

Ao utilizar um módulo guardião, pode adicionar capacidades de IoT seguras a equipamentos que não suportam a conectividade à Internet ou não o suportam de forma segura. Resumindo, um módulo guardião fornece uma forma de implementar a conectividade segura em dispositivos existentes sem expor esses dispositivos à Internet. Uma vez que é um dispositivo do Azure Sphere, todas as funcionalidades de segurança e conectividade do Azure Sphere estão disponíveis: todos os dados são encriptados, as atualizações do SO e da aplicação são fornecidas de forma segura e a autenticação garante que o módulo comunica apenas com anfitriões fidedignos.

Eis como funciona um módulo guardião:

  • O módulo guardian liga-se a um dispositivo brownfield, conforme descrito na secção Conectividade deste tópico. O dispositivo brownfield em si não está ligado à rede.

  • O SO do Azure Sphere é executado no módulo guardian juntamente com uma aplicação personalizada de alto nível e quaisquer outras aplicações do Azure Sphere necessárias para o seu cenário.

  • O módulo guardian utiliza o Serviço de Segurança do Azure Sphere para autenticação baseada em certificados, relatórios de falhas e atualizações de software over-the-air.

  • O dispositivo brownfield comunica com o módulo guardião, que pode responder ao efetuar uma ação local ou ao comunicar a uma presença na cloud, como o Azure IoT Central.

Pode comprar módulos guardião a um fornecedor e personalizá-los ainda mais para o seu cenário de utilização ou pode criar o seu próprio módulo guardião, possivelmente trabalhando com um parceiro de hardware. Consulte o site do Azure Sphere para obter informações sobre fornecedores de hardware.

Utilizações para um módulo guardião

Um módulo guardião pode fazer tudo o que qualquer outro dispositivo do Azure Sphere possa fazer, ao mesmo tempo que funciona como uma interface segura entre o equipamento existente e uma rede externa. As utilizações possíveis para um módulo guardião incluem:

  • Recolher dados do dispositivo brownfield, processar os dados e transmitir os dados de forma segura para um ponto final da cloud
  • Enviar dados para vários pontos finais, desde que possa autenticar cada ponto final
  • Recolher dados adicionais que não estão disponíveis a partir do dispositivo brownfield; por exemplo, os sensores no módulo guardião podem fornecer dados ambientais para utilização com dados operacionais do dispositivo Brownfield
  • Guardar dados do dispositivo brownfield caso a conectividade seja perdida

O repositório de exemplos do Azure Sphere inclui dois exemplos que demonstram como um dispositivo do Azure Sphere pode ser utilizado como um módulo guardião:

  • O Dispositivo para a Cloud mostra como um dispositivo do Azure Sphere pode ser utilizado para recolha de dados, ao mesmo tempo que fornece acesso seguro à Internet para um dispositivo brownfield que está ligado ao mesmo através de uma interface de série.
  • Os serviços de rede privada mostram como um dispositivo do Azure Sphere pode fornecer acesso seguro à Internet para um dispositivo brownfield que está ligado ao mesmo através de uma interface TCP/IP.

Conectividade

Existem vários mecanismos suportados de conectividade entre o módulo guardião e a rede e entre o módulo guardião e o dispositivo brownfield. Para obter informações gerais sobre as soluções de conectividade do Azure Sphere, veja Descrição geral da conectividade e Requisitos de rede.

A aplicação de alto nível de um módulo guardião comunica a montante com a rede, incluindo o Serviço de Segurança do Azure Sphere e outros serviços cloud, e a jusante com o dispositivo brownfield:

  • Para ligações a montante entre o módulo guardião e a rede, pode utilizar Ethernet, Wi-Fi ou rede móvel.

  • Para ligações a jusante entre o módulo guardian e o equipamento brownfield, pode utilizar o seguinte:

    • Qualquer interface de série, como UART, RS-485 ou SPI, que o dispositivo Brownfield expõe
    • Private Ethernet, que não expõe o dispositivo brownfield à rede pública
    • Sem fios, como Bluetooth ou ZigBee

Desenvolvimento e implementação de aplicações

Desenvolver e implementar uma aplicação para um módulo guardião não é diferente de desenvolver e implementar uma aplicação para qualquer outro dispositivo do Azure Sphere. Veja Descrição geral das aplicações do Azure Sphere e Noções básicas de implementação para obter detalhes. Tal como acontece com qualquer dispositivo do Azure Sphere, um módulo guardião tem de ter, pelo menos, uma aplicação de alto nível do Azure Sphere e também pode ter aplicações com capacidade em tempo real.

Precisará de acesso ao UART do serviço, que é a principal interface de programação e depuração entre o MT3620 e o ambiente de desenvolvimento em execução num computador anfitrião. Se criar o seu próprio módulo guardião, terá de garantir que os sinais UART do serviço são expostos e que suporta uma forma de interagir com o serviço UART no próprio módulo guardião ou numa peça de hardware separada. Se comprar módulos a um fornecedor, o fornecedor deve fornecer uma solução que permita esta ligação.

Se o seu fornecedor ou outro terceiro criar a aplicação, poderá ter de fornecer acesso ao catálogo do Azure Sphere para que o programador da aplicação possa carregar e testar a aplicação e criar uma implementação.

Aplicações de alto nível

Uma aplicação de alto nível de módulo guardião tem de ser escrita de forma personalizada para os dispositivos brownfield de cada organização. Se o seu fornecedor de módulos guardião fornecer uma aplicação, certifique-se de que recebe o código fonte e as bibliotecas da aplicação de alto nível para que possa modificar ou atualizar a aplicação conforme necessário.

Tal como acontece com qualquer aplicação de dispositivo do Azure Sphere, os detalhes específicos do dispositivo e específicos da aplicação têm de ser listados no manifesto da aplicação. Por exemplo, as ligações do módulo guardião são detalhes específicos do dispositivo que têm de ser incluídos no manifesto.

Uma aplicação de alto nível que é executada num módulo guardião é responsável pelo seguinte:

  • Estabelecer e manter a conectividade com o equipamento brownfield
  • Estabelecer e manter a conectividade com a Internet, incluindo o Serviço de Segurança do Azure Sphere e outros serviços cloud
  • Processamento de dados recebidos a partir do dispositivo Brownfield — desempacotamento e armazenamento de dados, se necessário, e comunicação com os anfitriões da Internet conforme adequado
  • Processamento de dados recebidos de um anfitrião da Internet — desempacotamento e armazenamento de dados, se necessário, e comunicação com o equipamento brownfield conforme adequado

Os dados enviados a montante podem incluir relatórios de erros, parâmetros operacionais ou telemetria geral. O Azure Sphere garante que todos esses dados são encriptados. A aplicação pode ligar-se a serviços Web e utilizar a autenticação mútua para essas ligações.

Os dados enviados a jusante podem incluir software atualizado ou alterações às definições ou parâmetros do dispositivo brownfield. Para evitar potenciais falhas de segurança, a aplicação deve validar os dados recebidos antes de os transmitir a jusante para o dispositivo brownfield.

Considerações da aplicação

Ao criar uma aplicação, deve considerar os periféricos disponíveis, os requisitos de armazenamento e o consumo de energia.

Dispositivos periféricos

Tal como outros dispositivos do Azure Sphere, os módulos guardião diferem nos periféricos que expõem. Escolha um módulo guardião que forneça as capacidades de conectividade e deteção necessárias para o seu cenário.

Consoante a arquitetura de hardware do módulo guardião, ou seja, a forma como expõe as capacidades do chip do Azure Sphere, pode determinar se o software para aceder a funcionalidades individuais tem de ser implementado como uma aplicação de alto nível ou com capacidade em tempo real.

Requisitos de armazenamento

O Azure Sphere tem armazenamento limitado, pelo que considere cuidadosamente a quantidade de memória necessária para aplicações e dados. Veja Memória disponível para obter mais informações.

Quando enviar dados a jusante da cloud para o dispositivo brownfield, certifique-se de que o módulo guardião tem espaço suficiente para armazenar os dados. Poderá ter de enviar dados em segmentos, conforme demonstrado pelo exemplo HTTPS_Curl_Multi no repositório de exemplos do GitHub do Azure Sphere.

Quando enviar dados a montante a partir do dispositivo brownfield para o módulo guardião, certifique-se de que a sua aplicação consegue lidar com falhas de conectividade a montante. Se o dispositivo brownfield fornecer telemetria contínua, tem de considerar quais os dados e a quantidade de dados a reter e, posteriormente, enviar para a cloud quando a conectividade for restaurada. Veja o exemplo de galeria de arquivo e reencaminhamento, que mostra como utilizar o armazenamento local para colocar temporariamente os dados em cache antes de serem carregados.

Consumo de energia

Existem inúmeras aplicações nas quais o módulo guardião está inativo a maior parte do tempo. Por exemplo, considere um dispositivo do Azure Sphere que uma vez por hora recolhe dados de uma rede de sensores e carrega esses dados para a cloud — uma operação que pode demorar um ou dois minutos. Neste caso, a maior parte da energia consumida pelo dispositivo é desperdiçada.

Pode reduzir significativamente o consumo de energia e, assim, aumentar a duração da bateria ao colocar o dispositivo no estado Desativado quando está inativo ou ao definir um perfil de energia. Veja Gerir o estado do Power Down e Definir perfis de energia para obter detalhes.