Devido a aplicativos e componentes no ecossistema global IoT estarem cada vez mais inter-relacionados, torna-se essencial ser capaz de conectá-los para alcançar a automação. A conectividade avançada dos sistemas permite eliminar tarefas de programação repetitivas e, portanto, permite tempo livre para pesquisa e desenvolvimento.
Uma das ferramentas para fazer diferentes sistemas interagirem entre si é Node-RED – uma ferramenta de programação simples para vincular serviços on-line, dispositivos de hardware e APIs de forma interativa e visualmente atraente. Ele fornece um editor baseado em navegador e um amplo conjunto de nodes para criar e implantar vários fluxos funcionais.
Dentro deste artigo, analisaremos uma solução que implementamos para uma rápida entrega do Node-RED e implementaremos um fluxo de amostra do analisador de dados de transmissão do Twitter para armazenar e alertar sobre postagens de qualquer tema em que você esteja interessado.
Uma maneira simples de executar a instância Node-RED dentro de uma nuvem
No Jelastic, o ambiente de desenvolvimento Node-RED pronto para uso é fornecido como um pacote de instalação com um único clique. Ele está disponível no Jelastic JPS Collection no GitHub juntamente com outras soluções pré-configuradas e pode ser instalado em qualquer Plataforma de versão Jelastic 4.9.5 e superior.
Todos os recursos e configurações necessários para executar o Node-RED no Jelastic estão declarados dentro do arquivo de pacote manifest.jps, onde os principais pontos a considerar são:
- nodered/node-red-docker Imagem Docker com a tag mais recente é usada como base de solução
- a instância criada do Node-RED é atribuída 16 cloudlets dinâmicas, que permitem escalar verticalmente até 2 GiB de RAM e 6.4 GHz de CPU
- o end point anexado automaticamente permite acessar o painel de administração Node-RED através de uma porta alocada aleatoriamente em Shared Load Balancer (eliminando a necessidade de comprar o endereço IP público)
Então, vamos trazê-lo à vida – faça o login na sua conta Jelastic Cloud e continue com as seguintes etapas.
- Na página do painel principal, clique em Importar na parte superior e mude para a guia URL. Aqui, insira o link para o arquivo manifest.jps correspondente:
Https://github.com/jelastic-jps/node-red/blob/master/manifest.jps
Clique em Importar para continuar.
- Na caixa de diálogo de instalação aberta:
- digite o nome do Ambiente para ser usado como seu nome de host interno
- opcionalmente, especifique o Nome de Exibição do ambiente (chamado alias, para exibição no painel e no terminal SSH)
- selecione um ambiente Região (se houver múltiplos disponíveis)
Clique em Instalar e espere um pouco para ser exibida uma mensagem de notificação sobre a conclusão do processo.
Clique em Abrir no navegador para acessar o ambiente de desenvolvimento do Node-RED e comece a criar seu primeiro projeto (o chamado Flow).
Além disso, aprenderemos a interagir com este assistente através de um exemplo prático do rastreador de conteúdo do Twitter – criar uma ferramenta tão útil e prática também o ajudará a começar com o Node-RED o mais rápido possível.
Implantando o analisador de feed do Twitter como Node-RED Flow
Assim, o aplicativo que vamos construir é destinado a pesquisar através do feed do Twitter em um critério especificado (palavra-chave, hashtag e/ou nome de usuário), realizar análises de sentimento de postagens observadas e processá-las em conformidade. Dependendo do caráter da mensagem, a ação tomada deve ser:
- ao detectar conteúdo negativo – alertar por mensagem de e-mail
- para resultados positivos e neutros – armazenar uma menção dentro de um arquivo dedicado dentro de um contêiner, para cada tipo de característica separadamente
Para análise, usaremos as hashtags #Cloud, #CloudComputing e #PaaS como base para a investigação da área de hospedagem correspondente. Obviamente, você é livre para especificar quaisquer outros parâmetros de pesquisa conforme seus requisitos – por exemplo, o nome da sua empresa.
Toda a estrutura do aplicativo se parecerá como está abaixo:
Aqui, os seguintes tipos de componentes (nodes) estão envolvidos:
- Twitter – usado para autenticar com sua conta do Twitter e especificar palavras-chave de pesquisa
- Sentimento – projetado para analisar postagens e retornar um valor correspondente (negativo, positivo ou neutro)
- Switch – destinado a avaliar os escores de sentimento e a realizar uma ação correspondente de acordo com o tom definido
- Dois Arquivos Node – fornecidos para armazenar mensagens positivas e negativas
- Email – permite receber mensagens de alerta instantâneas com feedback negativo
No total, esse fluxo permite que você reaja rapidamente ao feedback negativo e, simultaneamente, aprenda sobre a experiência do usuário, melhores práticas, notícias e eventos em postagens neutras e positivas. Desta forma, a construção de tal ferramenta irá ajudá-lo a obter informações relevantes a tempo e ficar atento ao que está acontecendo no mercado.
Então, abaixo, consideraremos os parâmetros que deveriam ser ajustados para cada um desses tipos de nodes e, consequentemente, implementaremos o fluxo de trabalho acima descrito.
Node do Twitter
Dentro do editor de fluxo Node-RED, expanda a seção social e arraste e solte o ícone do twitter para colocá-lo na folha. Esta será boa parte da base da nossa aplicação.
Clique duas vezes no node escolhido e especifique as seguintes informações na caixa de diálogo aberta:
- ID do Twitter – clique no ícone do lápis para Autorizar o aplicativo com o login e a senha da sua conta do Twitter; após esta operação passar com sucesso, selecione Adicionar ao fim
- Pesquisar – escolha uma área para realizar pesquisas – por exemplo, todos os tweets públicos
- Para (for) – especifique um termo de pesquisa (palavra-chave, hashtag e/ou nome de usuário); várias entradas podem ser separadas com espaços (para que o bot procure pela menção conjunta) ou vírgulas sem espaços (para detectar termos separados)
- Nome – opcionalmente, dê algum nome personalizado ao node (ou deixe o padrão)
Selecione Feito logo acima para prosseguir.
Dica: para uma análise de feedback mais abrangente, anexe um node de depuração adicional ao principal do twitter, para que as postagens obtidas possam ser revisadas diretamente pelo editor.
Como resultado, os registros de todos os tipos semânticos estarão disponíveis dentro da guia de depuração da barra lateral, sendo armazenados dentro do seu registro msg.payload padrão.
Node de Sentimento
Agora, expanda a seção de análise e escolha um node de sentimento – ele irá analisar as postagens encontradas e retornar um valor de sentimento correspondente para determinar se um tweet é negativo, positivo ou neutro.
Este componente não requer ajustes adicionais, a menos que você queira alterar seu nome (caso contrário, clique duas vezes neste bloco, especifique a denominação preferida e clique em Concluído).
Node Switch
Agora vamos adicionar outro elemento switch da seção de função. Pretende-se avaliar o escore de sentimento recebido e tomar uma ação correspondente de acordo com o tom definido.
Dica: O índice de sentimento médio varia de -5 (o que significa um tweet muito negativo) para +5 (um feedback muito positivo), sendo 0 um valor neutro. Pontuações fora deste intervalo são consideradas como valores extremos.
Para ajustar as configurações do node do switch, clique duas vezes nele e forneça os seguintes detalhes na caixa de diálogo aberta:
- Nome – tipo do nome do node personalizado (ou deixe o padrão)
- Propriedade – especifique o valor sentiment.score e +add as seguintes regras para determinar qual valor sentimental deve ser considerado neutro, positivo ou negativo, respectivamente:
- == 0
- > 0
- < 0
Selecione verificar todas as regras na caixa inferior e clique em Concluído.
Nodes de Arquivos
Agora, vamos configurar o registro das mensagens neutras e complementares observadas. Mas antes da inserção do node correspondente, você precisa criar o(s) arquivo(s) para tais menções para serem armazenados – então, abra o Gerenciador de Configuração para o seu contêiner Node-RED e digite o diretório de destino desejado.
Aqui, selecione Novo arquivo no menu de opções, digite um nome para ele (por exemplo, neutro) e pressione Enter. Repita essas ações para criar outro arquivo para tweets positivos.
Nota: Seu aplicativo deve ter permissões suficientes para acessar e gravar nos arquivos criados. Para garantir isso, conecte-se ao seu contêiner Node-RED via SSH Gate da seguinte maneira:
- gere um par de chaves SSH
- adicione sua chave pública SSH ao painel de controle
- acesse sua conta via protocolo SSH
Uma vez que a conexão é estabelecida, execute o comando chown node-red {filename} no diretório de destino.
Em seguida, expanda a seção do assistente de armazenamento e arraste o node de arquivo composto para a folha.
Clique duas vezes neste bloco para ajustar os parâmetros apropriados:
- Nome do arquivo – especifique um caminho completo para um arquivo de armazenamento de destino
- Ação – selecione anexar ao arquivo para adicionar novos tweets ao final de um arquivo. Opcionalmente, marque as seguintes opções adicionais disponíveis para esta configuração:
- Adicionar nova linha (\n) a cada carga útil? – para uma nova linha a ser adicionada a cada mensagem (pode ser desligada, se necessário)
- Criar diretório se ele não existir? – para criar um novo diretório se ele não existir
- Nome – digite o número de índice da condição do node do switch necessário para que os tweets com o valor semântico correspondente sejam escritos neste arquivo (por exemplo, 1 para postagens neutras neste exemplo)
Clique em Concluído para confirmar. Repita essas operações para configurar mais um node de arquivo que processará e salvará tweets positivos.
Node de email
O último componente de e-mail exigido pode estar localizado na seção social.
Coloque-o dentro da área de trabalho e clique duas vezes para fornecer os seguintes detalhes:
- Para – digite um endereço de e-mail, os alertas em tweets negativos devem ser enviados para ele
- Servidor e Porta – deixe os valores padrão (host gmail.com e número de porta 465 correspondente)
- Id do usuário & Senha – forneça credenciais a uma conta de e-mail a partir da qual as notificações serão enviadas
- Nome – digite o número de índice da condição do node switch correspondente de acordo com o tipo de publicação de que você gostaria de receber os alertas (no nosso caso, o intervalo semântico para tweets negativos foi definido em 3º)
Nota: Para garantir que o node de e-mail definitivamente funcionará corretamente, sua conta de e-mail (ou seja, aquela da qual os alertas serão enviados) deve atender aos seguintes requisitos:
- ter a configuração Acesso a aplicativos menos seguros ativada
- ser protegido com uma senha de 8 caracteres forte (contendo letras maiúsculas/minúsculas, números e símbolos)
Quando terminar, clique em Concluído.
Nota: Devido aos limites inerentes da API do Twitter, você pode exibir o aviso de advertência do limite de taxa, exibido sob o node do twitter, se mudar as configurações dos nodes e/ou clicar em Implantar com muita frequência. Isso não afeta a operabilidade de fluxo real – basta esperar um minuto para que este aviso seja substituído por sua(s) palavra(s) de pesquisa em vez disso.
Verificando Resultados
Então, o seu bot do Twitter artesanal começou a funcionar, rastreando as postagens atuais e processando as informações sobre as quais você perguntou. Posteriormente, os resultados desta análise podem ser verificados da seguinte forma:
- para menções neutras/positivas – clique em Configuração para a instância do Node-RED no seu painel Jelastic e navegue até o arquivo apropriado; seu conteúdo pode ser revisado apenas através do gerenciador de arquivos incorporado:
- para tweets negativos – apenas rastreie novas entradas dentro de sua caixa de e-mail
É isso aí! O fluxo Node-RED agora está pronto e funcionando para analisar dados de transmissão do Twitter. Experimente você mesmo, obtendo uma conta em uma das Plataformas de Hospedagem de Nuvem.
Tem dúvidas sobre o ambiente de desenvolvimento do Node-RED? Não hesite em perguntar nos comentários abaixo.
***
Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://blog.jelastic.com/2017/06/22/node-red-cloud-hosting-for-tweeter-feed-analysis/