Spring Batchとは
今回紹介するSpring Batchは、エンタープライズレベルのバッチ処理を実現するためのフレームワークだ。
エンタープライズアプリケーションにおいて、大量のトランザクションを一括処理する「バッチ処理」は避けて通れない。Spring Batchでは、開発者が「バッチ処理」を簡単に実装するため、主に以下のような機能を提供している。
- スケーラビリティ - マルチスレッド・マルチプロセスでの並列処理
- データの整合性を保ち、処理順序を保障する「バッチプロセス管理」
- バッチプロセスのトランザクション管理
バッチ処理で必要な基本的な機能はSpring Batchフレームワークに任せ、開発者はビジネスロジックの実装に注力することができる。
次にSpring Batchのモジュール構成を紹介しよう。大まかに2つのモジュールに分かれている。
Infrastructure(基盤機能) : 再利用可能な低レベル部品を提供する
リピート、リトライといったバッチプロセス実行のサポート
- フラットファイル、XML、データベースといったリソースの入出力サポート
- トランザクション管理
Core : バッチジョブの「起動」と「プロセス管理」を実現するためのモジュール群
2つのモジュールはSpirngFrameworkをベースに持つ。このため、SpringBatchではSpirngFrameworkの機能を利用することができる。下の図では、それぞれのモジュールの依存関係が示されている。
SpringBatchのモジュール構成(http://static.springsource.org/spring-batch/images/RuntimeDependencies.png) |
Spring Batchは執筆現在(2010/5)でv2.1.1がリリースされている。この記事も原則このバージョンに基づいて作成している。