Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
2層C/S型アプリケーションからターミナルサービスへの移行についての注意点を纏めています。
- この考え方は、Citrix Systems社のMetaFrame?、XenApp?等に対しても適用できます。
- Windows Server 2008からリモートデスクトップサービスと名称変更されています。
アプリケーション †
- ターミナルサービス上で動作させるアプリケーションは、
マルチ セッション環境下で使用するアプリケーションとして設計されている必要がある。
- PDF出力(PDF出力やPDF参照)などは、可能。
(対象アプリケーションがターミナルサービス環境下での動作をサポートしている)。
確認方法 †
- Windows XP のユーザ切り替えで、同時起動して、問題が起きない。
- 2003/2008 へ 複数ユーザで、リモートデスク・トップ接続して、問題が起きない。
- 最終的には、リモート デスクトップ サービスやXenApp?上で確認が望ましい。
UI †
画像 †
解像度、色の設定は可能(リモート・デスクトップ接続の機能)。
操作性 †
一部ショートカットが異なることがあります。
SSO †
セッション †
ココで言うセッションとは、ログイン・セッションを指します。
セッション切断・再接続 †
タイムアウト設定があり
- タイムアウト以内であれば、元のセッションに接続
- タイムアウト過ぎると、新しいセッションが起動
二重起動防止処理の扱い †
- XenAPP
- 「公開アプリケーション」では、1ユーザ1インスタンスに制限可能。
- 「公開デスクトップ」では複数起動を制限はアプリでの実装。
公開アプリケーションとは、RemoteAppに該当(RemoteAppでの制御は未確認)。
リソース †
ストレージやデバイスへのアクセスを修正(DB、ログ、プリンタ)
排他制御 †
「サーバー上」と「ユーザー内」で意味が違うので注意。
#ターミナルサービスでは、「サーバー上」の排他も意識する必要がある。
クライアント・リソース †
可能であればクライアント・リソースのリダイレクトを使用する。
- クライアントPCのローカル・リソースを、「ターミナル サーバ」側にリダイレクトする。
- これにより、例えば、クライアントPCのローカル ディスク ドライブをリダイレクトして、
リモート デスクトップ内のエクスプローラ、アプリケーションから読み書き可能。
- リダイレクト可能なクライアントPCのローカル・リソース
- ディスク・ドライブ
- プリンタ
- オーディオ・デバイス
- シリアル・ポート
印刷 †
- ターミナルサービスからのネットワーク・プリンタへ出力
- リダイレクト機能で、クライアント・プリンタに出力。
後者の方式が推奨(印刷量が大量過ぎると、サーバ側スプーラの負荷大)
サーバ・リソース †
永続化 †
ログファイル、レジストリ、データベース等、
ファイル・システム上の競合が発生しないか注意する。
- ファイル・フォルダが競合する場合、以下のように対応する。
- ユーザ毎にファイル名を変更する。
- C:\Documents and Settingsや、C:\Usersを使用する。
- スタンドアロンで使用していた
RDBMS、レジストリ(階層型データベース)は、
水平分割するなど、データの持ち方に工夫が必要になる。
カーネル・オブジェクトと名前空間 †
グローバルにしないと名前付きカーネルオブジェクトが別々になるので注意が必要。
例えば、起動数の制御は、mutexなどのWindows上の共有資源を使う。
ただし、他人のログイン・セッションとぶつからないように、資源の名前空間に注意する。
- セッション間で共有するカーネル・オブジェクトはグローバル名前空間を使用する。
性能 †
ターミナルサービス系は、3層C/Sの処理方式と比べて、
ログイン・セッション、プロセスなどの各種リソースを
ログインしたユーザ分消費するためリソース消費量が多くなる。
接続ユーザ数 †
サーバ1台あたりの接続ユーザ数の目安
消費メモリ †
ターミナルサービスで消費するメモリは、
の使用するメモリ量。
ネットワーク・トラフィックの変化 †
- 2層C/S型では、クライアント-DB間の
ネットワーク・トラフィックが主なボトルネックの原因になりますが、
- ターミナル・サービスでは、上記に加えて、
クライアント-サーバ間のRDPによる画面転送の
ネットワーク・トラフィックが主なボトルネックの原因になります。
負荷テスト †
多数のユーザをログインして業務負荷に相当するスクリプトなどを実行する。
- WebのHTTPリクエスト(リクエスト電文)での負荷テストとは異なる方式。
- UI操作の記録・エミュレーションと言うレベルまでの負荷テストは一般的でない模様。
参考 †
- Terminal Service でのアプリケーションの要件も確認。