平成29年度 秋期 システムアーキテクト試験 午前Ⅱ 問19

Webブラウザや HTTP を用いず,独自の GUI とデータ転送機構を用いた,ネットワーク対戦型のゲームを作成する。仕様の (2) の実現に用いることができる仕組みはどれか。

〔仕様〕

(1) ゲームは囲碁や将棋のように 2 人のプレーヤの間で行われ,ゲームの状態はサーバで管理する。プレーヤはそれぞれクライアントプログラムを操作してゲームに参加する。
(2) プレーヤが新たな手を打ったとき,クライアントプログラムはサーバにある関数を呼び出す。サーバにある関数は,その手がルールに従っているかどうかを調べて,ルールに従った手であればゲームの状態を変化させ,そうでなければその手が無効であることをクライアントプログラムに知らせる。
(3) ゲームの状態に変化があれば,サーバは各クライアントプログラムにその旨を知らせることによって GUI に反映させる。

解答・解説

正解: ウ. RPC

正解は ウ です。

問題文の仕様(2)には「クライアントプログラムはサーバにある関数を呼び出す」と記述されています。また、前提条件として「Webブラウザや HTTP を用いず,独自の GUI とデータ転送機構を用いた」とあります。
このように、ネットワークを介して接続された他のコンピュータ(今回の場合はサーバ)上にあるプログラムの関数や手続きを、あたかも自コンピュータ内にあるかのように呼び出して実行させる仕組みを RPC(Remote Procedure Call:遠隔手続き呼出し) と呼びます。

各選択肢の解説

  • ア:CGI(Common Gateway Interface)
    Webサーバが、Webブラウザ(クライアント)からのHTTPリクエストに応じて外部プログラムを起動し、その実行結果をWebブラウザに返すための仕組みです。問題文に「Webブラウザや HTTP を用いず」とあるため不適切です。
  • イ:PHP
    動的なWebページを生成するためにWebサーバ上で動作するサーバサイドのスクリプト言語です。主にHTTPを用いたWebアプリケーション開発で利用される言語であり、遠隔の関数を呼び出す通信の仕組みそのものではありません。
  • ウ:RPC(Remote Procedure Call)
    正解です。ネットワーク上の別のコンピュータにある関数(手続き)を呼び出すためのプロトコルや仕組みであり、仕様(2)の実現に適しています。
  • エ:XML(Extensible Markup Language)
    データの構造や意味をタグを用いて記述するマークアップ言語の一つです。データ形式の仕様であり、サーバ上の関数を呼び出す仕組みではありません。

Spineチーム