Алексей Федоров
Microsoft®
Windows Server 2008 Краткий обзор ключевьіх новинок
Специальное издание для конференции, посвященнои запуску Windows Server 2008, SQL Server 2008, Visual Studio 2008
Алексей Федоров
Microsoft® Windows Server® 2008. Краткий обзор ключевьіх новинок
Алексей
Федоров — сотрудник отдела стратегических ООО «Майкрософт Рус-> (
[email protected])
технологий
Издано по инициативе и на средства компании «Майкрософт Украйна»
Подготовлено к печати в Украине издательством «Издательская группа BHV» Свидетельство о занесений в Государственньїй реєстр субьектов издательского дела серия ДК № 175 от 13-09.2000
ISBN-13: 978-966-552-223-2
© Федоров А. Г., 2008 © Издательская группа BHV, 2008
Оглавление
Введение Платформа для вьшолнения бизнес-задач Платформа для веб-приложений Виртуализация Надежность и безопасность Ключевьіе прсимущества и основньїе причиньї перехода на Windows Server 2008 Аппаратньїе требования
9 10 11 12 12 13 14
Глава 1. Серверная операционная система. Основньїе понятия Server Manager Server Core
15 21 21
Глава 2. Основньїе новинки на уровне ядра операционной системьі Транзакционная файловая система Транзакционньїй реєстр Процессьі и потоки Изменения в сетевом стеке Boot Configuration Data
29 30 32 33 36 38
Глава 3. Управление инфраструктурой и приложениями Windows Eventing 6.0 Windows Installer 4.0 Windows PowerShell Microsoft Management Console 3.0 Windows Task Scheduler 2.0
41 43 44 45 46 47
4
Оглавление
Глава 4. Windows PowerShell. Коротко о главном
51
Знайомство с возможностями Windows PowerShell
52
Работа с файловой системой
58
Работа с реєстром
59
Доступ к процессам
61
Доступ к системному журналу
61
Доступ K W M I
63
Использование XML-файлов
64
Заключение
65
Сетевьіе ресурсьі
65
Глава 5. Windows Server 2 0 0 8 к а к сервер приложений
67
История сервера приложений
68
Сервер приложений в Windows Server 2008
68
Application Server Foundation Windows Communication Foundation Windows Workflow Foundation
69 69 70
Дополнительньїе сервисьі
71
Веб-сервер Удаленньїй доступ к сервисам СОМ+ Windows Process Activation Service
71 71 72
Net.TCP Port Sharing
72
Распределенньїе транзакции Microsoft Message Queue 4.0
72 72
Версии Windows Server 2008
Глава 6. Windows Server 2 0 0 8 к а к веб-сервер Internet Information Services 7.0 для ІТ-специалистов
73
75 76
Internet Information Services 7.0 для веб-хостеров
76
Internet Information Services 7.0 для разработчиков
77
Ключевьіе новинки в Internet Information Services 7.0 Модульная архитектура и расширяемость
78 79
Интеграция с .NET '. Средства управлення и администрирования
84 85
Диагностика и обнаружение ошибок
86
Хостинг веб-сервисов
87
Заключение
87
Оглавление Глава 7 . М е х а н и з м ь і в и р т у а л и з а ц и и в Windows Server 2 0 0 8
5
89
Виртуализация. Основньїе понятия
90
Виртуализация. Ключевьіе сценарии Консолидация серверов Обеспечение надежной работьі Динамический центр обработки данньїх Разработка и отладка приложении
92 92 92 93 93
Виртуализация. Технические подробности
93
Установка и управление виртуализацией
95
Заключение Ресурси
98 98
Глава 8. Windows Server 2 0 0 8 и совместимость приложении
99
Несовместимости, характерніше для Windows Vista и Windows Server 2008 User Account Control (UAC) Windows Resource Protection (WRP) Mandatory Integrity Control (MIC) Изменение номера версии операционной системьі Изоляция сессии 0
102 102 103 103 104 105
Несовместимости, уникальньїе для Windows Server 2008
106
Изменения в Active Directory Новьіе или измененньїе серверньїе роли Server Core Failover Clustering Windows Firewall Заключение
Глава 9. Microsoft Windows Server 2 0 0 8 . Ключевьіе вопросьі сертификации приложении
107 108 110 111 112 113
115
Программа Works with Windows Server 2008
116
Программа Certified for Windows Server 2008
119
Глава 10. Microsoft Windows Server 2 0 0 8 . Что еще нового? Средства обеспечения безопасности Защита доступа к сети
121 122 123
6
Оглавление
Сценарии защиты доступа к сети (NAP) Режим повышенной безопасности брандмауэра Windows Шифрование диска BitLocker Инфраструктура Enterprise PKI (PKIView) Служба CNG Контроллеры домена только для чтения Изоляция серверов и доменов Механизмы централизованного доступа к приложениям Службы терминалов Единый вход Удаленные приложения служб терминалов Шлюз служб терминалов (TS Gateway) Веб-клиент служб терминалов
124 125 126 126 127 128 128 129 130 131 131 131 132
Средства управления удаленными филиалами
133
Механизмы обеспечения высокого уровня доступности Отказоустойчивые кластеры Балансировка сетевой нагрузки Архивация данных .'. Новинки в службах каталогов Контроллеры домена только для чтения Службы федерации Active Directory Аудит службы каталогов Основные компоненты роли сервера Перезапускаемые службы AD DS Средство просмотра снимков AD DS Детальная политика паролей и блокировки учетных записей Установка с носителя
134 134 136 137 139 140 141 141 142 142 142 142 142
Службы развертывания Windows Новые возможности служб развертывания Windows в Windows Server 2008 Повышенная производительность протокола TFTP Средства диагностики Многоадресное развертывание
143 143 143 143 143
Новинки в сетевых функциях Расширенная сквозная инфраструктура безопасности Повышенная производительность и надежность Большая масштабируемость
144 145 145 146
Новые механизмы управления печатью
147
Оглавление Приложение 1. Технологии з а щ и т ы п р и л о ж е н и й в Windows Vista и W i n d o w s Server 2 0 0 8 Проверка переполнения буфера стека Защита при обработке исключений Поддержка No execute (NX), Data Execution Prevention (DEP) и execute Disable (XD) Случайное распределение адресного пространства — Address space layout randomization (ASLR) Случайное распределение «кучи» Случайное распределение стека Определение повреждения кучи
7
149 149 150 150 155 155 155 155
Приложение 2. Механизмы обеспечения надежности приложений Windows Feedback Platform Windows Feedback Platform на уровне пользователей Windows Feedback Platform на уровне разработчиков Программные интерфейсы Windows Feedback Platform Механизм Restart Manager Restart Manager и программы установки приложений Примеры Дополнительные механизмы обеспечения надежности Заключение
157 157 158 161 162 163 165 168 168 169
Приложение 3. Ресурсы по Microsoft Windows Server 2 0 0 8 Основные ресурсы Инфраструктура Server Manager Server Roles Server Core Boot Configuration Data Manageable Applications Платформа для создания приложений Application Server Role .NET Framework 3.0 Internet Information Services 7.0 Windows Server Virtualization
170 170 170 170 170 171 171 171 172 172 172 172 173
8
Оглавление
Базовые технологии
173
Restart Manager
173
Windows Error Reporting
174
Transactional NTFS
174
Next Generation TCP/IP Stack
174
Remote Differential Compression
175
Пул потоков
175
Сертификация под Windows Server
175
Введение
IT-подразделения компаний постоянно испытывают «давление» со стороны корпоративных пользователей. Такое давление может быть как положи тельным, так и отрицательным. К положительному давлению отнесем все, что связано с улучшением продуктивности, добавлением новой функци ональности и расширением возможностей совместной работы. Обеспе чение этих требований занимает порядка 30% ГТ-бюджета. На оставшие ся 70% процентов приходятся запросы, связанные с обеспечением безо пасности, снижения затрат, обеспечения соответствия корпоративным стандартам и т. п. Несмотря на то что стоимость аппаратного и программ ного обеспечения постоянно снижается, затраты на поддержку инфраструк туры постоянно растут — в мире тратится более 140 млрд. долл. на управ ление и поддержку инфраструктуры и только 6% из этой суммы прихо дится на закупки программного обеспечения. Microsoft Windows Server 2008 — это серверная операционная систе ма, созданная для компаний любого размера и обеспечивающая надежную, гибкую и масштабируемую платформу для автоматизации различных биз нес-задач. Новые средства виртуализации, поддержка современных вебтехнологий и расширения в области безопасности, помогают сократить время, требующееся на развертывание и сопровождение приложений, снизить затраты на обслуживание и использовать платформу в качестве основы для динамических центров обработки данных. Новые и расширен ные компоненты операционной системы, такие как Internet Information Server 7.0 (IIS7), Windows Server Manager и Windows PowerShell, позволя ют упростить задачи управления серверами и облегчить конфигурацию и сопровождение. Расширения, связанные с безопасностью и надежнос тью, такие как Network Access Protection и Read-Only Domain Controller делают операционную систему более защищенной и позволяют исполь зовать ее в качестве платформы для выполнения различных бизнес-задач.
10
Введение
При выборе серверной операционной системы всегда следует обращать внимание на ключевые сценарии, для реализации которых она предназ начена. В случае с новой серверной операционной системой Microsoft Windows Server 2008, таких ключевых сценариев четыре: платформа для веб-приложений, виртуализация, надежность и безопасность, а также плат форма для решения бизнес-задач различных классов.
Ключевые сценарии использования Windows Server 2008
Платформа для выполнения бизнес-задач Windows Server 2008 — это наиболее гибкая и надежная операционная сис тема в семействе операционных систем Windows Server. Новые технологии и возможности, такие как Server Core, PowerShell, Windows Deploy-ment Services, расширенные сетевые и кластерные технологии позволяют говорить о Win dows Server 2008 как о надежной и масштабируемой платформе для обеспе чения реализации ключевых бизнес-сценариев и выполнения бизнес-при ложений. Среди ключевых компонентов Windows Server 2008, обеспечива ющих платформу для выполнения бизнес-задач, выделим следующие: • Server Manager — унифицированный механизм управления сервером, построенный на основе Microsoft Management Console (MMC) и предо ставляющий в распоряжение ГТ-специалистов интегрированное реше ние для добавление, удаления и конфигурирования серверных ролей, ролевых сервисов и дополнительных функций.
Введение
11
• Windows Deployment Services (WDS) представляет собой набор ком понентов, совместно работающих под управлением Windows Server 2008 и обеспечивающих механизмы упрощенного и надежного сетевого развертывания операционных систем семейства Windows на компью терах без необходимости в ручной установке программного обеспече ния на каждый отдельный компьютер. • Windows PowerShell — оболочка, расширяющая функциональность ко мандной строки и позволяющая выполнять пакетные программы и ути литы, написанные на скриптовом языке. Использование Windows PowerShell помогает ГТ-специалистам автоматизировать наиболее частые за дачи и получить более простой контроль над системой — как локаль ной, так и удаленной, развернутой, например, в филиале (branch office). • Server Core — новая опция установки Windows Server 2008, включаю щая ограниченный набор ролей и соответствующих ролевых сервисов и обеспечивающая более надежную и защищенную серверную платфор му, требующую минимальных затрат на обслуживание и установку об новлений. В состав Windows Server 2008 входит новая реализация стека протоко лов TCP/IP, которая известна под названием «Next Generation TCP/IP Stack». Стек протоколов TCP/IP нового поколения представляет собой полностью переписанную функциональность TCP/IP, отвечающую совре менным требованиям к сетевым протоколам, коммуникационным меха низмам и технологиям. Отказоустойчивые кластеры (Failover Cluster, ранее назывались Server Clusters) представляют собой группу независимых компьютеров, работа ющих вместе для обеспечения высокой доступности приложений и сер висов. Реализованные в Windows Server 2008 улучшения в кластерных тех нологиях призваны упростить создание кластерной инфраструктуры, сде лать ее более защищенной и повысить стабильность решений на базе отказоустойчивых кластеров.
Платформа для веб-приложений Windows Server 2008 представляет собой мощную платформу для созда ния и выполнения веб-приложений и сервисов и позволяет компаниям эффективно реализовывать различные веб-приложения. Выпуск Internet Information Server 7.0 (IIS7) в составе Windows Server 2008 обеспечивает улучшенное администрирование и диагностику, поддержку расширенных средств разработки и снижение затрат на инфраструктуру. Полная модуль ная организация веб-сервера с возможностью создания собственных рас ширений решает ключевые бизнес-задачи, поддерживает хостинг прило жений и обеспечивает совместимость с уже существующими решениями.
12
Введение
Технология совместной работы Microsoft Windows SharePoint Services 3.0 помогает организациям улучшить бизнес-процессы и увеличить про дуктивность командной работы. Богатый набор функциональности и ути лит обеспечивает сотрудников доступом к удаленным рабочим простран ствам (workspaces) и документам для совместной работы непосредствен но из веб-браузера, тем самым разрушая организационные и географи ческие границы. Windows Media Services — набор сервисов для доставки потоковой ин формации с упрощенными средствами администрирования, настройки и повышенной масштабируемостью.
Виртуализация Встроенные в Windows Server 2008 технологии виртуализации (Windows Server virtualization, Hyper-V) позволяют компаниям снизить затраты, уве личить утилизацию аппаратных средств, оптимизировать инфраструкту ру и увеличить доступность серверов. Виртуализация в Windows Server использует 64-битную платформу на основе гипервизора, что позволяет увеличить надежность и масштабируемость. Виртуализация помогает орга низациям оптимизировать использование аппаратных ресурсов за счет консолидации серверов. Помимо этого, виртуализация использует такие компоненты платформы Windows Server 20.08, как отказоустойчивые кла стеры для обеспечения высокой доступности и защиты доступа к сети — Network Access Protection (NAP). Гибкость работы мобильных сотрудников обеспечивается возможнос тью запуска приложений на удаленных компьютерах — это возможно бла годаря поддержке в Windows Server 2008 таких технологий, как Terminal Services RemoteApp и Terminal Services Gateway.
Надежность и безопасность Windows Server 2008 — самый защищенный сервер в семействе серверов Windows Server. Безопасная операционная система и расширения в обла сти безопасности, включая Network Access Protection, Federated Rights Management и Read-Only Domain Controller обеспечивают уровни защи ты данных, ранее отсутствовавшие в системе. В состав Windows Server 2008 включены такие средства безопасности, как расширенное шифрование, средства аудита и ряд других, помогающих организациям защитить от хищения данные, используя средства Rights Management Services, а также технологии BitLocker и механизмы Group Policy.
Введение
13
Ключевые преимущества и основные причины перехода на Windows Server 2008 Можно выделить ряд ключевых преимуществ Windows Server 2008 по срав нению с предыдущими версиями операционных систем семейства Windows Server. К ним относятся: • Надежная серверная платформа, обеспечивающая безопасность, управ ляемость, совместимость, быстрое время отклика и поддержку широ кого числа стандартов; • Платформа, поддерживающая быстрое создание и развертывание ши рокого спектра приложений; • Повышенная операционная эффективность и низкие затраты на под держание ГТ-инфраструктуры; • Сетевые функции, управляемые политиками, улучшенные средства под держки филиалов и расширенные механизмы для конечных пользова телей; • Платформа для прикладных решений, поддерживающая гибкость, коммуницируемость и богатые интерфейсные возможности; • Платформа, предоставляющая более безопасную и надежную ГТ-инфраструктуру, помогающую компаниям решать бизнес-задачи. Также отметим основные причины перехода на Windows Server 2008: Windows Server Virtualization
Механизмы виртуализации и System Center Virtual Machine Manager
Платформа для корпоративных п р и л о ж е н и й и веб-решений
Internet Information Services 7.0 (IIS7), ASP.NET, Windows C o m m u n i c a t i o n Foundation, Microsoft Windows SharePoint Services
Улучшенная сетевая производительность
Интеграция IPSec и новой версии Windows Firewall
Улучшенная безопасность и поддержка стандартов
Расширенные средства аудита, Drive Encryption, п е р е н а п р а в л е н и е событий, Rights Management Services
Управление ф и л и а л а м и
Active Directory, включая Read-Only Domain Controller и поддержку BitLocker и Server Core
Упрощенное управление сервером
Server Management Console
14
Введение
Расширения в автомати зации и поддержке выполнения сценариев
Windows PowerShell с более чем 120 стандартными утилитами и возможностью включения расширений
Централизованный доступ к приложениям
Terminal Services, Remote Applications и Terminal Services Gateway
Защита доступа к сети
Network Access Protection (NAP)
Совместная работа с Windows Vista
Единое использование ряда технологий в области сетевой поддержки, хранения, безопасности и управления
Аппаратные требования В следующей таблице показаны основные аппаратные требования для всех изданий о п е р а ц и о н н о й системы Windows Server 2008. Издание операци онной системы
Минималь ная скорость процессора
Число поддеоживаедерживаемых про цессоров
Пространст- Память во на лиске
Права на использо вание виртуальных образов
Windows Server 2008 Standard Edition
1 ГГц
До 4
8 ГБайт
512 Мбайт
1
Windows Server 2008 Enterprise Edition
1 ГГц
До 8
8 Гбайт
512 Мбайт
Windows Server 2008 Datacenter Edition
1 ГГц
До 32 на плат форме х86 До 64 на плат форме хб4 и Itanium
8 Гбайт
512 Мбайт
Не ограничено
Windows 1 ГГц Server 2008 Web Edition
До 4
8 Гбайт
512 Мбайт
Не поддер живается
Windows 1 ГГц Server 2008 Itanium IA-64 Edition
До 64
8 ГБ'айт
512 Мбайт
Не ограни чено
Глава 1
Серверная операционная система Основные понятия
Наше знакомство с Windows Server 2008 начнем с обсуждения основных понятий, связанных с серверной операционной системой. Таких понятий четыре — классификация сервера (workload), роль (role), ролевые серви сы (role services) и дополнительные функции (features). Классификация сервера — это основное назначение сервера или группы серверов в организации, поддерживаемое одной или более ролью. К клас сификации относятся поддержка сетевых функций, доступа к сети, тер минальные сервисы, сервисы баз данных, хранения, кластеризации, вы сокопроизводительные вычисления, виртуализация, защита данных, вебсервисы, сервер приложений, управление доступом и т. п. Роль описывает основную функциональность сервера. Имеется возмож ность либо выделения всего сервера для выполнения ролевых функций, либо установки нескольких серверных ролей на одном компьютере. Каждая роль может включать один или несколько ролевых сервисов — специфичных сервисов, используемых для поддержки функциональнос ти той или иной роли. Ролевые сервисы являются подмножеством роли и уникальны для конкретной серверной роли. Дополнительные функции обычно не относятся к основной функцио нальности сервера и используются для реализации дополнительных воз можностей сервера. Взаимоотношение классификации, роли, ролевых сервисов и дополнительных функций показано ниже.
Одна классификация,
Одна классификация,
одна роль, один сервер
несколько ролей, несколько серверов
В Windows Server 2008 сервер может выполнять следующие роли: Active Directory Domain Services Active Directory Federation Services
Active Directory Lightweight Directory Services Active Directory Rights Management Services
Глава 1
Серверная операционная система. Основные понятия
Active Directory Certificate Server Application Server DNS Server File Server Print Server t'DDI Services Web Server (IIS) Windows Media Services
17
Network Access Services DHCP Server Fax Server Media Server Terminal Services Virtual Server Windows Deployment Services Windows SharePoint Services
Рассмотрим эти роли более подробно. • Active Directory Certificate Services (AD CS) — позволяет создавать и управлять цифровыми сертификатами для пользователей, компьюте ров и организаций, представляя собой часть инфраструктуры поддер жки публичных ключей (public key). • Active Directory D o m a i n Services (AD DS) — хранит и н ф о р м а ц и ю о сетевых объектах и делает эту и н ф о р м а ц и ю доступной пользовате лям и сетевым администраторам. Для своей работы AD DS использует контролеры доменов для предоставления сетевым пользователям ре сурсов в любой точке сети. • Active Directory Federation Services (AD FS) — обеспечивает упро щенный, зашифрованный способ передачи идентификационной инфор мации и поддержку единого доступа к ресурсам (Web single sign-on, SSO). • Active D i r e c t o r y Lightweight D i r e c t o r y Services (AD LDS) — предо ставляет хранилище для данных, требуемых определенным классом при ложений. Active Directory Rights Management Services (AD RMS) — может ис пользоваться для защиты и н ф о р м а ц и и от несанкционированного досту па. Active Directory Rights Management Services — это технология защиты информации, которая используется соответствующим классом приложе ний. Владельцы информации могут указывать, как пользователи могут ис пользовать и н ф о р м а ц и ю — кто может открывать, модифицировать, рас печатывать, пересылать и/или выполнять другие операции над данными. • Dynamic Host Configuration Protocol (DHCP) Server — обеспечивает централизованную конфигурацию и управление временными IP-адресами и соответствующей информацией для клиентских компьютеров. • Domain N a m e S y s t e m (DNS) Server — транслирует доменные и ком пьютерные DNS-имена в IP-адреса. Такой сервер более прост в управ лении, если он установлен на том же сервере, что и доменные серви сы Active Directory Domain Services. • Fax Server — отсылает и принимает факсовые сообщения и позволя ет управлять ресурсами факса — задачами, настройками, отчетами, а так же локальными и сетевыми факсовыми устройствами.
18
Глава 1
Серверная операционная система. Основные понятия
• File Server — предоставляет технологии для управления хранилищами, репликации файлов, распределенного управления пространством, быст рого поиска файлов и клиентского доступа к файловой системе сервера. • Terminal Services — предоставляет технологии, обеспечивающие до ступ к серверу, выполняющему Windows-приложения или полной сре де Windows. Пользователи соединяются с терминальным сервером для запуска приложений, с о х р а н е н и я ф а й л о в и использования сетевых ресурсов сервера. • Network Access Services — поддерживает роутинг сетевого трафика через LAN и WAN, создание и п р и м е н е н и е правил сетевого доступа (network access policies) и доступ к сетевым ресурсам через VPN-соеди нения и dial-up. • Print Services — управляет сетевыми принтерами и драйверами, пре доставляя соответствующие сервисы. • Web Server — надежная, управляемая, масштабируемая инфраструктура для выполнения веб-приложений и сервисов. • Windows D e p l o y m e n t Services (WDS) — позволяет быстро и безопас но развернуть на компьютерах системы на базе о п е р а ц и о н н о й систе мы Windows, используя сетевые установки без необходимости привле чения администратора для установки системы на каждом компьютере или установки компонентов Windows с CD или DVD. • W i n d o w s Media Services — поставляет непрерывный поток ц и ф р о й аудио- и в и д е о и н ф о р м а ц и и для клиентов внутри сети. • Windows S h a r e P o i n t Services — облегчает создание сайтов, на кото рых пользователи могут совместно работать над документами, задача ми, событиями, обмениваться контактной и другой информацией. • Universal Description, Discovery, a n d Integration (UDDI) Services — используется для обеспечения функций каталогизации веб-сервисов и других программных ресурсов. Сайт UDDI Services состоит из специ ального приложения — UDDI Web Application, связанного с базой дан ных UDDI Database. В следующей таблице перечислены дополнительные функции, доступ ные в Windows Server 2008. Windows Activation Services (WAS) BitLocker Drive Encryption Failover Clustering Internet Storage Naming Server Microsoft Message Queuing (MSMQ) Services Removable Storage Manager
Background Intelligent Transfer Service (BITS) Server Extensions Desktop Experience Windows Server Backup Line Print Remote (LPR) Port Monitor Remote Assistance RPC over HTTP Proxy
Глава 1
Серверная операционная система. Основные понятия
Simple Mail Transfer Protocol (SMTP) Server Storage Manager for Storage Area Networks (SANs) Subsystem for UNIX-based application Telnet Server Windows Internal Database Server Windows Network Load Balancing Windows Foundation Components for WinFX SQL Server Embedded Edition (Windows)
19
SNMP Service Simple TCP/IP Services Telnet Client TFTP Client Windows Internal Naming Service (WINS) Windows System Resource Manager (WSRM) Wireless LAN Service
Рассмотрим эти дополнительные функции более подробно. • Background Intelligent Transfer Service (BITS) Server E x t e n s i o n s — позволяет BITS-серверу получать загруженные клиентами файлы. Этот компонент не требуется для предоставления клиентам возможности заг рузки файлов с BITS-сервера. • Windows BitLocker Drive Encryption — аппаратная система обеспече ния безопасности, позволяющая реализовать шифрование на уровне томов. • Desktop Experience — включает ряд функций Windows Vista, таких как Windows Media Player, темы для рабочего стола и управление фотогра фиями. • Internet Storage N a m i n g Server (iSNS) — обрабатывает запросы на регистрацию, отмену регистрации и запросы к iSCSI-устройствам. • Line Printer R e m o t e (LPR) Port M o n i t o r — позволяет выводить ин формацию на устройства печати, присоединенные к компьютерам, ра ботающим под управлением о п е р а ц и о н н о й системы UNIX. • Message Queuing (также называется MSMQ) позволяет приложениям общаться между собой через гетерогенные сети и системы, которые могут временно находиться в режиме offline. MSMQ обеспечивает гарантиро ванную доставку сообщений, эффективное перенаправление сообщений, безопасность и пересылку сообщений на основе приоритетов. • Multipath I/O — обеспечивает поддержку использования различных механизмов адресации для устройств хранения. • Removable Storage Manager — управляет сменными носителями и ус тройствами, поддерживающими такие носители. • Remote Assistance — позволяет удаленным пользователям подсоеди няться к данному компьютеру для непосредственного решения возник ших на компьютере проблем.
20
Глава 1
Серверная операционная система. Основные понятия
• R e m o t e P r o c e d u r e Call (RPC) o v e r HTTP P r o x y — перенаправляет RPC-трафик от клиентских приложений через HTTP на сервер в каче стве альтернативы для клиентов, обращающихся к серверу через VPNсоединение. • Simple Mail Transfer P r o t o c o l (SMTP) Server — обеспечивает под держку передачи электронной почты между серверами. • Storage Manager for Storage Area N e t w o r k s (SAN) — поддерживает сети класса SAN, соответствующие требованиям VDS. • S u b s y s t e m for UNIX-based A p p l i c a t i o n s (SUA) — позволяет выпол нять UNIX-приложения и выполнять администрирование системы не посредственно из командной сроки UNIX. • Telnet Client — использует протокол Telnet для соединения с удален ным Telnet-сервером и выполнения приложений на этом сервере. • Telnet Server — позволяет удаленным пользователям выполнять пакет ное администрирование и выполнять приложения, используя клиент Telnet, включая клиентов, выполняемых на UNIX-системах. • Trivial File Transfer P r o t o c o l (TFTP) Client — позволяет передавать файлы через сервер TFTP. • W i n d o w s A c t i v a t i o n Service (WAS) — обеспечивает поддержку сре ды для .NET-процессов и конфигурационных функций. • Failover Clustering — обеспечивает высокую доступность различных серверных ролей и приложений, которые имеют сохраняемые состоя ния — таких как файловые сервисы, SQL Server и т. п. за счет использо вания отказоустойчивых кластеров на основе разделяемых дисков. • W i n d o w s F o u n d a t i o n C o m p o n e n t s for WinFX — поддерживает при ложения, созданные с использованием компонентов .NET Framework 3-0. • W i n d o w s I n t e r n a l D a t a b a s e — использует SQL Server 2005 Embedded Edition (Windows) в качестве р е л я ц и о н н о г о хранилища данных для ролей Windows, включая Windows SharePoint Services, Active Directory Rights Management Services, UDDI Services или Windows Server Update. • W i n d o w s I n t e r n e t N a m e Service (WINS) — позволяет компьютерам, работающим под управлением Windows, обнаруживать в подсетях другие компьютеры, использующие NetBIOS. • Wireless N e t w o r k i n g — конфигурирует беспроводные соединения и соответствующие профили беспроводных сетей. • W i n d o w s N e t w o r k Load B a l a n c i n g (WNLB) — распределяет прихо дящие прикладные запросы среди групп серверов, на которых находятся экземпляры приложения. • Windows Server Backup — позволяет восстанавливать состояние опе рационной системы, файлов, папок и данных приложений за счет пери одического создания «снимков» полного сервера или выбранных томов.
Глава 1 Серверная операционная система. Основные понятия
21
Server Manager Для управления ролями, ролевыми сервисами и дополнительными функ циями в Windows Server 2008 используется специальная ММС-консоль, называемая Server Manager. Эта консоль пришла на смену ряду утилит, входивших в состав Windows Server 2003 — Manage Your Server, Configure Your Server и Add or Remove Windows Components. Использование Server Manager также позволяет отказаться от необходимости запуска «мастера» Security Configuration Wizard перед развертыванием серверов — все сер верные роли сконфигурированы с рекомендованными настройками бе зопасности и готовы к непосредственному развертыванию сразу после ус тановки и настройки. В состав Server Manager входит набор «мастеров» для добавления ро лей, ролевых сервисов, дополнительной функциональности, а также уда ления соответствующих компонентов — Add Roles Wizard, Add Role Services Wizard, Add Features Wizard, Remove Roles Wizard, Remove Role Services Wizard и Remove Features Wizard. Server Manager позволяет управлять практически всеми аспектами сер вера — устанавливать и удалять роли и дополнительные функции, добав лять ролевые сервисы, запускать и останавливать сервисы, управлять ло кальными учетными записями, анализировать протокол событий и т. п.
Server Core Windows Server 2008 — первая версия серверной операционной системы семейства Windows, в которой администраторы могут выбрать установку Windows Server с минимальным набором функциональности. Эта возмож ность сокращает набор ролей, доступных на сервере, но существенно улучшает безопасность и упрощает управление сервером. Такой тип уста новки сервера называется ядром сервера (Server Core). Как минимальная установка, Server Core обеспечивает среду для функ ционирования серверных ролей, среди которых ключевыми являются: Dynamic Host Configuration Protocol (DHCP) Server, Domain Name System (DNS) Server. File Server и Domain Controller. Все перечисленные роли устанавливаются с помощью пакетной утилиты ocsetup. Например: Серверная роль
Команда Ocsetup
DNS Server
start /w ocsetup DNS-Server-Core-Role
DHCP Server
start /w ocsetup DHCPServerCore
22
Глава 1 Серверная операционная система. Основные понятия
Серверная роль
Команда Ocsetup
File Server
File Replication service D start /w ocsetup FRS-Infrastructure Distributed File System D start /w ocsetup DFSN-Server Distributed File System Replication О start /w ocsetup DFSR-Infrastructure-ServerEdition Network File System • start /w ocsetup ServerForNFS-Base • start /w ocsetup ClientForNFS-Base Single Instance Store • start /w ocsetup SIS
Удаление роли
Опция /uninstall
Для роли Active Directory используется утилита Dcpromo с о п ц и е й /unattend:Unattendfile. Для упрощения администрирования и снижения рисков, связанных с безопасностью, с ядром сервера устанавливается только подмножество исполняемых файлов и сопутствующих динамически загружаемых библио тек. Например, пользовательский интерфейс Windows Explorer («shell») не является частью Server Core — интерфейсом по умолчанию является ко мандная строка. Ниже показана архитектура Server Core.
Среди дополнительных функций, которые можно реализовать в рам ках Server Core, выделим следующие:
Глава 1
Серверная операционная система. Основные понятия
23
• Microsoft Cluster Server; • Network Load Balancing; • Subsystem for UNIX-based applications; • Backup; • Multipath IO; • Removable Storage Management; • BitLocker Drive Encryption; • SNMP. Отметим, что следующие функции требуют соответствующей аппарат ной поддержки: • Failover Cluster; • Network Load Balancing; • Multipath IO; • Removable Storage; • Bitlocker Drive Encryption. Для установки дополнительных функций также используется пакетная утилита ocsetup. В следующей таблице показаны параметры этой утили ты для установки различных дополнительных функций для Server Core. Дополнительная функция
Параметры утилиты ocsetup
Failover Cluster Network Load Balancing NetworkLoadBalancingHeadless Server Subsystem for UNIX-bases applications Multipath IO
start /w ocsetup FailoverCluster-Core start /w ocsetup
Removable Storage Management Bitlocker Drive Encryption Backup Simple Network Management Protocol (SNMP)
start /w ocsetup SUA start /w ocsetup Microsoft-WindowsMultipathlO start /w ocsetup Microsoft-WindowsRemovableStorageManagementCore start /w ocsetup BitLocker start /w ocsetup WindowsServerBackup start /w ocsetup SNMP-SC
Существует несколько вариантов управления Server Core. В локальном режиме используется командная строка (CMD) и пакетные утилиты. Так же возможно использование Terminal Server и CMD, удаленное выполне ние команд через WS-Management (на клиенте требуется установка Windows Vista или Windows Server 2008) WMI, использование Task Scheduler для
24
Глава 1 Серверная операционная система. Основные понятия
задания работ и задач, использование систем протоколирования Event Logging и Event Forwarding, RPC и DCOM для удаленной поддержки ММС, SNMP и ряд других. Среди ограничений Server Core отметим отсутствие поддержки .NETкода (managed code), отсутствие графического интерфейса — только CMD, отсутствие поддержки команды Runonce. Предполагается, что использование Server Core, помимо указанной выше простоты администрирования и увеличения безопасности, позволит в будущем снизить количество «заплаток», которые устанавливаются на сер вере примерно на 60% (по сравнению с Windows 2000). Выше мы рассмотрели основные понятия, связанные с серверной опе рационной системой, роли, которые может выполнять Windows Server 2008, сервисы, а также дополнительные функции, доступные в этой операци онной системе. Мы также начали рассмотрение Server Core — варианта ус тановки Windows Server с минимальным набором функциональности. Напомним основные ограничения при разработке приложений, кото рые должны работать под управлением Server Core: поддерживается ин терфейс только на уровне командной строки (отсутствует Windows Shell), отсутствует поддержка приложений на управляемом коде — приложения должны использовать только Windows API, и поддержка MSI осуществля ется только в режиме unattend mode. В целом, Server Core предполагает выполнение приложений, обеспечивающих функционирование сетевых и файловых сервисов, средств управления сервером и соответствующих утилит. При установке Server Core разработчикам становятся доступны только те программные интерфейсы, которые реализованы на уровне входящих в состав операционной системы программных компонентов. Эти компоненты и их назначение показаны в следующей таблице. Технология
Установленные DLL
Active Directory activeds.dll ntdsapi.dll Application Installation
cabinet.dll imagehlp.dll msi.dll setupapi.dll sxs.dll
Authentication Security
advapi32.dll
Назначение Интерфейсы Active Directory Service (ADSI) Управление контроллером домена и репликацией Функции управления САВ-файлами Функции работы с файлами в формате Portable Executable (PE) Функции установки приложений Функции установки приложений Функции поддержки режима side-by-side Управление аутентификацией через HTTP и учетными записями
Глава 1 Серверная операционная система. Основные понятия 25
Технология
Установленные DLL Назначение credui.dll
Управление учетными записями
crypt32.dll
Набор п р о г р а м м н ы х и н т е р ф е й с о в для поддержки к р и п т о г р а ф и и
cryptdll.dll
Функции поддержки Cryptography Manager
cryptnet.dll
Поддержка з а щ и щ е н н ы х каналов ( с е р т и ф и к а т ы Х.509)
cryptui.dll
Управление учетными записями
netapi32.dll
Библиотека функций Microsoft Net API
schannel.dll
Поддержка з а щ и щ е н н ы х каналов ( с е р т и ф и к а т ы Х.509) Библиотека ф у н к ц и й Microsoft Security Services
secur32.dll wintrust.dll
Функции каталога
DHCP
dhcpsvc.dll
Библиотека поддержки сервисов DHCP — Dynamic Host Configuration Protocol
DNS
dnsapi.dll
Библиотека ф у н к ц и й поддержки DNS
General Networking
authz.dll
Поддержка з а щ и щ е н н ы х RPC-вызовов
iphlpapi.dll
Н а б о р ф у н к ц и й Internet Protocol Helper (IP Helper)
mgmtapi.dll
Управление SNMP
mpr.dll
Набор ф у н к ц и й поддержки Windows
mprapi.dll
Функции поддержки RAS и админист р и р о в а н и я роутера
mswsock.dll
Ф у н к ц и и поддержки Winsock
netsh.exe
Функции поддержки NetShell
rpert4.dll
Ядро RPC NDR
rtutils.dll
Функции т р а с с и р о в к и Remote RAS
security.dll
Функции безопасности для Remote RAS
snmpapi.dll
Поддержка SNMP
Networking (WNet)
traffic.dll
Контроль т р а ф и к а
httpapi.dll
Функции поддержки HTTP
winhttp.dll
Функции поддержки HTTP
Server Clustering clusapi.dll
User Interface
Функции поддержки меха ни змо в кластеризации
resutils.dll
Д о п о л н и т е л ь н ы е ф у н к ц и и поддержки кластеризации
mlang.dll
Поддержка нескольких языков интерфейса
26 Глава 1 Серверная операционная система. Основные понятия
Технология
Windows
Установленные DLL Назначение msctf.dll
Функции для Text Services Framework (TSF)
shell32.dll
Поддержка о б о л о ч к и о п е р а ц и о н н о й системы
shlwapi.dll
Библиотека поддержки UNC и URL, р е е с т р а и т. п.
clfsw3 2.dll
Поддержка п р о т о к о л и р о в а н и я
dbghelp.dll
Поддержка отладчика
dciman32.dll
Поддержка г р а ф и к и
fltlib.dll
Функции управления драйверами мини-фильтров
fltmgr.sys
Функции управления д р а й в е р а м и мини-фильтров
gdi32.dll
Часть ядра о п е р а ц и о н н о й системы, отвечающая за г р а ф и ч е с к и е ф у н к ц и и Ядро о п е р а ц и о н н о й системы Windows П л а н и р о в щ и к задач Внутренние ф у н к ц и и ядра о п е р а ц и о н н о й системы Windows Функции управления объектами Функции управления объектами Функции м о н и т о р и н г а производительности
System Services
kernel32.dll mstask.dll ntdll.dll ole32.dll oleaut32.dll pdh.dll powrprof.dll
Функции управления и с т о ч н и к а м и питания
psapi.dll
Функции м о н и т о р и н г а производительности И н т е р ф е й с ы к системе защиты хранилищ данных
pstorec.dll sfc.dll
Функции поддержки подсистемы Windows File Protection
srclient.dll
Функции восстановления системы
user32.dll
Часть ядра о п е р а ц и о н н о й системы, отвечающая за взаимодействие с пользователями Поддержка пользовательских профилей
userenv.dll verifier.dll
Функции м о н и т о р и н г а производительности
version.dll
Функции поддержки в е р с и о н н о с т и Поддержка Volume Shadow Copy Внутренние ф у н к ц и и ядра о п е р а ц и о н н о й системы Windows
vssapi.dll winsta.dll
Глава 1 Серверная операционная система. Основные понятия
27
Дополнительную информацию по функциям, поддерживаемым в Server Core, можно получить на сайте MSDN Library по адресу http://msdn2.microsoft. com/en-us/library/ms723894.aspx (Server Core Functions by DLL). Для того чтобы определить, запущено ли приложение под Server Core или под какой-то другой конфигурацией, следует использовать функцию GetProductlnfo из Kernel32.dll, которая доступна только в Windows Vista и Windows Server 2008. Если приложение запущено под Server Core, то пе ременная pdwReturnedProductType будет иметь одно из следующих зна чений, в зависимости от варианта поставки Windows Server 2008: • PRODUCT_STANDARD_SERVER_CORE (OxOOOOOOOD) • PRODUCT_ENTERPRISE_SERVER_CORE (OxOOOOOOOE) • PRODUCT_DATACENTER_SERVER_CORE (OxOOOOOOOC) Второй вариант — использовать WMI-класс Win32_OperatingSystem и его свойство OperatingSystemSKU, которое в нашем случае должно иметь одно из следующих значений: • 12 для Datacenter Server Core Edition • 13 для Standard Server Core Edition • 14 для Enterprise Server Core Edition И, наконец, еще один способ проверки работы под Server Core — это определение наличия в локальной системе такого компонента, как Explorer.exe: если такого компонента нет — мы запущены под Server Core. Для этого можно использовать скрипт наподобие того, что показан ниже. Dim bServerCore, bExplorer Const strExplorer = «\explorer.exe» strRoot = WshEnv(«SYSTEMROOT») strExpPath = strRoot + strExplorer Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strExpPath) Then 'Explorer.exe найдет - работаем не под Server Core WScript.Quit (0) bServerCore = False bExplorer = True Else bServerCore = True bExplorer = False End If
Рассмотрим некоторые вопросы, связанные с миграцией существующих приложений под Server Core, а также вопросы создания приложений, ра ботающих под управлением Server Core. Для миграции существующих утилит под Server Core необходимо заме нить весь управляемый код на т. н. native code, удалить все вызовы функ-
28
Глава 1 Серверная операционная система. Основные понятия
ций, которые не поддерживаются в Server Core (см. приведенную выше ссылку на MSDN Library), удалить все зависимости от графического интер фейса — утилиты должны работать только в режиме командной строки, удалить все интерактивные компоненты. Для удаленного управления сис темой следует использовать протоколы, поддерживаемые Server Core, на пример RPC. При разработке новых утилит для Server Core следует помнить о том, что это — не платформа для создания приложений, а конфигурация сер вера, поддерживающая выполнение управляющих утилит, агентов, анти вирусов и т. п. Такие утилиты могут выполняться локально (в командной строке), под Terminal Services, для удаленного выполнения команд можно использовать Web Services for Management (WS-Management). Обеспечи вается поддержка Windows Management Instrumentation (WMI), выполне ние заданий по расписанию (Task Scheduler), протоколирование событий и их перенаправление (event forwarding). Также на уровне Server Core обеспечена поддержка удаленной ММС-консоли через RPC и DCOM и протокола SNMP. При создании скриптовых утилит в качестве основы можно использо вать скрипты для управления Server Core, которые расположены в катало ге \Windows\System32\Sfscripts. Отметим, что к приложениям, которые планируют пройти сертифика цию на получение логотипа «Certified for Windows Server 2008», выдвига ются следующие требования: • Отсутствие зависимостей от компонента Common Dialog Box; • Отсутствие зависимостей от Shell и Shell API; • Отсутствие компонентов на управляемом коде; • При установке приложения должны поддерживаться опции командной строки; • Приложения не должны иметь зависимости от мультимедийных ком понентов; • Приложения не должны использовать беспроводные сети. Отметим, что требования к приложениям, претендующим на получе ние логотипа «Certified for Windows Server 2008» можно скачать по адресу http://microsoft.mrmpslc£om/InnovateOnWindowsServer/CertifieciForLogoProgra m.aspx.
Глава 2
Основные новинки на уровне ядра операционной системы
Продолжим наше знакомство с Windows Server 2008. Ниже мы рассмот рим несколько новинок, появившихся в этой версии операционной сис темы на уровне ядра. К ним, в частности, относятся: транзакционная фай ловая система (доступная также в ограниченном виде в Windows XP и в полноценном — в Windows Vista), транзакционный реестр, удаленное сжа тие (Remote Differential Compression, RDC), новинки в Task Scheduler API, Windows Remote Management, Boot Configuration Data (BCD), а также на помним о технологиях Windows Error Reporting, Windows Restart Manager и Application Recovery and Restart.
Транзакционная файловая система Транзакционная файловая система (TxF) — это расширение файловой си стемы NTFS, позволяющее выполнять файловые операции над томом фай ловой системы NTFS в рамках транзакций. Это стало возможным благо даря новой транзакционной инфраструктуре, реализованной на уровне ядра операционной системы, позволяющей сервисам операционной сис темы участвовать в транзакциях используя новый компонент — менеджер транзакций Kernel Transaction Manager (KTM). Помимо этого, в обеспече нии функционирования транзакционной файловой системы задействована подсистема протоколирования Common Log File System (CLFS), впервые реализованная в Microsoft Windows Server 2003 R2. Взаимодействие этих компонентов показано на следующем рисунке. Использование транзакционной файловой системы делает возможным выполнение следующих типовых сценариев. За счет того, что TxF способна полностью коммуницировать с MS Distributed Transaction Coordinator (DTC), она имеет возможность участвовать в транзакциях, использующих не толь ко менеджеры ресурсов, предоставляемые Kernel Transaction Manager, но и другие менеджеры ресурсов, поддерживаемые на уровне DTC. Например, система документооборота может использовать эту возможность для ра боты как с файловой системой, так и с базой данных — и все в рамках одной транзакции. Другой пример использования транзакционной фай ловой системы — обновление файлов на группе компьютеров. А за счет расширений в протоколе совместного доступа к файлам и папкам — SMB 2.0 — появилась возможность использования в транзакциях распределен ных файловых операций, например при работе с клиентами под управ лением Windows Vista. Отметим, что TxF не поддерживает операции над зашифрованной фай ловой системой (Encrypted File System, EFS) за исключением операций чтения (например, ReadEncryptedFileRaw).
Глава 2 Основные новинки на уровне ядра операционной системы
31
Компоненты транзакционной файловой системы Транзакционная файловая система предоставляет разработчикам набор новых функций, которые перечислены в следующей таблице. CopyFileTransacted CreateFileTransacted CreateSymbolicLinkTransacted FindFirstFileNameTransactedW FindFirstStreamTransactedW GetFileAttributesTransacted GetLongPathNameTransacted RemoveDirectoryTransacted
CreateDirectoryTransacted CreateHardLinkTransacted DeleteFileTransacted FindFirstFileTransacted GetCompressedFileSizeTransacted GetFullPathNameTransacted MoveFileTransacted SetFilcAttributesTransacted
В качестве одного из параметров п р и вызове перечисленных выше функций указывается ссылка на транзакцию, в рамках которой выполня ется данная операция. Транзакция может быть создана либо вызовом фун кции CreateTransaction при использовании Kernel Transaction Manager или функции GetKTMHandle при использовании DTC. Появление транзакционной файловой системы привело к внесению ряда изменений в работу некоторых функций — CloseHandle, CreateFileMapping, FindNextFile, GetFilelnformationByHandle, GetFilelnformationByHandleEx, GetFileSize, GetFileSizeEx, GetVolumelnformation, MapViewOfFile, MapViewOfFileEx, ReadDirectoryChangesW, ReadFile, ReadFileEx, ReadFileScatter, SetEndOfFile, WriteFile, WriteFileEx и WriteFileGather. В MSDN Library в разделе «FilelO Functions and TransactionalNTFS» подробно расписаны изменения, привне сенные в эти функции ТхЕ Последовательность действий при транзакционной работе с файловой системой может быть следующей: 1. Создание транзакции на уровне ядра. IntPtr tx = CreateTransaction(IntPtr.Zero, IntPtr.Zero, 0, 0, 0, 0, null);
32
Глава 2
Основные новинки на уровне ядра операционной системы
2. Транзакционное удаление файла. i f (!DeleteFileTransactedW(file1, t x ) )
3- Завершение транзакции при успешном выполнении п. 2. CommitTransaction(tx);
4. Откат транзакции при ошибке. RollbackTransaction(tx);
5. Закрытие ссылки на транзакцию. CloseHandle(tx);
Транзакционный реестр По аналогии с файловой системой, операции над реестром также могут выполняться в рамках транзакций. Это стало возможным благодаря меха низму, расширяющему набор функций Registry API — Transactional Registry (TxR) и использующему упомянутый выше менеджер транзакций на уровне ядра — Kernel Transaction Manager. Как и в случае с транзакционной фай ловой системой, TxR может использовать и менеджер ресурсов, предос тавляемый DTC. Возможный сценарий использования данной функцио нальности — транзакционная работа с базами данных, файловой систе мой и операциями с реестром. К функциям для работы с реестром, под держивающим транзакции, относятся: RegCreateKeyTransacted, RegDeleteKey Transacted и RegOpenKeyTransacted. Как и в случае с функциями, поддер живающими транзакционную файловую систему, требуется указание ссыл ки на транзакцию, созданную либо средствами КТМ, либо DTC. Последо вательность действий при транзакционных операциях с реестром может быть следующей (на примере удаления ключа реестра): 1. Создание транзакции на уровне ядра. I n t P t r tx = CreateTransaction(IntPtr.Zero, I n t P t r . Z e r o , 0, 0, 0, 0, n u l l ) ;
2. Транзакционное удаление ключа реестра. if
(RegDeleteKeyTransacted(HKEY_CURRENT_USER,
keyl, RegSam.KEY_W0W64_32KEY, 0, t x , I n t P t r . Z e r o ) != 0)
3. Завершение транзакции при успешном выполнении п. 2. CommitTransaction(tx);
4. Откат транзакции при ошибке. RollbackTransaction(tx);
Глава 2 Основные новинки на уровне ядра операционной системы
33
5. Закрытие ссылки на транзакцию. CloseHandle(tx);
В приведенных выше примерах транзакционных операций с файловой системой и реестром мы использовали функцию CreateTransaction, предо ставленную Kernel Transaction Manager (Ktmw32.dll). Как мы отметили выше, также можно использовать и транзакции на уровне DTC . Первое, что не обходимо сделать в этом случае, получить ссылку на КТМ-транзакцию сред ствами DTC. Для этого мы будем использовать новый интерфейс — IKernelTransaction, который служит связующим звеном между DTC и КТМ при выполнении транзакционных операций. Для получения ссылки на тран закцию нам нужно реализовать метод GetHandle. Как это сделать на уп равляемом коде, показано ниже. [Comlmport] [InterfaceType(ComlnterfaceType.InterfacelsIUnknown)] [Guid("79427A2B-F895-40e0-BE79-B57DC82ED231")] internal interface IKernelTransaction { void GetHandle([Out] out IntPtr handle); }
Далее, для получения ссылки на транзакцию мы используем следующий код: // Используем пространство имен System.Transactions IKernelTransaction tx = (IKernelTransaction) Transactionlnteгор.GetDtcTransaction(Transaction.Cur rent); IntPtr txh; tx.GetHandle(out txh);
После этого мы используем полученную ссылку в транзакционных операциях и завершаем работу вызовом функции CloseHandle(txh).
Процессы и потоки Как известно, с точки зрения операционной системы, приложение пред ставляет собой один или более процессов. Процесс (process) — это испол няемая программа. Каждый процесс обеспечивает ресурсы, необходимые для выполнения программы. Процесс состоит из виртуального адресно го пространства, исполняемого кода, ссылок (handles) на открытые сис темные объекты, контекста безопасности, уникального идентификатора процесса (process id), переменных среды, класса приоритетов, минималь ного и максимального значения выделяемых ресурсов (working set), а также как минимум одного потока для выполнения кода. При запуске каждому
34
Глава 2 Основные новинки на уровне ядра операционной системы
процессу выделяется один поток, называемый первичным потоком. По мере необходимости процесс может создавать дополнительные потоки. Поток (thread) — это единица, используемая операционной системой, для выделения времени процессора. Поток может выполнять любую часть кода процесса, включая части, выполняемые в другом потоке. Все потоки используют единое виртуальное адресное пространство и системные ре сурсы. Помимо этого, каждый поток поддерживает собственные обработ чики исключений, приоритеты выполнения, локальные хранилища, уни кальный идентификатор потока (thread id) и набор структур, используе мых системой для сохранения контекста при переключении потоков. Контекст потока содержит набор машинных регистров для потока, стек ядра, среду для потока, а также пользовательский стек, хранимый в адрес ном пространстве потока. В операционной системе Microsoft Windows используется т. н. преимущественная поддержка многозадачности (pree mptive multitasking), с помощью которой создается эффект одновремен ного выполнения нескольких потоков в рамках нескольких процессов. Нить (fiber) — это единица выполнения, выделяемая самим приложе нием. Нити выполняются в контексте потоков, которые управляют ими и выделяют соответствующие ресурсы. Каждый поток может порождать более одной нити. Новинкой в клиентской операционной системе Microsoft Windows Vista и серверной операционной системе Microsoft Windows Server 2008 явля ется улучшенная реализация механизма пула потоков (thread pool), с по мощью которого появляется возможность создания коллекции рабочих потоков, которые могут эффективно обрабатывать асинхронные косвен ные вызовы (asynchronous callbacks), получаемые приложениями. Пул потоков используется для снижения числа прикладных потоков и более эффективного управления рабочими потоками. Приложения, использую щие соответствующие программные интерфейсы (см. ниже), могут созда вать очереди рабочих потоков, ассоциировать задачи со ссылками ожи дания (waitable handles), заполнять очереди по таймеру, связывать очере ди с процессами ввода/вывода и т. п. Приложения могут использовать пул потоков для реализации следующих сценариев: • Приложения могут параллельно распределять выполнение задач в виде большого числа небольших асинхронных элементов, например при выполнении распределенных запросов к индексам или выполнении сетевых операций; • Использование пула потоков может упростить задачу управления по токами для приложений, создающих и удаляющих большое число по токов, каждый из которых существует относительно короткое время ; • Приложения могут использовать пул потоков для параллельного выпол нения фоновых задач.
Глава 2
Основные новинки на уровне ядра операционной системы
35
В с л е д у ю щ е й т а б л и ц е п о к а з а н ы н о в ы е п р о г р а м м н ы е и н т е р ф е й с ы , под д е р ж и в а ю щ и е п о т о к и задач. Задача
Программные
интерфейсы
Синхронизация
CloseThrcadpoolWait, CreateThreadpoolWait, SetThreadpoolWait, WaitForThreadpoolCloseThreadpoolWork, CreateThreadpoolWork, WaitCallbacks
Выполнение
SubmitThreadpoolWork, TrySubmitThreadpoolCallback, WaitForThreadpoolWorkCallbacks
Таймер
CloseThreadpoolTimer, CreateThreadpoolTimer, IsThrcadpoolTimerSet, SetThreadpoolTimer, WaitForThreadpoolTimerCallbacks
Ввод/вывод
CancelThreadpoolIo, CloseThreadpoolIo, CreateThreadpoolIo, StartThreadpoolIo, WaitForThreadpoolIoCallbacks
Очистка группы
CloseThreadpoolCleanupGroup, CloseThreadpoolCleanupGroupMembers, CreateThreadpoolCleanupGroup
Управление пулом
CloseThreadpool, CreateThreadpool, SetThreadpoolThreadMaximum, SetThreadpoolThreadMinimum
Управление средой
DcstroyThreadpoolEnvironment, InitializeThreadpoolEnvironment, SetThreadpoolCallbackCleanupGroup, SetThreadpoolCallbackLibrary, SetThreadpoolCallbackPool, SetThreadpoolCallbackRunsLong
Управление функциями
CallbackMayRunLong
Очистка функций
DisassociateCurrentThreadFromCallback, FreeLibraryWhenCallbackReturns, LeaveCriticalSectionWhenCallbackReturns, ReleaseMutexWhenCallbackReturns, ReleaseSemaphoreWhenCallbackReturns, SetEventWhenCallbackReturns
Все п е р е ч и с л е н н ы е ф у н к ц и и р е а л и з о в а н ы в я д р е о п е р а ц и о н н о й сис темы (Kernel32.dll), их п р о т о т и п ы о п и с а н ы в ф а й л е Winbase.h, а для ком-
36
Глава 2 Основные новинки на уровне ядра операционной системы
пиляции приложений, использующих функции управления пулом пото ков, потребуется библиотека Kernel32.1ib. Более подробно о новом пуле потоков см. следующие сетевые ресурсы: • Process Management in Windows Vista, http://channel9-ynsdn.com/Showpost. aspx?postid=2339 76; • Thread Pools, http://msdn2.microsoft.com/en-us/library/ms686760.aspx; ш Thread Pool API, http://msdn2.microsoft.com/en-us/library/ms686766.aspx; • Using the Thread Pool Functions, http://msdn2.microsoft.com/en-us/library/ ms686980.aspx; • Документ «Kernel Enhancements for Windows Vista and Windows Server Longhorn», доступный для загрузки с сайта MSDN по адресу http://www. microsoft.com/whdc/system/vista/kernel-en.mspx.
Изменения в сетевом стеке В клиентской операционной системе Microsoft Windows Vista и сервер ной операционной системе Microsoft Windows Server 2008 появился пол ностью переписанный сетевой стек на уровне TCP/IP (т. н. Next Generation TCP/IP Stack). Если кратко описать изменения в сетевом стеке, они сво дятся к следующим новинкам: слой Dual-IP для поддержки протоколов IPv4 и IPv6, улучшенная поддержка производительности и коррекции ошибок, поддержка аппаратных конфигураций и автонастройки, богатые функции расширяемости на уровне нового программного интерфейса. Новый стек TCP/IP показан на следующем рисунке.
Глава 2 Основные новинки на уровне ядра операционной системы
37
Три основных программных интерфейса, используемых приложениями, сервисами и другими системными компонентами для доступа к новому стеку TCP/IP — это WSK (Winsock Kernel), используемый клиентскими приложе ниями, Windows Sockets, используемый приложениями и сервисами (про граммный интерфейс Windows Sockets использует драйвер AFD — Ancillary Function Driver для выполнения функций на уровне сокетов через TCP/IP) и TDI (Transport Driver Interface), используемый NetBIOS over TCP/IP (NetBT) и другими «устаревшими» клиентами. Для трансляции запросов между TDI и новым стеком TCP/IP используется интерфейс TDX. Новый стек TCP/IP поддерживает программный интерфейс Callout API, который является унифицированным способом для встраивания в стек и модификации данных на уровне пакетов. Данный программный интерфейс является частью Windows Filtering Platform (WFP), обеспечивающей доступ к обработке пакетов на сетевом и транспортном уровнях. Более подробно о Windows Filtering Platform см. «Windows Filtering Platform Architecture Overview» (http://msdn2.microsoft.com/en-us/library/aa366509aspx). Новый стек также поддерживает отсылку и получение фреймов (frames), используя NDIS. Архитектура драйвера новой версии стека TCP/IP, реализованного в файле tcpip.sys, состоит из следующих уровней: • Транспортный уровень — содержит реализации протоколов TCP и UDP, а также механизм для отсылки базовых IP-пакетов, которым не требуется наличие TCP или UDP-заголовков; • Сетевой уровень — содержит реализации протоколов IPv4 и IPv6 в виде уровня Dual IP layer; • Фреймовый уровень — содержит модули для «фрейминга» пакетов IPv4 и IPv6. Существуют модули для интерфейсов IEEE 802.3 (Ethernet), IEEE 802.11 и Point-to-Point Protocol (PPP). Помимо этого существуют модули и для логических интерфейсов, таких, как Loopback Interface, a также интерфейсов туннелирования на основе IPv4, которые часто ис пользуются в технологиях поддержки переключения с IPv4 на IPv6. Более подробно об изменениях в сетевом стеке см. раздел «The Cable Guy» на сайте Microsoft Technet (www.microsoft.com/technet/): • Next Generation TCP/IP Stack in Windows Vista and Windows Server «Longhorn» (/community/columns/cableguy/cg0905.mspx); • Changes to IPv6 in Windows Vista and Windows Server «Longhorn», (/community/columns/cableguy/cgl005.mspx); • Performance Enhancements in the Next Generation TCP/IP Stack, (/community/columns/cableguy/cg 1105.mspx); • Раздел «Next Generation TCP/IP and Networking Components» в документе «Changes in Functionality in Windows Server Code Name "Longhorn"».
38
Глава 2 Основные новинки на уровне ядра операционной системы
Boot Configuration Data В клиентской операционной системе Microsoft Windows Vista и серверной операционной системе Microsoft Windows Server 2008 изменился порядок загрузки операционной системы, по сравнению с предыдущими версиями Windows, использующими NT Kernel. Сначала, при включении компьюте ра, загружается либо BIOS, либо EFI (Extensible Firmware Interface), затем, специальный раздел загрузочного диска, называемый MBR (Master Boot Record), который содержит «код» для загрузки т. н. «загрузочного» сектора соответствующего раздела диска. Этот загрузочный сектор загружает осталь ные блоки и Windows Boot Manager (Filename:Bootmgr) — специальный ком понент операционной системы, который обращается к хранилищу конфи гурационных данных времени загрузки — Boot Configuration Database (этот компонент пришел на смену файлу boot.ini, использовавшемуся в преды дущих версиях операционной системы) и использует информацию из этого хранилища для загрузки операционной системы. Описанный процесс заг рузки операционной системы показан на следующем рисунке.
1
BIOS/EFI ,
:
MBR
l
PBR
Bootmgr, BCD.
winload.exe, ntoskml
Компонент Windows Boot Manager считывает конфигурационные дан ные (Boot Configuration Data) и отображает меню выбора операционной системы, что практически эквивалентно функциональности, предоставляв шейся в предыдущих версиях операционной системы Windows NT ком понентом NTLDR. Для обеспечения единого пользовательского интерфейса на системах, использующих EFI, в которых есть свой менеджер загрузок, Windows Boot Manager для загрузки всех операционных систем на его основе представляется единственной опцией в меню загрузки EFI — по сути, на системах, использующих EFI, Windows Boot Manager является EFI«приложением», хранимым в системном разделе EFI (EFI System Partition). Компонент winload.exe является базовым загрузчиком операционной системы — он вызывается Windows Boot Manager для загрузки ядра опе рационной системы (ntoskrnl.exe) и ряда драйверов, имеющих класс boot. Boot Configuration Data — это база данных для хранения конфигура ционных данных времени загрузки. Как мы отметили выше, она заменяет файл boot.ini, использовавшийся компонентом NTLDR. Конфигурацион ные данные хранятся в файле, который имеет структуру, схожую с реест ром (которая загружается в реестр в ветвь HKLM\BCD00000000), и распо лагаются либо в системном разделе EFI (для компьютеров, использующих EFI), либо в папке \Boot\Bcd на системном томе (для компьютеров, исполь-
Глава 2
Основные новинки на уровне ядра операционной системы
39
зующих BIOS). Данные могут быть изменены либо с помощью специаль ной пакетной утилиты (\Windows\system32\bcdedit.exe), либо непосред ственно через Windows Management Instrumentation (WMI). Две команды утилиты bcdedit.exe позволяют получить информацию о составе BDC. Команда bcdedit (что является эквивалентом указания следующих опций командной строки: bcdedit /enum ACTIVE) возвращает данные о всех эле ментах BDC в порядке их отображения. Например: Windows Boot Manager identifier
{bootmgr}
device description
partition=C:
locale
en-US
Windows Boot Manager
inherit
{globalsettings}
default
{current}
resumeobject displayorder
{d7e21262-743b-11db-9800-9259248b0929}
toolsdisplayorder
{memdiag}
timeout
30
{current}
Windows Boot Loader
identifier
{current}
device
partition=C:
path
\Windows\system32\winload. exe
description
Microsoft Windows Vista
locale
en-US
inherit
{bootloadersettings}
osdevice
partition=C:
systemroot
\Windows
resumeobject
{d7e21262-743b-11db-9800-9259248b0929} Optln
nx
Для получения данных с элементами, представленными в виде GUID (так, как они хранятся в реестре), используем команду bcdedit /enum /V. Например.Windows Boot Manager identifier
{9dea862c-5cdd-4e70-acc1-f32b344d4795}
device
partition=C:
description
Windows Boot Manager
locale
en-US
inherit
{7ea2e1ac-2e6"l-4728-aaa3-896d9d0a9f0e}
default
{d7e2126l-743b-11db-9800-9259248b0929}
вызов winresume.exe; • Опции загрузки предыдущей версии Windows NT через вызов NTLDR; • Опции для загрузки и выполнения «кода*, содержащегося в Volume Boot Record. Конфигурационные данные могут расширяться компаниями-разработ чиками для включения диагностических средств, а также средств восста новления системы после сбоев. Одним из примеров использования новых возможностей загрузки является утилита для проверки работоспособно сти памяти — \Boot\Memtest.exe. Более подробно о Boot Configuration Data см. следующие сетевые ре сурсы: • Boot Configuration Data (BCD), http://msdn2.microsoft.com/en-us/library/ aa362692.aspx; • Boot Configuration Data in Windows Vista, http://www.microsoft.com/whdc/ system/platform/firmware/bcd.mspx. С помощью бесплатной утилиты Vista Boot Pro (http://www.vistabootpro. org/index.php) можно управлять информацией, хранимой в Boot Configu ration Database более наглядно (по сравнению с использованием пакет ной утилиты bcdedit.exe). Далее мы рассмотрим технологии, связанные с управлением инфра структурой и приложениями, выполняющимися на ее основе.
Глава 3
Управление инфраструктурой и приложениями
В современном, постоянно изменяющемся мире очень важно, чтобы все бизнес-приложения и поддерживающая их работу инфраструктура, функ ционировали стабильно и могли отвечать на любые запросы бизнеса. Для решения этой задачи важно, чтобы ошибки, возникающие в приложени ях, максимально быстро диагностировались и исправлялись непосредствен но обслуживающим персоналом, включающим администраторов и ГТ-специалистов без необходимости в эскалации проблем разработчикам при ложений. Для того чтобы бизнес-процессы не прерывались, необходимо чтобы центры обработки данных и бизнес-приложения были максималь но управляемыми и интегрированными в существующую инфраструкту ру. Стратегия Microsoft, состоящая в том, чтобы максимально облегчить создание таких управляемых приложений, называется Dynamic Systems Initiative (DSI). В целом, как технологическая стратегия, DSI распростра няется как на продукты и технологии Microsoft, так и на решения, созда ваемые партнерами. Целью этой инициативы является динамическое рас ширение возможностей сотрудников, процессов и инфраструктуры за счет оптимального использования технологий. Для того чтобы приложения могли управляться через входящие в состав DSI средства, они должны быть спроектированы специальным образом (Design for Operations DFO). Ниже мы рассмотрим, какие технологии, входящие в состав Microsoft Windows Vista и Windows Server 2008, позволяют сделать это возможным. Более подробно об инициативе Dynamics Systems Initiative (DSI) мож но прочитать на специальном разделе сайта Microsoft по адресу http://www. microsoft.com/dsi. Подсистема DSI, предназначенная для управления ин фраструктурой и приложениями — Design for Operations (DFO), поддер живается в рамках направления Patterns & Practices через набор расши рений для Visual Studio 2005 — Visual Studio Management Model Designer (VSMMD) и утилиты Management Model Designer (MMD); более подробно см. http://www.codeplex.com/dfo. Visual Studio Management Model Designer (VSMMD) — это средство для моделирования сценариев слежения за жиз недеятельностью корпоративных приложений и создания соответствую щих средств мониторинга. В состав утилиты входит генератор кода (Instru mentation Helper) и средства проверки соответствия кода заданной моде ли. Также включено руководство по созданию управляемых приложений на платформе Microsoft Windows. Утилита Management Model Designer (MMD) позволяет расширять существующие модели и может служить ос новой для создания пакетов управления (Management Pack) для Microsoft Operations Manager (MOM) и System Center. К технологиям, обеспечивающим создание управляемых приложений, входящим в состав Microsoft Windows Vista и Microsoft Windows Server 2008, относятся: Windows Eventing 6.0, Windows Installer 4.0, Windows PowerShell, Microsoft Management Console 3-0 и Windows Task Scheduler 2.0.
Глава 3 Управление инфраструктурой и приложениями
43
Windows Eventing 6.0 Windows Eventing 6.0 — это обновленная версия технологии для сбора ин формации о событиях, происходящих в системе, и набор программных интерфейсов для записи и н ф о р м а ц и и о событиях в системный журнал Windows. Ключевым изменением в версии 6.0 является возможность за писи в журнал структурированных данных в формате XML — это позво ляет осуществлять поиск и фильтрацию по данным о событиях. Помимо этого, к новинкам в Windows Eventing 6.0 можно отнести: • Манифест для событий на основе XML-документа; • Улучшенная производительность и надежность; • Улучшенное управление журналом; • Улучшенное средство просмотра журнала — Event Viewer; • Возможность перенаправления событий (Event forwarding). Процесс создания управляемых приложений состоит в определении со бытий, генерируемых приложением, информации, включаемой в каждое событие, описания событий на уровне XML-манифеста (используя схему EventManifest) и использования специального компилятора (message compiler, mc.exe) для создания заголовочных, ресурсных и бинарных файлов. Прило жение использует эти файлы совместно с программными интерфейсами Windows Event Log API для публикации событий в системном журнале. Для работы с журналом событий предоставляется утилита с пользова тельским интерфейсом — Event Viewer — компонент Microsoft Management Console (MMC) для управления журналом и просмотра его содержимого и пакетная утилита WevtUtil.exe (находится в каталоге %SystemRoot%\System32). С помощью пакетной утилиты можно получить полный список журналов, поддерживаемых в системе, конфигурационную информацию, список ком понентов, публикующих события (event publishers), установить дополнитель ные компоненты, экспортировать содержимое журнала и т. п. Среди новинок в Event Viewer следует отметить и н т е г р а ц и ю с Task Manager — у пользователей и администраторов появилась возможность ас социации событий, происходящих в системе с запуском задач. Для этого в утилите Event Viewer необходимо выбрать интересующее нас событие и выполнить команду Attach Task to this Event, которая вызовет мастера «Create Basic Task», реализованного в Task Scheduler. После того как базо вая интеграция между событием и задачей будет описана, можно задать более детальные параметры, используя средства настройки задач, реали зованные в Task Scheduler (или включить соответствующую о п ц и ю на последней странице мастера). Созданная нами задача будет автоматичес ки помещена в библиотеку Task Scheduler Library в раздел Event Viewer Tasks.
44
Глава 3 Управление инфраструктурой и приложениями
Event Viewer Дополнительную информацию по Windows Eventing 6.0 можно найти сайте Microsoft по адресу: bttp://msdn2.microsqft.com/en-us/library/aa385780.aspx.
Windows Installer 4.0 Windows Installer — это технология, позволяющая устанавливать и удалять программное обеспечение. Новая версия — Windows Installer 4.0 содер жит ряд расширений, позволяющих упростить установку приложений. К таким расширениям, в частности, относятся: • Автоматическая поддержка Restart Manager; • Совместимость с технологией User Account Control (UAC) при работе под управлением Windows Vista и Windows Server 2008; • Совместимость с Windows Resource Protection (WRP). Для того чтобы воспользоваться возможностями Windows Installer 4.0, необ ходимо создать для вашего приложения Windows Installer Package. Дополни тельную информацию по Windows Installer 4.0 можно найти сайте Microsoft по адресу: http://msdn2.microsoft.com/en-us/library/aa372866.aspx и в блоге продуктовой команды, отвечающей за данную технологию — http:// blogs.msdn.com/windows_installer_team.
^
Глава 3 Управление инфраструктурой и приложениями
45
Windows PowerShell Windows PowerShell — это новая программная оболочка, реализующая фун кцию командной строки и скриптовый язык для платформы Windows. Windows PowerShell поставляется в составе Windows Server 2008, но так же может быть установлена в Windows Vista и Windows XP — требуется наличие в системе Microsoft .NET Framework 2.0. В состав Windows PowerShell входит более 130 стандартных инструмен тов командной строки и проработанный синтаксис команд, обеспечива ющий системным администраторам более легкое управление системой и ускоренное выполнение автоматизированных действий. Windows PowerShell проста в адаптации, изучении и использовании, поскольку работает на основе существующей ГТ-инфраструктуры. Среди основных возможно стей Windows PowerShell отметим: • Полный доступ к библиотеке классов .NET Framework; • Полный доступ к существующей скриптовой инфраструктуре, включая WMI и СОМ; • Объектный вывод; • Встроенная безопасность; •
100%-ая расширяемость.
Для обеспечения управляемости вашего приложения через Windows PowerShell можно либо реализовать механизмы управляемости на осно ве класса .NET, либо создать полнофункциональную команду PowerShell, которая называется командлетом (cmdlet) на любом языке, поддержива ющем создание .NET-компонентов.
Windows Power Shell Дополнительную информацию по Windows PowerShell можно найти сайте Microsoft по адресу: http://msdn2.microsoft.com/en-us/library/aal39691.aspx и в блоге продуктовой команды, отвечающей за данную т е х н о л о г и ю — http://blogs.msdn.com/powershell.
46
Глава 3 Управление инфраструктурой и приложениями
На сайте TechNet Script Center (http://www.microsoJi.com/tecbnet/scriptcenter) представлено большое число примеров использования PowerShell для выполнения различных задач администрирования системы. Помимо это го, для ГТ-специалистов существует специальный ресурс, посвященный всем вопросам, связанным с управлением системой (включая Microsoft System Management Server, Microsoft Operations Manager, Scripting, Group Policy, PowerShell и т. д.) — этот ресурс доступен по адресу http://myitforum.com. Windows PowerShell поддерживается большим числом партнеров, сре ди которых отметим: • FullArmor {http://www.fullarmor.com) — расширение PowerShell для уп равления Group Policy; • /n Software (http://www.nsoftware.com/powershell) — расширение PowerShell для управления сетевыми функциями системы; • PowerGadgets (http://www.powergadgets.com) — средства для отображе ния, исследования и мониторинга корпоративных данных из практи чески любого источника, включая традиционные базы данных, тексто вые файлы и т. п.; • Quest Software (http://www.quest.com) — графический интерфейс для Windows PowerShell — PowerGUI, командлеты для Active Directory. Ком пания Quest Software также поддерживает специальный сайт для раз работчиков, интересующихся технологией Windows PowerShell — http://powergui.org/index.jspa; • Sapien Technologies (http://wwwsapien.com) — поддержка PowerShell в визуальной среде разработчика — PrimalScript 4.1.
Microsoft Management Console 3.0 Microsoft Management Console 3.0 (MMC 30) — это единый интерфейс для администраторов, объединяющий различные утилиты для управления системой и ее отдельными компонентами, входящие в состав Windows. Преимущество использования ММС 30 заключается в том, что вы можете создавать утилиты для управления вашими приложениями в рамках ин терфейса, знакомого и понятного большинству администраторов и ГТспециалистов. К основным новинкам ММС 30 можно отнести-. • Полную поддержку .NET Framework; • Существенное, по сравнению с предыдущими версиями сокращение кода, требуемого для написания административных утилит для ММС; • Хостинг Windows Forms; • Улучшенная надежность и изоляция отдельных компонентов Snapin; • Улучшенная функциональность и расширенные графические функции.
Глава 3 Управление инфраструктурой и приложениями
47
Microsoft Management Console 3.0
Дополнительную информацию по Microsoft Management Console 3-0 можно найти сайте Microsoft по адресу: http://msdn2.microsoft.com/en-us/ library/ms692740.aspx.
Windows Task Scheduler 2.0 Улучшенная версия Windows Task Scheduler — Windows Task Scheduler 2.0 позволяет более предсказуемо, надежно и безопасно запускать задачи по расписанию. К новым возможностям Task Scheduler можно отнести под держку управления системой и приложениями, синхронизацию задач и возможность активации задач на основе системных событий. Рекоменду ется использовать Task Scheduler для решения всех задач, связанных с за пуском процессов по заданному расписанию. К улучшенным возможностям Task Scheduler 2.0 можно отнести следу ющие: • Активизация и запуск задач на основе системных событий в Event log; • Возможность задания более одного механизма активации для задачи; • Улучшенная безопасность с поддержкой изоляции процессов; • Улучшенная надежность и производительность; • Поддержка скриптовых языков и управления из командной строки; • Улучшенный мониторинг задач.
48
Глава 3 Управление инфраструктурой и приложениями
Задачи, предназначенные для выполнения по расписанию, создаются либо с помощью специального мастера, либо программно. В первом слу чае у пользователей и администраторов есть возможность создания либо «простой» задачи, используя мастер «Create Basic Task», либо задачи с воз можностью максимальной настройки всех параметров — для этого исполь зуется мастер «Create Task». Во втором случае — при программном созда нии задач — мы должны выполнить 2 шага. Первый шаг — это создание специального XML-документа, описывающего нашу задачу (на основании схемы с пространством имен http://schemas.microsoft.com/windows/2004/ 02/mit/task) и сохранение этого документа в библиотеке Task Scheduler Library, второй — регистрация нашей задачи в системе, что позволит Task Scheduler «увидеть» нашу задачу и активизировать ее согласно заданному расписанию. Регистрация может быть выполнена либо командой Import Task (с указанием XML-файла, описывающего наше расписание), либо программно — через соответствующий СОМ-интерфейс. Рассмотрим, как выглядит XML-описание задачи, запускающей дефрагментацию диска (ути лита defrag.exe) каждую среду в 01:00, начиная с 01/01/2005 при условии, что компьютер находится в состоянии простоя:
<Source>Microsoft Corporation Microsoft Corporation This task defragments the computers hard disk d r i v e s . < /
Глава 3
Управление инфраструктурой и приложениями
Description Microsoft\Windows\Defrag\ScheduledDefrag <StartBoundary>2005-01-01T01:00:00 <Enabled>true <ScheduleByWeek> <Wednesday /> <WeeksInterval>K/WeeksInterval> Principal id="LocalSystem"> <UserId>SYSTEM HighestAvailable <Settings> PT3M <WaitTimeout>PT31536000S <StopOnIdleEnd>true true <MultipleInstancesPolicy>IgnoreNew true <StopIfGoingOnBatteries>true true <StartWhenAvailable>true false true <Enabled>true false true <WakeToRun>false <ExecutionTimeLimit>PT72H 7 <Exec>
49
50
Глава 3 Управление инфраструктурой и приложениями
%windir%\system32\defrag.exe -c -i
He вдаваясь в подробности, обратим внимание на то, как отдельные вкладки мастера «Create Task» соотносятся с элементами XML-документа. Вкладка General позволяет нам задать информацию для элементов
и , вкладка Triggers описывает элемент , вкладка Actions описывает элементы и <Ехес>, а вкладки Condi tions и Settings задают значения элемента <Settings> и его вложенных эле ментов. Таким образом, при необходимости программного создания той или иной задачи рекомендуется использовать мастер «Create Task» для генерации соответствующего XML-файла — это гарантирует создание и заполнение всех необходимых для описания задачи элементов и отсут ствие ошибок в XML-файле. Дополнительную информацию по Windows Task Scheduler 2.0 можно найти сайте Microsoft по адресу: http://msdn2. microsoft.com/en-us/library/aa383614.aspx.
Глава 4
Windows PowerShell. Коротко о главном
В этом обзоре мы рассмотрим использование ключевых возможностей Windows PowerShell для выполнения различных административных задач. Начнем с обсуждения встроенных средств ознакомления с возможностя ми Windows PowerShell.
Знакомство с возможностями Windows PowerShell Итак, вы — администратор, которому необходимо в кратчайший срок ос воить Windows PowerShell. Первое, что приходит в голову (естественно, помимо обращения к документации и справочной системе) — восполь зоваться командой Help.-
Внимательно изучив выведенную на экран информацию, мы придем к пониманию следующих концептуальных вещей — в Windows PowerShell существуют алиасы, командлеты, провайдеры, а также справочные файлы. Алиасы (alias) служат для упрощения ввода команд (например, clc — это алиас команды Clear-Content), командлеты (cmdlet) представляют собой реализацию всех встроенных в Windows PowerShell команд, провайдеры (provider) обеспечивают доступ к файловой системе, реестру, хранилищу сертификатов и т. п., а справочные файлы (helpfile) используются для получения дополнительной информации. Для получения подробного опи сания команды используется следующий синтаксис: PS C:> Help Get-Command
Глава 4 Windows PowerShell. Коротко о главном
53
В результате выполнения этой команды мы получим полное описание команды Get-Command, включая ее назначение, синтаксис, опции и т. п. wmdcwip... i
_|п|х|
Для получения списка всех встроенных команд используем следующий синтаксис: PS С:> Get-Command
Обратим внимание на то, что все команды состоят из глагола и прила гательного (например, Get-Content, Export-Console) и все команды поддер живают единую систему именования — например для завершения чего-либо всегда используется глагол Stop, а не Kill, Terminate, Halt и другие синони мы — это существенно упрощает изучение возможностей PowerShell. -•0,1 *1
Обратим внимание на команду Get-Service. Она служит для получения списка всех сервисов, запущенных на данном компьютере. Например, PS C:> Get-Service
54
Глава 4 Windows PowerShell. Коротко о главном
возвращает следующий список: «Shell
Для получения списка процессов, запущенных в настоящий момент на компьютере, используется команда Get-Process: PS C:> Get-Process
В Windows PowerShell поддерживается автоматическое завершение вво да — чтобы убедиться в этом, введите Get-P и нажмите клавишу TAB, вы получите возможность выбора всех команд, начинающихся с введенных символов. Для того чтобы получить информацию только об одном процессе, в качестве аргумента команды Get-Process задается имя этого процесса: PS C:> Get-Process explorer
Глава 4 Windows PowerShell. Коротко о главном
55
Для того чтобы получить список всех процессов, названия которых на чинаются с определенного символа, достаточно указать этот символ и "*": D
S C:> Get-Process i*
Обратим внимание на колонки, в которых содержится информация — Handles, NMP(K) и т. п. По умолчанию информация выводится в виде таб лицы, но на самом деле, все команды возвращают объекты. Эти объекты могут быть переданы на вход другим командам, используя символ "|": PS C:> Get-Process i* I f o r m a t - l i s t
Теперь список процессов доступен в другом представлении. Для полу чения подробной информации о различных форматах можно использо вать следующую команду: PS C:> Help format *
56
Глава 4 Windows PowerShell. Коротко о главном
Другие возможные форматы: PS С:> Get-Process i* | format-wide иРБ С:> Get-Process i* | format-custom
Так как на выходе мы всегда получаем объект, мы можем манипулировать им для выполнения дополнительных операций. Например, фильтрации: PS C:> Get-Process | where {$_.handlecount -gt 400} или сортировки: PS C:> Get-Process | where {$_.handlecount -gt 400} | s o r t - o b j e c t Handles
Может возникнуть вполне резонный вопрос — а откуда мы узнали, что у объекта, описывающего процесс, есть свойство handlecount? Для полу чения списка всех свойств объекта используем следующую команду: PS C:> Get-Process | Get-Member
О Windows Po*erShtll
__]д|_xj
Выполним команду Get-Process | Get-Member Company — при форма тировании по умолчанию мы не сможем получить желаемые данные. Пре образуем нашу команду в: PS C:> Get-Process | Get-Member Company | Format-List
Глава 4 Windows PowerShell. Коротко о главном
57
и выполним команду, в которой сгруппируем список процессов по назва нию компании, описанию и числу ссылок: PS C:> Get-Process | sort-object Company | format-table -Group Company name, description, handles
Г
Команда stop-process позволяет остановить запущенный процесс. На пример: PS C:> Get-process notepad | stop-process
Такая возможность не всегда является безопасной, поэтому лучше ис пользовать такие команды с опцией whatif, которая показывает, что про изойдет при выполнении той или иной команды, но реально команда не выполняется: PS C:> Get-Process notepad | stop-process -whatif
Либо можно указывать на необходимость подтверждения перед выпол нением команды: PS C:> Get-Process notepad | stop-process -confirm
58
Глава 4 Windows PowerShell. Коротко о главном
В последнем примере мы получаем описание действий, которые выпол няет команда и можем выбрать, подтверждать ее выполнение или нет. Помимо этого, можно создавать собственные пакетные файлы — фай лы с расширением .psl, в которые помещаются команды PowerShell, и вы полнять такие файлы. Для соблюдения безопасности, пакетные файлы дол жны быть подписаны. При тестировании можно отключить требование по запуску только подписанных файлов: PS C:> Set-ExecutionPolicy Unrestricted
Но после окончания тестирования не забудьте снова включить данную опцию с помощью следующей команды: PS C:> Set-ExecutionPolicy AllSigned
После того как мы познакомились с основами Windows PowerShell, давайте посмотрим, как с помощью данной утилиты можно решать раз личные административные задачи.
Работа с файловой системой Одна из частых задач, с которой сталкиваются многие 1Т-специалисты, связана с манипуляцией с файлами — копирование, перемещение, пере именование, удаление файлов и каталогов. На следующем рисунке пока заны основные команды Windows PowerShell, используемые для манипу ляций с файловой системой: new-item, copy-item, move-item, rename-item и remove-item.
В отличие от других оболочек, в которых существует набор команд для файлов (например, delete или rename), а другой набор — для каталогов (на-
Глава 4 Windows PowerShell. Коротко о главном
59
пример, rd или md), в Windows PowerShell единый набор команд использу ется как для манипуляций с файлами, так и для манипуляций с каталогами. Первая команда в нашем примере — new-item TextFiles -itemtype direc tory используется для создания нового подкаталога TextFiles в текущем ка талоге. Если опустить параметр -itemtype, то Windows PowerShell спро сит, что мы создаем — файл (Ше)или каталог (directory). Отметим, что у команды new-item есть алиас — ni. В сокращенном виде наша первая ко манда будет выглядеть так: PS C:> ni TextFiles -itemtype directory Затем мы используем команду copy-item (алиасы — cpi, cp, сору) для копирования всех файлов с расширением *.txt в подкаталог TextFiles. Если использовать данную команду в пакетном файле, имеет смысл сделать ее более понятной, указав параметры - p a t h (источник) и -destination (при емник): PS C:>copy-item -path ' , \ * . t x t ' -destination '.\TextFiles' После выполнения команды копирования, мы используем команду setlocation для перехода в подкаталог TextFiles. С помощью команды renameitem мы переименовываем файл psdemo.txt в psdemo.bak. При необходи мости, мы можем использовать опции - p a t h и -newName. После того как файл переименован, мы переносим его на один уровень вверх, используя команду move-item. Затем мы используем команду set-location, а точнее — ее алиас si для перехода в другой каталог. Наши манипуляции с файловой системой мы завершаем удалением всего каталога TextFiles, используя команду remove-item. Так как в каталоге TextFiles содержатся файлы, мы используем опцию -recurse. Если эта опция не указана, Windows PowerShell запросит подтверждение перед выполнением команды remove-item.
Работа с реестром При выполнении различных настроек и попытках обнаружения каких-либо параметров нам иногда приходится обращаться к системному реестру в поисках ключей, значений и т. п. Используя возможности Windows PowerShell эта задача может быть решена достаточно простым способом. Воз можности Windows PowerShell показаны на следующем экране.
60
Глава 4
Windows PowerShell. Коротко о главном
Наша первая команда использует алиас si для выполнения команды setlocation, изменяющей паше текущее местоположение с файловой систе мы на ветвь HKEYCURRENTUSER в системном реестре: PS C:\> si hkcu:
Отметим, что, как и в случае работы с файловой системой, PowerShell использует специального провайдера для доступа к реестру. Аналогами приведенной выше команды являются команды: PS C:\> si registry:hkcu и PS C:\> si hkey_current_user
Следующая команда загружает содержимое всей ветви реестра HKEY_ CURRENTUSER в переменную reg: PS HKCU:\> $reg = gci . -rec -ea s i l e n t l y c o n t i n u e
Для этого мы используем команду get-childitem (алиас — gci), которая работает аналогично работе с файловой системой. Первый аргумент этой команды — ".", указывает на то, что мы хотим получить содержимое теку щей ветви реестра — HKEY_CURRENT_USER. Второй аргумент является со кращением от опции -recurse иуказывает на то, что нам нужен рекурсив ный сбор данных из всех подветвей текущей ветви реестра. И, наконец, третий аргумент -еа silentlycontinue указывает на то, что команда должна продолжать выполняться даже в случае возникновения ошибок, связанных с недостатком прав доступа к определенным подветвям реестра. Следующая команда в нашем примере: PS HKCU:\>$s = $гед | % { i f (др $_.pspath) -match 'PowerShell' ){$_.pspath}}
копирует из реестра данные, содержащие строку 'PowerShell'. Мы начина ем с того, что берем объект reg и перенаправляем его в команду %, кото рая является алиасом команды for-each. Она выполняет рекурсивный об ход всех элементов реестра, находящихся в объекте reg и на каждом шаге сохраняет элемент в специальном объекте PowerShell с именем '__'. В фи гурных скобках мы указываем действия, которые должны выполняться на каждом шаге выполнения команды for-each. Внутри блока for-each мы используем проверку if для того, чтобы узнать, соответствует ли текущая запись реестра и ее свойство pspath, которые мы получаем через обращение к команде get-itemproperty (через алиас gp) нашему критерию — наличию строки 'PowerShell'. Если соответствие найдено, мы возвращаем значение свойства pspath. Все найденные соответствия сохраняются в объекте s. Работу с реестром мы завершаем перенаправлением результатов поиска в команду select-object (через алиас select) и показываем два первых най-
Глава 4 Windows PowerShell. Коротко о главном
61
денных результата. В качестве упражнения вы можете перенаправить фи нальные результаты в файл, используя команду out-file.
Доступ к процессам Еще одна задача, с которой могут столкнуться IT-специалисты, связана с обнаружением аномалий в работе системы, например процессов, которые потребляют большие объемы памяти. Давайте посмотрим, как эта задача решается средствами Windows PowerShell. ••s PowwShtH
-lP|x|
В первой команде мы сохраняем информацию о всех процессах, запу щенных на данном компьютере в переменной lallprocs: PS C:\> Sallprocs = get-process
После этого мы перенаправляем полученную информацию команде for each, которая также может быть указана алиасом % или foreach. Данная команда перебирает все объекты, связанные с процессом, и на каждом шаге сохраняет информацию во внутреннем объекте $_. Этот объект можно условно назвать «текущим объектом». В качестве параметров для коман ды for-each мы указываем операцию сравнения значения свойства virtualmemorysize с интересующим нас размером памяти (20 Мбайт в нашем примере). Если значение этого свойства для текущего объекта больше заданного, мы выводим название процесса на экран. Отметим, что в PowerShell поддерживаются основные сокращения для указания размеров — KB, MB, GB, что очень полезно, т. к. не нужно «считать нули» при указании объемов памяти, дисков и т. п.
Доступ к системному журналу При попытке обнаружения причин сбоев мы часто обращаемся к систем ному журналу, в котором хранится множество полезной информации о
62
Глава 4 Windows PowerShell. Коротко о главном
событиях, происходивших в системе. Обычно для исследования системного журнала используется утилита Event Viewer (eventvwr.exe). В PowerShell мы можем воспользоваться встроенными командами, например командой geteventlog для быстрого исследования содержимого системного журнала.
Наша первая команда загружает ключевую информацию из системно го журнала: PS C:\> get-eventlog - l i s t
Без использования опции -list PowerShell запросит точного указания названия системного журнала. В нашем примере мы видим несколько точек входа в системном журнале: Application, Internet Explorer, System, Windows PowerShell и т. п. Наша следующая команда извлекает записи из систем ного журнала, которые имеют тип "Error": PS C:\> $bad = get-eventlog "System" | where-object { $_.EntryType -eq "Error" }
Мы используем команду get-eventlog, которой указываем параметр "Sys tem" для извлечения только системных записей — мы могли бы более четко задать это, использовав параметр -logName. Содержимое переменной $bad передается на вход команде where-object для фильтрации только интере сующих нас записей. В качестве аргументов команды where-object мы ука зываем на то, что мы ищем только записи, у которых свойство EntryType равно "Error". Мы завершаем исследование системного журнала выводом на экран пяти последних записей об ошибках, используя для этого команду select-object с параметром -last: PS C:\> $bad | select-object -last 5
Глава 4
Windows PowerShell. Коротко о главном
63
Доступ к W M I Как мы знаем, Windows Management Instrumentation (WMI) — это реали зация компанией Microsoft стандарта Common Information Model (CMI). В большинстве случаев, WMI используется IT-специалистами для получе ния информации об аппаратном и программном обеспечении, установ ленном на данном компьютере. Как мы увидим в следующем примере, ис пользование Windows PowerShell существенно облегчает доступ к инфор мации, хранимой в WMI . 1
-„".;*;
В первой строке мы используем команду get-wmiobject для получения информации о файле, используемом для свопинга памяти на диск и со хранения этой информации в переменной $pfu: PS C:\> $pfu = get-wmiobject - class 'win32_pageFileUsage'
Далее мы используем команду get-member для определения свойств, доступных для класса win32_pageFileUsage: PS C:\> $pfu | get-member -membertype property | where_object { $_.name -nomatch ' _ •
>
Обычно для нахождения информации по определенному классу мож но использовать команду get-member без указания параметров, но в на шем примере нас интересуют только доступные свойства и только те из них, которые не содержат в имени символ подчеркивания. У вниматель ного читателя может возникнуть вопрос, а как мы узнали о существова нии класса win32_pageFileUsage? Ведь известно, что в WMI поддержива ется более тысячи классов, помимо этого, ряд приложений добавляет свои классы. Вы можете использовать команду: PS C:\> get-wmiobject - l i s t
64
Глава 4 Windows PowerShell. Коротко о главном
для получения списка всех существующих в системе классов. После того как мы определили доступные нам свойства класса, мы выводим содер жимое интересующих нас свойств на экран: PS C:\> $pfu.caption; $pfu.currentusage
Вторая часть нашего примера посвящена другому классу — win32_ DiskDrive, в котором хранится информация о дисках, установленных в системе. Этот класс — пример WMI-класса, содержащего более одного объекта. В нашем примере мы определяем значение свойства caption пер вого диска, установленного в системе: PS C:\> $dd[0].caption
Использование XML-файлов В последнее время XML-файлы все чаще используются для хранения кон фигурационной информации. По мере того как данные в XML-файле на капливаются, он становится все менее удобным для прочтения. Ниже мы посмотрим, как использовать функции Windows PowerShell для работы с XML-файлами. Для примера возьмем конфигурационный файл Windows Calendar, ко торый выглядит так: - - <X-Root? '*ROOT»' - 'alexeif's Calendar* OxOOCCFFCC <£nabled >True <Expanded >False <.'VCalendar>
и выполним над ним следующие манипуляции:
В первой строке мы загружаем содержимое всего XML-файла в пере менную, используя команду get-content: PS C:\> [xml] $doc = get-content ".\settings.xml"
Обратим внимание на использование типа данных [xml], если не ука зать использование данных этого типа, в переменную будет загружен просто текст.
Глава 4 Windows PowerShell. Коротко о главном
65
Во второй строке мы выбираем определенную ветвь XML-файла — для этого используется метод selectnodes объекта, хранящего XML-данные и XPath-описание адреса ветви: PS C:\> Ssettings = $doc.selectnode('CalendarSettings/X-Root/VCalendar')
После этого мы используем команду foreach-object для получения зна чения свойства Name для всех элементов в данной ветви.
Заключение Выше мы рассмотрели основные возможности Windows PowerShell для упрощения задач, возникающих перед ГТ-специалистами. Как мы знаем, часто эти задачи решались с помощью скриптового языка VBScript. В Windows PowerShell есть возможность использования существующего кода на VBScript — таким образом миграция существенно упрощена.
В приведенном выше примере показано, как можно использовать су ществующий код на VBScript в PowerShell. В первой строке мы создаем новый СОМ-объект, который представляет собой ядро выполнения скриптовых программ — ScriptControl. Затем мы указываем, что будем исполь зовать язык Visual Basic Script. В третьей строке задается собственно код на VBScript — в нашем примере это вызов функции MsgBox, но в реаль ной жизни в переменную можно, например, загрузить код и файла. И, на конец, в последней строке мы добавляем код на VBScript в наш объект — и код поступает на выполнение.
Сетевые ресурсы PowerShell /1 основная страница: • http://www.microsoft.com/windowsserver2003/technologies/management/ powershell/default.mspx Примеры программ: •
http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
66
Глава 4 Windows PowerShell. Коротко о главном
Блог команды разработчиков продукта: • http://blogs.msdn.com/PowerShell Утилиты, редакторы и дополнения: • http://www.powershell.com PowerShell SDK: • http://msdn2.microsoft.com/en-us/library/ms714469.aspx Блог Дмитрия Сотникова из компании Quest: • http://dmitrysotnikov.wordpress.com PowerGadgets — пример неограниченных возможностей расширения PowerShell: • http://powergadgets.com
Глава 5
Windows Server 2008 к а к сервер п р и л о ж е н и й
В этой части мы начнем рассмотрение Windows Server 2008 в роли сер вера приложений. Роль Application Server представляет собой интегриро ванную среду для развертывания и выполнения серверных бизнес-прило жений. Чаще всего такие приложения разрабатываются либо внутри орга низации для решения каких-то специфических бизнес-задач, либо при обретаются у независимых разработчиков программного обеспечения (ISV, Independent Software Vendor). Обычно такие приложения используют одну или более следующих технологий, сервисов и компонентов: Internet Infor mation Services (IIS), Microsoft .NET Framework, ASP.NET, COM+, Message Queuing, веб-сервисы на основе Windows Communication Foundation (WCF).
История сервера приложений История сервера приложений от Microsoft началась более десяти лет на зад, в 1986 году, когда в рамках NT 4.0 Option Pack был выпущен продукт Microsoft Transaction Server 1.0 (кодовое название «Viper»). MTS позволял развертывать СОМ-компоненты в контейнеры и задавать их различные транзакциопные уровни. За время, прошедшее с момента выпуска Windows NT 4.0, произошла смена нескольких поколений подходов к созданию приложений — от архитектуры «клиент/сервер» до многозвенной архи тектуры и федеративных систем (Federated Systems). Технологии, обеспе чивающие поддержку каждой такой архитектуры, также претерпели оп ределенные изменения — от объектно-ориентированного подхода (инкап суляция, наследование и полиморфизм), популярного в 1980-х, до компо нентно-ориентированного в 1990-х (независимость от месторасположе ния, тесное связывание, метаданные в режиме выполнения) и сервис-ори ентированного уже в наше время (использование сообщений, схемы, кон тракты, политики, межплатформенность). Соответствующим образом по полнялись компоненты сервера приложений — от Microsoft Transaction Server до СОМ+ и Enterprise Services, на смену которым пришли .NET Frame work и Windows Communication Foundation. Windows Server 2008 продолжает поддерживать роль сервера приложе ний как одну из ключевых и содержит ряд улучшений и изменений, кото рые мы рассмотрим ниже.
Сервер приложений в Windows Server 2008 Основные изменения и улучшения для роли сервера приложений заклю чаются в упрощении установки и конфигурации роли (что, в прочем, от носится ко всем ролям, поддерживаемым в Windows Server 2008). Новый «мастер» Add Roles Wizard, реализованный в Server Manager, позволяет
Глава 5 Windows Server 2008 как сервер приложений
69
выбрать сервисы и дополнительные функции, необходимые для обеспе чения работоспособности бизнес-приложений, установка сервера прило жений с настройками по умолчанию — Application Server Foundation вклю чает .NET Framework 3.0. Также для роли «сервер приложений» устанавли вается веб-сервер — Internet Information Services (IIS) 7.0 и доступны сер висы Windows Process Activation Service (WAS) — данный сервис позволя ет активизировать сервисы Windows Communication Foundation (WCF) no протоколу HTTP, через TCP, Named Pipes и Message Queue и Net.TCP Port Sharing — позволяет нескольким WCF-приложениям использовать один TCP-порт для получения сообщений. Помимо этого, доступны такие сер висы, как СОМ+ Network Access для удаленного вызова СОМ+ приложений, Distributed Transactions и MSMQ.
Application Server Foundation Application Server Foundation — это группа технологий, устанавливаемых по умолчанию при выборе роли «сервер приложений». В основе Application Server Foundation лежит библиотека классов .NET Framework 3.0. В составе Windows Server 2008 поставляется библиотека классов .NET Framework 2.0 — она дос тупна для всех ролей. В .NET Framework 2.0 входит Common Language Runtime (CLR) — ядро выполнения кода, написанного на «управляемых» языках — С # , VB.NET и ряде других, обеспечивающее безопасное выполнение кода, упрощенное развертывание, межъязыковое взаимодействие и обширная библиотека классов. Application Server Foundation добавляет к базовым фун кциям .NET Framework 2.0 ряд расширений, реализованных в .NET Frame work 3-0. К таким расширениям относятся: Windows Communication Founda tion (WCF), Windows Workflow Foundation (WF) и Windows Presentation Foundation (WPF). Из этих трех ключевых компонентов .NET Framework 3.0 WCF и WF часто используются как для серверных, так и для клиентских приложений, тогда как WPF в основном используется только на клиенте и в данном обзоре не обсуждается — более подробно о Windows Presentation Foundation см. соответствующий раздел сайта MSDN по адресу: http://msdn2. microsoft.com/en-us/netframework/aa663326.aspx и раздел сайта netfx3 по адресу http://wpf.netfx3.com/.
Windows Communication Foundation Windows Communication Foundation (WCF) — это унифицированная про граммная модель для построения приложений, использующих веб-сервисы для коммуникации (connected applications). Такие приложения создаются на основе архитектуры Service Oriented Architecture (SOA) и часто назы ваются сервис-ориентированными приложениями. Разработчики могут использовать WCF для создания надежных, безопасных, транзакционных веб-сервисов, которые могут общаться с другими сервисами и приложе-
70
Глава 5 Windows Server 2008 как сервер приложений
ниями, реализованными на различных платформах. Таким образом появ ляется возможность создания приложений, потребляющих сервисы, «со ставлять» приложения из сервисов, расширять функциональность суще ствующих приложений и реализовывать механизмы интеграции между приложениями и сервисами. WCF поддерживает все современные техно логии, используемые для создания распределенных приложений — СОМ+ и .NET Enterprise Services, Message Queuing, .NET Remoting, ASP.NET Web Services и Web Services Enhancements (WSE). Более подробно о Windows Communication Foundation см. соответству ющий раздел сайта MSDN по адресу: http://msdn2.microsoft.com/en-us/ netframework/aa663324 и раздел сайта netfx3 по адресу http://wcf.netfx3.com.
Windows Workflow Foundation Windows Workflow Foundation (WF) — это программная модель и ядро вы полнения приложений, использующих т. н. «потоки работ» (workflow). Поток работ представляет собой набор активностей, описывающих реаль ные бизнес-процессы. Потоки работ обычно создаются и отрабатывают ся графически с помощью соответствующих инструментов. В описании потоков работ обычно используется т. н. «модель» и включенные в нее отдельные элементы потока (активности) могут выполняться как программ но, так и вручную. Несмотря на то, что простые потоки работ могут быть описаны и реализованы с помощью традиционных языков программиро вания, таких, например, как серия шагов, и условий их выполнения, бо лее сложные, реалистичные workflow требуют соответствующих средств дизайна, разработки и выполнения. Таким образом, включенные в Windows Workflow Foundation графические средства создания моделей, библиоте ки предопределенных активностей и средства выполнения потоков работ максимально упрощают реализацию сложных, комплексных сценариев, позволяющих управлять активностями как программно, так и вручную. Можно выделить следующие ключевые сценарии использования Windows Workflow Foundation: Поддержка потоков работ в бизнес-приложениях; • Реализация условных переходов для экранов, страниц, диалоговых панелей в зависимости от действий пользователя; • Потоки работ, ориентированные на работу с документами; • Управление действиями вручную, например отсылка и получение элек тронной ПОЧТЫ; • Создание композитных потоков работ для сервис-ориентированных приложений; Создание потоков работ, управляемых бизнес-правилами; • Реализация потоков работ для управления системой.
Глава 5 Windows Server 2008 как сервер приложений
71
Более подробно о Windows Workflow Foundation см. соответствующий раздел сайта MSDN по адресу: http://msdn2.microsoft.com/en-us/netframework/ aa663328 и раздел сайта netfx3 по адресу http://wf.netfx3.com/. Более подробно про .NET Framework 3-0 — .NET Framework Developer Center по адресу: http://msdn2.microsoft.com/en-us/netframework/default. aspx, а также специализированный сайт http://www.netfx3.com.
Дополнительные сервисы Помимо Application Server Foundation можно добавить к серверу прило жений ряд дополнительных сервисов, к которым относятся: веб-сервер, удаленный доступ к сервисам СОМ+, Windows Process Activation Service, Net.TCP Port Sharing и поддержка распределенных транзакций.
Веб-сервер Используя данную опцию, можно установить веб-сервер — Internet Infor mation Services версии 7.0. Данная версия является существенно перера ботанной версией веб-сервера, обладающей повышенной улучшенной производительностью, безопасностью, управляемостью, надежностью, модульностью и масштабируемостью. К основным преимуществам исполь зования Internet Information Services можно отнести возможность хостинга в рамках сервера приложений внутренних и внешних сайтов, веб-серви сов и компонентов со статическим и динамическим наполнением, возмож ность выполнения приложений на ASP.NET с доступом к ним из веб-бра узера и поддержку выполнения веб-сервисов, созданных как средствами Windows Communication Foundation, так и ASP.NET Дополнительную информацию о Internet Information Services можно получить на специальном сайте, посвященном IIS 7.0, расположенном по адресу: http://www.iis.net. Более подробно о новом веб-сервере мы поговорим в следующей час ти нашего обзора.
Удаленный доступ к сервисам СОМ+ СОМ+ Network Access — это сервис, обеспечивающий удаленный вызов приложений, созданных с применением технологии СОМ+ и компонен тов Enterprise Services. Такие приложения часто называют «компонентами Enterprise Services». Данный сервис впервые появился в Windows 2000 Server и продолжает поддерживаться в Windows Server 2008. Приложения, созда ваемые с использованием новейших технологий, обычно используют WCF для поддержки удаленных вызовов, т. к. WCF обеспечивает межплатфор менное взаимодействие.
72
Глава 5 Windows Server 2008 как сервер приложений
Windows Process Activation Service Данная опция добавляет сервис, называемый Windows Process Activation Service (WAS). Используя WAS, можно динамически запускать и останав ливать приложения, которые используют сообщения, получаемые из сети по HTTP, Message Queuing, TCP и Named Pipes. Динамический запуск и остановка приложений означает более эффективное использование ре сурсов сервера. WAS является новинкой, впервые появившейся в Windows Server 2008.
• Net.TCP Port Sharing Данная опция добавляет сервис, известный под названием Net.TCP Port Sharing Service, который является нрвым сервисом в Windows Server 2008. Этот сервис позволяет нескольким приложениям использовать один ТСРпорт для получения входящих сообщений по соответствующему прото колу. Данный сервис принимает запросы и автоматически перенаправля ет их соответствующим сервисам в зависимости от адреса получателя. Например, сервис-ориентированные приложения, построенные на осно ве WCF, могут использовать один порт. Разделение портов между несколь кими приложениями является частым требованием при использовании межсетевых экранов (firewall) или при ограничениях на число одновре менно открытых портов или когда требуется одновременная работа не скольких экземпляров WCF-приложения. Совместное использование порта (мультиплексирование) работает только в том случае, когда WCF-прило жения используют протокол net.tcp для входящих коммуникаций.
Распределенные транзакции Приложения, выполняющие обновления в различных базах данных или в других транзакционных ресурсах, должны поддерживать транзакции — все обновления либо успешно выполнены, либо все отменены. Поддержка распределенных транзакций в Windows Server 2008 обеспечивает выпол нение этих требований. Отметим, что распределенные транзакции впер вые стали поддерживаться в Microsoft Windows NT Server 4.0.
Microsoft Message Queue 4.0 В состав Windows Server 2008 также входит новая версия коммуникацион ной технологии на основе обмена сообщениями, распространяемыми через очереди — Microsoft Message Queue 4.0. Среди новинок в данной версии от метим появление подочередеи, возможность обработки «отравленных» со общений, а также удаленное получение сообщений в рамках транз-акций. Использование подочередеи позволяет создавать логические разделы для физических очередей. С помощью подочередеи возможна реализация
Глава 5 Windows Server 2008 как сервер приложений
73
следующих сценариев: группировка отдельных сообщений для их более эффективной обработки и возможность вынесения сообщений, которые не могут быть обработаны в специально созданную для таких случаев подочередь. Более подробно о подочередях см. на сайте MSDN по адресу: http://msdn2.microsoft.com/en-us/library/ms711414.aspx. Так называемые «отравленные» сообщения — это сообщения, число по пыток обработки которых превысило заданный максимум. В MSMQ 4.0 появилась возможность переноса приложений из основной очереди в очередь, называемую retry queue. Это позволяет приложениям продолжить обработку сообщений из основной очереди и позднее вернуться к обра ботке «отравленного» сообщения. Более подробно о работе с «отравлен ными» сообщениями см. на сайте MSDN по адресу: http://msdn2.microsoft. com/en-us/library/ms703179.aspx. Удаленное получение сообщений в рамках транзакций представляет собой транзакционное получение сообщения из удаленной очереди. В предыдущих версиях Message Queuing (MSMQ) такая возможность не под держивалась и Microsoft рекомендовала не использовать доступ к удален ным очередям вне транзакции. Более подробно о работе с удаленными очередями см. на сайте MSDN по адресу: http://msdn2.microsoft.com/en-us/ library/ms700128.aspx.
Версии Windows Server 2 0 0 8 Роль Application Server поддерживается во всех изданиях Windows Server 2008 — Windows Server 2008 Standard, Windows Server 2008 Enterprise, Win dows Server 2008 Datacenter, Windows Server 2008 for Itanium-Based Systems, но не доступна в издании Windows Web Server 2008.
Глава 6
Windows Server 2008 к а к веб-сервер
В этой части мы продолжим рассмотрение Windows Server 2008 в роли сер вера приложений и обратим внимание на компонент, известный под назва нием Internet Information Services 7.0 (IIS 7). Данный компонент — это больше чем просто веб-сервер. IIS 7 — это защищенная, простая в управле нии платформа для разработки и хостинга веб-приложений и сервисов. Internet Information Services 7.0 (IIS 7) содержит существенное число нови нок и расширений, которые могут быть интересны как для 1Т-специалистов, так и для компаний, занимающихся хостингом и для разработчиков.
Internet Information Services 7.0 для IT-специалистов Дпя IT-специалистов Internet Information Services 7.0 представляет собой надежный, защищенный и легко управляемый веб-сервер. Благодаря на страиваемой процедуре установки IIS 7, администраторы могут существен но уменьшить область атак (attack surface), минимизировать число обнов лений и снизить объем ресурсов, требуемых для развертывания веб-инф раструктуры, веб-сайты, работающие под управлением IIS 7, а также вы полняющиеся на сервере приложения, более защищены от внешних воз действий за счет автоматической изоляции, конфигурации и генерации уникальных идентификаторов процессов. Управление сервером IIS 7 стало существенно проще — администра торам стала доступна утилита, позволяющая выполнять основные настрой ки в виде серии упрощенных диалоговых панелей. Эта утилита, а также новая утилита командной строки, предназначенная для администрирова ния, WMI-провайдер и набор программных интерфейсов для управляемого кода (.NET API) делают администрирование веб-сайтов и приложений более эффективным. В IIS 7 также реализовано более простое управление вебфермами — конфигурация веб-сервера, код приложения и его содержи мое могут хранится на централизованном файл-сервере и совместно ис пользоваться несколькими веб-серверами. Администраторы также могут делегировать административные полно мочия владельцам сайтов, которые могут конфигурировать веб-сервер через файл web.config или используя утилиту Remote IIS Manager и удаленное соединение через HTTP/SSL при работе под управлением Windows Vista, Windows XP, Windows Server 2003 и Windows Server 2008.
Internet Information Services 7.0 для веб-хостеров Для веб-хостеров Internet Information Services 7.0 — это эффективный по затратам, масштабируемый веб-сервер, позволяющий создавать решения
Глава 6 Windows Server 2008 как веб-сервер
77
для хостинга, предназначенные для большого числа потребителей. Сни жение затрат на хостинг с использованием IIS 7 достигается за счет ис пользования новой, масштабируемой архитектуры, которая поддержива ет хостинг тысяч веб-сайтов на одном сервере. IIS 7 позволяет веб-хостерам обслуживать большее число пользователей за счет использования нового модуля — FastCGI, который обеспечивает быструю и надежную об работку для РНР и других веб-технологий. Входящий в состав IIS 7 FTPсервер обеспечивает хостеров полностью интегрированным веб/FTP-cepвером, который поддерживает все современные механизмы публикации, включая FTP/SSL и аутентификацию на базе членства (membership-based authentication).
Internet Information Services 7.0 для разработчиков И, наконец, для разработчиков, Internet Information Services 7.0 представ ляет собой гибкий, более расширяемый веб-сервер, который может исполь зоваться для разработки и развертывания веб-приложений на Windows Vista и Windows Server 2008. В IIS 7 поддерживается полноценная модульная архитектура, состоящая из более чем 40 модулей, каждый из которых ба зируется на программном интерфейсе, обеспечивающем расширяемость функциональности. Разработчики могут создавать новые модули или за мещать существующие — для этого можно использовать как традицион ные языки программирования, так и .NET-языки. Помимо этого у разработчиков есть возможность расширения конфи гурации IIS 7 и создания утилит для управления сервером, которые могут быть встроены в новую административную утилиту — IIS Manager. Разра ботчики могут создавать приложения, используя различные программные интерфейсы — IIS 7 поддерживает «классическую» технологию Active Server Pages (ASP) и ASP.NET с возможностью расширения функциональности сервера через библиотеку классов .NET Framework, обеспечивает такие сервисы ASP.NET, как аутентификация на базе форм, кэширование выход ной информации, которые доступны для всех типов приложений. Помимо этого IIS 7 поддерживает большинство современных техноло гий создания веб-приложений, включая PHP, PERL, ColdFusion, Ruby и ряд других. Поддержка системы распределенной конфигурации позволяет хранить настройки в файлах Web.config — таким образом приложения мо гут предварительно сконфигурированы и развернуты на IIS 7 командой хсору. Такой подход позволяет разработчикам быстрее обнаруживать ошибки, снижать время на разработку и развертывание, минимизировать время простоя сайтов.
78
Глава 6 Windows Server 2008 как веб-сервер
После того как мы познакомились с тем, какая новая функциональность в Internet Information Services 7.0 может представлять интерес для ГТ-специалистов, так и для компаний, занимающихся хостингом и для разработ чиков, давайте рассмотрим ключевые новинки в IIS 7 более подробно.
Ключевые новинки в Internet Information Services 7.0 В настоящее время одним из самых популярных, надежных и масштаби руемых веб-серверов является веб-сервер IIS 6. За примерами далеко хо дить не надо: построенный на Internet Information Services 6.0 сайт MySpace обслуживает 23 млрд. обращений в месяц, сайт Microsoft.com (до недав него времени работавший под управлением IIS 6) обслуживает 10 тыс. обращений в секунду и 300 тыс. одновременных соединений, а сайт Match.com (работающий на IIS 6) — 30 млн. обращений в день. С момента выпуска IIS 6 не было обнаружено ни одной критической уязвимости, а по данным port80software.com более чем 54% компаний, входящих в спи сок Fortune 1000, используют IIS 6 для обеспечения каждодневных бизнесопераций. Новая версия веб-сервера, Internet Information Services 7.0, про должает развитие веб-платформы Microsoft и включает ряд расширений и дополнений, которые делают ее еще более надежной, управляемой, рас ширяемой и способной к решению новых задач, возникающих перед раз работчиками и администраторами.
Ключевые новинки в Internet Information Services 7.0
Глава 6 Windows Server 2008 как веб-сервер
79
Модульная архитектура и расширяемость Новая архитектура веб-сервера основана на компонентном подходе, позво ляющем обеспечить гибкость и расширяемость. Это означает, что функци ональность IIS 7 реализована в виде набора модулей, которые могут быть не только добавлены или удалены, в зависимости от тех или иных задач, но и полностью заменены на модули, созданные разработчиками. Потре бители сервисов могут существенно сократить затраты на обеспечение безопасности, развертывание, установку обновлений, имея при этом всю функциональность веб-приложений, требуемую для решения их задач. Модульную архитектуру, реализованную в IIS 7, можно условно разде лить на две группы — модульный канал обработки запросов (pipeline) и модульный интерфейс администрирования. Модульный канал обработки запросов предоставляет набор из более чем 40 модулей, обеспечивающих функциональность сервера. При необходимости, модули могут быть уда лены или заменены на самостоятельно разработанные — это может по требоваться в тех случаях, когда мы хотим уменьшить область возможных внешних атак, снизить ресурсы, используемые для поддержания функци онирования сервера или увеличить производительность. Как мы уже от метили выше, самостоятельно разрабатываемые модули могут быть напи саны как на традиционных языках, так и на «управляемом» коде. В после днем случае разработчики могут использовать технологии .NET для всего процесса разработки, интегрироваться с инфраструктурой и легко вклю чать в состав решений на базе IIS поддержку новых технологий. Чтобы понять преимущества модульной архитектуры, вспомним, как происходит обработка запроса в IIS 6. Данный веб-сервер является моно литным с точки зрения дизайна — вся его функциональность реализова на в виде одной динамически загружаемой библиотеки — w3core.dll. Та кой подход затруднял настройку и отладку. Например, если вам не требо валась поддержка Digest Authentication, вы могли отключить эту опцию, но код, обеспечивающий данную функциональность, все равно загружал ся в память. Технология ASP.NET активизировалась при обращении к ре сурсам с соответствующими расширениями имен файлов и загружалась в рабочий процесс сервера (W3WP) по требованию, через соответствующий обработчик запросов — ISAPI Handler. Это происходило уже на этапе об работки запросов, когда произошло уже несколько ключевых для обработки событий, включая, например, аутентификацию. Добавление функциональ ности было возможно только через создание ISAPl-фильтров, обрабаты вающих соответствующие входящие и исходящие запросы. Создание та ких фильтров требовало определенных усилий — можно было использо вать только язык C++.
80
Глава 6 Windows Server 2008 как веб-сервер
Обработка запросов в IIS 6
В IIS 7 монолитная функциональность IIS 6 была разделена на более чем 40 модулей. Эти модули регистрируют себя как обработчики событий, воз никающих при прохождении запроса, таких как аутентификация, выпол нение, отсылка результата обработки и т. п. Так как IIS 7 может автомати чески загружать .NET Framework в рабочий процесс, модули, созданные на традиционном и «управляемом» коде могут совместно обслуживать поток запросов. Это означает, что можно создавать http-модули и обработчики и регистрировать их в IIS. Эти модули выполняются внутри IIS и могут обра батывать любые типы запросов, а не только запросы, обращенные к ASP.NET
Обработка запросов в IIS 7
Глава 6 Windows Server 2008 как веб-сервер
81
Напомним отличие между обработчиками и модулями. Модули обеспе чивают обработку всех запросов. Примеры: модуль аутентификации, мо дуль сжатия и т. п. Обработчики предоставляют сервисы для определен ных расширений имен файлов. Могут быть ISAPI-обработчики (.dll) и ста тические обработчики (.htm, .jpg, .gif, и т. п.) В IIS 7 все модули и обработ чики могут быть реализованы как на традиционном, так и на управляе мом коде. Эти модули и обработчики могут работать как в рамках интег рированного пула приложения, с использованием управляемого кода, так и в рамках классического пула приложения, в котором используется спо соб вызова .NET, совместимый с IIS 6. На следующем рисунке показаны основные модули, входящие в состав IIS 7.
Основные модули, входящие в состав IIS 7
Создание модуля на управляемом коде требует выполнения ряда шагов: • Создание класса, реализующего интерфейс IHttpModule; • Написание кода для метода Init, который инициализирует модуль и подписывается на события; • Написание кода для обработки событий, на которые модуль подписан; • Реализация метода Dispose; • Регистрация модуля в файле Web.config или в файле Applicationhost. config. Шаблон модуля на управляемом коде показан ниже.
82
Глава 6
Windows Server 2008 как веб-сервер
public class BasicAuthenticationModule : System,Web.IHttpModule < void I n i t ( H t t p A p p l i c a t i o n context) { } void Dispose() { > >
На следующем рисунке показаны основные события, которые могут обрабатываться в модулях.
Основные события на уровне канала обработки После того как класс модуля создан, в методе Init мы подписываемся на интересующие нас события: public void Init(HttpApplication context) { // // Подписаться на событие authenticate для // выполнения аутентификации // context.AuthenticateRequest += new EventHandler(this.AuthenticateUser); // // Подписаться на событие EndRequest для дальнейшей обработки // context.EndRequest += new
Глава 6
Windows Server 2008 как веб-сервер
83
EventHandler(this.IssueAuthenticationChallenge); > После того как модуль расширения создан, он должен быть добавлен в конфигурацию IIS 7. Модуль может добавлен как глобальный модуль (файл Applicationhost.config), как локальный (файл Application-host.config), например: в группу : Odd name="HttpCacheModule" image="%windir%\System32\inetsrv\cachhttp.dll"
/> или в группу <Modules>: Odd name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" /> или в файл Web.config, например: <system.webServer> <modules> O d d name="MyBasicAuthenticationModule" type="IIS 7Demos.BasicAuthenticationModule" /> При необходимости можно указать определенную последовательность выполнения модулей. Модули можно добавлять с помощью утилиты IIS Manager, пакетной утилиты APPCMD, через интерфейс WMI, с помощью утилиты PowerShell или программно, используя пространство имен Microsoft.Web.Administration. Для создания обработчиков на управляемом коде необходимо выпол нить следующие шаги: •
Создать класс, реализующий и н т е р ф е й с IHttpHandler;
• Добавить код для метода ProcessRequest - этот метод получает параметр типа HttpContext, который обеспечивает к встроенным контекстным объектам Request, Response и ряду других; •
Задать значение свойства IsReusable, определяющего, могут ли другие запросы использовать данный обработчик;
•
Сконфигурировать о б р а б о т ч и к в ф а й л е Applicationhost.config web.config.
или
84
Глава 6 Windows Server 2008 как веб-сервер
Второй механизм расширения — это модульный интерфейс. Как мы по мним, утилита администрирования в IIS 6 на базе Microsoft Management Console (MMC) была не очень простой для подключения расширений. Новая утилита в IIS 7 — IIS 7 Manager (IISMGR) поддерживает модульный дизайн, позволяющий добавлять новые управляющие элементы, удалять и добав лять функциональность, добавлять страницы, созданные на базе Windows Forms, интегрировать конфигурацию приложений непосредственно в IISManager и систему конфигурации сервера.
Интеграция с .NET Впервые в семействе веб-серверов компании Microsoft в IIS 7 реализова на полная интеграция с ASP.NET, что предоставляет разработчикам и ад министраторам ряд следующих преимуществ: облегчает администрирова ние и повышает безопасность приложений, обеспечивает доступ к функ циональности .NET на уровне модулей на управляемом коде — аутенти фикация на базе форм, авторизация на уровне URL, кэширование .NET, ис пользование ролевых провайдеров, использование новых программных интерфейсов для управления IIS 7, возможность развертывания приложе ний командой Хсору. В IIS 6 интеграция с ASP.NET происходила следующим образом: ASP.NET загружалась как ISAPI-приложение ISAPI-обработчиком. Отметим, что в обработчике запросов IIS 6 есть механизм аутентификации, но схожий механизм присутствует и в ASP.NET. В ASP.NET есть собственно отражение обработчиков, так же как и в IIS 6 — в IIS 6 есть свои обработчики оши бок, система кэширования, все это есть и в ASP.NET, но работает по-дру гому — это показано на следующем рисунке. Такое дублирование приво дит к непониманию, какой компонент в конечном итоге будет обрабаты вать различные активности.
Интеграция с ASP.NET в I IS 6
Глава 6 Windows Server 2008 как веб-сервер
85
В IIS 7 возможности ASP.NET перенесены в ядро обработки запросов (т. н. core pipeline). Это сделало возможным использование ASP.NET для всех типов запросов, а не только запросов к .NET-приложениям. Таким обра зом, если требуется использование аутентификации на базе форм для сайта на РНР, это возможно реализовать в IIS 7. Так же поддержка .NET делает более быстрой возможность реализации новых функций и поддержки новых технологий. При создании модулей на управляемом коде, которые будут использоваться в IIS 7, важно помнить о двух режимах, в которых они могут выполняться. В IIS 7 существует два пула приложений — «клас сический», который используется в IIS 6 и вызывает ASP.NET через ISAPIрасширение, и интегрированный пул, когда CLR загружается для предос тавления сервисов модулям и обработчикам на управляемом коде. Эти два режима показаны на следующем рисунке.
Два режима выполнения управляемого кода
В IIS 7 не поддерживается режим IIS 5 — Worker Process Isolation Mode, который позволяет использовать ISAPI-фильтры в режиме Read Raw Data — это невозможно из-за особенностей архитектуры IIS 7. Для поддержки тако го режима потребуется использовать IIS 6 в режиме совместимости с IIS 5.
Средства управления и администрирования В состав IIS 7 входит набор различных средств администрирования, вклю чая новый пользовательский интерфейс, новую утилиту командной стро ки, новое пространство имен для программного управления и новый про граммный интерфейс для скриптинга. Новое в IIS 7 средство администрирования IIS Manager предоставляет новый, более эффективный способ управления веб-сервером. Эта утили та поддерживает конфигурацию как IIS, так и ASP.NET, позволяет делеги ровать управление, управлять безопасностью, диагностикой и другими
86
Глава 6
Windows Server 2008 как веб-сервер
функциями. К другим особенностям этой утилиты относится поддержка расширяемого интерфейса на основе .NET Framework, поддержка Windows и He-Windows-учетных записей при делегировании управления и возмож ность удаленного администрирования по HTTP/SSL. Новая утилита командной стоки (appcmd) служит для администриро вания сервера. Эта утилита может считывать и записывать конфигураци онные настройки, обращаться к потокам обработки сайтов и приложений и выполнять другие действия, связанные с управлением сервером. Для управления сервером в IIS 7 включен новый WMI-провайдер (root\ WebAdministration), который обеспечивает доступ к конфигурационной информации и состоянию сервера из приложений на VBScipt и JScript. Для приложений на управляемом коде предоставляется новый программ ный интерфейс, реализованный в пространстве имен Microsoft.Web.Administration. Этот интерфейс может использоваться как для управления сер вером, так и для доступа к информации о состоянии сервера, диагности ческой информации и конфигурации сервера. Ниже показан пример ис пользования программного интерфейса для получения списка запущен ных процессов и запросов: ServerManager iisManager = new ServerManager(); foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) { Console.WriteLine("W3WP ( { 0 } ) " , w3wp.Processld); foreach(Request request in w3wp.GetRequests(0)) { Console.WriteLine("{0} - { 1 } , { 2 } , { 3 } " , request.Url, request.ClientlPAddr, request.TimeElapsed, request.TimelnState); } }
Диагностика и обнаружение ошибок Быстрое обнаружение и исправление ошибок — одна из новинок в IIS 7, реализованная на уровне новой подсистемы диагностики. Эта подсистема предоставляет администраторам детальную информацию по каждому зап росу в реальном времени — с момента получения запроса сервером до его прохождения по всем элементам приложения. Эти возможности IIS 7 со кращают необходимость в анализе дампов и позволяют конфигурировать настраиваемые обработчики для URL. В этих обработчиках можно собирать информацию о времени, потраченном на обработку запроса (например: «записать в журнал все ответы с кодом 200 (ok), которые заняли более 15 сек.»), коды статуса и подстатуса HTTP (например: «записать в журнал все
Глава 6 Windows Server 2008 как веб-сервер
87
ошибки с кодом 500 для Invoice.aspx»), а также коды ошибок. Диагности кой можно управлять из интерфейса администратора, через WMI, программ ные интерфейсы, а также из пакетной утилиты Appcmd. Помимо этого, можно обрабатывать трассировочные события для моду лей, обработчиков и ASP.NET-страниц. Преимущества трассировки в IIS 7 по сравнению с трассировкой на уровне ASP.NET заключаются в том, что в IIS журналы сохраняются на диске, обрабатываются по запросу и обнов ляются в контексте всей обработки запроса. Таким образом данные, запи сываемые в таких журналах, сохраняются в XML и могут быть преобразо ваны стандартными средствами XSL — данные из таких журналов более просты в потреблении другими утилитами и предоставляют структуриро ванные структуры и метаданные.
Хостинг веб-сервисов Обычно IIS ассоциируется с веб-сервером, обеспечивающим хостинг веб страниц и приложений, доступных веб-браузерам по протоколу HTTP. В IIS 6 была введена концепция «пулов приложений» — мощной среды вы полнения, задающей границы процессов для веб-сайтов и приложений, идентификаторы процессов, а также способы повторного использования ресурсов, активации и завершения работы. Пулы приложения являются мощным средством для веб-администраторов, позволяющим изолировать приложения и управлять их работой. В IIS 7 подход, реализованный в IIS 6 для пулов приложений на уровне протокола HTTP, стал доступным и для других протоколов. Этот сервис, не зависящий от протоколов, называется «Windows Process Activation Ser vice» и предназначен, в первую очередь, для обслуживания сервисов, со зданных на базе Windows Communication Foundation — компонента .NET Framework 3.0, позволяющего выбирать адаптеры протоколов, использу емых для активации сервисов. Сервис Web Activation Service (WAS) поддер живает активацию по протоколам TCP, Named Pipe, MSMQ или HTTP, обес печивает внешний мониторинг, повторное использование освобождаемых ресурсов, общий доступ к состоянию сервисов из ASP.NET и ряд других полезных функций.
Заключение В данной части обзора мы познакомились с ключевыми новинками в Internet Information Services 7.0 — обсудили возможности для админист раторов и ГГ-специалистов, веб-хостеров и разработчиков, а также под робно остановились на рассмотрении модульной архитектуры, механиз мов расширения, интеграции с .NET, управляемости и расширенных сред ствах диагностики.
Глава 7
Механизмы виртуализации в Windows Server 2008
Одна из ключевых новинок в Microsoft Windows Server 2008 — это поддерж ка механизмов виртуализации (Windows Server virtualization, Hyper-V), ко торые позволяют максимально эффективно использовать имеющиеся в компаниях аппаратные ресурсы, обеспечивать бесперебойную работу ключевых сервисов и бизнес-приложений, а также поддерживают среды, в которых могут работать приложения, написанные для предыдущих версий операционных систем (т. н. legacy applications) и среды, позволяющие эмулировать различные программные и аппаратные компоненты для обес печения разработки и тестирования широкого класса бизнес-приложений, сервисов и различных утилит. В данной части обзора мы рассмотрим основные понятия, связанные с виртуализацией, обсудим ключевые сценарии использования Hyper-V, a также остановимся на ряде технических подробностей (включая архитек туру механизмов виртуализации) и рассмотрим основные моменты, свя занные с установкой и управлением механизмами виртуализации и их компонентами — виртуальными машинами, виртуальными дисками и вир туальными сетями.
Виртуализация в Windows Server 2008
Виртуализация. Основные понятия Windows Server virtualization (Hyper-V) — это построенная на базе гипервизора виртуализационная платформа, которая в виде отдельной сервер ной роли работает под управлением 64-битной версии Windows Server 2008. Рассмотрим основные характеристики виртуализационной платформы в Windows Server 2008.
Глава 7 Механизмы виртуализации в Windows Server 2008
91
• Наличие гипервизора. Виртуализация в Windows Server 2008 реали зована на основе гипервизора — программного компонента, который представляет собой тонкий слой кода, оптимизированного для обес печения максимальной производительности и надежности, выполняе мого между операционной системой и аппаратной платформой. Исполь зование гипервизора помогает более эффективно предоставить доступ к аппаратным ресурсам любой гостевой операционной системы, вы полняемой на виртуализационной платформе. Максимально упрощен ный доступ к ресурсам позволяет создавать существенно более высо копроизводительные решения — как для гостевых операционных сис тем семейства Windows, так и для систем других производителей. • Поддержка стандартов. Виртуализация в Windows Server 2008 реа лизована на основе таких стандартов, как Windows Management Instru mentation (WMI). На уровне платформы полностью поддерживаются программные интерфейсы, которые могут быть использованы сторон ними организациями для создания собственных механизмов управле ния платформой и расширения уже существующих. Многие аспекты виртуализации в Windows Server 2008 могут управляться средствами Windows PowerShell. • Использование 64-битной версии Windows Server 2008. Виртуа лизация в Windows Server 2008 поддерживается только на 64-битной платформе; эта роль не доступна для 32-битных изданий сервера. Под держка только 64-битной платформы позволяет существенно увеличить производительность и масштабируемость виртуальных решений, осо бенно тех, которым требуются большие объемы памяти. • Использование аппаратной виртуализации. Виртуализация в Win dows Server 2008 требует наличия аппаратной поддержки виртуализа ции на уровне центрального процессора. В настоящий момент аппа ратная поддержка виртуализации реализована в ряде моделей процес соров AMD и Intel. Отметим, что даже при наличии в системе процес сора с аппаратной поддержкой виртуализации, в большинстве систем эта функциональность должна быть активирована на уровне BIOS. • Поддержка механизмов DEP. Виртуализация в Windows Server 2008 требует наличия аппаратной поддержки механизмов защиты от выпол нения данных (Data Execution Protection, DEP) на уровне центрально го процессора. Механизм DEP обеспечивает защиту от вредоносного программного обеспечения за счет того, что запрещает выполнение кода в тех областях памяти, где не предполагается нахождение выполняе мого кода. На платформе Intel механизм DEP называется «бит XD (XD Bit)», на платформе AMD — «бит NX (NX Bit)». Большинство процессо ров с аппаратной поддержкой виртуализации также обеспечивают и ап паратную поддержку механизмов защиты от выполнения данных. Бо лее подробно о защите приложений в Windows Vista и Windows Server
92
Глава 7 Механизмы виртуализации в Windows Server 2008
2008 см. «Технологии защиты приложений в Windows Vista и Windows Server 2008».
Виртуализация. Ключевые сценарии Виртуализационная платформа в Windows Server 2008 создавалась, в пер вую очередь, для реализации четырех ключевых сценариев: консолидация серверов, обеспечение надежной работы, динамические центры обработки данных и поддержка разработки и отладки приложений.
Консолидация серверов Виртуализационная платформа в Windows Server 2008 позволяет консо лидировать, объединить несколько физических серверов в единую аппа ратную платформу, на которой выполняются несколько виртуальных сер веров. В результате такого объединения мы получим центр обработки данных с существенно меньшими аппаратными требованиями и затрата ми на обслуживание. Объединение нескольких серверов с низкой утили зацией ресурсов в один сервер, работающий под управлением Windows Server 2008, позволит снизить затраты на сопровождение и управление, традиционно связанные с использованием многочисленных физических серверов и получить более высокую отдачу от инвестиций в аппаратную платформу. Помимо этого, объединение физических серверов в виртуаль ные машины обеспечивает большую безопасность за счет полной изоля ции от аппаратной платформы.
Обеспечение надежной работы Обеспечение надежной работы — это сценарий, в котором функциони рование бизнеса продолжается даже после того, как центр обработки дан ных получил серьезные физические повреждения. Использование Windows Server 2008 и поддерживаемой в нем виртуализационной платформы яв ляется ключевым для обеспечения беспрерывной работы ключевых биз нес-функций. Виртуальные машины, поддерживаемые в данной виртуали зационной платформе, обладают высокой переносимостью, платформы, не зависящие от каких-либо специфичных аппаратных конфигураций, могут переноситься с одного центра обработки данных на другой, а при совместном использовании с механизмами быстрой миграции, «живой» миграции или отказоустойчивых кластеров, виртуальные машины, рабо тающие под Windows Server virtualization, могут быть переведены на дру гой сервер практически без перерывов в работе сервисов.
Глава 7 Механизмы виртуализации в Windows Server 2008
93
Динамический центр обработки данных Использование механизмов виртуализации позволяет администраторам более эффективно управлять предоставлением ресурсов по требованию, тем самым отвечая на изменения в требованиях к производительности, масштабируемости и доступности серверов и сервисов. Используя такие возможности, как добавление памяти, аппаратных или сетевых компонен тов «на лету», администраторы могут строить центры обработки данных, которые могут легко масштабироваться в ответ на динамические запро сы и освобождать ресурсы при снижении загрузки.
Разработка и отладка приложений За счет возможности создания различных серверных конфигураций без необходимости в приобретении дорогостоящих аппаратных средств и выполнении специфических настроек, администраторы могут легко под держивать среду для разработки и отладки приложений. При использова нии System Center Virtual Machine Manager, виртуализация в Windows Server 2008 позволяет создавать виртуальные машины «по требованию», которые отвечают большинству требований, связанных с разработкой и тестиро ванием широкого класса приложений и сервисов.
Виртуализация. Технические подробности Рассмотрим устройство механизмов виртуализации в Windows Server 2008 более подробно. Со стороны виртуализация в Windows Server 2008 может показаться похожей на предыдущую платформу — Microsoft Virtual Server, но на самом деле, это два принципиально разных продукта. В Hyper-V поддерживаются ключевые операции, знакомые администраторам по пре дыдущим реализациям серверной виртуализации — создание и управле ние виртуальными машинами, работа с виртуальными жесткими дисками (VHD), установка расширений и дополнений к виртуальным машинам, а также работа с виртуальными сетями. Но, несмотря на схожесть в базо вом наборе функциональных возможностей, реализация этой функцио нальности в Hyper-V существенно отличается от предшественников. Ниже мы рассмотрим архитектуру виртуализации в Windows Server 2008. Как мы уже знаем, виртуализация в Windows Server 2008 реализована на основе гипервизора. Этот программный компонент выполняет функ ции, которые ранее были реализованы в программных компонентах, от вечающих за управление виртуальными машинами. Гипервизор не требу ет использования каких-либо драйверов и работает на процессорах с аппаратной поддержкой виртуализации — таких, как AMD-V и Intel VT.
94
Глава 7 Механизмы виртуализации в Windows Server 2008
Архитектура Windows Server 2008 Visualization
Гипервизор управляет ресурсами за счет разделения системы на раз делы. Гипервизор поддерживает два типа разделов — родительский раз дел и дочерний раздел. В родительском разделе располагаются операци онная система и компоненты механизмов виртуализации. В системе мо жет быть только один родительский раздел. Дочерний раздел представ ляет собой виртуальную машину и при каждом создании новой виртуаль ной машины для нее создается новый дочерний раздел. В механизмах виртуализации Windows Server 2008 используется т. н. микроядерный гипервизор (microkernelized hypervisor). Такой гипервизор не содержит драйверов и полагается на драйвера, установленные в роди тельском разделе (операционной системе, выполняющей хостинг виртуализационных механизмов) для доступа к различным аппаратным ресур сам. Сам же гипервизор обеспечивает доступ к таким ресурсам, как про цессор и память. Такая модель позволяет установить гипервизор на лю бую платформу, поддерживающую выполнение Windows Server 2008, и содержащую аппаратную поддержку механизмов виртуализации. В отли чие от используемого в Hyper-V модели многоядерного гипервизора, мо нолитный гипервизор представляет собой больший по объему программ ный компонент, который использует драйверы, установленные непосред ственно в гипервизоре. Тогда как эта модель обеспечивает чуть более высокую производительность, она ограничивает набор аппаратных плат форм, на которые может быть установлен такой гипервизор — если для какого-то аппаратного ресурса нет драйвера, специфичного для гиперви зора, такой ресурс не будет доступен ни в родительской, ни в гостевой операционных системах. Виртуализация в Windows Server 2008 управляется через Windows Mana gement Instrumentation (WMI). Провайдеры WMI содержат объекты, позво-
Глава 7 Механизмы виртуализации в Windows Server 2008
95
ляющие управлять различными аспектами механизмов виртуализации в сервере. Например, можно управлять настройками серверов, создавать и конфигурировать виртуальные машины, управлять запущенными вирту альными машинами. Классы, связанные с поддержкой виртуализации, доступны через пространство имен root\MSVM. Используя провайдер WMI, можно управлять механизмами виртуализации через Windows PowerShell, System Center Virtual Machine Manager, а также с помощью различных утилит сторонних производителей. Провайдер виртуализационных сервисов (virtualization service provider) работает на операционной системе, выполняющей хостинг, и обеспечи вает доступ ко всем аппаратным ресурсам компьютера. Виртуальные ма шины, использующие гипервизор, общаются с аппаратными ресурсами через провайдера виртуализационных сервисов. Клиент виртуализационных сервисов обеспечивает доступ виртуальных машин, работающих под управлением механизмов виртуализации, к ре сурсам компьютера. Важно отметить, что виртуализированные аппарат ные ресурсы, это не то же самое, что эмулированные ресурсы. В предыду щих версиях продуктов для виртуализации, таких как Microsoft Virtual Server и Microsoft Virtual PC, обеспечивалась эмуляция аппаратных ресурсов для поддержки совместимости с максимальным числом дочерних операцион ных систем. Эта модель требует, чтобы все запросы к аппаратным ресур сам выполнялись и через драйвер эмуляции дочерней операционной си стемы и через обычный драйвер хостинговой операционной системы, что приводило к серьезным ограничениям в производительности дочерних операционных систем. В механизмах виртуализации Windows Server 2008 поддерживаются «синтетические» аппаратные ресурсы в виде клиента виртуализационных сервисов, обеспечивающего максимальную произво дительность для дочерних виртуальных машин — это достигается за счет перенаправления аппаратных запросов непосредственно провайдеру сер висов хостинговой системы. Виртуальные машины, не поддерживающие виртуализацию на уровне гипервизора, по-прежнему используют тради ционную аппаратную эмуляцию.
Установка и управление виртуализацией Ниже мы кратко рассмотрим ключевые моменты, связанные с установкой механизмов виртуализации, а также управлением различными операция ми — конфигурация, создание и управление дисками, управление вирту альными сетями, создание и управление виртуальными машинами и т. п. После установки виртуализации, которая, как мы помним, является отдельной ролью в Windows Server 2008 и поэтому требует использова-
96
Глава 7 Механизмы виртуализации в Windows Server 2008
ния Server Manager, мы можем выполнить базовую проверку, которая по зволит нам убедиться, что виртуализация установлена и работает коррек тно . Для этого в Server Manager в разделе Diagnostics выберем панель Services и убедимся в том, что сервис Virtual Machine Management Service имеет статус Started. Поддержка виртуальных дисков (VHD) схожа с поддержкой в преды дущих версиях виртуализации и базируется на файлах специального фор мата, которые представляют собой физический диск для виртуальной машины. Виртуальные машины могут иметь несколько виртуальных дис ков, подключенных к различным типам интерфейсов — IDE, SCSI и т. п. Виртуальные диски могут иметь фиксированный или динамически изме няемый размер. В первом случае производительность дисков выше, по сравнению с динамическими дисками, но их объем ограничен. Динами ческие диски наиболее эффективно используют дисковое пространство и лучше всего подходят для использования при разработке и тестирова нии приложений.
Поддержка виртуальных дисков
Механизмы виртуализации и соответствующие утилиты поддержива ют ряд операций над виртуальными жесткими дисками: сжатие (удаление нулевых разделов), преобразование (изменение типа диска — с динами ческого на диск с фиксированным размером и наоборот) и расширение (добавление дискового пространства к существующему виртуальному дис ку), а также получение информации о диске и объединение дисков. Возможность работы с виртуальными сетями (которые были схожи с сетевыми хабами) появилась в Microsoft Virtual Server 2005. Каждая вир-
Глава 7 Механизмы виртуализации в Windows Server 2008
97
туальная сеть могла быть соединена с одним физическим сетевым адап тером, что позволяло виртуальным машинам обмениваться информаци ей по физической сети. В механизмах виртуализации Windows Server 2008 описанная выше концепция расширена и добавлено понятие виртуальных маршрутизаторов (virtual switches). Виртуальные переключатели расши ряют функциональность виртуальных сетей включая обеспечение возмож ности коммуникации с виртуальными сетями по физической сети. Ком пьютер, на котором запущена Hyper-V, может выполнять несколько вир туальных машин, каждая из которых присоединена к различным физичес ким сетевым картам, а каждая физическая сетевая карта присоединена к различным виртуальным сетям на одном физическом переключателе. В такой конфигурации каждый виртуальный переключатель общается толь ко с соответствующей виртуальной сетью на физическом переключателе, обеспечивая сетевую изоляцию каждой виртуальной машины. Помимо управления виртуальными дисками и сетями, механизмы вир туализации в Windows Server 2008 поддерживают утилиты для управления виртуальными машинами — создание виртуальных машин, управление их настройками и управление запущенными виртуальными машинами через Virtual Machine Connection на базе Remote Desktop Protocol.
Управление виртуальными машинами
Механизмы виртуализации поддерживают виртуальные машины, создан ные средствами Virtual Server 2005, Virtual PC 2004, Virtual PC 2007 и Win dows Server virtualization. Отметим, что существует возможность установки Hyper-V в режимах Full Windows Server 2008 и Server Core, а также имеется способ управления
98
Глава 7 Механизмы виртуализации в Windows Server 2008
только через Microsoft Hyper-V Servers MMC-консоль. Подробнее об этом см. по адресу http://www.microsoft.com/windowsserver2008/virtualization/ install.mspx.
Заключение Механизмы виртуализации, появившиеся в Windows Server 2008, позволяют реализовать выполнение ключевых сценариев, в основе которых лежит существенное повышение утилизации имеющихся аппаратных ресурсов. Исследования показывают, что в среднем в компаниях используется не более 15% существующих ресурсов — развертывание механизмов вирту ализации и консолидация серверов позволят увеличить утилизацию ап паратных ресурсов до 50-ти и более процентов.
Ресурсы • Microsoft Visualization Home • http://www.microsoft.com/windowsserversystem/virtualization/default.mspx Windows Server Virtualization - An Overview D http://www.microsoft.com/windowsserversystem/virtualserver/techinfo/ virtualization.mspx • Windows Server Virtualization on Microsoft TechNet • http://technet2.microsoft.com/windowsserver2008/en/servermanager/ virtualization.mspx • Windows Virtualization Team Blog • http://blogs.technet.com/virtualization/default.aspx ш
• Virtual PC Guy's WebLog • http://blogs.msdn.com/virtual_pc_guy/rssxml
Глава 8
Windows Server 2008 и совместимость приложений
Операционные системы Windows Vista и Windows Server 2008 представ ляют собой дальнейшее развитие семейства операционных систем ком пании Microsoft, включают набор новых технологий и служат платфор мой для создания широкого спектра прикладных решений. Для повыше ния безопасности и улучшения механизмов взаимодействия с пользова телями, в Windows Vista и Windows Server 2008 появился ряд новинок и расширений и улучшений существующих компонентов. В большинстве случаев, Windows Vista и Windows Server 2008 обеспечивают высокий уро вень совместимости с приложениями, написанными для операционных систем Microsoft Windows XP, Microsoft Windows Server 2003 с соответству ющими пакетами обновлений, но тем не менее, ряд новых и измененных компонентов операционной системы может вызвать определенные про блемы при запуске и работе приложений. В данной части обзора мы об судим наиболее часто встречающиеся проблемы с совместимостью суще ствующих приложений с Windows Vista и Windows Server 2008. Прежде чем обратиться к подробному описанию возможных проблем, рекомендуется выполнить следующий простой тест, который покажет наличие или отсутствие потенциальных проблем, связанных с совмести мостью с новыми версиями операционных систем: 1. На тестовом компьютере установите Windows Vista или Windows Server 2008. 2. Установите приложение. Если будет показан запрос на подтверждение установки, выберите опцию P e r m i t и установите приложение. Если приложение установилось успешно, перейдите к шагу 6. 3. Если приложение не удалось установить и запрос на подтверждение установки не появился на экране, щелкните правую кнопку мыши на исполняемом файле инсталлятора, выберите опцию Run this program as a d m i n i s t r a t o r и повторите попытку установки приложения. Если приложение установилось успешно, перейдите к шагу 6. Примечание: Этот шаг не требуется, если приложение использует MSIинсталлятор. 4. Если в процессе установки приложения отображались сообщения об ошибках, например связанных с версией о п е р а ц и о н н о й системы, ре гистрацией CLSID, к о п и р о в а н и е м файлов, щелкните правую кнопку мыши на исполняемом файле инсталлятора, выберите опцию Proper ties, затем вкладку Compatibility и установите режим совместимости с Windows XP SP2. 5. Вернитесь к шагу 2. Если вы не смогли установить приложение, перей дите к шагу 96. Приложение должно быть установлено одним из описанных выше спо собов.
Глава 8 Windows Server 2008 и совместимость приложений
101
7. Запустите приложение. Если приложение не запустилось, как ожидалось, или вы получили сообщения об ошибках, установите режим совмести мости с Windows XP SP2 для исполняемого файла приложения и запу стите приложение еще раз. 8. Если приложение запустилось успешно, выполните полный набор те стов, которые вы обычно используете для тестирования приложения под Windows XP. Убедитесь в том, что приложение работает нормаль но и вся его функциональность доступна. Перейдите к шагу 10. 9. Если приложение не удалось установить или успешно запустить, вы получили ошибки или сбои в процессе работы приложения, вам не удалось выполнить функциональные тесты, то обратитесь к рекомен дациям, приведенным в данном обзоре. Ю.На этом тест на совместимость завершен. Возможные категории несовместимостей можно разделить на три боль шие группы: безопасность, защищенные компоненты операционной сис темы и появление новых или удаление устаревших функций.
Возможные категории несовместимостей
В свою очередь, показанные выше категории несовместимостей мож но разделить на две части — несовместимости, характерные как для Win dows Vista, так и для Windows Server 2008, и несовместимости, уникаль ные для Windows Server 2008. Начнем с группы несовместимостей, кото рые могут вызвать проблемы при запуске приложений как под управле нием клиентской операционной системы Windows Vista, так и серверной операционной системы Windows Server 2008.
102
Глава 8 Windows Server 2008 и совместимость приложений
Несовместимости, характерные для Windows Vista и Windows Server 2008 Несовместимости, входящие в данную группу, в первую очередь связаны с новыми технологиями, реализованными в клиентской и серверной версии операционной системы Windows. К ним относятся — User Account Control (UAC), Windows Resource Protection (WRP), Mandatory Integrity Control (MIC), изменение номера версии операционной системы и изоляция сессии 0.
Несовместимости, характерные для Windows Vista и Windows Server 2008
User Account Control (UAC) Принципиальный шаг в направлении повышения безопасности операци онных систем семейства Windows — предоставление пользователям воз можности работать под учетной записью «standard user», что дает им дос туп к ограниченному набору разрешений и привилегий. По умолчанию, в Windows Vista и Windows Server 2008 все приложения выполняются под учетной записью «standard user», даже в тех случаях, когда пользователь является членом группы администраторов. При попытке запуска прило жения, требующего привилегий администратора, система запрашивает подтверждения. Только приложения, выполняющиеся с административны ми привилегиями, могут модифицировать системные и глобальные на стройки и влиять на поведение системы. Такая функциональность в Win dows Vista и Windows Server 2008 называется User Account Control (UAC). Дополнительная информация: • User Account Control in Windows Vista • http://go.microsoft.com/fwlink/?LinkId=62664 • Getting Started with User Account Control • http://go.microsoft.com/fwlink/?LinkId=62 669 ш Developer Best Practices and Guidelines for Applications in a Least Privileged Environment • http://msdn2.microsoft.com/en-us/library/aa480150.aspx
Глава 8 Windows Server 2008 и совместимость приложений
103
• UACBlog о http://go.microsoft.com/fwlink/?LinkId=62676
Windows Resource Protection (WRP) Для увеличения стабильности системы, ее надежности и предсказуемос ти поведения, механизм Windows Resource Protection (WRP) защищает систему Windows, поддерживая ее в режиме «только чтение». Эта функци ональность распространяется на файлы ядра операционной системы, папки и ключи реестра. Обновления системных ресурсов возможны только при ложениями, которые известны операционной системе (OS trusted installers), такими как, например, Windows Servicing. Такая защита позволяет макси мально защитить компоненты и приложения, входящие в состав опера ционной системы, от возможных воздействий со стороны других прило жений и администраторов. Для того чтобы определить, защищен ли файл механизмом Windows Resource Protection, можно выполнить следующие действия: 1. Из кода, используя функцию SfcIsFileProtected(); 2. В Explorer проверить свойства файла: • Открыть папку, в которой находится файл, свойства которого нас интересуют; • Щелкнуть правую кнопку мыши на интересующем нас файле и выб рать Properties; • Файл, который защищен механизмом WRP, покажет, что режим Full Control доступен только для учетной записи Trusted Installer. Для учетных записей SYSTEM, Administrators и Users доступен только режим Read. Для того чтобы определить, защищен ли элемент реестра механизмом Windows Resource Protection, можно выполнить следующие действия: 3. Из кода, используя функцию SfcIsKeyProtected(); 4. В Registry Editor проверить свойства файла: • Щелкнуть правую кнопку мыши на интересующем нас элементе ре естра и выбрать Properties; • Элемент, который защищен механизмом WRP, покажет, что режим Full Control доступен только для учетной записи Trusted Installer. Для учетных записей SYSTEM, Administrators и Users доступен только режим Read.
Mandatory Integrity Control (MIC) В качестве дополнительного уровня защиты от вредоносного программного обеспечения в Windows Vista и Windows Server 2008 различные приложе-
104
Глава 8 Windows Server 2008 и совместимость приложений
ния могут работать под одним из трех уровней привилегий (High, Medium и Low). Приложения могут взаимодействовать с другими приложениями, выполняющимися с тем же или более низким уровнем привилегий, но не Moiyr модифицировать или взаимодействовать с приложениями, выполня ющимися с более высоким уровнем привилегий. В большинстве случаев приложения выполняются с уровнем привилегий Medium, а приложения, требующие наличия прав администратора — с более высокими привиле гиями. Процессы с ограниченными возможностями, например код внутри Internet Explorer, выполняются с минимальными привилегиями. Таким образом, приложения, выполняющиеся с низким уровнем при вилегий, не могут посылать сообщения приложениям, выполняющимся с более высоким уровнем привилегий, за исключением тех случаев, когда последние непосредственно не разрешили получение сообщений, исполь зуя функцию ChangeWindowMessageFilter(). Точно также приложения с низкими привилегиями не могут модифицировать ссылки типа HWND, владельцами которых являются приложения с более высокими привиле гиями. Для обеспечения совместимости, функция SendMessage() и ряд других функций для отсылки сообщений возвращают код успешного за вершения, даже если выполнение таких функций заблокировано из-за описанных выше проблем с уровнями привилегий.
Изменение номера версии операционной системы Внутренний н о м е р версии в о п е р а ц и о н н ы х системах Windows Vista и Windows Server 2008 равен 6. При вызове функции GetVersion() возвра щается именно этот номер. В следующей таблице показаны номера вер сий ключевых операционных систем семейства Windows. ОС
Windows 2000
Windows ХР
Windows Server 2003
Windows Vista
Windows Server 2008
Версия
5.0
5.1
5.2
6.0
6.0
Для корректной проверки номера версии следует изменить код, чтобы выполнялась проверка >=6 и проверять не только версию операционной системы, но и ее издание, так как может оказаться, что требуемая для ра боты приложения функциональность отсутствует в данном издании опе рационной системы. Для обеспечения совместимости приложений с новым номером вер сии без их переделки, следует использовать т. н. Version Lie Shim — Properties | Compatibility | Compatibility Mode.
Глава 8 Windows Server 2008 и совместимость приложений
105
Version Lie Shim
Версия браузера Internet Explorer, входящего в состав Windows Vista и Windows Server 2008, равна 7. Эта версия включена в строку User Agent, которая включается в заголовок каждого HTTP запроса.
Изоляция сессии О В Windows XP, Windows Server 2003 и более ранних версиях операцион ной системы Windows, все сервисы выполнялись в одной сессии — в той сессии, которая создавалась для первого пользователя, подключившегося к консоли. Эта сессия называется Session 0. Выполнение сервисов и пользо вательских приложений в одной сессии может приводить к нарушению безопасности, так как сервисы выполняются с повышенными привилеги ями и, таким образом, являются потенциальными жертвами для вредонос ного кода.
Потенциальные возможности для атаки в Windows XP
В операционных системах Microsoft Windows Vista и Windows Server 2008 описанные выше возможности для атак со стороны вредоносного кода сведены к минимуму за счет то, что сервисы изолированы в сессии 0 и, таким образом, сессия, в которой выполняются сервисы, не является интерактив ной. В Windows Vista и Windows Server 2008 только системные процессы и
106
Глава 8 Windows Server 2008 и совместимость приложений
сервисы выполняются в сессии 0. Первый пользователь, который подклю чается к консоли, загружается в сессии 1, следующие пользователи — в сессии с увеличивающимися номерами. Это означает, что сервисы никогда не выполняются в той же сессии, что и пользовательские приложения и, та ким образом, защищены от атак со стороны прикладного кода.
Сессии в Windows Vista и Windows Server 2008
Можно привести несколько примеров возможных несовместимостей. Например, в ряде случаев могут возникнуть проблемы с драйверами прин теров, которые загружаются сервисами спулера (spooler service), а также с драйверами, созданными с помощью User Mode Driver Framework (UMDF), так как такие драйвера располагаются в сессии 0. Помимо этого, могут воз никнуть проблемы с сервисами, которые создают интерфейсные элемен ты, с сервисами, которые пытаются использовать функции SendMessage() и PostMessage() для взаимодействия с приложениями, а также с приложе ниями, создающими объекты с глобальными именами. Дополнительная информация: • Impact of Session 0 Isolation on Services and Drivers in Windows Vista • http://go.microsoft.com/fwlink/FLinkId~62691
Несовместимости, уникальные для Windows Server 2008 К несовместимостям, уникальным для серверной операционной системы Windows Server 2008, относятся: изменения в Active Directory, новые или измененные серверные роли, компоненты системы (ряд стандартных приложений доступен в Desktop Experience Pack, отсутствуют файлы
Глава 8
Windows Server 2008 и совместимость приложений
107
DirectX/Media, требуется установка .NET Framework 3.0 и ряд других несу щественных изменений, которые в ряде случаев могут вызывать пробле мы с функционированием некоторых приложений), новый тип установ ки операционной системы — Server Core, изменения в технологиях обес печения отказоустойчивых кластеров (Failover Clustering) и новая функ циональность в Windows Firewall.
Несовместимости, уникальные для Windows Server 2008
Изменения в Active Directory В Windows Server 2008 Active Directory поддерживает унифицированную модель, которая может быть расширена разработчиками системных и прикладных решений. Эта модель предоставляет такие возможности, как: • Единая архитектура и программная модель; • Администрирование контроллеров доменов; • Сервисы каталогов; • Управление правами; • Федерация сервисов; • Интеграция сервисов мета-каталогов (ILM); • Доменные контроллеры только для чтения (Read-Only Domain Controllers). Для обеспечения унификации в наименовании компонентов Windows, относящихся к Active Directory, были внесены некоторые изменения в названия отдельных компонентов - они показаны в следующей таблице. Старое название
Новое название
Active Directory Domain Controller
Active Directory Domain Services
Active Directory App m o d e Services
Active Directory Lightweight Directory
Windows Rights Management Services
Active Directory Rights Management Services
Windows Certificate Services
Active Directory Certificate services
Identity integration feature pack
Active Directory Metadirectory Services
108
Глава 8 Windows Server 2008 и совместимость приложений
Новый компонент Windows Server 2008 — доменный контроллер с воз можностью только операций «чтение» (RODC) обеспечивает повышенную безопасность — пароли пользователей и компьютеров не реплицируют ся и не хранятся в таких доменных контроллерах, но поддерживается т. н. выборочное разрешение кэширования паролей. Помимо этого поддер живается однонаправленная репликация для AD и SYSVOL — использует ся атрибут Read Only Partial для отказа от репликации данных, но это тре бует дополнительной ручной настройки. Среди дополнительных харак теристик доменных контроллеров с возможностью только операций «чте ние» отметим поддержку разделения ключей Kerberos — каждый RODC име ет свою учетную запись KDC Krbtgt, ограниченные права записи в ката лог (для учетных записей Workstation, не членов группы «enterprise domain controller» и не членов группы «domain domain controller»), упрощенность системы за счет поддержки однонаправленных репликаций, упрощенную настройку, учитывая тот факт, что большинство настроек включено по умолчанию. Также отметим, что администратор RODC может не быть ад министратором домена — это предотвращает случайные модификации до мена администраторами компьютеров и тот факт, что поддерживается возможность делегирования установки и восстановления RODC. Примечательно, что RODC работает в существующей инфраструктуре — в большинстве случаев не требуется изменений для DC или клиентов. Для поддержки RODC требуется наличие режима Windows Server 2003 Forest Functional Mode или PDC FSMO на Windows Server 2008 и рекомендуется использовать несколько WS2K8 DC на. один домен. Тем не менее, в ряде сценариев мы можем столкнуться с некоторыми проблемами, которые проявляются в том, что попытка записи в RODC либо вызывает ошибку при вызовах RPC и LDAP, либо приводит к долгим задер жкам, появляющимся из-за ссылок на контроллер с возможностью запи си. Для исправления таких проблем рекомендуется изменить дизайн то пологии таким образом, чтобы функции записи не обращались к RODC. Дополнительная информация: • Подробное описание возможных несовместимостей •
http://technet2.microsoft.com/windowsserver2008/en/library/ea8d253e0646-490c-93d3 -Ь 78с5е 1 d9db 71033mspx?mfr=true ш Windows Server 2008 Active Directory • http://www.microsoft.eom/technet/technetmag/issues/2006/l FutureOfWindows/defaultaspx
1/
Новые или измененные серверные роли Операционная система Windows Server 2008 является полностью компонентизированной. Серверные роли в Windows Server 2008 полностью гранули-
Глава 8 Windows Server 2008 и совместимость приложений
109
рованы и по умолчанию не активны. Серверные роли, которые были в пре дыдущих версиях Windows Server, имеют некоторые отличия, по сравнению с ролями Windows Server 2008. Таким образом, есть небольшая вероятность, что программы установки и приложения могут перестать работать, т. к. ожи даемые функции реализованы в новых или измененных ролях.
Серверные роли в Windows Server 2008
Например, роли, представляющие наибольший интерес для компаний разработчиков — Web Server и Application Server — были одной ролью в Windows Server 2003, а в новой версии сервера разделены на две — это показано на предыдущем рисунке. Для обнаружения и исправления возможных несоответствий и несовместимостей рекомендуется после миграции на новую операционную систему удалить и переустановить приложения, а также определить зави симости приложений от ролей и функций и включить соответствующие компоненты перед установкой приложения — это можно сделать либо сред ствами Server Manager, либо в пакетном режиме, используя, например, возможности, предоставляемые Windows PowerShell. Дополнительная информация: • Руководство по Windows Server 2008 • http://www.microsoft.com/windowsserver/longhorn/prodguide.mspx и Installing and Managing Roles a http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID= 103229 4712 &Culture=en-US
110
Глава 8 Windows Server 2008 и совместимость приложений
Ролевые сервисы в Windows Server 2008
Server Core В Windows Server 2008 появился новый тип установки операционной си стемы, называемый Server Core. Server Core — это минимальная версия опе р а ц и о н н о й системы Windows Server 2008, обеспечивающая серверную среду с минимальными требованиями по сопровождению и ограничен ной функциональностью. Server Core обеспечивает реализацию ограни ченного набора базовых ролей: •
DHCP;
• DNS; • Active Directory Domain Controller (включая RODC) •
Active Directory LDS (ранее — ADAM)
•
File Server, включая: •
DFSR (ранее — FRS);
• NFS; • •
File quota;
Print Server;
•
Media Services;
•
Windows
•
IIS 7.0 (без поддержки ASP.NET и удаленного администрирования).
Virtualization;
и не поддерживает установку приложений — MSI поддерживается только в пакетном режиме. Помимо этого, не поддерживается функциональность на уровне Microsoft .NET (из-за этого, например, в роли Web Server нет
Глава 8 Windows Server 2008 и совместимость приложений
111
поддержки ASP.NET), но разработчики могут создавать утилиты для управ ления сервером, дополнительные утилиты и сервисы, но только исполь зуя Native Windows API. В Server Core поддерживается следующая функциональность: •
WINS;
•
Failover Clustering;
•
Subsystem for UNIX-based applications;
•
Backup;
•
Multipath IO;
•
Removable Storage Management;
•
Bitlocker Drive Encryption;
•
SNMP;
•
Telnet Client;
• (S)NTP. Для удаленного управления Server Core можно использовать: •
Terminal Server;
•
ММС для поддерживаемых компонентов и серверных ролей, например Event Viewer и DNS;
• WS-Management, используя ShellExecute . Определить наличие Server Core из командной строки можно следую щей командой: C:\>WMIC path win32_operatingsystem get OperatingSystemSKU которая вернет одно из следующих значений: •
12 для Datacenter Server Core Edition,
•
13 для Standard Server Core Edition или
•
14 для Enterprise Server Core Edition.
Server Core входит в издания Standard, Enterprise и Datacenter и под держивается на платформах х86 и хб4. Дополнительная информация: • Windows Server 2008 Server Core • http://msdn2.microsoft.com/en-us/library/ms723891 •
.aspx
Список DLL, включенных в состав Server Core •
http://msdn2.microsoft.com/en-us/library/ms723876.aspx
Failover Clustering В Windows Server 2008 поддержка отказоустойчивых кластеров претерпела ряд принципиальных изменений, что привело к появлению нового набо-
112
Глава 8 Windows Server 2008 и совместимость приложений
pa программных интерфейсов (CreateClusterQ, DestroyCluster(), AddClusterNode(), EvictClusterNode(), SetClusterQuorumResource(), SetClusterResource DependencyExpressionQ и ряд других), улучшениям в функциональности, масштабируемости и управляемости. К новым возможностям кластерных технологий можно отнести: • Интегрированные средства проверки конфигурации; • Упрощенная установка кластера; • Упрощенное управление кластерами; • Расширения модели Quorum; • Поддержка Storage Area Networks; • Расширения в сетевой поддержке; • Расширения для Stretched Cluster; • Средства миграции кластеров; • Поддержка Server Core. Основные изменения, которые могут привести к несовместимости при ложений, связаны с использованием «старых» программных интерфейсов на базе Cluster Automation Server (MSClus) — они включены в состав Win dows Server 2008, но поддерживаться не будут и должны использоваться только в сценариях, когда задействована только одна платформа: Windows Server 2003 -> Windows Server 2003 или Windows Server 2008 -> Windows Server 2008. Приложения, использующие MSClus, должны использовать Cluster API или провайдера Cluster WML Дополнительная информация: • Cluster Automation Server • http://msdn2.microsoji.com/en-us/library/aa369077.cispx • Failover Clustering in Windows Server 2008 • http://www.microsoft.com/windowsserver/longhorn/failoverclusters.mspx • Server Cluster Provider • http://msdn2.microsoft.com/en-us/library/aa3 72876.aspx • Volume Shadow Services • http://msdn2.microsoft.com/en-us/library/aa38496l.aspx
Windows Firewall В Windows Server 2008 опция Windows Firewall по умолчанию находится во включенном состоянии. Это означает, что для ряда приложений долж ны быть открыты используемые ими порты — в противном случае при ложения не смогут работать. В качестве временного решения возможных проблем можно отключить Windows Firewall, но это рекомендуется делать
Глава 8 Windows Server 2008 и совместимость приложений
113
только в тех случаях, когда на компьютере установлен сетевой экран дру гого производителя.
Windows Firewall в Server Manager
Типичные симптомы несовместимости с включенным Windows Firewall — приложения перестают работать и в системном журнале появляются со бытия аудита безопасности, указывающие на то, что приложение было заблокировано. Как мы отметили выше, для обеспечения функциониро вания приложений необходимо открыть соответствующие порты. Адми нистраторы могут использовать контекст 'netsh advfirewall' для работы с правилами firewall из скриптов и шаблоны мастера Security Configuration для конфигурации серверов. Разработчики могут использовать программ ные интерфейсы INetFwPolicy2 (Firewall APIs) для интеграции инсталля торов с Windows Firewall и Advanced Security. Дополнительная информация: • INetFwPolicy2 • http://msdn2.microsoft.com/en-us/library/aa365309-aspx ш Unattended Installation Settings Reference • http://technet2.microsoft.com/WindowsVista/en/library/69eee519-55a6440d-ab94-56330ef57e291033mspx
Заключение В данной части обзора мы познакомились с наиболее часто встречающи мися проблемами совместимости существующих приложений с Windows Vista и Windows Server 2008. Следование приведенным рекомендациям поможет вам минимизировать возможные проблемы.
Глава 9
Microsoft Windows Server 2008. Ключевые вопросы сертификации приложений
Сертификация приложений важна как минимум с двух точек зрения — для конечных пользователей появляется возможность определить, насколько то или иное приложение соответствует ключевым критериям совмести мости, а для компаний разработчиков сертификация служит дополнитель ным средством проверки приложения на корректное использование про граммных интерфейсов, взаимодействие с компонентами операционной системы и аппаратной платформой. С недавнего времени компаниямразработчикам программного обеспечения стали доступны процедуры пошагового тестирования и все утилиты, используемые при проверке приложений на соответствие критериям сертификации — это позволяет включить процедуры проверки непосредственно в процесс тестирования приложений и тем самым упростить процесс подготовки к сертификации. Существует две программы сертификации приложений — базовая и рас ширенная. Базовая сертификация бесплатна, может быть выполнена не посредственно самой компанией и по ее успешному завершении компа ния-разработчик получает право использовать логотип «Works with Windows Server 2008», указывающий на базовую совместимость продукта с операционной системой. Расширенная сертификация предполагает бо лее тщательное тестирование программного продукта, которое выполня ется компанией-партнером Microsoft и более высокий уровень совмести мости программного продукта. Успешное завершение расширенного те стирования дает компании-разработчику право использовать логотип «Certified for Windows Server 2008», указывающий на расширенную совме стимость продукта с операционной системой. Обе программы сертифи кации предполагают одинаковые подходы к тестированию приложений (они отличаются лишь требованиями и набором тестов), содержат все необходимые утилиты для самостоятельного тестирования и выдвигаемые ими требования к сертифицируемым приложениям могут стать основой для проведения нефункционального тестирования приложений внутри организации. Наше знакомство с программами сертификации мы начнем с программы «Works with Windows Server 2008», а затем более детально рассмотрим программу «Certified for Windows Server 2008».
Программа Works with Windows Server 2008 Как мы отметили выше, программа «Works with Windows Server 2008» пред назначена для самостоятельного бесплатного тестирования приложений на базовую совместимость с операционной системой Windows Server 2008. Требования, выдвигаемые к тестируемому приложению, достаточно про сты и изложены в документе «Requirements for the Works with Windows Server
Глава 9 Ключевые вопросы сертификации приложений
117
2008 Program for Software», а методика тестирования приложения на со ответствие этим требованиям — в документе «Test Framework for the Works with Microsoft Windows Server 2008 Program for Software». Базовыми требованиями, выдвигаемыми к приложениям, претендующим на получение логотипа «Works with Windows Server 2008», являются сле дующие: •
Выполнение приложения на 64-битной платформе — либо в «родном» режиме, либо под WOW64;
• Наличие 64-битных версий драйверов, работающих в режиме kernel; •
Все драйверы подписаны средствами WHQL (Windows Hardware Quality Labs) и прошли соответствующие тестирование и сертификацию.
Отметим, что тестирование приложений должно выполняться: для сер верных компонентов — под 64-битной версией Windows Server, и, при на личии клиентских компонентов — под 64-битной версией Windows Vista Ultimate или Enterprise. Издание Windows Vista Ultimate содержит все ба зовые компоненты, входящие во все версии Windows Vista — таким обра зом, приложение, работающее под Windows Vista Ultimate, будет гаранти ровано совместимо со всеми версиями Windows Vista. Большинство существующих приложений, выполняющихся под управ лением Windows Server 2003, также будут работать и под управлением Windows Server 2008 без каких-либо изменений. В случае возникновения проблем с совместимостью, приложения могут воспользоваться уровнем совместимости (Compatibility Layer), либо уровнем работы с повышенны ми привилегиями (Elevation Layer) — если эти способы не подходят, не обходимо внести изменения в код приложения. Важно отметить, что сер тификация в классе Works with Windows Server 2008 подходит для всех трех типов приложений. Для проверки приложений на соответствие требованиям программы Works with Windows Server 2008 предоставляется бесплатная утилита — «Works with Tool» (WWT). Данная утилита представляет собой «мастера», включающего все тесты, описанные в документе «Test Framework for the Works with Microsoft Windows Server 2008 Program for Software». Все тесты должны быть выполнены вручную в соответствии с рекомендациями, при веденными в документе. Отчет, составленный утилитой WWT, отсылается для проверки и после ее успешного прохождения компания-разработчик может пользоваться всеми маркетинговыми и иными преимуществами, ас социированными с программой сертификации приложений. Тестируемое приложение должно отвечать следующим основным тре бованиям: •
Поддерживать 64-битные версии Windows при работе на мультипро цессорных платформах. Приложение должно устанавливаться и кор-
118 Глава 9 Ключевые вопросы сертификации приложений
ректно выполняться как минимум на двуядерной системе (dual-core system); • Приложения и средства их установки не должны содержать 16-битно го кода и использовать 16-битные компоненты, т. к. выполнение 16битного кода не поддерживается под 64-битными версиями Windows Vista и Windows Server 2008; • Все драйверы и исполняемые файлы должны быть подписаны; • Если работа приложения зависит от драйверов уровня kernel, должны предоставляться 64-битные версии этих драйверов. Средство установ ки приложения должно определять и устанавливать корректные вер сии драйверов и других компонентов для 64-битных версий операци онной системы; • Если тестируемое приложение представляет собой 32-битное прило жение, оно также должно поставляться с 64-битными версиями драй веров уровня kernel, даже если само приложение выполняется под уп равлением WOW64. Помимо описанных выше требований, гарантирующих пользователям, что приложение будет поддерживать современные платформы, устанав ливать корректные версии программных компонентов и драйверов и без сбоев выполнять основной набор своих функций, есть еще набор допол нительных требований, связанных с поддержкой нескольких языков ин терфейса, выполнением базовых рекомендации по обеспечению защиты и надежности приложений, обеспечением совместимости с антивирусными продуктами, поддержкой стабильной работы всей системы. В области поддержки нескольких языков интерфейса, если приложе ние поддерживает символы UNICODE, то не требуется прохождение сер тификации для каждой языковой версии приложения. Рекомендуется про водить тестирование приложения на локализованных версиях операци онной системы Windows Vista и Windows Server 2008, соответствующей основному языку интерфейса приложения. Выполнение базовых рекомендаций по обеспечению защиты и надеж ности приложений включает поддержку технологии Windows Error Reporting (WER), позволяющей собирать информацию о сбоях, произо шедших в приложениях и собирать эту информацию, делая ее доступной компании-разработчику для анализа и, в случае необходимости, внесения исправлений в код приложения. Минимальным требованием является постоянное активное состояние опции Windows Error Reporting. Приложения, работающие с Интернетом, должны обеспечивать рабо ту с протоколом IPv6 (Internet Protocol version 6), поддержка которого встроена во все операционные системы семейства Microsoft Windows, начиная с Windows XP SP1. Минимальным требованием является актив ное состояние поддержки протокола IPv6.
Глава 9 Ключевые вопросы сертификации приложений
119
Начиная с версии Microsoft Windows XP SP2, во все издания операци онных систем включается межсетевой экран (Windows Firewall), обеспе чивающий определенный уровень защиты входящего и исходящего тра фика. Приложения не должны отключать механизмы межсетевых экранов Windows и должны корректно работать либо со штатными утилитами, либо с сертифицированными утилитами сторонних производителей. Особое внимание (как при разработке, так и при тестировании при ложений) следует уделять корректной работе приложения с антивирусным программным обеспечением, особенно в тех случаях, когда последнее реализовано в виде драйверов-фильтров. Приложения должны корректно устанавливаться при наличии в системе любого сертифицированного антивирусного программного обеспечения, а работа приложения не дол жна мешать работе антивирусов. Дополнительная информация по программе «Works with Windows Server 2008» доступна в соответствующем разделе сайта http://www.innovateon windowsserver.com.
Программа Certified for Windows Server 2008 Программа «Certified for Windows Server 2008» построена на основе опи санных выше требований, но существенно расширяет их. Тестирование на соответствие требованиям данной программы также может быть выпол нено самой компанией — для этого бесплатно предоставляются все не обходимые утилиты и пошаговые руководства по тестированию, но в от личие от программы «Works with Windows Server 2008», основное тести рование платное и выполняется одной из нескольких уполномоченных Microsoft компаний-партнеров. Обратим внимание только на ряд требований, выдвигаемых к серти фицируемым приложениям — полный анализ документа «Requirements for the Windows Server 2008 Logo Program for Software» оставим читателям в виде упражнения. Требования к сертифицируемым приложениям разбиты на четыре боль шие группы — использование компонентов операционной системы, про цедуры установки и удаления приложения, обеспечение безопасности и надежность и высокая доступность. Первая группа включает набор базовых требований по корректному взаимодействию с компонентами операционной системы, включая спо собы проверки номера версии ОС, требования к драйверам, поддержке 64битных платформ и т. п. Так как основная масса вопросов, связанных с совместимостью приложений, относится к процедурам установки и уда-
120 Глава 9 Ключевые вопросы сертификации приложений
ления приложений, эти вопросы вынесены в отдельный раздел, который содержит рекомендации по созданию пакетов установки, использованию технологий Windows Resource Protection и User Account Control, а также освещает ряд других вопросов, связанных с установкой и удалением при ложений. Два следующих раздела посвящены вопросам обеспечения безопасно сти, надежности и высокой доступности приложений. Здесь в очередной раз уделяется внимание использованию User Account Control и обеспече нию совместимости с данной технологией, взаимодействию с новыми и расширенными сервисами операционной системы, нагрузочному тести рованию, восстановлению после сбоев, а также поддержке Windows Error Reporting, Windows Feedback Platform и ряду других вопросов. Помимо базовых требований по обеспечению стабильности работы и корректного использования функций и компонентов операционной си стемы, приложения все больше и больше приводятся к единой, унифици рованной системе, базирующейся на сервисах, предоставляемых ядром операционной системы. Например, каждый файл, создаваемый приложе нием вне своего корневого каталога, и не помеченный атрибутом «скры тый», должен быть ассоциирован с зарегистрированным типом файла. Если тип файла уже зарегистрирован, никаких дополнительных действий не требуется. В противном случае необходимо предоставить графическое изображение для идентификации файлов нового типа, предоставить на глядное описание типа файла и обеспечить описание действия по умол чанию - действия, выполняемого при двойном щелчке по имени файла, или задать опцию NoOpen, если файл не должен открываться пользова телем. Далее, для каждого типа файла, для которого пет ассоциации, не обходимо выполнить следующие действия: 1. В Control Panel вызвать раздел Programs, затем Default Programs и выб рать опцию Associate a File Type or Protocol with a Program; 2. После этого в списке выбрать необходимое расширение имени файла; 3. Убедиться в том, что с тем или иным расширением имени файла не ассоциирована иконка по умолчанию и соответствующие действия. Следование рекомендациям, приведенным в требованиях к сертифи цируемым приложениям, а также учет наиболее часто встречающихся проблем совместимости существующих приложений с Windows Vista и Windows Server 2008 позволит вам сделать приложения более совмести мыми и надежными и, таким образом, еще больше укрепить к ним дове рие пользователей.
Глава 10
Microsoft Windows Server 2008. Что еще нового?
Выше мы рассмотрели ряд возможностей новой версии серверной опе рационной системы Microsoft Windows Server 2008 с точки зрения разра ботчиков — обсудили технологические новинки, программные интерфейсы и некоторые сценарии использования новых и расширенных компонен тов сервера. Ряд технологических новинок и расширенных функций серверной опера ционной системы, которые мы рассмотрим ниже, предназначены для адми нистраторов и ГТ-специалистов. К этим новинкам относятся средства обес печения безопасности, механизмы централизованного доступа к приложениям, средства управления удаленными филиалами, механизмы обеспечения высо кого уровня доступности, ряд новинок в службах каталогов, службы развер тывания Windows, новинки в сетевых функциях, а также новые механизмы управления печатью, появившиеся в Microsoft Windows Server 2008.
Средства обеспечения безопасности Windows Server 2008 — наиболее защищенный из всех продуктов семей ства Windows Server. Повышенная безопасность операционной системы и новинки системы безопасности, включая систему защиты доступа к сети, федеративные службы управления правами и контроллер домена только для чтения, обеспечивают максимальный уровень защиты сети, данных и всего бизнеса. Windows Server 2008 позволяет защитить серверы, сети, данные и учет ные записи пользователей от сбоев и вторжений. Технология защиты доступа к сети позволяет изолировать компьюте ры, которые не отвечают требованиям действующих политик безопасно сти, и обеспечивает для сети механизм ограничения доступа, устранения недостатков и непрерывной проверки соответствия. Федеративные службы управления правами поддерживают постоянную защиту конфиденциальных данных, помогают сократить риски, обеспе чивают соблюдение регулятивных норм и формируют платформу для комплексной защиты информации. Контроллер домена только для чтения (RODC) позволяет развертывать службы Active Directory с ограниченной репликацией полной базы данных Active Directory для улучшения защиты на случай кражи или взлома сервера. В операционной системе Windows Server 2008 существует много воз можностей, благодаря которым повышается защищенность системы и соответствие ее требованиям безопасности. Ниже перечислены некото рые из ключевых нововведений. • Принудительное соответствие клиентов требованиям безопасности. Технология защиты доступа к сети (NAP) позволяет администраторам
Глава 10 Microsoft Windows Server 2008. Что еще нового?
123
настроить клиентские компьютеры и обеспечить их соответствие оп ределенным требованиям безопасности прежде, чем они смогут полу чить доступ к сети. • Мониторинг центров сертификации. Инфраструктура PKI предприятия расширяет возможности по мониторингу и устранению неполадок во множественных центрах сертификации. • Усовершенствования брандмауэра. В новом режиме повышенной безо пасности брандмауэра Windows имеется ряд улучшений защиты. • Шифрование и защита данных. Технология BitLocker позволяет зашиф ровать диск, чтобы защитить важные данные. • Средства криптографии. Средства шифрования нового поколения обес печивают гибкую платформу для разработки криптографии. • Изоляция серверов и доменов. Ресурсы сервера и домена могут быть изолированы для обеспечения доступа к ним только с авторизованных компьютеров, прошедших проверку подлинности. • Контроллер домена только для чтения (RODC). Контроллер домена только для чтения — это новый способ установки контроллера доме на, предназначенный для удаленных филиалов с низким уровнем за щиты физического доступа к серверам. • Эти улучшения помогают администраторам повысить уровень безопас ности в организации и упростить развертывание параметров защиты и управление ими. Рассмотрим эти механизмы более подробно. Начнем с технологии Network Access Protection.
Защита доступа к сети Технология NAP (Network Access Protection — защита доступа к сети) пре дотвращает доступ к сети с компьютеров, не отвечающих требованиям безопасности, и тем самым защищает сеть организации от компрометации. Технология NAP используется для настройки и реализации требований безопасности, которым должны соответствовать компьютеры пользовате лей. С ее помощью на компьютер, не отвечающий требованиям, устанав ливаются необходимые обновления или переустанавливаются соответству ющие компоненты, и только после этого он может получить доступ к сети организации. С помощью технологии NAP администраторы могут настро ить параметры политик соответствия требованиям безопасности. К таким требованиям могут относиться требования установки на компьютер необ ходимого ПО, требования установки необходимых обновлений и требования к конфигурации компьютеров, которые подключаются к сети организации. Служба NAP производит оценку соответствия компьютеров заданным требованиям и ограничивает доступ к сети в случае, если компьютер им
124
Глава 10 Microsoft Windows Server 2008. Что еще нового?
не отвечает. В приведении компьютера в соответствие требованиям бе зопасности для предоставления ему полноценного доступа к сети участвуют как серверные компоненты, так и компоненты клиентской системы. Если выявлено, что клиентский компьютер не отвечает требованиям безопас ности, ему может быть отказано в доступе к сети, или на него могут быть немедленно установлены исправления, необходимые для приведения его в соответствие этим требованиям. Для принуждения соответствия компьютеров требованиям безопасно сти в службе NAP используются возможности таких технологий доступа к сети, как протоколы IPSec и 802. IX, принудительное использование вир туальных частных сетей для маршрутизации и удаленного доступа и при нудительное использование протокола DHCP.
Сценарии защиты доступа к сети (NAP) Представляя собой наиболее гибкое для заказчиков решение, защита до ступа к сети взаимодействует с ПО поставщика, которое либо содержит агент System Health Agent (SHA) и средства оценки работоспособности системы System Health Validators (SHV), либо распознает опубликованный набор интерфейсов программирования. В качестве примеров решений сторонних поставщиков, которые работают с защитой доступа к сети, можно назвать антивирусную программу, виртуальную частную сеть или сетевое оборудование. Защита доступа к сети предоставляет решение для следующих распространенных сценариев. • Проверка работоспособности и состояния мобильных переносных компьютеров С помощью защиты доступа к сети сетевые администраторы могут проверять состояние любого переносного компьютера, когда он повтор но подключается к сети компании, без ущерба для его мобильности и гибкости. • Поддержание работоспособности настольных компьютеров. Благодаря дополнительному управляющему ПО можно создавать авто матические отчеты, выполнять автоматическое обновление компьютеров, не соответствующих требованиям, а в случае изменения администраторами политик работоспособности компьютеры могут автоматически получать последние обновления, которые предотвращают угрозы их работоспособ ности со стороны общедоступных ресурсов. • Определение состояния переносных компьютеров, получающих дос туп в сеть. Благодаря защите доступа к сети администраторы могут определить, имеют ли посещающие ее переносные компьютеры полномочия на доступ, и если нет, лимитировать их доступ к ограниченной сети, не требуя обнов ления или изменения конфигурации этих переносных компьютеров.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
125
• Проверка соответствия требованиям и работоспособности неуправля емых домашних компьютеров С помощью защиты доступа к сети сетевые администраторы могут проверять наличие необходимых программ, параметров реестра, файлов или их сочетания всякий раз, когда домашний компьютер подключается к сети через виртуальную частную сеть; также они могут лимитировать подключение к ограниченной сети, пока не будут выполнены требования к работоспособности системы.
Режим повышенной безопасности брандмауэра Windows Встроенный в операционную систему Windows Server 2008 брандмауэр Windows (управляемый брандмауэр) в режиме повышенной безопаснос ти является индивидуальным брандмауэром с отслеживанием состояний соединений, который может пропускать или блокировать сетевой трафик в соответствии с заданными параметрами и запущенными приложения ми. Такой режим работы позволяет защитить сеть от вредоносных про грамм и действий пользователей. Одной из новых возможностей брандмауэра является перехват как вхо дящего, так и исходящего трафика. Сетевой администратор может, к при меру, настроить брандмауэр Windows таким образом, чтобы за некоторы ми исключениями заблокировать исходящий трафик, отправляемый на определенные порты, например на наиболее распространенные порты, используемые компьютерными вирусами, или заблокировать исходящий трафик, отправляемый на определенные адреса и содержащий конфиден циальные или нежелательные данные. Это позволяет защитить компьютер от вирусов, распространяемых по сети, а также защищает сеть от вирусов, которые могут попытаться распространить себя с зараженной системы. Так как количество настраиваемых параметров в брандмауэре Windows увеличилось, для упрощения администрирования брандмауэра была до бавлена оснастка управления брандмауэром Windows в режиме повышен ной безопасности для консоли управления ММС. Эта новая оснастка уп рощает удаленную настройку и управление брандмауэром Windows на клиентских рабочих станциях и серверах. Раньше для этого приходилось использовать подключение к удаленному рабочему столу. В предыдущих версиях операционной системы Windows Server настрой ка брандмауэра Windows производилась отдельно от настройки параметров протокола IPsec. Так как и индивидуальный брандмауэр, и протокол IPsec могут блокировать или разрешать входящие соединения, правила прото кола IPsec и исключения брандмауэра могут перекрываться или противо речить друг другу. В новом брандмауэре Windows в операционной систе ме Windows Server 2008 настройка обеих сетевых служб объединена об-
126
Глава 10 Microsoft Windows Server 2008. Что еще нового?
щим графическим пользовательским интерфейсом и командами команд ной строки. Такая интеграция настройки брандмауэра и параметров про токола IPsec упрощает настройку этих служб и помогает предотвратить перекрывающиеся или противоречивые правила.
Шифрование диска BitLocker Шифрование диска BitLocker является новой ключевой возможностью, которая доступна в о п е р а ц и о н н о й системе Windows Server 2008, а также в выпусках Windows Vista Enterprise и Windows Vista Ultimate. Эта возмож ность помогает защищать серверы, рабочие станции и мобильные ком пьютеры. С помощью технологии BitLocker шифруется содержимое дис ка. Злоумышленник не сможет получить доступ к зашифрованному содер жимому, осуществив загрузку о п е р а ц и о н н о й системы с другого раздела, обойдя защиты файловой системы с помощью программных средств или подключив жесткий диск к другому компьютеру. Защита данных с помощью шифрования BitLocker усиливается за счет шифрования системного раздела и проверки целостности компонентов, используемых на раннем этапе загрузки. Полностью шифруется систем ный раздел, включая файл подкачки и файл режима гибернации. Благо даря этому усиливается защищенность удаленных серверов в филиалах. Шифрование BitLocker позволяет предотвратить утечку или раскрытие данных с утерянного, украденного или неправильно утилизированного компьютера. Эта технология шифрования также помогает организациям исполнять государственные постановления и законы, например, закон Сарбэйнса-Оксли и HIPAA, в которых требуется использование высоких стандартов обеспечения безопасности и защиты данных.
Инфраструктура Enterprise PKI (PKIView) В инфраструктуру открытого ключа (PKI) в операционной системе Windows Server 2008 и Windows Vista был внесен ряд усовершенствований. Была улучшена управляемость всеми аспектами инфраструктуры Windows PKI, переработаны службы отзыва сертификатов и уменьшена контактная зона процесса регистрации. К усовершенствованиям инфраструктуры PKI от носится следующее. •
Инфраструктура Enterprise PKI (PKIView). Средство PKIView, ранее яв лявшееся частью комплекта ресурсов для о п е р а ц и о н н о й системы Windows Server 2003 и называвшееся PKI Health, теперь является осна сткой консоли ММС для о п е р а ц и о н н о й системы Windows Server 2008. О н о используется для анализа с о с т о я н и я ц е н т р о в с е р т и ф и к а ц и и и просмотра детальных сведений о сертификатах центров сертификации, опубликованных в службе сертификации Active Directory.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
127
• Протокол OCSP. Сетевой ответчик, работающий на основе протокола OCSP (Online Certificate Status Protocol — протокол сетевого состояния сертификата), может использоваться для управления информацией о состоянии отзыва сертификатов и распространения этой информации в случаях, когда использование традиционных списков отзыва серти фикатов не подходит. Сетевые ответчики могут быть настроены на одном компьютере или в массиве сетевых ответчиков. • Служба NDES. Служба NDES (Network Device Enrollment Service — служба подачи заявок на регистрацию сетевых устройств) в операционной системе Windows Server 2008 — реализация корпорацией Microsoft протокола SCEP (Simple Certificate Enrollment Protocol — простой про токол подачи заявки на сертификат). Этот протокол позволяет програм мам, работающим на маршрутизаторах, коммутаторах и других сете вых устройствах, и неспособным пройти проверку подлинности в сети другим способом, отправить запрос на получение сертификата х509 от центра сертификации. • Веб-регистрация. По сравнению с предыдущей версией новый элемент управления веб-регистрацией более защищен, его легче программиро вать с помощью сценариев и обновлять. • Параметры PKI в групповых политиках. Параметры сертификатов в групповых политиках позволяют администраторам централизованно управлять настройкой сертификатов для всех компьютеров в домене.
Служба CNG Служба CNG (Cryptography Next Generation — новое поколение криптог рафии) предоставляет гибкую платформу для разработки шифрования и позволяет ИТ-специалистам создавать, обновлять и использовать собствен ные алгоритмы шифрования в таких приложениях и технологиях, как служба сертификации Active Directory, технологии SSL и IPsec. Служба CNG реализует алгоритмы шифрования, цифровых подписей, обмена ключа ми и хеширования, перечисленные в своде правил Suite В Агентства на циональной безопасности США. Служба CNG предоставляет набор интерфейсов API для выполнения основных операций, таких как создание, сохранение и получение ключей шифрования. Также поддерживается установка и использования дополни тельных поставщиков шифрования. Благодаря платформе CNG разработ чики и организации могут использовать собственные алгоритмы шифро вания или реализации стандартных алгоритмов. Поддерживается текущий набор алгоритмов CryptoAPI версии 1.0, а также алгоритмы шифрования на основе эллиптических кривых (ЕСС). Поддер жка определенных алгоритмов ЕСС требуется для соответствия своду пра вил Suite В Агентства национальной безопасности США.
128
Глава 10 Microsoft Windows Server 2008. Что еще нового?
Контроллеры домена только для чтения Контроллер RODC (Read-Only Domain Controller — контроллер домена только для чтения) — это новый тип контроллера домена, который дос тупен в операционной системе Windows Server 2008 и предназначен для установки в филиалах. Контроллер RODC позволяет уменьшить риск ус тановки контроллера домена в удаленных филиалах или в других местах, где невозможно гарантировать физическую защищенность сервера. На таком контроллере домена хранятся все объекты и атрибуты служ бы каталогов Active Directory, которые хранятся на обычном контроллере домена, за исключением паролей учетных записей. Однако пользователи не могут сохранять изменения на контроллере RODC. Так как изменения не записываются непосредственно на контроллер RODC, и, следователь но, не могут возникнуть локально, контроллерам домена, которые поддер живают запись изменений и являются партнерами по репликации не нужно запрашивать изменения с контроллеров RODC. Разделение администра тивных ролей позволяет делегировать любому пользователю домена пра ва локального администратора контроллера RODC без необходимости предоставлять этому пользователю права в самом домене или на других контроллерах домена.
Изоляция серверов и доменов В сети, построенной на основе операционной системы Microsoft Windows, администраторы могут логически изолировать серверные и доменные ресурсы для обеспечения доступа к ним только с авторизованных компь ютеров, прошедших проверку подлинности. Например, внутри существу ющей физической сети можно создать логическую сеть, в которой у ком пьютеров будет общий набор требований для организации безопасных взаимодействий. Каждый компьютер в этой логически изолированной подсети должен предоставить учетные данные для прохождения провер ки подлинности на других компьютерах этой изолированной подсети. Изоляция предотвращает неавторизованный доступ компьютеров и программ к ресурсам. Запросы от компьютеров, которые не являются ча стью изолированной подсети, игнорируются. Изоляция серверов и доме нов помогает защитить определенные особо ценные серверы и данные, а также защитить контролируемые компьютеры от доступа неконтролиру емых или посторонних компьютеров и пользователей. В сети может использоваться два типа изоляции. • Изоляция серверов. Такой вариант изоляции подразумевает настройку политик IPsec на определенных серверах таким образом, чтобы прини мались соединения только от компьютеров, прошедших проверку под линности. Например, можно настроить сервер баз данных таким обра зом, чтобы он принимал соединения только от сервера веб-приложений.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
•
129
Изоляция доменов. Чтобы изолировать домен, администраторы могут воспользоваться членством компьютеров в домене Active Directory и настроить эти компьютеры таким образом, чтобы они принимали толь ко безопасные соединения, прошедшие проверку подлинности, и только от компьютеров, которые тоже являются членами этого домена. Изо лированная сеть в таком случае состоит только из компьютеров, явля ющихся членами домена. При изоляции доменов для защиты данных, пересылаемых между всеми членами домена, включая все клиентские компьютеры и серверы, используется политика IPsec.
Операционная система Windows Server 2008 позволяет организациям воспользоваться такими беспрецедентными возможностями защиты на ос нове политик, как защита доступа к сети (NAP). Оценка и контроль состоя ния и защищенности взаимодействующих компьютеров значительно улуч шит защищенность организации. Новые интерфейсы управления в опера ционной системе Windows Server 2008 упрощают процесс администриро вания, настройки и поддержки множественных серверов организации и уменьшают затраты на поддержание сетевой безопасности предприятия.
Механизмы централизованного доступа к приложениям Улучшения и нововведения в службах терминалов в о п е р а ц и о н н о й сис теме Windows Server 2008 выходят за рамки простого предоставления удаленного доступа пользователей к приложениям. Благодаря возможно сти запускать на рабочем столе пользователя удаленные приложения ря дом с локальными приложениями значительно улучшено взаимодействие с пользователями. Также стал возможен централизованный доступ к при ложениям через веб-клиент служб терминалов. Ниже перечислены новые компоненты служб терминалов. •
Удаленные приложения служб терминалов. •
•
Шлюз служб терминалов. •
•
Благодаря удаленным приложениям служб терминалов пользовате ли могут запускать удаленные приложения на своем рабочем столе наряду с обычными локальными приложениями. Для работы этой возможности необходим клиент подключения к удаленному рабо чему столу версии 6.0. Шлюз служб терминалов (TS Gateway) позволяет получить безопас ный доступ к службам терминалов и общим рабочим столам из-за пределов межсетевого экрана предприятия без необходимости раз вертывания инфраструктуры виртуальной частной сети (VPN).
Веб-клиент служб терминалов.
130
Глава 10 Microsoft Windows Server 2008. Что еще нового?
• Веб-клиент служб терминалов (TS Web Access) является решением для работы с удаленными приложениями, которое упрощает админист раторам процесс публикации этих приложений, а пользователям — процесс поиска и запуска этих приложений. • Единый вход. • Технология единого входа улучшает взаимодействие с пользовате лями, избавляя их от необходимости многократно вводить свои учет ные данные. Рассмотрим механизмы централизованного доступа к приложениям более подробно. Начнем со службы терминалов.
Службы терминалов Службы терминалов в операционной системе Windows Server 2008 вклю чают ряд новых ключевых функциональных возможностей, которые улуч шают взаимодействие с пользователями. Компоненты этой новой ключе вой функциональности описаны ниже. • Клиент подключения к удаленному рабочему столу версии 6.0. Для до ступа к службам терминалов пользователям необходимо использовать клиент подключения к удаленному рабочему столу версии 6.0. Он вхо дит в состав операционных систем Windows Server 2008 и Windows Vista; версия этого клиента для операционных систем Windows XP и Windows Server 2003 доступна для бесплатной загрузки. • Улучшения отображения подключения к удаленному рабочему столу. Клиент подключений к удаленному рабочему столу версии 6.0 поддер живает работу с рабочими столами с высоким разрешением (до 4096 на 2048 точек) и отображение одного большого рабочего стола на нескольких расположенных в ряд мониторах. Новая версия клиента позволяет воспользоваться преимуществами новых мониторов высо кого разрешения и современных форматов экрана (например, широ коформатных экранов с пропорциями 16 на 9 или 16 на 10), которые не соответствуют прежнему стандарту с пропорциями 4 на 3. • Функция Desktop Experience. Клиент подключения к удаленному рабо чему столу версии 6.0 воспроизводит рабочий стол удаленного компь ютера на компьютере пользователя. Если на сервере Windows Server 2008 установлена функция Desktop Experience, пользователь сможет восполь зоваться такими возможностями операционной системы Windows Vista, как проигрыватель Windows Media, темы рабочего стола или работа с фотоснимками через удаленное подключение. Функция Desktop Expe rience и параметры задания приоритета отображаемых данных улуч шают взаимодействие конечного пользователя с сервером терминалов Windows Server 2008. Параметры приоритета отображаемых данных нужны, чтобы нажатия клавиш на клавиатуре и действия мыши без за-
Глава 10 Microsoft Windows Server 2008. Что еще нового?
131
держек взаимодействовали с экранными элементами даже в условиях значительной нагрузки на канал передачи данных.
Единый вход Единый вход позволяет пользователям с доменной учетной записью, вы полнившим вход в сеанс служб терминалов с помощью пароля или смарткарты, получать доступ ко всем удаленным серверам и приложениям без повторных запросов учетных данных. Единый вход улучшает взаимодей ствие с пользователями, избавляя их от необходимости вводить учетные данные каждый раз при открытии сеанса удаленного доступа.
Удаленные приложения служб терминалов Удаленные приложения служб терминалов — это новый способ представ ления удаленных приложений в операционной системе Windows Server 2008. Способ представления удаленных приложений дополняет существу ющий способ представления служб терминалов, при котором пользова телю отображался весь удаленный рабочий стол с запущенными на нем удаленными приложениями. В операционной системе Windows Server 2008 взаимодействие пользо вателя с удаленными приложениями существенно изменилось. Теперь не весь рабочий стол, а только окно удаленного приложения открывается на рабочем столе пользователя, причем размер этого окна можно изменять так же, как и размер любых других окон. Если у программы есть значок, отображаемый в области уведомлений, то этот значок также появится в области уведомлений на клиентском компьютере. Всплывающие окна также передаются на локальный рабочий стол и открываются на нем, а локаль ные дисковые устройства и принтеры доступны из удаленного приложе ния. Многие пользователи даже не смогут отличить удаленное приложе ние от работающего рядом локального приложения. Благодаря удаленным приложениям упрощается работа администрато ров, которым нужно поддерживать приложение только в одном месте, вместо того, чтобы устанавливать и поддерживать приложение на всех рабочих станциях пользователей в организации. Также благодаря удаленным при ложениям улучшается взаимодействие с пользователями за счет плавной интеграции удаленных приложений с клиентскими рабочими столами.
Шлюз служб терминалов (TS Gateway) Шлюз служб терминалов (TS Gateway) — это роль служб терминалов, с помощью которой авторизованные удаленные пользователи могут подклю чаться к серверам терминалов и рабочим станциям в сети предприятия через Интернет. Эта служба позволяет предоставить удаленным или путе шествующим работникам защищенный доступ к определенным серверам
132
Глава 10 Microsoft Windows Server 2008. Что еще нового?
и рабочим станциям без необходимости использовать подключение к виртуальной частной сети (VPN). Некоторые из ключевых преимуществ использования шлюза служб терминалов перечислены ниже. • Возможность защищенного подключения удаленных пользователей к ресурсам сети предприятия через Интернет без необходимости исполь зования сложных подключений к виртуальной частной сети (VPN). • Использование защищенности и доступности протокола HTTPS для доступа к службам терминалов без необходимости настройки на сто роне клиента. • Комплексная модель безопасности, благодаря которой администрато ры могут контролировать доступ к определенным ресурсам в сети. • Возможность подключения пользователей к серверам терминалов и удаленным рабочим станциям через межсетевые экраны и преобразо ватели сетевых адресов (NAT). • Более защищенная модель доступа, позволяющая ограничить доступ пользователей только к определенным серверам и рабочим станциям, а не ко всей сети предприятия, как это происходит в случае использо вания подключений к виртуальной частной сети (VPN). Благодаря шлюзу служб терминалов организации могут легко предос тавить защищенный доступ удаленным пользователям к серверам и рабо чим станциям в сети организации без необходимости устанавливать и настраивать подключение к виртуальной частной сети (VPN). Комплекс ная модель безопасности позволяет администраторам контролировать доступ к определенным ресурсам.
Веб-клиент служб терминалов Веб-клиент служб терминалов (TS Web Access) — это роль служб термина лов, с помощью которой администраторы могут предоставить доступ пользо вателям к удаленным приложениям через веб-обозреватель без необходи мости устанавливать дополнительное ПО. С помощью веб-клиента служб терминалов пользователи могут получить список доступных приложений через веб-узел. Когда пользователь запускает одно из удаленных приложе ний, для этого пользователя автоматически создается сеанс служб терми налов на сервере терминалов под управлением операционной системы Windows Server 2008, на котором размещается это приложение. Для пользо вателя в веб-интерфейсе доступно централизованное меню, в котором ото бражаются все доступные удаленные приложения. Чтобы запустить удален ное приложение, достаточно выбрать нужную программу в меню. Использование веб-клиента служб терминалов уменьшает трудозатра ты по администрированию за счет централизованного доступа к удален ным приложениям. Приложения выполняются на сервере терминалов, а
Глава 10 Microsoft Windows Server 2008. Что еще нового?
133
не на клиентских компьютерах, поэтому ИТ-персоналу необходимо под держивать и обновлять эти приложения в единственном экземпляре.
Средства управления удаленными филиалами Чтобы более плотно взаимодействовать со своими клиентами, организа ции перемещают сотрудников из центрального офиса в удаленные фили алы. По мере возрастания количества филиалов пропорционально возра стают и потребности в управлении и защите ИТ-инфраструктуры этих удаленных офисов. Количество работников в удаленных филиалах быст ро растет, и в корпорации Microsoft учитывают потребности организаций в новых решениях для особых условий филиалов. Так как в удаленных филиалах зачастую нет штатного ИТ-персонала, возникают определенные особенности работы ИТ-специалистов с серве рами в этих филиалах. Программное обеспечение, которое используется на этих серверах, должно быть рассчитано на работу через каналы гло бальной сети с низкой пропускной способностью, и при этом не занимать эти каналы полностью, чтобы не замедлять работу приложений и пере дачу критически важных данных. Также в филиалах необходимо обеспе чивать более надежную защиту, потому что физическую защищенность серверов в филиалах не всегда можно гарантировать. Так как большин ство ИТ-персонала находится за пределами филиалов, предпочтительны ми являются решения, позволяющие осуществлять централизованное уп равление, а также удаленное администрирование и развертывание. Потребности и проблемы удаленных филиалов впервые были учтены в операционной системе Windows Server 2003 R2. В Windows Server 2008 включено множество дополнительных усовершенствований, благодаря которым у администраторов появляются новые возможности управления филиалами, а также обеспечивается более сильная защищенность сетей и данных удаленных филиалов и центрального офиса. Также новая сис тема предоставляет ИТ-специалистам более гибкие возможности для удов летворения специфичных потребностей организаций. Ключевые преимущества для филиалов, предлагаемые в операционной системе Windows Server 2008, можно разделить на три категории. • Повышение эффективности развертывания и администрирования сер веров в удаленных офисах. • Уменьшение уязвимости удаленных офисов. • Повышение эффективности использования пропускной способности канала для соединений через глобальную сеть. Предлагаемые корпорацией MicrosoftHOBbie возможности и усовершен ствования решений для филиалов и Windows Server 2008 отвечают основ-
134
Глава 10 Microsoft Windows Server 2008. Что еще нового?
ным требованиям работы удаленных офисов. К таким возможностям опе рационной системы Windows Server 2008 относится упрощенный процесс развертывания, эффективное управление ключевыми ролями сервера, повышенная защита, а также архитектура системы, которая повышает быстродействие и бесперебойность работы.
Механизмы обеспечения высокого уровня доступности Обеспечение бесперебойной работы важнейших приложений является ключевой задачей ИТ-отделов, поэтому многие усовершенствования в Windows Server 2008 нацелены на высокий уровень доступности. Опера ционная система Windows Server 2008 сочетает в себе такие возможнос ти, как отказоустойчивые кластеры, балансировка сетевой нагрузки, но вые возможности для резервного копирования и восстановления. Соче тание этих возможностей обеспечивает организациям высокий уровень доступности, благодаря чему критически важные приложения, службы и данные доступны всем пользователям.
Отказоустойчивые кластеры Отказоустойчивый кластер, ранее называвшийся кластером серверов, яв ляется группой компьютеров, которые функционируют совместно и по вышают доступность приложений и служб. Серверы в кластере называются узлами. Помимо физической кабельной сети, они объединяются с помо щью специального ПО. В случае отказа одного из узлов кластера проис ходит процесс переключения на другой узел, который заменяет вышед ший из строя узел и обеспечивает минимальные перебои в предоставле нии пользователям доступа к службам. Отказоустойчивые кластеры исполь зуются ИТ-специалистами для обеспечения высокого уровня доступнос ти критически важных служб и приложений. Усовершенствования отказоустойчивых кластеров в операционной сис теме Windows Server 2008 направлены на упрощение работы с кластерами, а также на повышение уровня защищенности и стабильности кластеров. Новый мастер проверки в Windows Server 2008 позволяет убедиться, что система, устройства хранения и параметры сети подходят для работы кластера. Этот мастер упрощает установку и настройку кластера. Ниже приводится список проверок, которые осуществляются этим мастером. • Проверки узла. Проверяется, одинаковые ли версии ОС и обновления ПО установлены на серверах. • Проверки сети. Проверяется соответствие планируемой сети кластера определенным требованиям, например, требованию наличия как ми нимум двух раздельных подсетей для обеспечения избыточности сети.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
135
• Проверки устройств хранения. Проверяется, что устройства хранения удовлетворяют определенным требованиям, и что у всех узлов класте ра есть доступ ко всем общим дискам. В Windows Server 2008 поддерживаются диски с таблицами разделов GPT (GUID Partition Table — таблица разделов с глобальными уникальными идентификаторами) в хранилище кластера. GPT-диски поддерживают разделы размером более двух терабайт и, в отличие от MBR-дисков, обла дают встроенной избыточностью. Таблица разделов GPT обладает рядом преимуществ перед таблицей разделов MBR, так как она поддерживает до 128 разделов на диске, тома размером до 18 экзабайт, уникальные иден тификаторы разделов и дисков, а также позволяет создавать первичную и резервную таблицы разделов для обеспечения избыточности. Для упрощения управления кластерами интерфейсы управления были усовершенствованы, чтобы администраторы могли сфокусировать свое вни мание на управлении приложениями и данными, а не кластером. Новый интерфейс ориентирован на задачи и более понятен, а мастера помогают администраторам совершать действия, ранее являвшиеся довольно сложными. Отказоустойчивый кластер в операционной системе Windows Server 2008 обладает повышенной надежностью и улучшенной функционально стью по сравнению с предыдущими версиями кластеров серверов. Ниже приведен список ключевых усовершенствований. • Динамическое добавление дисковых ресурсов. Зависимости ресурсов можно изменять, не переводя ресурсы в автономный режим, что позволя ет администраторам увеличивать доступное дисковое пространство, не прерывая работу использующих это пространство приложений. • Улучшенная производительность и стабильность благодаря использо ванию хранилища данных. Когда отказоустойчивый кластер взаимодей ствует с сетями хранения данных (SAN) или с непосредственно под ключенными устройствами хранения данных (DAS), используются ко манды, менее всего нарушающие работу этих устройств, благодаря чему уменьшается количество сбросов шины SCSI. Диски никогда не нахо дятся в незащищенном состоянии, благодаря чему уменьшается веро ятность повреждения тома. Отказоустойчивые кластеры также поддер живают усовершенствованные методы обнаружения дисков и восста новления данных. Поддерживается подключение к устройствам хране ния данных через интерфейс последовательного подключения SCSI (SAS), интерфейс iSCSI или через оптоволоконный канал. • Упрощенное обслуживание дисков. Режим обслуживания значительно усовершенствован. Он упрощает запуск средств проверки, исправления ошибок, резервного копирования и восстановления дисков, а также уменьшает воздействие этих операций на работу кластера. Windows Server 2008 упрощается развертывание и управление кластерами, а также повышается производительность и надежность работы кластеров.
136
Глава 10 Microsoft Windows Server 2008. Что еще нового?
Балансировка сетевой нагрузки С помощью балансировки сетевой нагрузки осуществляется распределение сетевой нагрузки клиентских и серверных приложений между нескольки ми серверами в кластере балансировки сетевой нагрузки. Эта функция важна для организаций, нуждающихся в распределении клиентских запросов между несколькими серверами. В частности, она полезна для масштабирования приложений без сведений о состоянии путем наращивания количества серверов по мере увеличения нагрузки. К таким приложениям можно от нести веб-приложения, работающие под управлением служб IIS. Баланси ровка сетевой нагрузки позволяет легко заменить вышедший из строя сер вер, тем самым повышая надежность системы. Ниже приведены усовершен ствования балансировки сетевой нагрузки в Windows Server 2008. • Поддержка протокола IPv6. Балансировка сетевой нагрузки полностью поддерживает сетевое взаимодействие по протоколу IPv6. • Поддержка программного интерфейса NDIS версии 6.0. Сетевой драй вер балансировки сетевой нагрузки был полностью переработан для поддержки облегченной модели фильтров программного интерфейса NDIS версии 6.0, при этом сохранилась поддержка всех более ранних версий программного интерфейса NDIS. Усовершенствования архитек туры этого программного интерфейса включают увеличение произво дительности и масштабируемости драйвера, а также упрощенная мо дель этого драйвера. • Расширения интерфейса WMI. Расширения интерфейса WMI в простран стве имен MicrosoftNLB обеспечивают поддержку протокола IPv6 и множественных выделенных IP-адресов. • Классы в пространстве имен MicrosoftNLB. Помимо адресов IPv4 теперь поддерживаются адреса IPv6. • Класс MicrosoftNLB_NodeSetting. Поддерживаются множественные вы деленные IP-адреса. Для этого они указываются в свойствах класса DedicatedlPAddresses и DedicatedNetMasks. • Расширенные возможности для работы с сервером ISA Server. Сервер ISA Server может задать множественные выделенные IP-адреса для каж дого узла балансировки сетевой нагрузки. Это нужно для случаев, ког да клиенты работают и по протоколу IPv4, и по протоколу IPv6. Для управления сетевым трафиком и клиенты IPv4, и клиенты IPv6 долж ны подключаться к определенному серверу ISA Server. Сервер ISA Server также может оповещать узлы балансировки сетевой нагрузки о SYNатаках и случаях нехватки таймеров, которые обычно возникают при перегрузке компьютера или при заражении его Интернет-вирусом. • Поддержка множественных выделенных IP-адресов для каждого узла. Ра нее каждому узлу балансировки сетевой нагрузки можно было выделить только один IP-адрес. Теперь поддерживается выделение каждому узлу
Глава 10 Microsoft Windows Server 2008. Что еще нового?
137
множественных IP-адресов, что позволяет размещать в одном кластере несколько приложений, требующих наличия выделенных IP-адресов. Перечисленные возможности обеспечивают поддержку новых отрас левых стандартов, увеличенную производительность, улучшенное взаимо действие, усиленную защищенность и расширенную гибкость разверты вания и объединения приложений.
Архивация данных Архивация данных — это третий ключевой компонент в Windows Server 2008, предназначенный для обеспечения высокой степени доступности служб. Функция архивации данных позволяет осуществлять резервное копирование и восстановление данных сервера, на котором установлена эта возможность. В новой версии используется новая технология резерв ного копирования и восстановления, пришедшая на смену функциям ар хивирования данных предыдущих версий операционных систем Windows. Архивирование данных позволяет эффективно и надежно защищать весь сервер, не беспокоясь о сложности технологий резервного копирования и восстановления. Простые мастера помогают настроить автоматическое рас писание резервного копирования, создавать при необходимости резервные копии вручную, а также восстанавливать отдельные элементы или целые тома. Архивирование данных в Windows Server 2008 можно использовать для ре зервного копирования как отдельных томов, так и сервера целиком. Для эффективного резервного копирования и восстановления опера ционной системы, файлов, папок и томов в функции архивирования дан ных используются служба теневого копирования томов и технология ре зервного копирования на уровне блоков. После первоначального созда ния полной резервной копии функция архивации данных автоматичес ки осуществляет добавочное резервное копирование, сохраняя только данные, измененные с момента осуществления предыдущего резервного копирования. В отличие от предыдущих версий, теперь администраторам не нужно заботиться о задании расписания сохранения полных и доба вочных резервных копий. Восстановление данных также было улучшено и упрощено в операци онной системе Windows Server 2008. Теперь можно восстанавливать от дельные элементы из архива, в частности, отдельные файлы и папки. Для этого необходимо выбрать архив для восстановления, а затем выбрать из него отдельные элементы. Ранее, чтобы восстановить элемент из добавоч ной резервной копии, необходимо было вручную восстанавливать его из нескольких архивов. Теперь достаточно лишь указать дату резервного копирования необходимой версии файла. В операционной системе Windows Server 2008 предлагаются решения для резервного копирования и восстановления данных, которые позволяют за-
138
Глава 10 Microsoft Windows Server 2008. Что еще нового?
щитить данные и операционные системы на серверах в сети организации, упрощая при этом администрирование резервного копирования критичес ки важных данных и ускоряя восстановление данных. Эти решения допол няют набор решений для обеспечения высокого уровня доступности. Утилита w b a d m i n На смену утилите ntbackup в Windows Server 2008 появилась новая ути лита — wbadmin, с помощью которой можно создавать резервные копии томов и файлов и выполнять восстановление данных на основе резерв ных копий непосредственно из командной строки. Возможные варианты запуска утилиты w b a d m i n показаны ниже. •
Wbadmin enable backup
•
Wbadmin disable backup
•
Wbadmin start backup
•
Wbadmin stop job
•
Wbadmin get versions
•
Wbadmin get items
•
Wbadmin start recovery
•
Wbadmin get status
•
Wbadmin get disks
•
Wbadmin start sysstaterecovery
•
Wbadmin start sysrecovery
•
Wbadmin restore catalog
•
Wbadmin delete catalog
В следующей таблице описано назначение каждой из команд утилиты wbadmin. Команда
Описание
Wbadmin enable backup
Активизирует или конфигурирует ежедневное создание резервных копий по расписанию. Данная команда работает только в Windows Server 2008 Запрещает ежедневное создание резервных копий по расписанию. Данная команда работает только в Windows Server 2008
Wbadmin disable backup
Wbadmin start backup Wbadmin stop job
Запускает задачу создания резервной копии
Wbadmin get versions
Возвращает информацию о доступных резервных копиях
Wbadmin get items
Перечисляет элементы, включенные в резервную копию
Останавливает создание резервной копии или восстановления данных
Глава 10
Microsoft Windows Server 2008. Что еще нового?
139
Команда
Описание
Wbadmin start recovery
Выполняет восстановление данных. Данная команда работает только в Windows Server 2008
Wbadmin get status
Возвращает статус о п е р а ц и и создания р е з е р в н о й к о п и и или восстановления
Wbadmin get disks
Перечисляет диски, которые находятся в подклю ч е н н о м режиме. Данная команда работает только в Windows Server 2008
Wbadmin start sysstaterecovery
Выполняет восстановление системы. Данная команда работает только в Windows Server 2008
Wbadmin start sysrecovery
Выполняет полное восстановление системы. Данная команда работает только в Windows Server 2008 и только при использовании Windows Recovery Environment
Wbadmin restore catalog
Восстанавливает поврежденный каталог. Данная команда работает только в Windows Server 2008
Wbadmin delete catalog
Удаляет поврежденный каталог. Данная команда работает только в Windows Server 2008
В Windows Server 2008 для восстановления данных, сохранешплх с помощью утилиты ntbackup, следует использовать специальную версию этой утилиты, которую можно загрузить по адресу: http://go.microsoft.com/ fwlink/?LinkId=82917 Эта утилита служит только для восстановления дан ных и не поддерживает создание резервных копий.
Новинки в службах каталогов В Windows Server 2008 имеется ряд усовершенствований службы катало гов Active Directory, упрощающих управление службой каталогов и предо ставляющих администраторам более гибкие возможности для удовлетво рения потребностей удаленных филиалов. Ниже перечислены некоторые из ключевых усовершенствований. • Обновленный мастер установки службы каталогов Active Directory (AD DS). • Изменения в консоли ММС, используемой для управления службой ка талогов Active Directory. • Новые варианты установки контроллеров домена. • Обновленный мастер установки, упрощающий установку службы ката логов Active Directory. • Улучшенный интерфейс и расширенные возможности управления служ бой каталогов Active Directory. • Усовершенствованные средства для поиска контроллеров домена в организации.
140
Глава 10 Microsoft Windows Server 2008. Что еще нового?
В новом мастере установки взаимосвязанная функциональность теперь сгруппирована, что позволяет ускорить процесс развертывания и сэконо мить время. Возможности автоматической установки операционной сис темы Windows Server 2008 позволяют еще больше упростить процесс за счет установки системы без участия пользователя. Эта возможность так же позволяет установить службу каталогов Active Directory на операцион ной системе, установленной в варианте основных компонентов сервера. Чтобы убедиться в правильной работе только что установленного DNSсервера, осуществляется автоматическая конфигурация параметров DNSклиента, серверов пересылки и корневых ссылок на основании парамет ров, заданных при установке. Все эти усовершенствования интерфейса службы каталогов Active Direc tory, предлагаемые в Windows Server 2008, позволяют оптимизировать процесс первоначального развертывания, благодаря чему уменьшается время, затрачиваемое на администрирование, и упрощается управление серверами в удаленных офисах.
Контроллеры домена только для чтения Одной из наиболее значимых новых функций для доменных служб Active Directory (AD DS) в Windows Server 2008 является контроллер домена только для чтения (RODC). RODC позволяет без труда развертывать контроллеры домена, содержащие реплику базы данных домена только для чтения. Такая возможность очень хорошо подходит для тех мест, где нельзя гарантировать физическую безопасность контроллера домена, где подключение к сети от рицательно сказывается на производительности и где на контроллере домена должны выполняться другие приложения, обслуживаемые администратором сервера (который в идеале не входит в состав группы администраторов до мена). Все эти сценарии характерны для многих филиалов. RODC содержит те же объекты и атрибуты, что и контроллер домена с поддержкой записи. Тем не менее локально инициированные изменения вносятся не в саму реплику RODC, а в контроллер домена с поддержкой записи и только потом реплицируются назад, на контроллер RODC. Это не позволяет изменениям, произведенным в филиалах, засорять и повреж дать лес Active Directory в ходе репликации. Кроме того, администратор может настроить на контроллере RODC хранение (кэширование) учетных данных пользователей. Когда пользова тель впервые пытается пройти проверку подлинности на контроллере RODC, тот пересылает запрос контроллеру домена с поддержкой записи. Если проверка подлинности завершается успешно, RODC запрашивает копию учетных данных. Возможность репликации и кэширования учетных данных на контроллере RODC определяется действующей политикой репликации паролей. Если кэширование выполнено, при последующих попытках пользо вателя войти в систему его запросы обрабатываются непосредственно кон-
Глава 10 Microsoft Windows Server 2008. Что еще нового?
141
троллером RODC (пока в ходе репликации не будет получено уведомление об изменении учетных данных). Кэширование учетных данных способно увеличить продуктивность пользователей за счет смягчения негативного эффекта задержек в глобальной сети или проблем с подключением, кото рые нередко возникают в филиалах. Кроме того, службы AD DS ведут спи сок всех учетных данных, хранящихся на RODC; при возникновении про блем с безопасностью контроллера RODC администратор может принуди тельно сбросить пароли всех имеющихся на нем учетных записей. Контроллеры RODC позволяют делегировать право на установку и управ ление не имеющему прав администратора персоналу филиала. Сотрудники филиала могут выполнять установку путем подключения сервера к ранее созданной администратором учетной записи RODC. Это устраняет необхо димость использовать промежуточный узел для контроллеров домена в фи лиале или посылать в филиал установочный носитель и администратора.
Службы федерации Active Directory Службы федерации Active Directory (AD FS) — это серверная роль в опе рационной системе Windows Server 2008. С помощью AD FS можно создать расширяемое, интернет-масштабируемое и безопасное решение для уп равления идентификацией пользователей и правами доступа, способное функционировать на нескольких платформах, включая среды как Windows, так и других операционных систем. Службы AD FS включают функцию импорта и экспорта политик, которая помогает настраивать доверитель ные отношения между федеративными партнерами. Добавлен поставщик контроля членства, позволяющий пользователям федеративного партне ра проходить ролевую проверку подлинности при подключении к служ бам Windows SharePoint Services (WSS) и службам управления правами (RMS). А администраторы могут теперь с помощью групповой политики ограничивать развертывание служб федерации. Кроме того, поддержива ются разные параметры проверки отзыва сертификатов.
Аудит службы каталогов Новая субкатегория политики аудита «Изменения службы каталогов» пре доставляет в распоряжение администраторов возможности для ведения точного аудита. Политика аудита «Изменения службы каталогов» сохра няет старые и новые значения объектов службы каталогов и их атрибу тов. Администраторы смогут видеть, кто и когда произвел изменение, ка кие объекты и атрибуты подверглись изменению, а также какими были исходное и новое значения. Данные аудита службы каталогов заносятся в журнал событий Windows; для их консолидации и обработки применяет ся Microsoft Operations Manager и средства сторонних разработчиков. За счет подробной регистрации упрощается отслеживание изменений службы каталогов и улучшается соблюдение регулятивных норм.
142
Глава 10 Microsoft Windows Server 2008. Что еще нового?
Основные компоненты роли сервера Установка основных компонентов сервера Windows Server 2008 поддер живается для ролей AD DS и AD LDS (службы Active Directory облегченно го доступа к каталогам). Основные компоненты сервера — это новый ва риант установки операционной системы, позволяющий создавать среду, требующую меньше обслуживания и идеально подходящую для конкрет ных служб на основе ролей. Наряду с сокращением потребности в управ лении и обслуживании сокращается и количество уязвимостей в установ ке Windows Server 2008.
Перезапускаемые службы AD DS Службы домена Active Directory в Windows Server 2008 можно останавли вать и запускать из оснасток консоли управления (ММС) и из командной строки. Службы AD DS на основе служб упрощают управление за счет со кращения времени, необходимого для выполнения операций в автоном ном режиме, таких как автономная дефрагментация и принудительное восстановление. Кроме того, улучшается доступность других служб, кото рые запущены на контроллере домена, поскольку они остаются активны даже во время обслуживания AD DS. Все клиенты, привязанные к останов ленному контроллеру домена, просто обращаются к другому контролле ру с помощью функции обнаружения.
Средство просмотра снимков AD DS Отображая информацию об объектах в периодически создаваемых снимках AD DS, средство просмотра помогает идентифицировать непреднамеренно удаленные объекты. Просматривать эти снимки можно на контроллере домена без необходимости его запуска в режиме восстановления службы каталогов. Путем сравнения состояния объектов в разных снимках мож но без труда выбрать подходящую архивную копию AD DS для восстанов ления удаленных объектов.
Детальная политика паролей и блокировки учетных записей Детальные политики паролей позволяют определять несколько политик паролей и применять различные ограничения для паролей и политики блокировки учетных записей для отдельных групп пользователей в пре делах одного домена.
Установка с носителя Параметр «Установить с носителя» (IFM) может быть использован для ус тановки дополнительного контроллера домена в существующем домене и сокращения трафика репликации в процессе установки.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
143
Службы развертывания Windows Службы развертывания Microsoft Windows позволяют быстро развертывать в удаленном режиме операционные системы Windows (например, Windows Vista и Windows Server 2008). Благодаря этому можно устанавливать Win dows по сети на компьютерах без операционной системы, причем нали чие установочного носителя и физическое присутствие человека на уда ленном компьютере не требуется. Службы развертывания Windows были ранее доступны как обновление для Windows Server 2003, а их усовершен ствованная версия была включена в состав Windows Server 2008.
Новые возможности служб развертывания Windows в Windows Server 2008 • Повышенная производительность протокола TFTP; • Средства диагностики; • Многоадресное развертывание.
Повышенная производительность протокола TFTP Службы развертывания Windows используют протокол TFTP для пересылки сетевого загрузчика и загрузочных образов среды предустановки Windows (WinPE). В Windows Server 2008 протокол TFTP включает настраиваемый механизм кадрирования, который сокращает количество пакетов, отправ ляемых клиентскими сетевыми загрузчиками, что в свою очередь приво дит к повышению производительности.
Средства диагностики Теперь службы развертывания Windows регистрируют подробные данные о своих клиентах. Полученные журналы публикуются в Crimson (интегри рованном компоненте ведения журналов в Windows Server 2008). Их можно экспортировать для обработки в Microsoft Office InfoPath или другое сред ство извлечения данных.
Многоадресное развертывание Этот метод позволяет развертывать операционные системы Windows на множестве компьютеров одновременно, обеспечивая при этом сохране ние пропускной способности сети. Службы развертывания Windows под держивают два метода многоадресного развертывания: • ScheduledCast — развертывание на основе задач; • AutoCast — всегда доступное развертывание. ScheduledCast контролирует время начала развертывания. Только кли енты, подключившиеся до наступления этого момента, могут участвовать в развертывании по этому методу.
144
Глава 10 Microsoft Windows Server 2008. Что еще нового?
Метод AutoCast позволяет клиентам подключаться к многоадресному потоку в любое время и комбинирует их в целях сохранения пропускной способности. Процесс AutoCast, будучи однажды настроен на образ опе рационной системы, остается активным до тех пор, пока не будет оста новлен вручную. Однако образ пересылается по сети только тогда, когда его запросит клиент. И ScheduledCast, и AutoCast отображают данные о том, какие клиенты подключены и какая часть образа ими уже получена.
Новинки в сетевых функциях Среди многочисленных новых и улучшенных возможностей Microsoft Windows Server 2008 наиболее важную роль играют изменения, связанные с работой в сети. Эти обновления представляют самый большой набор изменений со времени выпуска Windows Server в 1990-х годах. Они по могают ИТ-администраторам обеспечивать большую безопасность, надеж ность и масштабируемость работы в сети. Центральное место среди этих улучшений принадлежит «стеку TCP/IP следующего поколения», который представляет собой важное обновление функциональных возможностей Windows TCP/IP, соответствующих служб и интерфейсов прикладного программирования. Стек TCP/IP следующе го поколения представляет полнофункциональную архитектуру, отвеча ющую потребностям подключения и производительности различных со временных сетевых сред и технологий. В то же время расширяемость нового стека TCP/IP обеспечивает гибкость при адаптации новых сетевых стандартов и удовлетворении потребностей заказчиков в будущем. К изменениям и улучшениям сетевых протоколов и базовых компонен тов в Windows Server 2008 относятся следующие: • новая двойная архитектура IP стека TCP/IP для универсальной поддерж ки IPv4 и IPv6; • интеллектуальные алгоритмы автоматической настройки и оптимиза ции сети; • безопасность сетевых узлов и улучшения IPsec; • интегрированная поддержка аппаратной разгрузки сети и технологий ускорения; • упрощенное управление и сетевая диагностика; • набор интерфейсов прикладного программирования, обеспечивающих разнообразные возможности расширения. Администраторы Windows Server получат следующие преимущества благодаря использованию этих сетевых инноваций и улучшений.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
145
Расширенная сквозная инфраструктура безопасности Для того чтобы помочь администраторам противостоять постоянно рас тущему количеству сетевых угроз, Windows Server 2008 включает целый ряд улучшений безопасности сетевых узлов. Как часть общей стратегии многоуровневой защиты, эти ф у н к ц и и составляют основу нескольких ключевых решений в области сетевой безопасности на основе политик, таких как: изоляция сервера и домена (EN), защита доступа к сети (NAP) (EN), а также безопасная беспроводная ЛВС (EN): • Улучшенный межсетевой экран Windows поддерживает фильтрацию входящих и исходящих пакетов, а также интегрированную функцио нальность IPsec. • Упрощенная конфигурация политики IPsec с расширенными метода ми проверки подлинности, полная поддержка IPv4 и IPv6, а также ин теграция с защитой доступа к сети. •
Новые параметры групповой политики для управления безопасностью проводного и беспроводного подключения.
•
Разнообразные интерфейсы прикладного программирования для про верки сетевых пакетов и более безопасные приложения на базе Windows Sockets.
Повышенная производительность и надежность Благодаря обновленным интеллектуальным алгоритмам, Windows Server 2008 автоматически настраивает параметры сетевого подключения для максимального повышения пропускной способности и производительно сти. Это приводит к ускоренной передаче данных, лучшему использова нию пропускной способности сети и повышенной надежности подклю чения. Windows Server 2008 динамически настраивает подключение с уче том конкретных условий, включая следующие. • Доступная полоса пропускания и время ожидания — Средство автома тической настройки TCP Receive Window Auto-Tuning динамически на страивает размер принимающего буфера TCP, используемого для хра нения входящих данных, с целью повышения пропускной способнос ти, особенно по ссылкам с высокой пропускной способностью и про должительным временем ожидания. •
Перегрузка сети — Для лучшего использования пропускной способно сти сети средство Compound TCP (CTCP) значительно увеличивает ко личество отправляемых одновременно данных с помощью наблюдения за продуктом, вызывающим снижение производительности, варианта ми задержки и потерей пакетов.
146
Глава 10 Microsoft Windows Server 2008. Что еще нового?
• Среды с высоким уровнем потери пакетов — Поддержка нескольких ал горитмов оптимизации сети на основе стандартов, таких как быст рое восстановление TCP, параметр TCP Selective Acknowledge (SACK) и Forward RTO-Recovery, обеспечивает повышенную надежность и быст рое восстановление в средах с высоким уровнем потери пакетов, та ких как беспроводные сети. • Сбои при маршрутизации пути — Улучшенные механизмы обнаруже ния и повышения отказоустойчивости неработающих шлюзов и пере груженных маршрутизаторов повышает скорость восстановления и гиб кость маршрутизации.
Большая масштабируемость Для того чтобы сохранить высокий темп удовлетворения требований, предъявляемых ИТ-инфраструктуре, необходима возможность масштаби рования сетевых ресурсов. Windows Server 2008 обеспечивает расширен ное масштабирование сети благодаря улучшенной поддержке многогига битных сетей, технологиям повышения быстродействия и разгрузки сети, управлению полосой пропускания на основе политик и использованию интернет-протоколов следующего поколения. • Разгрузка обработки сетевых пакетов с помощью специализированных сетевых адаптеров, в которых применяется TCP Offload Engine (TOE) и другие технологии ускорения работы в сети, включая поддержку Gigabit IPsec Task Offload. • Динамическое балансирование входящих сетевых подключений с по мощью масштабирования на получающей стороне для распределения трафика по нескольким процессорам или ядрам для увеличения про изводительности сервера. • Оптимизация и расстановка приоритетов использования полосы про пускания с помощью политик качества службы (QoS) на уровне узлов, управляемых с помощью Active Directory. • Включение новых сценариев и способов подключения за счет всесто ронней поддержки IPv6, включая технологии перехода, такие как про токол ISATAP. В целом новые и обновленные функции для работы в сети в Windows Server 2008 создают основу для более защищенной, надежной и масшта бируемой платформы, удовлетворяющей потребности подключения сегод няшнего и завтрашнего дня.
Глава 10 Microsoft Windows Server 2008. Что еще нового?
147
Новые механизмы управления печатью Чем больше организация, тем больше в ней сетевых принтеров, и тем больше времени требуется ИТ-персоналу для установки принтеров и уп равления ими, что приводит к увеличению эксплуатационных затрат. В Windows Server 2008 имеется консоль управления печатью, которая явля ется оснасткой для консоли управления ММС и позволяет администрато рам из одной консоли осуществлять управление, мониторинг и устране ние неполадок в работе всех принтеров организации, даже расположен ных удаленно. Консоль управления печатью предоставляет доступ к актуальным све дениям о состоянии всех принтеров и серверов печати. Также служба уп равления печатью помогает обнаружить принтеры, находящиеся в состо янии ошибки, и может автоматически отправлять уведомления по элект ронной почте или выполнять сценарии, если необходимо обратить вни мание на тот или иной принтер или сервер печати. Если принтер предо ставляет дополнительные данные через веб-интерфейс, доступ к этим данным можно также получить через консоль управления печатью. Это позволяет даже в случае удаленного расположения принтера получать такие сведения, как количество тонера или бумаги. Помимо этого, служба управ ления печатью может автоматически осуществлять поиск и установку се тевых принтеров в локальной подсети локальных серверов печати. Консоль управления печатью позволяет экономить значительное коли чество времени при установке принтеров на клиентские компьютеры или при управлении и отслеживании состояния принтеров. Вместо ручной установки и настройки подключения к принтерам на компьютерах пользо вателей можно воспользоваться возможностями групповых политик для автоматического добавления этих подключений в папку «Принтеры и факсы» на этих компьютерах. Это очень эффективный и экономичный способ добавления принтеров для большого количества пользователей, которым требуется доступ к одному и тому же принтеру, например для пользователей из одного отдела, а также для пользователей в филиалах. Возможности автоматизации и централизованный интерфейс консо ли управления печатью позволяют устанавливать принтеры, открывать общий доступ к ним и управлять принтерами, упрощая администрирова ние и уменьшая время, затрачиваемое ИТ-персоналом на развертывание принтеров.
Приложение 1. Технологии защиты приложений в Windows Vista и Windows Server 2008 Ряд расширений, появившихся в новой версии клиентской операционной системы Microsoft Windows Vista, а также планируемых к появлению в Win dows Server 2008, предназначен для обеспечения защиты приложений и, соответственно, пользователей этих приложений, от вредоносного кода. В этом приложении мы познакомимся с некоторыми из этих расширений, реализованными как на уровне ядра операционной системы, так и средства ми компилятора Microsoft Visual C++, а также со способами включения этих расширений в «неуправляемый» код, написанный на языках С и C++.
Проверка переполнения буфера стека Поддержка переполнения буфера стека поддерживается на уровне компи лятора языка C/C++, начиная с версии Visual Studio .NET 2002. Используя опцию компилятора /GS (эта опция поддерживается по умолчанию в Visual C++, даже если она не указана в командной строке), мы указываем на не обходимость вставки кода пролога и эпилога для функции. Этот код ге нерирует случайное число (называемое Security Cookie), которое помеща ется в стек функции. Если сгенерированное случайное число окажется «испорченным», вызывается код завершения приложения — таким обра зом снижается вероятность запуска «эксплоитов», базирующихся на воз можностях переполнения буфера. В Visual C++ 2005 код пролога и эпилога выглядит следующим образом: // Пролог subesp, 8 moveax, DWORD PTR
security_cookie
xoreax, esp movDWORD PTR __$ArrayPad$[esp+8], eax moveax, DWORD PTR _input$[esp+4] // Эпилог movecx, DWORD PTR __$ArrayPad$[esp+12] addesp, 4 xorecx, esp call
@ security_check_cookie@4
addesp, 8
Отметим, что компилятор Visual C++ 2005 также включает код, переме щающий данные по стеку, что также затрудняет выполнение вредоносных операций. В частности, компилятор позволяет размещать буферы в верх-
150
Приложение 1
ней области памяти — это позволяет защитить указатели на функции, рас полагаемые в стеке. Перемещение указателей и аргументов буфера в ниж нюю часть памяти также позволяет существенно снизить вероятность атак на буфер и использования переполнения буфера. Разработчикам рекомен дуется использовать самую актуальную версию компилятора Visual C++ и всегда указывать опцию /GS при компиляции приложений и библиотек. В Visual C++ 2005 SP1 появился ряд новых прагм (pragma) со следую щим синтаксисом: «pragma strict_gs_check([push,] on ) #pragma strict_gs_check([push,] off ) «pragma strict_gs_check(pop)
Рекомендуется включать эти прагмы в код, содержащий функции, ко торые могут быть подвержены атаке, или код, работающий с данными, получаемыми извне. Подробное описание опции компилятора /GS см. на сайте MSDN по адресу: http://mscln2.microsoft.com/en-US/library/8dbp01 caspx.
Защита при обработке исключений Обработчик исключения — это код, который получает управление при воз никновении какой-либо нештатной ситуации, например при делении на ноль, переполнении стека и т. п. Адрес такого обработчика хранится в стеке функции и, таким образом, он может стать предметом атаки для вредоносного кода. Компоновщик, входящий в состав Visual Studio 2003 и более поздних версий продукта, имеет опцию (/SafeSEH), позволяющую хранить ссылки на обработчики исключений в заголовке образа исполняемого файла (т. н. РЕ Header). При возникновении исключительной ситуации операционная систе ма использует адрес обработчика, хранящийся в заголовке РЕ — такая фун кциональность поддерживается, начиная с Windows XP SP2 и является стан дартной для Windows Server 2003, Windows Vista, Windows Server 2008 и будущих версий клиентской и серверной операционных систем компа нии Microsoft. Подробное описание опции компоновщика /SafeSEH см. на сайте MSDN по адресу: http://msdn2.microsoft.com/en-US/library/9a89h429.aspx.
Поддержка No execute (NX), Data Execution Prevention (DEP) и execute Disable (XD) Ряд технологий — No execute (NX) компании Advanced Micro Devices (AMD), Data Execution Prevention (предотвращение выполнения данных, DEP) ком-
Приложение 1
151
пании Microsoft и eXecute Disable (XD) компании Intel, предотвращают возможность выполнения кода в сегментах, предназначенных для хране ния данных. Все современные процессоры компаний Intel и AMD поддер живают, соответственно, технологии XD и NX. Поддержка Data Execution Prevention была впервые реализована в Windows XP SP2 и является одной из ключевых для обеспечения безопасного выполнения кода в Windows Vista, особенно когда она используется совместно с технологией Address Space Layout Randomization (ASLR), которую мы рассмотрим ниже. В силу опре деленной специфики, Data Execution Prevention несовместима с приложе ниями, содержащими само-модифицируемый код, а также приложениями, выполняющими компиляцию в режиме выполнения — при запуске таких приложений произойдет ошибка. Если создаваемые вами приложения со держат самомодифицирующийся код или выполняют компиляцию в режиме выполнения, следует использовать функцию VirtualProtectQ с аргументом PAGEEXECUTEREAD для определения наличия защиты от выполнения кода в сегментах, предназначенных для хранения данных и корректного завер шения приложения с соответствующим сообщением об ошибке. Разработчикам рекомендуется оттестировать работу приложения под процессорами, поддерживающими технологии XD и NX, внести необхо димые корректировки в код и перекомпилировать приложения, исполь зуя опцию компилятора /NXCOMPAT. На уровне о п е р а ц и о н н о й системы в Windows XP SP2 и Windows Server 2003 настройка Data Execution Prevention определяется параметрами в файле Boot.ini — эти параметры могут задавать в панели управления — System Properties | Advanced | Performance | Data Execution Prevention. В Windows поддерживается четыре возможных значения для в Data Execu tion Prevention — при каждом из них может использоваться как программ ная, так и аппаратная реализация этой технологии. Возможные настройки Data Execution Prevention показаны в следующей таблице. Настройка
Описание
Optln
Используется по умолчанию. На компьютерах, оснащенных процессорами с поддержкой DEP, функция DEP включена по умолчанию для ограниченного числа системных файлов и программ. При этом по умолчанию защищаются только системные файлы Windows.
OptOut
По умолчанию функция DEP включена для всех процессов. ' В диалоговом окне Система панели управления можно вруч ную создать список приложений, для которых следует отклю чить DEP. Для отключения функции DEP для одной или более программ можно использовать Application Compatibility Toolkit — в этом случае будут применены исправления, обеспечивающие совместимость программ с DEP.
152
Приложение 1
Настройка
Описание
AlwaysOn
Функция DEP включается для всей системы. Все процессы работают с выполнением проверок DEP. В этом режиме нельзя отключить функцию DEP для отдельных приложений. Исправ ления, обеспечивающие совместимость программ с DEP не применяются.
AlwaysOff
Функция DEP отключена для всей системы, независимо от на личия аппаратной поддержки DEP Процессор не работает в режиме РАЕ, если в файле Boot.ini не указан параметр /РАЕ.
Настройки Data Execution Prevention в Windows XP SP2 и Windows Vista Если на уровне системы для функции DEP выбран режим Optln, то ос новные программы и файлы Windows будут защищены как программной, так и аппаратной реализацией DEP. Если система не может использовать аппаратную реализацию DEP, то указанные программы и файлы Windows будут защищены только программ ной реализацией DEP. Аналогично, если на уровне системы для функции DEP выбран режим OptOut, программы, для которых отключена функция DEP, не будут защи щены ни программной, ни аппаратной реализацией данной функции. Параметры, указываемые в файле Boot.ini, выглядят так: /noexecute=[AlwaysOn, AlwaysOff, Optln или OptOut] Содержимое файла Boot.ini может выглядеть следующим образом:
Приложение 1
153
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WIND0WS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WIND0WS="Microsoft Windows XP Home Edition" / fastdetect /NoExecute=OptIn multi(0)disk(0)rdisk(0)partition(2)\WIND0WS="Windows XP x64 Edition 2003" / fastdetect
Для проверки поддержки Data Execution Prevention на аппаратном уров не можно воспользоваться одним из следующих методов: использовать утилиту WMIC или утилиту WBEMTest. В первом случае мы выполняем следующую команду: C:\>wmic OS Get DataExecutionPrevention_Available
Если возвращается значение True, аппаратная поддержка DEP доступна, в противном случае возвращается значение False. Уровень поддержки DEP можно определить следующей командой: C:\>wmic OS Get DataExecutionPrevention_SupportPolicy
которая может вернуть одно из следующих значений: 0 — AlwaysOff, 1 — AlwaysOn, 2 — Optln (значение по умолчанию) или 3 — OptOut. С помощью утилиты WBEMTest мы можем выполнить следующие дей ствия: 1. В диалоговой панели Windows Management Instrumentation Tester на жмем кнопку Connect и укажем значение root\cimv2. 2. Щелкнем кнопку Enum Instances и в диалоговой панели Class Info вве дем Win32_OperatingSystem. 3. В диалоговой панели Query Result выберем самый первый элемент и двойным щелчком мышью перейдем в Object Editor. 4. В списке свойств найдем DataExecutionPreventionAvailable и обратим внимание на значение этого свойства — оно может иметь одно из зна чений, описанных нами при обсуждении использования утилиты WMIC. Используя Windows PowerShell также можно получить информацию о настройках Data Execution Prevention. Сначала выполним команду PS C:\> Get-WMIObject Win32_0peratingSystem | Get-Member DataExecutionPrevention*
для получения всех возможных свойств объекта Win32_OperatingSystem, используемых для хранения данных о DEP. Таких свойств четыре: Data Execution Prevention_32BitApplications, Data Execution PreventionAvailable, Data Execution PreventionDrivers, Data Execution PreventionSupportPolicy.
154
Приложение 1
После этого мы можем получить значения каждого из перечисленных выше свойств.
Получение данных о Data Execution Prevention через WMI Свойство
Возможные значения
Data Execution Prevention 32BitApplications Data Execution Prevention_Available
TRUE — DEP активизирована для приложений FALSE — DEP не активизирована для приложений
Data Execution PreventionDrivers Data Execution PreventionSupportPolicy
TRUE — DEP активизирована FALSE — DEP не активизирована TRUE — DEP активизирована для драйверов FALSE — DEP не активизирована для драйверов 0 — DEP запрещена для всех процессов 1 — DEP разрешена для всех процессов 2 — DEP разрешена для системных компонентов Windows 3 — DEP разрешена для всех компонентов, кроме помеченных специальным образом
Например: $OS = Get-WMIObject Win32_OperatingSystem Echo $0S.Data Execution Prevention_32BitApplications
су:
Более подробно о функции VirtualProtectQ см. на сайте MSDN по адре http://msdn2.microsoft.com/En-US/library/aa366898.aspx.
О процессорах ADM см. сайт http://www.amd.com/us-en/Processors — в описании процессора должна быть указана поддержка NX. Процессоры Intel описаны на сайте http://www.intel.com/products/processor — в описа нии процессора должна быть указана поддержка XD.
Приложение 1
155
Технология Data Execution Prevention описана на сайте Microsoft no адресу http://support.microsoft.com/kb/875352. Также см. статью «Memory Protection Technologies» на сайте Microsoft TechNet по адресу http://technet. microsoft.com/en-us/library/bb45 7155-aspx. Подробное описание опции компоновщика /NXCOMPAT см. на сайте MSDN по адресу: http://msdn2.microsoft.com/en-US/library/ms235442.aspx.
Случайное распределение адресного пространства — Address space layout randomization (ASLR) Технология случайного распределения адресного пространства (ASLR) перемещает бинарный образ исполняемого кода в случайную область памяти — поддерживается до 255 различных адресов, что существенно сни жает вероятность успешного проведения атаки типа «return-to-libc» и схо жих с ней. По умолчанию в Windows Vista случайным образом загружа ются системные исполняемые файлы (ЕХЕ) и динамические библиотеки (DLL). Исполняемые файлы и динамические библиотеки, создаваемые сторонними разработчиками, должны быть слинкованы (используется компоновщик Microsoft Linker версии 8.00.50727.161 или более поздней) с использованием опции /DYNAMICBASE для того, чтобы на них распро странялась ASLR.
Случайное распределение «кучи» В Windows Vista при создании «кучи» для приложения она располагается случайным образом. Тем самым снижается шанс успешного выполнения атаки, основанной на переполнении буфера, располагаемого в куче. Эта функциональность поддерживается в Windows Vista по умолчанию.
Случайное распределение стека При создании потока для процесса, помеченного с помощью опции /DYNAMICBASE, Windows Vista перемещает стек потока в случайным об разом выбранную область памяти. Тем самым снижается шанс успешного выполнения атаки, основанной на переполнении буфера, располагаемо го в стеке.
Определение повреждения кучи С помощью функции HeapEnableTerminationOnCorruption() можно вклю чить проверку повреждения кучи, что приведет к завершению процесса при обнаружении повреждений. Ниже приведен пример кода, показыва ющий использование данной функции. BOOL SetHeapOptionsO
156
Приложение 1
{ HMODULE hLib = LoadLibrary(L"kernel32.dll"); if (hLib == NULL) return FALSE; typedef BOOL (WINAPI *HSI) (HANDLE, HEAP_INFORMATION_CLASS .PVOID. SIZE_T); HSI pHsi = (HSI)GetProcAddress(hLib,"HeapSetInformation"); if (IpHsi) { FreeLibrary(hLib); return FALSE; } «ifndef HeapEnableTerminationOnCorruption # define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS)1 #endif BOOL fRet = (pHsi)(NULL,HeapEnableTerminationOnCorruption,NULL,0) ? TRUE : FALSE; if (hLib) FreeLibrary(hLib); return fRet; }
Завершая эту часть нашего обзора технологий защиты приложений в Windows Vista и Windows Server 2008, отметим, что весь код приложения и библиотек необходимо полностью оттестировать на совместимость с приведенными здесь опциями и рекомендуется использовать самые пос ледние версии компилятора и компоновщика.
Приложение 2. Механизмы обеспечения надежности приложений В данном приложении мы рассмотрим два включенных в состав опера ционных систем Microsoft Windows Vista и Windows Server 2008 механиз ма обеспечения надежности приложений — Windows Feedback Platform и и Restart Manager. Механизм Windows Feedback Platform служит для сбора информации о сбоях, произошедших в приложениях, и отсылки этой информации на специальный сайт. Информация может быть проанализирована разработ чиками приложения и, в случае обнаружения ошибок в приложении, мо жет быть выпущен пакет обновлений, который станет доступным пользо вателю. Своевременное оповещение разработчиков об ошибках в прило жениях может существенно сократить время создания обновлений и, та ким образом, повысить качество приложений. Второй механизм — Restart Manager — служит для сохранения инфор мации при внезапных сбоях, перезапусках приложений и в ряде других си туаций и предоставляет разработчикам набор программных интерфейсов, использование которых в приложениях сможет сделать их более надежными.
Windows Feedback Platform Windows Feedback Platform (WFP) — это дальнейшее развитие механиз мов Windows Error Reporting (WER). В него включены все возможности Windows Error Reporting, а также ряд новинок, впервые появившихся в Windows Vista. На высоком уровне процесс использования WFP выглядит следующим образом: 1. Пользователь работает с приложением; 2. В приложении внезапно происходит сбой, зависание или утечка памя ти — все эти три состояния отслеживаются Windows Vista; 3. Данные, описывающие возникшие проблемы, отсылаются на специаль ный портал WinQual; 4. Разработчик приложения может проанализировать отосланные данные; 5. В приложение вносятся исправления и они публикуются на портале; 6. Пользователь узнает о появлении исправленной версии через Problem Center в Windows Vista. Как следует из приведенного выше описания процесса, он состоит из двух частей — части, в которой участвуют пользователи, и части, рассчитанной на участие разработчиков. Полноценная отдача от механизма Windows Feed back Platform возможна только при использовании обоих частей.
158
Приложение 2
Windows Feedback Platform на уровне пользователей От пользователей требуется не игнорировать предложение отослать от чет о сбое (кнопка «Send the Report») — отчет отсылается при первом по явлении соединения с Интернетом — и затем периодически проверять на личие решения проблемы в специальном разделе Control Panel, который называется System and Maintenance | Problem Center (Problem Reports and Solutions). При появлении решения проблемы следует активизировать соответствующую ссылку и выполнить указанные действия. Пользователям предоставляется возможность сконфигурировать сер висы WFP и указать — нужно ли отсылать данные о сбоях или нет. Это воз можно как при установке Windows Vista, так и через настройки Group Policy. Новый компонент Control Panel в Windows Vista — Problem Center (Prob lem Reports and Solutions), доступный в разделе System and Maintenance, отображает список проблем в исторической перспективе, отосланные от четы об ошибках и предоставляет доступ к решениям проблем по мере появления таких решений.
Раздел System and Maintenance в Control Panel
Problem Center можно вызывать из Control Panel или непосредственно как отдельную утилиту — в этом случае командная строка вызова будет выг лядеть так: %SystemRoot%\system32\wercon.exe.
Как видно из приведенного выше рисунка, информация в Problem Center делится на три группы — Check for new solutions (Искать новые решения), Choose how to check for solutions (Выбор способа проверки наличия ре шений) и View problem history (Просмотр истории сбоев). При открытии экрана поиска новых решений (см. следующий рис.) можно узнать, появились ли решения проблем, информация о которых была отослана ранее.
Раздел Check for new solutions
При наличии решений у пользователей появляется возможность обра титься к онлайновой службе (требуется подключение к Интернету) для получения дальнейших указаний.
Раздел Choose how to check for solutions
Раздел выбора способа проверки наличия решений позволяет выбрать между автоматическим поиском решений (рекомендуется включить эту опцию) и поиском после получения подтверждения от пользователя.
160
Приложение 2
В разделе расширенных настроек можно включить или выключить использование механизмов WFP, а также выбрать приложения, информа цию о сбоях в которых отсылать не нужно. И, наконец, раздел истории сбоев позволяет получить краткую информа цию о сбоях, происходивших в системе. Показывается приложение, в ко тором произошел сбой, тип сбоя (включая ошибки на уровне операцион ной системы), дата и время сбоя, а также статус — была отослана инфор мация о сбое или нет.
Раздел View problem history
Каждая запись в протоколе ошибок может быть раскрыта для получе ния более подробной информации. Например, можно узнать, что имен но было отослано в составе отчета. Как видно из приведенного ниже рисунка, никакой конфиденциальной информации в Microsoft не отправляется. В ряде случаев для решения конкретной проблемы с тем или иным приложением или с работоспособ ностью компонентов Windows может потребоваться дополнительная ин формация. В этом случае запрос на дополнительные данные будет отобра жен в соответствующей строке протокола. Как мы отметили выше, процесс обработки и исправления ошибок в при ложениях состоит из двух частей. Задача пользователей — отсылать инфор мацию о возникновении ошибок в приложениях и обращаться к Problem Center за возможными решениями. Задача разработчиков приложений — своевременно обрабатывать и анализировать данные о сбоях в приложени ях и создавать обновления или «заплатки» к своим приложениям.
Приложение 2
161
Детальная информация о сбое
Windows Feedback Platform на уровне разработчиков
Портал Windows Quality Online Services
Данные, собранные о приложении, в котором произошел сбой, отсыла ются на специальный портал Windows Quality Online Services, расположен-
162
Приложение 2
ный по адресу https://winqual.microsoft.com. Любая компания, производя щая программное обеспечение, может бесплатно зарегистрироваться на этом портале и получать информацию о сбоях в своих приложениях. Един ственная затрата — приобретение сертификата у компании Verisign.
Программные интерфейсы Windows Feedback Platform Для разработчиков существует обширный набор программных интерфей сов, используя которые можно управлять различными аспектами создания и отсылки отчетов на сайт WinQual. В Windows Vista появился ряд новых программных интерфейсов, ко торые можно использовать в рамках сервисов WFP. К таким программным интерфейсам относится функция для добавления к отчету, отсылаемому на портал WinQual файлов — WerRegisterFile(), а также функция WerSetFlags(), используя которую можно сконфигурировать отчет о сбое. Создадим небольшой пример, иллюстрирующий работу этих функций. В приложение на управляемом коде (в нашем примере это будет язык С # ) добавим следующее описание функции: internal const int WerRegFileTypeOther = 2; internal const int WER_FILE_ANONYMOUS_DATA = 2; [System.Runtime.InteropServices.DllImport("kernel32.dll", CharSet = CharSet.Auto)] internal static extern int WerRegisterFile(string pwzFile, int regFileType, int dwFlags);
Используя эту функцию мы сможем добавлять к отчетам файлы, содер жащие дополнительную информацию. Например: WerRegisterFile("CrashData.txt", WerRegFileTypeOther, WER_FILE_ANONYMOUS_DATA);
Файл должен находиться в том же каталоге, что и исполняемый файл приложения. Дополнительная информация по механизмам Windows Feedback Platform доступна на сайте Microsoft по адресу http://msdn.microsoft.com/isv/resources/ wer/default.aspx. Говоря о механизмах обеспечения надежности приложений в Windows Vista, также следует упомянуть и механизм Restart Manager.
Приложение 2
163
Механизм Restart Manager В основе механизма Restart Manager лежат две функции. Вызов функции RegisterApplicationRestartQ позволяет вашему приложению перезапуститься после сбоя и отсылки отчета о произошедшем сбое (используя рассмотрен ные ранее механизмы Windows Feedback Platfrom), таким образом обеспе чивая пользователю возможность продолжить работу. Вызов еще одной фун кции из состава Restart Manager — RegisterApplicationRecoveryCallbackQ — позволит вам указать ядру Windows Vista, какую функцию вашего прило жения нужно вызывать перед непосредственным перезапуском приложе ния — следовательно, у вас появляется возможность сохранения данных с их последующим восстановлением после перезапуска приложения. При вызове функции RegisterApplicationRestart() указывается команд ная строка, применяемая для повторного запуска приложения, — таким образом, используя опции командной строки, параметры или другие спо собы, вы можете указать приложению на то, что оно запускается после сбоя, и инициировать процесс восстановления данных. Функция RegisterApplicationRecoveryCallback() задает точку входа в при ложение, которая вызывается ядром операционной системы после сбора данных, необходимых для генерации отчета о произошедшем сбое. При получении управления приложение должно попытаться сохранить данные на диске. В процессе сохранения данных необходимо вызывать функцию RecoveryInProgress() приблизительно каждые пять сек. для того, чтобы операционная система помнила о том, что приложение находится в про цессе сохранения данных, — в противном случае ядро операционной системы сочтет приложение зависшим и принудительно завершит его выполнение. Это необходимо в тех случаях, когда попытка сохранения данных приводит к дополнительному сбою в приложении и появляется возможность «зацикливания» обработки сбоев. По завершении сохране ния данных вызывается функция RecoveryFinished(). Сигналом для завершения работы Windows-приложения является по лучение сообщений WM_QUERYENDSESSION и WM_ENDSESSION со зна чением параметра LPARAM, равным ENDSESSIONCLOSEAPP (0x1). Консольные приложения должны проверять нажатие комбинации кла виш Ctrl+C. Ниже показан пример обработчиков событий для Windowsприложения и консольного приложения. // // Windows-приложение // hr = RegisterApplicationRestart(CornmandLineParameter, NULL); switch(message)
164
Приложение 2
! case WM_QUERYENDSESSION: { // // Принудительное завершение приложения // if(lParam & ENDSESSION_CLOSEAPP) { //Сохранение данных, состояния приложения hr = SaveDataO; } // Выход из обработчика событий return 1; } case WM_ENDSESSION: // // Консольное приложение // BOOL ControlHandlerRoutine(DWORD ControlEvent) { switch(ControlEvent) { // // Принудительное завершение приложения // case CTRL_C_EVENT: { TerminateRequest = TRUE; return FALSE; > Соответственно код, сохраняющий данные, может выглядеть так: HRESULT SaveDataO { // Создать временный файл uReturnValue = GetTempFileName(PathBuffer,"~rm",0,RecoveryFile); // Создать файл для сохранения данных FileHandle = CreateFile((LPTSTR)RecoveryFile ); // Получить размер буфера редактора TextBufferLength = GetWindowTextLength(EditControlHwnd); // Скопировать текст из редактора во временную строку GetWindowText(EditControlHwnd, TextBuffer, TextBufferLength+1);
Приложение 2
165
// Сохранить содержимое строки в файле Result = WriteFile(FileHandle, TextBuffer, TextBufferLength+1, &NumberOfBytesWritten, NULL); }
Restart Manager и программы установки приложений Как мы уже отмечали, механизм Restart Manager должен использоваться программами установки приложений для предотвращения лишних пере загрузок операционной системы. Указанная функциональность базируется на нескольких функциях, реализованных в рамках механизма Restart Manager; (табл. 1). Табл. 1. Функции, реализованные в рамках механизма Restart Manager Функция
Описание
RmStartSession RmRegisterResources RmGetList
Начинает новую сессию Регистрирует ресурсы в Restart Manager Возвращает список приложений и сервисов, использующих зарегистрированные ресурсы Завершает работу приложений и сервисов для освобождения занятых ими ресурсов Перезапускает завершенные приложения или сервисы Завершает сессию
RmShutdown RmRestart RmEndSesion
Работа с Restart Manager начинается с создания новой сессии через вызов функции RmStartSession() — все последующие операции выполняются в рамках этой сессии. Для одной учетной записи поддерживается до 64-х одновременно открытых сессий Restart Manager. При необходимости расширенные скрипты инсталляционного пакета (custom actions) могут подключиться к уже существующей сессии — для этого применяется функция RmJoinSession(). После того как сессия создана, необходимо зарегистрировать ресурсы в рамках данной сессии с помо щью функции RmRegisterResources(). К ресурсам относятся файлы, описы ваемые их полными именами, а также процессы, идентифицируемые че рез PID и время создания процесса, и сервисы, описываемые их именами. Кроме того, имеется возможность регистрации ресурсов, описанных струк турой RMJJNIQUE PROCESS. Функция RmGetList() возвращает список приложений и сервисов, при меняющих зарегистрированные ресурсы в виде массива структур RMPROCESS_INFO. Она базируется на расширенной функциональности Windows
166
Приложение 2
Vista/Longhorn Server, позволяющей определить процессы, использующие те или иные файлы. Эта функциональность позволяет определить DLL, файлы данных и файлы, отображаемые в области памяти (memory mapped files). Также имеется возможность идентифицировать сервисы внутри служ бы svchost, применяющие необходимые нам файлы. Процессы подразде ляются на «видимые» GUI-приложения, «невидимые» GUI-приложения, сервисы, консольные приложения, Windows Explorer, критичные процес сы и процессы неизвестного типа. Типы процессов описаны структурой RM_APP_TYPE (табл. 2). Табл. 2. Типы процессов, описанные структурой RM_APP_TYPE Тип
Код
Описание
RmlJnknownApp
0
П р и л о ж е н и е не может быть к л а с с и ф и ц и р о в а н о
RmMainWindow
1
Windows-приложение в отдельном процессе с главным о к н о м
RmOtherWindow
2
Windows-приложение без отдельного процесса и главного окна
RmService
3
Сервис Windows
RmExplorer
4
Windows Explorer
RmConsole
5
Консольное п р и л о ж е н и е
RmCritical
1000
Процесс, к р и т и ч н ы й для Windows
Кроме того, функция RmGetList() позволяет автоматически определить необходимость в перезагрузке процесса. Функция RmShutdown() использует те же нотификационные механиз мы и протоколы, что и системная функция завершения процессов: • Windows-приложения получают сообщение WM_QUERYENDSSION и сообщение WMENDSESSION с параметром LPARAM со значением ENDSESSIONCLOSEAPP; • Windows-приложения, написанные для предыдущих версий операци онной системы, получают сообщение WMCLOSE; • сервисы завершаются через команды Service Control Manager. При этом учитываются зависимости, которые могут существовать и между сер висами; • консольные приложения получают сообщение CRTLCEVENT Приложения, идентифицированные как критичные для обеспечения работоспособности операционной системы, не могут быть завершены принудительно. Среди возможных опций отметим возможность принуди тельного завершения приложения и сервисов, которые завершились с ошибками, а также возможность завершения только приложений, зареги стрированных в Restart Manager.
Приложение 2
167
Перезапуск приложений и сервисов выполняется с помощью функции RmRestart(), повторно запускающей приложения и сервисы, работа кото рых была завершена с помощью функции RmShutdownQ. Windows-при ложения и консольные приложения перезапускаются посредством коман дной строки, указанной при их регистрации с помощью функции RegisterApplicationRestart(). Сервисы перезапускаются с помощью Service Control Manager; все сервисы, которые зависели от перезапускаемого сервиса и были принудительно завершены вместе с ним, также перезапускаются. Приложения, которые поддерживают автоматическое сохранение своего состояния и данных (например, приложения, входящие в состав Microsoft Office 2007), автоматически восстанавливают свое состояние. Для переза пуска приложений после рестарта операционной системы используется функция InitiateShutdownO. с флагом SHUTDOWNRESTARTAPPS — ее дей ствие распространяется только на приложения, зарегистрированные в Restart Manager. Открытая сессия Restart Manager завершается вызовом функции RmEndSesion(). Программа установки приложений Microsoft Windows Installer (MSI) версии 4.0 поддерживает механизмы Restart Manager автоматически. Для программ установки, создаваемых собственными средствами, потребует ся использование описанных ранее функций. Приведем пример такого применения функций: // Начать новую сессию RmStartSession(&dwSessionHandle, sessKey); // Зарегистрировать элементы, которые должны быть // установлены, заменены, обработаны и т. п. RmRegisterResources(dwSessionHandle, nFiles, rgsFiles, // Файлы nProcs, NULL, // Процессы nServices, rgsServices // Сервисы ); // Получить список приложений и сервисов, которые используют // ранее зарегистрированные файлы RmGetList(dwSessionHandle, &nProdnfoNeeded, &nAffectedApps, rgAffectedApps, &bRebootNeeded); // Завершить работу приложений и сервисов, которые используют // нужные нам файлы RmShutdown(dwSessionHandle, О, NULL); // Выполнение операций над устанавливаемыми файлами У/ Перезапуск приложений, которые мы принудительно завершили RmRestart(dwSessionHandle, NULL);
168
Приложение 2
Выше мы рассмотрели основные функции, относящиеся к механизмам Restart Manager. Помимо этого есть ряд дополнительных функций, кото рые приведены в табл. 3Табл. 3. Дополнительные функции, относящиеся к механизмам Restart Manager Функция
Описание
RmAddFilter
Добавляет фильтр для компонентов, которые должны
RmRemoveFilter RmGetFilterList RmCancelCurrentTask RM_WRITE_STATUS_ CALLBACK
быть завершены и перезапущены Удаляет ранее установленный фильтр Возвращает список установленных фильтров Прерывает текущую о п е р а ц и ю Restart Manager Косвенно вызываемая функция для обновления статуса выполняемой о п е р а ц и и
Примеры В состав Windows Vista SDK включен п ри м е р использования механизмов Windows Error Reporting, в котором показано, как зарегистрировать при ложения для его последующего восстановления, приложение для его пере запуска, а также как зарегистрировать файл и блок памяти. Данный при мер можно найти по адресу: c:\Program Files\Microsoft SDKs\Windows\ v6.0\Samples\winbase\WindowsErrorReporting\Registration\. Второй пример, относящийся к теме данного обзора, иллюстрирует использование механизмов Restart Manager. Он находится по адресу: c:\Program Files\Microsoft SDKs\Windows\ v6.0\Samples\winbase\Restart Manager\. В этом каталоге собрано пять демонстрационных приложений, которые иллюстрируют минимальную поддержку механизмов Restart Manager для консольных приложений (RmCuiApp), применение Restart Manager Filter API (RMFilterApp), сериализацию данных и их восстановление после пе резагрузки в классическом Windows-приложении (RmGuiApp), аналогич ную функциональность для приложений, разрабатываемых на .Net Frame work с использованием Windows Forms (RmWinFormApp), и пример бло кировки при попытке принудительного завершения приложения (ShutdownBlockReasonTestApp).
Дополнительные механизмы обеспечения надежности В данном обзоре мы рассмотрели два механизма обеспечения надежнос ти приложений, реализованных в операционной системе Microsoft Windows
Приложение 2
169
Vista, — Windows Feedback Platform и Restart Manager. К другим механиз мам, обеспечивающим надежность как самой платформы, так и выполня емых под ее управлением приложений, можно отнести следующие: • отмена выполнения операций ввода-вывода (Cancellable I/O Opera tions) — обеспечивает возможность завершения запросов на операции ввода-вывода, которые могут привести к повышенному использованию недоступных в данный момент ресурсов. Примерами новых функций являются CancelSynchronousIo() и CancelloExQ. Отметим, что примене ние механизмов отмены операций ввода-вывода позволяет решить ряд проблем с такими операциями без принудительного завершения пото ков и приложений; • защита реестра — предотвращает возможность изменения ключевых настроек системы; • определение утечек памяти — автоматически определяет утечки памя ти и реагирует на это соответствующим образом; • определение «зависаний» приложений — позволяет принудительно завершить и перезапустить приложения, которые перестали реагиро вать на действия пользователей, сообщений Windows Messages и т. п.; • инфраструктура Windows Diagnostic Infrastructure (WDI) — служит для идентификации и выдачи сообщений об обнаруженных проблемах. Встроенные в Windows Vista механизмы автоматической диагностики позволяют идентифицировать ряд проблем, которые могут возникать в процессе эксплуатации как самой операционной системы, так и прило жений. К таким механизмам относятся: защита от чрезмерного использо вания ресурсов (например, от потерь данных, зависаний, сбоев и т. п. при большом количестве одновременно открытых приложений), защита от аппаратных сбоев (диски, дефекты оперативной памяти), встроенная ди агностика функционирования проводных и беспроводных сетей, диагно стика производительности системы (замедление реакции системы и ви зуализации элементов интерфейса, замедление загрузки системы, аутен тификации и завершения работы), автоматическое восстановление повреж денных системных файлов, автоматическое восстановление системы при проблемах с загрузкой.
Заключение Встроенные в Microsoft Windows Vista механизмы обеспечения надежно сти работы как самой платформы, так и сервисов и прикладных программ делают эту новую версию операционной системы более привлекательной и продуктивной для пользователей, а ряд программных интерфейсов по зволяет разработчикам создавать надежные и управляемые приложения.
Приложение 3. Ресурсы по Microsoft Windows Server 2008 Основные ресурсы • Windows Server «Longhorn» — http://www.microsoft.com/windowsserver/ longhorn/default.mspx • Windows Server «Longhorn» Tech Center — http://www.microsoft.com/technet/ windowsserver/longhorn/default.mspx • TechNet Virtual Labs — http://www.microsoft.com/technet/traincert/virtuallab/ longhorn.mspx • Windows Server «Longhorn» Webcasts & Chats — http://www.microsoft.com/ events/series/technetlonghorn.aspx • Windows Server Code Name «Longhorn» — Learning Portal — http://www. microsoft.com/learning/longhorn/default.mspx • Windows Server Code Name «Longhorn» Demos — http://www.microsoft.com/ technet/windowsserver/longhorn/evaluate/demos.mspx и Windows Vista and Windows Server «Longhorn»—Better Together — bttp:// www.microsoft.com/windowsserver/longhorn/better-together.mspx • Developer Meet Server — http://blogs.msdn.com/jolson
Инфраструктура Server Manager •
http://www.microsoft.com/windowsserver/longhorn/servermanagement.mspx
Server Roles • Active Directory Certificate Services (AD CS) — http://technet2.microsoft.com/ Windowsserver/longhorn/en/library/78606c99-22a4-46d7-a7ec-c3de6f69 0b93W33.mspx m Active Directory Domain Services (AD DS) — http://technet2.microsoft.com/ windowsserver/longhorn/en/library/43 7 a lfd8-0365 -4689-8a28-ed8051 c74 a6b1033'.mspx m Active Directory Federation Services (AD FS) — http://technet2.microsoft.com/ windowsserver/longhorn/en/library/6 lf7f298-2cac-4cfb-9 7 7f-88fd4b781 b 4e'1033'.mspx • Active Directory Rights Management Server — http://technet2.microsoft.com/ windowsserver/longhorn/en/libr ary/1 abafea4-f30 e-43 5 a-848b6fbf31 efl da6l 033.mspx
Приложение 3
171
• Application Server — http://technet2.microsoft.com/windowsserver/longhorn/ en/library/3534a92e-8ca4-4095-996e-d880e68be41 a 1033.mspx • DHCP Server — http://technet2.microsoft.com/windowsserver/longhorn/en/ library/2 ddeadd3 -ldle-4c43 -a449 -988 70a40445e 1033mspx • DNS Server — http://technet2.microsoft.com/windowsserver/longhorn/en/ Uhrary/eda9c9da-57fd-405c-9ee5-c732b603c9abl033mspx m File Services — http://technet2.microsoft.com/windowsserver/longhorn/en/ Ubrary/a67 c6586-6962 -46c 1 -9f54-cl5e7270J9b81033mspx • Print Services — http://technet2.microsoft.com/windowsserver/longhorn/en/ library/c9865 7cd-0db0-49de-9e56-8c713a60 70ab 1033mspx m Terminal Services — http://technet2.microsoft.com/windowsserver/longhorn/ en/library/fl7ae2b5-d75e-4e2e-98c4-fe912f2e7dcdl033.mspx m Windows Deployment Services — http://technet2.microsoft.com/windows server/longhorn/en/library/b2 79dfef-892e-4b 12 -bb6b-c250cf8c95/41033. mspx m Windows Media Server — http://technet2.microsoft.com/windowsserver/long horn/en/library/bft20079-3bd5-4e84-bdda-98060718b6fdl 033mspx
Server Core • Server Core Installation — http://www.microsoft.com/windowsserver/longhorn/ server core.mspx • Функции, поддерживаемые в Server Core — http://msdn2.microsoft.com/ en-us/library/ms723894-aspx (Server Core Functions by DLL)
Boot Configuration Data • Boot Configuration Data (BCD) — http://msdn2.microsoft.com/en-us/library/ aa3 62 692 .aspx • Boot Configuration Data in Windows Vista — http://www.microsoft.com/whdc/ system/platform/firmware/bcd.mspx m Утилита Vista Boot Pro — http://www.vistabootpro.org/index.php
Manageable Applications • DSI — http://www.microsoft.com/dsi • DFO & Application Health — http://www.codeplex.com/dfo ш System Center Configuration Manager 2007 — http://www.microsoft.com/ smserver/default.mspx • Windows Installer 4.0 — http://msdn2jnicrosoft.com/en-us/library/aa3 72866/zspx • Task Scheduler — htp://technet.microsoft.com/en-us/windowsvista/aa906020nspx • Windows Eventing 6.0 — http.//msdn2microsoft.com/en-us/library/aa385780aspx
172
Приложение 3
• Windows PowerShell — http://www.microsoft.com/PowerShell •
Microsoft Management Console 3.0 — http://msdn.microsoft.com/library/ default.asp?url=/library/en-us/managedmmc/html/28aala22-e2S0-45daЫ62-8С0Ы 1338cafasp
Платформа для создания приложений Application Server Role • Application Server — http://technet2.microsoft.com/windowsserver/longhorn/ en/library/3534a92e-8ca4 -4095 -996e-d880e68be4 lal 033-mspx
.NET Framework 3.0 •
Introducing the .NET Framework 3.0 — http://msdn2.microsoft.com/en-us/ library/aa4 79861 .aspx
•
.NET Framework Developer Center — netframework/defaultaspx
http://msdn2.microsoft.com/en-us/
• Microsoft .NET Framework 3.0 Community — http://www.netfx3.com/defaultuspx D
http://www.netfx3.com/content/WljatIsNetFx3.cispx
о Windows Communication Foundation — http://wcfnetfx3-com a
Web Services Specifications — http://msdn.microsoft.com/webservices/ webservices/understanding/defaultaspx
• Windows Presentation Foundation — http://wpfnetfx3.com • Windows Workflow Foundation — http://wf.netfx3.com • Windows CardSpace — http://cardspace.netfx3-com
Internet Information Services 7.0 •
IIS 7.0 Site — http://www.iis.net
•
IIS7 Overview — http://www.iis.net/default.aspx?tabid=2&subtabid=23&i =7180 Install IIS7 on Longhorn Server — http://www.iis.net/default.aspx? tabid=2&subtabid=25&i=956
m
Install IIS7 on Vista — http://www.iis.net/default.aspx?tabid=2&subtabid= 25&i=958
Install IIS7 at the command-line — http://www.iis.net/default.aspx?tabid= 2&subtabid=25&i=95 7 ш Use Unattended Install with IIS7 — http://www.iis.net/default.aspx?tabid= m
2&subtabid=25&i=959 m Virtual Labs — http.//VirtualLabsJISNET
Приложение 3
173
• Delegated Administration — http://www.iis.net/default.aspx?tabid=2&sub tabid=25&i=965&p= 1 • Granular Locking — http://www.iis.net/default.aspx?tabid=2&subtabid=25&i -951 • .NET Collaborative Configuration — http://www.iis.net/default.aspx?tabid= 7&subtabid=72 • URLFiltering capabilities — http://www.iis.net/defaultaspx?tabid=2&subtabid= 25&i=W40 • ASP.NET Integration with IIS7 — http://www.iis.net/default£ispx?tabid= 2&subtabid=25&i=928 • Writing a Service Hosted by the Windows Process Activation Service — http:// www.iis.net/default.aspx?tabid=2&subtabid=25&i=922 • IIS7 Managed Module Starter Kit — http://www.iis.net/handlers/871/Item PermaLink.ashx • Developing a Managed Module using .NET Framework — http://www.iis.net/ default.aspx?tabid=2ersubtabid=25&i=942 • IIS7 Module Starter Kit for C++ — http://www.iis.net/handlers/1062/Item PermaLink.ashx ш Developing a Native (C++) Module for IIS7 Walkthrough — http://www.iis.net/ default.aspx?tabid=2&subtabid=25&i=938
Windows Server Virtualization • Microsoft Virtualization Home — http://www.microsoft.com/windowsserver system/virtualization/default.mspx • Windows Server Virtualization — An Overview — http://www.microsoft.com/ windowsserversystem/virtualserver/techinfo/virtualization.mspx • http://technet2.microsoft.com/windowsserver2008/en/servermanager/virtua lization.mspx
Базовые технологии Restart Manager • Windows SDK — http://windowssdk.msdn.microsoft.com/en-us/library/ms 7l6380.aspx • Using Restart Manager — http://windowssdk.msdn.microsofi.com/en-us/library/ ms7l6776.aspx m Guidelines for Application and Services — http://windowssdk.msdn.microsoft. com/en-us/library/ms7163 75aspx
174
Приложение 3
Windows Error Reporting • Windows SDK — http://windowssdk.msdn.microsoft.com/en-gb/library/ms 68l662.aspx • WerReportCreate — http://windowssdk.msdn.microsoft.com/en-gb/library/ ms68164 O.aspx • WerReportSubmit — http://windowssdk.msdn.microsoft.com/en-gb/library/ ms68l644-aspx
Transactional NTFS • Transactions Programming Forum — http://forums.microsoft.com/MSDN/ ShowForum.aspx?ForumID=388&SiteID=l • Transaction Management in Windows — http://www.microsoft.com/windows server2003/appserver/transmgmt.mspx • TxF Documentation — http://msdn.microsoft.com/library/default.asp7url~/ library/en-us/fileio/fs/portal.asp • Jim Johnson Blog — http://www.pluralsight.com/blogs/jimjohn/ • Florin Lazar Blog — http://blogs.msdn.com/florinlazar/ • Jason Olson Blog — http://www.managed-world.com/ • Transactional Vista: KTM and Friends — Channel 9 Video — http://channel9. msdn.com/ShowPost.aspx?PostID=287192 • Vista: Transactional File System — Channel 9 Video — http://channel9. msdn.com/Showpost.aspx?postid= 142120 • The Revolutionary Vista TxF Infrastructure — MSDN Webcast — http:// msevents microsoft.com/CUI/WebCastEventDetails.aspx?EventID~ 1032294094 &EventCategory=5&culture=en-US&CountryCode=US • Developing Applications For Windows Vista With Transactional NTFS — MSDN Webcast — http://msevents.microsoft.com/CUI/WebCastEventDetails. aspx? EventID= 1032313125&EventCategory=4&culture~enUS&Country Code =US m Developer, Meet Server — Transactional NTFS — Channel 9 Screencast — http://channel9.msdn.com/ShowPost.aspx?PostID=289816 n Developer, Meet Server — Transactional NTFS + WCF — Channel 9 Screencast — http://channel9-msdn.com/SbowPost.aspxPPostlD-29686l
Next Generation TCP/IP Stack Раздел «The Cable Guy» на сайте Microsoft Technet (www.microsoft.com/technety. ш Next Generation TCP/IP Stack in Windows Vista and Windows Server «Longhorn» (/community/columns/cableguy/cg0905-rnspx) • Changes to IPv6 in Windows Vista and Windows Server «Longhorn», (/community/columns/cableguy/cg 1005-mspx)
Приложение 3
175
• Performance Enhancements in the Next Generation TCP/IP Stack, {/community/columns/cableguy/cgl 105-mspx) • раздел «Next Generation TCP/IP and Networking Components» в документе «Changes in Functionality in Windows Server Code Name "Longhorn"» • «Windows Filtering Platform Architecture Overview» (http://msdn2.microsoft, com/en - us/library/aa3 665 09-aspx)
Remote Differential Compression • Windows SDK — http://windowssdk.msdn.microsoft.com/en-us/library/ms 715305-aspx • Using Remote Differential Compression — http://windowssdk.msdn.microsoft. com/en-us/library/aa3 7342 0.aspx • RDC Whitepaper — http://research.microsoft.com/research/pubs/view.aspx? type=Technical%20Report&id=1203
Пул потоков • Process Management in Windows Vista — http://channel9.msdn.com/Show post.aspx?postid=2339 76 • Thread Pools — http://msdn2.microsoft.com/en-us/library/ms686760.aspx • Thread Pool API — http://msdn2.microsoft.com/en-us/library/ms686766.aspx • Using the Thread Pool Functions — http://msdn2.microsoJi.com/en-us/7ibrary/ ms686980.aspx m Документ «Kernel Enhancements for Windows Vista and Windows Server Longhorn» — http://www.microsoft.com/whdc/system/vista/kernel-en.mspx
Сертификация под Windows Server • Innovate On Windows Server — http://www.innovateonwindowsserver.com • «Certified for Windows Server» Logo Technical Requirements — https:// partner.microsoft.com/US/400 2 843 5 ?PS=9 5000124 • Application Compatibility — http://devreadiness.org Windows Server Codename «Longhorn» Cookbook — http://devreadiness.org/ blogs/app_compat_generic/attachment/204-ashx
Об авторе
Алексей Федоров осваивал азы компьютерной грамотности на СМ-4 (клон PDP-11, созданный странами соцлагеря) и ЕС-1840/41 (советский клон IBM PC). В зрелые годы занимался русификацией принтеров Epson FX-80, ло кализацией операционной системы DR-DOS (компании Digital Research) и средствами разработки Borland C++, читал лекции, писал статьи для рос сийских и международных компьютерных изданий (более 400 статей), книги по различным вопросам программирования (на русском и англий ском языках). Работал руководителем Управления разработки программ ного обеспечения, техническим директором швейцарской веб-компании. В Microsoft — 5 лет, в настоящее время возглавляет отдел по работе с партнерами в Департаменте стратегических технологий. В 2007 г. был на гражден как победитель конкурса «Лучший по профессии».