# Escritorio remoto

Un escritorio remoto (del inglés: remote desktop) es una tecnología que permite a un usuario establecer una conexión con otro ordenador (dispositivo terminal) a través del propio ordenador (cliente). Se emplea en el terreno de la informática para dar posibilidad de realizar ciertas tareas en un ordenador sin estar físicamente en contacto con el equipo. Esta tecnología incluso permite acceder desde un ordenador doméstico, por ejemplo, a todos los archivos del ordenador de la empresa. Esto es solo posible si se tienen los requerimientos necesarios para establecer este tipo de conexión, como la autorización correspondiente.

## Historia

El acceso remoto a una computadora era una función que podían realizar las primeras grandes generaciones de computadoras que poseían un número de terminales de texto unidos a éstas a través de interfaces simples, básicamente cables.
El desarrollo de las redes de telecomunicaciones permitió que poco a poco fueran desapareciendo estas terminales de texto, siendo sustituidos por otras computadoras (generalmente de menor tamaño) capaces de emular la misma funcionalidad a través de una aplicación, denominada emulador de terminal, siendo, por lo tanto, las primeras tecnologías de acceso remoto a computadoras , como telnet y ssh, popularizadas inicialmente en entornos Unix.
Cerca de la década de los noventa, las interfaces de usuario sufren una revolución, abandonando la interacción textual en favor de una interacción más gráfica. Debido a esta revolución surgen dos tecnologías nuevas:
* Los terminales específicos, llamados clientes buenos o good client. Son los actuales utilizados por la mayoría de servidores de tipo PAP y CHAP que son hoy en día los más importantes para las empresas. Esto se basa en el protocólo TCP por el puerto 8565.
* Los terminales gráficos, también denominados clientes ligeros o thin-client. Evolución de los viejos terminales de texto unidos por cables.
* Los escritorios gráficos. Dos escritorios gráficos muy populares son los creados para Apple Macintosh y MS-DOS (Microsoft Windows). Nótese que estos escritorios gráficos solamente podían ser utilizados directamente en la computadora, por tanto, aún no son escritorios remotos.
El primer entorno operativo de escritorio remoto es el sistema de ventanas X, originalmente desarrollado por el Massachusetts Institute of Technology (MIT) con el nombre de proyecto Athena en 1984. El objetivo inicial era lograr la compatibilidad en materia de terminales gráficos de los diversos fabricantes. Este objetivo resultó ampliamente logrado con su aceptación por parte de dichos fabricantes. En 1988, se creó la fundación X-Consortium (hoy conocida como X.Org) como organismo encargado del desarrollo y estandarización del sistema de ventanas X. El éxito de este sistema aún perdura siendo el núcleo de todos los escritorios (tanto locales como remotos) de los sistemas Unix y Linux. También ha tenido alcance en otros sistemas operativos existiendo clientes para Windows y MacOS.

## Tecnología

La tecnología de escritorio remoto permite la centralización de aquellas aplicaciones que generalmente se ejecutan en entorno de usuario (por ejemplo, procesador de textos o navegador). De esta manera, dicho entorno de usuario se transforma en meros terminales de entrada/salida.
Los eventos de pulsación de teclas y movimientos de ratón se transmiten a un servidor central donde la aplicación los procesa como si se tratase de eventos locales. La imagen en pantalla de dicha aplicación es retornada al terminal cliente cada cierto tiempo.

## Elementos básicos
### Protocolo de comunicaciones

El elemento característico en cualquier implementación de escritorio remoto es su protocolo de comunicaciones, que varía dependiendo del programa que se use:
* Independent Computing Architecture (ICA), utilizado por MetaFrame.
* Remote Desktop Protocol (RDP), utilizado por Terminal Services.
* Adaptive Internet Protocol (AIP), utilizado por Secure Global Desktop.
* Virtual Network Computing, (VNC), utilizado por el producto del mismo nombre.
* X11, utilizado por el sistema de ventanas X.

### Comunicación

Para el desarrollo correcto del escritorio remoto, el protocolo debe de cumplir una serie de requisitos:
* Latencia: el retardo de las comunicaciones es más importante que el ancho de banda.
* Balanceo de funcionalidad entre cliente y servidor.
* Representación gráfica: Indica el tipo de visualización del escritorio remoto. Existen cuatro posibilidades: gráficos de alto nivel, gráficos de bajo nivel, primitivas de dibujo en 2D y píxels en bruto.
* Compresión: de los datos relativos a las actualizaciones de la pantalla.
* Sincronización.

## Programas

Actualmente, la tecnología de escritorio remoto ha alcanzado su madurez, existiendo un conjunto amplio de productos (si bien todos similares y basados en las mismas tecnologías subyacentes), tanto comerciales como no comerciales:
* BeAnywhere, de la compañía BeAnywhere.
* Rustdesk, una solución open-source que puede alojarse en servidores propios.
* MetaFrame, de la compañía Citrix Systems.
* Terminal Services, de Microsoft. Hoy parte integral de sus sistemas operativos.
* AADS SERVER, de la compañía AADS-WORLDWIDE.
* AppliDis, de la compañía Systancia.
* Sun Ray, de Oracle Corporation.
* Secure Global Desktop, de Oracle Corporation.
* VNC. La implementación original de este escritorio remoto tuvo lugar en los laboratorios de Olivetti en Cambridge. Posteriormente fue adquirido por AT&T alcanzando el grado de desarrollo conocido actualmente. Más recientemente, el mantenimiento de VNC ha pasado a la compañía RealVNC, convirtiéndose en software de código abierto de carácter gratuito.
* Escritorio remoto X11.
* 2X Application Server de la compañía 2X.
* GoGlobal de la compañía Graphon.
* pcAnywhere de Symantec.
* TeamViewer
* LogMeIn.
* Supremo de la compañía Nanosystems.
* Ammyy.