Apcoordinatorが提供するEJBアプリケーションフレームワークは次の2つの機能に分けられます。
セションBeanの作成を支援する機能 (Bccoordinator)
EJBを呼び出す機能 (Apcoordinatorコア)
セションBeanの作成を支援する機能は、Apcoordinatorのフレームワークを使用してセションBeanを作成することを可能にします。Apcoordinatorを使用することにより以下の利点があります。
セションBeanをWebアプリケーションと同様の手順で開発することが可能です。
Apcoordinatorを用いて構築されたWebアプリケーションとセションBeanの間で、それぞれが持つセション情報を自動的に互いに転送します。
Apcoordinatorを用いて構築されたWebアプリケーションへデータを送信する前にHashMapクラスに変換することができます。このとき、プロパティのフィルタリングが可能であり、セションBeanで必要となるプロパティのみを選択して送信することができます。
EJBを呼び出す機能は、Apcoordinatorで作成したWebアプリケーション、セションBeanからEJBを呼び出す機能を提供します。これは以下の2つの機能を持ちます。
Apcoordinatorで作成したセションBeanを呼び出す機能: データBeanとコマンド名を引数に与えてセションBeanを呼び出します。呼び出しにはApcoordinatorが提供するAPIを使用します。
一般的なEJBの呼び出しを支援する機能: ホームインターフェイスとリモートインターフェイスを使って呼び出します。Apcoordinatorはホームインターフェイスとリモートインターフェイスの取得を簡単な記述で実現するためのAPIを提供します。
セションBeanの構成要素
Apcoordinatorで作成するセションBeanは以下の構成要素からなります。
セションBeanで行う処理を実行するJavaのクラスです。
データBeanクラスとコマンド名の組に対し、呼び出されるビジネスクラスのメソッドを対応付けるファイルです。
クライアントからの呼び出しを受け付け、Apcoordinatorに処理を依頼するクラスです。
EJBオブジェクトの生成と削除を行うインターフェイスです。EJBクライアントによって使用されます。
EJBオブジェクトのメソッドを呼び出すためのインターフェイスです。EJBクライアントによって使用されます。
以下は必要に応じて作成します。
クライアントからセションBeanへ入力されるデータとして、または、セションBeanからクライアントへ返されるデータとして使用されるJavaのクラスです。
セションを通して使われるデータを保持するためのクラスです。アプリケーション独自の情報をセションクラスに記憶させたい場合は、ユーザー定義のセションクラスを作成します。
同一のJVMで動作するセションBeanのオブジェクトで共有されるデータを保持するためのクラスです。アプリケーション独自の情報をアプリケーションクラスに記憶させたい場合は、ユーザー定義のアプリケーションクラスを作成します。
アプリケーションクラスやセションクラスのインスタンスを作成するクラスです。ユーザー定義のアプリケーションクラスやセションクラスを使用する場合に、ユーザー定義のファクトリクラスを作成する必要があります。
セションBean呼び出し時の動作
Apcoordinatorで作成したEJBクライアントからApcoordinatorで作成したセションBeanを呼び出す動作の概略を以下の図に沿って説明します。なお、以降の図では説明の内容に直接関係しない構成要素は省略しています。
クライアントはデータBeanとコマンド名を引数としてセションBeanを呼び出します。
セションBeanは、データBeanとコマンド名を受け取ります。
データBeanとコマンド名に対応するビジネスクラスのメソッドがコマンドマップから検索され、検索されたメソッドが呼び出されます。
ビジネスクラスのメソッドは処理を実行し、処理結果をデータBeanに格納して返却します。
返却されたデータBeanをクライアントが受け取ります。
Apcoordinatorで作成したクライアントからApcoordinatorで作成したセションBeanを呼び出す場合、以下の機能が使用できます。
セション情報の同期: セションクラスで保持しているデータをクライアントとセションBeanとの間で自動的に転送します。
データBean変換: データBeanをセションBeanに送信する前にHashMapクラスに変換します。データBeanが持つ項目クラスはString, Integerなどの基本的なデータのクラスやその配列に変換されて、HashMapに格納されます。データBean変換使用時はプロパティのフィルタリングが可能です。フィルタリングにより、セションBeanで必要となるプロパティのみを選択して送信することができます。
HashMapクラスによるデータの入出力: セションBeanはクライアントとの入出力を行うクラスとして、データBeanの代わりにHashMapクラスを使うことができます。この機能は、前述のデータBean変換を使用した場合に必要となります。
Apcoordinatorによるローカル呼び出し: クライアントと同じJVMの中でセションBeanを実行できます。これにより、アプリケーションのデバッグが容易になります。
クライアントの作成
EJBを呼び出すプログラムの作成方法については以下を参照してください。
クライアントアプリケーション | 呼び出されるEJB | 参照する節 |
---|---|---|
Apcoordinatorで作成するアプリケーション | Apcoordinatorで作成したセションBean | |
一般的なEJB | ||
Apcoordinatorを利用せずに作成するアプリケーション | Apcoordinatorで作成したセションBean |