Windows 7: Модернизация приложений. Часть 2
Продолжим обсуждение темы модернизации приложений при переходе на новое поколение операционных систем.
Стабильность
Группа «Стабильность» включает действия по обеспечению надежности, управляемость и безопасности приложений. Эти действия следует выполнять после того как приложение было успешно запущено под управлением Windows Vista или Windows 7. Перечислим лишь некторые возможности, предоставляемые новыми версиями операционной системы
Надежность
Существует множество способов обеспечения надежность приложений. Например, можно использовать транзакционную работу с файловыми ресурсами и реестром – это позволит, в случае необходимости, выполнить отмену группы операций или применить изменения только в том случае, когда все операции в группе завершились успешно.
- Kernel Transaction Manager
- Transactional File System (TxF)
- Transactional Registry (TxR)
Помимо транзакционных операций, в Windows Vista и Windows 7 появились расширения для операций ввода/вывода с возможностью их принудительного завершения - CancelableI / O
- · http://msdn.microsoft.com/en-us/library/aa480216.aspx
- · http://msdn.microsoft.com/en-us/library/aa363789(VS.85).aspx
Для тестирования приложения следует использовать возможности, предоставляемые бесплатным средством Application Verifier.
В состав этого средства входят, например, тесты, позволяющие проверить поведение приложения в различных стрессовых ситуациях – нехватка оперативной памяти, нехватка дисковой памяти и т.п. Надежные приложения должны корректно реагировать на такие ситуации и в случае необходимости завершать работу с соответствующими сообщениями пользователям.
Restart Manager – механизм, который может использоваться как программами установки (инсталляторами) для снижения необходимости перезагрузок операционной системы за счет отслеживания занятых приложениями ресурсов и перезапуска приложений, так и непосредственно прикладными программами для обеспечения возможности восстановления после сбоев и восстановления данных.
Для сбора информации о сбоях и ошибках, происходящих в процессе выполнения приложений следует использовать механизм Windows Error Reporting. Базовая функциональность доступна для уже существующих приложений и не требует внесений изменений в код.
Управляемость
Управляемые приложения - это приложения, которые «видны» операционной системе, измеряемы, доступны средствам мониторинга и т.п.
Для создания управляемых приложений можно использовать:
- Счетчики производительности
- Запись в системный журнал
- Подсистему Event Tracing for Windows (ETW)
А для получения данных, сохраняемых приложениями доступны следующие механизмы:
- Windows Management Instrumentation
- PowerShell 2.0
Отметим, что в новых версиях операционной системы PowerShell 2.0 – это единый механизм для управления ОС, серверами и приложениями
Производительность
Под производительностью понимается корректная работа как самих приложений, так и отдельных процессов и сервисов, поддержка энергосбережения, корректное взаимодействие с системой при ее переходе из одного состояния в другое – например, при переходе в спящий режим и выходе из него
- Сервисы
- Фоновые процессы
- Триггеры запуска/остановки
- Энергосбережение – эта тема актуальная как для мобильных платформ, так и для центров обработки данных
- Взаимодействие с системой
- Restart/Shut-down/Sleep/Wake-up
Для измерения производительности как самой системы, так и процессов и приложений следует использовать утилиту XPerf - http://msdn.microsoft.com/en-us/library/cc305187.aspx
Для управления сервисами используется Service Control Manager, а входящая в состав операционной системы утилита Performance Monitor, с помощью которой можно выполнять как мониторинг системных ресурсов, так и мониторинг процессов.
Безопасность
Помимо поддержки работы с подсистемой LUA/UAC и технологиями Windows Resource Protection (WRP), Mandatory Integrity Control (MIC) и User Interface Privilege Isolation (UIPI), приложения должны корректно работать с такими технологиями, как
- Stack Overflow Check
- Safe Exception Handlers
- Data Execution Prevention
- Address Space Layout Randomization
Продолжение следует...
АФ