The Web Beans Manifesto

WebBeansのメインテーマはコンポーネント疎結合です。疎結合なので、コンポーネントの差し替えや拡張が簡単になり、システムをよりダイナミックにしてくれます。コンポーネントはコンテキストで管理されるので、アプリケーションはコンポーネントのライフサイクルを管理する必要はありません。と、ここまではSeamとほとんど一緒。

WebBeansでは、アノテーションの使い方がSeamよりも徹底しています。Seamコンポーネントでは@Scopeや@Nameをはじめ、複数のアノテーションがクラス定義につきますが、WebBeansでは「ステレオタイプ(stereotype)」というアノテーションにまとめられます。コンポーネントの検索は、Seamでは名前と型だけでしたが、WebBeansではアノテーションも検索時に使用されます。

それから、WebBeansではアプリケーション*1がWebBeans APIによってコンテキストを定義することができます。つまり、コンテキストを拡張することができるのです。これに限らず、WebBeansではコンポーネントのコアとなる基本的なAPIが提供されています。だから、Gavin自身がブログのコメントで書いているように、WebBeansはコアエンジン、SeamはWebBeans上のフレームワークレイヤ、として位置づけられるというのも、うなずけます。

The theme of Web Beans is:

* Loose coupling with strong typing!

*1:フレームワークが、と言った方がより適切ですね。WebBeansはJava EEフレームワークを統合するためのコアモデルを提供するのですから