J2EEアラカルト

JBoss.orgのJBossサーバのページが更新されています。このページの下の方にあるカラフルな図がJBoss 4のアーキテクチャ概念図です。

JBossの目指しているのは、従来のJ2EEの機能をアスペクトとして分解して、POJOに対して好みのアスペクトを選択できるようにすることです。Marc Fleuryはこのことを「J2EEアラカルト」と呼んでいます。アスペクトの適用はモジュールのデプロイ時に動的に行われます。セキュリティやトランザクションのサービスはXDocletによる属性の宣言によって指定できます。これらから容易に類推できるように、JBossAOPの考え方はJBoss EJB実装の延長線上にあります。

JBossAOPの登場によって、従来のJ2EEサーバとしてのサポートが無くなるわけではありません。JBossはそのサービスのコアの部分をマイクロカーネルと言っています。マイクロカーネルOSでは、その上位のユーザOSのことを「パーソナリティ」と呼びますが、これにならえば、J2EEサーバとしての機能もパーソナリティでしょう。サーバ内部はAOPで整理されますが、表面上は従来のJ2EEサーバと変わりないようにするのでしょう。

JBoss 4では、このアーキテクチャのサービスレイヤを拡充し、その上位レイヤとしてアスペクトレイヤを追加しようとしています。JBossAOPの強みは、そのAOPフレームワークというよりも、従来から培ってきたインターセプタスタックにあります。JBoss 2からEJBコンテナの機能はインタセプタの集合体として提供されてきました。JBossでは、すぐに使える、しかも実績のあるインタセプタをアスペクトとして使えるのです。

Marc FleuryはIDE上の簡単な操作によってアスペクトPOJOに指定できるように望んでいるようです(C#をかなり意識しています)。XMLベースのアスペクトメタデータというのはIDEでの使用を前提にしていると考えてよいでしょう。おそらく、JBoss 4ではビジュアルにアスペクトを編集するようなところまでは到達でないでしょうが、その一歩手前くらいまでは期待できるのではないでしょうか。