Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第21章 Enterprise JavaBeans 3.2

21.1. はじめに

21.1.1. Enterprise JavaBeans の概要

Enterprise JavaBeans(EJB)3.1 は、Enterprise Beans と呼ばれるサーバー側のコンポーネントを使用して、分散型のトランザクション型のセキュアで移植可能な Java EE アプリケーションを開発するための API です。エンタープライズ Bean は、再利用を促すような分離方法でアプリケーションのビジネスロジックを実装します。Enterprise JavaBeans 3.1 は、Java EE 仕様 JSR-318 として文書化されています。
JBoss EAP 6 では、Enterprise JavaBeans 3.1 仕様を使用してビルドされたアプリケーションが完全にサポートされます。

21.1.2. 管理者向け Enterprise JavaBeans の概要

JBoss 管理者は、JBoss EAP 6 でのエンタープライズ Bean のパフォーマンスを制御する多くの設定オプションを使用できます。これらのオプションは、管理コンソールまたはコマンドライン設定ツールを使用してアクセスできます。変更を適用するために XML サーバー設定ファイルを編集することもできますが、推奨されません。
EJB 設定オプションは、サーバーがどのように実行されているかによって、管理コンソールでの場所が若干異なります。
  1. 管理コンソールの上部にある Configuration タブをクリックします。
  2. ドメインモードで実行している場合は、左上の Profiles ドロップダウンメニューからプロファイルを選択します。
  3. Subsystems メニューを展開します。
  4. Container メニューを展開し、EJB 3 を選択します。

21.1.3. エンタープライズ Bean

エンタープライズ Bean は、Enterprise JavaBeans(EJB)3.1 仕様 JSR-318 に定義されているサーバー側のアプリケーションコンポーネントです。エンタープライズ Bean は、再利用を促すために、分離された方法でアプリケーションのビジネスロジックを実装するように設計されています。
エンタープライズ Bean は Java クラスとして記述され、適切な EJB アノテーションが付けられます。Java EE アプリケーションの一部としてデプロイすることも、独自のアーカイブ(JAR ファイル)でアプリケーションサーバーにデプロイできます。アプリケーションサーバーは、各エンタープライズ bean のライフサイクルを管理し、セキュリティー、トランザクション、同時実行管理などのサービスを提供します。
また、エンタープライズ Bean は任意の数のビジネスインターフェースを定義できます。ビジネスインターフェースは、クライアントで利用できる Bean のメソッドの制御を強化し、リモート JVM で実行しているクライアントへのアクセスも許可します。
エンタープライズ Bean には、セッション Bean、メッセージ駆動型 Bean、およびエンティティー Bean の 3 種類があります。
重要
エンティティー bean は EJB 3.1 で非推奨となり、Red Hat は代わりに JPA エンティティーの使用を推奨します。Red Hat は、レガシーシステムとの後方互換性のためにエンティティー Bean のみを使用することを推奨します。

21.1.4. セッション Bean

セッション Bean は、関連するビジネスプロセスまたはタスクのセットをカプセル化し、それらを要求するクラスに挿入されるエンタープライズ Bean です。セッション bean のタイプには、ステートレス、ステートフル、シングルトンの 3 つがあります。

21.1.5. メッセージ駆動 Bean

メッセージ駆動 Bean (MDB) は、アプリケーション開発のイベント駆動モデルを提供します。MDB のメソッドは、クライアントコードにインジェクトされず、クライアントコードから呼び出しませんが、Java Messaging Service (JMS) サーバーなどのメッセージングサービスからのメッセージの受信によってトリガーされます。Java EE 6 仕様では JMS がサポートされる必要がありますが、他のメッセージングシステムもサポートされます。