Использование протоколов прикладными программами для реализации распределенных приложений (обмен данными по сети)

MPR

MUP

Многосетевой UNC (Multiple UNC Provider, MUP) - драйвер, определяющий, к какой сети следует обратиться, когда приложение использует Win32 API ввода-вывода для открытия удаленных файлов. Этот сетевой компонент обрабатывает запросы к файлам или устройствам, содержащим имя UNC (это имя, начинающееся с символов \\, которые указывают, что данный ресурс находится в сети). Драйвер mup.sys определяет, какой локальный редиректор распознает удаленный ресурс.

Драйвер mup.sys активизируется, когда приложение пытается открыть удаленный файл или устройство, задавая имя UNC. Получив подобный запрос, подсистема Win32 заменяет символы \\ строкой \DosDevices\UNC и передает запрос исполнительной системе. Объект \DosDevices\UNC является символической связью на объект-устройство \Device\mup, создаваемый драйвером mup.sys. Драйвер mup.sys является довольно простым драйвером и реализует диспетчерские функции create/open. После получения запроса на открытие файла, драйвер mup.sys посылает особые контрольные пакеты каждому редиректору, зарегистрированному драйвером mup.sys. Этим запросом mup.sys спрашивает редиректор, может ли тот распознать оставшуюся часть имени UNC. Если да, то редиректор должен информировать драйвер mup.sys о числе символов в строке имени UNC, которые он распознает как уникальный идентификатор удаленного ресурса. Драйвер mup.sys кеширует эту часть строки имени, и в последствии посылает имена, начинающиеся с данной подстроки сразу этому редиректору.

Для того чтобы редиректор мог взаимодействовать с драйвером mup.sys, редиректор должен зарегистрировать себя для драйвера mup.sys во время инициализации, и в дальнейшем отвечать на запросы о распознавании имени, выдаваемые драйвером mup.sys. Редиректор, который первым зарегистрировал себя для драйвера mup.sys, имеет больший приоритет. Этот приоритет определяет, какой редиректор будет обрабатывать запрос, в том случае, если более одного редиректора распознает имя удаленного ресурса.

После того, как какой-нибудь редиректор распознает имя удаленного ресурса, mup.sys подставляет в начало строки имени удаленного ресурса имя объекта-устройства редиректора и помещает эту строку в файловый объект, соответствующий этому ресурсу. С этого момента, запросы к этому удаленному ресурсу идут к редиректору напрямую, и mup.sys больше не вовлекается.

Не всегда приложение может использовать имена формата UNC в запросах в/в. Для таких случаев существует компонент MPR, определяющий два множества функций. Одно множество - независящий от сети интерфейс API WNet, предоставляемый MPR всем Win32 приложениям, желающим использовать сервисы сетевых редиректоров. Этот интерфейс позволяет сетевым приложениям запрашивать в стандартной форме выполнение редиректором некоторой общей функциональности, без необходимости разработки специфичного кода для этого редиректора. (посредством сетевых провайдеров).

Другое множество функций – интерфейс сетевого доступа (называемый также Network Provider API или Service Provider Api - SPI). Он служит для подключения специальных компонент сетевого доступа (сетевых провайдеров).

Когда прикладная программа вызывает некоторую функцию WNet, MPR определяет подходящий для выполнения соответствующих действий редиректор и передает ему запрос. Поскольку каждый редиректор создается различными разработчиками и может иметь различный интерфейс взаимодействия, как раз и необходим сетевой провайдер. Он предоставляется разработчиком редиректора и устанавливается одновременно с ним.

Компонент сетевого доступа (сетевой провайдер) является программным модулем (DLL), разработанным для работы в тесной кооперации с сетевым редиректором. Провайдер - это как бы надстройка над редиректором в виде DLL, которая позволяет компьютеру взаимодействовать с конкретной сетью. В состав программного обеспечения Windows NT входят: провайдер для сетей на базе Windows NT, провайдер шлюза (и клиента) для NetWare.

Так как TDI является относительно новым сетевым интерфейсом, и большинство приложений разработаны для использования других существующих стандартных интерфейсов, таких как NetBIOS и WinSockets, то Windows NT включает эмуляторы для этих двух популярных интерфейсов. Части уровня ядра этих эмуляторов, являющиеся драйверами файловых систем, отображают родные функции с соответствующими параметрами в одну или несколько TDI-функций, а затем вызывают соответствующие драйверы транспортных протоколов через TDI.

Интерфейс Winsock может использовать в качестве протокола tcp/ip, NetBeui или ipx/spx.

Интерфейс NetBios может использовать в качестве протокола либо NetBeui, либо NetBT (NetBios over tcp/ip), который, соответственно, использует протокол tcp/ip.

Интерфейсы Winsock и NetBios имеют собственные API прикладного уровня, расположенные в DLL.

Кроме перечисленных драйверов, имеются также драйвера файловых систем именованных каналов (npfs – named pipes file system) и почтовых ящиков (msfs – mail slots file system).

Все сетевые файловые системы могут быть использованы редиректором для взаимодействия с удаленным компьютером.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: