Сегодня каждый поставщик на свой лад объясняет потенциальным покупателям, как он предлагает уменьшить общую стоимость владения компьютерной системы. Кроме того, каждый из них норовит акцентировать внимание своих слушателей на недостатках, имеющихся у конкурентов. В результате столь агрессивной информационной атаки в головах пользователей образуется каша из смеси самых разнообразных аспектов принципиально отличающихся друг от друга сетевых технологий. Тонких клиентов путают с клиентами на базе Java, которые в свою очередь у многих ассоциируются с неинтеллектуальными терминалами, и т. д. В данной статье мы постараемся внести ясность в этот вопрос и окончательно расставить все точки над i.
Во-первых, давайте разберемся, что следует понимать под терминами «толстый» (fat), «тонкий» (thin) и «сверхтонкий» (ultra-thin).
Для «толстого» клиента характерны локальная операционная система, локальные хранящиеся данные и промежуточные результаты работы приложений. Толстый клиент может обращаться к сетевым ресурсам, но большая часть приложений размещается на локальном диске и почти всегда выполняется на клиенте.
Тонкий клиент функционирует под управлением локальной операционной системы, однако все приложения и данные размещаются на сервере. В момент запуска приложение считывается с жесткого диска сервера и выполняется на локальном компьютере. Данные же хранятся на сервере и выбираются оттуда по мере необходимости, а результаты вновь записываются на сервер.
Сверхтонкий клиент отличается очень компактной ОС, основная задача которой — отработка графических операций. Все приложения запускаются на удаленном сервере, а на клиенте лишь отображаются результаты вычислений. В течение всего времени данные размещаются на сервере.
Давайте, взяв за основу эту классификацию, рассмотрим следующие наиболее популярные реализации различных вариантов клиентских систем:
- X Window System;
- система на базе Windows Terminal Server;
- сетевая операционная система;
- сетевая вычислительная система на базе Java.
Кроме того, будут представлены в основных чертах три менее распространенные, но очень любопытные технологии:
- Go-Global/Go-Joe компании GraphOn;
- JBridge компании Corel;
- Tarantella компании SCO.
В каждом варианте модели сетевых вычислений по-своему решаются вопросы, где и как выполнять приложения, где обрабатывать графические операции, насколько интенсивным может быть сетевой трафик.
Наиболее характерные черты всех этих моделей будут рассмотрены на очень простом примере, когда несколько клиентов подключаются к одному серверу (в каждом случае указываются основные программные компоненты, необходимые для сервера и для всех клиентов).
Для каждой из машин приведены сравнительные диаграммы, на которых разными цветами представлены разные типы вычислений: обработка графики — светло-зеленым; выполнение приложений — темно-зеленым; вычисления, связанные с сетевой обработкой, — бордовым.
Реальная нагрузка существенно зависит от множества различных параметров: от типа конкретных приложений, числа активных пользователей, среднего количества пользователей на один сервер, от пропускной способности сети, напряженности сетевого трафика и, конечно, от аппаратной платформы как клиентской, так и серверной части системы.
Следует также помнить, что у каждой системы своя цена, свои средства управления и своя общая стоимость владения.
Среда X11R6
Простейшая сетевая система X11 представляет собой набор X-приложений, выполняющихся на Unix-сервере, к которому могут обращаться обычные ПК, оснащенные специальным программным обеспечением PC X Server, X-терминалы, а также сетевые компьютеры со встроенным X-сервером. В этом сценарии большая часть обработки приложений выполняется на Unix-сервере.
Точнее, за выполнение графических операций, связанных с отображением результатов работы приложения, отвечает клиент, все же остальные процессы выполняются на удаленном сервере. В отличие от модели, реализуемой в рамках Windows Terminal Server, подобный сверхтонкий клиент обрабатывает графические операции самостоятельно. Операционная система сервера не имеет к этому никакого отношения.
Протокол X нельзя назвать облегченным. Для организации даже самых простых операций по сети пересылается масса сообщений. Тем не менее X-протокол демонстрирует вполне приемлемую производительность в локальной сети Ethernet 10Base-T, к которой подключены от 20 до 40 клиентов. (Применять протокол X в территориально распределенных сетях не рекомендуется, поскольку скорость реакции клиентов при этом значительно снижается.)
Большая часть забот по управлению в данной модели возлагается на сервер. На X-терминалах нет никаких локальных данных, и даже их начальная загрузка производится по сети с сервера. ПК, превращенные с помощью специального программного обеспечения в полноценный X-сервер, могут одновременно выполнять и Windows-приложения. В этом случае основная нагрузка все равно ложится на сетевой сервер Unix, но новые программные средства управления и администрирования на основе Web существенно облегчают решение некоторых задач. (Подробнее о системе X Window рассказывалось в статье «X встречается с Windows», опубликованной в Computerworld Россия от 11 августа).
Windows NT Terminal Server
Windows NT Terminal Server Edition, или WTS (в период разработки это программное обеспечение носило многозначительное условное наименование Hydra), — это ответ корпорации Microsoft приверженцам сетевых моделей на основе технологий X Window или Java. Некоторое концептуальное сходство с архитектурой X Window System очевидно: в обеих технологиях для смены изображения на экране используется графический протокол, обработка приложений производится на сервере, учет зарегистрированных пользователей также ведется на сервере, возможен доступ через сеть к приложениям, функционирующим на других серверах.
Однако на этом сходство заканчивается. ОС Windows NT, на основе которой построено программное обеспечение WTS, принципиально отличается от Unix. Графическая подсистема NT является неотъемлемой частью операционной системы. Подсистема X11, строго говоря, не входит в состав операционной системы и представляет собой всего лишь обычное Unix-приложение. (Этот факт подтверждается в том числе и существованием версий X11 для Windows NT, OS/2 и других операционных систем.)
В сетевой среде, основанной на Windows NT Terminal Server Edition или Citrix MetaFrame, доступ клиента к приложениям осуществляется так, как если бы пользователь непосредственно работал на NT-сервере. Разница лишь в том, что результаты манипуляций с окнами, а также все данные, которые вводятся с клавиатуры и мыши, перехватываются и пересылаются с помощью специального сетевого протокола на удаленный компьютер.
Поскольку стандартные приложения Windows NT не приспособлены к такой технологии, создатели программного обеспечения Terminal Server и MetaFrame вынуждены «обманным» путем заставлять систему управлять различными контекстами, в которых работают многочисленные пользователи.
К основным недостаткам модели WTS следует отнести существенное снижение скорости выполнения графических операций в случае, когда несколько пользователей одновременно запускают приложения, связанные с интенсивной обработкой графики. В отличие от X Window System, в которой выполнение приложений распределено между клиентами и сервером, концепция WTS перекладывает всю нагрузку исключительно на сервер. Клиенту же посылается лишь битовая матрица экранного изображения. За счет увеличения загрузки сервера снижаются требования к вычислительной мощности клиентских машин.
С точки зрения задач управления наибольшие трудности вызывает настройка системного реестра, необходимая для нормальной работы приложений. Что, впрочем, вполне естественно, ведь эти программы не предназначены для одновременного использования сразу несколькими клиентами.
Операционная система Windows-терминалов чрезвычайно проста и не позволяет размещать на локальном диске приложения или какую-либо иную информацию. То же самое можно сказать и о Java-клиентах архитектуры MetaFrame.
С другой стороны, ПК-клиент представляет собой обычный настольный компьютер, на котором установлено специальное программное обеспечение. Следовательно, до того, как эти программные средства будут запущены, на локальном диске ПК можно сохранить любые данные и приложения.
Традиционная сетевая ОС
Сетевой ПК (NetPC) немногим отличается от обычного недорогого ПК, подключенного к сети. Такое понятие, как «управляемые ПК» (Managed PC), — фактически еще одна разновидность NetPC. Единственное их отличие в том, что управляемые компьютеры не обязательно должны соответствовать строгим спецификациям NetPC, определенным корпорациями Intel и Microsoft. Почти вся обработка приложений осуществляется непосредственно на ПК. Клиенты могут также получить доступ к файлам, хранящимся на сетевых серверах. Это описание соответствует классическим представлениям о сетевой операционной системе.
В системах, основанных на Windows NT и NetWare, пользователи могут хранить данные и приложения как на локальном диске, так и в сетевых каталогах, к которым они имеют доступ. Как только пользователь обращается к приложению, можно считать, что оно уже «загружено» на его клиентский компьютер.
Существуют и гибридные решения, в которых клиенты подключаются не к сети Windows NT или NetWare, а к Unix-серверам. Используя программные продукты PC NFS, клиентские машины монтируют удаленные диски, расположенные на Unix-сервере. На этих дисках можно хранить как данные, так и приложения; в данном случае Unix-сервер используется просто как централизованное хранилище.
Управление сетью осуществляется с помощью SNMP-агентов или аналогичных программных компонентов, которые показывают состояние клиентов сети. Сервер, работающий под управлением ОС Windows NT или NetWare, позволяет строго ограничить права пользователя и определить доступные ему ресурсы, каталоги и приложения.
Основная сложность в том, что клиенты являются независимыми. Администратору придется управлять каждым клиентом в отдельности. Если окажется, что средства управления клиентами чересчур обременительны или пользователи пытаются обойти установленные ограничения, вопрос решается радикально, и клиент просто отключается от сетевого диска.
Сетевая модель,основанная на Java
Разработчики модели сетевых вычислений, основанных на технологии Java, выбрали для себя иной путь. Приложения загружаются с сервера и выполняются на рабочих станциях точно так же, как и в предыдущем случае. Однако клиенты обладают гораздо более развитыми средствами управления.
Даже бездисковый клиент может иметь программную среду Java, свою собственную или встроенную в браузер. Базовое программное обеспечение записывается в постоянную память, а прикладные программы или базы данных, к которым обращаются клиенты, хранятся на сервере.В действительности же прикладное программное обеспечение расщепляется. При этом клиент отвечает за выполнение графических операций и отдельных несложных приложений, а основная вычислительная нагрузка падает на сервер. Если интерфейсная часть системы написана на Java, то это может стать причиной интенсивного обмена данными между клиентами и сервером, а следовательно, и повышенных требований к пропускной способности сети.
Данная модель особенно эффективна в случае применений с фиксированным набором приложений: клиент постоянно выполняет одни и те же задачи.
Приложения загружаются с сервера или хранятся в постоянной или флэш-памяти клиента. Если программное обеспечение хранится на клиентской машине, оно запускается непосредственно из памяти. Это обеспечивает гораздо более высокую оперативность по сравнению с загрузкой программ по сети или с локального диска.
Управление клиентами организовано достаточно гибко, хотя в этом направлении предстоит еще много работы. Администратор имеет возможность контролировать доступ пользователей к приложениям и данным и пресекать попытки несанкционированного проникновения в систему. Клиенты обращаются к ресурсам локальных сетей точно так же, как пользователи сетевых операционных систем.
Поскольку приложения написаны на языке Java, серверы тоже должны его поддерживать. Теоретически сервер может быть построен на любой платформе. На практике же, как правило, они работают под управлением ОС Unix. (Впрочем, некоторые системы имеют локальные ОС с поддержкой Java и могут загружаться с любого сервера, поддерживающего протокол Dynamic Host Configuration Protocol.)
Непроторенные тропы
Решения, основанные на программных продуктах GraphOn Go-Global/Go-Joe, Corel jBridge и SCO Tarantella, встречаются пока значительно реже, но методы, на которые они опираются, представляют определенный интерес.
GraphOn Go-Global/Go-Joe
Компания GraphOn взяла за основу систему X11 и приспособила ее к нуждам удаленных пользователей. Программные продукты Go-Global PC и Go-Joe Java, разработанные компанией, относятся к классу сверхтонких клиентов. Их размер не превышает 300 Кбайт.
Обмен информацией осуществляется при помощи оригинального протокола RapidX. Этот протокол представляет собой усеченный вариант X11 (базовые графические операции и сжатие информации). Обработка графики производится на клиенте, причем в отличие от WTS взаимодействие сервера и клиента не ограничивается модифицированными битовыми матрицами.
Помимо системы X11 на сервере функционирует программное обеспечение Go-Global. Оно предназначено для предварительной обработки некоторых графических операций и приложений.
Клиент должен распаковать графические данные, переданные по сети. Структура ОС Unix не зависит от конкретной реализации графической подсистемы, поэтому для работы X11 и Go-Global требуется меньше аппаратных ресурсов по сравнению с системами MetaFrame или Windows Terminal Server. В настоящее время компания GraphOn разработала новый программный продукт Go-Between, который позволит устанавливать управляющее серверное ПО на компьютеры с системой Windows Terminal Server. Задача Go-Between — позволить Windows-терминалам обращаться к приложениям X11, находящимся на отдельном Unix-сервере, при помощи промежуточного сервера Windows Terminal Server.
Go-Between организует обмен пакетами X11 между серверами WTS и Unix, а также сообщениями протокола RDP (Microsoft Remote Desktop Protocol) между WTS и Windows-терминалами.
Наиболее серьезное отличие решения GraphOn от рассмотренной ранее системы X11 — использование облегченного протокола для связи клиента с сервером, что значительно повышает эффективность работы пользователей в глобальных сетях. Впрочем, это решение пригодно и для локальных сетей.
Выпустив Go-Between, компания GraphOn предоставила пользователям Windows-терминалов значительно более эффективное средство доступа к X-приложениям по сравнению с применяемым сегодня гибридным интерфейсом X11-WinFrame.
Corel jBridge
Корпорация Corel предложила интересный программный продукт jBridge, который базируется на технологиях Java и позволяет обращаться к 32-разрядным приложениям Windows, расположенным на сервере.
Инженеры Corel встроили функции API-интерфейса Win32 в библиотеку Java. Теперь с помощью этого центрального для NT интерфейса можно запускать все новые 32-разрядные приложения Windows.
Только ли новые? Да. Несмотря на то что Microsoft в настоящее время использует API-интерфейс Win32 во всех своих операционных системах, в каждой версии он реализуется по-разному. В решении Corel за основу взята библиотека Win32 именно для NT.
Приложения Windows хранятся на сервере NT (а не в системе WTS), клиент получает доступ к приложениям, подключаясь к одному из сетевых дисков. После запуска приложения библиотека Java транслирует вызовы функций Win32 в вызовы функций библиотеки Corel, которые обрабатываются на локальной станции. Обращения к серверным ресурсам (открытие файлов, пересылка данных через последовательный порт и т. д.) переадресуются серверу с помощью других компонентов jBridge.
В результате технология Java предоставляет клиентам доступ к тысячам Windows-приложений, ликвидируя тем самым брешь, образовавшуюся между основанной на Java моделью сетевых вычислений и Windows. В качестве клиентов могут выступать сетевые компьютеры на базе Java или ПК с браузерами, поддерживающими Java. Поскольку прикладные программы хранятся на сервере Windows NT и даже частично обрабатываются его средствами, управление приложениями осуществляется централизованно, при помощи серверного ПО. Java-клиенты могут обращаться к другим Java-приложениям, расположенным на других компьютерах в сети.
После загрузки с сервера программы выполняются локально. Таким образом, большая часть вычислительной нагрузки ложится на клиентскую станцию. Роль NT-сервера ограничивается пересылкой приложений и предоставлением клиенту услуг некоторых системных служб.
Но появление промежуточного уровня переадресации функций Win32 может стать причиной несовместимости отдельных программ и замедления их выполнения по сравнению со стандартным ПК, на котором функционирует API-интерфейс Microsoft Win32. Кроме того, приложения, которые работают в системе jBridge сегодня, могут оказаться несовместимыми с ней, после того как Microsoft в очередной раз предпримет модернизацию своей операционной системы.
Однако сегодня в Microsoft значительно строже относятся к стабильности программного интерфейса, и обращения к недокументированным функциям, сплошь и рядом встречавшиеся в старых приложениях DOS и Windows, теперь появляются крайне редко.
SCO Tarantella
Компания SCO поставила перед собой цель создать программный продукт, позволяющий подключить любого клиента к любому серверу. В случае реализации столь амбициозного проекта клиентский компьютер должен получить возможность одновременного доступа к приложениям Unix, Windows NT и мэйнфреймов. Сегодня продукт SCO конкурирует с ПО GraphOn Go-Global, а в дальнейшем он станет соперничать и с программными средствами Citrix WinFrame и WTS.
Клиент представляет собой небольшой апплет размером от 200 до 300 Кбайт, который выводит на монитор пользовательского компьютера результаты выполнения приложения на сервере.
SCO рассчитывает добиться этого за счет протокола Adaptive Internet Protocol (AIP), который способен приспосабливаться к особенностям конкретной сетевой среды и трафика. Оперируя результатами независимых испытаний, представители SCO утверждают, что их система работает в два раза быстрее, чем WinFrame, и в шесть раз быстрее, чем Go-Global.
В перспективе разработчики SCO рассчитывают обеспечить доступ к приложениям Windows, но сейчас это достигается посредством программных средств Citrix WinFrame и NCD WinCenter (разновидность WinFrame с коммуникационным протоколом, основанным на X11). Версия SCO Tarantella 1.1 работает с протоколом X11. К концу года SCO планирует предложить собственные средства прямого доступа к Windows-приложениям. В этом случае она получает реальный шанс обойти своих конкурентов.
Один из главных недостатков такой схемы — высокие требования к серверу, ведь приложения большей частью обрабатываются именно на нем. В то же время протокол AIP должен обеспечить весьма эффективное использование ресурсов сети. В компании утверждают, что уже сейчас к одному серверу могут одновременно подключаться до 200 пользователей.
Еще одна цель, которую ставит перед собой SCO, — возможность создания и администрирования своеобразных «ферм» из большого числа серверов. В настоящее время возможности управления ограничены средствами распространения ПО и базовыми функциями мониторинга сеансов.
Подведем итоги
Рассмотренные модели сетевых вычислений отличаются друг от друга по следующим параметрам:
- порядком использования;
- приложениями, к которым получают доступ клиенты;
- возможностями управления;
- стоимостью оборудования и других ресурсов.
Некоторые модели (например, сетевые компьютеры на базе Java, продукты компаний GraphOn, SCO и Corel) появились на компьютерном рынке совсем недавно. Другие (X Window или сетевые операционные системы) имеют уже более чем десятилетнюю историю. Даже технологию Windows Terminal Server можно считать долгожителем, если учесть, что она построена на основе программных средств Citrix WinFrame.
Конечно, новые продукты при всех своих достоинствах не смогут за короткий период вытеснить старые сетевые системы. Сосуществование старых и новых технологий будет продолжаться долгие годы. Эффективность практически всех рассмотренных моделей зависит от напряженности сетевого трафика, поэтому при подключении к серверу слишком большого числа клиентов или при запуске на нем слишком большого количества приложений производительность резко снижается. Конкретные показатели сильно разнятся в зависимости от активности пользователей и интенсивности запросов на обработку, поступающих от приложений.
Впрочем, в более старых сетевых моделях определить оптимальную нагрузку не составляет особого труда.
Общие затраты складываются из стоимости начальной покупки и расходов на управление и обслуживание системы. В настоящее время первоначальные затраты на рабочие станции и X-терминалы превышают расходы на ПК. С другой стороны, управление клиентами, на локальных дисках которых не хранится никаких данных, упрощается. В этом случае эффективность действий администратора зависит от качества средств управления сервером и объема информации, пересылаемой с сервера на клиент и обратно.
Новые модели компаний GraphOn, Corel и SCO предоставляют пользователям доступ к уже существующим приложениям и снижают стоимость управления.
Однозначного лидера определить очень трудно. Одни модели лучше подходят для обработки графического вывода, в то время как другие — для обработки данных. Таким образом, выбор оптимальной системы определяется конкретно решаемыми задачами и стратегией распределения нагрузки между сервером и клиентами.
Рон Ша хорошо изучил весь спектр сетевых архитектур, от общенациональных магистральных сетей ATM до прямого соединения двух компьютеров через последовательный порт. В 1996 году он был одним из основателей электронного журнала NC World, поставляющего читателям самые свежие новости о сетевых технологиях. С ним можно связаться по адресу электронной почты rawn.shah@ncworldmag.com.