トピック

概論To top of page

このガイドラインでは、EJB の識別を中心に説明します。EJB に関する補足ガイダンスは、『ガイドライン: EJB』で提供されます。

EJB の識別To top of page

一般に EJB は、トランザクション、セキュリティー、リモート・アクセスのサポートを必要とするか、共有データを操作 (アカウント情報の更新など) する、サーバー側のビジネス・オブジェクトの実装に使用されます。

EJB は、多くの場合、設計クラスと分析クラスを識別する際に識別されます。セッション Bean は制御論理の提供を意図しているので、コントロール・クラスが適しています。エンティティー Bean は永続データを取り扱うので、エンティティー・クラスが適しています。

次に示すさらに具体的なガイドラインも参照してください。

セッション Bean、メッセージ駆動型 Bean、エンティティー Bean の比較To top of page

この表では、前述のいくつかのガイドラインを要約し、それぞれの EJB によるロールと、アクセス方法、状態の性質を示します。

  セッション Bean メッセージ駆動型 Bean エンティティー Bean

役割

クライアント固有のビジネス論理の実装

メッセージ・プロセス固有のビジネス論理の実装

ビジネス・エンティティー固有のビジネス論理の実装

アクセス・メソッド

ローカルまたはリモート・インターフェースによる単一のクライアント

JMS MessageListner インターフェースによるコンテナー。クライアントから直接アクセスできません。

ローカルまたはリモート・インターフェースによる複数の同時クライアント

状態

クライアントとコンテナー間の一時的な会話型状態が保持できます。

ステートレスですが、インスタンスでリソースの操作を保持できます。

永続状態がデータベースに保存されます。


EJB のモデリングTo top of page

EJB はステレオタイプ・クラスのセットとしてモデリングされます。特に、Bean クラスと EJB インターフェース・クラスが挙げられます。EJB インターフェースは、UML インターフェースではなく、ステレオタイプ・クラスとしてモデリングされます。理由については、『ガイドライン: J2EE アプリケーションのインターフェース』で説明しています。

Bean クラスと EJB インターフェースとの関係は、実現関係ではなく、Bean クラスからインターフェースへの依存としてモデリングされます。 一般に、Java 実装構成要素は、インターフェースとクラスとの間の実現として表現されます。しかし、EJB クラスは、インターフェース・クラスを実装しないため、依存のほうがより適切です。次のダイアグラムに例を示します。この例について詳しくは、『ガイドライン: J2EE アプリケーションのサブシステムの設計』を参照してください。

前後の本文を説明するダイアグラム

EJB と ヘルパー・クラスの例

次は、EJB のモデリングに適用可能な UML ステレオタイプです。

ステレオタイプ 適用対象 定義

<<EJBSessionHomeInterface>>
<<EJBEntityHomeInterface>>

クラス それぞれ、セッションまたはエンティティー・ホーム・インターフェースを指します。
<<EJBRemoteInterface>> クラス EJB リモート・インターフェースを示します。
<<EJBLocalInterface>> クラス EJB ローカル・インターフェースを示します。
     
<<EJBSession>> クラス EJB セッション Bean クラスを示します。
<<EJBEntity>> クラス EJB エンティティー Bean クラスを示します。
<<EJBMessageDriven>> クラス クラスがメッセージ駆動型 Bean であることを示します。

EJB は一般に、密接に関係したクラスや EJB と共にサブシステムでグループ化されます。これによって、設計者は、実装から独立した EJB の仕様 ビューを提供でき、ほかの設計の要素をグループ化することによって、より高いレベルの抽象化を提供できます。詳しくは、『ガイドライン: J2EE アプリケーションのサブシステムの設計』を参照してください。

EJB 構成要素を表現するステレオタイプの完全なリストについて、UML/EJB マッピング仕様 (参考資料 RSC01) も参照してください。

メッセージ駆動型 Bean のモデリングTo top of page

メッセージ駆動型 Bean がサブスクライブしたトピックまたはキューへの依存をモデリングしてください。J2EE アプリケーションの並行要素のモデリングについて詳しくは、『ガイドライン: J2EE アプリケーションの実行時アーキテクチャーの記述』を参照してください。

EJB のプロパティーのモデリングTo top of page

コンテナー管理による持続性、トランザクション、承認などのメカニズムの使用は、Bean クラスの追加のプロパティーとしてモデリングできるか、または Bean クラスと関連したテキスト記述に単に含めることができます。

シーケンス図を使用して、これらのメカニズムを使用するシナリオを検討してください。

EJB オブジェクト相互作用のモデリングTo top of page

相互作用図 (コラボレーション図とシーケンス図) を使用して、EJB の動的な振る舞いと EJB を持つ非 EJB (Web コンポーネントや外部のクライアント・アプリケーションなど) の相互作用を示すことができます。

これらの相互作用図は、基本的に『作業: ユース・ケース設計』で説明しているものと同じです。相互作用は、EJB インターフェースとのみ相互作用を行うブラック・ボックス として Bean で表されます。相互作用は、EJB インターフェースと Bean 実装クラスとの相互作用を表すことによって、Bean の実装も示します。コンテナーでの相互作用の介在は、通常示されないことに注意してください。

メッセージ駆動型 Bean は、ほかのソースから非同期に到着するメッセージを使用します。プロデューサーからコンシューマーへの非同期メッセージ・フローを直接表すこともでき、また、トピックとキューをモデリングすることによって関係をより厳密にモデリングできます。

EJB インターフェースでのクライアント・クラスの相互作用を示すシーケンス図の例を図 2 に示します。

前後の本文を説明するダイアグラム

図 2: EJB インターフェースでのクライアント・クラスの相互作用

図 3 は、図 2 に似たシーケンス図ですが、Bean 実装での相互作用を示します。

前後の本文を説明するダイアグラム

図 3: EJB 実装での相互作用の例

代替のモデリングTo top of page

Bean 実装クラスと EJB インターフェースのグループとしての EJB は、サブシステムやコンポーネントとしてもモデリングできます。

EJB をクラスとしてモデリングすることを選択し、操作を「ローカル」、「リモート」、「ホーム」インターフェースに属するかどうかを示すようにステレオタイプ化する設計者もいます。こうすると、ほかの記法よりも簡潔に表現できます。



Rational Unified Process   2003.06.15