目次 | |

4. 基礎概念

4.では,エンタプライズJavaBeans規定の適用範囲を定義する。

4.1 部品としてのエンタプライズBeans

エンタプライズJavaBeansは,分散計算を基本とした部品体系とする。エンタプライズBeansは, 分散トランザクション指向の企業アプリケーション部品とする。

4.1.1 部品の特徴

エンタプライズBeanの本質的な特徴は,次のとおりとする。

4.1.2 柔軟な部品モデル

エンタプライズBean体系は,非常に柔軟なために,次の部品を実装できる。 エンタプライズJavaBeans体系が定義する状態管理プロトコルは単純だが,Beanの状態管理において, エンタプライズBean開発者に多大な柔軟性を提供する。

クライアントは,エンタプライズBeanがどう実装されているか,どの機能がクライアントに提供されているかにかかわらず, オブジェクト生成,参照,メソッド呼出し及び破壊に対して,常に同じAPIを使用する。

4.2 エンタプライズJavaBeans契約

4.2では,エンタプライズJavaBeansの版1.0の契約について示す。

4.2.1 クライアントビュー契約

クライアントビュー契約は,クライアントとコンテナとの間の契約とする。この契約は,エンタプライズBeans を部品として使用するアプリケーションに対し,一様な開発モデルを提供する。この一様なモデルによって, より高水準の開発ツールの使用が可能となり,部品の再利用化がさらに進む。

エンタプライズBean提供者及びコンテナ提供者の両方共に,契約実行に責任をもつ。この契約は,次を含む。

クライアントは,エンタプライズBeanオブジェクトが一意な識別子をもつと期待する。コンテナ提供者は, 各セションEJBオブジェクトに対して一意な識別子を生成する責任をもつ。Bean提供者は,実体エンタプライズBeans (4.3.2参照)に対し,コンテナがEJBオブジェクトの識別子に埋め込む一意な一次キーを提供する責任をもつ。 Bean提供者は,EJBオブジェクト生成時に一次キーを提供し,その後,オブジェクト活性時及び/又はロード時に, EJBオブジェクトの一次キーを使用する。

クライアントは,標準のJava命名ディレクトリインタフェースTM(Java Naming and Directory InterfaceTM,以降JNDI。)を通じて,エンタプライズBeanホームインタフェースを設定する。ホーム内部では, EJBオブジェクトを識別するのに, 一次キーを使用する。

エンタプライズBean及びそのコンテナは,協力して,クライアントが呼出し可能な生成,検索及び除去の各操作を実装する。

エンタプライズBean提供者は,クライアントが呼出し可能な業務メソッドを定義する遠隔インタフェースを定義する。 エンタプライズBean提供者は,エンタプライズBeanクラスの業務メソッド実装する責任ももつ。 コンテナは,関連する遠隔インタフェースを通じて,クライアントがエンタプライズBeanを呼出し可能とする責任をもつ。 コンテナは,エンタプライズBeanクラスにおける実装に,業務メソッドの呼出しを委託する。

エンタプライズBean提供者は,責任をもってエンタプライズBeanのホームインタフェースを提供する。 エンタプライズBeanのホームインタフェースは,インタフェースjavax.ejb.EJBHomeを拡張する。 ホームインタフェースは,0個以上のメソッドcreate()を,EJBオブジェクトを生成する方法ごとに一つ,定義する。 実体Beansに対応するホームインタフェースは,0個以上のメソッドfinder()を,EJBオブジェクト又は特定な型の EJBオブジェクトの集まりを参照する方法ごとに一つ,定義する。

エンタプライズBean提供者は,責任をもって,そのシグネチャがBeanのホームインタフェースで定義されるメソッドcreate() のシグネチャと一致するエンタプライズBeanクラスのメソッドejbCreate()を実装する。コンテナは,責任をもって, クライアントが呼び出すメソッドcreate()を,エンタプライズBeanインスタンス上の一致するメソッドejbCreate() に委託する。

エンタプライズ実体Bean提供者は,責任をもって,シグネチャがBeanのホームインタフェースで定義される検索メソッド find<METHOD>()のシグネチャと一致するエンタプライズBeanクラスのメソッドejbFind<METHOD>()を実装する。 コンテナは,責任をもって,クライアントが呼び出すメソッドfind<METHOD>()を エンタプライズBeanインスタンス上の一致するメソッドejbFind<METHOD>()に委託する。

4.2.2 部品契約

部品契約は,エンタプライズBeanとそのコンテナとの間の契約とする。この契約は,次を含む。

4.2.3 ejb-jarファイル

ejb-jarファイルは,EJBツールが宣言配置情報と共にエンタプライズBeansをパッケージ化するために使用する標準フォーマットとする。 すべてのEJBツールは,ejb-jarファイルをサポートしなければならない。

ejb-jar契約は,次を含む。

図4.1は,版1.0で定義されるエンタプライズJavaBeans契約を示す。
 
4.1
図4.1 エンタプライズJavaBeans契約

図4.1は,コンテナ外部で実行する遠隔クライアントだけを示すが,EJBコンテナにインストールされたエンタプライズBeans クライアントにもクライアント側APIが適用できることに注意。

4.3 セションオブジェクト及び実体オブジェクト

エンタプライズJavaBeans 1.0は,二つの型のエンタプライズBeansを定義する。 セションオブジェクトに対するサポートは,EJB1.0適合コンテナに必須とする。実体オブジェクトに対するサポートは, EJB1.0適合コンテナではオプションとする。しかし,EJB2.0適合コンテナでは必須となる。

4.3.1 セションオブジェクト

セションオブジェクトは,次の特性をもつ。 典型的なEJBサーバ及びコンテナは,拡張可能な実行環境を提供して,数多くのセションオブジェクトを並行実行する。

4.3.2 実体オブジェクト

実体オブジェクトは,次の特性をもつ。 典型的なEJBサーバ及びコンテナは,並行して活動する数多くの実体オブジェクトに対して,規模拡大可能な実行環境を提供する。

4.4 標準CORBAマッピング

複数ベンダのEJB環境に対して相互運用性を確保するために,CORBAに対するエンタプライズJavaBeans クライアントのビュー契約の標準マッピングを定義する。

CORBAマッピングは,次を備える。

  1. EJBクライアントインタフェースのCORBA IDLへのマッピング。
  2. トランザクション文脈の伝播。
  3. セキュリティ文脈の伝播。
エンタプライズJavaBeansのCORBAマッピングは,EJBサーバの複数ベンダ実装間におけるネットワーク上の相互運用性を可能にするだけでなく, CORBA標準APIを通じて,エンタプライスBeansとして作成されたサーバ側アプリケーションに,非Javaクライアントがアクセス可能とする。

エンタプライズJavaBeansのCORBAマッピングは,トランザクション文脈及びセキュリティ文脈の伝播に対する標準CORBA オブジェクトサービスプロトコルに依存する。

CORBAマッピングは,関連する文書[6]で定義する。

図4.2は,五つの異なるベンダシステムから構成される異機種環境を例示する。
 

図4.2 異機種環境の例


目次 | |