エンタープライズ:特集 2003/07/09 11:00:00 更新


ノータッチ・デプロイメントによるシームレスなアプリケーションの作成 (2/2)

 次に、同プログラムをHTTP経由で実行してみることにする。ここからがノータッチ・デプロイメントでの動作実験ということになる。動作前に先ほどの実行ファイルまでのパスをIISの仮想ディレクトリに指定しなければならない。先ほどの「管理ツール」にある「インターネット サービス マネージャ」(Windows XPならインターネット インフォメーション サービス)をダブルクリックすると、《画面9》が表示される。IISを起動したら、ここで「規定のWebサイト」を選択し、右クリックして表示されるメニューより、「新規作成」−「仮想ディレクトリ」を選ぶ。すると「仮想ディレクトリの作成ウィザード」が表示される(《画面10》)。あとはウィザードに従って入力を続けていこう。

画面9

画面9■「管理ツール」にある「インターネット サービス マネージャ」をダブルクリックすると、IISの管理画面が表示される


画面10

画面10■右クリックして表示されるメニューより、「新規作成」−「仮想ディレクトリ」を選ぶと「仮想ディレクトリの作成ウィザード」が表示される


 ここではエイリアスとして「test」という名前を持つディレクトリを作成する。手順は以下の通りだ。

  • エイリアス入力:「test」を指定(《画面11》)
  • パス入力:実行ファイルが格納されたフォルダまでのパスを指定(《画面12》)
  • アクセス許可設定:デフォルトを使用(《画面13》)
  • 完了(《画面14》)

 今回は、実行ファイルが格納されている領域を仮想ディレクトリに設定しているが、開発環境を考慮するならば、先に仮想ディレクトリを作り、そこにビルドした実行ファイルを格納させるのもよいだろう。

画面11

画面11■エイリアス入力:「test」を指定


画面12

画面12■パス入力:実行ファイルが格納されたフォルダまでのパスを指定


画面13

画面13■アクセス許可設定:デフォルトを使用


画面14

画面14■これで入力が完了する


 それでは、スタートメニューにある「ファイル名を指定して実行」へ「http://localhost/test/notouch.exe」のようにURLを入力してプログラムを起動する(《画面15》)。実行後にブラウザが起動するが、すぐ自動的に終了する。なお、ダウンロード支援プログラムなどを利用している場合は、通常通りの接続を行う指定をしてほしい。プログラムのダウンロードを選択した場合は実行されないことになる。

 ブラウザが閉じたあとには、先ほどと同様の画面が表示され、プログラムが起動したことが確認できる(《画面16》)。このときタスクマネージャの画面を確認すると、先ほどの「NoTouch.exe」は確認できず、その代わりに「IEExec.exe」が表示されていることが確認できる(《画面17》)。これは、次のような仕組みだ。

  1. 要求された.Netプログラム(アセンブリ)に対するlisten
  2. InternetExplorerをフックする
  3. ダウンロード・キャッシュ領域(ローカル・ディスク)へ実行ファイルをダウンロード
  4. 適切なセキュリティ環境の元、IEExecとしてプログラム(プロセス)を起動

画面15

画面15■プログラムを起動する


画面16

画面16■プログラムの起動が確認できる


画面17

画面17■NoTouch.exeの代わりにIEExec.exeが起動されている


 ノータッチ・デプロイメントにより配布されるプログラムは、動作する環境ではそれ自身がプロセスとして起動されることはない。また、そのインストールにおいてレジストリやDLLの登録など、不用意に動作環境を汚すこともない。

 さて、実行結果であるが、「OK」ボタン押下後の画面は次の通りである(《画面18》)。

画面18

画面18■アクセスに失敗した旨のメッセージが表示されている


すべての接続要求に失敗していることが確認できる。実はここで表示されているエラーメッセージは、すべてプログラム中から出力したものである。つまり、途中で発生したSecurityExceptionにおいて、ダウンロードされたプログラムが行おうとしている動作を信用するか、許可するかどうかなどのダイアログは一切表示されておらず、動作環境のアクセス制限を受けながらもプログラムは正常に実行され、終了されるのである。

ノータッチ・デプロイメントが実現するもの

 ノータッチ・デプロイメントを利用することによって、従来のローカル・アプリケーションのクライアントへの展開、並びにそのセキュリティ保持を効率的、かつ容易に行うことができる。ただし一方では、今回紹介したような機能的制約がトレード・オフ的に存在しているのだが、この制約は考えようによっては、開発者、特に業務アプリケーションを担当しているユーザーにとっては次の点において、利点となるだろう。

  1. 動作環境となるクライアントにはアプリケーションのショートカットさえあればよい
  2. アプリケーションは共有リソース上で更新することができる
  3. アプリケーションが利用するデータ、情報の一元化を強制できる

 はじめの2点はアプリケーションのアップデートやバージョン管理に威力を発揮するだろう。また、3点目は不用意にデータをクライアントサイドに残さない点で、日常のバックアップ業務から情報遺漏などのコンプライアンス面において有用ではないだろうか。

 一方、インターネット経由で配布することになるアプリケーションにおいては、信頼されたサイトからのダウンロードを除いて一切のリソースを使用できないことになる。この場合は、パーミッション取得許可のプログラムを駆使し、外部リソース(Webサイト、DB)などを利用する、携帯電話のiアプリのような形でアプリケーションの形態を保たなければならないだろう。

マイクロソフトによるノータッチ デプロイメント プログラミング コンテスト

マイクロソフトでは、2003年7月9日 〜 2003年9月30日までの期間、ノータッチ デプロイメントの機能に対応したアプリケーション(ユーティリティおよびゲーム部門)を募集する。応募された作品はコンテスト事務局の審査ののち、Web上で一般公開を行う。.NET Framework 1.1がインストールされたクライアントから、これら作品の閲覧が可能。部門別に優勝・準優勝が決定され、HDD レコーダーやXboxおよびXbox Live! スタータキットなどが賞品として用意されている。応募条件など詳細は以下のURLへ。

http://www.microsoft.com/japan/msdn/vstudio/

前のページ | 1 2 |      

[YMz,ITmedia]