# Tecnologia NX

NX és un programa informàtic que realitza connexions remotes X11 molt ràpides, el que permet als usuaris accedir a escriptoris remots de Linux o Unix fins i tot sota connexions lentes com les realitzades amb mòdem.
NX realitza una compressió directa del protocol X11, el que permet una major eficiència que VNC. La informació s'envia mitjançant SSH, de manera que tota la informació que s'intercanvien servidor i client està xifrada. Al client que es connecta al servidor NX se'l considera client lleuger. NX està desenvolupat per l'empresa italiana NoMachine, que ha alliberat el codi. Hi ha una implementació lliure d'aquesta aplicació, anomenada FreeNX.

## Conceptes bàsics

Quan un client necessita dibuixar alguna cosa pantalla realitza una quantitat de peticions al servidor, moltes de les quals necessiten una resposta. Cada parell petició-resposta es coneix com a roundtrip. Aquests roundtrips són els que fan al sistema més lent principalment a causa del temps que es necessita per a completar l'anada i la tornada. Quan el client i el servidor X són executats en el mateix host la comunicació es realitza de forma molt ràpida. No obstant això quan client i servidor s'executen en diferents hosts la comunicació s'ha de realitzar a través de TCP/IP pel que en aquest cas la comunicació és molt més lenta. Un altre factor que pot afectar el desenvolupament és la velocitat de la connexió i latència de la xarxa.

## Eficiència de NX

La tecnologia NX ofereix major eficiència que altres causa principalment de les característiques que es llisten a continuació:
* Realitza una eficient compressió del trànsit X.
    La compressió del trànsit en forma eficient és necessària per aconseguir executar aplicacions sobre mitjans de poc amplada de banda i també per permetre executar múltiples sessions d'usuari en xarxes LAN.
* Utilitza mecanismes de cache per emmagatzemar i reutilitzar la informació transferida entre client i servidor.
    NX utilitza un mètode de memòria cau innovador que divideix el missatge X en dues parts, un d'identificació i un altre de dades. La tecnologia manté en cache únicament les dades dels darrers missatges enviats, classificats per protocol. Aquest cache es coneix com MessageStore i fa que el nombre de peticions per mostrar els elements de pantalla disminueixi notòriament.
* El temps consumit en realitzar roundtrips és pràcticament nul.
    La reducció de roundtrips és fonamental, igual que l'estricte control del flux de dades que viatja per la xarxa.
* Utilitza un algorisme de codificació mandrós per realitzar actualitzacions de pantalla.
    NX posseeix mecanismes d'adaptació per ajustar-se a les propietats de la xarxa (latència i velocitat de connexió), el que permet passar de mètodes estrictes de codificació a mètodes mandrosos que retarden l'actualització de pantalla quan la xarxa està congestionada.

## Objectius de NX

El principal objectiu d'aquesta tecnologia és el d'executar a través d'Internet aplicacions que aconsegueixin tenir el mateix aspecte gràfic que quan s'executen en qualsevol PC. Generalment quan això passa cal desactivar tot allò que pugui consumir massa recursos, com ara, menús desplegables, fons de pantalla, icones o animacions gràfiques. NX va ser dissenyat especialment per suportar aquestes condicions i no fer que usuaris i desenvolupadors hagin de canviar els seus hàbits o el seu codi.

## Vegeu també

* LTSP
* Computació en Xarxa Virtual (VNC)
* X2go, un altre programa similar també lliure.

## Enllaços externs

* NoMachine technical documentation (anglès)
* NX pàgina del projecte a BerliOS. (anglès)
* Faster remote desktop connections with FreeNX - Article de Linux.com sobre la tecnologia NX i FreeNX en particular. (anglès)