基本情報技術者 2011年 秋期 午前(科目A) 問21
問題文
小さいアプリケーションプログラムを意味し、コンパイル済みのオブジェクトコードがサーバに格納されていて、クライアントからの要求によってクライアントへ転送されて実行されるプログラムはどれか。
選択肢
ア:アプレット(正解)
イ:サーブレット
ウ:スクリプト
エ:スレッド
小さいアプリケーションプログラムを意味し、コンパイル済みのオブジェクトコードがサーバに格納されていて、クライアントからの要求によってクライアントへ転送されて実行されるプログラムはどれか。【午前2 解説】
要点まとめ
- 結論:正解はア(アプレット)。コンパイル済みのバイトコードをサーバに置き、クライアント側で実行される仕組みに該当します。
- 根拠:問題文の「コンパイル済みのオブジェクトコードをサーバに格納→クライアントへ転送→クライアントで実行」という流れは、典型的なJavaアプレットの動作を示しています。
- 差がつくポイント:サーブレットはサーバ側で実行、スクリプトは通常解釈実行やHTML埋め込み、スレッドは実行単位である点を明確に区別しましょう。
正解の理由
アプレットは小さなアプリケーションをコンパイルしたバイトコード(オブジェクトコード)をサーバ上に置き、ブラウザなどのクライアント側で読み込んでJVM上で実行する方式です。問題文の「サーバに格納され、クライアントからの要求によって転送されて実行される」という条件に完全に合致するため、アが正解です。
よくある誤解
- 「スクリプトもサーバに置いて転送されるから正解では?」:スクリプトはしばしばテキスト(ソース)で渡され、クライアント側のインタプリタ(例:JavaScript)で解釈実行されるため「コンパイル済みのオブジェクトコード」とは異なります。
- 「サーブレットはサーバ側プログラムだから転送されるのでは?」:サーブレットはリクエストに応じてサーバ側で動作し、結果(HTML等)を返すが、サーブレット本体のバイナリがクライアントに転送されて実行されるわけではありません。
- 「スレッドを選ぶ受験者がいる」:スレッドはプログラム内部の実行単位であり、「転送されて実行されるプログラム」を指す言葉ではありません。
解法ステップ
- 問題文のキーワードを抜き出す:「小さいアプリケーションプログラム」「コンパイル済みのオブジェクトコード」「サーバに格納」「クライアントへ転送」「クライアントで実行」。
- 各選択肢の定義を頭の中で当てはめる:アプレット=クライアント実行のバイトコード、サーブレット=サーバ実行、スクリプト=ソース渡され解釈実行、スレッド=実行単位。
- 条件に完全一致するものを選ぶ:上記キーワードに合致するのはアプレットのみであると判断する。
選択肢別の誤答解説
- ア:正解。Javaアプレットはコンパイル済みのバイトコードをサーバに置き、クライアントのJVMで実行されます。
- イ(サーブレット):誤り。サーブレットはサーバ側で動作するプログラムであり、クライアントへバイナリを転送して実行させる仕組みではありません。
- ウ(スクリプト):誤り。スクリプトは通常ソースとして配布され、クライアント側のインタプリタで解釈実行されるため「コンパイル済みのオブジェクトコード」とは性質が異なります。
- エ(スレッド):誤り。スレッドはプログラムの実行単位を指す概念であり、独立してサーバからクライアントへ転送・実行される「プログラム」ではありません。
補足コラム
歴史的にJavaアプレットはWebブラウザで動作する小規模アプリケーションとして普及しましたが、セキュリティやプラグイン非対応の流れにより現在はほとんど使われていません。代替としてはJava Web Startや、近年ではJavaScriptやWebAssemblyなどがクライアントサイドでの実行手段として一般的です。試験問題では「仕組み」を問われるため、現状の利用状況に左右されず定義を正しく理解することが重要です。
FAQ
Q1: 「オブジェクトコード」とは具体的に何ですか?
A1: 本問題ではコンパイル済みのバイナリ、特にJavaの場合はクラスファイルに含まれるバイトコードを指します。JVMが解釈またはJITで実行します。
A1: 本問題ではコンパイル済みのバイナリ、特にJavaの場合はクラスファイルに含まれるバイトコードを指します。JVMが解釈またはJITで実行します。
Q2: アプレットとサーブレットの違いを一言で言うと?
A2: アプレットはクライアント側で実行されるプログラム、サーブレットはサーバ側で実行されるプログラムです。
A2: アプレットはクライアント側で実行されるプログラム、サーブレットはサーバ側で実行されるプログラムです。
Q3: 現在のWebで同様の機能を実現する技術は?
A3: JavaScriptやWebAssemblyがクライアントサイドでの実行手段として主流です。Javaアプレットはほぼ廃止されていますが、概念の理解は試験対策で有用です。
A3: JavaScriptやWebAssemblyがクライアントサイドでの実行手段として主流です。Javaアプレットはほぼ廃止されていますが、概念の理解は試験対策で有用です。
関連キーワード: アプレット、バイトコード、JVM、サーバ転送、クライアント実行、サーブレット、スクリプト、スレッド、サンドボックス、WebAssembly

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

