第23章 Enterprise JavaBeans

23.1. はじめに

23.1.1. Enterprise JavaBeans の概要

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

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

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

23.1.3. エンタープライズ Bean

Enterprise JavaBeans (EJB) 3.1 仕様、JSR-318 に定義されているように、エンタープライズ Bean はサーバー側のアプリケーションコンポーネントのことです。エンタープライズ Bean は疎結合方式でアプリケーションのビジネスロジックを実装し、再利用ができるように設計されています。
エンタープライズ Bean は Java クラスとして記述され、適切な EJB アノテーションが付けられます。アプリケーションサーバーに独自のアーカイブ (JAR ファイル) でデプロイするか、 Java EE アプリケーションの一部としてデプロイすることが可能です。アプリケーションサーバーは各エンタープライズ Bean のライフサイクルを管理し、セキュリティー、トランザクション、並行処理管理などのサービスを提供します。
エンタープライズ Bean は、ビジネスインターフェースをいくつでも定義できます。ビジネスインターフェースは、クライアントが使用できる Bean のメソッドに対して優れた制御機能を提供し、リモート JVM で実行されているクライアントへのアクセスも許可します。
エンタープライズ Bean には、セッション Bean、メッセージ駆動型 Bean、およびエンティティー Bean の 3 種類があります。

重要

エンティティー Bean は EJB 3.1 で廃止されました。Red Hat は代わりに JPA エンティティーの使用を推奨します。Red Hat はレガシーシステムで後方互換性に対応する場合のみエンティティー Bean の使用を推奨します。

23.1.4. セッション Bean

セッション Bean は、関連の業務プロセスやタスクのセットをカプセル化し、要求したクラスにインジェクトするエンタープライズ Bean です。セッション Bean には、ステートレス、ステートフル、シングルトンの 3 種類があります。

23.1.5. メッセージ駆動型 Bean

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