如何在 Oracle Solaris Studio 中选择远程开发模式

作者:Leonid Lenyashin 和 Vladimir Kvashin

本文介绍了 Oracle Solaris Studio 12.3 IDE 中可用的远程开发模式,以及如何为您的开发环境选择最适合的模式。


2012 年 5 月发布

什么是远程开发?
应在何时使用远程开发
远程开发的工作方式
远程开发的优势
远程开发模式
确定要使用的远程开发模式
选择一种远程开发模式
使用 IDE 的桌面分发执行远程开发
缓存和安全性
另请参见
关于作者

什么是远程开发?

远程开发是 Oracle Solaris Studio IDE 的一项特性,它允许您在操作系统为 Microsoft Windows、Mac OS X 或 Linux 的计算机上运行 IDE;并在操作系统为 Oracle Solaris 或 Linux 的另一台计算机上构建、运行和调试程序。

希望接收类似本文的技术文章吗?请订阅系统社区新闻快讯 — 专门面向系统管理员和开发人员的技术内容。

应在何时使用远程开发

如果您的开发环境符合以下某种/某些条件,则可能需要使用远程开发模式:

  • 您所运行的桌面系统不是 Oracle Solaris。
  • 运行 IDE 的 Oracle Solaris 系统为共享系统,有时会出现高负载。
  • 出于对安全性的考虑,您对 Oracle Solaris 系统的访问仅限于安全 Shell (SSH)。
  • 在 Oracle Solaris 环境中运行图形用户界面工具极为困难。
  • 您正在开发的软件必须在多个平台上编译和运行,Oracle Solaris 只是其中之一。

远程开发的工作方式

IDE 提供了管理远程主机的特性。您可以配置一台远程主机,并将该主机用于构建、运行和调试 C、C++ 和 Fortran 项目。远程主机必须满足以下条件:

  • 远程主机的操作系统必须是 Oracle Solaris 或 Linux。
  • 远程主机必须运行 SSH 后台程序 sshd
  • 远程主机必须能访问一种或一种以上的工具集(GNU、Oracle Solaris Studio 或 Sun Studio)。
  • 您必须在主机上拥有一个用户帐户。

您可以在 IDE 的 Services 窗口中管理远程主机。

Services 窗口

图 1. Services 窗口

完成远程主机配置并连接到该主机之后,即可构建、运行和调试项目,就像在本地系统上一样。远程 IDE 命令通过 SSH 执行。

在使用远程开发主机时,本地主机和远程主机均需访问项目文件。这种访问可通过文件共享或安全地复制文件来完成。首先必须对共享文件系统或文件夹进行设置,保证本地系统和远程系统均可访问,之后 IDE 才能在这两方之间使用文件共享。远程文件的访问将通过 SFTP 或者主机操作系统中的其他文件共享机制实现,例如,网络文件系统 (NFS)、Samba 或者 WebDAV。

如果无法实现文件共享,则可以利用 Smart Secure Copy,使用 SSH 将文件复制到服务器。

远程开发的优势

远程开发具有以下优势:

  • 可以为所有项目使用相同的开发环境。
  • 桌面系统的资源将得到更好的利用。
  • 网络流量得到优化。
  • IDE 响应时间得到改善。
  • 可以从 IDE 浏览远程文件系统。
  • 可以在 IDE 中为远程主机打开一个终端窗口。
  • 可以在只能访问 SSH 的安全环境中使用。

远程开发模式

IDE 提供了三种远程开发模式:简单模式、混合模式(也称为共享模式)和完整模式。各种模式之间的主要差异在于源文件所在的位置。图 2 展示了各模式中源文件所在的位置以及 IDE 如何访问这些源文件。

展示各模式中源文件所在的位置以及 IDE 如何访问这些源文件的图示

图 2. 源文件的位置

在简单模式中,源文件主要位于本地主机上。在构建项目时,可以根据需要,使用 SSH 文件传输协议 (SFTP) 将源文件提供给远程主机。

在混合或共享模式中,源文件位于本地主机和远程主机间共享的位置,本地主机和远程主机使用 NFS、Samba、WebDAV 或其他文件共享系统进行共享。

在完整模式中,源文件位于远程主机。IDE 使用 SFTP 访问文件。

确定要使用的远程开发模式

应根据工作时所处的具体开发环境选择最适合的开发模式。以下几节分别介绍了几种开发环境示例,我们为每种开发环境选择了一种能在其中发挥出最大优势的开发模式。

简单模式

如果您的开发环境与图 3 相符,则简单模式将是适合您的需求的最佳远程模式。

在此图示中,源文件位于本地,开发人员在本地为多个远程目标平台进行开发

图 3. 适合简单模式的环境

在这种环境中,简单模式提供了以下优势:

  • 可以为本地开发和远程开发使用相同的 IDE。
  • 在 IDE 中,可以轻松地在主机和平台间进行切换。
  • 可以在只能访问 SSH 的环境中使用 IDE。
  • 移动性得以改善。

混合(共享)模式

如果您的开发环境与图 4 相符,那么混合或共享模式也许是最好的选择。

此图示显示了一种 NFS 密集型开发环境,在此开发环境中,源文件位于网络中的服务器上

图 4. 适合混合模式的环境

在这种环境中使用混合模式的优势如下:

  • 在 IDE 中,可以轻松地在主机和平台间进行切换。
  • 使用这种模式不会产生文件复制(缓存),而这在其他两种模式中都会出现。
  • 网络吞吐量将达到文件共享机制(例如 NFS、Samba 或 WebDAV)可提供的水平。

完整模式

如果您的开发环境与图 5 相符,那么完整模式应该是最理想的开发模式。

图中所示的开发环境位于使用 X-windows 和 VNC 访问的共享、高负载服务器上

图 5. 适合完整模式的环境

在这种环境中使用完整远程模式的优势如下:

  • 从使用 X-window 转发或 VNC 的系统中迁移几乎是无缝的。
  • IDE 响应时间得以改进。
  • 减少了对开发主机资源的依赖性。
  • 减少了开发主机的负载,同时也降低了 Oracle Solaris 的负载。
  • 可以通过远程二进制文件创建新的远程项目。

选择一种远程开发模式

可以在 IDE 中使用 Host Properties 对话框,为远程主机选择简单模式或混合模式。

Host Properties 对话框

图 6. Host Properties 对话框

  • 对于简单模式,请将 Synchronization 设置为 Automatic copying。
  • 对于混合模式,请将 Synchronization 设置为 System level file sharing。

为在 IDE 中使用完整远程模式,可选择 File > Open Remote C/C++ Project 打开项目,或者选择 File > Create Remote C/C++ Project 来创建项目。

使用 IDE 的桌面分发执行远程开发

如果您要在使用 X-Windows 转发或 VNC 的远程系统上运行 IDE 来执行远程开发,则可以利用 IDE 的桌面分发实现更出色的 IDE 性能和响应时间。桌面分发可以在装有 Microsoft Windows、Mac OS X 和 Linux 的桌面系统上运行。

从 IDE 创建桌面分发时,桌面分发将配置为可与您连接的远程主机配合工作,并且桌面分发中包含您的用户配置文件数据(IDE 设置和开放项目)。

可在运行 IDE 时创建桌面分发,也可使用启动 IDE 所用的 solstudio 命令创建桌面分发。

  • 要在运行 IDE 时创建桌面分发 zip 文件,请选择 Tools > Create Desktop Distribution
  • 要使用 solstudio 命令创建桌面分发 zip 文件,请使用 --generate-desktop-distr 选项。

在桌面系统中解压缩桌面分发 zip 文件时,您可以在本地运行 IDE,无需使用 X-Windows 转发或 VNC;也可以在远程主机上编译、运行、调试和分析代码。

有关创建和使用桌面分发的详细信息,请参见文章“如何使用 IDE 桌面分发”。

缓存和安全性

IDE 利用磁盘缓存提供对远程文件的快速访问。缓存位于用户目录 user_directory/var/cache/remote-files 中。

在运行 Oracle Solaris 或 Linux 的系统中,您的用户目录为 ~/.solstudio/ide-12.3-OS-architecture。例如,在 Oracle Solaris x86 系统中,用户目录为 ~/.solstudio/ide-12.3-SunOS-i386

在运行 Microsoft Windows 的系统中,用户目录为 ~\Application Data\.solstudio\dd-12.3

为加强安全性,可定期加密或者删除缓存目录。

另请参见

在以下位置可以获得更多详细信息:

关于作者

Leonid Lenyashin 于 2004 年加入 Sun Microsystems 的俄罗斯圣彼得堡分公司,担任经理一职,负责确保 x86/64 平台的 Oracle Solaris Studio 编译器生成的代码性能。此后,Leonid 还承担过 Oracle Solaris Studio IDE 和 NetBeans CND (C++) 项目。在加入甲骨文公司之前,Leonid 曾就职于摩托罗拉、德意志银行等企业,参与过的项目涉及电信、金融和嵌入式领域。

Vladimir Kvashin 拥有大约 20 年的 IT 从业经验,曾就职于 Togethersoft 和 Borland 等公司,参与过企业级系统和现代 IDE 的开发。Vladimir 于 2004 年加入 Sun 公司。现在,他是圣彼得堡 Oracle Solaris Studio IDE 开发组的一员。

修订版 1.0,2012 年 5 月 30 日

要了解 Oracle 所有技术中与系统管理员有关的内容,请在 FacebookTwitter 上关注 OTN Systems。