Avatar

Sistema distribuito ridondante per la pubblicazione di informazioni

La richiesta originale per cui è nato questo prodotto era quella di centralizzare la gestione di una serie di macchine in giro per gli uffici. Queste macchine visualizzavano dati operativi presi da alcune pagine web interne, mostrandoli su grossi monitor negli uffici direzionali. Nel caso di problemi qualcuno avvisava telefonicamente, ci si collegava in remoto tramite dameware e si aggiornava la pagina o riavviava la macchina. Un sistema che funzionava perfettamente con un limitatissimo numero di pc, ma che sarebbe stata assolutamente ingestibile all’aumentare delle macchine e alla loro dislocazione in sedi e uffici distaccati. Non vi era inoltre nessun sistema per rilevare tempestivamente le anomalie.

Quello che ne è risultato è un sistema completamente configurabile per la pubblicazione di informazioni di qualunque genere su un gran numero di punti di visualizzazione remoti, siano essi stand-alone o interattivi, e dotato di un sistema di controllo in tempo reale per avvisare immediatamente dei problemi lungo il transito delle informazioni.

Il sistema Avatar è composto da un certo numero di elementi indipendenti che verranno analizzati di seguito, anche se questi possono essere eventualmente raggruppati in una singola macchina, rinunciando però in questo modo a parte della ridondanza.

DB

E’ il database principale all’interno del quale sono contenute tutte le informazioni di configurazione, i palinsesti, i clients configurati, gli indirizzi e le regole per catturare le informazioni dai vari data providers, le regole per processare le richieste dei clients interattivi, i log e le informazioni di runtime.

Il DB è fisicamente composto da uno o più (per motivi di ridondanza) database MySql

FrontEnd Servers

Dettaglio monitor

E’ il banco di server (uno o più) che si occupano fisicamente della parte di comunicazione con i client e dello scarico delle informazioni che per qualche ragione si vuole vengano servite direttamente dal sistema Avatar, ad esempio pagine che provengono dall’esterno e/o il cui prelievo richiede autenticazioni specifice o regole di formattazione particolari. Ciascun server del banco è in grado di gestire da solo teoricamente fino a 10000 client. In caso di blocco o guasto di uno dei server, i client connessi al server fuori uso sono in grado di riconnettersi automaticamente ad uno degli altri server senza alcun tipo di intervento manuale.

Maintenance console

Ciascuno dei server al primo avvio legge tutti i dati operativi dal DB, che quindi deve essere operativo in questa fase. Una volta immagazzinate tutte le informazioni in locale, il server è in grado di continuare il suo lavoro anche nell’eventualità che il DB diventi indisponibile.

I server ricevono comandi dalla Web Console (per processare alcuni comandi istantanei, quali i cambi di visualizzazione una tantum o i riavvii) ed inoltre ciascun server è dotato di una consolle di manutenzione accessibile tramite telnet dalla quale è possibile effettuare qualunque tipo di variazione dell’operatività dei server, spostare client da un server all’altro, controllare gli aggiornamenti software dei client, ottenere statistiche e gestire ogni altro aspetto del funzionamento del sistema. I server usano il DB come mezzo condiviso per i log e per conservare lo stato delle connessioni. Quest’ultima è una funzione utile a livello amministrativo e per l’invio degli SMS di avviso, ma il DB non è indispensabile per il funzionamento del sistema Avatar.

Client Pool

Client web console

E’ l’insieme dei client, dove con client si intende una postazione composta da un PC su cui gira la parte client del sistema Avatar, da un monitor/videoproiettore (o in alternativa da più monitor con un distributore video) e come opzione da una tastiera o da un touch panel. Ciascun client è identificato univocamente all’interno del sistema Avatar da un singolo codice numerico che viene chiesto all’installatore in fase di primo avvio. La sostituzione di un client guasto, in questo modo, è rapidissima.

Client web console

L’applicazione parte automaticamente all’avvio della macchina, e prende il controllo completo del sistema. Raccoglie una serie di informazioni sulla macchina, tra cui risoluzione, nomi e indirizzi IP, stato dell’alimentazione video, la presenza di videoproiettori di marche e modelli noti collegati alla porta seriale, i livelli audio, dopo di che sceglie un server dall’elenco dei nomi server disponibili, ci si collega, trasmette tutti i dati rilevati, e si mette in attesa. Tutto il resto delle operazioni (accensione e spegnimento monitor e lampade proiettori, dati visualizzati e reazioni ai comandi) vengono guidate dai palinsesti presenti sui server. Ciascun client mette a disposizione una piccola consolle di amministrazione accessibile tramite web browser che permette, anche in assenza di collegamento con i FrontEnd server, di controllare cosa compare sul video delle singole macchine, di visualizzare i log locali e di riavviarle in caso di problemi. Un task separato si occupa di tentare un singolo riavvio automatico della macchina qualora il client non sia in grado di connettersi con nessun server per più di 45 minuti.

 

Web Console

Main web console

E’ un set di pagine dinamiche che forniscono tutte le opzioni per gestire facilmente il contenuto del DB. E’ stato scritto da altre persone, e si interfaccia con il sistema Avatar principalmente attraverso il DB, ma anche scrivendo direttamente alcuni file di comando sui singoli FrontEnd server, in caso serva fare test o modifiche localizzate su un singolo server senza toccare gli altri.

 

 

 

SMS Machine

E’ un set di macchine (attualmente due di produzione e due di test), ciascuna con uno o due modem GSM pilotati da SMaSher, che si occupano di inviare segnalazioni via SMS a fronte della disconnessione di client, server, o di problemi al DB. Per motivi di livelli di servizio, inoltre, ciascuna macchina SMaSher controlla il regolare funzionamento delle altre macchine SMaSher ed invia un avviso in caso di problemi. Questo permette di essere sicuri che ci sia sempre almeno una macchina in grado di inviare SMS e che l’intervento in caso di problemi sia tempestivo.

Data Providers e Video Streaming Server

E’ l’insieme di tutte le sorgenti dati che forniscono le pagine da visualizzare. Solitamente sono server web, le cui pagine possono essere scaricate e visualizzate direttamente dai clients oppure possono essere scaricate dai frontend server ad intervalli prestabiliti e poi servite da questi ultimi, opzione utile per le pagine ricevute da reti esterne o da macchine a cui i client non hanno accesso, per limitare il carico sui server web in questione, e anche per limitare il carico di rete, in quanto i frontend server sanno se ci sono state variazioni dei dati dall’ultimo scarico, ed inviano ai client solo le variazioni rispetto all’ultima visualizzazione. I server avatar, tramite moduli aggiuntivi, possono prelevare dati da altre sorgenti che non siano pagine web, e creare le relative visualizzazioni per i client, ed inoltre ciascun frontend server genera autonomamente le schermate di servizio necessarie al funzionamento dei client in assenza di contenuti.

I Video Streaming Server sono anch’essi parte dei Data Providers ma sono gestiti in maniera diversa in quanto i frontend server non hanno modo di verificare la correttezza e l’aggiornamento dei dati in uscita.

Speak Your Mind

*