OSGiによるスーパアジャイルなエンタープライズ開発という未来

※タイトルは釣りだし、内容はほとんど妄想です。


SpringSource Tool Suite(以下、STS)というEclipseベースのツール*1を2〜3日程度使ってみたふと思ったこと。


STS上では、バンドルをOSGi上にインストールしたりアップデートしたりが簡単にできます。
バンドルがアクティブ状態のときにソースを修正してビルドすると、自動的にバンドルがアップデートしなおされます。この自動アップデートは、再ビルドしたバンドル自身とそれを利用するバンドルだけに限定されて行われます。ステキ。


ここで、バンドルの粒度についてid:kompiroさんが言われてるような、UNIXのコマンドライクな細粒度であると仮定すれば、自動アップデートにかかる時間はかなり短くなると予想されます。
少なくとも、Tomcatなどで普通のWebアプリのwar全体をデプロイし直すよりも全然早い。圧倒的に早いと言っていいんじゃないかな。はかってないし、根拠もないけど。


もしそうだとすると、普通のWebアプリではデプロイのオーバヘッドによる開発効率の低下を回避するためにみんな大好きホットデプロイという技術が導入されたんですけど、ことOSGiに関しては、ホットデプロイ系の技術は不要になるんじゃないだろうか。


とすると、

  • 実装時は実際に動作させながらサクサク開発もできるし、
  • モジュラリティが高いので複数チームでの分割開発にも対応しやすいし、
  • 運用後も使える動的差し替え機能もあるし、
  • 色々すごいし

とか、OSGiってすごいですね。


数年後には「OSGiによるスーパアジャイルなエンタープライズ開発」という本が出版されてるのかな。

*1:プラグインとしても提供されてるので既存Eclipseに機能追加もできます。