行き詰まる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)
情報をお寄せください:
最新記事
|
|