Enterprise OSGi入門 / RADによるコンポーネント指向開発の実践 @ Innovate2010

developerWorksのメールマガジンに招待コードが付いていたので、午後から@nobusueさんのOSGiの話を聞こうとIBM Innovate 2010に行ってきました。このまえのGDDとは打って変わってスーツの人が多かったです。2セッションしか聴いてないけど、参加者層はEclipse Democampに近いような。

IBM Innovate 2010:セッション概要 - Japan

アンドロイドと狂詩曲(ラプソディー)─ AndroidアプリケーションをRhapsodyを使って作ってみた ─

ただ、一セッションしか聴かないというのももったい無いので、Androidのセッションも聞いてきました。ラプソディという組み込み用のモデリングツールでAndroidのアプリケーションを作成するという内容でした。
ラプソディでモデリングして出力したコードをEclipseで取り込みエミュレータを動かすというデモでしたが、正直なところラプソディを使うメリットがよく見えませんでした。これならモデリングもEclipseでやったほうが良いのでは??と思ってしまったのですが。
iPhoneAndroidと共通のモデルを使えるみたいな話がプレゼンにあったので、そういう話も聞きたかったですが。。

Enterprise OSGi入門 / RADによるコンポーネント指向開発の実践

アンドロイドのセッションがかなり盛況だったのにこちらはスカスカでした。なんでだろう?こちらの方が全然おもしろかったですが。
以下メモです(OSGiの一般的な話は省きます)。

  • OSGi R4.2からEnterpriseSpcificationが追加された。
    • JavaEEを考慮した仕様
    • Spring dm server由来のDIなどの機能を標準化
  • Enterprise Specification
    • アセンブリフォーマットの拡張
    • JavaEEコンテナサービスとの統合
    • 宣言的なDI(Blueprint)
  • 構成
    • wab(WebAplicationBundle) => war + OSGi metadata
    • eba => ear + metadata
  • Blueprint container service
    • SpringベースのDI
    • OSGI-INF/blueprint/service.xml
    • Springのbean定義のようなもの, AOPを使う
  • アプリケーションサーバの対応
    • ほとんどすべての商用製品がOSGi対応している
    • アプリケーションサーバ内部だけでなくユーザーアプリケーションのOSGi化に対応
    • WAS
      • FeaturePackで対応
      • 管理コンソールでバンドルの管理が可能
  • RAD
    • Eclipseベースの開発環境
    • バンドルエクスプローラ(依存関係の可視化ツール)があるのはこれだけ!
    • バンドルのカスタムビルド
  • その他

これまでOSGiコンテナを使ってWebアプリケーションを構築するとなると、どういう構成・方法が良いかわからなかったのですが、Enterprise SpecificationでユーザーアプリケーションのOSGi対応も徐々に進んでいくのかなと感じました。アプリケーションサーバの管理コンソールなどからアプリケーションのバンドルを動的に入れ替えることができるというのは、運用などを考えると非常にメリットがあると思います。