## Remote Development Tools Overview

RDT provides a framework, and a reference implementation of that framework, that facilitates using a local IDE to perform development tasks on another, remote machine.

The main motivation behind this is for development on high performance scientific computers, and for mainframe computing. The characteristics of developing for these machines that especially necessitate a remote development environment are several:

- The machines themselves are often centralized at some remote location, and cannot be accessed physically by the user.
- The tools experience of Eclipse tends to be much richer than that of command line tools
- The performance of displaying a graphically rich tool such as Eclipse over a remote graphics protocol such as X11 is typically very slow, especially for latent connections which are geographically distributed.
- Servers may not have any native graphical capabilities with which to display graphical tools
  The overall concept behind RDT is to use the Eclipse IDE as a thin front end, and offload the majority of the processing to services running on the remote machine itself. By doing this, a rich feature set can be attained, while maintaining an acceptable level of performance compared to running the entire IDE locally.

RDT initially provides services for remote C/C++ development, but the RDT service framework is designed to support any arbitrary language.
The core concept of the RDT framework is the Service Model, which describes which services are present, and which implementations of those services to use in a given project.