glassfish rest backend

Post on 15-Jan-2015

2.914 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

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 管理・監視

• リソース(URI)の状態を取得する

• 子リソースの値や形式を取得する(有効なメソッド、データ形式)

POST 管理

• リソースの状態を変更する

• 設定変更 & 子リソースの作成(方法→事前にGETで調べておく)

PUT -

• リソース(URI)を作成する

• REST backendでは使用しない→親リソースへのPOSTで代用する

DELETE 管理

• リソース(URI)を削除する

• リソース(JDBCコネクションプール等)の削除に用いる

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 .json)で指定可 ※例外あり

REST backendのXML-JSON対応表

JSON XML XMLの凡例

key : value entry要素 <entry key=“key” value=“value”/>

{ … } map要素 <map>…</map>

[ … ] list要素 <list>…</list>

※最も外側は、JSONでは {…}、XMLではmap要素です

REST backend出力の最上位項目

commandコマンド名

(内部での識別に利用)

exit_code成功時 “SUCCESS”失敗時 “FAILURE”

messageメッセージがあれば設定 (監視では常に空文字列)

extraProperties取得・設定するキー/値

リソースごとに内容は異なる

管理: extraPropertiesの主な子要素

childResources 子リソースを表すmap、値は子リソースの絶対URI。末端以外に存在する。

entity このリソースに設定されているパラメータで、なければ項目ごと省略。

methods このリソースが受け付けるメソッドのリスト、entityと対応する。

commands コマンド(管理操作)のリスト。

commandLog 過去に実行されたコマンド(管理操作)の一覧。省略される場合もある。

children 一覧系コマンド(list-~)の実行結果

監視: extraPropertiesの子要素

childResources

子リソースを表すmap、値は子リソースの絶対URI。管理チャネルと異なり末端でも必ず存在(空のmap)。子リソースがない場合は、entityのキーを子URIに代用してentityを絞り込み可。

entity

このリソースに設定されているパラメータ。管理チャネルと比較して項目数が多くネストも深い傾向にある。監視チャネルではパラメータがない場合でも必ず存在(空のmap)。

Using REST backend【管理】POSTまたはDELETEメソッド使用時は、リクエストヘッダー X-Requested-By を含める(GlassFish 3.1.2以降のセキュリティ強化による)

※GETメソッドの場合は不要

• 例: (リクエストヘッダー)…X-Requested-By: GlassFish REST HTML interface…

Using REST backend【管理】【監視】DASにパスワードを設定している場合、認証なし/平文BASIC認証のいずれも受け付けない →以下、対応方法

1.セキュア管理を有効にした上で、BASIC認証を使用する(HTTPS通信になる)

2.BASIC認証でセッショントークンを取得し、その値をクッキー gfresttoken に設定する※30分でタイムアウトするので注意

REST backendの活用シーン

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

• 標準の管理コンソール

• 3rdパーティーの監視ツール LightFish

•GlassFish管理の自動化(管理スクリプトの代用として)

•アプリケーションからの設定変更

•その他、アイデアさえあれば…

GlassFish REST backend HASUNUMA Kenji khasunuma@java.net

© U.S.Navy http://www.navy.mil/viewGallery.asp

top related