IT技術 副業

システム方式設計:「バッチ処理方式」の書き方

IT技術
おく
おく

システム方式設計書(アプリケーション方式設計書)には具体的に何を書いたらいいのでしょうか。
今回はバッチ処理方式です。
基本的にはオンライン処理方式と同じような書き方です。
役に立つシステム方式設計書にするにはどうしたらいいのか。
記載すべき技術要素と書き方を説明します。

バッチ処理方式に書くこと

オンラインシステムの構築が中心になっているので、バッチは裏方の仕事という感じが強いですね。
オンラインのシステムを補佐するというのか。
しかし、独立して動く一つのシステムなので、設計する要素はオンライン処理に匹敵します。
処理の仕組みは少し単純なので設計よそは少なくなります。
しかし、バッチ固有の要素もあります。

では、バッチ処理方式にはどのようなことを書くのでしょうか。
例えば、
どのように起動するのかです。
オンランの場合は利用者がアクセスすることがきっかけにプログラムが動きます。
(※正確にはちょっと違いますが)
しかし、バッチは起動するトリガーを設定する必要があります。

他には、バッチシステムを作る目的として、大量データの処理をしたい場合があります。
そのために多重処理の仕組みを考える必要もあります。

それでは、もう少し詳細に見ていきましょう。

バッチ処理方式に書く要素

バッチ処理方式にはどのようなことを書いたらいいのでしょうか。
設計する技術要素の一例を列挙します。
ここからでも、オンライン処理方式とは違うことがわかるかと思います。
・アプリケーション構造
・起動制御方式
・パラメータ方式
・状態監視
・処理中断方式
・メッセージ通知方式
・トランザクション制御方式
・多重制御方式
・ファイル転送方式
バッチ処理方式は設計する要素は多岐にわたり膨大です。
「概要」「処理方式」「実装方式」のサブ章は各技術要素ごとに作成するのがよいでしょう。

第3章 バッチ処理方式
 3.1 アプリケーション構造
  3.1.1 概要
  3.1.2 処理方式
  3.1.3 実装方式
 3.2 セッション方式
  3.2.1 概要
  3.2.2 処理方式
  3.2.3 実装方式

(※実際には実装方式は記述不要な場合があります。上記はイメージです。)

各方式の概要

バッチ処理方式はボリュームがあるために、各要素の概要からお話をします。

3.1 アプリケーション構造

構築するバッチの構造を設計します。

バッチ処理概要
クラス構成や定義ファイルなどの関係を図にして説明します。

フォルダ構成
バッチに関係する資産のフォルダ構成を明らかにします。

バッチの処理単位
ジョブ・ジョブネットジョブネットグループ等の構成要素を決めます。

ジョブ処理の実現方式
ジョブ内のプログラム記述ルールなどを決めます。

中間ファイルの生成方式および削除方式
バッチ処理の中で作成した中間ファイルなどの削除方法を決めます。

3.2 起動制御方式

バッチをどのように起動するのかを決めます。
スケジューラによる起動、オンラインからの起動、そのほかイベントでの起動、手動起動などがあります。

3.3 パラメータ方式

ジョブ間などでひき渡す情報をどのような仕組みでやり取りするのかを決めます。
起動パラメータやDBを経由する方法などがあります。

3.4 状態監視

バッチは長時間処理が動き続けることがあります。
正常に動作を続けているのか止まっているのかを監視できる手段が必要になることがあります。
これをどのように実現するのか設計をします。

3.5 処理中断方式

バッチは長時間間動き続けることがあります。
この途に何かの理由で途中停止する必要が出ることもあります。
どのように停止させるのか手順を検討します。
また、システムで停止の仕組みを作成することも検討します。

3.6 メッセージ通知方式

処理の結果をシステム管理者等に通知する方法を設計します。
オンライン処理の場合は画面に表示することができますが、バッチの場合はログへの記録にとどめるのか、メール通知も行うのかなど仕組みを考えます。

3.7 トランザクション制御方式

オンライン処理方式と同じようにDBトランザクションの方式を検討します。

例えば、どのクラスでbeginやcommitを行うのか。
SQLを発行するのはどのクラスで行うのか。
「アプリケーション構造」で説明をしたクラス構造を利用して説明するといいでしょう。

排他処理の方法についても決めます。
排他処理の方式はオンライン処理との整合性を考える必要があります。
オンライン処理中に起動するバッチがあれば同じ方式を採用しておかないと排他が機能しません。

3.8 多重制御方式

バッチでは大量データを処理することが多いです。
限られた時間内に処理しきる方法を考えなければいけません。
多重処理にして負荷を分散させるなど見当も必要です。
多重処理にした場合、各処理の整合性や終了タイミングを待ち合わせて次の処理に移るなど考えることが増えます。

3.9 ファイル転送方式

バッチの場合は他システムとのデータ送受信のためにファイルを使うことが多いです。
どのようなファイルフォーマットにするのか、プロトコルはどうするのかなど検討します。

コメント

タイトルとURLをコピーしました