Принципы работы App-V

App-V позволяет создавать виртуальные приложения, которые представляют собой приложения, упакованные для возможности запуска в собственной виртуальной среде или «песочнице» на клиентских компьютерах.Эта виртуальная среда содержит всю необходимую информацию для запуска виртуального  приложения на клиентском компьютере и выполняется в рамках программного обеспечения клиента App-V на клиентском компьютере.После виртуализации приложений и развертывания программного обеспечения App-V на клиентских компьютерах эти приложения можно предоставлять данным клиентским компьютерам самыми различными способами, что позволяет избежать многих проблем, связанных с жизненным циклом традиционного развертывания приложения.В следующих разделах эти процессы рассматриваются более подробно.

Виртуальная среда App-V

Виртуальная среда App-V представляет собой контейнер времени выполнения; он определяет ресурсы, которые доступны процессам приложения, запущенным из пакета виртуализированного приложения. К определяемым виртуальной средой относятся следующие ресурсы:

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

Эта виртуальная среда создается программным обеспечением клиента App-V, которое выполняется на клиентском компьютере и позволяет конечному пользователю взаимодействовать с виртуализированными приложениями после их предоставления на клиентском компьютере.Для получения дополнительных сведений о программном обеспечении клиента App-V Client см. раздел «Клиенты App-V» ниже в данной главе.

Виртуализация приложений

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

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

  • Файл ICO — этот тип файлов используется для значков на рабочем столе клиентского компьютера, используемых для запуска виртуализированного приложения.
  • Файл OSD — это OSD-файл в XML-формате, содержащий предназначенные для клиента инструкции по получению виртуализированного приложения с сервера управления App-V или потокового сервера App-V и по запуску виртуализированного приложения в его виртуальной среде.
  • Файл SFT — файл этого типа содержит одно или несколько виртуализированных приложений, упакованных средством Sequencer в блоки потоковой обработки, а также связанную с ними информацию о доставке. Файл SFT хранится на каждом сервере, который должен осуществить потоковую передачу упакованных приложений клиенту.
  • Файл SPRJ — это файл проекта Sequencer в XML-формате, используемый средством Sequencer для хранения сведений о своих элементах исключения и элементах анализа.Файл SPRJ используется при создании записей приложения и при обновлении пакета.

Кроме того, пакет виртуализированного приложения может содержать файл установщика Microsoft Windows (MSI), который может использоваться для автономного распространения виртуальных приложений и/или для публикации пакетов приложений с использованием системы электронного распространения программного обеспечения (ESD), такой как Microsoft System Center Configuration Manager 2007.

Для получения дополнительных сведений о виртуализации приложений см. разделы «App-V Sequencer» и «Использование Sequencer» ниже в данной главе.

Публикация приложений

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

  • Использование сервера управления App-V
  • Использование системы электронного распространения программного обеспечения, такой как System Center Configuration Manager 2007
  • Автономная доставка

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

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

  • Файлы MSI — использование файлов установщика Microsoft Windows (MSI).
  • Манифест MSI — использование MSI-манифеста, содержащегося в файле MSI.
  • Команды SFTMIME — использование окна командной строки и команд SFTMIME для добавления приложений и загрузки файла SFT.

Потоковая обработка пакетов

После публикации приложения и потоковой передачи его файлов ICO и OSD на клиент необходимо предоставить на этот клиент файл содержимого пакета виртуального приложения (файл SFT).App-V поддерживает различные способы выполнения этой операции, включая использование сервера управления App-V,веб-сервера IIS, файлового сервера, автономной доставки или точки распространения с запущенными службами IIS в среде System Center Configuration Manager 2007.

Когда пользователь в первый раз выполняет двойной щелчок значка приложения, помещенного на компьютер в рамках процесса публикации, клиент App-V сначала выполняет авторизацию и проверку лицензий.После этого клиент начинает потоковую обработку содержимого пакета виртуального приложения (файл SFT) из заданного исходного расположения потоковой обработки.При этом файл SFT подключается к ОЗУ на потоковом сервере, который затем доставляет приложение блоками размером по 32 КБ (по умолчанию) клиенту через сетевое соединение.В качестве исходного расположения потоковой обработки обычно используется сервер, являющийся «локальным» (доступным через надежное высокоскоростное сетевое соединение) по отношению к компьютеру пользователя, но некоторые системы электронного распространения, такие как System Center Configuration Manager 2007, могут распространять файлы SFT в папку на компьютере пользователя, а затем выполнять потоковую обработку пакета из этой локальной папки. Исходное расположение потоковой обработки для пакетов виртуальных приложений можно даже задать на компьютере , не являющемся сервером, то есть на рабочей станции.Такое решение может оказаться особенно удобным в небольшом филиале, у которого отсутствует отдельный сервер.

Управление виртуальными приложениями

App-V значительно упрощает развертывание приложений, помогая решить несколько ключевых проблем, которые часто возникают при традиционном жизненном цикле управления приложениями:

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

Для получения дополнительных сведений о том, как App-V помогает устранить эти и другие проблемы, связанные с традиционном жизненном цикле управления приложениями, см. вставку «Из первых уст:App-V и жизненный цикл управления приложениями» в этой главе.

Из первых уст: App-V и жизненный цикл управления приложениями

Любая организация сталкивается с трудностями при реализации непрерывного цикла развертывания, обновления (то есть установки исправлений, пакетов обновления и обновлений), обеспечения поддержки (то есть диагностики, проверки соответствия лицензий и обучения) и прекращения всех приложений на предприятии.Существует множество разнообразных решений для решения данной проблемы, но большинство из них нацелены только на одну или две области данного жизненного цикла.

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

Обновления представляют собой естественный и необходимый процесс в жизненном цикле управления приложениями.По мере роста «веса» приложений на рынке они, несомненно, будут пересматриваться и обновляться с помощью пакетов обновления и исправлений.Ответственность за обновление каждого клиентского компьютера, на котором установлена определенная версия приложения, на предприятии лежит на инженере службы поддержки.

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

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

Одной из основных трудностей, с которыми предприятия сталкиваются при использовании стандартного жизненного цикла управления приложениями, является возможность возникновения конфликта между двумя и более приложениями.Когда для приложения разрешена установка на главный или клиентский компьютер, его запрограммированное поведение заключается в добавлении или изменении файлов или параметров реестра в операционной системе этого компьютера.Если бы это приложение не добавляло и не изменяло параметры реестра и находилось исключительно в собственном каталоге в рамках файловой системы, конфликтов бы не было.Однако поскольку с 1995 года появились тысячи приложений, приложение практически всегда помещает свои файлы (DLL, VXD, SYS ит. д.) во множество каталогов по всей файловой системе.Оно также заполняет реестр клиентского компьютера своими собственными значениями или изменяет существующие значения реестра.Одним из преимуществ такого развертывания приложений является использование ими локальных ресурсов на устройстве, где они были установлены.

Несовместимость приложений в системе не возникала бы так часто, если бы предприятия использовали только одно приложение тщательно подобранную группу приложений.Поскольку большинство предприятий используют множество приложений, возникновение конфликтов практически неизбежно.До выпуска App-V Application Virtualization многие организации решали данную проблему с помощью разделения этих приложений, помещая их на разные компьютеры.По существу пользователю приходилось бы располагать на столе два или более компьютера, один для запуска приложения А, а другой для запуска приложения Б, хотя один из этих компьютеров мог бы быть виртуальной машиной, запущенной на физическом компьютере пользователя.Хотя это решение и можно воплотить на деле, оно очень невыгодно с точки зрения расходов и поддержки.

Приложения, для которых включена функция App-V, не могут устанавливаться или вносить изменения в локальную файловую систему или локальный реестр.Такое приложение выполняется внутри собственной виртуальной среды.(см. рис. 3-31).Внутри этой виртуальной среды содержатся все файлы, данные реестра, шрифты, COM-объекты, внедренные службы и  переменные среды, которые в общем случае были бы установлены приложением и использовались бы им на клиентском компьютере.Вместо этого все эти ресурсы размещаются внутри виртуальной среды, поэтому приложение использует их из этой же виртуальной среды и остается изолированным от других приложений, которые также выполняются внутри своей отдельной виртуальной среды.Процесс создания виртуальной среды называется виртуализацией.

Операционная система

Рисунок 3-31. Виртуальная среда App-V.

Sequencer — это компонент системы App-V, который имеет важное значение для создания среды SystemGuard для приложения или набора приложений.Приложения с поддержкой App-V могут использовать локальные и сетевые диски, ресурсы ЦП, ОЗУ, службу локального установщика Windowsи другие локальные ресурсы, доступные на клиенте App-V, на котором эти приложения были подвергнуты потоковой обработке кэшированы и запущены.

Регрессионное тестирование на предприятиях всегда было первоочередной задачей при развертывании нового или обновленного приложения.На предприятиях с формализованными процессами  для выполнения этой задачи каждое приложение тестируется во всех известных конфигурациях, которые могут использовать в данной организации.В этом случае одно приложение может требовать (а часто и требует) более 40 часов  работы.Благодаря включению функции App-V это время сокращается до периода, необходимого для виртуализации этого приложения.Когда приложение развернуто, оно изолировано от всех других приложений, которые были виртуализированы или локально установлены на данном клиентском компьютере, что гарантированно дает среду без конфликтов.

Обновления

Естественной частью жизненного цикла приложения является обновление в виде выпускаемых пакетов обновления или исправлений.Эти обновления требуется применить к приложению, что часто реализуется посещением инженера службы поддержки каждого клиентского компьютера или компьютера с сервером терминалов для ручной установки требуемого обновления.Данный процесс может потребовать очень много времени, кроме того, он может повысить вероятность возникновения конфликта приложений, поскольку это обновление изменяет файлы и параметры реестра на клиентском компьютере.Для приложения с поддержкой App-V обновления выполняются централизованно и одновременно.Инженер по виртуализации забирает исходный пакет приложения с поддержкой App-V назад на чистую рабочую станцию Sequencer и выполняет обновление, применяя к исходному пакету требуемые обновления. После этого обновленный пакет используется для замены исходного пакета на сервере App-V, а клиент App-V незаметно для пользователя получает обновленные файлы.

Поддержка

Кроме устранения конфликтов между приложениями, платформа App-V может решить множество других проблем, связанных с поддержкой. При запуске приложения внутри его собственной защищенной среды SystemGuard приложения с поддержкой App-V остаются невосприимчивыми к непреднамеренному или преднамеренному удалению критически важных файлов, необходимых для работы приложения.Поскольку приложения с поддержкой App-V запускаются внутри собственной среды SystemGuard, пользователи и локальные системные администраторы не видят файлы и записи реестра такого приложения при просмотре локальных ресурсов. Это может значительно снизить число обращений сотрудников организации в службу технической поддержки. Другой проблемой, с которой сталкивается персонал службы поддержки на предприятии, является лицензирование. App-V позволяет организациям управлять числом пользователей, которые могут одновременно получить доступ к приложениям с включенной поддержкой App-V. Данная возможность лицензирования администрируется централизованно из единой административной служебной программы для Microsoft App-V Application Virtualization — консоли App-V Management Console.

Прекращение

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

— Шон Донахью, старший руководитель программы,System Center Alliance, корпорация Майкрософт