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 でのアプリケーションの要件も確認。