More Related Content
Similar to JBoss AS7 rev2 (20)
JBoss AS7 rev2
- 3. JBoss AS 7
• 歴史
• 概要
• デモ
• JBoss Modules
• スタンドアロンとドメイン
• まとめ
- 4. 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
- 5. History
• 1999 年 JBoss 始動
• 2001 年 JBoss Group 設立
• 2006 年初め、 Oracle による買収
– 失敗。 Oracle は 2008 年に BEA 買収
• 2006 年 4 月 10 日 Red Hat による買収
– 成立
- 6. JBoss AS7 の概要
• Java EE6 アプリケーションサーバ
– Web プロファイルサポート
– 7.1 で Full プロファイルサポート予定
– ここでの「サポート」というのはテスト
完了、という意味であり、機能がまったく
7.0 に入っていない、というわけではない
– Full はあまり需要 / 人気が高くはないので
ちょっと後回し
- 7. JBoss AS7 の概要
• 開発アプローチ変更
– 既存の資産である AS6 を一旦考慮から外
して要件やユーザストーリーを洗い出し
• そしてメジャーリライト
– 「こんなこといいな♪できたらいいな
♪」を全て実現するために
– AS6 とは異なる新しいカーネルの開発
- 10. 超高速 - 起動時間の比較
• 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 秒 までは最速
- 11. 超高速 - 起動時間の比較
• 計測に用いたラップトップのスペック
– 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)
- 13. 超軽量
• 起動に必要なメモリは 12M
– 64bit 上での実績
– 32bit だともう少し低いかも
• Tomcat 7.0.14 は 8M で起動する
– 機能セットの大きさがかなり違うので妥当
• Glassfish 3.1 は 32M では起動しない
– OutOfMemoryError
- 16. デモ
• 起動
• トップページ
• 管理 GUI
• 管理 CUI
• 設定ファイル
- 20. JBoss Modules
• もう少し詳しく?
– JBoss Modules はモジュールベースクラス
ローディング環境上で、特定のモジュール
の Main クラスとして指定されているクラ
スの main メソッドの呼び出しを行うもの
– シンプル、かんたん
– 超高速スレッドセーフなクラスローダ実装
を提供
- 21. 階層型クラスローダの問題
• 複数のクラスローダでクラス共有
– 共通の親クラスローダ上に配置しかない
– 「配置」という行為が問題の種となる
• 移譲モデル
– 階層をどのように利用するか
– parent-first と child-first
– 混ぜると簡単にデッドロックする
– もっと複雑な移譲モデルも
- 23. モジュールベース
クラスローダ
• マニフェストで import, export といっ
た移譲関係を定義
– import: モジュール環境のこのパッケージ
を使います
– export: 自分はこのパッケージをモジュー
ル環境へ提供します
• 階層型では移譲関係は「配置」と「ク
ラスローダの移譲モデル」という二つ
の要素により決定されていた
- 24. JBoss Modules と OSGi
• モジュールベースクラスローディング
モデルについては OSGi も同じ
• OSGi は「サービス」やより上位のい
ろいろな機能を定義するなど、もっと
リッチ ( 言い方を変えると複雑 ) な環
境を定義したもの
• OSGi はバンドル
- 25. JBoss Modules と OSGi
• JBoss OSGi って?
– JBoss Modules 上に OSGi の機能を提供し
、 OSGi バンドルのデプロイを可能に
– JBoss AS が OSGi 環境で動いているわけ
ではない
• Java 8 のモジュール環境は?
– JSR-297 Improved Modularity Support
– まだまだリリースされません
– OSGi と同じく JBoss Modules 上で動くよ
- 26. モジュール時代のお約束
• スレッドコンテキストクラスローダか
らのクラスロードを最初に試行すると
かやっちゃダメ絶対
– Thread.currentThread().getContextClassLo
ader()
• なぜ?
– 大抵単に間違ってる。本当に必要?
– モジュールクラスローディングを壊す
- 27. JBoss MSC
• JBoss Modular Service Container
• AS7 の新しいカーネル
– AS5, 6: JBoss Microcontainer (POJO)
– AS3, 4: JBoss Microkernel (JMX)
• 軽量であり、サービスの組み立ては
Microcontainer より 15 倍くらい速い
– Microcontainer は AOP などなんでもでき
る機能豊富コンテナだった
- 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
- 34. ドメイン用語
• プロセスコントローラ
– プロセス起動停止を行う Java プロセス
– ホストコントローラを起動する
• ホストコントローラ
– ホスト = 物理、もしくは仮想マシン
– 単一のホストを管理するプロセス
– ドメインコントローラを兼務
- 35. ドメイン用語
• サーバグループ
– 同じ設定 / アプリを持つべきサーバのグル
ープ
• サーバ
– 単一の JBoss AS インスタンス
– ドメイン管理モデルではサーバは設定を
ほとんど持たない
• ほとんどサーバグループで設定する
- 37. まとめ
• Java EE6
• 超高速
• 超軽量
• 管理容易性
• テスト容易性
- 38. 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