シナリオの中には,単一の団体が複数の役割を実行するものがある。例えば,コンテナ提供者及びEJBサーバ提供者は, 同じベンダでもよい。一人のプログラマが,エンタプライズBean提供者の役割及びアプリケーション組立て者の役割を兼ねてもよい。
次に,EJBの六つの役割を定義する。
エンタプライズBean提供者は,システムレベルのプログラミングには精通していない。そのために,エンタプライズBean提供者は, トランザクション,並行処理,セキュリティ,分散及びその他のサービスを,エンタプライズBeansにプログラムすることはない。 エンタプライズBean提供者は,これらのサービスをEJBコンテナ提供者に依存する。
エンタプライズBean提供者の出力は,エンタプライズBeanを含むejb-jarファイルとする。各Beanは,Javaプログラム言語, 遠隔インタフェース及びホームインタフェース,配置記述子並びに環境特性のためのクラスを含む。エンタプライズBeansは, 適合EJBコンテナにインストールできるために,エンタプライズJavaBeans部品契約に従わなければならない。
アプリケーション組立て者の出力は,新しいエンタプライズBeans又は(サーブレット,アプレット,スクリプトなどの) エンタプライズBeansではないアプリケーションとする。組立て者は,アプリケーションに対応するGUIを作成してもよい。
アプリケーション組立て作業は,操作環境の中にエンタプライズBeansを配置する前又は配置した後に実行できる。
例えば,配置者は,エンタプライズBeansが仮定したセキュリティ上の役割を, エンタプライズBeansを使用する組織が要求するセキュリティの役割に対応づける責任をもつ。配置者は, エンタプライズBeanの配置記述子の属性設定を読み取り,エンタプライズBeansの環境特性の値を修正する。
場合によって,認定配置者は,エンタプライズBeansの業務論理をその配置に応じてカスタム化してよい。 この配置者は,通常は,コンテナツールを使用して,エンタプライズBeanの業務メソッドをラップする 比較的単純なアプリケーションコードを作成することになる。
EJBサーバ提供者は,典型的には,EJBセションコンテナ(4.2.2を参照すること。)契約を実装したコンテナを提供する。 さらに,EJBサーバ上でサポートされる一つ以上のデータソースに対応する実体コンテナ(4.2.2を参照すること。)を提供してもよい。
EJBサーバ提供者は,低水準インタフェースを公開し,第3者がコンテナを開発可能とする。このインタフェースは,現時点では, エンタプライズJavaBeansで規定せず,ベンダ固有とする。
エンタプライズJavaBeansの今後の版では,コンテナとEJBサーバとの間のインタフェースを標準化する可能性がある。
コンテナ管理された永続性を備えたエンタプライズ実体Beansでは,実体コンテナは,コンテナにインストールされた実体Beans の永続性に責任をもつ。コンテナ提供者のツールを使用して,エンタプライズBeanのインスタンス変数と, データベース又は既存のアプリケーションとの間でデータを移動するコードを生成する。コンテナ提供者は, 企業の既存のデータソースへの,又はパッケージ化されたアプリケーションシステムへのアクセスを提供する領域の専門家でもよい。
コンテナ提供者は,インストールされたエンタプライズBean部品の版管理方式をサポートする。例えば,コンテナ提供者は, 既存のクライアントを無効にせずに,又は既存のエンタプライズBeanオブジェクトを失わないで,Beanクラスを更新可能にする。
コンテナ提供者は,システム管理者が,コンテナ及び実行時にコンテナで動作するBeansを監視し管理するツールを提供する。
エンタプライズJavaBeansは,適合EJBコンテナのすべてがサポートする部品契約を定義する。エンタプライズJavaBeansでは, コンテナベンダが,この契約を拡張し特殊化したコンテナを開発できる。特殊化されたコンテナの例としては, アプリケーション領域固有の枠組みをサポートするコンテナ,EJB環境と既存のアプリケーションシステムとを橋渡しするコンテナ (このコンテナは,エンタプライズBeansとして既存のアプリケーションをモデル化できる。), データベースにおけるオブジェクトと関係との対応づけを実装するコンテナ,又は オブジェクト指向データベースシステム上に構築されるコンテナがある。
Wombat社は,複数ベンダからのコンテナ及びEJBサーバを使用する銀行に,エンタプライズBeansを販売する。 ある銀行は,Acme社からのコンテナを使用している。Acme社のコンテナ製品の一部であるAcme社のツールは, Wombat社を含めた提供者に依存しないので,エンタプライズBeansの配置を容易にする。配置の過程では, Acmeコンテナが内部的に使用する付加クラスを生成する。付加クラスのおかげで,Acmeコンテナは,EJB部品契約で定義されたとおりに, 実行時にエンタプライズBeanオブジェクトを管理できる。
AccountBeanエンタプライズBeans及びTellerBeanエンタプライズBeansは,それ自体では, 完全なアプリケーションではないので,銀行の経営情報システム部は,Acmeのツールを使用し,その他の(別のベンダからの) エンタプライズBeans及び既存の非EJBソフトウェアを用いて,AccountBean及びTellerBean というエンタプライズBeanを完全なアプリケーションに組み立てる。経営情報システム部は,EJB配置者及びアプリケーション組立て者の 二つの役割を兼ねる。