EJB アーキテクチャー

このトピックでは、Sun Microsystems 社 の Enterprise JavaBeans™ (EJB) アーキテクチャー仕様で定義されている分散コンポーネント・アーキテクチャーのハイレベルな概要を説明します。

Enterprise JavaBeans の詳細な仕様とテクノロジーの説明は、Web サイト java.sun.com でご覧になれます。

エンタープライズ Bean は、アプリケーション開発者にいくつかの利点を提供します。

エンタープライズ Bean
エンタープライズ Bean は、分散およびトランザクション指向エンタープライズ・アプリケーションの非ビジュアル・コンポーネントです。 通常、エンタープライズ Bean は、EJB コンテナーにデプロイされ、EJB サーバー上で実行されます。 これらは、デプロイメント記述子を変更することによってカスタマイズ可能であり、 新規アプリケーションを作成するために他の Bean とアセンブルすることができます。 エンタープライズ Bean には、セッション Beanエンティティー Bean、および メッセージ駆動型 Bean の 3 つのタイプがあります。
  • セッション Bean: セッション Bean は、非永続のエンタープライズ Bean です。これらはステートフルまたはステートレスのいずれかです。ステートフル・セッション Bean は、単一クライアントに代わって動作し、 複数のメソッド呼び出しとトランザクションにわたって、 クライアント固有のセッション情報 (会話型状態と呼ばれます) を保守します。 これは、単一クライアント/サーバー・セッションの期間中存在します。ステートレス・セッション Bean は、これに比べ、会話型状態を保守することはありません。 ステートレス・セッション Bean は、そのコンテナーによってプールされ、複数のクライアントからの複数の要求を処理します。
  • エンティティー Bean: エンティティー Bean は、永続的データを含み、 さまざまな永続的データ・ストアに保管が可能なエンタープライズ Bean です。各エンティティー Bean は独自の ID を持っています。自己のパーシスタンスを管理する エンティティー Bean は、Bean 管理パーシスタンス (BMP) エンティティー Bean と呼ばれます。 自己のパーシスタンスを EJB コンテナーに代行させるエンティティー Bean は、コンテナー管理パーシスタンス (CMP) エンティティー Bean と呼ばれます。
  • メッセージ駆動型 Bean: メッセージ駆動型 Bean は、JMS メッセージを受信して処理する エンタープライズ Bean です。セッション Bean やエ ンティティー Bean と異なり、メッセージ駆動型 Bean にはインターフェースがありません。 これらの Bean にはメッセージングでのみアクセスできますが、会話型状態を保守することはありません。メッセージ駆動型 Bean は、キューとリスナーとの非同期通信を可能にし、メ ッセージ処理とビジネス・ロジックとの分離を実現します。
リモート・クライアント・ビュー
リモート・クライアント・ビュー 仕様は、EJB 1.1 から使用可能になりました。エンタープライズ Bean のリモート・クライアント・ビューは、ロケーション に依存しません。 Bean インスタンスと同じ JVM で実行中のクライアントは、同一また は別のマシン上の別の JVM で実行中のクライアントと同じ API を 使用して Bean にアクセスします。
  • リモート・インターフェース: リモート・インターフェース は、クライアントがエンタープライズ Bean に対して呼び出すことのできるリモート・ビジネス・メソッドを指定します。
  • リモート・ホーム・インターフェース: リモート・ホーム・インターフェース は、リモート・クライアントで使用されるメソッドを指定して、エンタープライズ Bean クラスのインスタンスの位置決め、作成、除去を行います。
ローカル・クライアント・ビュー
ローカル・クライアント・ビュー 仕様は、EJB 2.0 以降で使用可能です。 リモート・クライアント・ビューとは違って、Bean のローカル・クライア ント・ビューは、ロケーションに依存します。 ローカル・クライアント・ビューがエンタープライズ Bean にアクセスするには、 ローカル・クライアントのほかに、同じ JVM にローカル・クライアント・ビュー を配置するエンタープライズ Bean の両方が必要です。 このためローカル・クライアント・ビューには、リモート・クライアント・ ビューにはあるロケーション透過性がありません。ローカル・インターフェースおよびローカル・ホーム・インターフェースは、ローカル・クライアントであるエンタープライズ Bean からのライト・ウェイト・アクセスをサポートしています。セッション Bean およびエンティティー Bean は、それらのクライアントと緊密に結合し ており、リモート・メソッド呼び出し と通常関連付けられたオーバーヘッドのないアクセスを許可します。
  • ローカル・インターフェース: ローカル・インターフェース は、リモート・インターフェースのライト・ウェイト・バージョンであり、ローカル・クライアントのためのものです。 ローカル・インターフェースは、ローカル・クライアントに呼び出されるビジネ ス・ロジック・メソッドを含みます。
  • ローカル・ホーム・インターフェース: ローカル・ホーム・インターフェース は、ローカル・クライアントで使用されるメソッドを指定して、エンタープライズ Bean クラスのインスタンスの位置決め、作成、除去を行います。
Web サービス・クライアント・ビュー
EJB 2.1 仕様では、EJB アーキテクチャーが Web サービス・サポートを採用しました。 セッション Bean のクライアントに、Web サービス・クライアントを使用できます。 Web サービス・クライアントは、ステートレス・セッション Bean の Web サービス・クライアント・ビューを利用できます。 このビューには、対応するサービス・エンドポイント・インターフェースが備わっています。
サービス・エンドポイント・インターフェース
ステートレス・セッション Bean の サービス・エンドポイント・インターフェース は、セッション Bean の機能を Web サービス・エンドポイントとして公開します。 Web サービスの Web サービス記述言語 (WSDL) 文書には、メッセージに対して作動するエンドポイントのセットとして、Web サービスが記述されています。 WSDL 文書に、ステートレス・セッション Bean のサービス・エンドポイント・インターフェースをエンドポイントの 1 つとして含めることができます。 既存のステートレス・セッション Bean を、Web サービス・クライアント・ビューが含まれるように変更したり、あるいは既存の WSDL からサービス・エンドポイント・インターフェースをマップして正しいインターフェースが提供されるようにすることができます。

Web サービス・クライアント・ビューはロケーションに依存しないので、リモート呼び出しによってアクセスすることが可能です。

EJB クライアント JAR ファイル
EJB クライアント JAR ファイルは、オプションの JAR ファイルです。 このファイルには、クライアント・プログラムが EJB JAR ファイル内に含まれる エンタープライズ Bean のクライアント・ビューを使用するのに必要なクライアント・インターフェースを含めることができます。EJB モジュールの EJB クライアント JAR ファイルを作成しないと決定する場合、 すべてのクライアント・インターフェース・クラスは EJB JAR ファイルに含まれます。デフォルトでは、ワークベンチはそれぞれの EJB プロジェクトごとに EJB クライアント JAR プロジェクトを作成します。
EJB コンテナー
EJB コンテナー は、1 つ以上のエンタープライズ Bean を管理するランタイム環境です。EJB コンテナーは、エンタープライズ Bean オブジェクトのライフ・サイクルを管理し、分散トランザクションを調整し、オブジェクトのセキュリティーを実装します。各 EJB コンテナーは一般に EJB サーバーによって提供され、EJB コンテナーには、 EJB サーバーで実行されるエンタープライズ Bean のセットが含まれます。
デプロイメント記述子
デプロイメント記述子 は、エンタープライズ Bean と共に EJB JAR ファイルまたは EAR ファイルにパッケージされた XML ファイルです。デプロイメント記述子には、エンタープライズ Bean の内容および構造が記述してあるメタデータや、EJB コンテナーのランタイム・トランザクションおよびセキュリティー情報が含まれています。
EJB サーバー
EJB サーバー は、 エンタープライズ Bean を使用するサーバー・アプリケーションの実行をサポートするためのランタイム環境を提供する、 ハイレベルなプロセスまたはアプリケーションです。EJB サーバーは、JNDI アクセス可能な命名サービスを提供し、 クライアント・アプリケーションへのリソースの割り振りを管理および調整し、 システム・リソースにアクセスし、トランザクション・サービスを提供します。EJB サーバーの機能は、例えば、データベースやアプリケーション・サーバーが提供することも できます。

関連概念
EJB アプリケーション
注釈ベース・プログラミングの概要
関連タスク
エンタープライズ Bean の開発
エンタープライズ Bean の作成

フィードバック