2.1. フレームワークスタック

2.1.1. Macchinetta Framework for Java クラウド拡張 概要

本ガイドラインで使用するSoftware Frameworkは、Macchinetta Framework for Java (5.x) で使用するものに加えて、クラウドベンダが提供するサービスと連携するためのOSSを組み合わせたものである。

Macchinetta Framework for Java (5.x) で使用するSoftware Frameworkについては、 Macchinetta Framework for Java (5.x) Development Guideline を参照されたい。

2.1.2. Software Frameworkの主な構成要素

Macchinetta Framework for Java クラウド拡張 を構成するライブラリを以下に示す。 本ガイドラインでは、Macchinetta Framework for Java (5.x) Development Guidelineで説明済みのライブラリについては説明を行わない。

Screen image of framework stack.

2.1.2.1. 環境依存値の外部管理

環境依存値の外部管理を行うフレームワークとして、Spring Cloud Configを利用する。

2.1.2.2. クラウドベンダ連携

クラウドベンダ連携を行うライブラリとして以下を利用する。

2.1.2.2.1. Spring Boot

以下の目的でSpring Bootを導入している。

Note

Spring CloudはSpring Bootに依存した実装となっている。

Note

本ガイドラインでは、Macchinetta Framework for Java (5.x) Development Guidelineで説明しているアプリケーション・アーキテクチャおよびノウハウを使用してクラウドネイティブなアプリケーションを開発するための方法を説明している。そのため、Spring Boot機能の利用は限定的なものとし、Spring Bootを使用することにより生じる制約や実装方法の相違点については適宜補足説明を行う。

2.1.2.2.2. Amazon Web Service

Amazon Web Serviceとの連携を行うフレームワークとして以下を利用する。

2.1.2.3. セッションの外部管理

Redisを使用したセッションの管理を行うフレームワークとして、Spring Session with Redisを利用する。

2.1.2.4. キャッシュの管理

Redisを使用したキャッシュの管理を行うフレームワークとして、Spring Data Redisを利用する。

2.1.2.5. 共通ライブラリ

Macchinetta Framework for Java クラウド拡張 で利用する共通ライブラリは、Macchinetta Framework for Java (5.x) の共通ライブラリと同様である。

2.1.3. 利用するOSSのバージョン

Macchinetta Framework for Java クラウド拡張 1.2.0 で利用するOSSの一覧を以下に示す。 Macchinetta Framework for Java (5.x) Development Guideline 利用するOSSのバージョン において説明済みのOSSについては記載しない。

Macchinetta Framework for Java クラウド拡張 と Macchinetta Framework for Java (5.x) のバージョンの対応関係は、Macchinetta Framework for Java (5.x) との関係 を参照されたい。

Tip

Macchinetta Framework for Java (5.x) と同様に、 Spring Boot Dependenciesにて依存関係を解決可能なライブラリについては原則として、spring-boot-dependenciesの定義に準じている。使用するspring-boot-dependenciesのバージョンは Macchinetta Framework for Java (5.x) に準じる。

Spring Cloud関連のライブラリについては、spring-cloud-dependenciesによる定義に準じている。使用するspring-cloud-dependenciesのバージョンは、Release Notesに記載されているベースのSpring Bootバージョンがspring-boot-dependenciesのベースと同一となるバージョンを選定し、Hoxton.SR3としている。

上記に該当しないライブラリについては、個別にバージョンを指定している。

Type GroupId ArtifactId Version Spring Boot Dependencies Spring Cloud Remarks
Spring Boot org.springframework.boot spring-boot-configuration-processor 2.2.4.RELEASE *    
Spring Boot org.springframework.boot spring-boot-starter 2.2.4.RELEASE *    
Spring Boot org.springframework.boot spring-boot-starter-actuator 2.2.4.RELEASE *    
環境依存値の外部管理 javax.inject javax.inject 1     *4
キャッシュ管理 org.springframework.data spring-data-keyvalue 2.2.4.RELEASE *    
キャッシュ管理 org.springframework.data spring-data-redis 2.2.4.RELEASE *    
キューイング活用 org.springframework spring-jms 4.3.25.RELEASE     *3
クラウドベンダ連携 com.amazonaws amazon-sqs-java-messaging-lib 1.0.8     *2
クラウドベンダ連携 com.amazonaws aws-java-sdk-dynamodb 1.11.415     *2
クラウドベンダ連携 com.amazonaws aws-java-sdk-iam 1.11.415   *  
クラウドベンダ連携 com.amazonaws aws-java-sdk-ses 1.11.415   *  
クラウドベンダ連携 com.amazonaws aws-java-sdk-sts 1.11.415   *  
クラウドベンダ連携 com.sun.mail javax.mail 1.6.2 *    
クラウドベンダ連携 org.apache.tomcat tomcat-jdbc 9.0.30 *   *1
クラウドベンダ連携 org.springframework.cloud spring-cloud-aws-context 2.2.1.RELEASE   *  
クラウドベンダ連携 org.springframework.cloud spring-cloud-aws-jdbc 2.2.1.RELEASE   *  
クラウドベンダ連携 org.springframework.cloud spring-cloud-config-client 2.2.2.RELEASE   *  
クラウドベンダ連携 org.springframework.cloud spring-cloud-config-server 2.2.2.RELEASE   *  
クラウドベンダ連携 org.springframework.cloud spring-cloud-starter-aws 2.2.1.RELEASE   *  
セッション管理 org.springframework.session spring-session-data-redis 2.2.0.RELEASE *    
セッション管理 redis.clients jedis 3.1.0 *    
  1. Spring Boot Dependenciesによりバージョンが定義されているが、Macchinetta Framework 1.7.0.RELEASEによるバージョン定義を優先しているライブラリ
  2. クラウドベンダ連携のために個別に導入するライブラリ
  3. Spring Boot Dependenciesによりバージョンが定義されているが、個別にバージョン定義を更新しているライブラリ
  4. Macchinetta Framework 1.7.0.RELEASEによりバージョンが定義されているライブラリ