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

ジョブスケジューラやデータベースなどの製品についての説明は、本ガイドラインの説明対象外とする。
利用するOSSのバージョン
Macchinetta Batch Framework (2.x)のバージョン2.3.2.RELEASEで利用するOSSのバージョン一覧を以下に示す。
Macchinetta Batch Framework (2.x)で使用するOSSのバージョンは、原則として、Spring Boot Dependenciesの定義に準じている。 なお、バージョン2.3.2.RELEASEにおけるSpring Boot Dependenciesのバージョンは、 2.7.7である。 |
Type | GroupId | ArtifactId | Version | Spring Boot Dependencies | Remarks |
---|---|---|---|---|---|
Spring |
org.springframework |
spring-aop |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-beans |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-context |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-expression |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-core |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-tx |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-jdbc |
5.3.24 |
* |
|
Spring |
org.springframework |
spring-oxm |
5.3.24 |
* |
|
Spring Batch |
org.springframework.batch |
spring-batch-core |
4.3.4 |
* |
|
Spring Batch |
org.springframework.batch |
spring-batch-infrastructure |
4.3.4 |
* |
|
Spring Retry |
org.springframework.retry |
spring-retry |
1.3.4 |
* |
|
MyBatis3 |
org.mybatis |
mybatis |
3.5.7 |
*1 |
|
MyBatis3 |
org.mybatis |
mybatis-spring |
2.0.6 |
*1 |
|
DI |
jakarta.inject |
jakarta.inject-api |
1.0.5 |
*1 |
|
ログ出力 |
ch.qos.logback |
logback-classic |
1.2.11 |
* |
|
ログ出力 |
org.slf4j |
jcl-over-slf4j |
1.7.36 |
* |
|
ログ出力 |
org.slf4j |
slf4j-api |
1.7.36 |
* |
|
入力チェック |
jakarta.validation |
jakarta.validation-api |
2.0.2 |
* |
|
入力チェック |
org.hibernate.validator |
hibernate-validator |
6.2.5.Final |
* |
|
コネクションプール |
org.apache.commons |
commons-dbcp2 |
2.9.0 |
* |
|
EL式 |
org.glassfish |
jakarta.el |
3.0.4 |
* |
|
インメモリデータベース |
com.h2database |
h2 |
2.1.214 |
* |
|
JDBCドライバ |
org.postgresql |
postgresql |
42.5.1 |
*2 |
|
JSON |
com.fasterxml.jackson.core |
jackson-databind |
2.13.4.2 |
* |
|
XML |
jakarta.xml.bind |
jakarta.xml.bind-api |
2.3.3 |
* |
|
XML |
com.sun.xml.bind |
jaxb-core |
2.3.0.1 |
*1 |
|
XML |
com.sun.xml.bind |
jaxb-impl |
2.3.7 |
*1 |
|
TERASOLUNA Batch |
org.terasoluna.batch |
terasoluna-batch |
5.4.2.RELEASE |
*1 |
-
Spring Boot Dependenciesがバージョンを定義していないため、Macchinetta Batch Framework (2.x)で独自依存しているライブラリ
-
Spring Boot Dependenciesがバージョンを定義しているが、Macchinetta Batch Framework (2.x)が異なるバージョンを定義しているライブラリ
Macchinetta Batch Framework (2.x)の構成要素
Macchinetta Batch Framework (2.x)のSoftware Framework構成要素について説明する。 以下にSoftware Framework構成要素の概略図を示す。各要素の概要は後述する。

以下に、各要素の概要を示す。
- 基盤フレームワーク
-
フレームワークの基盤として、Spring Frameworkを利用する。DIコンテナをはじめ各種機能を活用する。
- バッチフレームワーク
-
バッチフレームワークとして、Spring Batchを利用する。同期実行にはSpring Batchが提供するCommandLineJobRunnerを利用する。
- 非同期実行
-
非同期実行を実現する方法として、以下の機能を利用する。
- 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を利用する。
Logback 1.2.7について
Logback1.2.7には、攻撃者が設定ファイルを変更できる場合、JNDIを用いる機能を利用してリモートコード実行が可能な脆弱性(CVE-2021-42550)が存在している。
ただし、この脆弱性を利用できる状況は攻撃者が設定ファイルを変更できる状態であり、その状況自体がアプリケーション起因や環境起因の重大な脆弱性となる。 |
- バリデーション
-
- 単項目チェック
-
単項目チェックにはBean Validationを利用し、実装はHibernate Validatorを使用する。
- 相関チェック
-
相関チェックにはBean Validation、もしくはSpring Validationを利用する。
- コネクションプール
-
コネクションプールには、DBCPを利用する。