セッション Bean ファサードと SDO

このトピックでは、セッション Bean ファサードの一般概念を説明し、ワークベンチによって実現される実装の利点を紹介します。ワークベンチは、WebSphere の EJB メディエーターと対話して、 静的に生成されたサービス・データ・オブジェクト (SDO) に作用するセッション Bean ファサードを実装します。

Rational® Application Developer の実装

セッション・ファサードの Rational Application Developer を実装するには、1 つ以上の CMP エンティティー Bean のデータおよびロジック・プロパティーをカプセル化するセッション Bean を作成する必要があります。 セッション Bean は対応する SDO と相互作用します。この SDO は セッション Bean と共に作成され、1 つ以上の CMP エンティティー Bean で指定されたデータ表記に合わせてカスタマイズされます。 CMP エンティティー Bean 内に注釈を生成するには、 「セッション Bean ファサードの作成」 ウィザードを使用します。この注釈は、後にセッション Bean ファサードの生成に用いられます。 このウィザードでは、CMP エンティティー Bean と、新規 SDO に組み込む CMP 属性および CMR フィールドのすべてもしくは一部をグラフィカルに選択できます。 その結果、対応する SDO グラフを参照し、パーシスタンス照会のために EJB-QL を使用して EJBMediator と対話するセッション Bean インスタンスが生成されます。

セッション Bean ファサードと SDO の定義に 使用される @ws.sdo と @ws.sbf タグ・セットの参照情報については、 『セッション Bean ファサードと SDO のための注釈 』を参照してください。

サービス・データ・オブジェクト (SDO)

データ・オブジェクトは、元は、 クライアント・アプリケーションからビジネス層に実際のデータをバッファーする手段として設計されました。 例として、異なるソースのデータを抽象化してカプセル化することで標準化されたメソッドである、 データ・アクセス・オブジェクトがあります。

サービス・データ・オブジェクト (SDO) は、 プロパティーを CMP エンティティー Bean から導出するデータ・オブジェクトの型です。 これらは、個々のコンテナー管理関係 (CMR) プロパティーのサブセットを 1 つ以上の CMP エンティティー Bean から単一オブジェクトにカプセル化することができます。これにより、クライアント・アプリケーションとビジネス層の間の粗トランザクションが可能になります。 データの変更はデータ・グラフによってモニターされます。データ・グラフは 1 つ以上の SDO を管理し、中間層のデータ・メディエーター・サービスはクライアントとの間のデータ転送を管理します。

従来のセッション・ファサードの概要: 利点と制限

セッション・ファサードは、従来はクライアント層とビジネス層のアプリケーションおよびオブジェクトの緊密な結合によって生じる複雑さとパフォーマンス上の問題を改善するために使用されてきました。 従来の分散エンタープライズ・アプリケーションでは、 データ表記に用いられるプロセスとエンティティー Bean 用に使用されるセッション Bean と共に、 ビジネス・データとロジックをクライアント層に公開するエンタープライズ Bean が使用されました。

より大きいアプリケーションでは、これの 1 つの結果がクライアント層とビジネス層の間の相互作用の増大であり、 クライアント・アプリケーションにおけるビジネス・ロジックの複雑さはますます増大します。 このため、クライアントはビジネス・ロジックおよびデータ全体を適切に理解して対応する必要があります。

クライアントとサーバー間のデータ保全性の維持は容易に膨大な作業になる可能性があります。 この場合、クライアントとの間のネットワーク呼び出しの回数が増加する中でのクライアントとサーバーの同期に加え、 クライアント・プログラム自体の複雑化が必要となります。

セッション・ファサードは、データをクライアントによる操作から切り離すことでこれらの状態の多くを除去する方法として導入されました。 これは、ビジネス層から、 データに必要なビジネス・メソッドと同様にデータの抽象概念を受け取る CMP エンティティー Bean 用のセッション Bean ファサードを作成することで行われます。 データ交換は、今回メディエーターによって処理可能となりますが、通常は EJB メカニズムの CMP 機能自体が行います。 クライアントは、今後はメソッドおよびデータ表記のみを処理し、データ保全性およびビジネス・ロジック全体との整合性に関する処理は行いません。

しかし、従来のセッション・ファサードの実装には制限があります。 たとえ拡張アプリケーションに複数の CMP 定義からのデータが関与しそうな場合でも、 特定のセッション・ファサードに使用できるエンティティー Bean インスタンスは 1 つのみです。 これにより、クライアントとビジネス層の間で多数のかなり詳細なネットワーク呼び出しが行われるため、 ネットワークの性能低下が生じる可能性があります。


フィードバック