Spring Batch とは?

Spring Batch

Spring Batch最新情報

NRIのOpenStandiaが提供するSpring Batch最新情報

Spring Batchの保守サポートのお問い合わせはこちら Spring Batchの導入サービスのお問い合わせはこちら OSS全般の事例紹介はこちら

Spring Batchバージョンアップ情報

■2023-03-07
[VerUP]Spring Batch 4.3.8(リリース日:2023/02/22)
■2023-03-07
[VerUP]Spring Batch 5.0.1(リリース日:2023/02/21)
■2022-10-04
[VerUP]Spring Batch 4.3.7(リリース日:2022/09/22)
■2022-05-25
[VerUP]Spring Batch 4.3.6(リリース日:2022/05/18)
■2022-03-08
[VerUP]Spring Batch 4.3.5(リリース日:2022/02/24)
■2021-11-24
[VerUP]Spring Batch 4.3.4(リリース日:2021/11/17)
■2021-11-24
[VerUP]Spring Batch 4.2.8(リリース日:2021/11/17)
■2021-05-27
[VerUP]Spring Batch 4.3.3(リリース日:2021/05/19)
■2021-05-27
[VerUP]Spring Batch 4.2.7(リリース日:2021/05/19)
■2021-04-27
[VerUP]Spring Batch 4.2.6(リリース日:2021/03/18)

すべてを見る

更新日:2022-08-23

Spring Batchの概要

Spring Batch(スプリングバッチ)は、企業システムの日常業務に不可欠なバッチ・アプリケーションの開発を効率化するために設計された、軽量で包括的なバッチフレームワークです。
大量のレコードを高速に処理するための並列化機能や、データの一貫性を保証するトランザクション管理機能など、バッチ処理に必要な一通りの機能が実装されています。
Spring Batchは、Quartz、IBM Tivoli、NRI 千手、Hitachi JP1などの、エンタープライズで利用できるスケジューラの代替ではなく、それらと連携して動作するように設計されています。
それらのスケジューラとともに、COBOLやシェルで実装したシステムでは実現が難しかった、オンライン・アプリケーションとの統合やマルチプラットフォームへの対応を、Javaにより実現することができます。また、AOPやDIを中心としたPOJOベースの手法とSTS (Spring Tool Suite)などのツールにより、高生産で均質なバッチ・アプリケーションの開発を可能にします。

Spring Batchの概要

図: STS (Spring Tool Suite)

Spring Batchは、米SpringSource社と米Accenture社が共同で開発していたSpring Frameworkベースのバッチフレームワークを、2008年にオープンソースプロジェクトに提供したものが基になっています。
豊富な実績のあるSpringのプログラミングモデルと、Accenture社のバッチアーキテクチャの実装に関する技術的な経験により、Spring Batchは開発されており、Javaのバッチ標準化仕様にも取り込まれています。

TOPに戻る

Spring Batchのライセンス

Spring Batchのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。

TOPに戻る

Spring Batchと同類のソフトウェア

「Spring Batchは、長い間バッチフレームワークのデファクトスタンダードであり、基本的な仕組みはJavaにおけるバッチの標準化仕様(JSR-352)にもほぼそのまま取り込まれています。
JSR-352は、Java EE 7 (Java Platform, Enterprise Edition 7) の仕様の一つとしてリリースされているため、現在ではJava EEの参照実装であるアプリケーションサーバーのPayara(GlassFish)やWildFly(JBoss EAP)などにも実装されています。ただし、これらのアプリケーションサーバーはJSR-352の仕様を後発で実装しているため、バッチの開発においてSpring Batchほどの機能や導入実績があるわけではありません。
Spring Batch自体もJSR-352に準拠するようにその後実装が見直され、完全な参照実装として2014年5月にバージョン3.0.0がリリースされ、2017年12月にはJava8向けのバージョン4.0.0がリリースされました。

TOPに戻る

Spring Batchの機能および特徴

Spring Batchは、大量のレコードを処理する際に必須となる様々な機能(ロギング/トレーシング、トランザクション管理、ジョブ処理統計、ジョブの再起動、スキップ、リソース管理など)を再利用可能な形で提供します。
また、最適化とパーティショニング技術により、非常に大容量で高性能なバッチ・ジョブを可能にする高度な技術サービスや機能も提供します。簡単なだけでなく複雑なことも可能で、高度でスケーラブルな方法で大容量のバッチ・ジョブを処理することができます。

Spring Batchの機能および特徴

主な機能と特徴は以下の通りです。

トランザクション管理
トランザクションの分離レベルや振る舞いなどを、設定ファイルに記述することできめ細かく制御できます。
チャンクベースプロセッシング Spring Batchでは、入力ファイルからの読込み、入力チェック、加工、出力までの一連の処理を「チャンク」として定義します。このチャンク内の各処理用のモジュールに必要な実装をするだけで、簡単にバッチが作成できます。
宣言型のI/O 数十個のItemReaderとItemWriter(入出力を実現するモジュール) により、ファイル、JDBC、NoSQL、JMSなど様々な対象への入出力が実現できます。これらの全てが宣言型のI/Oを提供しているため、独自のItemReaderやItemWriterを実装、テストする必要がありません。
起動/停止/再起動
リトライ/スキップ
ジョブの起動/停止/再起動と、実行状態を管理する機能、各レコードをリトライしたり、スキップする機能があります。
Webベースの管理インタフェース (Spring Batch Admin) Spring Batch Adminは、Spring Batchアプリケーションおよびシステム用の管理コンソール機能として、Webベースのユーザインターフェイスを提供しています。
POJOベースの開発手法 AOP、DIを中心としたPOJOベースの開発手法により、モジュール間の結合度を弱め、明確な役割分担と統一された実装、効率的なテストを行うことができます。
STSによる高い生産性 EclipseをSpring開発用にカスタマイズしたSTS(Spring Tool Suite)を活用することで、生産の高い開発を実現します。
世界中で利用されている 世界中で広く利用されているバッチフレームワークのデファクトスタンダードであり、同様の製品で同等以上の機能を持っている製品は現時点ではありません。日本でも数多くの導入事例があります
高機能・高性能
Spring Batchには、業務に必要なバッチを開発する上で必要なほとんどの機能が提供されています。
また、マルチスレッド・マルチプロセスでの処理の並列化や、性能遅延を回避するための外部コマンド呼び出しなども可能です。
技術者を集めやすい
Spring Batchでは、DIやPOJOの考え方によりモジュール分割がされているため、開発者はフレームワークの知識をあまり要求されることなく、業務ロジックの開発に集中することができます。
さらにSpring Frameworkの開発経験者であれば、STS(Eclipse)で開発し、Mavenでテストやビルドするプロセスに慣れているため、効率的な開発ができます。
Spring Frameworkは世界中で利用されているデファクトスタンダードであるため、大人数で開発するプロジェクトやオフショア開発の際などにも技術者を集めやすいといえます。

TOPに戻る

関連OSS

TOPに戻る

Spring Batchのダウンロード

Spring Batch 公式サイト
Getting Started Guides - Creating a Batch Service

TOPに戻る

Spring Batchのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO