Unified Service Desk の Citrix アプリケーションを統合する

注意

Unified Service Desk 内での Citrix アプリケーションのホスティングはサポートされなくなりました。

Citrix アプリケーションを Unified Service Desk でホストすることにより、Unified Service Desk と統合します。 これにより、顧客サービス エージェントが Microsoft Dataverse で顧客データの作業中に Unified Service Desk クライアント内から Citrix アプリケーションを操作できるようになります。 Citrix XenApp 7.6 で仮想アプリケーションとして Windows アプリケーションを構成し、Unified Service Desk でホストされたアプリケーションとして実行することができます。 詳細: Citrix XenApp アプリケーション仮想化のソフトウェア要件

Unified Service Desk クライアントにホストされる Citrix アプリケーションは、Citrix サーバー上のアプリケーションとのリモート通信に Independent Computing Architecture (ICA) プロトコルを使用します。 Citrix.ica ファイルには、サーバー アドレス、セッション プロパティ、および認証情報などリモート サーバーに接続する際に役立つ情報が含まれています。

Citrix と の統合に関する詳細については、ブログ: Citrix および Unified Service Desk を参照してください

このトピックは、Unified Service Desk と Citrix アプリケーションを統合するためのサーバーとクライアント側のコンポーネントの構成、サンプル Citrix アダプター、およびベスト プラクティスに関する情報を提供します。

Citrix 統合のためにサーバー側コンポーネントを構成

サーバー側コンポーネントは、Citrix アプリケーションを開始した際に自動的に開始する起動プログラムとして構成された実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) として実装されます。 Citrix アプリケーションが Unified Service Desk クライアントから呼び出されていない場合、実行可能ファイルはすばやく自己終了します。 サーバー側コンポーネントは、各 Citrix サーバーで構成する必要があります。

  1. ダウンロード User Interface Integration (UII) SDK パッケージ。

  2. パッケージ ファイルをダブルクリックして、ドキュメントを解凍します。

  3. <ExtractedFolder>\UII\Bin\UII\Citrix Server Component フォルダーに移動して、このフォルダー内のすべてのファイルを、Citrix サーバーのフォルダー (例えば、ServerSideComponent) にコピーします。

  4. Citrix サーバーの ServerSideComponent フォルダーで、RegPatch Install StartupPrograms on Citrix Server.reg ファイルをメモ帳で編集し、「StartupPrograms」パラメーターの値を Microsoft.Uii.Csr.CitrixIntegration.exe 実行可能ファイルの完全なファイルパスに設定します。

  5. RegPatch Install StartupPrograms on Citrix Server.reg ファイルを実行して Citrix サーバーにレジストリ修正プログラムを適用します。 このレジストリ修正プログラムは、実行可能ファイルを Citrix アプリケーションとともに起動される起動プログラムとして指定します。

Citrix 統合のためにクライアント側コンポーネントを構成

Citrix 統合のためのクライアント側構成には次の 2 つの項目が含まれます。

  • カスタム コード無しで直接使用でき、必要に応じて拡張できる Dataverse インスタンスに、UII のホストされたアプリケーション (Remote Hosted Application) インスタンスを構成します。 UII のホストされたアプリケーション インスタンスで実行されたアクションは、.ica ファイルを使用してサーバー側コンポーネントに送信され、構成されたアプリケーション アダプターがある場合ディスパッチされます。 UII がホストするアプリケーションに関する詳細については、「UII がホストするアプリケーション」を参照してください。

  • Unified Service Desk クライアントのインストール ディレクトリで Citrix アプリケーション実行可能ファイルおよび他の必要なアセンブリをコピーし、クライアント側のレジストリ修正プログラムを適用して、Unified Service Desk クライアント アプリの構成ファイルに Citrix 固有の設定を追加します。 このステップは、Unified Service Desk のクライアント アプリケーションがインストールされている各コンピューターで行う必要があります。

リモート ホステッド アプリケーションの構成

  1. Unified Service Desk 管理者にサインインします。

  2. 基本設定で、ホストされたコントロールを選択します。

  3. + 新規を選択します。

  4. 新たにホストされたコントロール のページの 全般 タブで、次のように指定します。

    Field 価値
    件名 Citrix アプリケーション

    ホストされたコントロールの名前を指定します。 各ホストされたアプリケーションは、固有の名前を持つ必要があります。
    Sort 5
    注意: この値は参考値であり、実際の値とは異なる場合があります。

    並び替え順序は、ホストされたアプリケーションが取得され、Unified Service Desk に表示される順序を指定します。
    Unified Service Desk コンポーネントの種類 CCA ホステッド アプリケーション
    ホステッド アプリケーションの種類 リモート ホステッド アプリケーション
    グローバルなアプリケーション チェック ボックスを選択
    表示グループ MainPanel
    アダプター アダプターを使用しない
    • アダプターを使用しない: ホストされたアプリケーションが自動化を必要としないことを指定します。
    • 自動化アダプター (HAT) を使用する: ホストされたアプリケーションのツールキット (HAT) ソフトウェア ファクトリに使用する、既定の構成を指定します。 ホストされたアプリケーションが自動化アダプター (HAT) を使用する場合、自動化領域の自動化 XML フィールドに、ホストされたアプリケーションバインドの情報を指定します。 バインディングの詳細については、UII 検査を使用してホストされたアプリケーションのバインディングを作成する を参照してください。
    • アダプターを使用する: ホストされたアプリケーションがユーザー定義のアダプターを使用することを指定します。
    Citrix の統合のためにアダプターを使用する方法の詳細については、Citrix アダプターのサンプル を参照してください
    動的なアプリケーション イエス
    ユーザーがクローズできる チェック ボックスを選択
  5. ホスト タブを選択し、以下を指定します。

    フィールド
    最上位ウィンドウ モード なし
    アセンブリ URI Microsoft.Uii.Csr.CitrixIntegration
    アセンブリの種類 Microsoft.Uii.Csr.CitrixIntegration.CitrixApplicationHostedControl
    ICA ファイル名 C:\Q29udHJvbGxlci5DYWxjdWxhdG9y.ica
    Citrix アプリケーションを起動するために必要な .ica ファイルの完全なパスを指定してください。 .ica ファイルには、サーバー アドレス、セッション プロパティ、および認証情報などリモート サーバーに接続する際に役立つ情報が含まれています。
    プロセス取得の試行回数 5
    起動された Citrix アプリケーションの検索をするためにサーバー側の実行可能ファイルがプロセス テーブルをスキャンする回数を指定します。 Citrix アプリケーション プロセスはプロセス テーブルに表示されるまで時間がかかる場合があります。
    プロセス取得の遅延時間 5000
    各プロセス テーブルのスキャンの間隔を、ミリ秒単位で指定します。
    プロセス取得ファイル名 Citrix アプリケーションのファイル名称への完全なパスを指定します。 この値は、実行されているプロセスのファイル名と比較して一致を見つけるためにサーバー側の実行可能ファイルに使用されます。
  6. ホストされたコントロールを保存します。

注意

Citrix は Citrix アプリケーション ポータルを使用して、外部 ICAファイルを生成します。 ただし、初期状態の Unified Service Desk は、外部で生成された ICAファイルには対応していません。

実行可能ファイルをコピー、レジストリ修正プログラムの適用、Citrix 構成設定の追加

このステップは、Unified Service Desk のクライアント アプリケーションがインストールされている各コンピューターで行う必要があります。

  1. 前半の Citrix 統合のためにサーバー側コンポーネントを構成 セクションでダウンロードした UII SDK パッケージを展開した場所である <ExtractedFolder> がある <ExtractedFolder>\UII\Bin\UII\Citrix Server Component フォルダーに移動します。

  2. 以下のファイルを <ExtractedFolder>\UII\Bin\UII\Citrix Server Component フォルダーから Unified Service Desk クライアント フォルダー (通常 C:\Program Files\Microsoft Dynamics CRM USD\USD) にコピーします:

    • Microsoft.Uii.Csr.CitrixIntegration.exe

    • AxWFICALib.dll

    • WFICALib.dll

  3. <ExtractedFolder>\UII\Bin\UII\Citrix Server Component フォルダーで使用可能な以下のファイルを実行して、Unified Service Desk クライアント コンピューターにレジストリ修正プログラムを適用してユーザー定義の仮想チャネルを使用できるようにします。

    • x86 クライアント用: ICAClient.reg の RegPatch Allow Custom Virtual Channels

    • x64 クライアント用: ICAClient x64 Client.reg の RegPatch Allow Custom Virtual Channels

    Note

    このレジストリ修正プログラムを適用しない場合、クライアントとサーバー間の通信はできません。

  4. Unified Service Desk クライアントのインストール ディレクトリにある UnifiedServiceDesk.exe.config ファイルに次のアプリケーション設定を追加します。 これらのアプリ設定は、ルート <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>
    

    Note

    これらのアプリ設定は、Microsoft.Uii.Csr.CitrixIntegration.exe.config ファイルのサーバー側コンポーネントでも使用できます。

    各キーの説明です。

    キー 内容
    CitrixIntegration.VirtualChannelNamePrefix 起動した各 Citrix アプリケーションでは、個別に名前のつけられた、共通の接頭辞を共有する 2 つの仮想チャネルが作成されます。 この設定により、接頭辞がカスタマイズに表示されますが、通常は必要ではありません。 この設定は、クライアント側およびサーバー側の両方で同一でなければなりません。
    CitrixIntegration.XmitFragmentSize 仮想チャネル伝送はここで指定されている制限に断片化されます。 キーは内部制限を超えた場合内部でキャップされます (その場合、追跡メッセージがレポートします)。この設定は、クライアント側とサーバー側で異なる場合があります。
    CitrixIntegration.RecvTimeoutInMilliseconds すべてのネットワーク通信と同様に、タイムアウトは通信ピアが使用できなくなるときを決定するのに必要です。 Citrix 統合通信は要求/応答指向で、この設定はシステムが応答を待機するのを破棄する前に応答を返すまでの時間を指定します。 このは、クライアント側およびサーバー側で異なることがあります。
    CitrixIntegration.HeartbeatMaxWaitInMilliseconds 仮想チャネル通信アクティビティはすべて「ハートビート」としてカウントされます。この設定は、通信が介在せずに経過できる最大時間を指定します。その後、通信チャネルのいずれかの側 (クライアントまたはサーバー) で、反対側のピアが使用できなくなったと判断されます。 サーバー側の実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) は、この結論の後に終了します。 クライアント側でホストされたコントロールのインスタンスは、ハート ビートの ping タイマーを終了します。 このは、クライアント側およびサーバー側で異なることがあります。
    CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds 対応する PONG メッセージで返信される、サーバー側の実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) への PING メッセージをトリガーするタイマーの時間を指定します。 これによって、クライアントおよびサーバー コンポーネントの両方が、通信に誤った結論付けを行わないようにします。 この設定は、クライアント側でのみ適用されます。

Citrix 統合の仕組み

Unified Service Desk で Citrix 統合を構成する方法を学んだので、エージェントが Unified Service Desk でホストされたコントロールを開始したときから、ホストされたコントロールを終了するまでの Citrix 統合の動作を学びます。

  1. 顧客サービス エージェントが、ホストされたコントロール用に設定された ICA ファイル名を使用して Citrix サーバー上に Citrix アプリケーションを起動する Unified Service Desk クライアントから Citrix のホストされたコントロールを開始します。

  2. サーバー側の実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) は自動的に開始され、Unified Service Desk クライアント からホストされたコントロールに対して構成された Citrix アプリケーション設定を要求します。 この情報は既にこのセクションの手順 8 で設定しました リモート ホステッド アプリケーションの構成

  3. CitrixIntegration.RecvTimeoutInMilliseconds アプリ設定が アプリ設定に指定された値に基づいたタイムアウトを要求する場合、サーバー側の実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) は Citrix アプリケーション インスタンスが UII のホストされたアプリケーションではないと結論付け、終了します。

    アプリケーション設定の要求がタイムアウトしない場合、次のステップに進みます。

  4. Citrix のホストされたコントロールのアプリケーション設定を使用し、サーバー側の実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) は、Citrix アプリケーション プロセスの識別に進みます。

    • Citrix アプリケーション プロセスが特定できなかった場合、サーバー側の実行可能ファイルは実行され続け、クライアントに同じメッセージを送信します。 トレースを有効にするとメッセージを表示できます。

    • Citrix アプリケーション プロセスが特定されると、サーバー側の実行可能ファイルはプロセスを取得し、アプリケーションの指定されたトップ ウィンドウの識別に進みます。 外部アプリケーションで一般的に使用される構成は、サーバー側の実行可能ファイルに参照され、既定以外のトップ ウィンドウを選択するために使用できます。 トップ ウィンドウが見つからない場合、サーバー側の実行可能ファイルは実行され続け、トレースが有効になったときに表示される情報メッセージをクライアントに送信します。

  5. そして、ホストされたコントロールのアプリケーション アダプターがインスタンス化されます。 取得されたプロセスとトップ ウィンドウはアダプターに提供され、この時点ですべてのアダプター操作はクライアントとサーバーの間にルーティングされます。

    Note

    プロセスが見つからない場合、この値はnullです。 ウィンドウが見つからない場合、この値は 0 です。 アダプターがインスタンス化できない場合、サーバー側の実行可能ファイルは実行され続け、トレースが有効になったときに表示される情報メッセージをクライアントに送信します。

  6. 顧客サービス エージェントが、Unified Service Desk クライアントの Citrix のホストされたコントロールを閉じると、サーバー側の実行可能ファイルも終了します。

Citrix アダプターのサンプル

以下は確認および試すことのできる Citrix アダプターのサンプルです。

サンプル アプリケーション アダプター

Citrix のサンプル アプリケーション アダプターは UII SDK ダウンロード パッケージにあります。 このアダプターを確認および試すには、以下の手順に従います。

  1. ダウンロード User Interface Integration (UII) SDK パッケージ。

  2. パッケージ ファイルをダブルクリックして、ドキュメントを解凍します。

  3. <ExtractedFolder>\UII\SampleCode\UII\Citrix\ApplicationAdapter フォルダーに移動します。 フォルダーに含まれる README.txt ファイルはこのアダプターについて説明します。

サンプル データ駆動型アダプター

カスタム アダプターの作成を必要としないで既存のデータ駆動型アダプター (DDAs) の使用を簡素化するために、Unified Service Desk が DDA をインスタンス化するために DataDrivenAdapterBindings タグを消耗し、DDA アクションをインスタンス化された DDA の呼び出しに翻訳するアダプターを提供します。Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.dll です。 既定では、このアセンブリは Unified Service Desk のクライアントのインストール ディレクトリで使用可能です。

Citrix のホストされたコントロールでサンプル DDA アダプターを使用するには、ホストされたコントロールの アダプターの構成 領域で次の値を指定して、ホストされたコントロールの定義を更新してください。

フィールド
アダプター アダプターを使用する
URI Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter
種類 Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.DdaAutomationAdapter

Citrix 統合: ベスト プラクティス

以下は、Citrix アプリケーションで統合を設定しているときに考慮できる点です。

  • Unified Service Desk でホストする Citrix アプリケーションが、明示的に開始することで単独で正常に実行できることを確認します。

  • 問題の特定およびトラブルシューティングにトレースを使用します。 追跡メッセージは、問題がある場合に特定およびトラブルシューティングに役立ちます。 既定では、Verbose トレースはサーバーに実行メッセージをログに記録するために Microsoft.Uii.Csr.CitrixIntegration.exe.config ファイルで有効にされます。

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

    その後、標準 User Interface Integration (UII) ログイン プロバイダーのいずれかを使用できます。たとえば、トレースのログをファイルに記述するファイル ログイン プロバイダーです。 トレースはすべての関連付けられたデバッガーにも表示されます。 クライアント側 (UnifiedServiceDesk.exe.config ファイル) の同じ設定が、クライアント側でトレースを有効にします。

  • Windows では、同じプログラムを実行する複数のプロセスが、実行可能プログラムのコードを格納するメモリ ページを共有します。 .NET プログラムの特性として、アプリケーションの起動時に Just-In-Time (JIT) コンパイラが中間言語 (IL) を機械命令 (実行可能プログラムのコード) にランタイムでコンパイルします。 このランタイム コンパイルは、コンパイルされなければ同じであるコード ページの共有を防ぎ、コード ページの共有の最適化を防ぎます。 サーバー側の実行可能ファイル (Microsoft.Uii.Csr.CitrixIntegration.exe) は単一のコンピューターで複数のインスタンスを実行できる .NET プログラムであるため、サーバー側の実行可能ファイルの依存アセンブリのネイティブ画像の作成に Ngen.exe (ネイティブ画像ジェネレーター) ツールを利用し、ローカル コンピューターのネイティブ画像のキャッシュにインストールすると効果的です。 これは、オリジナル アセンブリのコンパイルに JIT コンピューターをする代わりに、キャッシュからネイティブ画像を使用することでサーバー リソース稼働率を改善します。

関連項目

UII のホストされたアプリケーション

UII のホストされたアプリケーションの作成および管理

Unified Service Desk の拡張