ActiveX:MicrosoftのCOMベースのコンポーネントフレームワーク
ActiveXは、COMを基盤とする再利用可能なソフトウェアコンポーネント(コントロール)のためのMicrosoft技術であり、WindowsやInternet ExplorerでアプリケーションやWebページへ対話機能を埋め込むために使われてきた。
概要
ActiveXは、再利用可能なバイナリコンポーネントをアプリケーションやWebページに埋め込めるようにするため、Microsoftが開発したソフトウェアフレームワークである。コンポーネントは一般にDLLまたはOCXファイルとして配布される。Component Object Model(COM)を基盤とするActiveXコントロールは、他のプログラムから呼び出せるインターフェースを公開する。これにより開発者は、メディア再生、カスタムUIウィジェット、文書処理などの機能を、異なるホストアプリケーション間で再利用できる。
特徴とアーキテクチャ
ActiveXコントロールは基本的に、ライブラリ(多くはダイナミックリンクライブラリ、DLL)へコンパイルされたCOMオブジェクトである。ホストがインスタンス化して操作できるよう、オペレーティングシステムに登録される。主な特徴は次のとおりである。
- バイナリ配布:コントロールはソースコードやバイトコードではなく、コンパイル済みのコード(DLLまたはOCX)として配布される。
- 登録:コントロールはシステムレジストリに登録され、クラス識別子(CLSID)またはプログラム識別子(ProgID)を通じて利用される。
- インターフェース:コントロールは定義済みのCOMインターフェースを実装し、呼び出し元にプロパティ、メソッド、イベントを提供する。
- ホスト依存性:大半のコントロールはWindows環境を前提とし、Windows APIおよびCOMサービスに依存する。
歴史とプラットフォーム上の位置付け
ActiveXは1990年代半ば、MicrosoftがデスクトッププラットフォームおよびInternet Explorerにおける対話的コンテンツとコンポーネント再利用を可能にするため、COMを拡張したことで登場した。Webページやデスクトップホストに、対話型アプレット、ツールバー、マルチメディアプレーヤー、文書ビューアを埋め込む仕組みとなった。COMとWindows固有のサービスに依存するため、ActiveXは主としてMicrosoft WindowsおよびWindowsベースのアプリケーションと結び付いている。他のシステムにおける関連するリソースライブラリは異なる形式を用いる場合があるが、アイコン、フォント、ローカライズされたリソースについて類似の役割を果たせる。
用途と例
ActiveXコントロールはこれまで、ネイティブの性能やOSとの深い統合が求められるさまざまな用途で使用されてきた。
- Internet Explorer内のメディアプレーヤー、PDFビューア、複雑なフォームコントロールなどの対話型ブラウザコンポーネント。
- 文書やテンプレートに埋め込まれるOffice自動化アドインおよびカスタムコントロール。
- Windowsアプリケーションの自動化やネイティブAPIへの直接アクセスを必要とする企業システム。
- 複数のプログラムで共有可能な、デスクトップアプリケーション向けのカスタムUI要素。
セキュリティ、衰退、レガシー
ActiveXコントロールはシステムリソースへアクセスできるネイティブコードであるため、信頼できない、または悪意のあるコントロールがインストールされた場合には重大なセキュリティリスクをもたらす。時間の経過とともに、ブラウザおよびプラットフォームの提供者はセキュリティモデルを強化し、署名やゾーンベースの制限を導入した。そして最終的に、サンドボックス化されたWeb標準、たとえばHTML5やJavaScriptベースのAPIを優先し、バイナリプラグインモデルから移行した。Internet Explorer以外の現代的なブラウザはActiveXをサポートせず、Microsoftの新しいブラウザに向けた取り組みでもその使用は段階的に廃止されている。それでも、既存のコントロールが必要な機能を提供し続けているレガシーシステムや企業環境では、ActiveXは現在も利用されている。
関連項目
著者
AlegsaOnline.com ActiveX:MicrosoftのCOMベースのコンポーネントフレームワーク Leandro Alegsa
URL: https://ja.alegsaonline.com/art/801