PR

◆画面転送型◆ 主役を張り続ける

図2●ターミナル・サービスの仕組み
サーバーでデスクトップの画面出力とキーボード/マウスの入力を持つデスクトップ環境(WinStation)を複数生成する。画面の変更部分をそのまま送信するのではなく,暗号化し圧縮して送る。独自のRDP(Remote Desktop Protocol)を使う。
図3●米Tarantella社のシンクライアント・システム「Tarantella」の内部構造
Windows Serverのターミナル・サービスやX Window Systemなどの各プロトコルを独自プロトコル(AIP:Advanced Internet Protocol)に変換して,キーボード/マウス入力および画面イメージをクライアントと通信する。Javaを使ってさまざまなクライアントから利用できる点が特徴。
図4●米Hewlett-Packard社の「HP Consolidated Client Infrastructure(CCI)」システム
Windows XP搭載のブレード・サーバーにリモート・デスクトップで接続する。割り当てるブレード・サーバーは負荷によって動的に決める。ユーザー・アカウントに関連付けたネットワーク・ストレージ上の共有フォルダを「マイドキュメント」フォルダとして利用する。
図5●Windows CE .NETのシンクライアント向けマルチメディア拡張
ターミナル・サービス専用プロトコルRDPに基づいて送られてくるデスクトップ画面イメージと別チャネルで配信された動画を合成する。
図6●富士通が開発した「SolidMXシンクライアント」
3次元CADソフト「SolidMX」をシンクライアント向けに改変した。サーバーで生成したOpenGLの描画命令として3次元画像をクライアントに送る。クライアントはローカルのグラフィックス・カードで3次元画像を復元。ターミナル・サービスが生成したデスクトップ画面と合成する。

 (1)の画面転送型は,1985年に登場したUNIX系OSの「X Window System」,1998年に登場したWindows系OSの「ターミナル・サービス」など,長期間シンクライアントの主流として開発が進められてきた。通信量の削減を主眼に改良を続け,今では56kビット/程度のダイアルアップ回線でも実用的な速度で利用できるようになった。このため「どこからでも自分のデスクトップ環境にアクセスできる」というパソコンにはない利便性を持つ*1

 ダイアルアップ回線でも使えるのは,画面の変更部分をそのまま送るのではなく,暗号化し圧縮しているからだ。例えばターミナル・サービスは,仮想的なデスクトップの画面とキーボード/マウス入力を持つ環境(WinStation)をサーバーに複数生成する(図2[拡大表示])。

 WinStationは画面描画システム・サービスとして,Windowsと同じ「GDI」を備える。この出力を,独自のRDP(Remote Desktop Protocol)に基づいて圧縮。具体的には,16×16ドット,32 ×32ドット,64×64ドットのサイズを使い分けて更新した画面のブロックを送信する。使用フォントがクライアントに存在する場合は,画面ではなく文字コードを送る。頻繁に使われる画像データは,デフォルトで10Mバイトまでクライアントのキャッシュ・ファイルに格納する。こうした工夫の結果,電話回線のような低速回線でも,文章作成や表計算のように画面の書き換えが頻繁に起こらないアプリケーションは,あまりストレスなく利用できる。

 一方のX Window Systemは元々LAN環境を想定して作られたので,それ自体に画面イメージを圧縮して送信する機能はない。通信量を抑えるための圧縮機能が別途必要となる。米Sun Microsystems社の「Sun Ray Server Software」や米Tarantella社の「Tarantella」などのシンクライアント・ソフトは,いずれもX Window Systemの画面転送機構に,差分だけの送信や圧縮の機能を追加する。

 例えばSun Rayは,300kビット/秒の帯域でX Window Systemを快適に使える程度の通信量に抑えている。Tarantellaは,ターミナル・サービスやX Window Systemなどの各プロトコルを独自プロトコル(AIP:Advanced Internet Protocol)に変換する仲介サーバーとして動く(図3[拡大表示])。AIPは,オフィスやモバイルなど回線の帯域が増減する場合を想定し,「動的に画像の圧縮率を変える。時間帯によって回線が混雑しても,体感速度は変わらない」(トーメンサイバービジネス インターネットプロダクツ事業本部マーケティンググループの川口明男グループリーダー)。クライアントはJavaなので,ネットワークの帯域を問わず,さまざまなサーバーおよびクライアントを利用できるのが売りだ。

 ただ画面転送型は,複数ユーザーによる同時利用を想定していないアプリケーションだと動作しない,動画や3次元CADをスムーズに再生できないといった制約がある。特にWindows用アプリケーションの場合,ログインしてデスクトップ環境を使うユーザーは1人しか想定していないことが多い。仮想デスクトップ環境間で利用するファイルが競合しないように,ユーザー・アカウントごとに作成される「Documents and Settings¥ユーザー名」フォルダを利用するなど,排他制御を意識した改変が必要になる*2

 後者は画面転送型の仕組みそのものが原因だ。100Mビット/秒超の帯域があるLAN環境でも,1秒間に15回以上の画面更新が連続する動画を再生したり,3次元画像をさまざまな角度から編集・閲覧する3次元CADソフトを利用したりすると,画面イメージの差分の生成や暗号化の処理速度が追いつかなくなる。

ユーザー1人に物理サーバーを割り当て

 マルチユーザーを想定していないアプリケーションを動かすには,ラックに積載可能な薄型サーバー(ブレード・サーバー)を1ユーザーに占有させればよい。例えば米Hewlett-Packard社の「HP Consolidated Client Infrastructure(CCI)」システム(図4[拡大表示])。Windows XP Professional搭載のブレード・サーバーに,接続数が1のクライアントOS向けターミナル・サービス「リモート・デスクトップ」で接続する。

 実際の動きはこうだ。割り当てるブレード・サーバーは負荷によって動的に決める。利用するブレード・サーバーが変わるので,ユーザーデータの格納にはユーザー・アカウントに関連付けたネットワーク・ストレージを利用する。具体的には,「マイドキュメント」や「お気に入り」を格納するDocuments and Settings下のフォルダを,共有フォルダにリダイレクトする。

 アプリケーションは,Windowsインストーラのネットワーク・インストール機能を利用して初回利用時に配信する*3。Windowsインストーラを使うアプリケーションごとに,あらかじめActive Directoryを使って設定しておく。ユーザーのスタートメニューにはアプリケーションのショートカットが表示される。ショートカットを呼び出すと,WindowsインストーラがActive Directoryの設定に従って自動的にインストールする。

動画は別チャネルで送信

 もう一つの課題である動画や3次元CADには,ビットマップに展開する前のデータを送る手法で対応する。

 動画の場合,データをそのまま送る。動画は圧縮して記録しているので,加工せずにそのまま配信した方が効率的だからだ。例えば米Microsoft社は,同社の組み込み向けOS「Windows CE .NET」に,受信した動画をターミナル・サービス・クライアントの画面イメージと合成して出力する機能を追加した(図5[拡大表示])。ターミナル・サービス専用プロトコルRDPに基づいて送られてくるデスクトップ画面イメージと別チャネルで配信された動画を合成する(別掲記事「ネットワーク透過になるLonghornのUI」参照)。

描画命令を圧縮送信する3次元CAD

 3次元CADはグラフィックス・チップの描画結果(ラスター形式)ではなく,画像の描画命令(ベクター形式)を別チャネルで送る。ベクター形式の画像データは「球を描いて照明を当てる」といったデータの集合であるため,ラスター形式よりデータ量が少ない。

 例えば富士通が2005年6月に発売した3次元CADソフト「SolidMXシンクライアント」は,CADソフトで扱う3次元画像部分のみを別チャネルで送る(図6[拡大表示])。SolidMXサーバーで順次生成される描画命令(言語はOpenGL)を,圧縮してクライアントに送る。描画命令のうち,更新のない部分は省く。SolidMXクライアントはSolidMXサーバーの描画命令を展開し,ローカルのグラフィックス・カ ードで3次元画像を復元。SolidMXのメニューや他のアプリケーションのウインドウなど,ターミナル・サービスが送ったデスクトップ画面と合成する*4


ネットワーク透過になるLonghornのUI

図●次期Windows「Longhorn(開発コード名)」のウインドウ・システム
Longhornで実装予定のグラフィックス描画機構「Avalon」では,アプリケーションやシェルが生成するベクター形式の描画命令を逐次合成して最終的なデスクトップ画面を生成する。画面更新がアプリケーション単位で処理されるため,描画データの差分のみをローカルとリモートを問わずに送信できる。

 次世代のWindowsには動画の再生や3次元CADをシンクライアントで利用しやすくする機能が標準のウインドウ・システムに組み込まれる。次期Windows「Longhorn(開発コード名)」で実装予定のグラフィックス描画機構「Avalon」は,シンクライアントに代表されるネットワーク透過のデスクトップ環境となる([拡大表示])。具体的には,アプリケーションやシェルが生成するベクター形式の描画命令を逐次合成して最終的なデスクトップ画面を生成する。画面更新の描画命令がアプリケーション単位で生成されるため,描画データの差分のみをローカルとリモートを問わずに送信できる。

 もっともこの仕組みをターミナル・サービスに適用するとは限らない。「サーバー版Longhornは盛り込む機能を見直している段階。現時点ではターミナル・サービスの具体像は不明」(マイクロソフト サーバープラットフォームビジネス本部Windows Server製品部の井尾慎之介プロダクトマネージャ)だという。