miércoles, 20 de junio de 2007

Citrix Application Isolation Environments


Application Isolation Environments (AIE), es una tecnología orientada a la compatibilidad de aplicaciones en un entorno de Terminal Services.

Suele suceder que algunas aplicaciones publicadas compartan componentes (.DLLs por ejemplo) y recursos, y que por tal motivo entren en conflicto durante su instalación o ejecución, con AIE, este tipo de problema estaría solucionado.

AIE se encuentra integrado con la Management Console de Presentation Server 4.0 Enterprise Edition, permitiendo administrar este tipo de aplicaciones de manera centralizada.

¿Cómo trabaja un AIE?

Un AIE virtualiza específicamente aquellos recursos del sistema operativo que determinada aplicación requiera, generando una vista virtual de los mismos, mapeándolos a los recursos físicos.

Citrix Presentation Server crea una capa de aislamiento entre la aplicación y los recursos físicos, lo que permite flexibilidad y coordinación en la compartición de los recursos. Las solicitudes de recursos del sistema de aplicaciones son interceptadas, procesadas y puestas en capa por Presentation Server. De esta forma, si la aplicación requiere modificar alguna característica del recurso, lo podrá hacer en su propia copia virtual del recurso solicitado.

¿Qué se virtualiza?
  • File System: Los archivos y directorios que una aplicación utiliza, puede ser el origen de un conflicto entre aplicaciones. Este tipo de conflictos son generalmente causados debido a que dos o más aplicaciones, en especial las Legacy, no están diseñadas para ser utilizadas en ambientes multiusuario. Particularmente para este caso, AIE incluye un set de herramientas y reglas orientadas a la virtualización del File System que permite redireccionar, ignorar o aislar archivos, claves de registry, y objetos nombrados.
  • Registry: Las aplicaciones almacenan la información de configuración en registry. Las dos partes más importantes son: HKLM (para elementos relacionados al sistema), y HKCU (para elementos que se encuentran relacionados con el perfil del usuario). Aquellas aplicaciones de Terminal Services están diseñadas para usar estas secciones de registry correctamente. Sin embargo, aplicaciones monousuario, multiversión, o aplicaciones que simplemente no están preparadas para TS, pueden usar estas secciones de registry de manera incorrecta, lo cual puede resultar en conflictos o comportamientos no esperados.
  • Named Objects: Las aplicaciones Win32 puede crear objetos como eventos, semáforos, y memoria compartida, entre otros, los cuales son usados para comunicarse con otras aplicaciones. Cada objeto tiene su nombre visible en la sesión activa en Presentation Server. En este caso, un conflicto esperado es aquel en el cual dos aplicaciones utilizan referencias del mismo nombre hacia un objeto. Al utilizar Isolation Environments, estos intentos de acceso a objetos con el mismo nombre identificatorio son redireccionados al objeto virtual creado para tal aplicación, eliminando de esta manera, cualquier conflicto.
  • COM Objects: Las aplicaciones Win32 utilizan generalmente objetos COM en su diseño, o para integrarse con otras aplicaciones en la misma suite. Un claro ejemplo de esto son dos aplicaciones pertenecientes a la suite de Office.
Cuando es recomendable utilizar AIEs
  • No pueden ejecutarse multiples instancias de una aplicación.
  • No pueden instalarse diferentes versiones de la misma aplicación en un mismo servidor.
  • Las aplicaciones comparten de manera incorrecta recursos.
  • Las aplicaciones cuentan con paths o configuraciones "hardcodeadas".
  • La aplicación no se integra correctamente con Terminal Services.
  • Se desean reducir las pruebas de compatibilidad previas.
Situaciones en las cuales la utilización de AIEs no tiene efecto alguno
  • Dispositivos o Kernel Drivers.
  • Servicios de Windows.
  • Windows Class Names o Windows Names.
  • Aplicaciones que no se linkean con USER32.DLL.
  • DCOM.
  • Instaladores que requieren reiniciar el sistema durante el proceso de instalación.
Impacto de los AIEs en el sistema

Principalmente, en algunos casos suele presentarse un incremento en lo que respecta a la actividad de discos y registry, principalmente en lo que a espacio utilizado se refiere.

Es posible reducir este impacto, personalizando las reglas por defecto correspondientes a AIEs.

En lo que respecta a la interacción con el usuario, el impacto es imperceptible en la mayoría de los casos, ya que suelen notarse algunas diferencias debido a que las aplicaciones interactuan con el sistema utilizando como intermediaria una capa virtualizada.

Cualquier modificación al file system o registry se encuentra totalmente aislada, acotando toda actividad al propio entorno de la aplicación.

Instalación de aplicaciones en un AIE

Los pasos básicos para aislar una aplicacion son:

  1. 1. Identificar a través de diferentes pruebas, que la aplicación efectivamente presenta algún tipo de conflicto.
  2. 2. Verificar que AIE se encuentre habilitado en la granja. (Por defecto AIE se encuentra habilitado).
    1. 2.1. Acceder a las propiedades de la granja, y luego a Isolation Settings.
  3. 3. Crear un AIE.
    1. 3.1. En la consola Presentation Server, seleccionar el nodo Isolation Environments.
    2. 3.2. En el menú Actions, seleccionar New > Isolation Environment
  4. 4. Configurar las propiedades del AIE (en caso de ser necesario).
  5. 5. Aislar la aplicación publicada.
    1. 5.1. Seleccionar el nodo Isolation Environments.
    2. 5.2. En el tab Contents, seleccionar el AIE correspondiente.
    3. 5.3. En el menú Actions, seleccionar Properties.
    4. 5.4. En la página Applications, seleccionar Add.
Instalación de aplicaciones a través del comando AIESETUP

Ejecutar desde línea de comandos:

"AISETUP AIE_Name Setup_Application"

Esto llevará a cabo una instalación por defecto de la aplicación en el entorno aislado seleccionado.

Para mayor información sobre el comando AIESETUP: Metaframe Presentation Server Administrator's Guide. Pag 339"

Saludos.

Marcelo.

No hay comentarios.: