Sistema de monitoramento de terminais de sinalização digital baseado em testes contínuos

Introdução

Este artigo apresenta resultados de um projeto que envolveu o desenvolvimento de uma solução para auxiliar com o monitoramento dos múltiplos terminais (computadores com as TVs). Este relatório foi baseado em um projeto real. O tópico relaciona-se com testes e qualidade, sistemas em tempo-real, engenharia de software, governança, dentre outros.

Sistemas modernos de sinalização digital utilizam do meio Internet para a transmissão de dados. Tal solução é uma abordagem efetiva pois minimiza-se os custos de transmissão pois os dados enviados são mais leves — pacotes de dados, que são os fragmentos das páginas Web que são montadas nos terminais, ou seja, nos casos mais modernos não se faz uso de transmissão vídeo em tempo real. Tal modelo oferece mais eficiência na questão da gestão dos painéis em ambientes internos pois estes ambientes já possuem uma rede interna (web, TCP/IP), por exemplo contando com uma infraestutura cabeada, ou em alguns casos uma infra estrutura via WIFI. Ainda, para que essa "mágica" funcione, assume-se uma pilha mais complexa de hardware e software pois em cada terminal temos um PC, com um sistema operacional completo e ainda toda a camada de apresentação (Tela Social) do player.

Visão geral monitoramento

A imagem abaixo exemplifica o que fizemos neste projeto — uma página Web, disponibilizada na intranet, que funcionou como uma interface permitindo que gestores (o grupo de comunicação) possa verificar todas as imagens de todas as telas distribuídas nos corredores da instituição. Nessa imagem você vê a captura da tela desse painél de gestão que mostra dentro da imagem outras 16 telas. Cada pequeno quadro interno identifica um terminal e também o bloco ou local onde a tela se encontra:

Gestão multi telas Tela Social

Como a solução foi elaborada

Cada terminal, player, consiste em um PC com o sistema operacional Linux, antes mesmo do sistema do player ser executado. A solução feita foi baseada em um sistema contínuo de captura das imagens apresentadas na placa de vídeo de cada terminal. Fizemos isso com o uso de um capturador da tela do X, uma vez que a infraestrutura do OS é Linux. Também colocamos a infraestrutura do cron, ou seja, permitindo que essa captura da tela seja feita a cada minuto. Assim que capturada a image, ainda fazemos um processo de transformação para PNG, ou seja, para que eventualmente a imagem possa ser visualizada por um navegador padrão, como Firefox. Essa imagen, capturada e transformada, é então transferida para um servidor Web que é localizado no próprio terminal. Com isso, uma vez dentro da rede, qualquer um dos terminais pode ser acessado via Web. Com isso, fizemos uma simples página HTML que faz referência para todas as 16 imagens nos 16 servidores.

Caso de uso: erro de conexão

Acima você pode ver que algumas das telas apresentam o título "Unable to connect". Essa experiência de interface apresenta um caso de uso importante, significando que os terminais do bloco10 e bloco06 não estão disponíveis. Se elas não estão servindo suas 'screenshots' , o departamento técnico poderá averiguar e corrigir o problema. O comportamento pode ocorrer devido a diversos fatores como queda da infra-estrutura de rede, queda de energia elétrica no terminal ou defeito no terminal.

Caso de uso: monitoramento antes mesmo do sistema da tela

O sistema Linux faz o processo de inicialização padrão, no modo texto. Depois, inicia a conexão com rede, inicia o sistema de monitoramento.

Caso de uso: uso de memória ultrapassado

Ainda, outro sistema é a base para um eventual sistema de monitoramento com relação ao uso da memória. Temos um processo Python que verifica se o browser engine ultrapassou limite de memória, ou se o processo não mais existe. Em caso de falha, o sistema lança a aplicação cliente, browser engine, novamente. Este aplicativo, o browser engine, está configurado para inicializar a aplicação de nível de conteúdo do Tela Social.

Caso de uso: agregação de dados para qualidade

Nessa arquitetura, tem-se um sistema mediador, ou intermediário, que lança um conjunto de processos com o objetivo de gerar relatórios do estado de cada terminal — são eles:

  • Ping — Um script que faz ping na rede de tempos em tempos e agrega valores para fins de relatório e análise dos dados;

  • Screenshot — Um script que faz captura da tela, como indicado acima, que converte os dados das imagens no formato JPG;

  • Quality — Um servidor que é lançado para disponibilizar o acesso com relação a esses dados básicos de testes e das imagens.

Feedback

Estes sistemas, de monitoramento e qualidade, representam uma versão preliminar ou seja, são funcionais e exploram, independente do estado da técnica, o conceito e intenção, acima de tudo. Foram colocados em prática diante dos desafios das atividades deste projeto que contou com contribuições de vários parceiros do projeto, como o grupo técnico e de comunicação no Parque Tecnológico Itaipu. Se sua instituição tem um desafio ou caso de uso ou necessidades em qualidade, entre em contato. A ideia é criarmos mais casos de testes para constante melhorias em qualidade em sistemas de sinalização digital web.

Referências