IPA過去問ドリル

令和5年度 春期 システムアーキテクト試験 午前Ⅱ 問22

テクノロジ/ネットワーク

Web ブラウザや HTTP を用いず,独自の GUI とデータ転送機構を用いた,ネットワーク対戦型のゲームを作成する。仕様の (2) の実現に用いることができる仕組みはどれか。 〔仕様〕 (1) ゲームは囲碁や将棋のように 2 人のプレーヤの間で行われ,ゲームの状態はサーバで管理する。プレーヤはそれぞれクライアントプログラムを操作してゲームに参加する。 (2) プレーヤが新たな手を打ったとき,クライアントプログラムはサーバにある関数を呼び出す。サーバにある関数は,その手がルールに従っているかどうかを調べて,ルールに従った手であればゲームの状態を変化させ,そうでなければその手が無効であることをクライアントプログラムに知らせる。 (3) ゲームの状態に変化があれば,サーバは各クライアントプログラムにその旨を知らせることによって GUI に反映させる。

出典:令和5年度 春期 システムアーキテクト試験 午前Ⅱ 問22

正解:ウ

解説

仕様の (2) は,クライアントプログラムがサーバ上にある関数を呼び出し,その結果(手の有効・無効)を受け取るというものです。ネットワーク越しに別のコンピュータ上の手続(関数)をローカルの関数呼出しと同じ形で呼び出す仕組みが RPC(Remote Procedure Call)です。本問は Web ブラウザや HTTP を用いない独自のデータ転送機構を前提としている点にも注意します。

選択肢ごとの解説

  • 誤り。CGI は Web サーバが外部プログラムを起動して動的なコンテンツを生成する仕組みで,HTTP と Web サーバを前提としています。
  • 誤り。PHP は主に Web ページを動的に生成するために用いるサーバサイドのスクリプト言語であり,遠隔の関数呼出しの仕組みそのものではありません。
  • 正しい。RPC は,ネットワーク上の別のコンピュータにある手続(関数)を呼び出し,結果を受け取る仕組みで,仕様 (2) の実現に用いることができます。
  • 誤り。XML はデータを構造化して記述するためのマークアップ言語であり,データの表現形式であって遠隔呼出しの仕組みではありません。
システムアーキテクトの過去問を演習モードで解く