Akira's Commentary

最後に

VNCのプロトコルはこれですべてです。 画面データのエンコーディングが何種類かありますが、 最低限であればRawエンコーディングだけサポートすれば一応動作します。 実際、性能やネットワークの負荷を考えなければサーバ、 クライアントともに簡単に実現することができます。

このようなプロトコルの単純さ、そして実装の容易さが、 最初にあげたようなさまざまなプラットフォームへの適用を 可能にしてきた理由のひとつだと思います。 そして、そのような単純さは、当初は想定していなかったような 利用形態を見出してきています。 最後にそれらの利用方法を紹介し、また、 今後改善されるべき問題点を挙げておきます。

変わった使い方

Xvncサーバとビューワと組み合わせれば フリーのXサーバとして使用することができます。 普段はWindows、Mac、OS/2を使っていて たまにXのアプリケーションも使いたい、 といったユーザには便利な環境です。 ただこのような使い方をする場合には、 あらかじめXvncを起動しておかなければなりません。 これは結構面倒です。

このような使い方をする場合に、 Xvncをinetd経由で起動するようにするパッチが出ています。

iXvnc - inetd 対応パッチ
http://www.dei.isep.ipp.pt/~andre/extern/ixvnc.htm (1)

これを使うとビューワを起動して接続するとxdm の画面が表示されます。 まさにVNCビューワがX端末のように使えるわけです。

この場合にはVNC側の認証は不要で、xdm でユーザ認証することになります。 また、ビューワを終了させるとXvncも終了します。 (2)

また、VNCをリモートマシンのモニタに使用している方も多いようです。 サーバマシンなどは離れた場所に設置されることが多いのですが、 そのようなマシンにVNCサーバを載せておけば、 自分のデスクから離れずに状態を見たり、 操作したりすることができます。 特にリモートでの操作性のよくない NTサーバなんかを使っている人にはありがたいようです。 (3)

モニタする対象はサーバだけに限りません。 教室などで、学生のマシンにVNCサーバを載せておけば、 居ながらにしてどのような操作をしているのかを見たり、 リモートに操作したりすることができます。 ヘルプデスクなどに使っているケースもあるようです。

なお、このような使い方をするなら、 複数のリモートデスクトップを簡単に切り替えて 見ることができると便利になります。このような使い方のために

VNC Monitor
http://www.wilson.co.uk/Software/vnc/VncMonitor.htm

というパッケージが開発されています。

いくつかの弱点

いろいろとVNCの便利な面を紹介してきましたが、 VNCとて完全なわけではありません。 いくつかの弱点、問題点があります。

さしあたって改良が行なわれているのはセキュリティの問題です。 VNCは接続時にこそきちんとした認証を行ないますが、 画面のデータやキー入力は生のデータとして送られ、 簡単に外部にもれてしまいます。 ただ、この問題についてはちゃくちゃくと進展しているようです。 開発元ではSSHを利用するためのガイドが公開されています。 (4)

また、第三者によって

  • Firewall対応
  • SSLeay対応
  • IPアドレスによるアクセス制限

等が実装されています。

一方、誰もが期待しながらなかなか進展しない問題としては、 WinVNCの性能向上があります。 WinVNCとXvncの両方を使うと判るのですが、 Xvncに比べるとWinVNCは極端に性能が落ちます。

サーバはクライアントからの要求に対して、 更新された部分の画面データを返します。 XvncはそもそもXサーバとして動作していますので、 更新領域は簡単に取得できます。 しかしWinVNCの場合には、他のアプリケーションが 更新した画面の範囲を調べなければなりません。 この部分の処理の差が XvncとWinVNCの性能の差となって現れる訳です。

この部分の性能向上を図るにはWindowsの内部構造、 処理を知る必要があるのですが、 このあたりは公開されていない情報ですのでなかなか進展しません。 仮想ビデオドライバのようなものを使えばきっと速くなるだろうと いわれているのですが、残念ながらなかなか現われません。 (5)

WinVNCに関してはNLSキーがきちんと扱えない点も問題です。 ただ、この点について、いくつか実験的なパッチがでています。 しかし各国のキーボードを統一的に扱うとなると難しいようです。

UTSL

いろいろと弱点もありますが、なんといってもVNCは プロトコルもソースも公開されているシステムです。 弱点があれば補うことができます。 新しい使い方を思い付いたなら それにあわせて改造することができます。 単純なシステムですので、 サポートされていない環境で使いたければ作ることもできます。 かつての賢者のいったように。

Use The Source, Luke

そしてVNCがあなたのコンピューティング環境を よりよいものにしますように。

参考資料

http://www.uk.research.att.com/vnc/
AT&T ケンブリッジ研究所のVNCページです。 VNCに関する情報は、ほぼすべて、ここで入手できます。 (6)
http://www.uk.research.att.com/vnc/docs.html
こちらにはVNCの関するドキュメントがまとめられています。
http://www.uk.research.att.com/vnc/faq.html
なにか困ったことがあれば、とりあえず見た方がいいでしょう。
http://www.uk.research.att.com/vnc/download.html
公式バージョンはここからダウンロードできます。
http://www.uk.research.att.com/vnc/platforms.html
第三者によってサポートされているものは、 ここからたどることができます。
ちなみに今さらですが、 私が移植したOS2 PM版ビューワも記載されていました(リンクは切れています)。 現在はここから入手できます
http://www.uk.research.att.com/vnc/extras.html
こちらには第三者によって拡張、変更されたバージョンがリンクされています。