特集

ファットからスマートへ進化する企業システムのクライアント

デジタルアドバンテージ
2004/03/31
Page1 Page2 Page3 Page4

2. C/Sシステムからスマート・クライアントに継承された特長

 先ほど述べた「リッチ・クライアント」の定義の中で「従来のC/Sシステムの豊富なユーザー・インターフェイスの表現力と操作性、機能を備える」と述べた。「マイクロソフト版リッチ・クライアント」であるスマート・クライアントは、当然ながらこれらの特長を備えている。

ユーザー・インターフェイスの自由な「表現力」

 スマート・クライアントでは、Webシステムにおいて問題だったユーザー・インターフェイスの表現力が向上する。これは、「Web展開型クライアント」である「ノータッチ・デプロイメントなどを使ったWindowsアプリケーション」や「Microsoft Office SystemのVSTOソリューション」、もしくは「Web連携型クライアント」である「Microsoft Office SystemのInfoPath、Word/Excel」などを考えるとすぐに理解できるだろう。

 Windowsアプリケーション(.NET FrameworkのWindowsフォーム・アプリケーション)なら、高機能な描画のための.NET Frameworkのクラス群であるGDI+(Graphics Device Interface Plus)を使って、カラフルなイメージやラインなどの自由なレンダリング(描画)を行うことができる。

 また、VSTOソリューション、InfoPath、Word/ExcelなどのOfficeアプリケーションなら、Excelによる自由な表計算画面/多彩なグラフ機能、Wordによる高度なレイアウト機能/美しく精密な印刷といったMicrosoft Officeの強力な表現力をそのまま利用できる。

高い「操作性」によるユーザビリティの向上

 スマート・クライアントでは、C/Sシステム同等の操作性を実現でき、その結果アプリケーションのユーザビリティが高まる。

 例えばWindowsアプリケーションなら、Windowsフォーム特有の多機能なコントロールを使ったり、独自作成したコントロールを利用したりすることで、使い勝手のよいユーザー・インターフェイスを構築できる。またOfficeアプリケーションなら、使い慣れたWord/Excelのユーザー・インターフェイスをそのまま利用できる。

 このようなユーザー・インターフェイスを使うことにより、キーボードによるショート・カット機能、マウスによるドラッグ&ドロップ機能などが利用できるようになり、またキーボードを使ったコントロール間の自由な移動なども可能になる。さらにWebアプリケーションのように、入力データを画面に反映させるだけのためにサーバにアクセスしてページをリフレッシュする必要がなく、クライアント・サイドの処理だけで画面を高速に更新できるので、キーボードを使った大量かつ高速な入力も可能だ。特に、大量のデータを次々と入力するデータ・エントリー業務では、生産性が大幅に向上する。

ローカル・リソースを活用したリッチな「機能」

 スマート・クライアントはローカル環境で実行される。その結果、ローカル環境のリソース(ファイルなど)が利用できるようになる。例えば、ローカル環境にあるファイルの参照や変更といった操作や、クリップ・ボードの利用、プリンタなどのハードウェア・デバイスの制御などを行うことができる。これにより、アプリケーションの機能が充実して、利便性が向上するだろう。

 またスマート・クライアントでは、(サーバ側で処理せずに)ローカル環境だけである程度の処理を行うことが、サーバの負荷軽減につながる。例えば、入力データの基本的なチェック(例えば、入力チェックをして、チェックに合格しないとボタンが押せないようにするなど)をクライアント・サイドで行うことができるので、入力が行われるたびに逐一、サーバにアクセスする必要がなく、そのためサーバへの負荷を軽減できる(もちろんこの例の場合は、サーバ側でのより厳密なチェックは必要になるだろう)。

 以上が、C/Sシステムからスマート・クライアントへ継承されたリッチ・クライアントの特長である。次に、Webシステムからスマート・クライアントに取り入れられた利便性を見てみよう。

3. Webシステムからスマート・クライアントに取り入れられた利便性

 再びリッチ・クライアントの定義を思い出そう。この定義の後半で、リッチ・クライアントは「Webシステムの展開容易性や運用容易性などの利点を有する」と述べた。つまり、スマート・クライアントには、Webにおける「展開」「運用」などの利便性が取り入れられているのだ。

インターネット/イントラネット経由での「展開」

 スマート・クライアントでは、.NET Frameworkの機能によるインターネット/イントラネット経由での展開が可能だ。この機能を利用するクライアントの種類は、主に「Web展開型クライアント」である。例えば、「ノータッチ・デプロイメントなどを使ったWindowsアプリケーション」「Microsoft Office SystemのVSTOソリューション」などがそれに当たる。

 例えば、Windowsアプリケーションの場合、インターネット/イントラネット上のWebサーバに配置した「.NETアセンブリのクライアント・アプリケーション(.exeファイル)」を、IEから直接起動できる仕組みがある。また、同じようにWebサーバに配置した「.NETアセンブリのモジュール(.dllファイル)」をアプリケーションで読み込む仕組みもある。これらの仕組みが、.NET Frameworkの「ノータッチ・デプロイメント」機能である。

 「ノータッチ・デプロイメント」の便利な面は、Webサーバに単純に配置するだけで、アプリケーションの展開や更新が可能なところだ。詳しくは、「ノータッチ・デプロイメント」を参照されたい。なお、参照先の記事では紹介されていないが、「.NETアセンブリのモジュール(.dllファイル)」のノータッチ・デプロイメントは、Assemblyクラス(System.Reflection名前空間)のLoadFromメソッドを使用することで実現できる。

 そのほか、Windowsアプリケーションでは、このノータッチ・デプロイメント機能を利用したアプリケーション自動更新のメカニズムをコンポーネントとしてまとめた「.NET Application Updater Component」や、さらに自動更新のダウンロードにBITS(Background Intelligent Transfer Service:バックグランド・インテリジェント転送サービス)を利用した「Updater Application Block for .NET」といったサンプル・コードがある(.NET Application Updater Componentの詳細は、GotDotNet「.NET Application Updater Component」(英語)を、Updater Application Block for .NETの詳細はMSDN「Updater Application Block for .NET」(英語)を参照していただきたい)。

 なお、2005年上半期にリリース予定の次期開発ツール「Visual Studio 2005(コード名“Whidbey”)」と.NET Framework 2.0では、「ClickOnce」と呼ばれるノータッチ・デプロイメント強化版の機能が提供される予定だ。ClickOnceでは、ノータッチ・デプロイメントのようにWebからプログラムを直接実行する形式だけでなく、クライアント・ローカルにインストールして、そのプログラムを実行するタイプの配置も行えるようになる。この後者の配置方法を取る場合、オフラインのときでもクライアント・アプリケーションの実行が可能になる。しかも、ネットワークに接続可能なオンライン状態のときにのみ、(起動時などに)サーバに問い合わせてバージョンを確認し、新しいバージョンが存在するとそのプログラムを自動ダウンロードする。ただし、ClickOnceを利用するには、クライアント側に新しい.NET Frameworkをインストールしなければならない(ClickOnceの詳細については、MSDN Japan「"ClickOnce" によるクライアント アプリケーションの配置の紹介」を参照)。

 次にVSTOソリューションの場合だが、先ほどのノータッチ・デプロイメントと同じように、VSTOで作成した「.NETアセンブリのモジュール(.dllファイル)」をWebサーバに配置するだけで展開や更新を行うことができる。これはOffice 2003から利用可能なアプリケーション・デプロイメントのための機能である(参考:「Office 2003で変わる業務アプリケーション」/「.NET言語による次世代Officeソリューションの開発」)。

 Windowsアプリケーションにしても、VSTOソリューションにしても、.NET Frameworkを利用するので、そのセキュリティ機構である「コード・アクセス・セキュリティ(CAS)」に保護されることになる。これにより例えば、十分な権限を与えられたプログラムでなければ、ローカル・ファイルなどのリソースへのアクセスが制限されるなど、セキュリティ上の安全性も向上する。これもスマート・クライアントの1つの大きな特長である(CASについての参考記事:「インサイド .NET Framework」)。

ビジネス・ロジックの集中化による「運用」コストの低減

 スマート・クライアントでは、認証機能やデータ・アクセスなどのビジネス・ロジックをサーバ側に集中させることで、Webアプリケーションの場合と同じように、アプリケーションを運用・管理するためのコストを減らすことができる。例えば、認証機能のビジネス・ロジックをサーバ側に置くことで、認証システムに仕様変更があったとしても、クライアント・アプリケーションはまったく変更することなく、サーバ側のビジネス・ロジックを変更するだけで、システム更新が可能になる。このようなサーバへのビジネス・ロジックの集中化は、「Web展開型クライアント」でも「Web連携型クライアント」(Windowsアプリケーション/Officeアプリケーション)でも同じようにメリットがある。

 サーバにビジネス・ロジックを置く場合、クライアント・アプリケーションは、ビジネス・ロジックのあるサーバと通信を行って機能やサービスを実現することになる。この際の通信に使われる技術は、基本的にXML Webサービスである。もちろんXML Webサービス以外の通信手段を使うことも可能だ。例えば、WindowsアプリケーションやVSTOソリューションなら、.NETリモート処理(.NET Remoting)などの通信手段を利用してもよいだろう。ちなみにInfoPathやWord/ExcelといったOfficeアプリケーションの場合はXML Webサービスを利用するしかない。

 以上、Webシステムからスマート・クライアントに取り入れられた利便性について解説した。最後に、ほかのリッチ・クライアントにはない、スマート・クライアント独自の特長について解説しよう。


 INDEX
  [特集]ファットからスマートへ進化する企業システムのクライアント
     1.従来型システムの限界とリッチ・クライアントの登場
     2.リッチ・クライアントとスマート・クライアントの関係
   3.スマート・クライアントの特長と利便性
     4.マルチ・デバイス、オフライン対応
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH