Главная | FAQ по 1C + SQL | FAQ по 1С | Разработка ПО | Управление проектами | Литература | Экстремальное программирование | Статьи | Скачать | Ссылки | Прочее

 

Терминальные решения

Сергей Глухов (gluhov@mail.ru)

Вы когда-либо видели офисы забитые, 386 компьютерами? А в 2000 году? А работающих при этом под управлением Windows 2000? А я видел (не шутка).

 

В мире насчитывается огромное количество так называемой "наследуемой" техники - компьютеров на базе процессоров 286/386/486. Вся эта техника обычно пылится где-то на складе или, в редких случаях, используется в качестве роутеров и для подобных целей.

 

И это далеко не лучший выход - ведь эти компьютеры (на первый взгляд бесполезные) можно успешно использовать в терминальных системах или в системах распределенных вычислений. Что это такое и с чем его едят - читайте далее.

 

Историческая справка

Но сначала обратимся к истории вопроса, ибо в ней и лежит ответ.

 

Когда-то персональных компьютеров не было (вообще). Существовали лишь огромные ящики (а чаще - совокупность ящиков), именовавшиеся Компьютерами, они были сверхмощными и почти достигали скорости XT (впрочем, никого это не удивляло - ведь ничего более мощного все равно не было). А использовать их уже тогда желали многие. Поэтому машинное время приходилось арендовать - пользоваться компьютером только в определенные часы.

 

Постепенно такое положение дел пользователям надоело, и были придуманы первые терминалы и первые системы разделения времени. Терминал - простой "компьютер", который не производил ни каких вычислений, а только выводил ответы Компьютера.

 

В дальнейшем стоимость персонального Компьютера стала уменьшаться, с каждым годом становилось все проще и проще купить быстрый Компьютер…

 

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

 

Все это великолепие сегодня привело к тому, что большую часть времени пользователь использует микропроцессор персоналки в среднем на 5-6 процентов. Например, пока я "барабанил" этот текст в Ворде, уровень загрузки процессора ни разу не превысил 15 процентов, а в среднем составлял 6-8%. Кстати говоря в тот момент, когда Вы читаете эти строки в броузере, уровень загрузки микропроцессора наверняка не превышает и 10 процентов (если, конечно, на фоне не запущен MPEG- кодер ;)).

 

Остальные 90 процентов компьютерных ресурсов уходят в никуда - просто не используются ни коим образом. Немного улучшить ситуацию можно использованием фоновых задач, но не так уж их и много у среднего пользователя (особенно в офисе).

Так что бороться с этим можно лишь одним способом - предоставлять другим компьютерам внутри локальной сети свободные мощности вашей рабочей станции.

 

Отделение серверов приложений от тонких клиентов (терминалов)

Как данная задача была реализована на практике? Ответ дала теоретическая концепция распределенных вычислений:

 

Концепция распределенных вычислений предполагает, что результат вычислений может быть передан на любою персоналку внутри сети. Причем это относится не только к конкретным результатам работы (к примеру, изображения буквы на экране), но и к внутреннему отображению операций (на уровне объектов). То есть программист не знает и не должен знать, на каком компьютере будет выполняться отдельный объект.

 

Практическая же реализация данной идеи, пошла по принципу отделения серверов приложений (компьютеров, отвечающих за вычисления) от компьютеров, отвечающих только за отображение информации - клиентов. Вспоминаете историю?

 

Это разделение может быть совершенно прозрачным для пользователя - он может работать за "трешкой", а пользоваться результатами работы машины соседа (с Р3 или ему подобным), или, наоборот, отдавать часть ресурсов соседу…

 

К примеру: на экране вы видите, как движется ваша мышь, ее положение просчитывается на вашем компьютере, изображение курсора генерится на другом компьютере, и только на третьем компьютере запускается объект, отвечающий за нажатие кнопки мыши.

 

Плюсы и минусы данного решения

В чем плюсы такого подхода:

  1. Вычислительные возможности нескольких компьютеров в сети объединяются. Если вам вдруг понадобится 11-12 MIPS, то они будут вам предоставлены через распределенную систему
  2. Так как терминалами могут служить практически любые компьютеры, вы сможете использовать компьютеры класса 286/386/486 (теоретически даже XT; однако возможны проблемы, связанные с видеоадаптерами)
  3. Резкое уменьшение стоимости рабочего места: только на серверах приложений нужны дисководы, винчестеры, большие объемы памяти и так далее. Обычно в случае использования устаревшей техники стоимость рабочего места падает до $170-180, в случае использования тонких клиентов до $240-250
  4. Значительно снижаются расходы на администрирование, приобретение и обновление программного обеспечения. Так как ПО устанавливается и обновляется только на серверах приложений, то сокращается стоимость лицензий, а также уменьшается стоимость администрирования
  5. Большая скорость работы с дисками: одинаковая информация чаще оказывается в кеше. Причем влияние этого фактора очень велико: к примеру, если хотя бы одна копия IE5.0 загружена в память, то все последующие загружаются мгновенно; то же самое относится и к другим приложениям (Microsoft Office и т. п.)
  6. Существенная экономия памяти: код программы не дублируется при вызове второй копии. Пример: сервер приложений, имеющий всего 64 Мбайт памяти, полностью хранит в ней Windows NT4.0 и при запуске новых копий операционной среды не дублирует код
  7. Большая безопасность: Администратор может посмотреть, чем занимаются сотрудники, лишить их права на определенные вычислительные ресурсы (занимаемые играми и тому подобными приложениями, напрямую не относящимися к работе), а так как обычно клиентов не оборудуют ни дисководами, ни винчестерами, то уменьшается вероятность хищения информации
  8. Потеря терминала - это потеря терминала, а никак не данных или всей предыдущей работы

9. Сотрудники могут быть по настоящему мобильны: для того, чтобы получить доступ к информации, не нужно обращаться к удаленной станции. Вся информация может быть доступна как общий дисковый ресурс

10. Более удобное обеспечение совместной работы сотрудников: со своего терминала Вы можете подключиться под логином коллеги и использовать его данные или сразу его файлы. (очень кстати удобно, если ваш коллега находится в другом городе)

11. Терминал или клиент может работать под любой операционной системой: либо он может быть подключен по протоколу X-windows, либо можно будет найти специфического клиента для протокола ICA или RDP

12. Средний трафик между клиентами и серверами редко превышает 100 Кбайт/с. Это значение может быть намного меньше, чем трафик запросов/ответов в больших базах данных. Следовательно, можно сэкономить если Вы используете коммерческое подключение к Вашим удаленным базам данных

13. Асимметричность трафика: клиенты обыкновенно посылают серверам в 10-15 раз меньше трафика, чем возвращают им сервера приложений

14. Терминалы не нуждаются в улучшении технических характеристик, а проще говоря - в апгрейде (и могут также не подвергаться моральной амортизации)

15. На одном компьютере Вы сможете одновременно "запустить" приложения нескольких операционных систем

 

Однако, в каждой бочке меда есть ложка дегтя. Есть свои недостатки и у терминальных систем. Обычно к ним относят следующее:

  1. Потеря сервера приложений может оказать очень большое влияние на решение задач, причем возможно для всех сотрудников
  2. Трафик внутри сети может оказаться очень большим, возможно придется делить сеть на сегменты
  3. Трафик от серверов к клиентам может быть слишком большим, неприемлемым для передачи по модемным каналам или Internet
  4. К сожалению, приложения, активно использующие видео, требуют мощных сетей: минимальные характеристики - 100 Мбит/с
  5. Не все программные пакеты нормально относятся к наличию нескольких копий себя в памяти. Такие приложения могут потребовать специального окружения или просто не работать в окружении сервера приложений (из последних я, правда, знаю только одно - ICQ)

6. Клиенты не получают отдельные IP-адреса, что не позволяет им правильно авторизоваться в Internet. Войдя, к примеру, на mail.ru вы сможете управлять ящиком вашего коллеги ;) С другой стороны, это больше проблема авторизации почтовой системы, а не терминалов

 

Практическое применение

Теперь перейдем к самой важной части данной статьи - какие терминалы и какие сервера выбрать для построение такой сети.

 

Во-первых, ограничим те решения, которые присутствуют на рынке. Мы не будем рассматривать мэйнфреймы хотя бы потому, что их очень мало и они очень дороги.

 

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

 

И, наконец, в-третьих, бессмысленно рассматривать отдельные приложения, ориентированные на распределенные вычисления (к примеру, 3D Studio) - это отдельная тема

 

Сервера приложений

Начнем с описания серверов приложений. Для серверов приложений самое главное - это платформа. Если ваши приложения не работают под данной операционной системой, так зачем Вам нужен такой сервер? Второй важный фактор - стоимость железа и стоимость инсталляции. (В данной статье не будет приводиться анализ производительности.

 

Microsoft Windows 2000 Server

"Ориентированный на собственного клиента"

 

Схема общения сервера с клиентом стандартная: клиент отсылает только нажатие на клавиатуру и изменения положение курсора мыши. Сервер возвращает команды на открытие окон и передает в огромном количестве экраны.

 

Надо отметить, что это великолепный с точки зрения производительности сервер, ориентированный как на запуск сессий (это когда вы видите десктопчик Windows 2000), так и на запуск отдельных приложений - в окне терминала вы увидите нужное вам приложение.

 

Поддерживаемые функции терминала:

Разрешение экрана - 800х600х256, 640х480х256, режим работы в окне. Поддержка сжатия информации для уменьшения трафика, поддержка функций кеширования битмапов.

 

Протоколы управления

RDP. Remote Desktop Protocol.

 

Управление приложениями:

Закрыть приложение может только администратор. Сессия полностью сохраняется в памяти сервера: войдя на сервер через несколько дней вы обнаружите, что все окна остались в том же положении, все приложения также запущенны.

В случае перегрузки сервер может запретить запуск приложений и ограничить подключение новых клиентов.

 

Взаимодействие с другими серверами:

Не обеспечивает выравнивания загрузки: если один из серверов будет перегружен, он не начнет "перекидывать" приложения на более свободные сервера.

 

Плюсы сервера:

Очень простая установка и настройка. Быстрое соединение сервера с клиентом. Хорошая поддержка управления клиентами и подключениями (их можно связывать с группами пользователей в NT).

Низкая стоимость лицензии.

 

Минусы сервера:

Не поддерживает локальные диски клиента. Если клиенту понадобится прочитать локальный файл (к примеру с флоппи-дисковода), он вынужден обращаться к нему как к сетевому диску. Большие запросы к оперативной памяти (128 Mбайт минимум).

 

Требования к железу

Сервер полностью загружает 98 Мбайт оперативной памяти. Эта цифра естественно не является тем минимумом, на котором он работает - 64 Мбайт. Но при 98Mбайт сервер уже намного меньше обращается к диску. Далее Вы сможете рассчитать размер требуемой памяти таким образом (в расчете на одну загруженную копию):

Клиенты: 1 клиент - 3 Mбайт ОЗУ сервера.

Приложения: Microsoft Word - 2 Mбайт ОЗУ сервера

Microsoft Excel, Access - 5 Mбайт ОЗУ сервера

Internet Explorer - 1 Mбайт ОЗУ сервера

Для увеличения производительности дисковой подсистемы желательно также использовать увеличение памяти (для увеличение дискового кэша) - клиенты очень часто обращается к одной и той же информации.

Требуемая частота микропроцессора (для Pentium 2) - для проведения подобных расчетов читайте следующую статью посвященную серверам (цифры приведены в расчете на одну загруженную копию):

Клиенты: 1 клиент - +40 MГц.

Приложения:

Microsoft Word - +20 MГц

Microsoft Excel, Access - + 20 MГц

Internet Explorer - + 10 MГц

Добавление второго процессора позволяет разгрузить систему примерно на 35-40 процентов. Увеличение кеша процессора, к сожалению, не увеличивает производительность - память в таких системах не является "узким" местом, поэтому увеличение производительности можно достигнуть лишь увеличивая частоту процессора и их количество.

Как видите, сервер примерно на 10 нетребовательных клиентов должен содержать процессор с частотой 500-600 MГц (или 2 по 300) и примерно 198 Mбайт оперативной памяти.

Программные клиенты:

Только под Windows (существуют, как и 16 так 32 разрядный клиент)

 

Windows NT 4.0 Terminal Edition

Предыдущий выпуск терминальной системы от Microsoft. Обладает теми же свойствами, что и версия 2000, но считается менее производительным, хотя это никак не подтверждается.

Более сложен в инсталляции и настройке, но менее требователен к памяти: при минимальном количестве (64 Мбайт) прекрасно работает 1 подключенный клиент. Если бы не высокая цена лицензии, то являлся бы оптимальным сервером для домашнего применения.

 

CITRIX Metaframe 1.8

 

Данный продукт считается на сегодняшний момент наиболее мощным средством в области управления приложениями и клиентами.

 

Компания Citrix лицензировала у Microsoft часть сервера, отвечающую, за запуск приложений и другие средства управления приложениями. Это позволило компании создать наилучший на сегодняшний момент сервер.

 

Правда, стоит отметить, что вам придется инсталлировать данный сервер либо на Windows NT 4.0 Terminal Edition, либо на Microsoft Windows 2000. Это, прежде всего, означает, что вам придется лицензировать и стоимость данных серверов.

 

С моей точки зрения данный сервер - наилучшее решение для больших и средних компаний.

 

Поддерживаемые функции терминала:

Разрешение экрана - 1024*768, 800*600, 640*480. Глубина цвета вплоть до 16 млн. цветов.

Передача звука на звуковую карту терминала (звук генерирует сервер, а воспроизводит клиент).

 

Очень эффективное сжатие потока. К сожалению, это сжатие требует хорошей производительности от клиента: очень часто 386 процессор не справляется с нагрузкой по быстрому построению экрана. Обеспечивает кэширование трафика.

 

Динамическое переключение терминала между серверами, в случае перегрузки отдельного сервера.

 

Клиент может обращаться к своим дискам не через сеть, а напрямую.

 

Протоколы управления:

ICA, Direct ICA.

 

Управление приложениями:

Поддерживает запуск только отдельных приложений, может ограничивать запуск определенных приложений (запрет запуска).

 

Может ограничить число запущенных приложений в случае перегрузки сервера.

 

Сохранение результатов сессии. Надо отметит, что авторизация построена и по IP адресам, и на основе ручной авторизации.

 

Взаимодействие с другими серверами:

Может "перетащить" приложение, в случае перегрузки сервера. При этом есть возможность отделить определенные серверы от такой сторонней загрузки.

 

Плюсы сервера:

Большие возможности по настройке сервера, управление группами пользователей, наличие уникальных возможностей - по перемещению нагрузки. Большое количество, как и программных, так и аппаратных клиентов.

 

Минусы сервера:

Основные минусы - полная стоимость инсталляции и большие запросы к клиентам в случае использования сжатия потока.

 

Так же надо отметить большие потребности в оперативной памяти, чем сервер Microsoft и очень медленное соединение с сервером (около 20 секунд).

 

Определение оптимальной конфигурации сервера:

Так как сервер построен на коде запуска приложений от Microsoft, то результаты практически не отличаются от сервера этой компании. Это относится, как к испытаниям процессора, так и к памяти. Единственное, что стоит учитывать - сервер потребляет под свои нужды не 3, а около 5 Мбайт ОЗУ на сессию.

 

Sun Microsystems Server

Вообще-то всю свою сознательную жизнь я считал Sun ведущей компаний в Java-приложениях. Поэтому продвижение тонких клиентов для компании было бы не выгодно. Но обнаружилось, что эта компания лицензировала у Citrix протокол ICA и на его основе выпустил собственный сервер.

 

К сожалению, ни одна независимая компания данный сервер на тестирование не получила. Но достоверно известно, что данное решение призвано, прежде всего, на использование старой техники семейства SPARC - практически оно позволяет запускать на выделенном сервере профили и задачи клиентов. Поддержка ICA дает возможность использовать ресурсы серверов Citrix на рабочих станциях (только для этого и придется ставить клиентов от Citrix).

 

Таким образом, данное решение - практически готовая платформа для клиентов, которым нужен Solaris-сервер.

 

Пара слов от автора - такое решение существовало и ранее и базировалось на основе протокола X-Window, но, видимо, Sun решил выпустить и поддержку ICA.

 

X-terminal Servers

 

Целая группа серверов существует для Linux, FreeBSD и для некоторых других операционных систем. Надо отметить, что серверов много и начинаются они со стандартного удаленного запуска, заканчивая специализированными серверами, позволяющими распределять загрузку по другим серверам.

 

Поддерживают общий протокол - X-Window.

 

Тонкие клиенты

Для того чтобы разобраться, кто такой клиент, следует посмотреть, что он делает. Если он ничего не делает, его можно с легкостью назвать бездельником или ультра тонким клиентом (по терминологии IBM это так называемый "слепой терминал"). Такие клиенты получает несжатый поток "видео" от сервера (телевизоры :)), а в ответ посылают только нажатия на клавиши и изменения положения курсора мыши. Таких клиентов большинство.

 

Далее идут тонкие клиенты. В их обязанности входит умение распаковывать информацию - они должны уметь обрабатывать сжатую графическую информацию, правильно воспроизводить анимацию и поддерживать разные курсоры мыши.

 

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

 

Четвертая группа - NET PC. Эти клиенты сами выполняют часть программ (обычно написанных на Java - Java PC). Таким образом, программисты могут создавать распределенные приложения для внутрикорпоративного использования. Надо отметить, что классические решения NET PC основываются на хранении кода программы на сервере - и кэширование их на уровне клиентов (получил конфетку - положи в кармашек :))

 

В мире сейчас насчитается около 50 тонких, сверхтонких и обыкновенных решений на программной основе. В данной статье будут рассмотрены только те клиенты, которые известны в США и появлялись хотя бы в единичных экземплярах в России. Если кто-то из читающих данную статью видел или лучше настраивал, каких либо других клиентов - напишите, пожалуйста, об этом мне.

 

Также надо отметить, что я специально не пишу цены на данное оборудование - они меняются чуть ли не раз в неделю, но уже сейчас легко можно купить клиента за 130-150 долларов в России.

 

Wyse Technology - тонкие клиенты по очень "смешным" ценам, обыкновенно с предустановленным DOS и специальной версией Сitrix DOS-клиента. Работают с любыми версиями серверов Сitrix. Существует версия, поддерживающая RDP. Недавно появилась версия, в которой все программное обеспечение зашито в BIOS (ранее все работало через сетевую загрузку)

 

Boundless Technologies - такие же решения, но с возможностями настройки подключения к серверу прямо из BIOS

 

Neoware - более молодая компания, предлагающая ультратонких клиентов. Такие же возможности, как и у предыдущих двух.

 

Acute Network Technologies - лидер в области новых решений: предложила тонкого клиента встроенного в ЖК-монитор. Плюсом также является очень простая настройка - требуется ввести только IP-адрес сервера и параметры подключения.

 

Ваш 386 компьютер - идеальное решение, если вы сможете сами настроить удаленную загрузку и подождать пару минут для загрузки DOS и клиента Сitrix ICA.

 

Acer WT 300 - такое же решение, как и предыдущее, только настроенное и помещенное в ультратонкий корпус. (интересно: когда он появится в России?) Maxspeed +ONE - еще меньше чем Асer, размером c пачку сигарет, но требует подключения к определенному UNIX-серверу (далее используя протокол X-window и клиента Citrix его можно подключить к серверу Citrix.). Сверхтонкий клиент.

 

Итоги

Подведем итоги. Технология описанная выше сможет реанимировать устаревшую вычислительную технику, причем легко и с затратами меньшими чем стоимость апгрейда.

 

Также надо отметить, что данные решения позволяют большим компаниям сэкономить на администрировании и закупке техники, а средним и малым получить прекрасные рабочие места по 250-300 долларов каждое.

 

В будущем данные решения получат распространение благодаря развитию всевозможных мобильных технологий - кстати уже сейчас под Windows CE существует клиентская часть для подключения к серверу.

 

Так что, скоро включив свой сотовый телефон, для того чтобы поработать в Word, мы увидим надпись - "подключение к терминальному серверу ….."

17 июля 2000 г.


 

Рекомендуемая литература:

Архитектура `тонкого` клиента в Windows NT/2000. Реализация терминальных служб и Citrix MetaFrame Рекомендую!

Тодд В. Мазерс (2001)

Эта книга написана опытным специалистом по разработке масштабируемых решений на основе `тонких` клиентов с использованием Microsoft Windows 2000 Terminal Services или Windows NT Server 4.0 Terminal Server Edition и расширений Citrix MetaFrame к этим ... [подробнее]

 

Дополнительная литература по теме >>>

 

 

Copyright © 2000-2002

Автор: denis2001@pisem.net

http://thebeautiful.narod.ru

 

 

Hosted by uCoz