Internet Explorer 9: Ускоренная совместимость корпоративных приложений

OSzone.net » Microsoft » Internet Explorer » Internet Explorer 9: Ускоренная совместимость корпоративных приложений
Автор: Крис Джексон
Иcточник: TechNet Magazine
Опубликована: 27.10.2011

Никому не хочется оставаться со старым браузером типа Internet Explorer 6. Люди жалуются, что их обделяют новыми возможностями, что приложения перестают работать, а производительность оставляет желать лучшего. Но они до сих пор используют Internet Explorer 6. Почему? Все просто – они боятся, что что-то перестанет работать.

Никто не хочет стать тем, из-за кого остановилась работа предприятия на целый день из-за вышедшего из строя критически важного приложения. Страх и неопределенность парализуют. Процесс перехода к Internet Explorer 9 может создать определенные проблемы, но если вы примените несколько приемов, то сможете на самом деле сделать его быстрее, дешевле и проще.

Победить неопределенность

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

В последнем выпуске пакета Microsoft Assessment and Planning Toolkit (MAP) присутствовала определенная функциональность инвентаризации Internet Explorer. Выполнялась инвентаризация не только установленных на компьютере браузеров (и определение, какой из них является браузером по умолчанию), но также и параметры настройки Internet Explorer (такие как ActiveX или вспомогательных объектов браузера). Это поможет вам понять код, исполняемый браузерами ваших пользователей.

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

Вспомните, как часто в течение дня вы посещаете сайты, не относящиеся к работе? Сколько регулярно посещаемых вами сайтов, будь они недоступными завтра, вы бы заменили другими похожими? Если вы возьмете список веб-сайтов, посещаемых мною, и внимательно его изучите, то выясните, что по меньшей мере 95% из них не имеют к делу никакого отношения. Страх пропустить те самые 5% сайтов заставляет выполнять тотальную инвентаризацию сайтов.

Определение приложений

Есть другой подход: подумайте, какие приложения абсолютно точно должны работать в первый день после перехода. Именно их вы должны тщательно протестировать перед установкой Internet Explorer 9 на первом же рабочем месте. Проверив все критически важные приложения, можно приступать к развертыванию.

Начните с небольшого количества рабочих мест. Обучите сотрудников технической поддержки работе с дополнительным количеством запросов касательно совместимости веб-приложений после внедрения нового браузера. Составьте план по решению возможных проблем и запасной вариант для непредвиденных ситуаций.

Если отдел технической поддержки оказывается перегружен запросами, снизьте темп внедрения. Если они справляются и даже есть некоторый запас, можете ускорить процесс. Хорошей идеей будет внедрение по желанию пользователя – в этом случае люди простят вам многое, если что-то пойдет не так.

Вся прелесть этого плана в том, что вам не нужно тестировать все. Обычно пользователи заявляют о проблеме, только если она мешает работе. Иначе они просто занимаются своим делом. В итоге вы тратите меньше времени на тестирование приложений, которые не важны вашим пользователям. Активное предварительное тестирование позволяет экономить много времени. Пользователи всегда могут определить, работает приложение или нет.

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

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

Настройте среду

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

Internet Explorer 9 предоставляет продвинутую инфраструктуру совместимости, которая позволяет вам оставить все работать как есть, а затем постепенно перейти к новым веб-стандартам. Что же предпринять, чтобы настроить среду для обеспечения максимальной совместимости? Все начинается с правильного зонирования.

Некоторые внутренние приложения расположены в зоне Интернета, так как в них используются полные доменные имена или IP-адреса. Зона Интернета более ограничена, и, как следствие, намного менее удобна для совместимости. Например, SharePoint многое теряет при неправильном зонировании. Многие возможности просто не работают.

Еще одна проблема зонирования — размещение приложений в зоне надежных узлов. В Internet Explorer 6 надежные узлы и правда были самой надежной зоной. Это давало вам больше возможностей маневра. В Internet Explorer 9 наиболее надежная зона — не надежные узлы, а локальная интрасеть. Так что приходится поступиться возможностями. Кроме того, используя политики по умолчанию, вы теряете возможность воспользоваться встроенной проверкой подлинности.

Почему локальная интрасеть более надежна? До этого момента было два разряда внутренних приложений – надежные и действительно надежные. Как часто требуется такое разделение? Не так уж и часто, если есть разумная политика по умолчанию для зоны локальной интрасети. Плюс, не осталось места для надежных партнеров. Если ваш партнер предоставляет электронную почту, инструменты поддержки взаимной работы и тому подобное, то эти приложения более надежны, чем Интернет в целом.

Если ваши приложения корректно зонированы, используется политика по умолчанию, когда в зоне локальной интрасети по умолчанию включен режим совместимости. Это повышает совместимость ваших веб-приложений за счет использования зоны с более либеральным шаблоном безопасности.

Режимы совместимости

Это, само собой, приводит нас к следующей важной теме: режимы совместимости и когда их использовать. Это одна из неверно воспринимаемых возможностей Internet Explorer 9. Но большая часть этой сложности скрыта за простой кнопкой с разорванной страницей.

Помните, что Internet Explorer 9 на самом деле содержит четыре отдельных механизма рендеринга. Это четыре набора правил для отображения разметки HTML, сценариев и т. п. В Internet Explorer 9 эти режимы отображения следующие:

Это не ново. Даже в Internet Explorer 6 были два режима: Quirks и Internet Explorer 6 Standards. Обычно используется режим Quirks, если разработчик специально не переключится на Standards, используя элемент DOCTYPE в разметке страницы. Internet Explorer 7 эта дихотомия сохранилась, причем Standards получил развитие и был усовершенствован, а режим Quirks остался без изменений. Internet Explorer 8 сохранил оба режима — Quirks и Internet Explorer 7 — и добавил Internet Explorer 8. Internet Explorer 9 продолжил эту традицию.

Таким образом, под одной кнопкой у вас четыре механизма рендеринга. Как же вам переключаться между ними? В режиме совместимости веб-страница, содержащая DOCTYPE, будет обрабатываться в режиме Internet Explorer 7 Standards, а без него — в режиме Quirks.

Если вы не используете режим совместимости, то веб-страница, содержащая DOCTYPE, будет обработана в режиме Internet Explorer 9 Standards, а без него — в режиме Quirks. Таким образом, страница в режиме Quirks не изменится от щелчка кнопки включения режима совместимости. Щелчок этой кнопки меняет версию браузера, о которой сообщается веб-серверу.

Это не очень удачное решение — заставлять  пользователей щелкать кнопку, чтобы веб-страница отображалась правильно. Теперь режим совместимости поддерживается групповыми политиками, к примеру, задать режим совместимости как режим по умолчанию можно следующей групповой политикой: Administrative Templates/Windows Components/Internet Explorer/Compatibility View/Turn on Internet Explorer Standards Mode for Local Intranet.

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

Кроме этого, есть групповая политика, отвечающая за обеспечение работоспособности веб-приложений внешних партнеров: Administrative Templates/Windows Components/Internet Explorer/Compatibility View/Use Policy List of Internet Explorer 7 sites.

Если вы добавите конкретные сайты в эту политику (для этого используются доменные имена высшего уровня), они будут переключены в режим совместимости и от этого смогут работать лучше. Но режим совместимости не решает всех проблем. Начиная с Internet Explorer 6, существует причина, почему это не всегда работает. Internet Explorer 6 не читает DOCTYPE, если он не является самой первой строкой в разметке страницы. Посмотрим, что произойдет со страницей, код которой начинается так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Strict//EN" "DTD/xhtml1-strict.dtd">

Это стандартное начало страницы XHTML — диалекта HTML, бывшего популярным несколько лет тому назад. Internet Explorer 6 будет обрабатывать все XHTML-страницы с таким началом в режиме Quirks, так как DOCTYPE расположен не в первой строке. В Internet Explorer 7 эта ошибка была исправлена, так что Internet Explorer 7 или позднее будет обрабатывать уже в режиме Standards. Так как правила для разметки отличаются для Quirks и даже Internet Explorer 6 Standards, то это достаточно важно.

Переход веб-сайтов от Quirks к Standards приводит к потере работоспособности многих из них. Более 80% всех приложений перестали работать именно из-за этого изменения. Именно поэтому мы добавили новую групповую политику для Internet Explorer 9 (также доступную и в Internet Explorer 8, если вы установите следующее исправление: http://support.microsoft.com/kb/982063): Administrative Templates/Windows Components/Internet Explorer/Compatibility View/Use Policy List of Quirks Mode sites.

Это позволит переключиться в режим Quirks при отображении конкретного сайта. Это не дает полного контроля над ситуацией, но открывает прямую дорогу на основе политик для работы в этом направлении.

Для получения полного контроля вам следует использовать X-UA-Compatible, тогда вы сможете явно выбирать, какой режим обработки использовать. Вы можете узнать дополнительные детали на странице «Определение совместимости документов» библиотеки MSDN Library, но если кратко, то вы должны включить либо заголовок:

X-UA-Compatible: IE=5

либо мета-теги:

<meta http-equiv="X-UA-Compatible" content="IE=5">
    <!-- Quirks Mode -->
<meta http-equiv="X-UA-Compatible" content="IE=7">
    <!-- IE7 Standards -->
<meta http-equiv="X-UA-Compatible" content="IE=8">
    <!-- IE8 Standards -->
<meta http-equiv="X-UA-Compatible" content="IE=9">
    <!-- IE9 Standards -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- The latest standards -
        never use in production! -->

Возможно, вы хотите понять всю инфраструктуру совместимости и все способы ее настройки. Например, если вы оставите стандартные параметры для локальной интрасети, то будет использован режим совместимости. Если после этого внедрить приложение на основе HTML5 и ничего не предпринять, то будет использован режим по умолчанию — Internet Explorer 7.

Internet Explorer 7 не поддерживает HTML5, так что ваше приложение просто не будет работать. Но не все потеряно! Вы можете добавить заголовок на веб-сайте и настроить его на работу в режиме Internet Explorer 9, либо вы можете добавить мета-теги на страницы, требующие HTML5. Вы просто переопределили правила по умолчанию, получив более современный режим обработки.

Я рекомендую добавлять X-UA-Compatible заголовки или мета-теги во все веб-приложения. Это также надо делать во всех новых веб-приложениях. Таким образом, вы сможете постепенно внедрять новые стандарты.

Правила приоритета также поддерживают такой подход. Вы можете переопределить значения по умолчанию в групповой политике с помощью заголовка X-UA-Compatible и переопределить заголовок с помощью X-UA-Compatible мета-тега. Независимо от выбранного уровня детализации вы можете полностью контролировать режим отображения. Контроль нужен, если хотите двигаться дальше. Так что позаботьтесь о вставке нужных тегов и применении новых стандартов во всех своих новых приложениях.

Настройка параметров безопасности

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

Это далеко не исчерпывающий список. Настроить свою среду так, чтобы она сразу была устойчива ко всем этим факторам, невозможно, потому как это итеративный процесс. Обнаружив функцию, мешающую работе приложения, надо взять ее на заметку. Обычно разумно ее отключить и запланировать исправление на более поздний срок.

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

Вы можете решить оставить 99% функций безопасности в Internet Explorer 9 (с одной-двумя временно выключенными возможностями) или отказаться от них вовсе, решив не снижать уровень безопасности. Это также мешает внедрению. Надо найти компромиссное решение, в котором учитываются все эти обстоятельства.

Не забывайте о ПО промежуточного уровня

Другим важным аспектом перехода на Internet Explorer 9 является понимание влияния промежуточного ПО. Крайне важно наличие последней версии Java. Старые версии Java несовместимы с Internet Explorer 9

Многие организации предпочитают возводить в стандарт конкретную версию и уровень обновления Java. Это приводит к отказу от установки новых исправлений, включая исправления безопасности. Центр безопасности Microsoft предупреждал о растущем количестве взломов Java , так что это неразумный подход.

Поиск причин

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

Веб-приложение обычно состоит из трех частей, исполняемых в браузере: HTML (обычно сгенерированный программным инструментом), CSS-таблица (обычно созданная дизайнером) и сценарий (обычно написанный разработчиком). Ни один человек до конца не знает все три технологии сразу. Даже одну из них сложно изучить полностью.

Отладку совместимости веб-приложения следует проводить итеративно. Сформулируйте причину, почему приложение может не работать, а затем найдите инструмент, который позволит максимально быстро проверить догадку. Если сфокусироваться на проблеме, то выявить причину удастся очень быстро.

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

if (majorVersion < 5 or minorVersion < 5) then fail

«Прокрутите» логику выражения в голове. Версия 5.5 работает правильно. Это же верно в отношении версии 5.6, но 6.0 уже не пройдет проверку, так как 0 (промежуточная версия) меньше пяти. Вы можете легко это поправить, изменив эту строку кода. Часто решение проблемы легче, чем вы думаете, так что надо выяснять, почему что-то не работает, а не рассуждать о том, что все нужно переделать.

Имейте запасной план

И последнее — всегда имейте запасной план. Если у вас есть приложение, которому нужен Internet Explorer 9, оно не сможет работать. Каков ваш запасной план: оставить пользователей на Internet Explorer 6 или воспользоваться возможностями виртуализации для более ранней миграции этих пользователей? Почитайте статью «Solutions for Virtualizing Internet Explorer» и приготовьте план, который предусматривал бы «вариант отхода», если что-то пойдет не так.

В среднем, типичная организация, переходящая с Internet Explorer 6 на Internet Explorer 9 обнаруживает, что в Internet Explorer 9 перестают работать около 25% приложений. После аккуратной настройки это число снижается до 5% или даже ниже.

При переходе с Internet Explorer 7 на Internet Explorer 9 обычно перестают работать 4–5% приложений, но после настройки это количество снижается до 2%. В компаниях, использующих Internet Explorer 8, после перехода работоспособность сохраняют практически все приложения.

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


Ссылка: http://www.oszone.net/16342/Internet-Explorer-9