...

Libertyプロファイル概要・開発 日本アイ・ビー・エム株式会社 WebSphere クライアント・テクニカル・プロフェッショナルズ 田中 孝清

by user

on
Category: Documents
476

views

Report

Comments

Transcript

Libertyプロファイル概要・開発 日本アイ・ビー・エム株式会社 WebSphere クライアント・テクニカル・プロフェッショナルズ 田中 孝清
WASV8.5最新情報セミナー
Libertyプロファイル概要・開発
日本アイ・ビー・エム株式会社
WebSphere クライアント・テクニカル・プロフェッショナルズ
田中 孝清
Agenda
1.
2.
3.
4.
5.
6.
Libertyプロファイル概要
導入と基本操作
WAS V8.5 Liberty Profile Developer Tools
Libertyプロファイルの構成
アプリケーション管理
まとめ・参考文献
© 2012 IBM Corporation
2
1. Libertyプロファイル概要
© 2012 IBM Corporation
3
Libertyプロファイルとは
„WAS
V8.5から追加された,簡単に導入・構成が可能な
高速・軽量なWebアプリケーション実行環境
動的サーバー・プロファイル
アプリケーションが必要な機能
を自動で判断して追加
Developer First にフォーカス
シンプルかつ共有可能なサーバー構成
構成情報の共有や再利用を容易にするため、
1つのXMLファイル(複数も可)で管理
高速起動
起動時間: 5秒以内
ダウンロード・サイズ
50MB以下
軽量ランタイム
わずかなメモリー使用量:
(60MB for TradeLite)
WAS V8.5
Liberty Profile
動的ランタイム
機能追加や構成変更時に、サー
バーの再起動が不要
統合ツール
NDのJob Managerと統合可能
高機能かつ、Eclipseから
簡単に使用可能
NDのJob Managerからサーバーの
ライフサイクルを管理可能
Unzipによる導入とデプロイ
プラットフォーム拡充
Installation Manager か unzip で
導入。サーバー + アプリ + 構成情
報をUnzipでデプロイ可能
開発用としてMACを追
加サポート
© 2012 IBM Corporation
通常のWASとの高い親和性
同じ信頼性の高いコンテナとQOSを採
用。開発から運用に簡単に移行
4
登場の背景
„
サーバー実行環境と開発環境の要件の違い
高機能
重要
起動に時間がかかる
導入イメージが大きい
詳細な構成項目
© 2012 IBM Corporation
機能限定
重要
短時間で起動
少ないフットプリント
簡単な構成
動的な更新
5
Libertyプロファイルの特徴
„
50M以下のダウンロードサイズ,
ファイルを展開するだけの容易な導入。
„
機能は限定されているものの,
非常に短時間での起動(多くの環境で数秒~十数秒),
動的な更新が可能。
„
少ないメモリ・リソースで稼働。
ディスク上のサイズも限定的。
„
主に開発者が開発中のテストに
使用することを想定しているが,
要件によっては本番環境で使用することも可能
© 2012 IBM Corporation
6
WAS V8.5 Libertyプロファイルで提供されている機能
„
API: Java EE
‹
‹
‹
‹
‹
‹
‹
„
‹
„
servlet-3.0
jsp2.2
jsf-2.0
jaxrs-1.1
json-1.0
jpa-2.0
beanvalidation-1.0
API: Java SE
‹
jndi-1.0
jdbc-4.0
API: OSGi
‹
‹
‹
„
サーバー・サービス
‹
‹
‹
‹
‹
‹
‹
„
appSecurity-1.0
sessionDatabase-1.0
ssl-1.0
localConnector-1.0
restConnector-1.0
monitor-1.0
serverStatus-1.0
サーバー・サービス(zOS環境)
‹
‹
‹
zosTransaction-1.0
zWlm-1.0
zosSecurity-1.0
blueprint-1.0
osgi-jpa-1.0
wab-1.0
© 2012 IBM Corporation
7
Libertyプロファイルで提供されていない機能の例
„
API
‹
‹
‹
‹
„
EJB: Session Bean,Massage Driven Bean
JMS
SOAPによるWebサービス:JAX-WS,JAX-RPC
CDI
等
サーバー・サービス
‹
‹
‹
‹
クラスタ環境に対応したトランザクション・マネージャー
Mem-to-memのセッション・レプリケーション
インタラクティブな分散環境統合管理
統合レポジトリー
© 2012 IBM Corporation
等
8
動的更新
„
構成の動的更新
‹
‹
„
サーバー構成ファイル(server.xml)の変更が動的に更新される
(デフォルトでは500msecごとにファイルのチェックが行われる)
サーバーの再起動は不要
アプリケーションの動的更新
‹
‹
アプリケーションの追加と削除(dropinディレクトリ)
導入済み
アプリケーションの更新
features
(dropinディレクトリ
applications
resources
および
server.xml
server.xmlの<application>で
指定されたアプリ)
¾
‹
„
application
application
application
dropins
デフォルトでは500msecごとに
ファイルのチェックが行われる
該当のアプリケーション
のみ再起動される
無効化することも可能
(手順は次章)
jspjsf-2.0
2.2 servle
t-3.0
feature更新
config更新
application更新
serverssl-1.0
monitor
Statussession
-1.0
1.0 Databa
jdbcse-1.0
jndi-1.0
4.0
Libertyランタイム
OSGi フレームワーク
JDK 6.0 +
© 2012 IBM Corporation
9
ライセンス
„
WAS for Developerのライセンスで
•
•
„
開発者がローカルでの開発・テストで使用する場合は無償
有償でサポートを提供(技術Q&A/障害対応)
WAS Express/Base/NDのライセンスで
•
•
•
本番環境や検証環境での利用が可能
お買い上げ頂いたValue Unit数の範囲内で利用可能
技術Q&Aや障害対応などのサポートを提供
WAS for
Developers
WAS Hypervisor
Edition
WAS ND
Tools +Liberty
Edition Profile
+Liberty+Intelligent
Profile
Mgmt
Tools +Liberty+Intelligent +Liberty+Intelligent
Edition Profile Mgmt
Profile Mgmt
本番環境の
WASで稼働す
るアプリケー
ションの迅速な
開発をサポート
VMware, PowerVM,
zVM などのサーバー仮
想化環境に最適化され,
短時間で環境構築が可
能
非常に高い可用性,高
いパフォーマンス,高度
な管理機能を提供。ミッ
ション・クリティカルなア
プリケーションに最適。
開発者のPCで
の利用を想定
無償で提供
Eclipse用アダ
プターを利用可
能
© 2012 IBM Corporation
WAS for z/OS
z/OS Sysplex を活用し,
高度なセキュリティー,
信頼性を提供。リソース
活用を最大化。
WAS
Tools +Liberty セキュアでパフォーマンスの高いトランザクション・エンジ
Edition Profile ンを提供
最大で5つのアプリケーション・サーバー・プロファイル間
にて,Web層のクラスタリングとフェイルオーバー機能を
提供。
WAS Express
WAS CE
オープンソースベース
安価に動的Webア
スモール・フットプリント
+Liberty
プリケーションを構
Profile
初期ライセンス・コストが
築可能
不要
共通のコードベース
10
2. 導入と基本操作
© 2012 IBM Corporation
11
導入方法
„
三通りの導入方法
‹ 自己展開圧縮ファイルを実行して展開
‹ IBM
Installation Managerによる導入
‹ Eclipse上のWDTを使用してダウンロード・導入
¾
„
WDT:WebSphere Application Server Developer Tools
既存の導入・構成済みの環境をPackageして,
独自の導入zipファイルを作成することも可能
‹ 次章で解説
© 2012 IBM Corporation
12
自己展開圧縮ファイルを実行して展開(1)
„
導入ファイルは,Javaの実行可能Jarファイル
‹
„
入手方法
‹
‹
„
製品の導入メディアのWLPディレクトリーに格納
WASDev.netからダウンロード(要IBM ID登録)
導入手順
1.
2.
3.
4.
5.
„
ファイル名は,wlp-developer-8.5.x.x.jar
(「8.5.x.x」の部分はバージョン番号)
コマンドラインから「java -jar wlp-developer-8.5.x.x.jar」で実行
ライセンス条項(プログラムのご使用条件)の表示またはスキップ
ライセンス条項への同意
展開先ディレクトリーの指定
指定したディレクトリーにwlpディレクトリーが作成され製品が展開される
注意点
‹
‹
Java SE 1.6以降のJREで実行が可能
展開先ディレクトリーにwlpディレクトリーがすでに存在している場合は失敗
© 2012 IBM Corporation
13
自己展開圧縮ファイルを実行して展開(2)
1. Jarファイルを実行
2. ライセンスを表示・スキップ
3. ライセンス条項への同意
4. 展開先ディレクトリーの指定
© 2012 IBM Corporation
14
自己展開圧縮ファイルを実行して展開(3)
„
使用可能なオプション
‹
java -jar wlp-developer-8.5.x.x.jar --acceptLicense <Ext_Dir>
¾
‹
java -jar wlp-developer-8.5.x.x.jar --verbose
¾
‹
ファイル展開時に詳細な情報を表示
java -jar wlp-developer-8.5.x.x.jar --viewLicenseAgreement
¾
‹
ライセンス条項の表示・同意をスキップし,指定されたディレクトリーに展開
(サイレント・インストール・モード)
ご使用条件の表示(導入は行われない)
java -jar wlp-developer-8.5.x.x.jar --viewLicenseInfo
¾
© 2012 IBM Corporation
ライセンス情報の表示の表示(導入は行われない)
15
IBM Installation Managementによる導入
„
„
導入時の「パッケージの変更」画面で
「WebSphere Application Server Liberty Profile」に
チェックを入れる
指定した導入ディレクトリーにwlpディレクトリーが作成され
展開された形で導入が行われる
© 2012 IBM Corporation
16
Libertyプロファイルのディレクトリー構成(1)
„
wlp
„
wlp/bin
wlp/clients
wlp/dev
wlp/etc
wlp/lafiles
wlp/lib
wlp/templetes
„
„
„
„
„
„
導入ディレクトリー
操作コマンド(serverコマンド等)が格納
JMX操作用のクライアントライブラリー
アプリケーションから参照可能なクラス
(要作成)一部の構成ファイルを格納
ライセンス情報
プラットフォームのランタイムクラス
構成のテンプレートおよびサンプル
„
wlp/usr
wlp/usr/share/apps
wlp/usr/share/config
wlp/usr/share/resource
„
wlp/usr/servers/サーバー名
„
„
„
© 2012 IBM Corporation
サーバーの構成情報
共有アプリケーション
共有構成ファイル
共有リソース(データソース・アダプタ)
個別サーバーディレクトリー
17
Libertyプロファイルのディレクトリー構成(2)
変数で参照可能なディレクトリー
„ wlp
‹
„
wlp/usr
‹
„
${shared.config.dir}で参照可能
wlp/usr/share/resource
‹
„
${shared.app.dir}で参照可能
wlp/usr/share/config
‹
„
${wlp.user.dir} で参照可能
wlp/usr/share/apps
‹
„
${wlp.install.dir} で参照可能
${shared.resource.dir}で参照可能
wlp/usr/servers/サーバー名
‹
${server.config.dir}および${server.output.dir}で参照可能
© 2012 IBM Corporation
18
Libertyプロファイルのディレクトリー構成(3)
wlp/usr/servers/サーバー名(個別サーバーディレクトリー)以下のファイルおよびディレクトリー
„
server.env
‹
„
jvm.options
‹
„
デフォルトのdropinディレクトリー
logsディレクトリー
‹
„
(要作成) サーバーで実行するアプリケーションをおく
(<application>要素のlocation属性で指定されたファイルが最初に検索されるディレクトリ)
dropinsディレクトリー
‹
„
サーバーの基本構成ファイル
appsディレクトリー
‹
„
(要作成) サーバーのブートストラップ・プロパティ
server.xml
‹
„
(要作成) JVMを起動する際のオプション
bootstrap.properties
‹
„
(要作成) サーバープロセスで使用する環境変数
サーバーのログファイルが出力される
workareaディレクトリー
‹
サーバーランタイムが使用するキャッシュディレクトリー
© 2012 IBM Corporation
19
Libertyプロファイルの基本構成
WAS Liberty Profile
操作
wlp/bin/server
wlp/usr/servers/defaultServer/server.xml
defaultServer
App
wlp/usr/servers/server1/server.xml
server1
App
App
App
wlp/usr/servers/server2/server.xml
JDK
„
„
© 2012 IBM Corporation
server2
App
App
App
Libertyプロファイル自身はJDKを含んでいない
複数のLibertyプロファイル環境を導入することができ,
複数サーバーの定義,複数アプリケーションの導入も可能
20
serverコマンド
„
Libertyプロファイルを操作するコマンド
‹
‹
‹
‹
„
„
binディレクトリーにある
Java SE 1.6以降のJRE(javaコマンド)にパスが通っている必要がある
JAVA_HOME環境変数で,使用するJREを変更することが可能
JVM_ARGS環境変数で,JVMに渡す汎用引数を指定
基本書式
> server <Action> <Server_Name> [Options]
アクションの種類
‹
サーバーの構成の作成
¾
‹
サーバーの起動・停止
¾
‹
dump, javadump (V8.5.0.1以降)
サーバー環境のパッケージング(詳細は次章)
¾
‹
run, start, stop, debug
問題判別情報の収集(詳細は次章)
¾
‹
create
package
情報の表示
¾
© 2012 IBM Corporation
status, version, help
21
serverコマンド:サーバーの構成の作成
„
書式
> server create サーバー名
‹
‹
„
„
サーバー名には英数字
および下線 (_),ダッシュ (-),ピリオド (.)のみが使用可能
(日本語は使用できない)
サーバー名を省略した場合には「defaultServer」が使用される
(他のアクションも同じ)
テンプレートを元に
「usr/servers/サーバー名」ディレクトリーに
サーバーの起動に必要な構成ファイルが作成される
作成される構成ファイルは「server.xml」
‹
その他の構成ファイルは必要に応じて手動で作成する
© 2012 IBM Corporation
22
serverコマンド:サーバーの起動・停止
„
> server run サーバー名
‹
‹
‹
„
> server start サーバー名
‹
‹
‹
„
サーバーをバックグランドで実行する
サーバーからのメッセージは,
usr/サーバー名/logs/console.log に記録される
server stopコマンドでサーバーを停止させる
> server stop サーバー名
‹
„
サーバーをフォアグラウンドで実行する
サーバーからのメッセージは,コンソールに直接出力される
Ctrl + Cでサーバーを停止させる
サーバーを停止させる
> server debug サーバー名
‹
‹
サーバーをデバッグモードで起動する
指定されたポートをLISTENし,デバッガが接続すると起動する
© 2012 IBM Corporation
23
serverコマンド:サーバーの起動オプション
„
„
> server run サーバー名 --clean
> server start サーバー名 --clean
‹
${server.config.dir}/workareaにキャッシュされた各種情報を
使用せずにサーバーを起動
¾
‹
„
OSGiフレームワークが各種情報をキャッシュしているため
二回目以降の起動が高速化されている
Fixpackを適用したり,Interim Fixを適用したりした直後の起動では
必ずこのオプションを指定する必要がある。
そうしないと,ランタイムに加えられた変更が有効にならない。
> server start サーバー名 --config-root ディレクトリー名
‹
‹
標準のディレクトリー(wlp/usr/servers/サーバー名)以外のディレク
トリーに構成ファイル(server.xml等)をおいている場合に指定する
${server.config.dir}も指定されたディレクトリーに変更される
© 2012 IBM Corporation
24
serverコマンド:情報の表示
„
> server status サーバー名
‹
„
> server version
‹
„
指定したサーバーが起動しているかを表示
Libertyプロファイル環境のバージョンを表示
> server help
‹
serverコマンドの使用方法を表示
© 2012 IBM Corporation
25
3. WAS V8.5 Liberty Profile Developer Tools
© 2012 IBM Corporation
26
WebSphere Application Server Developer Tools for Eclipse
„
„
Eclipse上でJava™ EE,OSGi,Web 2.0,モバイル等のアプリケーションを
開発・アセンブルし,WebSphere Application Server にデプロイするため
の軽量のツール・セット
以下のものをEclipse Marketplaceで提供
‹
‹
‹
‹
„
„
WebSphere
WebSphere
WebSphere
WebSphere
Application
Application
Application
Application
Server
Server
Server
Server
V8.5
V8.5
V8.0
V7.0
Developer Tools
Liberty Profile Developer Tools
Developer Tools
Developer Tools
無償でダウンロード・利用が可能
資料によってはWDTと表記
WebSphere Application Server
Developer Tools
Web Tools Platform
Eclipse Platform
© 2012 IBM Corporation
連携
WebSphere
Application Server
起動停止,アプリケーションのデプロイ,管理を
Eclipse上から実行可能
27
WebSphere Application Server V8.5 Liberty Profile Developer Tools
„
IBM WebSphere Application Server V8.5
Liberty Profile Developer Tools
‹
‹
„
EclipseとLibertyプロファイルを連携させるサーバーアダプターを
中心としたツールセット
Eclipse 3.6.2(Helios), Eclipse 3.7(Indigo) ,
Eclipse 4.2(Juno)で使用可能
Information Centerでは,
「開発者ツール」と表記
Eclipse + WAS V8.5 Liberty Profile Developer Tool
© 2012 IBM Corporation
28
Developer Toolsの導入(1)
„
Eclipse Marketplaceからダウンロード・導入が可能
‹
‹
Eclipse上で「Help」→「Eclipse Marketplace... 」で
「websphere liberty」を検索し,
「Install」ボタンをクリック
必要な依存ファイルを含めて
自動的にダウンロードと導入がおこなわれる
© 2012 IBM Corporation
29
Developer Toolsの導入(2)
„
以下のURLから,Developer ToolsのZIPファイルをダウンロード
‹
‹
„
http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/
V8.5/wdtupdate/
このZIPファイルには,V8.5/V8.5 Liberty/V8.0/V7.0の全てのDeveloper
Toolsが含まれている
Eclipseの「Help」→「Install New Software...」で
ZIPファイルを指定して導入を実行
‹
詳細な手順は,以下のURLの
「ダウンロード済みのインストール・ファイルからのインストール」を参照
http://publib.boulder.ibm.com/infocenter/radhelp/v8r5/topic/com.ibm.rad.in
stall.doc/topics/t_install_wdt_eclipse.html
© 2012 IBM Corporation
30
Developer ToolsによるLibertyプロファイルの導入
„
„
„
Liberty Profile Developer Toolsを利用して,
直接サーバー環境をダウンロード・導入することが可能
新規サーバー作成画面で
「WebSphere Application Server V8.5 Liberty Profile」を選択
New Server画面で,
「download and install」をクリック
‹
„
„
既に別途導入されている場合は
導入先ディレクトリーを
「Installation Folder」に指定
「download site」を選択して
IBM IDを入力
導入先ディレクトリーを指定して
ダウンロード・導入を開始
© 2012 IBM Corporation
31
Developer ToolsによるLibertyプロファイル構成の作成
„
サーバー作成時にプロファイル選択画面で「New...」を
選択することでサーバー構成を作成可能
‹
「server create」コマンドと同等
© 2012 IBM Corporation
32
Developer Toolsによるサーバー構成(server.xml)の編集(1)
„
GUIの画面を使用して,server.xmlの編集が可能
‹
‹
‹
構成の追加なども,一覧から選択しておこなえるため,
XMLを直接編集することなく構成の追加変更が可能
相対パスによる入力(${shared.resource.dir}など)も支援
パスワードの難読化(XOR化)なども可能
Developer Toolsのserver.xml編集画面
© 2012 IBM Corporation
Featureの追加画面
33
Developer Toolsによるサーバー構成(server.xml)の編集(2)
子要素の追加・要素の削除・順序変更
XMLファイル中の要素(Element)を
ツリー状に表示
© 2012 IBM Corporation
画面左で選択した要素(Element)の
属性(Attribute)を編集
34
EclipseからLibertyプロファイルの起動・テスト
„
JSPやServlet実装クラスを右クリックし,
メニューの「Run as/Debug as」→「Run on Server」で実行が可能
‹
‹
‹
表示されるダイアログボックスで定義されているLibertyプロファイルを指定
必要に応じて「Next」の画面からアプリケーションをサーバーに追加する
自動的にサーバーが起動され,ブラウザが起動されて実行結果を表示
© 2012 IBM Corporation
35
Developer Toolsにより提供されるユーティリティー機能
„
„
„
„
SSL自己署名証明書の作成
Webサーバープラグインの生成
サーバー環境のパッケージング
障害レポートのための環境ダンプの生成
(それぞれの詳細については次章)
© 2012 IBM Corporation
36
4. Libertyプロファイルの構成
© 2012 IBM Corporation
37
基本的な構成ファイル
„
以下のファイルは${server.config.dir}に配置される
‹
server.xml
¾
„
以下のファイルは
${wlp.install.dir}/etcおよび${server.config.dir}に配置される
(両方存在している場合は後者の内容が優先)
‹
server.env
¾
‹
‹
JVMを起動する際のオプション
bootstrap.properties
¾
„
サーバープロセスで使用する環境変数
jvm.options
¾
„
サーバーの主要な構成ファイル
サーバーのブートストラップ・プロパティ
server.xmlファイルはサーバー構成を作成した際に自動生成
その他のファイルは必要に応じて手動で作成
© 2012 IBM Corporation
38
server.xml(1)
„
サーバーの構成をXML形式で記述
‹
„
ほとんどの構成要素にデフォルトの値が設定されており
それを変更する場合にのみ記述を追加
‹
„
<server>要素の子要素として設定を追加していく
記述がない場合には,デフォルトの値が使用される
<include location=“dir/file”>で指定されたファイルの内容を
組み込む事が可能
‹
dirを相対パスで指定した場合,以下の順で検索される
¾
¾
¾
© 2012 IBM Corporation
<include>が書かれた構成ファイルのディレクトリー
${server.config.dir}
${shared.config.dir}
39
server.xml(2)
„
変数を使用した記述(${~})が可能
‹
‹
„
組み込み変数(${server.config.dir}等)
bootstrap.propertiesで指定された値
時間を指定する属性値には時間単位をつける
‹
時間単位としては時間 (h),分 (m),または秒 (s) が使用可能
¾
‹
‹
一部の設定ではミリ秒(ms)も使用可能
たとえば30秒は「30s」と表す
複数の時間単位を使用して「1m30s」というような表記も可能
© 2012 IBM Corporation
40
server.xml: フィーチャー/フィーチャー・マネージャー
„
Libertyプロファイルで提供される個々のAPI・サービスは,
「フィーチャー」という単位でまとめられている
‹
„
使用可能なフィーチャーはwlp/lib/featuresで定義されている
使用するフィーチャーを
<featureManager>の子要素の<feature>で定義して有効化する
‹
‹
フィーチャーには依存関係が定義されていて,
前提となるフィーチャーも自動的に有効となる
例) jsp-2.2はservlet-3.0が前提となっている
有効となっていないフィーチャーは使用できない
<!-<!--Enable
Enablefeatures
features-->
-->
<featureManager>
<featureManager>
<feature>jsp-2.2</feature>
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
<feature>jdbc-4.0</feature>
<feature>localConnector-1.0</feature>
<feature>localConnector-1.0</feature>
<feature>ssl-1.0</feature>
<feature>ssl-1.0</feature>
</featureManager>
</featureManager>
server.xml
Developer Toolsのフィーチャー構成画面
© 2012 IBM Corporation
41
server.xml: HTTPエンドポイント
„
„
サーバーがLISTENするポート,
提供するHTTPサーバー・サービスの定義を行う
<httpEndpoint>要素で指定する
‹
さらに詳細な設定を
<httpOptions>,<sslOptions>,<tcpOptions>要素で指定可能
(詳細は次章)
<httpEndpoint
<httpEndpoint
host="localhost“
host="localhost“ httpPort="9080"
httpPort="9080"
httpsPort="9443"
httpsPort="9443"
id="defaultHttpEndpoint"
id="defaultHttpEndpoint" />
/>
server.xml
Developer ToolsのHTTPエンドポイント構成画面
© 2012 IBM Corporation
42
server.xml: アプリケーションのモニタリング/構成サービス
„
アプリケーション・モニタリング
‹
‹
‹
„
アプリケーションの動的更新を構成する
ドロップイン・ディレクトリーを指定する(デフォルトはdropins)
<applicationMonitor>要素で指定する
構成サービス
‹
‹
server.xmlの動的更新を構成する
<config>要素で指定する
Developer Toolsの構成サービス構成画面
Developer Toolsのアプリケーションモニタリング構成画面
© 2012 IBM Corporation
43
5. アプリケーション管理
„
„
„
„
© 2012 IBM Corporation
アプリケーションの導入
Webアプリケーション
DBアクセス
アプリケーション・セキュリティー
44
アプリケーションの導入
„
二つの導入方法
‹
‹
„
dropinsの下に置いてアプリケーション・モニター経由で導入
server.xmlに<application>要素で定義
導入方法
‹
圧縮ファイルのまま配置
¾
‹
WARファイル,EARファイルをそのままディレクトリー上に配置
ファイルを展開して配置
¾
¾
© 2012 IBM Corporation
WARファイルの名前でディレクトリーを作成し,WARファイルの中身を展開
ファイル単位の更新が可能
45
ドロップイン・ディレクトリー
„
„
„
アプリケーション・マネージャーが監視している
ドロップイン・ディレクトリーにファイルをコピーする
アプリケーション・セキュリティーのロールなど,
追加の構成が必要ないアプリケーションで利用可能
デフォルトは${server.config.dir}/dropins
‹
„
拡張子により自動的にタイプ(EAR/WAR/WAB)を判別
‹
„
存在しない場合,サーバーの起動時に自動的に作成される
WAR/WABは,拡張子を除いたファイル名が
アプリケーションのコンテキストルートとなる
例) Snoop.war は http://localhost:9080/Snoop/ でアクセス
ファイルを削除すると,
自動的にアプリケーションがアンインストールされる
© 2012 IBM Corporation
46
server.xml: アプリケーションの定義
„
<application>要素により指定
‹
‹
„
location属性は必須。絶対パス・相対パスやURLで記述
子要素としてセキュリティー・ロールのバインディングや
ライブラリー参照を指定することが可能
location属性を相対パスで指定した場合,
${server.config.dir}/apps,${shared.app.dir}から検索される
<application
<application
id="SupportTools"
id="SupportTools"
location="SupportTools.war“
location="SupportTools.war“
name="Support
name="Support Tools"
Tools" type="war“
type="war“
context-root="/support“
context-root="/support“ />
/>
server.xml
<application>要素にネストして
<application-bnd>要素や
<classloader>要素を定義できる
Developer Toolsのアプリケーション構成画面
© 2012 IBM Corporation
47
Webアプリケーション
„
関連するフィーチャー
‹ servlet-3.0
¾
Servlet API 3.0で定義されている機能を提供
‹ jsp-2.2
¾ JSP(Java Server Pages) 2.2で定義されている機能を提供
‹ jsf-2.0
¾
JSF(Java Server Faces) 2.0で定義されている機能を提供
‹ wab-1.0
¾ OSGi形式のWebアプリケーションである
WAB(Web Application Bundle)の実行をサポート
© 2012 IBM Corporation
48
server.xml: セッション・マネージャーの構成
„
<httpSession>要素で設定
‹
„
„
Webアプリケーションで使用される
HttpSessionマネージャーの構成
セッション・タイムアウト時間や
セッション維持に使用する
Cookieの構成などを行う
セッション・クラスタリングを
構成する場合,
<httpSessionDatabase>や
クローンIDなどの指定が必要
© 2012 IBM Corporation
Developer Toolsのセッションマネージャー構成画面 49
server.xml: JSPエンジンの構成
„
<jspEngine>要素で指定
‹
„
JSPのデバッグのために
生成されたソースを保存したい場合などに指定
JSPで生成されたClassファイル,
keepGeneratedが指定されたときのJavaファイルは,
以下のディレクトリーに格納される
${server.config.dir}/workarea/org.eclipse.osgi/bundles/数値/data/temp/default_node/SMF_WebContainer
<jspEngine
<jspEngine
recompileJspOnRestart="true“
recompileJspOnRestart="true“
keepGenerated="true"/>
keepGenerated="true"/>
server.xml
Developer ToolsのJSP 2.2構成画面
© 2012 IBM Corporation
50
server.xml: その他,Webアプリケーションの構成
„
<mimeType> ファイル拡張子によるMIMEタイプの指定
‹
WARファイル中のコンテンツをクライアントに送信する際に,
拡張子からContent-Typeを判断して付加させる
<mimeTypes>
<mimeTypes>
<type>xls=application/excel</type>
<type>xls=application/excel</type>
</mimeTypes>
</mimeTypes>
server.xml
„
<httpEncoding> 使用するJavaコンバーターの指定
‹
‹
WAS Fullプロファイルのencoding.properties,converter.propertiesの代替
Localeヘッダに基づいたデフォルトのcharset,
およびcharsetに基づいたデフォルトのJavaコンバーターの指定
¾
¾
‹
jaロケールのデフォルトは「Shift_JIS」,Shift_JISのデフォルトは「Cp943C」
Content-Typeのcharsetに「Shift_JIS」を指定した場合も,
デフォルトのSJISのコンバーターが使われるのを避けることができる。
何らかの理由でMS方式のマッピングを使用したい場合,
下記のように設定する
<httpEncoding
<httpEncoding converter.Shift_JIS="Windows-31j"/>
converter.Shift_JIS="Windows-31j"/>
server.xml
© 2012 IBM Corporation
51
アプリケーションからのDBアクセス
„
関連するフィーチャー
‹
jdbc-4.0
¾
‹
jndi-1.0
¾
‹
JPA(Java Persistent API) 2.0仕様で定義されている機能を提供
beanvalidation-1.0
¾
„
JNDI(Java Naming and Directory Interface)によるネーミング・サービス機能を提供
jpa-2.0
¾
‹
JDBC 4.0 仕様に基づいたデータベース・アクセスを提供
Bean Validation 1.0仕様で定義されている機能を提供
DBアクセスに必要な設定
‹
‹
‹
‹
ファイルセットサービス・ライブラリーの定義
JDBC Driverの定義
DetaSourceの定義
接続マネージャーの構成
© 2012 IBM Corporation
52
server.xml: ライブラリーの定義
„
ファイルセット・サービスでJarファイル/クラスファイルを
読み込みライブラリーを定義する
‹
‹
‹
読み込むディレクトリーを<fileset>要素のdir属性から指定する
デフォルトではディレクトリー上の全てのファイルが読み込まれる
指定したファイルのみを読み込む場合はinclude属性で指定する
¾
ワイルドカードとしてアスタリスクが使用できる
<library
<library id="derbyLib">
id="derbyLib">
<fileset
<fileset dir="${shared.resource.dir}/derby/“
dir="${shared.resource.dir}/derby/“ includes="*.jar“/>
includes="*.jar“/>
</library>
</library>
server.xml
‹
複数ファイルを指定する場合は空白で区切る
<library id=“userLib">
<library id=“userLib">
<fileset dir=“/opt/usrlib/java/“ includes=“aaa.jar bbb.jar“/>
<fileset dir=“/opt/usrlib/java/“ includes=“aaa.jar bbb.jar“/>
</library>
</library>
server.xml
„
アプリケーションやJDBC Driverの定義などで使用する
© 2012 IBM Corporation
53
server.xml: JDBC Driverの定義
„
ライブラリーを指定してJDBC Driverを定義する
<library
<library id="derbyLib">
id="derbyLib">
<fileset
<fileset dir="${shared.resource.dir}/derby/"
dir="${shared.resource.dir}/derby/" includes="*.jar"/>
includes="*.jar"/>
</library>
</library>
<jdbcDriver
<jdbcDriver libraryRef="derbyLib"
libraryRef="derbyLib" id="derbyDriver"/>
id="derbyDriver"/>
server.xml
„
ネストして定義することもできる
<jdbcDriver
<jdbcDriver id="derbyDriver">
id="derbyDriver">
<library>
<library>
<fileset
<fileset dir="${shared.resource.dir}/derby/"
dir="${shared.resource.dir}/derby/" includes="*.jar"/>
includes="*.jar"/>
</library>
</library>
</jdbcDriver>
</jdbcDriver>
server.xml
„
LibertyプロファイルでサポートされていないDriverの場合,
javax.sql.XADataSourceの実装クラスなどを指定する
<jdbcDriver id=“myDriver“
<jdbcDriver id=“myDriver“
javax.sql.XADataSource="com.ibm.sample.SampleXADataSource">
javax.sql.XADataSource="com.ibm.sample.SampleXADataSource">
server.xml
© 2012 IBM Corporation
54
server.xml: DataSourceの定義(1)
„
„
„
„
JDBC Driverを指定して(またはネストして)データソースを定義する
JNDI名が必須
子要素としてプロパティを指定
必要に応じて
接続マネージャーの構成を追加
Developer Toolsのデータソース構成画面
© 2012 IBM Corporation
55
server.xml: DataSourceの定義(2)
„
データベース固有の接続プロパティを指定する
‹
LibertyプロファイルでサポートされているDBについては,
専用のプロパティが用意されている
<jdbcDriver
<jdbcDriver id="derbyDriver">
id="derbyDriver">
<library>
<library>
<fileset
<fileset
dir="${shared.resource.dir}/derby/"/>
dir="${shared.resource.dir}/derby/"/>
</library>
</library>
</jdbcDriver>
</jdbcDriver>
<dataSource
<dataSource jndiName="jdbc/myDataSource“
jndiName="jdbc/myDataSource“
jdbcDriverRef="derbyDriver">
jdbcDriverRef="derbyDriver">
<properties.derby.embedded
<properties.derby.embedded
createDatabase="create“
createDatabase="create“
databaseName="${server.config.dir}/derby/myDB"/>
databaseName="${server.config.dir}/derby/myDB"/>
</dataSource>
</dataSource>
server.xml
© 2012 IBM Corporation
Developer Toolsの
Embedded Derbyのプロパティ構成画面
56
server.xml: DataSourceの定義(3)
„
専用のプロパティが用意されているJDBC Driver
‹
‹
‹
‹
‹
‹
‹
‹
‹
‹
‹
<properties.db2.jcc>
IBM Data Server Driver for JDBC and SQLJ for DB2
<properties.informix.jcc>
IBM Data Server Driver for JDBC and SQLJ for Informix
<properties.db2.i.native>
IBM DB2 for i Native JDBC ドライバー
<properties.db2.i.toolbox>
IBM DB2 for i Toolbox JDBC ドライバー
<properties.informix>
Informix JDBC ドライバー
<properties.oracle>
Oracle JDBC ドライバー
<properties.derby.client>
Derby Network Client JDBC ドライバー
<properties.derby.embedded>
Derby Embedded JDBC ドライバー
<properties.microsoft.sqlserver>
Microsoft SQL Server JDBC Driver
<properties.datadirect.sqlserver>
Microsoft SQL Server の DataDirect Connect for JDBC ドライバー
<properties.sybase>
Sybase JDBC ドライバー
© 2012 IBM Corporation
57
JDBC Driver / DataSourceのXA対応
„
Libertyプロファイルでは,
XA対応・非対応のJDBC Driverを
一つのJDBC Driverとして定義できる
‹
„
WASのFullプロファイルでは,
別個のJDBC Driverとして定義する必要があった
DataSourceの定義で使用するコネクションのタイプを指定
(指定しない場合は上から順に検索される)
‹
‹
‹
javax.sql.XADataSource
javax.sql.ConnectionPoolDataSource
javax.sql.DataSource
© 2012 IBM Corporation
58
server.xml: 接続マネージャーの構成
„
JDBCコネクションの管理をカスタマイズするには,
接続マネージャーの構成を行う
‹
‹
‹
DataSourceの子要素として定義するか,
connectionManagerRefで指定する
全てデフォルトで使用する場合には構成は不要
タイムアウト系の設定は,0が即時,-1が無効(タイムアウトしない)
¾
Fullプロファイルでは,多くが逆
<dataSource
<dataSource
jndiName="jdbc/myDataSource“
jndiName="jdbc/myDataSource“
jdbcDriverRef="derbyDriver">
jdbcDriverRef="derbyDriver">
<properties.derby.embedded
<properties.derby.embedded
databaseName="${server.config.dir}/derby/myDB"/
databaseName="${server.config.dir}/derby/myDB"/
>>
<connectionManager
<connectionManager
connectionTimeout="60s“
connectionTimeout="60s“
maxPoolSize="10“
maxPoolSize="10“
minPoolSize="2"/>
minPoolSize="2"/>
</dataSource>
</dataSource>
server.xml
© 2012 IBM Corporation
Developer Toolsの
接続マネージャー構成画面
59
アプリケーションからの利用
„
アノテーションを利用してDataSourceにインジェクション
@Resource(name
@Resource(name == "jdbc/MyDataSource")
"jdbc/MyDataSource")
private
DataSource
private DataSource ds;
ds;
„
JNDIを利用してネーミングサービスより取得
‹
InitialContextには,パラメーターをつけない
(com.ibm.websphere.naming.WsnInitialContextFactoryは使用できない)
private
private DataSource
DataSource ds;
ds;
InitialContext
InitialContext ic
ic == new
new InitialContext();
InitialContext();
ds
ds == (DataSource)ic.lookup("jdbc/MyDataSource");
(DataSource)ic.lookup("jdbc/MyDataSource");
Connection
Connection con
con == ds.getConnection();
ds.getConnection();
© 2012 IBM Corporation
60
server.xml: JPAの構成
„
JPAのデフォルト構成を指定する
‹
デフォルトのJTA/非JTAデータソースなどを指定
<jpa
<jpa defaultJtaDataSourceJndiName="jdbc/MyDS"
defaultJtaDataSourceJndiName="jdbc/MyDS"
entityManagerPoolCapacity="20">
entityManagerPoolCapacity="20">
<excludedApplication>SupportTools</excludedApplication>
<excludedApplication>SupportTools</excludedApplication>
</jpa>
</jpa>
server.xml
Developer ToolsのJPAコンテナ構成画面
© 2012 IBM Corporation
61
参考:データソースの定義例
<dataSource
<dataSource jndiName="jdbc/MyDS">
jndiName="jdbc/MyDS">
<jdbcDriver
<jdbcDriver libraryRef="derbyLib"/>
libraryRef="derbyLib"/>
<properties.derby.embedded
<properties.derby.embedded
createDatabase="create“
createDatabase="create“
databaseName="${server.config.dir}/derby/myDatabase"/>
databaseName="${server.config.dir}/derby/myDatabase"/>
<connectionManager
<connectionManager maxPoolSize="10"
maxPoolSize="10" minPoolSize="1"/>
minPoolSize="1"/>
</dataSource>
</dataSource>
<library
<library id="derbyLib">
id="derbyLib">
<fileset
<fileset
dir="${shared.resource.dir}"
dir="${shared.resource.dir}" includes="derby.jar"/>
includes="derby.jar"/>
</library>
</library>
server.xml
„
„
JARファイルを${shared.resource.dir}以下に配置し,
変数経由でアクセスすることで,packageをおこなった時に
JDBC Driverを含めて配布することが可能
Embedded Derbyの場合,
データベースを${server.config.dir}の下に置けば,
データベース構造を含めて配布することも
© 2012 IBM Corporation
62
アプリケーション・セキュリティー
„
関連するフィーチャー
‹
appSecurity-1.0
¾
„
Java EEで定義されているロールベースのアクセス制御を
Webアプリケーションに対して行う
(Java EEセキュリティーで定義されている全ての機能が使用できるわけではない)
アプリケーション・セキュリティーの構成手順
‹
ユーザー・レジストリーの作成
¾
¾
¾
‹
‹
<quickStartSecurity>
クイックスタートのセキュリティー
<basicRegistry>
基本ユーザー・レジストリー
<ldapRegistry>
LDAPユーザー・レジストリー(詳細は次章)
(アプリケーションにロールとアクセス権を定義する)
アプリケーションで定義されたロールに,ユーザー・グループをマップ
© 2012 IBM Corporation
63
テスト用に使用できるユーザー・レジストリー
„
„
構成ファイル
(server.xmlおよびそこからincludeされたファイル)に
直接ユーザーの情報を記述するレジストリー
二種類の設定が利用可能
‹
<quickStartSecurity>
クイックスタートのセキュリティー
¾
‹
<basicRegistry>
基本ユーザー・レジストリー
¾
„
単一のユーザー・パスワードを設定
複数のユーザー・パスワードおよびグループを設定
テスト環境での利用や管理セキュリティーでの利用を想定
‹
‹
情報を更新するインターフェースなどは提供されない
パスワードを構成ファイルに直接記入するため,Developer Toolを使
用して難読化(XOR処理)をしておくことが望ましい
© 2012 IBM Corporation
64
server.xml:クイックスタート/基本ユーザー・レジストリー
„
クイックスタートのセキュリティー
‹
単一のユーザーを設定
<quickStartSecurity
<quickStartSecurity
userPassword="{xor}Lz4sLCgwLTs=“
userPassword="{xor}Lz4sLCgwLTs=“
userName="admin"
userName="admin" />
/>
server.xml
„
基本ユーザー・レジストリー
‹
Developer Toolsの
クイックスタートのセキュリティ構成画面
複数ユーザーとグループを設定可能
<basicRegistry>
<basicRegistry>
<user
<user password="{xor}LTAwKw=="
password="{xor}LTAwKw=="
name=“admin"
name=“admin" />
/>
<user
password="{xor}PTA9"
<user password="{xor}PTA9" name="bob"/>
name="bob"/>
<user
<user password="{xor}PjM2PDo="
password="{xor}PjM2PDo="
name="alice"
name="alice" />
/>
<group
<group name=“user">
name=“user">
<member
<member name="bob"
name="bob" />
/>
<member
name="alice"
<member name="alice" />
/>
</group>
</group>
</basicRegistry>
</basicRegistry>
server.xml
© 2012 IBM Corporation
65
参考:Webアプリケーションのセキュリティー構成
„
アプリケーションにweb.xmlを追加し,
以下のような構成を追加
‹
‹
「Administrator」ロールにのみ「/snoop」のPOSTやGETを許可
認証方法としてはBASIC認証を使用
<security-role>
<security-role>
<role-name>Administrator</role-name>
<role-name>Administrator</role-name>
</security-role>
</security-role>
<security-constraint>
<security-constraint>
<display-name>Snoop
<display-name>Snoop Constraint</display-name>
Constraint</display-name>
<web-resource-collection>
<web-resource-collection>
<web-resource-name>Snoop
<web-resource-name>Snoop Resource</web-resourceResource</web-resourcename>
name>
<url-pattern>/snoop</url-pattern>
<url-pattern>/snoop</url-pattern>
<http-method>GET</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>POST</http-method>
</web-resource-collection>
</web-resource-collection>
<auth-constraint>
<auth-constraint>
<role-name>Administrator</role-name>
<role-name>Administrator</role-name>
</auth-constraint>
</auth-constraint>
</security-constraint>
</security-constraint>
<login-config>
<login-config>
<auth-method>BASIC</auth-method>
<auth-method>BASIC</auth-method>
</login-config>
</login-config>
web.xml
© 2012 IBM Corporation
66
server.xml: ロールにユーザー・グループをマップ
„
<application>要素の子要素として
アプリケーションバインディング<application-bnd>を定義し
その子要素として<security-role>を定義する
‹
dropinから導入したアプリケーションにはセキュリティーを定義できない
<application
<application id="SnoopWeb"
id="SnoopWeb" location="SnoopWeb.war"
location="SnoopWeb.war" name="SnoopWeb"
name="SnoopWeb"
type="war">
type="war">
<application-bnd>
<application-bnd>
<security-role
<security-role name="Administrator">
name="Administrator">
<user
name="admin"
<user name="admin" />
/>
</security-role>
</security-role>
</application-bnd>
</application-bnd>
</application>
</application>
server.xml
Developer Toolでみた
構成の階層
© 2012 IBM Corporation
67
6. まとめ
© 2012 IBM Corporation
68
まとめ
„
„
„
„
LibertyプロファイルはWAS V8.5から提供される
軽量Webアプリケーション・ランタイム
起動が速い,構成が容易,必要メモリが少ないなど,
開発時のテスト用ランタイムとして最適な特性
Servlet/JSP/JSFの実行が可能なほか,
Databaseアクセス,Java EE形式のセキュリティーなどの
機能をそなえている
Eclipseと連携するDeveloper Toolが提供されており
構成をGUIで作成することが可能
© 2012 IBM Corporation
69
【参考】
„
WAS道場:WAS V8.5で提供される新しい軽量ランタイム「
Libertyプロファイル」
‹
„
WAS V8.5 Information Center
‹
„
http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp
WASDev Community(英語)
‹
‹
„
http://www.ibm.com/software/jp/websphere/events/livestream/wa
s_ondemand.html#sec9
https://www.ibm.com/developerworks/mydeveloperworks/blogs/wa
sdev/entry/home
http://wasdev.net でアクセス可能
Developer Tools for Eclipse Information Center
‹
http://publib.boulder.ibm.com/infocenter/radhelp/v8r5/topic/com.ib
m.rad.install.doc/topics/wdt_overview.html
© 2012 IBM Corporation
70
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の
目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもあ
りません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわ
らずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場
合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または
表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのよ
うな結果を生むものでもありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示す
るものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもって
いつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資
料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意
図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と
予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、
入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがこ
こで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示された
ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com、 DB2、WebSphere、およびz/OSは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium は
Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。
Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。
JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。
© 2012 IBM Corporation
71
Fly UP