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

Средства виртуализации приложений, называемой также изоляцией (isolation), «помещением в песочницу» (sandboxing) и «разделением на потоки» (streaming), — довольно новая разновидность ПО. Идея здесь заключается в создании некой оболочки, или прослойки, которая будет отделять прикладные программы, выполняемые под управлением операционной системы, друг от друга и от самой ОС. Поэтому термин «виртуализация приложений» в действительности не вполне корректен: виртуализируются не сами программы, а среда их работы, — соответственно ПО, обеспечивающее изоляцию, можно рассматривать как урезанный вариант системы виртуальных машин. Наиболее известные продукты такого рода предназначены для клиентских компьютеров с Windows, хотя существуют и разработки для Unix/Linux.
Какие задачи решает подобная виртуализация? В первую очередь виртуализация приложений нужна для предотвращения конфликтов ПО: представим себе, например, что на машине должны сосуществовать две программы, требующие двух разных версий одной и той же DLL­библиотеки, или две последовательные версии одной и той же программы для работы с разными форматами документов. Далеко не все приложения хорошо «ладят сами с собой» — скажем, Microsoft Office в норме может быть установлен только в единственном числе. Если же изолировать информацию, относящуюся к каждой программе (DLL, ключи реестра, вспомогательные файлы), почва для конфликтов исчезнет. Системный администратор сможет намного свободнее экспериментировать с установкой нового ПО и абсолютно чисто удалять старое, ставшее ненужным, так что задача обслуживания клиентских рабочих мест упростится.

Три подхода к виртуализации

Однако, сам механизм виртуализации может быть различным. Наши коллеги из американского Intelligent Enterprise проанализировали три продукта — Microsoft (ранее Softricity) SoftGrid Universal Desktop, Altiris SVS (Software Virtualization Solution, компания Altiris приобретена корпорацией Symantec, но это очень недавняя сделка, и названия продуктов пока не менялись и Thinstall Embedded — каждый из которых использует свой подход к решению задачи виртуализации приложений. В Altiris SVS и Microsoft SoftGrid виртуализационная прослойка представляет собой небольшую самостоятельную клиентскую программу, а в Thinstall Embedded это модуль, который встраивается в каждое изолируемое приложение.

Клиент Altiris SVS содержит драйвер файловой системы и реестра, перенаправляющий запросы к ним от виртуализированного приложения на назначенную ему область хранения файлов и копию реестра. При установке программы администратор сначала посылает к SVS запрос на создание нового уровня, а затем устанавливает на этот уровень программу. В отличие от клиента SoftGrid и виртуализационного модуля Thinstall, которые делают приложения невидимыми извне (файлы не отображаются в Windows Explorer), SVS оставляет их видимыми, из­за чего невозможно параллельно запустить несколько версий одной программы, а кроме того, существует опасность вирусной или хакерской атаки. С другой стороны, это позволяет использовать штатные средства администрирования Windows для возвращения системы в предыдущее состояние, восстановления удаленных программ и файлов. SVS, по данным Altiris, совместима со всеми существующими средствами централизованной установки ПО.

Работа SoftGrid построена по­другому и опирается на использование Microsoft Active Directory и Internet Information Services — эти продукты должны присутствовать в инфраструктуре компании. Клиент программы связывается с сервером виртуальных приложений, проверяет, на работу с каким ПО есть права у данного пользователя, после чего соответствующие значки появляются на его рабочем столе. Если приложение, запрошенное пользователем, установлено на рабочей станции, оно запускается локально, если нет — необходимые файлы скачиваются с сервера. Программы, параллельно работающие в виртуальной среде SoftGrid, невидимы друг для друга и вполне могут быть разными версиями одного продукта (что не допускается в SVS). Помимо виртуализации SoftGrid позволяет отслеживать лицензии и строить соответствующую отчетность.

В Thinstall Embedded все файлы и ключи реестра, относящиеся к виртуализируемому приложению, объединяются в один исполняемый файл (с возможностями сжатия и шифрования), который распаковывается при запуске и «собирается» назад после окончания работы. Установка приложения при этом сводится просто к его копированию на нужный компьютер; возможен и дистанционный его запуск по сети. Программа отлично работает, однако нарушает определенные требования безопасности — например, способна создавать временные файлы в областях, на которые у пользователя нет прав. Впрочем, главный ее недостаток — возможность самовольной установки пользователями ПО (в том числе и пиратского) — компенсируется встроенным механизмом контроля лицензий, позволяющим администратору связывать ПО с аппаратными характеристиками (такими, как MAC­адрес).

Так что как видите, плюсы и минусы у каждой технологии свои и выбор между ними — не такой простое дело. Интересно отметить, что и цена продуктов тоже очень разная: для Altiris SVS — 29 долл. за рабочее место (а для домашнего использования программа бесплатна), для SoftGrid — уже 200 долл. за пользователя/устройство и 5 тыс. долл. за безлимитную серверную лицензию, для Thinstall Embedded — уже 5 тыс. долл. за каждое виртуализируемое приложение.

Виртуализация и терминальные системы

Применительно к терминалу выражение «виртуализация» обычно не употребляется. Однако, это связано, во­первых, с чисто историческими причинами — чтобы так говорить, нужно было бы принять за точку отсчета ПК, а терминалы появились значительно раньше. И во­вторых — с тем, что в эпоху мейнфреймов терминалы и виртуальные машины применялись столь масштабно, что практически не отделялись друг от друга. Это не случайно, ведь если посмотреть на задачу организации терминального доступа с точки зрения современного пользователя ПК, то ее можно трактовать как создание виртуальной рабочей среды из нескольких приложений в условиях недостатка ресурсов машины.

Систему терминального доступа Citrix вполне можно было бы назвать «виртуализированным ПК» — или, точнее, «виртуализированной системой Windows». Действительно, сегодня пользователи боятся пересесть с ПК за обычный терминал, но соглашаются работать в среде Citrix, не видя здесь никаких отличий от привычной Windows­среды, — это ли не доказательство успешной виртуализации?

Интересно, однако, что Citrix развивает и систему виртуализации ПО в собственном смысле слова: в феврале этого года компания выпустила новую версию своего продукта Presentation Server со встроенной технологией Tarpon для потоковой доставки приложений на клиентский компьютер. Технология призвана решить проблему неустойчивой связи: как ни хорош терминал, он требует постоянно активного, пусть и на небольшой скорости, соединения, а это серьезное ограничение. Tarpon позволяет обойтись сеансовым — правда, широкополосным — доступом, сервер сам определяет, какой механизм доставки приложений более эффективен для данного пользователя, приложения, устройства и канала связи. «Вам нужно быть на связи периодически, а не непрерывно, — комментирует аналитик из исследовательской фирмы Yankee Group Сьюз Керравала. — Со всеми теми методами доступа, которые есть у них [Citrix] сейчас, пользователи получают на выбор широкий спектр технологий». «Какова бы ни была политика, вы можете решить, пользоваться ли терминальными службами или брать исполняемые файлы, выкачивать такие файлы, размещать в изолированном окружении и получать доступ к приложению независимо от того, на связи вы или нет», — объяснил Скотт Хиррен, генеральный менеджер группы по системам виртуализации Citrix.