Interstage Studio プログラマーズガイド
目次 索引 前ページ次ページ

第2部 Java編> 第4章 Enterprise JavaBeans (EJB)を開発する> 4.1 概要

4.1.4 EJBクライアントの処理概要

+Session Bean、Entity Beanの場合

Session BeanとEntity Beanでは、HomeインタフェースとComponentインタフェースを介して、Enterprise Beanにアクセスします。
Homeインタフェースには、Enterprise Beanのインスタンスの生成、検索(Entity Beanだけ)または削除を行うためのメソッドが宣言されています。Componentインタフェースには、Enterprise Beanのビジネスメソッドが宣言されています。
これらのインタフェースは、配備時に実装クラスが生成されますが、クライアントはその実装を意識する必要はなく、実装の参照をHomeインタフェース、Componentインタフェースを介して扱うことができます。

Homeインタフェースは、細かく分類するとLocalHomeインタフェースとHomeインタフェースがあります。また、Componentインタフェースには、同様にLocalインタフェースとRemoteインタフェースがあります。
クライアント(Enterprise Beanを呼び出す側)とEnterprise Beanが同一のJavaVMで動作する場合には、LocalHome、Localインタフェースを使用します。リモート環境の場合など、同一JavaVMで動作しない場合は、Home、Remoteインタフェースを使用します。


LocalHomeインタフェース、Localインタフェースを介してどのよう処理を行うかについて以下に示します。

[LocalHomeインタフェース、Localインタフェース]

  1. クライアントでは、クラスの呼出しのために、LocalHomeインタフェース、Localインタフェースの変数を使います。
  2. 変数home内に格納された実体は、EJB home(Homeインタフェースを実装したクラス)のインスタンスです。
  3. LocalHomeインタフェースのcreate()を呼ぶことで、EJB homeのcreate()を呼び出します。
  4. LocalインタフェースのbusinessMethod()を呼ぶことで、EJB objectのbusinessMethod()を呼び出します。

Home、Remoteインタフェースを使用する場合に、基本的な処理は、LocalHome、Localインタフェースを使用する場合と同一です。

+Message-driven Beanの場合

Message-driven Beanの場合、コンテナはクライアントとEnterprise Beanの仲介を直接行いません。クライアントは、メッセージサービスにメッセージを送信します。それを受信したメッセージサービスは、メッセージリスナとして登録されているMessage-driven Beanにメッセージを配信します。

J2EEでは、ネーミングサービスを使用して各種オブジェクトを取得することが決められています。これにより、運用環境での違いをネーミングサービスとコーディング上の名前の対応関係を変更することで吸収できるようになっています。

目次 索引 前ページ次ページ

Copyright 2007-2008 FUJITSU LIMITED