モジュラー化Javaが本格化、OSGi Enteprise Specificationが承認
OSGiアライアンスは3月23日、サンタクララで開催されたEclipseCon 2010で、OSGiのエンタープライズ仕様である「OSGi Service Platform Enterprise Specification Release 4, Version 4.2」が承認されたと発表しました。
OSGiとは、Javaで作られたモジュールの動的な追加や削除を可能にするための仕様です。また、モジュールの依存関係などについても解決する手段を提供し、モジュールの独立性を高めています。
OSGi実装のよく知られた例として、統合開発環境であるEclipseのプラグインがあります。一般に、あるアプリケーションに対してプラグインを追加したり削除したりする場合、それを有効化するためにアプリケーションを再起動する必要がありますが、EclipseではOSGiにより動的なプラグインの追加削除を実現しているため、再起動なしでプラグインのが有効になります。ちなみにOSGiではプラグインに相当するモジュールを「バンドル」と呼びます。
モジュール化の進展が期待される一方で、複雑さの課題も
OSGi Enterprise Specificationでは、既存のJava EEテクノロジーに対してOSGi環境の統合を実現するなどの特徴があります。Java EEサーバで、ある機能が必要になった時点で動的に呼び出して追加するといったことが可能になりますし、ユーザーアプリケーションについてもOSGiのバンドルとして動的なモジュールによる構築が可能になります。
今回のOSGi Enterprise Specificationの承認によって、Java EEサーバでのOSGiによる動的なモジュール化が進展し、Java EEサーバ自身はより軽量かつ柔軟なプラットフォームとなり、その上で実行されるアプリケーションも、設計、開発や運用に独立性の高いモジュール化を取り入れることで、設計や開発が容易になり、拡張性が高まるなどの効果を得ることが期待されます。
OSGiを組み込んだ先進的なアプリケーションサーバのSpringSoruce dm Serverをはじめ、オラクルのWebLogic Server、IBMのWebSphere Application Server、JBoss、Glassfishなど主要なJava EEサーバもOSGiの実装をそれぞれ取り入れています。OSGiはJavaアプリケーションサーバでのモジュール化における事実上の標準となりそうです。
その一方で課題も挙げられています。OSGiの複雑さです。SD Timesの記事「Enterprise OSGi uptake tops EclipseCon」では、「エンタープライズアプリケーションの開発者には、素のOSGiプログラミングモデルを提供されても『そんなものはソリューションではない』と言われてしまうだろう」というEclipse FoundationのディレクターMike Milinkovich氏の言葉を紹介しています。
OSGiによるモジュール化は、やや停滞気味のJavaの現状を打破するために不可欠な技術と見られていますが、開発や運用をより容易にするためのツールなど支援環境の充実が今後の課題となりそうです。
OSGi関連リンク
OSGiについてはまだ情報が豊富とはいえないため、本記事も主に以下の記事などを参照しつつ書きました。
- EclipseやSpringで使われている基盤技術OSGiとは (1/3) - @IT
- InfoQ: Bundle.update: Java EEがOSGi化し、JSR 294 が凍結に
- InfoQ: Modular Java:動的なモジュール化
- WebSphere Application ServerのOSGi対応について ― SlideShare
- Oracle WebLogic ServerのJava EE 6へのロードマップ(後編)
- GlassFish v3 の OSGi 対応について « 寺田 佳央 – Yoshio Terada
- Enterprise OSGi spec rolls out at EclipseCon
関連記事
あわせて読みたい
プラグインは生き残る! ChromeがFlash Playerを統合、アドビはブラウザベンダとプラグインAPIの進化で協力
≪前の記事
セールスフォースが「Force.com vs Windows Azure」ビデオを公開。クラウド開発環境の明日はどっちだ?