技術解説

DLL Hellを解消する新しいWindowsインストーラとアセンブリ

―― シック・クライアント・アプリケーションの普及拡大を狙い、Microsoftは.NET FrameworkとWindows XPにアプリケーションのインストールを容易にする新しい機能を組み込んだ ――

1.クライアント・ソフトウェアのインストールに関わる問題

Peter Pawlak
2003/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のサイド・バイ・サイド共有コンポーネント
 
 技術解説

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

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

.NET管理者虎の巻

- PR -
- PR -