СЕТЕВОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ОБЩЕГО НАЗНАЧЕНИЯ
Задача сетевого программного обеспечения состоит в приеме запроса (обычно это запрос на ввод-вывод) от приложения на одной машине, передаче его на другую машину, выполнения запроса на удаленной машине и возврате результата на первую машину. Таким образом, сетевое ПО может быть выполнено как в виде отдельных модулей (устанавливаемых на ЭВМ при необходимости), так и в виде компонентов самой ОС (возможно, опциональных - т.е. выбираемых при инсталляции ОС). Фактически эта последовательность и была повторена в ходе развития сетевого ПО; в настоящее время фактически все ОС включают штатные компоненты сетевого ПО.
Начало истории сетей Microsoft было положено в MS-DOS версии 3.1; в ней к файловой системе FAT были добавлены необходимые расширения блокировки файлов и записей, которые обеспечили возможность работы с файлами MS-DOS сразу нескольким пользователям. Одновременно с выходом в 1984 году MS-DOS версии 3.1 Microsoft выпустила продукт под названием
Microsoft Networks, получивший неформальное название MS-NET. MS-NET установил de-facto ряд традиций, которые позже были перенесены в Microsoft LAN Manager (несмотря на амбициозное наименование Microsoft LAN Manager ‘сетевой ОС’, на самом деле это набор сложных про- грамм и драйверов, добавляющих сетевые возможности к существующим ОС, в частности, к MS-DOS, OS/2 и UNIX, а потом и к Windows’NT). Например, в случае выдачи пользователем или приложением запроса на ввод-вывод для удаленного файла, каталога или принтера система MS-NET определяла эту ситуацию и направляла запрос компоненту MS-NET, называвшемуся редиректор (redirector). Редиректор MS-NET принимал запрос и посылал (перенаправлял - redirect) его на удаленный сервер. Другой особенностью MS-NET являлся встроенный протокол SMB (Server Message Block), являющийся высокоуровневой спецификацией фор- мата посылаемых по сети сообщений. Для посылки имеющих формат SMB запросов на другой компьютер используется API (Application Program Interface) под названием интерфейс NetBIOS (NetBIOS interface); впоследствие протокол SMB и API NetBIOS были использованы в многочисленных сетевых продуктах, в том числе и в Windows’NT.
Последнее, что было реализовано в MS-NET - это сетевой сервер (network server) - находящееся на удаленном компьютере программное обеспечение, превращающее его в выделенный файл-сервер (или сервер печати). Это ПО просто контролировало сетевое соединение и ждало поступления по нему данных в формате SMB, затем оно распаковывало их, определяло и выполняло запрашиваемую операцию (например, чтение файла), после чего посылало результат выполнения операции обратно в виде другого сообщения SMB. Система MS-NET также включала набор утилит (со своим синтаксисом командной строки) для доступа к удаленным дискам и принтерам (например, многим известны команды формата NET USE X: \\SERVER\SHARE); до сих пор начинающиеся с символов ‘\\’ имена обозначают сетевые ресурсы и называются именами единого соглашения об именовании (UNC, Uniform Naming Convention).
Серьезным шагом к интеграции сетевого ПО в ОС явилась система NetWare фирмы Novell, называемая (с большей или меньшей долей истинности) сетевой ОC. В настоящее время среда NetWare способна поддерживать рабочие станции, управляемые MS-DOS, Windows, OS/2, UNIX, Mac System 7 и др., обладает развитой системой защиты данных (например, уровень при- вилегий доступа может быть указан отдельно для каждого каталога). NetWare включает систему защиты при отказах оборудования (SFT, System Fault Tolerant) трех уровней 1. Дублирование на том же диске критических данных (особенно каталогов и таблиц распределения ресурсов). 2. Зеркальное копирование диска (использование два идентичных жестких диска - исходный диск и его зеркальную копию) и дублирование (полное дублирование всего искового оборудования - контроллера диска, кабеля, дисковода и носителя). Кроме этого, первый и второй уровни включают систему защиты данных, называемую трассировкой изменений (создание дубликата индекса базы данных до завершения транзакции). 3.
Дублирование сетевого сервера (второй сервер находится в горячем резерве и вступает в строй при аварии первого). Большинство этих использованных в NetWare компонентов системы защиты применены (и получили дальнейшее развитие) в Windows’NT. ОС NetWare включает несколько нужных в практической деятельности дополнительных компонентов сетевого ПО (например, ПО обслуживания мостов - устройств для связи локальных сетей с одинаковыми или различными методами доступа), что иногда приводится в качестве обоснования (претенциозного) наименования NetWare ‘сетевой ОС’.
Однако в системах NetWare и Windows’NT службы управления каталогами построены в соответствие с принципиально разными принципами. В NetWare 4.1 используется Netware Directory Service (NDS), позволяющая представить сеть в виде древовидной структуры, служба же управления ката- логами в сетях Windows’NT представляет сеть в виде набора доменов, состоящих в доверительных отношениях. Обе службы позволяют централизованно управлять сетью со многими серверами.
При этом пользователю, однократно зарегистрировавшемуся в сети, предоставляется возможность соединения с различными серверами. В NDS, например, удобнее просматривать все ресурсы сети, логически переносить пользователя из одной части дерева в другую, доменная же система позволяет более гибко настраивать отношения между доменами (домен может иметь как полную, так и частичную информацию о другом домене, либо вообще никакой). Поэтому для достижения универсальности и производительности часто совместно используют NetWare и Windows’NT Server; при этом NetWare используется для работы с файлами и обслуживания устройств печати, а Windows’NT - для обмена сообщениями и работы серверов приложений (на пример, СУБД) на различных приложениях.
В одной из самых распространенных OC для IBM PC-совместимых ЭВМ Windows (установленной приблизительно на 80% всех 200 млн. IBM PC в мире) сетевые компоненты встроены в саму ОС. Большинство из них написаны на языке С/С++ и выполнены в виде DLL-файлов и динамически загружаемых драйверов, что делает их частью исполнительной системы ОС. В Windows’NT применена послойная модель драйверов ввода-вывода (напоминающая естественное расположение сетевых протоколов OSI один над другим); такая структура обеспечивает модульность сетевых компонентов и создает эффективные переходы от уровня редиректора или сервера вниз к транспортным и физическим уровням сети [2,5].На рис.3.1 показана укрупненная блок-схема операционной системы Windows’NT, на рисунке видны (как общесистемные, так и сетевые) компоненты данной ОС. На рис.3.2 показано взаимодействие редиректора и сервера через протокол прикладного уровня SMB (Server Message Block); для посылки имеющих SMB-структуру данных на другой компьютер используется интерфейс NetBIOS (NetBIOS interface). Фирма Microsoft Corp. в начале 21 века выпустила основанную на ядре NT операционную систему Windows XP (реально NT’5.1), призванную заме- нить последний вариант Windows на базе ядра Windows’9x и носящий фирменную марку MILLENNIUM; ХР оснащена технологией полностью автоматической настройки ЭВМ для работы в сети, идентификации устройств стандарта Universal Plug and Play и новым упрощенным пользовательским интерфейсом в стиле WEB (что, впрочем, уже было испробовано в Windows’98 и далеко не всем ‘пришлось по вкусу’). Широко разрекламированная ОС Whistler также должна обладать всеми этими свойствами. Заметим, что всеми перечисленными возможностями Unix-подобные ОС обладают практически с самого рождения’. Таким образом, компоненты сетевого ПО, появившиеся вначале как (необязательные) дополнения и расширения существующих ОС, в современных ОС являются встроенными (пока опциональными) компонентами системного ПО.
Сетевое ПО является достаточно сложным программным обеспечением, к тому же надежность его функционирования зависит от корректности рабоРис.3.1. Блок-схема операционной системы Windows’NT (подсистемы эмуляции 16-разрядной Windows и MS-DOS условно не показаны) физической компоненты сети (сетевые карты, линии связи), поэтому важной частью сетевого ПО являются подсистема анализа показателей и поиска неисправностей в сетях. После (корректной) установки сетевых компонентов для доступа к дисковым массивам удаленных компьютеров по сети можно использовать следующую командную строку \\сетевое_имя_компьютера\локальный_путь_к_файлу\имя_файла. Другой вариант - использование удаленных дисковых систем с применением маппированных (mapping) имен дисков (отображение имен дисковых наборов в продолжение логических имен дисков данной локальной машины), при этом (с точки зрения пользователя) доступ к удаленным томам осуществляется в точности таким же образом, как и доступ к дисковым томам данной машины. Рис.3.2
Взаимодействие редиректора и сервера при сетевом взаимодействии по протоколу SMB в среде Windows’NT. Информация о некоторых ( распространенных) пакетах сетевого ПО уровня пользователя приведена ниже в разделе. Следует отметить наметившуюся в последние годы тенденцию переноса части сетевого ПО на аппаратный уровень (например, концепция ‘сетевого компьютера’ фирмы Oracle, поддержанная другими фирмами мирового уровня).