Tempo real, offline, ecrãs antigos: como isto é construído
Uma mudança de playlist chega ao ecrã em poucos segundos, a difusão continua quando a rede cai, e um ecrã comprado há oito anos continua a ser suportado. Eis os mecanismos que o tornam possível, e o que custam.
Controlo em tempo real — a plataforma e o ecrã
A si de jogar — Aumente o zoom, rode, aplique um efeito: o ecrã acompanha, e a plataforma devolve-lhe o que ele exibe.
Ecrã «Hall de entrada»
Cada ajuste é aplicado no ecrã imediatamente — sem reimplantação, sem intervenção no local.
Cast de ecrã — do telefone para o ecrã da sala
A si de jogar — Introduza o código exibido no ecrã, escolha o que partilha, difunda: o telefone reproduz então o que a sala vê.
Partilha de ecrã
Salle Confluence
Abra smart-signage.app/cast
depois introduza o código
K7F2
Ecrã «Sala Confluence» — playlist em curso
Código exibido no ecrã
Partilhar
O tempo real: empurrar, em vez de perguntar
A forma habitual de atualizar um ecrã consiste em fazê-lo consultar o servidor a intervalos fixos: a cada cinco minutos, a cada quinze minutos. O conteúdo acaba por chegar, mas com o atraso do ciclo em curso, e cada ecrã consome rede mesmo quando nada mudou.
O Smart-Signage funciona no sentido inverso. A plataforma mantém um canal permanente com cada ecrã, em Server-Sent Events, e envia o evento no momento em que este ocorre. Modifica uma playlist ou um calendário: a alteração parte de imediato e o ecrã aplica-a em poucos segundos. Não há ciclo de atualização a aguardar, e nada circula enquanto nada muda.
Esta escolha compromete a infraestrutura. É preciso manter um grande número de ligações abertas permanentemente, o que não é o regime de funcionamento para o qual um servidor web está configurado por defeito. O proxy reverso Caddy foi escolhido, entre outras razões, pelo seu desempenho nessas ligações longas.
O canal serve nos dois sentidos, e é isso que torna a supervisão honesta:
- cada ecrã emite um batimento cardíaco regular, que sinaliza que está ativo;
- a plataforma mostra o estado real do parque de ecrãs, ecrã a ecrã: online, silencioso, e o que cada um está a exibir naquele momento;
- um ecrã que deixa de emitir torna-se visível de imediato, sem que ninguém tenha de se deslocar para o constatar.
Quando a rede cai, e quando uma atualização corre mal
Um ecrã que depende da rede é um ecrã preto em potência. Os conteúdos ficam por isso em cache localmente através de um Service Worker: se a ligação desaparecer, a difusão continua com o que já está no local, e o ecrã ressincroniza-se assim que a rede volta. Ninguém precisa de intervir no local.
Uma restrição de terreno impõe aqui uma precaução que vale a pena nomear: as WebViews Android limitam o tamanho dos ficheiros que aceitam manter em cache. Um vídeo pesado carregado de uma só vez ultrapassa esse limite e nunca ficaria em cache, logo nunca disponível offline. Os médias grandes são por isso lidos em blocos sucessivos em vez de de uma só vez. É essa divisão que torna o modo offline realmente fiável neste tipo de material.
O segundo risco não é a falha de rede, é a própria atualização. Um supervisor escrito em JavaScript ES5 executa-se antes do código aplicacional e pilota o Service Worker. Se três arranques consecutivos não forem saudáveis, o ecrã regressa sozinho à última versão saudável conhecida. Um limite adicional restringe ainda as reinicializações automáticas a duas por minuto, para evitar o cenário do ecrã que pisca em ciclo. Consequência concreta: uma implementação falhada não bloqueia um parque instalado, ele repara-se sozinho.
Um parque existente não é um parque para deitar fora
É o ponto onde menos cedemos: o software adapta-se ao equipamento existente, não o contrário. O player é entregue em duas versões geradas a partir do mesmo código-fonte, uma versão moderna para aparelhos recentes e uma versão ES5 para navegadores embutidos antigos. Mesmas funções, mesmo produto; o que muda é a forma como o código é compilado e servido.
O parque real da sinalização digital não é um parque recente. Muitos ecrãs instalados há cinco, oito ou dez anos trazem um navegador fixo na sua versão de origem, que ninguém irá atualizar. O Chrome 44 e as versões seguintes são suportados. O LG webOS 4 traz um motor equivalente ao Chromium 53, que não conhece CSS Grid: estes aparelhos recebem composições de recurso escritas especificamente para eles, para que a composição se mantenha em vez de se empilhar ao acaso.
Este trabalho tem um custo, e assumimo-lo: cada evolução de interface tem de ser verificada na base antiga antes de ser lançada. Em troca, mudar de software de sinalização não obriga a mudar os ecrãs, e o orçamento de hardware sai da equação no momento da decisão.
O que é suportado:
- a Web, em qualquer aparelho com navegador;
- Android, com uma aplicação dedicada, incluindo em WebViews antigas;
- LG webOS, gerações antigas incluídas;
- nenhum hardware proprietário imposto: a escolha do fornecedor de ecrãs continua a ser sua.
O que um departamento de TI vai querer verificar antes de assinar
O alojamento é assegurado pela OVH, em servidores situados na União Europeia. Nenhum dado é alojado fora da UE, e a conformidade com o RGPD está documentada.
Do lado da rede, o ecrã só precisa de um acesso de saída para a plataforma. O canal permanente é uma ligação comum iniciada pelo próprio ecrã: não há fluxo de entrada a autorizar para as suas instalações, nem servidor a instalar na sua infraestrutura.
Resta o compromisso, porque existe um. Visar navegadores antigos impede o uso das novidades da Web assim que estas surgem, e obriga a validar duas bases em vez de uma: o desenvolvimento é mais lento, e certos refinamentos de interface são postos de lado porque não funcionariam em todo o lado. Preferimos uma interface um pouco mais sóbria que se exibe em todos os ecrãs a uma interface brilhante que deixa uma parte deles de fora. Um comprador de sinalização digital muda de software com muito mais frequência do que muda de hardware, e é essa relação que a arquitetura protege.
Questions fréquentes
Em quanto tempo uma alteração chega ao ecrã?
Em poucos segundos. A plataforma não faz o ecrã consultar o servidor a intervalos fixos: mantém um canal permanente com cada ecrã, em Server-Sent Events, e envia a alteração no momento em que é registada. Não há, portanto, ciclo de atualização a aguardar para uma mudança de playlist ou de calendário.
É preciso substituir os ecrãs existentes para usar o Smart-Signage?
Não. O player é entregue em duas versões geradas a partir do mesmo código-fonte: uma versão moderna para aparelhos recentes e uma versão ES5 para navegadores embutidos antigos. O Chrome 44 e as versões seguintes são suportados, assim como o LG webOS 4, cujo motor equivale ao Chromium 53 e recebe composições de recurso por falta de CSS Grid. Um ecrã comprado há oito anos continua utilizável.
O que acontece se a rede cair ou se uma atualização falhar?
Em caso de corte de rede, o ecrã continua a difundir os conteúdos guardados em cache localmente por um Service Worker, ressincronizando-se depois assim que a ligação volta. Em caso de atualização defeituosa, um supervisor em JavaScript ES5 que se executa antes do código aplicacional deteta três arranques não saudáveis consecutivos e reverte o ecrã para a última versão saudável conhecida, com um limite de duas reinicializações automáticas por minuto.
Onde são alojados os dados, e em que sistemas funciona o player?
Os dados são alojados na OVH, em servidores situados na União Europeia; nenhum dado é alojado fora da UE e a conformidade com o RGPD está documentada. O player funciona na Web, no Android com uma aplicação dedicada e no LG webOS, sem hardware proprietário imposto.