Forse avrete già apprezzato i benefici di
VNC su Linux, oppure del
Remote Desktop Protocol sotto Windows. Ma, mettendo da parte i vantaggi che un'applicazione di desktop sharing può portare, sarete anche a conoscenza della larghezza di banda di cui necessitano tali protocolli, che spesso può essere considerevole.
Volendo utilizzare X11 in remoto ad esempio tramite una connessione modem, sarebbe praticamente impossibile fare uso di VNC o RDP. Esiste tuttavia un protocollo migliore, ideato dall'italiano
Gian Filippo Pinzari, che permette di usufruire di strategie di compressione e di caching capaci di rendere usabile una sessione X11 anche tramite una normale linea modem.
Il protocollo in questione è
NX, rilasciato con licenza GPL, di cui sono disponibili implementazioni per praticamente tutte le piattaforme, persino per Windows 98, il che lo rende ideale per ridare vita a macchine datate, utilizzandole come client per applicazioni esose in termini di risorse.
Le funzionalità di NX non si limitano tuttavia alla compressione e al caching dei dati trasmessi. Esso infatti offre anche strumenti per servire come tunnel per connessioni VNC o RDP, che possono così godere dei benefici del protocollo. Inoltre, esso utilizza
SSH per garantire un'autenticazione robusta e la riservatezza dei dati.
Ma la caratteristica più interessante, almeno a mio parere, è la possibilità di sospendere e successivamente riprendere una sessione grafica, lasciando i programmi avviati in esecuzione. Se ci fate caso, il comportamento è abbastanza simile al noto programma per la console
screen, che permette di lasciare in esecuzione dei programmi anche dopo aver effettuato il logout.
Anche se il cuore di NX è rilasciato sotto licenza GPL,
NoMachine, la ditta che mantiene questo software, offre soluzioni commerciali per diverse piattaforme. Se cercate un'implementazione open source, che funzioni fra l'altro anche come server, date uno sguardo a prodotti come
FreeNX.
Dato che la documentazione ed i
tutorial non mancano, vi invito a provare questo protocollo.