id:daisuke-mがリア充で動けなくなったので、代わりに参加してきた。
OSGi勉強会 2009/12/23
いろいろ新しい刺激がありました。ありがとうございました。
Neilさんのプレゼン とても参考になりました。
以前からちょこちょとOSGiは触っていたが、やっぱこれは業務アプリケーションにこそ必要だと実感した。
簡単な感想としては以下。
- OSGiの波は来ている! おしゃれなアプリケーションサーバはOSGi inside。ESBの実装であるMuleやServiceMixもOSGiに対応している。フレームワークでは、Spring, Google Guiceも対応。IDEのEclipse, NetBeansも対応。ユーザランドのアプリケーションでもOSGi採用の波が来ている。
- 素のJavaだとモジューラビリティに問題がある。
jarにあるクラスは同じクラスローダにフラットにロードされてしまうからだ。DIでクラス間の依存関係を疎にできても、jar間の依存関係の解決ができない。
たとえば、以下のような依存関係で一つのアプリに配備する場合はwicket.jar内部のクラスがバッティングする可能性が高い。Log4J、XMLパーサとかでもこのような問題はよくおきる。
wicket-1.4.4.jar ---> login-pannel-1.0.0.jar wicket-1.4.5.jar ---> user-config-pannel-1.0.1.jar
でも、OSGiなら上記の依存関係を難なく解決できる。importするバンドル(OSGi上の配布単位)とそのバージョンの範囲を指定できるのは、ずばらしい。
- ServiceTrackerをそのまま使うのは面倒だから、bndとか、Spring DMとかGuice PeaberryとかiPOJOを使うといいよ。
Wicket on Equinoxとtychoビルドはやっているので、後々エントリにまとめてみたいと思う。