Введение в технологию NX

В данном документе представлено описание предпосылок для развития технологии NX, а также рассматриваются проектные решения, применяемые в ходе этого развития. Объясняется отличие NX от других подобных технологий, описываются цели, преследуемые данной технологией.

Сетевая вычислительная система – это старый «умный» термин, которым назывался Интернет. Это задумка, которая была призвана освободить пользователей от зависимости от своих персональных компьютеров и операционных систем и сделать шаг в направлении использования программных приложений и серверов для обработки данных. До настоящего времени отсутствие универсального, признанного всеми протокола (наподобие HTML и XML для Web), затрудняет реализацию и поддержку сетевой обработки данных в широких масштабах.

Почему именно система X-Window?

Распределенная вычислительная архитектура NX – это пакет коммерческих средств и технологий с открытыми «исходниками», созданных, чтобы сделать сетевую обработку данных такой же легкой, как путешествие по Web. Он состоит из тонкого слоя серверного программного обеспечения, которое позволяет любому компьютеру под управлением операционной системы Unix функционировать как терминальный сервер, а также клиентов для широкого ряда платформ и операционных систем. Для реализации основ распределенной вычислительной архитектуры NX «NoMachine» сделала свой выбор в пользу известной и широко распространенной системы X-Window – системы окон, которая стоит за графическим пользовательским интерфейсом Linux и операционной системой Unix.

По-видимому, большинство решений в области сетевой обработки данных предназначены для использования в качестве средства-заменителя. Оказалось, что разработчики при проектировании этих средств не предусматривали, что для пользователей они будут основным способом доступа к рабочему столу. Данная проблема касается, например, VNC и RDP. Оба эти протокола намного проще, чем X (и поэтому очень хорошо подходят для малофункциональных клиентов), однако их простота не компенсирует недостаток производительности и отсутствие некоторых функций. Например, данные протоколы формируют изображение на удаленном экране, передавая по сети огромные объемы графической информации. Даже если RDP – протокол намного более высокого уровня и является намного более эффективным протоколом, чем RFB, он не был создан для ежедневного использования вычислительных ресурсов, а является дополнением к базовой операционной системе.

X-Window – это не расширение подсистемы операционной системы на главной вычислительной машине, а ее графическая подсистема. Программные приложения X сообщаются с X-Window с использованием протокола X таким образом, чтобы операционной системе не надо было добавлять слой к сетевому протоколу для передачи обновлений на экран.

Трудности системы X-Window

Система X-Window – это открытый и расширяемый клиент-серверный протокол, призванный реализовать разделительный слой между логикой программного приложения (запускаемого на серверах приложений) и представлением (с которым имеют дело клиенты). Другими словами, он был создан для сетевой обработки данных. Для эффективной работы подлинный протокол X требует высокую пропускную способность сети и низкий уровень запаздываний. Хотя, на протяжении нескольких лет развитие графических пользовательских интерфейсов повысило требования к сетевым и вычислительным ресурсам. Вместо создания слоев для программных приложений X для адаптации их работы с имеющимися сетевыми ресурсами, разработчики клиента X и инструментальных средств X сделали ставку на отказ пользователей от сетевых возможностей X-Window с целью облегчения доступа к приложениям, запущенным на их собственных компьютерах. За последние несколько лет система X-Window полностью утратила свои первоначальные характеристики протокола сетевой обработки данных, и даже самые осведомленные и продвинутые пользователи стали воспринимать ее как своего рода драйвер монитора.

С самого начала главной целью проекта NX было развитие технологии сжатия X, которая позволила бы пользователю запускать немодифицированные версии наиболее распространенных сред с реализацией концепции рабочего стола X на стандартных серверах X с использованием сетевого подключения любого типа. Это в первую очередь нужно для того, чтобы система X-Window снова обрела свою функцию сетевого протокола.

Технология с использованием протокола сжатия X от «NoMachine» «NoMachine» разработала особую технологию X с использованием протокола сжатия, а также интегрированный набор прокси-агентов, которые позволяют запускать полноценные сессии с использованием удаленной рабочей среды даже в полноэкранном режиме и при наличии низкоскоростного Интернет-подключения – вплоть до той скорости, которую обеспечивает модем с полосой частот 9600.

Сжатие NX работает на трех уровнях по протоколу X:

Выполняется сжатие сетевого трафика при помощи некоторого набора средств, включая дифференциальные алгоритмы «по каждому сообщению», продвинутые способы кэширования, сжатие изображений с потерями и без.

Циклическая передача информация снижена почти до нуля, при этом пропускная способность доводится до максимума. Пропускная способность настраивается в реальном времени, в соответствии с условиями в сети.

Коэффициент сжатия по протоколу X варьируется от 10 к 1 до 100 к 1 и более, в зависимости от выполняемого программного приложения. Такой результат достигается без потерь производительности на быстрых локальных сетях, поэтому удаленные сессии могут выполняться на скорости, которая не различима для локального компьютера.

Основная идея - открытые «исходники»

Для поддержки распределенной вычислительной архитектуры NX «NoMachine» выпустила все базовые библиотеки и низкоуровневые компоненты программного обеспечения с открытыми «исходниками». Сюда входят агенты X, прокси клиента и все библиотеки, реализующие передачу сжатых данных по протоколу X. «NoMachine» сделал выбор в сторону лицензии GNU – той же лицензии, по которой идет разработка операционной системы Linux. «NoMachine» ставит своей целью поддержку широких масс разработчиков путем совместной работы по созданию интерактивного программного обеспечения для сервера и клиента, что сделает возможной революцию в области сетевой обработки данных.

Операционная система Linux как сервер и как платформа рабочей среды

Серверные приложения NX запускаются под операционной системой Linux. Linux – это операционная система на основе Unix, что подразумевает высокий уровень расширяемости, хорошие показатели надежности и производительности, которые требует современная корпоративная среда. В то же время, гибкость Linux позволяет ей управлять рассредоточенной, децентрализованной сетью, объединяющей миллионы компьютеров, предоставляя службы и программные приложения, на которых будет строиться вычислительная сеть будущего.

Занимая твердые позиции на рынке серверных операционных систем, Linux также выступает в качестве реалистичной среды рабочего стола. Среды, реализующие концепцию рабочего стола, наподобие KDE или GNOME, а также StarOffice , используют протокол X-Window. NX поддерживает такие среды с нулевыми затратами, и в целом обеспечивает наивысшую производительность.

Внешние протоколы RDP и RFB

Доступность протокола NX и возможности дистанционной обработки данных не ограничиваются использованием серверов под управлением операционной системы Linux и ее рабочей среды. В состав NX входит протокол удаленного рабочего стола, который используется операционной системой Microsoft Windows NT/2000 Terminal Server Edition и Citrix Metaframe, и транслируется в протокол X, а также удаленный кадровый буфер – протокол, используемый VNC, представляющий собой еще одно средство удаленной обработки данных с открытыми «исходниками», доступное для множества различных операционных систем.

Хотя сжатие NX обеспечивает наивысшую производительность при запуске «родных» программных приложений X, сессии RDP и RFB могут сжиматься с коэффициентом от 2 до 10. Поддержка NX внешних протоколов дает и другие преимущества. Во-первых, в зоне охвата оказывается практически любой компьютер, а во-вторых, NX предлагает пользователю общий обзор всех программных ресурсов, доступных через Интернет.

Распределенная вычислительная архитектура NX

Распределенная вычислительная архитектура NX спроектирована «с нуля» и служит для распределения рабочей нагрузки между узлами широкомасштабной сети. Серверы NX предназначены для выполнения высокоуровневых функций повышения управляемости в сети NX. Они ответственны, например, за аутентификацию и активацию пользовательских сессий, а также за то, что узлы передают пользователям свойственную им среду обработки данных (например, такие же файловые системы и такие же приложения). Сессии запускаются на узле NX в виртуальной группе. Сотни узлов NX могут подсоединяться к одному или нескольким управляющим серверам для поддержки тысяч текущих сессий.

Узлы NX не предназначены для использования их как выделенных компьютеров (даже если, по-видимому, это является типичным в контексте наследования). Любой компьютер в среде рабочего стола может быть узлом распределенной сети NX. Сеть NX очень похожа на децентрализованную сеть, в которой клиенты использую поиск (в данном случае для отдельного программного приложения или среды рабочего стола), и поисковый механизм перенаправляет клиента на подходящий сервер, предоставляя со стороны клиента подтверждение авторизации, которое затем отправляется для того, чтобы узел мог принять подключение.

Распределение нагрузки между узлами

Не только серверы могут распределять нагрузку на сеть путем распределения сессий между узлами. Узлы могут также распределять программные приложения, запущенные в пределах сессии между различными серверами приложений. Такое может происходить, если ресурс или приложение не доступно на исходном узле, или же если ресурс «ближе» к пользователю. Более короткий сетевой путь гарантирует более высокую производительность.

Сессия может быть идентифицирована агентом, запущенным на узле. Агенты доступны для сетевых протоколов X, RDP и RFB. Агенты запускаются на серверах приложений и принимают подключения от клиентов NX. Клиенты, согласно правилам именования NX, - это компьютеры пользователей, на которых запущен сервер X. Каждому агенту требуется только одно соединение с сервером X через сокет.

Случай с протоколами RDP и RFB – самый обычный. Данные протоколы эмулируют полное изображение на экране и не требуют взаимодействия между различными программными приложениями, подключенными к одному и тому же серверу. Узел может подключить любую сессию по протоколам RDP и RFB к другому компьютеру с системой Windows Terminal Server или другому серверу VNC, распределяя нагрузку сессий между доступными сетевыми ресурсами. В случае с протоколом X доступны два режима работы: когда пользователь запускает сессию на новом виртуальном рабочем столе, агент сам по себе функционирует как сервер X. Он объединяет подключения клиентов X в одно подключение к реальному серверу X.

Программные приложения X могут запускаться на различных узлах, выступая в роли серверов приложений. Взаимодействие между программными приложениями X осуществляется локально, на стороне агента. Поскольку обмен информацией при таком взаимодействии может быть очень интенсивным, общая производительность значительно увеличивается. В тот момент, когда приложения X запускаются на агенте X, они «гнездятся» внутри окна агента. «Независимый» агент, то есть агент, который превосходит данное ограничение, в настоящее время находится в разработке. Когда пользователь запускает приложения внутри существующей сессии X, окна «плавают» на рабочем столе и полностью совмещаются с локальными программными приложениями. В данном случае NX функционирует в качестве прозрачного прокси, сжимая трафик X и туннелируя дополнительные сетевые службы (например, протокол SMB и мультимедиа), но при этом не определяя локальное разрешение кругового обхода сети по протоколу X, что возможно благодаря агенту NX.

Разработка для простоты

Несмотря на очевидную сложность, встроенные сетевые возможности системы Unix и внутренние характеристики сетевых служб системы Unix и X-Window в плане возможности модульного наращивания выводят эту разработку на первый план. NX использует средства удаленного запуска SSH для получения доступа к функциям узла. Вся передаваемая информация шифруется согласно промышленному стандарту криптографии с открытым ключом SSL. На уздах не требуется устанавливать какие-либо новые сетевые серверы, за исключением демона SSH – сервера, который выступает в качестве стандарта для современных систем Unix.

+7 (812) 429-70-17

Простое решение - Позвоните нам!