JBoss4.0.0DR3 Released

えーと。インストールしただけでは、これといって動くアプリが無いので、WebコンソールでVersion Nameだけ確認しておきました(笑)。DR2では"Matrix2"でしたが、DR3は"Zion"になってました。どういうつもりかは不明。

JMX 1.2 compliance
・ JMS 1.1 compliance and massive performance improvements
EJB 2.1 QL support
EJB 2.1 Web services support
EJB 2.1 Timer Service
Servlet 2.4 and JSP 2.0 support
・ Rev of JBossAOP system aspects (tx, txlock, remoting)
JCA/JDBC - Debugging unclosed ResultSets
JTA - Last Resource Gambit (bypasses "You are not getting the semantics you expect")

JBoss AOP 1.0 Beta

DR2から、だいぶ変わっています。特にPointcutの指定方法が変更されています(再定義されたと言った方が適切)。それに、XDocletからQDoxを使うようになっているし、Precompilerも含まれています。

・A precompiler so that bytecode manipulations can be done at compile time. This makes JBossAOP portable to any Java environment
・JBossAOP can be run as an embeddable Java library. No special classloading or driver class to run JBossAOP programs

Re: Enterprise Integration Patterns - Chapter 11: System Management

この本はシステム間のインテグレーションの本です。主に、メッセージングサービスを使った連携のパターンを整理してます。昨日、11章システム管理を読んで感心しました。以前から、メッセージングサービスを使ったシステムでの管理方法に疑問をもっていたからです。

メッセージングサービスとは、電子メールに例えられるような非同期通信のサービスです(電話は同期通信ですね)。つまり、相手にリクエストを出したら、、相手の処理を待たずに別の仕事にとりかかれます。相手がそれをいつ処理しようと相手の勝手です。お互いに時間に束縛されないのがメッセージングサービスのメリットです。相手が保守のためにダウンしていても、復旧したあとメッセージを処理すればよいのですから障害にも強いです。

でも、このような連携方法だと、メッセージがA->B->Cとたらい回しされて処理が進むので、どこでメッセージが滞留しているのか、どこで障害が発生しているのかを知る必要が生じます。前置きが長くなりましたが、この本の11章では、この方法について書かれています。

その一つがControl Busパターン。これはアプリケーションのメッセージとは別に制御情報を流すためのメッセージを定義するというもの。確かに、各コンポーネントが制御情報の授受のためのキューを持てば、管理コンソールから構成を一斉に変更できるし、各コンポーネントの状態把握もできる。データバスとコントロールバスの分離。なるほど。