Escolar Documentos
Profissional Documentos
Cultura Documentos
Galoa Proceedings Cobisa 2019 101111
Galoa Proceedings Cobisa 2019 101111
1. Introdução
Embora seja possível criar sistemas baseados em aplicativos de IoT interativos em tempo
real usando ferramentas de programação tradicionais, pode ser difícil, exigindo que os
desenvolvedores aprendam novos protocolos e APIs, criem componentes de processamento de
dados e os vinculem. Para fornecer mais flexibilidade, mantendo a facilidade de uso, várias
plataformas (Baroth, E. and Hartsough, C. 1995; Blackstock, M. and Lea, R. 2012) fornecem
um paradigma de programação de fluxo de dados onde os programas de computador são
modelados como gráficos direcionados conectando redes de nós 'caixa preta' que trocam dados
ao longo conectados arcos. Esse paradigma simples, embora não necessariamente expresso
visualmente, está no cerne de várias linguagens de programação visual. Linguagens de
programação de fluxo de dados visuais (VDFPLs) (Johnston, W.M. et al. 2004) têm sido usadas
em muitos outros domínios, como computação paralela de alto desempenho alavancando
processadores multi-core, música, brinquedos e aplicações industriais. Dois sistemas de fluxo
de dados baseados na web em particular; o Processador WoTKit (Blackstock, M. and Lea, R.
2012) e o Node-RED (Node-RED: http://nodered.org/) começam a abordar cenários interativos
da IoT como esses. O Processor é um sistema multiusuário para executar programas de fluxo
de dados na nuvem, enquanto o NodeRED é um kit de ferramentas para desenvolver fluxos de
dados em dispositivos e servidores. Neste artigo utilizaremos o Node-Red, serão abordadas
algumas ferramentas da plataforma baseadas em bibliotecas abertas open source úteis para
criação de sistemas, aplicativos, dashboards, diagnósticos, gerenciamento de ativos e
biblioteca avançada de machine learning para análise, predição e mineração de dados.
1.1 Node-RED
1.1.1 Conceito
O Node-RED fornece um editor de fluxo baseado em navegador que facilita a conexão de
dispositivos, APIs e serviços on-line usando ampla variedade de blocos (nodes em pallets).
Pode-se implementar os fluxos no ambiente de tempo de execução do Node.js com um único
clique. As aplicações são construídas por fluxos de dados (linhas) e blocos de função. A
plataforma ganhou grande popularidade no espaço da IoT, modelando pequenas partes da
funcionalidade de aplicativos entre dispositivos de IoT, como sensores, câmeras e roteadores
sem fio. Porém atualmente já pode ser utilizado para inúmeros casos, dependendo somente da
criatividade do arquiteto.
2. Justificativa
Modbus TCP:
OPC UA:
Figure 2 – Fluxo para comunicação com um servidor OPC UA.
Ethernet IP:
As APIs lidam com enormes quantidades de dados de um tipo muito variado - de acordo
com isso, uma das principais preocupações de qualquer provedor de dados é a forma específica
de proteger esses dados. A ideia de que os dados devem ser secretos, que devem permanecer
inalterados e que devem estar disponíveis para manipulação é fundamental para qualquer
conversa sobre gerenciamento e manipulação de dados da API.
Existem três métodos principais para adicionar segurança a uma API: autenticação básica
de HTTP, chaves de API e OAuth.
Figure 4 – Fluxo para comunicação com uma API de previsão de tempo.
Esse fluxo carrega uma partição de teste e avalia um modelo previamente treinado.
Este fluxo mostra como usar um modelo treinado durante a implantação. Os dados são
recebidos via mqtt, as previsões são feitas e, em seguida, enviadas de volta.
Figure 9 - Fluxo para carregamento dos dados previstos via modelo treinado.
O Node-Red possui uma biblioteca padrão para a exposição dos dados em HTML. A pallets
possui variados nodes que podem atender a diversos tipos de visualização de dados e gráficos,
além disso possui um node para desenvolvimento do gráfico em Java.
Figure 10 – Dashboard criada no ambiente Node-Red.
4. Disposições Gerais