Человечество, в частности та его часть, которая имеет дело с компьютерами, постоянно разрывается между противоположными устремлениями: к объединению и к разъединению. Сначала были мэйнфреймы, на которых все дружно работали вместе. Потом пришли персональные компьютеры, все расселись по своим рабочим местам, но, конечно, тут же захотели объединиться - уже с помощью сетей. Естественно, обе эти тенденции имеют рациональное обоснование. Сейчас существует огромный мир миллионов настольных ПК на микропроцессорах Intel, работающих под той или иной версией Windows и располагающих множеством пользовательских приложений. С другой стороны, велико значение мира компьютерных систем, который управляется различными вариантами операционной системы Unix. Цель данной статьи - обзор технологий для интеграции компьютерных систем на базе Windows NT и Unix.
Значимость мира Unix-систем определяется прежде всего тем, что в него входят вычислительные комплексы, обладающие неординарными возможностями. Это мир суперкомпьютеров, графических станций и серверов баз данных, которые по своей природе предназначены для обслуживания большого числа пользователей. По-видимому, то, что Unix с самого начала был многопользовательской системой, обусловило оснащение самых мощных вычислительных систем именно им. Таким образом, в качестве основной причины объединения настольных ПК и Unix-систем часто выступает необходимость обеспечить пользовательский доступ к вычислительным ресурсам, существенно превосходящим возможности современных ПК: к многопроцессорной обработке, быстрой интерактивной 3D-графике, системам хранения и обработки терабайтных массивов данных.
С точки зрения пользователей и администраторов вычислительных сетей, оптимальным решением мог бы быть переход на единственную операционную систему. Сравнение Unix - Windows вызывало и вызывает массу дискуссий и находится в центре внимания прессы. Лагерь Unix утверждает, что Unix имеет большие преимущества, поскольку это более зрелая ОС, которая поддерживает стандарты открытых систем, распределенного сетевого обслуживания и имеет масштабируемую архитектуру. У приверженцев NT свои аргументы: легкость установки, широко распространенный пользовательский интерфейс, поддержка большого количества приложений, изначальная ориентация на недорогие платформы ПК с микропроцессорами Intel. Сравнение этих двух ОС - увлекательная тема, однако не будем в нее вдаваться, а примем за данность существование двух популярных платформ, каждая из которых имеет неоспоримые достоинства, в силу чего есть смысл использовать эти платформы совместно.
Какую роль могут выполнять в гетерогенной вычислительной сети настольные ПК на платформе Windows? Прежде всего это клиентские машины, вооруженные большим количеством собственных приложений. В то же время их можно использовать как терминалы для доступа по сети к другим компьютерам, ресурсам и приложениям. Кроме того, следует иметь в виду, что платформа Windows быстро развивается и современные достаточно рядовые конфигурации на базе Pentium и Pentium Pro могут выполнять роль файл-серверов, Web-серверов рабочих групп масштаба отдела предприятия. Уже сейчас выпускаются серверы Pentium Pro с 4-процессорной архитектурой, базирующейся на плате Intel Standard High Volume (SHV), стали реальностью также многопроцессорные системы с SMP-архитектурой CC-NUMA.
Вычислительная мощность современных ПК сглаживает водораздел между тем, что традиционно рассматривалось как персональные компьютеры, и рабочими станциями. Эта тенденция наметилась и в области операционных систем с выходом последних версий Windows NT, которая постепенно расширяет сферу своего присутствия на рабочих станциях для персональных вычислений (Windows NT Workstation), а также все больше становится известной как важная серверная платформа (Windows NT Server).
Ряд свойств, изначально заложенных в Windows NT, делают ее по сравнению, например, с Windows for Workgroups значительно более приемлемой для решения задач сетевой интеграции. Кроме того, появление NT открыло широкое поле деятельности для других производителей программного обеспечения, которые занимаются переносом Unix-приложений на иные платформы. От этих разработчиков идет большой поток интеграционных продуктов, включая поддержку интеграции IBM-SNA, браузеров Internet, Web-серверов, NFS, серверов PC X и OpenGL-GLX. Надо отметить, что хотя вначале Microsoft уповала на свой собственный оригинальный путь, большая часть предлагаемых сейчас решений все же родились в Unix и потом стали переноситься в среду Windows NT, а путь Microsoft породил проблемы, за которые расплачиваются естественно, потребители.
Межплатформенные средства и стратегии интеграции
Стыкуемость, или способность разделять ресурсы и взаимодействовать с другими компьютерами в неоднородной системе, - это один из самых больших недостатков Windows NT. Хотя в операционные системы NT Workstation и Server была включена поддержка протокола TCP/IP в дополнение к интеграционным утилитам NetWare и протоколу IPX/SPX Novell, эти ОС не были все же изначально спроектированы для интеграции в неоднородную среду систем, взаимодействующих по сети на основе открытых стандартов.
Проблемы начинаются уже при конфигурировании сети, поскольку Windows NT имеет собственный аппарат присвоения IP-адресов - DHCP/WINS, который плохо взаимодействует с аналогичным и широко распространенным сегодня аппаратом Unix - Domain Naming Service (DNS) и не опознает серверы и рабочие станции Unix непосредственно.
Dynamic Host Configuration Protocol (DHCP) служит для централизованного конфигурирования сети TCP/IP и для управления размещением информации о ней посредством автоматического присвоения IP-адресов. Серверу DHCP задается пул IP-адресов, например с 131.107.3.51 по 131.107.3.200, которые он может присваивать клиентам DHCP. Когда сервер DHCP получает запрос от клиента на выделение IP-адреса, он выбирает незанятый адрес из пула и возвращает его клиенту. Эта процедура выполняется каждый раз при старте клиента. В дополнение к DHCP сервер WINS поддерживает базу данных, которая отображает имена компьютеров-клиентов протокола NetBIOS (например STUDENT3share) в их IP-адреса и возвращает их клиенту при старте. Аппарат DHCP/WINS упрощает администрирование очень больших сетей, но конфликтует со статическим методом распределения адресов, который применяется в серверах DNS. В результате, в случае если платформа Windows NT интегрируется с Unix, может потребоваться установка межсетевого преобразователя - шлюза, поддерживающего стыковку WINS/DNS, или координация DHCP/WINS с каким-либо другим решением, например DNS или DHCP/DDNS (Dynamic Domain Naming Service). В последнюю версию Internet Information Server v. 4.0 для Windows NT Microsoft включила сервер DNS, который может быть установлен посредством Network Control Panel, хотя и не конфигурируется с нее.
После того как проблемы взаимодействия протоколов в сети рабочих станций и серверов NT и Unix решены, нужно дать пользователям программное обеспечение для доступа к удаленным вычислительным ресурсам: устройствам, средствам управления, файлам и приложениям. Вообще, особых трудностей здесь нет: можно воспользоваться собственными средствами ОС, дополнив их продуктами третьих производителей, причем существует большое количество свободно распространяемых программ, которые можно найти в Internet. Список возможных задач интеграции и способы их решения приведены в таблице 1.
Таблица 1.
Задачи интеграции и способы их решения.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рабочая станция NT
Операционная система для полноценной сетевой работы должна существенно отличаться от ОС, предназначенной только для изолированного ПК. В этом плане NT Workstation неожиданно оказалась удачной - считается, что она работает более стабильно в сетевой среде предприятия, чем Windows или Windows for Workgroups. В качестве высокопроизводительного решения для настольного компьютера комбинация Windows NT - Intel Pentium имеет преимущество в соотношении цена/производительность по сравнению с настольными системами на базе рабочих станций Unix. Это относится и к цене установки, и к обслуживанию. В конечном итоге NT приложения для ПК будут несколько дешевле, чем набор Unix-приложений. В NT сделан крупный шаг по улучшению возможностей администрирования и обеспечения безопасности, что существенно для сетевой работы. Поскольку она имеет хороший интерфейс пользователя и дает возможность сохранить приложения для DOS и Windows, есть смысл использовать настольные системы на ее базе для сетевой интеграции.
Приведем список усовершенствований в NT, которые позволяют решать многие задачи интеграции:
32-разрядные приложения TCP/IP для NT
В дополнение к ядру TCP/IP Microsoft поставляет ограниченный набор приложений для Windows NT. В первую очередь это FTP и Telnet, а также несколько утилит в Windows NT Resource Kit. За несколько лет сторонние производители разработали большой набор приложений для NT, которые по существу воссоздают среду Unix, с тем, однако, отличием, что утилиты Unix имеют обычно строчный интерфейс, а их реализации для NT снабжены графической оболочкой. TCP/IP-приложения могут быть организованы в четыре группы: общие приложения, диагностические средства, административные утилиты, продвинутые приложения.
Общие приложения: протокол удаленного входа и виртуальный терминал (Telnet); передача текстовых и бинарных файлов (FTP); клиент электронной почты; клиент для доступа к сетевым группам новостей; клиент переговоров (Internet Relay Chat); Web-браузер.
Средства диагностики: Finger, Ping - для определения активных пользователей и подсоединенных к сети компьютеров; Traceroute трассирует путь пакета данных по сети, выдавая скорость прохождения, особенно полезен для анализа сетевых проблем; NSLookup - сервис поиска в сети определенного компьютера или домена.
Административные утилиты: DHCP - динамическая IP-адресация; различные "R" (Remote) команды Unix, позволяющие из Windows NT посылать команды по сети для выполнения на удаленном компьютере; Talk - утилита связи компьютеров по сети; Exports показывает удаленные файловые системы NFS, доступные для монтирования; основные языки для записи сценариев, обладающие API для FTP и Telnet.
Продвинутые приложения: клиент сетевой файловой системы (NFS) для доступа к файл-серверам NFS, устройствам CD-ROM и сетевым принтерам; X-сервер для связи с графическими X Window- приложениями Unix.
X-сервер для NT
X-сервер является, по-видимому, одной из наиболее мощных технологий интеграции, доступной для пользователей NT. X-сервер способен поддержать доступ к приложениям Unix, VMS, Ultrix, суперкомпьютерным приложениям, а также осуществлять вывод результатов в окно настольной системы NT. Технология X-сервера для ПК получила в результате переноса в Windows NT увеличение производительности и функциональности благодаря 32-разрядности. Однако при выборе конкретного продукта нужно иметь в виду, что многие решения, появляющиеся на рынке и объявляемые как оптимизированные для NT (обычно это 32-разрядные Windows-приложения), не реализованы как собственные (native) для этой среды и не используют все возможности (скажем множественность нитей), а это существенно снижает их производительность.
Архитектура с вытесняющей многозадачностью позволяет собственным приложениям полностью реализовать возможности техники множественных нитей и существенно улучшить производительность X-сервера. В противоположность многозадачности Windows, где каждая нить может использовать процессор сколь угодно долго, вытесняющая многозадачность NT позволяет операционной системе управлять процессами. Эта ОС может подавить или прервать нить, если возникла новая нить с более высоким приоритетом. В результате получается более эффективное выполнение процессов и более стабильная операционная система. Рост производительности ощущается еще больше, когда нити выполняются параллельно в рамках одного процесса, например в процессе X-сервера.
OpenGL для NT
Система Windows NT содержит специальную базовую поддержку графического промышленного стандарта OpenGL, которая позволяет выполнять графические 3D-приложения локально на рабочих станциях NT и дает возможность визуализировать трехмерные изображения и анимацию. Однако платформа NT не имеет поддержки для доступа к 3D-приложениям OpenGL, выполняющимся на графических рабочих станциях SGI или суперкомпьютерах. Как известно, OpenGL не привязан к определенной оконной системе, поэтому для удаленного доступа к приложениям 3D-графики недостаточно только средств X Window, а нужно по крайней мере расширение OpenGL - GLX, обеспечивающее связь X и OpenGL. Сегодня такие продукты появились. Одним из решений по визуализации 3D-графики на удаленном компьютере является комбинация Exceed и Exceed 3D компании Hummingbird.
Сетевая файловая система (NFS)
Если X-сервер дает пользователям доступ к удаленным приложениям, то сетевая файловая система NFS - это средство интеграции файлов, находящихся на различных компьютерах сети. NFS позволяет подключать к локальному дереву каталогов экспортированные части удаленных файловых систем, в том числе и расположенных на Unix-платформах, с сохранением обычного способа доступа, например через File Manager.
Цель применения NFS на платформе NT - поддержка многоплатформенности. Файловая система NT и Windows 95 поддерживает FAT, VFAT, NTFS, HPFS, CDFS и совместима с широким спектром сетевых продуктов для ПК, которые были разработаны для небольших локальных сетей. Эти файловые системы, однако, не были спроектированы для работы в гетерогенной среде и не очень хорошо подходят для интеграции в большие корпоративные сети. Для таких ситуаций более полезна NFS.
Платформа NT Server хорошо подходит для использования в качестве сервера NFS. Интегрированный TCP/IP способствует сетевому обмену NFS, а высокая производительность, 32-разрядность и аппарат множественных нитей позволяют обслуживать несколько файлов и печать одновременно. Коммерческие версии NFS поставляют компании Intergraph, NetManage, Beame and Whiteside. Выбирая тот или иной продукт, нужно обратить внимание на то, насколько он оптимизирован для платформы Windows NT. К ключевым характеристикам реализаций NFS относятся:
Высокопроизводительные продукты для NT обычно реализуются как сервисы драйверов устройств или как сервисы этой ОС на уровне ядра либо на уровне приложений. Реализации NFS, которые загружаются и выполняются в области ядра системы, получают все преимущества от аппарата нитей NT и показывают более высокий уровень производительности. Кроме того, в многопроцессорных системах SMP с помощью нитей обеспечивается масштабируемость: трудоемкие запросы на передачу файлов и запросы на печать распределяются между несколькими процессорами.
Для организации гетерогенной файловой системы может оказаться полезным Samba - свободно распространяемый пакет GNU, позволяющий подключить Unix-машину к сети, управляемой менеджером LAN. Samba содержит два сервиса, запускающихся на Unix-машине и экспортирующие локальную файловую систему и принтеры. Другими словами, если Samba установлена на Unix-машине, то клиенты менеджера LAN (включая Windows for WorkGroups и Windows) получают конфигурируемый доступ к ее файлам и принтерам.
Организация сети рабочих станций NT
С помощью описанных средств можно получить решение проблем интеграции для больших корпоративных сетей. Примером служит корпорация Charles Schwab, обладающая самой большой на сегодняшний день сетью настольных систем Windows NT - 7000 настольных компьютеров, размещенных в более чем 200 офисах. Эта корпорация предоставляет посреднические и инвестиционные услуги клиентам из США, Пуэрто-Рико и Англии, применяя самые передовые информационные технологии. Недавно Schwab сделала стратегический шаг по переводу настольных систем брокеров с терминалов (IBM 3270) на ПК Intel Pentium. Для профессиональной деятельности брокеров требовался доступ к приложениям MS Windows; приложениям обработки транзакций на мэйнфрейме; финансовой информационной системе на платформе Unix; электронной библиотеке компании и электронной почте. Для решения этих задач был применен пакет Exceed компании Hummingbird. В частности, доступ с рабочих мест к ключевому приложению Market Color, в реальном времени показывающему текущие цены, осуществляется теперь с помощью X-сервера пакета Exceed.
Сервер NT
В отличие от Unix, ни Windows NT Workstation, ни Windows NT Advanced Server до сих пор не являются многопользовательскими системами. Масштабируемость NT остается ограниченной, а отсутствие полной поддержки SMP существенно влияет на ее рыночную позицию как прямого конкурента Unix-серверов баз данных. Согласно данным IDC на начало 1996 года, Unix занимал 81% мирового рынка ПО баз данных, в то время как на долю NT приходилось лишь 2%. Microsoft поддерживает третьих производителей, которые наделяют серверы NT многопользовательскими возможностями и обеспечивают одновременный доступ нескольких пользователей к приложениям, выполняющимся на одном сервере.
Успех платформы Windows NT, как сервера, во многом будет зависеть от разнообразия имеющихся на ней приложений. Если говорить об Unix-приложениях, то до сих пор большинство из них не перенесены на платформу NT. Система NT поддерживает библиотеку OpenGL, что позволяет легко переносить 3D-приложения из Unix, однако сервер Windows NT сейчас не содержит поддержки системы X Window, GLX или Motif. Можно отметить следующие особенности продуктов третьих разработчиков, расширяющие функциональность сервера Windows NT:
Трудоемкость переноса приложения на Windows NT зависит от его реализации, - если оно имеет архитектуру клиент-сервер, то вся работа сводится к перекомпиляции X-клиента. А вот те Unix-приложения, которые привязаны к определенной платформе (HP, IBM, SUN, DEC, SGI) или предусматривают взаимодействие клиентов, осложняют процесс переноса и могут потребовать перепроектирования. Большинство инструментальных средств переноса опираются на мобильность X Window и предоставляют соответствующие библиотеки Xlib. Однако некоторые разработчики используют собственные API. Большинство таких продуктов поддерживают SDK Microsoft Win32 либо тот или иной компилятор Си: Visual C/C++, Borland C. Более подробно вопросы портирования приложений рассмотрены в работе [1].
Компания Hummingbird - разработчик, предлагающий полную реализацию X Window System для серверов и рабочих станций Windows и NT. Семейство продуктов Exceed поддерживает разработку X-клиентов и их локальное выполнение на платформе NT. Инструментарий разработчика приложений X Window - Exceed 5 XDK, включающий в себя X-сервер, инструментальные библиотеки Xlib, Xt (Intrinsics), Xaw (виджеты Athena), Xmu (утилиты) и Xext (расширения), посредством которых и осуществляется перенос. Кроме того, поставляется OSF/Motif Toolkit, соответствующий Motif Release 1.2.1, и компилятор языка интерфейса с пользователем (UIL). С помощью OSF/Motif Toolkit разработчик может портировать X Window-приложения со стандартным графическим интерфейсом OSF/Motif. Кроме того, есть еще Exceed 3D, включающий реализацию OpenGL для системы X Window (GLX) и полный набор библиотек GLX, необходимых для разработки и портирования графических 3D-приложений на Windows NT.
Средства межплатформенного портирования широко используются и прошли хорошую обкатку на производстве. Например, корпорация Dynamics Research работает в области обслуживания сложных компьютерных систем для армии США и правительственных агентств. В ней был успешно выполнен перенос X Window-приложения объемом 35 000 строк исходного текста в NT с помощью Exceed 5-XDK.
Многопользовательский режим в NT
Следующий вопрос, весьма важный для организации сервера Windows NT, - обеспечение параллельного доступа к нему с нескольких Windows-, Unix- или VMS-клиентских машин и мэйнфреймов. Несмотря на то что NT - многозадачная операционная система, имеющая средства управления процессами и нитями процессов, она не является многопользовательской и содержит лишь зачатки средств множественного доступа: LPD - для совместного использования принтеров, и FTP - для передачи файлов.
Радикально улучшить ситуацию позволяют продукты WinFrame компании Citrix и WinDD (Tektronix), которые являются программным обеспечением для многопользовательского сервера приложений Windows. Базируясь на Windows NT Server, такое ПО поддерживает выполнение приложений Windows на платформе NT и визуализацию результатов на рабочих станциях Unix и X-терминалах.
Концептуально архитектура этих продуктов аналогична широко распространенному и ставшему привычным протоколу Unix/X Window. Если в качестве сервера применяется платформа Unix, а в качестве клиента - NT, то приложение X Window выполняется на хосте Unix, а для получения результатов на клиенте Windows на нем запускается X-терминал с X-сервером для управления дисплеем. При использовании WinDD и WinFrame платформы просто меняются местами.
Программное обеспечение этих систем состоит из серверной части (Сервер Приложений) и клиентской. Сервер Приложений поддерживает одновременный доступ множества пользователей, каждый из которых получает собственную копию Program Manager (технология MultiWin). Технология MultiWin позволяет поддерживать параллельную работу более 10 пользователей на одном процессоре Pentium. При входе из рабочей станции Unix в Сервер Приложений WinDD пользователь сразу получает среду рабочего стола NT. WinDD создает полную имитацию экрана ПК: все, что обычно выводится на экран ПК, выводится в окно WinDD на рабочей станции Unix. Через это окно пользователь получает полный доступ к приложениям ПК, включая аудио- и видео-приложения. Кроме того, в его распоряжении рабочий стол Unix-станции, т. е. по-прежнему доступны приложения Unix. WinDD содержит также NFS для NT.
Удаленные пользователи могут выполнять различные типы приложений, включая DOS, 16- и 32-разрядные приложения Windows и клиент-серверные программы, при этом обеспечивается полная прозрачность удаленного доступа. Расположенные на других узлах сети внешние устройства, принтеры, буферы обмена ничем не отличаются от локальных. Пользователь может производить удаление-вставку данных между локальными и удаленными приложениями, копировать файлы, перемещая их пиктограммы. Вычислительные системы с совершенно разным оборудованием становятся в определенной степени эквивалентными: даже пользователи систем DOS Intel 286 получают возможность работать с приложениями Windows 95 и NT. И WinDD, и WinFrame содержат аппарат для централизованного управления приложениями, удаленными пользователями и сетью.
Несмотря на единую концепцию, реализация WinDD и WinFrame, однако, отлична от X Window. В них используется протокол ICA и идея тонкого клиента, что дает большую производительность по сравнению с другими продуктами удаленного доступа. Все характеристики дисплея пользователя управляются клиентской частью локально, уменьшая тем самым нагрузку на сервер и сеть. Поскольку ICA реализован на системном уровне (GDI), он очень эффективен и компактен.
Заключение
Современные возможности сетевой интеграции различных платформ оставляют двоякое впечатление. С одной стороны, достаточно просто по Internet найти комплект средств, отвечающих потребностям пользователей. Но на практике оказывается, что этих средств чересчур много, а поскольку они не интегрированы друг с другом, удручает объем документации, которую надо прочитать для правильной их настройки. Прозрачность доступа, легкость централизованного администрирования - вот чего сейчас не хватает. Надеяться на что-то лучшее вряд ли стоит: такие средства, как FTP, Telnet, родились по крайней мере 10 лет назад и носят отпечаток строчного интерфейса. Однако есть основания предполагать, что основная причина трудностей кроется в самих операционных системах - недостатки их объектной организации обсуждались, например, в [2, 3].
Литература
[1] В. Коваленко. OpenNT: Unix для NT. Открытые системы, 1997, # 3.
[2] Н. Вирт. Долой "жирные" программы. Открытые системы, 1996, # 6, сс. 27-31.
[3] М. Горбунов-Посадов. Система открыта, но что-то мешает. Открытые системы, 1996, # 6, сс. 36-39.