WebLogic J2EE コネクタ アーキテクチャ
WebLogic J2EE コネクタの概要
以下の節では、WebLogic J2EE コネクタ (リソース アダプタともいう) の概要について説明します。
WebLogic J2EE コネクタの用語
このマニュアルで扱う主な用語は以下のとおりです。
アプリケーション コンポーネント - アプリケーション サーバ上でデプロイ、管理、実行される EJB、JSP、サーブレットなどサーバ サイド コンポーネント。また、Web クライアント層上で実行され、アプリケーション サーバを介して Web クライアントから利用できるコンポーネントを指すこともあります。後者のアプリケーション コンポーネントには、Java アプレットや DHTML ページなどがあります。
呼び出し側プリンシパル - メソッドの呼び出し時にアプリケーション コンポーネントのインスタンスと関連付けられるプリンシパル。たとえば、EJB インスタンスは getCallerPrincipal を呼び出すことにより、現在のセキュリティ コンテキストと関連付けられるプリンシパルを取得します。
Common Client Interface (CCI) - アプリケーション コンポーネント用の標準クライアント API を定義し、エンタープライズ アプリケーション統合 (EAI : Enterprise Application Integration) フレームワークが共通のクライアント API を使用して異種 EIS 間での対話を実現します。BEA では、EIS アクセス用の CCI を定義しています。
接続 - リソース マネージャへの接続性を実現し、それによってアプリケーション クライアントはリソース マネージャへの接続、トランザクションの実行、そのリソース マネージャにより提供されるサービスへのアクセスができます。接続はトランザクション対応の場合とトランザクション非対応の場合があります。データベース接続および SAP R/3 接続などがこれに該当します。
コンテナ - WebLogic Server などのアプリケーション サーバの一部で、アプリケーション コンポーネントのデプロイメントと実行時サポートを提供します。コンテナを使用すると、サポートされているコンポーネントをモニタおよび管理するサービスだけでなく、それらのコンポーネントもモニタおよび管理できます。コンテナは以下のいずれかです。
リソース アダプタのホストとなるコネクタ コンテナ
JSP、サーブレット、および静的 HTML ページのホストとなる Web コンテナ
EJB コンポーネントのホストとなる EJB コンテナ
スタンドアロン アプリケーション クライアントのホストとなるアプリケーション クライアント コンテナ
各標準コンテナの詳細については、エンタープライズ JavaBean (EJB)、JavaServer Page (JSP)、およびサーブレットの仕様を参照してください。
資格 - 追加サービスに対してプリンシパルを認証することができるセキュリティ情報を格納または参照します。プリンシパルは、認証時に資格を取得する場合と、資格の使用を許可する別のプリンシパルから取得する場合とがあります。後者はプリンシパル委譲と言います。
エンタープライズ情報システム (EIS) - 企業に情報インフラストラクチャを提供します。EIS は一連のサービスをクライアントに提供します。これらのサービスは、ローカルまたはリモートのインタフェースとしてクライアントにエクスポーズされます。EIS には以下の例があります。
ERP システム
メインフレーム トランザクション処理システム
レガシー データベース システム
エンタープライズ情報システム (EIS) リソース - EIS 固有の機能をクライアントに提供します。EIS には以下の例があります。
データベース システム内のレコードまたはレコード セット
エンタープライズ リソース プランニング (Enterprise Resource Planning: ERP) システムのビジネス オブジェクト
トランザクション処理システム内のトランザクション プログラム
開始プリンシパル - アプリケーションと直接対話するエンドユーザを表すセキュリティ プリンシパル。エンドユーザは Web クライアントまたはアプリケーション クライアントを使って認証することができます。
J2EE コネクタ - システムレベルのソフトウェア ドライバ。WebLogic Server などのアプリケーション サーバが EIS に接続するために使用します。BEA では、エンタープライズ情報システム (EIS) ベンダおよびサードパーティ アプリケーション開発者が開発し、Sun Microsystems の J2EE プラットフォーム仕様、バージョン 1.3 に準拠しているアプリケーション サーバにデプロイ可能なコネクタをサポートしています。リソース アダプタには、Java、および必要に応じて EIS との対話に必要なネイティブ コンポーネントが含まれます。
J2EE コネクタ アーキテクチャ - J2EE 準拠のアプリケーション サーバをエンタープライズ情報システム (EIS) と統合するためのアーキテクチャです。このアーキテクチャは、EIS ベンダのリソース アダプタと、リソース アダプタがプラグ インとして機能する WebLogic Server などのアプリケーション サーバという 2 つの部分で構成されます。このアーキテクチャは、リソース アダプタがアプリケーション サーバのプラグインとして機能するためにサポートする必要がある、トランザクション、セキュリティおよび接続管理などの規約を定義します。BEA では EIS アクセス用の Common Client Interface (CCI) も定義しています。CCI は、異種 EIS と対話するためのクライアント API を定義します。
管理対象の環境 - EIS にアクセスする J2EE ベースの Web 対応多層アプリケーションの操作環境を定義します。アプリケーションは、コンテナ上にデプロイされる 1 つまたは複数のアプリケーション コンポーネント (EJB、JSP、サーブレット) で構成されます。コンテナは以下のいずれかです。
JSP、サーブレット、および静的 HTML ページのホストとなる Web コンテナ
EJB コンポーネントのホストとなる EJB コンテナ
スタンドアロン アプリケーション クライアントのホストとなるアプリケーション クライアント コンテナ
非管理対象の環境 - 2 層アプリケーションの操作環境を定義します。アプリケーション クライアントは、リソース アダプタを直接使用して、2 層アプリケーションの第 2 層を定義する EIS にアクセスします。
プリンシパル - 企業にデプロイされた認証メカニズムにより認証することができるエンティティ。プリンシパルはプリンシパル名を使って識別され、認証データを使って認証されます。プリンシパル名と認証データの内容とフォーマットは認証メカニズムに依存します。
RAR - リソース アダプタ アーカイブ。リソース アダプタを実行するのに必要なクラスやその他のファイルをロードするのに使われる圧縮 (.zip) ファイルです。
ra.xml - Sun Microsystems の標準 DTD を使用して、リソース アダプタ関連の属性タイプとそのデプロイメント プロパティを記述します。
リソース アダプタ - J2EE コネクタを参照してください。
リソース マネージャ - 共有 EIS リソースを管理する EIS の一部。リソース マネージャの例には、データベース システム、メインフレーム TP システム、ERP システムなどがあります。クライアントは、リソース マネージャが管理するリソースを使用するためにリソース マネージャへのアクセスを要求します。トランザクション対応リソース マネージャは、トランザクション マネージャが外部的に制御して調整するトランザクションに参加できます。WebLogic J2EE コネクタのコンテキストでは、リソース マネージャのクライアントとして中間層アプリケーション サーバとクライアント層アプリケーションを含めることができます。リソース マネージャは通常、クライアントのアクセス元とは異なるアドレス空間または異なるマシン上にあります。
リソース プリンシパル - EIS インスタンスへの接続確立にそのセキュリティ コンテキストが使用されるセキュリティ プリンシパル。
セキュリティ属性 - プリンシパルにはセキュリティ属性が関連付けられます。セキュリティ属性は認証と認可のメカニズムに関連します。プリンシパルのセキュリティ パーミッションと資格がその例です。
サービス プロバイダ インタフェース (SPI) - EIS との接続を提供および管理したり、トランザクションの境界を設定したり、フレームワークでイベントのリスニングとリクエストの転送を行えるようにしたりするオブジェクトを含みます。J2EE コネクタ アーキテクチャ準拠のすべてのリソース アダプタは、これらのインタフェースの実装を javax.resource.spi パッケージで提供する必要があります。
システム規約 - エンティティ間で接続リクエストを渡すメカニズム。WebLogic Server と EIS など、アプリケーション サーバ間での標準のシステムレベル プラグイン可能性を実現するために、J2EE コネクタ アーキテクチャではアプリケーション サーバと EIS 間の標準のシステムレベル規約を定義しています。これらシステムレベル規約の EIS 側は、リソース アダプタで実装されます。
weblogic-ra.xml - WebLogic Server 固有のデプロイメント情報を ra.xml ファイルに追加します。
BEA WebLogic J2EE コネクタ実装の概要
BEA WebLogic Server は、引き続き Sun Microsystems J2EE プラットフォーム仕様、バージョン 1.3 に基づいています。J2EE コネクタ アーキテクチャは、エンタープライズ情報システム (EIS) を簡単に J2EE プラットフォームに統合します。この目的は、コンポーネント モデル、トランザクション、およびセキュリティ インフラストラクチャを含む J2EE プラットフォームの長所を活かして、EIS の統合という困難な課題を解決することです。
J2EE コネクタ アーキテクチャは、数多くのアプリケーション サーバと EIS との間を接続するという問題を Java により解決します。コネクタ アーキテクチャを使用することで、EIS ベンダはアプリケーション サーバごとに自社製品をカスタマイズする必要がなくなります。J2EE コネクタ アーキテクチャに準拠することで、BEA WebLogic Server ではカスタム コードを追加しなくても、新しい EIS への接続機能を追加できるようになります。
J2EE コネクタ アーキテクチャを使用すると、EIS ベンダは自社 EIS 用の標準リソース アダプタを提供できます。このリソース アダプタは WebLogic Server のプラグインとなり、EIS と WebLogic Server 間の統合を実現する基本インフラストラクチャを提供します。
J2EE コネクタ アーキテクチャをサポートすることで、BEA WebLogic Server が複数の EIS に接続可能となります。同様に、EIS ベンダは、BEA WebLogic Server のプラグイン機能を持ち、コネクタ アーキテクチャに準拠した標準のリソース アダプタを提供するだけで済みます。
注意 : このバージョンの BEA WebLogic Server は J2EE 1.3 に完全に準拠しています。
J2EE コネクタ アーキテクチャのコンポーネント
J2EE コネクタ アーキテクチャは、WebLogic Server や EIS 固有のリソース アダプタなどのアプリケーション サーバで実装されます。リソース アダプタとは EIS に固有のシステム ライブラリのことで、EIS への接続を提供するものです。リソース アダプタは JDBC ドライバと同様の機能を持っています。リソース アダプタと EIS 間のインタフェースは基底となる EIS に固有なので、ネイティブ インタフェースの場合もあります。
J2EE コネクタ アーキテクチャは主に 3 つのコンポーネントから構成されます。
次の図は、J2EE コネクタ アーキテクチャの概要を示しています。
図 1-1 J2EE コネクタ アーキテクチャ
リソース アダプタは「J2EE コネクタ」として機能します。WebLogic Server では、エンタープライズ情報システム (EIS) ベンダおよびサードパーティ アプリケーション開発者が開発し、Sun Microsystems の J2EE プラットフォーム仕様、バージョン 1.3 に準拠しているアプリケーション サーバにデプロイ可能なリソース アダプタをサポートしています。リソース アダプタには、Java、および必要に応じて EIS との対話に必要なネイティブ コンポーネントが含まれます。
システムレベル規約
J2EE コネクタ アーキテクチャ仕様では、J2EE に準拠したアプリケーション サーバ (WebLogic Server) と EIS 固有のリソース アダプタとの間のシステムレベル規約を定義しています。WebLogic Server はこの仕様に従って、以下に関して定義されている標準規約を実装しています。
接続管理 - アプリケーション サーバに基底の EIS への接続プールを提供する規約。アプリケーション コンポーネントは、接続管理によって EIS に接続できます。これにより、EIS へのアクセスが必要な多数のクライアントをサポートするスケーラブルなアプリケーション環境が実現します。
注意 : 接続管理の詳細については、「接続管理」を参照してください。
トランザクション管理 - トランザクション マネージャと、EIS リソース マネージャへのトランザクション アクセスをサポートする EIS との間の規約。この規約により、アプリケーション サーバはトランザクション マネージャを使用して、複数のリソース マネージャ間にまたがるトランザクションを管理することができます。
注意 : トランザクション管理の詳細については、「トランザクション管理」を参照してください。
セキュリティ管理 - EIS へのセキュア アクセスと、セキュアなアプリケーション環境のサポートを提供する規約。これによって EIS に対する脅威が小さくなり、EIS が管理する情報リソースが保護されます。
注意 : セキュリティ管理の詳細については、「セキュリティ」を参照してください。
Common Client Interface (CCI)
Common Client Interface (CCI) では、アプリケーション コンポーネント用の標準クライアント API を定義しています。CCI により、アプリケーション コンポーネントとエンタープライズ アプリケーション統合 (EAI) フレームワークが、共通のクライアント API を使用して異種 EIS 間で対話できます。
CCI は、エンタープライズ ツール ベンダと EAI ベンダを対象ユーザとしています。アプリケーション コンポーネント自体も API に書き込めますが、CCI は低レベルの API です。仕様で推奨されている CCI の利用方法は、ほとんどのアプリケーション開発者が使用するアプリケーションレベルのプログラミング インタフェースとしてではなく、ツール ベンダが提供するより多彩な機能を実現するための基盤として利用することです。
また、CCI では、EIS に対して関数を実行し、結果を取得することに重点を置いたリモート関数呼び出しインタフェースを定義しています。CCI は、EIS に固有のデータ型など、特定の EIS に依存していません。ただし、CCI はリポジトリの EIS 固有のメタデータで利用できます。
CCI により、WebLogic Server アプリケーションは EIS との接続を作成および管理したり、対話を処理したり、入力、出力、または戻り値のデータ レコードを管理したりすることができます。CCI の目的は、JavaBeans アーキテクチャおよび Java コレクション フレームワークを活用することです。
J2EE コネクタ アーキテクチャ バージョン 1.0 では、リソース アダプタが CCI をクライアント API としてサポートすることを推奨している一方で、リソース アダプタがシステム規約を実装する必要があることも規定しています。リソース アダプタでは、Java Database Connectivity (JDBC) API に基づいたクライアント API など、CCI 以外のクライアント API も使用できます。
注意 : Common Client Interface の関連情報については、「クライアントに関する考慮事項」を参照してください。
パッケージ化とデプロイメント
J2EE コネクタ アーキテクチャはパッケージ化およびデプロイメント インタフェースを提供するので、さまざまなリソース アダプタが WebLogic Server などの J2EE 準拠のアプリケーション サーバ内でモジュール形式のプラグインとして機能することができます。
図 1-2 パッケージ化とデプロイメント
リソース アダプタ プロバイダは、Java インタフェースおよびクラスをリソース アダプタの実装の一部として開発します。これらの Java クラスは J2EE コネクタ アーキテクチャ固有の規約と、リソース アダプタによって提供される EIS 固有の機能を実装します。リソース アダプタでは、基底の EIS に固有のネイティブ ライブラリの使用を必須にすることもできます。
Java インタフェースとクラスは、デプロイメント記述子を使用して (必須のネイティブ ライブラリ、ヘルプ ファイル、マニュアル、その他のリソースと一緒に) パッケージ化され、リソース アダプタ モジュールとなります。デプロイメント記述子では、リソース アダプタ プロバイダとリソース アダプタをデプロイするデプロイヤとの間の規約を定義します。
リソース アダプタ モジュールは、共有スタンドアロン モジュールとして、またはアプリケーションの一部としてパッケージ化して配布できます。デプロイメントでは、リソース アダプタ モジュールを WebLogic Server などのアプリケーション サーバにインストールしてから、対象の操作環境に合わせてコンフィグレーションします。リソース アダプタのコンフィグレーションは、リソース アダプタ モジュールの一部としてデプロイメント記述子に定義されているプロパティに基づいて行います。
注意 : パッケージ化とデプロイメントの詳細については、「コネクタのパッケージ化とデプロイメント」を参照してください。