13 лет назад 14 ноября 2005 в 1:20 67

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

Тонкий клиент – это устройство, которое передает большую часть исполняемых им функций серверу. Согласно классификации компании Microsoft, тонкие клиенты подразделяются на базовые терминалы (Basic Terminal), интернет-терминалы (Browser Terminal) и бизнес-терминалы (Line-of-Business Terminal). Наиболее низкую функциональность имеет базовый терминал – он является полным аналогом старого терминала. Бизнес-терминал, в свою очередь, может самостоятельно выполнять некоторые операции – для него даже существует собственная операционная система Windows XP Embedded. Система, предназначенная для использования тонких клиентов, состоит из непосредственно терминала, сервера и коммуникационных средств.

Ошибка Sun Microsystems
Идея использовать легкие терминалы вместо полноценных персональных компьютеров появилась благодаря развитию локальных сетей. Первой, кто внятно сформулировал эту концепцию и попытался реализовать ее на практике, стала компания Sun Microsystems. Одним из существенных достоинств продвигаемого этой фирмой языка Java являлась, по их мнению, возможность исполнять загруженные с сервера Java-приложения.

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

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

ПРЕИМУЩЕСТВА И НЕДОСТАТКИ СИСТЕМЫ
Терминальный подход позволяет быстро развернуть новое рабочее место – в этом случае не надо устанавливать и настраивать операционную систему и прикладные программы. Все это уже сделано на сервере. Так что работа системных администраторов радикально упрощается. Даже использование технологий клонирования не дает такого выигрыша во времени. Вся работа сводится только к открытию доступа к необходимым каталогам и приложениям. Обычно это требует менее десяти минут.

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

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

Стоимость эксплуатации систем на основе тонких клиентов чрезвычайно низка. Их обслуживание не требует большого штата – сами клиенты не ломаются, поэтому разбираться приходится только с сервером. Очевидно, что работать с одним сервером, несмотря на всю его сложность, намного проще, чем с сотней рабочих станций. Особо следует отметить низкие затраты на модернизацию – улучшать можно только один сервер, поскольку тонкие клиенты никакому апгрейду не подлежат в принципе. Единственное, что может не устроить пользователя, это монитор. Но тут уж делать нечего – придется покупать новый.

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

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

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

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

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

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

Сетевая карта
Основой тонкого клиента является сетевая карта с BootPROM, в который записана программа, называемая перехватчиком прерывания загрузки (bootstrap). Первым делом она посылает в сеть широковещательный запрос, в котором содержится уникальный идентификатор карты, зашитый в нее производителем. Целью этого запроса является идентификация тонкого клиента – перед тем как начать работать, он должен понять, кто он такой.

То есть узнать свое имя, IP-адрес, точный адрес сервера и имя файла, который можно затребовать для загрузки. Затем остается только загрузить некий файл в память клиента. Тип файла зависит от используемой операционной системы. Если этой системой является UNIX, то файлом будет ядро операционной системы.

Особенность терминального доступа заключается в том, что пользователь не загружает данные, а только видит картинку на мониторе. В этом случае обеспечить целостность и безопасность данных существенно проще, чем в “традиционном” варианте. Пользователь не сможет даже сохранить файл, если он вызовет подозрение у антивируса. Разумеется, это весьма обидно осознавать, но каждое право пользователя – это брешь в системе безопасности.

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

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

И, наконец, универсальность. Дело в том, что все тонкие клиенты, по сути, одинаковы. Доступ к своему Рабочему столу пользователь может получить с любого из них – надо только залогиниться на сервере под своим именем. Более того, в одной сети могут работать как тонкие клиенты, так и персональные компьютеры, которые при необходимости можно переключать в терминальный режим. А гетерогенная концепция локальной сети позволяет достичь максимально возможного показателя эффективность/стоимость всей вычислительной системы, что и является главной задачей IT-подразделения.

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

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

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

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

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

Два подхода
Аппаратное решение терминальной системы может основываться на двух принципиально разных подходах, использующих различные свойства такой конфигурации. Первый – закупка готового решения. Второй – использование устаревших машин. Разумеется, официально можно рекомендовать только первый путь. Благо выбор велик – терминальные решения предлагают очень много как отечественных, так и зарубежных фирм. Тут все просто и понятно: выбираешь поставщика, обозначаешь задачу, принимаешь работу и платишь деньги. Все оптимально, за исключением последнего пункта.

Именно этот самый последний пункт и является мотивом выбора второго варианта. С него и начинается перечень всех достоинств такого подхода к решению проблемы. К сожалению, и заканчивается тоже – других преимуществ нет. Вентилятор будет шуметь, видеоадаптеры придется приводить к общему знаменателю… Последнее, кстати, очень важно – драйвер карты находится на сервере и должен обслужить все рабочие станции. Достаточно часто эта проблема обходится загрузкой системы с локального диска, но тогда клиент перестает быть тонким.

ПРАКТИКА
Как уже говорилось, идеальным решением является покупка готовой системы. Однако на практике это не всегда доступно. Прежде всего, по соображениям экономического характера. Тем не менее, сервер лучше купить сразу. Сделать сколько-нибудь серьезную терминальную систему на самодельном сервере если и можно, то крайне тяжело.

Серверной операционной системой может быть как Linux, так и Windows. Разумеется, в случае использования продукции Microsoft следует позаботиться о том, чтобы это был именно серверный вариант, например Windows Server 2003. Для того чтобы Windows мог работать в реальном многопользовательском режиме, применяется служба Terminal Services, которая внедряет между слоями системы и пользователя слой сеанса. Таким образом, менеджер сессии создает для каждого пользователя отдельный экземпляр подсистемы Win32 и запускает внутри сеанса crss.exe и winlogon.exe. Именно так достигается реальный многопользовательский режим, при котором несколько сеансов выполняется в одной системе. Каждому сеансу присваивается уникальный идентификатор и адресное пространство.

Необходимым для нормального функционирования Terminal Services протоколом является RDP – он дает каждому пользователю возможность взаимодействовать с сеансом сервера. Фактически RDP представляет собой набор виртуальных средств ввода-вывода: дисплей, клавиатура и мышь.
Для конфигурирования терминального сервера используются два инструмента: Terminal Services Configuration и редактор групповых политик. Основной утилитой является Terminal Services Configuration. Рассмотрим ее более подробно. Запускается она из раздела Administrative Tools стартового меню. В настройках сервера находится шесть опций.

– Delete temporary folders on exit отвечает за удаление временных файлов при выходе пользователя из системы. Эти файлы находятся в каталоге <Диск>:\Documents and Settings\<пользователь>\local settings\temp. Вообще говоря, в большинстве случаев эта настройка не нужна, поскольку дублирует политику Delete cached copies of roaming profiles, используемую, как правило, на каждом сервере. Поэтому лучше всего не менять выставленное по умолчанию значение этой опции.

– Use temporary folders per session укажет системе о необходимости создавать отдельный временный каталог для каждого сеанса. Опция довольно полезная, поскольку не позволит сеансам мешать друг другу.

– Active Desktop лучше все-таки отключить (что и сделано по умолчанию). Особой пользы от него все равно нет, только ресурсы напрасно потребляет.

– Permission Compatibility – это опция, отвечающая за совместимость разрешений. Ее необходимость обусловлена тем, что в отличие от предыдущих версий в системе Windows Server 2003 по умолчанию установлен режим Full Security. Это означает, что обыкновенные пользователи не имеют права записи в ветвь HKEY_LOCAL_MACHINE реестра и вообще в любое место диска, кроме каталога своего профиля. Однако существуют приложения, которые в таком режиме работать не в состоянии. Поэтому может возникнуть потребность в ослаблении безопасности. Очевидно, что использование этой опции должно быть очень продуманным – открывать сервер без особой надобности не стоит.

– Опция Licensing определяет режим лицензирования. Тут все просто. Если в вашей сети существуют пользователи, которые могут работать на разных терминалах, то правильным выбором будет Per User. А если одним терминалом пользуются несколько человек, то следует выбрать Per Device.

– Наконец, Restrict Each User to One Session позволяет ограничить каждого пользователя одним сеансом. С одной стороны, такая установка дает возможность экономить ресурсы, однако если необходимо предоставить клиенту прямой доступ к приложениям за пределами Рабочего стола, то опцию придется дезактивировать.

Отдельно следует поговорить о скриптах входа в систему. Сам вход описан в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Appsetup системного реестра. Этот ключ отвечает за запуск скрипта usrlogon.cmd, который вызывает все дополнительные сценарии.

Сначала usrlogon.cmd вызывает setpaths.cmd, который проверяет все ключи реестра, описывающие пользовательское окружение. Если ни один из них не определен, то скрипт возвращает предупредительное сообщение и usrlogon.cmd прекращает работу. Затем может быть выполнен сценарий usrlogn1.cmd. По умолчанию он отсутствует, поскольку нужен только тогда, когда пользователь выполняет не обращающиеся к ROOTDRIVE программы, для которых требуется специальный скрипт совместимости.

ROOTDRIVE необходим для того, чтобы устранить одно противоречие, согласно которому ключи реестра не могут ссылаться на переменные окружения. Следовательно, сервер должен знать абсолютный путь, разрешенный для пользователей. Делается это во время инсталляции скрипта совместимости, когда он позволяет внести изменения в файл rootdrv2.cmd, указав именно тот драйв, который будет зарезервирован системой.

Несмотря на то что готовый тонкий клиент стоит весьма символических на фоне общей стоимости системы денег, некоторые пользователи предпочитают собирать их самостоятельно. Резон в этом, кстати говоря, имеется – тонкие клиенты собираются из устаревших машин, которые вообще ни на что не годятся.

Еще одно преимущество старых компьютеров заключается в том, что на них уже имеются устройства для чтения либо флоппи-дисков, либо CD. В общем случае эти устройства не только бесполезны, но даже вредны. Но если имеет место явная нехватка финансов, то безопасностью придется поступиться в пользу элементарной работоспособности.

Первым делом из старой машины надо удалить все ненужное. Для этого следует определиться, каким способом она осуществит первый контакт с сервером. Если компьютер укомплектован подходящей сетевой картой, то можно снимать все приводы сменных носителей. Если сетевая карта не имеет BootPROM, но машина оснащена CD-приводом, то флопповод ей ни к чему. Последний вариант такой: и сетевая карта неподходящая, и компакт-диски читать нечем. Тогда вся надежда на флоп.
Самая главная лишняя часть тонкого клиента – система охлаждения.

Однако удалить ее просто так не получится – система не знает, что ей придется работать на “сниженных оборотах”, и будет греться, как обычно. Поэтому снижаем частоту системной шины, кратность шины и питание. Конкретные цифры в общем случае привести затруднительно – лучше всего действовать методом проб и ошибок. Таким образом, мы уменьшили ток потребления, а следовательно, и нагрузку на блок питания. Так что самый шумный вентилятор можно смело убирать, чтобы получить из “жужжащей коробочки” тихий ящик.

Если BootPROM на сетевой карте отсутствует, то это вовсе не означает, что ее нельзя использовать в тонком клиенте. Но тогда придется оснастить его дисководом. Дискета нужна для того, чтобы поместить на нее начальный загрузчик, который можно взять на странице rom-o-matic.net. В скачанном архиве должна быть утилита RAWWrite, с помощью которой образ записывается на дискету. Пользователю остается только загрузиться с нее и соединиться с сервером. Второй вариант загрузочной дискеты можно взять по адресу int100.freeshell.org/fidonet/frwt.

Однако флоппи-диск – вещь сама по себе не очень надежная. Поэтому если есть возможность использовать компакт-диск, то это предпочтительней. Таким образом можно несколько продлить жизнь старого железа. Хотя на самом деле самое полезное следствие заключается в приобретении опыта использования тонких клиентов для того, чтобы при первой же возможности перейти на “фирменные” модели. Тем более что их выбор уже достаточно богат, чтобы можно было говорить о появлении нового сегмента IT-рынка. Весьма перспективного, кстати, ведь достоинств у терминальной технологии все-таки больше, чем недостатков.