Cenário do Projeto

Um produto na área de Internet das Coisas (IoT) e Sensoreamento Remoto está sendo desenvolvido. Trata-se de um serviço para gerenciar o estado de sensores IoT distribuídos e alertar situações ou emergências condicionados a esses objetos através de um aplicativo.

Por exemplo, um usuário pode ser alertado através de seu smartphone sobre o superaquecimento de um equipamento ou produto sensível que estava sendo monitorado através de um sensor previamente instalado e conectado à plataforma. Ao adquirir um sensor compatível com o serviço e instalá-lo, é possível associá-lo à conta de usuário do dono, assim, ele estará disponível no dashboard do app para acompanhamento, sendo informado de quais grandezas (ou streams) estão sendo monitoradas e seus valores mais recentes. Em outra área do app (fora do escopo deste cenário) seria possível configurar alertas combinando condições sobre essas grandezas, ex: alertar usuário quando a temperatura do  sensor  985bf2cde9b54a54b8fcd3423d89ad89  (rotulado como Freezer do depósito) ultrapassar -4 ºC.

Domínio

Arquiteturalmente, o domínio estabelece que cada usuário (User) possui um conjunto de sensores (representações de um sensor físico) e tais sensores (Sensor) podem apresentar diferentes streams de dados (Stream) como temperatura, umidade, pressão atmosférica, luminosidade, etc (label), cada um com sua unidade pré-estabelecida (UnitºChPa, %, lux, etc). Espera-se que para uma stream ativa (enabled), novos dados (Data), que representam leituras num determinado momento (timestampUNIX time) sejam publicados ao longo da atividade do sensor instalado, de modo que, novos objetos Data cheguem à stream na ordem de segundos ou minutosO diagrama abaixo representa o parte do modelo conceitual da plataforma IoT proposta: