Glass Fishv3 Detail

1,727 views
1,605 views

Published on

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,727
On SlideShare
0
From Embeds
0
Number of Embeds
536
Actions
Shares
0
Downloads
26
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Glass Fishv3 Detail

  1. 1. <Insert Picture Here>先進的アプリケーションサーバ GlassFish v3 のご紹介日本オラクル株式会社 Fusion Middleware事業統括本部シニアセールスコンサルタント 寺田 佳央2010年08月05日
  2. 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright© 2010, Oracle. All rights reserved. 2
  3. 3. Agenda• Oracle GlassFish Server v3.xの概要• Oracle GlassFish Server v3.xの詳細• GlassFish の今後• まとめ Copyright© 2010, Oracle. All rights reserved. 3
  4. 4. Oracle GlassFish Server v3.x の概要 Copyright© 2010, Oracle. All rights reserved.
  5. 5. GlassFish v3 新機能概要• Java EE 6 の参照実装 • Java EE 6 の仕様に完全準拠 • 軽量、高速起動 • かんたん開発/かんたん管理 • プロファイルに対応 • Webプロファイル版、Full Platform プロファイル版を提供• 先進的アプリケーションサーバ • RESTfulの管理インタフェースを提供 • OSGiモジュールサブシステム対応 • 進化した非同期 I/O サーバ• かんたんな操作 • unzipによるインストール(Tomcatと同様)• Oracle JRockit VM 正式対応 Copyright© 2010, Oracle. All rights reserved. 5
  6. 6. Java EE 6 の仕様に完全準拠• Java EE 6 の主要な技術 • Servlet 3.0 • JMS 1.1 • JSP 2.2 • JavaMail 1.4 • JSF 2.0 • EL 2.2 • EJB 3.1 • Common Annotations 1.1 • JTA 1.1 • Managed Bean 1.0 • JPA 2.0 • Interceptors 1.1 • JAX-WS 2.2 • JACC 1.4 • JAXB 2.2 • その他 • JAX-RS 1.1 • DI 1.0/CDI 1.0 • Bean Validation 1.0 さらに進んだかんたん開発 Copyright© 2010, Oracle. All rights reserved. 6
  7. 7. Oracle GlassFish Server の入手• Full Platform プロファイル • 完全な Java EE API を利用する 場合に使用• Web プロファイル • Full Platform に含まれるライブラリ の内 Web 技術に特化した開発・運 用を行う場合に使用 • Web プロファイルから更新ツールを 利用しFull Platform へアップグレー ド可能• 各プロファイルの入手先 • http://www.oracle.com/technetwork/middleware/glassfish/index.html Copyright© 2010, Oracle. All rights reserved. 7
  8. 8. オープンソース版と製品版の違い• オープンソース版 • 無償利用可能・コミュニティドリブン• 製品版 • Oracleによる正式サポートを提供 • 製品のアドオン・追加管理機能等を提供C:¥glassfishv3¥bin> asadmin version --verboseバージョン = Oracle GlassFish Server 3.0.1 (build 22)、JRE バージョン 1.6.0_21コマンド version は正常に実行されました。C:¥glassfishv3¥bin> asadmin version --verboseバージョン = GlassFish Server Open Source Edition 3.0.1 (build 22)、JRE バージョン 1.6.0_21コマンド version は正常に実行されました。 Copyright© 2010, Oracle. All rights reserved. 8
  9. 9. GlassFish v3 のディレクトリ構造• インストールディレクトリ • IPS パッケージディレクトリ • 共通ユーティリティコマンドへのリンク • GlassFish の本体 • 実行可能コマンド(asadmin 等) • インストール全般の設定 • ドキュメント • ドメイン管理用ディレクトリ • デフォルトで作成されるドメイン • デプロイされたアプリケーション配備 • オートデプロイ用ディレクトリ • 空ディレクトリ(削除予定,startservの削除により不要) • ドメイン固有の設定 • デフォルトのドキュメントルート • ドメイン固有のライブラリ • ドメインのログファイル Copyright© 2010, Oracle. All rights reserved. 9
  10. 10. GlassFish v3 のディレクトリ構造 • アイコンファイル • 法務上必要なファイル(ライセンス、コピーライト) • GlassFish 全般で使用するライブラリ( dtd,xsd 等) • モジュール(各機能の jar 等) • OSGi フレームワークのファイル • サンプルアプリケーション• インストール時使用ファイル• 内蔵 JavaDB の本体• 内蔵 OpenMQ の本体• IPS コマンドツール• 更新ツール GUI ツールデ• インストール時使用 OSGi 対応により GlassFish v2.x から大幅に変更 GlassFish v3.1 より nodeagent ディレクトリが追加予定 Copyright© 2010, Oracle. All rights reserved. 10
  11. 11. GlassFish のドメイン• GlassFish の管理構成単位 • デフォルトで作成されるドメイン:domain1 • 複数のドメインを作成可能 (domain2, domain3 等) • ドメイン毎に管理者を設定 • 各ドメイン間は独立して管理 • 設定変更は他のドメインに影響を及ぼさない • 管理者は管理コンソール等を通じてドメインを管理 • Web 管理コンソール • コマンドライン管理コンソール domain3 • RESTful 管理チャネル domain2 • JMX/AMX 管理チャネル domain1 domains 管理者 Copyright© 2010, Oracle. All rights reserved. 11
  12. 12. Web 管理コンソール• Web ベースの管理コンソール • http://IP_ADDRESS:PORT/ • デフォルトのポート番号:4848 • 管理者のパスワード • パスワード無し • インストール時に指定 • 管理コンソールアクセス時にロード • 管理コンソールとサービス提供ポー ト番号は独立 • セキュアな管理が可能 • ウィザードベースの簡単操作 http://IP_ADDRESS:4848 Copyright© 2010, Oracle. All rights reserved. 12
  13. 13. コマンドライン管理コンソール• GlassFish 管理用コマンドを提供 • $GLASSFISH_INSTALL/bin/asadmin • > asadmin [オプション] コマンド名 *[[--パラメータ 値]] • シェルスクリプトを記載し管理の自動化も可能• コマンドラインからのみ実施可能な操作 • ドメインの作成・削除 • ドメインのバックアップ・リストア asadmin コマンドオプション >./asadmin create-domain –- help --host ドメイン管理サーバがasadmin Utility Subcommands create-domain(1)NAME 稼働するホスト名 create-domain - creates a domain --port ドメイン管理サーバがSYNOPSIS create-domain [--help] 稼働するポート番号 [--adminport adminport] --user 管理者のユーザ名 [--instanceport instanceport] … --password 管理者のパスワード Copyright© 2010, Oracle. All rights reserved. 13
  14. 14. RESTful 管理チャネル GlassFish v3.0から追加された新しい管理機能• RESTful による管理・監視 • GlassFish v3 から追加された 追加管理機能 • HTML, JSON, XML フォーマ ットによる出力が可能 • HTTP ヘッダ: • Accept: application/html • Accept: application/json • Accept: application/xml • JAX-RS アプリケーションから 管理・監視 • GET メソッドで設定参照 • POST メソッドで設定更新 http://IP_ADDRESS:4848/management/domain Copyright© 2010, Oracle. All rights reserved. 14
  15. 15. RESTful管理チャネルの例• 設定情報の取得例> curl -u admin:adminadmin -X GET -H "Accept: application/json"http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1{ "HttpListener1":{"port":"8080", "enabled":"true", "protocol":"http-listener-1", "transport":"tcp", "address":"0.0.0.0", "name":"http-listener-1", "jk-enabled":"false", "thread-pool":"http-thread-pool"},…中略• 設定情報の更新例> curl -u admin:adminadmin -X POST -d "port=18080" -H "Accept:application/json"http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1"http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1" updatedsuccessfully. Copyright© 2010, Oracle. All rights reserved. 15
  16. 16. JMX/AMXベース管理チャネル• JMX API を実装した Java アプリケーションで管理 • JMX リスナーポート:8686 • 管理者・パスワードは CLI/GUI と同じ • 独自管理機能の作成が可能• JMX コンソールを利用 • JConsole(JDK に付属) • MC4J Copyright© 2010, Oracle. All rights reserved. 16
  17. 17. Oracle GlassFish Server v3.x の詳細 Copyright© 2010, Oracle. All rights reserved.
  18. 18. GlassFish v3 のアーキテクチャOSGi ランタイム上で稼働 Copyright© 2010, Oracle. All rights reserved. 18
  19. 19. OSGi モジュールサブシステムの概要• モジュール層 登録 解除 • モジュール=OSGi バンドル サービス層 取得 • 拡張メタデータを持つ jar ファイル 破棄 管理 • モジュールのロード • 自身のクラスのロード 起動 バ ライフサイクル層 ン 停止 • 外部パッケージのインポート等 ド インストール ル アンインストール• ライフサイクル層 クラス • インストール・アンインストール起動・停止 モジュール層 ロード 等の処理を担当 OSGi• サービス層 Java SE • サービスは一般的な Java オブジェクト • サービスレジストリへ登録・解除 • サービスレジストリから取得・破棄 Copyright© 2010, Oracle. All rights reserved. 19
  20. 20. GlassFish v3 とモジュールサブシステム• 2 つのモジュールサブシステムを採用 • GlassFish OSGi ランタイム • OSGi Release 4 に準拠したランタイムを利用可能 HK2 • 組み込まれているランタイムは Apache Felix OSGi • Knopflerfish, Equinox 等も利用可能 • OSGi ランタイム無しでも動作可能 (static mode) Java SE • 別途 OSGi の管理ツール(CLI/GUI)も利用可能 • GlassFish Kernel (HK2: Hundred-Kilobyte Kernel) • JSR-277 ベースのモジュールサブシステム • Java SE 7 へ組み込まれる予定だったため Java SE 7 対応として HK2 を実装→(Java SE 7 でJSR-277は不採用) • OSGi 対応前は全ての機能は HK2 のモジュールとして作成 • OSGi ランタイムだけでは補えないモジュール管理機能を担当 Copyright© 2010, Oracle. All rights reserved. 20
  21. 21. GlassFish における OSGi と HK2 の役割 Web Container Web Console Web Console• OSGi ランタイム • デフォルト: Apache Felix を使用 EJB Container CLI CLI • 他のOSGi ランタイムも動作可能 GlassFish機能• OSGi と HK2 OSGi バンドル 任意の として実装された OSGi バンドル • モジュール層・ライフサイクル層に HK2 モジュール OSGi ランタイムを使用 • サービス層に HK2 を使用し任意 HK2 Service サービス層 の OSGi バンドルと相互運用可能 サービス層 Mapper• GlassFish のモジュール • 全ての GlassFish モジュールは ライフサイクル層 OSGi HK2 API を使って実装された ランタイム モジュール層 OSGi バンドル • 任意の OSGi バンドルと連携可能 Java SE • @Resource で DI が可能 Copyright© 2010, Oracle. All rights reserved. 21
  22. 22. OSGi の採用によるメリット• 動的なモジュールの追加・削除が可能 • 再起動は不要• 拡張可能なアプリケーションサーバ • 独自モジュールを作成し管理機能に 組み込み可能• 任意の OSGi バンドルを利用可能 • Spring DM(OSGi) と Java EE の連携も可能GlassFish の拡張可能ポイントコマンドライン 独自 CLI 管理コマンドの作成(独自追加コンテナの起動・ 停止等)Web 管理コンソール Web 管理コンソールの追加 (独自の監視画面等)監視 独自監視項目に対する整形フォーマットでの出力等コンテナ 独自コンテナの追加(スクリプト言語用のコンテナ追加等) Copyright© 2010, Oracle. All rights reserved. 22
  23. 23. GlassFish v3 のパッケージ管理• IPS (Image Packaging System: pkg (5)) の採用• OpenSolaris の成果を利用 • Pythonを使用 • Zipファイルとして管理• GlassFish の更新が容易 • インストール済み • 入手可能なアドオン • 入手可能なアップデート $ GLASSFISH_INSTALL/pkg/bin/pkg list NAME (PUBLISHER) VERSION STATE UFIX• OSGi と IPS ant (contrib.glassfish.org) 1.7.1-0.6 installed ---- • IPS はネットワーク越しの felix 2.0.2-0 installed u--- glassfish-appclient 3.0-74.2 installed u--- 分散パッケージ管理が可能 glassfish-branding 3.0-74.2 installed u--- • IPSはバージョン管理が容易 glassfish-branding-gui 3.0-74.2 installed u--- Swing の GUI ツールとコマンドベース ツール Copyright© 2010, Oracle. All rights reserved. 23
  24. 24. GlassFish と Grizzly• Grizzly とは • ネットワークサーバアプリケーションのオープンソースプロジェクト • Java NIO を採用し Java NIO の複雑なコーディングを隠蔽 • GlassFish の HTTP サーバ実装プロジェクトとして 2004年開始 • TCP/UDP/SSL 等マルチプロトコルに対応しハイパフォーマンス • ハイパフォーマンスなバッファの使用とバッファ管理を実施 • Direct Byte Buffer/Heap Byte Buffer/View Byte Buffer • ハイパフォーマンスなスレッドプールを選択可能 • GlassFish にバンドルされる Grizzly のバージョン • GlassFish v2.1.x = Grizzly 1.0.x • GlassFish v3.x = Grizzly 1.9.18 or later • GlassFish v3 より OSGi モジュールとして実装 • GlassFish v2.1(Grizzly 1.0.x) の実装からアーキテクチャを大幅に変更 Copyright© 2010, Oracle. All rights reserved. 24
  25. 25. Grizzly-Kernel ネットワークサービスの内部実装• GrizzlyServices HK2 Grizzly-Kernel • 起動時 HK2 から@Serviceで呼び出し • domain.xml の <http-service> から設定• GrizzlyProxy Grizzly HTTP • GrizzlyServicesから生成 domain.xml NIO Framework • HTTP リスナー毎に1つ生成• ContainerMapper CoyoteAdapter • コンテキストへのリクエストに対する Web Container 適切なコンテナの選択 JRubyAdapter • jsp -> CoyoteAdapter ContainerMapper Rail Container • 4848 -> AdminAdapter AdminAdapter• GrizzlyProbePipeline Admin (CLI/GUI) • 監視可能なスレッドプール Copyright© 2010, Oracle. All rights reserved. 25
  26. 26. Grizzly のリクエスト処理動作• リクエスト受信時 • Request/Response オブジェクトの生成 • ContainerMapper.service(req,res)の実行• 処理内容 CoyoteAdapter Web Container • リクエスト内容(バイト)のデコード • (XSSの予防・DoS攻撃の予防) JRubyAdapter ContainerMapper Rail Container • デコードされたリクエストに対して 適切な Adapter へディスパッチ AdminAdapter Admin (CLI/GUI) • Adapter.service() へ処理を移譲• ContainerMapper 導入メリット • 単一の HTTP リスナに対してアクセスされるコンテキスト毎に適切な コンテナ(Web/JRuby/Grails/その他)をディスパッチ可能 Copyright© 2010, Oracle. All rights reserved. 26
  27. 27. Non Blocking IO(Java New I/O)対応 同期 I/O (Blocking) 非同期 I/O (Non Blocking)リクエストキュー リクエストキュー Request 4 空 Request 5B B Thread-1 Thread-1B B Thread-2 Thread-2B B Thread-3 Thread-3 1処理に1スレッドを占有 スレッド内で複数の処理を分割 Copyright© 2010, Oracle. All rights reserved. 27
  28. 28. Non Blocking IO(Java New I/O)対応 • Comet アプリケーション • 適用例:株価情報配信、オークション、チャット等 従来のWebアプリケーション Comet アプリケーション streaming Event リクエスト 切断 レスポンス リクエスト レスポンス Event Event 切断 Event Event非同期 I/O は Comet や DB 等の長時間処理が必要な場合に有効 Copyright© 2010, Oracle. All rights reserved. 28
  29. 29. GlassFish 組み込み可能コンテナ• GlassFish Embedded Server APIを提供 • EJB 3.1 Embeddable API Embedded Container • Java SEプログラム内から Transaction Security Messaging GlassFishを起動 Manager System Engine• Maven Plug-inの提供 • Apache Mavenとの連携 Java SE • JUnit による容易なテスト 組み込み可能コンテナの概念• デスクトップアプリケーションで EJB 機能を利用可能 Copyright© 2010, Oracle. All rights reserved. 29
  30. 30. GlassFishの今後 Copyright© 2010, Oracle. All rights reserved.
  31. 31. 今後のロードマップ 2010年末 2011年 未定 Ver 3.1 Ver 3.2 Ver 4• GlassFish v3.1 – 2010 • クラスタ、中央集中管理機能 • 高可用性/セッションリプリケーション • Coherenceのサポート等• GlassFish v3.2 – 2011 • クラスタ機能の改良 • 仮想化サポート • Java EE 7のEarly Access 機能を提供• GlassFish v4 • Java EE 7対応 Copyright© 2010, Oracle. All rights reserved. 31
  32. 32. GlassFish v3.1の新機能• クラスタ機能 • クラスタ対応 • SSH プロビジョニング(Node Agentの廃止) • アプリケーションのバージョニング対応 • ローリングアップグレード機能の提供• ドメイン管理サーバの高可用性• HTML5 WebSocket 対応• 管理・監視機能の強化 • DTraceを使用したモニタ• WebLogic との互換性を提供 • WebLogicのデプロイメント記述子をサポート Copyright© 2010, Oracle. All rights reserved. 32
  33. 33. GlassFish v2.1.1のクラスタ機能 • ノードエージェント方式 • 各物理ノードにGlassFishをインス トール • 各物理ノードにノードエージェント を作成 • ノードエージェントの起動・停止は 各マシン上で実施 • ドメイン管理サーバからで各ノー ドエージェントのインスタンスを管 理 Copyright© 2010, Oracle. All rights reserved. 33
  34. 34. GlassFish v3.1のクラスタ新機能 • SSH プロビジョニング方式 • ドメイン管理サーバ内に SSH SSH Client Client ライブラリを統合 • Hudson(Trilead-ssh2)の成果物 を利用 sshd sshd • 各物理ノードでsshdを起動 • システムの初期化とドメイン管理 サーバへの登録 • GlassFish v3.1 M3 より EA 提供 Copyright© 2010, Oracle. All rights reserved. 34
  35. 35. まとめ• Java EE 6 の参照実装 • Java EE 6 の仕様に完全準拠 • 軽量、高速起動 • かんたん開発/かんたん管理 • プロファイルに対応 • Webプロファイル版、Full Platform プロファイル版を提供• 先進的アプリケーションサーバ • RESTful の管理インタフェースを提供 • OSGiモジュールサブシステム対応 • 進化した非同期 I/O サーバ• かんたんな操作 • unzipによるインストール(Tomcatと同様)• Oracle JRockit VM 正式対応 Copyright© 2010, Oracle. All rights reserved. 35
  36. 36. Copyright© 2010, Oracle. All rights reserved.
  37. 37. Copyright© 2010, Oracle. All rights reserved. 37

×