特集

ノータッチ・デプロイメント

―― Web+Windowsという新たな可能性 ――

一色 政彦
2003/08/12
Page1 Page2 Page3 Page4 Page5 Page6

 Webアプリケーションは広く普及し、多くのビジネス・シーンで使われるようになった。その理由のひとつとして、アプリケーションのセットアップおよびアップデートが容易なことが挙げられる。通常のデスクトップ・アプリケーションは、すべてのクライアント・マシンに対してセットアップやアップグレードを行わなければならないため、運用および管理のコストが膨大になるという欠点がある。しかし、Webアプリケーションは、サーバでアプリケーションを集中管理できるので、管理コストを抑えられる。

 運用、展開といった面で強力なWebアプリケーションだが、問題点もある。Webページをベースとしているため、ユーザー・インターフェイスの表現力、応答速度とパフォーマンス、機能などが、デスクトップ・アプリケーションに比べ貧弱な場合が多い。このため、WindowsアプリケーションからWebアプリケーションに乗り換えた場合、ユーザーから見るとアップグレードではなく、ダウングレードになってしまうことがある。ユーザーにすれば、リッチ・クライアントのユーザー・インターフェイスや機能、パフォーマンスはそのままにWebアプリケーションに移行してほしいというのが本音だろう。

 そのようなニーズにこたえる機能が、Visual Studio .NET 2003(正確には.NET Framework 1.1)でサポートされている。「ノータッチ・デプロイメント」という機能だ。Webブラウザ上のリンクから、リッチ・クライアントのWindowsアプリケーションを直接起動できる機能である。この機能はもともと.NET Framework 1.0よりサポートされていたが、.NET Framework 1.0 SP1/SP2ではデフォルトで機能しないように仕様が変更されてしまったため(理由は不明)、ほとんど活用されていなかったといえるだろう。しかしVisual Studio .NET 2003では、この機能が再びデフォルトのままで動作するようになったため、.NET Framework 1.1の主要な機能として大きく取り上げられるようになっている。

ノータッチ・デプロイメントとは

 ノータッチ・デプロイメントの機能を利用すれば、WindowsアプリケーションでWebアプリケーションを置き換えることができる。つまり、運用・管理コストを軽減できるWebアプリケーションの良さを失わずに、ユーザー・インターフェイス、応答速度とパフォーマンス、機能、サーバへの負荷などにおけるWebアプリケーションの欠点を解消できるのである。

 ノータッチ・デプロイメントを行うには、Visual Studio .NET 2003で作成したプログラム(exeファイル)をWebサーバ上に配置し、そのプログラムへのリンクをWebページに張るだけである。なお、プログラムはWebサーバ上で動作するわけではないので、WebサーバはIISである必要はない。それどころか、サーバはWindows以外のOSで動作していてもよい。

 exeファイルへのリンクをクリックすると、従来ならば「ファイルのダウンロード」ダイアログが表示され、「開く」か「保存する」かを選択するが、ノータッチ・デプロイメントではそのままプログラムを実行できる。セキュリティ制限された状態でプログラムが実行されるので、このプログラムがローカル・ディスクやレジストリへアクセスすることはできない。よって、それがウィルスやトロイの木馬といった悪意のあるプログラムであったとしても、攻撃を受ける心配はない。このセキュリティ制限は、.NET Framework 1.1の「コード・アクセス・セキュリティ」によるものだ。コード・アクセス・セキュリティについては、後に詳しく解説する。

 ノータッチ・デプロイメントがどのようなものか確認するためのサンプルを用意した。このサンプルへのリンクをクリックすると、Windowsのリッチ・クライアントのプログラムが実行される(ダウンロードの時間が多少かかる場合がある)。なお、ノータッチ・デプロイメントを実行するには、次のクライアント要件を満たす必要がある。

Microsoft .NET Framework 1.1(Windows Updateで入手できる)
.NET Framework 1.1 が動作するOS
 ・Windows Server 2003
 ・Windows 2000 Service Pack 3 以上
 ・Windows XP
 ・Windows NT 4.0 Service Pack 6.0a 以上
 ・Windows Millennium EditionおよびWindows 98
Microsoft Internet Explorer 5.01 以上
ノータッチ・デプロイメントに必要なクライアント要件
なお、ノータッチ・デプロイメントをするには、Internet Explorerの「インターネット オプション」の「セキュリティの設定」で、「.NET Framework依存コンポーネントの実行」を有効にしておく必要がある。デフォルトでは、これは[有効にする]になっている。

 このハイパーリンクをクリックすると、ブラウザからプログラムが直接、起動する(下図参照)。

ノータッチ・デプロイメントのためのサンプル・プログラム
このアプリケーションは、セキュリティ制限のかかった環境下でも動作する。

 ノータッチ・デプロイメントでは、実行プログラムの.NETアセンブリがローカル・ディスクの.NETダウンロード・キャッシュ領域にダウンロードされ、ダウンロードされたアセンブリは.NET Frameworkが提供するIE実行シェル(IEExec.exe)上で動作される。これにより、プログラムは個別のプロセスを発生させることなく、IE実行シェルの強力なセキュリティ制限を受けて動作することになる。次の図はその一連の動作の仕組みを表したものである。

ノータッチ・デプロイメントの仕組み
  .NET FrameworkはWebブラウザ(Internet Explorer)をフックし、Webブラウザから.NETアセンブリが要求されるのを待機。
  ユーザーがプログラムへのリンクをクリック(.NETアセンブリを要求)。
  .NETダウンロード・キャッシュ領域に.NETアセンブリをダウンロード。
  IE実行シェル(IEExec.exe)がアセンブリのダウンロード元のサイトに基づきセキュリティ制限のレベルを決定して、アセンブリをロードし、IE実行シェル上でプログラムを起動する。

 次に、.NETアセンブリのセキュリティ制限を行う.NET Frameworkのコード・アクセス・セキュリティについて詳しく見ていこう。

 

 INDEX
  [特集]ノータッチ・デプロイメント
   1.ノータッチ・デプロイメントとは何か
     2. .NETアセンブリのコード・アクセス・セキュリティ
     3.インターネット・ゾーンのセキュリティ・ポリシー
     4.ノータッチ・デプロイメントのプログラミング(1)
     5.ノータッチ・デプロイメントのプログラミング(2)
     6.ノータッチ・デプロイメントのコンテスト開催!
 

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH