Системы с толстым клиентом, напротив, реализуют основную логику обработки на клиенте, а сервер представляет собой в чистом виде сервер баз данных, обеспечивающий исполнение только стандартизованных запросов на манипуляцию с данными (как правило - чтение, запись, модификацию данных в таблицах реляционной базы данных). В системах такого класса требования к рабочей станции выше, а к серверу - ниже. Достоинство архитектуры - переносимость серверной компоненты на серверы различных производителей: все промышленные серверы баз данных реляционного типа поддерживают работу со стандартизованным языком манипулирования данными SQL, но внутренний встроенный язык обработки данных, необходимый для реализации логики обработки на сервере у каждого из серверов свой.
«Толстый» клиент содержит всю функциональность и интерфейсную часть в себе, и при любом изменении, требует замены у всех пользователей.
1.3 Бездисковая рабочая станция
Бездисковая рабочая станция - это персональный компьютер, лишённый несъёмных средств для долговременного хранения данных. Существуют два основных сценария использования бездисковых рабочих станций:
Операционная система и приложения загружаются по сети с сервера и затем выполняются локально на рабочей станции. Результаты работы (например, документы, с которыми работает пользователь) сохраняются также на сервере, либо на каком-либо съёмном устройстве. Вместо сервера для загрузки рабочей станции может использоваться съёмный носитель, такой, как компакт-диск. Операционная система и приложения выполняются на сервере, а результаты их работы (пользовательский интерфейс приложений) передаются на рабочую станцию и отображаются так же, как если бы пользователь работал с этими приложениями напрямую. Такие рабочие станции называются терминалами, а серверы, на которых выполняются ОС и приложения - серверами терминалов. Терминалы требуют минимальной вычислительной мощности, так как сами они не обрабатывают данные, а лишь отображают интерфейс. С другой стороны, повышенная производительность требуется от серверов терминалов.
Основными преимуществами использования бездисковых рабочих станций является централизованное хранение всех данных, что позволяет легко управлять ими, производить резервное копирование и т.д. С другой стороны, если бездисковая станция загружается с сервера (или является терминалом), то она неработоспособна без исправно работающего сетевого подключения и сервера.[10]
Основная масса решений в пользу использования бездисковых станция, принимаеться it-персоналом, из экономической стороны поставленной задачи, поскольку аппаратные требования как правило низки и можно собирать станции практически из "утиля" 5-7 летней давности. Большинство крупных производителей серверных решений производят терминалы (тонкие клиенты) на современных, но низкопроизводительных комплектующих. Тонкие клиенты как правило потребляют меньше энергии, поддерживают большинство современных интерфейсов и не имеют движущихся элементов (вентиляторов, жестких дисков), что позволяет увеличить срок работы тонких клиентов. При использовании бездисковой рабочей станции в качестве терминала проблеммы свопинга не существует.
Современные операционные системы используют своппинг В случае бездискового компьютера своп-файл приходится размещать на сервере, в результате сеть сильно нагружается дополнительным трафиком. Поэтому бездисковые рабочие станции были популярны в эпоху MS-DOS, которая не использует своппинг; в настоящее время их обычно использут в качестве терминалов (в этом случает на них запускается только одна программа, практически не обращающаяся к дисковой памяти). Иногда бездисковые станции всё-таки снабжают жёстким диском небольшой ёмкости для размещения только своп-файла. В последнее время достаточное распространение получили так называемые аппаратные реализации терминальных протоколов, также известных как терминальные решения. Автономное устройство (коробочка) к которому подключены устройства ввода-вывода и организован доступ к терминальному серверу по сети.
2. Организация терминального доступа средствами Windows 2003 Server
2.1 Технология терминального доступа
Что такое терминальный сервер? Windows спректирована как однопользовательская операционная система, т.е. в один и тот же момент времени в ней может интерактивно работать только один пользователь. Служба TerminalServices ломает эту модель, внедряя между слоями системы и пользователя слой сеанса. SessionManager для каждого сеанса создает отдельный экземпляр подсистемы Win32, WIN32K.SYS. Затем SessionManager внутри сеанса запускает рабочий процесс подсистемы клиент-сервер, CRSS.EXE, и службу входа WINLOGON.EXE.[11]
Этот процесс позволяет нескольким пользовательским сеансам параллельно выполняться на одной системе Windows. SessionManager работает аналогично распорядителю в ресторане - он провожает новых посетителей (клиентов) к их столикам (сеансам), а затем дает указания персоналу (приложениям, службам и ресурсам) обслужить стол. SessionManager присваивает каждому сеансу уникальный идентификатор (ID) и адресное пространство.
Еще одним важным компонентом TerminalServices является протокол RDP, который позволяет пользователям взаимодействовать с сеансами, выполняющимся на терминальном сервере. Без RDP каждому пользователю потребовалась бы консоль, непосредственно подключенная к серверу.
RDP функционирует как виртуальный дисплей, клавиатура и мышь на сервере. Вместо того, чтобы посылать видеовывод в порт VGA, терминальный сервер перенаправляет его в видеоканал стека RDP. Это позволяет передавать видеоинформацию по сети и отображать ее на экране рабочей станции клиента. RDP также принимает нажатия клавиш и перемещения мыши удаленного клиента и передает их на терминальный сервер, который обрабатывает их так, как будто они происходили от локальных клавиатуры и мыши.
Используя TerminalServices, вы можете инсталлировать приложения на небольшом количестве серверов, а не на сотнях рабочих станций. Вы также можете получить выгоду от использования недорогих "тонких клиентов", чем от рабочих станций. Даже если вам необходимо иметь персональные компьютеры для пользователей, вы все равно можете получить выгоду от использования терминальных серверов за счет централизации сетевого траффика.
Многие компании также используют терминальные серверы для удаленного доступа. Это позволяет закрыть большую часть сети и разрешить удаленные соединения с лишь с отдельными серверами. На таких серверах легко можно поддерживать последние пакеты обновлений, антивирусы и пр.
Первое изменение, которое бросается в глаза, состоит в устранении режима RemoteAdministration. В Win2K этот режим разрешал два удаленных сеанса для системного администрирования. Эта терминология сбивала с толку администраторов, поскольку включение TerminalServices не обязательно делало сервер терминальным сервером. Кроме того, RemoteAdministrationMode заставляла сервер регистрироваться в WINS и появляться в утилите TerminalServerAdministration. Это поведение затрудняло поиск терминальных серверов Win2K.[12]
Но не пугайтесь. Вы можете удаленно администрировать серверы WS2K3. Однако, вместо установки TerminalServices вы просто включаете RemoteDesktop. Если вы используете WindowsXP, то уже знакомы с RemoteDesktop. В WS2K3, RemoteDesktop позволяет создать два виртуальных сеанса RDP, а также удаленное подключение к консольному сеансу сервера (этого требовали многие администраторы Win2K). Кроме того, в отличие RemoteAdministrationMode в Win2K, WS2K3 RemoteDesktop препятствует появлению сервера в списке утилиты TerminalServerAdministration.
Чтобы сервер с RemoteDesktop был виден в TerminalServerAdministration, измените в реестре значение TSAdvertise с 0 на 1 в следующем ключе:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer.
Для включения Remote Desktop откройте System Control Panel, выберите вкладку Remote и установите флажок Allow users to remotely connect to your computer. По умолчанию удаленное соединение разрешено только локальным администраторам, но вы можете добавить пользователей в группу RemoteDesktopUsers. Учтите, что включение RemoteDesktop не активирует систему совместимости приложений, поэтому приложения могут работать некорректно.
Microsoft добавила возможность подключаться и удаленно управлять консольным сеансом. Для подключения к консольному сеансу вы можете либо использовать RemoteDesktopAdministration, либо запустить клиента RemoteDesktopConnection с опцией /console. Для удаленного управления консольным сеансом используйте TerminalServerAdministration.[13]
Для быстрого установления удаленного управления консоли сервера, к которому вы подключены через RDP, запустите с командной строки:
SHADOW 0
Режимы совместимости
Как и Win2K, WS2K3 предлагает два режима совместимости для TerminalServices: Полная безопасность (FullSecurity) и Ослабленная безопасность (RelaxedSecurity). Режимы совместимости позволяют выполнять старые приложения, которые не могут работать в условиях более строгих ограничений на файловую систему и реестр со стороны WS2K3