42
1 NetBeans Java EE 6 Open Source OpenJDK GlassFish EJB DI/CDI ManagedBean Grizzly lightweight JPA JMS JTA JAX-RS OSGi Comet WebSockets WebSockets Cloud HK2 BeanValidation JSF clustering WebService Eclipse Web Profile Web Profile Embedded NIO Update Center

Glass Fish V3.1 Public

Embed Size (px)

Citation preview

Page 1: Glass Fish V3.1 Public

1

NetBeans

Java EE 6Open Source

OpenJDKGlassFish

EJB DI/CDI ManagedBean

Grizzly

lightweight

JPA

JMSJTAJAX-RSOSGi

Com

et

Web

Soc

kets

Web

Soc

kets

Clo

ud

HK

2

BeanValidationJSF

clustering

WebService

Eclipse

Web Profile

Web Profile Embedded

NIO

Update Center

Page 2: Glass Fish V3.1 Public

2

エンタープライズ Java をリードする GlassFish v3.1

新しい飼育・繁殖方法のご紹介Blog: http://yoshio3.comTwitter: @yoshioterada

Page 3: Glass Fish V3.1 Public

3

アジェンダ

● GlassFish v3 の概要● 飼育方法のご紹介

● GlassFish v3.1 の新機能紹介● 繁殖方法のご紹介

● デモ

Page 4: Glass Fish V3.1 Public

4

GlassFish v3概要

Page 5: Glass Fish V3.1 Public

5

GlassFish v3の概要● Java EE 6 の参照実装

● Java EE 6 の仕様に完全準拠

● 軽量、高速起動

● かんたん開発/かんたん管理

● プロファイルに対応

● Webプロファイル版

● Full Platform プロファイル版を提供

● 先進的アプリケーションサーバ

● RESTfulの管理インタフェースを提供

● OSGiモジュールサブシステム対応

● 進化した非同期 I/O サーバ

● かんたんな操作

● zip インストール(Tomcatと同様)

● Oracle JRockit VM 正式対応

Page 6: Glass Fish V3.1 Public

6

Java EE 6の参照実装● Servlet 3.0

● JSP 2.2

● JSF 2.0

● EJB 3.1

● JTA 1.1

● JPA 2.0

● JAX-WS 2.2

● JAXB 2.2

● JAX-RS 1.1

● JMS 1.1

● JavaMail 1.4

● EL 2.2

● Common Annotations 1.1

● Managed Bean 1.0

● Interceptors 1.1

● JACC 1.4

● その他

Page 7: Glass Fish V3.1 Public

7

高速起動

● たった数秒で起動● 最小限のモジュールをロードして起動

– OSGiのメリット

– 管理画面モジュールは起動時無効化(アクセス時有効)

● 開発時における再起動待ち時間を軽減● 運用時における運用・保守性向上

Page 8: Glass Fish V3.1 Public

8

かんたん開発

● Java EE 6● アノテーションベース● POJO

● 統合開発連携● NetBeans 7.0● Eclipse Plugin

Page 9: Glass Fish V3.1 Public

9

プロファイル

● Java EE 全機能のサブセットを提供● Web の開発に特化した Webプロファイル● Java EE の全機能を網羅した Enterprise Platform

● 各プロファイルに対応したインストーラを提供● latest-glassfish-unix.sh

● latest-glassfish-windows.exe

● latest-glassfish.zip

● latest-web-unix.sh

● latest-web-windows.exe

● latest-web.zip

http://glassfish.java.net/public/downloadsindex.html

Page 10: Glass Fish V3.1 Public

10

GlassFish v3.1飼育方法

Page 11: Glass Fish V3.1 Public

11

かんたんな操作● インストーラ

● zip 版、専用 GUI インストーラ (sh, exe) を提供

● 管理操作● GUI 管理コンソール● CLI コンソール● RESTful 管理チャネル● AMX/JMX 管理チャネル

Page 12: Glass Fish V3.1 Public

12

● インストール● unzip latest-web.zip

● 起動● cd glassfish3/bin ● asadmin start-domain

zip 版を使用したインストールと起動

たった3ステップで起動まで完了

Page 13: Glass Fish V3.1 Public

13

管理ツール

● GUI管理コンソール

● CLI(コマンドライン)管理コンソール

● RESTful 管理チャネル

● AMX/JMX 管理チャネル

Page 14: Glass Fish V3.1 Public

14

GUI管理コンソール

● Web ブラウザを使用した管理

● ウィザードベースでかんたん

● 直感的な操作が可能

Page 15: Glass Fish V3.1 Public

15

CLI 管理コンソール

● GlassFish 管理用コマンドを提供● $GLASSFISH_INSTALL/bin/asadmin

● > asadmin [オプション] コマンド名 *[[--パラメータ 値]]

● シェルスクリプトを記載し管理の自動化も可能

● コマンドラインからのみ実施可能な操作

● ドメインの作成・削除

● ドメインのバックアップ・リストア

Page 16: Glass Fish V3.1 Public

16

RESTful 管理チャネル● RESTful による管理・監視

● v3 から追加された追加管理機能

● HTML, JSON, XML フォーマットによる出力が可能

● HTTP ヘッダ:

– Accept: application/html

– Accept: application/json

– Accept: application/xml

● JAX-RS から管理・監視

● GET/POST で参照・更新

Page 17: Glass Fish V3.1 Public

17

GlassFish v3.1新機能

Page 18: Glass Fish V3.1 Public

18

GlassFish v3.1の新機能● アプリケーションバージョニング

● クラスタ対応● SSH プロビジョニング(Node Agentの廃止)

● ローリングアップグレード機能の提供

● WebSocket 対応

● WebLogic との互換性を提供

● WebLogicのデプロイメント記述子をサポート

● 管理・監視機能の強化 (Oracle GlassFish Server v3)● Dtraceを使用したモニタ(Java SE 7使用時)

Page 19: Glass Fish V3.1 Public

19

アプリケーションバージョニング● 同一アプリケーションの複数配備が可能

● MS1, Beta1, RC1, GA 版等複数を配備可能● 単一バージョンのみ有効● アプリのアップグレード・ロールバックが可能● 配備数に上限無し

Page 20: Glass Fish V3.1 Public

20

アプリケーションバージョニング

> asadmin deploy --name=HelloWorld:MS1 ./HelloWorldWeb-MS1.war

> asadmin deploy --enabled=false --name=HelloWorld:Beta ./HelloWorldWeb-Beta.war Application deployed with name HelloWorld:Beta.Command deploy executed successfully.

> asadmin deploy --enabled=false --name=HelloWorld:GA ./HelloWorldWeb-GA.war Application deployed with name HelloWorld:GA.Command deploy executed successfully.

● 同一アプリケーションの複数配備

Page 21: Glass Fish V3.1 Public

21

アプリケーションバージョニング

> asadmin enable HelloWorld:GACommand enable executed successfully.

> asadmin list-applications -lNAME TYPE STATUS HelloWorld:MS1 <web> disabled HelloWorld:Beta <web> disabled HelloWorld:GA <web> enabled Command list-applications executed successfully.

● アプリケーションの有効化と確認

Page 22: Glass Fish V3.1 Public

22

GlassFish v3.1繁殖方法

Page 23: Glass Fish V3.1 Public

23

GlassFish v3.1クラスタ

● ドメイン管理サーバが稼働するOSと同一環境● 例:DAS:がWindowsでNodeがUnixは未サポート

● 対象ノードではsshdの起動が必須● Windows 環境は Cygwin を利用

● 対象ノードへのインストールはSSH経由で実施

Page 24: Glass Fish V3.1 Public

24

GlassFish のドメイン● 管理用の構成単位

● ドメイン管理のコンポーネント● ドメイン管理サーバ(DAS)

● サーバインスタンス

● クラスタインスタンス

● リソース管理(JDBC, JMS, JNDI その他)

● 単一インストールで複数のドメインを作成可能

● ドメイン間の設定は独立

Page 25: Glass Fish V3.1 Public

25

ドメイン管理の基本

ドメイン管理サーバインスタンス

システム管理者

管理機能アプリケーション

開発したアプリケーション

開発者

デフォルトドメイン

Page 26: Glass Fish V3.1 Public

26

1インストール複数ドメイン

ドメイン管理サーバインスタンス

システム管理者 システム管理者

システム管理者組織A用ドメイン 組織B用ドメイン

サービス利用者 サービス利用者

サーバインスタンス

ドメイン管理サーバインスタンス

サーバインスタンス

Page 27: Glass Fish V3.1 Public

27

GlassFish v2.1のクラスタ

● ノードエージェント方式● 各物理ノードにGlassFishのインストールが必要

● ノードエージェントの起動・停止はログインが必要

● DAS から各インスタンスを管理

Page 28: Glass Fish V3.1 Public

28

GlassFish v3.1のクラスタ

● SSHプロビジョニング● 各ノードは sshdが起動しているだけでよい

● インストール・インスタンス作成・起動・停止は全てDASから実施

Page 29: Glass Fish V3.1 Public

29

DemoGlassFish SSH プロビジョニング

● 全ての管理は管理サーバから

GlassFish-DAS GlassFish-node1

sshd

① GlassFish DASへインストール

② ドメイン起動

③ クラスタ作成

④ SSH鍵生成

⑤ リモートのノードへGlassFishをインストール

⑥ リモートノードの作成

⑦ リモートでインスタンス生成

⑧ リモートのインスタンス起動

⑨ サンプルアプリの動作確認リモートノードはsshdが起動しているだけインストールから各種操作は全て DAS から

Page 30: Glass Fish V3.1 Public

30

クラスタ環境のログ収集

> asadmin collect-log-files –-target cluster1

Log files are downloaded for instance1.

Log files are downloaded for instance2.

Created Zip file under

/GlassFishv3.1/glassfish3/glassfish/domains/

domain1/collected-logs/log_2010-12-19_18-42-07.zip.

Command collect-log-files executed successfully.

● 異なるノード上のログを収集可能

Page 31: Glass Fish V3.1 Public

31

GlassFish v3.1WebSocket対応

Page 32: Glass Fish V3.1 Public

32

WebSocket とは?

● WebSocket は単一の TCPソケットで、双方向、全2重(Full Duplex)の通信チャネルの技術を提供し、Web ブラウザ、Web サーバの双方で実装されるプロトコル

Page 33: Glass Fish V3.1 Public

33

Comet のアプローチ

Page 34: Glass Fish V3.1 Public

34

Comet Long Pollingの利点・欠点● 利点

● HTTP 1.1 準拠

● クライアントサイド APIの標準化– Hidden iframe, XMLHttpRequest

● 広範囲への適用

● 欠点● HTTPヘッダによる負荷

– ネットワーク帯域、CPU

Page 35: Glass Fish V3.1 Public

35

Comet Streamingの利点・欠点● 利点

● HTTP 1.1 準拠

● クライアントサイドAPIの標準化– Hidden iframe, XMLHttpRequest

● Long polling に比べ高効率

● 欠点● ブラウザ毎の対応が困難

● Proxy Server 導入時の問題発生の可能性大

Page 36: Glass Fish V3.1 Public

36

WebSocket の特徴● 双方向通信

● 全2重

● 単一 TCP ソケットを利用した操作

● プレイン/SSL ソケット共に利用可能

● HTTP に類似● ws://HOST:PORT/CONTEXT

Page 37: Glass Fish V3.1 Public

37

WebSocket の利点・欠点● 利点

● 効果的な双方向、全2重通信● 単一TCPソケット● Proxy/Firewall環境で利用可能

● 欠点● クライアントブラウザの対応● プロトコル自体継続議論中

Page 38: Glass Fish V3.1 Public

38

WebSocket API

http://dev.w3.org/html5/websockets/

Page 39: Glass Fish V3.1 Public

39

1000イベントのデータ転送容量

WebSocket が最も高効率

Page 40: Glass Fish V3.1 Public

40

WebSocket のサンプルgrizzly-websockets-chat-1.9.26-javadoc.jargrizzly-websockets-chat-1.9.26-javadoc.jar.md5grizzly-websockets-chat-1.9.26-javadoc.jar.sha1grizzly-websockets-chat-1.9.26-sources.jargrizzly-websockets-chat-1.9.26-sources.jar.md5grizzly-websockets-chat-1.9.26-sources.jar.sha1grizzly-websockets-chat-1.9.26.pomgrizzly-websockets-chat-1.9.26.pom.md5grizzly-websockets-chat-1.9.26.pom.sha1grizzly-websockets-chat-1.9.26.wargrizzly-websockets-chat-1.9.26.war.md5grizzly-websockets-chat-1.9.26.war.sha1

● http://tinyurl.com/2aejyfa

Page 41: Glass Fish V3.1 Public

41

まとめ● GlassFish v3.1

● アプリケーションバージョニング対応● クラスタ対応● WebSocket対応

Page 42: Glass Fish V3.1 Public

42

NetBeans

Java EE 6Open Source

OpenJDKGlassFish

EJB DI/CDI ManagedBean

Grizzly

lightweight

JPA

JMSJTAJAX-RSOSGi

Com

et

Web

Soc

kets

Web

Soc

kets

Clo

ud

HK

2

BeanValidationJSF

clustering

WebService

Eclipse

Web Profile

Web Profile Embedded

NIO

Update Center