Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль
Добавить софт
Мой софт

VMware ThinApp. Переносимые приложения своими руками

Автор: Виктор Деревянко
Опубликовано: 19.01.2009
Источник: SoftKey.info

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

Переносимые приложения – штука удобная. Во-первых, у вас появляется возможность сконфигурировать приложение всего лишь один раз – вне зависимости от количества компьютеров, на которых вы работаете. Скажем, переносимая версия браузера позволит вам всегда иметь единый список ссылок, единую историю посещений, один и тот же набор виджетов в браузере вне зависимости от компьютера, на котором вы работаете. Переносимая версия почтовой программы позволит вам использовать на разных компьютерах одну и ту же почтовую базу данных. Во-вторых, переносимые приложения не требуют от вас наличия прав администратора. Приложение не требуется устанавливать, значит, не нужен доступ к реестру, доступ к директории Program Files. Даже обладая минимальными пользовательскими правами, вы можете запустить на компьютере нужную вам версию FireFox, Adobe Acrobat или Microsoft Office. Что немаловажно, переносимые приложения не создают конфликтов в системе, поскольку полностью изолированы друг от друга. Единственная проблема – далеко не у каждого производителя программного обеспечения имеются портативные версии приложений. Точнее, у большинства таких версий нет. Можно ли превратить обычное приложение в переносимое? Оказывается, можно.

Такое превращение позволяет выполнить программа ThinApp, разработанная компанией VMWare. С ее помощью виртуализировать приложение - т. е. преобразовать его в переносимый вариант - можно буквально за десять минут.

Принципы работы ThinApp

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

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

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

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

Процесс виртуализации приложения

Процесс виртуализации приложения с помощью ThinApp выполняется в режиме пошагового мастера и включает всего несколько простых шагов.

Первый шаг - создание слепка чистой системы
Первый шаг - создание слепка чистой системы
Для начала необходимо установить свежую, чистую версию операционной системы и запустить под ней ThinApp. Программа создаст "слепок" системы – определит, какие файлы установлены, какие ключи реестра созданы и т. п. Далее на чистую систему обычным способом устанавливается приложение. Программа установки добавит в систему необходимые файлы, модифицирует нужным образом реестр, создаст конфигурационные файлы и т. п. Можно запустить установленную программу и выполнить в ней необходимые настройки конфигурации, так чтобы необходимые настройки сразу зафиксировались в системе. Естественно, устанавливать чистую систему каждый раз, когда надо создать переносную версию приложения, не удобно - гораздо проще воспользоваться виртуальными машинами.

Второй шаг - установка приложения
Второй шаг - установка приложения
Теперь в дело снова вступает ThinApp. Программа делает "снимок" измененной системы и определяет, какие именно изменения были в нее внесены. Фиксируются все изменения, внесенные в файловую систему и в системный реестр.

Третий шаг - создание слепка системы после установки
Третий шаг - создание слепка системы после установки
Здесь хотелось бы отметить одну неприятную особенность интерфейса. После сравнения "слепков" ThinApp выводит список добавленных исполняемых файлов, чтобы пользователь мог указать файл или файлы, через которые будет запускаться приложение. Все бы хорошо, но список выводится в маленьком окне диалога, которое сделано немасштабируемым. В результате большие списки просматривать чрезвычайно неудобно. Мелочь, но неприятно.

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

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

На завершающем шаге необходимо указать тип создаваемого файла - исполняемый exe-файл или MSI-пакет. Если приложение будет создано в виде MSI-пакета, то перед первым использованием его потребуется установить компьютер. Такая установка автоматически зарегистрирует расширения файлов, связанные с приложением, создаст необходимые ярлыки на рабочем столе и в панели управления. Если же переносное приложение собрано в виде исполняемого файла, то все подобные операции придется при необходимости проводить вручную, с помощью утилиты thinreg.exe. Зато и никакой установки не потребуется.

Все готово к сборке портативной версии Thunderbird
Все готово к сборке портативной версии Thunderbird
По завершении работы ThinApp создаст... нет, не итоговый исполняемый файл. Для приложения будет создана отдельная директория, содержащая всю информацию, необходимую для сборки такого файла, - изменения, внесенные в реестр, изменения, внесенные в файловую систему и командный файл со скриптом. На этом шаге можно провести более тонкую настройку параметров. Например, задать режим изолирования отдельно для каждой директории. Или указать скрипт, который должен запускаться при запуске приложения. Или изменить режим работы со съемными дисками и сетевыми ресурсами (по умолчанию приложение работает с ними напрямую при любом изоляционном режиме). Все такие настройки придется проводить вручную, путем редактирования конфигурационных файлов в текстовом редакторе - графического интерфейса на этот случай не предусмотрено.

Запуск командного файла приводит к созданию exe- или msi-файла - переносная версия приложения создана.

Портативная версия Thunderbird, после запуска, создает множество вспомагательных директорий и файлов
Портативная версия Thunderbird, после запуска, создает множество вспомагательных директорий и файлов.
С точки зрения пользователя, запуск портативного приложения ничем не отличается от обычного - запускаешь исполняемый файл и работаешь. Основное отличие в том, что все данные, записываемые приложением в систему, на самом деле записываются в "песочницу". Если в качестве "песочницы" вы выбрали директорию, из которой вы запускаете приложения, то будьте готовы, что рядом с исполняемым файлом вашего приложения появится содержимое "песочницы" - многочисленные директории типа "%AppData%", "%Local AppData%", "%ProgramFilesDir%" и т. п. Кстати, если очистить "песочницу", то при следующем запуске приложение будет вести себя как "свежеустановленное".

Работа по сети

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

ThinApp содержит целый набор средств, обеспечивающих удобство организации подобной схемы работы. Во-первых, ThinApp поддерживает работу с Active Directory, позволяя задавать ограничения прав пользователей на запуск приложений. Во-вторых, ThinApp оптимизирует загрузку сетевых файлов таким образом, чтобы минимизировать объем передаваемой по сети информации. Если из 20-гигабайтного файла для работы требуется блок в 20 байт, то будет загружен именно блок 20 байт. В-третьих, в состав ThinApp входят утилиты Application Sync и Application Link, позволяющие, соответственно, автоматически обновлять приложения и сохранять разделяемые компоненты приложений, а также связанные между собой приложения в виде отдельных пакетов.

Следует отметить, что ThinApp не содержит специального инструментария для развертывания виртуальных приложений. Развертывание приложений проводится через MSI-файлы или с помощью скриптов. Также в ThinApp не предусмотрено никаких специальных средств управления лицензиями. Однако возможности организации взаимодействия между приложениям, предоставляемые Application Link, позволяют организовать собственную схему отслеживания количества задействованных лицензий.

Ограничение возможностей

В документации к ThinApp честно указано, что далеко не все приложения можно сделать виртуальными. По понятным причинам ThinApp не может виртуализировать приложения, требующие установки драйверов на уровне ядра, антивирусы, персональные файрволы, драйверы сканера и принтера. Некоторые типы приложений могут работать некорректно - приложения, требующие установки драйверов устройств, интегрирующиеся в Explorer, устанавливающие DCOM-сервисы или глобальные хуки. Например, если вы создадите портативную версию Adobe Acrobat, вы сможете с ее помощью открывать, редактировать и сохранять PDF-файлы, но не сможете пользоваться драйвером принтера в PDF.

Выводы

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

Следует отметить, что VMWare ThinApp - далеко не единственный программный продукт, позволяющий создавать переносимые версии приложений. Есть еще, как минимум, Xenocode Virtual Appliance Studio и LANDesk Application Virtualization, Microsoft Application Virtualization, Altiris Software Virtualization Solution, Novell ZENworks Application Virtualization (вот здесь сделана попытка сравнить возможности подобных продуктов). Кроме того, в сети имеются коллекции готовых переносных версий распространенных бесплатных приложений.



Статистика
Всего программ 26554
Скачиваний сегодня 424
Скачиваний вчера 878