第16章 Enterprise JavaBeans
16.1. はじめに
16.1.1. Enterprise JavaBeans の概要
Enterprise JavaBeans (EJB) 3.1 は、Enterprise Bean と呼ばれるサーバーサイドコンポーネントを使用してセキュアでポータブルな分散 Java EE アプリケーションを開発するための API です。Enterprise Bean は、再利用を促進する分離された方法でアプリケーションのビジネスロジックを実装します。Enterprise JavaBeans 3.1 は、Java EE 仕様 JSR-318 としてドキュメント化されています。
JBoss Enterprise Application Platform 6 では、Enterprise JavaBeans 3.1 仕様を使用してビルドされたアプリケーションが完全にサポートされます。EJB コンテナは JBoss EJB3 コミュニティープロジェクト (http://www.jboss.org/ejb3) を使用して実装されます。
16.1.2. 管理者向け Enterprise JavaBeans の概要
JBoss 管理者は、Boss Enterprise Application Platform 6 で Enterprise Beans のパフォーマンスを制御する多くの設定オプションを使用できます。これらのオプションには管理コンソールまたはコマンドライン設定ツールを使用してアクセスできます。XML サーバー設定ファイルを編集して変更を適用することは可能ですが、推奨されません。
EJB 設定オプションは、サーバーがどのように実行されているかによって、管理コンソールの若干異なる場所にあります。
サーバーがスタンドアロンサーバーとして実行されている場合:
- 右上の Profile リンクをクリックして Profile ビューに切り替えます。
- Profile メニューが左側で展開されることを確認します。展開されたときに、Profile ラベルの横にある矢印が下向きになります。
- Container をクリックして展開し、EJB 3をクリックします。
サーバーが管理ドメインの一部を実行している場合:
- 上部の Profile リンクをクリックして、Profile ビューに切り替えます。
- 左側で Subsystems メニューが展開されていることを確認します。展開されたときに、Subsystems ラベルの横にある矢印が下向きになります。
- Profile メニューから、変更するプロファイルを選択します。
- Container をクリックして展開し、EJB 3をクリックします。
図16.1 管理コンソールの EJB 設定オプション (スタンドアロンサーバー)
16.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 の使用を推奨します。
16.1.4. セッション Bean
セッション Bean は、関連の業務プロセスやタスクのセットをカプセル化し、要求したクラスにインジェクトするエンタープライズ Bean です。セッション Bean には、ステートレス、ステートフル、シングルトンの 3 種類があります。
16.1.5. メッセージ駆動型 Bean
メッセージ駆動型 Bean (MDB) は、アプリケーション開発にイベント駆動モデルを提供します。MDB のメソッドはクライアントコードに挿入されるか、クライアントコードから呼び出されますが、Java Messaging Service (JMS) サーバーなどのメッセージングサービスからメッセージを受け取ることによってトリガーされます。Java EE 6 仕様では JMS がサポートされている必要がありますが、他のメッセージングシステムをサポートすることもできます。