システム管理者のための.NET入門

第3回 アプリケーション配布問題を解決する最新テクノロジClickOnce

デジタルアドバンテージ 小川 誉久
2007/01/11

 前回、ビジネス・アプリケーションの典型的な構成としてC/S型システム、Web型システム、スマート・クライアント型システムがあり、それぞれ長所短所があることを説明した。中でもC/S型とスマート・クライアント型システムでは、Windowsネイティブ・アプリケーションとしてユーザー・インターフェイス(UI)を実装するため、Windows OSの機能をフル活用したリッチでレスポンス性の高いクライアント環境を実現できるメリットがある。しかしこれらの構成では、クライアント・アプリケーション配布の問題からTCOが増大しやすく、敬遠につながる大きな要因になっていると述べた。

 このアプリケーション配布問題を解消するために、マイクロソフトが最新のVisual Studio 2005(以下VS 2005)で提供を開始したのがClickOnceと呼ばれる技術だ。今回は、管理者にとって非常に負担の大きいクライアント管理の負担を大幅に軽減してくれるVS 2005のClickOnceに注目してみよう。

MSのアプリケーション更新技術。ClickOnceに至る経緯

 これまでマイクロソフトは、クライアント・アプリケーションのバージョン管理に伴うTCO増大の問題を解決するために、.NET開発の一環として、アプリケーション配布の自動化機能を段階的に開発してきた。その最新版が前出のClickOnceである。ClickOnceの説明をする前に、ClickOnceに至るアプリケーション配布の自動化機能の歴史を簡単に振り返ってみよう。

■ノータッチ・デプロイメント
 .NET Framework 1.x(1.0、1.1)では、ノータッチ・デプロイメントと呼ばれる機能が提供されていた。これは、Webサーバを利用して、クライアントからアプリケーションを実行する方式の1つだ。前回、イントラネット内のWebサーバなどにアプリケーションの実行ファイルを配置し、クライアントからこれを起動するというC/S型システムの展開方法を紹介したが、ノータッチ・デプロイメントとはまさにこの方式である。開発された.NETアプリケーションをWebサーバ(IIS以外も利用可能)に配置し、実行プログラムへのリンクを含むWebページを作成し、ブラウザでこのリンクをクリックすることで、クライアント・アプリケーションを実行可能にするというものだ。

 通常、このような形式で実行ファイル(.EXE)のリンクをブラウザでクリックすると、「ファイルのダウンロード・ダイアログ」(対象を開くか、保存するかを問い合わせるダイアログ)が表示される。しかしノータッチ・デプロイメントでは、このようなダイアログを表示せずにアプリケーションを実行可能にしている。アプリケーションの実行時、実行ファイル以外に.DLLファイルが必要な場合には、それらも自動的にダウンロードできる。

 しかし、このノータッチ・デプロイメントでのアプリケーション配布を可能にするには、クライアント側にあらかじめ適切な.NET Frameworkランタイムをインストールしておく必要がある。また、ダウンロードされたアプリケーションは、デフォルトではセキュリティ制限の強いサンドボックス内部で実行されるため、実際の利用では面倒なポリシー設定が不可避だった。さらに、ユーザーが手動でInternet Explorer(以下IE)の「オフライン利用」をしたときだけオフライン実行が可能で、アプリケーション側ではこれを制御できないという問題があった。これらの問題から、実用には高いハードルがあり、ノータッチ・デプロイメントは広く普及するには至らなかった。

■Updater Application Block(UAB)
 ノータッチ・デプロイメントの諸問題を解決するため、マイクロソフトは、Updater Application Block(UAB)と呼ばれる仕組みを提供している。UABでは、配布するアプリケーション側にライブラリを追加し、このライブラリを利用してアプリケーション自身が構成ファイルの更新管理(ダウンロード管理)を行う。これにより、例えばプログラムが更新されている場合には、必要に応じてサーバからプログラムがダウンロードされて実行される。

 UABの利点は、アプリケーションがサンドボックスの影響を受けない完全なローカル・アプリケーションとして実行可能なことだ。このためクライアントに対する面倒なセキュリティ・ポリシー設定は不要であり、通常のWindowsアプリケーションと同様に[スタート]メニューにプログラムを追加して実行することもできる。オフライン状態での実行も可能である。

 しかしUABをアプリケーションに組み込むためには、UABの設定や運用に関する知識が必要不可欠で、開発者にとっても管理者にとってもハードルが高かった。またサンドボックスとは無関係に実行できるのはよいが、逆にそのことがセキュリティ上の弱点となり得る。これらの欠点から、UABも普及には成功していない。

■ClickOnce
 ノータッチ・デプロイメントとUABの欠点を克服するアプリケーション配布機能として、最新のVisual Studio 2005に実装されたのがClickOnceである。ClickOnceは、前述したUABの利点(ローカル・インストールやオフライン実行など)をほぼ引き継ぎながら、UABの最大の欠点だったセキュリティ問題を解決している。オフライン/オンラインの状態を自動的に認識して、オンライン時にのみアプリケーションの更新を行う。UABではアプリケーション・コードの変更が必要だったが、ノータッチ・デプロイメントと同様、ClickOnceではアプリケーション・コードの変更は不要である。UABのような複雑な設定も必要ない。ClickOnceアプリケーションをクライアント側で実行するには、.NET Framework 2.0が必要だが、これは別途展開しなくても、ClickOnceアプリケーションの実行時に.NET Framework 2.0の有無を検査し、まだインストールされていなければ、.NET Frameworkランタイムのサーバからのダウンロードとインストールを実行するように設定することもできる(設定により、.NET Framework 2.0を必須コンポーネントとして指定する)。つまりClickOnceでは、.NET Framework 2.0ランタイムの配布も中央で管理できるということだ。


 INDEX
  システム管理者のための.NET入門
第3回 アプリケーション配布問題を解決する最新テクノロジClickOnce
    1.ClickOnceアプリケーションの初期インストール
    2.ClickOnceアプリケーションの更新
 
目次ページへ  「システム管理者のための.NET入門」
Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

スキルアップ/キャリアアップ

.NET管理者虎の巻

- PR -
- PR -