Integrar con aplicaciones Citrix en Unified Service Desk

Nota

Ya no se admite el hospedaje de aplicaciones Citrix en Unified Service Desk.

Integre sus aplicaciones Citrix con Unified Service Desk hospedándolas en Unified Service Desk. Esto permite que los agentes de servicio al cliente interactúen con las aplicaciones Citrix dentro del cliente de Unified Service Desk mientras trabajan en los datos de clientes en Microsoft Dataverse. Puede configurar una aplicación de Windows como aplicación virtual en Citrix XenApp 7.6 que se ejecuta como aplicación hospedada en Unified Service Desk. Más información: Requisitos de software de la virtualización de aplicaciones Citrix XenApp

La aplicación Citrix hospedada en el cliente de Unified Service Desk usa el protocolo Independent Computing Architecture (ICA) para comunicarse de forma remota con la aplicación en un servidor de Citrix. Un archivo .ica de Citrix contiene información para conectarse al servidor remoto, como la dirección del servidor, las propiedades de sesión, y la información de autenticación.

Para obtener más información acerca de la integración de con Unified Service Desk Citrix, consulte Blog: Citrix y Unified Service Desk

En este tema se proporciona información acerca de la configuración de los componentes del lado del servidor y del cliente para integrar Unified Service Desk con aplicaciones Citrix, adaptadores Citrix de ejemplo, y prácticas recomendadas.

Configurar el componente del lado del servidor para integración Citrix

El componente del lado del servidor se implementa como un ejecutable (Microsoft.Uii.Csr.CitrixIntegration.exe) configurado como programa de inicio para iniciarse automáticamente cuando se inicia una aplicación Citrix. El ejecutable se termina pronto si la aplicación Citrix no se ha invocado desde un cliente de Unified Service Desk. El componente de lado del servidor debe configurarse en cada servidor de Citrix.

  1. Descargar el paquete SDK de User Interface Integration (UII).

  2. Para extraer el contenido, haga doble clic en el archivo del paquete.

  3. Navegue a la carpeta <ExtractedFolder>\UII\Bin\UII\Citrix Server Component y después copie todo los archivos de la carpeta a una carpeta (por ejemplo, ServerSideComponent) en el servidor de Citrix.

  4. En la carpeta ServerSideComponent en el servidor de Citrix, edite el archivo RegPatch Install StartupPrograms on Citrix Server.reg mediante el Bloc de notas para establecer el valor del parámetro "StartupPrograms" como la ruta de acceso completa del archivo ejecutable Microsoft.Uii.Csr.CitrixIntegration.exe.

  5. Aplica la revisión del registro en el servidor de Citrix ejecutando el archivo RegPatch Install StartupPrograms on Citrix Server.reg. Esta revisión de registro designa un ejecutable como programa de inicio que se lanzará junto a una aplicación de Citrix.

Configurar el componente del lado del cliente para integración Citrix

La configuración del lado del cliente para la integración Citrix implica dos cosas:

  • Configure una instancia de aplicación hospedada UII (Remote Hosted Application) en su instancia Dataverse que puede usarse directamente sin código personalizado, o puede ser extendida si es necesario. Las acciones desencadenadas en las instancias de aplicación hospedada UII se transmiten al componente del lado del servidor usando un archivo .ica, donde se envía a los adaptadores de aplicación configurados, si los hay. Para obtener más información sobre las aplicaciones hospedadas UII, consulte Aplicaciones hospedadas UII

  • Copie el ejecutable de la aplicación Citrix y otros ensamblados necesarios en el directorio de instalación del cliente de Unified Service Desk, aplique la revisión del registro del lado del cliente, y agregue configuración específica de Citrix en el archivo de configuración de la aplicación cliente de Unified Service Desk. Este paso debe realizarse en cada equipo donde la aplicación cliente de Unified Service Desk está instalada.

Configurar una aplicación hospedada remota

  1. Inicie sesión en el Administrador de Unified Service Desk.

  2. Seleccione Controles hospedados en Configuración básica.

  3. Seleccione + Nuevo.

  4. Especifique lo siguiente en la pestaña General de la página Nuevo control hospedado.

    Campo valor
    Name Aplicación de Citrix

    Especifique un nombre para el control hospedado. Cada aplicación hospedada debe tener un nombre único.
    Sort 5
    Nota: Este es un valor de ejemplo.

    El criterio de ordenación especifica el orden en que las aplicaciones hospedadas se recuperan y muestran en Unified Service Desk.
    Tipo de componente de Unified Service Desk Aplicación hospedada de CCA
    Tipo de aplicación hospedada Aplicación hospedada remota
    Aplicación global Seleccione la casilla.
    Grupo de presentación MainPanel
    Adaptador No usar adaptador
    • No usar adaptador: especifica que la aplicación hospedada no requiera ninguna automatización.
    • Usar adaptador de automatización (HAT): especifica la configuración predeterminada que se usará para el kit de herramientas de aplicación hospedada (HAT). Si la aplicación hospedada usa un adaptador de automatización (HAT), especifique la información de enlace de la aplicación hospedada en el campo XML de automatización en el área Automatización. Para obtener más información sobre enlaces, consulte Usar el inspector de UII para crear enlaces para la aplicación hospedada.
    • Usar adaptador: especifica que la aplicación hospedada usa un adaptador personalizado.
    Para obtener información acerca del uso de adaptadores para la integración de Citrix, consulte Adaptadores Citrix de ejemplo
    La aplicación es Dynamics
    El usuario puede cerrar Seleccione la casilla.
  5. Seleccione la pestaña Hospedaje y especifique lo siguiente.

    Campo Valor
    Modo de ventana de nivel superior Ninguno
    URI de ensamblado Microsoft.Uii.Csr.CitrixIntegration
    Tipo de ensamblado Microsoft.Uii.Csr.CitrixIntegration.CitrixApplicationHostedControl
    Nombre de archivo ICA C:\Q29udHJvbGxlci5DYWxjdWxhdG9y.ica
    Escriba la ruta de acceso completa al archivo .ica requerido para el lanzamiento de la aplicación Citrix. Un archivo .ica contiene información para conectarse al servidor remoto, como la dirección del servidor, las propiedades de sesión, y la información de autenticación.
    Procesar intentos de adquisición 5
    Especifique el número de veces que el archivo ejecutable del lado del servidor debe examinar la tabla de proceso para buscar el proceso que ejecuta la aplicación Citrix lanzada. El proceso de aplicación Citrix puede llevar un tiempo en aparecer en la tabla de procesos.
    Procesar retraso de adquisición 5000
    Especifique el retraso en milisegundos entre cada exploración de tabla de procesos.
    Procesar nombre de archivo de adquisición Especifique la ruta de acceso completa al nombre de archivo de la aplicación Citrix. Este valor es usado por el archivo ejecutable del lado del servidor para compararlo con los nombres de archivo de los procesos en ejecución para buscar una coincidencia.
  6. Guarde el control hospedado.

Nota

Citrix genera el archivo ICA sobre la marcha mediante el portal de la aplicación Citrix. Sin embargo, la implementación predefinida en Unified Service Desk no admite el archivo ICA generado sobre la marcha.

Copie el ejecutable, aplique la revisión del Registro, y agregue valores de configuración de Citrix

Este paso debe realizarse en cada equipo donde la aplicación cliente de Unified Service Desk está instalada.

  1. Navegue a la carpeta <ExtractedFolder>\UII\Bin\UII\Citrix Server Component donde E<ExtractedFolder> es la carpeta donde extrajo el archivo de paquete UII SDK descargado en la sección Configurar el componente del lado del servidor para integración de Citrix anterior.

  2. Copie los siguientes archivos de la carpeta <ExtractedFolder>\UII\Bin\UII\Citrix Server Component a la carpeta del cliente Unified Service Desk (normalmente C:\Program Files\Microsoft Dynamics CRM USD\USD):

    • Microsoft.Uii.Csr.CitrixIntegration.exe

    • AxWFICALib.dll

    • WFICALib.dll

  3. Aplique la revisión del Registro en el equipo cliente Unified Service Desk para habilitar el uso de canales virtuales personalizados ejecutando los siguientes archivos disponibles en la carpeta <ExtractedFolder>\UII\Bin\UII\Citrix Server Component:

    • Para el cliente x86: RegPatch Allow Custom Virtual Channels en ICAClient.reg

    • Para el cliente x64: RegPatch Allow Custom Virtual Channels en ICAClient x64 Client.reg

    Nota

    Si no se aplica esta revisión del Registro, la comunicación entre el cliente y el servidor no será posible.

  4. Agregue los siguientes valores de la aplicación en el archivo UnifiedServiceDesk.exe.config disponible en el directorio de instalación de cliente Unified Service Desk. Esta configuración de la aplicación se debe agregar bajo el nodo <configuration> raíz:

    <appSettings>
        <add key="CitrixIntegration.VirtualChannelNamePrefix" value="CTXUII"/>
        <add key="CitrixIntegration.XmitFragmentSize" value="200"/>
        <add key="CitrixIntegration.RecvTimeoutInMilliseconds" value="2000"/>
        <add key="CitrixIntegration.HeartbeatMaxWaitInMilliseconds" value="60000"/>
        <add key="CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds" value="15000"/>
    </appSettings>
    

    Nota

    Esta configuración de aplicación también está disponible en el componente del lado del servidor en el archivo Microsoft.Uii.Csr.CitrixIntegration.exe.config.

    A continuación encontrará una descripción de cada clave:

    Clave Descripción
    CitrixIntegration.VirtualChannelNamePrefix Para cada aplicación Citrix lanzada, dos canales virtuales con nombres diferenciados se crean compartiendo un prefijo común. Este valor expone el prefijo a personalización, aunque normalmente no será necesario. Este valor debe ser idéntico en el lado del cliente y del servidor.
    CitrixIntegration.XmitFragmentSize Las transmisiones de canal virtual se fragmentan hasta el límite especificado aquí. La clave se limitará internamente si supera los límites internos (la mensajería de seguimiento debe informar cuando esto suceda). Esta configuración puede variar entre el lado del cliente y el del servidor.
    CitrixIntegration.RecvTimeoutInMilliseconds Como ocurre con toda la comunicación de la red, los tiempos de espera son necesarios para ayudar a decidir cuándo el par de comunicación no está disponible. La comunicación de integración de Citrix está orientada a solicitud/respuesta, y este valor especifica cuánto tiempo se tarda en devolver la respuesta antes de que el sistema deje de esperar la respuesta. Esta configuración puede ser diferente entre el lado del cliente y el del servidor.
    CitrixIntegration.HeartbeatMaxWaitInMilliseconds Cualquier actividad de comunicación del canal virtual se cuenta como un "latido". Esta configuración especifica la cantidad máxima de tiempo que puede transcurrir sin que intervenga ninguna comunicación, después de lo cual, cualquiera de los lados de los canales de comunicación (cliente o servidor) concluye que el compañero opuesto no está disponible. Para el ejecutable del lado del servidor (Microsoft.Uii.Csr.CitrixIntegration.exe), termina después de llegar a esta conclusión. Para la instancia de control hospedado del lado del cliente, termina el temporizador de ping de latido interno. Esta configuración puede ser diferente entre el lado del cliente y el del servidor.
    CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds Especifica el período de un temporizador que desencadena mensajes PING al ejecutable del lado del servidor (Microsoft.Uii.Csr.CitrixIntegration.exe), que a su vez responderá con mensajes PONG correspondientes. Esto es para evitar que los componentes del cliente y del servidor concluyan incorrectamente su comunicación. Esta configuración solo aplicable para el lado del cliente.

Integración de Citrix: ¿Cómo funciona?

Ahora que sabe configurar la integración de Citrix en Unified Service Desk, así es cómo funciona la integración de Citrix desde el momento en que un agente inicia el control hospedado en el cliente de Unified Service Desk hasta que se cierra el control hospedado.

  1. El agente de servicio al cliente inicia el control hospedado de Citrix desde el cliente de Unified Service Desk, que lanza la aplicación Citrix en el servidor de Citrix usando el nombre de archivo ICA configurado para el control hospedado.

  2. El ejecutable del lado del servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) se inicia automáticamente y solicita la configuración de la aplicación Citrix establecida para el control hospedado desde el cliente de Unified Service Desk. Ha configurado esta información en el paso 8 de la sección Configurar una aplicación hospedada remota

  3. Si la configuración de la aplicación solicita tiempos de espera en función del valor especificado en el valor de la aplicación CitrixIntegration.RecvTimeoutInMilliseconds, el ejecutable del lado del servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) concluye que la instancia de aplicación Citrix no es una aplicación hospedado de UII, y finaliza.

    Si el tiempo de espera de la solicitud de configuración de la aplicación no termina, continúe con el siguiente paso.

  4. Mediante la configuración de la aplicación del control hospedado Citrix, el ejecutable del lado del servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) procede a identificar el proceso de la aplicación Citrix.

    • Si no se pudo identificar el proceso de la aplicación Citrix, el ejecutable del lado del servidor se mantiene en ejecución, y envía un mensaje al cliente al respecto. Puede ver el mensaje si ha activado el seguimiento.

    • Si se identifica el proceso de aplicación Citrix, el ejecutable del lado del servidor adquiere el proceso, e continúa con la identificación de la ventana superior designada para la aplicación. El ejecutable del lado del servidor hace referencia a la configuración utilizada normalmente para aplicaciones externas y se puede aprovechar para seleccionar una ventana superior no predeterminada. Si la ventana superior no se encontró, el ejecutable del lado del servidor permanece en ejecución y envía un mensaje de información al cliente que puede ser visto cuando el seguimiento se ha activado.

  5. Finalmente, se instancia el adaptador de la aplicación del control hospedado. El proceso y la ventana superior adquiridos se proporcionan al adaptador, y todas las operaciones del adaptador se distribuyen entre el cliente y el servidor en este momento.

    Nota

    Si el proceso no se pudo encontrar, el valor será nulo. Si la ventana no se pudo encontrar, el valor será 0. Si el adaptador no se pudo instanciar, el ejecutable del lado del servidor permanece en ejecución y envía un mensaje de información al cliente que puede ser visto cuando el seguimiento se ha activado.

  6. Cuando el agente de servicio al cliente cierra el control hospedado Citrix en el cliente de Unified Service Desk, el ejecutable del lado del servidor también finaliza.

Adaptadores Citrix de ejemplo

A continuación encontrará adaptadores Citrix de ejemplo disponibles para revisar o probar.

Adaptador de aplicación de ejemplo

El adaptador de aplicación de ejemplo para Citrix está disponible en el paquete de descarga de UII SDK. Para revisar o probar este adaptador:

  1. Descargar el paquete SDK de User Interface Integration (UII).

  2. Para extraer el contenido, haga doble clic en el archivo del paquete.

  3. Navegue a la carpeta <ExtractedFolder>\UII\SampleCode\UII\Citrix\ApplicationAdapter. El archivo README.txt en la carpeta proporciona información sobre este adaptador.

Adaptador basado en datos de ejemplo

Para facilitar el uso de adaptadores controlados por datos (DDA) existentes sin requerir el desarrollo de un adaptador personalizado, Unified Service Desk proporciona el siguiente adaptador para consumir la etiqueta DataDrivenAdapterBindings para instanciar el DDA, y para traducir acciones DDA a llamadas en el DDA instanciado: Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.dll. De forma predeterminada, este ensamblado está disponible en el directorio de instalación del cliente de Unified Service Desk.

Para usar el adaptador DDA de ejemplo con el control hospedado Citrix, actualice la definición del control hospedado para especificar los siguientes valores en el área Configuración del adaptador para el control hospedado:

Campo Valor
Adaptador Usar adaptador
URI Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter
Tipo Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.DdaAutomationAdapter

Integración de Citrix: Prácticas recomendadas

Estos son algunos puntos que puede considerar realizar mientras configura la integración con aplicaciones Citrix.

  • Asegúrese de que la aplicación Citrix que desea hospedar en Unified Service Desk se puede lanzar correctamente de manera independiente iniciándola explícitamente.

  • Use el seguimiento para identificar y solucionar problemas. La mensajería de seguimiento ayuda a identificar y solucionar problemas, si los hay. De forma predeterminada el seguimiento de Verbose está habilitado en el archivo Microsoft.Uii.Csr.CitrixIntegration.exe.config para registrar los mensajes de ejecución en el servidor:

    <add name="Microsoft.Uii.Common.Logging" value="Verbose"/>
    

    A continuación puede usar uno de los proveedores de registro User Interface Integration (UII) estándar, por ejemplo, el proveedor del registro de archivos, para escribir los registros de seguimiento en un archivo. Los seguimientos también aparecerán en los depuradores adjuntos. Los mismos valores en el lado del cliente (archivo UnifiedServiceDesk.exe.config) activarán el seguimiento en el lado del cliente.

  • En Windows, varios procesos que ejecutan el mismo programa comparten sus páginas de memoria que contienen código ejecutable. La naturaleza de los programas .NET es que el compilador Just-In-Time (JIT) compila el lenguaje intermedio (IL) en instrucciones de máquina (código ejecutable) en tiempo de ejecución cuando se inicia la aplicación. Esta compilación en tiempo de ejecución evita compartir páginas de código idénticas por lo demás, lo que impide la optimización compartida de páginas de código. Puesto que el ejecutable del lado del servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) es un programa .NET donde varias instancias puede ejecutarse en un mismo equipo, será efectivo aprovechar la herramienta Ngen.exe (generador de imagen nativa) para crear imágenes nativas de los ensamblados dependientes para el ejecutable del lado del servidor, e instalarlos en la memoria caché de imagen nativa del equipo local. Esto facilitará un mayor aprovechamiento de recursos del servidor mediante el uso de imágenes nativos desde la caché en vez de usar el compilador JIT para compilar el ensamblado original.

Vea también

Aplicaciones hospedadas de UII

Crear y administrar aplicaciones hospedadas de UII

Extender Unified Service Desk