1990年代に爆発的に普及したクライアント/サーバー型システムだが,最近は出番が減った。Webシステムが全盛の昨今は,クライアント/サーバー型システムを選択すべきではない,という雰囲気さえある。なぜ,クライアント/サーバー型システムは嫌われたのか。理由は大きく二つある。

 第一に,クライアントにアプリケーションを配布する手間がかかったからである。クライアント・アプリケーションには,業務ロジックの一部が含まれるために,業務内容を変更したり機能を改修したりするには,クライアント・アプリケーションをバージョンアップしなければならなかった。その作業を利用者側に任せるとバージョンアップが徹底されない結果,バージョンアップしなかった(もしくは,できなかった)利用者のサポートに,時間を費やすことになった。

 第二に,クライアントごとのOSやライブラリのバージョン違いで,クライアント・アプリケーションが誤動作する事故が頻発したからだ。クライアント・アプリケーションは複雑な業務ロジックを含むこともあり,外部のライブラリ(DLLファイルなど)を多用することが大半だった。異なるアプリケーションで同じDLLファイルを使うことも珍しくなく,ほかのアプリケーションのバージョンアップによってDLLファイルが変更され,アプリケーションが動かなくなることがある。これを“DLL地獄”と呼んだ。

 では,今日でもクライアント/サーバー型システムは敬遠すべきかというと,実はそうでもない。当時とは状況が変わっているからだ。現在のWindowsはアプリケーションごとにDLLファイルを管理しており,同じ名前のDLLファイルがほかのアプリケーションに単純に上書きされてしまうことはない。DLL地獄は改善されている。

 さらにアプリケーションの配布についても,解決する技術が登場済みだ。米Microsoftのシステム基盤ソフト「.NET Framework 2.0」に搭載されている「ClickOnce」である。これは,Webサーバー上にアプリケーションの最新バージョンを配置するだけで,クライアントに半自動で配布または更新する技術である( )。

図●「ClickOnce」でクライアント・プログラムを自動更新する仕組み
図●「ClickOnce」でクライアント・プログラムを自動更新する仕組み
Windowsの[スタート]メニューからアプリケーションを実行すると,ClickOnce Loaderが最新バージョンの有無をチェックし,新しいものがあれば利用者に通知。利用者が承認したら更新して実行する
[画像のクリックで拡大表示]

 利用者がクライアント上でアプリケーションを起動しようとすると,ClickOnceがWebサーバー上の最新バージョンの有無を自動的にチェックし,存在すればダウンロードして更新する。ダウンロードするのは更新された差分のみなので高速である。セキュリティにも配慮しており,完全に信頼できないアプリケーションはClickOnce上で動作する仕組みを備えている。