0
GlassFish REST backend
Decenber 13, 2013

HASUNUMA Kenji
GlassFish Community
E-mail: khasunuma@java.net 

Twitter: @khasun...
GlassFishの管理と監視
1.CLI Framework (asadmin)
2.REST backend

※管理コンソール→REST backendを利用
What’s REST?

© U.S.Navy
http://www.navy.mil/viewGallery.asp
RESTの3要素

•リソース
•メソッド (リソースの操作)
URI (リソースの識別)
•
RESTなもの(RESTful)の例

• Amazon

• Twitter

• Facebook

→RESTの3要素=メソッドの使い分け
RESTでないものの例

• Apache Struts

• JavaServer Faces

• SOAP Based Web Service

→何でもかんでもPOSTで処理
REST backendのリソース(URI):
http://localhost:4848

!

■管理チャネル

/management/domain
!

■監視チャネル

/monitoring/domain
リソース(URI): JDBCコネクションプール

/management/domain

/resources


/jdbc-connection-pool

/DerbyPool

/__TimerPool
リソース(URI): JVMオプション一覧
※コマンド: それ自身は情報を持たない

(GETメソッドによるアクション実行)

/management/domain


/list-jvm-options

リソース(URI): JVMメモリー使用量
※モニタリング: その瞬間の値を取得

/monitoring/domain

/server


/jvm

/memory

GET
管理・監視

POST
管理

PUT
-

•
•

リソース(URI)の状態を取得する
子リソースの値や形式を取得する

(有効なメソッド、データ形式)

• リソースの状態を変更する
• 設定変更 & 子リソースの作成


(方法...
How to use it?

© U.S.Navy
http://www.navy.mil/viewGallery.asp
必要なもの: HTTPクライアント

• Webブラウザ
• HTTPクライアントアプリケーション

(有償でも良いものを選択すること!)

• HTTPクライアントライブラリ

(Java: JAX-RS 2.0クライアント推奨)
REST管理チャネルの入出力

• HTML … Webブラウザ用
• XML … DOM、StAX、JAXB等
• JSON … JavaScript、JSON-P等
※リクエストのAcceptヘッダーまたは拡張子
(.html .xml ....
REST backendのXML-JSON対応表
JSON

XML

XMLの凡例

key : value

entry要素

<entry key=“key”
value=“value”/>

{…}

map要素

<map>…</ma...
REST backend出力の最上位項目
command

exit_code

コマンド名

(内部での識別に利用)
成功時 “SUCCESS”

失敗時 “FAILURE”

message

メッセージがあれば設定
(監視では常に空文字列...
管理: extraPropertiesの主な子要素
子リソースを表すmap、値は子リソー
childResources
スの絶対URI。末端以外に存在する。
このリソースに設定されているパラメ
entity
ータで、なければ項目ごと省略。
この...
監視: extraPropertiesの子要素
子リソースを表すmap、値は子リソー
スの絶対URI。管理チャネルと異なり
childResources 末端でも必ず存在(空のmap)。子リソ
ースがない場合は、entityのキーを子
URIに...
Using REST backend
【管理】POSTまたはDELETEメソッド使用時は、
リクエストヘッダー X-Requested-By を含める

(GlassFish 3.1.2以降のセキュリティ強化による)

※ GETメソッドの場合...
Using REST backend
【管理】【監視】DASにパスワードを設定してい
る場合、認証なし/平文BASIC認証のいずれも受け
付けない →以下、対応方法
1.セキュア管理を有効にした上で、BASIC認証を使
用する(HTTPS通信に...
REST backendの活用シーン

•

管理/監視ソリューションの開発

• 標準の管理コンソール
• 3rdパーティーの監視ツール LightFish

• GlassFish管理の自動化

(管理スクリプトの代用として)

• アプリ...
GlassFish REST backend
HASUNUMA Kenji
khasunuma@java.net

© U.S.Navy
http://www.navy.mil/viewGallery.asp
Upcoming SlideShare
Loading in...5
×

GlassFish REST backend

3,759

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,759
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
10
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "GlassFish REST backend"

  1. 1. GlassFish REST backend Decenber 13, 2013 HASUNUMA Kenji GlassFish Community E-mail: khasunuma@java.net Twitter: @khasunuma © U.S.Navy : http://www.navy.mil/viewGallery.asp
  2. 2. GlassFishの管理と監視 1.CLI Framework (asadmin) 2.REST backend ※管理コンソール→REST backendを利用
  3. 3. What’s REST? © U.S.Navy http://www.navy.mil/viewGallery.asp
  4. 4. RESTの3要素 •リソース •メソッド (リソースの操作) URI (リソースの識別) •
  5. 5. RESTなもの(RESTful)の例 • Amazon • Twitter • Facebook →RESTの3要素=メソッドの使い分け
  6. 6. RESTでないものの例 • Apache Struts • JavaServer Faces • SOAP Based Web Service →何でもかんでもPOSTで処理
  7. 7. REST backendのリソース(URI): http://localhost:4848 ! ■管理チャネル /management/domain ! ■監視チャネル /monitoring/domain
  8. 8. リソース(URI): JDBCコネクションプール /management/domain
 /resources
 /jdbc-connection-pool
 /DerbyPool
 /__TimerPool
  9. 9. リソース(URI): JVMオプション一覧 ※コマンド: それ自身は情報を持たない
 (GETメソッドによるアクション実行) /management/domain
 /list-jvm-options

  10. 10. リソース(URI): JVMメモリー使用量 ※モニタリング: その瞬間の値を取得 /monitoring/domain
 /server
 /jvm
 /memory

  11. 11. GET 管理・監視 POST 管理 PUT - • • リソース(URI)の状態を取得する 子リソースの値や形式を取得する
 (有効なメソッド、データ形式) • リソースの状態を変更する • 設定変更 & 子リソースの作成
 (方法→事前にGETで調べておく) • • リソース(URI)を作成する REST backendでは使用しない
 →親リソースへのPOSTで代用する • リソース(URI)を削除する DELETE • リソース(JDBCコネクションプール等)の削 管理 除に用いる
  12. 12. How to use it? © U.S.Navy http://www.navy.mil/viewGallery.asp
  13. 13. 必要なもの: HTTPクライアント • Webブラウザ • HTTPクライアントアプリケーション
 (有償でも良いものを選択すること!) • HTTPクライアントライブラリ
 (Java: JAX-RS 2.0クライアント推奨)
  14. 14. REST管理チャネルの入出力 • HTML … Webブラウザ用 • XML … DOM、StAX、JAXB等 • JSON … JavaScript、JSON-P等 ※リクエストのAcceptヘッダーまたは拡張子 (.html .xml .json)で指定可 ※例外あり
  15. 15. REST backendのXML-JSON対応表 JSON XML XMLの凡例 key : value entry要素 <entry key=“key” value=“value”/> {…} map要素 <map>…</map> […] list要素 <list>…</list> ※最も外側は、JSONでは {…}、XMLではmap要素です
  16. 16. REST backend出力の最上位項目 command exit_code コマンド名 (内部での識別に利用) 成功時 “SUCCESS”
 失敗時 “FAILURE” message メッセージがあれば設定 (監視では常に空文字列) extraProperties 取得・設定するキー/値 リソースごとに内容は異なる
  17. 17. 管理: extraPropertiesの主な子要素 子リソースを表すmap、値は子リソー childResources スの絶対URI。末端以外に存在する。 このリソースに設定されているパラメ entity ータで、なければ項目ごと省略。 このリソースが受け付けるメソッドの methods リスト、entityと対応する。 commands commandLog children コマンド(管理操作)のリスト。 過去に実行されたコマンド(管理操作) の一覧。省略される場合もある。 一覧系コマンド(list-∼)の実行結果
  18. 18. 監視: extraPropertiesの子要素 子リソースを表すmap、値は子リソー スの絶対URI。管理チャネルと異なり childResources 末端でも必ず存在(空のmap)。子リソ ースがない場合は、entityのキーを子 URIに代用してentityを絞り込み可。 entity このリソースに設定されているパラメ ータ。管理チャネルと比較して項目数 が多くネストも深い傾向にある。監視 チャネルではパラメータがない場合で も必ず存在(空のmap)。
  19. 19. Using REST backend 【管理】POSTまたはDELETEメソッド使用時は、 リクエストヘッダー X-Requested-By を含める
 (GlassFish 3.1.2以降のセキュリティ強化による) ※ GETメソッドの場合は不要 • 例: (リクエストヘッダー)
 …
 X-Requested-By: GlassFish REST HTML interface
 …
  20. 20. Using REST backend 【管理】【監視】DASにパスワードを設定してい る場合、認証なし/平文BASIC認証のいずれも受け 付けない →以下、対応方法 1.セキュア管理を有効にした上で、BASIC認証を使 用する(HTTPS通信になる) 2.BASIC認証でセッショントークンを取得し、そ の値をクッキー gfresttoken に設定する
 ※30分でタイムアウトするので注意
  21. 21. REST backendの活用シーン • 管理/監視ソリューションの開発 • 標準の管理コンソール • 3rdパーティーの監視ツール LightFish • GlassFish管理の自動化
 (管理スクリプトの代用として) • アプリケーションからの設定変更 • その他、アイデアさえあれば…
  22. 22. GlassFish REST backend HASUNUMA Kenji khasunuma@java.net © U.S.Navy http://www.navy.mil/viewGallery.asp
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×