60
Copyright © 2016 NTT DATA Corporation 株式会社NTTデータ 技術革新統括本部 ソフトウェア工学推進センタ 倉元 貴一 Javaエンジニアに知ってほしい、Springの教科書 TERASOLUNA

Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

  • Upload
    java

  • View
    3.354

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2016 NTT DATA Corporation

株式会社NTTデータ 技術革新統括本部ソフトウェア工学推進センタ

倉元 貴一

Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」

Page 2: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 2

INDEX

1. TERASOLUNA Frameworkとは

2. TERASOLUNA Frameworkが解決する諸問題

3. おわりに

Page 3: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2016 NTT DATA Corporation 3

1. TERASOLUNA Frameworkとは

Page 4: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

4Copyright © 2016 NTT DATA Corporation

TERASOLUNAとは

Process

Environment

Support

数多くのシステム開発で培ったノウハウを盛り込んだ標準開発手順・管理手順

ソフトウェアを開発する際の雛形になるフレームワークと開発を支援するツール

蓄積されたノウハウを展開するための研修や教育サービス

標準手順

サポート

開発環境

数多くのシステム開発実績をもとにした「標準手順」「開発環境」「サポート」をトータルで提供しており、TERASOLUNAを活用することで、高品質なシステム開発が実現できます。

TERASOLUNAとは、NTTデータのシステム開発を支えるオープン系システム開発のための総合ソリューション

Page 5: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 5

Javaフレームワーク年表

J2EE/Java EE

1999 2002 2005 2008 2011 2014

プレゼン層

ビジネスロジック層

O/Rマッピング

MVC

▲J2EE1.2

▲J2EE1.3

▲J2EE1.4 ▲JavaEE5 ▲JavaEE6 ▲JavaEE7

▲Spring0.9 ▲Spring2.5

▲Hib3rnate1.0

▲Hibernate2.1

▲JPA1.0 ▲JPA2.1

▲Struts1.0 ▲Struts1.2 ▲Struts1.3▲Struts2.0

▲Seaser2.0

▲JPA2.0

▲Seam1.0

▲Spring1.0 ▲Spring2.0 ▲Spring3.0▲Spring4.0

▲MyBatis3.0

▲Hibernate3.0

▲JSF1.0 ▲JSF1.2 ▲JSF2.0 ▲JSF2.2

▲Facelets1.0 ▲Facelets2.0

DI x AOP▲Seam2.0

▲SAStruts1.0

▲Seaser2.4

▲Hibernate4.0

▲iBatis2.3▲iBatis1.0

▲TopLink ▲EclipseLink

Page 6: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 6

Javaフレームワークの動向と展望

• FWの必要性が認知され、

様々なJava FWが乱立• FWの利用に不慣れな開発者が

多く品質にばらつき発生

• JavaFWは「Spring」と「Java EE」の2強に

• FWのコモディティ化が進み

FWの活用が当たり前の時代に

VS

JVM

APサーバ

OS

FW

アプリケーション

JVM

APサーバ

OS

アプリケーション

■ソフトウェアスタック

FW

2000年頃(FW乱立期) 2015年頃(FW成熟期) 2030年頃

Java FWが多数乱立 SpringとJava EEの2強に

■ソフトウェアスタック

APサーバがFWを内包

2強時代の継続

Java EE時代の到来

Java時代の終焉

APサーバがFWの役割を吸収

?

Java EE

Java EEJ2EE

Java

Java EE

Page 7: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 7

?

Javaフレームワークの動向と展望

• FWの必要性が認知され、

様々なJava FWが乱立• FWの利用に不慣れな開発者が

多く品質にばらつき発生

• JavaFWは「Spring」と「Java EE」の2強に

• FWのコモディティ化が進み

FWの活用が当たり前の時代に

VS

JVM

APサーバ

OS

FW

アプリケーション

JVM

APサーバ

OS

アプリケーション

■ソフトウェアスタック

FW

2000年頃(FW乱立期) 2015年頃(FW成熟期) 2030年頃

Java FWが多数乱立 SpringとJava EEの2強に

■ソフトウェアスタック

APサーバがFWを内包

2強時代の継続

Java EE時代の到来

Java時代の終焉

APサーバがFWの役割を吸収フレームワークの基本機能は

標準化(コモデティ化)へ

Java EE

Java EE

Java

Page 8: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 8

Java

TERASOLUNA Frameworkの基本コンセプト

• FWの必要性が認知され、

様々なJavaFWが乱立• FWの利用に不慣れな開発者が

多く品質にばらつき発生

• JavaFWは「Spring」と「Java EE」の2強に

• FWのコモディティ化が進みFWの活用が当たり前の時代に

Spring

VSSpring

JVM

APサーバ

OS

FW

アプリケーション

JVM

APサーバ

OS

アプリケーション

■ソフトウェアスタック

FW

2000年頃(FW乱立期) 2015年頃(FW成熟期) 2030年頃

JavaFWが多数乱立 SpringとJava EEの2強に

■ソフトウェアスタック

APサーバがFWを内包

2強時代の継続

Java EE時代の到来

Java時代の終焉

Spring

APサーバがFWの役割を吸収

世の中のOSSを活用してエンタープライズ向けフレームワークを整備

Page 9: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 9

これまでのTERASOLUNA Framework(FW2系)

独自のフレームワーク層

Enterprise Application

Application Server

以前は、OSSに独自の層を被せることで、OSSでは不足している機能や、

品質を保つための制約を追加していた。

Page 10: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 10

2000年頃 2015年頃

FW自体に付加価値

FWがコモディティ化

Java FWが多数乱立

Java FWはSpringかJava EEの2強

業界動向

当社の取組

独自FWとして整備OSS(Spring)を最大限活用

これまでのTERASOLUNA (TERASOLUNA Server FW for Java 2)

新たなTERASOLUNA(TERASOLUNA Server FW for Java 5)

エンタープライズ適用に必要なサポートを提供

サポート提供と合わせてエンタープライズ適用に

必要なガイドラインの充実

新たなTERASOLUNA Frameworkのコンセプト

Page 11: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 11

新たなTERASOLUNA Framework(FW5系)

業界の動向を考慮し構成要素を見直した新しいフレームワークの提供を開始

Enterprise Application

Application Server

Spring MVC

を最大限活用

Spring Data JPASpring

Security

Page 12: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

12Copyright © 2016 NTT DATA Corporation

新たなTERASOLUNA Frameworkの構成要素

•Spring, MyBatisなどのOSSフレームワークソフトウェアフレームワーク

•エンタープライズ向けに必要な汎用的な部品共通ライブラリ

•OSSを利用したエンタープライズ向けアプリ開発に

おけるベストプラクティスドキュメントガイドライン

•基本的な開発方法を学ぶ学習教材チュートリアル

•基本的な機能を実装したサンプルアプリサンプルAP

•プロジェクト構成のひな形ブランクプロジェクト

Page 13: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

13Copyright © 2016 NTT DATA Corporation

公開資材の一例

http://terasolunaorg.github.io/開発ガイドライン

ポータルサイト

資材提供

Page 14: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

14Copyright © 2016 NTT DATA Corporation

ニュースリリース

2016/02/24 本格運用開始のニュースリリースhttp://www.nttdata.com/jp/ja/news/release/2016/022400.html

Page 15: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 15

なぜSpringなのか?

Springは機能追加し続けており、今後も迅速な新規テクノロジーへの追従が期待できる

Java標準技術への追従も活発であり、SpringとJava EEを組み合わせたベストな選択をしやすい

当社ではSpringを10年以上活用しており、社内に適用実績、開発リソース、開発ノウハウが多く存在している

適用案件や開発者が多く、セキュリティ面の改善活動が活発に実施されている

Spring Security等のセキュリティ対策OSSの採用により、セキュリティ面への対応を強化できる

グローバル市場でのシェアNo.1であり、技術者や情報が豊富に存在するため、要員確保や書籍などによる情報収集が容易である

開発リソースの確保しやすさ

世の中の変化への対応

セキュリティ面の強化

社内に蓄積したノウハウ量

Page 16: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 16

TERASOLUNA Frameworkの狙い

コモディティ化しつつある領域では仲間を増やし、業界貢献することが重要

お客様 競合他社 開発者 OSSコミュニティ

Page 17: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 17

ガイドラインのねらい

目的 記載内容

品質向上• 検証済みで品質確保された開発方法のベストプラクティス• これまでの開発経験から得られた実践的な開発ノウハウ

工数削減

• 流用可能なコードサンプル• これまでPJ個別に実施しており、PJ間で重複していた事項

• 実現可能性検証の結果• 学習コンテンツ、など

ガイドラインの目的と記載内容

ガイドラインは、エンタープライズアプリケーション開発に必要となる知識やノウハウを網羅し、適用プロジェクトをサポート

Page 18: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 18

ガイドラインのねらい

• 各機能の詳細解説

• チュートリアル(学習コンテンツ)

理解しやすいように、図を多数記載

• コードサンプル

• 検証済みで品質確保された開発方法のベストプラクティス

流用して開発できるようにコードサンプルを多数記載

コードサンプルの解説も記載

• コードサンプル• エンタープライズ向けの実践的な開発ノウハウ

・・・

各機能の拡張方法も記載 Note、Tip、Warning、Hintなど、実践的な開発ノウハウを多数記載

実装方法とその根底にある考え方も記載

①基本知識の習得、AP基盤の検討

③FWの拡張方針検討 ④AP基盤の設計・製造

②実現性検証

アーキテクトの作業におけるガイドライン活用例

Page 19: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

19Copyright © 2016 NTT DATA Corporation

TERASOLUNA FrameworkのOSSスタック

Page 20: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

20Copyright © 2016 NTT DATA Corporation

新たなTERASOLUNA Frameworkの提供機能

Page 21: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

21Copyright © 2016 NTT DATA Corporation

Server FW for Java 5.1.0の提供機能

画面連携

入力チェック

メッセージ管理/国際化

ページネーション

アップロード/ダウンロード

二重送信防止

コードリスト

システム間連携

SOAPサーバ/クライアント

RESTサーバ/クライアント

Email送信

DBアクセス(MyBatis/JPA)

トランザクション/排他制御

データ連携

セキュリティ

認証・認可

CSRF/XSS対策

暗号化

ユーティリティ

ロギング

例外ハンドリング

セッション管理

日付・文字列操作

Page 22: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

22Copyright © 2016 NTT DATA Corporation

(参考)TERASOLUNAの導入実績

5 26 52 79 130230

371

540646

765877

999

0

200

400

600

800

1000

1200

2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013

新規導入プロジェクト数

累計

TERASOLUNAは、オープン系の標準として業種業態問わず、小規模から大規模まで幅広く導入

※NTTデータおよびNTTデータグループ内の導入実績(2014年3月末時点)

Page 23: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

23Copyright © 2016 NTT DATA Corporation

(参考)ガイドラインへのアクセス数

公開から24万ユーザ以上にアクセスされ毎日4000ページビュー以上閲覧されている

2/24 ニュースリリース

Page 24: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2016 NTT DATA Corporation 24

2. TERASOLUNA Frameworkが解決する諸問題

Page 25: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

25Copyright © 2016 NTT DATA Corporation

エンタープライズシステム開発での課題

Page 26: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

26Copyright © 2016 NTT DATA Corporation

1. 膨大なJarや設定ファイルの組み合わせ

2. プロジェクト構成・アプリケーションのレイヤ化

1. 膨大なJarや設定ファイルの組み合わせ

4. セキュリティ対策

3.ソースの品質向上・品質維持

Page 27: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

27Copyright © 2016 NTT DATA Corporation

1. 膨大なJarや設定ファイルの組み合わせ

Jarのバージョン…食い違ってない?

設定ファイル多すぎて辛い…

環境依存してないかこれ…

そんなときは…

Page 28: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

28Copyright © 2016 NTT DATA Corporation

1. 膨大なJarや設定ファイルの組み合わせhttp://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ImplementationAtEachLayer/CreateWebApplicationProject.html

Page 29: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

29Copyright © 2016 NTT DATA Corporation

1. 膨大なJarや設定ファイルの組み合わせ

• エンタープライズ開発に必要な各種設定・ライブラリ依存関係が設定済

• Spring IO Platformをベースに、TERASOLUNAで検証済みのライブラリを独自に追加

エンタープライズ開発に必要なノウハウを詰め込んだプロジェクト構成の雛形「ブランクプロジェクト」を提供

Page 30: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

30Copyright © 2016 NTT DATA Corporation

ブランクプロジェクトの構成

エンタープライズ開発時に必要になる設定が定義済みのブランクプロジェクトのarchetypeを提供

環境依存する資材を集約するプロジェクト

アプリケーションレイヤのプロジェクト

ドメイン・インフラレイヤのプロジェクト

「4.1.1. 開発プロジェクトの作成」からご覧ください。

Page 31: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

31Copyright © 2016 NTT DATA Corporation

依存関係

TERASOLUNA FWが依存・推奨する

ライブラリが定義済

Page 32: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

32Copyright © 2016 NTT DATA Corporation

(参考)Spring IO Platformとは?

https://spring.io/platform

Page 33: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

33Copyright © 2016 NTT DATA Corporation

(参考)Spring IO Platformとは?

http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions

Page 34: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

34Copyright © 2016 NTT DATA Corporation

2. プロジェクト構成・アプリケーションのレイヤ化

2. プロジェクト構成・アプリケーションのレイヤ化

1. 膨大なJarや設定ファイルの組み合わせ

4. セキュリティ対策

3.ソースの品質向上・品質維持

Page 35: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

35Copyright © 2016 NTT DATA Corporation

2. プロジェクト構成・アプリケーションのレイヤ化

アプリケーションのレイヤリングって、どうすればいいん

だろう

あー…なんでこのクラスここにいるんだ

よくみたら循環参照してるけど今更…

そんなときは…

Page 36: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

36Copyright © 2016 NTT DATA Corporation

2. プロジェクト構成・アプリケーションのレイヤ化http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Overview/ApplicationLayering.html

Page 37: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

37Copyright © 2016 NTT DATA Corporation

2. プロジェクト構成・アプリケーションのレイヤ化

クラスの種類を3層に分類し、依存関係を規定

Page 38: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

38Copyright © 2016 NTT DATA Corporation

2. プロジェクト構成・アプリケーションのレイヤ化

Page 39: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

39Copyright © 2016 NTT DATA Corporation

レイヤの依存関係

Domain Layer

Application Layer

誤ったレイヤ間の依存関係を早期に検出できる

Page 40: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

40Copyright © 2016 NTT DATA Corporation

ブランクプロジェクトの内部構成

Domain Layer

Infrastructure Layer

Page 41: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

41Copyright © 2016 NTT DATA Corporation

ブランクプロジェクトの内部構成

Application Layer

Page 42: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

42Copyright © 2016 NTT DATA Corporation

ブランクプロジェクトの内部構成

ログ出力設定やデータソース定義など、ステージング環境によって異なる設定を本プロジェクトに集約することで、設定値の置換を容易にしている

Page 43: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

43Copyright © 2016 NTT DATA Corporation

3. ソースの品質向上・品質維持

2. プロジェクト構成・アプリケーションのレイヤ化

1. 膨大なJarや設定ファイルの組み合わせ

4. セキュリティ対策

3.ソースの品質向上・品質維持

Page 44: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

44Copyright © 2016 NTT DATA Corporation

3. ソースの品質向上・品質維持

このコード、Webにのってるやつコピったな…危険すぎる…

DBアクセスも入力チェックも、いつも考えるけどノウハウまとまって

ないなぁ…

似たようなことを前にやったけど、時間経ちすぎてる

しなぁ… そんなときは…

Page 45: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

45Copyright © 2016 NTT DATA Corporation

3. ソースの品質向上・品質維持http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ArchitectureInDetail/index.html

Page 46: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

46Copyright © 2016 NTT DATA Corporation

提供機能

エンタープライズ開発で必要となる機能を網羅的に解説

Page 47: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

47Copyright © 2016 NTT DATA Corporation

解説例

使い方/拡張方法をコードを交えて解説

Page 48: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 48

ガイドラインの品質確保

エンタープライズ開発で活用してもらうにはガイドラインの品質を確保し続けることが重要

例:ガイドラインのサンプルコードの品質確保

頻繁に更新されるガイドラインやプラットフォームに合わせて

コード品質の確認が必要となる

様々なOS/Java/ミドルの構成に対して700シナリオ以上の機能テストを日次で実行する

後方互換の問題を検知し改善フレームワーク更新の影響として

速やかに周知する

ガイドライン更新 テスト自動実行 テスト結果確認

JMeter

Gitbucket Selenium

Jenkins

Vagrant

開発ガイドライン

テスト一覧

Test1

Test2

Test3

Test4

OK

OK

OK

NG

DB

AP

ServerJDK

Page 49: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 49

OSSの品質貢献(Springの場合)

Spring Framework (49) Spring Security (13) Spring Data (4)SPR-13520SPR-13518SPR-13503SPR-13443 (Resolved)SPR-13426SPR-13418SPR-13406SPR-13402SPR-13379 (Resolved)SPR-13359 (Resolved)SPR-13350 (Resolved)SPR-13136 (Resolved)SPR-13124 (Resolved)SPR-13103 (Resolved)SPR-13102 (Resolved)SPR-13086SPR-13041 (Resolved)SPR-13038 (Resolved)SPR-13025 (Resolved)SPR-13000 (Resolved)SPR-12994 (Resolved)SPR-12993 (Resolved)SPR-12992 (Resolved)SPR-12991 (Resolved)SPR-12990 (Resolved)

SPR-12988 (Resolved)SPR-12987 (Resolved)SPR-12985 (Resolved)SPR-12981 (Resolved)SPR-12980 (Resolved)SPR-12979 (Resolved)SPR-12954SPR-12853SPR-12819 (Resolved)SPR-12792 (Resolved)SPR-12743 (Resolved)SPR-12510 (Resolved)SPR-12509 (Resolved)SPR-12442 (Resolved)SPR-12354 (Resolved)SPR-12265 (Resolved)SPR-12229 (Resolved)SPR-11970 (Resolved)SPR-11826SPR-11821 (Resolved)SPR-11810 (Resolved)SPR-11670 (Resolved)SPR-11669SPR-11074 (Resolved)

SEC-3105SEC-3003 (Resolved)SEC-2910SEC-2905SEC-2903SEC-2880 (Resolved)SEC-2840 (Resolved)SEC-2836SEC-2835 (Resolved)SEC-2834 (Resolved)SEC-2826 (Resolved)SEC-2422 (Resolved)SEC-2403

DATAJPA-473 (Resolved)DATACMSN-379 (Resolved)DATACMNS-408 (Resolved)DATACMNS-377 (Resolved)

バグレポート(2015年9月30日時点)

OSSのバグをコミュニティや開発元に報告しOSSの品質改善に貢献

Page 50: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

50Copyright © 2016 NTT DATA Corporation

4. セキュリティ対策

2. プロジェクト構成・アプリケーションのレイヤ化

1. 膨大なJarや設定ファイルの組み合わせ

4. セキュリティ対策

3.ソースの品質向上・品質維持

Page 51: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

51Copyright © 2016 NTT DATA Corporation

4. セキュリティ対策

ここ最近、脆弱性のニュースよく聞くし適当にはできないよ

なぁ…

セキュリティ機能ってどうつくればいいかわからないよ…

非機能も含めてセキュリティ対策できてるのかな…

そんなときは…

Page 52: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

52Copyright © 2016 NTT DATA Corporation

セキュリティ対策

機能/非機能を意識したセキュリティ対策方法の提供

http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Security/index.html

Page 53: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

53Copyright © 2016 NTT DATA Corporation

セキュリティ機能の使い方

セキュリティ機能の使い方を解説http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Security/Authentication.html

Page 54: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

54Copyright © 2016 NTT DATA Corporation

機能面からのセキュリティ対策

機能面から見た代表的な要件の実現方法について解説

http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Security/SecureLoginDemo.html

Page 55: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

55Copyright © 2016 NTT DATA Corporation

非機能面から見た代表的な要件の実現方法について解説

非機能面からのセキュリティ対策

http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Introduction/CriteriaBasedMapping.html

Page 56: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2016 NTT DATA Corporation 56

おわりに

Page 57: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 57

TERASOLUNA Server Framework for Java (5.x) Development Guideline

http://terasolunaorg.github.io/guideline/

Page 58: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2015 NTT DATA Corporation 58

2000page over !!

多種多様なノウハウ集であり、Springの教科書でもあり、辞典でもある

Page 59: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

59Copyright © 2016 NTT DATA Corporation

最後に

TERASOLUNA Frameworkに興味がある方は下記までご連絡ください

TERASOLUNA窓口E-mail: [email protected]

NTTデータは今後もJavaアプリケーション開発のベストプラクティスをOSSで提供し続けます

エンタープライズJavaシステム開発で積極的に活用し、情報交換やコミュニティ活動を活発化してさらなるJavaの発展、繁栄に向けて共に歩んでいきましょう。

Page 60: Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3

Copyright © 2011 NTT DATA Corporation

Copyright © 2016 NTT DATA Corporation

「TERASOLUNA」及びそのロゴは、日本及びその他の国おける株式会社NTTデータの商標または登録商標です。その他、記載されている会社名、商品名、サービス名等は、各社の商標または登録商標です。