■ ActiveX Documentって何?
|
図1:ActiveX xxxなし
|
今週はActiveX Documentの説明をしたいと思います。その62でも少し触れましたが、ActiveX Documentは、Internet Explorer(IE)などの上で他のプログラムが動作するというものです。このあたりについて、もう少し説明していきたいと思います。
ActiveX DocumentとActiveX Controlは、ある面で非常に良く似ています。例えば、IEなどのアプリケーションの中で、別のアプリケーション(Officeなどがその一例)を動かすという観点で言えば、ActiveX DocumentとActiveX Controlは同じことができます。しかし、大きな違いはActiveX Controlは“元になるアプリケーションの中から呼び出す”のに対し、ActiveX Documentでは「いきなり呼び出せる」という違いがあります。
これだけでは何のことかわからないと思うので、もう少し例を挙げてみましょう。図1のように、サーバー側にExcelのデータファイルが置かれており、これをクライアントで編集したいというケースを考えます。ActiveXなどを使わずに実現する場合、まずクライアントはサーバーからこのファイルを(HTTPあるいはFTPで)ダウンロードし、クライアントのローカルにコピーを保存します。
次に別のアプリケーション、このケースならExcelだと思うのですが、これを立ち上げて編集作業を行なわせます。作業が終わったら、サーバー側にIE経由で(FTPあるいはWebDAVなどを使って)転送し、サーバー側に反映する形になります。こうした仕組みはIEとExcelではなくても、例えばNetscapeとLotus 1-2-3、MozillaとStar Officeなどというように、どんな組み合わせでも可能です。
ただ、この仕組みを毎回手で操作する分には良いのですが、(編集作業以外を)自動でやろうとすると、ちょっとしたスクリプトや、場合によってはサーバー側にも細工が必要かもしれません。起動だけなら、各Webブラウザの“Helper Application”を設定すれば可能ですが、反映した結果をWebブラウザに戻す仕組みが存在しないからです。
|
図2:ActiveX Control
|
|
図3:ActiveX Document
|
そこで、ActiveX Controlを使うことを考えます(図2)。この場合サーバー側に、Excelのデータファイルとは別に、内部でExcelを呼び出してデータファイルの編集を行なわせるようなHTMLを記述し、IEにこれを解釈させます。すると、IEは内部でExcelを呼び出し、そのExcelがサーバーにあるExcelのデータファイルを直接アクセス、編集が行なえるようになるという仕組みです。
これにより、大幅に作業は楽になったわけですが、それでもまだ専用のHTMLを書かなければいけないといった手間は残りますし、ActiveX Control経由だとフルにその機能を発揮できない場合があります。
こうした場合に使われるのがActiveX Documentです(図3)。ActiveX Documentの場合も、やはりIEからExcelを呼び出す点は同じですが、この際、Excelを呼び出すためのHTMLファイルは不要で、IE全体を使ってExcelを呼び出す形になります(写真01)。こんな具合に、データに応じたアプリケーションをIEの中から呼び出す形で、スムーズにアプリケーション連携を図ろうというのが、ActiveX Documentというわけです。
|
写真1
|
■ ActiveXDocumentの志向するところと問題
前回のActiveX Controlは、それでもまだインターネット全体で利用されるケースがあります。例えば、では、映像を表示するWebブラウザが画面に埋め込まれる形で表示されているわけですが、こうしたケースは典型的なActiveX Controlの使い方です。
これは別にIEとWindows Media Playerに限った話ではなく、FireFoxとRealPlayerや、OperaとQuickTime Playerなど複数のWebブラウザ/メディアプレーヤーが、こうした埋め込みをサポートしています。もっともこれらが必ずしもActiveX Controlを使っているとは限らないのですが、映像/音楽コンテンツの配信に関してはActiveX Controlの利用は次第に一般的になりつつあります。
ところがActiveX Documentの利用に関しては、筆者が知る限りではAdobeのAcrobat Readerくらいが対応した主な製品です。Acrobat Readerの場合、「変更結果を反映」という作業は発生しません(Readerですから、変更がそもそもできません)。このため、別にActiveX Documentでなく、単に図1のようなHelper Application方式でも実害はありませんし、実際多くの環境では図1の方式がメインです。
ではActiveX Documentはどこで使われるのか? というと、これは企業内のイントラネットなどでの利用が1番多いことになります。Webの仕組みを使って社内の情報公開や共有を行なうのは、今ではごく当たり前の話ですが、こうしたケースですべてのアプリケーションにサーバーへのアクセス機能を付け加えるのは大変な作業です。
しかし、ActiveX Documentへ対応する機能だけを付け加えれば、イントラネットやインターネットに簡単にアクセスできるようになるわけです。また、ここまでの話ではActiveX Documentに対応するのがIEのみという前提でしたが、IE以外にもActiveX Documentを取り込む仕組み(これをActiveX Documentサーバーと呼びます)を作ることが可能です。
このあたりはLANとWAN、つまりイントラネットとインターネットで同じ仕組みを利用できるようにする、というマイクロソフトの方針に沿ったもので、またイントラネットで使っている限りにおいては、別段文句を付ける筋合いではないのですが、厄介なのはこれがインターネットでも使えてしまうことです。
例えば、IEは脆弱性が見つかるたびに修正パッチが出ており、IEがシステム侵入の入り口にならないようにする、という対処が(多大な労力をかけて)なされています。ところがActiveX Documentを使うと、IEそのものに穴がなくてもここから呼び出されるアプリケーションに穴があれば、そこから侵入されてしまうことになります。当然これは危険極まりないわけで、従ってイントラネットとインターネットをキチンと分離し、ファイアウォールをはじめとする防護策がキチンと取られている環境でないと利用はお勧めできません。
不幸にも、というべきか幸いにも、というべきか、先にも書いた通りインターネット全般という観点ではActiveX Documentはあまり普及していません。これはActiveX Control同様にMicrosoftのWindows環境上でのみ使える技術であり、また既存のHTMLベースのコンテンツを使う限りにおいては不要というのが最大の理由でしょう。なので、ActiveX Control同様に“使い方を誤ると危険な技術”ではありますが、ActiveX Controlほどに危険視はされていません。
2006/01/30 11:03
槻ノ木 隆 国内某メーカーのネットワーク関係「エンジニア」から「元エンジニア」に限りなく近いところに流れてきてしまった。ここ2年ほどは、企画とか教育、営業に近いことばかりやっており、まもなく肩書きは「退役エンジニア」になると思われる。(イラスト:Mikebow) |
|