SAシステムアーキテクト試験 午後Ⅱ

令和6年度春期 システムアーキテクト 午後Ⅱ 問2

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

問2 バッチ処理の設計について 業務処理において,一定のリソースの下で大量データを効率的に処理するためにバッチ処理を選択することがある。バッチ処理では,大量データを処理すると処理時間が長い,オンライン処理との並行実施が必要,など様々な課題が生じる。システムアーキテクトには,業務上の特性や制約に基づいて課題を解決することが求められる。 課題を解決するために,例えば次のように,バッチ処理の設計を工夫する。 ・売上データの取込件数が多いので後続の締め処理に間に合わなくなる,という課題に対して,インメモリデータ処理やオフラインバッチ処理などの処理方式を選択してスループットを上げる。 ・現在のリソースではピークの日に全ての取引を処理しきれない可能性がある,という課題に対して,1日の処理件数の上限を設け,業務上優先度が高い取引から処理し,上限を超過した取引を翌日の処理に持ち越すようにする。 ・画面で入力しているデータをバッチ処理が同時に更新しようとするとデータの競合が生じる可能性がある,という課題に対して,画面で入力したデータを一時保存し,バッチ処理終了後に非同期でデータベースに反映する。 また,エラーが発生しても処理を継続させる仕組みを組み込んでおくことも重要である。例えば,給与振込データ作成時に後続処理に影響を与えないために,エラーデータを読み飛ばして後で再処理できるようにする。再処理時には,二重更新させないために,処理済データを読み飛ばして未処理データだけ処理するようにする。 あなたの経験と考えに基づいて,設問ア~ウに従って論述せよ。 設問ア あなたが携わったバッチ処理の設計について,対象とする業務と情報システムの概要,及び業務上の特性や制約について,800字以内で述べよ。 設問イ 設問アで述べたバッチ処理について,どのような課題があったか。その課題を解決するために,どのような設計にしたか。工夫した点を中心に,800字以上1、600字以内で具体的に述べよ。 設問ウ 設問アで述べたバッチ処理で,エラーが発生しても処理を継続させるようにするために,どのような仕組みを組み込んだか。そのように設計した理由とともに,600字以上1、200字以内で具体的に述べよ。
解き方のヒントを見る

実務経験から設計判断を振り返る

バッチ処理に関わった経験を振り返り、課題と設計判断のつながりに着目しましょう。エラー時の処理継続を検討した場面について、当時の課題を踏まえて判断した理由を、自分の言葉で整理すると説明の軸が定まります。

この問題で問われていること

設問で求められる観点に沿って、自身が経験した課題が、エラー時の処理継続に関する判断へどう結び付いたかを確認しましょう。実際に担った役割を踏まえ、判断の理由を経験の経緯と結び付けて説明できるかが着眼点です。

視点

経験の説明では、課題の紹介と設計判断が別々にならないよう、両者のつながりを整理します。当時どのような課題を重視し、それが自分の判断の理由にどう関わったかを振り返りましょう。

確認ポイント

  • 取り上げる経験の中で、判断につながった課題を説明できるか
  • エラー時の処理継続に関する判断を、当時の課題と結び付けているか
  • 判断の理由を、自身の役割と設問の観点に沿って説明できるか
正解と解説を見る

解説

一定のリソースで大量データを扱うバッチ処理について、自身の経験に基づき、業務上の特性や制約、課題を解決する設計上の工夫、エラー時の継続と再処理の仕組みを一貫して論述する問題です。設計内容に加えて、その設計を選んだ理由を具体的に説明します。

問題の全体像

本問は、一定のリソースで大量データを処理するときの処理時間、ピーク時の処理能力、オンライン処理との競合などを扱う論述問題です。特定の企業の事例は与えられておらず、自身が携わったバッチ処理の設計を題材にします。添付の解答例資料に示されているのは出題趣旨であり、個別の模範答案ではありません。出題趣旨では、業務内容を把握する能力と、要求事項に対して効果的な技術を適用する能力などを評価するとしています。採点講評では、問題文の例や一般論を組み合わせるだけでなく、自らが実際に検討し取り組んだことを、その理由や検討の経緯とともに具体的に論述するよう求めています。設問アで業務条件を示し、設問イで課題と設計、設問ウでエラー時の仕組みと理由を説明する構成にします。

設問ア

「あなたが携わった」「対象とする業務と情報システムの概要」「業務上の特性や制約」に着目します。800字以内で、業務の目的、システムの役割、対象のバッチ処理が扱うデータと処理内容を説明し、後の設計判断に関係する条件を示します。例えば、処理期限と後続業務の関係、通常時とピーク時のデータ量、リソースの制約、オンライン処理との並行実施の必要性などを、自身の経験に即して具体化します。経験から業務条件を記述することは設問の要求に沿っています。その際、実際の条件と説明上の仮定を区別し、仮定を実際に経験した事実として扱わないようにします。業務条件を明確にすることで、設問イ・ウの設計がなぜ必要で妥当なのかを説明できる土台になります。

設問イ

「どのような課題があったか」「どのような設計にしたか」「工夫した点を中心に」に着目します。800字以上1、600字以内で、設問アの業務条件から生じた課題、その業務への影響、設計上の工夫、採用理由と検討の経緯をつなげて述べます。問題文には、締め処理に間に合わせるための処理方式の選択、処理件数の上限と優先順位の設定、競合を避けるための一時保存と非同期反映が例示されています。これらをそのまま列挙するのではなく、自身の業務条件に照らして実際の設計を説明します。採点講評では、実行時間を重ねない運用やサーバ増設による対応だけでは、設計の工夫とは言えない論述があったとしています。また、優先度が高いものを処理したと述べるだけでは、業務と優先度の関係が不明で妥当性を判断できないと指摘しています。優先処理を題材にするなら、どの取引を何の業務上の理由で優先し、どの条件で翌日に持ち越せるのかまで具体化します。

設問ウ

「エラーが発生しても処理を継続させる」「どのような仕組み」「そのように設計した理由」に着目します。600字以上1、200字以内で、想定したエラー、処理を継続する範囲、組み込んだ仕組み、後で再処理する方法と、それらを選んだ業務上の理由を説明します。問題文では、給与振込データ作成時に後続処理への影響を避けるため、エラーデータを読み飛ばして後で再処理できるようにし、再処理時には処理済データを除外して二重更新を防ぐ例が示されています。自身の設計では、失敗したデータと処理済データをどう識別・管理したか、正常なデータの処理をどう継続したか、修正後に未処理分をどう処理したかを具体的に述べます。出題趣旨でも、エラーがあった場合に再処理できる仕組みを求めています。仕組みの説明だけで終わらず、処理を停止するとどの業務に影響するのか、なぜその単位で継続できるのかを設問アの条件と結び付けて説明することが大切です。

学習のポイント

業務条件から課題を導き、設計上の工夫と選択理由を説明する力、及び処理継続と安全な再処理を両立する考え方を学びます。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度春期 システムアーキテクト試験 午後Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針