Módulos do Guardian

Um módulo guardian é um hardware de complemento que incorpora um chip do Azure Sphere e anexa fisicamente a uma porta em um dispositivo "brownfield" — ou seja, um dispositivo existente que já pode estar em uso.

Usando um módulo guardian, você pode adicionar recursos de IoT seguros a equipamentos que não dão suporte à conectividade com a Internet ou não dão suporte a ele com segurança. Em suma, um módulo guardian fornece uma maneira de implementar a conectividade segura em dispositivos existentes sem expor esses dispositivos à Internet. Como é um dispositivo do Azure Sphere, todos os recursos de segurança e conectividade do Azure Sphere estão disponíveis: todos os dados são criptografados, as atualizações do sistema operacional e do aplicativo são entregues com segurança e a autenticação garante que o módulo se comunique apenas com hosts confiáveis.

Veja como funciona um módulo guardião:

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

  • O sistema operacional do Azure Sphere é executado no módulo guardião, juntamente com um aplicativo personalizado de alto nível e quaisquer outros aplicativos do Azure Sphere que seu cenário exige.

  • O módulo guardian usa o Serviço de Segurança do Azure Sphere para autenticação baseada em certificado, relatórios de falhas e atualizações de software no ar.

  • O dispositivo brownfield se comunica com o módulo guardian, que pode responder tomando uma ação local ou relatando uma presença na nuvem, como o Azure IoT Central.

Você pode comprar módulos guardiões de um fornecedor e personalizá-los ainda mais para seu cenário de uso ou criar 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.

Usa para um módulo guardião

Um módulo guardião pode fazer qualquer outra coisa que qualquer outro dispositivo do Azure Sphere possa fazer, ao mesmo tempo em que atua como uma interface segura entre equipamentos existentes e uma rede externa. Os possíveis usos para um módulo guardião incluem:

  • Coletando dados do dispositivo brownfield, processando os dados e transmitindo os dados com segurança para um ponto de extremidade de nuvem
  • Enviando dados para vários pontos de extremidade, desde que possam autenticar cada ponto de extremidade
  • Coleta de dados adicionais que não estão disponíveis no dispositivo brownfield; por exemplo, os sensores no módulo guardião poderiam fornecer dados ambientais para uso com dados operacionais do dispositivo brownfield
  • Salvar 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 usado como um módulo guardião:

  • Dispositivo para Nuvem mostra como um dispositivo do Azure Sphere pode ser usado para coleta de dados, ao mesmo tempo em que fornece acesso seguro à Internet para um dispositivo brownfield conectado a ele por meio de uma interface serial.
  • Os serviços de rede privados mostram como um dispositivo do Azure Sphere pode fornecer acesso seguro à Internet para um dispositivo brownfield conectado a ele por meio de uma interface TCP/IP.

Conectividade

Há vários mecanismos de conectividade com suporte entre o módulo guardião e a rede e entre o módulo guardian e o dispositivo brownfield. Para obter informações gerais sobre soluções de conectividade do Azure Sphere, consulte Visão geral de conectividade e requisitos de rede.

O aplicativo de alto nível de um módulo guardião comunica upstream com a rede, incluindo o Serviço de Segurança do Azure Sphere e outros serviços de nuvem e downstream com o dispositivo brownfield:

  • Para upstream conexões entre o módulo guardião e a rede, você pode usar Ethernet, Wi-Fi ou celular.

  • Para conexões downstream entre o módulo guardião e o equipamento brownfield, você pode usar o seguinte:

    • Qualquer interface serial, como UART, RS-485 ou SPI, que o dispositivo brownfield expõe
    • Ethernet privada, que não expõe o dispositivo brownfield à rede pública
    • Sem fio, como Bluetooth ou ZigBee

Desenvolvimento e implantação de aplicativos

Desenvolver e implantar um aplicativo para um módulo guardião não é diferente de desenvolver e implantar um aplicativo para qualquer outro dispositivo do Azure Sphere. Consulte Visão geral de aplicativos do Azure Sphere e noções básicas de implantação para obter detalhes. Assim como acontece com qualquer dispositivo do Azure Sphere, um módulo guardião deve ter pelo menos um aplicativo do Azure Sphere de alto nível e também pode ter aplicativos capazes em tempo real.

Você precisará de acesso ao UART de serviço, que é a interface de programação e depuração main entre o MT3620 e o ambiente de desenvolvimento em execução em um computador host. Se você criar seu próprio módulo guardião, precisará garantir que os sinais UART de serviço sejam expostos e que você dê suporte a uma maneira de fazer interface com o UART de serviço no próprio módulo guardian ou em uma parte separada do hardware. Se você comprar módulos de um fornecedor, o fornecedor deverá fornecer uma solução que habilite essa conexão.

Se o fornecedor ou outro terceiro criar o aplicativo, talvez seja necessário fornecer acesso ao catálogo do Azure Sphere para que o desenvolvedor de aplicativos possa carregar e testar o aplicativo e criar uma implantação.

Aplicativos de alto nível

Um aplicativo de alto nível do módulo guardião deve ser gravado sob medida para os dispositivos brownfield de cada organização. Se o fornecedor do módulo guardião fornecer um aplicativo, certifique-se de receber o código-fonte e as bibliotecas de aplicativo de alto nível para que você possa modificar ou atualizar o aplicativo conforme necessário.

Assim como acontece com qualquer aplicativo de dispositivo do Azure Sphere, detalhes específicos do dispositivo e específicos do aplicativo devem ser listados no manifesto do aplicativo. Por exemplo, as conexões do módulo guardião são detalhes específicos do dispositivo que devem ser incluídos no manifesto.

Um aplicativo de alto nível executado em um 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 de nuvem
  • Manipulação de dados recebidos do dispositivo brownfield – desempacotar e armazenar dados, se necessário, e se comunicar com os hosts da Internet conforme apropriado
  • Manipulando dados recebidos de um host da Internet, descompactando e armazenando dados, se necessário, e comunicando-se com o equipamento brownfield conforme apropriado

Os dados enviados upstream podem incluir relatórios de erro, parâmetros operacionais ou telemetria geral. O Azure Sphere garante que todos esses dados sejam criptografados. O aplicativo pode se conectar aos serviços Web e usar a autenticação mútua para essas conexões.

Os dados enviados downstream podem incluir software atualizado ou alterações em configurações ou parâmetros para o dispositivo brownfield. Para evitar possíveis violações de segurança, o aplicativo deve validar os dados de entrada antes de passá-los rio abaixo para o dispositivo brownfield.

Considerações do aplicativo

Ao criar um aplicativo, você deve considerar os periféricos disponíveis, os requisitos de armazenamento e o consumo de energia.

Dispositivos periféricos

Assim como outros dispositivos do Azure Sphere, os módulos guardiões diferem nos periféricos que expõem. Escolha um módulo guardião que forneça as funcionalidades de conectividade e sensoriamento que seu cenário exige.

Dependendo da arquitetura de hardware do módulo guardian, ou seja, como ele expõe os recursos do chip do Azure Sphere, você pode determinar se o software para acessar recursos individuais deve ser implementado como um aplicativo capaz de alto nível ou em tempo real.

Requisitos de armazenamento

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

Ao enviar dados downstream da nuvem para o dispositivo brownfield, verifique se o módulo guardião tem espaço suficiente para manter os dados. Talvez seja necessário enviar dados em partes, conforme demonstrado pelo exemplo HTTPS_Curl_Multi no repositório de exemplos do GitHub do Azure Sphere.

Ao enviar dados upstream do dispositivo brownfield para o módulo guardian, verifique se seu aplicativo pode lidar com upstream falhas de conectividade. Se o dispositivo brownfield fornecer telemetria contínua, você deverá considerar quais dados e quanto dele deve ser retido e posteriormente enviado para a nuvem quando a conectividade for restaurada. Consulte o exemplo de galeria de armazenamento e encaminhamento, que mostra como usar o armazenamento local para armazenar dados temporariamente em cache antes de serem carregados.

Consumo de energia

Há vários aplicativos em que o módulo guardião está inativo na maior parte do tempo. Por exemplo, considere um dispositivo do Azure Sphere que, uma vez por hora, coleta dados de uma rede de sensores e carrega esses dados para a nuvem , uma operação que pode levar um minuto ou dois. Nesse caso, a maior parte da energia consumida pelo dispositivo é desperdiçada.

Você pode reduzir significativamente o consumo de energia e, portanto, aumentar a vida útil da bateria colocando o dispositivo no estado power down quando ele estiver inativo ou definindo um perfil de energia. Consulte Gerenciar o estado do Power Down e Definir perfis de energia para obter detalhes.