最終回となる今回は、シンクライアント(デスクトップ仮想化)の具体的な実現方式について解説しよう。今日広く使われているシンクライアントには大きく分けて以下の3方式がある。
- ターミナルサーバ方式
- 仮想PC方式
- ブレードPC方式
各方式に共通するのは、アプリケーション処理やディスクへの保存はすべてサーバ側で行い、クライアント側では原則的に画面表示とキーボードおよびマウスとの入出力処理のみを行う点だ。いわばクライアント機器はインテリジェント端末のような使われ方になっている。サーバとクライアント間の通信プロトコルとしてはCitrix Systemsが採用しているICA(Independent Computing Architecture)、Microsoftが採用しているRDP(Remote Desktop Protocol)、VMwareが採用しているPCoIP(PC over IP)などが使用されることが多い。
以下、各方式について説明しよう。一見複雑なようだが図示すればさほど難しい話ではない(下図参照)。なお、今日利用されているシンクライアントはほとんどがWindows環境で利用されているので、これに限って説明する。
1. ターミナルサーバ方式
1台のサーバにひとつのWindows Serverを稼働し、その上で複数のクライアント向けアプリケーションを稼働する方式である。Windows Serverの標準機能であるTerminal ServicesやCitrixのXenApp(旧名称はMetaFrame)などにより実現される。
この方式の利点は、複数のデスクトップ環境間でサーバのハードウェア資源を自由に共用できるため、サーバのハードウェア資源を有効利用できることだ。オーバーヘッドも最小である。その反面、特定の仮想デスクトップ環境の処理負荷が高いと同じサーバ上で稼働する他のデスクトップ環境に影響を与えるリスクがある。
また、既存アプリケーションの互換性が課題になることがある。本来はWindowsのアプリケーションをそのまま稼働できるはずなのだが、例えば設定ファイルの場所を決め打ちで想定しているなど、同じOSの下で複数のアプリケーションが同時並行稼働することを想定していないアプリケーションもあるからだ(これはアプリケーション側の設計上の欠陥であってターミナルサーバ側の本質的問題ではない)。