このページの本文へ

前へ 1 2 次へ

Windows Info 第277回

デスクトップアプリとしてのIEは終了するが、2029年までは完全に無くなるわけではない

2021年05月30日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

EdgeのIEモードやさまざまなアプリのために
IEのコンポーネントはシステム内に残る

 下の図は、MSのサイトにあるIEの構造図だ。図の一番上にあるのがIEの実行ファイルであるiexplorer.exe。しかし、IEをブラウザとして成り立たせるための機能の大半が、iexplorer.exeの外にあるDLL(Dynamic Link Library)ファイルに分散されて格納されている。

IEの構造図。IEではHTMLレンダリング機能やネットワークからのHTML取得など主要な機能はすべて外部のDLLに含まれている。実行プログラムであるIExplorer.exeは、こうした「コンポーネント」を呼び出して、実行ファイルの中には主要な機能は含まれていない。コンポーネントは、EdgeのIEモードを実現するために使われるため、2029年までは残る

●Internet Explorer Architecture
 https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa741312(v=vs.85)

 つまり、2022年6月15日で終わりになるのは、一番上の部分だけで残りの部分はそのまま残る。というか、これが残らないとEdgeのIEモードが動かない。IEモードは、Edgeという枠の中でIE11と同等の機能を動かすもので、そのためにはIE11のDLLが必要になるからだ。また、世の中にはこれらの「コンポーネント」に依存したプログラムが多数ある。マイクロソフトはアプリケーション開発者向けに「Web Browserコントロール」などの形で、IEの機能を提供していたからだ。コンポーネントがなくなったら、それらが全部動かなくなってしまう。

 どうして、こんな構造になったのかというと、話は1997年のIE4にさかのぼる。このバージョンからIEは、Windowsの一部となり、Windowsとともに提供されるようになった。このとき、Windows ExplorerはIEと同じく、MSHTMLなどのコンポーネントを利用するようになった。

 たとえばWindows XPまでは、Explorerのアドレス欄には、URLを入れることができ、そうすると、Explorerが普段ファイルを表示している領域にWebページが表示される。いま手元にXPマシンがないので、仮想マシンに入れてみたのがだ。

Windows XPまでは、Explorerのアドレス欄にURLを入れるとウェブページがファイルウィンドウに表示されていた

 ExplorerにURLを入れるとファイルの代わりにウェブページが表示されるようになる。また、IEとExplorerはツールバーがよく似ており、左側のボタンのところが共通だ。Windows 95や98の頃は、デスクトップ自体がウェブブラウザだった。ある日PCを起動してみたらデスクトップが404になっていることもあった。

 そしてアプリケーションは、Explorer同様にIEの機能を利用できるようになった。これらは、COMコンポーネントとして実現されており、アプリケーションからは比較的簡単に利用できた。ソフトウェア開発者から見ると、これは大きな進歩だった。自分のアプリケーションのウィンドウの中で、IEのようにHTMLをインターネットから持ってきて表示できるのである。こんなものをゼロから作ることを考えただけでぞっとする。

 このためにIEは、Windows 98からはWindowsと一緒に配布されるようになった。これを世間は「IEがWindowsにバンドルされている」と解した。これでマイクロソフトはかなり損したのではないかと思う。しかも、「IEはWindowsに組み込まれていて分離できない」と正論でしか反論していない。結果的にWindows 7では、Windows Media Playerなども含まれていないEU向けの「N」が付くエディションを作り、他社ブラウザを選択できる「Choice Screen」をつけることでEUと合意した。

 IEのスクリプト実行機能も別コンポーネントとして独立しており、これをWindows側にスクリプト言語として開放したのがWSH(Windows Scripting Host)だ。JavaScriptはIEの競合であるNetscapeの提案になるものだが、ECMA(当時はEuropean Computer Manufacturers Association)で規格化されたため、Microsoftも採用せざるを得なくなった。マイクロソフトには、Visual BASICをベースにしたVBScriptがあったため、どちらもコンポーネント化した。

 こうしたコンポーネント化が進み、多くのIE関連技術は、Windows側でも利用することから、さまざまに拡張された。1番大きな貢献は、ブラウザのJavaScript(マイクロソフトはJScriptと呼んだ)から、HTTPプロトコルを使ってデータを取得できるようになったことだろう。

 これが可能になる前、ウェブはいわば紙芝居のようなものだった。リンクに埋め込まれたURLからHTMLを取得して新しいページを表示することの繰り返ししかできなかった。しかし、ウェブページに含まれるJavaScriptがHTTPプロトコルを直接使ってデータを受け取ることができるなら、それを使ってページの一部を書き換えることもできる。つまり、紙芝居がテレビになったのである。

 当時これはDynamic HTMLなどと呼ばれていたが、大きな可能性を多数のユーザーに見せたのは2005年のGoogleマップだった。当時のマイクロソフトは、ウェブサービス(インターネットを使ってサーバー同士が連携するもの)や.NETの普及が全社的な方針であり、Windows VistaやAzureの開発に追われていた。その結果、IEがのちにAjaxと呼ばれる技術の「苗床」であることにまったく無頓着なように見えた。しかし、Googleマップの成功によって、グーグルは自社製ブラウザの開発に進むことになる。ChromeはGoogleマップを可能にしたIEを手本とし、これを追い越すために作られたブラウザーなのである。

 マイクロソフトは、JITコンパイラーを内蔵するJavaScriptエンジンであるChakraを開発してIE9から搭載するが、Windows 8でのつまずきなどもあり、IEでのシェア挽回はならなかった。Windows 10では過去のしがらみ(互換性)を捨て、作り直したEdgeに切り替え捲土重来を図った。このときIEは開発中止となり運命が決まった。しかし、IEを開発中止に追い込んだEdgeもまた終了。マイクロソフトはオープンソース版のChromeであるChromiumから作ったブラウザにEdgeという名前を付けた。そして、その方針をいま淡淡と実行し、IE11の寿命を2029年と定めたわけだ。

 そういうわけで、iexplorer.exeは来年からは動かなくなるが、根幹部分であるMSHTMLなどのコンポーネントは、2029年まで残ることになる。その意味では「Internet Explorer」は、まだ「終わって」はいない。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン