OSGiのコンポーネントモデルがもたらすコラボレーション
OSGi好きな僕は思う。OSGiのコンポーネントは複数のプログラマがコラボレーションして作業するための環境として、現状一番優れているのではないかということを。Eclipseの場合は拡張ポイントレジストリをOSGiのサービスとしてOSGiフレームワークへ登録しているから、XMLによる拡張を可能にしている。(もし同様のサービスを作成し、OSGiサービスとして登録すれば、他言語による拡張を可能にできる。)
なぜコラボレーションする環境として一番優れているのではないかと思ったかというと
- 作業している内容が他のBundleへ影響を与えない
- 拡張できる範囲を明示できる
- ネットワーク越しの機能をインストールできる(インストールは気軽にできる)
特にEclipse Platformの場合は
- インストールは特定のフォルダへ入れるだけ
他に同様のことができるフレームワークがあれば教えてほしい。SpringFrameworkもAndroidもEclipseもコンポーネントベースでアプリケーションやシステムを拡張できるのが魅力でOSGiを採用してるはず。コンポーネントベースでコラボレーションができることはプログラマにとってとても面白い環境ではないかと思ってこのエントリを書いてみたのだけれど、gdgdになってきたのでそろそろ締めます。余談ですが、元々ネットワーク家電向けに考えられたOSGiにこういう使われ方があったとはあんまりかんがえられてなかったらしい。