ウェブページの仕組み(7) ~ ActiveXとは ~

ラウザの機能だけでは表現できないコンテンツなど再生するために、ブラウザに追加で組み込むかたちでインストールするプログラムをプラグインと呼びました。

プラグインとは で学習のとおり、Microsoft社ではこうしたブラウザの機能拡張を、

ActiveX(アクティブ エックス)

と呼んでいます。

ただし、現在では「呼んでいました」とするほうがしっくりくるかもしれません。つまり、すでに過去の技術になっているのです。

ではなぜそんな技術を学習するのかというと、ActiveXについて学習するということは、ブラウザ「Internet Explorer」と「Microsoft Edge」の違いを学習することにもつながるからです。

ただ実際には、2023年現在でもActiveXは一部で利用されています。ActiveXとInternet Explorerの歴史を理解することで、なぜ当時世界シェア9割を誇ったブラウザが凋落していったのか、なぜMicrosoft Edgeが登場したのか理解することができます。

そもそも、ブラウザとはどういうソフトウェアだったでしょうか?

ウェブページの仕組み(1) で学習のとおり、ブラウザはHTMLファイルを読み込んで、指定のレイアウトで表示するソフトウェアになります。もう少し詳しく言うと、WWWサーバ(ウェブサーバ)に要求を出し、HTMLファイルをはじめ、画像ファイルや音声ファイル、CSS、JavaScriptプログラムなどをダウンロードして、それらを組み合せて一画面に最適表示します。

したがって、ブラウザがなければウェブページを閲覧することができません。そして、ブラウザには多くの種類があります。先述したInternet Explorer、Microsoft Edgeをはじめ、Google Chrome、Safari、Mozilla Firefoxなどです。

こうしたブラウザのシェアは、2023年現在、Google Chromeが約6割を占め、次いでAppleのSafariが約2割となっています。日本に限って言えば、モバイルでのSafariのシェアは5割以上となっています。

つまり、GoogleやAppleといったOSやスマートフォン等の機器を提供している会社のブラウザが強いということになります。(GoogleはAndroid、AppleはiPhoneなど)

それではなぜ、Windowsを提供するMicrosoftのブラウザがシェアを奪われたのでしょうか?

2000年代初頭、Windowsに搭載されたInternet Explorerの世界シェアは9割以上とも言われ、ほぼすべてのユーザーが利用するブラウザでした。そこから20年余りでInternet Explorerのシェアは、一部を除いてほぼゼロに近くなっています。

その理由については後述しますので、まずは誰もが使うブラウザだったInternet Explorerの仕組みを理解しておきましょう。

すでにおわかりのとおり、Internet Explorerのための拡張技術がAcviteXになります。

ということは、他のブラウザにはあまり意味のない技術なのです。ほぼすべてのユーザーが利用するブラウザだったため、この仕組みを誰もが利用していたというわけです。

当時、ウェブサイトを閲覧していると「ActiveX」という用語は比較的よく目にしました。

ActiveXコントロールの警告メッセージのイメージ

上の警告メッセージは、ActiveXの実行がページの閲覧に必要であり、実行してもよいかという意味のメッセージです。しかし、意味がわからなければ、用心して「いいえ」を選択してしまうかもしれません。

そのため、ActiveXとは何かしら危険性があるかもしれないという漠然としたイメージを抱いていた人も多かったと思います。

実際に、ただ単純にプラグインのことをMicrosoft社ではActiveXと呼んでいるわけではありません。

なぜなら、

ActiveXはMicrosoft社のインターネット関連技術の総称

を表す言葉だからです。

ActiveXは、特定のプログラムのことではありません。Microsoft社がよりアクティブなインターネット環境を提供すために開発した様々な技術の総称なのです。

したがって、プラグイン的機能もActiveXの機能の一部であり、ブラウザ以外のMicrosoft社製品と連動したり、WWWサーバ側で提供される機能などもあります。

具体的には、プラグインのようにブラウザにプログラムを組み込んでインタラクティブなページを表現する技術を、

ActiveXコントロール

と言います。

このActiveXコントロールがActiveXの中でもっともよく使われる機能です。そのためActiveXコントロールを指してActiveXと呼ぶ場合もあり、なかなか理解が難しくなっています。

ActiveXコントロールは、ソフトウェアを「部品化」する技術とも言えます。部品化された小さなソフトウェアを「コンポーネント」と呼び、コンポーネントを組み合わせてアプリケーションを構成します。

例えば、動画が再生されるウェブページにアクセスした時、ブラウザに再生に必要なプログラムがない場合は、WWWサーバから必要な部品「コンポーネント」をダウンロードして機能追加します。

このようにActiveXでは、

ダウンロード、インストール、実行といった一連の作業が自動的に行われる

という大きな特徴があります。

そのため、必要なプラグインを自分で探す必要もなく、非常に楽です。

ActiveXには、このほかWordやExcelなどのOfficeアプリケーションで作成されたドキュメントをインターネットを通じて送受信し、ブラウザに埋め込んで表示する「ActiveXドキュメント」や、JavaScriptなどのスクリプト言語をアプリケーションソフトから利用することができる「ActiveXスクリプティング」などがあります。

ActiveXスクリプティングは、通常のアプリケーションソフトがJavaScriptなどのスクリプト言語を利用することができるようにするための技術になります。

Internet ExplorerもHTMLに記述されたスクリプトを解釈しますが、実際の処理はOSに組み込まれたスクリプトエンジンというソフトウェアによって処理されています。ActiveXスクリプティングは、このスクリプトエンジンを他のアプリケーションソフトからも利用できるようにする技術です。

ActiveXスクリプティングを利用すれば、それぞれのアプリケーションソフトは、Windowsに登録されている様々なスクリプト機能を利用することができるようになるのです。

このように、ActiveXはインターネット環境における総合的な拡張技術であり、ActiveXコントロールやActiveXスクリプティングといった技術の総称になります。

また、WWWサーバサイドにおける技術も開発されており、WWWサーバ側の技術には、ActiveXサーバコントロールやActiveXサーバスクリプト等があります。

代表的なものとして、

ASP(エーエスピー)

と呼ばれる技術があります。

ASPは「Active Server Pages」の略で、CGIとよく似ています。CGIは、CGIとは で学習のとおり、WWWサーバ側でCGIプログラムが実行され、その結果がクライアントのブラウザでHTMLファイルに読み込まれて(新しいHTMLファイルとなって)表示されます。

ASPは、言わばMicrosoft社のCGIであり、Windwosサーバ環境下で動作するCGIと言えます。WindowsのWWWサーバに組み込まれたASPファイルのスクリプトが実行され、実行結果をHTMLファイルにしてクライアントに返すというCGIと同じような仕組みで動作します。

ASPの特徴は、当然ながらWindwosサーバOSに組み込んで動作するため、通常のCGIと比べて処理が高速で、Microsoft社製品と連携が可能という点です。ASPを利用することによって、CGIと同様にインタラクティブなページを作成でき、サーバとクライアント間でデータ通信が可能になります。

ただし、使えるサーバ(Windowsサーバ)と使えないサーバ(非Windowsサーバ)があるというデメリットがあります。

また、ASPファイルの拡張子は、通常のウェブページ「.html」ではなく「.asp」となります。この「.asp」という拡張子を持つページは、以前よく見かけました。

ASPを使ってページを作ると、表現が固定された通常のHTMLページと異なり、アクセスするユーザーの条件によって表示内容を変えたり、CGIのように機能を持たせたりすることができます。

そして、ASPの機能を大幅に拡張した、

ASP.NET(エーエスピー ドットネット)

と呼ばれる後継技術が2002年に開発されました。

ASP.NETは、.NET Framework(ドットネットフレームワーク)というフレームワークの要素の一つになります。.NET Frameworkは、前項で学習したJavaのフレームワークと同じように、Microsoft社が提供するシステム開発用のフレームワークです。

つまり、.NET Frameworkという大きなフレームワークの要素の一つがASP.NETです。

ASP.NETの拡張子は「.aspx」です。このあたりからさらにややこしくなってくるのですが、「.NET」という用語を耳にしたことがある方は多いと思います。

Microsoft社は2000年に大きな構想として、

Microsoft.NET

というビジョンを掲げていました。

Microsoft.NET構想は、PCをはじめとするあらゆるデバイスをインターネットに接続し、それに対応する基盤(プラットフォーム)を提供するというものです。現在の「IoT」と同じような意味で、ある意味先進的な構想でした。

しかしその構想は実現せず、Microsoft.NETは衰退していきました。次第にMicrosoftの文字も外れて「.NET」とだけ呼ばれるようになっていったのです。

現在使われている「.NET」という用語は、フレームワークである「.NET framework」を意味するようになっています。つまり、壮大な構想は姿を消し、フレームワークだけが残っているというわけです。

最新の.NETは「.NET 5」というフレームワークが2020年に発表されています。

.NET構想が実現しなかった大きな要因は、Microsoft社が提唱する技術とは異なる技術が発展していったからと言えます。構想はすばらしいものでしたが、目指した技術や規格が主流から外れていたのです。

そして、ActiveXとInternet Explorerも衰退していくことになります。

なぜなら、

ActiveXの仕組み自体がセキュリティ上の脅威になる

からです。

部品化された小さなソフトウェアを組み合わせてアプリケーションを構成するコンポーネントという技術は、セキュリティ上の大きな危険性を抱えていました。ダウンロード、インストール、実行といった一連の作業が自動で行われて環境が整うというその仕組みは、便利な反面、危険とも隣り合わせです。

ActiveXコントロールを悪用すれば、悪意のあるプログラムを自動でインストールさせて実行させることが可能です。ウェブサイトにアクセスしただけで、データを消去されたり、情報を盗まれたりする危険性があるわけです。

この問題に対処するために、電子メールのセキュリティ(3) で学習した「デジタル署名」を確認して、確認できない場合にはダイアログを表示するなど対応がとられましたが、デジタル署名も完璧なものではなく、証明書の発行機関であるCAもプログラムの内容を審査するわけではないので、デジタル署名があるからといってセキュリティ問題が解決されるわけではありませんでした。

下図は、当時のInternet Explorerの設定画面です。

ActiveXに関する設定は初期設定(デフォルト)で有効になっており、これらを無効に設定することで自動実行を防ぐことができましたが、そうすると制限が多くなり、非常に使いづらいものでした。

IEの「セキュリティ設定」画面のイメージ

そしてもう一つは、

ActiveXはInternet Explorerのみで動作する

ということです。

言わばMicrosoftのMicrosoftのための技術であり、WindowsとInternet Explorerだけがメリットを享受する技術です。その他の環境やブラウザで利用するには、そのためのプラグインを追加するなどの操作が必要になります。

つまり、シェアが9割あった時代は安泰でしたが、シェアの減少とともにActiveXも利用されなくなっていきます。

Internet Explorerのシェアが減少していった理由としては、やはりActiveXによるセキュリティ上の問題が大きく、頻回に大きな脆弱性が発見され、修正プログラムの配布というパターンが目立ちました。

そのうえ、W3Cの標準規格から外れた独自の仕様が多く、Internet Explorerでは意図した表示がされない、他のブラウザとレイアウトが異なるなど、手間がかかるために技術者から敬遠されたこと、速度が遅い(重い)、単純に快適なブラウザが登場してきたことなどから多くのユーザーが離れていきました。

そしてついにMicrosoft社は、Internet Explorerのサポート(バージョンアップや修正プログラムの提供など)を2022年に打ち切りました。完全にブラウザ戦争に敗北したのです。

かわりにMicrosoft社は、Windows10から新ブラウザ「Microsoftt Edge」を搭載し、巻き返しを図っています。

Internet Explorerは古くから利用されている歴史の長いブラウザです。すでに規格自体が古くなっており、更新プログラムの適用だけでは対応が難しくなっていたのです。

こうした古い技術をベースにしたActiveXなども、古い技術として衰退してきました。Microsoft EdgeではActiveXが非対応となっており、いよいよActiveXとInternet Explorerはその役割を終えようとしています。

しかし、そうは言っても簡単に切れないのがインターネットの世界です。

なぜなら、

Internet ExplorerとActiveXに依存した業務システムを使用している企業が残っている

からです。

企業や銀行などの基幹システムは、開発に大きな費用がかかっており、簡単に変更することができません。また、Internet Explorerをベースに開発されたシステムであればなおさら更新が難しくなっています。

特に日本ではそうした傾向が強く、ActiveXを利用した暗号化技術を採用するなど、WindowsとInternet Explorerの組み合わせからの脱却が困難になっています。数年前までEdge非対応の公的サービスは数多くありました。

そのため、後継のEdgeでは「IEモード」で閲覧できる機能が用意されています。IEモードからActiveXを利用することができますが、これも2029年にサポートが終了する予定になっています。

いずれにしても、すでにサポートが終了しているブラウザを使い続けることは非常に高いリスクを背負っていることになり、近い将来Internet Explorerは完全に姿を消すことになるでしょう。

今後のブラウザ戦争がどうなっていくのか、歴史を理解しておくと非常に興味深いと思います。

更新履歴

2009年7月26日
ページを公開。
2009年7月26日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年2月1日
ページをSSL化によりHTTPSに対応。
2023年9月30日
内容修正。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
図解入門 インターネットのしくみ
やさしいセキュリティ講座(5)
http://eazyfox.homelinux.org/Security/Beginner/beginner05.html
日本の端末別ブラウザシェアランキング|世界との違いは?
https://cmc-japan.co.jp/blog/japanese-browser-ranking/
.NETとは何か?
https://atmarkit.itmedia.co.jp/ait/articles/1105/30/news129.html
.NET Core 3の次の「.NET 5」って何?
https://yuyu-life.blog/programming/what-is-dotnet-5/