行き詰まるJavaのアプリ開発――JavaVMのAOP対応で解決?

オープンソースのAspectWerkz創立者で、BEA Systemsの社員としても働いているジョナス・ボナー氏が、JavaVMでAOPをサポートするという取り組みについて語った。

» 2005年08月30日 22時07分 公開
[新野淳一,@IT]

 米BEAシステムズは、JavaVMに新しいAPIの組み込みを進めている。この開発を推進する同社のジョナス・ボナー(Jonas Boner)氏は、「Javaによるアプリケーション開発は行き詰まっている。この新しいAPIでそれを解消する」と、その目的を語る。

ボナー氏 米BEAシステムズ JRockit Team ジョナス・ボナー氏

 ボナー氏は、アスペクト指向プログラミング(AOP:Aspect Oriented Programming)を実現するオープンソースのAspectWerkz創立者。現在AspectWerkzのプロジェクトはBEAからスポンサーを受けており、同氏はフルタイムのBEA社員としても働いている。

 現在、Javaの開発環境として、例えばO/Rマッピングを実現するHibernateや、AOPを実現するAspectWerkzなどさまざまなツールが提供されている。これらのツールのいくつかは、バイトコードを操作すること(bytecode instrumentation)で機能が実現している。そのため、複数の環境を組み合わせるとバイトコードの操作で相互に矛盾が生じるといった問題が発生する。

 すでに1年ほど前から、HibernateとAspectWerkzの組み合わせで上記のような問題が発生しているとボナー氏は指摘し、「同様のことは、例えばGeronimo(オープンソースのJ2EEサーバ)やSpring(DIコンテナの一種)などでも起こり得るだろう。今後さらにこの問題は広がっていく」(ボナー氏)。

 AOP、DIコンテナ、O/Rマッピングなどは、企業システムの開発効率を向上させるためのツールとして大きな注目を浴びており、今後さまざまなツールで広く使われる機能になるはずだ。しかし、組み合わせで上記のような問題を抱えているために、ボナー氏は「行き詰まり状態にある」と現状を表しており、なんらかの解決策が必要だとした。

 その解決策が、ボナー氏が手がけているJavaVMでのAOPのサポートだ。同氏が目指すのは、BEAが提供するJavaVMのJRockitで、AOP環境として著名なAspectWerkzとAspectJを統合してサポートすること。しかも、AOP環境の実現はバイトコードの操作ではなく、JavaVMが提供するAPIを通じて行うため、いままでバイトコード操作で発生していた問題を解決できる。

 このAPIはAOPのためだけのものではなく、O/RマッピングやDIコンテナの実現にも利用できるという。「SpringをこのAPIで書き換えたとしても、一週間くらいでできるのではないか」と、移植にもそれほど手間がかからないと予想。「できるだけ多くの開発者に使ってもらい、フィードバックしてもらったものをまた反映していきたい。このAPIが標準化され、IBMやサンなどでも採用されることが最も重要だ」と、標準化への強い意欲を表した。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ