Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

5.2.2 Enterprise Beanのインタフェース

Enterprise Beanの実装に必要なインタフェースについて説明します。利用できるインタフェースの一覧を次の表に示します。

表5-5 利用できるインタフェースの一覧

インタフェース名 説明
リモートホームインタフェース※1 EJB仕様1.1以降で規定されている,javax.ejb.EJBHomeを継承した,リモートクライアント用のインタフェースです。主に,Enterprise Beanインスタンスの取得のために使用します。
リモートコンポーネントインタフェース※2 EJB仕様1.1以降で規定されている,javax.ejb.EJBObjectを継承した,リモートクライアント用のインタフェースです。主に,ビジネスメソッドを定義します。
リモートビジネスインタフェース リモートクライアントからEnterprise Beanを呼び出すためのビジネスメソッドを定義するインタフェースです。規定されたインタフェースを継承する必要はありません。
ローカルホームインタフェース EJB仕様2.0以降で規定されている,javax.ejb.EJBLocalHomeを継承した,ローカルクライアント用のインタフェースです。主に,Enterprise Beanインスタンスの取得のために使用します。
ローカルコンポーネントインタフェース EJB仕様2.0以降で規定されている,javax.ejb.EJBLocalObjectを継承した,ローカルクライアント用のインタフェースです。主に,ビジネスメソッドを定義します。
ローカルビジネスインタフェース ローカルクライアントからEnterprise Beanを呼び出すためのビジネスメソッドを定義するインタフェースです。規定されたインタフェースを継承する必要はありません。

注※1 EJB仕様1.1ではホームインタフェースと呼ばれるインタフェースです。

注※2 EJB仕様1.1ではリモートインタフェースと呼ばれるインタフェースです。


利用できるインタフェースの総称を次に示します。

表5-6 インタフェースの総称一覧

インタフェースの総称 説明
ホームインタフェース 次のインタフェースの総称です。
  • リモートホームインタフェース
  • ローカルホームインタフェース
コンポーネントインタフェース 次のインタフェースの総称です。
  • リモートコンポーネントインタフェース
  • ローカルコンポーネントインタフェース
ビジネスインタフェース 次のインタフェースの総称です。
  • リモートビジネスインタフェース
  • ローカルビジネスインタフェース
リモートインタフェース 次のインタフェースの総称です。
  • リモートホームインタフェース
  • リモートコンポーネントインタフェース
  • リモートビジネスインタフェース
ただし,リモートコンポーネントインタフェース,リモートビジネスインタフェースだけを指すこともあります。
ローカルインタフェース 次のインタフェースの総称です。
  • ローカルホームインタフェース
  • ローカルコンポーネントインタフェース
  • ローカルビジネスインタフェース
ただし,ローカルコンポーネントインタフェース,ローカルビジネスインタフェースだけを指すこともあります。

Enterprise Beanは少なくても一つのインタフェースを持ちます。ただし,Message-driven Beanは上記のインタフェースを持ちません。

<この項の構成>
(1) リモートインタフェース
(2) ローカルインタフェース
(3) ビジネスインタフェースに対応する機能
(4) ビジネスインタフェースのEnterprise Bean呼び出し

(1) リモートインタフェース

リモートインタフェースではJava RMIのインタフェースの規定に従い,RMI-IIOP通信によってEnterprise Beanの呼び出しをします。クライアントが異なるJavaVMに存在するEnterprise Beanを呼び出すことができますが,実行時に通信上のオーバーヘッドが発生します。メソッド実行時の引数および戻り値は値渡し(pass by value)になります。

(2) ローカルインタフェース

ローカルインタフェースの場合,Enterprise Beanの呼び出しはJavaのメソッド呼び出しで実行され,通信が発生しません。クライアントは同一J2EEアプリケーションに存在する場合にだけ,このインタフェースを利用できます。また,ローカルインタフェースを利用する場合には,リモートインタフェースと異なり,メソッド実行時の引数および戻り値は参照渡し(pass by reference)になります。

(3) ビジネスインタフェースに対応する機能

ビジネスインタフェースを使用した場合でも,次の機能を使用できます。

(4) ビジネスインタフェースのEnterprise Bean呼び出し

ここでは,同一J2EEサーバ内のほかのJ2EEアプリケーションで動作するビジネスインタフェースを呼び出す場合と,ほかのJ2EEサーバで動作するビジネスインタフェースを呼び出す場合について説明します。

どちらの場合も,呼び出し元のEJB-JARファイルまたはWARファイルに,呼び出し先のEnterprise Beanのビジネスインタフェース,およびインタフェースで使用するユーザ作成クラスを含めます。また,JNDI名前空間に自動的にバインドされる名称またはユーザ指定名前空間機能で設定した別名を使用してルックアップします。ルックアップで使用する名称については,「8.2.2 EJBのリファレンスが自動的にバインドされる名称」を参照してください。

注※
アプリケーション間のビジネスインタフェース呼び出しで,ダイナミッククラスローディング機能を使用する場合は,スタブを含める必要はありません。ただし,ダイナミッククラスローディング機能は,性能上,推奨しません。