【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 
 

特集

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

―― 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 フォーラム 新着記事

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

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?