Enterprise JavaBeans 3.1入門

25
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 1 WebLogic Server 勉強会 Enterprise JavaBeans 3.1入門 2012830日本オラクル株式会社 Fusion Middleware事業統括本部 松林晶

description

Enterprise JavaBeans(以下、EJB) は、3.0で革命的な変化を遂げ、Java EE 6ではバージョンが3.1となり、さらに便利な機能が多数追加されました。本セッションでは、EJBの概要およびEJB 3.1の新機能に関して解説します。   日本オラクル株式会社 Fusion Middleware事業統括本部 ソリューション本部 松林 晶

Transcript of Enterprise JavaBeans 3.1入門

Page 1: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 1

WebLogic Server 勉強会 Enterprise JavaBeans 3.1入門

2012年8月30日

日本オラクル株式会社

Fusion Middleware事業統括本部 松林晶

Page 2: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 2

自己紹介

松林 晶(まつばやし あきら)

– 独立系SIer時代はJava EEの開発(公共・通信)に従事

– Oracleでは、WebLogic Server、Coherenceのプリセールス担当

Page 3: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 3

Program Agenda

1)EJBとは

2)EJBコンテナの機能

3)EJB3.1新機能

Page 4: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 4

1)EJBとは

Page 5: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 5

1)EJBとは EJBの種類

エンティティ

Bean

セッション

Bean

メッセージ

駆動Bean

EJB

メッセージ駆動型Beanは、メッセージ受信時のビジネスロジックを記述するEJB

エンティティBeanは、O/Rマッピングを行いデータ操作のためのEJB

セッションBeanはビジネスロジックを記述するEJB

EJBはEnterprise JavaBeansの略

Page 6: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 6

1)EJBとは

セッションBeanはビジネスロジックを記述するEJB

– セッションBeanの種類

ステートフルセッションBean

ステートレスセッションBean

シングルトンセッションBean

– セッションBeanの呼出し

ローカル(同一JVM)

リモート

セッションBean

セッションBean

クライアント

セッションBean

クライアント

JVM

JVM

JVM

EJB3.1

Page 7: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 7

1)EJBとは

セッションBean

– POJOベース

– アノテーションの付与

XML定義不要

ホームインターフェース不要

セッションBeanの例

@Stateless @Localbean public class BookSessionBean { public void addBook(Book b){ // } public Book getBook(long id){ // { }

Page 8: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 8

1)EJBとは

メッセージ駆動Beanはメッセージ受信時に実行する

ビジネスロジックを記述するEJB(コンシューマ側)

メッセージ駆動Bean(MDB)

コンシューマ プロデューサ

メッセージプロバイダ

キュー/トピック 送信 受信

メッセージ

Page 9: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 9

2)EJBコンテナの機能

Page 10: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 10

EJBコンテナの機能

EJBを実行するには、EJBコンテナが必要

EJBコンテナは、多くのアプリケーションに共通する中核機能を提供

– 依存性注入

– インスタンスプーリング

– トランザクション管理

– セキュリティ

– 同時実行性

– インターセプタ

開発者はビジネスロジックの実装に専念できる

EJBコンテナとは

Page 11: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 11

EJBコンテナの機能 EJBコンテナのイメージ

EJB クライアント

セッションBean

データベース

開始

コミット

インスタンス

プーリング EJB

クライアント セキュリティ

依存性注入

インターセプタ

タイマー

トランザクション

Page 12: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 12

EJBコンテナの機能 EJBコンテナとは

依存性注入

– セッションBean等のインスタンスに対して、様々なリソースを注入可能

– 別のEJBやエンティティマネージャ(JPA)等

インスタンスプーリング

– 複数のクライアントから共有できる複数インスタンスのプールを作成

– インスタンスの再利用

トランザクション管理

– トランザクションの開始、コミット、ロールバックを実施

セキュリティ

– EJBのクラスレベル、メソッドレベルでのアクセス制御

Page 13: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 13

EJBコンテナの機能 EJBコンテナとは

同時実行性

– スレッドセーフなEJBを提供

インターセプタ

– 横断的な処理(ログ出力など)を配置し、自動で呼び出される

Page 14: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 14

3)EJB3.1新機能

Page 15: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 15

EJB3.1新機能

1. シングルトンセッションBean

2. インターフェースなしクライアントビュー

3. EJBをWARファイルにパッケージ可能

4. セッションBeanの非同期実行

5. ポータブル・グローバルJNDIネーミング

6. カレンダー形式のEJBタイマー

7. 組み込み可能なEJBコンテナ

新機能一覧

Page 16: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 16

EJB3.1新機能

セッションBeanが特定のJava仮想マシン(JVM)の

アプリケーションごとに1回のみインスタンス化される

エンタープライズBeanコンポーネントの複数のインスタンス間

またはアプリケーションの複数のエンタープライズBeanコンポーネント間で状態を容易に共有できます

クラスに@Singletonアノテーションを付与

1.シングルトンセッションBean

@Singleton public class MySingletonSessionBean { // }

Page 17: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 17

EJB3.1新機能

インタフェースなしのローカル・クライアント・ビュー・タイプでは、個別のローカル・ビジネス・インタフェースを必要としない

ローカル・セッションBeanへのアクセスを提供して、コンポーネントでEJB Beanクラス・インスタンスを直接注入できる

EJBの開発を単純化

2.インターフェースなしクライアントビュー

EJB クライアント

セッションBean

ローカル

リモート

インターフェースなし

Page 18: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 18

EJB3.1新機能

EJB 3.1ではEJBモジュールを直接Webアプリケーション・アーカイブ(WAR)ファイルの中に直接配置可能

以前のようにエンタープライズ・アーカイブ(EAR)ファイルで結合する必要がなくなりました

3.EJBをWARファイルにパッケージ可能

WARファイル

EARファイル

WARファイル

EJB-JAR ファイル

EJB

EJB

EJB

EJB EJB EJB

Page 19: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 19

EJB3.1新機能

マルチスレッドプログラミングを簡単に実装可能

@AsynchronousアノテーションをセッションBeanのメソッドに付与する

戻り値が必要な場合は

Futureオブジェクトを返す

4.セッションBeanの非同期実行

EJB クライアント

セッションBean

A

セッションBean

B

@Asynchronous

@Asynchronous

今まではJMS(MDB)等を使用して非同期処理を実現していたが

セッションBeanを使って

簡単に開発可能に!

Page 20: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 20

EJB3.1新機能

EJBコンポーネントをJNDIに登録する方法および場所、およびそれらをアプリケーションでルックアップおよび使用する方法を標準化

今までベンダ毎に異なったJNDI名を標準化することで移植性が向上

5.ポータブル・グローバルJNDIネーミング

Page 21: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 21

EJB3.1新機能

カレンダー形式のスケジューリングが可能

Linux等で使用されるCronのようにスケジュール

@Scheduleアノテーションで、10分おきに自動実行するメソッドを定義

アノテーションだけでなくプログラムで定義することも可能

ScheduleExpressionヘルパクラスを用いる

6.カレンダー形式のEJBタイマー

@Schedule(minute = “*/10” , hour = “*”) public void executeA(){

new ScheduleExpression().dayOfMonth(“Mon”).month(“Jan”)

ビジネス

ロジック

自動でビジネスロジック実行

Page 22: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 22

EJB3.1新機能 7.組み込み可能なEJBコンテナ

組み込み可能なEJBコンテナを提供

これにより、Java SE環境であっても、セッションBeanの単体試験を実施可能(従来は、単体試験であってもEJBコンテナが必要だった)

バッチ処理でも利用可能

Page 23: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 23

まとめ

EJBは3.0からアノテーションベースのかんたん開発を実現

3.1から、よりかんたんに、より多くの付加価値のある機能を提供

Page 24: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 24

Page 25: Enterprise JavaBeans 3.1入門

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 25