Занятие 2. Архитектура сервера

(Продолжительность занятия 40 минут)

Internet Information Server базируется на нескольких основных компонентах, образующих «каркас» его функциональных возможностей. На этом занятии Вы познакомитесь с определяющими компонентами архитектуры сервера IIS.

 


Изучив материал этого занятия, Вы сможете:


Сервер IIS состоит из трех уровней служб и одного дополнительного компонента, объединяющего элементы, общие для всех служб. Последние совместно используются разными служебными уровнями и в совокупности обеспечивают коммуникационные возможности сервера.

Вот основные компоненты архитектуры сервера IIS:

Процесс Inetinfo

Все стандартные службы Интернета, описанные на предыдущем занятии, реализованы единым процессом — приложением информационных служб Интернета (Internet Information Services Application, Inetinfo). В дополнение к службам Интернета в состав процесса Inetinfo входят: общий пул потоков, кэш, службы протоколирования и поддержка протокола SNMP.

Поток — это наименьший исполняемый элемент процесса или, другими словами, составляющая процесса, которая фактически выполняется в каждый момент времени. Поток выполняется в пределах адресного пространства процесса и использует ресурсы, выделенные процессу. Пул потоков — это группа потоков процесса, предназначенных для выполнения конкретной операции.

Использование пула потоков — идеальный способ создания дополнительных режимов выполнения процесса. В то время как процесс обладает собственным адресным пространством, набором регистров и последовательностью выполнения, у потока есть свой набор регистров и последовательность выполнения, но он работает в общем адресном пространстве процесса. По этой причине применение дула потоков дает выигрыш в быстродействии и производительности по сравнению с организацией служб Web-сервера в виде отдельных процессов. Поток содержит:

В приведенной ниже таблице перечислены восемь возможных состояний потока.

Идентификатор состояния потока Состояние
0 Инициализация
1 Готовность
2 Выполнение
3 Дежурный режим
4 Прекращение
5 Ожидание
6 Переходный режим
7 Неопределенное

Поскольку службы HTTP и FTP выполняются в рамках одного процесса, они могут совместно использовать такие кэшированные данные, как дескрипторы файлов, учетную информацию и записи журнала.

Механизм протоколирования позволяет фиксировать обращения пользователей к Вашему Web-узлу. Это полезно для выявления прорех в защите узла или причин его недостаточной производительности. Результаты протоколирования можно записывать в файл журнала (он доступен для анализа в любой момент) либо в ODBC-совместимую базу данных для динамического анализа.

Если Вы ведете мониторинг сети средствами протокола SNMP, для отслеживания работы Web-узла можно применять информационные базы данных управления средствами SNMP (Management Information Bases, MIBs), входящие в состав IIS.

Для мониторинга работы служб WWW и FTP Вашего сервера средствами SNMP- мониторов сторонних производителей воспользуйтесь MIB-файлами, включенными в состав пакета инструментальных средств разработки (он находится на компакт-диске Internet Information Server).

 


Примечание IIS поддерживает только SNMP-мониторинг, но не конфигурирование службы SNMP.

Приложения сервера можно изолировать друг от друга. В этом случае они выполняются отдельно от процесса Web-сервера, и сбой изолированного приложения не влияет ни на работу сервера, ни на другие приложения (за исключением выполняющихся в одном процессе с приложением, вызвавшим проблему). Изолированные приложения фактически выполняются в отдельных областях памяти.

В целом изоляция приложений — плодотворная идея; при этом несколько увеличивается расход памяти, но отказ сервера из-за сбоя приложения становится куда менее вероятным.

Удаленное администрирование

Windows NT Server и IIS позволяют предоставить клиентам возможность удаленного администрирования их каталогов и виртуальных серверов на Вашем узле. Для этого клиенту понадобятся учетная запись пользователя Windows NT и Web- обозреватель с поддержкой JavaScript и кадров; кроме того, учетная запись должна иметь соответствующие полномочия.


Примечание Для удаленного администрирования Web-узла не обязательно иметь доступ к учетной записи Administrator— соответствующие полномочия можно предоставить любой учетной записи пользователя Windows NT.

После этого Вы должны предоставить пользователям необходимые разрешения для соответствующих виртуальных серверов и каталогов с тем, чтобы пользователи имели право изменять свои (и только свои) Web-узлы. Поскольку полномочия каждого клиента распространяются только на выделенный ему виртуальный сервер, узлы остальных клиентов на Вашем сервере не будут затронуты изменениями (или ошибками), совершенными каким-либо пользователем на его виртуальном узле.

Если клиент намерен работать с динамическими Web-страницами, включающими ActiveX-компоненты или приложения интерфейса прикладного программирования Интернет-сервера (Internet Server Application Programming Interface, ISAPI), можете воспользоваться средствами изоляции процессов IIS. Тем самым сценарии и приложения каждого виртуального сервера будут изолированы, а их ошибки не повлияют на другие Web- узлы, размещенные на Вашем сервере. Кроме того, этот подход обеспечит защиту Вашего сервера в случае отказа такого приложения.

Коннекторы

Коннекторы IIS чаще всего реализуются в виде расширения — библиотеки динамической загрузки (DLL) интерфейса ISAPI, которая обеспечивает канал связи между IIS и конкретной службой.

Internet Information Server поддерживает следующие коннекторы.

Системные сервисы Windows NT

Системные сервисы Windows NT образуют нижний уровень архитектуры IIS. Данные на этот уровень поступают от TCP/IP и покидают его через Windows Sockets.

TCP/IP — это набор сетевых протоколов, поддерживающих обмен данными через взаимосвязанные сети, образованные компьютерами с разными операционными системами и различной архитектуры.

Windows Sockets (WinSock) — Windows-реализация широко распространенного интерфейса сокетов, созданного в Калифорнийском университете (Беркли, США). Windows Sockets служит интерфейсом между приложениями и транспортным протоколом, действуя как двунаправленный канал для обмена информацией. В настоящее время используется версия WinSock 2.0.

Службы Web

Средний уровень архитектуры IIS составляют службы Web. Здесь сердцевина функциональных возможностей IIS.

Асинхронная очередь потоков (Asynchronous Thread Queue, ATQ), реализованная в виде библиотеки Isatq.dll, отвечает за поддержку потоки ввода/вывода для обработки операций обмена. Средства ATQ позволяют в случае необходимости ограничить полосу пропускания, занимаемую Web-узлом. Кроме того, асинхронная очередь потоков постоянно отслеживает конкретные ТСР-сокеты. Компонент Infocom.dll управляет следующими функциями IIS:

Компонент FTP обрабатывает все FTP-запросы, а компонент WWW — все запросы WWW.

Isadmin — еще один компонент Web-служб. Он реализует модель распределенных компонентных объектов (Distributed Component Object Model, DCOM) для метабазы. Isadmin — это шлюз для администрирования служб IIS.

Компоненты SMTP, NNTP и РОРЗ поддерживают электронную почту и службу новостей IIS. Каждый из них реализован в виде библиотеки .dll и может существовать в нескольких экземплярах.

Microsoft ISAPI — альтернатива интерфейсу CGI. ISAPI выгодно отличают малый объем служебных данных, быстрая загрузка, масштабируемость и эффективное использование ресурсов. Расширения ISAPI хорошо подходят для обработки запросов и динамической генерации специализированных данных.

Еще один тип ISAPI-приложения — ISAPI-фильтр, который применяется для уведомления о различных событиях в ходе обработки HTTP-запросов. При первой загрузке ISAPI-фильтр, представляющий собой библиотеку DLL, извещает сервер о типе HTTP-событий, который он будет обрабатывать. В дальнейшем, получив уведомление о событии, фильтр может выполнить предусмотренные действия (например, запустить CGI-сценарий или ISAPI-приложение). Высокая эффективность ISAPI-фильтров позволяет применять их для решения широкого спектра задач, включая:

CGI-компонент IIS обеспечивает поддержку CGI — серверного интерфейса, применяемого для запуска различных служб и приложений. Вместе с CGI поставляется набор интерфейсов, позволяющих Web-серверу взаимодействовать с ПО, выполняющемся на том же компьютере. CGI-приложения расширяют возможности Web-сервера, выполняя несвойственные ему функции.

Прикладные службы

Уровень прикладных служб — вершина архитектуры IIS. На этом уровне реализованы средства расширения возможностей IIS, в том числе ASP и Index Server. Вся информация попадает на прикладной уровень (и покидает его) через диспетчер - Web-приложений (Web Application Manager, WAM), реализованный в виде файла Wam.dll. WAM располагается непосредственно над уровнем Web-служб и выполняет следующие функции:

ISAPI — это оптимизированный для работы в среде Windows NT серверный интерфейс запуска различных служб.

ASP-компонент прикладного уровня реализует функциональные возможности активных страниц сервера.

Index Server поддерживает функции индексирования и поиска информации в файлах на сервере IIS. Он реализован в виде отдельной библиотеки DLL интерфейса ISAPI. Объекты Index Server доступны и из активных страниц.

Компонент HTTP ODBC поддерживает сценарии коннектора баз данных (Internet Database Connector, IDC). IDC-сценарии применяются для динамического создания Web-страниц на основе информации, хранящейся в ODBC-coвместимых базах данных.

 


Примечание Доступ к БД и динамическое создание Web-страниц посредством ASP эффективнее, нежели с помощью IDC-сценариев.

Компонент SSI позволяет серверу IIS включать текст, графику и другую информацию в HTML-страницу непосредственно перед передачей ее пользователю. Средствами SSI на страницу можно добавить, например, дату и время создания, сведения об авторских правах или форму, которую клиент должен заполнить и вернуть. Использование SSI для включения информации в файлы особенно удобно для вставки текста или графики, повторяющихся во множестве файлов — вместо ввода одних и тех же данных в каждый файл вручную, одной командой SSI Вы укажете Web-серверу загрузить нужный файл. Допустимо вложение команд SSI.

Web-сервер выполняет SSI-директивы в ходе обработки HTML-страниц. Обнаружив SSI-директиву, Web-сервер включает содержимое указанного в ней файла непосредственно в HTML-страницу. Если включаемый файл, в свою очередь, также содержит SSI-директиву, то вставляется и следующий файл.

Резюме

Архитектуру IIS формируют четыре основных компонента:




Сайт создан в системе uCoz