Enterprise JavaBeans 3.1入門
-
Upload
oracle-fusion-middleware -
Category
Technology
-
view
2.742 -
download
6
description
Transcript of 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事業統括本部 松林晶
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のプリセールス担当
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新機能
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 4
1)EJBとは
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の略
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
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){ // { }
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)
コンシューマ プロデューサ
メッセージプロバイダ
キュー/トピック 送信 受信
メッセージ
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 9
2)EJBコンテナの機能
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 10
EJBコンテナの機能
EJBを実行するには、EJBコンテナが必要
EJBコンテナは、多くのアプリケーションに共通する中核機能を提供
– 依存性注入
– インスタンスプーリング
– トランザクション管理
– セキュリティ
– 同時実行性
– インターセプタ
開発者はビジネスロジックの実装に専念できる
EJBコンテナとは
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 11
EJBコンテナの機能 EJBコンテナのイメージ
EJB クライアント
セッションBean
データベース
開始
コミット
インスタンス
プーリング EJB
クライアント セキュリティ
依存性注入
インターセプタ
タイマー
トランザクション
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のクラスレベル、メソッドレベルでのアクセス制御
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 13
EJBコンテナの機能 EJBコンテナとは
同時実行性
– スレッドセーフなEJBを提供
インターセプタ
– 横断的な処理(ログ出力など)を配置し、自動で呼び出される
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 14
3)EJB3.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コンテナ
新機能一覧
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 { // }
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
ローカル
リモート
インターフェースなし
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
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を使って
簡単に開発可能に!
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ネーミング
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”)
ビジネス
ロジック
自動でビジネスロジック実行
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コンテナが必要だった)
バッチ処理でも利用可能
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 23
まとめ
EJBは3.0からアノテーションベースのかんたん開発を実現
3.1から、よりかんたんに、より多くの付加価値のある機能を提供
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 24
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 25