EJB 開発リソース

このトピックでは、EJB の開発で一般的に使用されるリソースおよび開発ツールについて説明します。
EJB モジュール

EJB モジュールを使用して、1 つ以上の エンタープライズ Bean をアセンブルし、単一のデプロイ可能な単位にします。

EJB モジュールは、J2EE パースペクティブの「プロジェクト・エクスプローラー」ビューに表示され、EJB プロジェクトに対応するものです。 EJB プロジェクトで開発した EJB モジュールを、 独立型 EJB JAR ファイルとしてエクスポートすることもできますし、 エンタープライズ・アプリケーション内の 他の EJB モジュールまたは Web モジュールと結合させることもできます。 EJB JAR ファイルは、標準の Java™ アーカイブ・ファイルの形式を使用します。EJB モジュールには、以下のものが含まれています。

  • 1 つ以上のエンタープライズ Bean とそれらに関連した .class および .java ファイル。
  • エンタープライズ Bean の必要性次第では、グラフィックス・ファイルまたはその他のファイル。
  • デプロイメント記述子。デプロイメント記述子のファイル・タイプは、XML (Extensible Markup Language) です。 このファイルで、EJB モジュールの内容を宣言し、モジュール内の Bean の構造を定義して、実行時に Bean を使用する方法を記述します。
  • META-INF ディレクトリー内の MANIFEST.MF ファイル。 マニフェスト・ファイルには、クラスパス・エントリーと、 J2EE エンタープライズ・アプリケーション 内の他の JAR ファイルまたは EJB モジュールへの参照が収められます。これはモジュールの外部依存関係を定義します。
  • ターゲット・ランタイム・コンテナーが WebSphere® Application Server である場合の標準デプロイメント記述子に対する IBM® 拡張。
注: EJB モジュールの EJB クライアント JAR ファイルの作成を選択した場合、エンタープライズ Bean のクライアント・インターフェース・クラスは EJB JAR ファイルには含まれませんが、 EJB クライアント JAR ファイルに含まれます。
EJB プロジェクト

EJB プロジェクトは専門化された Java プロジェクトです。Java プロジェクトと同様に、EJB プロジェクトではプロジェクトのソース・ファイルおよび出力ファイルを含めるためのソース・フォルダーを 1 つ以上作成する必要があります。デフォルトでは、ソース・フォルダー名は ejbModule となりますが、プロジェクトまたは新規ソース・フォルダーの作成時に名前を変更できます。 フォルダーの内容は、プロジェクトの公開またはデプロイ時に集約されます。

ワークベンチでは、ユーザーがプロジェクトのエンタープライズ・アプリケーション用のリソースの作成および保守を行います。EJB プロジェクトは、エンタープライズ Bean をユーザーが編 成できるようにする論理モジュールです。 「プロジェクト・エクスプローラー」ビューでは、EJB プロジェクト は EJB モジュールとして表示されます。

ワークベンチは、EJB 1.1、EJB 2.0、および EJB 2.1 プロジェクトをサポートします。 収容 EAR プロジェクトの J2EE 仕様レベルは、EJB 2.0 プロジェクトの場合は J2EE 1.3 以上に設定し、EJB 2.1 プロジェクトの場合は J2EE 1.4 に設定する必要があります。 EJB 1.1 プロジェクトで作成できるのは、EJB 1.1 Bean のみです。

注: EJB モジュールの EJB クライアント JAR ファイルの 作成を選択した場合、エンタープライズ Bean の クライアント・インターフェース・クラス は、EJB クライアント JAR プロジェクトのそれぞれに、 個別に組み込まれます。
EJB クライアント・プロジェクト

EJB ツールは、 EJB モジュールの EJB クライアント JAR プロジェクトの作成をサポートします。EJB クライアント JAR プロジェクトには、クライアント・プログラムが、EJB プロジェクト内に含まれているエンタープライズ Bean のクライアント・ビューを使用するのに必要なインターフェース・クラスがすべて含まれます。EJB クライアント・プロジェクトが、 プロジェクト・ユーティリティー JAR ファイルとして、EJB プロジェクトが属するそれぞれのモジュールに追加されます。

デフォルトでは、ウィザードを使用して EJB プロジェクトを作成すると、EJB クライアント JAR プロジェクトも作成されます。 ただし、ウィザードでこのオプションをクリアすることもできます。

ヒント: モジュールとして EJB プロジェクトを含まない他のエンタープライズ・アプリケーションに、 EJB クライアント・プロジェクトを追加することもできます。これにより、EJB アプリケーションをエクスポートするときに、EJB クライアント JAR ファイルがエクスポートされ、 かつ EAR ファイルとパッケージ化されることが保証されます。
エンタープライズ Bean

エンタープライズ Bean は、他のリソースと結合されて、分散クライアント/サーバー・アプリケーションを作成することのできる Java コンポーネントです。

エンタープライズ Bean には、エンティティー Bean、セッション Bean、およびメッセージ駆動型 Bean の 3 つのタイプがあります。一般的には、すべてのタイプの Bean が 1 つのエンタープライズ・アプリケーション内で一緒 に使用されます。

エンティティー Bean
エンティティー Bean は永続データを保管します。コンテナー管理パーシスタンス (CMP) を持つエンティティー Bean には、データベース接続が必須で す。Bean 管理パーシスタンスを持つエンティティー Bean は、Bean のコードで定義された方法がどんなものであっても、その方法で永 続データを管理します。 これには、例えば、データベースまたは XML ファイルへの書き込みも組み込まれています。
セッション Bean
セッション Bean は、エンティティー Bean へのアクセスによって (必要に応じて) 間接的にデータベースにアクセスできるが、それは必須 ではない。セッション Bean はリソース参照を使用して、データベース (および他のリソース) に直接アクセスすることもできます。
メッセージ駆動型 Bean
メッセージ駆動型 Bean は、JMS メッセージング・システムにおいてメッセージ・コンシューマーとして働く特殊なエンタープラ イズ Bean です。標準的な JMS メッセージ・コンシューマーと同じように、メッセージ駆動型 Bean は、メッセージの内容に基づいたビジ ネス・ロジックを受信し実行します。メッセージ駆動型 Bean インスタンスの動的な作成および割り振りは、いくつかの点でステートレス・セッション・ エンタープライズ Bean の振る舞いをまねています。 しかし、メッセージ駆動型 Bean は、次のいくつかの点でステートレス・セッション・エンタープライズ Bean (およびその他の型のエンタープライズ Bean) とは異なっています。
  • メッセージ駆動型 Bean は、直列化されたメソッド呼び出しのシーケンスを処理するのではなく、複数の JMS メッセージを非同期 的に処理します。
  • メッセージ駆動型 Bean は、ホーム・インターフェースやリモート・インターフェースをもっていないため、内部クライアントや 外部クライアントからは直接アクセスすることができません。

データ・アクセスを必要とする Bean は、データ・ソース、すなわちデータベース接続のプールを定義している管理リソースを使用します。

デプロイメント記述子

デプロイメント記述子には、ランタイム環境がアプリケーション用に使用する構成データが含まれています。 デプロイメント記述子には、以下についての情報を組み込むことができます。

  • アプリケーションの構造および内容 (例えば、エンタープライズ Bean)。
  • 内部および外部の依存関係への参照。例えば、EJB モジュールのエンタープライズ Bean は、同じモジュール内でバンドルされていない別のエンター プライズ Bean を必要とする場合があります。
  • URL または JDBC データ・ソースなどの、リソース・ファクトリー・オブジェクトへの参照。
  • アプリケーションに対して必要なアクセス制御を実装する際に、コンテナーが使用するセキュリティー役割。
  • コンテナーがアプリケーションのトランザクションを管理する方法 (および管理するかどうか) についてのトランザクション情報。

デプロイメント記述子は、アプリケーションのファイルと一緒に Java アーカイブ・ファイルにパッケージされた XML ファイルです。EJB デプロイメント記述子は、ejb-jar.xml と呼ばれ、EJB プロジェクトの META-INF フォルダーに格納されます。 1 つの J2EE アプリケーションには、1 つのアプリケーション・レベルのデプロイメント記述子ファイルが含まれており、 これがアプリケーション全体を支配します。また、いくつかのコンポーネント・レベルのデプロイメント記述子も、 アプリケーションのモジュールごとに 1 つずつ含まれています。

標準のデプロイメント記述子に加えて、 ワークベンチには WebSphere Application Server のバインディング および拡張機能についての情報も組み込まれています。 バインディング文書および拡張機能文書は、IBM 独自のものです。 バインディング記述子および拡張記述子のどちらも XMI ファイル、 すなわち ibm-ejb-jar-bnd.xmi および ibm-ejb-jar-ext.xmi にそれぞれ保管されています。 バインディング情報は、外部の依存関係あるいはリソースの論理名を、実際の JNDI 名にマップします。 例えば、コンテナーはバインディング情報を使用して、インストールの際にリモート Bean を位置指定します。 拡張機能は、標準記述子に追加されます。拡張機能によって、古い (レガシー) システムが WebSphere Application Server 環境で機能できるようになります。また、この拡張機能は、ベンダー固有のアプリケーション振る舞い、現行仕様では未定義であるアプリケーション振る舞い、または将来 の仕様に組み込まれると予想されるアプリケーション振る舞いを指定する場合にも使用されます。

マッピング文書

マッピング・エディターを使用すれば、エンタープライズ Bean をデータベースにマッピングできます。 map.mapxmi ファイルには、このマッピング情報が収められます。


フィードバック