61
<Insert Picture Here> Java EE の現状からクラウド(PaaS)対応への進化について 日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com

Java EE 6 to EE 7

  • View
    1.662

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Java EE 6 to EE 7

<Insert Picture Here>

Java EE の現状からクラウド(PaaS)対応への進化について

日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com

Page 2: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 3

JavaOne Tokyo 2012 ‒ 4/4 ~ 4/5 http://www.oracle.co.jp/javaone

Page 4: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 4

JavaOne Tokyo 2012�■期間 : 2012年 4月4日(水)~5日(木) ■内容 : キーノート/ブレイクアウト/ハンズオン/ブース/オンライン・セッション

■会場 : 六本木ヒルズ アカデミーヒルズ ■参加費 :5,000円 当日申込 10,000円 

Page 5: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 5

Java EE ってまだ難しいと

思ってらっしゃいますか?

Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Page 6: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 6

Java EE のイメージ

Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Page 7: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 7 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 8: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 8

J2EE 1.4までは

その通りでした

Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Page 9: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 9

Page 10: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 10

Java EE 5からかんたん

Java EE 6は集大成 !!

Photo by http://www.flickr.com/photos/namwizard/�

Page 11: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 11

Java EE 6

2009年12月リリース

Photo by http://www.flickr.com/photos/namwizard/�

本番環境へ適用可能です

Page 12: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 6 のテーマ 開発生産性の大幅な向上 • 拡張性 • プロファイルの提供 • 仕様の削減 • 進化するかんたん開発

12

Page 13: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

web.xml

<web-app>

フレームワーク A

フレームワーク B

フレームワーク C

フレームワーク D

</web-app>�

拡張性 • Java EE 以外のフレームワークの組み込み設定が容易

13

フレームワークA

<web-fragment>

….

</web-fragment>�

フレームワークB

<web-fragment>

….

</web-fragment>�

web.xml

<web-app>

<absolute-ordering>

<name>B</name> <name>A</name>

<absolute-ordering>

</web-app>�

Page 14: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Web プロファイル

• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分

Full Java EE 6 (Enterprise Platform)

Web Profile

Page 15: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

仕様の削減 Pruning (せん定)

• 古くなって使われなくなったAPIの整理

Photo by http://www.flickr.com/photos/tetsu_blink/�

• 次期バージョンで削除予定 • JAX-RPC (->JAX-WS) • EJB Entity Beans (->JPA) • JAXR • JSR-88

Page 16: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 16

かんたん開発 開発を容易にする様々な統合開発環境

Page 17: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 17 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 18: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 18

JavaServer Faces 2.0 開発効率向上ポイント1

豊富なコンポーネント

Page 19: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

JavaServer Faces 2.0 開発効率の向上ポイント2

19

強力なテンプレート機能

1 ヘッダ部作成

 

左␄⏎␝作成�

4 フッダ部作成

 

右␄⏎␝作成�

共通部分の作成

5 テンプレート作成

テンプレートの作成

コンテンツ

各種ページの作成

コンテンツ

コンテンツ

コンテンツ

コンテンツ

コンテンツ

ご参考: http://yoshio3.com/2011/01/14/jsf20-new-with-facelets-template/�

Page 20: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

JavaServer Faces 2.0 開発効率の向上ポイント3

20

たった1行の追加でAjaxを実現

<f:ajax/> タグ

Page 21: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 21 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 22: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE

Application Server

Web Container

EJB 3.0 までの単体テストは困難

22

EJB

テスト

JSP Servlet JSF

EJB Container

EJB EJB EJB DB

Java SE

アプリケーションサーバへのデプロイ必要 リモートから lookup を実施

•  SOAP HTTP •  RMI IIOP

Page 23: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

EJB 3.1:組み込み可能 EJB コンテナ

23

EJB

テスト

EJB Container

EJB EJB EJB

Java SE

DB

アプリケーションサーバへのデプロイ不要 Java SE (JUnit) から直接テストを実施可能

EJBContainer container =!

EJBContainer.createEJBContainer();!

Java SE のアプリケーションから EJB コンテナを初期化

Page 24: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

EJB 3.1:組み込み可能 EJB コンテナ

24

public void testSayHello() {!

EJBContainer container = EJBContainer.createEJBContainer();!

try{!

Hello hello = (Hello)container.getContext().lookup!

("java:global/classes/Hello");!

System.out.println(hello.sayHello());!

}catch(Exception e){!

e.printStackTrace();!

}}!

Page 25: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 25 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 26: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 5 まではフル機能を提供

26

Java EE 5 Specification

JSP Servlet JSF EJB JMS

JTA Java Mail JAXP JAX-WS JPA

JAXB JAXR JDBC JAAS

JNDI

頻繁に使わない仕様もオールインワンで提供 不要モジュールもロードしメモリ消費 実行環境の起動、再起動も遅い

・・・

Page 27: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 6 Web プロファイル

• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分

Full Java EE 6 (Enterprise Platform)

Web Profile

Page 28: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Web の開発に特化した軽量プロファイル

28

Web プロファイルに含まれる仕様

Servlet 3.0 JPA 2.0

JSP 2.2/EL JTA 1.1

JSTL DI 1.0/CDI 1.0

JSF 2.0 Managed Bean 1.0

Bean Validation 1.0 Interceptors 1.1

EJB 3.1 Lite Common Annotations

繰り返しますが、 これさえあれば Web アプリ開発は十分

Page 29: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 29 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 30: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 5 までのパッケージング

30

WEB-INF/web.xml

WEB-INF/resources

WEB-INF/classes/FooServlet.class

com/oracle/FooBean.class

com/oracle/Foo.class

foo_web.war

foo_ejb.jar

foo.ear

com/oracle/Foo.class

lib/foo_common.jar

foo.ear

WEB-INF/web.xml

WEB-INF/classes/FooServlet.class

foo_web.war

com/oracle/FooBean.class

foo_ejb.jar

適切なアーカイブファイル(ear,jar,war)へのパッケージングが必要(面倒)

Page 31: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 6 のパッケージング

31

WEB-INF/web.xml

WEB-INF/resources

WEB-INF/classes/FooServlet.class

WEB-INF/classes/com/oracle/FooBean.class

(EJB)

WEB-INF/classes/com/oracle/Foo.class

foo.war

•  EJB を war に含む事が可能 •  WEB-INF/classes : クラスファイルとして

•  WEB-INF/lib : 分割 jarファイルとして

•  今まで同様のパッケージングも可能 •  ejb-jar ファイル

•  配備記述子は省略可能

Page 32: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 32 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 33: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 5 以降 XML設定の省略が可能

• Servlet • JavaServer Faces • EJB • JAX-WS • など

33

アノテーションによる宣言的プログラミングモデルへ移行

Page 34: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Servlet 3.0 アノテーションによる実装

import javax.servlet.annotation.InitParam; !import javax.servlet.annotation.WebServlet; !@WebServlet( name = "SimpleServlet", ! urlPatterns = {"/simple"}, ! initParams = { ! @InitParam(name = "param1", value = "value1"), ! @InitParam(name = "param2", value = "value2")! } ) !public class SimpleServlet { }

34

Page 35: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

JSF 2.0 Managed Bean アノテーションによる実装

import javax.faces.bean.ManagedBean;!!@ManagedBean(name="user")!@SessionScoped!public class UserBean {!    private String name="";!    private String password;!}!

35

Page 36: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

EJB 3.1 アノテーションによる実装

@Stateless!public class HelloBean {!    public String sayHello(){! return “Hello”;! }!}!

36

EJB 3.1 より ローカルビジネスインタフェースの実装も不要

Page 37: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 37 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 38: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

アプリケーションサーバが重いのは Java EE 5 まで

38

超高速起動(Web Profile 版利用時) 起動時間約 4 秒 (CPU: 2.4GHz Core 2Duo/4GB) 情報: GlassFish Server Open Source Edition 3.1 (43) 起動時間 : Felix (2,317 ミリ秒)、 起動サービス (871 ミリ秒)、 合計 (3,188 ミリ秒)

使われない機能を未初期化 開発効率の大幅な向上 再起動時間の待ち時間の減少 メモリ使用量も少

Page 39: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

本当に Tomcat だけで事足りますか? • 結局他のフレームワークを自分で設定していませんか?

39

+

Servlet JSP Expression Language �

Page 40: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. Photo by http://www.flickr.com/photos/namwizard/�40

これからは

標準技術だけで十分

Page 41: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 41

Java EE 5 からの改善

Page 42: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 6 WebProfile Web の開発に特化した軽量プロファイル

• これだけで十分 オールインワン・パッケージ • 軽量(起動時間の高速化、メモリフットプリント) • 必要な場合ライブラリの追加も容易

42

Java EE 6 WebProfile版がサポートする仕様

Servlet 3.0 JPA 2.0

JSP 2.2/EL JTA 1.1

JSTL DI 1.0/CDI 1.0

JSF 2.0 Managed Bean 1.0

Bean Validation 1.0 Interceptors 1.1

EJB 3.1 Lite Common Annotations

Web Profile 版対応

アプリケーションサーバ

Page 43: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 43

Page 44: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 44

Infrastructure as a Service

Platform as a Service

Software as a Service

プロプライエタリなクラウド技術

Page 45: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 45

Java EE 7 : Platform as a Service

• 開発者、利用者に対して • パブリック、プライベート、およびハイブリッドクラウドを活用するための方法を提供

Java EE プラットフォーム

Java EE

プラット

フォーム

Java EE 6 まで

プラットフォーム上でサービス展開

Java EE 7 から

プラットフォームがサービス

Page 46: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 46

• サービス・プロビジョニング • QoS, 伸縮性 • アプリケーションとリソースの共有 • 再設定、カスタマイズ機能

Java EE 7 : Platform as a Service

Page 47: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 47

継続的な伸縮性

シングルノードNon-Elastic 動的な自己調整

SLA Driven Elasticity Java EE マルチノード

マルチインスタンス クラスタ化

Java EE 7 のフォーカス

Java EE Cluster

Capacity on Demand

Elastic Cluster

Java EE 7 : Elasticity (伸縮性)

• リソース状況に応じた増減 • 自立サービスレベル管理 • 1台から IaaS まで配備対象管理

Page 48: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 48

Java EE の参照実装 GlassFish v4.0 ‒ PaaS コンソール(New)

Page 49: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 49

PaaS 環境へデプロイ

Page 50: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 50

サービスリソース設定

ロードバランサ

Java EE

RDBMS

Page 51: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 51

オート・スケール設定

CPU使用状況

メモリ使用状況

レスポンスタイム

日付指定

最小のインスタンス数

最大のインスタンス数

トリガ対象の選択

閾値の設定

Page 52: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 52

PaaS 環境の監視

Page 53: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 53

テナントID : Oracle テナントID : Foo

同一アプリケーション

DBへの永続化におけるマルチテナント対応

同一テーブルでマルチテナント テナント毎にテーブルを分割

Page 54: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 54

Multi-Tenancy

Service Definition & Orchestration

Elasticity

New Roles

JMS 2.0

Caching API

JSON API

Expanded CDI & REST Support

Java EE 7

Broad Industry Participation

Build on EE 6 Momentum

Java EE 7 に含まれる技術

Page 55: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Java EE 7 に含まれる技術

• マルチテナンシー • JCache (JSR-107) • Concurrency Utilities for Java EE (JSR-236) • JPA 2.1 (JSR-338) • JAX-RS 2.0 (JSR-339) • JMS 2.0 • JavaServer Faces 2.2 • WebTier •  HTML 5対応 • WebSocket 対応 •  JSON API のサポート

55

Page 56: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 56

JavaOne Tokyo 2012�■期間 : 2012年 4月4日(水)~5日(木) ■内容 : キーノート/ブレイクアウト/ハンズオン/ブース/オンライン・セッション

■会場 : 六本木ヒルズ アカデミーヒルズ ■参加費 :5,000円 当日申込 10,000円 

Page 57: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

JavaOne ‒ Java EE 関連セッション

• JavaEE 6 programming Model Explained

• JavaEE Web Container in the Cloud • Pragmatic Cloud & PaaS with JavaEE7 • JPA on the Grid • The New JSR-107 Caching Standard • JAX-RS 2.0 • What's coming in Java Message Service 2.0

57

クラウド関連セッション盛りだくさん

Page 58: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 58

Java SE におけるクラウド対応

• マルチテナンシー (JDK 8 +) – 同一 OS 上で稼働する Java VM 間の共有の改善 – スレッド/スレッドグループ毎のリソース管理・監視

• Hypervisor対応 Java VM (JDK 9+) – 共通操作メモリページの共有 – 共通操作ライフサイクル、マイグレーション

Page 59: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved.

Page 60: Java EE 6 to EE 7

<Insert Picture Here>

Java EE の現状からクラウド(PaaS)対応への進化について

日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com

Page 61: Java EE 6 to EE 7

Copyright© 2011, Oracle. All rights reserved. 61