Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)


2.2.2 Enterprise Beanのインタフェース

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

表2‒6 利用できるインタフェースの一覧

インタフェース名

説明

リモートホームインタフェース※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ではリモートインタフェースと呼ばれるインタフェースです。

なお,このマニュアルの説明では,複数のインタフェースをまとめた総称を使用することがあります。説明で使用するインタフェースの総称を次に示します。

表2‒7 インタフェースの総称

インタフェースの総称

説明

ホームインタフェース

次のインタフェースの総称です。

  • リモートホームインタフェース

  • ローカルホームインタフェース

コンポーネントインタフェース

次のインタフェースの総称です。

  • リモートコンポーネントインタフェース

  • ローカルコンポーネントインタフェース

ビジネスインタフェース

次のインタフェースの総称です。

  • リモートビジネスインタフェース

  • ローカルビジネスインタフェース

リモートインタフェース

次のインタフェースの総称です。

  • リモートホームインタフェース

  • リモートコンポーネントインタフェース

  • リモートビジネスインタフェース

ただし,リモートコンポーネントインタフェース,リモートビジネスインタフェースだけを指すこともあります。

ローカルインタフェース

次のインタフェースの総称です。

  • ローカルホームインタフェース

  • ローカルコンポーネントインタフェース

  • ローカルビジネスインタフェース

ただし,ローカルコンポーネントインタフェース,ローカルビジネスインタフェースだけを指すこともあります。

これらのインタフェースは,Session BeanまたはEntity Beanの場合に実装します。Message-driven Beanの場合はこれらのインタフェースを持ちません。

Session Beanの場合,ローカルインタフェースからの呼び出しにNo-Interface viewを使用できます。この場合は,インタフェースの実装を省略できます。No-Interface viewについては,「2.16 ローカルビジネスインタフェースの省略(No-Interface viewの利用)」を参照してください。

〈この項の構成〉

(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のビジネスインタフェース,およびインタフェースで使用するユーザ作成クラスを含めます。また,自動的にバインドされる名称(Portable Global JNDI名またはHITACHI_EJBから始まる名称),またはユーザ指定名前空間機能で設定した別名を使用してルックアップします。ルックアップで使用する名称については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.5 HITACHI_EJBから始まる名称でのルックアップ」を参照してください。