Independent Computing Architecture ( ICA ) は、 Citrix Systemsが設計したアプリケーションサーバーシステム用の独自プロトコルです。このプロトコルは、サーバーとクライアント間でデータを渡すための仕様を規定していますが、特定のプラットフォームに限定されません。Citrix の ICA は、Microsoft のRemote Desktop Protocol (RDP) の代替となるものです。[ 1 ]
ICA に準拠した実用的な製品としては、Citrix のWinFrame、Citrix XenApp (旧称 MetaFrame/Presentation Server)、Citrix XenDesktop製品などがあります。これらを使用すると、通常のWindowsアプリケーションを適切な Windows サーバー上で実行し、サポートされているクライアントからそれらのアプリケーションにアクセスできます。Windows 以外にも、ICA は多数のUnixサーバー プラットフォームでサポートされており、これらのプラットフォームで実行されているアプリケーションへのアクセスを提供するために使用できます。クライアント プラットフォームは Windows を実行する必要はありません。たとえば、Mac、Unix、Linux 、およびさまざまなスマートフォン用のクライアントが利用可能です。ICA クライアント ソフトウェアは、さまざまなシン クライアントプラットフォームにも組み込まれています。 [ 2 ]
ICAは、X Window Systemなどのウィンドウサーバーと概ね同様の目的を持っています。また、クライアントからサーバーへのユーザー入力のフィードバック機能や、サーバーが実行中のアプリケーションからクライアントへグラフィック出力や音声などのメディアを送信するための様々な手段も提供します。
アーキテクチャにおける主な課題は、ネットワークの遅延とパフォーマンスです。GUI を使用して表示されるほとんどのアプリケーションがそうであるように、グラフィック処理を多用するアプリケーションを、低速または帯域幅が制限されたネットワーク接続経由で提供するには、クライアントがアプリケーションを使用できるようにするために、かなりの圧縮と最適化が必要です。クライアント マシンは異なるプラットフォーム上にある場合があり、ローカルで同じ GUI ルーチンが利用できない場合があります。この場合、サーバーは実際のビットマップ データを接続経由で送信する必要があるかもしれません。クライアントの機能によっては、サーバーはグラフィック処理の一部をクライアントにオフロードすることもできます。たとえば、マルチメディア コンテンツをレンダリングする場合などです。ICA は、TCP ポート 1494 でネイティブに実行されるか、 TCP 2598 のCommon Gateway Protocol (CGP) でカプセル化できます。ICA は、セッション レイヤーでチャネルの概念をサポートし、リッチ メディアのリダイレクトや USB 拡張を ICA 内にカプセル化します。