The desktop sharing functionality will allow users to remotely access the desktop of any other computer, having NX Node installed, over the Internet.
The desktop access function is implemented by using the simplest technology available for the scope: i.e. monitoring the changes happening to the user's screen and encoding them, compressed, over the net.
The application appears to be similar to VNC, but uses X and the NX X extension, without requiring a new protocol to implement the remote display functions the X-Window system already provides.
The screen-exporting functions is built in a new library, namely nxcompshad, linked by nxagent. The library provides functions to monitor the changed areas of the screen (initially on a generic X server, later on Windows and Mac) and to display the image of the modified areas on a remote X server, by a simple XPutImage. The compression is offered by the existing nxcomp facilities. The set of tools could be later expanded to implement specific compression algorithms and optimizations, thanks to the strict integration with the nxagent and nxcomp code-bases.
The NX client software implements a new session establishment protocol, able to drive the initiation of a desktop sharing session. Also the NX server and node see updates, as for example the ability of listing
the local X server among the available sessions and the management of a new session type, named shadow.
Related Feature Requests are: