MetaFrame - ключ доступа к приложениям различных операционных систем.

Успех вычислений, основанных на применении серверов, связан с тем, что, прилагая минимальные усилия, вы можете воспользоваться преимуществами "бесшовных" технологий, объединяющих различные сети. Например, вместо того, чтобы загружать терминальное программное обеспечение, эмулирующее работу на другой операционной платформе, на клиентской станции можно загрузить специальную программу отображения, которая весь графический вывод приложения, запущенного на терминальном сервере, будет показывать на станции клиента. Наверное, такой сценарий работы - не новость для наших читателей, очень многие пользователи применяют терминальные службы для запуска Windows-приложений на не-Windows платформах. Но вот обратное - возможность с помощью той же самой технологии запускать Unix-приложения на не-Unix платформах и без использования клиента X Window System (X) – вероятно, для многих станет открытием. Кроме того, Citrix MetaFrame (разработчик - ICA) позволяет работать с приложениями Unix и Windows в едином интерфейсе и копировать данные между этими приложениями. Давайте рассмотрим, как установить MetaFrame for Windows и MetaFrame for UNIX так, чтобы интерфейс представления Windows- и Unix-приложений был один и тот же, принимая во внимание вопросы лицензирования и настройки регистрации в системе. Будем исходить из предположения, что на станции уже установлены программы MetaFrame и Citrix NFuse, и мы можем развернуть традиционную клиент/серверную Web-систему и подготовиться к публикации приложений.

Почему именно MetaFrame for UNIX?

На ранних этапах разработки Citrix позиционировала свой многопользовательский продукт для платформы Windows, однако, начиная с 2000 года, MetaFrame стал доступен для платформы Unix. Как и MetaFrame for Windows, в MetaFrame for UNIX для отображения работающих приложений на рабочем столе пользователя также использовался протокол ICA.

Unix поддерживает многопользовательский режим на протяжении многих лет, в том числе функцию отображения работающего приложения, запущенного на удаленной станции Unix, с любого компьютера с установленным на нем клиентом X Client. Зачем еще что-то изобретать, когда все и так уже готово и используется? Ответ прост: протокол ICA позволяет сделать то, чего с помощью Х Client сделать было невозможно.

До недавнего времени среда отображения ICA не была столь богата возможностями как Х с ее прекрасными средствами графической визуализации. Однако у ICA есть свои достоинства. Во-первых, компонент ICA-клиента почти не нуждается в настройке, за исключением запущенных в его окружении приложений, тогда как для достижения оптимальной Х-эмуляции не-Unix-клиентов зачастую требовалось выполнить весьма непростую настройку. Во-вторых, протокол ICA отображает объекты с исключительно высоким качеством даже по низкоскоростному каналу, в то время как Х требует значительно более широкой полосы пропускания при обычном подключении и для большинства подключений по глобальным сетям. В-третьих, ICA поддерживает так называемую теневую сессию (session shadowing), что позволяет одному пользователю видеть терминальную сессию другого пользователя и взаимодействовать с ней. И, наконец, в ICA компонент отображения приложения полностью изолирован от работы самого приложения, поэтому вы легко можете отключиться на одном компьютере от терминальной сессии, а после этого снова восстановить сессию на другом компьютере с того самого места, где работа была прервана. На протяжении всего времени работы приложения на сервере данные запущенной сессии остаются в памяти. Уже одно это способно сделать MetaFrame for UNIX популярным среди разработчиков Unix, поскольку, завершив сессию на работе, по возвращении домой они смогут продолжить ее на своем домашнем компьютере.

Более низкие требования к полосе пропускания и упрощенное программное обеспечение визуализации обуславливают различия ICA и Х. Для Х предполагается, что устройство отображения (дисплей) - это сервер, а хост, на котором запущено приложение, - клиент. На первый взгляд может показаться, что должно быть наоборот, но если хорошенько подумать, в таком подходе есть свой смысл. Устройство, которое показывает приложение - это дисплей-сервер (т.е., система графической визуализации). Графические примитивы перемещаются с хоста приложения Unix (клиент) на устройство отображения (сервер) для локальной визуализации и отображения. В ICA устройство отображения - это клиент, а хост приложения - сервер. Сервер выполняет визуализацию графики, а затем пересылает примитивы клиенту для отображения.

MetaFrame for UNIX не обладает такой разнообразной функциональностью, как MetaFrame for Windows. MetaFrame for UNIX 1.1 (текущая версия) приблизительно соответствует уровню MetaFrame for Windows 1.8, а версия MetaFrame XP, по существу, это версия 2.0. В MetaFrame XP for Windows есть некоторые признаки масштабируемости и инструменты управления принтерами, свойства, отсутствовавшие в более ранних версиях продукта, которые можно рассматривать как реализацию новой архитектуры Independent Management Architecture (IMA).

MetaFrame for UNIX не поддерживает концепцию фермы серверов (server farm). Вы не можете ни сделать серверы MetaFrame for UNIX частью серверной фермы MetaFrame for Windows, ни разместить серверы MetaFrame for UNIX в ферме своих серверов. MetaFrame for Windows UNIX не позволяет публиковать приложения серверов MetaFrame for UNIX; описывать права доступа пользователей, групп, каталогов; выполнять балансировку нагрузки. Разработчики Citrix утверждают, что графическая Java-консоль MetaFrame XP for Windows в будущем станет доступна для Unix, но до этого момента необходимо выполнять все настройки MetaFrame for UNIX с командной строки. Вместе с тем, пути развития MetaFrame for UNIX и MetaFrame for Windows идут параллельно, и Citrix предусматривает возможность совместной работы этих двух продуктов. На самом деле, причина реализации в MetaFrame XP for Windows именно консоли Java (вместо привычной консоли Microsoft Management Console - MMC) состоит в том, что пользователь получает в свое распоряжение один и тот же административный инструментарий для обоих продуктов - и в среде Windows, и в среде Unix.

Создание интегрированной среды

Самый первый шаг в создании интегрированной среды работы связан с подготовкой приложений Unix и Windows для применения в едином пользовательском интерфейсе. Если вы уже работаете с MetaFrame for Windows и собираетесь установить MetaFrame for UNIX, вероятно, вас обрадует известие о том, что клиент ICA, используемый для подключения к серверам MetaFrame for Windows, также позволяет установить подключение и к серверам MetaFrame for UNIX. Чтобы публиковать приложения MetaFrame for UNIX, необходимо задействовать утилиту командной строки ctxappcfg, а не Published Application Manager, программы для публикации в MetaFrame for Windows. Войдите в систему как superuser или как ctxsrvr (специально созданная Citrix административная учетная запись), а затем выполните приведенную ниже процедуру (это пример работы с xterm, терминальным окном командной строки, на сервере Hewlett-Packard HP-UX с запущенным MetaFrame for UNIX):

# /opt/CTXSmf/sbin/ctxappcfg
App Config> add
Name: XTERM
Command line: /usr/bin/X11/
 xterm
Working directory:
Anonymous [yes|no]: no
Successfully added configuration
 for "XTERM".
App Config> exit

Администраторы MetaFrame for Windows, которые работают с MetaFrame for UNIX впервые, вероятно, обратят внимание на некоторые различия. Во-первых, хотя учетную запись Administrator можно использовать для регистрации в MetaFrame for Windows, по умолчанию нельзя задействовать учетную запись root для регистрации в сессии MetaFrame for UNIX. Это связано с ограничениями безопасности системы Unix, в которой не разрешается регистрироваться где бы то ни было, за исключением консоли. Во-вторых, необходимо установить Feature Release 1 (FR1) и все программные исправления на серверы Unix до начала публикации приложений. FR1 поддерживает большую глубину цвета (вплоть до True Color) и добавляет некоторые другие полезные функции, такие как поддержка многоэкранного режима, а также исправляет ошибки в некоторых приложениях. Пока я не установила эти исправления на своем сервере Sun Microsystems Solaris, приложения, которые, как предполагалось, должны были отображаться в seamless-окнах, появлялись в маленьких пустых окошках на рабочем столе, и их приходилось закрывать.

Когда нужные приложения подготовлены, клиенты Win32 могут подключаться к обоим видам терминальных серверов MetaFrame при помощи одинаковых программных средств. Находясь в Citrix Program Neighborhood (Start, Programs, Citrix ICA Client), щелкните Application Set Manager, затем выберите Custom ICA Connections. После запуска мастера подключений можно выбрать как Windows, так и Unix-серверы (см. Экран 1). В списке предлагаемых серверов вместо Application Set Manager следует выбрать Published Application, чтобы стали видны серверы как Windows, так и Unix. Когда пользователь подключается к любому опубликованному приложению или рабочему столу сервера, созданное подключение появляется в группе Custom ICA Connections.

NFuse

MetaFrame уже достаточно давно поддерживает Program Neighborhood для Win32-клиентов. Это свойство позволяет показывать значки публикуемых приложений в диалоговых окнах на рабочем столе (и даже размещать их в меню Start или Desktop). Однако на протяжении долгого времени Program Neighborhood не был доступен для отличных от Win32 клиентов. Даже на платформах, которые поддерживали Program Neighborhood, и где можно было создать индивидуальные подключения ICA или подключиться к ферме Citrix, оказывалось невозможно увидеть состав фермы. В 2000 году Citrix выпускает NFuse и Web-реализацию Program Neighborhood, и теперь значки приложения можно увидеть с любой фермы в Web-браузере и запускать приложение с помощью этих значков (конечно, если для этого есть соответствующие права). В дальнейшем вы подписываетесь на нужное приложение на Web-странице и получаете доступ ко всем подобным приложениям с любой фермы.

Чтобы значки приложения появились в Web-браузере, Citrix использовала три технологии - MetaFrame, Web-сервер и XML. Серверы MetaFrame могут быть построены на основе как Windows, так и Unix; Web-серверы могут быть типа Microsoft IIS или Apache. Службы XML с общим названием NFuse и бесплатно предоставляемые Citrix, делают возможным установление взаимодействия серверов MetaFrame и Web-серверов.

Чтобы определить, кто может видеть приложения в MetaFrame for Windows и какие именно, следует воспользоваться Published Application Manager. В MetaFrame for UNIX необходимо сначала опубликовать эти приложения, затем описать в терминах пользователей и групп и составить фильтр доступа к опубликованным приложениям. Фильтры доступа MetaFrame for UNIX применимы только к приложениям, представленным NFuse. Браузер ICA-клиента показывает все опубликованные приложения, независимо от фильтров. Загружая окно регистрации Web-страницы, необходимо указать имя пользователя и пароль. Если авторизация прошла успешно, NFuse показывает подмножество приложений, к которым пользователь имеет доступ.

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

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

Альтернативное решение - организовать совместное использование баз данных безопасности, тогда не нужно будет создавать специальные учетные записи NFuse для обращения к обоим типам приложений. Совместное использование баз данных означает, что необходимо будет применить какой-либо интеграционный пакет аутентификации Windows-Unix, например Microsoft Services for UNIX (SFU).

К вопросу о лицензировании

При одновременной работе с MetaFrame for Windows и MetaFrame for UNIX вопрос лицензирования решается не так очевидно, как может показаться. MetaFrame for Windows требует как лицензий "на место" Terminal Server Client Access License (TSCAL), поскольку MetaFrame работает под Windows 2000 Server Terminal Services, так и лицензий "на подключение" MetaFrame. Лицензии "на место" - это лицензии CAL в дополнение к обычным, необходимым при работе с любым сервером Windows. Напротив, MetaFrame for UNIX никакого дополнительного лицензирования не требует, нужны те же самые лицензии MetaFrame "на подключение", которые используются MetaFrame for Windows. Фактически, терминальные серверы Windows и Unix, на которых работает MetaFrame 1.х могут совместно использовать один и тот же пул лицензий. Unix никакие клиентские лицензии не нужны.

Службы Windows Terminal Services, лежащие в основе MetaFrame for Windows, используют лицензии TCAL "на место", явно прописанные для клиентской станции, с которой осуществляется обращение к терминальному серверу. Следовательно, необходимо сконфигурировать публикуемые Windows-приложения для предоставления доступа только тем пользователям, которым действительно необходимо работать с определенными приложениями. В противном случае вы просто потеряете лицензии TSCAL.

Есть такие апологеты Unix, которые поглядывают на MetaFrame for UNIX свысока - зачем, мол, обучать делать Unix что-то такое, что уже давным-давно реализовано? Однако поддержка ICA позволяет Unix выполнять такие задачи, которые были не под силу при работе с X-протоколом. Поддержка ICA дает возможность работать с интенсивной графикой Unix-приложений при низкоскоростном подключении, использовать приложения Unix на платформах, которые не поддерживают Х, обеспечивать единый интерфейс для приложений Windows и Unix (с дополнительным доступом через Web-интерфейс), задействовать функциональность Session Shadowing, подключаться к сессиям рабочего стола или опубликованным приложениям. Говоря коротко, ICA и Х - это разные протоколы и разные приложения. ICA обеспечивает действительную интероперабельность, предоставляя в распоряжение любого пользователя приложения как Windows, так и Unix - достаточно поставить клиент ICA. Применение ICA с Windows и Unix позволяет запускать приложения на той платформе, для которой они были созданы, вместо того, чтобы заниматься их "притягиванием" к платформе, для которой они не предназначались.

Криста Андерсон - независимый автор и консультант, редактор журнала Windows & .NET Magazine. Ее последняя книга, вышедшая в издательстве Sybex, - Mastering Local Area Networks. С автором можно связаться по адресу: candersn@adelphia.net.