JBoss AS7 rev3

1,556 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,556
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JBoss AS7 rev3

  1. 1. JBoss AS7#@*%ing fast. Red HatSenior Software Maintenance Engineer Takayoshi Kimura
  2. 2. JBoss AS 7• 歴史• 概要• デモ• JBoss Modules• スタンドアロンとドメイン• まとめ
  3. 3. History• JBoss AS7 • JBoss AS 4.2 – 2011-07 – 2007-05-11• JBoss AS 6.0 • JBoss AS 4.0 – 2010-12-28 – 2004-09-20• JBoss AS 5.1 • JBoss AS 3.2 – 2009-05-23 – 2003-06-02• JBoss AS 5.0 • JBoss AS 3.0 – 2008-12-05 – 2002-05-29
  4. 4. History• 1999 年 JBoss 始動• 2001 年 JBoss Group 設立• 2006 年初め、 Oracle による買収 – 失敗。 Oracle は 2008 年に BEA 買収• 2006 年 4 月 10 日 Red Hat による買収 – 成立
  5. 5. JBoss AS7 の概要• Java EE 6 アプリケーションサーバ – Web プロファイルサポート – 7.1 で Full プロファイルサポート予定 – Full はあまり需要 / 人気が高くはないので 後回し
  6. 6. JBoss AS7 の概要• 開発アプローチ変更 – 既存の資産である AS6 を一旦考慮から外 して要件やユーザストーリーを洗い出し• そしてメジャーリライト – 「こんなこといいな♪できたらいいな ♪」を全て実現するために – AS6 とは異なる新しいカーネルの開発
  7. 7. JBoss AS7 の 3 つの特徴
  8. 8. 超高速
  9. 9. 超高速 - 起動時間の比較• JBoss AS7 • JBoss EAP 5.1 – 1.6 秒 – 15.0 秒• JBoss AS6 – 起動ではなくラ – 12.0 秒 ンタイムの速度 に最適化• JBoss AS 5.1 • Glassfish 3.1 – 19.0 秒 –3秒• JBoss AS 4.2 – JBoss AS7 出現 – 6.2 秒 までは最速
  10. 10. 超高速 - 起動時間の比較• 計測に用いたラップトップのスペック – Dell Latitude E6320 – Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz / 8GB mem / 7200rpm HDD – Fedora 15 (Lovelock) 64-bit – OpenJDK (IcedTea6 1.10.2) (fedora- 58.1.10.2.fc15-x86_64)
  11. 11. 超軽量
  12. 12. 超軽量• 起動に必要なメモリは 12M – 64bit 上での実績 – 32bit だともう少し低いかも• Tomcat 7.0.14 は 8M で起動する – 機能セットの大きさがかなり違うので妥当• Glassfish 3.1 は 32M では起動しない – OutOfMemoryError
  13. 13. かんたん
  14. 14. 管理容易性の向上• 豊富で洗練されたマネジメントインタ フェース – シンプルな単一の設定ファイル – Java API – Web API – GUI Web 管理コンソール – CUI
  15. 15. ドキュメントの刷新と拡充• スタートガイド• アプリケーション開発スタートガイド• 管理ガイド• 開発者ガイド• Java EE 6 チュートリアル• 高可用性ガイド• AS7 拡張ガイド
  16. 16. デモ• 起動• トップページ• 管理 GUI• 管理 CUI• 設定ファイル
  17. 17. JBoss Modules
  18. 18. JBoss Modules• モジュール? – 一般的な単語 – 外見上は jar
  19. 19. JBoss Modules• モジュールベースクラスローディング 環境• 特定のモジュールの Main クラスとし て指定されているクラスの main メソ ッドの呼び出しを行う• シンプル、かんたん• 超高速スレッドセーフなクラスローダ 実装を提供
  20. 20. 階層型クラスローダの問題• 複数のクラスローダでクラス共有 – 共通の親クラスローダ上に配置しかない – 「配置」という行為が問題の種となる• 移譲モデル – 階層をどのように利用するか – parent-first と child-first – 混ぜると簡単にデッドロックする – もっと複雑な移譲モデルも
  21. 21. モジュールベース クラスローダ• 階層型ではなくグラフ型
  22. 22. モジュールベース クラスローダ• マニフェストで import, export といっ た移譲関係を定義 – import: モジュール環境のこのパッケージ を使います – export: 自分はこのパッケージをモジュー ル環境へ提供します• 階層型では移譲関係は「配置」と「ク ラスローダの移譲モデル」という二つ の要素により決定されていた
  23. 23. なにがうれしいの?• 見えるべきクラスが見える• 見えないべきクラスが見えないように – コンテナの依存ライブラリなど• ライブラリの競合問題を大幅に改善
  24. 24. JBoss Modules と OSGi• モジュールベースクラスローディング モデルについては OSGi も同じ• OSGi は「サービス」やより上位のい ろいろな機能を定義するなど、もっと リッチ ( 言い方を変えると複雑 ) な環 境を定義したもの• OSGi はバンドル
  25. 25. JBoss Modules と OSGi• JBoss OSGi ? – JBoss Modules 上に OSGi の機能を提供し 、 OSGi バンドルのデプロイを可能に – JBoss AS が OSGi 環境で動いているわけ ではない• Java 8 のモジュール環境は? – JSR-297 Improved Modularity Support – まだまだリリースされません – OSGi と同じく JBoss Modules 上で動く
  26. 26. モジュール時代のお約束• スレッドコンテキストクラスローダか らのクラスロードを最初に試行するの はダメ – Thread.currentThread().getContextClassLo ader()• なぜ? – 大抵単に間違ってる。本当に必要? – モジュールクラスローディングを壊す
  27. 27. JBoss MSC• JBoss Modular Service Container• AS7 の新しいカーネル – AS5, 6: JBoss Microcontainer (POJO) – AS3, 4: JBoss Microkernel (JMX)• 軽量であり、サービスの組み立ては Microcontainer より 15 倍くらい速い – Microcontainer は AOP などなんでもでき る機能豊富コンテナだった
  28. 28. スタンドアロンとドメイン
  29. 29. スタンドアロンとドメイン• スタンドアロン – ふつう• ドメイン – 複数 VM 、複数 JBoss インスタンスをま とめて管理
  30. 30. ドメイン
  31. 31. 起動されるモジュール• スタンドアロン – org.jboss.standalone.server • org.jboss.as.server.Main
  32. 32. 起動されるモジュール• ドメイン – org.jboss.as.process-conroller • org.jboss.as.process.Main – org.jboss.as.host-controller • org.jboss.as.host.controller.Main – org.jboss.as.server • org.jboss.as.server.DomainServerMain
  33. 33. ドメイン用語• ドメイン – 複数のホストおよびサーバを管理するた めの枠組み• ドメインコントローラ – ホストやサーバのマネージャ
  34. 34. ドメイン用語• プロセスコントローラ – プロセス起動停止を行う Java プロセス – ホストコントローラを起動する• ホストコントローラ – ホスト = 物理、もしくは仮想マシン – 単一のホストを管理するプロセス – ドメインコントローラを兼務
  35. 35. ドメイン用語• サーバグループ – 同じ設定 / アプリを持つべきサーバのグル ープ• サーバ – 単一の JBoss AS インスタンス – ドメイン管理モデルではサーバは設定を ほとんど持たない
  36. 36. テスト容易性
  37. 37. テスト容易性• Java EE はテストサポートが貧弱• Java EE はコンテナが重い
  38. 38. Arquillian• Java EE テスティングフレームワーク• JBoss AS 7 はコンテナが超軽量
  39. 39. JBoss AS 7 まとめ• Java EE 6• 超高速• 超軽量• 管理容易性• テスト容易性
  40. 40. References• AS7 管理ガイド – https://docs.jboss.org/author/display/AS7/Admin+Guide• JBoss World 2011 – http://www.redhat.com/summit/2011/presentations/jbossworld/• JUDCon 2011 – http://www.jboss.org/events/JUDCon/presentations.html

×