ホーム > システムアーキテクト試験 > 2017年
システムアーキテクト試験 2017年 午前2 問19
WebブラウザやHTTPを用いず、独自のGUIとデータ転送機構を用いた、ネット
ワーク対戦型のゲームを作成する。仕様の(2)の実現に用いることができる仕組み
はどれか。
〔仕様〕
(1)ゲームは囲碁や将棋のように2人のプレーヤの間で行われ、ゲームの状態はサーバで管理する。プレーヤはそれぞれクライアントプログラムを操作してゲームに参加する。
(2)プレーヤが新たな手を打ったとき、クライアントプログラムはサーバにある関数を呼び出す。サーバにある関数は、その手がルールに従っているかどうかを調べて、ルールに従った手であればゲームの状態を変化させ、そうでなければその手が無効であることをクライアントプログラムに知らせる。
(3)ゲームの状態に変化があれば、サーバは各クライアントプログラムにその旨を知らせることによってGUIに反映させる。
ア:CGI
イ:PHP
ウ:RPC(正解)
エ:XML
解説
ネットワーク対戦型ゲームのサーバ関数呼び出しに適した仕組み【午前2 解説】
要点まとめ
- 結論:仕様(2)の「サーバの関数をクライアントから呼び出す」にはRPCが最適です。
- 根拠:RPCはネットワーク越しに関数を直接呼び出せる仕組みで、独自GUIやデータ転送にも対応可能です。
- 差がつくポイント:CGIやPHPは主にWebサーバでの処理、XMLはデータ形式であり、関数呼び出しの仕組みではありません。
正解の理由
選択肢の中で、クライアントプログラムがサーバ上の関数を直接呼び出す仕組みはRPC(Remote Procedure Call)だけです。RPCはネットワークを介してリモートの関数を呼び出し、結果を受け取ることができるため、ゲームのルールチェックや状態更新をリアルタイムに行うのに適しています。CGIやPHPはHTTPを介したWebアプリケーション向けであり、XMLはデータの記述形式であって関数呼び出しの仕組みではありません。
よくある誤解
CGIやPHPはサーバ側の処理を行う技術ですが、HTTP通信が前提であり、独自の関数呼び出し機構ではありません。XMLは通信データのフォーマットであり、処理の仕組みではない点に注意が必要です。
解法ステップ
- 問題文の仕様(2)を確認し、「クライアントがサーバの関数を呼び出す」点を把握する。
- 各選択肢の特徴を整理し、関数呼び出しの仕組みかどうかを判断する。
- CGIやPHPはHTTPベースのWeb処理技術であることを確認する。
- XMLはデータ記述言語であり、処理の仕組みではないことを理解する。
- RPCがネットワーク越しに関数を呼び出す技術であることから正解と判断する。
選択肢別の誤答解説
- ア: CGI
HTTPリクエストに応じてサーバ側でプログラムを実行する仕組みで、関数呼び出しではなくWeb通信が前提です。 - イ: PHP
サーバサイドのスクリプト言語であり、HTTP通信を介して動作します。独自の関数呼び出し機構ではありません。 - ウ: RPC
ネットワーク越しにリモートの関数を呼び出す仕組みで、仕様(2)に最も適しています。 - エ: XML
データの構造を記述するマークアップ言語であり、関数呼び出しの仕組みではありません。
補足コラム
RPCは分散システムで広く使われる技術で、ゲームや業務システムなどでサーバの機能をクライアントから直接利用する際に便利です。近年ではgRPCやJSON-RPCなどの進化版も登場し、効率的な通信が可能です。
FAQ
Q: CGIとRPCの違いは何ですか?
A: CGIはHTTPリクエストに応じてサーバでプログラムを実行する仕組みで、RPCはネットワーク越しに関数を直接呼び出す技術です。
A: CGIはHTTPリクエストに応じてサーバでプログラムを実行する仕組みで、RPCはネットワーク越しに関数を直接呼び出す技術です。
Q: XMLはなぜ関数呼び出しに使えないのですか?
A: XMLはデータの記述形式であり、処理や関数呼び出しの機能は持っていません。通信データのフォーマットとして使われます。
A: XMLはデータの記述形式であり、処理や関数呼び出しの機能は持っていません。通信データのフォーマットとして使われます。
関連キーワード: RPC, リモートプロシージャコール, ネットワーク通信, クライアントサーバモデル, ゲーム開発