|
|
前のページ 1 2 3
|
|
OSGiフレームワーク
|
OSGi仕様の実装を進めているプロジェクトとしてApache Felix、Knopflerfish、Eclipse Equinoxなどが存在します。今回取り上げているEclipse Equinoxフレームワークは、Eclipseが稼動している環境で必ず稼動しているOSGiフレームワークです。
Eclipse IDEはほとんどすべての機能をプラグインという形で実装しており、それらを組み合わせることで素晴らしい開発環境を実現しています。
例えばEclipseの多くのプロジェクトではEMF(Eclipse Modeling Framework)やGEF(Graphical Editing Framework)、またEMFやGEFをベースとしたGMF(Graphical Modeling Framework)が使われています。
これらのプロジェクトの成果物は、実はEclipseが稼動していない独立した環境でも使用することが可能です。また、既存の環境へ追加するだけでプラグインを組み合わせることができます。
例えば、Webアプリケーション開発環境であるEclipse WTP(Web Tool Platform)はEMFやGEFを用いてWebアプリケーションの画面遷移を設定するエディタを作成しています。
もしEclipse WTPの開発者がまだリリースされていないGEFの機能を利用したいとします。OSGi環境下の場合ではプラグインプロジェクトをCVSからダウンロードするだけでモジュールとして利用できます。
これが仮に通常のアプリケーションであれば最新のソースコードをダウンロードするだけではなく、ライブラリのビルドが必要となります。さらにできあがったライブラリを対象のアプリケーションへ配置しなければなりません。
OSGiフレームワークでは、こういった依存するライブラリを簡単に配置できる手軽によって、素早い開発を実現しています。
また、更新サイトなどを使って再起動することなくプラグインの更新を実現しています。いくつかのプラグインではEclipseのワークベンチを起動するときに初期化処理を行うので、プラグインの状態を変更するタイミングでEclipse IDEの再起動を勧めるダイアログが表示されることがあります。これらのプラグインを正しい初期状態にするために再起動を勧めているだけで、ほとんどの場合再起動をする必要がありません。つまり、実際にはEclipseを再起動しなくても内部では動的にモジュールが入れ替えられています。
|
幅広く対応が進むOSGi
|
最近、OSGiはEclipse IDE以外の環境でも対応が進んでいます。
例えばアプリケーションサーバであるWebSphereは、バージョン6.1よりOSGiが組み込まれています。また、SpringFrameworkでもOSGi環境に対応するためのプロジェクトが立ち上げられています。
SpringFrameworkに代表されるDIxAOPコンテナは最近の開発に欠かすことができないものになっています。
OSGi環境でもDIxAOPコンテナを使用したいという声は多いです。しかし、OSGi環境下では通常のアプリケーションとクラスやリソースのロード方法が違うためSpringFrameworkをOSGi環境へと対応させるextensionが必要となっていました。またSpringFrameworkがOSGiに対応することで、JVMを止めることなくSpringが管理するBeanを最新にしながら開発できるようになります。
これにより、インターフェースさえ決めておけばBeanを提供する側と利用する側が分かれた分散開発が実現できるでしょう。
OSGiがもたらしているモジュラリティの向上が、どのように開発に役立つかを感じていただけたのではないでしょうか。
|
次回は
|
第3回では簡単なBundleを作成して、モジュールを動的に追加/削除をするOSGiコンソールの使い方を解説します。
*本文1段落目の文章「OSGiの仕様の策定を進めているOSGi Allianceが認定している実装には、Apache Felix、Knopflerfish、Eclipse Equinoxの3つが存在します。」を「OSGi仕様の実装を進めているプロジェクトとしてApache Felix、Knopflerfish、Eclipse Equinoxなどが存在します。」に訂正します。(2007/08/22)
|
前のページ 1 2 3
|
|
|
|
著者プロフィール
株式会社チェンジビジョン 近藤 寛喜
モデリングツールJUDEを開発しているチェンジビジョンにて、プロジェクトの現在を見える化し、状況を共有することで現場で起きている問題を解決するためのツールTRICHORDを開発している。以前からオープンソースのプロジェクトに興味を持ち、特にEclipseプラットフォームに心酔している。最近はゲームの操作感を刷新したWiiリモコンを使って何か面白いUIが作れないか模索している。
|
|
|
|