SpringSource Application Platformとは

Spring Frameworkの開発者Rod Johnson氏が率いる企業「SpringSource」が、先月30日にSpringSource Application Platform(以下、SSAP)のβ版をリリースした。

SSAPとは何か。簡潔に言うなら、「EJBを捨て、OSGiとSpring Framework、そしてTomcatを採用した、ライトウェイトなアプリケーションサーバ」である。様々な変遷を経て肥大化した現在のJava EE標準から離れ、Spring FrameworkやOSGiといったテクノロジーを最大限活用すべく、一から設計されたアプリケーションサーバ、それがSSAPだ。

Spring Frameworkは、言わずと知れた著名なDI(Dependency Injection)コンテナである。こちらについては、改めて説明するまでもないだろう。一方、OSGiはJavaに「モジュール」という概念を持ち込み、モジュールのバージョニングと依存関係の管理、モジュール内/外のアクセス制御、モジュールの動的なインストール/アンインストールなどをサポートするための仕様である。その実装の一つであるEquinoxはEclipseのプラグイン管理の仕組みなどにも採用されており、SSAPでも中心的な存在だ。

OSGiはJava標準に取り込まれる可能性もあり、Javaの未来を占う上でも非常に重要な存在だと言える。その辺りの事情を知り、Equinoxを簡単に試してみたいという方はこちらの記事などを参考にしていただきたい。

また、Spring FrameworkにOSGiを統合するためのプロダクトである「Spring Dynamic Modules for OSGi」も、SSAPの重要な構成要素だ。

こうした各種技術を統合することで、Spring Frameworkによる柔軟性と一貫したプログラミングモデル、そしてOSGiによってもたらされる強力なモジュラリティを同時に備えた、理想的なアプリケーションサーバを目指すのがSSAPというわけだ。

またOSGiを利用することによって、SSAP内のアプリ全てが同じJARファイル/クラスファイルを共有できるため、メモリ使用量の削減も期待できる。

先ほど「SSAPはJava EE『非準拠』である」と述べたが、既存のWebアプリからの移行を促すためにも、WAR(Web ARchive)ファイルフォーマットはサポートされる。SSAPの内部に同梱されたTomcat上で動作するので、現在Tomcatを使用しているプロジェクトにとっては互換性を心配する必要もない。

以降では、簡単なWebアプリケーション(WAR)をSSAPに移行する、というサンプルを通して、SSAP上でのプログラミングについて簡単に学んでいきたい。現状のSSAPには「Hello, World」レベルのサンプルが提供されていないので、そういう点では価値のある情報をご提供できるのではないかと考えている。