Il problema è che gli aggiornamenti sono davvero essenziali per la tua sicurezza e per quella del tuo dispositivo. È per questo che abbiamo lavorato sodo per fornirti “aggiornamenti incrementali” per il browser Avira Scout. Si tratta di una tecnologia chiave che ci permette di offrirti una maggiore protezione, riducendo al contempo la seccatura degli aggiornamenti.
Si tratta, inoltre, di una situazione vantaggiosa sia per l’utente che per lo sviluppatore di software. Il tuo punto di vista: potresti subire un rallentamento della connessione a Internet e non vuoi perdere tempo con gli aggiornamenti… ma desideri lo stesso ottenere le nuove funzionalità e la correzione degli errori. Il punto di vista di Avira: le dimensioni di un aggiornamento limitano la nostra motivazione a lanciare sul mercato gli aggiornamenti del browser che correggono i problemi di sicurezza o le nuove funzionalità. I browser sono di grandi dimensioni (cartella compressa di installazione di 40 MB). Dato l’elevato numero di clienti, questo consuma una notevole fetta di banda. E la banda è denaro, per cui questa soluzione non può funzionare per un prodotto gratuito.
In realtà non hai bisogno dell’intero aggiornamento. Hai già ottenuto la maggior parte del codice grazie agli aggiornamenti completi, in altri termini disponi già di tutto ciò che è rimasto invariato nel tuo Avira Scout. Hai solo bisogno dei nuovi byte.
Gli aggiornamenti incrementali servono proprio a questo: si adattano agli aggiornamenti per rispondere alle tue esigenze.
Inviano tre cose:
- i nuovi byte
- un manuale per il tuo computer, completo di istruzioni su dove applicare i nuovi byte
- un controllo da eseguire dopo l’installazione. Se qualcosa va storto, riceverai automaticamente il download completo di Avira Scout
È proprio quello di cui abbiamo bisogno per eseguire aggiornamenti frequenti per le nuove funzionalità e la correzione degli errori.
Chromium dispone già dei componenti richiesti per questo tipo di approccio tecnologico. La parte più difficile è stata farlo funzionare in Avira e nel contesto di Scout. Il breve elenco che segue mostra i principali componenti che hanno permesso questo tipo di approccio di aggiornamento incrementale.
Courgette: lo strumento di Chromium che prende due versioni di un software, identifica i nuovi byte e crea il manuale.
Server: il software eseguito sul server è leggermente più complicato con gli aggiornamenti incrementali. Deve essere in grado di gestire le richieste incrementali e tutte le richieste del browser, nel caso in cui qualcosa vada storto o non ci sia nessun percorso di aggiornamento incrementale dalla versione (piuttosto vecchia) di cui dispone l’utente alla versione attuale.
Il client Omaha: questo programma di aggiornamento deve essere in grado di trovare il giusto set di dati da aggiungere all’attuale Scout. Successivamente vengono eseguiti un paio di passaggi:
- Download
- Verifica
- Applicazione
- Verifica…magari è necessario scaricare la versione completa di Scout a causa di un errore.
- Invio di notifica all’utente per il riavvio di Scout
Gli aggiornamenti incrementali aggiungono una complessità maggiore ai nostri scenari di test automatizzati.
- Cosa succede se aggiorniamo la versione da A a B?
- L’alternativa del download completo funziona?
- Che succede in caso di connessione di rete difettosa?
- L’interfaccia utente funziona correttamente, anche in caso di circostanze strane o misteriose?
Il codice è scritto una sola volta, ma i test vanno eseguiti per ogni singolo aggiornamento. Il nostro obiettivo era proprio quello di creare test automatici.
Ho fatto personalmente qualche ricerca sul tema qualche mese fa, ma il lavoro vero e proprio è stato portato avanti da Evgeny, Stefan e dal resto del team Scout, assieme al team Chromium di Avira. A loro il merito di aver compiuto gli enormi passi necessari per ottenere gli aggiornamenti incrementali.
I nostri piedi poggiano sulle spalle di giganti.