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で説明済みのライブラリについては説明を行わない。
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 |
- Spring IO platformにより定義しているバージョンを優先しているライブラリ。
- Spring Cloud for Amazon Web ServicesまたはAWS SDK for Javaが個別に依存しているライブラリ
- Spring IO platformと
spring-cloud-dependencies
のバージョン定義が同一であるライブラリ - Spring IO platformによりバージョンが定義されているが、
spring-cloud-dependencies
によるバージョン定義を優先しているライブラリ - クラウドベンダー連携のために個別に導入するライブラリ