Tecnología NX

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

NX es un programa informático que realiza conexiones remotas X11 muy rápidas, lo que permite a los usuarios acceder a escritorios remotos de Linux o Unix incluso bajo conexiones lentas como las realizadas con módem.

NX realiza una compresión directa del protocolo X11, lo que permite una mayor eficiencia que VNC. La información se envía mediante SSH, por lo que toda la información que se intercambian servidor y cliente está cifrada.

Al cliente que se conecta al servidor NX se le considera cliente liviano.

NX está desarrollado por la empresa italiana NoMachine, que ha liberado el código. Existe una implementación libre de esta aplicación, llamada FreeNX.

Conceptos básicos[editar]

Cuando un cliente necesita dibujar algo en pantalla realiza una cantidad de peticiones al servidor, muchas de las cuales necesitan una respuesta. Cada par petición-respuesta se conoce como roundtrip. Estos roundtrips son los que hacen al sistema más lento debido principalmente al tiempo que se necesita para completar el ida y vuelta. Cuando el cliente y el servidor X son ejecutados en el mismo host la comunicación se realiza de forma muy rápida. Sin embargo cuando cliente y servidor ejecutan en diferentes hosts la comunicación debe realizarse a través de TCP/IP por lo que en este caso la comunicación es mucho más lenta. Otro factor que puede afectar el desempeño es la velocidad de la conexión y latencia de la red.

Eficiencia de NX[editar]

La tecnología NX ofrece mayor eficiencia que otras debido principalmente a las características que se listan a continuación:

  • Realiza una eficiente compresión del tráfico X.
La compresión del tráfico en forma eficiente es necesaria para lograr ejecutar aplicaciones sobre medios de poco ancho de banda y también para permitir ejecutar múltiples sesiones de usuario en redes LAN.
  • Utiliza mecanismos de cache para almacenar y reutilizar la información transferida entre cliente y servidor.
NX utiliza un método de cache innovador que divide el mensaje X en dos partes, uno de identificación y otro de datos. La tecnología mantiene en cache únicamente los datos de los últimos mensajes enviados, clasificados por protocolo. A este cache se le conoce como MessageStore y hace que el número de peticiones para mostrar los elementos de pantalla disminuya notoriamente.
  • El tiempo consumido en realizar roundtrips es prácticamente nulo.
La reducción de roundtrips es fundamental, al igual que el estricto control del flujo de datos que viaja por la red.
  • Utiliza un algoritmo de codificación perezoso para realizar actualizaciones de pantalla.
NX posee mecanismos de adaptación para ajustarse a las propiedades de la red (latencia y velocidad de conexión), lo que permite pasar de métodos estrictos de codificación a métodos perezosos que retrasan la actualización de pantalla cuando la red está congestionada.

Objetivos de NX[editar]

El principal objetivo de esta tecnología es el de ejecutar a través de Internet aplicaciones que logren tener el mismo aspecto gráfico que cuando se ejecutan en cualquier PC. Generalmente cuando esto ocurre es necesario deshabilitar todo aquello que pueda consumir demasiados recursos, como por ejemplo, menús desplegables, fondos de pantalla, iconos o animaciones gráficas. NX fue diseñado especialmente para soportar estas condiciones y no hacer que usuarios y desarrolladores deban cambiar sus hábitos o su código.

Licencia[editar]

Antes de la versión 4.0, NoMachine utilizaba la licencia GNU General Public License para la tecnología del núcleo de NX, ofrecía un cliente libre y versiones de servidor para Linux y Solaris y clientes libres para Microsoft Windows, Mac OS X y sistemas embebidos a la vez que estaba ofreciendo una versión comercial no gratuita para las empresas.

El 21 de diciembre de 2010, NoMachine anunció que la siguiente versión 4.0 de NX sería solamente de código cerrado.

Debido a la naturaleza de software libre de versiones anteriores de NX, se inició el proyecto FreeNX.

Véase también[editar]

Enlaces externos[editar]