見出し画像

社内システムでバッチ処理が発生する理由

処理すべきデータをためておき、夜間などにまとめて処理を行う"バッチ処理"。コンピュータの処理性能向上や、主に意思決定を目的とした処理結果の即時反映の要件の高度化から、バッチ処理をやめてオンライン処理にしていこうという動きがあります。

特に社内システムでは、利用者は最大でも社員数に収まり、それに対応してデータ数も爆発的に増えることがないため、オンライン処理に寄せられそうだと考えられます。しかし、社内システム開発に関わっていて、ある程度しょうがないよな、というケースがあることがわかってきたので、シェアします。

スケジュール実行

入社日を迎えたら…といった、処理自体にスケジュール性がある場合です。この場合は社内システムに限らずバッチ処理になるのが自然だと思うので問題ないと思われます。

人事システム等データ連携を行う他システムがバッチ処理を行っている

人事システムから人事情報や組織情報を取得して…会計システムから勘定科目マスタを取得して…など、他の社内システムとのデータ連携がある際に対向システムがオンライン処理に対応しておらずバッチ処理でデータ連携を行う仕様になっている場合、こちらも引きずられてバッチになることがあります。

社内システムならではの都合として、システムの持ち主が人事や経理などに分散しており、特定部署の都合でどうにもならない場合が多いです。

開発・運用工数

利益を生み出す顧客向けのシステムには、機能改善のために大きなコストをかけることが許容されることが少なくないと思います。しかし、社内システムでは、システムを作る工数も、システムを運用する工数も、システムを利用する工数も、会社全体から見ると基本的にコスト(販管費)になるため、利用者(社員)が使いやすくするために、開発や運用に多くの工数をかけることはできません。

そのため、バッチ処理で開発する場合と比べ、オンライン処理で開発する場合の工数が大きくなる場合や、オンライン処理にすることで運用工数が増大するような場合は、あえてバッチ処理で作ることがあります。

SaaSやパッケージの費用

あるSaaS製品は外部システムと連携する際に、(1トランザクション当たりの通信量に関係なく)トランザクション"数"によって課金される仕様で、この場合は一括で処理をすることでトランザクション数=費用を減らせるため、バッチ処理にしました。

このように、社内システムで利用されることが増えているSaaSやパッケージの料金体系によってバッチ処理が選択されることがあります。

以上です。

この記事が気に入ったらサポートをしてみませんか?