Macchinetta Batch Framework (2.x) Development Guideline - version 2.0.1.RELEASE, 2018-3-9
> INDEX

概要

Macchinetta Batch Framework (2.x)の構成について説明し、Macchinetta Batch Framework (2.x)の担当範囲を示す。

Macchinetta Batch Framework (2.x)のスタック

Macchinetta Batch Framework (2.x)で使用するSoftware Frameworkは、 Spring Framework (Spring Batch) を中心としたOSSの組み合わせである。以下にMacchinetta Batch Framework (2.x)のスタック概略図を示す。

Macchinetta Batch Framework (2.x) Stack
Macchinetta Batch Framework (2.x)のスタック概略図

ジョブスケジューラやデータベースなどの製品についての説明は、本ガイドラインの説明対象外とする。

利用するOSSのバージョン

Macchinetta Batch Framework (2.x)のバージョン2.0.1.RELEASEで利用するOSSのバージョン一覧を以下に示す。

Macchinetta Batch Framework (2.x)で使用するOSSのバージョンは、原則として、Spring IO platformの定義に準じている。 なお、バージョン2.0.1.RELEASEにおけるSpring IO platformのバージョンは、 Brussels-SR5である。
Spring IO platformの詳細については、Macchinetta Server Framework (1.x)の 利用するOSSのバージョンを参照。

OSSバージョン一覧
Type GroupId ArtifactId Version Spring IO platform Remarks

Spring

org.springframework

spring-aop

4.3.14.RELEASE

*2

Spring

org.springframework

spring-beans

4.3.14.RELEASE

*2

Spring

org.springframework

spring-context

4.3.14.RELEASE

*2

Spring

org.springframework

spring-expression

4.3.14.RELEASE

*2

Spring

org.springframework

spring-core

4.3.14.RELEASE

*2

Spring

org.springframework

spring-tx

4.3.14.RELEASE

*2

Spring

org.springframework

spring-jdbc

4.3.14.RELEASE

*2

Spring Batch

org.springframework.batch

spring-batch-core

3.0.8.RELEASE

*

Spring Batch

org.springframework.batch

spring-batch-infrastructure

3.0.8.RELEASE

*

Spring Retry

org.springframework.retry

spring-retry

1.2.1.RELEASE

*

Java Batch

javax.batch

javax.batch-api

1.0.1

*

Java Batch

com.ibm.jbatch

com.ibm.jbatch-tck-spi

1.0

*

MyBatis3

org.mybatis

mybatis

3.4.5

MyBatis3

org.mybatis

mybatis-spring

1.3.1

MyBatis3

org.mybatis

mybatis-typehandlers-jsr310

1.0.2

DI

javax.inject

javax.inject

1

*

ログ出力

ch.qos.logback

logback-classic

1.1.11

*

ログ出力

ch.qos.logback

logback-core

1.1.11

*

*1

ログ出力

org.slf4j

jcl-over-slf4j

1.7.25

*

ログ出力

org.slf4j

slf4j-api

1.7.25

*

入力チェック

javax.validation

validation-api

1.1.0.Final

*

入力チェック

org.hibernate

hibernate-validator

5.3.5.Final

*

入力チェック

org.jboss.logging

jboss-logging

3.3.1.Final

*

*1

入力チェック

com.fasterxml

classmate

1.3.4

*

*1

コネクションプール

org.apache.commons

commons-dbcp2

2.1.1

*

コネクションプール

org.apache.commons

commons-pool2

2.4.2

*

EL式

org.glassfish

javax.el

3.0.0

*

インメモリデータベース

com.h2database

h2

1.4.193

*

XML

com.thoughtworks.xstream

xstream

1.4.10

*

*1

JSON

org.codehaus.jettison

jettison

1.2

*

*1

TERASOLUNA Batch

org.terasoluna.batch

terasoluna-batch

5.1.1.RELEASE

Remarksについて
  1. Spring IO platformでサポートしているライブラリが個別に依存しているライブラリ

  2. 脆弱性対応のため、Spring IO platformのバージョンとは異なるバージョンを設定

xstreamの標準エラー出力について

xstreamのバージョンが1.4.10になり、Spring BatchがBean定義を読み込み、ジョブ実行する際に標準エラー出力で以下のメッセージが出力される。

Security framework of XStream not initialized, XStream is probably vulnerable.

現時点では、Spring BatchでXStreamのセキュリティ設定ができないため、メッセージの出力は抑制できない。

開発したジョブBean定義を読み込む以外でXStreamを使用する場合(データ連携など)は、信頼できる生成元のXML以外はXStreamで読み込みを行わないようにすること。

Macchinetta Batch Framework (2.x)の構成要素

Macchinetta Batch Framework (2.x)のSoftware Framework構成要素について説明する。

Macchinetta Batch Framework (2.x) Components of Software Framework
Software Framework構成要素の概略図

以下に、各要素の概要を示す。

基盤フレームワーク

フレームワークの基盤として、Spring Frameworkを利用する。DIコンテナをはじめ各種機能を活用する。

バッチフレームワーク

バッチフレームワークとして、Spring Batchを利用する。

非同期実行

非同期実行を実現する方法として、以下の機能を利用する。

DBポーリングによる周期起動

TERASOLUNA Batch Framework for Java (5.x)が提供するライブラリを利用する。

Webコンテナ起動

Spring MVCを使用して、Spring Batchと連携をする。

O/R Mapper

MyBatisを利用し、Spring Frameworkとの連携ライブラリとして、MyBatis-Springを使用する。

ファイルアクセス

Spring Batchから提供されている機能 に加えて、補助機能をTERASOLUNA Batch Framework for Java (5.x)が提供する。

ロギング

ロガーはAPIにSLF4J、実装にLogbackを利用する。

バリデーション
単項目チェック

単項目チェックにはBean Validationを利用し、実装はHibernate Validatorを使用する。

相関チェック

相関チェックにはBean Validation、もしくはSpring Validationを利用する。

コネクションプール

コネクションプールには、DBCPを利用する。

Macchinetta Batch Framework (2.x) Development Guideline - version 2.0.1.RELEASE, 2018-3-9