Una delle principali novità di Microsoft Application Virtualization 4.5 è la possibilità di effettuare lo streaming dei package delle applicazioni utilizzando il protocollo HTTP o HTTPS, invece che soltanto i protocolli RTSP e RTSPS, come avveniva nelle versioni precedenti. In questo modo è possibile superare ad esempio i vincoli delle aperture delle porte sui firewall che ci dovessero essere tra client e server, in quanto le porte 80 per il protocollo HTTP e 443 per il protocollo HTTPS sono in genere aperte.
In questo articolo descriveremo come sia possibile effettuare lo Streaming over HTTPS dei package con Microsoft Application Virtualization 4.5. Uno dei benefici maggiori di questo tipo di implementazione è che l'amministrazione dell'infrastruttura è semplificata in quanto Internet Information Services (IIS) è in genere ben conosciuto dagli amministratori di rete.
Utilizzeremo per il nostro esercizio un'infrastruttura come quella mostrata in figura 1.
Figure 1 - Infrastruttura basata su Application VIrtualization 4.5
Per configurare il nostro server di streaming all'utilizzo del protocollo HTTP over SSL sarà necessario procurarci un certificato digitale da installare sul web server, emesso da una certification authority che sia riconosciuta dai nostri client. La creazione e l'installazione del certificato digitale sul web server esula dallo scopo del nostro esercizio. Per maggiori informazioni potete visitare la guida Create a Domain Server Certificate in IIS 7.0 presente sul sito Technet.com
Dopo aver installato il certificato sarà necessario creare un binding al protocollo HTTPS sul nostro web server. Apriamo quindi la console di IIS e dopo esserci spostati sul nodo Default Web Site andiamo a cliccare sulla voce Bindings nel pannello Actions sulla destra della console. Dal pannello aggiungiamo cliccando sul pulsante Add il protocollo HTTPS, la porta da utilizzare e dal menù di riepilogo il certificato digitale che abbiamo precedentemente installato, come mostrato in figura 2.
Figure 2 - Definizione del site binding per l'utilizzo del protocollo HTTPS
Nel nostro caso utilizzeremo un certificato digitale emesso per la macchina con l'FQDN stream.appv.internal , emesso da una Certification Authority interna che si chiama APPV-CA, che è riconosciuta da tutti i client del dominio.
A questo punto, dopo aver autorizzato l'utilizzo del protocollo HTTPS nel nostro sito web, andiamo a creare una nuova Virtual Directory cliccando col tasto destro sul nodo Default Web Site e scegliendo la voce Add Virtual Directory. Chiamiamo la cartella "content" e la facciamo puntare alla stessa cartella del nostro Application Virtualization Management Server che contiene i package da distribuire, che di default è C:\Program Files\Microsoft System Center App Virt Management Server\ App Virt Management Server\content , come mostrato in figura 3.
Figure 3 - Creazione della virtual directory nella quale si trovano i package da distribuire
Aggiungiamo al nostro Defaul Web Site anche i Mime Types per riconoscere le estensioni dei file .OSD e .SFT che dovranno essere distribuiti dal nostro web server, come mostrato in figura 4, andando ad aggiungerle una alla volta e scegliendo come Mime Type "application/app-v", come mostrato in figura 5.
Figure 4 - Definizione dei Mime Types nel Default Web Site
Figure 5 - Aggiunta del Mime Type per l'estensione SFT
Abbiamo così terminato la configurazione del nostro HTTP Streaming Server. Per poter utilizzare questo nuovo protocollo per lo streaming sarà sufficiente andare nella cartella "content" del server e modificare i file .OSD delle singole applicazioni con il nuovo valore HREF da inserire nel tag CODEBASE.
Apriamo il file .OSD dell'applicazione Word Viewer 2003 che abbiamo precedentemente sequenziato e che vogliamo ora distribuire tramite streaming HTTPS e modifichiamo il valore del tag CODEBASE con HTTPS://%SFT_SOFTGRIDSERVER%:443/content/NOME_Applicazione/ NOME_Applicazione.sft, ovviamente sostituendo i valori generici con quelli relativi al nostro package, come mostrato in figura 6.
Figure 6 - Modifica del tag CODEBASE per l'utilizzo del protocollo di streaming HTTPS
D'ora in poi la nostra applicazione verrà quindi trasferita, dai vari client che la lanceranno, attraverso il protocolo HTTPS. È possibile anche settare questa modalità di streaming direttamente dal Sequencer al momento della creazione dei vari package, come mostrato in figura 7
.
Figure 7 - Definizione del protocollo di streaming in fase di Sequencing del package
Volendo trasferire il package attraverso Internet è consigliabile anche comprimerlo con l'algoritmo ZLIB, in modo tale da poter diminuire la dimensione del file SFT. Nel momento in cui avverrà lo streaming sui nostri client il file verrà espanso localmente su ogni client e posizionato nella cache locale, a diposizione di tutti gli utenti.
Possiamo anche fare in modo che tutti i file aggiunti al nostro Streaming Server, come ad esempio le icone e i file OSD, utilizzino il protocollo HTTPS di default, andando a modificare nella Application Virtualization Management Console le System Options, come mostrato in figura 8.
Figure 8 - Modifica delle System Options del Virtualization Management Server
In questo modo quando andremo ad importare una nuova applicazione, utilizzando il file di progetto SPRJ, automaticamente verranno configurati i percorsi per scaricare il file OSD e i file delle Icone direttamente tramite protocollo HTTPS, come mostrato in figura 9.
Figure 9 - Importazione di una nuova applicazione ed autoconfigurazione del percorsi de file OSD e delle icone
Non rimane quindi che settare il nostro client in modo tale che utilizzi come protocollo di straming HTTPS e punti al nostro server, come mostrato in figura 10.
Figure 10 - Configurazione dell'Application VIrtualization Client per l'utilizzo del protocollo HTTPS
Utilizzando il protocollo HTTPS è poi fare necessario prestare la massima attenzione al certificato digitale e alla sua validità, altrimenti il nostro client non sarà capace di collegarsi al server e riceverà un messaggio di errore come quello di figura 11.
Figure 11 - Messaggio di errore a causa dell'utilizzo di un certificato errato
Conclusioni
In questo articolo abbiamo descritto come realizzare un'intera infrastruttura di Streaming basata su Microsoft Application Virtualization 4.5 che utilizza il protocollo HTTP o HTTPS sia per presentare ai client i file .OSD e le icone, sia per trasferire i package .SFT.
Sicuramente questo tipo di scenario apre diverse possibilità, come ad esempio la distribuzione dei package attraverso Internet, senza andare a modificare in nessun modo l'infrastruttura già esistente, in quanto i web server e i firewall sono già configurati nella nostra rete o necessitano di piccolissime modifiche, con un risparmio di tempo e con una scalabilità enorme!
Ovviamente l'utilizzo del protocollo HTTP crea meno problemi ed è più facile da implementare rispetto all'HTTPS per la mancanza di certificati digitali, ma non è assolutamente sicuro ed è per questo sconsigliato.
Links
http://www.microsoft.com/systemcenter/appv/whatsnew.mspx
http://technet.microsoft.com/en-us/appvirtualization/cc843994.aspx
http://technet.microsoft.com/en-us/library/cc843842.aspx