blob: 6fd61b751a683db2c17fc3413edd5dd52d29f016 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Удаленные режимы разработки C/C++</title>
<meta name="DESCRIPTION" content="A short guide to using C/C++ remote development in NetBeans IDE
and Oracle Solaris Studio IDE.">
<meta name="keywords" content="NetBeans, IDE, Oracle Solaris Studio, integrated development environment,
tutorial, guide, user, documentation, open source, remote development, C, C++">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<link rel="stylesheet" type="text/css" href="../../../print.css" media="print">
<link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen">
<script type="text/javascript" src="../../../images_www/js/lytebox-compressed.js"></script>
<meta HTTP-EQUIV="Content-Type" Content="text/html; charset=UTF-8"></head>
<body>
<img alt="Содержимое на этой странице применимо к IDE NetBeans 7.3, 7.4 и 8.0" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="Содержимое этой страницы применимо к IDE NetBeans 7.3, 7.4 и 8.0">
<h1>Режимы удаленной разработки C/C++ в IDE</h1>
<div class="articledate" style="margin-left: 0px;font-style:italic;">
Март 2014 г. [Номер версии: V8.0-1]</div>
<p>В данной статье описываются возможности удаленной разработки, доступные в IDE NetBeans, если модуль C/C++ установлен, а также рекомендации по оптимальному использованию их в среде разработки.</p>
<p><b>Содержание</b></p>
<ul class="toc">
<li><p><a href="#glxfe">Что такое удаленная разработка</a></p>
</li>
<li><p><a href="#glxir">Когда следует использовать удаленную разработку</a></p>
</li>
<li><p><a href="#glxiu">Каковы принципы работы удаленной разработки</a></p>
</li>
<li><p><a href="#glxie">Преимущества удаленной разработки</a></p>
</li>
<li><p><a href="#glxhr">Режимы удаленной разработки</a></p>
</li>
<li><p><a href="#glxhu">Решение о выборе режима удаленной разработки</a></p>
</li>
<li><p><a href="#glxjy">Выбор удаленного режима разработки</a></p>
</li>
<li><p><a href="#gmvfz">Полная удаленная разработка с помощью панели инструментов</a></p>
</li>
<li><p><a href="#glyqe">Кэш-память и безопасность</a></p>
</li>
<li><p><a href="#gmbed">См. также</a></p>
</li></ul>
<a name="glxfe"></a>
<h2>Что такое удаленная разработка</h2>
<p>Удаленная разработка – это функция IDE NetBeans, позволяющая запускать IDE на компьютере под управлением Microsoft Windows, Mac OS X, Oracle Solaris или Linux, а также создавать, запускать и отлаживать программы на другом компьютере под управлением Oracle Solaris или Linux.</p>
<a name="glxir"></a>
<h2>Когда следует использовать удаленную разработку</h2>
<p>Удаленную разработку рекомендуется использовать в следующих ситуациях.</p>
<ul>
<li><p>Ваш настольный компьютер работает под управлением системы, отличной от Oracle Solaris или Linux.</p>
</li>
<li><p>IDE запущена в общей системе Solaris, что иногда приводит к высоким нагрузкам.</p>
</li>
<li><p>Ваш доступ к системам под управлением Oracle Solaris или Linux ограничен Secure Shell (SSH) по соображениям безопасности.</p>
</li>
<li><p>Запуск графических инструментов пользовательского интерфейса в среде Solaris затруднен.</p>
</li>
<li><p>Разрабатываемое программное обеспечение должно быть скомпилировано и запускаться на нескольких платформах, включая Solaris или Linux.</p>
</li></ul>
<a name="glxiu"></a>
<h2>Каковы принципы работы удаленной разработки</h2>
<p>IDE предоставляет возможности для управления удаленными узлами. Можно настроить удаленный узел для создания, запуска и отладки проектов на C, C++ и Fortran. Удаленный узел должен удовлетворять следующим условиям.</p>
<ul><li><p>Удаленной операционной системой должна быть Oracle Solaris или Linux.</p>
</li>
<li><p>На удаленном узле необходимо запустить программу-демон SSH <code>sshd</code>.</p>
</li>
<li><p>По крайней мере одна коллекция средств (GNU, Oracle Solaris Studio или Sun Studio) должна быть доступна на удаленном узле.</p>
</li>
<li><p>У пользователя должна быть учетная запись пользователя на этом узле.</p>
</li></ul>
<p>Он может управлять удаленными узлами в окне 'Службы' в IDE.</p>
<img alt="Окно &apos;Службы&apos;" height="336" src="../../../images_www/articles/73/cnd/remote-modes/services_window.png" width="353">
<p>После настройки удаленного узла и подключения к нему можно создавать, запускать и отлаживать проекты так же, как это делается на локальном компьютере. Удаленные команды IDE выполняются с более высоким приоритетом по сравнению с SSH. </p>
<p>При использовании удаленного узла разработки и локальные, и удаленные узлы должны быть доступны для файлов проекта. Этот доступ может быть предоставлен путем совместного использования файлов или защищенного копирования файлов. Перед тем как в IDE можно будет использовать обмен файлами между локальными и удаленными системами общая файловая система или папка должна быть создана и доступна для обеих систем. Удаленные файлы доступны через SFTP или другой механизм совместного использования файлов, доступных в операционной системе, под управлением которой работает узел (например, Network File System (NFS), Samba или WebDAV).</p>
<p>Если совместное использование файлов не представляется возможным, можно использовать автоматическое копирование для копирования файлов на сервер с помощью SSH.</p>
<a name="glxie"></a>
<h2>Преимущества удаленной разработки</h2>
<p>Удаленная разработка обеспечивает следующие преимущества.</p>
<ul><li><p>Можно использовать одну среду разработки для всех проектов.</p>
</li>
<li><p>Ресурсы системы настольного компьютера используются оптимально.</p>
</li>
<li><p>Сетевой трафик оптимизирован.</p>
</li>
<li><p>Время отклика используемой IDE лучше.</p>
</li>
<li><p>Можно просматривать удаленные файловые системы из IDE.</p>
</li>
<li><p>Можно открыть окно терминала в IDE для удаленного узла.</p>
</li>
<li><p>Можно использовать его только в среде, защищенной SSH.</p>
</li></ul>
<a name="glxhr"></a> <img alt="Схема местоположения исходных файлов и доступа к ним в каждом режиме" height="354" src="../../../images_www/articles/73/cnd/remote-modes/modes_diagram.png" width="589">
<p>В простом режиме файлы исходного кода находятся в основном на локальном компьютере. При создании проекта файлы исходного кода доставляются по требованию к удаленному узлу с помощью протокола SSH File Transfer Protocol (SFTP).</p>
<p>В комбинированном или общем режиме файлы исходного кода находятся в местоположении, которое назначено общим для локального и удаленного узла с помощью NFS, Samba, WebDAV или другой системы совместного использования файлов.</p>
<p>В полном режиме удаленного доступа файлы исходного кода находятся на удаленном узле. IDE обращается к файлам с помощью SFTP.</p>
<a name="glxhu"></a>
<h2>Решение о выборе режима удаленной разработки</h2>
<p>Какой режим разработки лучше всего подходит для данной конкретной ситуации, зависит от среды разработки, в которой вы работаете. В следующих разделах приведены примеры сред разработки, в которых один из режимов обеспечивает наибольшие преимущества.</p>
<a name="glxod"></a><h3>Простой режим</h3>
<p>Простой режим может быть наилучшим удаленным режимом для ваших потребностей, если вашу среду разработки описывает следующая диаграмма.</p>
<img alt="Диаграмма, на которой показана среда разработки, где файлы исходного кода хранятся локально и разработчик работает с ними локально для нескольких удаленных целевых платформ" height="371" src="../../../images_www/articles/73/cnd/remote-modes/simple_mode_diagram.png" width="637">
<p>В этой среде простой режим обеспечивает следующие преимущества.</p>
<ul><li><p>Можно использовать ту же IDE для локальной и удаленной разработки.</p>
</li>
<li><p>Можно легко переключаться между узлами и платформами в IDE.</p>
</li>
<li><p>Можно использовать IDE в среде, которая поддерживает только SSH.</p>
</li>
<li><p>Ваша мобильность повышается.</p>
</li></ul>
<a name="glxjk"></a><h3>Комбинированный (общий) режим</h3>
<p>Комбинированный или общий режим может быть оптимальным, если среда разработки похожа на показанную на следующем рисунке.</p>
<img alt="На диаграмме показана среда разработки с высоким уровнем использования NFS с файлами исходного кода, расположенными на серверах в сети" height="318" src="../../../images_www/articles/73/cnd/remote-modes/mixed_mode_diagram.png" width="627">
<p>Преимущества использования комбинированного режима в этой среде.</p>
<ul><li><p>Можно легко переключаться между узлами и платформами в IDE.</p>
</li>
<li><p>Нет дублирования (кэширования) файлов, которое происходит в двух других режимах.</p>
</li>
<li><p>Пропускная способность сети будет такой же высокой, какую может обеспечить ваш механизм совместного использования файлов (например, NFS, Samba или WebDAV).</p>
</li></ul>
<a name="glxlz"></a><h3>Полный режим</h3>
<p>Полный режим может быть оптимальным, если ваша среда разработки напоминает показанную на следующем рисунке.</p>
<img alt="На диаграмме показана среда разработки в среде совместного использования с тяжелой нагрузкой на серверы, для доступа к которым используются X-windows и VNC" height="312" src="../../../images_www/articles/73/cnd/remote-modes/full_mode_diagram.png" width="606"><p>В этой среде преимущества использования полного удаленного режима таковы.</p>
<ul><li><p>Перенос с использованием перенаправления X-window или VNC практически прозрачен.</p>
</li>
<li><p>Время отклика используемой IDE лучше. </p>
</li>
<li><p>Вы в меньшей степени зависите от ресурсов узла разработки.</p>
</li>
<li><p>Меньшая нагрузка на узел разработки снижает нагрузку на Oracle Solaris.</p>
</li>
<li><p>Можно создавать новые удаленные проекты на основе удаленных двоичных файлов.</p>
</li></ul>
<a name="glxjy"></a>
<h2>Выбор удаленного режима разработки</h2>
<p>Выбор удаленного режима разработки определяется способом настройки узла удаленной сборки, а также способом получения доступа к проекту в IDE.</p>
<p>Для каждого режима необходимо сначала настроить удаленный узел сборки, как описано в документе <a href="./remotedev-tutorial.html">Учебное руководство по разработке на C/C++</a>и в разделах справки по IDE.</p>
<p>Можно выбрать простой или комбинированный режим для удаленного узла в IDE и с помощью диалогового окна свойств узла указать, как файлы проекта должны быть доступны при работе с узлом.</p>
<p>Откройте окно 'Службы', разверните узел 'Узлы сборки C/C++', щелкните правой кнопкой мыши удаленный узел и выберите 'Свойства'.</p>
<img alt="Диалоговое окно &apos;Свойства узла&apos;" height="399" src="../../../images_www/articles/73/cnd/remote-modes/host_properties_dialog.png" width="506"><br>
<h3>Простой режим</h3>
<p>Для простого режима установите для доступа к файлам проекта режим автоматического копирования.</p>
<p>Можно щелкнуть правой кнопкой мыши проект, выбрать 'Установить узел сборки' и выбрать удаленный узел, настроенный на доступ к файлам проекта с помощью автоматического копирования. Затем используется простой режим удаленной разработки. При создании проекта файлы проекта будут автоматически скопированы в каталог пользователя NetBeans на удаленном узле.</p>
<h3>Комбинированный режим</h3>
<p>Для комбинированного режима следует установить доступ к файлам проекта на системном уровне обмена файлами.</p>
<p>Можно щелкнуть правой кнопкой мыши проект, выбрать 'Задать узел сборки' и выбрать удаленный узел, настроенный на доступ к файлам проекта на системном уровне обмена файлами. Затем будет использован комбинированный режим удаленной разработки. При создании проекта файлы проектов остаются там, где они находятся, поскольку они могут быть доступны с локального компьютера и удаленного узла сборки.</p>
<h3>Полный удаленный режим</h3>
<p>Чтобы использовать полный удаленный режим в IDE, используйте панель инструментов 'Удаленная разработка', описанная в следующем разделе.</p>
<a name="gmvfz"></a>
<h2>Полная удаленная разработка с помощью панели инструментов</h2>
<p>В полном режиме удаленного доступа можно использовать IDE, запущенную на локальном компьютере для работы над проектами, которые находятся на удаленном компьютере, с помощью панели инструментов удаленной разработки.</p>
<p>Панель инструментов показана на следующем рисунке.</p>
<img alt="Изображение панели инструментов удаленной разработки" height="37" src="../../../images_www/articles/73/cnd/remote-modes/RemoteToolbar.gif" width="299"> <br><p>Если панель инструментов в IDE не отображается, ее отображение можно настроить, выбрав 'Вид' > 'Панели инструментов'> 'Удаленные'.</p>
<p>Можно использовать панель инструментов удаленной разработки для выбора удаленного компьютера, уже настроенного для работы над проектами и файлами на удаленном компьютере, так же, как если бы они находились на локальном компьютере.</p>
<p>Используйте значки, как описано в следующей таблице.</p>
<table><col width="8%"><col width="91%"><tr><td align="left" valign="top" scope="row"><img alt="Значок &apos;Состояние подключения&apos;" height="24" src="../../../images_www/articles/73/cnd/remote-modes/connected24.gif" width="24"><br></td>
<td align="left" valign="top" scope="row"><p>Состояние подключения. Нажмите на значок, чтобы подключиться к серверу, выбранному в списке рядом со значком. Если вы уже подключены, можно нажать этот значок, чтобы отключиться от сервера.</p>
<p>Значок, показывающий состояние соединения, меняет цвет на зеленый при установке соединения и на красный при разрыве соединения.</p>
</td>
</tr>
<tr><td align="left" valign="top" scope="row"><img alt="Значок &apos;Создание удаленного проекта&apos;" height="24" src="../../../images_www/articles/73/cnd/remote-modes/newProject24.gif" width="24"><br></td>
<td align="left" valign="top" scope="row"><p>Создание удаленного проекта. Щелкните значок, чтобы создать новый проект на подключенном в данный момент узле.</p>
<p>По умолчанию проект создается в каталоге <code>~/NetBeansProjects</code> на удаленном узле.</p>
</td>
</tr>
<tr><td align="left" valign="top" scope="row"><img alt="Значок &apos;Открыть удаленный проект&apos;" height="24" src="../../../images_www/articles/73/cnd/remote-modes/openProject24.gif" width="24"><br></td>
<td align="left" valign="top" scope="row"><p>Открыть удаленный проект. Щелкните значок, чтобы открыть существующий проект на подключенном в данный момент узле.</p>
<p>Можно просмотреть проект в удаленной файловой системе.</p>
</td>
</tr>
<tr><td align="left" valign="top" scope="row"><img alt="Значок &apos;Открыть удаленный файл&apos;" height="24" src="../../../images_www/articles/73/cnd/remote-modes/openFile24.gif" width="24"><br></td>
<td align="left" valign="top" scope="row"><p>Открыть удаленный файл. Щелкните значок, чтобы открыть файл на текущем подключенном узле.</p>
<p>К этому файлу можно перейти в удаленной файловой системе.</p>
</td>
</tr>
</table>
<a name="glyqe"></a>
<h2>Кэш-память и безопасность</h2>
<p>Чтобы обеспечить быстрый доступ к удаленным файлам, IDE использует дисковый кэш в локальной системе. Кэш находится в <code><em>userdir</em>/var/cache/remote-files</code>, где <code><em>userdir</em></code> является уникальным для пользователя и его местоположение зависит от платформы, на которой запущена IDE. </p>
<p class='tips"'>См. описание <code><em>userdir</em></code> и местоположений для каждой платформы в <a href="http://wiki.netbeans.org/FaqWhatIsUserdir">http://wiki.netbeans.org/FaqWhatIsUserdir</a>.</p>
<p>
При использовании удаленной разработки в простом и общем режимах только системные заголовки будут доступны через локальный кэш, поэтому угроза безопасности отсутствует.</p>
<p>
В полном режиме удаленного доступа, хотя файлы находятся на удаленном узле, анализ проекта выполняется на локальном компьютере. По мере обращения к файлам исходного кода для анализа они кэшируются на локальном узле в <code><em>userdir</em>/var/cache/remote-files</code> и в конечном итоге все файлы исходного кода помещаются в кэш. </p>
<p>На мобильных компьютерах это может рассматриваться как угроза безопасности. Для повышения безопасности каталог кэша может быть зашифрован или может удаляться на регулярной основе.</p>
<p class="notes">Кэш-память, расположенная в <code> ~/.netbeans/remote</code> на удаленном компьютере, создается при использовании простого режима, и файлы исходного кода копируются автоматически по запросу с локального компьютера на удаленный компьютер при создании проекта. Эти файлы являются такими же безопасными, как любые другие на сервере, так что это не угрожает безопасности.
</p>
<a name="gmbed"></a>
<h2>См. также</h2>
<p>Подробнее см. в следующих местоположениях.</p>
<ul><li><p>Меню 'Справка' в IDE обеспечивает доступ к обширной информации об использовании IDE.</p>
</li>
<li><p>В документе <a href="./remotedev-tutorial.html">Учебный курс по удаленной разработке на C/C++</a> рассказывается, как в пошаговом режиме сделать простую удаленную разработку</p></li>
<li><p><a href="https://netbeans.org/kb/trails/cnd.html">Учебные карты C/C++</a> содержат несколько статей и учебных руководств по разработке на C/C++ в IDE.</p>
</li></ul>
<br>
<div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20C/C++%20Remote%20Development%20Modes%20-%20NetBeans%20IDE%20Article">Мы ждем ваших отзывов</a></div>
<div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=Feedback:%20C/C++%20Remote%20Development%20Modes%20-%20NetBeans%20IDE%20Article">Отправить отзыв на эту статью</a></div>
<br style="clear:both;">
</body>
</html>