Портативные приложения
Что нужно для создания портативной версии приложения
Готовые портативные версии приложений
Сегодня виртуализация стала одной из самых модных тем, которые обсуждаются в публикациях, посвященных корпоративным продуктам. Решения с ее применением или поддержкой предлагают все производители корпоративного ПО, и, похоже, в последнее время сложилось мнение, что технологии виртуализации предназначены в первую очередь для корпоративного сектора или, на худой конец, для программистов-одиночек, тестирующих свои разработки на разных платформах. Тем не менее подобное мнение, на формирование которого повлияла главным образом маркетинговая активность таких компаний, как Microsoft, VMware и Citrix, является в достаточной степени ошибочным. Об одной из категорий скорее персональных, нежели корпоративных решений на основе технологий виртуализации и пойдет речь в данной статье.
О приложениях «по требованию»
Решение Citrix XenApp, известное ранее как Presentation Server (речь в статье пойдет, впрочем, вовсе не о нем), включает сегодня не только всем известные средства удаленного доступа к рабочему столу, но (с недавнего времени) и доставку клиентских Windows-приложений на рабочие станции. При этом одним из важных преимуществ подобной доставки является то, что применение поступивших с помощью XenApp Windows-приложений не требует ни их установки, ни внесения изменений в конфигурацию операционной системы и реестра — приложение просто доставляется по сети с корпоративного сервера Citrix XenApp и запускается на рабочей станции. Одной из самых популярных демонстраций этой технологии является доставка какого-либо приложения семейства Microsoft Office 2007 на компьютер, оснащенный предыдущей версией Office, и одновременное выполнение обеих версий указанного приложения, несмотря на, казалось бы, невозможность их мирного сосуществования на одном компьютере. Секрет подобной технологии заключается в том, что доставленное приложение выполняется в изолированной области оперативной памяти, в которой воспроизводится необходимая для выполнения часть операционной системы, включая файлы самого приложения, реестр с требуемыми изменениями, — то есть фактически в минимально необходимой для его работы виртуальной машине.
В чем может состоять дальнейшее развитие этой, казалось бы, сугубо корпоративной идеи и перенос ее в область персональных решений? Ответ достаточно очевиден: во-первых, в превращении доставленных данных в набор отчуждаемых файлов, которые можно носить с собой на каком-либо переносном устройстве типа флэш-карты или жесткого диска и выполнять на произвольных компьютерах (то есть в создании портативной версии доставляемого приложения), возможно, под управлением учетной записи с ограниченными правами; во-вторых, в производстве подобных портативных версий приложений без применения дорогостоящих корпоративных решений. Собственно, о реализациях этой идеи и пойдет речь в данной статье.
Что нужно для создания портативной версии приложения
Значительная часть Windows-приложений требует для своей работы наличия определенных записей в реестре и файлов в системных каталогах и в каталоге Program Files (собственно, именно их и создают инсталляционные приложения). Подобные изменения не всегда желательны для уже установленных приложений, и вносить их в операционную систему пользователь с ограниченными правами не сможет. Поэтому все эти данные должны находиться в виртуальном адресном пространстве, в котором будет выполняться наше будущее портативное приложение, и не затрагивать реальный реестр и реальную файловую систему.
Основной принцип работы инструментов, создающих портативные приложения, заключается в выявлении необходимых изменений реестра и файловой системы для работы исходного приложения и в создании на их основе новой версии исполняемого файла, представляющей собой, по существу, виртуальную машину, содержащую исходное приложение, нужные для его работы файлы и виртуальный реестр. Как правило, с этой целью средство создания портативных приложений должно сначала проанализировать «чистую», только что установленную версию операционной системы, с которой должно быть совместимо приложение, портативную версию которого мы хотим создать, а затем — ту же операционную систему, но уже с установленной версией приложения (часто для решения этой задачи используют какое-либо средство создания виртуальных машин).
Из инструментов, позволяющих создать портативные версии приложений, в первую очередь отметим Thinstall Virtualization Suite, с января текущего года принадлежащий компании VMware (www.vmware.com).
Основная идея функционирования приложений, созданных с применением данного продукта, — создание минимальной виртуальной машины, настройки которой во время выполнения объединяются с настройками реальной ОС. Виртуальная ОС содержит виртуальный реестр и виртуальную файловую систему, из которой при запуске виртуальной ОС загружается стартовый исполняемый файл и (при необходимости) используемые им динамически загружаемые библиотеки. Она же отвечает за управление процессами и потоками внутри виртуальной машины.
Компания VMware позиционирует Thinstall Virtualization Suite в первую очередь как средство, позволяющее облегчить доставку и развертывание приложений в корпоративных сетях. Тем не менее этот инструмент применяется и как средство создания портативных приложений, предназначенных для индивидуальных пользователей (что, собственно, и являлось основным назначением продукта до его приобретения компанией VMware).
Продукт весьма прост в использовании. Создание портативной версии приложения состоит из трех шагов: сканирования операционной системы до установки этого приложения, собственно установки приложения и сканирования операционной системы после установки приложения, после чего создается портативная версия установленного приложения. Подробности всех шагов и особенности применения продукта для различных случаев подробно описаны в справочной системе продукта.
Приложение Thinstall Setup Capture для создания
портативных приложений
Еще один продукт, позволяющий создавать портативные приложения (точнее, портативный набор приложений и данных вместе с окружением, размещаемый на переносном носителе — флэш-диске, iPod, мобильном телефоне), носит название MojoPack и создан компанией RingCube Technologies. Работа данного продукта основана на тех же принципах, что и работа других портативных приложений: приложения выполняются внутри виртуальной машины, содержащей все необходимые данные и настройки и сохраняющей их на переносном носителе, при этом никаких данных на хост-компьютере не остается. Подробности об этом продукте можно прочесть на сайте www.mojopack.com.
Отметим, что не все приложения могут быть превращены в портативные версии. Так, невозможно создать портативную версию приложения, которое применяет предварительно установленные системные драйверы, приложения, использующие DCOM, а также ряд других категорий приложений. К счастью, таких приложений отнюдь не большинство.
Готовые портативные версии приложений
Прежде чем приступить к созданию портативной версии приложения, стоит выяснить, существует ли она в готовом виде: сегодня можно найти большое количество готовых портативных версий самых разных приложений, созданных с помощью описанных выше технологий либо изначально написанных так, чтобы не затрагивать реестр и системные файлы.
Одним из ресурсов, содержащих большую коллекцию свободно распространяемого портативного ПО (более 1200 наименований), является сайт http://www.portablefreeware.com. На нем можно найти портативное ПО практически всех категорий, включая офисные приложения, различные утилиты, игры, инструменты для работы с графикой и звуком, средства разработки приложений, отладчики, инсталляторы и многое другое.
Комплект портативных приложений
Portableapps.com
Еще одним ресурсом, предлагающим внушительную коллекцию готовых к применению портативных приложений (в основном офисных приложений и утилит), является сайт http://portableapps.com. На нем также можно найти готовую версию полного портативного офисного набора, основанного на приложениях OpenOffice.org и включающего веб-браузер, почтовый клиент, календарь, клиент для мгновенного обмена сообщениями, антивирус, утилиту резервного копирования и даже интегрированное меню для управления всеми перечисленными приложениями.
Портативные приложения и утилиту, предоставляющую меню для их запуска, можно также найти на сайте http://winpenpack.com.
Основное назначение подобных комплектов приложений — сформировать на переносном носителе (например, на флэш-карте) собственное рабочее пространство со всеми необходимыми настройками и данными (документами, контактами и пр.) и пользоваться этим носителем на любом компьютере.
Комплект портативных приложений
winPenPack
Некоторое количество портативных приложений можно также найти на сайтах http://portablebox.net/ и http://www.towsoft.net/portable-soft/. Кроме того, имеется и некоторое количество русскоязычных ресурсов, содержащих портативные приложения (например, http://ru-admin.net/soft/portable).
***
Применение портативных приложений — это весьма удобный способ организации работы для самых разных типов потребителей. Корпоративные пользователи могут использовать эти технологии для создания виртуального окружения, которое можно переносить из одного офиса в другой или из офиса домой, студенты — для работы в компьютерных классах общего пользования, геймеры — для запуска игровых приложений на компьютерах, установка игр на которые нежелательна. Во многих случаях портативные приложения могут избавить нас от необходимости носить с собой ноутбуки. Учитывая, что мощности современных компьютеров более чем достаточно для запуска поддерживающих такие приложения виртуальных машин, а емкости переносных мобильных устройств более чем достаточно для их хранения, следует полагать, что эти технологии будут в ближайшее время активно развиваться и применяться самыми разными категориями пользователей.