Леонид Черняк "Эти разные тонкие клиенты" МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE

advertisement
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Леонид Черняк "Эти разные тонкие клиенты"
Объем аргументов в пользу тонких клиентов находится в явной диспропорции с
реальными успехами в этой области. Приходится признать, что персональный
компьютер на рабочем месте по-прежнему остается практически стандартом, хотя в
большинстве случаев это абсурдно. Возможно, главное препятствие на пути тонких
клиентов состоит не в технических проблемах, а в сложившихся стереотипах. И если
когда-нибудь сложность администрирования и высокая стоимость владения ПК станут
решающими факторами, положение изменится.
Как значится в словаре Free Online Dictionary of Computing, «тонкий клиент — это клиентское
устройство (или программа), передающее большую часть исполняемых им функций серверу».
Толстый клиент определить намного проще: это все клиенты, не являющиеся тонкими.
Противопоставление чего-то «тонкого» чему-то «толстому» невольно вызывает ассоциацию с
персонажами известного чеховского рассказа, в котором, как известно, толстый был богатым и
благополучным, а тонкий — его противоположностью. Эта параллель, оказывается, как нельзя
более точно соответствует современному положению дел с «толстыми» и «тонкими»
устройствами, устанавливаемыми на рабочих местах.
Действительно, по отношению к «толстым» объем производства, суммы инвестиций, объем
накопленных знаний и опыта на порядки выше и больше. В силу сложившихся стереотипов и
инерции мышления маловероятно, что в ближайшей перспективе положение тонких клиентов на
рынке радикально изменится — и это несмотря на то, что вот уже без малого десять лет
некоторые вендоры и аналитики упорно предсказывают им светлое будущее. Стоит вспомнить
широко разрекламированную, но, увы, не слишком удавшуюся совместную акцию IBM, Oracle,
Sun Microsystems и Netscape Communications по продвижению Сетевого компьютера (Network
Computer, NC). Не менее показательна и ошибка в предсказаниях IDC. В 1999 году, когда идея
NC уже потерпела крах, аналитическая компания в своем отчете прогнозировала, что в 2004
году будет произведено 9,5 млн тонких клиентов. На деле же, вероятно, в нынешнем году их
будет выпущено лишь 1,8 млн, поскольку в 2003 году изготовлено 1,5 млн тонких клиентов, а
ежегодный прирост их производства составляет примерно 20%. В прошлогоднем отчете в IDC,
корректируя свои прежние прогнозы, говорят теперь всего о 3,4 млн в 2007 году.
Многие профессионалы и в середине 90-х годов достаточно скептически относились к
перспективе быстрой замены персональных компьютеров терминалами. Оптимизм рождался
преимущественно из принятия желаемого за действительное, а сомнения возникали из
понимания того, что противостоять натиску ПК невероятно сложно. Так было и десять лет
назад, и особенно сейчас, когда заметно подешевели ноутбуки, и появилась реальная
возможность пользоваться ими на рабочих местах. Тем не менее, пока еще немногочисленные
компании, связавшие свой бизнес с идеей тонких клиентов, могут смотреть в будущее с
осознанным оптимизмом. На их стороне — экономическая эффективность, в то время как
толстые клиенты (те самые ПК на рабочем месте), становясь все толще и толще, не прибавляют
особенно заметно в функциональности, а их администрирование превращается в серьезную
проблему. В общем, все это похоже на проблему роста популяции сверхтолстых людей в
Соединенных Штатах из-за злоупотребления «фастфудом», ведь персональный компьютер,
оснащенный Windows, в конечном счете, — тот же гамбургер.
Не фиксируясь на деталях, рассмотрим основные причины возможного наступления эпохи
Ренессанса тонких клиентов Централизация администрирования — характерная для последнего
времени тенденция, явно наблюдаемое логическое сближение двух очень далеких направлений
в развитии компьютерных систем. Одно представляет классический мэйнфрейм с его
всеобъемлющей централизацией, другое — распределенные системы. Поначалу они казались
столь многообещающими, что мэйнфреймам предрекали скорую кончину, но по мере
усложнения распределенных систем обнаружились их многочисленные слабости, в том числе
связанные с архитектурой «клиент-сервер». Как следствие, началось движение в сторону
централизации. Среди его проявлений — многозвенные программные системы, использующие
серверы приложений, разнообразные подходы к виртуализации, консолидация и многое, многое
другое.
Приходится признать, что с помощью новых технологий строятся своего рода «виртуальные
мэйнфреймы», и таким системам вовсе не требуется толстый клиент в качестве терминального
устройства. Не помешает вспомнить, что в качестве рабочих мест первыми стали
использоваться (если не учитывать печатающие на бумаге телетайпы) простейшие терминалы с
монохромной электронно-лучевой трубкой, которые называли dumb («немой») или green
1
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
(«зеленый»). Все, что они могли, — передавать на компьютер набранные на клавиатуре
символы и отображать их на экране. Вершиной создания таких устройств и стандартом де-факто
стал терминал VT-100, входивший в комплектацию мини-ЭВМ компании DEC. Для виртуального
мэйнфрейма нужен аналог терминала, — естественно, соответствующий текущему моменту, то
есть обеспечивающий графический режим взаимодействия и потенциальную возможность
беспроводного доступа.
Другая причина возрождения интереса к тонким клиентам — появление мобильных клиентов.
Несмотря на продолжающуюся миниатюризацию жестких дисков, желательно, чтобы устройства
такого рода были вообще бездисковыми.
Наконец, еще одна причина заключается в том, что использование толстого клиента в
качестве устройства для оперирования данными предприятия приводит к увеличению
непродуктивного трафика в корпоративной сети, а сокращение трафика особенно актуально в
связи с распространением беспроводных устройств. Разумеется, применение толстого клиента в
качестве рабочего места может быть обоснованным, если на нем выполняется значительный
объем вычислений (например, для CAD/CAM).
Современный рынок тонких клиентов очень напоминает рынок ПК до появления IBM PC или
рынок локальных сетей до установления монополии Ethernet. Он невелик, разнороден, на нем
отсутствуют общепринятые стандарты, предлагаемые устройства трудно классифицировать, а
конкурирующие предложения невозможно сравнивать с достаточной объективностью. Поэтому
сложно точно сказать, что такое «тонкий клиент». Можно лишь утверждать, что система с
тонким клиентом состоит из трех основных компонентов: собственно клиента, сервера и
коммуникационных средств, связывающих клиента с сервером.
Еще сложнее провести сравнительный анализ имеющихся решений. В качестве клиентов
могут использоваться Windows-терминалы, наладонные устройства (КПК), сетевые компьютеры
и различные Java-устройства, прежде всего Sun Ray. Некоторые авторы также относят к тонким
клиентам сетевые ПК (Network PC, или NetPC), такие как WebPC (компания Dell) и e-Vectra
(Hewlett-Packard). Однако в NetPC имеются жесткие диски и Windows, хотя нет ни флоппидисководов, ни слотов расширения, а для подключения внешних устройств могут применяться
порты USB. Скорее, это все же усеченная версия ПК.
Главное в том, что тонкий клиент является лишь устройством отображения и ввода данных.
Точно так же, как когда-то алфавитно-цифровой терминал обеспечивал символьный обмен,
современный тонкий клиент обеспечивает обмен графическими данными — т.е. в принципе,
можно сказать, что это графический терминал. Он запускается с сервера (будь то сервер под
управлением Windows NT, Novell Netware, Unix или мэйнфрейм), с него же загружается
необходимый фрагмент операционной системы, причем из-за отсутствия жесткого диска
загрузка выполняется в ROM. В терминалах Sun Ray от Sun Microsystems и этого не требуется. В
определенном смысле они аналогичны древним алфавитно-цифровым терминалам (правда, для
терминалов Sun Ray обязателен цветной графический режим). На презентационном уровне для
Windows-терминалов используются протоколы RDP (Microsoft) или ICA (Citrix), для Unixприложений — протокол X11, а Sun Ray 1 имеет собственный протокол Sun Ray. На сетевом
уровне могут применяться протоколы DHCP, Bootp, TFTP, SNMP, но чаще всего — TCP/IP и
UDP/IP.
Старый добрый X
Почти всю функциональность современных тонких клиентов когда-то удалось воплотить в
оконной системе X Window System (ее еще называют X11 или просто X), реализованной в Unix,
а также в Linux и других Unix-подобных операционных системах. X Window System дает основу
для графического пользовательского интерфейса, предоставляя возможности рисования,
создания окон, применения мышки и клавиатуры, но не определяет интерфейс как таковой,
позволяет оперировать пользовательским программным обеспечением, являясь «механизмом, а
не политикой».
Система Х была создана в 1984 году в Массачусетском технологическом институте при
участии компании DEC. Своими корнями она уходит в студенческий проект, известный как
Project Athena (он, к слову, дал толчок к появлению и протокола аутентификации Kerberos). В
рабочем названии системы первоначально вполне закономерно значилась буква W, но потом по
каким-то причинам ее заменили на X. Первая версия системы, X10, была выпущена в 1986 году,
а нынешняя, X11, — в 1987-м. Проект поддерживает организация X.Org Foundation, но если
2
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
судить по тому, что последнее обновление датировано 2001 годом (релиз X11R6.6), в настоящее
время особенной активности в X.Org не наблюдается.
Система X появилась раньше, чем архитектуры «клиент-сервер» в их традиционном
понимании. Поэтому она опирается на своеобразную и, на первый взгляд, странную для уха
большинства специалистов трактовку ролей сервера и клиента. Здесь все наоборот: клиентом
является обслуживающая программа, расположенная на физическом сервере, а сервером —
программное обеспечение, размещенное на терминале. Известно несколько реализаций Х, в том
числе система Motif, принятая в качестве промышленного стандарта IEEE 1295; ее основным
приверженцем является компания Sun Microsystems. Стоит привести примеры и современных
разработок, реализующих X.
 GNOME (GNU Network Object Model Environment). Выпущена в августе 1997 года
молодым мексиканским программистом Мигелем де Икаса в качестве свободного
программного обеспечения для операционной системы GNU/Linux.
 KDE (K Desktop Environment). Создана в 1996 году Матиасом Эттрихом, в ту пору
студентом Тюбенгенского университета. Работает в среде ОС Unix и Unix-подобных
систем (такие как Linux и Mac OS X) и даже под Microsoft Windows с использованием
Cygwin (средства, позволяющие выполнять Windows-приложения в среде Unix без
перекомпиляции).
Сегодня система Х представляет наибольший интерес для тех, кто создает дешевые
компьютерные конфигурации (например, для учебных заведений), поскольку позволяет строить
работоспособные системы с использованием устаревших ПК в качестве X-терминалов (рис. 1).
Надо отметить, что в свое время X-терминалы были дорогими устройствами, существенно
дороже ПК, но они больше не производятся: теперь в качестве X-терминалов чаще всего
применяются обычные устаревшие ПК (например, с процессором 486) без жестких дисков.
Рис. 1. Подключение Х-терминала
И великим свойственно ошибаться
Размах пропагандистской кампании, развернутой в середине 90-х совместными усилиями
IBM, Sun, Oracle и Netscape, вполне мог заставить поверить в то, что «сетевой компьютер» если
не вытеснит, то уж заметно потеснит ПК. Первым этот термин произнес президент Oracle Ларри
Эллисон — в конце 1995 года, на конференции IDC в Париже. Появившиеся вслед за тем
радужные прогнозы подкреплялись буквально фантастическими успехами только что
возникшего, но успевшего завоевать популярность языка программирования Java и упоением
возможностями, которые предоставило сочетание WWW и Internet. Казалось, компьютерный мир
вступает в новую эпоху.
Компьютер, который еще до его появления на свет назвали сетевым, не планировали
использовать как тонкий клиент в полном смысле слова. Это была бездисковая рабочая
станция, мощность процессора которой была достаточной для работы виртуальной машины
Java; предполагалось, что на нее будет скачиваться необходимое программное обеспечение,
написанное на Java, для последующего выполнения в локальном режиме. В Sun такой
компьютер назвали Java Station и разрабатывали для него специализированные процессоры
picoJava, microJava и другие.
Идея была красивой, но непрактичной: ее авторы не учли два критически важных
обстоятельства. Во-первых, пакеты для офисной работы нелюбимой ими корпорации Microsoft
успели стать стандартом де-факто, и без наличия совместимых с ними программ рассчитывать
на успех не приходилось. Во-вторых, в 1996 году пропускная способность имевшихся даже в
3
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
США каналов связи была недостаточной для запуска в жизнь подобной технологии. В 1998-м и
1999 годах участники кампании под лозунгом Network Computer постарались сделать все
возможное, чтобы об их неудаче поскорее забыли. Со своей стороны, в Sun Microsystems
поработали над ошибками: теперь ставка делается на пакет офисных приложений StarOffice и
терминал Sun Ray.
С подачи конкурентов
Кому-то покажется странным, но от затеи с сетевым компьютером нескольких очень крупных
компаний больше всех выиграли не они, а корпорация Microsoft, в пику которой все и
задумывалось. Если говорить на языке хоккея, Microsoft великолепно освоила тактику игры от
обороны, которая особенно эффективна при наличии достаточной массы. В свое время
необходимость выйти из-под удара предложенного Apple графического интерфейса и сетевых
возможностей ОС Unix заставила корпорацию сформировать облик Windows 3.1. Далее
последовала угроза сетевых услуг от AOL, но она была отбита средствами операционной
системы Windows 95. Наконец, появился браузер Netscape Navigator, который, казалось, вот-вот
захватит весь рынок, но он был сметен контрнаступлением Internet Explorer.
Нечто подобное произошло и с идеей тонкого клиента, которая раскручивалась в противовес
Microsoft: именно ей в известной мере удалось то, на что так яростно, но неудачно посягали ее
конкуренты. Она купила у компании Insignia Solutions программный продукт NTRIGUE, который
обеспечивал удаленный доступ к Windows, и включила его в состав Windows NT 4. В результате,
тонкие клиенты смогли вступать во взаимодействие с сервером, на котором работало
программное обеспечение Windows Terminal Server, примерно так же, как это прежде делала X
Window System в среде Unix.
Когда Microsoft представила собственную технологию работы с тонкими клиентами,
проповедники альтернативных решений поначалу не отнеслись к этому начинанию достаточно
серьезно, но, вопреки скепсису, технология оказалась удачной. В 1995 году корпорации
сделала неплохую подачу компания Citrix. Разработанный ею программный продукт WinFrame
превратил Windows NT Server в многопользовательскую систему, доступ к которой
осуществлялся с простейших терминалов Winterm. Тогда Citrix получила лицензию на исходные
тексты NT Server 3.51 и на некоторое время стала партнером Microsoft. Но позже ей не была
предоставлена лицензия на код NT 4.0, и Citrix пришлось создать собственную
многопользовательскую архитектуру MetaFrame.
С тех пор близкие идеологии Citrix и Microsoft существуют параллельно. Общим для них
является то, что передаются только обновления экрана, сигналы от мыши и клавиатуры, а
соединение поддерживается по TCP/IP. При этом используются разные протоколы: Citrix
опирается на протокол ICA (Independent Computing Architecture — «независимая
вычислительная архитектура»), а Microsoft — на RDP (Remote Desktop Protocol — «протокол
удаленной настольной системы»). Детальный сравнительный анализ приведен в обзоре
Microsoft RDP & Citrix ICA Feature Overview (www.microsoft.com/windows2000/server/
evaluation/features/rdp.asp).
Поддержка тонких клиентов началась с операционной системы Windows NT Server 4.0.
Доступная в ее составе редакция Terminal Server Edition поддерживает, в том числе,
«сверхтонкие» (по терминологии Microsoft) клиенты, обеспечивая выполнение приложений с
настольных устройств разных типов, включая специализированные Windows-терминалы,
рабочие места на ПК, на которых установлена 32-разрядная операционная система Windows 95
и выше, рабочие места под управлением 16-разрядной ОС Windows 3.11.
Программное обеспечение Windows NT Server 4.0, Terminal Server Edition состояло из трех
основных компонентов.
 Терминальный сервер — ядро, которое обеспечивало выполнение нескольких


клиентских сеансов одновременно. Стандартные Windows-приложения для выполнения
под управлением терминального сервера модернизировать не требовалось.
Протокол доступа с удаленной настольной машины — ключевой компонент,
обеспечивавший взаимодействие между терминальным сервером и тонким клиентом. По
замыслу, RDP наследовал стандартный протокол ITU T.120, ранее использовавшийся в
продукте для проведения онлайновых конференций Microsoft NetMeeting.
Тонкие клиенты — Windows-терминалы и персональные компьютеры.
4
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Эти компоненты обеспечивали выполнение приложений на сервере и их распределение
между клиентами; приложение выполнялось на сервере «от лица» клиента. На рисунке 2
показана схема взаимодействия клиента с сервером в рамках базовой концепции, которую
можно развить, дополнив ее средствами компании Citrix. Последующие редакции Windows
2000/2003 Terminal Server поддерживают протокол RDP 5.1 и имеют целый ряд дополнительных
возможностей, повышающих удобство работы. При этом они остаются в той же технической и
рыночной нише, которую занимает Windows NT Server 4.0.
Рис. 2. Взаимодействие терминального сервера Windows Terminal Server с клиентом
Microsoft ввела собственную классификацию тонких клиентов, разделив их на три категории
(впрочем, устройства двух последних типов скорее следует назвать NetPC, чем тонкими
клиентами):
 простой терминал (Basic Terminal) имеет наименьшую функциональность и может
использоваться вместо взамен старых алфавитно-цифровых терминалов; рекомендуемая
операционная система — Windows CE .NET;
 Internet-терминал (Browser Terminal) в основном предназначен для обеспечения доступа
к ресурсам Web, а от простейшего терминала отличается наличием Windows-подобного
пользовательского интерфейса; рекомендуемая операционная система — Windows CE
.NET или Windows XP Embedded;
 бизнес-терминал (Line-of-Business Terminal, LOB) дает возможность локального
выполнения ограниченного количества функций; рекомендуемая операционная система
— Windows XP Embedded.
В Microsoft признают, что при использовании терминального сервера и протокола RDP можно
подключать только Windows-терминалы, которые выпускаются Wyse, Tektronix и рядом других
компаний. Для обеспечения более широкого спектра периферийных устройств в Microsoft
рекомендуют использовать программное обеспечение Citrix MetaFrame. В таком случае можно
будет подключаться по протоколу ICA, который позволяет строить более гибкие конфигурации
(рис. 3).
MetaFrame + Windows 2000 Server
Отношения между Microsoft и Citrix напоминают встречающийся в природе симбиоз большого
с малым (невольно вспоминается картинка, на которой неприметная птичка выклевывает
паразитов из шкуры носорога). Основной продукт Citrix, который называется MetaFrame,
является логическим «продолжением» Microsoft Windows Server. Его терминальные сервисы
расширяют возможности соответствующих сервисов Windows Terminal Services.
Архитектура и протокол ICA, на которых основан MetaFrame, обеспечивают доступ к
клиентским устройствам, использующим Windows или построенных на других принципах, без
дополнительных
изменений
в
программном
обеспечении.
В
MetaFrame
включены
инструментальные средства, обеспечивающие простоту развертывания и администрирования,
что, в конечном счете, позволяет легче масштабировать системы в соответствии с требованиями
пользователей. Программа Neighborhood, являющаяся частью MetaFrame, дает системному
администратору возможность передавать приложения отдельным пользователям и их группам.
Предназначенная для этого портальная технология позволяет настраивать приложения так, что
5
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
они выполняются непосредственно в среде Web-браузера. При этом портал может быть
персонализирован в соответствии со спецификой конкретных пользователей и приложений.
Протокол (или, точнее говоря, архитектура) Independent Computing Architecture —
краеугольный камень технической политики Citrix. Он включает в себя три компонента:
серверное ПО, сетевой протокол и клиентское ПО. Важное преимущество ICA, благодаря
которому эту архитектуру можно использовать в качестве расширения Windows 2000/2003
Terminal Server, состоит в возможности отделить логику приложения от пользовательского
интерфейса на серверной стороне и выполнять приложения на все 100% на сервере. Сетевой
компонент ICA позволяет «транспортировать» вводимые с клавиатуры символы, перемещения
мыши и изменения изображений на экране, занимая лишь 20-килобитную полосу пропускания.
На клиентской стороне пользователь видит только прикладной интерфейс. Архитектура ICA
реализована на системном уровне, поэтому удается добиться эффективности и значительной
компактности использования полосы пропускания.
Citrix предлагает свое решение в виде программного пакета MetaFrame Access Suite, который
включает в себя следующие составляющие.
 Презентационный сервер. MetaFrame XP Presentation Server представляет собой
программную инфраструктуру, которая обеспечивает доступ к приложениям,
размещенным на сервере и работающим под управлением Windows 2000 Server или
Windows Server 2003. Данная инфраструктура реализует две основные функции:
обеспечивает доступ к приложениям со стороны практически любых устройств и
централизованное управление ими.
 Презентационный сервер для ОС Unix. MetaFrame Presentation Server for Unix
обеспечивает аналогичные возможности, но для приложений, работающих в среде Unix,
и для Java-приложений.
 Сервер конференций. С помощью MetaFrame Conferencing Manager команды
исполнителей могут координировать свою работу с общими для них приложениями и
документами.
 Менеджер паролей. MetaFrame Password Manager — еще одна инфраструктура,
созданная для регламентации доступа по паролям к приложениям, работающим в среде
Citrix MetaFrame Access Suite.
 Менеджер безопасности доступа. MetaFrame Secure Access Manager служит для
обеспечения безопасности при доступе с помощью Web-средств.
Перечисленные компоненты Citrix MetaFrame Access Suite поддерживают доступ к
корпоративным ресурсам, сохраняя управляемость гетерогенной среды. Иными словами,
обеспечивается развертывание приложений под Windows и Unix, управление ими и безопасный
доступ к ним. Доступ сотрудников компаний, их партнеров, клиентов и поставщиков может
осуществляться посредством Internet, intranet и extranet, глобальных, локальных и
беспроводных сетей.
Гетерогенная среда, совмещающая Web, Windows, Unix, Linux, Sun Solaris, IBM AIX, HP-UX,
разнообразные другие платформы, при всей своей разнородности может быть объединена
гомогенным решением для управления приложениями. Преимущества такого подхода очевидны:
более развитая технология позволяет снижать издержки, а получаемая при этом гибкость
управления — реализовывать актуальные сегодня идеи вычислений по требованию.
Реальные виртуальные сетевые вычисления
До последнего времени название Virtual Network Computing (VNC) связывали с известным
инструментом дистанционного администрирования, с помощью которого «рабочий стол»
сервера можно отображать на дисплее клиентского компьютера независимо от серверной
операционной системы. На самом деле, инструмент этот являлся лишь частью более обширной
разработки лаборатории AT&T в Кембридже (Великобритания), которая ранее была совместной
исследовательской лабораторией компаний Oracle и Olivetti.
Программный продукт, предназначенный для администрирования, открыли для свободного
доступа. По утверждению его авторов, он повсеместно использовался в самых крупных
организациях и с 1998 года разошелся в 20 млн копий. Так ли это, проверить невозможно.
После непонятной административной перестройки ряд сотрудников лаборатории создали
компанию Real VNC, полностью сосредоточив свои усилия на разработке технологий для тонких
клиентов; пока же ее программные продукты тоже можно загружать бесплатно.
6
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
В трактовке вновь созданной компании Virtual Network Computing — это программное
обеспечение, которое позволяет с одного компьютера (клиента) получать доступ и вступать во
взаимодействие с другим компьютером (сервером), расположенным где угодно в Internet, при
помощи простенькой программы просмотра (рис. 4). Взаимодействующие компьютеры не
обязаны быть однотипными.
Скажем, сервер в офисе может работать под управлением ОС Linux, а доступ к нему из дома
сотрудника — осуществляться с использованием настольного ПК, оснащенного Windows.
Рис. 4. VNC обеспечивает связь одного клиента с одним сервером. Виртуальное изображение,
формируемое на сервере, отображается на клиенте
Такую универсальность обеспечивает протокол удаленного доступа к графическому
пользовательскому интерфейсу удаленного кадрового буфера RFB (Remote Frame Buffer). Он
позволяет серверу изменять содержимое кадрового буфера, воспроизводимого программой
просмотра. Кадровый буфер с равным успехом доступен любой операционной системе, любой
оконной системе и любому приложению, благодаря чему возможна совместная работа
компьютеров, управляемых самыми разными ОС. Могут использоваться любые формы
коммуникаций (естественно, включая протокол TCP/IP).
С определенным допущением можно утверждать, что VNC — логическое продолжение идеи Xтерминалов. Однако, в данном случае клиент находится на естественном для него физическом
клиентском месте, а сервер (его иногда даже называют Xvnc-сервер) — на физическом сервере.
Подсоединение Remote Desktop Connection представляет собой клиентское приложение,
позволяющее наблюдать за сеансом и даже управлять им с другой машины, которая выполняет
функции VNC-сервера. Это, в полном смысле, протокол тонкого клиента, предъявляющий
весьма скромные требования к программе просмотра.
Визуализирующая сторона протокола построена с использованием единственного
графического примитива, смысл которого сводится к следующему: «поместить прямоугольник,
состоящий из пикселей, в позицию с координатами X, Y». На первый взгляд, такое решение
может показаться малоэффективным, даже туповатым. Но поскольку для разных наборов
пикселей существуют различные схемы кодирования, из них можно выбрать ту схему, которая
наиболее точно соответствует полосе пропускания, клиентской скорости рисования и серверной
скорости
обработки.
Содержание
буфера
обновляется
при
пересылке
требуемой
последовательности прямоугольников; оптимизация этого действия возложена на сервер.
Конечно, написание клиентской программы просмотра не является задачей большой
сложности. Нужно уметь работать с транспортным протоколом (обычно это TCP/IP) и каким-то
образом отражать на экране кадровый буфер. Существуют VNC-клиенты для платформ Unix,
Windows, Macintosh, Java и целого спектра компактных устройств.
Сервер гораздо сложнее. Из стремления упростить клиента на сервер перенесли весь
интеллект; к примеру, он «готовит» пиксели в формате, удобном для клиента (в данном случае
сервер — это своего рода виртуальная машина, которая обеспечивает вывод на клиенте).
Сервер не является многопользовательским, хотя на одной Unix-машине могут сосуществовать
7
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
несколько Xvnc-серверов, каждый из которых предназначен для своего VNC-клиента. Создавать
серверы категории WinVNC еще труднее, поскольку в ОС Windows меньше таких средств и мест,
куда можно вставить мониторы управления отображением, и она имеет не столь строго
определенную многопользовательскую модель.
Трехуровневая модель Tarantella
Пожалуй, наиболее совершенное решение для создания серьезных корпоративных систем с
использованием тонких клиентов предлагает компания Tarantella, которая представляет собой
один из осколков того, что когда-то называлось SCO. (На сайте www.tarantella.com можно найти
всеобъемлющий набор документации с описанием функциональных возможностей решения, а
также полноценное руководство по администрированию.)
В Tarantella на первом уровне (рис. 5) находится произвольное терминальное устройство,
которое взаимодействует с остальной частью программной системы посредством браузера,
поддерживающего Java, или клиента Tarantella Native Client. Работающее на этом устройстве
клиентское программное обеспечение взаимодействует с Web-серверами и расположенными на
втором уровне серверами Tarantella, отображая то, что предоставляет пользовательское
приложение. Для связи между первым и вторым уровнем используется собственный протокол
AIP (Adaptive Internet Protocol). На втором уровне находятся один или несколько серверов
Tarantella. Каждый из них отвечает за аутентификацию пользователей Tarantella,
взаимодействие с серверами приложений, отображение на экране клиента необходимых
изображений, использование Java-апплеты и или Tarantella Native Client, сохранение
выполнения приложения при выходе пользователя из системы с возможностью снова
включиться в работу приложения при повторном входе в систему.
Рис. 5. Трехуровневая модель Tarantella
Наконец, к третьему уровню относятся собственно приложения.
Современная версия этого программного продукта, Tarantella Enterprise 3, обеспечивает
быстрый доступ к приложениям, расположенным практически на любом сервере, с рабочего
места, которое может иметь любое географическое расположение. Все, что для этого требуется
на клиенте, — это наличие браузера и сетевого подключения. Доступ контролируется и
персонализируется в соответствии со служебным положением, рабочими функциями и
местонахождением пользователя. В архитектуре Tarantella Enterprise 3 клиент и приложение
взаимодействуют только с «брокером» в виде серверов Tarantella и никогда — между собой.
Таким образом, данное решение реализует примерно те же преимущества, которые получают
при использовании широко обсуждавшейся трехзвенной модели приложений, в которой роль
брокеров играют серверы приложений.
Tarantella Enterprise 3 позволяет связать в единую систему приложения и клиентов, не требуя
их дополнительного согласования. Основой решения является протокол Adaptive Internet
Protocol; он назван адаптивным, поскольку не требует, чтобы изначально были сделаны какиелибо предположения о свойствах клиента и канала, а при соединении выполняются
необходимые измерения и выбирается наиболее эффективный способ взаимодействия. Область
действия протокола — между виртуальной машиной, реализующей протокол (Protocol Engine) на
сервере Tarantella, и отображающей машиной (Display Engine), работающей на клиенте.
Протокол обеспечивает передачу вводимых пользователем данных, отображение изображений,
печать и доступ к файлам. Если он используется вместе с Tarantella Security Pack, весь трафик
AIP шифруется.
8
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Sun Ray — самый тонкий клиент
В решении Sun Ray, предложенном Sun Microsystems, идея тонкого клиента доведена до
логического предела (рис. 6). Устройство не имеет собственного состояния (как, например,
сотовый телефон без SIM-карты). В данном случае роль SIM-карты играет более
интеллектуальная смарт-карта, которая содержит сверхминиатюрный компьютер с оперативной
памятью и перепрограммируемой постоянной памятью (electrically erasable programmable readonly memory, EEPROM). Ее вычислительная мощность сопоставима с мощностью PC XT, первого
персонального компьютера IBM. Столь мощный ресурс позволяет хранить на смарт-карте все
необходимые данные о клиенте и сеансах его работы, что, в свою очередь, дает возможность
перемещаться с одного устройства на другое без потери данных (вплоть до сохранения
состояния экрана). При использовании других аппаратных платформ тонких клиентов добиться
этого нереально.
Рис. 6. Тонкий клиент Sun Ray
В «родном» режиме подключения к среде Solaris управление терминалами Sun Ray
осуществляется с помощью специализированного программного обеспечения Sun Ray Server
Software. Оно выполняет несколько функций, в том числе реализует общую систему
администрирования, схему аутентификации пользователей, обеспечивает мобильность сеансов
смарт-карт, восстановление при сбоях и балансировку нагрузки. Данные функции
распределены между несколькими модулями.
 Менеджер




аутентификации (Authentication Manager) не только проверяет
регистрацию пользователя в соответствующих базах данных, но и обращается к
менеджеру сеансов, чтобы определить, имеется ли у пользователя открытый сеанс. Если
таковой есть, он восстанавливается, а если нет, открывается новый.
Менеджер сеансов (Session Manager) управляет процессами ввода/вывода после
того, как пользователю открыт сеанс. Если сеанс закончен, этот менеджер
приостанавливает все процессы ввода/вывода. Менеджер аутентификации и менеджер
сеансов
являются
обязательными
компонентами
операционной
системы,
поддерживающей Sun Ray.
Менеджер группы устройств (Group Manager) работает на каждом из серверов Sun
Ray, поддерживая топологию и распределение нагрузки.
Поддержка работы периферии (Peripheral Device Support) осуществляется
размещенным на сервере драйвером. Конкретный драйвер выбирается в зависимости от
метода подключения (по сети или через порт USB).
Инструменты администрирования (Administration Tools) реализуют политику
работы с пользователями, со смарт-картами, с группами серверов и решают иные
управленческие задачи.
Заключение
Из далеко не полного перечня решений, связанных с использование тонких клиентов, видно,
что в этой области пока еще не сформировался более или менее общий подход, а технологии
разделены на несколько заметно различающихся «кланов». Сравнивать столь разные решения
9
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
непросто. Пожалуй, единственное подобное исследование выполнила Лаборатория сетевых
вычислений Колумбийского университета. Результаты исследований опубликованы в отчете «A
Comparison of Thin-Client Computing Architectures», который (как и несколько близких по
содержанию
материалов)
можно
найти
в
Сети
по
адресу
www.ncl.cs.columbia.edu/publications/cucs-022-00.pdf .
Как Windows стала многопользовательской
Терминальными сервисами называют программные средства, входящие в состав Microsoft
Windows 2000/Windows 2003, которые позволяют подключаться к Windows-серверам и
выполнять установленные на них программы. При этом в качестве терминальных устройств
могут использоваться обычные ПК или специальные терминалы с ограниченной
функциональностью, способные лишь выполнять функции подключения к серверу и отображать
посылаемые с сервера экранные формы. При использовании терминальных сервисов
обеспечивающий их сервер становится распределяемым между пользователями ресурсом, в
котором каждый из пользователей получает в свое собственное распоряжение часть
пространства памяти, защищенную от посторонних воздействий, в которой он может
располагать свои данные и приложения.
Из истории Windows хорошо известно, что изначально эта операционная система не
задумывалась как многопользовательская, в отличие, скажем, от ОС Unix. Лишь много позже ее
адаптировали к обслуживанию множества пользователей в форме терминальных сервисов.
Первым этапом на пути к многопользовательскому режиму ОС Windows стал выпуск NT 4.0
Server в редакции Terminal Server Edition (TSE). В своем оригинальном виде — так, как она
была реализована в NT 4.0 Server, — поддержка терминальных сервисов обеспечивались
решением MultiWin, лицензированным у компании Citrix. С тех пор каждый из партнеров,
Microsoft и Cirix, развивал технологии терминальных сервисов независимо, используя
собственные решения, но родственность между их подходами сохраняется. Реализация
терминальных сервисов в современных операционных системах Windows 2000 и Windows 2003
заметно отчается от того, как это было сделано в Windows NT 4.0. Однако следует учитывать,
что эти системы не поддерживают 16-разрядные приложения, поэтому в случаях, когда есть
необходимость в подобного рода приложениях, NT 4.0 остается единственным выбором. И хотя
система эта морально устарела, начать рассказ о терминальных сервисах следует с нее: в
первоначальном исполнении они выполнены проще и прозрачнее.
Терминальные сервисы NT 4.0
Для того чтобы адаптировать любую однопользовательскую операционную систему (в том
числе, и Windows) к задачам управления многопользовательскими прикладными средами
приходится внести существенные изменения в ее ядро. В Windows NT 4.0 Server работа по
модификации заключалась в интеграции существовавшего ядра технологии MultiWin,
разработанной в компании Citrix. Под интеграцией в данном случае понимается добавление или
изменение нескольких компонентов, сервисов и драйверов в ядре NT 4.0. В частности, для
обеспечения многопользовательского режима был изменен менеджер виртуальной памяти
Virtual Memory Manager (VMM), а также Object Manager (OM).
В Windows NT 4.0 для обеспечения мультизадачности в основном используются три
механизма.
 Менеджер виртуальной памяти в TSE служит для решения одной из важнейших задач —

отображения виртуальных адресов в адресном пространстве процессов в физические
адреса в адресном пространстве физических страниц компьютерной памяти. В Windows
NT отведенное процессу адресное пространство поделено на два подпространства
размером по 2 Гбайт каждое; одно из них является пользовательским (область
адресов, специфичная для данного процесса), другое — подпространством ядра
(область системных адресов). Роль VMM заключается в установлении соответствия
между пользовательским адресным подпространством и физической памятью, причем
таким образом, чтобы пользовательские подпространства не пересекались, а системные
вызовы внутри процессов обращались только в область собственной памяти данного
процесса, но не других.
Необходимость в создании специального пространства сеансов (SessionSpace)
возникает в связи с тем, что адресное пространство ядра является общим для всех
процессов, происходящих в системе. Из-за большого количества процессов вероятно
10
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE

одновременное достаточно большое количество обращений по этим адресам, что
приведет к неизбежной перегрузке. Такую опасность можно предупредить, выделив в
TSE специальное адресное пространство в ядре, которое будет служить своего рода
расширением адресного пространства самого ядра. Соответствие между собственной
областью ядра и соответствующей ему областью SessionSpace устанавливается на
основании индивидуальных идентификаторов процессов. Следует отметить, что каждому
процессу в момент входа пользователя в системе присваивается уникальный
идентификатор SessionID, который в данном случае и используется для установления
соответствия между двумя областями памяти. Кроме того, в Windows NT 4.0 сервер
Terminal Server виртуализирует все приложения и системные программы с тем, чтобы
несколько процессов или пользователей могли обращаться к ним одновременно. Для
этой цели также применяются идентификаторы. На рисунке 1 показаны примеры
использования идентификаторов SessionID.
Для разделения одной копии исполняемого кода между несколькими процессами
используется механизм разделения кода (Code Sharing или Copy on-Write Page
Protection). На рисунке показано, что несколько пользователей могут обращаться к
одному коду, находящемуся в части памяти, куда запись запрещена. А редактируемые
пользователями документы находятся в разделенных областях памяти, куда запись
возможна, но между ними нет никакой интерференции.
Рис. 1. Использование идентификаторов сеансы
11
Download