La virtualización de aplicaciones es una tecnología de software que encapsula programas informáticos del sistema operativo subyacente en el que se ejecutan. Una aplicación totalmente virtualizada no se instala en el sentido tradicional, [1] aunque todavía se ejecuta como si lo estuviera. Las aplicaciones en tiempo de ejecución se comporta igual que una operación de interfaz directamente con el sistema operativo original y todos los recursos gestionados por ella, pero pueden ser aislados o sandboxed en diversos grados.
En este contexto, el término "virtualización" se refiere al artefacto que se está encapsulando (aplicación), que es bastante diferente de su significado en la virtualización de hardware , donde se refiere al artefacto que se está abstrayendo (hardware físico).
Descripción
La virtualización de aplicaciones completa requiere una capa de virtualización. [2] Las capas de virtualización de aplicaciones reemplazan parte del entorno de ejecución que normalmente proporciona el sistema operativo. La capa intercepta todas las operaciones de disco de las aplicaciones virtualizadas y las redirige de forma transparente a una ubicación virtualizada, a menudo un solo archivo. [3] La aplicación ignora que accede a un recurso virtual en lugar de uno físico. Dado que la aplicación ahora funciona con un archivo en lugar de muchos archivos repartidos por todo el sistema, es fácil ejecutar la aplicación en una computadora diferente y las aplicaciones previamente incompatibles se pueden ejecutar una al lado de la otra. Ejemplos de esta tecnología para la plataforma Windows incluyen:
Beneficios
La virtualización de aplicaciones permite que las aplicaciones se ejecuten en entornos que no se adaptan a la aplicación nativa. Por ejemplo, Wine permite que algunas aplicaciones de Microsoft Windows se ejecuten en Linux .
La virtualización de aplicaciones reduce los costos de administración e integración del sistema al mantener una línea de base de software común en varios equipos diversos de una organización. La menor integración protege el sistema operativo y otras aplicaciones de un código mal escrito o con errores. En algunos casos, proporciona protección de memoria, funciones de depuración de estilo IDE e incluso puede ejecutar aplicaciones que no están escritas correctamente, por ejemplo, aplicaciones que intentan almacenar datos de usuario en una ubicación de propiedad del sistema de solo lectura. (Esta función ayuda en la implementación del principio de privilegio mínimo al eliminar el requisito de que los usuarios finales tengan privilegios administrativos para ejecutar aplicaciones mal escritas). Permite que las aplicaciones incompatibles se ejecuten una al lado de la otra, al mismo tiempo [4 ] y con pruebas de regresión mínimas entre sí. [5] Aislar aplicaciones del sistema operativo también tiene beneficios de seguridad, ya que la exposición de la aplicación implica automáticamente la exposición de todo el sistema operativo. [4]
La virtualización de aplicaciones también permite migraciones simplificadas del sistema operativo . [4] Las aplicaciones se pueden transferir a medios extraíbles o entre computadoras sin necesidad de instalarlas, convirtiéndose en software portátil . [6]
La virtualización de aplicaciones usa menos recursos que una máquina virtual separada .
Limitaciones
No todos los programas de computadora se pueden virtualizar. Algunos ejemplos incluyen aplicaciones que requieren un controlador de dispositivo (una forma de integración con el sistema operativo) y aplicaciones de 16 bits que deben ejecutarse en un espacio de memoria compartida. [7] Los programas y aplicaciones antivirus que requieren una gran integración del sistema operativo, como WindowBlinds o StyleXP, son difíciles de virtualizar.
Además, en la concesión de licencias de software, la virtualización de aplicaciones conlleva grandes problemas de concesión de licencias, principalmente porque tanto el software de virtualización de aplicaciones como las aplicaciones virtualizadas deben tener la licencia correcta. [8]
Si bien la virtualización de aplicaciones puede solucionar problemas de compatibilidad de archivos y de nivel de registro entre aplicaciones heredadas y sistemas operativos más nuevos, las aplicaciones que no administran el montón correctamente no se ejecutarán en Windows Vista, ya que aún asignan memoria de la misma manera, independientemente de si lo están virtualizado. [9] Por esta razón, es posible que aún se necesiten correcciones de compatibilidad de aplicaciones especializadas (shims), incluso si la aplicación está virtualizada. [10]
Las discrepancias funcionales dentro del modelo de multicompatibilidad son una limitación adicional, donde los puntos de acceso impulsados por servicios públicos se comparten dentro de una red pública. Estas limitaciones se superan mediante la designación de un controlador de punto compartido a nivel del sistema. [11]
Tecnologías relacionadas
Las categorías de tecnología que se incluyen en la virtualización de aplicaciones incluyen:
- Transmisión de aplicaciones . Las partes del código, los datos y la configuración de la aplicación se entregan cuando se necesitan por primera vez, en lugar de entregar toda la aplicación antes del inicio. La ejecución de la aplicación empaquetada puede requerir la instalación de una aplicación cliente ligera. Los paquetes generalmente se entregan a través de un protocolo como HTTP, CIFS o RTSP . [4] [ cita requerida ]
- Los servicios de escritorio remoto (anteriormente llamados Terminal Services) son un componente de virtualización de presentación / computación basado en servidor de Microsoft Windows que permite al usuario acceder a aplicaciones y datos alojados en una computadora remota a través de una red. Las sesiones de Servicios de escritorio remoto se ejecutan en un único sistema operativo de servidor compartido (por ejemplo, Windows Server 2008 R2 y posterior) y se accede a ellas mediante el Protocolo de escritorio remoto .
- Las tecnologías de software de virtualización de escritorio mejoran la portabilidad, la capacidad de administración y la compatibilidad del entorno de escritorio de una computadora personal al separar parte o todo el entorno de escritorio y las aplicaciones asociadas del dispositivo cliente físico que se utiliza para acceder a él. Una implementación común de este enfoque es alojar múltiples instancias del sistema operativo de escritorio en una plataforma de hardware de servidor que ejecuta un hipervisor. Esto se conoce generalmente como "infraestructura de escritorio virtual" (VDI).
Ver también
- Virtualización del espacio de trabajo
- Virtualización a nivel de sistema operativo ("contenedorización")
- Creadores de aplicaciones portátiles
- Comparación de máquinas virtuales de aplicaciones
- Calce (informática)
- Aplicación virtual
Referencias
- ^ "Descripción técnica de virtualización de aplicaciones de Microsoft" . microsoft.com . Microsoft . Consultado el 1 de julio de 2017 .
- ^ Husain, Amir. "Cómo construir un marco de virtualización de aplicaciones" . vdiworks.com . VDIworks . Consultado el 1 de julio de 2008 .
- ^ Gurr, Coby (28 de julio de 2008). "Facilitar la migración de Microsoft Windows Vista a través de la virtualización de aplicaciones" (PDF) . dell.com . Dell .
- ^ a b c d Winslow, Philip; Semple, Robert; Maynard, Jason; Simson, Dennis; McGrath, Bryan (26 de noviembre de 2007). "La virtualización de escritorio llega a la mayoría de edad" (PDF) . Credit Suisse . Archivado desde el original (PDF) el 17 de enero de 2010 . Consultado el 3 de marzo de 2008 .
- ^ "Resumen de la serie: compatibilidad de aplicaciones de Windows Vista" . TechNet . Microsoft . Consultado el 1 de julio de 2017 .
- ^ Pernar, Domagoj (31 de octubre de 2009). "Repositorio de descargas de virtualización de aplicaciones y cómo hacer que las aplicaciones sean portátiles" . TechyCentral.com . Archivado desde el original el 24 de febrero de 2011.
- ^ Varhol, Peter (1 de septiembre de 2007). "La virtualización de aplicaciones da un gran paso" . Revista Redmond . 1105 Media. Archivado desde el original el 10 de junio de 2008.
- ^ Sommer, Tim (junio de 2012). "Los 200 términos principales de SAM: un glosario de términos de gestión de activos de software" . omtco.eu . OMTCO . Consultado el 20 de mayo de 2013 .
- ^ Marinescu, Adrian (3 de agosto de 2006). "Mejoras en la administración del montón de Windows Vista" (PDF) . blackhat.com . Microsoft .
- ^ Jackson, Chris (30 de abril de 2008). "¿Puede ajustar aplicaciones virtualizadas en SoftGrid?" . Microsoft .
- ^ Enzler, R (2003). "Virtualización de hardware con arrays reconfigurables multicontexto". Conferencia internacional sobre aplicaciones y lógica programable en campo .