Tecnologia

Tempo reale, funzionamento offline, schermi datati: come è costruito

Una modifica alla playlist arriva sullo schermo in pochi secondi, la diffusione continua anche quando la rete cade, e uno schermo acquistato otto anni fa resta supportato. Ecco i meccanismi che lo rendono possibile, e il loro costo.

Controllo in tempo reale — la piattaforma e lo schermo

Dimostrazione

A voi la parola — Zoomate, ruotate, applicate un effetto: lo schermo segue, e la piattaforma vi rimanda ciò che mostra.

Schermo « Hall d'ingresso »

Scheda schermo · Hall d'ingresso Online
Visto in diretta
Zoom×1.00
Rotazione del contenuto
Effetto
Animazione

Ogni impostazione parte sullo schermo immediatamente — nessuna ridistribuzione, nessun intervento in loco.

La miniatura « Visto in diretta » è una cattura reale dello schermo rinviata dal player, non un'anteprima locale: vedete ciò che viene diffuso, anche a mille chilometri di distanza. Scena dimostrativa, video simulato.

Cast di schermo — dal telefono allo schermo della sala

Dimostrazione

A voi la parola — Digitate il codice mostrato sullo schermo, scegliete cosa condividere, diffondete: il telefono riproduce allora ciò che vede la sala.

Condivisione schermo

Salle Confluence

Apri smart-signage.app/cast
poi digita il codice

K7F2

Schermo « Sala Confluence » — playlist in corso

Castsmart-signage.app/cast

Codice mostrato sullo schermo

Condividi

La condivisione passa dal browser, in WebRTC: nulla da installare sul telefono né sul computer, e nessun cavo da collegare allo schermo. Il codice cambia a ogni sessione. Dimostrazione — il flusso video è simulato.

Il tempo reale: inviare, invece di interrogare

Il metodo abituale per aggiornare uno schermo consiste nel farlo interrogare il server a intervalli fissi: ogni cinque minuti, ogni quindici minuti. Il contenuto arriva comunque, ma con il ritardo del ciclo in corso, e ogni schermo consuma rete anche quando non è cambiato nulla.

Smart-Signage funziona nel senso opposto. La piattaforma mantiene un canale permanente verso ogni schermo, tramite Server-Sent Events, e vi invia l'evento nel momento stesso in cui si verifica. Modificate una playlist o una pianificazione: la modifica parte immediatamente e lo schermo la applica in pochi secondi. Non c'è nessun ciclo di aggiornamento da attendere, e nulla circola finché nulla cambia.

Questa scelta impegna l'infrastruttura. Occorre mantenere aperte contemporaneamente un gran numero di connessioni, il che non è il regime di funzionamento per cui un server web è configurato di default. Il reverse proxy Caddy è stato scelto in particolare per la sua tenuta su queste connessioni di lunga durata.

Il canale funziona in entrambe le direzioni, ed è ciò che rende la supervisione affidabile:

  • ogni schermo emette un battito regolare, che segnala che è attivo;
  • la piattaforma mostra lo stato reale del parco, schermo per schermo: online, silenzioso, e cosa sta diffondendo in quel momento;
  • uno schermo che smette di emettere diventa visibile immediatamente, senza che nessuno debba recarsi sul posto per constatarlo.

Quando la rete cade, e quando l'aggiornamento va male

Uno schermo dipendente dalla rete è potenzialmente uno schermo nero. I contenuti vengono quindi salvati in cache localmente da un Service Worker: se la connessione sparisce, la diffusione continua con ciò che è già presente in loco, e lo schermo si risincronizza non appena la rete torna disponibile. Nessuno deve intervenire sul posto.

Un vincolo pratico impone qui una precauzione che vale la pena nominare: le WebView Android impongono un limite alla dimensione dei file che accettano di conservare in cache. Un video pesante caricato in un unico blocco supera questo limite e non verrebbe mai messo in cache, quindi mai disponibile offline. Per questo motivo, i media pesanti vengono letti a segmenti successivi anziché in un'unica soluzione. È questa suddivisione a rendere la modalità offline davvero affidabile su questo tipo di hardware.

Il secondo rischio non è il guasto di rete, è l'aggiornamento stesso. Un supervisore scritto in JavaScript ES5 viene eseguito prima del codice applicativo e pilota il Service Worker. Se tre avvii consecutivi non sono sani, lo schermo torna automaticamente all'ultima versione sana conosciuta. Una protezione limita inoltre i ricaricamenti automatici a due al minuto, per escludere lo scenario dello schermo che lampeggia in loop. Conseguenza concreta: un deployment fallito non blocca un parco già installato, si ripara da solo.

Un parco esistente non è un parco da buttare

È il punto su cui cediamo meno: è il software ad adattarsi all'hardware esistente, non il contrario. Il player viene fornito in due versioni derivate dallo stesso codice sorgente, una versione moderna per i dispositivi recenti e una versione ES5 per i browser embedded datati. Stesse funzionalità, stesso prodotto; ciò che cambia è il modo in cui il codice viene compilato e servito.

Il parco reale dell'affissione dinamica non è un parco recente. Molti schermi installati cinque, otto o dieci anni fa integrano un browser bloccato alla sua versione originale, che nessuno aggiornerà mai. Chrome 44 e le versioni successive sono supportate. LG webOS 4 integra un motore equivalente a Chromium 53, che non conosce CSS Grid: questi dispositivi ricevono layout di riserva scritti appositamente per loro, affinché la composizione tenga invece di impilarsi a caso.

Questo lavoro ha un costo, e ce ne assumiamo la responsabilità: ogni evoluzione dell'interfaccia deve essere verificata sulla base datata prima di essere rilasciata. In cambio, cambiare software di diffusione non obbliga a cambiare gli schermi, e il budget hardware esce dall'equazione al momento della decisione.

Cosa è supportato:

  • il Web, su qualsiasi dispositivo dotato di browser;
  • Android, con un'applicazione dedicata, incluse le vecchie WebView;
  • LG webOS, generazioni datate incluse;
  • nessun hardware proprietario imposto: la scelta del fornitore di schermi resta vostra.

Ciò che un reparto IT vorrà verificare prima di firmare

L'hosting è garantito presso OVH, su server situati nell'Unione Europea. Nessun dato è ospitato fuori UE, e la conformità al GDPR è documentata.

Sul fronte rete, lo schermo necessita solo di un accesso in uscita verso la piattaforma. Il canale permanente è una connessione ordinaria avviata dallo schermo stesso: non c'è nessun flusso in entrata da autorizzare verso i vostri locali, né alcun server da installare sulla vostra infrastruttura.

Resta il compromesso, perché ce n'è uno. Puntare su browser datati impedisce di utilizzare le novità del Web appena escono, e obbliga a validare due basi invece di una: lo sviluppo è più lento, e alcune finezze di interfaccia vengono scartate perché non funzionerebbero ovunque. Preferiamo un'interfaccia un po' più sobria che si visualizza su tutti gli schermi a un'interfaccia brillante che ne esclude una parte. Un acquirente di affissione dinamica cambia software molto più spesso di quanto cambi hardware, ed è proprio questo rapporto che l'architettura protegge.

Questions fréquentes

In quanto tempo una modifica arriva sullo schermo?

In pochi secondi. La piattaforma non fa interrogare il server dallo schermo a intervalli fissi: mantiene un canale permanente verso ogni schermo, tramite Server-Sent Events, e vi invia la modifica nel momento in cui viene registrata. Non c'è quindi nessun ciclo di aggiornamento da attendere per un cambio di playlist o di pianificazione.

È necessario sostituire gli schermi esistenti per usare Smart-Signage?

No. Il player viene fornito in due versioni derivate dallo stesso codice sorgente: una versione moderna per i dispositivi recenti e una versione ES5 per i browser embedded datati. Chrome 44 e le versioni successive sono supportate, così come LG webOS 4, il cui motore equivale a Chromium 53 e riceve layout di riserva in assenza di CSS Grid. Uno schermo acquistato otto anni fa resta utilizzabile.

Cosa succede se la rete cade o se un aggiornamento fallisce?

In caso di interruzione di rete, lo schermo continua a diffondere i contenuti salvati in cache localmente da un Service Worker, poi si risincronizza al ritorno della connessione. In caso di aggiornamento difettoso, un supervisore in JavaScript ES5, eseguito prima del codice applicativo, rileva tre avvii non sani consecutivi e riporta lo schermo all'ultima versione sana conosciuta, con un limite di due ricaricamenti automatici al minuto.

Dove sono ospitati i dati, e su quali sistemi funziona il player?

I dati sono ospitati presso OVH, su server situati nell'Unione Europea; nessun dato è ospitato fuori UE e la conformità al GDPR è documentata. Il player funziona sul Web, su Android con un'applicazione dedicata e su LG webOS, senza alcun hardware proprietario imposto.

Pour aller plus loin