目次 | |

3. 役割及びシナリオ

3.1 役割

エンタプライズJavaBeans体系では,アプリケーション開発ワークフロー及びアプリケーション配置ワークフローにおいて, 六つの役割を定義する。各役割は,異なった団体で実行されてもよい。エンタプライズJavaBeansでは, 各役割の製品が他の役割の製品と確実に互換となる契約を指定する。

シナリオの中には,単一の団体が複数の役割を実行するものがある。例えば,コンテナ提供者及びEJBサーバ提供者は, 同じベンダでもよい。一人のプログラマが,エンタプライズBean提供者の役割及びアプリケーション組立て者の役割を兼ねてもよい。

次に,EJBの六つの役割を定義する。

3.1.1 エンタプライズBean提供者

エンタプライズBean提供者は,典型的にはアプリケーション領域の専門家とする。エンタプライズBean提供者は, エンタプライズBeanと呼ばれる再利用可能な部品を開発する。エンタプライズBeanは,業務タスクすなわち業務実体を実装する。

エンタプライズBean提供者は,システムレベルのプログラミングには精通していない。そのために,エンタプライズBean提供者は, トランザクション,並行処理,セキュリティ,分散及びその他のサービスを,エンタプライズBeansにプログラムすることはない。 エンタプライズBean提供者は,これらのサービスをEJBコンテナ提供者に依存する。

エンタプライズBean提供者の出力は,エンタプライズBeanを含むejb-jarファイルとする。各Beanは,Javaプログラム言語, 遠隔インタフェース及びホームインタフェース,配置記述子並びに環境特性のためのクラスを含む。エンタプライズBeansは, 適合EJBコンテナにインストールできるために,エンタプライズJavaBeans部品契約に従わなければならない。

3.1.2 アプリケーション組立て者

アプリケーション組立て者は,エンタプライズBeansを使用するアプリケーションを構成する領域専門家とする。 アプリケーション組立て者は,エンタプライズBeanのクライアントビュー契約に従って作業する。組立て者は, エンタプライズBeansの遠隔インタフェース及びホームインタフェースが提供する機能に精通していなければならないが, エンタプライズBeansの実装に関する知識を必要とはしない。

アプリケーション組立て者の出力は,新しいエンタプライズBeans又は(サーブレット,アプレット,スクリプトなどの) エンタプライズBeansではないアプリケーションとする。組立て者は,アプリケーションに対応するGUIを作成してもよい。

アプリケーション組立て作業は,操作環境の中にエンタプライズBeansを配置する前又は配置した後に実行できる。

3.1.3 配置者

配置者は,特定の操作環境の専門家であって,エンタプライズBeans及びそのコンテナの配置に責任をもつ。 配置者は,コンテナ提供者が提供するツールを使用して,エンタプライズBeansを特定の操作環境に適応させる。

例えば,配置者は,エンタプライズBeansが仮定したセキュリティ上の役割を, エンタプライズBeansを使用する組織が要求するセキュリティの役割に対応づける責任をもつ。配置者は, エンタプライズBeanの配置記述子の属性設定を読み取り,エンタプライズBeansの環境特性の値を修正する。

場合によって,認定配置者は,エンタプライズBeansの業務論理をその配置に応じてカスタム化してよい。 この配置者は,通常は,コンテナツールを使用して,エンタプライズBeanの業務メソッドをラップする 比較的単純なアプリケーションコードを作成することになる。

3.1.4 EJBサーバ提供者

EJBサーバ提供者は,分散トランザクション管理,分散オブジェクト及びその他の低水準システムレベルサービスの領域の専門家とする。 典型的なEJBサーバ提供者には,OSベンダ,ミドルウェアベンダ又はデータベースベンダがある。

EJBサーバ提供者は,典型的には,EJBセションコンテナ(4.2.2を参照すること。)契約を実装したコンテナを提供する。 さらに,EJBサーバ上でサポートされる一つ以上のデータソースに対応する実体コンテナ(4.2.2を参照すること。)を提供してもよい。

EJBサーバ提供者は,低水準インタフェースを公開し,第3者がコンテナを開発可能とする。このインタフェースは,現時点では, エンタプライズJavaBeansで規定せず,ベンダ固有とする。

エンタプライズJavaBeansの今後の版では,コンテナとEJBサーバとの間のインタフェースを標準化する可能性がある。

3.1.5 EJBコンテナ提供者

コンテナ提供者は,システムレベルプログラミングの専門家であって,いくつかのアプリケーション領域の専門的技術と 結び付く可能性がある。コンテナ提供者は,規模拡大性をもち,安全で,トランザクション可能なコンテナシステムの開発に, その焦点を絞る。コンテナ提供者は,エンタプライズBeanとコンテナとの間に,単純で標準的なAPI(このAPIは, エンタプライズJavaBeans部品契約とする。)を提供することによって,使用中のEJBサーバから独立したエンタプライズBeanを与える。

コンテナ管理された永続性を備えたエンタプライズ実体Beansでは,実体コンテナは,コンテナにインストールされた実体Beans の永続性に責任をもつ。コンテナ提供者のツールを使用して,エンタプライズBeanのインスタンス変数と, データベース又は既存のアプリケーションとの間でデータを移動するコードを生成する。コンテナ提供者は, 企業の既存のデータソースへの,又はパッケージ化されたアプリケーションシステムへのアクセスを提供する領域の専門家でもよい。

コンテナ提供者は,インストールされたエンタプライズBean部品の版管理方式をサポートする。例えば,コンテナ提供者は, 既存のクライアントを無効にせずに,又は既存のエンタプライズBeanオブジェクトを失わないで,Beanクラスを更新可能にする。

コンテナ提供者は,システム管理者が,コンテナ及び実行時にコンテナで動作するBeansを監視し管理するツールを提供する。

エンタプライズJavaBeansは,適合EJBコンテナのすべてがサポートする部品契約を定義する。エンタプライズJavaBeansでは, コンテナベンダが,この契約を拡張し特殊化したコンテナを開発できる。特殊化されたコンテナの例としては, アプリケーション領域固有の枠組みをサポートするコンテナ,EJB環境と既存のアプリケーションシステムとを橋渡しするコンテナ (このコンテナは,エンタプライズBeansとして既存のアプリケーションをモデル化できる。), データベースにおけるオブジェクトと関係との対応づけを実装するコンテナ,又は オブジェクト指向データベースシステム上に構築されるコンテナがある。

3.1.6 システム管理者

システム管理者は,役割として,実行システムが正常に作動するかどうかを監視する。システム管理者は,そのために, EJBサーバ及びコンテナ提供者が提供する実行時監視及び管理ツールを使用する。

3.2 シナリオ1: 開発,配置及び組立て

Wombat社は,エンタプライズBean提供者であって,銀行業界のソフトウェア部品開発を専門に行っている。 Wombat社は,AccountBean及びTellerBeanというエンタプライズBeansを開発し, それらをejb-jarファイルにパッケージ化する。

Wombat社は,複数ベンダからのコンテナ及びEJBサーバを使用する銀行に,エンタプライズBeansを販売する。 ある銀行は,Acme社からのコンテナを使用している。Acme社のコンテナ製品の一部であるAcme社のツールは, Wombat社を含めた提供者に依存しないので,エンタプライズBeansの配置を容易にする。配置の過程では, Acmeコンテナが内部的に使用する付加クラスを生成する。付加クラスのおかげで,Acmeコンテナは,EJB部品契約で定義されたとおりに, 実行時にエンタプライズBeanオブジェクトを管理できる。

AccountBeanエンタプライズBeans及びTellerBeanエンタプライズBeansは,それ自体では, 完全なアプリケーションではないので,銀行の経営情報システム部は,Acmeのツールを使用し,その他の(別のベンダからの) エンタプライズBeans及び既存の非EJBソフトウェアを用いて,AccountBean及びTellerBean というエンタプライズBeanを完全なアプリケーションに組み立てる。経営情報システム部は,EJB配置者及びアプリケーション組立て者の 二つの役割を兼ねる。


目次 | |