モジュラー化Javaが本格化、OSGi Enteprise Specificationが承認

2010年3月31日

OSGiアライアンスは3月23日、サンタクララで開催されたEclipseCon 2010で、OSGiのエンタープライズ仕様である「OSGi Service Platform Enterprise Specification Release 4, Version 4.2」が承認されたと発表しました

OSGi ALLIANCE PUBLISHES ENTERPRISE SPECIFICATION(pdf)

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についてはまだ情報が豊富とはいえないため、本記事も主に以下の記事などを参照しつつ書きました。

関連記事

このエントリーをはてなブックマークに追加
follow us in feedly

カテゴリ 開発ツール / 言語 / プログラミング
タグ  Java


次の記事
プラグインは生き残る! ChromeがFlash Playerを統合、アドビはブラウザベンダとプラグインAPIの進化で協力

前の記事
セールスフォースが「Force.com vs Windows Azure」ビデオを公開。クラウド開発環境の明日はどっちだ?


カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



新着記事 10本


PR - Books


fig

fig

fig