ITの教科書検索
入門読了 約9分

バッチ処理とリアルタイム処理の違い ― 向く業務

給与計算のようにためてまとめて処理するのがバッチ処理、ATMのようにその場で処理するのがリアルタイム処理。業務ごとの選び方と、集中処理・分散処理との違いも。

目次
  1. バッチ処理とリアルタイム処理の違い
  2. バッチ処理とは
  3. リアルタイム処理とは
  4. 対話型処理とは
  5. 2つの方式を表で比べる
  6. 業務ごとに選ぶ
  7. 集中処理と分散処理の違い
  8. 練習問題

バッチ処理とリアルタイム処理の違いは、処理する時刻

月末の給与計算は、締めたあとにまとめて計算しても支給日に間に合います。ATMでの引き出しは、その場で処理が終わらないと利用者が困ります。前者のように、データを一定の期間や量だけためて一括で処理する方式がバッチ処理です。後者のように、データや要求が発生したときにすぐ処理し、結果を返す方式がリアルタイム処理です。

どちらを使うかは、業務が結果をいつ必要とするかで決まります。次の図は、同じ時刻に来た要求を、2つの方式がいつ処理するかを並べたものです。

夜間要求・データが来る処理結果が出るリアルタイム処理要求ごとにすぐ結果バッチ処理ためる一括処理結果結果まで約16時間9時12時15時18時21時0時3時6時翌9時夜間要求・データが来る処理結果が出るリアルタイム処理バッチ処理9時12時15時18時21時0時3時6時翌9時すぐ結果ためる一括処理結果結果まで約16時間
色の付いた箱が処理です。同じ時刻に来た要求を、リアルタイム処理はその場で処理し、バッチ処理はためておいて夜間にまとめて処理します。処理の長さは目盛りどおりではありません。

図のバッチ処理では、10時に来たデータの結果が出るのは翌日の2時ごろです。その代わり、夜間にまとめて流すので、昼間の業務の処理とコンピュータを取り合いません。

バッチ処理とは、ためたデータをまとめて処理する方式

給与計算では、1か月分の勤怠の記録を締め日まで集めます。締めたあと、全社員の分を同じ手順で一度に計算します。このように、一定の期間や量のデータを集め、一括して処理するのがバッチ処理です。

バッチは英語のbatchで、ひとまとまりという意味です。コンピュータに頼む1回分のまとまった仕事を、ジョブと呼びます。バッチ処理では、ジョブを決まった時刻や順番に従って自動で流します。

ジョブを順に実行していく管理は、OSの機能の1つです。この管理を受け持つ仕組みの1つが、ジョブスケジューラーです。夜間に複数のジョブを決まった順に流す運用も、こうした仕組みで動かします。

バッチ処理が向く業務と注意点

向くのは、結果が後でそろえばよく、全件を同じ手順で処理する業務です。給与計算、月次の売上集計、請求書の発行が代表です。夜間や休日に流せば、昼間の業務の処理と重なりません。

注意点は、ジョブが終わるまで結果が出ないことです。途中で入ったデータは、次にジョブを流すまで結果に反映されません。ジョブが予定の時刻までに終わらないと、翌朝の業務を始められないこともあります。ジョブを頼んでから結果がそろうまでの時間は、ターンアラウンドタイムで測ります。

リアルタイム処理とは、発生したときにすぐ処理する方式

ATMでお金を引き出すと、口座の残高はその場で減ります。このように、データや要求が発生したときにすぐ処理し、結果を返すのがリアルタイム処理です。列車の座席予約や、工場のセンサーの値を見張る仕組みも、その例です。

銀行の口座や座席予約のシステムでは、端末とサーバを回線でつなぎ、要求をその場で処理します。この形を、オンライン処理と呼びます。回線越しに1件ずつの取引を処理する形には、オンライントランザクション処理という呼び方もあります。

取引の1件分のひとまとまりを、トランザクションと呼びます。引き出しの途中で失敗したら、残高を減らす処理も取り消さなければなりません。そのための仕組みが、ACID特性です。

リアルタイム処理の分け方は、資料によって違います。機械をすぐに動かしたり止めたりするものを、リアルタイム制御と呼んで分ける資料もあります。

リアルタイム処理の注意点

リアルタイム処理では、要求が来るたびに処理し、決められた時間内に結果を返さなければなりません。そのため、要求が重なる時間帯に備えた処理能力が要ります。止まると業務がその場で止まるため、止まりにくい構成も求められます。止まりにくくする考え方は、フォールトトレラントの記事で説明しています。

対話型処理とは、画面でやりとりしながら進める処理

座席予約の画面では、空席を見て席を選び、確認の画面を見てから予約を確定します。利用者が入力するたびにコンピュータが応え、利用者はその応答を見て次の操作をします。このように、利用者とコンピュータが対話するように進める処理を、対話型処理と呼びます。

バッチ処理では、処理の途中で利用者が入力することはありません。一方、対話型処理とリアルタイム処理は重なる部分の大きい呼び方で、座席予約はどちらの例にもなります。この3つのように、処理をいつ、どうやりとりして行うかで分ける見方を、利用形態と呼びます。

バッチ処理とリアルタイム処理の違いを表で比べる

前の節までの違いを、4つの点でまとめます。どちらが優れているかではなく、業務が結果をいつ必要とするかで選びます。

バッチ処理とリアルタイム処理の違い
比べる点バッチ処理リアルタイム処理
処理する時ためておき、決まった時刻にまとめて発生したときに1件ずつ
結果が出るまでジョブが終わるまで待つすぐ
向く業務給与計算、月次の集計、請求書の発行ATM、座席予約、異常の検知
求められること決まった時刻までに全件を終える要求が重なっても速く応える

業務ごとに、バッチ処理とリアルタイム処理のどちらが向くかを選ぶ

選ぶときの手がかりは、結果がいつ要るかと、データを1件ずつ扱うかまとめて扱うかの2つです。次の図で業務を選ぶと、向く形とその理由が表示されます。

業務を選ぶと、向く処理の形と理由が開きます。
業務
バッチ処理が向く
結果が要る時刻
給与を支払う日に間に合えばよい
データの扱い
締め日までの1か月分の勤怠を、全員分まとめて計算する
全員分を同じ手順で計算するので、締め日のあとに一括で流せば済みます。夜間に流せば、昼間の業務の処理と重なりません。

ネットショップの例のように、1つのシステムの中で両方を組み合わせることもあります。受け付けた仕事をキューにためておき、処理する側が後から取り出す作りは、SQSとSNSの記事にあります。

集中処理と分散処理の違い:処理をどこで行うかの軸

バッチ処理とリアルタイム処理は、処理をいつ行うかによる分け方です。これとは別に、処理をどのコンピュータで行うかによる分け方があります。前者を利用形態、後者を処理形態と呼んで分けます。

処理形態と利用形態の違い
分け方何で分けるか主な種類
処理形態処理をどのコンピュータで行うか集中処理、分散処理、並列処理
利用形態処理をいつ、どうやりとりして行うかバッチ処理、リアルタイム処理、対話型処理

集中処理は、1台の中心となるコンピュータにすべての処理を集める方式です。管理する場所が1か所なので、データの整合性と安全を保ちやすくなります。その代わり、そのコンピュータが止まると全体が止まります。

分散処理は、ネットワークでつないだ複数のコンピュータで処理を分け合う方式です。構成によっては、1台が止まってもほかのコンピュータで処理を続けられます。台数を足して処理能力を増やしやすい一方、障害が起きた場所を突き止めるのは難しくなります。

クライアントサーバシステムは、分散処理の1つです。並列処理は、1つの仕事を分けて複数の処理装置で同時に進め、全体を早く終える方式です。複数の場所に同じデータの写しを置くレプリケーションも、処理形態の1つです。

2つの軸は組み合わせて使います。1台の大型のコンピュータで夜間に給与計算を流すのは、集中処理でのバッチ処理です。複数のサーバで分担して座席予約を受け付けるのは、分散処理でのリアルタイム処理です。

練習問題(全4問)

Q1バッチ処理の説明として、適切なものはどれ?
Q2バッチ処理が最も向く業務はどれ?
Q3ATMでの引き出しをリアルタイム処理で行う理由として、最も適切なものはどれ?
Q4集中処理の特徴として、最も適切なものはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

クラウドの記事を続けて読む

クラウド 全36本中21本目