SlideShare a Scribd company logo
1 of 60
Download to read offline
Copyright © 2016 NTT DATA Corporation
株式会社NTTデータ 技術革新統括本部
ソフトウェア工学推進センタ
倉元 貴一
Javaエンジニアに知ってほしい、Springの教科書
「TERASOLUNA」
Copyright © 2015 NTT DATA Corporation 2
INDEX
1. TERASOLUNA Frameworkとは
2. TERASOLUNA Frameworkが解決する諸問題
3. おわりに
Copyright © 2016 NTT DATA Corporation 3
1. TERASOLUNA Frameworkとは
4Copyright © 2016 NTT DATA Corporation
TERASOLUNAとは
Process
Environment
Support
数多くのシステム開発で
培ったノウハウを盛り込んだ
標準開発手順・管理手順
ソフトウェアを開発する際の
雛形になるフレームワーク
と開発を支援するツール
蓄積されたノウハウ
を展開するための
研修や教育サービス
標準手順
サポート
開発環境
数多くのシステム開発実績をもとにした「標準手順」「開発環境」「サポート」を
トータルで提供しており、TERASOLUNAを活用することで、高品質な
システム開発が実現できます。
TERASOLUNAとは、NTTデータのシステム開発を支える
オープン系システム開発のための総合ソリューション
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
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
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
Copyright © 2015 NTT DATA Corporation 8
Java
TERASOLUNA Frameworkの基本コンセプト
• FWの必要性が認知され、
様々なJavaFWが乱立
• FWの利用に不慣れな開発者が
多く品質にばらつき発生
• JavaFWは「Spring」と「Java EE」
の2強に
• FWのコモディティ化が進みFWの
活用が当たり前の時代に
Spring
VS
Spring
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を活用して
エンタープライズ向け
フレームワークを整備
Copyright © 2015 NTT DATA Corporation 9
これまでのTERASOLUNA Framework(FW2系)
独自のフレームワーク層
Enterprise Application
Application Server
以前は、OSSに独自の層を被せることで、
OSSでは不足している機能や、
品質を保つための制約を追加していた。
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のコンセプト
Copyright © 2015 NTT DATA Corporation 11
新たなTERASOLUNA Framework(FW5系)
業界の動向を考慮し構成要素を見直した
新しいフレームワークの提供を開始
Enterprise Application
Application Server
Spring MVC
を
最大限活用
Spring Data JPA
Spring
Security
12Copyright © 2016 NTT DATA Corporation
新たなTERASOLUNA Frameworkの構成要素
•Spring, MyBatisなどのOSSフレームワークソフトウェアフレームワーク
•エンタープライズ向けに必要な汎用的な部品共通ライブラリ
•OSSを利用したエンタープライズ向けアプリ開発に
おけるベストプラクティスドキュメントガイドライン
•基本的な開発方法を学ぶ学習教材チュートリアル
•基本的な機能を実装したサンプルアプリサンプルAP
•プロジェクト構成のひな形ブランクプロジェクト
13Copyright © 2016 NTT DATA Corporation
公開資材の一例
http://terasolunaorg.github.io/
開発ガイドライン
ポータルサイト
資材提供
14Copyright © 2016 NTT DATA Corporation
ニュースリリース
2016/02/24 本格運用開始のニュースリリース
http://www.nttdata.com/jp/ja/news/release/2016/022400.html
Copyright © 2015 NTT DATA Corporation 15
なぜSpringなのか?
Springは機能追加し続けており、
今後も迅速な新規テクノロジーへの追従が期待できる
Java標準技術への追従も活発であり、SpringとJava EE
を組み合わせたベストな選択をしやすい
当社ではSpringを10年以上活用しており、社内に
適用実績、開発リソース、開発ノウハウが多く
存在している
適用案件や開発者が多く、
セキュリティ面の改善活動が活発に実施されている
Spring Security等のセキュリティ対策OSSの採用により、
セキュリティ面への対応を強化できる
グローバル市場でのシェアNo.1であり、技術者や情報が
豊富に存在するため、要員確保や書籍などによる
情報収集が容易である
開発
リソースの
確保
しやすさ
世の中の
変化への
対応
セキュリ
ティ面の
強化
社内に
蓄積した
ノウハウ量
Copyright © 2015 NTT DATA Corporation 16
TERASOLUNA Frameworkの狙い
コモディティ化しつつある領域では
仲間を増やし、業界貢献することが重要
お客様 競合他社 開発者 OSSコミュニティ
Copyright © 2015 NTT DATA Corporation 17
ガイドラインのねらい
目的 記載内容
品質向上
• 検証済みで品質確保された開発方法のベストプラクティス
• これまでの開発経験から得られた実践的な開発ノウハウ
工数削減
• 流用可能なコードサンプル
• これまでPJ個別に実施しており、PJ間で重複していた事項
• 実現可能性検証の結果
• 学習コンテンツ、など
ガイドラインの目的と記載内容
ガイドラインは、エンタープライズアプリケーション開発に
必要となる知識やノウハウを網羅し、適用プロジェクトをサポート
Copyright © 2015 NTT DATA Corporation 18
ガイドラインのねらい
• 各機能の詳細解説
• チュートリアル(学習コンテンツ)
理解しやすいよう
に、図を多数記載
• コードサンプル
• 検証済みで品質確保された開発方法のベストプラクティス
流用して開発できるように
コードサンプルを多数記載
コードサンプルの解説
も記載
• コードサンプル
• エンタープライズ向けの実践的な開発ノウハウ
・・・
各機能の拡張方法も記載 Note、Tip、Warning、Hintなど、
実践的な開発ノウハウを多数記載
実装方法とその根底
にある考え方も記載
①基本知識の習得、AP基盤の検討
③FWの拡張方針検討 ④AP基盤の設計・製造
②実現性検証
 アーキテクトの作業におけるガイドライン活用例
19Copyright © 2016 NTT DATA Corporation
TERASOLUNA FrameworkのOSSスタック
20Copyright © 2016 NTT DATA Corporation
新たなTERASOLUNA Frameworkの提供機能
21Copyright © 2016 NTT DATA Corporation
Server FW for Java 5.1.0の提供機能
画面連携
入力チェック
メッセージ管理/国際化
ページネーション
アップロード/ダウンロード
二重送信防止
コードリスト
システム間連携
SOAPサーバ/クライアント
RESTサーバ/クライアント
Email送信
DBアクセス(MyBatis/JPA)
トランザクション/排他制御
データ連携
セキュリティ
認証・認可
CSRF/XSS対策
暗号化
ユーティリティ
ロギング
例外ハンドリング
セッション管理
日付・文字列操作
22Copyright © 2016 NTT DATA Corporation
(参考)TERASOLUNAの導入実績
5 26 52 79 130
230
371
540
646
765
877
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月末時点)
23Copyright © 2016 NTT DATA Corporation
(参考)ガイドラインへのアクセス数
公開から24万ユーザ以上にアクセスされ
毎日4000ページビュー以上閲覧されている
2/24 ニュースリリース
Copyright © 2016 NTT DATA Corporation 24
2. TERASOLUNA Frameworkが解決する諸問題
25Copyright © 2016 NTT DATA Corporation
エンタープライズシステム開発での課題
26Copyright © 2016 NTT DATA Corporation
1. 膨大なJarや設定ファイルの組み合わせ
2. プロジェクト構成・
アプリケーションのレイヤ化
1. 膨大なJarや設定ファイルの
組み合わせ
4. セキュリティ対策
3.ソースの品質向上・
品質維持
27Copyright © 2016 NTT DATA Corporation
1. 膨大なJarや設定ファイルの組み合わせ
Jarのバージョン…
食い違ってない?
設定ファイル
多すぎて辛い…
環境依存して
ないかこれ…
そんなときは…
28Copyright © 2016 NTT DATA Corporation
1. 膨大なJarや設定ファイルの組み合わせ
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ImplementationAtEachLayer/CreateWebApplicationProject.html
29Copyright © 2016 NTT DATA Corporation
1. 膨大なJarや設定ファイルの組み合わせ
• エンタープライズ開発に必要な
各種設定・ライブラリ依存関係が設定済
• Spring IO Platformをベースに、
TERASOLUNAで検証済みのライブラリを
追加
エンタープライズ開発に必要なノウハウを
詰め込んだプロジェクト構成の雛形
「ブランクプロジェクト」を提供
30Copyright © 2016 NTT DATA Corporation
ブランクプロジェクトの構成
エンタープライズ開発時に必要になる設定が定義済みの
ブランクプロジェクトのarchetypeを提供
環境依存する資材を集約
するプロジェクト
アプリケーションレイヤの
プロジェクト
ドメイン・インフラレイヤの
プロジェクト
「4.1.1. 開発プロジェクトの作成」からご覧ください。
31Copyright © 2016 NTT DATA Corporation
依存関係
TERASOLUNA FWが
依存・推奨する
ライブラリが定義済
32Copyright © 2016 NTT DATA Corporation
(参考)Spring IO Platformとは?
https://spring.io/platform
33Copyright © 2016 NTT DATA Corporation
(参考)Spring IO Platformとは?
http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions
34Copyright © 2016 NTT DATA Corporation
(参考)Spring IO Platformとは?
https://pivotal.io/agile/press-release/pivotal-releases-spring-io-platform より
“With a set of components all tested to work together, it saves
weeks of tedious developer efforts to build and test a stack of
compatible Spring and third-party technologies, thereby
helping enterprises bring new applications to market more
rapidly.”
Springや3rd-partyテクノロジ間の互換性の
ためのテストやビルドへ費やされていた
「何週間にも及ぶ退屈でつまらない労力」
が削減される
35Copyright © 2016 NTT DATA Corporation
2. プロジェクト構成・アプリケーションのレイヤ化
2. プロジェクト構成・
アプリケーションのレイヤ化
1. 膨大なJarや設定ファイルの
組み合わせ
4. セキュリティ対策
3.ソースの品質向上・
品質維持
36Copyright © 2016 NTT DATA Corporation
2. プロジェクト構成・アプリケーションのレイヤ化
アプリケーションの
レイヤリングって、
どうすればいいん
だろう
あー…
なんでこのクラス
ここにいるんだ
よくみたら
循環参照してる
けど今更…
そんなときは…
37Copyright © 2016 NTT DATA Corporation
2. プロジェクト構成・アプリケーションのレイヤ化
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Overview/ApplicationLayering.html
38Copyright © 2016 NTT DATA Corporation
2. プロジェクト構成・アプリケーションのレイヤ化
クラスの種類を3層に分類し、依存関係を束縛
39Copyright © 2016 NTT DATA Corporation
2. プロジェクト構成・アプリケーションのレイヤ化
40Copyright © 2016 NTT DATA Corporation
レイヤの依存関係
Domain Layer
Application Layer
誤ったレイヤ間の依存関係を
早期に検出できる
41Copyright © 2016 NTT DATA Corporation
ブランクプロジェクトの内部構成
Domain Layer
Infrastructure Layer
42Copyright © 2016 NTT DATA Corporation
ブランクプロジェクトの内部構成
Application Layer
43Copyright © 2016 NTT DATA Corporation
ブランクプロジェクトの内部構成
ログ出力設定やデータソース定義など、
ステージング環境によって異なる設定を
本プロジェクトに集約することで、
設定値の置換を容易にしている
44Copyright © 2016 NTT DATA Corporation
3. ソースの品質向上・品質維持
2. プロジェクト構成・
アプリケーションのレイヤ化
1. 膨大なJarや設定ファイルの
組み合わせ
4. セキュリティ対策
3.ソースの品質向上・
品質維持
45Copyright © 2016 NTT DATA Corporation
3. ソースの品質向上・品質維持
このコード、
Webにのってる
やつコピったな…
危険すぎる…
DBアクセスも
入力チェックも、
いつも考えるけど
ノウハウまとまって
ないなぁ…
似たようなことを
前にやったけど、
時間経ちすぎてる
しなぁ… そんなときは…
46Copyright © 2016 NTT DATA Corporation
3. ソースの品質向上・品質維持
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ArchitectureInDetail/index.html
47Copyright © 2016 NTT DATA Corporation
提供機能
エンタープライズ開発で必要となる
機能を網羅的に解説
48Copyright © 2016 NTT DATA Corporation
解説例
使い方/拡張方法をコードを交えて解説
Copyright © 2015 NTT DATA Corporation 49
ガイドラインの品質確保
エンタープライズ開発で活用してもらうには
ガイドラインの品質を確保し続けることが重要
例:ガイドラインのサンプルコードの品質確保
頻繁に更新されるガイドラインや
プラットフォームに合わせて
コード品質の確認が必要となる
ツール(例:Selenium)を活用して
700シナリオ以上の
機能テストを日次で実行する
後方互換の問題を検知し改善
フレームワーク更新の影響として
速やかに周知する
ガイドライン更新 テスト自動実行 テスト結果確認
JMeter
Gitbucket Selenium
Jenkins
Vagrant
開発ガイドライン
テスト一覧
Test1
Test2
Test3
Test4
OK
OK
OK
NG
50Copyright © 2016 NTT DATA Corporation
4. セキュリティ対策
2. プロジェクト構成・
アプリケーションのレイヤ化
1. 膨大なJarや設定ファイルの
組み合わせ
4. セキュリティ対策
3.ソースの品質向上・
品質維持
51Copyright © 2016 NTT DATA Corporation
4. セキュリティ対策
ここ最近、脆弱性の
ニュースよく聞くし
適当にはできないよ
なぁ…
セキュリティ機能って
どうつくればいいか
わからないよ…
非機能も含めて
セキュリティ対策
できてるのかな…
そんなときは…
52Copyright © 2016 NTT DATA Corporation
セキュリティ対策
機能/非機能を網羅した
セキュリティ対策方法の提供
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Security/index.html
53Copyright © 2016 NTT DATA Corporation
セキュリティ機能の使い方
セキュリティ機能の使い方を解説
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/
Security/Authentication.html
54Copyright © 2016 NTT DATA Corporation
セキュリティ機能の実現方法
代表的な要件の実現方法についても解説
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja
/Security/SecureLoginDemo.html
55Copyright © 2016 NTT DATA Corporation
非機能面でのセキュリティ対策
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Introduction/
CriteriaBasedMapping.html
Copyright © 2016 NTT DATA Corporation 56
おわりに
Copyright © 2015 NTT DATA Corporation 57
TERASOLUNA Server Framework for Java (5.x) Development Guideline
http://terasolunaorg.github.io/guideline/
Copyright © 2015 NTT DATA Corporation 58
2000page over !!
多種多様なノウハウ集であり、
Springの教科書でもあり、辞典でもある
59Copyright © 2016 NTT DATA Corporation
最後に
TERASOLUNA Frameworkに興味がある方は下記までご連絡ください
TERASOLUNA窓口
E-mail: terasoluna@kits.nttdata.co.jp
電話: 050-5546-2482(平日10時〜18時)
NTTデータは今後もJavaアプリケーション開発の
ベストプラクティスをOSSで提供し続けます
エンタープライズJavaシステム開発で積極的に活用し、
情報交換やコミュニティ活動を活発化して
さらなるJavaの発展、繁栄に向けて共に歩んでいきましょう。
Copyright © 2011 NTT DATA Corporation
Copyright © 2016 NTT DATA Corporation
「TERASOLUNA」及びそのロゴは、日本及びその他の国おける株式会社NTTデータの商標または登録商標です。
その他、記載されている会社名、商品名、サービス名等は、各社の商標または登録商標です。

More Related Content

What's hot

Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門Yasutaka Sugamura
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートオラクルエンジニア通信
 
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座Mikiya Okuno
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxotato
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較beyond Co., Ltd.
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Keisuke Takahashi
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Kentaro Kitagawa
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話Ryosuke Uchitate
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善Ito Takayuki
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニックオラクルエンジニア通信
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptx
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Quarkus入門
Quarkus入門Quarkus入門
Quarkus入門
 
Helidon 概要
Helidon 概要Helidon 概要
Helidon 概要
 
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 

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

Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3日本Javaユーザーグループ
 
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイントNaoki Ohsugi
 
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用apkiban
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~apkiban
 
Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)shintaro mizuno
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Yuichi Hasegawa
 
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合InnovationSprint2011
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Open stack概要とよくある議論
Open stack概要とよくある議論Open stack概要とよくある議論
Open stack概要とよくある議論shintaro mizuno
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixMasaya Ishikawa
 
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツールDevelopers Summit
 
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataMLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataNTT DATA Technology & Innovation
 
Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」Hinemos
 
Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」Hinemos
 
レガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーションレガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーションMasanori Satoh
 
仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とはHinemos
 
仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とはHinemos
 
アジャイル事例紹介
アジャイル事例紹介アジャイル事例紹介
アジャイル事例紹介hiko99
 

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

Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
 
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、SQiPシンポジウムアブストラクト作成のポイント
 
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
SQiPシンポジウムアブストラクト作成のポイント
SQiPシンポジウムアブストラクト作成のポイントSQiPシンポジウムアブストラクト作成のポイント
SQiPシンポジウムアブストラクト作成のポイント
 
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
 
Open stack概要とよくある議論
Open stack概要とよくある議論Open stack概要とよくある議論
Open stack概要とよくある議論
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - Delphix
 
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
 
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataMLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
 
Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」
 
Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」Hinemosロードマップ「これまでの歩みと今後の取り組み」
Hinemosロードマップ「これまでの歩みと今後の取り組み」
 
レガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーションレガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーション
 
仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは
 
仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは
 
アジャイル事例紹介
アジャイル事例紹介アジャイル事例紹介
アジャイル事例紹介
 

More from apkiban

Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
Spring Initializrをハックする-カスタマイズを通してその内部実装を覗くSpring Initializrをハックする-カスタマイズを通してその内部実装を覗く
Spring Initializrをハックする-カスタマイズを通してその内部実装を覗くapkiban
 
What happens in Spring Cloud Netflix
What happens in Spring Cloud NetflixWhat happens in Spring Cloud Netflix
What happens in Spring Cloud Netflixapkiban
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢apkiban
 
SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告apkiban
 
TERASOLUNA Framework on the Spring IO Platform
TERASOLUNA Framework on the Spring IO PlatformTERASOLUNA Framework on the Spring IO Platform
TERASOLUNA Framework on the Spring IO Platformapkiban
 
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~apkiban
 
Spring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わるSpring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わるapkiban
 

More from apkiban (7)

Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
Spring Initializrをハックする-カスタマイズを通してその内部実装を覗くSpring Initializrをハックする-カスタマイズを通してその内部実装を覗く
Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
 
What happens in Spring Cloud Netflix
What happens in Spring Cloud NetflixWhat happens in Spring Cloud Netflix
What happens in Spring Cloud Netflix
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告
 
TERASOLUNA Framework on the Spring IO Platform
TERASOLUNA Framework on the Spring IO PlatformTERASOLUNA Framework on the Spring IO Platform
TERASOLUNA Framework on the Spring IO Platform
 
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
 
Spring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わるSpring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わる
 

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

  • 1. Copyright © 2016 NTT DATA Corporation 株式会社NTTデータ 技術革新統括本部 ソフトウェア工学推進センタ 倉元 貴一 Javaエンジニアに知ってほしい、Springの教科書 「TERASOLUNA」
  • 2. Copyright © 2015 NTT DATA Corporation 2 INDEX 1. TERASOLUNA Frameworkとは 2. TERASOLUNA Frameworkが解決する諸問題 3. おわりに
  • 3. Copyright © 2016 NTT DATA Corporation 3 1. TERASOLUNA Frameworkとは
  • 4. 4Copyright © 2016 NTT DATA Corporation TERASOLUNAとは Process Environment Support 数多くのシステム開発で 培ったノウハウを盛り込んだ 標準開発手順・管理手順 ソフトウェアを開発する際の 雛形になるフレームワーク と開発を支援するツール 蓄積されたノウハウ を展開するための 研修や教育サービス 標準手順 サポート 開発環境 数多くのシステム開発実績をもとにした「標準手順」「開発環境」「サポート」を トータルで提供しており、TERASOLUNAを活用することで、高品質な システム開発が実現できます。 TERASOLUNAとは、NTTデータのシステム開発を支える オープン系システム開発のための総合ソリューション
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Copyright © 2015 NTT DATA Corporation 8 Java TERASOLUNA Frameworkの基本コンセプト • FWの必要性が認知され、 様々なJavaFWが乱立 • FWの利用に不慣れな開発者が 多く品質にばらつき発生 • JavaFWは「Spring」と「Java EE」 の2強に • FWのコモディティ化が進みFWの 活用が当たり前の時代に Spring VS Spring 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を活用して エンタープライズ向け フレームワークを整備
  • 9. Copyright © 2015 NTT DATA Corporation 9 これまでのTERASOLUNA Framework(FW2系) 独自のフレームワーク層 Enterprise Application Application Server 以前は、OSSに独自の層を被せることで、 OSSでは不足している機能や、 品質を保つための制約を追加していた。
  • 10. 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のコンセプト
  • 11. Copyright © 2015 NTT DATA Corporation 11 新たなTERASOLUNA Framework(FW5系) 業界の動向を考慮し構成要素を見直した 新しいフレームワークの提供を開始 Enterprise Application Application Server Spring MVC を 最大限活用 Spring Data JPA Spring Security
  • 12. 12Copyright © 2016 NTT DATA Corporation 新たなTERASOLUNA Frameworkの構成要素 •Spring, MyBatisなどのOSSフレームワークソフトウェアフレームワーク •エンタープライズ向けに必要な汎用的な部品共通ライブラリ •OSSを利用したエンタープライズ向けアプリ開発に おけるベストプラクティスドキュメントガイドライン •基本的な開発方法を学ぶ学習教材チュートリアル •基本的な機能を実装したサンプルアプリサンプルAP •プロジェクト構成のひな形ブランクプロジェクト
  • 13. 13Copyright © 2016 NTT DATA Corporation 公開資材の一例 http://terasolunaorg.github.io/ 開発ガイドライン ポータルサイト 資材提供
  • 14. 14Copyright © 2016 NTT DATA Corporation ニュースリリース 2016/02/24 本格運用開始のニュースリリース http://www.nttdata.com/jp/ja/news/release/2016/022400.html
  • 15. Copyright © 2015 NTT DATA Corporation 15 なぜSpringなのか? Springは機能追加し続けており、 今後も迅速な新規テクノロジーへの追従が期待できる Java標準技術への追従も活発であり、SpringとJava EE を組み合わせたベストな選択をしやすい 当社ではSpringを10年以上活用しており、社内に 適用実績、開発リソース、開発ノウハウが多く 存在している 適用案件や開発者が多く、 セキュリティ面の改善活動が活発に実施されている Spring Security等のセキュリティ対策OSSの採用により、 セキュリティ面への対応を強化できる グローバル市場でのシェアNo.1であり、技術者や情報が 豊富に存在するため、要員確保や書籍などによる 情報収集が容易である 開発 リソースの 確保 しやすさ 世の中の 変化への 対応 セキュリ ティ面の 強化 社内に 蓄積した ノウハウ量
  • 16. Copyright © 2015 NTT DATA Corporation 16 TERASOLUNA Frameworkの狙い コモディティ化しつつある領域では 仲間を増やし、業界貢献することが重要 お客様 競合他社 開発者 OSSコミュニティ
  • 17. Copyright © 2015 NTT DATA Corporation 17 ガイドラインのねらい 目的 記載内容 品質向上 • 検証済みで品質確保された開発方法のベストプラクティス • これまでの開発経験から得られた実践的な開発ノウハウ 工数削減 • 流用可能なコードサンプル • これまでPJ個別に実施しており、PJ間で重複していた事項 • 実現可能性検証の結果 • 学習コンテンツ、など ガイドラインの目的と記載内容 ガイドラインは、エンタープライズアプリケーション開発に 必要となる知識やノウハウを網羅し、適用プロジェクトをサポート
  • 18. Copyright © 2015 NTT DATA Corporation 18 ガイドラインのねらい • 各機能の詳細解説 • チュートリアル(学習コンテンツ) 理解しやすいよう に、図を多数記載 • コードサンプル • 検証済みで品質確保された開発方法のベストプラクティス 流用して開発できるように コードサンプルを多数記載 コードサンプルの解説 も記載 • コードサンプル • エンタープライズ向けの実践的な開発ノウハウ ・・・ 各機能の拡張方法も記載 Note、Tip、Warning、Hintなど、 実践的な開発ノウハウを多数記載 実装方法とその根底 にある考え方も記載 ①基本知識の習得、AP基盤の検討 ③FWの拡張方針検討 ④AP基盤の設計・製造 ②実現性検証  アーキテクトの作業におけるガイドライン活用例
  • 19. 19Copyright © 2016 NTT DATA Corporation TERASOLUNA FrameworkのOSSスタック
  • 20. 20Copyright © 2016 NTT DATA Corporation 新たなTERASOLUNA Frameworkの提供機能
  • 21. 21Copyright © 2016 NTT DATA Corporation Server FW for Java 5.1.0の提供機能 画面連携 入力チェック メッセージ管理/国際化 ページネーション アップロード/ダウンロード 二重送信防止 コードリスト システム間連携 SOAPサーバ/クライアント RESTサーバ/クライアント Email送信 DBアクセス(MyBatis/JPA) トランザクション/排他制御 データ連携 セキュリティ 認証・認可 CSRF/XSS対策 暗号化 ユーティリティ ロギング 例外ハンドリング セッション管理 日付・文字列操作
  • 22. 22Copyright © 2016 NTT DATA Corporation (参考)TERASOLUNAの導入実績 5 26 52 79 130 230 371 540 646 765 877 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月末時点)
  • 23. 23Copyright © 2016 NTT DATA Corporation (参考)ガイドラインへのアクセス数 公開から24万ユーザ以上にアクセスされ 毎日4000ページビュー以上閲覧されている 2/24 ニュースリリース
  • 24. Copyright © 2016 NTT DATA Corporation 24 2. TERASOLUNA Frameworkが解決する諸問題
  • 25. 25Copyright © 2016 NTT DATA Corporation エンタープライズシステム開発での課題
  • 26. 26Copyright © 2016 NTT DATA Corporation 1. 膨大なJarや設定ファイルの組み合わせ 2. プロジェクト構成・ アプリケーションのレイヤ化 1. 膨大なJarや設定ファイルの 組み合わせ 4. セキュリティ対策 3.ソースの品質向上・ 品質維持
  • 27. 27Copyright © 2016 NTT DATA Corporation 1. 膨大なJarや設定ファイルの組み合わせ Jarのバージョン… 食い違ってない? 設定ファイル 多すぎて辛い… 環境依存して ないかこれ… そんなときは…
  • 28. 28Copyright © 2016 NTT DATA Corporation 1. 膨大なJarや設定ファイルの組み合わせ http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ImplementationAtEachLayer/CreateWebApplicationProject.html
  • 29. 29Copyright © 2016 NTT DATA Corporation 1. 膨大なJarや設定ファイルの組み合わせ • エンタープライズ開発に必要な 各種設定・ライブラリ依存関係が設定済 • Spring IO Platformをベースに、 TERASOLUNAで検証済みのライブラリを 追加 エンタープライズ開発に必要なノウハウを 詰め込んだプロジェクト構成の雛形 「ブランクプロジェクト」を提供
  • 30. 30Copyright © 2016 NTT DATA Corporation ブランクプロジェクトの構成 エンタープライズ開発時に必要になる設定が定義済みの ブランクプロジェクトのarchetypeを提供 環境依存する資材を集約 するプロジェクト アプリケーションレイヤの プロジェクト ドメイン・インフラレイヤの プロジェクト 「4.1.1. 開発プロジェクトの作成」からご覧ください。
  • 31. 31Copyright © 2016 NTT DATA Corporation 依存関係 TERASOLUNA FWが 依存・推奨する ライブラリが定義済
  • 32. 32Copyright © 2016 NTT DATA Corporation (参考)Spring IO Platformとは? https://spring.io/platform
  • 33. 33Copyright © 2016 NTT DATA Corporation (参考)Spring IO Platformとは? http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions
  • 34. 34Copyright © 2016 NTT DATA Corporation (参考)Spring IO Platformとは? https://pivotal.io/agile/press-release/pivotal-releases-spring-io-platform より “With a set of components all tested to work together, it saves weeks of tedious developer efforts to build and test a stack of compatible Spring and third-party technologies, thereby helping enterprises bring new applications to market more rapidly.” Springや3rd-partyテクノロジ間の互換性の ためのテストやビルドへ費やされていた 「何週間にも及ぶ退屈でつまらない労力」 が削減される
  • 35. 35Copyright © 2016 NTT DATA Corporation 2. プロジェクト構成・アプリケーションのレイヤ化 2. プロジェクト構成・ アプリケーションのレイヤ化 1. 膨大なJarや設定ファイルの 組み合わせ 4. セキュリティ対策 3.ソースの品質向上・ 品質維持
  • 36. 36Copyright © 2016 NTT DATA Corporation 2. プロジェクト構成・アプリケーションのレイヤ化 アプリケーションの レイヤリングって、 どうすればいいん だろう あー… なんでこのクラス ここにいるんだ よくみたら 循環参照してる けど今更… そんなときは…
  • 37. 37Copyright © 2016 NTT DATA Corporation 2. プロジェクト構成・アプリケーションのレイヤ化 http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Overview/ApplicationLayering.html
  • 38. 38Copyright © 2016 NTT DATA Corporation 2. プロジェクト構成・アプリケーションのレイヤ化 クラスの種類を3層に分類し、依存関係を束縛
  • 39. 39Copyright © 2016 NTT DATA Corporation 2. プロジェクト構成・アプリケーションのレイヤ化
  • 40. 40Copyright © 2016 NTT DATA Corporation レイヤの依存関係 Domain Layer Application Layer 誤ったレイヤ間の依存関係を 早期に検出できる
  • 41. 41Copyright © 2016 NTT DATA Corporation ブランクプロジェクトの内部構成 Domain Layer Infrastructure Layer
  • 42. 42Copyright © 2016 NTT DATA Corporation ブランクプロジェクトの内部構成 Application Layer
  • 43. 43Copyright © 2016 NTT DATA Corporation ブランクプロジェクトの内部構成 ログ出力設定やデータソース定義など、 ステージング環境によって異なる設定を 本プロジェクトに集約することで、 設定値の置換を容易にしている
  • 44. 44Copyright © 2016 NTT DATA Corporation 3. ソースの品質向上・品質維持 2. プロジェクト構成・ アプリケーションのレイヤ化 1. 膨大なJarや設定ファイルの 組み合わせ 4. セキュリティ対策 3.ソースの品質向上・ 品質維持
  • 45. 45Copyright © 2016 NTT DATA Corporation 3. ソースの品質向上・品質維持 このコード、 Webにのってる やつコピったな… 危険すぎる… DBアクセスも 入力チェックも、 いつも考えるけど ノウハウまとまって ないなぁ… 似たようなことを 前にやったけど、 時間経ちすぎてる しなぁ… そんなときは…
  • 46. 46Copyright © 2016 NTT DATA Corporation 3. ソースの品質向上・品質維持 http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ArchitectureInDetail/index.html
  • 47. 47Copyright © 2016 NTT DATA Corporation 提供機能 エンタープライズ開発で必要となる 機能を網羅的に解説
  • 48. 48Copyright © 2016 NTT DATA Corporation 解説例 使い方/拡張方法をコードを交えて解説
  • 49. Copyright © 2015 NTT DATA Corporation 49 ガイドラインの品質確保 エンタープライズ開発で活用してもらうには ガイドラインの品質を確保し続けることが重要 例:ガイドラインのサンプルコードの品質確保 頻繁に更新されるガイドラインや プラットフォームに合わせて コード品質の確認が必要となる ツール(例:Selenium)を活用して 700シナリオ以上の 機能テストを日次で実行する 後方互換の問題を検知し改善 フレームワーク更新の影響として 速やかに周知する ガイドライン更新 テスト自動実行 テスト結果確認 JMeter Gitbucket Selenium Jenkins Vagrant 開発ガイドライン テスト一覧 Test1 Test2 Test3 Test4 OK OK OK NG
  • 50. 50Copyright © 2016 NTT DATA Corporation 4. セキュリティ対策 2. プロジェクト構成・ アプリケーションのレイヤ化 1. 膨大なJarや設定ファイルの 組み合わせ 4. セキュリティ対策 3.ソースの品質向上・ 品質維持
  • 51. 51Copyright © 2016 NTT DATA Corporation 4. セキュリティ対策 ここ最近、脆弱性の ニュースよく聞くし 適当にはできないよ なぁ… セキュリティ機能って どうつくればいいか わからないよ… 非機能も含めて セキュリティ対策 できてるのかな… そんなときは…
  • 52. 52Copyright © 2016 NTT DATA Corporation セキュリティ対策 機能/非機能を網羅した セキュリティ対策方法の提供 http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Security/index.html
  • 53. 53Copyright © 2016 NTT DATA Corporation セキュリティ機能の使い方 セキュリティ機能の使い方を解説 http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/ Security/Authentication.html
  • 54. 54Copyright © 2016 NTT DATA Corporation セキュリティ機能の実現方法 代表的な要件の実現方法についても解説 http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja /Security/SecureLoginDemo.html
  • 55. 55Copyright © 2016 NTT DATA Corporation 非機能面でのセキュリティ対策 http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Introduction/ CriteriaBasedMapping.html
  • 56. Copyright © 2016 NTT DATA Corporation 56 おわりに
  • 57. Copyright © 2015 NTT DATA Corporation 57 TERASOLUNA Server Framework for Java (5.x) Development Guideline http://terasolunaorg.github.io/guideline/
  • 58. Copyright © 2015 NTT DATA Corporation 58 2000page over !! 多種多様なノウハウ集であり、 Springの教科書でもあり、辞典でもある
  • 59. 59Copyright © 2016 NTT DATA Corporation 最後に TERASOLUNA Frameworkに興味がある方は下記までご連絡ください TERASOLUNA窓口 E-mail: terasoluna@kits.nttdata.co.jp 電話: 050-5546-2482(平日10時〜18時) NTTデータは今後もJavaアプリケーション開発の ベストプラクティスをOSSで提供し続けます エンタープライズJavaシステム開発で積極的に活用し、 情報交換やコミュニティ活動を活発化して さらなるJavaの発展、繁栄に向けて共に歩んでいきましょう。
  • 60. Copyright © 2011 NTT DATA Corporation Copyright © 2016 NTT DATA Corporation 「TERASOLUNA」及びそのロゴは、日本及びその他の国おける株式会社NTTデータの商標または登録商標です。 その他、記載されている会社名、商品名、サービス名等は、各社の商標または登録商標です。