Reaaliaika, offline-tila, vanhat näytöt: miten se on rakennettu
Soittolistan muutos saapuu näytölle muutamassa sekunnissa, lähetys jatkuu kun verkko katkeaa, ja kahdeksan vuotta sitten ostettu näyttö pysyy tuettuna. Tässä mekanismit jotka tekevät sen mahdolliseksi, ja mitä ne maksavat.
Reaaliaikainen ohjaus — alusta ja näyttö
Nyt sinun vuorosi — Zoomaa, käännä, käytä efektiä: näyttö seuraa, ja alusta näyttää sinulle takaisin mitä se lähettää.
Näyttö “Aula”
Jokainen säätö näkyy näytöllä välittömästi — ei uudelleenkäyttöönottoa, ei toimenpiteitä paikan päällä.
Näytönjako — puhelimesta huoneen näyttöön
Nyt sinun vuorosi — Syötä näytöllä näkyvä koodi, valitse jaettava sisältö, lähetä: puhelin näyttää sitten sen, mitä huone näkee.
Näytönjako
Salle Confluence
Avaa smart-signage.app/cast
ja syötä koodi
K7F2
Näyttö “Confluence-huone” — soittolista käynnissä
Näytöllä näkyvä koodi
Jaa
Reaaliaika: työntäminen, ei kysely
Tavallinen tapa päivittää näyttöä on saada se kyselemään palvelinta kiinteän välein: viiden minuutin, viidentoista minuutin välein. Sisältö saapuu lopulta, mutta käynnissä olevan syklin viiveellä, ja jokainen näyttö kuluttaa verkkoa vaikka mikään ei olisi muuttunut.
Smart-Signage toimii toisin päin. Alusta ylläpitää pysyvää kanavaa jokaiseen näyttöön, Server-Sent Events -tekniikalla, ja työntää tapahtuman sillä hetkellä kun se syntyy. Muutat soittolistaa tai ajastusta: muutos lähtee heti ja näyttö soveltaa sen muutamassa sekunnissa. Ei päivityssykliä odotettavaksi, eikä mikään liiku kun mikään ei muutu.
Tämä valinta sitoo infrastruktuuria. Pitää pitää auki valtava määrä yhteyksiä jatkuvasti, mikä ei ole se toimintatila, johon verkkopalvelin on oletuksena säädetty. Caddy-käänteisproxy valittiin erityisesti sen kyvystä kestää näitä pitkiä yhteyksiä.
Kanava palvelee molempiin suuntiin, ja juuri se tekee valvonnasta rehellistä:
- jokainen näyttö lähettää säännöllisen sykäyksen, joka ilmoittaa sen olevan elossa;
- alusta näyttää laitekannan todellisen tilan, näyttö kerrallaan: yhteydessä, hiljainen, ja mitä kukin lähettää juuri sillä hetkellä;
- näyttö, joka lakkaa lähettämästä, tulee heti näkyväksi, ilman että kenenkään tarvitsee käydä paikan päällä toteamassa sitä.
Kun verkko katkeaa, ja kun päivitys epäonnistuu
Verkosta riippuva näyttö on potentiaalisesti musta näyttö. Sisällöt tallennetaan siis paikallisesti Service Workerin välimuistiin: jos yhteys katoaa, lähetys jatkuu jo paikalla olevalla, ja näyttö synkronoituu itsenäisesti verkon palautuessa. Kenenkään ei tarvitse toimia paikan päällä.
Käytännön rajoite pakottaa mainitsemaan varotoimen: Android-WebViewt rajoittavat välimuistiin hyväksymiensä tiedostojen kokoa. Yhtenä palana ladattu raskas video ylittää tämän rajan eikä pääsisi koskaan välimuistiin, siis ei koskaan saatavilla offline-tilassa. Isot mediat luetaan tästä syystä peräkkäisinä jaksoina yhden sijaan. Juuri tämä jaottelu tekee offline-tilasta todella luotettavan tällä laitteistolla.
Toinen riski ei ole verkkokatko, vaan itse päivitys. JavaScript ES5:llä kirjoitettu valvoja suoritetaan ennen sovelluskoodia ja ohjaa Service Workeria. Jos kolme peräkkäistä käynnistystä ei ole terveitä, näyttö palaa itsestään viimeiseen tunnettuun terveeseen versioon. Suojaus rajoittaa lisäksi automaattiset uudelleenlataukset kahteen minuutissa, jotta vältetään silmukassa vilkkuva näyttö. Käytännön seuraus: epäonnistunut käyttöönotto ei jumita asennettua laitekantaa, se korjaa itsensä.
Olemassa oleva laitekanta ei ole hylättävä laitekanta
Tässä kohtaa emme jousta: ohjelmisto mukautuu olemassa olevaan laitteistoon, ei toisin päin. Player toimitetaan kahtena versiona samasta lähdekoodista, moderni versio uusille laitteille ja ES5-versio vanhoille sisäänrakennetuille selaimille. Samat toiminnot, sama tuote; se mikä muuttuu on koodin kääntämis- ja tarjoilutapa.
Digitaalisen kyltityksen todellinen laitekanta ei ole tuore laitekanta. Monet viisi, kahdeksan tai kymmenen vuotta sitten asennetut näytöt sisältävät selaimen, joka on jäänyt jumiin alkuperäiseen versioonsa, jota kukaan ei koskaan päivitä. Chrome 44 ja sitä uudemmat versiot ovat tuettuja. LG webOS 4 sisältää Chromium 53:a vastaavan moottorin, joka ei tunne CSS Gridiä: nämä laitteet saavat niitä varten kirjoitettuja varajärjestelyjä, jotta asettelu pysyy koossa sen sijaan että se pinoutuisi sattumanvaraisesti.
Tällä työllä on hintansa, ja hyväksymme sen: jokainen käyttöliittymän muutos pitää tarkistaa vanhalla alustalla ennen julkaisua. Vastineeksi näyttöohjelmiston vaihtaminen ei pakota vaihtamaan näyttöjä, ja laitteistobudjetti jää pois yhtälöstä päätöstä tehtäessä.
Mikä on tuettu:
- Web, millä tahansa selaimella varustetulla laitteella;
- Android, omalla sovelluksella, myös vanhoilla WebView-toteutuksilla;
- LG webOS, vanhat sukupolvet mukaan lukien;
- ei mitään pakollista suljettua laitteistoa: näyttöjen toimittajan valinta pysyy sinun.
Mitä IT-osasto haluaa tarkistaa ennen allekirjoitusta
Isännöinti hoidetaan OVH:lla, Euroopan unionissa sijaitsevilla palvelimilla. Mitään tietoja ei isännöidä EU:n ulkopuolella, ja GDPR-vaatimustenmukaisuus on dokumentoitu.
Verkon puolelta näyttö tarvitsee vain uloslähtevän yhteyden alustalle. Pysyvä kanava on tavallinen yhteys, jonka näyttö itse aloittaa: ei sisääntulevaa liikennettä sallittavaksi tiloihisi, eikä palvelinta asennettavaksi infrastruktuurillesi.
Jäljelle jää kompromissi, koska sellainen on. Vanhojen selainten tavoittelu estää verkon uutuuksien käytön heti niiden julkaisuhetkellä, ja pakottaa vahvistamaan kaksi alustaa yhden sijaan: kehitys on hitaampaa, ja tietyt käyttöliittymän hienoudet jätetään pois, koska ne eivät toimisi kaikkialla. Suosimme hieman vaatimattomampaa käyttöliittymää, joka näkyy kaikilla näytöillä, kuin loistavaa käyttöliittymää, joka jättää osan ulkopuolelle. Digitaalisen kyltityksen ostaja vaihtaa ohjelmistoa paljon useammin kuin laitteistoa, ja juuri tätä suhdetta arkkitehtuuri suojelee.
Questions fréquentes
Kuinka nopeasti muutos saapuu näytölle?
Muutamassa sekunnissa. Alusta ei saa näyttöä kyselemään palvelinta kiinteän välein: se ylläpitää pysyvää kanavaa jokaiseen näyttöön, Server-Sent Events -tekniikalla, ja työntää muutoksen sillä hetkellä kun se tallennetaan. Ei siis päivityssykliä odotettavaksi soittolistan tai ajastuksen muutokselle.
Pitääkö olemassa olevat näytöt vaihtaa Smart-Signagen käyttöä varten?
Ei. Player toimitetaan kahtena versiona samasta lähdekoodista: moderni versio uusille laitteille ja ES5-versio vanhoille sisäänrakennetuille selaimille. Chrome 44 ja sitä uudemmat versiot ovat tuettuja, samoin LG webOS 4, jonka moottori vastaa Chromium 53:a ja saa varajärjestelyjä CSS Gridin puuttuessa. Kahdeksan vuotta sitten ostettu näyttö pysyy käyttökelpoisena.
Mitä tapahtuu, jos verkko katkeaa tai päivitys epäonnistuu?
Verkkokatkon sattuessa näyttö jatkaa paikallisesti Service Workerin välimuistiin tallennettujen sisältöjen lähettämistä, ja synkronoituu sitten yhteyden palautuessa. Viallisen päivityksen sattuessa ennen sovelluskoodia suoritettava JavaScript ES5 -valvoja tunnistaa kolme peräkkäistä epätervettä käynnistystä ja palauttaa näytön viimeiseen tunnettuun terveeseen versioon, rajoittaen automaattiset uudelleenlataukset kahteen minuutissa.
Missä tiedot isännöidään, ja millä järjestelmillä player toimii?
Tiedot isännöidään OVH:lla, Euroopan unionissa sijaitsevilla palvelimilla; mitään tietoja ei isännöidä EU:n ulkopuolella ja GDPR-vaatimustenmukaisuus on dokumentoitu. Player toimii Webissä, Androidilla omalla sovelluksella ja LG webOS:llä, ilman pakollista suljettua laitteistoa.