SkillStack
テクノロジ系22 / 25問

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

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

RPCはRemote Procedure Callの略で、ネットワーク上の別のコンピュータにある手続や関数を、呼出し側のプログラムから実行する仕組みです。クライアントは着手位置などを引数としてサーバの関数を呼び出し、サーバはルール判定と状態更新を行い、判定結果を戻り値として返せます。通信処理の詳細を関数呼出しの形に隠蔽できるため、独自のGUIとデータ転送機構を用いるクライアントサーバ型ゲームでも、仕様の処理を実現できます。したがって、ウが正解です。

アのCGIは誤りです。CGIは、Webサーバがブラウザから受け取った要求に応じて外部プログラムを起動し、その実行結果をWebページなどとして返すためのインタフェースです。WebサーバやHTTPを前提とする代表的な仕組みであり、サーバ上の関数を遠隔呼出しする一般的な機構ではありません。

イのPHPは誤りです。PHPは、主にWebサーバ側で動的なWebページやWebアプリケーションを作るために使用されるプログラミング言語です。関数を実装することはできますが、遠隔の関数を呼び出す通信機構そのものを表す用語ではありません。

エのXMLは誤りです。XMLは、タグを使って構造化データを記述するためのマークアップ言語です。通信データの表現形式には利用できますが、クライアントからサーバの関数を呼び出して結果を返す仕組みそのものではありません。

【ポイント】 RPCでは、引数の送信や戻り値の受信を通信処理として実行しつつ、プログラム上は関数呼出しに近い形で扱えます。 「遠隔にある関数や手続を呼び出す」という記述が、RPCを見分ける決め手です。

出典:令和5年度 春期 システムアーキテクト試験 午前II 問22
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める