(主張×反論)<sup>2<sup>― 相対する視点から真実を見極める ―
 
インフラジスティックス・ジャパン株式会社
デベロッパー・サポート・エンジニア
池原大然 (いけはら だいぜん) 氏

 

クライアント アプリケーション推進者の主張

← 前のページへ 01 02 03 04 次のページへ →
  •  最近は Web アプリケーションに期待する流れが強く、クライアント アプリケーションは逆風にさらされているという感じがある。しかし当然のことだが、業務アプリケーションのすべてを Web アプリケーション化できるわけではない。アプリケーションの展開などといった初期の手間や、展開後のバージョン管理など運用コストが大きいという問題はあるが、クライアント アプリケーションでなければできないこと、クライアント アプリケーションだからこそできることがある。業務アプリケーションの目的は、業務を円滑化し効率化することにある。今述べたような欠点はあるにせよ、用途によってはそれを上回る利点が得られる。実際の案件でも、当初は手軽さから Web アプリケーション ベースでの開発を目指したが、要求仕様を満たすことができず、結局はクライアント アプリケーションで開発したというケースも多いようだ。
  •  さらに最近では、3D グラフィックスやアニメーション処理を強力にサポートする WPF が利用可能になり、クライアント アプリケーションの可能性が広がっている。WPF の業務アプリケーションへの応用はまだ手探りだが、大きな可能性があると感じる。
  • ■リアルタイム性能とデバイス制御
  •  クライアント アプリケーションの明らかな利点の 1 つは、リアルタイム性と高いパフォーマンスである。株取引のトレーディング端末ソフトウェアなど、リアルタイムに情報をどんどん更新する必要があるアプリケーションは、クライアント アプリケーションでなければ実現が難しい。また当然ながらクライアント アプリケーションは、基本的にローカル コンピューター上で実行され、実行自体に関してはネットワークに依存しないので、ネットワークの速度やサーバーなどの遅延にも影響を受けない。
  •  また業務システムでは、専用のラベル印刷機や、IC カードリーダー、生体認証デバイスなど、独自のハードウェア デバイスを制御する必要に迫られるケースも少なくない。Web ブラウザーさえあれば、幅広いクライアント環境からアクセスできるというリーチの広さでは Web アプリケーションに一日の長があるが、こうしたデバイス制御が必要なら、クライアント アプリケーションを採用せざるを得ない (Web アプリケーションでも技術的には不可能ではないが、不向きである)。
  • ■ Silverlight との違い
  •  Silverlight との違いについても触れておきたい。最近、最新版のバージョン 2 が公開された Silverlight は、起動時にプログラムが Web サーバーからダウンロードされると、その後はローカル コンピューターで実行されるので、Web アプリケーションとクライアント アプリケーションのいいとこ取りができる (配布の問題がなく、リッチなアプリケーションが開発できる) と主張する人もいるが、根本的な違いについて認識しておく必要がある。WPF は、当初からコンピューターのグラフィックス ハードウェア (GPU) をフル活用すべく設計されている。これに対しSilverlight 2 は、まだ GPU をサポートしていない。コンピューターが持つグラフィックス能力を最大限引き出すアプリケーションを開発したければ、当面、WPF クライアント アプリケーション以外の選択はない。
  • Web アプリケーション推進者の反論
    山田氏の反論:確かに現時点の Silverlight 2 では未対応であるが、2009 年にリリース予定の Silverlight 3 で GPU 対応が追加されることがすでに発表されている。
  • ■アプリケーションの展開問題
  •  ローカル コンピューターにプログラムをインストールしなければならないという展開の作業と、展開後のソフトウェアのバージョン管理は頭の痛い問題だ。しかしこの問題を解決する技術として、マイクロソフトは ClickOnce を提供している。これを利用すれば、展開やバージョン管理をほぼ自動化できる。コンピューター環境が標準化されず、さまざまな種類のコンピューターがネットワークに接続されていたり、Active Directory などのディレクトリ環境が整備されていなかったりすると、ClickOnce による解決は簡単ではないだろう。しかしこれはクライアント アプリケーションの管理に限った話ではなく、クライアント コンピューター管理全般に影響する問題だ。クライアント コンピューター管理のコストを低減するには、コンピューター環境の標準化が求められる。こうした準備が整っていれば、ClickOnce による問題解決も容易である。
  • Web アプリケーション推進者の反論
    山田氏の反論:理論的にはそのとおりだが、現実はそうでない場合が多いし、環境整備も容易ではないという実情がある。また ClickOnce によって展開は楽になるとはいえ、やはり .NET Framework を始めとする依存リソースをクライアント PC に直接インストールすることを好まないユーザーは多い。配布の容易さにおいてはブラウザ ベースの Web アプリケーションの優位は当面揺るがないと思われる。
  • ■高度な表現能力
  •  ASP.NET を利用した Web アプリケーションはもちろん、たとえ ASP.NET AJAX を駆使したアプリケーションと比較しても、グラフィカルな表現能力の高いアプリケーション開発なら WPF 利用が必然といってもよい。Silverlight でも WPF と同様の実行エンジンが利用できるが、あちらはあくまでサブセット版であり、WPF のフル機能は使えない。実際、金融系や医薬系、BI (Business Intelligence) 用途など、アプリケーションのプレゼンテーション能力を最大限に活用しようとするアプリケーション開発では、クライアント アプリケーションが常識である。一部には、従来の Windows フォーム アプリケーションで十分という意見があるが、それはまだ WPF の表現力を業務領域でどう生かすかが分かっていないだけだ。特定の業務に特化した領域で、生産性を大幅に向上するユーザー エクスペリエンスは必ずあるはずだ。将来的には、業務アプリケーションにおいても、WPF の表現力や機能性が不可欠な領域がはっきりすると考える。


    WPF コントロールを利用したサンプル (1)
    画面は インフラジスティックスの WPF Controls に含まれるデータグリッドを利用したアプリケーション例。


    WPF コントロールを利用したサンプル (2)
    こちらは WPF Controls に含まれるチャート コントロールの使用例。
  • ■セキュリティとリスク管理
  •  SaaS (Software as a Services) など、Web アプリケーション ベースの業務ソリューションが注目されているが、SaaS ではアプリケーションだけでなく、基本的にすべてのデータをサーバー側に置き、そこへのアクセスに通常はインターネットを使う。SaaS ベンダーは情報漏えいなどの事故防止に細心の注意を払っていると思うが、サーバーを物理的に自身の管理下に置いて、リスク管理をより完全に制御できるという点では、従来型のクライアント サーバー型システムに利点がある。
  •  また、個人レベルでネット ショッピングなどを使っているなら、多少のサービス停止も許容できるとはいえ、企業の情報システムでは、わずかなシステム停止がときに莫大な損失につながる危険がある。Web アプリケーションが使用するインターネットは、「最大の努力はするが、状況によってはサービスの品質が低下したり、最悪は通信不能になったりする可能性も否定できない」というベスト エフォート型のネットワークである。今後は帯域保証などを備えたネットワークも普及するものと思うが、現時点の Web アプリケーションは、そうしたベスト エフォートのインターネットに依存している。必ずしも保証のないネットワークに、重要な企業の情報システムを委ねてよいのか。SaaS による Web アプリケーションの導入を検討する企業は、この点をもう一度よく考える必要がある。
  • ■ Windows フォームから容易に WPF に移行できるコンポーネントを開発中
  •  現在、Windows フォームのアプリケーションから、スムースかつ早期に WPF アプリケーションに移行できるコンポーネントを開発している。当初はアニメーション機能の活用など、WPF ならではの部分に特化したコントロールを開発していたが、現在は業務アプリケーション用のコントロール開発に注力している。こうしたコントロールが拡充してくれば、WPF について改めて学習しなくても、容易に WPF 対応の業務アプリケーションが開発できるようになるだろう
  • Web アプリケーション推進者の反論
    山田氏の反論:プログラミング スキルの問題もさることながら、最大の問題は、WPF を業務アプリケーションでどう生かすかという点で、具体的な絵を描けていないことだ。Silverlight アプリケーションについても同様のことがいえるが、この問題をクリアしないと、「なぜ WPF なのか?」という疑問に答えられない。WPF の機能を業務アプリケーションの付加価値にどう反映していくか。これはすべての Windows 開発者に対する課題だろう。
← 前のページへ 01 02 03 04 次のページへ →