HTML Applications の導入: ブラウザから解き放たれた DHTML
Loren Kohnfelder Microsoft Corporation
Updated March 18, 1999 Posted November 4, 1998 日本語版最終更新日 1999 年 5 月 13 日
この記事は、 Site Builder Magazine (現在は、MSDN Online Voices) に掲載された記事を転載したものです。
Internet Explorer 5 では、HTML Applications (HTA) が導入されています。これにより、「ブラウザから解放された」 Dynamic HTML (DHTML) テクノロジを使ってスタンドアロン アプリケーションを作成することができます。HTA では、アプリケーションを、Web ページを作成する場合と同様に DHTML やスクリプトを使って作成することも、Web 用に作成されたコンテンツをベースに作成することもできます。
ここでいう「ブラウザから解放された」とは、HTA が 2 つの点で Web ページとは大きく異なるということを意味しています。
- アプリケーションは、すべて DHTML で作成されますが、ブラウザのメニューやツールバーのない自分自身のウィンドウ内で実行されます。つまり、アプリケーションがユーザー インターフェイスを完全に定義するということです。
- アプリケーションは完全に信頼されるものであり、セキュリティ上の理由から Web ページに課せられる制約はいっさい受けません。訪問したときに実行される Web ページとは違って、ユーザーは HTA を信頼する必要があります。しかし、いったんインストールし、実行すれば、HTA は他のプログラムができることは何でも実行できます。
HTA ソリューションの例
HTA を使用することで、さまざまなアプリケーションを作成できます。ここでは、HTAが優れたソリューションとなり得る代表的なシナリオをいくつか紹介します。
- Web ページ アプリケーションの目的を変更
Web ページから構築された既存のアプリケーションは簡単に変換でき、Windows アプリケーションを HTA として実行することができます。HTA アプリケーションは、Web セキュリティ モデルとは独立に機能し、それ専用のユーザー インターフェイスを定義できます。また、[スタート]メニューからそれを実行することができます。
- HTML コンテンツを処理するアプリケーション
HTA は、DHTML Object ModelによってHTML を効果的に処理できます。HTML の作成または編集、サイトのリンクの妥当性検査、コンテンツの比較などを行うアプリケーションは、HTA フレームワークを使ってごく簡単に作成できます。
- 企業内でのアプリケーションの配布にWebを使用
HTA は、HTTP で配布されたコンテンツを基盤とし、キャッシュに格納できるので、接続された Web モデルの利点をすべて利用して HTA を展開できます。従来のアプリケーション展開モデルで必要とされるインストール、更新、保守管理の手間はいっさい不要です。HTA コンポーネントは中央のサーバーで更新されるので、クライアントは新しいものをシームレスにダウンロードし、導入することができます。
- 簡単なアプリケーションの作成
プログラミング言語を知らなくても、DHTMLやスクリプトを作成できれば、自分の使い慣れた Web オーサリング ツールで簡単なアプリケーションを手早く作成できます。
シンプルなHTA
HTAの機能を理解するには、実際にそれを作成してみるのが一番です。
<HTML>
<HEAD>
<TITLE>Simple HTML Application</TITLE>
</HEAD>
<BODY>
This is a simple HTML Application.
<BR>
<BUTTON onclick="self.close()">Exit</BUTTON>
</BODY>
</HTML>
この簡単な HTA どのように表示されるかご覧ください。 (このサンプルを表示するには、Internet Explorer 5 またはInternet Explorer 4.0 が必要です。).
このサンプル コードは、単純な HTML ページです。これにファイル拡張子 *.hta を付ければ、HTML アプリケーションを生成できます。.hta ファイルを起動するために、アプリケーションを起動します。<TITLE> タグ内の "Simple HTML Application" は、アプリケーション ウィンドウ タイトル、<BODY> タグ内のテキストはウィンドウのコンテンツとして表示され、<BUTTON> タグ内の "Exit" はHTMLボタンとして定義されています。
このアプリケーションは、ブラウザ上で通常みられるユーザー インターフェイスなしに実行されるので、終了(Exit)ボタンを備えています。DHTML Behaviors Library には、汎用化性を持たせた有用なサンプル コンポーネント(メニュー、ツールバーなどの一般的なグラフィック ユーザー インターフェイス)が収容されています。
この単純なサンプルは、HTMLページをどうやってHTAアプリケーションに変えるかを示したものです。ブラウザ上のDHTMLやスクリプトでできることはすべて、HTAアプリケーション ウィンドウのコンテンツ領域内でもうまく機能します。
<APPLICATION> タグの使用
HTAは、大部分が、Web コンテンツを作成するときに使用する DHTML 機能を拡張したものですが、<HTA:APPLICATION> タグを使用して実装されるアプリケーションの要求に特有の機能がいくつかあります。このタグを使用することで、たとえば、アプリケーションのアイコンを指定でき、ウィンドウのキャプションやボーダーをコントロールすることもできます。
アプリケーション タグは、<HEAD> セクション内に記述します。これは、アプリケーション ウィンドウの外観や機能をカスタマイズする複数の属性宣言からなります。上の例では、<HEAD> の下に次のタグを挿入して、アプリケーションのアイコンを指定できます。そのウィンドウには、システム メニューはいっさいありません。
<HTA:APPLICATION ICON=simple.ico sysMenu=no>
<HTA:APPLICATION>タグで指定できる機能の詳細については、MSDN Online Web Workshop を参照してください。
フレームとセキュリティ
HTA は完全に信頼されたアプリケーションとして実行されるので、HTA が同じレベルで信頼されていない Web コンテンツを使用するときは、特定の安全保護策が必要となります。HTAはセキュリティ上の制約はいっさい受けませんが、HTA 内の信頼されていないコンテンツに対する通常のWebセキュリティ制約(特定のWebページのゾーン設定によって決まる)を保持することが重要です。したがって、セキュリティ上の目的から、HTA 内に HTML を含むフレームは、ブラウザ内にあるときとまったく同じように扱われます。
また、場合によっては、フレームが HTA の機能的な要素になることがあります。その場合、互いにやり取りして、HTA 自身ができることをすべてやれる必要があります。たとえば、ウィザードHTAを作成したら、タイトルや[進む/戻る]ボタンを持つ外側のフレームと、ウィザードの個々のペインのコンテンツを定義した内側のフレームを備えると便利かも知れません。これらのフレームは HTA の要素として機能する必要があり、当然、適正な信頼できるコンテンツだけがフレームに置かれます(URL からのコンテンツは種類に関係なく、いっさい取り込まれません)。
HTAコンテナ ページでは、HTA 固有の <FRAME> または <IFRAME> タグの特殊な属性を使用して、どのフレームが信頼でき、どれが信頼できないかを定義します。TRUSTED=YES が指定されていると、HTA はフレームへナビゲートするコンテンツにその特権のすべてを与えます。この属性がないか、または TRUSTED=NO が指定されていると、フレーム コンテンツはブラウザ上で HTML と同様の扱いを受けます。TRUSTED 属性を宣言できるのは HTA だけなので(HTML にその属性を指定しても、ブラウザ内では無視される)、信頼できないコンテンツが信頼性を主張することはできません。
まとめ
信じられないかも知れませんが、この短い記事の中には HTML Applications 固有の基本機能がすべて紹介されています。DHTML プラットフォームは、HTA で現実世界の魅力的なアプリケーションを作成できる追加機能を数多く提供しています。
納得のいく HTA ができたら、それをユーザーに配布しなければなりません。Web コンテンツと同様、これには各種の方法があります。基本的には、他のアプリケーションと同じように、HTA をファイルとしてマシンにインストールするか、または Web からダウンロードすることができます。
HTAファイルは、アプリケーション ファイルの場合と同様に、ディスクまたはネットワークからファイルをコピーして、インストーラ ツールを使用するか、自己抽出型の実行可能ファイルを実行することでインストールできます。HTA は、シェル フォルダ、[スタート]メニューのリンク、あるいはコマンド ラインなどから起動されます。
HTAは、Webページと同様、HTTP または HTTPS を介してダウンロードすることもできます。この場合は、サーバーに保持されている HTA の単一のコピーを多くのクライアントが使用でき、各クライアントはそれぞれのマシンに HTA を明示的にインストールする必要はありません。また、ダウンロードを要求すれば、その都度、サーバー上にある最新のアップデート版がクライアントに送られます。
ダウンロードを利用する場合、その長短をよく吟味する必要があります。これは、各ユーザーの要求によって違ってくるはずです。まず、ダウンロードされるアプリケーションは、クライアント マシンがネットワークに接続されているときにしか使用できません。オフラインのときにもHTAを使用する場合は、ファイルをインストールしたほうがよいでしょう。また、セキュリティやトラストの問題があります。ユーザーはWeb上でダウンロードする実行可能ファイルを実行するのか、保存するのか選択しなければなりませんが、これと同様に、HTAについてもダウンロードするたびに同じような決断をしなければなりません。(HTAは信頼されたアプリケーションなので、任意のWebページをダウンロードして、ユーザーの同意なしにHTAを実行できるようにするのは危険です)。
HTAの配布方法としては、ファイルをインストールする方法とコンテンツをダウンロードする方法を組み合わせたほうがよい場合もあります。HTAのコンポーネント、サブフレーム、イメージはすべて特定のURLで指定できるので、クライアント マシンにはHTAファイルだけをインストールし、他のものはすべて必要な場合にのみHTTPを介して配布させることができます。HTAファイルはインストールできるので、実行時にはユーザーに余分な警告をしなくても済みます。HTAは、いったん稼働したら、必要に応じてWeb上で他のページ要素を取り込めるので、いつでもコンテンツの最新のアップデート版を取得することができます。
結論
HTAは、Webを強力にサポートするDHTMLテクノロジをベースに作成し、スタンドアロン アプリケーションまたはWebページの場合と同じ方法で、あるいはそれらを組み合わせた方法で展開することができます。
Loren Kohnfelder は、Internet Explorer チームのプログラム マネージャです。
|