How to Select a Remote Development Mode in Oracle Solaris Studio

by Leonid Lenyashin and Vladimir Kvashin

This article describes the modes of remote development available in the Oracle Solaris Studio 12.3 IDE and how to choose the best one for your development environment.


Published May 2012

What Is Remote Development?
When to Use Remote Development
How Remote Development Works
Benefits of Remote Development
Remote Development Modes
Deciding Which Remote Development Mode to Use
Selecting a Remote Development Mode
Doing Remote Development with the Desktop Distribution of the IDE
Caches and Security
See Also
About the Author

What Is Remote Development?

Remote development is a feature of the Oracle Solaris Studio IDE that allows you to run the IDE on a computer running Microsoft Windows, Mac OS X, or Linux; and build, run, and debug your program on another computer running Oracle Solaris or Linux.

Want technical articles like this one delivered to your inbox?  Subscribe to the Systems Community Newsletter—only technical content for sysadmins and developers.

When to Use Remote Development

You might want to use remote development if some of the following circumstances are true for you:

  • Your desktop system is not running Oracle Solaris.
  • The Oracle Solaris system on which you are running the IDE is a shared system and sometimes experiences high loads.
  • Your access to systems running Oracle Solaris is limited to Secure Shell (SSH) for security reasons.
  • Running graphical user interface tools in the Oracle Solaris environment is difficult.
  • The software you are developing must compile and run on multiple platforms, of which Oracle Solaris is only one.

How Remote Development Works

The IDE provides features for managing remote hosts. You can configure a remote host to use for building, running, and debugging your C, C++, and Fortran projects. The remote host must meet the following conditions:

  • The remote host operating system must be Oracle Solaris or Linux.
  • The remote host must run the SSH daemon, sshd.
  • At least one tool collection (GNU, Oracle Solaris Studio, or Sun Studio) must be accessible on the remote host.
  • You must have a user account on the host.

You can manage your remote hosts in the Services window of the IDE.

Services window

Figure 1. Services Window

Once you have configured the remote host and connected to it, you can build, run, and debug projects just as you do on your local system. Remote IDE commands are executed over SSH.

When you use a remote development host, the local and remote hosts both need to access the project files. This access can be accomplished through file sharing or securely copying the files. Before the IDE can use file sharing between the local and remote systems, the shared file system or folder must be set up and accessible to both systems. Remote files are accessed through SFTP or another file sharing mechanism available in the operating system the host is running, for example, Network File System (NFS), Samba, or WebDAV.

If file sharing is not possible, you can use Smart Secure Copy to copy the files to the server using SSH.

Benefits of Remote Development

Remote development provides the following benefits:

  • You can use the same development environment for all of your projects.
  • The resources of your desktop system are better utilized.
  • Network traffic is optimized.
  • Your IDE response time is better.
  • You can browse remote file systems from the IDE.
  • You can open a terminal window in the IDE for a remote host.
  • You can use it in SSH-only secure environments.

Remote Development Modes

The IDE offers three modes of remote development: simple, mixed (also called shared), and full. The main difference between the modes is where the source files reside. Figure 2 shows where the source files reside and how the IDE accesses them in each mode.

Diagram showing location of source files and how they are accessed in each mode

Figure 2. Location of Source Files

In simple mode, the source files reside primarily on your local host. When you build your project, the source files are delivered on demand to the remote host using SSH File Transfer Protocol (SFTP).

In mixed or shared mode, the source files reside in a location that is shared between the local host and remote host using NFS, Samba, WebDAV, or another file sharing system.

In full remote mode, the source files reside on the remote host. The IDE accesses the files using SFTP.

Deciding Which Remote Development Mode to Use

Which development mode is best for your specific situation depends on the development environment in which you work. Each of the following sections describes an example of a development environment in which one development mode provides the most benefits.

Simple Mode

Simple mode might be the best remote mode for your needs if Figure 3 describes your development environment.

Diagram showing a development environment where source files reside locally, and the developer develops locally for multiple remote target platforms

Figure 3. Good Environment for Simple Mode

In this environment, simple mode provides these benefits:

  • You can use the same IDE for local and remote development.
  • You can switch easily between hosts and platforms in the IDE.
  • You can use the IDE in an SSH-only environment.
  • Your mobility is improved.

Mixed (Shared) Mode

Mixed or shared mode might be a good choice if your development environment resembles the one shown in Figure 4.

Diagram showing an NFS-intensive development environment with source files located on servers on the network

Figure 4. Good Environment for Mixed Mode

The benefits of using mixed mode in this environment are:

  • You can easily switch between hosts and platforms in the IDE.
  • There is no duplication of files (caching) such as would occur in the other two modes.
  • The network throughput will be as good as your file sharing mechanism (for example, NFS, Samba, or WebDAV) can provide.

Full Mode

Full mode might be the best mode for you if your development environment resembles the one shown Figure 5.

Diagram showing a development environment on a shared and heavily-loaded server accessed using X-windows and VNC

Figure 5. Good Environment for Full Mode

The benefits of using full remote mode in this environment are:

  • Migration from using X-window forwarding or VNC is virtually seamless.
  • Your IDE response time improves.
  • You are less dependent on the resources of the development host.
  • A smaller load on the development host reduces the load on Oracle Solaris.
  • You can create new remote projects from remote binary files.

Selecting a Remote Development Mode

You can select simple mode or mixed mode for your remote host in the IDE using the Host Properties dialog box.

Host Properties dialog box

Figure 6. Host Properties Dialog Box

  • For simple mode, set Synchronization to Automatic copying.
  • For mixed mode, set Synchronization to System level file sharing.

To use full remote mode in the IDE, open a project by choosing File > Open Remote C/C++ Project, or create a project by choosing File > Create Remote C/C++ Project.

Doing Remote Development with the Desktop Distribution of the IDE

If you are doing remote development by running the IDE on a remote system using X-Window forwarding or VNC, you can achieve better IDE performance and response time using the desktop distribution of the IDE. You can run the desktop distribution on desktop systems with Microsoft Windows, Mac OS X, and Linux.

When you create the desktop distribution from your IDE, the desktop distribution is configured to work with the remote host to which you are connected, and it includes your user profile data (IDE settings and open projects).

You can create the desktop distribution while you are running the IDE or with the solstudio command you use to start the IDE.

  • To create the desktop distribution zip file while running the IDE, choose Tools > Create Desktop Distribution.
  • To create the desktop distribution zip file with the solstudio command, use the --generate-desktop-distr option.

When you unzip the desktop distribution zip file on your desktop system, you will be able to run the IDE locally without using X-Window forwarding or VNC, and you can compile, run, debug, and profile your code on a remote host.

For details about creating and using the desktop distribution, see the article "How to Use the IDE Desktop Distribution."

Caches and Security

To provide fast access to remote files, the IDE uses a disk cache. The cache resides in your user directory at user_directory/var/cache/remote-files.

On systems running Oracle Solaris or Linux, your user directory is ~/.solstudio/ide-12.3-OS-architecture. For example, on an Oracle Solaris x86 system, your user directory is at ~/.solstudio/ide-12.3-SunOS-i386.

On systems running Microsoft Windows, your user directory is ~\Application Data\.solstudio\dd-12.3.

To enforce security, the cache directory can be encrypted or deleted on a regular basis.

See Also

See the following locations for more information:

About the Author

Leonid Lenyashin joined Sun Microsystems in 2004 in St.Petersburg, Russia as a manager responsible for the performance of code generated by Oracle Solaris Studio compilers for x86/64 platforms. Later on, Leonid assumed responsibility for the Oracle Solaris Studio IDE and NetBeans CND (C++) projects. Before joining Oracle, Leonid worked for such companies as Motorola and Deutsche Bank on telecom, finance, and embedded domains projects.

Vladimir Kvashin has worked in the IT arena for about 20 years for companies such as Togethersoft and Borland developing enterprise-level systems and modern IDEs. Vladimir joined Sun in 2004. Now he is a member of the Oracle Solaris Studio IDE development group in St. Petersburg.

Revision 1.0, 05/30/2012

See sysadmin-related content for all Oracle technologies by following OTN Systems on Facebook and Twitter.