- •Что такое процесс?
- •Адресное пространство
- •Набор ресурсов
- •Объект-процесс
- •Что такое поток?
- •Многозадачность и мультипроцессорная обработка
- •Многопоточность
- •Объект-поток
- •История
- •Опорная модель osi
- •Встроенная сетевая поддержка
- •Сетевые api
- •Разрешение имен
- •Встроенные сетевые компоненты
- •Открытая архитектура
- •Доступ пользовательского режима к удаленным файловым системам
- •Транспортные протоколы
- •Среда ndis для сетевых драйверов
- •Среда распределенных приложений
- •Удаленный вызов процедур
- •Именованные каналы
- •Корпоративные сети и распределенная защита
Именованные каналы
Первоначально именованные каналы (named pipes) разрабатывались Microsoft в качестве интерфейса высокого уровня к NetBIOS. NetBIOS выполняет для сетевых приложений ту же функцию, что и BIOS для MS-DOS — абстрагирует их от оборудования. Таким образом, он является низкоуровневым средством сетевых коммуникаций. Именованные каналы предоставляют более абстрактный (и удобный) сетевой интерфейс. Вместо того, чтобы иметь дело с маршрутизацией, пересылкой данных и т. д., программист, использующий именованные каналы, может просто открыть канал и поместить в него данные. Пользователь именованного канала открывает его и считывает данные. Передача данных между компьютерами выполняется автоматически, и один вызов именованного канала эквивалентен нескольким операциям на уровне транспорта.
В Windows NT именованные каналы реализованы в виде драйвера файловой системы именованных каналов — псевдофайловой системы, хранящей данные канала в памяти и выдающей их по запросу. При обработке локального запроса к именованному каналу и при приеме запроса к нему от удаленного компьютера она работает как обычная файловая система.
Когда процесс использует именованный канал с именем UNC (с сетевым именем), обработка выполняется так же, как и для других запросов к удаленным "файлам". Запрос перехватывается драйвером MUP и направляется редиректору, отвечающему за данную сеть. Схема обработки запросов к локальным и удаленным именованным каналам показана на рис. 9-18.
Подобно файлам, именованные каналы представлены в Windows NT файловыми объектами и работают под управлением тех же механизмов защиты, что и другие объекты исполнительной системы NT. Когда локальный поток пытается открыть именованный канал, запрашиваемые потоком права доступа проверяются в соответствии с ACL, связанным с файловым объектом именованного канала. Если запрашиваемые права не совпадают с данными ACL, то доступ запрещается. Следовательно, средство именованных каналов содержит встроенную защиту. Кроме того, оно позволяет одному процессу принимать на себя атрибуты защиты другого процесса. Такая возможность называется имперсонацией (impersonation), она позволяет, например, подсистеме выступать в образе клиентского процесса при открытии удаленного именованного канала.
Поскольку именованные каналы могут располагаться как на локальных, так и на удаленных машинах, они предоставляют средства коммуникации и совместного использования данных для клиентских и серверных процессов распределенного приложения. Такое средство коммуникации между процессами скрывает от приложения межмашинную передачу данных. Под слоем своего API именованные каналы используют для передачи данных один из транспортов нижнего уровня.
Рис. 9-18. Работа именованных каналов на клиентской стороне.
В отличие от RPC, именованные каналы реализуют модель ввода-вывода и удобны для передачи потоков данных между процессами.
Средство RPC может работать поверх большого количества транспортов, используя механизмы защиты разных типов. Однако при работе по сети LAN Manager средство RPC использует в качестве сетевого транспорта именованные каналы. Благодаря этому RPC может воспользоваться встроенными механизмами защиты, которые Windows NT применяет к именованным каналам.
Корпоративные сети и распределенная защита.
