ガイドライン:
|
セッション Bean | メッセージ駆動型 Bean | エンティティー Bean | |
---|---|---|---|
役割 |
クライアント固有のビジネス論理の実装 |
メッセージ・プロセス固有のビジネス論理の実装 |
ビジネス・エンティティー固有のビジネス論理の実装 |
アクセス・メソッド |
ローカルまたはリモート・インターフェースによる単一のクライアント |
JMS MessageListner インターフェースによるコンテナー。クライアントから直接アクセスできません。 |
ローカルまたはリモート・インターフェースによる複数の同時クライアント |
状態 |
クライアントとコンテナー間の一時的な会話型状態が保持できます。 |
ステートレスですが、インスタンスでリソースの操作を保持できます。 |
永続状態がデータベースに保存されます。 |
EJB はステレオタイプ・クラスのセットとしてモデリングされます。特に、Bean クラスと EJB インターフェース・クラスが挙げられます。EJB インターフェースは、UML インターフェースではなく、ステレオタイプ・クラスとしてモデリングされます。理由については、『ガイドライン: J2EE アプリケーションのインターフェース』で説明しています。
Bean クラスと EJB インターフェースとの関係は、実現関係ではなく、Bean クラスからインターフェースへの依存としてモデリングされます。 一般に、Java 実装構成要素は、インターフェースとクラスとの間の実現として表現されます。しかし、EJB クラスは、インターフェース・クラスを実装しないため、依存のほうがより適切です。次のダイアグラムに例を示します。この例について詳しくは、『ガイドライン: J2EE アプリケーションのサブシステムの設計』を参照してください。
EJB と ヘルパー・クラスの例
次は、EJB のモデリングに適用可能な UML ステレオタイプです。
ステレオタイプ | 適用対象 | 定義 |
---|---|---|
<<EJBSessionHomeInterface>> |
クラス | それぞれ、セッションまたはエンティティー・ホーム・インターフェースを指します。 |
<<EJBRemoteInterface>> | クラス | EJB リモート・インターフェースを示します。 |
<<EJBLocalInterface>> | クラス | EJB ローカル・インターフェースを示します。 |
<<EJBSession>> | クラス | EJB セッション Bean クラスを示します。 |
<<EJBEntity>> | クラス | EJB エンティティー Bean クラスを示します。 |
<<EJBMessageDriven>> | クラス | クラスがメッセージ駆動型 Bean であることを示します。 |
EJB は一般に、密接に関係したクラスや EJB と共にサブシステムでグループ化されます。これによって、設計者は、実装から独立した EJB の仕様 ビューを提供でき、ほかの設計の要素をグループ化することによって、より高いレベルの抽象化を提供できます。詳しくは、『ガイドライン: J2EE アプリケーションのサブシステムの設計』を参照してください。
EJB 構成要素を表現するステレオタイプの完全なリストについて、UML/EJB マッピング仕様 (参考資料 RSC01) も参照してください。
メッセージ駆動型 Bean がサブスクライブしたトピックまたはキューへの依存をモデリングしてください。J2EE アプリケーションの並行要素のモデリングについて詳しくは、『ガイドライン: J2EE アプリケーションの実行時アーキテクチャーの記述』を参照してください。
コンテナー管理による持続性、トランザクション、承認などのメカニズムの使用は、Bean クラスの追加のプロパティーとしてモデリングできるか、または Bean クラスと関連したテキスト記述に単に含めることができます。
シーケンス図を使用して、これらのメカニズムを使用するシナリオを検討してください。
相互作用図 (コラボレーション図とシーケンス図) を使用して、EJB の動的な振る舞いと EJB を持つ非 EJB (Web コンポーネントや外部のクライアント・アプリケーションなど) の相互作用を示すことができます。
これらの相互作用図は、基本的に『作業: ユース・ケース設計』で説明しているものと同じです。相互作用は、EJB インターフェースとのみ相互作用を行うブラック・ボックス として Bean で表されます。相互作用は、EJB インターフェースと Bean 実装クラスとの相互作用を表すことによって、Bean の実装も示します。コンテナーでの相互作用の介在は、通常示されないことに注意してください。
メッセージ駆動型 Bean は、ほかのソースから非同期に到着するメッセージを使用します。プロデューサーからコンシューマーへの非同期メッセージ・フローを直接表すこともでき、また、トピックとキューをモデリングすることによって関係をより厳密にモデリングできます。
EJB インターフェースでのクライアント・クラスの相互作用を示すシーケンス図の例を図 2 に示します。
図 2: EJB インターフェースでのクライアント・クラスの相互作用
図 3 は、図 2 に似たシーケンス図ですが、Bean 実装での相互作用を示します。
図 3: EJB 実装での相互作用の例
Bean 実装クラスと EJB インターフェースのグループとしての EJB は、サブシステムやコンポーネントとしてもモデリングできます。
EJB をクラスとしてモデリングすることを選択し、操作を「ローカル」、「リモート」、「ホーム」インターフェースに属するかどうかを示すようにステレオタイプ化する設計者もいます。こうすると、ほかの記法よりも簡潔に表現できます。
Rational Unified Process
|