概要 : エンタープライズ JavaBean と EJB2 コントロール

エンタープライズ JavaBean (EJB) コントロールを使用しないで EJB の機能を利用するには、いくつかの準備作業が必要になります。JNDI レジストリ内で EJB をルックアップし、EJB のホーム インタフェースを取得し、EJB インスタンスを取得してから、EJB のリモート インタフェースまたはローカル インタフェースのメソッドを呼び出して処理を実行します。

EJB コントロールを使用すると、この準備作業がすべて不要になります。EJB コントロールを作成すると、Web サービス、カスタム コントロール、またはページ フローでコントロールを使用して EJB のビジネス メソッドに直接アクセスできます。EJB コントロールは、JNDI ルックアップ、インタフェースの検索、EJB インスタンスの作成と管理など、EJB との通信を管理します。

つまり、EJB コントロールは、デプロイされた既存の EJB をアプリケーション内で簡単に使用できる代替方法を提供します。EJB コントロールでは、3 種類の EJB のうちの 2 種類 (セッション Bean とエンティティ Bean) との対話がサポートされています。メッセージ駆動型 EJB との直接の通信は、EJB コントロールではサポートされていません。

注意 :その代わり、メッセージのリクエストは JMS コントロールを使用してメッセージ駆動型 Bean に間接的に送信できます。ただし、EJB コントロールとは異なり、JMS コントロールは既存のメッセージ駆動型 Bean の指定および参照には使用されません。詳細については、「JMS コントロール」を参照してください。

セッション Bean とエンティティ Bean の簡単な説明を、以下に示します。メッセージ駆動型 Bean、J2EE、および EJB について詳しく学びたい方は、J2EE プログラミングに関する書籍を参照してください。

セッション EJB

セッション EJB は、アプリケーション サーバ上のクライアントに対してビジネス タスクを実行するのに使用されます。ステートフル セッション Bean は、クライアントが参加している場合、対話状態を維持します。つまり、対話状態を使用することで、メソッド呼び出し間のデータを追跡し、Bean は確実に正しいクライアントに応答できます。ステートレス セッション Bean は対話状態を使用しないため、クライアントとの対話はメソッド呼び出しの期間しか持続しません。ステートレス セッション EJB に永続性はありません。したがって、クライアントが終了すると、クライアントが使用していたセッション EJB は終了したように見え、クライアントとの関連付けが解除されます。

エンティティ EJB

エンティティ EJB は、永続ストレージ メカニズム内のビジネス オブジェクトを表します。ビジネス オブジェクトの例としては、顧客、注文、製品などがあります。永続ストレージ メカニズムはリレーショナル データベースです。一般に、各エンティティ Bean はリレーショナル データベース内の基底のテーブルを持ち、Bean の各インスタンスはそのテーブル内の行に対応しています。セッション Bean とは異なり、エンティティ Bean は永続的です。共有アクセスを許可し、主キーを持ち、他のエンティティ Bean との関係に参加できます。

EJB インタフェース

EJB 2.0 では、ローカル ホーム インタフェース、ローカル ビジネス インタフェース (または単にローカル インタフェース)、リモート ホーム インタフェース、およびリモート ビジネス インタフェース (または単にリモート インタフェース) と呼ばれる、4 種類のインタフェースをエクスポーズしています。クライアント アプリケーションは、リモート ホーム インタフェースを使用して、通信する EJB のインスタンスを取得できます。リモート ホーム インタフェースのメソッドは、EJB インスタンスを作成または検索するものに限定されます。クライアントは、EJB インスタンスを取得すると、EJB のリモート ビジネス インタフェースのメソッドを呼び出して処理を実行できます。ビジネス インタフェースは、EJB にカプセル化されたビジネス ロジックに直接アクセスします。同一の Workshop アプリケーション内で定義されている EJB 間の対話には、同一の Workshop アプリケーション内における EJB と Web サービス、カスタム コントロール、またはページ フロー間での対話と同様に、代わりにローカル インタフェースを使用することもできます。この方がリモート インタフェースよりもパフォーマンス上では利点があります。つまり、ローカルのホームおよびビジネス インタフェースは、同一の Workshop アプリケーション内で他の Bean、EJB コントロール、Web サービス、およびページ フローによってアクセス可能なメソッドを定義し、リモートのホームおよびビジネス インタフェースは、他のアプリケーションによってアクセス可能なメソッドを定義します。

EJB を表す EJB コントロールを作成するには、ホーム インタフェースとビジネス インタフェースの名前を知っておく必要があります。通常、ホーム インタフェースの名前は com.mycompany.MyBeanNameHome または com.mycompany.MyBeanNameLocalHome という形式を取り、ビジネス インタフェースは com.mycompany.MyBeanName または com.mycompany.MyBeanNameLocal という形式を取ります。EJB コントロールでは、EJB のローカル インタフェースまたはリモート インタフェースが使用されます。EJB コントロールの作成方法については、「新しい EJB コントロールの作成」を参照してください。EJB コントロールがセッション EJB およびエンティティ EJB と対話する仕組みについては、「EJB コントロールの使用」を参照してください。

関連トピック

EJB プロジェクト入門

EJB2 コントロール

システム コントロールの使用

会話形式の Web サービスの設計


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。