75
Sun GlassFish Enterprise Server 1 サン・マイクロシステムズ株式会社 ソフトウェア・インフラストラクチャー・ ソリューション本部 ソリューションアーキテクト 寺田 佳央 http://blogs.sun.com/yosshi

Glass Fish With Hadb

Embed Size (px)

Citation preview

Page 1: Glass Fish With Hadb

Sun GlassFish Enterprise Server

1

サン・マイクロシステムズ株式会社ソフトウェア・インフラストラクチャー・ ソリューション本部

ソリューションアーキテクト寺田 佳央http://blogs.sun.com/yosshi

Page 2: Glass Fish With Hadb

2Copyright © 2007 Sun Microsystems K.K.

Agenda

•製品紹介

•機能紹介>開発者向け>運用者向け

•はじめに

Page 3: Glass Fish With Hadb

3Copyright © 2007 Sun Microsystems K.K.

•はじめに

Page 4: Glass Fish With Hadb

4Copyright © 2007 Sun Microsystems K.K.

GlassFish-Grizzly

• 今使っているサーバで十分

• 新しくなってもちょっとした機能が追加されたくらい

• 負荷が増えればマシンを増やせばいいだけ

ハイパフォーマンスサーバエンジンを搭載

こんなことを思っていませんか?• 非常にハイパフォーマンスなサーバです

• 今までの実装アーキテクチャと全く異なります

• 先進的なサーバエンジンを搭載してます

• 大規模の同時アクセスに耐えられるサーバ> 負荷が増えた時に分かる使用リソースの差

Page 5: Glass Fish With Hadb

5Copyright © 2007 Sun Microsystems K.K.

ハイパフォーマンス

• シングルノードの Sun Fire T2000, Solaris 10 上のベンチマークで測定した結果、他のアプリケーションサーバを圧倒するパフォーマンスを発揮

アプリケーションサーバ JOPS Sun Java System Application Server 9.1 with IBM DB2 9.1 on Sun Fire T2000 883.66 BEA Weblogic 9.2 with IBM DB2 8.2 on Sun Fire T2000 801.7 BEA Weblogic 9.2 with IBM DB2 8.2 on Sun SPARC Enterprise T2000 801.7 IBM WebSphere 6.1 with IBM DB2 8.2 on Sun Fire T2000 616.22 Sun Java System Application Server 9.0 with Oracle 10g R2 on Sun Fire T2000 521.42 Oracle Application Server 10g with Oracle Database 10g R2 on Sun Fire T2000 733.22

SPECjAppServer2004 で業界最高水準

http://www.spec.org/jAppServer2004/ (2007年 11月現在 )

Page 6: Glass Fish With Hadb

6Copyright © 2007 Sun Microsystems K.K.

歴史:プロセス起動サーバの実装• プロセス fork() 型

> サーバ起動時に複数のプロセスを起動> クライアントのリクエスト毎に各プロセスで処理> プロセス数が足りなくなると子プロセスを fork

• プロセスの fork() はシステムに負担が大

プロセス

Page 7: Glass Fish With Hadb

7Copyright © 2007 Sun Microsystems K.K.

歴史:マルチスレッドサーバ実装• マルチスレッドの登場

Accept

サーバプロセススレッド

while(true){ Socket socket = serverSocket.accept(); Thread thread = new OwnServerThread(socket); thread.start(); }

問題:1. スレッドの生成はコスト大

Page 8: Glass Fish With Hadb

8Copyright © 2007 Sun Microsystems K.K.

歴史:実際のマルチスレッドサーバ実装• 実際のマルチスレッドサーバ

> accept() 処理コストは低> accept() 済みの接続をキューに配備> 接続キューよりWorker スレッドが取り出し実行

接続キュー

Acceptorスレッド

サーバプロセス

Workerスレッド

Page 9: Glass Fish With Hadb

9Copyright © 2007 Sun Microsystems K.K.

歴史: blocking I/O 型のサーバ

while(true){

Socket socket = serverSocket.accept();

 //accept()はクライアントの接続までブロック

Thread thread = new OwnServerThread(socket);

thread.start();

}

マルチスレッドサーバ

Page 10: Glass Fish With Hadb

10Copyright © 2007 Sun Microsystems K.K.

スレッド毎のメモリの使用状況

Page 11: Glass Fish With Hadb

11Copyright © 2007 Sun Microsystems K.K.

Java New I/O non-blockingサーバ• Selector に SelectableChannel を登録

• 操作セット (OP_ACCEPT 等 ) に応じた処理

OP_ACCEPT

サーバプロセス

SelectableChannel

Selector

OP_READ

OP_******

OP_******

OP_******

registアクセプト処理へ

Read処理へ

Page 12: Glass Fish With Hadb

12Copyright © 2007 Sun Microsystems K.K.

GlassFish-Grizzlyのまとめ• Grizzly は汎用的なサーバアプリケーションです

> 独自のログサーバ等を構築することも可能です

• C10K 問題にも対応しています> non-blocking with ARP> たった 30 スレッドで 10,000 同時アクセスが可能

• Non-Blocking I/O で実装されたサーバは非常にスループットが向上します> SPECjAppServer2004 で 883.66JOPS を記録

Page 13: Glass Fish With Hadb

13Copyright © 2007 Sun Microsystems K.K.

•製品紹介

Page 14: Glass Fish With Hadb

14Copyright © 2007 Sun Microsystems K.K.

• GlassFish とは> オープンソースコミュニティ> 無料で利用可能なアプリケーションサーバ> GlassFish コミュニティでアプリケーションサーバを開発> コミュニティによるサポートが可能> ライセンスの購入により商用サポートが可能> HADB の使用により最大 99.999%の高可用性を実現可能

• 製品名称の変更> Sun Java System Application Server から GlassFish Enterprise Server へ

Sun GlassFish Enterprise Server

Page 15: Glass Fish With Hadb

15Copyright © 2007 Sun Microsystems K.K.

Netscape Application Server (NAS) Ver 2.1 : 1999 ~ 2001/01 Ver 4.0 : ~ 2002/03

iPlanet Application Server Ver 6.0 : ~ 2002/03

Sun ONE Application Server Ver 6.5 : ~ 2004/10

Sun Java System Application Server Ver 7.0 , 7.1 : ~ 2007/10 Ver 8.2 : ~ Ver 9.x :

GlassFish Enterprise Server

Sun の Application Server の歴史

Page 16: Glass Fish With Hadb

16Copyright © 2007 Sun Microsystems K.K.

2005年 6月JavaOne'05

2006年 5月JavaOne'06

GlassFishProject Launch

1.0

2007年 9月

2.01.0u1

3.0

2008/04 : TP22009/04 : FCS

2008年08月

2.0 ur2マルチリンガル版リリース

GlassFish Enterprise Server の歴史

2.1(SIP)

2008年 12月

Page 17: Glass Fish With Hadb

17Copyright © 2007 Sun Microsystems K.K.

• GlassFish v1> Java EE 5準拠の初のアプリケーションサーバ> 2006年 12月アップデートリリース版提供> Java EE 5アプリケーション開発のため利用者増加

• GlassFish v2以降で詳しく紹介

• GlassFish v3> Java EE 6 準拠> モジュール化されたカーネル (HK2)> 先進のWeb 2.0 エンジン

GlassFish Enterprise Server以降のリリース

Page 18: Glass Fish With Hadb

18Copyright © 2007 Sun Microsystems K.K.

Sun Java System Application Server 入手先

http://jp.sun.com/products/software/javasystem/applicationserver/

Page 19: Glass Fish With Hadb

19Copyright © 2007 Sun Microsystems K.K.

Vendor Architecture Operating System Minimum RequiredMemory

RecommendedMemory

RecommendedDisk Space

Microsoft Intel x86/AMD

Windows Server 2000 SP4+Windows 2000 AdvancedServer SP4+, Windows Server 2003Windows XP Pro SP1+ , Windows Vista

1GB 2GB 1GB

SunUltraSPARC®

x86 Solaris 9, 10

512MB 512MB 500MB

Sun64bit

SPARC/x86 Solaris 10

512MB 512MB 500MB

Linux Intel x86/AMD

Red Hat Enterprise Linux 3.0U1 , 4.0SuSE Linux Enterprise Server 10 SP1

512MB 1GB 500MB

サポートプラットフォーム

Mac OS X : GlassFish版のみ入手可能AIX: Update Release 1より提供開始 (2007年 12月を予定 )

GlassFish v2

対応 JavaVM: J2SE 5.0 , Java SE 6.0

Page 20: Glass Fish With Hadb

20Copyright © 2007 Sun Microsystems K.K.

•機能紹介

Page 21: Glass Fish With Hadb

21Copyright © 2007 Sun Microsystems K.K.

•機能紹介>開発者向け

Page 22: Glass Fish With Hadb

22Copyright © 2007 Sun Microsystems K.K.

開発環境との連携• 統合開発環境との連携

> NetBeans 5.5.1, 6.0> Eclipse 3.2, 3.3 (Europa) > MyEclipse 6.0

Eclipse 3.3NetBeans 6.0

http://blogs.sun.com/yosshi/page/Apparchive

Page 23: Glass Fish With Hadb

23Copyright © 2007 Sun Microsystems K.K.

Java EE 5 かんたん開発

• GlassFish は EJB 3.0/JPA をサポート

• GlassFish で TopLink Essentials が統合> ORACLE TopLink 10.1.3> JPA Reference Implementation

• Java Persistence APIサポート> POJO エンティティ> 標準の O/R マッピング> 簡単なパッケージ

• NetBeansを使用したかんたん開発> コーディング量の軽減

NetBeans を使用すると慣れれば 10 分でデータベース接続

プログラムが作成可能 !!(参照、追加、変更、削除)

http://www.netbeans.org/kb/55/persistence_ja.html

Java Persistence API - TopLink Essentials

Page 24: Glass Fish With Hadb

24Copyright © 2007 Sun Microsystems K.K.

最新のWeb 2.0 技術に対応

• JRuby on Rails

• jMaki

• Phobos

• Jersey (RESTful Web サービス )

最新技術に対応した先進実行環境• Ajax の動作環境として最適

• Comet アプリケーションの実行も可能

• RESTful Web サービスに対応

Page 25: Glass Fish With Hadb

25Copyright © 2007 Sun Microsystems K.K.

Comet に対応 - Push技術

サーバ側のイベント駆動でコンテンツ配信クライアントからの要求でコンテンツ受信

従来の HTTP 接続 Comet の HTTP 接続

接続期間

リクエスト

リプライNotify

イベント

イベント

イベント

イベント

リクエスト毎に接続

接続を保持

切断

切断

切断

サーバ側のイベントで動的コンテンツ配信

Page 26: Glass Fish With Hadb

26Copyright © 2007 Sun Microsystems K.K.

Comet - アプリケーション例

• オークション> 他者による入札金額の変更が動的に反映

• チャット• 多人数による描画の連携

http://weblogs.java.net/blog/jfarcand/archive/2006/07/the_grizzly_com.htmlhttp://weblogs.java.net/blog/jfarcand/archive/2006/10/writting_a_come.html

Page 27: Glass Fish With Hadb

27Copyright © 2007 Sun Microsystems K.K.

Java Web Start &Application Client Container

• Java Web Start> ワンクリックで、クライアントアプリケーションの自動ダウンロード、自動アップデートが可能

• Application Client Container (ACC) > クライアントアプリケーションから Java EE が提供するサービス (EJB, JMS 等 ) を呼び出し可能

> サーバが保持するユーザ情報に基づきユーザ認証も可能

EJB呼び出しのできるリッチクライアントを簡単に作れる

http://java.sun.com/developer/technicalArticles/J2EE/jws-glassfish/http://blogs.sun.com/quinn/entry/numberguess_example_javafx_script_in

クライアントマシン

3. リッチクライアントからサーバリソースが 利用可能、 RMI-IIOP クラスタでクライアント からのリクエストに対する負荷分散も可能

1.ワンクリックでリッチクライアントの取得要求

2. リッチクライアントの配布と自動インストール

アプリケーションサーバ

RM

I/IIOP C

luster

HTTP C

lusterACC

Page 28: Glass Fish With Hadb

28Copyright © 2007 Sun Microsystems K.K.

•機能紹介>運用者向け

Page 29: Glass Fish With Hadb

29Copyright © 2007 Sun Microsystems K.K.

容易な管理

• 日本語化された管理画面• ヘルプも日本語化• Ajax, JSF を使用した軽快な操作感覚の実現

視覚的に理解が容易な管理コンソール

Page 30: Glass Fish With Hadb

30Copyright © 2007 Sun Microsystems K.K.

さまざまな管理方法• CLI で管理画面と同様の管理が可能

> コンソールしか使用できない環境に対応

• JConsole> Application Server の監視にも使用可能

• AMX API> JMX ベースの管理 API を提供> JMX 対応の 3rd ベンダーの管理 ・監視ツールの利用も可能 (Tivoli,OpenView,JConsole 等 )

> asadmin --help

JConsole のサンプル画面

Page 31: Glass Fish With Hadb

31Copyright © 2007 Sun Microsystems K.K.

問題解決をサポートするツール• 呼び出しフロー

• ログ統計の監視

• 診断サービス

• JMX を使用したモニターサービス

• JConsole を利用可能

• asadmin generate-jvm-report コマンド

• jdb コマンド

• NetBeans統合開発環境を使用したデバッグ

Page 32: Glass Fish With Hadb

32Copyright © 2007 Sun Microsystems K.K.

問題解決をサポートするツール

• GlassFishに配備したアプリケーションの監視ツール

• 稼働中のシステムに対して設定可能、設定有効時に監視が開始

• アプリケーションサーバの各コンテナ間で実行されたメソッド呼び出し、およびユーザが作成したメソッドの呼び出しのスタックトレースが可能

• CallFlow Monitorに対する設定の有効/無効を管理画面、コマンドラインから可能

• 監視データはJavaDBに格納

スタックトレース

各コンテナ上での実行時間

呼び出し順序

呼び出しフロー

Page 33: Glass Fish With Hadb

33Copyright © 2007 Sun Microsystems K.K.

• ログの統計

• 実行時のログを解析> SEVERE,WARNINGメッセージ出力傾向を折れ線グラフ表示

> ロガー別の出力傾向を可視化(アプリケーション、コンテナ)

ログの出力傾向を時系列で折れ線グラフ表示

エラー発生源の区別、ロガー別に出力された分布表示

ログ統計の監視

問題解決をサポートするツール

Page 34: Glass Fish With Hadb

34Copyright © 2007 Sun Microsystems K.K.

1.問題を確認2.システムの情報収集

> 「レポートを生成」を実行 すると自動的に解析に必要 な情報を収集し jar ファイル に保存

3.問題を独自解析もしくは報告> GlassFish コミュニティ> Sun Microsystems

診断サービス

※問題発生時の対処方法

問題解決をサポートするツール

障害時の問題を診断するために必要な情報を収集

Page 35: Glass Fish With Hadb

35Copyright © 2007 Sun Microsystems K.K.

Update Center

• 使い易いツール> ツール自身のアップデートも可能

• 複数コンポーネントのインストールが可能

• 管理ユーザ以外(non-root)でのインストールに対応

• スケジューラによる更新チェックが 可能

• Proxyサーバ経由で更新が可能

• 独自のアップデートセンターの作成、更新チェックが可能

コンポーネントの追加 / 既存コンポーネントの更新

Page 36: Glass Fish With Hadb

36Copyright © 2007 Sun Microsystems K.K.

拡張性 / 高可用性の実現• 負荷分散機能

> ロードバランサ・プラグイン> クラスタ

• インメモリ・リプリケーション> 標準機能として利用可能> パフォーマンス重視

• High Availability Session Store(HADB) > Sun Java System Application Server 9.1 with HADB に同梱> 高可用性レベル重視(ミッションクリティカルシステム)

Page 37: Glass Fish With Hadb

37Copyright © 2007 Sun Microsystems K.K.

Domain Administration Server

NodeAgent : appserver01 NodeAgent : appserver02

cluster : cluster1

Instance : instance1 Instance : instance2

Name: appserver01IP : 192.168.0.1

Name: appserver02IP : 192.168.0.2

HADB-Node1 HADB-Node2

Internet

Name: webserverIP : 192.168.0.3

インメモリリプリケーション

HADB

インメモリ・リプリケーションと HADB

http://blogs.sun.com/yosshi/page/Apparchive

リプリケーション方式の違い

FireWall

LoadBalancerPlugin

Page 38: Glass Fish With Hadb

38Copyright © 2007 Sun Microsystems K.K.

インメモリ・リプリケーションと HADB

• インメモリ・リプリケーションと HADB は共に高可用性を実現するため、セッション情報等を共有する機能を保持

• インメモリリプリケーションはメモリ内でセッション情報等を共有する為、 HADB に比べハイパフォーマンス

• HADB は高可用性を実現する為、専用のデータベース内にセッション情報等を保存する為、インメモリリプリケーションに比べ高可用性レベルが高い ( 最大 99.999%の高可用性を実現 )

サービス可用性のみ インメモリレプリケーション

パフォーマンス可用性

HADB

HADB

Page 39: Glass Fish With Hadb

39Copyright © 2007 Sun Microsystems K.K.

• 耐障害性・信頼性・高可用性を実現> HTTP セッション状態> シングルサインオン状態> ステートフル EJB セッション状態> JTA トランザクション

• HADB が保持する機能と互換性を持つ

• パフォーマンス

2K session 4K session 8K session0

100

200

300

400

500

600

700

800

900

1000

Hits/Sec ~17-25% throughput degradation

No replicationreplicationHADB

インメモリ・リプリケーション

Page 40: Glass Fish With Hadb

40Copyright © 2007 Sun Microsystems K.K.

• リングトポロジ> アルファベット文字列順に自動的にリングが形成> Instance 1 の複製は Instance 2へコピー> Instance 2 の複製は Instance 3へコピー

リングトポロジ インスタンス作成例

インメモリ・リプリケーション

Page 41: Glass Fish With Hadb

41Copyright © 2007 Sun Microsystems K.K.

• 障害発生前のシステム構成> Instance 1 の複製を Instance 2 が保持

インメモリ・リプリケーション

Page 42: Glass Fish With Hadb

42Copyright © 2007 Sun Microsystems K.K.

• リクエストの透過性> 障害発生後、ロードバランサ経由の最初のリクエストはクラスタ内のどのインスタンスに振られても対応可能

• 障害発生後のリクエストの送信先> パターン1:複製データを持つインスタンス

>複製データを持つインスタンスにリクエストが送信された場合、当該インスタンスが引き続き処理を行う

> パターン2:複製データを持たないインスタンス>当該インスタンスがブロードキャストリクエストを送信>複製データを持つインスタンスが複製のコピーを当該インスタンスにコピー後、 ACK を受け取った後複製データを削除

障害発生後のシナリオインメモリ・リプリケーション

Page 43: Glass Fish With Hadb

43Copyright © 2007 Sun Microsystems K.K.

• パターン1:複製データを持つインスタンス> Instance 2 がレスポンスを送信

インメモリ・リプリケーション

Page 44: Glass Fish With Hadb

44Copyright © 2007 Sun Microsystems K.K.

• パターン2:複製データを持たないインスタンス> Instance 4 がクラスタ内メンバにブロードキャスト> 複製を持つ Instance 2 が Instance 4へ複製を送信> Instance 4 から Instance 2 に ACK を返信後複製を削除

インメモリ・リプリケーション

Page 45: Glass Fish With Hadb

45Copyright © 2007 Sun Microsystems K.K.

• クラスタメンバの動的再構成> 障害発生インスタンスをクラスタ構成メンバから動的削除> メンバの構成を動的に再構成

インメモリ・リプリケーション

Page 46: Glass Fish With Hadb

46Copyright © 2007 Sun Microsystems K.K.

HADB - 99.999% の高可用性を実現• 2つのデータ冗長ユニットを構成

• ユニット内には他のユニット内に存在するノードとペアを構成し複製データを冗長的に格納> 1 ノード内には必ずプライマリデータと複製データを持つ

2Data1 Data1

Data12

Data1

2

データ冗長ユニットDRU 0

データ冗長ユニットDRU 1

プライマリ

レプリカ (複製 )

Node2Node1

Node4Node3

スペア Node6スペア Node5

Page 47: Glass Fish With Hadb

47Copyright © 2007 Sun Microsystems K.K.

• テーブルの内容を断片化(フラグメント化)しペアのノード間で冗長的に格納

2

Data1Data2Data3Data4Data5Data6Data7Data8

Data1Data2

Data3Data4

Data5Data6

Data7Data8

F1

オリジナルテーブルデータ

(セッション情報)

F2

F3

F4フラグメント化されたデータ

Data1Data2 F1

Data1Data2 F1Data1Data2

Data1Data2Data1Data2

データ冗長ユニットDRU 0

データ冗長ユニットDRU 1

スペア Node5 スペア Node6

Data5Data6

Data5Data6

F1R0 F1R1

HADB の動作概要

Node2Node1

Node3 Node4

Data7Data8

Data7Data8

Data3Data4

Data3Data4 F2R1F2R0

F3R1

F4R1

F3R0

F4R0

プライマリ レプリカ (複製 )

Page 48: Glass Fish With Hadb

48Copyright © 2007 Sun Microsystems K.K.

• クライアントプログラムは任意の HADB ノードに接続可能

2Data1Data2 F1Data1Data2

Data1Data2Data1Data2

データ冗長ユニットDRU 0

データ冗長ユニットDRU 1

スペア Node5 スペア Node6

Data5Data6

Data5Data6

F1R0 F1R1

F3R0 F3R1

アプリケーションサーバインスタンス

アプリケーションサーバインスタンス

アプリケーションサーバインスタンス

アプリケーションサーバインスタンス

実際のデータの保存場所がどこにあるか分からなくてもDBが自動的にデータを検索

HADB への接続

DB の効率的な負荷分散が可能線形的な拡張性

Node2Node1

Node4Node3

Data3Data4 F2R0

Data3Data4 F2R1

Data7Data8

F4R1

Data7Data8 F4R0

Page 49: Glass Fish With Hadb

49Copyright © 2007 Sun Microsystems K.K.

• 障害発生時ペアノードがプライマリとなりサービスを継続提供

• 障害発生ノードの自己修復を開始

HADB の障害発生時サービス継続提供シナリオ 1

2Data1Data2 F1Data1Data2

データ冗長ユニットDRU 0

スペア Node5 スペア Node6

Data5Data6

Data5Data6

F1R0

Node1

Node3 Node4Data7Data8

Data7Data8

F3R1

F4R1

F3R0

F4R0

データ冗長ユニットDRU 1

Node2Data3Data4 F2R0

Node2

アプリケーションサーバインスタンス

自己修復に成功すると自動的に正常な構成に戻る

Data1Data2 F1R1Data3Data4 F2R1

プライマリ

自己修復開始

レプリカ (複製 )

Page 50: Glass Fish With Hadb

50Copyright © 2007 Sun Microsystems K.K.

• 自己修復失敗によるノードの Take Over

2Data1Data2 F1Data1Data2

データ冗長ユニットDRU 0

スペア Node5 スペア Node6

Data5Data6

Data5Data6

F1R0

Node1

Node3 Node4Data7Data8

Data7Data8

F3R1

F4R1

F3R0

F4R0

データ冗長ユニットDRU 1

Node2Data3Data4 F2R0

2Data1Data2 F1Data1Data2

データ冗長ユニットDRU 0

スペア Node5

Data5Data6

Data5Data6

F1R0

Node1

Node3 Node4Data7Data8

Data7Data8

F3R1

F4R1

F3R0

F4R0

データ冗長ユニットDRU 1

Node2

Data1Data2 F1R1

Node6Data3Data4 F2R1

Data3Data4 F2R0

自己修復失敗後Take Over のためのデータコピー開始

Take Over 後のノードの構成

データコピー開始

HADB の障害発生時サービス継続提供シナリオ 2

ノードペアの再構成

Page 51: Glass Fish With Hadb

51Copyright © 2007 Sun Microsystems K.K.

使う理由はそこにある!!

http://jp.sun.com/products/software/javasystem/applicationserver/

Page 52: Glass Fish With Hadb

52Copyright © 2007 Sun Microsystems K.K.

Q&A

Page 53: Glass Fish With Hadb

53Copyright © 2007 Sun Microsystems K.K.

参考資料

Page 54: Glass Fish With Hadb

54Copyright © 2007 Sun Microsystems K.K.

Application Server 9.1

• 開発者向け新機能• 各種仕様の準拠• .NET 3.xとの相互運用性• JBI/OpenESB• 高可用性 /拡張性• 管理コンソール• 接続プールの拡張• セキュリティ

• 動的配備と動的読み込み• 自動配備

新機能 機能改善新機能と機能改善の紹介

Page 55: Glass Fish With Hadb

55Copyright © 2007 Sun Microsystems K.K.

開発者向け新機能• 汎用的な JMS リソースアダプタの統合• 接続プール設定に対する新規属性の追加

> コネクションリーク診断の設定が可能• アップデートセンター

> アップデートセンターからの新規コンポーネントの追加 /既存コンポーネントの更新が可能

• Message Queue 4.1 の統合• Java EE プラットフォーム、WSIT のサポート• JBI 環境の統合• クラスタ環境のサポート• プロファイル ( 開発者 / クラスタ / エンタープライズ )• 証明書管理

Page 56: Glass Fish With Hadb

56Copyright © 2007 Sun Microsystems K.K.

仕様アップデート• Enterprise Java Beans 3.0 and Java Persistence API• Java Architecture for XML Binding 2.0 (JAXB) • JavaServer Faces 1.2• JavaServer Pages 2.1 (JSP 2.1)• Java Servlet 2.5• JavaServer Pages Standard Tag Library 1.2 (JSTL)• Streaming API for XML (StAX)• Web Services Metadata• Java API for XML Web Services 2.1 (JAX-WS)• Common Annotations for the Java Platform 1.0 (CAJ 1.0)

Page 57: Glass Fish With Hadb

57Copyright © 2007 Sun Microsystems K.K.

.NET アプリケーションとの相互運用性 WSIT (Project Tango)• WSIT (Web Services Interoperability Technology)

> JAX-WS>セキュリティ>信頼性メッセージング>トランザクション

• Microsoft (.NET 3.x WCF アプリケーションと連携 )

https://wsit.dev.java.nethttps://metro.dev.java.net/http://websvc.netbeans.org/wsit/http://java.sun.com/webservices/reference/tutorials/wsit/doc/http://blogs.sun.com/arungupta/entry/excel_using_wsit_metro_and※ WSITはJAX-WSを含むWebサービス・スタックMetroの一部

Page 58: Glass Fish With Hadb

58Copyright © 2007 Sun Microsystems K.K.

OpenESB 2.0

• JBI(Java Business Integration:JSR208) の実装> ライフサイクルモジュールの実装> 管理ツール (Web, CLI) の統合

• コンポーネント群> バインディングコンポーネント : HTTP, File> サービスエンジン : BPEL, Java EE> https://open-esb.dev.java.net/Components.html

• 開発ツールとの連携> NetBeans 6.0

Page 59: Glass Fish With Hadb

59Copyright © 2007 Sun Microsystems K.K.

高可用性 /拡張性• Shoal を使用した動的クラスタ

> インスタンスの追加・削除によるクラスタ構成の変更に応じ、動的にリングトポロジを変更

• インメモリ・リプリケーション機能の追加

• HADB 本体の更新に伴うバージョンアップ

• タイマー Bean のフェールオーバ

• クラスタ内の JMS ブローカに対する高可用性

• IIOP の負荷分散、フェールオーバ

Page 60: Glass Fish With Hadb

60Copyright © 2007 Sun Microsystems K.K.

管理コンソール• JavaServer Faces を使用した管理画面コンポーネント

• jMaki を使用したグラフ> Web サービス監視統計情報> ログ解析ページ

• Ajaxを使用したナビゲーションツリー> 管理操作性の向上・操作時間の短縮

• クラスタ管理

Page 61: Glass Fish With Hadb

61Copyright © 2007 Sun Microsystems K.K.

管理コンソール(続き)• ノードエージェントに対する設定が可能

• ロードバランサに対する設定が可能

• リスナーの生死判定を行う ping コマンドを用意

• より理解しやすくなった統計情報

• Ajaxを使用したWeb サービスの統計情報

• 統合された JBI環境の管理

• 診断プログラムとカレンダーの連携

Page 62: Glass Fish With Hadb

62Copyright © 2007 Sun Microsystems K.K.

接続プールに対する拡張• クラスター化された接続プール• 設定に関する新規属性の追加

> Leak-Tracing> Connection-Creation-Retry> Validate-Atmost-Period> Statement-Timeout

• アプリケーションクライアントコンテナ中より接続プールを無効にする設定が可能

• 接続プールとリソースアダプタの統合• 管理コンソール・ asadmin コマンド内で pool-specific な接続と driver-specific な接続を分離

Page 63: Glass Fish With Hadb

63Copyright © 2007 Sun Microsystems K.K.

セキュリティ• JSR-196 (Java Authentication Service Provider Interface for Containers) のサポート

• Java Key Store(JKS)ならびにNSS(Netscape Security Services)をサポート

• Java SE 6ならびにキーストアにNSSを利用することで楕円曲線暗号(ECC: Elliptic Curve Cryptography)をサポート

• セキュリティレルム内で assign-groups をサポート

• JDBC レルムをサポート

Page 64: Glass Fish With Hadb

64Copyright © 2007 Sun Microsystems K.K.

動的配備と動的読み込み• 動的配備

> サーバインスタンスの再起動なしでアプリケーションの配備、再配備、配備の取り消しが可能

> 再配備時に既存セッションの無効化• 動的再読み込み

> サーバインスタンスの再起動なしでアプリケーションの実装コードの変更が可能

> アプリケーションが配備されたディレクトリに変更されたファイルをコピーするだけで変更が反映

> サーバによる定期的なチェックで変更を検知しアプリケーションの再配備

> 開発環境におけるテストコードの変更に対する早急な対応

Page 65: Glass Fish With Hadb

65Copyright © 2007 Sun Microsystems K.K.

自動配備• ファイルコピーによる自動配備

> モジュールをアプリケーションサーバの autodeployディレクトリにコピーし、モジュールを自動配備可能

> 修正したモジュールを再デプロイする場合、 autodeployディレクトリの同一モジュールを上書きコピー

> autodeployディレクトリ下に存在するモジュールを削除し、モジュールの配備取り消しが可能

> サーバはデフォルトで 2秒間隔で autodeployディレクトリをチェック

> クラスタ環境、スタンドアロンサーバインスタンスの環境下では自動配備機能は無効

Page 66: Glass Fish With Hadb

66Copyright © 2007 Sun Microsystems K.K.

旧バージョンとの互換性• バイナリ互換

> 下記環境とバイナリ互換を保持>Sun Java System Application Server 8.2>Sun Java System Application Server 8.1>Sun Java System Application Server 7.x

• プログラム動作> 下記非互換リストに記載される内容を除き、上記環境で動作するアプリケーションは基本的に Sun Java System Application Server 9.1 でも動作可能

> 非互換リスト (Application Server Compatibility Issues)>http://docs.sun.com/app/docs/doc/819-3676/abmaq?l=ja&a=view

Page 67: Glass Fish With Hadb

67Copyright © 2007 Sun Microsystems K.K.

マイグレーション• 下記環境からのマイグレーション可能

> Sun ONE Application Server 6.x> Sun Java System Application Server 7> Sun Java System Application Server 8.0/8.1> Java EE Reference Implementation Application Server(RI) 1.3,1.4 Beta1

> WebLogic Application Server (WLS) 5.1, 6.0, 6.1, 8.1> WebSphere Application Server (WAS) 4.0, 5.x> Sun ONE Web Server 6.0> JBoss Application Server 3.0> Apache Tomcat 4.1

• ツール入手先> https://migrate2glassfish.dev.java.net/

Page 68: Glass Fish With Hadb

68Copyright © 2007 Sun Microsystems K.K.

•コミュニティの紹介

Page 69: Glass Fish With Hadb

69Copyright © 2007 Sun Microsystems K.K.

GlassFish のサブプロジェクト

• アプリケーションサーバ開発から派生したサブプロジェクト群

• サブプロジェクトの生成物は個別利用可能

• 全てオープンソースによる開発

Page 70: Glass Fish With Hadb

70Copyright © 2007 Sun Microsystems K.K.

Grizzly - HTTP コネクタ

• HTTPの全処理を行いApplication Serverの各コンテナに処理を転送する Grizzly HTTPコネクタ

• パフォーマンスを大幅に改善

• 使いやすさの向上、ソケット通信におけるハイパフォーマンスAPIの提供

• 接続監視のサポートとDoS攻撃からの防御

• Java New I/O(NIO)フレームワークに基づく実装

• 非同期リクエスト処理のサポート

• HTTP以外(TCP, UDP, FTP等)の処理もサポート

ハイパフォーマンスのネットワークサーバエンジン

Page 71: Glass Fish With Hadb

71Copyright © 2007 Sun Microsystems K.K.

Shoal - クラスタ開発

• クラスタ構成技術

• 独自に開発したアプリケーションもクラスタ化が可能

●グループ参加●メンバー参加●障害メンバーの通知●計画的なシステム停止の通知●ターゲットメンバーの障害復旧●全メンバーに対する通知、受信●軽量分散状態キャッシュの実装

汎用的クラスタフレームワーク

Page 72: Glass Fish With Hadb

72Copyright © 2007 Sun Microsystems K.K.

Woodstock - 次世代Web UI 開発

• 管理画面で使用する UI コンポーネントの開発サブプロジェクト

• NetBeans から再利用も可能

サンプルコンポーネント

次世代のWeb UI コンポーネントもオープンソースで開発再利用も可能 !!

Page 73: Glass Fish With Hadb

73Copyright © 2007 Sun Microsystems K.K.

jMaki

• JavaScript の知識なしで Ajax アプリケーションの開発が可能

• Ajax を実現するための簡易カスタムタグライブラリを提供> Dojo> Flickr> Google> Scriptaculous> Spry> Widgets> Yahoo

https://ajax.dev.java.net/http://jmaki.com/

次世代型 簡易 Ajaxフレームワーク

Tag Cloud

jMaki Containers Sample

Page 74: Glass Fish With Hadb

74Copyright © 2007 Sun Microsystems K.K.

参考情報• GlassFish コミュニティ・サイト(日本語)

> https://glassfish.dev.java.net/ja

• GlassFish 関連ニュース・ブログ(日本語)> http://blogs.sun.com/theaquarium_ja/

• GlassFish ブログ(英語・日本語)> http://blogs.sun.com/main/tags/glassfish

• ドキュメント> http://docs.sun.com/app/docs/coll/1343.4

• Java EE 5 SDK Update 3 ダウンロード> http://sdc.sun.co.jp/java/javaee/downloads/index.html

• Sun Java System Application Server 9.1 製品情報> http://jp.sun.com/products/software/javasystem/applicationserver/

Page 75: Glass Fish With Hadb

75

Sun GlassFish Enterprise Serverサン・マイクロシステムズ株式会社ソフトウェア・インフラストラクチャー・ ソリューション本部

ソリューションアーキテクト寺田 佳央http://blogs.sun.com/yosshi