アプレットとは何か

※アプレットの具体的な有効化方法については、『アプレット有効化ガイド』を参照してください。

マルチメディア・コンテンツ

マルチメディア・ドキュメント

 HTML 文書というのは、マルチメディア・ドキュメントと言われますが、これには2つの意味があります。一つは、マルチメディア的に解釈が可能ということで、テキストブラウザでも、グラフィカルブラウザでも、あるいは印刷してからでも読むことができるのです。
 そしてもう一つ、より一般的な意味として、マルチメディアなコンテンツ(リソースとも言います)を内包できるということがあります。つまり、テキストに加え、画像・音声・動画、そしてプログラムなどを載せられるわけです。
 以下、マルチメディアを後者の意味で使います。

静的コンテンツとアクティブ・コンテンツ

 さて、ウェブ上のマルチメディア・コンテンツは、動作するかどうか、また、動作する場合どこが処理するか、で場合分けすることが可能です。以下に概観を示します。

ウェブ・コンテンツ分類表
動作するか?どこが処理する?
動作するサーバ側Perl/CGI など
クライアント側アプレット、JavaScript など
動作しないテキスト、画像など

クライアントとサーバ

 まず、インターネットの一般的仕組みを復習しておきましょう。通常、わたしたち閲覧者側のコンピュータ(普通のパソコンと考えて構いません)を“クライアント”と呼び、ウェブサイトなどのファイルが置いてあるコンピュータを“サーバ”と呼びます。インターネットの基本的な仕組みの一つは、クライアント(閲覧者)の要求にしたがって、サーバがファイルをクライアントに渡すことにあります。
 通常のファイルは、クライアントがサーバから渡されたものをただ読むだけです。いわゆる受動的な(静的な)ファイルということになります。しかし、ファイル自身が能動的に動作するような(アクティブな)場合もあるのです。このように、ファイルが静的なものか動作するものか、で一つの分類ができるのです。

 ここでは、動作するコンテンツのことを“アクティブコンテンツ”と呼ぶことにしましょう。この場合はさらに、その動作処理を、サーバ側がやるのかクライアント側がやるのか、で大きな差が出てくることになります。

静的コンテンツ

 動作しない“静的な”コンテンツは、基本的に普通のブラウザなら問題なく読むことができます。動画ファイルなどでは特別なデコーダが必要になる場合もありますが、“動作”はしないので、セキュリティ的にも比較的安全だと考えられます。ただし、いわゆるインタラクティブな仕組みを提供することはできません。(せいぜいリンクくらいでしょうか。)

アクティブコンテンツ

 ところが、動作する“アクティブな”コンテンツは、サーバ側またはクライアント側がそのファイルを動かすことの出来る環境をもたなければなりません。

サーバ側アクティブコンテンツ

 もしサーバ側がプログラムを動かしているなら、クライアント側に渡されるファイルは動作の結果であり、クライアントからの見かけ上は静的なコンテンツと考えることができます。(結果の表示に時間がかかることはありますが。)つまりクライアント側の特別な環境は必要ないのですが、逆にサーバ側に特別な環境が必要になるのです。
 そのときも、サーバ側の処理は単にファイルを渡すときよりも遙かに負担が重くなるため、厳重な注意が要求されることがほとんどです。とはいえ、サーバにデータを蓄える必要があるときなど、どうしてもサーバ側でしか実現できない機能はサーバ側に処理してもらうしかありません。掲示板やカウンタなどが該当します。

クライアント側アクティブコンテンツ

 クライアント側がプログラムを動かすなら、逆にサーバ側の負担は単にファイルを渡すのと変わらなくなります。ただし、クライアント側が特別な環境を整えておく必要があります。(このような仕組みは、最近ではプラグインとして総称できる場合が多いです。)Internet Explorer の場合、セキュリティの設定をいじったり、新しいソフトウェア(プラグイン)をインストールする必要があるかもしれないのです。(クライアントの環境によっては動かすことができないかもしれません。)
 とはいえ、現在知られている主要なアクティブコンテンツは、設定さえしっかり行えば、シェアの大きい比較的新しい Windows/Internet Explorer のほとんどできちんと動作します。

追記

スクリプトとプログラム

 なお、アクティブコンテンツは、別の分類では、スクリプトとプログラムに分けられることもあります。
 スクリプトは、(人間に読みやすい)テキストファイルのまま取り扱われ、実行時にはインタープリタと呼ばれる別のプログラムが逐次的に解釈して命令を実行します。それに対して、プログラムは、実行の前段階でいったんコンパイラと呼ばれる別のプログラムを通し、コンピュータに読みやすい実行ファイルに変換した上で取り扱われます。プログラムの方が動作が高速ですが、手間がかかり、また環境に依存しやすくなってしまいます。

アクティブコンテンツの活用

 一般に、ネットワーク・閲覧者の負荷を総合すると、負荷が重い順に「サーバ側アクティブコンテンツ>クライアント側アクティブコンテンツ>静的コンテンツ」となります。したがってサイト制作者は、同じコンテンツ内容をより後者で代替できるなら後者で実現するべきなのです。言い換えれば、アクティブコンテンツにしないと実現できないようなことのみ、アクティブコンテンツで表現するべきなのです。

※ちなみに、起動に要する時間などから、トップページ等に重いアクティブコンテンツを貼り付けてあるのを嫌う人もいます。

アクティブコンテンツとセキュリティ

 さらに、動作するプログラムの場合、静的なファイルにはできない“害悪をもたらす動作”が可能になってしまう場合があります。いわゆるコンピュータ・ウィルスのようなものも含まれます。(最近では単にネットワークに繋いだだけで感染するタイプもあるようですが……。)そのため、プラグインのインストールやセキュリティの設定変更には慎重であるべきです。
 Internet Explorer の場合、一律に設定を変更するのではなく、どうやら信頼できそうだというサイトのみを一つ一つ信頼済みサイトのリストに追加していくのも一つの方法といえるでしょう。

※参考:『アプレット有効化ガイド』

アプレット

アプレットとは?

 アプレットといえば、普通は Java Applet を意味します。これは、Java と呼ばれる汎用的プログラミング言語で記述されたプログラムのうち、ネットワーク上等で動かすことを前提に設計された比較的小さなプログラムのことを指します。
 アプレットは、クライアント側アクティブコンテンツの一種です。
 なお、Java (Java Applet) と JavaScript とは似て非なるものですので注意しましょう。

アプレットの特徴

性能

 アプレットは、インタープリタ型言語とコンパイル型言語その中間的な形態とされています。(近年は純粋なインタープリタ言語は少なくなっているようですが、Java はその先駆けの一つでした。)そのため、いったん起動すれば、スクリプトの類よりは高速に動作することが期待できます。反面、Java と共通する特性として、起動にやや時間がかかるのが欠点といえるでしょう。
 また、もとが汎用的プログラミング言語ですから、非常に応用性が広いのが特徴です。ただし、後述のセキュリティとも絡む問題ですが、ネットワーク上で動かすことに配慮しているため、普通の Java の機能すべてが実現できるわけではありません。

セキュリティ

 Java Applet は設計段階からあまり“悪さ”ができないように配慮されています。(例えばファイル関連の機能です。読み込めるファイルなどは起動したディレクトリ以下に限られ、ローカルドライブにはアクセスできません。起動した瞬間、全ドライブをフォーマットしてしまうようなプログラムは原理的に許されません。)ただし、Java VM(アプレットを実行するプログラム)のバグや欠陥などが存在する可能性はもちろんゼロではないでしょう。

著作・制作/永施 誠
e-mail; webmaster@stardustcrown.com