Как управлять совместимостью приложений с Windows Vista
Дата: 05/09/2007 Тема: Программы, ОС, их настройка и установка
Переход к Windows Vista означает большие изменения в поддержке приложений. Будут ли ваши приложения работать в Windows Vista? Далее вы найдете несколько советов и способов как смягчить переход на новую ОС
Адаптация приложения для работы в Windows Vista - это большая работа. Microsoft следит за каждым приложением, которое попадает в ее сферу деятельности и обеспечивает еженедельные обновления через ее базы данных. Но, похоже, эти действия не могут удовлетворить всю аудиторию клиентов компании.
Возьмем, к примеру, Национальный Институт Стандартов и Технологий (NIST), отдел торговли, который решил пока что запретить использование Windows Vista в своих внутренних вычислительных сетях. Или Департамент транспорта и Федеральное управление авиацией США, которые тоже решили наложить временный запрет на Windows Vista.
Помимо того, что такие запреты привлекают к себе внимание, они также переносят основной акцент на поддержку Windows Vista существующих и устаревших приложений. Windows Vista содержит в себе ряд изменений для процесса осуществления ее поддержки приложениями (в конце концов, Microsoft полностью переписал весь код для Windows Vista). С одной стороны эти изменения касаются расширений системы, с другой - они коснулись определенных областей операций для приложений. В обоих случаях они могут привести к нарушению работы приложения.
К счастью, существует множество решений для таких проблем:
Проблема: Номер версии для Windows изменился - Vista имеет шестой номер. Это происходит каждый раз при появлении новой версии Windows и может повлиять на приложения, так как некоторые из них проверяют номера версии при инсталляции или во время других операций.
Решение: Процесс установки очень легко изменить, если у вас есть нужные инструментальные средства. Инструменты по упаковыванию программных средств, наподобие Altiris Wise Package Studio и Macrovision AdminStudio, позволяют вам редактировать номера версии и для сторонних инсталляций и для тех, которые интегрированы в инсталлятор Windows. Изменять номера версий при работающем приложении несколько труднее, так как обычно вам необходимо изменять код приложения, но вы также можете выполнять приложения в одном из режимов совместимости, поддерживающих Windows Vista.
Проблема: 64-разрядные, или x64, версии Windows Vista не поддерживают 16-разрядный код. Фактически, 64-битные версии Windows поддерживают как родные 64-разрядные, так и 32-разрядные приложения, но при этом не поддерживают вообще никакой 16-разрядный код.
Решение: Некоторые 32-разрядные приложения все еще используют 16-разрядные инсталляторы; в таких случаях x64 издания Windows XP, Windows Server 2003 и Windows Vista автоматически в ходе установки конвертируют такие инсталляторы в их 32-битные эквиваленты.
(Если приложение разработано как истинное 32-разрядное, оно будет хорошо работать на x64 Vista, а во многих случаях даже лучше, чем на x86, или 32-разрядных, изданиях Windows. Дело в том, что Vista x64 не имеет предела в 4 Гб для ОП, как в x86 системах, и, вообще говоря, предоставляет приложению большее количество ресурсов)
Однако, 16-разрядные приложения вообще не будут устанавливаться на x64 версиях Windows.
Проблема: Разработка, которая будет иметь самое большое воздействие на совместимость приложений - User Account Control (UAC).
Когда UAC включен, каждый пользователь работает со стандартным набором привилегий независимо от того, каковы его действительные привилегии. Режим стандартного пользователя работает по принципу "минимум вмешательств пользователя", что означает, что каждая операция будет выполняться без административных прав доступа. Когда операция требует прав администратора, появляется специальное окошко для их включения. Если вы - администратор, то вам нужно просто нажать Продолжить/Отмена, но если вы - обычный пользователь, вам потребуется, помимо знания имени аккаунта администратора, еще и его пароль, чтобы разрешить выполнение операции.
Это означает, что теперь намного проще заблокировать систему, потому как все, даже администраторы, могут работать со стандартной учетной записью пользователя. Когда появится соответствующий запрос, администраторы смогут воспользоваться их высокоуровневыми привилегиями; при этом пользователи никогда не увидят этот запрос, при условии, что вы правильно настроите систему. Это помогает постоянно держать систему в безопасности. Но работа без прав администратора будет постоянно обрывать выполнение неправильно написанных приложений, потому как они могут обратиться к данным, которые не доступны пользователям со стандартными правами доступа. Так обстоят дела для многих старых приложений.
Решение: Есть несколько решений этой ситуации. Виртуализация Windows Vista файлов и системного реестра поможет перенаправить компоненты приложений к доступным для пользователя областям системы. Приложения могут быть переписаны для исправления таких действий. Приложения могут быть также виртуализированы с помощью инструментальных средств от третьих лиц, таких как Microsoft SoftGrid Application Virtualization, Altiris Software Virtualization Solution или Thinstall Virtualization Suite. Это позволяет приложениям работать в изолированном пространстве, предотвращая внесение изменений в систему. Или для приложения может быть осуществлена поддержка с помощью таких инструментов, как Altiris Application Control Solution или BeyondTrust Privilege Manager. Обе этих программы обеспечивают повышения в уровне доступа на лету, когда пользователь работает со старым приложением, которое не работает с UAC.
Кстати, один из самых лучших способов избежать потенциальных проблем с UAC состоит в выполнении приложения через инструмент LUA Buglight. LUA Buglight (LUA - сокращение от Ограниченный Доступ Пользователя - Limited User Access) - бесплатное инструментальное средство, разработанное старшим консультантом в Microsoft Consulting Services Аэроном Маргозисом (Aaron Margosis). По сути, LUA Buglight сканирует приложение, когда оно выполняется, чтобы идентифицировать любые действия, которые требуют прав администратора. Как только такие действия найдены, вы можете исправлять код или настройки приложения, или попробовать выполнить его в режиме совместимости. В блоге Аэрона содержится множество информации о потенциальных решениях для выполнения приложений в "неадминистративном" режиме.
Если вас совсем не устраивает такое положение дел, то вы, конечно, можете отключить UAC в настройках безопасности, но не рекомендуем вам делать это. Каждый должен работать как стандартный пользователь, даже в Windows XP. Это не всегда легко, но это возможно и определенно более безопасно.
Проблема: Другая новинка, которая может повредить работе приложений - это Windows Resource Protection (WRP), которая является усиленной Системой защиты файлов Windows (Windows System File Protection). WRP защищает и файловую систему и системный реестр от неправомочных внесений изменений. Когда приложение пытается произвести запись в защищенную системную область, у него это не получается. Многие старые приложения будут пытаться сделать это, потому как они никогда не писались с учетом защиты системы.
Решение: Попробуйте выполнить приложение в режиме совместимости или исправьте его, если у вас есть доступ к исходному коду.
Проблема: Сессия 0 (Session 0) - это основная сессия в пределах операций ядра операционной системы. В предыдущих версиях Windows приложения позволяли работать на нулевой сессии, но при любой ошибке выполнения приложения на этом уровне привело бы к краху всей операционной системы.
В Windows Vista Session 0 теперь зарезервирована только за функциями операционной системы. Сервисы, которые попытаются работать на этом уровне и отобразить пользовательский интерфейс не смогут этого сделать, так как Session 0 больше не поддерживает ни один такой интерфейс.
Решение: Windows Vista будет пытаться автоматически переадресовать такие интерфейсы на пользовательские сессии, но это не сработает. Лучшим решением этой проблемы является модификация приложения, чтобы стало возможно использовать глобальные объекты вместо локальных и отображать все интерфейсы в пользовательских режимах.
Решение проблем средствами Windows Vista.
Прочитав обо всех этих проблемах, у вас могло сложиться впечатление, что большинство приложений работают со сбоями на Windows Vista, но это не совсем так. Windows Vista содержит в себе несколько разработок, которые пытаются исправить некоторые проблемы, связанные с приложениями.
Подобно Windows XP, Vista включает в себя режимы совместимости, с помощью которых вы можете запускать приложения так, чтобы они работали должным образом. Кроме того, Windows Vista содержит Program Compatibility Assistant (PCA, помощник совместимости программ), который является новой версией Мастера совместимости программ в Windows XP.
PCA просматривает приложения на наличие ошибок и автоматически включает режимы совместимости, когда такие ошибки обнаружены. Если сбой произошел при установке, PCA предложит повторно запустить ее с внесением изменений в настройки инсталляции. В основном PCA изменяет настройки совместимости в свойствах приложения. В большинстве случаев установка после таких изменений проходит без сбоев. Такую настройку можно сделать и вручную.
Наряду с PCA Microsoft представила также форму файла и виртуализацию системного реестра. Это означает, что когда система обнаруживает приложение, которое в обычном состоянии производило бы запись в защищенные области памяти, Windows Vista попробует использовать свои параметры настроек виртуализации, чтобы перенаправить вывод данных приложения в незащищенные области. Виртуализация файла Vista автоматически переадресует запрещенные попытки записи файла в структуру папок под названием C:Virtual StoreSIDProgram Files..., где SID - идентификатор защиты пользователя, работающего с приложением. Точно также виртуализация системного реестра Windows Vista перенаправляет системные ключи реестра - ключи, которые обычно хранятся в области HKEY_Local_MachineSoftware - в HKEY_Classes_RootVirtualStoreMachineSoftware.
Это не то же самое, что истинная виртуализация программного обеспечения, которая обеспечивает полную защиту от любых модификаций приложений для операционной системы. Системы виртуализации программного обеспечения, наподобие упомянутых выше, обеспечивают наилучший способ для поддержки совместимости приложений в Windows Vista. Эти инструментальные средства позволяют вам подготавливать приложение на предыдущих версиях Windows и затем копировать его на Vista-систему, где оно будет работать в защищенном режиме.
Воспользуйтесь ACT
Если вы не готовы использовать программное обеспечение виртуализации, то вы можете обратиться к другому инструменту, предлагаемому Microsoft - Application Compatibility Toolkit (ACT, набор инструментов для совместимости приложений). ACT разработан с целью помогать устанавливать и решать проблемы совместимости приложений. Он делает это в три этапа:
1. Интерфейс ACT может сгенерировать набор инструментов для выполнения набора команд приложений для клиентских систем. Этот набор инструментов требует административных прав доступа для установки, так что организации, желающие использовать ACT, должны будут разработать метод по развертыванию этого пакета, если их системы заблокированы.
2. После этого, пакет будет работать на клиентских системах в течение определенного периода времени. Он соберет информацию о приложениях и сообщит ее обратно в центральную базу данных ACT. Эта информация будет включать в себя название приложения, номер версии и разработчика, а также некоторые эксплуатационные данные, наподобие того, использовалось ли оно в течение определенного интервала времени, для которого вы хотите использовать данный пакет.
3. После того, как эта информация будет собрана, вы можете создавать фрагменты кода, которые будут добавлены к логике процесса установки приложения, чтобы исправить любые известные проблемы.
Вот общий пример: система создана для пользователя A, который нуждается в приложении X; пользователь A переходит на другое место работы и его ПК переходит к пользователю B; пользователь B нуждается в приложении Y; IT персонал устанавливает приложение Y, но практически никогда не удаляет при этом приложение X. Переход на Vista - это идеальное время для большой чистки всех ПК. В конце концов, зачем беспокоиться о приложении, которое не используется? ACT и другие подобные анализы использования могут в этом очень помочь.
|
|