Articles
Server and Storage Development
by Leonid Lenyashin and Vladimir Kvashin
Published May 2012
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.
|
You might want to use remote development if some of the following circumstances are true for you:
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:
sshd.You can manage your remote hosts in the Services window of the IDE.

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.
Remote development provides the following benefits:
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.

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.
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 might be the best remote mode for your needs if Figure 3 describes your development environment.

Figure 3. Good Environment for Simple Mode
In this environment, simple mode provides these benefits:
Mixed or shared mode might be a good choice if your development environment resembles the one shown in Figure 4.

Figure 4. Good Environment for Mixed Mode
The benefits of using mixed mode in this environment are:
Full mode might be the best mode for you if your development environment resembles the one shown Figure 5.

Figure 5. Good Environment for Full Mode
The benefits of using full remote mode in this environment are:
You can select simple mode or mixed mode for your remote host in the IDE using the Host Properties dialog box.

Figure 6. Host Properties Dialog Box
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.
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.
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."
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 the following locations for more information:
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.