TOP比較データ> AOPとは
徹底比較!!Javaアーキテクト
徹底比較!!Javaアーキテクト

第2回:DIxAOPコンテナの比較
著者:シンクイット  山口 忠   2005/11/10
前のページ  1  2   3  4  次のページ
AOPとは

   AOP(Aspect Oriented Programming)とは、トランザクション処理、ロギング処理など本来オブジェクトが行うべきではない処理を切り出し、外部(AOPコンテナなど)から対象のオブジェクトに注入することでPOJOを実現するための機能です。

   AOPを使う以前は、オブジェクトに本来処理すべきではないコードが記述されているため、クラス図やシーケンス図などのドキュメントとソースの整合性が取れておらず、ソースの可読性が下がっていました。
AOPの構図
図3:AOPの構図
(画像をクリックすると別ウィンドウに拡大図を表示します)

   また開発者には、業務ロジック以外にもトランザクション処理などの難しい知識も必要とするため、生産性や品質が下がっていました。しかしAOPを用いることで、役割分担ができるようになり、個々の作業に専念できるようになるため、システム開発がより効率的に行えるのです。


Seasar2

Seasar2    Seasar2はSeasarファウンデーション(http://www.seasar.org/)にて開発されているDIxAOPコンテナです。ひがやすを氏がチーフコミッタ(開発者)を務めており、「システム構築の現場にもっと『易しさ』と『優しさ』を」をコンセプトに開発を進めています。

   そのコンセプト通り、最新バージョンの2.3では設定ファイルはおろかアノテーションすら記述しなくてもコンポーネントの登録が可能となっています。これにより開発者は設定ファイルの間違いに戸惑うことはなく、アノテーションを使った定義方法にありがちなオブジェクト間の依存関係がわかりにくくなるということもなくなるのです。

   またSeasarではサブプロジェクトの多さも特徴の1つとしてあげられます。他のフレームワークとの連携を実現するサブプロジェクトが多く存在し、システム全体の様々な層をカバーできます。現在Seasarのコアとなるコンテナ部もあわせると、実に25ものサブプロジェクトが存在し、現在も活発に開発されています。

   Seasarでは商用サポートサービスがはじまりました。ヘルプデスクに加え、オープンソースを実際のシステム開発に使うにあたって懸念される不具合修正が対象となっています。これにより、今までオープンソースの導入になかなか踏み出せないでいたプロジェクトでも容易に導入できるようになったわけです。

   後述するSpringと並んで注目されてきたSeasarですが、今後は今以上に様々なプロジェクトに利用されていくでしょう。

前のページ  1  2   3  4  次のページ


株式会社シンクイット 山口 忠
著者プロフィール
株式会社シンクイット  山口 忠
前職は大手SI企業にて、SEとして各種言語を使ったシステム開発を経験する。常に進化し続けるオープンソースソフトウェアの魅力にとりつかれて現職に至る。現在は某プロジェクトにてEJB、Webサービスを使ったシステムのフレームワークを開発しながら、Javaのプロフェッショナルになるべく、日々精進している。


INDEX
第2回:DIxAOPコンテナの比較
  はじめに
AOPとは
  Spring Framework
  Geronimo