課題 1.1: テクノロジーの概要

Enterprise Bean は、 JavaTM クラスと Enterprise JavaBeansTM (EJB) 仕様を実装するインターフェースのセットです。 EJB 仕様は、Java 2 Platform、Enterprise Edition (J2EE) の一部です。 J2EE は、Java 2 Standardized Platform,Standard Edition (J2SE) の拡張機能である標準化された Java テクノロジーのセットです。 以下は、J2EE が含む幾つかのテクノロジーです。

J2EE 仕様を使用して作成されるアプリケーションは、IBMR の WebSphereR Application Server のような J2EE サポートを提供するサーバーへ簡単にデプロイすることができます。

EJB 仕様の最新バージョンは 2.1 です。 このワークベンチは、EJB 仕様の 1.1、2.0、および 2.1 を含む複数のバージョンをサポートします。 ワークベンチには異なる仕様レベルの参照が含まれています。 例えば、新規のコンテナー管理 (CMP) Entity Bean を作成する場合に、 EJB バージョン 1.1 または 2.0/2.1 にそれぞれ対応する CMP バージョン 1.x または 2.x を選択できます。

J2EE および EJB テクノロジーについて詳しくは、以下の Web サイトを参考にしてください。

これらのテクノロジーの使用に関する情報は、インフォメーション・センターの以下のトピックにも記載されています。

Enterprise JavaBeans

EJB 仕様で以下の項目を定義します。

エンタープライズ・アプリケーションは、(例えば WebSphere Application Server で提供される) EJB サーバー (エンタープライズ Java サーバーとも呼ばれる) にインストールして実行することができます。 このサーバーのタスクは、Enterprise Bean が稼動する EJB コンテナー を提供することです。 EJB サーバーとコンテナーは連動して、以下のサービスを提供します。

クライアント・アプリケーションは、Enterprise Bean を直接アクセスしません。 代わりに、クライアントが使用できる Enterprise Bean のメソッドをリストするインターフェースが提供されます。 このコンテナーにより、インターフェースの実装が Enterprise Bean に提供されます。

EJB コンテナー

Enterprise Bean のタイプ

Enterprise Bean には、Session BeanEntity Bean、 および メッセージ駆動型 Bean の 3 タイプがあります。 標準的な EJB アプリケーションは、幾つかの Entity Bean と、 Session Bean またはメッセージ駆動型 Bean で構成されます。

Entity Bean は、リレーショナル・データベース・テーブルの表示およびテーブルとの対話に使用されます。 通常、Entity Bean は Bean のフィールドに対応するテーブルの列と共に、データベース・テーブルの行を表示します。 データ・パーシスタンス は、データベースまたは別のフォーマットで永続的に保管されたデータを参照します。 EJB コンテナーは、Entity Bean のパーシスタンス (コンテナー管理パーシスタンス (CMP)) を処理できます。 あるいは、Entity Bean が自身のパーシスタンス (Bean 管理パーシスタンス (BMP)) を処理することもできます。

Entity Bean との対話には、Session Bean が使用されます。 Session Bean は、通常はクライアント・アプリケーションにプロセスまたはワークフロー全体を提供します。 Session Bean は、ステートレス (データが保管されていない) でも、 ステートフル (データが保管されている) でも構いません。 通常、アプリケーション・クライアントは、Entity Bean と連動する Session Bean と対話します。

メッセージ駆動型 Bean は、Entity Bean にアクセスしたいアプリケーションに、通信手段を提供します。 メッセージ駆動型 Bean は、Session Bean と同じように使用できます。 基本的な違いは、その呼び出し方法にあります。 Session Bean (および Entity Bean) は同期をとって呼び出されますが、メッセージ駆動型 Bean は非同期的に呼び出されます。 Session Bean の同期呼び出しとは、Session Bean を直接呼び出すことです。 メッセージ駆動型 Bean への非同期呼び出しとは、メッセージ駆動型 Bean が聴取しているメッセージを送信することです。 Java Messaging Service (JMS) はメッセージ駆動型 Bean の基本通信手段です。

Enterprise Bean タイプについての詳細は、 EJB アーキテクチャー にあるインフォメーション・センターをご覧ください。

Enterprise Bean の構造

Enterprise Bean には、以下のクラスとインターフェースが組み込まれています。

ローカルおよびリモート・コンポーネント・インターフェース

ローカルおよびリモート・コンポーネント・インターフェースは、 Enterprise Bean をアクセスするクライアント・アプリケーションによって使用されます。 これらのインターフェースは、Enterprise Bean 内の使用可能なビジネス・ロジック・メソッドをリストします。 Enterprise Bean は、リモート・インターフェースもしくはローカル・インターフェース、 あるいはその両方をもつことができます。

Enterprise Bean へのアクセスでは、リモート・インターフェースではなくローカル・インターフェースを使用すると、 パフォーマンスはより良好です。 パフォーマンスが向上する理由としては、以下の項目を挙げることができます。

パフォーマンスを改善するために、ローカル・インターフェースが EJB 2.0 仕様に追加されました。 お勧めする設計方法はセッション・ファサード で Entity Bean をラップすることです。 この方法をとることで、クライアントは Session Bean にリモート・アクセスすることができ、 Session Bean は Entity Bean にローカル・アクセスします。 この方法により、クライアントからのリモート・アクセスが可能となり、その一方でパフォーマンスも向上します。

ローカルおよびリモート・ホーム・インターフェース

Enterprise Bean をアクセスするために、 Entity Bean のホーム・インターフェースがクライアント・アプリケーションでも使用されますが、 このインターフェースで使用可能なメソッドは、EJB コンテナーにある Entity Bean の検索、作成、および除去のメソッドを含む、 ライフ・サイクル・メソッドです。さらに、ホーム・インターフェースはリモートまたはローカルのどちらでも構いません。

Enterprise Bean クラス

Enterprise Bean クラスには、エンタープライズ・アプリケーションのビジネス・ロジックが含まれています。 インターフェースにおけるメソッドは、 Bean クラスに対応するメソッドをクライアント・アプリケーションに公開します。

基本キー・クラス

基本キー は、データベース内の特定エントリーに関連した固有 ID です。 従業員のデータベースを例にしてみると、それぞれの従業員には固有の従業員 ID が設定されています。 基本キー・クラスの各インスタンスは、固有 ID のいずれか 1 つ、 例えば、データベースの特定従業員のレコードに対応しています。

エンタープライズ・アプリケーションの構造

J2EE 仕様では、エンタープライズ・アプリケーションのファイルおよびディレクトリー構造が定義されています。 加えて、ファイルは、特定の目的に応じてファイル・タイプが .war、.ear、および .jar のファイルに特定されます。

EAR ファイル (エンタープライズ・アーカイブ) は、エンタープライズ・アプリケーションのパッケージ・タイプです。 このファイルには、WAR ファイルと JAR ファイル、 およびそのエンタープライズ・アプリケーションに関するメタデータを含むアプリケーション・デプロイメント記述子 (application.xml) が入っています。

WAR ファイル (Web アーカイブ) には、Web アプリケーション用のファイル (イメージ、HTML ファイル、サーブレットおよび JSP) が入っています。 この他に、メタデータが Web デプロイメント記述子 (web.xml) の形式で含まれています。

Jar ファイル (Java アーカイブ) には Java クラスが含まれています。 EJB アプリケーションでは、JAR ファイルに EJB モジュールもしくは EJB クライアント・アプリケーションが含まれる場合もあります。

EJB モジュールには、Enterprise Bean 自体と、EJB デプロイメント記述子 (ejb-jar.xml) を含むメタデータが入っています。 WebSphere Application Server にデプロイされる EJB モジュールには、 IBM 固有の拡張子とバインディング情報を記述するメタデータが含まれる場合もあります。 EJB クライアント・アプリケーションには、EJB へのアクセスに使用される Java プログラムと、 クライアント・デプロイメント記述子 (application-client.xml) が含まれます。

EJB 開発のためのワークベンチ・プロジェクトとファイル・タイプ
ファイル・タイプ 意味 アプリケーション・タイプ デプロイメント記述子
.ear エンタープライズ・アーカイブ エンタープライズ application.xml
.war Web アーカイブ Web web.xml
.jar Java アーカイブ EJB
EJB クライアント
ejb-jar.xml
application-client.xml

ビジュアル・エディターによる UML の使用

ビジュアル・エディターは統一モデリング言語 (UML) を使用して、EJB コンポーネントを含む、 Java のクラスとインターフェースの構造と設計をビジュアル表示します。 UML は、ワークフローの他に、クラス間の関係を表すメカニズムを提供します。 ワークベンチで UML ツールを使用して、Java クラスとインターフェース、または別の EJB コンポーネントを視覚的に編集できます。 クラス・ダイアグラムから EJB コンポーネントの作成を直接開始できます。 基礎のコードが生成され、次に視覚的にクラス・ダイアグラムに提供され、編集の準備が完了します。 UML クラス・ダイアグラムに変更が加えられると、その結果、基礎のコードも変更されます。 基礎のコードの変更は、UML クラス・ダイアグラムに反映されます。

ワークベンチでは、UML クラス・ダイアグラムは .dnx 拡張子が付いたファイルで保管されます。

UML 2 は、 Object Management Group (OMG) によって規定された標準仕様です。 OMG Web サイトにも、 Introduction to UML が提供されています。

インフォメーション・センターには、以下のトピックに関する詳しい情報が記載されています。

これで、『課題 1.2: ワークスペースを準備する』に進む準備ができました。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.