Как установить две версии приложения на одном компьютере? Как решить проблему конфликта приложений? Как сделать приложение более безопасным для системы?
Как?
В невиртуализированной среде Windows систем приложения устанавливаются непосредственно в ОС, в общие системные файлы, из-за чего зачастую происходят конфликты приложений, сбои и неустойчивая работа всего компьютера.
Данную ситуацию изменяет внедрение виртуализации приложений, при которой происходит разделение операционной системы и конфигурации приложения.
Каждое виртуализированное приложение работает в собственной защищенной среде, включающей в себя файлы, ключи реестра и другие элементы, необходимые для работы приложения. При этом приложение изолированно от ОС и других приложений, что позволяет избежать конфликтов на программном уровне.
На сегодняшний день существует много систем виртуализации приложений Citrix XenApp, SoftGrid, VMWare ThinApp, etc. У всех есть свои минусы и плюсы. И каждый выбирает систему по своим требованиям и возможностям.
Попробуем поближе взглянуть на виртуализацию при помощи Citrix, а именно стриминг виртуализированных приложений.
Создадим виртуальное приложение, которое будет изолированно от ОС и других приложений.
Весь процесс можно разбить на 2 части:
1. Создание виртуального приложения (профиля) — подготовка и упаковка приложения и всего необходимого для его работы. Конечный результат и есть профиль приложения.
2. Доставка профиля — распространение готового профиля приложения на клиентские машины используя Citrix XenApp Server.
Часть первая. Создание профиля
Создание профиля приложения выполняется с помошью приложения Streaming Profiler. Рекомендуется использовать чистую систему с такими же параметрами и настройками как у будущего пользователя. Имеется ввиду ОС, битность, установленные антивирусы, групповые политики, итд.
Непременно, пригодится виртуальная среда, которая является лучшим инструментом для отката системы в предыдущее «чистое» состояние, если в процессе создания профиля что-то пошло «не так».
Рассмотрим создание профиля на примере Adobe Reader (v.10.0.0)
Итак, чистая машина, максимально приближенная к клиентской, установленный инструмент Citrix Streaming Profiler.
Создаем профиль открыв Streaming Profiler, шагаем с подсказками мастера.
Name. Даем имя профилю.
Inter-Isolation Communication. Так как наше приложение будет изолированно от остальных приложений но оно должно работать вместе с другим, например, как зависимость, то в следующем диалоге указываем какое существующее виртуализированное приложение использовать.
Приложения будут видеть друг-друга и при необходимости использовать общие компоненты:
Target OS. Указываем для каких ОС и с какой конфигурацией данный профиль будет работать:
Если установка приложения происходит обычным инсталлятором напр setup.exe и не требует других шагов то выбираем Quick Install — опция для установки приложения одной строкой. Если же имеется несколько установочных файлов, или ставятся апдейты, необходимо руками вносить изменения в реестр или конфигурационные файлы, то лучше выбрать Advanced Install.
Далее выбираем установочный файл и производим установку приложения.
Во время установки Streaming Profiler следит за установкой (какие файлы устанавливаются, реестровые записи) и создает профиль приложения. При этом не происходит установка приложения на систему. Все происходит в виртуальной оболочке созданной Profiler-ом но устанавливаемое приложение «видит» все компоненты системы и установленные ранее приложения.
После завершения установки мастер предлагает какие ярлыки оставить для будущей публикации на клиентские машины. Сохраняем профиль на Application Hub — выделенная сетевая шара. Права write+modify для записи пользователю который создает профили и управляет ими. И права read+execute пользователям, которым будет распространено данное приложение в будущем. В результате имеем сам профиль файл .profile и набор необходимых файлов для работы приложения.
Каждый профиль включает в себя один или несколько Target-ов. Target — набор файлов, реестровых записей, компонентов необходимых для работ приложения на конкретной конфигурации компьютера.
Если существует необходимость работы приложения например на нескольких версиях ОС — при помощи Streaming Profiler можно добавлять необходимые таргеты, при этом каждый раз нужно запускать установку приложения заново. Таргеты так же полезны если имеется потребность в различной конфигурации приложения на различных версиях ОС.
Если нужно внести изменения в профиль или таргет приложения необходимо использовать то же Streaming Profiler как редактор.
Часть вторая. Доставка профиля
Распространять уже готовый профиль будем с помощью Citrix XenApp Server 6 который установлен на Windows Server 2008 R2.
Открываем Citrix Delivery Services Console. Раскрываем дерево фермы, жмем Aplications -> Publish Applications. Даем имя приложению.
Выбираем тип приложения — Aplication — Streamed To Client. Для того что бы приложение стримилось сразу на клиент.
Возможен вариант стриминга на сервер, тогда клиент будет заходить по протоколу ICA на сервер, на который стримится приложение. В данном случае мы используем стриминг прямо на клиент.
В следующем окне указываем путь файлу профилю (.profile) на Application Hub, используя UNC пути.
Так же выбираем в выпадающем списке ярлык, который будет опубликован клиенту.
Если необходимо что бы приложение было доступно даже когда нет сети, выбираем Enable Offline Access. В данном случае приложение будет полностью загружено в кеш на клиенте и в дальнейшем запускаться с кеша, даже если будет отсутствовать сетевое подключение.
Выбираем пользователя или группу (Citrix или AD) для которых данное приложение будет опубликовано и доступно.
Меняем если нужно иконку. При желании можно поместить ярлык в указанную подпапку в старт меню, как показано ниже:
Вот и всё. Приложение опубликовано. Настройки файловых ассоциаций для приложения доступно в свойствах.
На клиенте же приложение появилось как меню приложений Citrix:
так и в старт меню:
Приложение может быть так же опубликовано с помощью Citrix Web Interface.
При запуске ярлыка происходит собственно сам стриминг виртуализированного приложения.
Стримится не всё приложение сразу а минимальный набор компонентов, необходимых для старта приложения и отображения пользователю интерфейса приложения (аналогично 1-st Feature Block в APP-V).
Приложение запущено и работает в изолированной среде:
Таким образом, на системе может быть доступно сразу несколько версий одного и того же приложения, например Adobe Reader 9 и Adobe Reader 10.
Ограничения для стриминга:
- Приложения, которые скомпилированны как 64-разрядные не поддерживаются
- Драйвера и приложения, содержащие драйвера не поддерживаются.
- Компоненты ОС MDAC не возможно запрофилировать, например Internet Explorer, .Net Framework.
Существует много нюансов относительно процесса создания профиля приложения, т.к. существуют достаточно сложные и громоздкие приложения которым необходимы различные компоненты как системы так и других приложений.
В Streaming Profiler реализовано достаточно много функций для углубленной конфигурации профиля, pre- и post-launch скрипты, pre-analysis условия, правила изоляции, перенаправления, игнорирования во время процесса создания профиля или его выполнения на клиенте.