今回は,Windowsシステムに統合されているInternet Explorer(IE)の動作を復習しながら,IEとWindows XP Server Pack 2(SP2)の関係を取り上げます。本記事を最後までご覧になると分かりますが,WindowsシステムとIEの統合には長所と短所があり,SP2はその短所を改善しようとしています。短所はいったいどのように改善されるのでしょうか。それでは早速,そのあたりの事情を探ってみましょう。

WindowsとIEの統合の長所と短所

 IEのWindowsシステムへの統合は,古くて新しいトピックの1つです。ある意味では言い古された技術用語ですが,その意味をきちんと理解しているWindowsユーザーはそれほど多くはないと思われます。そこでまず,小さなサンプル・プログラムを紹介しながら,WindowsとIEの統合の意味,その長所と短所を基礎から復習することにします。それでは,最初のサンプル・プログラムをご覧ください。

Dim oShell
Set oShell = CreateObject("Shell.Application")
oShell.Open "c:\itpro\integration.txt"
Set oShell = Nothing

 ご覧のように,このサンプル・プログラムはたったの4行で構成される小さなものです。このサンプル・プログラムを開発するために使用した言語は,Visual Basicをインターネット用に軽量化して作られたと言われるVBScriptです。

 これら4行のコードを記述したプログラム・ファイル(拡張子VBSを持つテキスト・ファイル)をダブルクリックすると,私の環境では,メモ帳が起動され,「c:\itpro\」フォルダに格納されているintegration.txtファイルが開かれます。このプログラムの実行を可能とする技術は,客観的に見て,たいへん優れたものです。しかしその技術を自分なりに理解しようとすると,オブジェクト指向を初めとするかなりの専門知識が要求されます。プログラム内の次のコードの意味を考えてみましょう。

oShell.Open "c:\itpro\integration.txt"

 oShell.Openの「oShell」は,一般にはオブジェクト変数と呼ばれ,メモリー内に作成されている特殊なテーブル領域の先頭アドレスを記憶する役割を引き受けています。その特殊なテーブルは,複数の命令の格納アドレスを管理していますから,このサンプル・プログラムでは,oShell.Openというコードを記述し,数ある命令の中の,Open命令を選択,実行させています。ここまでの説明はそれほど難しいものではありませんが,Open命令の動作内容を冷静に観察してみると,(私の環境では)次のようなことが分かります。

  • まずメモ帳が(自動的に)起動される
  • (自動的に)起動されたメモ帳は「c:\itpro\integration.txt」を読み込み,表示する

 ご覧のように,Open命令に「c:\itpro\integration.txt」というテキスト・ファイルを渡しているだけなのですが,不思議なことに,メモ帳というプログラムが背後で自動的に起動されます。これは表現を変えれば,Open命令は次のような動作を背後で行っていることになります。

  • Open命令は,Windowsシステムの「ファイルの対応付け情報」を参照している
  • Open命令は,「ファイルの対応付け情報」を利用してプログラムを起動している

 Open命令が参照するファイルの対応付け情報はWindowsユーザー個人個人が設定,変更できる情報ですから,メモ帳ではなく,別のプログラムを起動させることも当然可能です。このため,見方によっては,先のOpen命令の動作内容を次のように表現することも可能となります。

  • まずメモ帳が(勝手に)起動される
  • (勝手に)起動されたメモ帳は「c:\itpro\integration.txt」を読み込み,表示する

 これら2つの文章内にある「(勝手に)」という表現を覚えておいてください。それでは第2番目のサンプル・プログラムをご覧ください。

Dim oShell
Set oShell = CreateObject("Shell.Application")
oShell.Open "http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20040304/1/"
et oShell = Nothing

 この第2サンプル・プログラムも第1サンプル・プログラムと同じく,たったの4行で構成されています。違いといえば,Open命令に渡す引数が「c:\itpro\integration.txt」から「http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20040304/1/」に変更されていることだけです。

 この第2サンプル・プログラムを実行すると,(インターネットへの接続準備が整っている環境では)本連載の第15回記事(コンテンツ)を含むWebページが私たちのマシンにダウンロードされ,表示されます。これはたいへん便利な機能であり,しかも,プログラミング初心者でもインターネット対応機能を備えるプログラムをいとも簡単に作ることができることを示しています。

 技術的な視点から言えば,自分のマシンにあるテキスト・ファイルを開く感覚で,簡単に,希望するインターネット上のWebページを開くことができます。表現を変えれば,これは,Windows(厳密には,Windowsシェル)とIEの統合の優れた長所を示しています。しかしセキュリティという角度からこのコードを再吟味すると,長所は次のような短所に変化してしまいます。

  • IEが勝手に起動される
  • インターネット上のリソースが勝手にダウンロードされる
  • リソースが勝手に表示される

 インターネットが普及した現在,ダウンロードされるリソース内に何らかの特殊な罠(わな)が仕掛けられているようなことも十分考えられますから,次の点も短所の1つに加えておく必要があります。

  • ダウンロードされるリソース内に仕掛けれられた罠(わな)にはまってしまう危険性がある

 いかがでしょう。Open命令はたいへん便利な機能を提供してくれています。この命令を使用すれば,誰でも簡単にプログラミングが楽しめるのも事実です。しかし,WindowsとIEの統合には,次のような,時代にそぐわない考え方(弱点)があると思います。

「ローカル・ファイルの表示とインターネット・リソースのダウンロードを区別していない。簡単に言えば,当時の開発チームは,Webコンテンツというものをローカル・ファイルの延長線上で捉えていた

 これまでの説明を読んで,WindowsシステムとIEの統合の意味,その長所と短所についてかなり理解したと思います。次回は,WindowsシステムとIEの統合の弱点がSP2でどのように改善されようとしているのかを見てみましょう。

本日のまとめ

  • WindowsシステムとIEの統合には長所と短所がある
  • 統合が進めたられた当時は,Web資源はローカル資源の延長で認識されていたと思われる

 本日は以上で終了です。次回またお会いいたしましょう。ごきげんよう!