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

2005/8/31

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

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

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

(@IT 新野淳一)

[関連リンク]
日本BEAシステムズ

[関連記事]
これは何かの始まりか? BEAがプラムツリー買収 (@ITNews)
ESB導入でSOAの展開を迅速に、BEAがESB製品をリリース (@ITNews)
ゼロ・ダウンタイムを目指すBEA WebLogic Server 9.0J (@ITNews)
オープンソースに安易に飛びつくな、Spring開発者が警告 (@ITNews)
JBossとアスペクト指向プログラミングの密接な関係 (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)