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

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

В этом контексте термин «виртуализация» относится к инкапсулируемому артефакту (приложению), что существенно отличается от его значения в аппаратная виртуализация, где он относится к абстрагируемому артефакту (физическому оборудованию).

Описание

Схема виртуализации приложений
Иллюстрация приложения, работающего в собственной среде и работающего в среде виртуализации приложений

Для полной виртуализации приложений требуется уровень виртуализации.[2] Уровни виртуализации приложений заменяют часть среда выполнения обычно предоставляется операционной системой. Уровень перехватывает все дисковые операции виртуализированных приложений и прозрачно перенаправляет их в виртуализированное место, часто в один файл.[3] Приложение не знает, что обращается к виртуальному ресурсу, а не к физическому. Поскольку приложение теперь работает с одним файлом, а не с множеством файлов, разбросанных по системе, становится проще запускать приложение на другом компьютере, а ранее несовместимые приложения можно запускать бок о бок. Примеры этой технологии для платформы Windows включают:

Преимущества

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

Виртуализация приложений снижает затраты на системную интеграцию и администрирование за счет поддержания общей базовой линии программного обеспечения на нескольких разных компьютерах в организации. Меньшая интеграция защищает операционную систему и другие приложения от плохо написанного или ошибочного кода. В некоторых случаях обеспечивает защиту памяти, IDE-стиль отладка функции и могут даже запускать приложения, которые написаны неправильно, например приложения, которые пытаются хранить пользовательские данные в доступном только для чтения месте, принадлежащем системе. (Эта функция помогает в реализации принцип наименьших привилегий убрав требование для конечных пользователей иметь административные привилегии для запуска плохо написанных приложений.) Это позволяет несовместимым приложениям работать бок о бок, в то же время[4] и с минимальным регрессионным тестированием друг против друга.[5] Изоляция приложений от операционной системы также имеет преимущества с точки зрения безопасности, поскольку раскрытие приложения автоматически влечет за собой раскрытие всей ОС.[4]

Виртуализация приложений также упрощает Операционная система миграции.[4] Приложения могут быть перенесены в съемные медиа или между компьютерами без необходимости их установки, становясь портативное программное обеспечение.[6]

Виртуализация приложений использует меньше ресурсов, чем отдельная виртуальная машина.

Ограничения

Не все компьютерные программы можно виртуализировать. Некоторые примеры включают приложения, требующие драйвер устройства (форма интеграции с ОС) и 16 бит приложения, которые должны работать в общей памяти.[7] Антивирусные программы и приложения, требующие тяжелой интеграции с ОС, такие как Оконные жалюзи или же StyleXP сложно виртуализировать.

Более того, при лицензировании программного обеспечения виртуализация приложений сопряжена с большими недостатками лицензирования, главным образом потому, что и программное обеспечение виртуализации приложений, и виртуализированные приложения должны быть правильно лицензированы.[8]

В то время как виртуализация приложений может адресовать файлы и Реестр -уровневые проблемы совместимости между устаревшими приложениями и новыми операционными системами, приложениями, которые не управляют куча правильно не будут выполняться в Windows Vista, поскольку они по-прежнему распределяют память одинаково, независимо от того, виртуализированы ли они.[9] По этой причине могут потребоваться специальные исправления совместимости приложений (прокладки), даже если приложение виртуализировано.[10]

Функциональные несоответствия в модели мультисовместимости являются дополнительным ограничением, когда точки доступа, управляемые коммунальными предприятиями, совместно используются в общедоступной сети. Эти ограничения преодолеваются путем назначения драйвера точки общего доступа на уровне системы.[11]

Связанные технологии

Категории технологий, которые подпадают под виртуализацию приложений, включают:

  • Потоковая передача приложений. Части кода, данных и настроек приложения доставляются тогда, когда они впервые необходимы, а не все приложение перед запуском. Для запуска упакованного приложения может потребоваться установка легкого клиентского приложения. Пакеты обычно доставляются по протоколу, например HTTP, CIFS или же RTSP.[4][нужна цитата ]
  • Службы удаленных рабочих столов (ранее называвшиеся службами терминалов) - это серверный компонент виртуализации вычислений / презентаций Microsoft Windows, который позволяет пользователю получать доступ к приложениям и данным, размещенным на удаленном компьютере, по сети. Сеансы служб удаленных рабочих столов выполняются в одной операционной системе с общим сервером (например, Windows Server 2008 R2 и позже) и доступны с помощью Протокол удаленного рабочего стола.
  • Виртуализация рабочего стола Программные технологии улучшают переносимость, управляемость и совместимость среды рабочего стола персонального компьютера за счет отделения части или всей среды рабочего стола и связанных приложений от физического клиентского устройства, которое используется для доступа к нему. Распространенной реализацией этого подхода является размещение нескольких экземпляров операционной системы для настольных ПК на аппаратной платформе сервера с гипервизором. Это обычно называется «инфраструктурой виртуальных рабочих столов» (VDI).

Смотрите также

Рекомендации

  1. ^ «Технический обзор виртуализации приложений Microsoft». microsoft.com. Microsoft. Получено 1 июля 2017.
  2. ^ Хусейн, Амир. «Как создать платформу виртуализации приложений». vdiworks.com. VDIworks. Получено 1 июля 2008.
  3. ^ Гурр, Коби (28 июля 2008 г.). «Содействие миграции на Microsoft Windows Vista с помощью виртуализации приложений» (PDF). dell.com. Dell.
  4. ^ а б c d Уинслоу, Филип; Семпл, Роберт; Мейнард, Джейсон; Симсон, Деннис; МакГрат, Брайан (26 ноября 2007 г.). «Виртуализация настольных ПК достигает зрелости» (PDF). Credit Suisse. Архивировано из оригинал (PDF) 17 января 2010 г.. Получено 3 марта 2008.
  5. ^ «Обзорная серия: Совместимость приложений Windows Vista». TechNet. Microsoft. Получено 1 июля 2017.
  6. ^ Пернар, Домагой (31 октября 2009 г.). "Репозиторий загрузки приложений виртуализации и как сделать приложения переносимыми". TechyCentral.com. Архивировано из оригинал 24 февраля 2011 г.
  7. ^ Вархол, Питер (1 сентября 2007 г.). «Виртуализация приложений достигает своего апогея». Redmond Magazine. 1105 Медиа. В архиве из оригинала 10 июня 2008 г.
  8. ^ Соммер, Тим (июнь 2012 г.). «200 основных терминов SAM - глоссарий терминов по управлению программными активами». omtco.eu. ОМТКО. Получено 20 мая 2013.
  9. ^ Маринеску, Адриан (3 августа 2006 г.). «Улучшения управления кучей в Windows Vista» (PDF). blackhat.com. Microsoft.
  10. ^ Джексон, Крис (30 апреля 2008 г.). «Можете ли вы объединить приложения, виртуализированные в SoftGrid?». Microsoft.
  11. ^ Энцлер, Р. (2003). «Виртуализация оборудования с помощью многоконтекстных реконфигурируемых массивов». Международная конференция по программируемой логике и приложениям.