websphere application server v8.0 ゠トイヱシミヱテ...
TRANSCRIPT
WebSphereWebSphere Application Server V8.0Application Server V8.0
アナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップ
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル
®
WebSphereWebSphere Application Server V8.0Application Server V8.0
アナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップアナウンスメント・ワークショップ
© 2011 IBM Corporation
06. 06. マイグレーションマイグレーション
1 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
マイグレーションマイグレーションマイグレーションマイグレーションマイグレーションマイグレーションマイグレーションマイグレーション
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
2 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Disclaimer
� この資料は日本アイ・ビー・エム株式会社ならびに日本アイ・ビー・エム シス
テムズ・エンジニアリング株式会社の正式なレビューを受けておりません。
� 当資料は、資料内で説明されている製品の仕様を保証するものではありませ
ん。
� 資料の内容には正確を期するよう注意しておりますが、この資料の内容は
2011年7月現在の情報であり、製品の新しいリリース、PTFなどによって動作、
仕様が変わる可能性があるのでご注意下さい。
� 今後国内で提供されるリリース情報は、対応する発表レターなどでご確認くだ
さい。
� IBM、IBMロゴ、ibm.com、AIX、DB2、 Rational、およびWebSphereは、世界
の多くの国で登録されたInternational Business Machines Corporationの商
標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標
である場合があります。現時点でのIBMの商標リストについては、
http://www.ibm.com/legal/copytrade.shtmlをご覧ください。
� JavaおよびすべてのJava関連の商標は Oracleやその関連会社の米国およ
びその他の国における商標または登録商標です。
� Windows および Windowsロゴは、Microsoft Corporationの米国およびその
他の国における商標です。
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
3 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
目次
� マイグレーションの概要
� アプリケーションのマイグレーション
� 構成のマイグレーション
� 参照情報
© 2011 IBM Corporation
06. 06. マイグレーションマイグレーション
4 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
マイグレーションの概要
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
5 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
互換性とマイグレーションの難易度
�マイグレーション元からマイグレーション先のバージョンまで,
変更点の累積に対する対応が必要
–V5.1からV8にアプリケーションをマイグレーションする場合,
「JSP/Servlet仕様の変更」「Java 5対応」が必要
–V6.1からV8に構成をマイグレーションする場合,
特に対応が必要な点はなし
バージョンごとの改変点
V6.0 V6.1 V7.0 V8.0
構成
ポート割当て
プロファイル
セキュリティ 特になし 特になし
アプリケーション
JSP/Servlet仕様の変更
Java 5対応 最小限 最小限
V5.1からV8.0のマイグレーション
V6.1からV8.0のマイグレーション
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
6 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
マイグレーションのロードマップ
�調査
�計画
�スキルの習得
�開発環境
–開発環境の更新
–アプリケーションのマイグレーション
–単体テスト
�実行環境
–実行環境のマイグレーション
–実行環境のテスト
�統合テスト
�サービス開始
調査
計画
スキル習得
開発環境 実行環境
アプリケーションの
マイグレーション
実行環境
のマイグレーション
単体テスト 環境のテスト
統合テスト
サービス開始
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
7 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
周辺ソフトウェアのマイグレーション
� ベンダーからのサポート状況や,組み合わせのサポート可否などの条件により,
WASと同時に使用しているS/Wなどについても,更新が必要な場合もある
– プラットフォーム(OS,H/W)
– データベース,メッセージング製品 等
� WASとの連携がサポートされているS/Wについては,以下のURLで確認可能
– http://www.ibm.com/support/docview.wss?rs=180&uid=swg27006921
WAS 5.1.1 WAS 6.0 WAS 6.1 WAS 7.0 WAS 8.0Windows 2000/2003 2000/2003 2000
/2003/20082003/2008 2003 SP2
/2008
AIX 5.1/5.2/5.3 5.1/5.2/5.3 5.2/5.3/6.1 5.3/6.1 6.1/7.1
Solaris 8/9 8/9/10 9/10 9/10 10
Apache 1.3/2.0 2.0 2.0/2.2 2.0/2.2 2.2
DB2 7.2/8.1/8.2/9 8.1/8.2/9 8.1/8.2/9/9.5 8.1/8.2/9/9.5 9/9.5/9.7
Oracle 8i/9i/10g 8i/9i/10g 9i/10g 10g/11g 10g/11g
例)WASとの組み合わせがサポートされている製品のバージョン(出荷時点)
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
8 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
開発ツールのマイグレーション
� IDEを使用していなかった場合,可能な限り使用する様にする
– J2EE仕様自体がIDEを前提としたものとなっており,
構成ファイルを手で編集することは現実的ではない
– コードの変更項目を洗い出すには,IDEの構文チェック機能を使用するのが最適
– デプロイメントディスクリプタのバージョンの更新(J2EE 1.2→1.4)などが自動で可能
– 後述するApplication Migration Toolも使用できる
� WebSphere Studio 5.1やRational Application Developer 6.0からは,
ワークスペースを最新の環境へ直接マイグレーションすることが可能
WAS 5.0/5.1 WAS 6.0 WAS 6.1 WAS 7.0 WAS 8.0
WebSphereStudio 5.1
Rational Application Developer 6.0
Rational Application Developer 7.0
Rational Application Developer 7.5
Rational Application Developer 8.0
標準的な開発ツール
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
9 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
マイグレーションプロジェクトにおけるテストの重要性
� 事前検証およびテストに大きな工数がかかる
– テストで問題が出た場合と出ない場合で工数が大きく異なる
– テストでどのような問題が出るかを事前に見積もる手段はない
� アプリケーションごとに,移行の負荷は全く異なる
– 同じような処理を行うアプリケーション,
同じバージョン間のマイグレーションでも,
ほとんど負荷もなく移行が出来るケースと,
非常に高い負荷がかかるケースがある
– 移行ツールの使用などで,
ある程度軽減することが可能
� 余裕を持ったスケジュールを
© 2011 IBM Corporation
06. 06. マイグレーションマイグレーション
10 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
アプリケーションのマイグレーション
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
11 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Enterprise Javaの歴史
EJB 1.0Servlet 2.1
1999/12
J2EE 1.2• EJB 1.1• Servlet 2.2• JSP 1.1• JMS• JavaMail
J2EE 1.3• EJB 2.0
ローカルEJBabs. CMPMDB
• Servlet 2.3イベント
フィルター
• JSP 1.2XML
• JAXP• Connectors• JAAS
2001/9
J2EE 1.4• EJB 2.1
タイマー
EJB-QL拡張
• Servlet 2.4• JSP 2.0• Webサービス
JAX-RPC• JMX Mgmt• J2EE Deployment• JACC
2003/11BPEL
PortletsSDO
SCAHibernate
Spring
2006/3
Java EE 5• EJB 3 / JPA
POJO• Servlet 2.5• JSP 2.1
Unified EL• JSF 1.2• JSTL 1.2• Webサービス
JAX-WSPOJOJAXBStAXMTOM
• アノテーション
IoC(制御の反転)
開発容易性開発容易性開発容易性開発容易性
Seasar 2009/12
Java EE 6• Profile
Web Profile• EJB 3.1
Interceptors• JPA 2.0
JPQLの拡張
• Web Beans 1.0• Bean Validation 1.0• Common Annotation • Servlet 3.0• JSP 2.2 / EL 2.2• JSF 2.0• JSTL 1.2• Webサービス
JAX-RS
軽量化軽量化軽量化軽量化
拡張性拡張性拡張性拡張性
開発容易性開発容易性開発容易性開発容易性
Struts
Ajax
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
12 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WASの過去のバージョンが対応しているAPI
WAS V5.0J2EE 1.3
Servlet 2.3/JSP 1.2EJB 2.0
J2SE 1.3
WAS V5.1J2EE 1.3
Servlet 2.3/JSP 1.2EJB 2.0
J2SE 1.4
WAS V6.0J2EE 1.4
Servlet 2.4/JSP 2.0EJB 2.1
J2SE 1.4
WAS V6.1J2EE 1.4
Servlet 2.4/JSP 2.0EJB 2.1
J2SE 5.0
WAS V7.0J2EE 1.4
Servlet 2.4/JSP 2.0EJB 2.1
Java EE 5Servlet 2.5/JSP 2.1
EJB 3.0/JPA 1.0Java SE 6
WAS V8.0J2EE 1.4
Servlet 2.4/JSP 2.0EJB 2.1
Java EE 5Servlet 2.5/JSP 2.1
EJB 3.0/JPA 1.0
Java EE 6Servlet 3.0/JSP 2.2
EJB 3.1/JPA 2.0Java SE 6
JSP/Servlet
仕様の変更
Java 5対応
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
13 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
APIのマイグレーション: Java EE / J2EE
� J2EE 1.2からJ2EE 1.3以降へは基本的な上位互換が保たれている
– ただし,J2EE 1.3から国際化対応の機能が導入されたため,
日本語環境のアプリケーションでは何らかの対応が必要となるケースが多い
– 細かい仕様の変更があるため,個別に対応が必要となるケースも
– 結論:ある程度の負荷でJ2EE 1.4アプリケーションにマイグレーション可能
� J2EE 1.3からJ2EE 1.4以降へは高いレベルで上位互換が保たれている
– 多くのアプリケーションが変更無しに稼動する
– アプリケーションによっては若干の手直しが必要となるケースもある
– 結論:わずかな負荷でJ2EE 1.4アプリケーションにマイグレーション可能
� 基本的にJ2EE 1.4アプリケーションであれば,WAS V8.0でそのまま動作可能
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
14 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
APIのマイグレーション: Java SE / J2SE
� Java SDK 1.2/1.3/1.4からJava SDK 5.0/6への移行は
– バイトコードレベルで上位互換が保たれている
• 以前の環境でコンパイルしたClassファイルはほとんどそのまま使用できる
– ソースコードレベルでは書き換えが必要なケースも
• 追加された予約語「assert」「enum」の対応
• Genericsへの対応
• 強化されたコードチェックによる,エラー・警告への対応
• java.lang.reflect.Proxyと同名のjava.net.Proxyが追加
• java.util.Loggerのコンストラクタの変更
• etc.
– 詳細については,以下の文書を参照
http://java.sun.com/j2se/1.5.0/compatibility.html
� Java SDK 5.0からJava SDK 6については,
極めて高いレベルで上位互換性がとられている
– 詳細については,以下の文書を参照
http://java.sun.com/javase/ja/6/webnotes/compatibility.html
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
15 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
APIのマイグレーション:その他
�Webサービス
–Apache SOAP,WEBSJAVA.SOAPはWAS V8で削除
• スタブの再作成などが必要
–JAX-RPCは,Java EE 6使用のレベルで非推奨に指定
• JAX-WSへの移行を推奨
� IBM独自機能
–Java EE/J2EE標準を強化する独自機能については,標準仕様で同等なも
のが出来た場合に,独自機能が非推奨となることがある
–WASの管理機能やパフォーマンス測定機能など,バージョンが上がり代替
機能ができたものから非推奨となることがある
–非推奨の機能を使用している部分は,書き換えが必要となるケースも
–使用していることが分かっている場合は,InfoCenterの削除された機能・非
推奨となった機能に含まれていないかを確認する
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
16 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Java EE / J2EE: デプロイメント記述子の更新
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN"
"http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application id="Application_ID">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN"
"http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application id="Application_ID">
J2EE 1.2のapplication.xml
<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_ID" version="6"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/application_6.xsd">
<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_ID" version="6"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/application_6.xsd">
開発環境の更新ツール
(RAD 8.0では「仕様アップグレード・ウィザード」)を
使用してデプロイメント記述子を更新する
Java EE 6のapplication.xml
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
17 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Java EE / J2EE: J2EE 1.2からの更新(1)
� WAS 5.0(J2EE 1.3)以降で,文字コードを指定する仕様が多数追加された
– WAS 4.0(J2EE 1.2)以前では,サーバーの構成で指定していた
� クライアントからのリクエストパラメーターの文字コード
– ServletRequest#setCharacterEncodingによる指定が必須に
� Servlet/JSPからのレスポンスの文字コード指定
– デフォルトcharsetが8859_1に
– ServletResponse#setContentTypeや
pageディレクティブのcontentType属性にcharsetの指定が必須に
� JSPのソースコードの記述文字コード
– pageディレクティブのpageEncoding属性の指定が必要
– デプロイメントディスクリプタ(web.xml)での一括指定も可能(J2EE 1.4以降)
以下のdeveloperWorksの記事も参照
テクニカル・トピックス「もしも文字化けで困ったら」
http://www.ibm.com/developerworks/jp/websphere/library/was/mojibake/
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
18 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Java EE / J2EE: J2EE 1.2からの更新(2)
�EJB 1.1–Entity Bean
• JPAをつかったアプリケーションへの書き換えを推奨
–Session Bean• 使用できるリソースに制限があるため,EJB 3.0/3.1仕様に変更
�リソース参照
–「java:comp/env」ではじまるENC(Environment Naming Context)名を
使用した名前によるlookupを使用する
• 分離レベル・共有可能の設定
�分散ネーミング
–分散機能をもったネーミングサーバーへの対応
–セル・ノード・サーバーの階層を持ったネーミングスペース
�スレッド
–Java EEの制限を遵守する
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
19 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Java EE / J2EE: J2EE 1.3からの更新(JSP 2.0での仕様変更)
� JSP 2.0から式言語,EL(Expression Language)が仕様に追加された
– JSP中に「${ ~ }」「#{~}」という文字列が存在している場合ELと解釈される
� JSP 1.2から2.0でpageEncodingの指定単位が変更に
– JSP 1.2: コンパイル単位でEncodingを指定
– JSP 2.0: ファイル単位でEncodingを指定
– includeディレクティブで他のJSPファイルを読み込んでいる場合に,読み込まれる側にもpageディレクティブのpageEncodingが必要に
– アプリ内の全てのJSPファイルが全て同じエンコードの場合にはweb.xmlで一括指定が可能
• <jsp-config>要素の配下の<page-encoding>要素で指定する
<%@ page
contentType="text/html; charset=Shift_JIS"
pageEncoding="MS932" %>
<%@ include file="b.jsp" %>
日本語のテキスト
<@ page <@ page <@ page <@ page pageEncodingpageEncodingpageEncodingpageEncoding="MS932" %>="MS932" %>="MS932" %>="MS932" %>
日本語のテキスト
b.jspb.jspb.jspb.jsp
a.jspa.jspa.jspa.jsp
コンパイル単位
ファイル単位
ファイル単位
これを追加しないと文字化けする
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
20 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Java EE / J2EE: J2EE 1.4から
�基本的に,そのままWAS V8.0でも稼動する
�Java EE 5/6の新機能を使用したい場合には
マイグレーションを行う
–Servlet 3.0やJAX-RSなど
�EJB Entity Beanを使用している場合は
JPAへの移行を検討する
–Java EE仕様のレベルで非推奨となっているため
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
21 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
J2SE / Java SE: java.math.BigDecimalの仕様変更
� JSR 13: Decimal Arithmetic Enhancement のサポート
– JDK 1.4のAPIドキュメントなどで予告されていたとおり,
Java標準APIで提供されているクラスBigDecimalの仕様が,JDK 5.0より変更
– 多くの新機能の追加
– 仕様の制限の撤廃,ANSI規格との整合性の向上
� これにともない,BigDecimalのtoString()メソッドの動作が変更された
– scale部の大きな(絶対値が1より非常に小さい)BigDecimalにおいて,
従来は非指数表記の数値が返されていたケースで,
「E」を含んだ指数表記で値が返されることがある
� String文字列化されたBigDecimalにたいして処理を行っているアプリケーショ
ンでは対応が必要なケースがある
– 必要に応じてJDK 1.4と同じ結果を返すtoPlainString()に書き換える
System.out.println(newnewnewnew BigDecimal("0.00000001"));
System.out.println(newnewnewnew BigDecimal("0.00000001"));
JDK 1.4の出力:の出力:の出力:の出力: “0.00000001” JDK 5.0の出力:の出力:の出力:の出力: “1E-8”
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
22 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Webサービス
� Apache SOAP,WebSphere JAVA.SOAPはV8.0で廃止
– Webサービスプロキシなどの再作成が必要となる
� JAX-RPCは,Java EE 6で非推奨となり将来廃止予定と規定
– 可能な限りJAX-WSに移行する
� その他,非推奨となっている機能
– Web Service Gateway• Apache SOAP channelはSOAP HTTP channelへの置き換えを推奨
• Web Services Gateway カスタマイズAPIは,JAX-RPCハンドラへの置き換えを推奨
– UDDIで非推奨となった機能
• UDDI Version 2形式のUDDI RegistryのEJBインターフェース
• uddi4jv2.jarで提供されているUDDI4J Version 2クラスライブラリ
• Low-level UDDI Utility Tools (UUT) API• BusinessStub、 ServiceStubなど
– セキュリティー
• Apache SOAP実装をベースとしたSOAP-Security(XMLデジタル署名)• WS-Security (Web Service Security) Draft 13レベルのサポート
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
23 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
削除された機能/非推奨となった機能/安定化された機能
�削除された機能(Removed features)
–そのバージョンから使用できなくなった機能
–使用している場合は,必ず移行が必要
�非推奨となった機能(Deprecated features)
–将来のバージョンで削除が予定される機能
–基本的には,3年間、または、メジャー・リリースが2つ上がるまでは(そのど
ちらかの長い期間)サポートされる。
• たとえば,V5.0.xで非推奨となった機能については,V5.1およびV6.0の間はサ
ポートさるが,その後は製品から削除される予定。
–稀に,2リリースよりも早く削除されることも
(その場合は、Information Centerに記述)
�安定化された機能(Stabilized features)
–将来のバージョンでの削除は予定されていないが,
代替機能があるため機能改善や新機能の追加は行われないもの。
–移行の必要はないが,代替機能の検討はおこなう
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
24 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS V8.0で非推奨となったAPI
� com.ibm.websphere.product パッケージ
– 以下のクラス
• com.ibm.websphere.product.WASProduct.• com.ibm.websphere.product.WASProductException• com.ibm.websphere.product.history.WASHistory• com.ibm.websphere.product.history.WASHistoryException
com.ibm.websphere.product.metadata.WASComponent• com.ibm.websphere.product.metadata.WASComponentUpdate• com.ibm.websphere.product.metadata.WASMaintenancePackage
– com.ibm.websphere.product.WASDirectory の以下のメソッド
• getInstalledComponentByName(String componentName)• getInstalledComponentList()• isComponentInstalled(String componentName)• getHistoryMaintenancePackageList()• getInstalledMaintenancePackageByID(String mpID)• getInstalledMaintenancePackageList()• isMaintenancePackageInstalled(String ID)
– com.ibm.websphere.product.WASDirectory の以下のフィールド
• ID_BASE / ID_EXPRESS / ID_ND– com.ibm.websphere.product.WASDirectory
com.ibm.websphere.product.utils.WASDirectoryHelperの以下のフィールド
• ID_PME / ID_WBI / ID_JDK / ID_EMBEDDED_EXPRESS / ID_XD/ ID_CLIENT / ID_PLG / ID_IHS / ID_WXD / ID_NDDMZ / ID_UPDI
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
25 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
その他,移行に当たって変更が必要な点
� サーバーAPIの仕様外の挙動の違い(バグが治ったことによる副作用など)
– JSPでnullオブジェクトを出力したとき
– CookieがないときのHttpServletRequestでgetCookies()の戻り値
– JDBCで、executeQueryによる結果を返さないSQLの実行
– RequestDispatcherでforwardからreturnした後の出力
– includeされたServlet/JSPでのaddHeader/setHeaderしたとき
– ユーザースレッドを作成し、スレッド間でDB接続を共有している
– <jsp:useBean>のclass属性でJavaBean仕様に反するクラスを指定
– etc.
� 非公開スペックへの依存
– WASがセットするCookieの文字列への依存
– HttpSession#getIdで取得される文字列の内容への依存
– サーバーのローカルディレクトリ構造への依存
– WebSphere内部クラスの使用
– etc.
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
26 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
アプリケーション・テストの重要性
� 前ページのような問題は,事前のコードレビューで発見することが難しい
– 「仕様の変更」は文書化されているが,
「仕様外の動作の変更」はほとんど文書化されていない
– 開発環境のコードチェック機能でも発見できないケースが多い
– 問題が発生するパターンが無数に考えられ,事前検証で網羅することが不可能
� テストを実行して発見することが最良の手段
– 最低限必要な修正を加えたら、まずは新環境でテストを行い問題の洗い出しを行う
– 過去の実装依存による非互換の例は,
その大部分が
一回のテストで発見できている
– 十分な期間のテストを
スケジュールしておくことが必要
– 運用後のパッチ適用なども考え,
テストの自動化も検討する
Implementation
Interface
Application
旧バージョン旧バージョン旧バージョン旧バージョン
Implementation
Interface
新バージョン新バージョン新バージョン新バージョン
仕様変更仕様変更仕様変更仕様変更
バグ修正バグ修正バグ修正バグ修正
新実装新実装新実装新実装
パフォーマンス改善パフォーマンス改善パフォーマンス改善パフォーマンス改善
etc.
文書化されている文書化されている文書化されている文書化されている
文書化されていない文書化されていない文書化されていない文書化されていない
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
27 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Application Migration Tool
� Application Server Migration Toolkit– Competive Application Migration Tool
• WebLogic,JBoss,Oracle ASなどからの
移行を支援するツール
– WebSphere Application Migration Tool• WASの旧バージョンからの
移行を支援するツール
� 無償でダウンロードいただいて
使用することができます
� EclipseやRational Application Developerに組み込んで使用
� Rational Software Analyzerの技術を使用して
Javaコード,JSP,デプロイメント記述子の調査
� 修正が必要な箇所をリストアップし
修正方法についてガイドを表示
http://www.ibm.com/developerworks/jp/websphere/library/was/was7_migration_toolkit/
ApplicationMigration Tool
WASV7.0
V6.0 & 6.1V5.1
WebSphere
Application Server
V8, V7
Ora
cle
WL
S
Ora
cle
AS
JBo
ssA
S /
EA
P
移行の負荷を大幅に削減移行の負荷を大幅に削減移行の負荷を大幅に削減移行の負荷を大幅に削減
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
28 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
AMT: 導入方法(1)
� ダウンロードサイト
– http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/– http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/vtov.html
� 日本語による解説・マニュアルのダウンロード
– http://www.ibm.com/developerworks/jp/websphere/library/was/was7_migration_toolkit/
� 導入の前提
– Rational Application Developer V8.0(WAS V8.0へマイグレーションする場合)
– Rational Application Developer V7.5(WAS V7.0へマイグレーションする場合)
• 導入時にBusiness Intelligence and Reporting ツール機能とWeb Development ツール機能を選択
– Eclipse 3.6 (Helios)
• 更新サイト (http://download.eclipse.org/releases/helios) を使用して,Business Intelligence, Reporting and Charting と Web, XML and Java EE Development を導入しておきます
– Eclipse 3.5 (Galileo)
• 更新サイト (http://download.eclipse.org/releases/galileo) を使用して,Business Intelligence, Reporting and Charting と Web, XML and Java EE Developmentを導入しておきます
– Eclipse 3.4 (Ganymede)
• 更新サイト (http://download.eclipse.org/releases/ganymede) を使用して,Charting and Reporting と Web and Java EE Developmentを導入しておきます
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
29 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
AMT: 導入方法(2)
�RAD V8.0の場合
–メニューから「ヘルプ」
→「新規ソフトウェアの導入…」を選択
–ダイアログボックスの「処理」で
「追加」ボタンを押し,
ダウンロードしたファイルを展開した
ディレクトリのcontents.jarを指定する
–「Application Migration Tools」に
チェックを入れて導入
�Eclipse–「Help」→「Software Updates…」
「Help」→「Install New Software…」などを使用して導入
�導入後,マイグレーション対象のプロジェクトをインポートする
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
30 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
AMT: コードのチェック
RAD 8.0のメニューから
「実行」→「分析」を選択
移行前と移行後のバージョンを指定して「設定」ルールの新規作成
分析結果の表示
© 2011 IBM Corporation
06. 06. マイグレーションマイグレーション
31 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
構成のマイグレーション
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
32 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
マイグレーションの概要
� WAS V5.0以降は,基本的な管理概念は変更なし
– Application Server,Node Agent,Deployment Manager
� WAS V6.0以降で,
– プロファイルの概念が導入
製品導入イメージとユーザー固有の構成情報が分離
• 一部ディレクトリが変更に
– HA Managerが導入
• DRSなどで使用するポート番号が追加
� WAS V6.1以降で,
– セキュリティーの機能追加
• 管理セキュリティーとアプリケーション・セキュリティーの分離
• 証明書の自動更新機能,複数ユーザーレポジトリのサポートなど
– Edge Componentの多くの機能が非推奨に
� WAS V7.0– フレキシブル・マネジメントの導入
• JOB Manager,Admin Agentなどの管理プロセスが使用可能に
– 階層付き証明書のデフォルト採用
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
33 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS V5.0以降のサーバー管理トポロジー
� 管理モデル
– 各NodeにNode Agentが必要
– 構成情報はXMLファイルで保存
– 各Application Serverは個別に
構成ファイルを参照
– Deployment Managerが
マスターの構成を保持し、
Node Agent経由で
各Nodeのファイルを同期
– Deployment Managerと
各Node Agentは独立して起動可能
(構成の同期などだけが不可に)
� 管理ツール
– Webブラウザベースの
管理コンソール
– wsadminコマンド
Node Agent
Application Server
Admin Console
Cell
Node
Deployment Manager
XML
XML
Node Agent
Application Server
Node
XML
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
34 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS 5.x以前から:プロファイル
� プロファイルはWASのシステムファイルからユーザー固有の環境情報を分離
– プロファイル構成情報,アプリケーション構成情報,アプリケーション実行ファイル等
– プロファイル操作コマンド群
– ログファイル,一時ファイル,トランザクションログなど
� 一つのシステムファイル上で,複数のプロファイルを定義することが可能
� バックアップの簡便化,柔軟な構成などのメリット
WebSphere Application Server
コア製品ファイル
(システムファイル)プロファイル
ApplicationServer
ApplicationServer
Node
ApplicationServer
ApplicationServer
NodeAgent
…Application
Server
ApplicationServer
Node
ApplicationServer
ApplicationServer
NodeAgent
…
DeploymentManager
Cell 1
ApplicationServer
ApplicationServer
Node
ApplicationServer
ApplicationServer
NodeAgent
…Application
Server
ApplicationServer
Node
ApplicationServer
ApplicationServer
NodeAgent
…
Cell 2
マシン A マシン B
DeploymentManager
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
35 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS 5.x以前から:プロファイル
�コマンド・ログディレクトリの変更
�デフォルトではprofilesディレクトリの下に
プロファイル毎にディレクトリが作成され
その下に各種のファイルが格納される
�WAS V5.1以前のバージョンでは,
導入ディレクトリ直下にあった
bin/config/etc/logsディレクトリなどは,
大部分がプロファイル・ルートの下に
移動になった
/profiles/profiles
それぞれの
プロファイル
それぞれの
プロファイル
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
36 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS 5.x以前から:HA Manager
� WAS V6.0から導入された高可用性を維持するためのしくみ
– 障害検知:プロセス間のハートビートによる死活監視
– Data Replication Service:プロセス間の情報の共有・更新
– シングルトンサービスの引き継ぎ:トランザクションサービス,Messaging等
� 移行に当たっての注意点
– 使用ポートの増加
• ポートが競合した場合
変更が必要
• 場合によっては
F/W設定の見直しも必要に
– Core Group分割
• セル内のプロセス数が
20~30を
超える場合には,
ハートビートの負荷を
さげるために
Core Groupの分割が必要
DM
NodeAgent
ApplicationServer
NodeAgent
NodeAgent
ApplicationServer
ApplicationServer
シングルトンシングルトンシングルトンシングルトン
サービスの引継ぎサービスの引継ぎサービスの引継ぎサービスの引継ぎ
情報の共有・更新情報の共有・更新情報の共有・更新情報の共有・更新
((((WLM情報・障害情報等)情報・障害情報等)情報・障害情報等)情報・障害情報等)
・ 構成情報の作成・変更
・ JMX等の管理コマンド
・ 構成情報の同期
・ アプリケーションサーバー
へのPing・再起動
Core Group
HAManager
HAManager
HAManager
HAManager
HAManager
HAManager
HAManager
障害検知障害検知障害検知障害検知
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
37 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS V6.0以前から:管理セキュリティー
�V6.1より,セキュリティー機能が分割
独立して有効・無効の構成が可能に
–アプリケーションを保護する「グローバル・セキュリティー」
• Java EEの定義に基づいたアプリケーションの保護
–WASの管理機能を保護する「管理セキュリティー」
• WASの管理コンソールや管理コマンドの実行を保護
�ファイルベース・ユーザーレポジトリの提供
–LDAPサーバーの構成が不要に
�デフォルトで使用可能になっている
セキュリティー上の理由からも使用を推奨
–セキュリティーをWASの管理機能の保護にのみ使用していた場合
→ 管理セキュリティーに移行
–セキュリティー機能を使用していなかった場合
→ 管理セキュリティーによる保護の利用を検討
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
38 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS V6.1/V6.0以前から:証明書管理
�WASのコンポーネント間通信で使用される証明書
–V6.0以前
• あらかじめ生成されたものが製品に同梱
–V6.1• インストール時に動的に生成するように
• 有効期限切れの警告・自動更新機能が実装される
–V7.0• 階層付き証明書(ルート証明書+各ノードの証明書)の採用
�移行に当たって,証明書の有効期限,更新方法などを
あらためて設計,設定する
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
39 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Edge Componentのマイグレーション
�WAS V6.1以降,Edge Componentの多くの機能が非推奨に
Edge Components
CBR
Load Balancer for IPv4 Caching Proxy
・MAC転送方式
・NAT/NAPT転送方式
・KCBR転送方式
Dispatcher
Caching Proxy付き付き付き付きCBR
Load Balancer for IPv4 and IPv6
Dispatcher・MAC転送方式
Edge Components for IPv6
負荷分散機能を負荷分散機能を負荷分散機能を負荷分散機能を
提供提供提供提供
キャッシングとキャッシングとキャッシングとキャッシングと
プロキシー機能をプロキシー機能をプロキシー機能をプロキシー機能を
提供提供提供提供
※取消線は非推奨機能
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
40 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
Edge Component:LLBからULB
� 従来提供されていたカーネル・エクステンションベースの
Load Balancer for IPv4(LLB:Legac LoadBalancer)は
「安定化された機能」に
– 新規のプラットフォーム追加は行われないため,実質的に使用できないケースも
� WAS V6.0から同梱されている
Load Balancer for IPv4 and IPv6(ULB:Userland LoadBalancer)を推奨
� LLBとULBの機能差に注意が必要
LLB ULB
① 転送方式 MAC、NAT、KCBR、CP+CBR MAC転送、カプセル化転送
② 区切り文字 : @
③ アフィニティー方式 IP Sticky、Cookie IP Sticky
④ ルール 10種類 2種類
⑤ dscontrol server downコマンド 使用可能 使用不可
⑥ 同一筐体内への転送 可能 不可
⑦ テイクオーバー時の接続/アフィニティー情報の引き継ぎ 引き継ぎ可能 引き継ぎ設定可能(デフォルトは引き継ぎなし)
⑧ goActiveスクリプトによるクラスター・アドレスの設定 必須 自動
⑨ serverDownスクリプトの挙動 従来通り 変更
⑩ インストールディレクトリ <EDGE_ROOT>/lb <EDGE_ROOT>/ulb
⑪ ワイルドカード・クラスター/ポート 使用可能 使用不可
⑫ ICMPの転送 しない する
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
41 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
管理スクリプトのマイグレーション
�コマンドライン管理ツールwsadminでは
二つのスクリプト言語が使用可能
–Jacl–Jython
�既存のJaclスクリプトも移行の必要はなし
–WAS V7.0出荷直後はJaclスクリプトは
「非推奨機能」となっており,移行が推奨されていた
–現在,Jaclスクリプトは「安定化された機能」となり
新規の機能追加は行われないが
将来のバージョンでの廃止も予定されていない
�新規のスクリプト開発はJythonで
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
42 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
WAS V8.0で非推奨となった管理機能
� historyInfoコマンドの以下のオプション
– -components/-maintenancePackageID
� versionInfoコマンドの以下のオプション
– -componentDetail/-components/-maintenancePackageDetail/-maintenancePackages
� pmtコマンドで起動するProfile Management Tool� migrationコマンドで起動するMigration Management Tool� 管理スクリプト
– AdminTaskオブジェクトのcreateServerTypeコマンド
– AdminTaskオブジェクトのManagedNodeGroupコマンドグループの以下のコマンド
• createManagedNodeGroup/deleteManagedNodeGroup/addMemberToManagedNodeGroupdeleteMemberFromManagedNodeGroup/queryManagedNodeGroupsgetManagedNodeGroupMembers/getManagedNodeGroupInfo/modifyManagedNodeGroupInfo
– AdminTaskオブジェクトのJobManagerNodeコマンドグループの以下のコマンド
• cleanupManagedNode/queryManagedNodesgetManagedNodeProperties/modifyManagedNodeProperties/getManagedNodeKeys
� activity.logの使用
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
43 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
移行に当たっての複数バージョンの共存(1)
� WebサーバーPluginの下位互換サポート
– WAS 8.0のPluginは
WAS 4.0~8.0への振り分けが可能
– WAS 7.0のPluginは
WAS 4.0~7.0への振り分けが可能
� 異なるバージョンのWASの共存
– WAS 5.0以降は,
導入ディレクトリを自由に設定可能
– 既存のバージョンを認識し,
異なるポート番号を自動で割り当てることが可能
参照: http://www.ibm.com/support/docview.wss?rs=180&uid=swg21160581
Plugin8.0
WAS8.0
WAS7.0
WAS6.1
WAS6.0
/opt/WebSphere/AppServer80/WAS 8.0の環境
/opt/WebSphere/AppServer70/WAS 7.0の環境
同一筐体の例
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
44 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
移行に当たっての複数バージョンの共存(2)
�混合バージョンセル
–1つのCell内で
V8.0,V7.0,V6.1とV6.0の
ノードを混在することが可能
–DMはより新しいバージョンで
なければならない
–旧ノードは異なるOSでも可能
V8Application
Server
V8Application
Server
V8 Node
V8Application
Server
V8Application
Server
V8NodeAgent
… V7Application
Server
V7Application
Server
V7 Node
V7Application
Server
V7Application
Server
V7NodeAgent
…
V8Deployment
Manager
Cell
J2EEApps
(EARs)
ConfigFiles
JavaEE 6Apps
V8ConfigFiles
JavaEE 5Apps
V7ConfigFiles
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
45 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
ツールを利用したマイグレーション(1)
� WAS V6.0以降の環境からは,ツールを使用したマイグレーションが可能
– 既存のV6,V7環境から構成情報を抜き出し,V8環境に取り込む
– 旧環境は削除されていないので,切り戻すことも可能
� Deployment Managerを含むトポロジーでの段階移行では使用が必須
– V7では,500以上のノードを含む環境の移行での使用実績もあり
� 導入されているアプリケーションを含めて移行するかどうかは
選択することが可能
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
46 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
ツールを利用したマイグレーション(2)
� 構成マイグレーションツール
– WAS Customization Toolboxから起動して使用する
– WASPreUpgrade / WASPostUpgradeプログラムに対する
GUIフロントエンドプログラム
© 2011 IBM Corporation
06. 06. マイグレーションマイグレーション
47 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
参照情報
© 2011 IBM Corporation
セッション番号セッション番号. . セッションタイトルセッションタイトル06. 06. マイグレーションマイグレーション
48 WAS V8.0 アナウンスメント・ワークショップWAS V8.0 アナウンスメント・ワークショップ
参照情報
� WAS V8へのマイグレーションガイド
– http://www.ibm.com/developerworks/jp/websphere/library/was/was8_migration/
� WASの前提条件
– http://www.ibm.com/software/webservers/appserv/was/requirements/� WAS V8.0 Information Center (オンライン・マニュアル)
– http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp• マイグレーション、共存、および相互運用
http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/welc6topmigrating.html
• 非推奨のフィーチャー、安定化されたフィーチャー、および除去されたフィーチャー
http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/rmig_deprecationlist.html
� Redbook 「WebSphere Application Server V7 Migration Guide」
– http://www.redbooks.ibm.com/abstracts/redp4635.html
� Knowledge Collection: Migration planning for WebSphere Application Server
– http://www.ibm.com/support/docview.wss?rs=180&uid=swg27008724