Citrix アプリケーションと統合

 

公開日: 2016年11月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016

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

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

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

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

このトピックの内容

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

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

Citrix 統合の仕組み

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 つの項目が含まれます。

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

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

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

  1. Microsoft Dynamics 365 にサインインします。

  2. [設定] > [Unified Service Desk] の順に移動します。

  3. [ホストされたコントロール] をクリックし、[新規] をクリックします。

  4. [新しいホストされたコントロール] ページの、[全般] 領域で、ホストされたアプリケーションの名前、並び替え順序、および表示名を指定します。 各ホストされたアプリケーションは、固有の名前を持つ必要があります。 並べ替え順序は、ホストされたアプリケーションが取得され、Unified Service Desk に表示される順序を指定します。

  5. Unified Service Desk 領域で、[CCA のホスト アプリケーション] を [USD コンポーネントの種類] リストから選択します。

  6. [ホステッド アプリの種類] 領域で、[ホステッド アプリケーション] 一覧から [リモート ホステッド アプリケーション] を選択します。

  7. [アダプターの構成] セクションには、[アダプター] ドロップダウン リストから選択する次の 3 つのアダプター構成があります。

    1. [アダプターを使用しない]: ホストされたアプリケーションが自動化を必要としないことを指定します。

    2. [自動化アダプター (HAT) を使用する]: ホストされたアプリケーションのツールキット (HAT) ソフトウェア ファクトリに使用する、既定の構成を指定します。 ホストされたアプリケーションが自動化アダプター (HAT) を使用する場合、[自動化] 領域の [自動化 XML] フィールドに、ホストされたアプリケーションバインドの情報を指定します。 バインディングの詳細については、UII 検査を使用してホストされたアプリケーションのバインディングを作成するを参照してください。

    3. [アダプターを使用する]: ホストされたアプリケーションがユーザー定義のアダプターを使用することを指定します。

    Citrix の統合のためにアダプターを使用する方法の詳細については、Citrix アダプターのサンプル を参照してください。

  8. [Citrix アプリケーションの設定] 領域で、以下の値を指定してください。

    • [ICA ファイル名]: Citrix アプリケーションを起動するために必要な .ica ファイルの完全なパスを指定してください。 .ica ファイルには、サーバー アドレス、セッション プロパティ、および認証情報などリモート サーバーに接続する際に役立つ情報が含まれています。

    • [プロセス取得の試行回数]: 起動された Citrix アプリケーション検索するためにサーバー側の実行可能ファイルがプロセス テーブルをスキャンする回数を指定します。 Citrix アプリケーション プロセスはプロセス テーブルに表示されるまで時間がかかる場合があります。

    • [プロセス取得の遅延時間]: 各プロセス テーブルのスキャンの間隔を、ミリ秒単位で指定します。

    • [プロセス取得ファイル名]: Citrix アプリケーション ファイル名の完全なパスを指定します。 この値は、実行されているプロセスのファイル名と比較して一致を見つけるためにサーバー側の実行可能ファイルに使用されます。

  9. ホストされたコントロールを保存します。

実行可能ファイルをコピー、レジストリ修正プログラムの適用、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

    注意

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

  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>
    

    注意

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

    注意

    プロセスが見つからない場合、この値は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 2.0

© 2017 Microsoft. All rights reserved. 著作権