ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server リソース アダプタ プログラマーズ ガイド
11g リリース 1 (10.3.1)
B55541-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

2 リソース アダプタについて

以下の節では、WebLogic リソース アダプタと、J2EE コネクタ アーキテクチャの Oracle WebLogic Server 実装について紹介します。

リソース アダプタの概要

リソース アダプタは、エンタープライズ情報システム (EIS) に固有のシステム ライブラリであり、EIS への接続を提供します。リソース アダプタはデータベース管理システムへの接続を提供する JDBC ドライバに似ています。リソース アダプタと EIS 間のインタフェースは基底の EIS に固有のものであり、ネイティブ インタフェースの場合もあります。リソース アダプタは WebLogic Server などのアプリケーション サーバに接続し、EIS、アプリケーション サーバ、およびエンタープライズ アプリケーションの間にシームレスな接続を提供します。

1 つのアプリケーション サーバに複数のリソース アダプタを接続できます。それによって、アプリケーション サーバにデプロイされたアプリケーション コンポーネントが基底の EIS にアクセスできます。すべてのシステムレベルのメカニズム (トランザクション、セキュリティ、接続管理など) がアプリケーション コンポーネントからは意識されないように、アプリケーション サーバと EIS が共同で作業を行います。したがって、アプリケーション コンポーネント プロバイダは、アプリケーション コンポーネントのビジネス ロジックやプレゼンテーション ロジックの開発に専念でき、EIS の統合に関連したシステムレベルの問題に関わる必要はありません。複数の EIS と接続する必要のある、スケーラブルでセキュアなトランザクション対応のエンタープライズ アプリケーションを、より簡単に短期間で開発できるようになります。

WebLogic Server と WebLogic Integration のリソース アダプタの比較

WebLogic Integration (WLI) リソース アダプタと WebLogic Server リソース アダプタの違いに注意することが重要です。WebLogic Integration リソース アダプタは WebLogic Server 用に記述されるもので、通常は他のアプリケーション サーバにはデプロイできません。一方、WLI の拡張機能を利用せずに記述された WebLogic Server リソース アダプタは、J2EE に準拠したアプリケーション サーバにデプロイできます。このマニュアルでは、非 WLI リソース アダプタの設計と実装について説明します。

着信、発信、および双方向のリソース アダプタ

WebLogic Server は 3 種類のリソース アダプタをサポートしています。

  • 発信リソース アダプタ (J2EE 1.0 および 1.5 コネクタ アーキテクチャでサポート) - アプリケーションは EIS システムに接続して作業を行えるようになります。すべての通信はアプリケーションによって開始されます。この場合、リソース アダプタは EIS に接続するためのパッシブなライブラリとして機能し、アプリケーション スレッドのコンテキストで実行されます。

    J2EE 1.5 コネクタ アーキテクチャに基づいた発信リソース アダプタは、複数の同時発信接続を行うようにコンフィグレーションできます。WebLogic Server 固有の認証やトランザクションのサポートを利用するように、各接続をコンフィグレーションすることもできます。「発信接続のコンフィグレーション」を参照してください。

    J2EE 1.0 コネクタ アーキテクチャに基づいた発信リソース アダプタもサポートされています。1.0 のリソース アダプタでは、発信接続は 1 つだけ行うことができます。

  • 着信リソース アダプタ (1.5 のみ) - EIS はアプリケーションを呼び出して作業を行えるようになります。すべての通信は EIS によって開始されます。リソース アダプタは WebLogic Server のスレッドを要求したり、独自のスレッドを生成したりできますが、この方法はお勧めしません。リソース アダプタからワーク マネージャを経由して作業を送信することをお勧めします。「メッセージ インフローとトランザクション インフロー」を参照してください。


    注意 :

    Weblogic Server シン クライアント JAR は、ワーク マネージャ規約をサポートしているので、非管理対象リソース アダプタ (WebLogic Server で実行されないリソース アダプタ) として使用することもできます。

  • 双方向リソース アダプタ (1.5 のみ) - 発信と着信の両方の通信をサポートします。

1.0 と 1.5 のリソース アダプタの比較

WebLogic Server では、J2EE 1.0 コネクタ アーキテクチャまたは J2EE 1.5 コネクタ アーキテクチャに基づいて開発されたリソース アダプタをサポートしています。J2EE 1.0 コネクタ アーキテクチャでは、一方向の発信通信を使用した、リソース アダプタから 1 つの外部システムへの通信のみに制限されています。J2EE 1.5 コネクタ アーキテクチャではこの制限がなくなりました。1.5 リソース アダプタで提供される他の機能で、1.0 リソース アダプタに適用されないものは、以下のとおりです。

  • アプリケーションから、エンタープライズ情報システム (EIS) やデータベースなどの複数のシステムへの発信通信。「着信、発信、および双方向のリソース アダプタ」を参照してください。

  • EIS などの 1 つまたは複数の外部システムからリソース アダプタへの着信通信。「着信メッセージの処理」を参照してください。

  • トランザクション インフロー。J2EE アプリケーション サーバは、リソース アダプタを経由して、外部トランザクション マネージャが制御する XA トランザクションに関与できるようになります。「トランザクション インフロー」を参照してください。

  • アプリケーション サーバが提供するワーク マネージャ。リソース アダプタは Work インスタンスを介してスレッドを作成できるようになります。「work-manager」を参照してください。

  • アプリケーション サーバによってリソース アダプタの start() および stop() メソッドを呼び出すためのライフサイクル規約。「起動クラスとして実行するためのリソース アダプタのプログラミング」を参照してください。

1.0 リソース アダプタと 1.5 リソース アダプタのもう 1 つの重要な相違点は接続プールに関連しています。1.5 リソース アダプタの場合、接続ファクトリにつき 1 つの接続プールが自動的に取得されることはありません。接続インスタンスをコンフィグレーションする必要があります。それには、weblogic-ra.xml デプロイメント記述子の connection-instance 要素を設定します。

WebLogic Server は現在 J2EE 1.5 コネクタ アーキテクチャに準拠していますが、J2EE 1.0 コネクタ アーキテクチャも引き続き完全にサポートしています。J2EE 1.5 コネクタ アーキテクチャに従って、WebLogic Server は現在、スキーマに基づいたデプロイメント記述子をサポートしています。J2EE 1.0 コネクタ アーキテクチャに基づいて開発されたリソース アダプタでは、文書型定義 (DTD) に基づいたデプロイメント記述子を使用します。DTD に基づくデプロイメント記述子で構築されたリソース アダプタも引き続きサポートされます。

このマニュアルでは、1.5 リソース アダプタの開発と使用について説明します。

J2EE コネクタ アーキテクチャ

J2EE コネクタ アーキテクチャでは、J2EE プラットフォームを、エンタープライズ リソース プランニング (ERP) システム、メインフレーム トランザクション処理 (TP)、データベース システムなどの異種のエンタープライズ情報システム (EIS) に接続するための、標準アーキテクチャを定義しています。

リソース アダプタは、任意の EIS 通信プロトコルを接続に使用できるようにするプロトコル アダプタとして機能します。アプリケーション サーバ ベンダは、J2EE コネクタ アーキテクチャをサポートするためにシステムを一度拡張すれば、複数の EIS とのシームレスな接続を確保できます。同様に、EIS ベンダは 1 つの標準リソース アダプタを提供すると、そのアダプタで J2EE コネクタ アーキテクチャをサポートするどのアプリケーション サーバにも接続できます。

J2EE コネクタ アーキテクチャの詳細な概要については、J2CA 1.5 仕様 (http://java.sun.com/j2ee/connector/) の節 3 「コネクタ アーキテクチャ」を参照してください。

J2EE コネクタ アーキテクチャの図とコンポーネント

図 2-1 とその下の解説では、J2EE 1.5 コネクタ アーキテクチャの WebLogic Server 実装について説明します。

図 2-1 コネクタ アーキテクチャの概要

図 2-1 の説明は図の下のリンクをクリックしてください。
「図 2-1 コネクタ アーキテクチャの概要」の説明

図 2-1 のコネクタ アーキテクチャの概要では、双方向のリソース アダプタを例示しています。発信接続処理では以下のコンポーネントが使用されます。

  • クライアント アプリケーション。WebLogic Server に接続し、EIS とも対話する必要があります。

  • アプリケーション コンポーネント (EJB またはサーブレット)。クライアント アプリケーションがリソース アダプタを介して発信要求を EIS に送信するために使用します。

  • WebLogic Server コネクタ コンテナ。この中にリソース アダプタがデプロイされます。この例のコンテナには以下のものが含まれています。

    • EIS との双方向 (着信および発信) 通信を提供する、デプロイされたリソース アダプタ。

    • コンテナが保持する 1 つまたは複数の接続プール。特定の ManagedConnectionFactory に対応し、発信の管理対象接続を管理するために使用されます (この例では MCF-2。1 つの EIS との接続やさまざまな EIS との接続など、接続の種類に応じて他にも存在する場合があります)。

    • 複数の管理対象接続 (MC1、MCn)。リソース アダプタから EIS への物理的な発信接続を表現するオブジェクトです。

    • 接続ハンドル (C-handle)。リソース アダプタの接続ファクトリからアプリケーション コンポーネントに返されます。アプリケーション コンポーネントが EIS との通信に使用します。

着信接続処理では以下のコンポーネントが使用されます。

  • 1 つまたは複数の外部メッセージ ソース (MS1、MS2)。WebLogic Server への着信メッセージを送信する、エンタープライズ情報システム (EIS) またはメッセージ プロバイダです。

  • 1 つまたは複数の ActivationSpec (Act Spec)。それぞれが 1 つの MessageListener 型 (MLT-i) に相当します。

  • MessageEndpointFactory。EJB コンテナが作成し、着信メッセージング用リソース アダプタが MessageEndpoint インスタンス (MDB プールの MDB インスタンス) のプロキシを作成するために使用します。

  • メッセージ エンドポイント アプリケーション (メッセージ駆動型 Bean (MDB) やその他の J2EE コンポーネント)。リソース アダプタを介して EIS から着信メッセージを受信して処理します。

システムレベル規約

WebLogic Server と EIS の間に標準のシステムレベルのプラグイン可能性を実現するために、WebLogic Server では、J2EE コネクタ アーキテクチャで定義されたシステムレベル規約の標準を実装しました。この規約は、2 つのシステムが協調して作業できるように、アプリケーション サーバと EIS で実装する必要のある SPI クラスとインタフェースで構成されています。システムレベル規約の EIS 側は、リソース アダプタの Java クラスで実装されます。以下の標準規約がサポートされます。

  • 接続管理規約 - WebLogic Server は基底の EIS への接続をプールし、アプリケーション コンポーネントは EIS に接続することができます。リソースの共有を通じて接続を効率的に使用したり、接続ハンドルと EIS 接続の関連付けおよび関連付けの解除を制御したりできます。

  • トランザクション管理規約 - トランザクション マネージャと、EIS リソース マネージャへのトランザクション アクセスをサポートする EIS との間の規約。WebLogic Server はトランザクション マネージャを使用して、複数のリソース マネージャにわたるトランザクションを管理できます。

  • トランザクション インフロー規約 - リソース アダプタはインポートされたトランザクションを WebLogic Server に伝播できます。リソース アダプタは、EIS によって開始されたトランザクション完了呼び出しやクラッシュ回復呼び出しを流入させることができます。トランザクション インフローでは、トランザクションを調整するために外部トランザクション マネージャも使用されます。

  • セキュリティ規約 - EIS へのセキュアなアクセスを提供し、EIS に対するセキュリティの脅威を小さくするセキュアなアプリケーション環境をサポートします。EIS によって管理される貴重な情報リソースを保護します。

  • ライフサイクル管理規約 - WebLogic Server はリソース アダプタのライフサイクルを管理できます。デプロイメント時またはアプリケーション サーバの起動時にリソース アダプタ インスタンスのブートストラップを行ったり、アンデプロイ時やアプリケーション サーバの停止時にリソース アダプタ インスタンスに通知したりできます。

  • 作業管理規約 - リソース アダプタは、実行用に WebLogic Server に Work インスタンスを送信することで、作業 (ネットワーク エンドポイントのモニタ、アプリケーション コンポーネントの呼び出しなど) を行うことができます。

  • メッセージ インフロー規約 - リソース アダプタは、メッセージの配信に使用される特定のメッセージング スタイル、メッセージング セマンティクス、およびメッセージング インフラストラクチャとは独立して、WebLogic Server 内のメッセージ エンドポイントに、メッセージを非同期または同期的に配信できます。また、この規約は標準のメッセージ プロバイダのプラグイン可能性規約としても機能し、リソース アダプタを介してさまざまなメッセージ プロバイダ (Java Message Service や Java API for XML Messaging など) を WebLogic Server にプラグインできます。

これらのシステムレベル規約の詳細は J2CA 1.5 仕様 (http://java.sun.com/j2ee/connector/) で説明されています。

リソース アダプタ デプロイメント記述子

リソース アダプタの構造と実行時の動作はデプロイメント記述子で定義されます。プログラマはパッケージ化のプロセスでデプロイメント記述子を作成します。そのデプロイメント記述子は、アプリケーションのコンパイル時にアプリケーションの一部になります。

WebLogic Server リソース アダプタには 2 つのデプロイメント記述子があり、それぞれに XML スキーマがあります。