技術解説DLL Hellを解消する新しいWindowsインストーラとアセンブリ ―― シック・クライアント・アプリケーションの普及拡大を狙い、Microsoftは.NET FrameworkとWindows XPにアプリケーションのインストールを容易にする新しい機能を組み込んだ ―― 1.クライアント・ソフトウェアのインストールに関わる問題Peter Pawlak2003/03/13 Copyright(C) 2003, Redmond Communications Inc. and Mediaselect Inc. |
||
本記事は、(株)メディアセレクトが発行する月刊誌『Directions on Microsoft日本語版』 2003年02月15日号 p.6の「進化するWindowsインストーラ アプリケーションのインストール方法を改善」を許可を得て転載したものです。同誌に関する詳しい情報は、本記事の最後に掲載しています。 |
シック・クライアント・アプリケーションの配布、インストール時に多くの企業ユーザーが直面する厄介な問題を解消しようと、MicrosoftはWindowsにさらなる改良を加えている。同社はWindows Installerの新バージョンで幾つかのインストール・タスクを新たにサポートした。また、Windows XPにおける共有コンポーネントのサポート改善や.NET Frameworkの導入で、アプリケーションのインストール時に生じる「DLL Hell」の問題も軽減した。
それにもかかわらず、アプリケーションのインストールは依然として容易ではない。.NET Framework対応のアプリケーションで利用できるはずの「XCOPY」も、まだ制限事項があり、クライアント・アプリケーションの導入、インストールの実用的な手段とはいえない。
ここではクライアント・ソフトウェアのインストールについてのみ取り上げ、Microsoftのソフトウェア配布製品やサーバ・アプリケーションのインストールに関する改善点については言及しない。また、アプリケーションのインストールのみを扱う。Windows XPやWindows Server 2003には、OSコンポーネントやパッチのインストール方法に影響を及ぼす新機能は含まれない。
シック・クライアントのインストールをサポート
いわゆるシン・クライアント(サーバ側で実行するアプリケーションとデータをやりとりするブラウザや端末など)とクライアント・サイドのアプリケーション(シック・クライアント、ファット・クライアント、スマート・クライアント、リッチ・クライアントなどと呼ばれる)を比べた場合、ユーザーは後者を好む傾向にある。シック・クライアントには通常、以下のようなメリットがあるからだ。
- ユーザーの入力や要求に迅速に対応できる
- ユーザー・インターフェイスが優れている
- オフライン時にもある程度の機能性を備える
しかし、企業などはシン・クライアントを好む場合が多い。シン・クライアントならば、シック・クライアントの配布、インストール、保守に付き物の厄介な問題を避けられるからだ。確かに、Microsoftが提供しているSystems Management Server(SMS)のように、ソフトウェアをクライアント・コンピュータに配布し、セットアップ・プログラムを起動する作業を支援するソフトウェア配布ツールは存在する。だが、最初のインストールとその後の保守は、複雑でエラーの起こりやすいプロセスだ(インストール・プロセスの概略については、コラム「アプリケーションのインストール時に何が起きているか?」を参照)。
また、アプリケーションのインストールと保守が、バグの原因になることも珍しくない。こうしたバグの中でも最も多いのが、新しいアプリケーションをインストールした結果、共有コンポーネントに影響が及び、それまで正常に動作していたアプリケーションの動作に障害が発生するパターンだ。こうした状況は、共有コンポーネントが配布されるダイナミックリンク・ライブラリ(DLL)ファイルにちなんで「DLL Hell(DLL地獄)」と呼ばれている。
Microsoftはこうした状況の中、WindowsがクライアントOSとして実際的かつ必要不可欠な選択肢であり続けるためには、インストール・プロセスを簡略化すると同時に、より堅牢なものにしなければならないことに気付いた。そこで同社は、Windows 2000の出荷に合わせて、こうした問題に対処する2つの新技術を導入した。
●Windows Installer
開発コード名Darwinと呼ばれたWindows Installerは、アプリケーションのインストールと保守に伴う複雑なプロセスを処理し、インストールを簡略化するユーティリティ。Windows 2000とともに出荷されたが、Windows 98とWindows NT 4.0向けのバージョンも提供されている。
●サイド・バイ・サイド・共有コンポーネント
Windows 2000では、アプリケーションが専用バージョンのコンポーネントを利用できるようになった。この専用バージョンは、ほかのアプリケーションのインストールに影響を受けない。このメカニズムを使えば、開発者は自分のアプリケーションがDLL Hellを引き起こす可能性を軽減できる(こうした技術の経緯については、コラム「インストール技術の改善の歴史」を参照)。
MicrosoftはWindows XPとWindows Server 2003において、この2つの技術をさらに改善している。Windows XPは大幅な改良が行われたWindows Installerとともに出荷された。また、Microsoftは2002年2月に出荷された.NET Frameworkランタイム・システムのリリースに合わせて、Win32アプリケーションやCOMアプリケーションよりもインストールや保守が容易な「マネージドコード・アプリケーション」と呼ばれる新しいタイプのアプリケーションを実現している。
さらに、Windows XPとWindows Server 2003は、Win32アプリケーションやCOMアプリケーションに関してサイド・バイ・サイド共有コンポーネントと呼ばれる新機能をサポートする。Microsoft自身も共有コンポーネントの多くにこのメカニズムを採用することで、DLL Hellのリスクを軽減している。
ただし、こうした多くの改善は見られるものの、インストール時に必要なすべてのタスクをアプリケーション開発者が確実に記述しなければならないという意味では、クライアント・アプリケーションのインストールは依然、複雑なプロセスだ。
.NET Frameworkアプリケーションのインストールに関して、Microsoftは「XCOPY」という方法で簡単さをアピールしているが、この方法もまだ簡単とはいえない(XCOPYでは、アプリケーションのコンポーネントをすべて1つのディレクトリにコピーし、そのディレクトリからインストールを実行する。MS-DOS時代、XCOPYユーティリティを使って実行されていた方法)。
INDEX | ||
[技術解説]DLL Hellを解消する新しいWindowsインストーラとアセンブリ | ||
1.クライアント・ソフトウェアのインストールに関わる問題 | ||
2.Windows Installer 2.0の新機能 | ||
3.新しいサイド・バイ・サイド・コンポーネントのサポート | ||
コラム:アプリケーションのインストール時に何が起きているか? | ||
コラム:インストール技術の改善の歴史 | ||
コラム:Windows Installerの概要 | ||
コラム:.NETとWin32のサイド・バイ・サイド共有コンポーネント | ||
技術解説 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|
.NET管理者虎の巻
- - PR -
- - PR -