воскресенье, 22 февраля 2009 г.

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

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

Так что не исключено чуть более широкое упоминание связанных с виртуализацией приложений тем.

Пока что интересный пример коммерческого продукта, использующего эту технологию - Технические примечания к выпуску Embarcadero All-Access: clink-n'run виртуализация приложений.
Позволю себе процитировать:

Одним из вариантов поставки All-Access является 4-х гиговая USB-флэшка.
Как только Вы вставите флэшку в компьютер, появится следующее окно (тут представлена самая старшая редакция, Platinum):



Так вот, щелкнув по любому продукту, будь то Delphi, ER/Studio или DBArtisan, вы увидите, что он немедленно запустится. Никакой установки, никаких записей в реестре, ничего! - просто нажал и продукт немедленно запустился.

Такая же схема работает и по Интернет, при наличии достаточно "толстого" канала можно запускать приложения прямо с сайта www.embarcadero.com.

Технически это реализовано с использованием технологии виртуализации приложений. Запускаемое приложение на самом деле представляет собой "конверт" для того же Delphi, который перехватывает и перенаправляет все запросы к реестру, служебным и ини-файлам, и в то же время позволяет запущенному приложению общаться с ОС на "гостевом" компьютере, в т.ч. с диском, проводить отладку и т.д.
Особенно полезно это для тех инструментов из "сундука Embarcadero" (tool chest), которые применяются только на определенных этапах разработки, например, тот же DBOptimizer для профилирования SQL-запросов. Приходит разработчик или консультант к заказчику, втыкает флэшку и моментально начинает базу оптимизировать тудыть ее в качель :)


Напомню, что виртуализация приложения предполагает:
создание "контейнера"(иногда говорят "песочница") для исполнения приложения. Этот "контейнер" создается как раз таки соотв. софтом - ThinApp. А дает этот контейнер выделенную файловую систему и реестр. Т.е. вместо обращения в системные, приложение обращается в эмулированные для нее контейнером ветви реестра.
Таким образом, от виртуализации приложения мы получаем:
-его изоляцию. Оно не знает, что на той же ОС есть еще и другие приложения. Таким образом, можем без геморроя запускать на одной машине несовместимые приложения(например, разные версии офиса могут не захотеть работать на одном ПК. Или какому то приложению очень и очень мешает антивирус). Так же, какие то устаревшие приложения запустить так может быть легче.
-Отсутствие необходимости в установке приложения. Скачиваем(а то и просто запускаем с шары) файл - он запускает контейнер, в котором запускается уже установленное приложение. Т.е. если при обычных методах пользователь: 1) запускает установку. 2)ждет, пока дистрибутив скопируется\распакуется. 3)ждет окончание процесса установки. 4)начинает работать, возможно после ребута. 5) может тратить много времени(практически все те же шаги) при обновлениях этого софта.
То в случае виртуализованного приложения пользователь: 1) запускает и работает.
-в последнем случае, пропатчив виртуализованное приложение, лежащее на шаре, мы автоматически обновляем это приложение для всех, кто с этой шары его запускает. Потенциально - для всех, кто его использует.
-для юзеров мобильных - возможно кеширование таких приложений на ноуте, таким образом даже ранее не использовавшееся приложение может быть уже доступно на ноутбуке вне корпоративной сети.
-список можно продолжить - благодаря отвязке софта от ОС, его изоляции, мы получаем еще много мелких бонусов - типа той же возможности работать с флешки\CD, гарантии того, что софт не повредит\изменит системные файлы и т. д.



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

Еще тут можно глянуть.

4 комментария:

  1. Ещё пример коммерческого продукта на базе ThinApp - http://www.installfree.com/ Разработчики пошли дальше и создали полный lifecycle для виртуализации приложений.

    ОтветитьУдалить
  2. ООООО! Это же как раз оно, которое я искал. Теперь тысячи еб.... ср... плохих, очень плохих приложений типа Клиент-Банка, нашей проектировочной системы и прочих криворуких пенсионных отчётностей можно сделать переносимыми и жизнь существенно упростится.

    ОтветитьУдалить
  3. прошел год,
    "проектировочной системы и прочих криворуких пенсионных отчётностей " нет ни под VM Ware ни под чем.

    ОтветитьУдалить