- •Что такое процесс?
- •Адресное пространство
- •Набор ресурсов
- •Объект-процесс
- •Что такое поток?
- •Многозадачность и мультипроцессорная обработка
- •Многопоточность
- •Объект-поток
- •История
- •Опорная модель osi
- •Встроенная сетевая поддержка
- •Сетевые api
- •Разрешение имен
- •Встроенные сетевые компоненты
- •Открытая архитектура
- •Доступ пользовательского режима к удаленным файловым системам
- •Транспортные протоколы
- •Среда ndis для сетевых драйверов
- •Среда распределенных приложений
- •Удаленный вызов процедур
- •Именованные каналы
- •Корпоративные сети и распределенная защита
Открытая архитектура
Так как сетевой сервер встроен в Windows NT, можно решить, что он жестко "зашит", и на этом остановиться — но это не так. Определенная цель "включай и работай" требует от Windows NT способности подключаться к разнообразным сетям. В связи с этим возможна не только динамическая загрузка и выгрузка редиректора, сервера и драйверов транспортов, но и одновременное выполнение различных компонентов этого типа.. Windows NT поддерживает сети, отличные от LAN Manager, несколькими способами:
• Она обеспечивает доступ к иным, чем Microsoft, файловым системам для подключения ресурсов и просмотра сети, а также ввод-вывод в удаленные файлы и устройства через общие API Win32 (API WNet).
• Она допускает одновременную загрузку нескольких драйверов протоколов и предоставляет редиректорам общий интерфейс для обращения к этим драйверам.
• Она предоставляет драйверам сетевых карт интерфейс и среду (NDIS 3.0) для доступа к драйверам транспортов и обеспечения переносимости на будущие системы MS-DOS.
Доступ пользовательского режима к удаленным файловым системам
API ввода-вывода и WNet Win32 предоставляют приложениям пользовательского режима два способа доступа к файлам (и другим ресурсам) на удаленных системах. Оба этих API для доступа к сети используют возможности редиректора. В систему могут быть загружены и дополнительные редиректоры для доступа к сетям других типов. Рассмотрим программное обеспечение которое решает, какой редиректор вызвать для обработки запроса на удаленный ввод-вывод. За это ответственны следующие компоненты:
• Маршрутизатор многосетевого доступа (multiple provider router, MPR) Это DLL, определяющая, к какой сети следует обратиться, когда приложение использует Win32 API WNet для просмотра удаленной файловой системы.
• Многосетевой UNC (multiple UNC provider, MUP). Драйвер, определяющий, к какой сети следует обратиться, когда приложение использует Win32 API ввода-вывода для открытия удаленных файлов.
Маршрутизатор многосетевого доступа для API WNet
Функции WNet Win32 позволяют приложениям (включая Windows File Manaeer) подключаться к сетевым ресурсам, таким как файлы и принтеры, а также просматривать содержимое удаленных файловых систем любого типа Так как этот API предназначен для работы с различными сетями и по разным протоколам то должно присутствовать некоторое программное обеспечение для корректной посылки запроса по сети и правильной интерпретации результатов получаемых от удаленного сервера. Программное обеспечение, отвечающее за выполнение этой задачи, показано на рис. 9-9.
Компонент сетевого доступа (provider) - это программный компонент позволяющий Windows NT выступать в качестве клиента некоторого удаленного сервера. Среди операций, выполняемых встроенным компонентом сетевого доступа WNet, можно назвать установление и разрыв сетевого соединения удаленную печать и передачу данных по сети. В его состав входят DLL, сервис рабочей станции и встроенный редиректор. От других изготовителей сетей требуется предоставить только DLL и редиректор.
Когда приложение вызывает некоторую функцию WNet, этот вызов попадает непосредственно в DLL маршрутизатора многосетевого доступа (MPR). MPR принимает вызов и определяет, через какой из компонентов сетевого доступа WNet можно осуществить ДОСТУП к данному ресурсу. Все DLL компонентов сетевого доступа , расположенные ниже MPR, предоставляют набор стандартных функций,
Рис. 9-9. Использование нескольких компонентов сетевого доступа.
который называется интерфейсом сетевого доступа, (provider interface). Данный интерфейс позволяет MPR определить, к какой сети пытается обратиться приложение и направить вызов соответствующему компоненту сетевого доступа WNet.
Когда MPR вызывается для подключения к удаленному сетевому ресурсу функцией API WnetAddConnection(), он просматривает реестр конфигурации, чтобы определить, компоненты доступа для каких сетей загружены. Далее он опрашивает их в том порядке, в каком они перечислены в реестре, пока либо один из них не распознает сетевой ресурс, либо все они не будут опрошены (порядок опроса можно также изменить путем редактирования базы данных реестра).
Функция WNetAddConnection() может также назначить букву диска удаленному ресурсу. В этом случае она направляет вызов соответствующему поставщику сети. Тот, в свою очередь, создает объект-символическую связь, который отображает данную букву на редиректор (т. е. на драйвер удаленной файловой системы) для данной сети. На рис. 9-10 показано, как имена сетевых ресурсов вставляются в пространство имен диспетчера объектов NT.
Рис. 9-10. Разрешение имени сетевого ресурса.
Подобно встроенному редиректору, другие редиректоры тоже создают объект-устройство в пространстве имен диспетчера объектов во время своей загрузки и инициализации. Затем, когда WNet или другой API обращается к диспетчеру объектов для открытия ресурса, расположенного на другой сети, диспетчер использует объект-устройство как точку входа в удаленную файловую систему. Он вызывает метод разбора диспетчера ввода-вывода, связанный с объектом-устройством, для поиска драйвера файловой системы редиректора, который может обработать данный запрос.
Многосетевой UNC для файлового ввода-вывода Win32
Многосетевой UNC (MUP) — это сетевой компонент, сходный с MPR. Он обрабатывает запросы к файлам или устройствам, содержащие имя UNC (это имена, начинающиеся с символов \\, которые указывают, что данный ресурс находится в сети). MUP, подобно MPR, определяет, какой локальный редиректор распознает удаленный ресурс.
Рис. 9-11. Многосетевой UNC.
В отличие от MPR, MUP — это драйвер NT (загружаемый при запуске системы), который выдает запросы драйверам нижнего уровня, в данном случае редиректорам, как показано на рис. 9-11.
Драйвер MUP активизируется, когда приложение пытается открыть удаленный файл или устройство, задавая имя UNC (а не переназначенную букву диска, как описывалось выше). Получив подобный запрос, подсистема Win32 добавляет переданное в запросе имя к строке \DosDevices\UNC, после чего вызывает для открытия файла диспетчер ввода-вывода. Указанная строка является именем символической связи, которая разрешается в \Device\Mup — объекте-устройстве, представляющем драйвер MUP, как показано на рис. 9-12.
Драйвер MUP принимает данный запрос и асинхронно посылает IRP каждому зарегистрированному редиректору. Затем он ждет, пока какой-нибудь из них не распознает имя ресурса и не ответит. Когда редиректор распознает имя, он указывает, какая часть имени для него уникальна. Например, если именем является строка \\HELENC\PUBLIC\insicie\scoop.ctoc, то редиректор Windows NT распознает и объявляет своей подстроку \\HELENC\PUBUC. Драйвер MUP кэширует эту информацию и впоследствии посылает имена, начинающиеся с данной подстроки, сразу редиректору Windows NT, пропуская стадию "опроса". Кэш драйвера MUP обладает средством тайм-аута,
Рис. 9-12. Разрешение имени UNC.
так что если строка не используется в течение некоторого периода времени, то ее связь с данным редиректором удаляется.
Если более одного редиректора признает ресурс своим, то MUP обращается к списку редиректоров в конфигурационном реестре, чтобы определить, какой из них имеет приоритет. Порядок записей в списке редиректоров можно изменить путем редактирования базы данных реестра.
Транспортные протоколы. Среда NDIS для сетевых драйверов.
