Gerçek zamanlı, çevrimdışı, eski ekranlar: bu nasıl inşa edildi
Bir oynatma listesi değişikliği ekrana birkaç saniye içinde ulaşır, ağ kesildiğinde yayın devam eder ve sekiz yıl önce satın alınmış bir ekran desteklenmeye devam eder. İşte bunu mümkün kılan mekanizmalar ve bunların maliyeti.
Gerçek zamanlı kontrol — platform ve ekran
Sıra sizde — Yakınlaştırın, döndürün, bir efekt uygulayın: ekran anında takip eder ve platform size ekranda ne gösterildiğini geri bildirir.
"Giriş holü" ekranı
Her ayar anında ekrana yansır — yeniden dağıtım yok, sahada müdahale yok.
Ekran yansıtma — telefondan salon ekranına
Sıra sizde — Ekranda görünen kodu girin, neyi paylaşacağınızı seçin, yayınlayın: telefon artık salonun gördüğünü yansıtır.
Ekran paylaşımı
Salle Confluence
Açın smart-signage.app/cast
ardından kodu girin
K7F2
"Confluence Salonu" ekranı — oynatma listesi devam ediyor
Ekranda gösterilen kod
Paylaş
Gerçek zamanlılık: sorgulamak yerine göndermek
Bir ekranı güncellemenin alışılmış yolu, sunucuyu sabit aralıklarla sorgulatmaktır: her beş dakikada bir, her on beş dakikada bir. İçerik sonunda ulaşır, ancak mevcut döngünün gecikmesiyle ve hiçbir şey değişmemiş olsa bile her ekran ağ tüketir.
Smart-Signage tam tersi yönde çalışır. Platform, Server-Sent Events üzerinden her ekrana kalıcı bir kanal tutar ve olay gerçekleştiği anda bu kanala gönderir. Bir oynatma listesini veya bir planlamayı değiştirirsiniz: değişiklik hemen gider ve ekran birkaç saniye içinde uygular. Beklenecek bir yenileme döngüsü yoktur ve hiçbir şey hareket etmediği sürece hiçbir şey dolaşmaz.
Bu tercih altyapıyı bağlar. Sürekli açık tutulan çok sayıda bağlantıyı desteklemek gerekir; bu, bir web sunucusunun varsayılan olarak ayarlandığı çalışma rejimi değildir. Caddy ters proxy'si özellikle bu uzun bağlantılardaki performansı nedeniyle tercih edilmiştir.
Kanal her iki yönde de hizmet verir ve izlemeyi dürüst kılan da budur:
- her ekran, canlı olduğunu bildiren düzenli bir kalp atışı yayar;
- platform, filonun gerçek durumunu ekran ekran gösterir: çevrimiçi, sessiz ve her birinin o anda ne yayınladığı;
- yayın yapmayı bırakan bir ekran, bunu kimsenin yerinde gidip kontrol etmesine gerek kalmadan anında görünür hale gelir.
Ağ kesildiğinde ve güncelleme ters gittiğinde
Ağa bağımlı bir ekran, potansiyel bir kara ekrandır. Bu nedenle içerikler bir Service Worker tarafından yerel olarak önbelleğe alınır: bağlantı kesilirse yayın, halihazırda yerinde olan içerikle devam eder ve ağ geri geldiğinde ekran yeniden senkronize olur. Sahada hiç kimsenin müdahale etmesi gerekmez.
Burada isimlendirilmesi gereken bir saha kısıtı bir önlem gerektiriyor: Android WebView'lar önbelleğe almayı kabul ettikleri dosya boyutuna bir üst sınır koyar. Tek bir blok halinde yüklenen ağır bir video bu sınırı aşar ve asla önbelleğe alınmaz, dolayısıyla çevrimdışı hiçbir zaman kullanılamaz. Büyük medyalar bu nedenle bir kerede değil, ardışık bölümler halinde okunur. Çevrimdışı modu bu donanımda gerçekten güvenilir kılan da bu bölümlemedir.
İkinci risk ağ arızası değil, güncellemenin kendisidir. ES5 JavaScript ile yazılmış bir denetleyici, uygulama kodundan önce çalışır ve Service Worker'ı yönetir. Üst üste üç başlatma sağlıklı değilse, ekran kendiliğinden bilinen son sağlıklı sürüme döner. Ayrıca bir güvenlik önlemi, otomatik yeniden yüklemeleri dakikada ikiyle sınırlayarak sürekli yanıp sönen bir ekran senaryosunu bertaraf eder. Somut sonuç: başarısız bir dağıtım kurulu bir filoyu tıkamaz, kendi kendini onarır.
Mevcut bir filo, atılacak bir filo değildir
En az taviz verdiğimiz nokta budur: yazılım mevcut donanıma uyum sağlar, tersi değil. Player, aynı kaynak koddan türetilmiş iki sürüm halinde sunulur — yeni cihazlar için modern bir sürüm ve eski yerleşik tarayıcılar için bir ES5 sürümü. Aynı işlevler, aynı ürün; değişen şey kodun derlenme ve sunulma biçimidir.
Dijital tabelanın gerçek filosu yeni bir filo değildir. Beş, sekiz veya on yıl önce kurulmuş birçok ekran, kimsenin asla güncellemeyeceği, orijinal sürümüne sabitlenmiş bir tarayıcı taşır. Chrome 44 ve sonraki sürümler desteklenir. LG webOS 4, Chromium 53'e eşdeğer bir motor taşır ve CSS Grid'i tanımaz: bu cihazlar, düzenin rastgele üst üste yığılmak yerine yerinde durması için kendileri için yazılmış yedek düzenler alır.
Bu işin bir maliyeti vardır ve bunu üstleniyoruz: her arayüz değişikliği, teslim edilmeden önce eski altyapı üzerinde doğrulanmalıdır. Karşılığında, gösterim yazılımını değiştirmek ekranları değiştirmeyi gerektirmez ve donanım bütçesi karar anında denklemin dışına çıkar.
Desteklenenler:
- tarayıcısı olan her cihazda Web;
- eski WebView'lar dahil, özel bir uygulamayla Android;
- eski nesiller dahil LG webOS;
- dayatılan hiçbir özel donanım yoktur: ekran tedarikçisi seçimi sizde kalır.
Bir BT departmanının imzalamadan önce doğrulamak isteyeceği şeyler
Barındırma, Avrupa Birliği'nde bulunan sunucularda OVH üzerinde sağlanır. Hiçbir veri AB dışında barındırılmaz ve GDPR uyumluluğu belgelenmiştir.
Ağ tarafında ekranın yalnızca platforma giden bir çıkış erişimine ihtiyacı vardır. Kalıcı kanal, ekranın kendisi tarafından başlatılan sıradan bir bağlantıdır: tesislerinize izin verilmesi gereken bir gelen akış yoktur, altyapınıza kurulacak bir sunucu yoktur.
Bir uzlaşma kalır, çünkü vardır. Eski tarayıcıları hedeflemek, Web'in yeniliklerini çıkar çıkmaz kullanmayı yasaklar ve tek yerine iki altyapıyı doğrulamayı zorunlu kılar: geliştirme daha yavaştır ve her yerde çalışmayacağı için bazı arayüz incelikleri elenir. Bir kısmını dışarıda bırakan parlak bir arayüz yerine, tüm ekranlarda görünen biraz daha sade bir arayüzü tercih ederiz. Bir dijital tabela alıcısı, donanımını değiştirdiğinden çok daha sık yazılımını değiştirir ve mimarinin koruduğu ilişki de tam olarak budur.
Questions fréquentes
Bir değişiklik ekrana ne kadar sürede ulaşır?
Birkaç saniye içinde. Platform, ekranın sunucuyu sabit aralıklarla sorgulamasını sağlamaz: Server-Sent Events üzerinden her ekrana kalıcı bir kanal tutar ve değişiklik kaydedildiği anda bu kanala gönderir. Dolayısıyla bir oynatma listesi veya planlama değişikliği için beklenecek bir yenileme döngüsü yoktur.
Smart-Signage'ı kullanmak için mevcut ekranların değiştirilmesi gerekir mi?
Hayır. Player, aynı kaynak koddan türetilmiş iki sürüm halinde sunulur: yeni cihazlar için modern bir sürüm ve eski yerleşik tarayıcılar için bir ES5 sürümü. Chrome 44 ve sonraki sürümler desteklenir, aynı şekilde motoru Chromium 53'e eşdeğer olan ve CSS Grid eksikliği nedeniyle yedek düzenler alan LG webOS 4 de desteklenir. Sekiz yıl önce satın alınmış bir ekran kullanılabilir kalır.
Ağ kesilirse veya bir güncelleme başarısız olursa ne olur?
Ağ kesintisi durumunda ekran, bir Service Worker tarafından yerel olarak önbelleğe alınan içerikleri yayınlamaya devam eder, ardından bağlantı geri geldiğinde yeniden senkronize olur. Hatalı bir güncelleme durumunda, uygulama kodundan önce çalışan ES5 JavaScript denetleyicisi, üst üste üç sağlıksız başlatmayı tespit eder ve ekranı, dakikada iki otomatik yeniden yükleme sınırıyla, bilinen son sağlıklı sürüme geri döndürür.
Veriler nerede barındırılıyor ve player hangi sistemlerde çalışıyor?
Veriler, Avrupa Birliği'nde bulunan sunucularda OVH'de barındırılır; hiçbir veri AB dışında barındırılmaz ve GDPR uyumluluğu belgelenmiştir. Player, Web'de, özel bir uygulamayla Android'de ve LG webOS'ta, hiçbir özel donanım dayatılmadan çalışır.