glassfish rest backend
Post on 15-Jan-2015
2.914 Views
Preview:
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を利用
RESTの3要素 •リソース •メソッド (リソースの操作) •URI (リソースの識別)
RESTなもの(RESTful)の例
• Amazon
→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コネクションプール等)の削除に用いる
必要なもの: 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