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

2.1.1. Macchinetta Server Framework Cloud Extension 概要

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

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

2.1.2. Software Frameworkの主な構成要素

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

Screen image of framework stack.

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

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

2.1.2.2. キャッシュの管理

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

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

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

2.1.2.4. クラウドベンダー連携

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

2.1.2.4.1. Spring Boot

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

Note

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

Note

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

2.1.2.4.2. Amazon Web Service

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

2.1.2.5. 共通ライブラリ

Macchinetta Server Framework Cloud Extension で利用する共通ライブラリは、Macchinetta Server Framework for Java (1.x) の共通ライブラリと同様である。

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

Macchinetta Server Framework Cloud Extension 1.0.1 で利用するOSSの一覧を以下に示す。 Macchinetta Server Framework for Java (1.x) Development Guideline 利用するOSSのバージョン において説明済みのOSSについては記載しない。

Macchinetta Server Framework Cloud Extension と Macchinetta Server Framework for Java (1.x) のバージョンの対応関係は、Macchinetta Server Framework for Java (1.x) との関係 を参照されたい。

Tip

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

Spring Cloud関連のライブラリについては、spring-cloud-dependenciesによる定義に準じている。使用するspring-cloud-dependenciesのバージョンは、依存関係を解決されるライブラリのバージョンが可能な限りSpring IO platformと同一となるようバージョンを選定し、Dalston.SR4としている。

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

Type GroupId ArtifactId Version Spring IO platform Spring Cloud Remarks
セッション管理 org.springframework.session spring-session 1.3.1.RELEASE *    
セッション管理 org.springframework.session spring-session-data-redis 1.3.1.RELEASE *    
セッション管理 redis.clients jedis 2.9.0 *    
キャッシュ管理 org.springframework.data spring-data-keyvalue 1.2.7.RELEASE *    
キャッシュ管理 org.springframework.data spring-data-redis 1.8.7.RELEASE *    
Spring Boot org.springframework.boot spring-boot 1.5.7.RELEASE * * *1
Spring Boot org.springframework.boot spring-boot-actuator 1.5.7.RELEASE * * *1
Spring Boot org.springframework.boot spring-boot-autoconfigure 1.5.7.RELEASE * * *1
Spring Boot org.springframework.boot spring-boot-starter 1.5.7.RELEASE * * *1
Spring Boot org.springframework.boot spring-boot-starter-actuator 1.5.7.RELEASE * * *1
Spring Boot org.springframework.boot spring-boot-starter-logging 1.5.7.RELEASE * * *1
Spring Boot org.slf4j jul-to-slf4j 1.7.25 *    
Spring Boot org.yaml snakeyaml 1.17 *    
Spring Boot org.slf4j log4j-over-slf4j 1.7.25 *    
環境依存値外部管理 org.springframework.cloud spring-cloud-commons 1.2.4.RELEASE   *  
環境依存値外部管理 org.springframework.cloud spring-cloud-config-client 1.3.3.RELEASE   *  
環境依存値外部管理 org.springframework.cloud spring-cloud-context 1.2.4.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-aws-actuator 1.2.1.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-aws-autoconfigure 1.2.1.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-aws-context 1.2.1.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-aws-core 1.2.1.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-aws-jdbc 1.2.1.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-aws-messaging 1.2.1.RELEASE   *  
クラウドベンダー連携 org.springframework.cloud spring-cloud-starter-aws 1.2.1.RELEASE   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-cloudformation 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-cloudwatch 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-core 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-ec2 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-iam 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-kms 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-rds 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-s3 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-ses 1.11.125   *  
クラウドベンダー連携 com.amazonaws jmespath-java 1.11.125   * *2
クラウドベンダー連携 com.amazonaws aws-java-sdk-sns 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-sqs 1.11.125   *  
クラウドベンダー連携 com.amazonaws aws-java-sdk-sqs 1.11.125   *  
クラウドベンダー連携 org.apache.tomcat tomcat-jdbc 8.5.20 * * *2 *4
クラウドベンダー連携 org.apache.tomcat tomcat-juli 8.5.20   * *2
クラウドベンダー連携 org.apache.commons commons-codec 1.10 * * *2 *3
クラウドベンダー連携 org.apache.commons commons-logging 1.2 * * *2 *3
クラウドベンダー連携 org.apache.httpcomponents httpclient 4.5.3 * * *2 *4
クラウドベンダー連携 org.apache.httpcomponents httpcore 4.4.6 * * *2 *4
クラウドベンダー連携 com.fasterxml.jackson.dataformat jackson-dataformat-cbor 2.8.10 * * *2 *3
クラウドベンダー連携 com.sun.mail javax.mail 1.5.6 * * *5
クラウドベンダー連携 com.amazonaws amazon-sqs-java-messaging-lib 1.0.1     *5
クラウドベンダー連携 org.apache.geronimo.specs geronimo-jms_1.1_spec 1.1.1     *5
クラウドベンダー連携 com.github.derjust spring-data-dynamodb 4.5.0     *5
クラウドベンダー連携 com.amazonaws aws-java-sdk-dynamodb 1.11.125     *5
クラウドベンダー連携 software.amazon.ion ion-java 1.0.2     *2
  1. Spring IO platformにより定義しているバージョンを優先しているライブラリ。
  2. Spring Cloud for Amazon Web ServicesまたはAWS SDK for Javaが個別に依存しているライブラリ
  3. Spring IO platformとspring-cloud-dependenciesのバージョン定義が同一であるライブラリ
  4. Spring IO platformによりバージョンが定義されているが、spring-cloud-dependenciesによるバージョン定義を優先しているライブラリ
  5. クラウドベンダー連携のために個別に導入するライブラリ