Sanntid, uten nett, gamle skjermer: slik er det bygget
En endring av spilleliste når skjermen på noen sekunder, visningen fortsetter når nettverket faller ut, og en skjerm kjøpt for åtte år siden er fortsatt støttet. Her er mekanismene som gjør dette mulig, og hva de koster.
Sanntidskontroll — plattformen og skjermen
Prøv selv — Zoom, roter, bruk en effekt: skjermen følger med, og plattformen sender tilbake det den viser.
Skjerm «Resepsjon»
Hver innstilling sendes til skjermen umiddelbart — ingen ny utrulling, ingen befaring.
Skjermspeiling — fra telefonen til skjermen i rommet
Prøv selv — Skriv inn koden som vises på skjermen, velg hva du vil dele, send: telefonen viser deretter det samme som rommet ser.
Skjermdeling
Salle Confluence
Åpne smart-signage.app/cast
og skriv inn koden
K7F2
Skjerm «Møterom Confluence» — spilleliste pågår
Kode vist på skjermen
Del
Sanntid: å skyve, fremfor å spørre
Den vanlige måten å oppdatere en skjerm på, er å la den spørre serveren med faste intervaller: hvert femte minutt, hvert femtende minutt. Innholdet kommer til slutt frem, men med forsinkelsen fra gjeldende syklus, og hver skjerm bruker nettverk selv når ingenting har endret seg.
Smart-Signage fungerer motsatt vei. Plattformen holder en permanent kanal åpen mot hver skjerm, via Server-Sent Events, og skyver hendelsen ut i det øyeblikket den skjer. Du endrer en spilleliste eller en timeplan: endringen sendes umiddelbart, og skjermen iverksetter den i løpet av noen sekunder. Det finnes ingen oppdateringssyklus å vente på, og ingenting overføres så lenge ingenting endrer seg.
Dette valget stiller krav til infrastrukturen. Man må holde et stort antall tilkoblinger åpne til enhver tid, noe som ikke er standardregimet en webserver er innstilt for i utgangspunktet. Reverse-proxyen Caddy ble blant annet valgt for sin robusthet med disse langvarige tilkoblingene.
Kanalen brukes begge veier, og det er det som gjør overvåkingen pålitelig:
- hver skjerm sender et jevnlig livstegn, som viser at den er i live;
- plattformen viser parkens reelle status, skjerm for skjerm: tilkoblet, stille, og hva hver av dem viser akkurat nå;
- en skjerm som slutter å sende livstegn, blir synlig umiddelbart, uten at noen må dra dit for å konstatere det.
Når nettverket faller ut, og når en oppdatering går galt
En skjerm som er avhengig av nettverket, er en potensiell svart skjerm. Innholdet lagres derfor lokalt i mellomlager av en Service Worker: forsvinner forbindelsen, fortsetter visningen med det som allerede ligger der, og skjermen synkroniserer seg på nytt så snart nettverket er tilbake. Ingen trenger å gripe inn på stedet.
En begrensning fra virkeligheten krever her en presisering det er verdt å nevne: Android WebView-komponenter har et øvre tak for størrelsen på filer de aksepterer å lagre i mellomlager. En tung video lastet i én blokk overskrider dette taket og ville aldri blitt lagret i mellomlager, altså aldri tilgjengelig uten nett. Store medier leses derfor i påfølgende segmenter i stedet for på én gang. Det er denne oppdelingen som gjør frakoblet modus reelt pålitelig på dette utstyret.
Den andre risikoen er ikke nettverksbrudd, det er selve oppdateringen. En overvåker skrevet i JavaScript ES5 kjører før applikasjonskoden og styrer Service Worker-en. Hvis tre påfølgende oppstarter ikke er sunne, går skjermen automatisk tilbake til siste kjente sunne versjon. En sikkerhetssperre begrenser dessuten automatiske omlastinger til to per minutt, for å unngå scenariet der skjermen blinker i loop. Det konkrete resultatet: en mislykket utrulling stopper ikke en installert park, den reparerer seg selv.
En eksisterende skjermpark er ikke en park man kaster
Dette er punktet vi gir minst innrømmelser på: programvaren tilpasser seg utstyret som allerede finnes, ikke omvendt. Playeren leveres i to versjoner fra samme kildekode, en moderne versjon for nyere enheter og en ES5-versjon for gamle innebygde nettlesere. Samme funksjoner, samme produkt; det som endres, er måten koden kompileres og leveres på.
Den reelle skjermparken innen digital skiltning er ikke ny. Mange skjermer installert for fem, åtte eller ti år siden har en nettleser låst til opprinnelig versjon, som ingen noensinne vil oppdatere. Chrome 44 og senere versjoner er støttet. LG webOS 4 har en motor som tilsvarer Chromium 53, som ikke kjenner CSS Grid: disse enhetene mottar reserveoppsett skrevet spesielt for dem, slik at komposisjonen holder seg i stedet for å stables tilfeldig.
Dette arbeidet har en kostnad, og vi tar den: hver grensesnittendring må verifiseres mot det gamle grunnlaget før den leveres. Til gjengjeld krever det ikke å bytte skjermer for å bytte visningsprogramvare, og maskinvarebudsjettet holdes utenfor beslutningen.
Det som er støttet:
- Web, på enhver enhet med nettleser;
- Android, med en dedikert applikasjon, også på gamle WebView-komponenter;
- LG webOS, inkludert eldre generasjoner;
- ingen proprietær maskinvare kreves: valget av skjermleverandør forblir ditt eget.
Det en IT-avdeling vil vurdere før de signerer
Hostingen leveres av OVH, på servere lokalisert innenfor EU. Ingen data lagres utenfor EU, og GDPR-samsvaret er dokumentert.
På nettverkssiden trenger skjermen bare utgående tilgang mot plattformen. Den permanente kanalen er en vanlig tilkobling initiert av skjermen selv: det finnes ingen innkommende trafikk å tillate mot deres lokaler, og ingen server å installere på deres infrastruktur.
Så er det avveiningen, for den finnes. Å sikte mot gamle nettlesere hindrer bruk av nye webfunksjoner idet de lanseres, og krever validering av to grunnlag i stedet for ett: utviklingen går saktere, og enkelte grensesnittdetaljer velges bort fordi de ikke ville fungert overalt. Vi foretrekker et litt mer nøkternt grensesnitt som vises på alle skjermer, fremfor et flott grensesnitt som utelukker en del av dem. En kjøper av digital skiltning bytter programvare langt oftere enn de bytter maskinvare, og det er dette forholdet arkitekturen beskytter.
Questions fréquentes
Hvor lang tid tar det før en endring vises på skjermen?
Noen sekunder. Plattformen lar ikke skjermen spørre serveren med faste intervaller: den holder en permanent kanal åpen mot hver skjerm, via Server-Sent Events, og skyver endringen ut i det øyeblikket den lagres. Det finnes derfor ingen oppdateringssyklus å vente på for en endring av spilleliste eller timeplan.
Må eksisterende skjermer byttes ut for å bruke Smart-Signage?
Nei. Playeren leveres i to versjoner fra samme kildekode: en moderne versjon for nyere enheter og en ES5-versjon for gamle innebygde nettlesere. Chrome 44 og senere versjoner er støttet, det samme er LG webOS 4, hvis motor tilsvarer Chromium 53 og mottar reserveoppsett siden CSS Grid mangler. En skjerm kjøpt for åtte år siden er fortsatt brukbar.
Hva skjer hvis nettverket faller ut eller en oppdatering feiler?
Ved nettverksbrudd fortsetter skjermen å vise innhold lagret lokalt i mellomlager av en Service Worker, og synkroniserer seg deretter på nytt når forbindelsen er tilbake. Ved en mislykket oppdatering oppdager en overvåker i JavaScript ES5, som kjører før applikasjonskoden, tre påfølgende usunne oppstarter og setter skjermen tilbake til siste kjente sunne versjon, med en grense på to automatiske omlastinger per minutt.
Hvor lagres dataene, og på hvilke systemer fungerer playeren?
Dataene lagres hos OVH, på servere lokalisert innenfor EU; ingen data lagres utenfor EU, og GDPR-samsvaret er dokumentert. Playeren fungerer på nettet, på Android med en dedikert applikasjon og på LG webOS, uten krav om proprietær maskinvare.