【.NET】スマートクライアントとは?
【Patterns & Practices】Smart Client Architecture and Design Guide:
Chapter 1 - Introduction: What Is a Smart Client?
まずはスマートクライアントとは何ぞや?というところからです。
この辺りはわざわざ英語のドキュメントを読むより、日本語記事のほうがわかりやすそうですね。以下、参考文献です。
ファットからスマートへ進化する企業システムのクライアント - @IT
http://www.atmarkit.co.jp/fdotnet/special/smartcli/smartcli_01.html
スマート・クライアントの傾向と対策 - @IT
http://www.atmarkit.co.jp/fdotnet/special/smartstrtg/smartstrtg_01.html
あちこちに書かれているお決まりの話ではあるものの、
スマートクライアント登場の背景をまとめてみました。
【ファットクライアントアプリケーション】
クライアント上で動作するスタンドアロンアプリケーション。1990年代中頃が全盛期。
ネットワーク上にデータベースを配置し、複数のクライアントアプリケーションから利用するようにしたC/Sシステムや、DCOMを利用してリモートオブジェクトを参照するようなシステムもこの部類に含まれる。
■メリット
・ローカルマシンのハードウェアリソースを活用できる。
・ローカルマシンのOS(Windows)の機能を活用できる。
■デメリット
・クライアントへの配布が大変。
・配布したアプリケーションのメンテナンスが大変。(複数のアプリケーションが共通のコンポーネントやライブラリを参照していた場合に、共通のコンポーネントやライブラリをバージョンアップすると、他のアプリケーションが動かなくなる危険性がある。)
【シンクライアントアプリケーション】
ファットクライアントアプリケーションのデメリットを解決するための代替技術として、
Webブラウザベースのアプリケーションが台頭するようになる。
■メリット
・アプリケーションのロジックをWebサーバーで集中管理するため、配布の必要がなくなる。メンテナンスも楽になる。
■デメリット
・インターネットに接続していなければアプリケーションを使うことができない。
(接続が切れてしまった場合は、再入力しなければならない。)
・ファットクライアントアプリケーションに比べてユーザビリティが低下する。
(ドラッグ&ドロップができない、アンドゥができない、などなど)
・頻繁にサーバーにリクエストを送信するため、ファットクライアントアプリケーションに比べてユーザーの待ち時間が増加する。
【スマートクライアントアプリケーション】
スマートクライアントアプリケーションは、前述のファットクライアントアプリケーションとシンクライアントアプリケーションの良いところを合わせ持ったものだとしている。
■スマートクライアントアプリケーションの特徴
1. ローカルリソースの利用
スマートクライアントはローカルマシン上で実行される。そのため、ローカルマシンのハードウェアリソース、ソフトウェア、アプリケーションを有効活用することができる。
2. ネットワークリソースの利用
スマートクライアントはネットワーク上の異なるサービスやデータにアクセスすることができる。ネットワーク上に公開されたWebサービスにアクセスすることもできるし、ビジネスロジックをサーバーで一元管理することでアプリケーションの配布やメンテナンス容易にすることもできる。
3. 非接続ユーザーへの対応
一時的にネットワークに接続していないユーザーであっても、操作を継続することが可能である。オフラインの時は更新したデータをクライアント側に保存しておき、ネットワークに接続できる状況になったらオフラインの時に入力したデータをサーバー側に反映させれば良いのだ。
4. 洗練されたインストールとバージョンアップ
スマートクライアントのデプロイ方法は何通りか考えられる。
単純にソースコードをローカルマシンにコピーする方法から、ノータッチデプロイメントを利用して中央のサーバーから自動的にソースコードをダウンロードする方法、Windowsインストーラーパッケージを配布する方法などなど。
ユーザーの要求に合わせて最適なデプロイ方法を選択すれば良い。
5. クライアントデバイスとの容易な連携
スマートクライアントアプリケーションはデスクトップPCやノートPCに限られている訳ではない。タブレット用のスマートクライアントアプリケーションや、携帯端末用のスマートクライアントアプリケーションを作成することもできる。
それにしても、1章の1節を読むだけで、こんなに辛いなんて。日本語プリーズ。
【参考資料】
(英語)Smart Client Architecture and Design Guide: Chapter 1 - Introduction
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scag-ch01.asp