Mule ESB 3のアーキテクチャについて

Mule の日本語情報が少しでも増やそうと思ったので、少しずつ書いていきたいと思います。

Mule ESB は、EIPのリファレンス実装を用意したインテグレーションフレームワークとして使えるESBです。

EIPのリファレンス実装なのは、Camel と同様ですね。


Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series (Fowler))

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series (Fowler))

したがって、Mule のようなインテグレーションフレームワークを理解するには、EIPの3章くらいまでの内容を知っておく必要があります。
でないと、どんな問題を解決しようとしているか、ピンとこないと思います。

あるいは、Mule In Action の第1章を読んでもよいかもしれません。こちらは眠くなるのでおすすめできませんが。



本題に入ります。

Mule 3 がどう進化したのかが、MuleSoft社のブログで紹介されています。

以下の記事で、メッセージフローというのは、結局パイプラインの一形態だという説明をしています。
結局、メッセージフローというのは、POSAやEIPにある、Pipes and Filter Patten で実現されるべきものだったと。

それが、Mule 3のアーキテクチャのコンセプトです。

http://blogs.mulesoft.org/mule-3-architecture-part-1-back-to-basics/

http://blogs.mulesoft.org/mule-3-architecture-part-2-introducing-the-message-processor/

内部では、各オブジェクトがメソッドチェインされています。



こういうインタフェースの大きな変更はありましたが、後方互換性も考慮されています。
Mule 2系の設定ファイルは、ほとんど修正しなくても動くようになっているので。
(synchronous 属性とCXF周りは、互換性がありませんので注意)



ちなみに、Mule 2系のアーキテクチャについては、説明がややこしいので省略します。

アーキテクチャの思想を理解するだけで、相当時間がかかるし、理解してもうまく説明できないアーキテクチャだったりします。
また、アーキテクチャがわかったとしても、設定ファイルの書き方があまり直感的でないかもしれません。
なれるまで1ヶ月とかかかっちゃうかもしれませんね。