Partilhar via


Integração com aplicativos Citrix no Unified Service Desk

Observação

Não há mais suporte para hospedagem de aplicativos Citrix no Unified Service Desk.

Integre seus aplicativos Citrix com o Unified Service Desk hospedando-os no Unified Service Desk. Isso permite que os agentes de atendimento ao cliente interajam com os aplicativos Citrix de dentro do cliente do Unified Service Desk enquanto trabalham nos dados do cliente no Microsoft Dataverse. Você pode configurar um aplicativo do Windows como um aplicativo virtual no Citrix XenApp 7.6 que é executado como um aplicativo hospedado no Unified Service Desk. Para obter mais informações: Requisitos de software para virtualização de aplicativos Citrix XenApp

O aplicativo Citrix hospedado no cliente Unified Service Desk usa o protocolo ICA (Independent Computing Architecture) para se comunicar remotamente com o aplicativo em um servidor Citrix. Um arquivo .ica da Citrix contém informações para se conectar ao servidor remoto, como o endereço do servidor, propriedades da sessão e informações de autenticação.

Para obter mais informações sobre a integração do Unified Service Desk com o Citrix, consulte Blog: Citrix e Unified Service Desk

Este tópico fornece informações sobre como configurar componentes do lado do servidor e do cliente para integrar o Unified Service Desk com aplicativos Citrix, adaptadores Citrix de exemplo e algumas práticas recomendadas.

Configurar o componente do lado do servidor para integração com o Citrix

O componente do lado do servidor é implementado como um executável (Microsoft.Uii.Csr.CitrixIntegration.exe) que é configurado como um programa de inicialização para iniciar automaticamente quando um aplicativo Citrix é iniciado. O executável se autoencerra rapidamente se o aplicativo Citrix não tiver sido invocado de um cliente do Unified Service Desk. O componente do lado do servidor precisa ser configurado em cada servidor Citrix.

  1. Baixe o pacote do SDK UII (User Interface Integration).

  2. Clique duas vezes no arquivo do pacote para extrair o conteúdo.

  3. Navegue até a <ExtractedFolder>\UII\Bin\UII\Citrix Server Component pasta e, em seguida, copie todos os arquivos sob esta pasta para uma pasta (por exemplo, ServerSideComponent) em seu servidor Citrix.

  4. Na pasta ServerSideComponent no servidor Citrix, edite o ficheiro `RegPatch Install StartupPrograms on Citrix Server.reg` usando o Bloco de Notas para definir o valor do parâmetro "StartupPrograms" como o caminho completo para o ficheiro executável Microsoft.Uii.Csr.CitrixIntegration.exe.

  5. Aplique o patch de registro no servidor Citrix executando o RegPatch Install StartupPrograms on Citrix Server.reg arquivo. Este patch de registro designa um executável como um programa de inicialização que será iniciado junto com um aplicativo Citrix.

Configurar o componente do lado do cliente para integração com o Citrix

A configuração do lado do cliente para integração com o Citrix envolve duas coisas:

  • Configure uma instância de aplicativo hospedado UII (Remote Hosted Application) em sua instância do Dataverse que pode ser usada diretamente sem qualquer código personalizado ou pode ser estendida conforme necessário. As ações iniciadas nas instâncias da aplicação alojada do UII são transmitidas para o componente do lado do servidor usando um ficheiro .ica, e são despachadas para os adaptadores de aplicação configurados, se houver. Para obter mais informações sobre aplicativos hospedados UII, consulte Aplicativos hospedados UII

  • Copie o executável da aplicação Citrix e outras assemblagens necessárias no diretório de instalação do cliente do Unified Service Desk, aplique o patch do Registo do lado do cliente e adicione definições específicas do Citrix no ficheiro de configuração da aplicação cliente do Unified Service Desk. Esta etapa precisa ser executada em cada computador onde o aplicativo cliente do Unified Service Desk está instalado.

Configurar um aplicativo hospedado remotamente

  1. Iniciar sessão no Administrador do Unified Service Desk.

  2. Selecione Controles hospedados em Configurações básicas.

  3. Selecione + Novo.

  4. Especifique o seguinte na guia Geral da página Novo Controle Hospedado .

    Campo Valor
    Nome Aplicação Citrix

    Especifique um nome para o controle hospedado. Cada aplicativo hospedado deve ter um nome exclusivo.
    Ordenar 5
    Nota: Este é um valor de exemplo.

    A ordem de classificação especifica a ordem na qual os aplicativos hospedados são recuperados e exibidos no Unified Service Desk.
    Tipo de componente do Unified Service Desk Aplicação alojada CCA
    Tipo de aplicativo hospedado Aplicativo hospedado remoto
    Aplicação Global Marque a caixa de seleção
    Grupo de Apresentação Painel principal
    Adaptador Não usar adaptador
    • Usar sem adaptador: especifica que o aplicativo hospedado não requer nenhuma automação.
    • Utilizar Adaptador de Automatização (HAT): especifica a configuração predefinida utilizada para o Hosted Application Toolkit (HAT) Software Factory. Se o aplicativo hospedado usar um adaptador de automação (HAT), especifique as informações de associação do aplicativo hospedado no campo XML de automação na área Automação . Para obter mais informações sobre associações, consulte Usar o inspetor UII para criar associações para o aplicativo hospedado.
    • Usar adaptador: especifica que o aplicativo hospedado usa um adaptador personalizado.
    Para obter informações sobre como usar adaptadores para integração com Citrix, consulte Exemplos de adaptadores Citrix
    Aplicação é dinâmica Sim
    O usuário pode fechar Marque a caixa de seleção
  5. Selecione a guia Hospedagem e especifique o seguinte.

    Campo Valor
    Modo de janela de nível superior Nenhum
    URI da Assemblagem Microsoft.Uii.Csr.CitrixIntegration
    Tipo de Assemblagem Microsoft.Uii.Csr.CitrixIntegration.CitrixApplicationHostedControl
    Nome do arquivo ICA C:\Q29udHJvbGxlci5DYWxjdWxhdG9y.ica
    Especifique o caminho completo para o arquivo .ica necessário para iniciar o aplicativo Citrix. Um arquivo .ica contém informações para se conectar ao servidor remoto, como o endereço do servidor, propriedades da sessão e informações de autenticação.
    Tentativas de Aquisição do Processo 5
    Especifique o número de vezes que o arquivo executável do lado do servidor deve verificar a tabela de processos para procurar o processo que executa o aplicativo Citrix iniciado. O processo de aplicação Citrix pode demorar um pouco para aparecer na tabela de processos.
    Atraso na Aquisição do Processo 5000
    Especifique o atraso em milissegundos entre cada verificação da tabela de processo.
    FileName de Aquisição do Processo Especifique o caminho completo para o nome do arquivo do aplicativo Citrix. Esse valor é usado pelo arquivo executável do lado do servidor para comparar com os nomes de arquivo dos processos em execução para encontrar uma correspondência.
  6. Guarde o controlo alojado.

Observação

A Citrix gera o arquivo ICA em qualquer lugar usando o portal de aplicativos Citrix. No entanto, a implementação de origem no Unified Service Desk não oferece suporte ao ficheiro ICA em movimento.

Copie o executável, aplique o patch do registo e adicione as configurações do Citrix

Esta etapa deve ser executada em cada computador onde o aplicativo cliente do Unified Service Desk está instalado.

  1. Navegue até a pasta onde <ExtractedFolder> é o local onde você extraiu o arquivo de pacote do UII SDK baixado na seção Configurar componente do lado do servidor para integração do Citrix<ExtractedFolder>\UII\Bin\UII\Citrix Server Component anteriormente.

  2. Copie os seguintes arquivos da <ExtractedFolder>\UII\Bin\UII\Citrix Server Component pasta para a pasta do cliente do Unified Service Desk (normalmente C:\Arquivos de Programas\Microsoft Dynamics CRM USD\USD):

    • Microsoft.Uii.Csr.CitrixIntegration.exe

    • AxWFICALib.dll

    • WFICALib.dll

  3. Aplique o patch do Registro no computador cliente do Unified Service Desk para habilitar o uso de canais virtuais personalizados executando os seguintes arquivos disponíveis na <ExtractedFolder>\UII\Bin\UII\Citrix Server Component pasta:

    • Para o cliente x86: RegPatch Permitir canais virtuais personalizados no ICAClient.reg

    • Para o cliente x64: RegPatch Allow Custom Virtual Channels in ICAClient x64 Client.reg

    Observação

    Se esse patch do Registro não for aplicado, a comunicação entre cliente e servidor não será possível.

  4. Adicione as seguintes configurações do aplicativo no arquivo de UnifiedServiceDesk.exe.config disponível no diretório de instalação do cliente do Unified Service Desk. Estas definições da aplicação devem ser adicionadas sob o nó raiz <configuration>:

    <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>
    

    Observação

    Essas configurações do aplicativo também estão disponíveis no componente do lado do servidor no arquivo Microsoft.Uii.Csr.CitrixIntegration.exe.config.

    Aqui está uma descrição de cada chave:

    Key Descrição
    CitrixIntegration.VirtualChannelNamePrefix Para cada aplicativo Citrix iniciado, dois canais virtuais com nomes distintos são criados compartilhando um prefixo comum. Essa configuração expõe o prefixo à personalização, embora normalmente não seja necessário. Essa configuração deve ser idêntica tanto no lado do cliente quanto no lado do servidor.
    CitrixIntegration.XmitFragmentSize As transmissões de canais virtuais são fragmentadas até o limite especificado aqui. A chave será limitada internamente caso exceda os limites internos (as mensagens de rastreamento devem ser relatadas quando isso acontecer.) Essa configuração pode diferir entre o lado do cliente e o lado do servidor.
    CitrixIntegration.RecvTimeoutInMilliseconds Como acontece com toda a comunicação de rede, os tempos limite são necessários para ajudar a decidir quando o correspondente de comunicação está indisponível. A comunicação de integração da Citrix é orientada a solicitação/resposta, e essa configuração especifica quanto tempo leva para retornar a resposta antes que o sistema abandone a espera pela resposta. Essa configuração pode diferir entre o lado do cliente e o lado do servidor.
    CitrixIntegration.HeartbeatMaxWaitInMilliseconds Qualquer atividade de comunicação de canal virtual é contada como um "heartbeat". Esta definição especifica a quantidade máxima de tempo que pode decorrer sem qualquer comunicação interveniente, após o qual, ambos os lados dos canais de comunicação (cliente ou servidor) concluem que o elemento da rede oposto se tornou indisponível. Para o executável do lado do servidor (Microsoft.Uii.Csr.CitrixIntegration.exe), ele termina depois de fazer essa conclusão. Para a instância de controlo alojado do lado do cliente, encerra o temporizador interno do ping do heartbeat. Essa configuração pode diferir entre o lado do cliente e o lado do servidor.
    CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds Especifica o período de um temporizador que dispara mensagens PING para o executável do lado do servidor (Microsoft.Uii.Csr.CitrixIntegration.exe), que, por sua vez, responderá com mensagens PONG correspondentes. Isso é para evitar que os componentes cliente e servidor concluam incorretamente sua comunicação. Essa configuração só é aplicável para o lado do cliente.

Integração com Citrix: Como funciona?

Agora que você sabe como configurar a integração do Citrix no Unified Service Desk, veja como a integração do Citrix funciona desde quando um agente inicia o controle hospedado no cliente do Unified Service Desk até quando o controle hospedado é fechado.

  1. O agente de atendimento ao cliente inicia o controle hospedado Citrix a partir do cliente Unified Service Desk, que inicia o aplicativo Citrix no servidor Citrix usando o nome de arquivo ICA configurado para o controle hospedado.

  2. O executável do lado do servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) é iniciado automaticamente e solicita as configurações do aplicativo Citrix definidas para o controle hospedado do cliente do Unified Service Desk. Você configurou essas informações na etapa 8 na seção Configurar um aplicativo hospedado remotamente

  3. Se a solicitação de configurações do aplicativo atingir o tempo limite com base no valor especificado na configuração do CitrixIntegration.RecvTimeoutInMilliseconds aplicativo, o executável do lado do servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) concluirá que a instância do aplicativo Citrix não é um aplicativo hospedado pela UII e será encerrado.

    Se a solicitação de configurações do aplicativo não expirar, prossiga para a próxima etapa.

  4. Utilizando as definições da aplicação do controlo alojado do Citrix, o executável do lado do servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) procede à identificação do processo da aplicação Citrix.

    • Se o processo do aplicativo Citrix não puder ser identificado, o executável do lado do servidor permanecerá em execução e enviará uma mensagem ao cliente sobre o mesmo. Você pode visualizar a mensagem se tiver ativado o rastreamento.

    • Se o processo do aplicativo Citrix for identificado, o executável do lado do servidor adquire o processo e prossegue com a identificação da janela superior designada para o aplicativo. A configuração comumente usada para Aplicativos Externos é referenciada pelo executável do lado do servidor e pode ser aproveitada para selecionar uma janela superior não padrão. Se a janela superior não puder ser encontrada, o executável do lado do servidor permanecerá em execução e enviará uma mensagem de informações para o cliente que pode ser vista quando o rastreamento estiver ativado.

  5. Finalmente, o adaptador de aplicação para o controlo alojado é instanciado. O processo adquirido e a janela superior são fornecidos ao adaptador, e todas as operações do adaptador são roteadas entre o cliente e o servidor neste ponto.

    Observação

    Se o processo não puder ser encontrado, o valor será nulo. Se a janela não puder ser encontrada, o valor será 0. Se o adaptador não puder ser instanciado, o executável do lado do servidor permanecerá em execução e enviará uma mensagem de informações para o cliente que poderá ser vista quando o rastreamento estiver ativado.

  6. Quando o agente de atendimento ao cliente fecha o controle hospedado da Citrix no cliente do Unified Service Desk, o executável do lado do servidor também é encerrado.

Adaptadores Citrix de amostra

Aqui estão alguns exemplos de adaptadores Citrix disponíveis para você revisar/experimentar.

Adaptador da Aplicação de Amostra

Um adaptador de aplicativo de exemplo para Citrix está disponível no pacote de download do UII SDK. Para rever/experimentar este adaptador:

  1. Baixe o pacote do SDK UII (User Interface Integration).

  2. Clique duas vezes no arquivo do pacote para extrair o conteúdo.

  3. Navegue até a pasta <ExtractedFolder>\UII\SampleCode\UII\Citrix\ApplicationAdapter. O arquivo README.txt na pasta fornece informações sobre esse adaptador.

Adaptador orientado por dados de amostra

Para facilitar o uso de adaptadores condicionados por dados (DDAs) existentes sem exigir o desenvolvimento de um adaptador personalizado, o Unified Service Desk fornece o seguinte adaptador para consumir a etiqueta DataDrivenAdapterBindings para instanciar o DDA, e traduzir as ações de DDA em chamadas para o DDA instanciado: Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.dll. Por padrão, esse assembly está disponível no diretório de instalação do cliente do Unified Service Desk.

Para usar o adaptador DDA de exemplo com seu controle hospedado Citrix, atualize a definição de controle hospedado para especificar os seguintes valores na área Configuração do adaptador para seu controle hospedado:

Campo Valor
Adaptador Utilizar Adaptador
URI Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter
Tipo Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.DdaAutomationAdapter

Integração com Citrix: práticas recomendadas

Aqui estão algumas coisas que você pode considerar fazer ao configurar a integração com aplicativos Citrix.

  • Certifique-se de que o aplicativo Citrix que você deseja hospedar no Unified Service Desk possa ser iniciado com êxito por conta própria, iniciando-o explicitamente.

  • Use o rastreamento para identificar e solucionar problemas. As mensagens de rastreamento ajudam a identificar e solucionar problemas, se houver. Por padrão Verbose , o rastreamento está habilitado no arquivo Microsoft.Uii.Csr.CitrixIntegration.exe.config para registrar as mensagens de execução no servidor:

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

    Em seguida, pode usar um dos fornecedores de registo padrão de User Interface Integration (UII), por exemplo, o fornecedor de registo de ficheiros, para gravar os registos de rastreio num ficheiro. Os rastreios também serão apresentados em qualquer depurador anexado. As mesmas configurações no lado do cliente (arquivoUnifiedServiceDesk.exe.config) ativarão o rastreamento no lado do cliente.

  • No Windows, vários processos que executam o mesmo programa compartilham suas páginas de memória que contêm código executável. A natureza dos programas .NET é que o compilador just-in-time (JIT) compila a linguagem intermediária (IL) para instruções de máquina (código executável) em tempo de execução quando o aplicativo é iniciado. Essa compilação em tempo de execução impede o compartilhamento de páginas de código idênticas, o que impede a otimização do compartilhamento de páginas de código. Como o executável do lado do servidor (Microsoft.Uii.Csr.CitrixIntegration.exe) é um programa .NET onde várias instâncias podem ser executadas em um único computador, será eficaz aproveitar a ferramenta Ngen.exe (Native Image Generator) para criar imagens nativas dos assemblies dependentes para o executável do lado do servidor e instalá-las no cache de imagem nativo no computador local. Isso facilitará uma melhor utilização dos recursos do servidor usando imagens nativas do cache em vez de usar o compilador JIT para compilar o assembly original.

Ver também

Aplicativos hospedados UII

Criar e gerenciar aplicativos hospedados pela UII

Extend Unified Service Desk