• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Spring Dynamic Modules
 

Spring Dynamic Modules

on

  • 5,303 views

JSUG第7回「初冬の勉強会」で発表した資料です。

JSUG第7回「初冬の勉強会」で発表した資料です。

Statistics

Views

Total Views
5,303
Views on SlideShare
5,193
Embed Views
110

Actions

Likes
0
Downloads
39
Comments
0

4 Embeds 110

http://d.hatena.ne.jp 98
http://www.slideshare.net 9
http://s.deeeki.com 2
http://209.85.173.104 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Spring Dynamic Modules Spring Dynamic Modules Presentation Transcript

    • Spring Dynamic Modules 近藤 寛喜
    • 自己紹介させてください • お仕事 – Eclipse RCPプログラマ • EclipsePlugin開発勉強会(GoogleGroup) • OSGiについて書かせていただきました。 – 「今日のいいのかこんな記事」として取り上げられ ました。 • http://www.javainthebox.net/blog/2007/08/blog- post_05.html • OSGiがJDKに入るかどうかを問題視
    • Spring Dynamic Modulesって? • 以前はSpring-OSGi – プロジェクト名はOSGi Allianceからの承認待ち • 導入したときのうれしさ – 動的にApplicationContextの保持するBeanを入 れ替えられる – JARの依存性地獄から抜けられます
    • アジェンダ • そもそもOSGiってなんなのさ • Spring Dynamic Modulesの設定方法 • 簡単なデモ
    • ざんねんなおしらせ • Spring Dynamic Modules は2.5リリースに は含まれてません(現在RC1リリース) • 動作は非常に良好と言いたかったんですが、 うまく行きませんでした。Orz • 環境の問題だと思われます。 • それでもデモしていいですか?
    • OSGiってなに? • Open Service Gateway Initiativeの略 – 家電などの機器間でサービスを提供するための インターフェース仕様を規定 • 現在R4.1が公開されています • 仕様なので、実装はいくつかあります – 一部ではJava Operating Systemだと言う声も
    • OSGiってどこで使われてる? • Eclipse Platform • 携帯電話/PDA(Nokia) • APサーバーでも – Websphere – JBoss(JBoss-OSGi) • 拡張性の高さ・容易さが求められる場面で使われて います。 • ×Android – OSGiの動作報告アリ • △ JDKに導入 – モジュール管理システムとして →Sunはどうしても自作
    • OSGiのうれしさ • VMを停止せずに機能追加・削除・更新ができる – 実行中にサービスを入れ替えられる • 依存するライブラリを極力衝突させない仕組み – 実装に依存しないクラスのロード • インストールされているコンポーネントで実行時に間に合わせる – モジュールごとにクラスローダーの境界を設定できる • Public classでも他のコンポーネントからのロードを制限 – ロードするライブラリのマルチバージョンサポート • 同一パッケージで違うバージョンのロードを可能に OSGiではBundleという単位でモジュールを扱います
    • コンソール上で機能追加 State (active) • install State (RESOLVE) – Bundleをインストール System Bundle bundle M • start – Bundleを活性化 Bundle • stop D-v2 X – Bundleを停止 • uninstall Bundle B – Bundleを削除 Bundle Bundle A C OSGiによるBundleの連携
    • どうやって設定するの?(1) • 各Bundle(モジュール)のMETA-INF/MANIFEST.MF
    • どうやって設定するの?(2) • サービスの登録・読み込み
    • OSGiのよくしたほうがいいところ • モジュールをまたぐと基本別世界 – モジュールをまたいだDI – モジュールをまたいだリソースのロード • 約束事が多い • この辺りをSpringFrameworkがサポート
    • Spring Dynamic Modulesのうれしさ • OSGi環境に導入すると、 ApplicationContextをサービスとして提供 – Springの持つAOP/Transaction等の機能を提供 • モジュールの状態によって自動的にBeanを 登録・削除する • XML設定でOSGiのお約束をSpring流に
    • SpringDynamicModulesを使うと? Bean State (active) • install State (RESOLVE) – Bundleをインストール System Bundle bundle M • start – Bundleを活性化 Bundle Spring • stop extender X – Bundleを停止 • uninstall Bundle B – Bundleを削除 Bundle Bundle A C Spring Dynamic Modules 導入後のOSGi
    • Spring Dynamic Modules • サポートしているプラットフォーム – 仕様上R4.0以降のプラットフォーム – テストしているプラットフォーム • Eclipse Equinox • Apache Felix • Knopflerfish • どんな感じに設定するか見てみます
    • Spring Dynamic Modulesを使うには Bundle編 • Bundleに下記の設定を追加 – OSGi Framework上のApplicationContextに追加 •META-INF/MANIFEST.MFに下記を追記する Spring-Context: filepath タイムアウトなどの細かい設定が可能 •META-INF/spring/というフォルダを作成し、その 下にxmlを配置する
    • Spring Dynamic Modulesを使うには XML編 • サービスを登録する場合 • サービスを利用する場合
    • デモ • ApplicationContextが提供するBeanの変更 – XMLの修正で動的に書き換わる例 – Bundleの起動・停止で入れ替わる例 • ApplicationContextへBeanを追加する例 – BundleのインストールでBeanを追加 • 残念/失敗しちゃいます
    • 質問/Question
    • ご清聴ありがとうございました。
    • ライセンスについて • JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを 元にした派生作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認 めます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。
    • Appendix A. Spring Dynamic Modules を使うには(環境構築編 1) • 用意するもの – Eclipse 3.3.1.1 for Plugin/RCP Developper – spring-osgi-1.0-rc1-with-dependencies – 本日のサンプルワークスペース • spring-osgi-workspace.zipとしてJSUGの GoogleGroupに公開予定
    • Appendix A. Spring Dynamic Modules を使うには(環境構築編 2) 1. 次の構造でフォルダを作成 2. spring-osgi-extensions/eclipse/pluginsの下に SpringDynamicModules/のdist、lib以下のものを コピーする 3. Eclipseを起動し、Window->Prefrencesを開く 4. Plug-in Development -> Target Platformを選ぶ
    • Appendix A. Spring Dynamic Modules を使うには(環境構築編 3) 5. Locationにspring-osgi-extensions/eclipseを指 定 -> Reload ->画面のようにチェックを外しOK
    • Appendix A. Spring Dynamic Modules を使うには(環境構築編 4) 6. 本日のサンプルワークスペースを現在の ワークスペースとしてスイッチする 7. Open Run Dialog 8. 左記を選んで起動
    • Appendix B. 文献 • Spring Dynamic Modules Document – http://static.springframework.org/osgi/docs/current/ref erence/html/ – 設定方法が一通りかかれています • OSGi Tutorial – http://www.aqute.biz/OSGi/Tutorial – OSGiの使い方が一通りかかれています • 先取りJava7(自著) – http://www.thinkit.co.jp/free/article/0708/9/2/ – OSGiについて書いた記事です。