Cosminexus 機能解説
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は上記のインタフェースを持ちません。
リモートインタフェースではJava RMIのインタフェースの規定に従い,RMI-IIOP通信によってEnterprise Beanの呼び出しをします。クライアントが異なるJavaVMに存在するEnterprise Beanを呼び出すことができますが,実行時に通信上のオーバーヘッドが発生します。メソッド実行時の引数および戻り値は値渡し(pass by value)になります。
ローカルインタフェースの場合,Enterprise Beanの呼び出しはJavaのメソッド呼び出しで実行され,通信が発生しません。クライアントは同一J2EEアプリケーションに存在する場合にだけ,このインタフェースを利用できます。また,ローカルインタフェースを利用する場合には,リモートインタフェースと異なり,メソッド実行時の引数および戻り値は参照渡し(pass by reference)になります。
ビジネスインタフェースを使用した場合でも,次の機能を使用できます。
表5-7 タイムアウトの適用範囲
インタフェース | メソッド | StatelessSession Bean | StatefulSessionBean | MessageDrivenBean | PersistenceAPI |
---|---|---|---|---|---|
ビジネスインタフェース | ビジネスメソッド※1 | ○ | ○ | − | − |
ホームまたはコンポーネントインタフェース※2 | create | × | ○ | − | − |
ビジネスメソッド | ○ | ○ | − | − | |
remove | × | ○ | − | − | |
javax.ejb.TimedObject | ejbTimeout | ○ | − | − | − |
(凡例) ○:適用される ×:適用されない −:該当なし
注※1 @Timeoutアノテーション,@Removeアノテーションが付いたメソッドを含みます。
注※2 @RemoteHomeまたは@LocalHomeを使用したインタフェースを指します。
ここでは,同一J2EEサーバ内のほかのJ2EEアプリケーションで動作するビジネスインタフェースを呼び出す場合と,ほかのJ2EEサーバで動作するビジネスインタフェースを呼び出す場合について説明します。
どちらの場合も,呼び出し元のEJB-JARファイルまたはWARファイルに,呼び出し先のEnterprise Beanのビジネスインタフェース,およびインタフェースで使用するユーザ作成クラスを含めます。また,JNDI名前空間に自動的にバインドされる名称またはユーザ指定名前空間機能で設定した別名を使用してルックアップします。ルックアップで使用する名称については,「8.2.2 EJBのリファレンスが自動的にバインドされる名称」を参照してください。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.