Multi-context remote development - overview

This section provides an overview of multi-context remote development.

In a typical integrated development environment (IDE), a collection of source files are fed into a build tool to produce some kind of consumable output. The output may consist of intermediate objects, libraries, executables or, depending on the complexity and type of project, some combination of the above. Historically, the resulting build output was designed to be used on the same workstation as the IDE but some modern development environments allow users to produce output that runs on remote systems.

There are a variety of ways that a project in an IDE can target a remote system. One approach is to use a cross-compiler; this is the case where the build tool utilized produces output designed to be used on a platform other than the one where the build occurs. Some languages, such as Java, produce build output that can be run on any platform so, as with the cross-compiler approach, the local build tool is sufficient for producing the right output. Few programming languages can be platform-neutral like Java, it's not easy to find cross-compilers for a given combination of language/platform and, without additional remote instrumentation, these two approaches are limited by not also automatically bringing the build results to a targeted remote machine.

A contrasting approach is for the builds to be run on the target system rather than on the workstation where the IDE runs. In order to do that, the source code needs to available for building on the remote host. The source either needs to be developed remotely or the local project source code needs to be synchronized to the remote system. A development environment, such as IBM® Rational® Developer for Power Systems Software, supports direct remote development (i.e. via a mount or remote Eclipse File System) and, alternatively, a push/pull mechanism to transfer files between a local project and a remote host. While the ability to target a particular remote host and platform from a project is useful, the full potential of remote development has not yet been fully realized with multi-context remote development support. Many development projects today are intended to work across different platforms, others to run in a distributed fashion on several machines at once. It is not uncommon for developers to produce both debuggable and optimized builds or to produce alternate builds that have some other unique property on the same machine. The multi-context remote development now available in IBM Rational Developer for Power Systems Software allows a single project or other kind of local resource in an IDE to target multiple environments, platforms and locations seamlessly and concurrently.


Feedback