Internet Information Services 6.0
Internet Information Services WMI Provider
Средства управления метаданными
Обработка очередей запросов на уровне ядра
Изменения в модели программирования и в обслуживании приложений
Microsoft Internet Information Services (Internet Information Services) представляет собой Web-сервер, входящий в состав операционных систем Windows 2000 и Windows XP и ныне широко используемый для создания современных Web-решений. В настоящей статье мы рассмотрим основные особенности Microsoft Internet Information Services версии 6.0 — составной части ожидаемой в этом году операционной системы Windows .NET Server.
оворя о современном состоянии и тенденциях развития Internet, нельзя не отметить, что в течение последних нескольких лет из распределенного и в целом неупорядоченного хранилища статических ресурсов, таких как Web-страницы, он не только превратился в средство реализации и поддержки самых разных деловых процессов, но и инициировал появление некоторых из них, неизвестных и недоступных ранее. В числе последних стоит выделить разнообразные виды электронной коммерции, реализованной с помощью приложений типа B2C (Business-to-Consumer) — Web-сайтов, ориентированных на полноценное торговое обслуживание клиентов, приложений типа B2B (Business-to-Business), осуществляющих кооперацию между различными предприятиями и интеграцию корпоративных приложений и данных, всевозможные виды внутрикорпоративного документооборота, вертикальные, горизонтальные и корпоративные порталы, аренду приложений у провайдеров подобных услуг.
Приложения, реализующие и поддерживающие бизнес-процессы подобного класса, предъявляют очень высокие требования к масштабируемости, безопасности, надежности, доступности и эффективности работы средств управления Web-серверами. Именно поэтому в последнее время наблюдается стремительное развитие продуктов подобного класса, и Internet Information Services не являются исключением, что подтверждается данными, приведенными в таблице.
Отметим, что обсуждаемая в данной статье шестая версия Internet Information Services — это первая версия данного Web-сервера, существующая и для 32-разрядной, и для 64-разрядной версии Windows. Ниже мы более подробно расскажем о ее отличительных особенностях и преимуществах использования по сравнению с предыдущей версией.
Администрирование
ак и в предыдущей версии Internet Information Services, большая часть задач администрирования решается в шестой версии с помощью IIS Snap-in (модуля расширения Microsoft Management Console (MMC)). В иерархии объектов Internet Information Services отображаются FTP- и Web-сайты, пулы приложений (при этом предоставляется возможность создания новых сайтов и пулов), а также виртуальный SMTP-сервер. О пулах приложений мы расскажем чуть ниже.
Удаленное администрирование
Поскольку число пользователей Internet за последние годы значительно возросло, Web-серверам требуются средства, позволяющие создавать масштабируемые Web-приложения путем распределения нагрузки по нескольким серверам и создания так называемых Web-ферм, состоящих из нескольких Web-серверов, обслуживающих одну и ту же задачу. Для управления подобными Web-фермами требуются средства удаленного администрирования, и такие средства в Internet Information Services 6.0 существуют. В частности, для удаленной установки Internet Information Services существует как минимум три способа: воспользоваться MMC и Internet Information Services Snap-in, осуществить удаленное администрирование с помощью специально предназначенного для этой цели приложения с Web-интерфейсом или применить Terminal Services.
Internet Information Services WMI Provider
Windows 2000 предоставила новые средства конфигурации сервера и доступа к сведениям о конфигурации и производительности — Windows Management Instrumentation (WMI). Для использования возможностей WMI в состав Internet Information Services 6.0 включен WMI-провайдер, предоставляющий ряд программных интерфейсов для администрирования Web-сервера с применением WMI и по функциональности схожий с соответствующим ASDI-провайдером.
Сценарии администрирования
В состав Internet Information Services 6.0 входит несколько стандартных сценариев администрирования на языке VBScript, использующих WMI-провайдер и реализующих наиболее часто встречающиеся задачи, такие как создание, удаление, запуск и остановка Web-сайтов и FTP-сайтов, создание и удаление виртуальных каталогов, экспорт и импорт сведений о конфигурации Internet Information Services в XML-файлы, резервное копирование и восстановление метаданных.
Средства управления метаданными
Администрирование Web-сайта включает такие действия, как создание виртуальных каталогов, страниц для отображения сообщений об ошибках и их обработки, правил доступа к тем или иным приложениям, каталогам и ресурсам. Сведения о структуре каталогов и правилах безопасности, называемые также метаданными Internet Information Services (Internet Information Services metabase), в прежних версиях этого продукта хранились в двоичном файле. Internet Information Services 6.0 сохраняет метаданные в XML-документах (файлы METABASE.XML со сведениями о конфигурации и MBSCHEMA.XML со значениями по умолчанию). При запуске Internet Information Services 6.0 эти XML-файлы считываются в память, а затем периодически сбрасываются на диск с целью сохранения изменений.
Хранение метаданных в формате XML имеет ряд преимуществ по сравнению с прежним способом. В частности, восстановление поврежденных метаданных теперь существенно упрощено, равно как и их просмотр, а время, необходимое на считывание метаданных в процессе загрузки Internet Information Services, значительно уменьшилось. При этом метаданные совместимы с Active Directory Service Interfaces (ADSI) и доступны с помощью самых разнообразных способов.
Для программного доступа к метаданным применяются Admin Base Objects (ABO) — COM-объекты, предоставляющие интерфейс к данным о конфигурации Internet Information Services, а для сохранения метаданных на диск используется Metabase Storage Layer. Сохранение данных на диск осуществляется при остановке Internet Information Services, при программном вызове соответствующего метода и при наличии определенного количества изменений в метаданных в течение определенного времени (обычно нескольких минут).
Internet Information Services 6.0 сохраняет историю изменений метаданных (metabase history), помещая копии файла metabase.xml в особый каталог (по умолчанию — %windir%\system32\inetsrv\history) и специальным образом нумеруя их версии так, чтобы можно было осуществить возврат метаданных к какому-либо предшествующему состоянию.
Метаданные Internet Information Services 6.0 можно импортировать и экспортировать, что позволяет легко делать клоны сайтов или перемещать их, а также создавать резервные копии метаданных. В первом случае можно экспортировать часть метаданных, в зависимости от решаемой задачи.
Изменения в архитектуре
отличие от программного обеспечения для персональных компьютеров, которое обычно модифицируется раз в один-два года, содержимое Web-сайтов изменяется гораздо чаще, поэтому цикл его разработки короток, и не всегда при этом возможно осуществить полноценное тестирование приложений. Вот почему часть функциональности, связанной с надежностью, имеет смысл перенести из Web-приложения на управляющий им сервер. Именно это и было сделано в Internet Information Services 6.0 — данный сервер автоматически обнаруживает утечку памяти, ошибки доступа к памяти, другие ошибки времени выполнения приложений, обрабатывает их и продолжает выполнять приложение.
Internet Information Services также может при необходимости останавливать и запускать процессы, продолжая при этом обслуживать клиентские запросы. Для этой цели Internet Information Services 6.0 предоставляет средства изоляции приложений и управления процессами.
Изоляция рабочих процессов
Принципиальная идея, положенная в основу изоляции рабочих процессов Internet Information Services 6.0, сводится к выделению различных Web-приложений в отдельные пулы приложений. Эти пулы содержат набор приложений, разделяющих один или более рабочих процессов; при этом сами пулы изолированы друг от друга так же, как обычные процессы Windows, поэтому приложения из разных пулов не оказывают влияния друг на друга. Пул, содержащий несколько рабочих процессов, обслуживающих клиентские запросы, называется Web garden. Такие пулы удобно применять при наличии нескольких процессоров — при конфигурации этого пула есть возможность указать, какие именно из процессоров данного сервера он может использовать. Это позволяет существенно повысить масштабируемость и доступность приложений — даже стопроцентная загрузка части процессоров обработкой запросов от клиентских приложений одного из пулов никак не повлияет на остальные процессоры и на их способность обрабатывать клиентские запросы, обслуживаемые другими пулами, а наличие нескольких рабочих процессов при нескольких процессорах позволяет обслуживать одновременно намного больше запросов, чем с помощью одного рабочего процесса.
Следует обратить внимание на то, что клиентские запросы могут также приниматься для обработки, если соответствующий рабочий процесс еще не запущен — в этом случае Internet Information Services 6.0 запустит его по требованию клиента. Это позволяет сэкономить значительное количество ресурсов, необходимых для поддержания рабочих процессов.
Отметим, что возможность изоляции процессов весьма принципиальна, если вы пользуетесь услугами провайдеров сервисов приложений или услугами хостинга — если ваш провайдер использует Internet Information Services 6.0, вероятность того, что ваши приложения подвергнутся сбоям из-за некорректного поведения приложений других клиентов этого же провайдера, будет практически нулевой.
Обработка очередей запросов на уровне ядра
Помимо изоляции приложений, Internet Information Services 6.0 поддерживает запросы на уровне ядра. Служба HTTP Internet Information Services 6.0 (http.sys) получает клиентские HTTP-запросы и реализует кэш URI-откликов. Благодаря наличию кэша, HTTP-запросы обрабатываются на уровне ядра операционной системы, что заметно повышает производительность. Для каждого пула приложений создается собственная независимая очередь запросов. При аварийном завершении какого-либо рабочего процесса Internet Information Services создает новую копию процесса, что позволяет ему продолжать обрабатывать запросы пользователей.
При наличии пулов приложений, изоляции рабочих процессов и обработки запросов на уровне ядра разница между внутрипроцессными и внепроцессными Web-приложениями становится несущественной — в любом пуле возможна поддержка ISAPI-приложений и приложений в виде исполняемых файлов; при этом ISAPI-приложения фактически изолированы от адресного пространства самого Web-сервера.
Взаимодействие между пулом приложений и обработкой очередей запросов на уровне ядра осуществляется с помощью компонента Web Administration Service (WAS). В отличие от Internet Information Services 5.0, где главный процесс Web-сервера не был изолирован от процессов приложений, что иногда приводило к сбоям в функционировании Web-сервера в случае сбоя в Web-приложении, в Internet Information Services 6.0 и Web Administration Service, и служба HTTP http.sys изолированы от Web-приложений и не подвержены влиянию возникающих в них ошибок. Иными словами, в целом подобная архитектура приложений характеризуется существенно большей надежностью.
Безопасность
овые средства безопасности данных Internet Information Services 6.0 включают возможность применения так называемых провайдеров сервисов шифрования независимых производителей (Cryptographic Service Provider, CSP), представляющих собой дополнительные устройства-ускорители, аппаратно реализующие криптографические функции, возможность конфигурации идентификации рабочих процессов с целью предотвращения их доступа к ресурсам операционной системы, а также возможность отключения неизвестных расширений.
С помощью Internet Information Services Security Lockdown Wizard администраторы Web-сайтов могут подключать и отключать те или иные функциональные возможности Web-сервера в соответствии с решаемыми задачами. Например, можно отключить всю возможную функциональность, такую как Active Server Pages или Front Page Server Extensions, кроме отображения статического содержимого, такого как файлы *.htm, *.jpg, *.gif (такова, в частности, конфигурация Internet Information Services 6.0 по умолчанию).
Отметим, что по умолчанию Internet Information Services 6.0 выполняется с минимальными привилегиями (как пользователь с правами NetworkService), что снижает риск его использования в качестве инструмента для вероятных несанкционированных действий.
Internet Information Services 6.0 способен осуществлять изоляцию пользователей FTP-сайтов путем выделения им отдельных каталогов, что позволяет избежать несанкционированного доступа к файлам и документам, содержащимся на FTP-сайтах. Внутри своего корневого каталога пользователь может создавать любую структуру каталогов и размещать любые файлы.
Кроме того, в Internet Information Services 6.0 появилась возможность удаленного управления сертификатами SSL.
Изменения в модели программирования и в обслуживании приложений
Internet Information Services 6.0 сохранилась поддержка моделей программирования ASP и ISAPI. Помимо возможностей, существовавших в прежней версии, появилось несколько новых, дополнительных возможностей, в том числе:
- перенаправление запросов к другому URL из ISAPI-приложений;
- создание специальных приложений-интерсепторов, перехватывающих запросы для их модификации, шифрования данных, перенаправления или отказа в выполнении;
- объединение нескольких буферов с результатами запросов в общий отклик, направляемый клиенту;
- поддержка генерации сообщений об ошибке не на уровне ISAPI-приложения, а на уровне сервера;
- поддержка Unicode в ISAPI-приложениях;
- доступность служб компонентов (COM+) из ASP-приложений;
- использование разных версий одних и тех же библиотек или COM-объектов из ASP-приложений;
- поддержка различных конфигураций объектов COM+ для разных пользователей;
- возможность использования многопоточных апартаментов в ASP-приложениях.
Говоря об обслуживании приложений, отметим следующие особенности:
- в Internet Information Services 6.0 шаблоны ASP-файлов, являющиеся результатом компиляции, кэшируются не только в памяти, как это было в прежней версии Internet Information Services, но и на жестком диске, что позволяет сэкономить ресурсы, требующиеся для их повторной компиляции;
- при необходимости кэширования большого объема данных Internet Information Services 6.0 способен поддерживать кэш объемом до 64 Гбайт. Если же конкретному Web-приложению требуется объем виртуальной памяти, превышающий 2 Гбайт, то возможно его масштабирование с помощью вышеописанного создания нескольких рабочих процессов, обслуживающих данное приложение.
Заключение
настоящей статье мы рассмотрели особенности Internet Information Services 6.0, в частности изменения в архитектуре, моделях программирования, возможностях администрирования, средствах управления безопасностью.
Мы убедились в том, что внесенные изменения серьезно повышают надежность, доступность, масштабируемость и производительность Internet Information Services, и это позволяет сделать их основой для корпоративных решений, к надежности, производительности и безопасности которых предъявляются весьма жесткие требования.
КомпьютерПресс 6'2002