応用情報技術者過去問題 平成24年春期 午後問8
⇄問題文と設問を画面2分割で開く⇱問題PDF問8 情報システム開発
スマートフォンで利用するアプリケーションの設計に関する次の記述を読んで,設問1~3に答えよ。
X社は,国内旅行を取り扱う旅行代理店である。X社では旅行者が旅先で利用できる新たなサービスとして,スマートフォン用のアプリケーション(以下,旅先案内アプリという)と,旅先案内アプリが利用するAPIを開発することにした。
旅行者は,X社が旅行の案件ごとに割り振った案件番号を旅先案内アプリに設定することで,旅行の日程情報と近隣情報を入手し,スマートフォン上に表示させることができる。近隣情報とは,旅行先の付近にあるレストランと観光地に関する情報である。近隣情報には,リスト表示と地図表示の2種類の表示方法が用意されている。旅行者は,当日行きたい場所の近隣情報に,事前にチェックを付けておくことができる。
旅行の日程情報表示の例を図1に,近隣情報のリスト表示と地図表示の例をそれぞれ図2と図3に示す。 日程情報表示では,時刻,場所及び行動予定を旅程順にリスト形式で表示する。リストの項目をタッチすると,その項目の場所に関する近隣情報を検索してリスト表示する。
リスト表示では,各項目についてレストランか観光地かの種別,名称,住所,電話番号,分類,及び,チェックの有無を示すチェックボックスが表示される。一つの近隣情報が複数の分類に当てはまる場合,分類は","で区切って並べて表示される。チェックボックスをタッチすることで,チェックの有無の状態を切り替えることができる。リストの項目のチェックボックス以外の部分をタッチすると,地図表示に遷移する。
地図表示では,リスト表示でタッチした項目と,チェックボックスにチェックのある項目に関する情報が,地図上に吹出しを使って表示される。吹出しの部分をタッチするとWebブラウザが開き,関連するWebページを参照することができる。
ネットワークへのアクセスを最小限に抑えるために,リスト表示のときに検索して入手した近隣情報は地図表示にも引き渡され,吹出しの表示に利用される。
〔旅先案内アプリの開発方針〕
旅先案内アプリの開発では,複数の提供元によるAPIを組み合わせることで新しいサービスを構築する,aと呼ばれる手法を用いることにした。
旅先案内アプリは,複数の情報にアクセスし,それらを組み合わせて表示する。旅先案内アプリが利用する情報と,それぞれの情報へのアクセス方法を表1に示す。
日程情報と観光地情報はX社のデータベースに保存されている。これらの情報にアクセスするAPIを新規に開発する。旅先案内アプリは,このAPIを利用して,X社のデータベースに保存されている日程情報と観光地情報を取得する。地図情報は,近隣情報の地図表示の際に,背景となる地図を表示するために用いる。Y社はレストラン情報のポータルサイトを運営する広告代理店,Z社はスマートフォン向けの地図情報ライブラリを提供するソフトウェアメーカーである。〔レストラン情報検索のAPI)
レストラン情報の検索に用いるY社のAPIの概要を図4に示す。〔近隣情報を取得するAPIの設計〕
当初は,旅先案内アプリがX社,Y社及びZ社のAPIにアクセスし,結果を組み合わせて表示する方式を考えた。しかし,レビュー時の指摘によって,①旅先案内アプリはX社とZ社のAPIにだけアクセスし,Y社のAPIにはX社のAPIの内部処理からアクセスする方式に変更した。
この変更を受けて,新規に開発するX社のAPIは,X社のデータベースから検索した観光地情報と,Y社のAPIから得られたレストラン情報とを組み合わせて近隣情報を作り,結果をXML形式で返すことにした。
X社のAPIのリクエストパラメータを表2に,応答内容を表3に,応答の例を図5に示す。
なお,X社のAPIでは,位置情報は全て緯度・経度で表す。また,Y社のAPI利用時に用いるbの値はX社のAPIの内部の定数として定義しておき,常にその値を用いることにする。〔プログラムの改修〕
電波が届かないところでも,近隣情報のリスト表示までは操作ができるようにするために,スマートフォン内部に検索結果のコピーを保存することにした。電波が届かないところでも,検索結果のコピーがあるときにはコピーを参照して画面に表示する。この変更に伴い,②近隣情報の表示項目に変更を加えることにした。
X社は,国内旅行を取り扱う旅行代理店である。X社では旅行者が旅先で利用できる新たなサービスとして,スマートフォン用のアプリケーション(以下,旅先案内アプリという)と,旅先案内アプリが利用するAPIを開発することにした。
旅行者は,X社が旅行の案件ごとに割り振った案件番号を旅先案内アプリに設定することで,旅行の日程情報と近隣情報を入手し,スマートフォン上に表示させることができる。近隣情報とは,旅行先の付近にあるレストランと観光地に関する情報である。近隣情報には,リスト表示と地図表示の2種類の表示方法が用意されている。旅行者は,当日行きたい場所の近隣情報に,事前にチェックを付けておくことができる。
旅行の日程情報表示の例を図1に,近隣情報のリスト表示と地図表示の例をそれぞれ図2と図3に示す。 日程情報表示では,時刻,場所及び行動予定を旅程順にリスト形式で表示する。リストの項目をタッチすると,その項目の場所に関する近隣情報を検索してリスト表示する。
リスト表示では,各項目についてレストランか観光地かの種別,名称,住所,電話番号,分類,及び,チェックの有無を示すチェックボックスが表示される。一つの近隣情報が複数の分類に当てはまる場合,分類は","で区切って並べて表示される。チェックボックスをタッチすることで,チェックの有無の状態を切り替えることができる。リストの項目のチェックボックス以外の部分をタッチすると,地図表示に遷移する。
地図表示では,リスト表示でタッチした項目と,チェックボックスにチェックのある項目に関する情報が,地図上に吹出しを使って表示される。吹出しの部分をタッチするとWebブラウザが開き,関連するWebページを参照することができる。
ネットワークへのアクセスを最小限に抑えるために,リスト表示のときに検索して入手した近隣情報は地図表示にも引き渡され,吹出しの表示に利用される。
〔旅先案内アプリの開発方針〕
旅先案内アプリの開発では,複数の提供元によるAPIを組み合わせることで新しいサービスを構築する,aと呼ばれる手法を用いることにした。
旅先案内アプリは,複数の情報にアクセスし,それらを組み合わせて表示する。旅先案内アプリが利用する情報と,それぞれの情報へのアクセス方法を表1に示す。
日程情報と観光地情報はX社のデータベースに保存されている。これらの情報にアクセスするAPIを新規に開発する。旅先案内アプリは,このAPIを利用して,X社のデータベースに保存されている日程情報と観光地情報を取得する。地図情報は,近隣情報の地図表示の際に,背景となる地図を表示するために用いる。Y社はレストラン情報のポータルサイトを運営する広告代理店,Z社はスマートフォン向けの地図情報ライブラリを提供するソフトウェアメーカーである。〔レストラン情報検索のAPI)
レストラン情報の検索に用いるY社のAPIの概要を図4に示す。〔近隣情報を取得するAPIの設計〕
当初は,旅先案内アプリがX社,Y社及びZ社のAPIにアクセスし,結果を組み合わせて表示する方式を考えた。しかし,レビュー時の指摘によって,①旅先案内アプリはX社とZ社のAPIにだけアクセスし,Y社のAPIにはX社のAPIの内部処理からアクセスする方式に変更した。
この変更を受けて,新規に開発するX社のAPIは,X社のデータベースから検索した観光地情報と,Y社のAPIから得られたレストラン情報とを組み合わせて近隣情報を作り,結果をXML形式で返すことにした。
X社のAPIのリクエストパラメータを表2に,応答内容を表3に,応答の例を図5に示す。
なお,X社のAPIでは,位置情報は全て緯度・経度で表す。また,Y社のAPI利用時に用いるbの値はX社のAPIの内部の定数として定義しておき,常にその値を用いることにする。〔プログラムの改修〕
電波が届かないところでも,近隣情報のリスト表示までは操作ができるようにするために,スマートフォン内部に検索結果のコピーを保存することにした。電波が届かないところでも,検索結果のコピーがあるときにはコピーを参照して画面に表示する。この変更に伴い,②近隣情報の表示項目に変更を加えることにした。
設問1
X社のAPIの設計について,(1),(2)に答えよ。
- 本文中のa,bに入れる適切な字句を答えよ。
- 表3中のc~eに入れる適切な字句を答えよ。
解答入力欄
- a:
- b:
- c:
- d:
- e:
解答例・解答の要点
- a:マッシュアップ
- b:アクセスキー
- c:分類
- d:緯度
- e:経度
解説
- 〔aについて〕
空欄の前文を読むと「複数の提供元によるAPIを組み合わせることで新しいサービスを構築する」方法であると説明されています。本問の事例のように、他サイトで公開されているWebサービスのAPIを組み合わせて一つの新しいWebサービスのように機能させることを「マッシュアップ」といいます。
∴a=マッシュアップ
〔bについて〕
図4「Y社のAPIの概要」(1)サービスの概要には、Y社に利用者登録をすると、登録者ごとのアクセスキーが発行され、API呼出し時にはアクセスキーと検索条件を指定しなければならないことがわかります。
空欄の前後を確認すると、「Y社のAPI利用時に用いる値」かつ「定数として定義しておき、常にその値を用いる」という説明があるので、[b]には「アクセスキー」が当てはまります。検索条件はその都度変化するため定数にはできないからです。
∴b=アクセスキー - 〔c、d、eについて〕
それぞれY社のAPIの応答内容が入ります。
図4「Y社のAPIの概要」(2)APIの仕様を確認すると、「検索結果には,店舗ID,店舗名称,分類,住所,電話番号,緯度,経度,及び店舗のWebページのURLが含まれる」という記載があります。表3中には、店舗ID、住所、電話番号、店舗のWebページのURLが既に記載されていますから、残りは、分類、緯度、経度です。
ここで、表3中の出現回数に着目すると、3つの空欄の中で[c]だけは"1以上"になっています。問題文序盤で「一つの近隣情報が複数の分類に当てはまる場合,分類は","で区切って並べて表示される」と説明されていること、図2中で「分類:和食,定食」と表示されていることから、3つの候補のうち、分類だけは応答内容が複数項目になり得ることがわかります。したがって、[c]には「分類」が当てはまると判断できます。
そして、残りの2つの空欄[d][e]には「経度」と「緯度」が入ります。
∴c=分類
d、e=緯度、経度(順不同)
設問2
本文中の下線①について,Y社のAPIにはX社のAPIの内部処理からアクセスする方式にした理由を解答群の中から二つ選び,記号で答えよ。
解答群
- X社のWebサーバの負荷が軽くなり,負荷分散の効果があるから
- Y社のAPIの仕様変更時にアプリケーションの改修をせずに済ませることができるから
- Y社のAPIの,アクセスキーの貸与や譲渡を禁止する利用規約に抵触するおそれがあるから
- Y社のAPIは,スマートフォンからのアクセスを受け付けないから
- 地図情報表示の画面で,地図が表示されるまでの時間が短くなるから
解答入力欄
解答例・解答の要点
- イ
- ウ
解説
- X社の内部処理からアクセスする方式にすると、利用者のスマートフォンで実行していた処理をX社のWebサーバで実行することになるので、X社Webサーバの負荷は高くなります。
- 正しい。図4「Y社のAPIの概要」(3)サービスの利用規約(抜粋)には、「APIの仕様が変更された場合は,API利用者側で対応を取る必要がある」という記載があります。旅先案内アプリからY社のAPIにアクセスする方式だと、仕様変更があった場合に、旅先案内アプリの修正版をリリースし、利用者に更新してもらわなければなりません。しかし、X社の内部処理からアクセスする方式であれば、X社の内部処理の変更だけでY社APIの仕様変更を吸収できるという利点があります。
- 正しい。図4「Y社のAPIの概要」(3)サービスの利用規約(抜粋)には、「アクセスキーを,他の利用者に貸与したり譲渡したりしてはならない」という記載があります。旅先案内アプリからY社APIにアクセスする方式の場合、X社以外の者がX社のアクセスキーを用いてY社のAPIを呼び出すことになるため、アクセスキーを他人に貸与する行為に該当するおそれがあります。利用規約遵守の点から考えれば、X社の内部処理からアクセスする方式が優れています。
- 図4「Y社のAPIの概要」にそのような制約は記載されていないため誤りです。
- 地図表示はZ社のAPIを使って行います。地図情報の際に使用する近隣情報は、リスト表示の時に取得した旅先案内アプリ内に保存して再利用するので、旅先案内アプリからでも、X社の内部処理からでも地図表示時間は変わりません。
設問3
本文中の下線②について,近隣情報の表示項目にどのような変更を加えたか,変更内容を30字以内で答えよ。
解答入力欄
- o:
解答例・解答の要点
- o:表示項目としてY社のAPIの実行時刻を追加する (23文字)
解説
〔プログラムの改修〕を確認すると「電波が届かないところでも,近隣情報のリスト表示までは操作ができるようにするために,スマートフォン内部に検索結果のコピーを保存することにした」と記載があります。近隣情報をリアルタイムで表示できないのであれば、以前取得した情報を使うということです。
図4「Y社のAPIの概要」を確認すると「APIの実行結果をリアルタイムに表示できない場合は,APIの実行時刻を画面に表示する必要がある」と記載されています。つまり、以前取得した情報を使う際には、実行時刻とともに表示する必要があるということです。現在の表示項目には実行時刻が含まれていないので、利用規約を遵守するためにはこの点を変更する必要があります。したがって、「表示項目にY社APIの実行時刻を加える」旨の解答が適切となります。
∴表示項目としてY社のAPIの実行時刻を追加する
図4「Y社のAPIの概要」を確認すると「APIの実行結果をリアルタイムに表示できない場合は,APIの実行時刻を画面に表示する必要がある」と記載されています。つまり、以前取得した情報を使う際には、実行時刻とともに表示する必要があるということです。現在の表示項目には実行時刻が含まれていないので、利用規約を遵守するためにはこの点を変更する必要があります。したがって、「表示項目にY社APIの実行時刻を加える」旨の解答が適切となります。
∴表示項目としてY社のAPIの実行時刻を追加する