pulpul 日本の試験

エンベデッドシステムスペシャリスト 概念書 · 組込み・コンピュータシステム

店舗システムのタスク設計

タスク設計とは、システムの機能を並行して動作する複数のタスクに分割し、各タスクの責務、タスク間で受け渡す情報、通知のタイミングを定める作業である。店舗システムでは、利用者の入退店、商品の出し入れ、機器の状態変化、サーバとの通信が同時に発生するため、タスクの分け方がシステムの応答性と保守性を大きく左右する。以下では、タスクの分割、判断の基準、実際の場面、試験で問われやすい区別の順に整理する。

タスク分割の原理と仕組み

タスクを分割する基本は、各タスクに一つの役割を持たせ、他のタスクとはメッセージ通信で連携させることである。通信を担当するタスクと機器を制御するタスクを分ければ、通信方式が変わった場合でも制御側の変更を小さくできる。実際の設計問題でも、サーバ通信タスクとタスク間のメッセージ通信を行うタスクを分けて、役割を表で整理させる出題がある。

機器側のタスクは、自分の状態の変化を制御側に通知し、制御側がその通知をもとに次の指示を決めるという流れで動く。たとえば配膳ロボットでは、制御装置から搬送の指示を受け、目的のテーブルへの移動完了、料理の取り出し、障害物による停止を制御装置に返す。機器が状態を報告し、制御装置が判断するという役割分担がここに表れている。

無人店舗の例では、商品の下に置かれた重量計測ユニットが利用者による商品の取り出しや戻しを検知する。この情報は決済の処理に用いられるが、設問では、ほかの業務にも活用できるかが問われる。また、利用者の行動情報は退店時にECサーバへ送信されるため、送る情報の内容と量を設計の対象として考える必要がある。

判断の基準:責務・タイミング・データ量

タスクの責務を決める基準は、そのタスクが自分で判断すべき処理と、他のタスクに依頼すべき処理を分けられるかである。たとえば複数台の券売機で販売可能数を扱う場合、親機は子機からの問い合わせに対して営業情報を送り、販売可能数の更新依頼を受けたときに更新の可否を判断する役割を持つ。共有する数量の判断を一か所に集約すると、同じ数量を複数のタスクが別々に更新する不整合を避けられる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む