56
<Insert Picture Here>

Java EE 6 Explanation

Embed Size (px)

DESCRIPTION

This material explain the new feature of Java EE 6 for Japanese Developers.

Citation preview

Page 1: Java EE 6 Explanation

<Insert Picture Here>

JavaEE 6 重点解説 – 新仕様のご紹介

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

Page 2: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 2

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

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

Page 3: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 3

Java EE ってまだ難しいと

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

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

Page 4: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 4

Java EE のイメージ

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

Page 5: Java EE 6 Explanation

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

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 6: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 6

J2EE 1.4までは

その通りでした

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

Page 7: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 7

Page 8: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 8

Java EE 5からかんたん

Java EE 6は集大成 !!

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

Page 9: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 9

Java EE 6

2009年12月リリース

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

本番環境へ適用可能です

Page 10: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Java EE 6 のテーマ 開発生産性の大幅な向上

• 拡張性 • プロファイルの提供 • 仕様の削減 • 進化するかんたん開発

10

Page 11: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

web.xml

<web-app>

フレームワーク A

フレームワーク B

フレームワーク C

フレームワーク D

</web-app>�

拡張性

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

11

フレームワーク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 12: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Web プロファイル

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

Full Java EE 6 (Enterprise Platform)

Web Profile

Page 13: Java EE 6 Explanation

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 14: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 14

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

Page 15: Java EE 6 Explanation

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

Java EE全部はいらない

テストも大変

開発効率が悪い

コンテナが重量

パッケージングが面倒

XML設定地獄

Page 16: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 16

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

豊富なコンポーネント

Page 17: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

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

17

JSF 1.2

コーディングから動作確認までの高速化

JSP コンパイル class 動作確認

JSF 2.0

Facelet

(XHTML)

動作確認

SAXParser

Page 18: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

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

18

強力なテンプレート機能

1 ヘッダ部作成

 

左␄⏎␝作成�

4 フッダ部作成

 

右␄⏎␝作成�

共通部分の作成

5 テンプレート作成

テンプレートの作成

コンテンツ

各種ページの作成

コンテンツ

コンテンツ

コンテンツ

コンテンツ

コンテンツ

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

Page 19: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

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

19

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

<f:ajax/> タグ

Page 20: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 20

Java EE 5 からの改善

Page 21: Java EE 6 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

Copyright© 2011, Oracle. All rights reserved.

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

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

33

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

Page 34: Java EE 6 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

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 Explanation

Copyright© 2011, Oracle. All rights reserved.

本当に Tomcat だけで事足りますか?

• 結局他のフレームワークを自分で設定していませんか?

39

+

Servlet JSP Expression Language �

Page 40: Java EE 6 Explanation

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

これからは

標準技術だけで十分

Page 41: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

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

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

41

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 42: Java EE 6 Explanation

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

技術のアップデート

Page 43: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Servlet 3.0

43

• 設定ファイル (web.xml) のオプション化 • アノテーションベース開発

• web-fragments.xml による拡張性を提供 • マルチパート対応

• 標準でファイルアップロード機能を提供 • 非同期 Servlet のサポート

• 長時間処理用に非同期スレッド生成 • セキュリティの拡張 (login/logout)

Page 44: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

JavaServer Faces 2.0

• コンポーネントベース開発 (MVC) • Facelets による実装 • テンプレート機能の提供 • カスタム複合コンポーネント • Ajax 対応 • ブックマーク可能なページ

• 設定項目の簡略化 • ページナビゲーションの改良 •  faces-config.xml のオプション化

• Bean Validation のサポート • Servlet コンテナのバージョンに非依存

• Servlet 3.0 コンテナの他 2.5 上でも動作可能

44

Page 45: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

EJB 3.1 • パッケージの簡略化

• EJB 3.1 “Lite” の提供 • ローカルビジネスインタフェースのオプション化 • 標準化された Global JNDI名 • Java SEに組み込み可能なEJBコンテナ • その他の新機能

45

Page 46: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

JPA 2.0 : JSR-317 EJB の仕様から独立

• JPA 2.0 = JPA 1.0 + α • モデリングの強化 • JPQL新しい構文の追加 • Criteria API の提供 • メタモデルAPIの提供 • 悲観的ロックの追加 • バリデーションのサポート • 設定オプションの標準化

46

Page 47: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

JAX-RS 1.1

• RESTful サービス用の高レベル HTTP API • POJO とアノテーションベース

• web.xml の設定は不要 • API の利用が可能

• HTTP メソッドとのマッピング • GET, POST, PUT, DELETE 等

• EJB, CDI, Servlet 等と統合 • ステートレス、シングルトン Bean と統合 • Managed Bean 1.0 と統合 • CDI と統合

47

Page 48: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Bean Validation 1.0

• アプリケーション中で宣言的なバリデーションが可能 • カスタムバリデーションを作成可能 • 1度の制限でどこでもバリデート可能

• Bean 、フィールド、プロパティに制限 • Null チェック、数値適用範囲チェック、メールアドレスチェック等

• JSF 2.0 に統合 •  f:validateRequired, f:validateRegexp • ManagedBean

• @NotNull, @Size(max=40) String address 等 • JPA 2.0 に統合

• Entity クラス • @NotNull, @Size(max=40) String address 等

48

Page 49: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Dependency Injection

• @Inject アノテーション • @Inject @LoggedIn User user;

• Injection メタモデル • どんなBeanもInject対象 • EJB session beans • Plain classes with @ManagedBean • CDIがモジュール内で見つけたクラス • デフォルトで無効、有効化する場合は、beans.xmlを配置 • META-INF/、WEB-INF/に配置

49

DI 1.0/CDI 1.0

Page 50: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Java EE 7 の

テーマ:クラウド

Java EE 7

テーマ :クラウド

Page 51: Java EE 6 Explanation

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 のサポート

51

Page 52: Java EE 6 Explanation

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

Java EE 6は集大成 !!

Page 53: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 53

http://www.slideshare.net/OracleMiddleJP/java-ee-6-detail

136ページ

ご参考

Page 54: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 54

Java EE 6 書籍

年末日本語版リリース予定 発売済み

Page 55: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved.

Page 56: Java EE 6 Explanation

Copyright© 2011, Oracle. All rights reserved. 56