OSGiとSpring Frameworkの関係

少しだけ概念の説明を。OSGiSpring Frameworkは、元々は全く別のプロジェクトですが、根底に流れる思想のような部分では共通するものがあります。その最たる部分が、再利用可能なコンポーネントとしてのソフト、と言う考え方です。これはもうずっと前から様々な人が挑戦してきた分野ですが、なかなか上手く行っているとは言いがたい情况です。この問題に対し、OSGiは依存関係のきっちりとした監理と、公開、非公開のAPIの明示的な宣言と言う手法で、Springは、依存性の注入と言う手法でアプローチしました。更にOSGiでは、サービスの動的な追加などが可能になっています。この両者のいいところを融合しようと産まれたのがSpring DM (かつてはSpring OSGiと呼ばれていました)です。これにより、Spring Frameworkの持つ大きな資産を、OSGiベースのアプリケーションの世界に持ちこむことが可能になりました。SpringのDIの考え方を持ちこむ事により、OSGi依存のAPIを使わないコードで、つまりPOJOを使ってOSGiのアプリケーションを作製することが可能になりました。OSGiのダイナミズムと、Springの持つ柔軟性を融合することにより、(設計さえきちんと行なえば)非常に再利用性の高いコンポーネントを効率的に実装することが可能です。

この組み合わせの便利さを学ぶには、実際にコードを書いてみることが近道だと思います。しかし、まだまともな本はおろか、ネット上の情報も非常に乏しいのが現状です。そこで、とりあえずどんなものかを紹介したいと思い、簡単な例を作ってみました。

第三回へ続く)