Glass Fishv3 Detail
 

Glass Fishv3 Detail

on

  • 1,735 views

 

Statistics

Views

Total Views
1,735
Slideshare-icon Views on SlideShare
1,297
Embed Views
438

Actions

Likes
2
Downloads
24
Comments
0

4 Embeds 438

http://yoshio3.com 427
http://webcache.googleusercontent.com 8
http://cache.yahoofs.jp 2
http://www.google.co.jp 1

Accessibility

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

    Glass Fishv3 Detail Glass Fishv3 Detail Presentation Transcript

    • <Insert Picture Here>先進的アプリケーションサーバ GlassFish v3 のご紹介日本オラクル株式会社 Fusion Middleware事業統括本部シニアセールスコンサルタント 寺田 佳央2010年08月05日
    • 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright© 2010, Oracle. All rights reserved. 2
    • Agenda• Oracle GlassFish Server v3.xの概要• Oracle GlassFish Server v3.xの詳細• GlassFish の今後• まとめ Copyright© 2010, Oracle. All rights reserved. 3
    • Oracle GlassFish Server v3.x の概要 Copyright© 2010, Oracle. All rights reserved.
    • 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
    • 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
    • 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
    • オープンソース版と製品版の違い• オープンソース版 • 無償利用可能・コミュニティドリブン• 製品版 • 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
    • GlassFish v3 のディレクトリ構造• インストールディレクトリ • IPS パッケージディレクトリ • 共通ユーティリティコマンドへのリンク • GlassFish の本体 • 実行可能コマンド(asadmin 等) • インストール全般の設定 • ドキュメント • ドメイン管理用ディレクトリ • デフォルトで作成されるドメイン • デプロイされたアプリケーション配備 • オートデプロイ用ディレクトリ • 空ディレクトリ(削除予定,startservの削除により不要) • ドメイン固有の設定 • デフォルトのドキュメントルート • ドメイン固有のライブラリ • ドメインのログファイル Copyright© 2010, Oracle. All rights reserved. 9
    • 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
    • GlassFish のドメイン• GlassFish の管理構成単位 • デフォルトで作成されるドメイン:domain1 • 複数のドメインを作成可能 (domain2, domain3 等) • ドメイン毎に管理者を設定 • 各ドメイン間は独立して管理 • 設定変更は他のドメインに影響を及ぼさない • 管理者は管理コンソール等を通じてドメインを管理 • Web 管理コンソール • コマンドライン管理コンソール domain3 • RESTful 管理チャネル domain2 • JMX/AMX 管理チャネル domain1 domains 管理者 Copyright© 2010, Oracle. All rights reserved. 11
    • Web 管理コンソール• Web ベースの管理コンソール • http://IP_ADDRESS:PORT/ • デフォルトのポート番号:4848 • 管理者のパスワード • パスワード無し • インストール時に指定 • 管理コンソールアクセス時にロード • 管理コンソールとサービス提供ポー ト番号は独立 • セキュアな管理が可能 • ウィザードベースの簡単操作 http://IP_ADDRESS:4848 Copyright© 2010, Oracle. All rights reserved. 12
    • コマンドライン管理コンソール• 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
    • 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
    • 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
    • JMX/AMXベース管理チャネル• JMX API を実装した Java アプリケーションで管理 • JMX リスナーポート:8686 • 管理者・パスワードは CLI/GUI と同じ • 独自管理機能の作成が可能• JMX コンソールを利用 • JConsole(JDK に付属) • MC4J Copyright© 2010, Oracle. All rights reserved. 16
    • Oracle GlassFish Server v3.x の詳細 Copyright© 2010, Oracle. All rights reserved.
    • GlassFish v3 のアーキテクチャOSGi ランタイム上で稼働 Copyright© 2010, Oracle. All rights reserved. 18
    • OSGi モジュールサブシステムの概要• モジュール層 登録 解除 • モジュール=OSGi バンドル サービス層 取得 • 拡張メタデータを持つ jar ファイル 破棄 管理 • モジュールのロード • 自身のクラスのロード 起動 バ ライフサイクル層 ン 停止 • 外部パッケージのインポート等 ド インストール ル アンインストール• ライフサイクル層 クラス • インストール・アンインストール起動・停止 モジュール層 ロード 等の処理を担当 OSGi• サービス層 Java SE • サービスは一般的な Java オブジェクト • サービスレジストリへ登録・解除 • サービスレジストリから取得・破棄 Copyright© 2010, Oracle. All rights reserved. 19
    • 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
    • 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
    • OSGi の採用によるメリット• 動的なモジュールの追加・削除が可能 • 再起動は不要• 拡張可能なアプリケーションサーバ • 独自モジュールを作成し管理機能に 組み込み可能• 任意の OSGi バンドルを利用可能 • Spring DM(OSGi) と Java EE の連携も可能GlassFish の拡張可能ポイントコマンドライン 独自 CLI 管理コマンドの作成(独自追加コンテナの起動・ 停止等)Web 管理コンソール Web 管理コンソールの追加 (独自の監視画面等)監視 独自監視項目に対する整形フォーマットでの出力等コンテナ 独自コンテナの追加(スクリプト言語用のコンテナ追加等) Copyright© 2010, Oracle. All rights reserved. 22
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • GlassFishの今後 Copyright© 2010, Oracle. All rights reserved.
    • 今後のロードマップ 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
    • GlassFish v3.1の新機能• クラスタ機能 • クラスタ対応 • SSH プロビジョニング(Node Agentの廃止) • アプリケーションのバージョニング対応 • ローリングアップグレード機能の提供• ドメイン管理サーバの高可用性• HTML5 WebSocket 対応• 管理・監視機能の強化 • DTraceを使用したモニタ• WebLogic との互換性を提供 • WebLogicのデプロイメント記述子をサポート Copyright© 2010, Oracle. All rights reserved. 32
    • GlassFish v2.1.1のクラスタ機能 • ノードエージェント方式 • 各物理ノードにGlassFishをインス トール • 各物理ノードにノードエージェント を作成 • ノードエージェントの起動・停止は 各マシン上で実施 • ドメイン管理サーバからで各ノー ドエージェントのインスタンスを管 理 Copyright© 2010, Oracle. All rights reserved. 33
    • 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
    • まとめ• 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
    • Copyright© 2010, Oracle. All rights reserved.
    • Copyright© 2010, Oracle. All rights reserved. 37