って何だ?

昨日,会議中にオープンソースプロダクトを整理するような場面があった.特にJ2EE系のプロダクトは,汎用系技術者やC/S技術者とかからみると,ごちゃごちゃしていて訳がわからない状態.

JBossそのものは,スタート時のver1.xのころは,純粋にEJBコンテナだったと言われている.ver1.xのころのJBossの資料がないので(SorceForgeにあるのかな?),良くは知らない.

ver2.xではインターセプタがJBossに導入された.インターセプタというのは,最近はやりのIoC(あるいはAOP)のように,コンテナがモジュールを呼び出す際に,その直前や直後に指定した機能を動作させるようなもの.簡単に言うと,モジュール側のメソッド呼び出しの際にログを残すようにしたりとか.

ver3.xになってJMXカーネルが導入される.僕がはじめて触ったJBossは3.2.2なので,この世代からしか直接は知らない.JMXカーネルを導入したことで,インターセプト機能は取り除かれたんだっけ?そしてそれがAOPという形でver4.xで復活だっけ.ver3.2.3あたりでJettyからTomcatにデフォルトのWEBコンテナが変更.

ver4.xではAOPが導入される.細かいところをいうと,他にもいくつか.Hibernateの統合,分散キャッシュの実装,AxisもJ2EE1.4だからこのタイミング? MailServerはいつのタイミングになるんだろう.

上記は曖昧な記憶を元に書いているので,細かいところで間違っているかもしれません.NeverbirdプロジェクトのWiki(現在メンテ中)に詳しい情報があります.

で,何が言いたいのかと言うと,本来EJBコンテナ+αにすぎなかったJBossは,JMXカーネルを導入したことによって,いろんなプロダクトをMbeanとして簡単に組み込むことができるようになり,どんどん多機能化しているということ.

そうなると狭義のJBossは,JMXカーネルのことを指すのではと思ったりもする.「JBossってのはJMXサーバーなんですよ」

もちろんEJBコンテナはJMXカーネル以前からのオリジナルのものだし,JBossCache(TreeCache?)も生え抜きだと思うので,JMXカーネル以外の部分はJBossではないとは言えないけど,なんとなく.

以上,雑感です.曖昧な点多数.誤り等ありましたらごめんなさい.たまにはこんな文章も.