Virtualizzazione delle applicazioni

La virtualizzazione delle applicazioni ha la funzione di separare il livello di configurazione dell'applicazione dal sistema operativo. In tal modo è possibile eseguire applicazioni su sistemi client (desktop, server e computer portatili) senza bisogno di installarle e amministrandole da una posizione centrale. Questo influisce largamente su numerosi aspetti, dalla gestione di patch e aggiornamenti, al deployment e alla chiusura dei programmi.

Ambiente di sistema operativo standard
In un normale ambiente di elaborazione, le applicazioni vengono installate direttamente nel sistema operativo. Poiché tutte scrivono all'interno di file di sistema condivisi, le applicazioni entrano spesso in conflitto tra loro, generando arresti imprevisti e la generale instabilità del sistema.

Ambiente di virtualizzazione delle applicazioni
La virtualizzazione delle applicazioni consente di eseguire ogni programma in un proprio ambiente di runtime protetto, isolandolo dagli altri programmi e dal sistema operativo sottostante.

Ciascuna applicazione dipende dal sistema operativo per tutta una serie di servizi, come l'allocazione della memoria, i driver di periferica e molti altri ancora. L'incompatibilità tra un'applicazione e il sistema operativo può essere risolta con la virtualizzazione del server o del livello di presentazione, mentre l'incompatibilità tra due applicazioni installate nella stessa istanza di un sistema operativo può essere risolta con la virtualizzazione delle applicazioni.

Le applicazioni installate nello stesso dispositivo condividono in genere alcuni elementi di configurazione, talvolta dando origine a problemi. Ad esempio, il funzionamento di un'applicazione potrebbe richiedere una versione specifica di una DLL, mentre per un'altra applicazione potrebbe essere necessaria una versione diversa della stessa DLL. L'installazione di entrambe le applicazioni crea un situazione in cui una delle due sovrascrive la versione necessaria per l'altra, provocando il malfunzionamento o l'arresto imprevisto dell'applicazione. Per evitare questo inconveniente, spesso le aziende effettuano rigorosi test di compatibilità prima di installare una nuova applicazione: un approccio efficace, ma dispendioso in termini di tempo e denaro.

La virtualizzazione delle applicazioni risolve questo problema creando una copia di tutte le risorse condivise per ogni singola applicazione. Le configurazioni condivisibili tra le applicazioni presenti in uno stesso sistema (voci di registro, DLL specifiche e altre ancora) sono quindi associate ai singoli programmi e vengono eseguite nella cache della macchina, dando vita a un'applicazione virtuale. Quando si esegue il deployment di un'applicazione virtuale, quest'ultima utilizza la propria copia delle risorse condivise.

La virtualizzazione delle applicazioni semplifica notevolmente il processo di deployment. Poiché le applicazioni non devono contendersi le versioni delle DLL o altri aspetti condivisi nell'ambiente, prima di installare nuove applicazioni non è più necessario testarne i conflitti con le applicazioni esistenti. Inoltre, le applicazioni virtuali possono essere eseguite accanto alle normali applicazioni installate, pertanto non è necessario virtualizzare tutti i programmi, nonostante questo contribuisca a evitare numerosi problemi e i relativi tempi di risoluzione per gli utenti. Una efficace soluzione di virtualizzazione permette infine di gestire per mezzo di un'unica interfaccia sia le applicazioni virtuali che quelle installate.