基本情報技術者 2016年 春期 午後 問05
スマートフォンを用いた店舗検索システムに関する次の記述を読んで、設問1〜3に答えよ。
E社は首都圏に約50店舗をもつ生鮮食料品の販売店である。来店客数の増加を目的として、指定した市区町村にある店舗情報をスマートフォンを用いて検索するシステムを構築することになった。このシステムは、スマートフォン上で動作するアプリケーションソフトウェア(以下、アプリという)、Webサーバ及びファイルサーバから構成されている。
〔システム機能の要件〕
(1) 利用者はブラウザを起動し、本システムのURLを指定してWebページを表示する。Webページには、検索を行うための市区町村名の入力欄がある。
(2) 利用者が入力した市区町村名で店舗検索し、その市区町村にある店舗名と住所、電話番号、お気に入り数及び特売情報を抽出して、お気に入りボタンとともに表示する。利用者は表示された店舗を気に入ったならば、お気に入りボタンを押す。
(3) 検索対象となるE社の店舗データは、ファイルサーバ上の店舗データファイルに保管されている。店舗データファイルのレコード様式を図1に示す。

(4) 店舗ごとに、お気に入りボタンが押されるたびに1が加算されるお気に入り数の値を、お気に入りデータファイルに保持する。お気に入り数は、Webページで店舗のお気に入りボタンが押された回数である。お気に入りデータファイルのレコード様式を図2に示す。
〔処理の流れ〕
本システムの処理は、次の処理Aから処理Cの順番で行われる。
処理A:店舗を検索するための市区町村名の入力欄と、検索実行ボタンが含まれるWeb画面を生成し、表示する。
処理B:利用者が入力した“市区町村名”をキーに、読み込んだ店舗データファイルとお気に入りデータファイルを検索する。検索で得られた店舗名、住所、電話番号、特売情報、お気に入り数、お気に入りボタン、再検索を行うための市区町村名の入力欄、及び検索実行ボタンを検索結果画面に表示する。市区町村に複数の店舗がある場合は列挙して表示する。検索実行ボタンが押された場合は、再び処理Bが行われる。
処理C:利用者が検索結果画面に表示されている各店舗のお気に入りボタンを押すと、お気に入りデータファイルの該当する店舗のお気に入り数の値に1を加える処理を行う。続いて、お気に入りデータファイルから新しいお気に入り数を読み込んで、検索結果画面を再表示する。新たに店舗のお気に入りボタンが押された場合は、処理Cを継続する。
〔実装方法の設計〕
システム機能の要件を満たし、処理の流れを実装する方式として、Web方式とWebアプリ方式の二つを比較検討する。それぞれの特徴を表1に、それぞれの方式のシーケンス図を図3、図4に示す。図において、上段が空欄の矢印はメッセージを省略している。
〔シーケンス図〕
(1) Web方式で実装する場合
処理Bではファイルサーバはaから得た情報を、処理Cではファイルサーバはbから得た情報をWebサーバに返却する。
(2) Webアプリ方式で実装する場合

処理Aではファイルサーバはaから得た情報を、処理Cではファイルサーバはbから得た情報をブラウザに返却する。
ここで、Web方式とWebアプリ方式の比較検討では、スマートフォンでの利便性を考慮して、次の要件を追加した。

Web方式の場合、表示する画面はcので、処理Bの実行中にdとeの間の無線通信が圏外になると、次画面を読み込めなくなる。
一方、Webアプリ方式の場合は、通信を行わなくても、ブラウザが読み込んだWebアプリで処理を行うことができる。処理Bの実行中にdとeの間の無線通信が圏外になって切断されても、検索の操作を続けることが可能となる。
したがって、Webアプリ方式で実装することにした。
設問1:
問題文を見る 本文中のに入れる正しい答えを、解答群の中から選べ。
a, bに関する解答群
ア:お気に入りデータファイル
イ:店舗データファイル
ウ:店舗データファイルとお気に入りデータファイル
cに関する解答群
ア:ブラウザがWebサーバに都度要求し、Webサーバが生成する必要がある
イ:ブラウザがファイルサーバに都度要求し、ファイルサーバから取得する必要がある
ウ:ブラウザが生成するが、生成中に圏外を検知すると停止する
エ:ブラウザが生成し、都度表示させる必要がある
d, eに関する解答群
ア:Webサーバ
イ:ファイルサーバ
ウ:ブラウザ
エ:利用者
模範解答
a:ウ、b:ア、c:ア、d:ウ、e:ア(d,eは順不同)
解説
解答の導き方
この設問では、店舗を検索するときやお気に入りボタンを押したときに、どのデータファイルが必要かを考えます。あわせて、画面をどこで作る方式なのか、通信が必要な区間はどこなのかを確認します。
まず、図1の店舗データファイルには、店舗番号や店舗名、市区町村名、住所などが記録されています。図2のお気に入りデータファイルには、店舗番号とお気に入り数が記録されています。検索結果には店舗の情報だけでなくお気に入り数も表示するため、両方のデータが必要です。
-
a:Web方式では、処理Bで市区町村名を使って店舗を検索し、店舗情報とお気に入り数を表示します。そのため、店舗データファイルとお気に入りデータファイルの両方を参照します。
Webアプリ方式でも、処理Aでブラウザがデータを読み込んでおき、その後の処理Bを行います。お気に入り数も表示するので、ここでも両方のデータが必要です。
したがって、**aは「店舗データファイルとお気に入りデータファイル」**です。 -
b:処理Cでは、お気に入りボタンが押された店舗のお気に入り数を1増やし、その新しい数を読み込んで表示し直します。この処理で更新・読み込みするのはお気に入り数なので、必要なのはお気に入りデータファイルです。
したがって、**bは「お気に入りデータファイル」**です。
次に、cを考えます。ブラウザ(Webページを表示するソフト)からの要求を受け、画面の情報などを返すコンピュータがWebサーバです。Web方式では、表1に「画面を切り替えるたびに、Webサーバが生成した画面の情報をブラウザが読み込み、表示する」とあります。つまり、画面を表示するたびにWebサーバとの通信が必要です。
そのため、**cは「ブラウザがWebサーバに都度要求し、Webサーバが生成する必要がある」**です。処理Bの実行中に通信が圏外になると、Webサーバから次の画面を受け取れません。
そのため、**cは「ブラウザがWebサーバに都度要求し、Webサーバが生成する必要がある」**です。処理Bの実行中に通信が圏外になると、Webサーバから次の画面を受け取れません。
最後に、圏外になると影響を受ける通信の相手を確認します。図3では、処理Bの検索要求はブラウザからWebサーバへ送られます。ブラウザとWebサーバの間の無線通信が使えなくなると、次の画面を受け取れません。
したがって、dは「ブラウザ」、**eは「Webサーバ」**です。なお、順番を入れ替えても、通信の両端がこの2者であれば同じです。
したがって、dは「ブラウザ」、**eは「Webサーバ」**です。なお、順番を入れ替えても、通信の両端がこの2者であれば同じです。
誤りやすいポイント
-
店舗データファイルだけで検索結果が作れると考えること
検索結果にはお気に入り数も表示します。店舗情報とお気に入り数は別のファイルにあるため、両方を参照する必要があります。 -
処理Cでも店舗データファイルが必要だと考えること
処理Cで変更するのはお気に入り数です。店舗の住所や電話番号などを更新する処理ではありません。 -
Webアプリ方式なら、どの処理でも通信が不要だと考えること
Webアプリ方式では、読み込んだWebアプリを使ってスマートフォン上で検索できます。一方、お気に入り数をファイルサーバ上で更新する処理Cには、ファイルサーバとの通信が必要です。 -
圏外になる区間を、ブラウザとファイルサーバの間だと考えること
Web方式の処理Bでは、ブラウザが検索要求をWebサーバに送ります。図3で処理Bの要求と応答の経路を追うと、画面の取得に必要な通信はブラウザとWebサーバの間だと分かります。
FAQ
Q:Webアプリ方式では、なぜ店舗データファイルを先に読み込むのですか?
A:処理Bでブラウザ上のWebアプリが検索を行うためです。先に必要なデータを読み込んでおけば、検索のたびにWebサーバへ画面を要求せずに済みます。
A:処理Bでブラウザ上のWebアプリが検索を行うためです。先に必要なデータを読み込んでおけば、検索のたびにWebサーバへ画面を要求せずに済みます。
Q:Webアプリ方式なら、お気に入りボタンも圏外で使えますか?
A:この問題文の新規要件が求めているのは、圏外でも検索操作を続けられることです。処理Cではファイルサーバ上のお気に入りデータファイルを更新するため、圏外でもお気に入り数を更新できるとは読み取れません。
A:この問題文の新規要件が求めているのは、圏外でも検索操作を続けられることです。処理Cではファイルサーバ上のお気に入りデータファイルを更新するため、圏外でもお気に入り数を更新できるとは読み取れません。
Q:Web方式とWebアプリ方式の違いは、画面を作る場所だけですか?
A:主な違いは画面を作る場所と通信のしかたです。Web方式はWebサーバが画面を作り、ブラウザがその都度受け取ります。Webアプリ方式は、読み込んだWebアプリがブラウザ上で画面を作ります。
A:主な違いは画面を作る場所と通信のしかたです。Web方式はWebサーバが画面を作り、ブラウザがその都度受け取ります。Webアプリ方式は、読み込んだWebアプリがブラウザ上で画面を作ります。
関連キーワード: ブラウザ、Webサーバ、ファイルサーバ、Webアプリケーション、シーケンス図、オフライン処理
設問2:
問題文を見る 処理Bでお気に入り数を抽出するための必須項目として正しい答えを、解答群の中から選べ。
解答群
ア:店舗番号
イ:店舗名
ウ:市区町村名
エ:店舗番号、店舗名
オ:店舗番号、市区町村名
カ:店舗名、市区町村名
模範解答
ア
解説
解答の導き方
-
まず、処理Bで何をしたいのかを確認します。利用者が指定した市区町村にある店舗を探し、その店舗のお気に入り数も検索結果に表示します。
-
店舗データファイルには「店舗番号」と「市区町村名」があります。したがって、入力された「市区町村名」を使って、対象となる店舗を見つけられます。
-
次に、お気に入りデータファイルの項目を見ると、「店舗番号」と「お気に入り数」があります。ここには「店舗名」も「市区町村名」もありません。
-
そのため、見つけた店舗のお気に入り数を取り出すには、店舗データファイルの「店舗番号」と、お気に入りデータファイルの「店舗番号」を照合します。ここでいうキーとは、目的のデータを見つける手掛かりとなる項目です。
つまり、市区町村名は対象の店舗を探すために使い、お気に入り数をその店舗に対応付けるためには「店舗番号」が必要です。したがって、選ぶのはアです。
誤りやすいポイント
- 「市区町村名」は検索の出発点ですが、お気に入りデータファイルにはありません。店舗を探す項目と、お気に入り数を対応付ける項目を混同しないようにします。
- 「店舗名」は店舗データファイルにはありますが、お気に入りデータファイルにはありません。両方のファイルで共通して使える項目かどうかを確認します。
- お気に入りデータファイルにある「店舗番号」は、店舗データファイルにもあります。この共通項目で、店舗とお気に入り数を結び付けます。
FAQ
Q: 市区町村名を入力して検索するのに、なぜ市区町村名だけでは足りないのですか?
A: 市区町村名で対象店舗を見つけた後、その店舗のお気に入り数を探す必要があるためです。お気に入りデータファイルには市区町村名がないので、「店舗番号」で対応付けます。
A: 市区町村名で対象店舗を見つけた後、その店舗のお気に入り数を探す必要があるためです。お気に入りデータファイルには市区町村名がないので、「店舗番号」で対応付けます。
Q: 店舗名でお気に入り数を探すことはできませんか?
A: お気に入りデータファイルに店舗名がないため、店舗名では照合できません。両方のファイルにある「店舗番号」を使います。
A: お気に入りデータファイルに店舗名がないため、店舗名では照合できません。両方のファイルにある「店舗番号」を使います。
Q: 「店舗番号」は、店舗を探すときにも使いますか?
A: この設問では、まず市区町村名で対象店舗を探し、その後に店舗番号でお気に入り数を対応付けます。
A: この設問では、まず市区町村名で対象店舗を探し、その後に店舗番号でお気に入り数を対応付けます。
関連キーワード: レコード、検索キー、データ項目、データの対応付け、ファイル検索
設問3:
問題文を見る Web方式とWebアプリ方式ともに、ファイルサーバから情報を取得する。ファイルサーバから見て情報の要求元として正しい答えを、解答群の中から選べ。
解答群


模範解答
イ
解説
解答の導き方
この設問で確認するのは、ファイルサーバに保存された情報について、ファイルサーバへ直接要求を送るのは誰かです。ブラウザ(Webページを表示するソフト)を使う人ではなく、通信の相手となる「要求元」を考えます。
まず、Web方式では、図3の処理BでブラウザからWebサーバへ要求が送られ、その後、Webサーバからファイルサーバへ要求が送られています。処理Cでも、Webサーバがファイルサーバへお気に入り数の更新を要求しています。したがって、Web方式では、処理Bの空欄aも処理Cの空欄bも、ファイルサーバから見た要求元はWebサーバです。
一方、Webアプリ方式では、表1に「全ての店舗データファイルの内容をダウンロードする」とあります。図4の処理Aでは、ブラウザからファイルサーバへ店舗データを要求しています。そのため、空欄aの要求元はブラウザです。
処理Cでも、図4ではブラウザからファイルサーバへ、お気に入り数に1を加える要求を送っています。したがって、空欄bの要求元もブラウザです。
以上から、Web方式ではaとbがWebサーバ、Webアプリ方式ではaとbがブラウザとなる選択肢を選びます。該当するのはイです。
誤りやすいポイント
-
情報を使う人と、ファイルサーバへの要求元を混同すること
利用者が操作していても、Web方式ではWebサーバがファイルサーバへ要求を送ります。 -
Webアプリ方式の処理Bと、処理Aでのデータ取得を混同すること
Webアプリ方式では、処理Aで店舗データをブラウザが取得します。そのデータを使って、処理Bの検索を行います。 -
お気に入り数の更新先だけを見て、要求元を見落とすこと
更新されるデータは同じでも、図3ではWebサーバから、図4ではブラウザからファイルサーバへ要求しています。
FAQ
Q: Webアプリ方式では、処理Bの検索時にファイルサーバへ要求しないのですか?
A: 店舗データは処理Aでブラウザにダウンロードされています。そのデータを使うため、処理Bの検索は通信せずに行えます。
A: 店舗データは処理Aでブラウザにダウンロードされています。そのデータを使うため、処理Bの検索は通信せずに行えます。
Q: Web方式で利用者が検索ボタンを押したのに、なぜ要求元はブラウザではないのですか?
A: ブラウザはWebサーバへ検索を依頼します。その後、Webサーバが店舗データを得るためにファイルサーバへ要求するため、ファイルサーバにとっての要求元はWebサーバです。
A: ブラウザはWebサーバへ検索を依頼します。その後、Webサーバが店舗データを得るためにファイルサーバへ要求するため、ファイルサーバにとっての要求元はWebサーバです。
Q: Webアプリ方式なら、すべての処理で通信が不要ですか?
A: いいえ。処理Bの検索はダウンロード済みのデータで行えますが、処理Cのお気に入り数の更新では、ブラウザからファイルサーバへ要求を送ります。
A: いいえ。処理Bの検索はダウンロード済みのデータで行えますが、処理Cのお気に入り数の更新では、ブラウザからファイルサーバへ要求を送ります。
関連キーワード: Webサーバ、ブラウザ、ファイルサーバ、シーケンス図、Webアプリケーション



