JCA 入門記 3.1 System Contracts

ごめんなさい( -_-)
入門してませんでした…。
ちがうの、資料作成で忙しかったの。
まぁ言い訳ですが。


そんなわけで (どんなわけで?),とっても久しぶりの「JCA 入門記」です.ちょっとずつでも前に進むのだ.


3. The Connector Architecture

この章では,コネクタ・アーキテクチャを概観するとのことです.
ということで,まずはざっくりとした要約.
EIS の種類ごとに提供されるリソースアダプタは,アプリケーションサーバプラグインすることが出来るとのこと.それにより,アプリケーションサーバにデプロイされたアプリケーションコンポーネントは (リソースアダプタを通じて) EIS を利用することが出来るようになるという次第.
そして,アプリケーションサーバが EIS (リソースアダプタ) と協調することで,トランザクション,セキュリティ,コネクション管理といったシステムレベルのサービスをアプリケーションコンポーネントから隠してくれるということです.


3.1 System Contracts
System Contracts というのは,アプリケーションサーバと EIS とをプラガブルにするための規約で,EIS 側はそれをリソースアダプタとして実装するということです.
リソースアダプタは EIS 固有のものであり,アプリケーションサーバおよびアプリケーションを EIS に接続してくれます.
例えば次のようなものがあるとのこと.

  • JDBC ドライバ.
  • ERP システムに接続するためのもの.
  • トランザクション処理システムに接続するためのもの.
  • メッセージングシステムのためのもの.

JDBC ドライバもリソースアダプタだという感じで書いてありますが,これまでの JDBC ドライバがそのままリソースアダプタとして使えるわけではなく,今後は (もうすでに?) JDBC ドライバもリソースアダプタとして提供される,ということではないでしょうか.JMS のコネクションファクトリも同様だと思われます.


また,アプリケーションと EIS との間の接続の方法により,次のように分類できるとのこと.

Outbound
このタイプのリソースアダプタでは,アプリケーション側から EIS 側へ接続します.
このタイプのリソースアダプタはパッシブなライブラリで,アプリケーションサーバが提供するスレッドコンテキストで動作します.
Inbound
このタイプのリソースアダプタは,EIS 側からアプリケーション側へ接続します.
そのため,リソースアダプタは受け身のライブラリではなく,独自のスレッドを持ち,EIS からの接続要求を処理ます.
そのスレッドは,アプリケーションサーバに要求して割り当ててもらうことも,リソースアダプタ自身が作成することも許されているようです.
Bi-directional
outbound と inbound の両方をサポートするリソースアダプタです.


コネクタ・アーキテクチャは,アプリケーションサーバと EIS との間の標準規約も定めています.

コネクション管理規約
アプリケーションサーバが EIS とのコネクションをプールすることを可能とする規約です.
トランザクション管理規約
EIS のリソースに対して,トランザクショナルにアクセスすることを可能とする規約です.
セキュリティ規約
EIS に対してセキュアにアクセスすることを可能とする規約です.
ライフサイクル管理規約
リソースアダプタがアプリケーションサーバにデプロイされた時や,アプリケーションサーバが起動した場合にリソースアダプタをブートするなど,アプリケーションサーバがリソースアダプタのライフサイクルを管理できるようにする規約です.
活動管理規約
リソースアダプタが様々な活動をすることが出来るようにする規約...らしい.なんだかよく分からないのでいずれまた.心より恥じる.
トランザクションの受け入れ規約
リソースアダプタからアプリケーションサーバトランザクションコンテキストを伝播することを可能にする規約です.
メッセージの受け入れ規約
リソースアダプタから非同期メッセージを通知することが出来るようにする規約です.

5〜12 章にかけては,これらの規約が詳細に解説されているようです.なので,今のところはこんな感じで十分かな.


アプリケーションサーバとリソースアダプタは論理的に分割されていますが,それはプロセスなどを物理的に分けて配置しなければならないということではないとのことです.


うーみゅ,また私訳の意訳の超訳 (©money さん) モードになりかけてるなぁ.
要するに JDBC ドライバや JMS コネクションファクトリをもっと一般化して様々な外部リソースと接続できるようにした API と,さらにアプリケーションサーバプラグインするためのパッケージングまで規定されているのがリソースアダプタだってことです.たぶん.
ということで今日はここまで♪
本当にちょっとだなぁ.心より恥じる.