• 検索結果がありません。

Microsoft PowerPoint - WASV855_UPDATE_05_Libertyプロファイルとマイグレーション.ppt

N/A
N/A
Protected

Academic year: 2022

シェア "Microsoft PowerPoint - WASV855_UPDATE_05_Libertyプロファイルとマイグレーション.ppt"

Copied!
30
0
0

読み込み中.... (全文を見る)

全文

(1)

WAS V8.5.5 最新情報ワークショップ 1

WebSphere Application Server V8.5.5 WebSphere Application Server V8.5.5

最新情報ワークショップ 最新情報ワークショップ 最新情報ワークショップ 最新情報ワークショップ 最新情報ワークショップ 最新情報ワークショップ 最新情報ワークショップ 最新情報ワークショップ

© 2013 IBM Corporation

~次世代 WAS ランタイム Liberty で変わる Web システム~

1 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty

Liberty プロファイルとマイグレーション プロファイルとマイグレーション プロファイルとマイグレーション プロファイルとマイグレーション プロファイルとマイグレーション プロファイルとマイグレーション プロファイルとマイグレーション プロファイルとマイグレーション

(2)

© 2013 IBM Corporation

2 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Disclaimer

この資料は日本アイ・ビー・エム株式会社ならびに日本アイ・ビー・エム システムズ・エンジニアリ ング株式会社の正式なレビューを受けておりません。

当資料は、資料内で説明されている製品の仕様を保証するものではありません。

資料の内容には正確を期するよう注意しておりますが、この資料の内容は20137月現在の情 報であり、製品の新しいリリース、PTFなどによって動作、仕様が変わる可能性があるのでご注意 下さい。

今後国内で提供されるリリース情報は、対応する発表レターなどでご確認ください。

IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business

Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各

社の商標である場合があります。現時点でのIBMの商標リストについては、

www.ibm.com/legal/copytrade.shtmlをご覧ください。

当資料をコピー等で複製することは、日本アイ・ビー・エム株式会社ならびに日本アイ・ビー・エム システムズ・エンジニアリング株式会社の承諾なしではできません。

当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。

JavaおよびすべてのJava関連の商標およびロゴはOracleやその関連会社の米国およびその他 の国における商標または登録商標です。

Microsoft, Windows およびWindowsロゴは、Microsoft Corporationの米国およびその他の国 における商標です。

Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。

UNIXThe Open Groupの米国およびその他の国における登録商標です。

(3)

WAS V8.5.5 最新情報ワークショップ 3

© 2013 IBM Corporation

3 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Agenda

従来の WAS から Liberty プロファイルへのマイグレーション WAS V8.5 Liberty プロファイルからのマイグレーション Tomcat からのマイグレーション

当セッションのアジェンダです。

このセッションでは,他の環境で稼働しているJava EEアプリケーションをWAS V8.5.5 Libertyプロ ファイルへ移行する際の注意点について解説します。

(4)

© 2013 IBM Corporation

4 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

従来の WAS から Liberty プロファイルへのマイグレーション

この章では,旧バージョンのWASで稼働していたアプリケーションをLibertyプロファイルへ移行する 場合の注意点について解説します。対象のWASとしては,WAS V5.0/5.1/6.0/6.1/7.0/8.0を想定し ています。またWAS 8.5 Fullプロファイル(完全プロファイル)で稼働しているアプリケーションを Libertyプロファイルへ移行することを検討している場合にも適用いただけます。

(5)

© 2013 IBM Corporation

5 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

アプリケーションの移行の基本的な手順

J2SE/Java SE の更新に対する対応をおこなう

– 例) J2SE 1.4 以前から J2SE 5.0 以降への移行

Liberty プロファイルがサポートしていない API

– アプリケーション機能として提供できれば,独自に用意( JavaMail 等)

– 本質的な API の場合,完全プロファイルを使用する( EJB 2.x 等)

Liberty プロファイルがサポートしている API

– そのまま移行できる

Liberty プロファイルがサポートしている API の旧バージョン

– 新しいバージョンの API に対応させる

移行に当たっては,まずJDKのアップデートに対する対応が必要となります。WAS V8.5.5 Libertyプ ロファイルは,Java SE 6以降の環境で動作します。移行前のアプリケーションがWAS V7.0以前で 稼働している場合,J2SE 5.0以前の仕様にしたがって実装されているはずですので,以降の対応 が必要です。例としては,J2SE 1.4以前の仕様にしたがって実装されたアプリケーションを,J2SE 5.0以降の言語仕様に対応させるような場合があります。

次に,アプリケーションで使用しているAPIのうち,Java EEで定義されているもの,別途WASのコン テナで提供されているものを調査します。それらのAPIが,Libertyプロファイルで提供されているか を調べる必要があります。現在のLibertyプロファイルでは,従来のWASや完全プロファイルで提供 されている全てのAPIが提供されているわけではありません。Libertyプロファイルで提供されている APIがアプリケーションで使用されている場合には,別途対応が必要になります。

Libertyプロファイルで提供されていないAPIが,アプリケーションの機能として別途用意できるような もの(JavaMailやPortletなどの場合)の場合は,別途オープンソースの実装などを入手し,アプリケ ーションに組み込むことにより利用できるようになります。しかし,EJB 2.xなどのように,本質的にコ ンテナの機能として提供する必要があるAPIを使用している場合には,Libertyプロファイルの使用 を断念し,通常の完全プロファイルを使用する必要があります。

APIがLibertyプロファイルで提供されているものの,使用しているバージョンが古い場合は,現在の 仕様にしたがって対処が必要な場合もあります。

WAS V8.5.5 最新情報ワークショップ 5

(6)

© 2013 IBM Corporation

6 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

WAS のサポートしている Java EE/Java SE 仕様 WAS V5.0

Servlet 2.3/JSP 1.2

J2EE 1.3

EJB 2.0

J2SE 1.3

WAS V5.1

Servlet 2.3/JSP 1.2

J2EE 1.3

EJB 2.0

J2SE 1.4

WAS V6.0

Servlet 2.4/JSP 2.0

J2EE 1.4

EJB 2.1

J2SE 1.4

WAS V6.1

Servlet 2.4/JSP 2.0

J2EE 1.4

EJB 2.1

J2SE 5.0

WAS V7.0

Servlet 2.4/JSP 2.0

J2EE 1.4

EJB 2.1

Java EE 5

Servlet 2.5/JSP 2.1 EJB 3.0

Java SE 6

WAS V8.0

Servlet 2.4/JSP 2.0

J2EE 1.4

EJB 2.1

Java EE 5

Servlet 2.5/JSP 2.1 EJB 3.0

Java EE 6

Servlet 3.0/JSP 2.2 EJB 3.1

Java SE 6

WAS V8.5

Servlet 2.4/JSP 2.0

J2EE 1.4

EJB 2.1

Java EE 5

Servlet 2.5/JSP 2.1 EJB 3.0

Java EE 6

Servlet 3.0/JSP 2.2 EJB 3.1

Java SE 6 / 7

JSP/Servlet 仕様の変更

Java 5対応

過去のWASのバージョンと,対応しているJava EE/J2EEおよび,Java SE/J2SE(Java SDK)のバー ジョンの一覧になります。Libertyプロファイルの対応している仕様については,基本的にWAS V8.5 と同等になります。

Java EE/J2EEに関しては,基本的にJ2EE 1.4のアプリケーションになっていれば,Libertyプロファイ ル上でも稼働します。たとえば,Libertyプロファイルが対応しているServlet APIは3.0ですが,

Servlet API 2.4/2.5で実装されたアプリケーションも稼働します。J2EE 1.3以前のアプリケーションで あれば,J2EE 1.4に対応するため,一部のアプリケーションで修正が必要となる場合があります。

Java SE/J2SEに関しては,J2SE 1.4とJ2SE 5.0の間に大きな仕様変更があったため,これに対す る対応が必要となります。

(7)

© 2013 IBM Corporation

7 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty プロファイルでサポートしている Java EE API

Java EE 6 Web Profile

–Servlet 3.0, JSF 2.0, JSP 2.2/EL 1.2/JSTL 1.2, JSR-45 –CDI 1.0, Bean Validation 1.0, Java Persistence API 2.0 –EJB lite 3.1 (local call), Java Transaction API (JTA) 1.1

Java API for RESTful Web Services (JAX-RS) 1.1 Java API for XML-Based Web Services (JAX-WS) 2.2 Java Architecture for XML Binding (JAXB) 2.2

SOAP with Attachments API for Java (SAAJ) 1.3 EJB 3.1 Message Driven Bean

Java Message Service (JMS) API 1.1

Java SE

で標準提供されている機能

–Java API for XML Processing (JAXP) 1.3 –Streaming API for XML (StAX) 1.0 –Java Database Connectivity (JDBC) 4.0 –Java Management Extensions (JMX) 2.0 –JavaBeans Activation Framework (JAF) 1.1

こちらがJava EEで提供されているAPIのうち,Libertyプロファイルでも提供されているものになりま す。

Java EE 6 Web Profileで提供されているAPIをはじめ,Webサービスを実現するJAX-WS/JAX-RS やメッセージングに対応するJMSやEJBのMDBなどが提供されているほか,かつてJava EEで提供 されていて現在はJava SE標準で提供されるようになった多くのAPIについても対応しています。

WAS V8.5.5 最新情報ワークショップ 7

(8)

© 2013 IBM Corporation

8 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty プロファイルでサポートしていない サポートしていない サポートしていない サポートしていない Java EE API アプリケーション・インターフェース

– Java API for XML-based RPC (JAX-RPC) 1.1 – Java API for XML Registries (JAXR) 1.0 – Java EE Connector Architecture 1.6 – EJB 3.x (remote call), EJB 2.x Entity Bean – JavaMail 1.4

マネジメント機能

– Java Authentication Service Provider Interface for Containers (JASPIC)

– Java Authorization Contract for Containers (JACC) 1.3 – Java EE Application Deployment 1.2

– J2EE Management 1.1

そして,こちらがLibertyプロファイルで提供していないAPIになります。大きく,アプリケーションから 使用するAPIとアプリケーションの管理に使用するAPIがあります。

旧式のWebサービスであるJAX-RPCや,EJB 3.0のリモート呼び出しやEJB 2.xのEntity Beanなど が提供されていません。これらのAPIを使用したアプリケーションをLibertyプロファイルへ移行する ことは困難となります。JavaMailについては,比較的容易にアプリケーションに組み込むことができ るため,大きな問題にはならないかと思います。

(9)

© 2013 IBM Corporation

9 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty プロファイルでサポートしていない Java EE 以外の API Enterprise OSGi

– Blueprint Security

– Blueprint Resource References

Service Component Architecture (SCA) Portlet 2.0 (JSR 286)

Session Initiation Protocol (SIP) Servlet API 1.1 (JSR 289)

Java EEで定義されているAPI以外についても,WASの完全プロファイルでは提供されているが Libertyプロファイルでは提供されていないAPIがあります。

Enterprise OSGiの機能は大部分がLibertyプロファイルでも提供されていますが,Blueprintの一部 のサービスについては,提供されていません。またSCAやSIPのAPIを使用したアプリケーションに ついても,Libertyプロファイル上で実行することはできません。

Portlet APIについては,オープンソースの実装をアプリケーションで実装することにより実行する事 は可能です。

WAS V8.5.5 最新情報ワークショップ 9

(10)

© 2013 IBM Corporation

10 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

対応している API の更新に利用できるツール

Application Server Migration Toolkit – Competive Application Migration Tool

• WebLogicJBossOracle ASなどからの 移行を支援するツール

– WebSphere Application Migration Tool

• WASの旧バージョンからの 移行を支援するツール

無償でダウンロードいただいて 使用することができます

Eclipse や Rational Application Developer に 組み込んで使用

Rational Software Analyzer の技術を使用して Java コード, JSP ,デプロイメント記述子の調査 修正が必要な箇所をリストアップし

修正方法についてガイドを表示

移行の負荷を大幅に削減 移行の負荷を大幅に削減 移行の負荷を大幅に削減 移行の負荷を大幅に削減

Application Migration Tool

WAS V7.0 V6.0 & 6.1

V5.1

WebSphere Application Server

V8.5, V8, V7

Oracle WLS Oracle AS JBoss AS / EAP Tomcat

http://www.ibm.com/developerworks/jp/websphere/library/was/was_migration_toolkit/

Libertyプロファイルでも対応しているAPIで,アプリケーションで使用しているAPIのバージョンが古 い場合には,移行に当たって修正が必要となる場合があります。このような場合には,完全プロフ ァイルのマイグレーションでも使用されているマイグレーションツールを使用することができます。

マイグレーションツールは,EclipseやRational Application Developerに組み込んで使用いただく分 析ツールです。Rational Software Analyzerの技術をベースとしたツールで,過去のIBMのSoftware Service部門などで経験したマイグレーションにあたっての知見がルールの形で実装されています。

アプリケーションのソースコードを分析し,修正が必要な箇所をリストアップすることができます。

ルールとしては,他社のアプリケーションサーバーからの移行にあたっての要修正箇所,WASの旧 バージョンからの移行に当たっての要修正箇所が格納されています。旧バージョンからの移行を選 択いただくと,Java SEの変更に伴う修正箇所,Java EEの変更に対応するための修正箇所などを 洗い出すことができます。

(11)

© 2013 IBM Corporation

11 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Java SE 仕様( J2SE 仕様)のマイグレーション: Java5 対応

J2SE 5.0 では言語仕様のバージョン自体が更新

バイトコードレベルでは上位互換が保たれている

以前の環境でコンパイルした

Class

ファイルはほとんどそのまま使用できる

ソースコードレベルでは上互換が保たれていない

追加された予約語「assert」「enum」の対応

– Generics(総称型)への対応

強化されたコードチェックによる,エラー・警告への対応

– java.lang.reflect.Proxyと同名のjava.net.Proxyが追加

– java.util.Logger

のコンストラクタの変更 等

Java Java

Java Java 言語仕様 言語仕様 言語仕様 言語仕様 1st Edition 1st Edition 1st Edition 1st Edition Java

Java Java

Java 言語仕様 言語仕様 言語仕様 言語仕様 1st Edition 1st Edition 1st Edition 1st Edition

JDK 1.0 1.1

Java Java

Java Java 言語仕様 言語仕様 言語仕様 言語仕様 2nd Edition 2nd Edition 2nd Edition 2nd Edition Java

Java Java

Java 言語仕様 言語仕様 言語仕様 言語仕様 2nd Edition 2nd Edition 2nd Edition 2nd Edition

J2SE 1.2 1.3

Java Java

Java Java 言語仕様 言語仕様 言語仕様 言語仕様 3rd Edition 3rd Edition 3rd Edition 3rd Edition Java

Java Java

Java 言語仕様 言語仕様 言語仕様 言語仕様 3rd Edition 3rd Edition 3rd Edition 3rd Edition

J2SE 5.0 Java SE 6

1.4 7

Java SEでは,過去に二回大きな言語仕様の変更が行われています。最近では,J2SE 1.4と5.0の 間で大きな変更がありました。

この修正では,基本的にバイトコードレベルでは上位互換が保たれています。つまり,以前の環境 でコンパイルされたClassファイルについては,原則的にそのまま使用することができます。

ですが,ソースコードレベルでは上位互換が取られていません。前バージョンでは正常にコンパイ ルできていたコードであっても,修正しないとコンパイルが通らなかったり,あるいは警告が出力さ れるということがおこりえます。これらに対する対応が必要となります。これらについては,新しい開 発環境の構文チェック機能を使用することで必要修正箇所を洗い出すことができます。

WAS V8.5.5 最新情報ワークショップ 11

(12)

© 2013 IBM Corporation

12 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Java SE :バージョン間の非互換への対応 コンパイルが正常に通った場合も,

JDK のバージョンが上がることにより

API やオプションの挙動がかわることがあります

– BigDecimal や file.encoding システムプロパティ,

内部クラスへのアクセスなど

JDK 1.3/1.4 から JDK 5.0/6.0 への移行

– BigDecimal について大規模な仕様変更がおこなわれました

– その他,非互換の詳細については,以下の文書を参照

http://www.oracle.com/technetwork/java/javase/compatibility-137462.html

JDK 5.0 から JDK 6.0 への移行

– 極めて高いレベルで上位互換性がとられています – 非互換の詳細については,以下の文書を参照

http://www.oracle.com/technetwork/java/javase/compatibility-137541.html

また,コンパイルが正常にできた場合でも,JDKのバージョンが上がることにより,APIやオプション の挙動が変わることがあります。移行にあったっては,これらの対処が必要となることもあります。

代表的なものとしては,BigDecimalの仕様変更や,システムプロパティのfile.encodingを起動パラメ ーターで変更している時の挙動などです。これらについても注意が必要となります。

JDK 1.4以前から5.0移行については,BigDecimalの仕様変更への対応が大きなトピックとしてあげ られます。一方,JDK 5.0以降については高いレベルで互換性が取られていますので,多くのアプリ ケーションがそのまま使用することができます。

(13)

WAS V8.5.5 最新情報ワークショップ 13

© 2013 IBM Corporation

13 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Java SE : 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(new new new new BigDecimal("0.00000001"));

System. out .println(new new new new BigDecimal("0.00000001"));

JDK 1.4

の出力:の出力:の出力:の出力:

“0.00000001” JDK 5.0

の出力:の出力:の出力:の出力:

“1E-8”

JDK 5.0から行われたBigDecimalの仕様変更は,多くのアプリケーションに影響を与えました。文 字列化した時の表現が異なるということで,多くのアプリケーションで挙動が変わったり異常が発 生したりという問題が発生しました。

Javaでは,オブジェクトの文字列化処理は様々な箇所で暗黙的に行われているため,

BigDecimalの文字列化が行われている箇所を単純な文字列検索などで洗い出すことは困難です。

先ほどご紹介したマイグレーションツールを使用すると,この文字列化処理が行われている箇所 を網羅的に洗い出すこともできます。

(14)

© 2013 IBM Corporation

14 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

J2EE/Java EE アプリケーションのマイグレーションの概要

J2EE 1.2 から J2EE 1.3 以降へは基本的な上位互換が保たれている

ただし,

J2EE 1.3

から国際化対応の機能が導入されたため,

日本語環境のアプリケーションでは何らかの対応が必要となるケースが多い

細かい仕様の変更があるため,個別に対応が必要となるケースも

J2EE 1.3 から J2EE 1.4 以降へは高いレベルで上位互換が保たれている –

多くのアプリケーションが変更無しに稼動する

アプリケーションによっては若干の手直しが必要となるケースもある

基本的に J2EE 1.4 アプリケーションであれば,

WAS V8.5.5 Liberty プロファイルでそのまま動作可能

– Java EE 5/6の新機能を使用する場合にはマイグレーションする

J2EE/Java EE使用については,WAS V4.0以前のJ2EE 1.2アプリケーションからは大きな修正が必 要となるケースがしばしばあります。

ですが,WAS V5.0/5.1のJ2EE 1.3アプリケーションについては,小さな修正でアプリケーションを稼 働させることができますし,WAS V6.0/6.1のJ2EE 1.4アプリケーション以降であれば,基本的にその ままアプリケーションを実行することができます。

ただ,最新のJava EE 6では,多くの便利が機能が提供されています。これらを使用する場合には,

アプリケーションをJava EE 6へ移行する必要があります。アプリケーションのバージョンアップは,

構成ファイルであるデプロイメントディスクリプタ(application.xmlやweb.xmlなど)を最新の使用に対 応したものに変換します。

(15)

WAS V8.5.5 最新情報ワークショップ 15

© 2013 IBM Corporation

15 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

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 pageEncoding="MS932" %>

<@ page pageEncoding="MS932" %>

<@ page pageEncoding="MS932" %>

<@ page pageEncoding="MS932" %>

日本語のテキスト

b.jsp b.jspb.jsp b.jsp a.jsp a.jspa.jsp a.jsp

コンパイル単位

ファイル単位

ファイル単位 これを追加しないと文字化けする

J2EE 1.3のアプリケーションをJ2EE 1.4以降の仕様に準拠させるには,一部JSP仕様の変更に対応 させることが必要な場合があります。

(16)

© 2013 IBM Corporation

16 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

その他,完全プロファイルから Liberty プロファイルへの移行の注意点

JNDI による名前解決

完全プロファイルで提供されていた

InitialContext

のファクトリークラスである

com.ibm.websphere.naming.WsnInitialContextFactory

は,

Libertyプロファイルでは提供されません。

ファクトリークラスを指定しないで

InitialContext

を作成してください。

DataSource の定義

データソースのプロパティの中に,名前が変わったもの,デフォルト値が変更になっ たものがあります。

詳細については,

InfomationCenter

の記述を参照してください。

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.wlp.c ore.doc/ae/rwlp_ds_diff.html

JDBC Driver がロードされるクラスローダーの同一性が異なります

完全プロファイルでは,XA対応・非対応のJDBC Driverは異なるドライバーとして構 成する必要があり,それぞれ別のクラスローダーでロードされます。

– Liberty

プロファイルでは,単一の

JDBC Driver

XA

対応・非対応の二つのドライ バーを定義できます。これらは同一のクラスローダーからロードされます。

その他,移行に当たって必要な注意点となります。

(17)

© 2013 IBM Corporation

17 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

アプリケーション・クラスローダーに関する注意点

Liberty プロファイルは OSGi ランタイム上に実装されてい るため,ほとんどの WAS 内部実装クラスはアプリケーショ ンから不可視になっている

– OSGi

は基本機能として

バンドル間のクラスの可視・不可視の調整を行う

– WAS

とアプリケーションのクラスの重複による問題は,

減る可能性が高い

Liberty プロファイルでは,

アプリケーションサーバー全体で

単一のクラスローダーを使用することはできない –

モジュールごとに独立したクラスローダーが使用される

アプリケーションのクラスローダーに

「親が最初」「親が最後」の構成を行うことはできる –

設定するためには,

dropins

に配置するのではなく

server.xml

に登録する必要がある

OSGi

また,WASの完全プロファイルとLibertyプロファイルでは,内部のクラスローダーの構成も異なって います。OSGiのクラス管理機能を使用することによって,クラスの可視・不可視がより厳密に管理さ れるようになっています。

従来のWASの環境でデフォルトのクラスローダーの指定で稼働していたアプリケーションについて は,基本的に変更の必要はありませんが,クラスローダーの構成を変更しないと稼働しなかったア プリケーションについては,Libertyプロファイルでも構成の調整やアプリケーションの修正などが必 要となる場合があります。

WAS V8.5.5 最新情報ワークショップ 17

(18)

© 2013 IBM Corporation

18 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

WAS V8.5 Liberty プロファイルからのマイグレーション

この章では,WAS V8.5のLibertyプロファイルでアプリケーションを稼働させていたお客様がWAS V8.5.5のLibertyプロファイルに移行する場合の注意点について解説します。

(19)

© 2013 IBM Corporation

19 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty プロファイルのマイグレーション

V8.5.0 から V8.5.5 へは完全な上位互換が取られている

– 従来の構成ファイルは,そのまま使用できる

– V8.5.0 で提供されていた Feature は, V8.5.5 でも全て提供されている – アプリケーションについても,原則的に修正無しで移行が可能

Libertyプロファイルについては,V8.5.0からV8.5.5への移行について基本的な上位互換が取られて いますので,従来の構成ファイルやアプリケーションなどについては,修正無しでそのまま使用して いただく事ができます。

WAS V8.5.5 最新情報ワークショップ 19

(20)

© 2013 IBM Corporation

20 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty プロファイルの導入

Installation Manager 上では, WAS V8.5.0 の Liberty プロファイ ルは WAS パッケージの 1 コンポーネントだったが, WAS V8.5.5 からは,独立したパッケージとして提供されるようになった

– WAS V8.5.0.x から Refresh Pack を導入して V 8.5.5.x にアップデートすると,

<WAS Root>/wlp ディレクトリは

wlp.bak_< 日付 > ディレクトリにバックアップされる

V8.5.0.x の Liberty プロファイル環境を V8.5.5.x 以降へマイグレー ションする場合,直接的な上書きができないので,別ディレクトリ に新規に導入をおこなう

– <wlp>/usr (および <wlp>/etc )ディレクトリ以下をバックアップし,

新しい環境に上書きする

– 最初にサーバーを起動する際に, --clean オプションを付けて起動する

ただ,既存の環境について,Refresh packを適用して,Libertyプロファイルのファイルを上書きして 更新することはできません。新しい環境を別途導入し,旧環境の構成ファイルを新環境に上書きコ ピーする必要があります。

サーバー構成ファイルには,OSGiがworkareaに保存しているキャッシュ情報が含まれていますの で,この内容を更新するため,最初に起動する際に--cleanオプションを付けて起動する必要があり ます。

(21)

WAS V8.5.5 最新情報ワークショップ 21

© 2013 IBM Corporation

21 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Tomcat からのマイグレーション

続いて,Tomcat環境でアプリケーションを実行しているお客様が,アプリケーションをLibertyプロ ファイルに移行する際の注意点について解説します。

(22)

© 2013 IBM Corporation

22 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Tomcat の置き換えとしての Liberty プロファイル

Web Services Technologies Web Services TechnologiesWeb Services Technologies Web Services Technologies JSR 311: JAX-RS: The Java API

for RESTful Web Services 1.1 JSR 224: Java API for XML-Based

Web Services (JAX-WS) 2.2 JSR 222: Java Architecture

for XML Binding (JAXB) 2.2

JSR 109: Implementing Enterprise Web Services 1.3 JSR 181: Web Services Metadata

for the Java Platform

JSR 101: Java APIs for XML based RPC 1.1 JSR 67: Java APIs for XML Messaging 1.3 JSR 93: Java API for

XML Registries 1.0 (JAXR) 1.0 Management and Security Technologies Management and Security TechnologiesManagement and Security Technologies Management and Security Technologies JSR 196: Java Authentication Service Provider

Interface for Containers 1.0 JSR 115: Java Authorization

Contract for Containers 1.3 JSR 88: Java EE Application Deployment 1.2 JSR 77: J2EE Management 1.1

Web Profile Web Profile Web Profile Web Profile

Web Application Technologies Web Application Technologies Web Application Technologies Web Application Technologies JSR 315: Java Servlet 3.0

JSR 314: JavaServer Faces (JSF) 2.0 JSR 245: JavaServer Pages 2.2

and Expression Language (EL) 1.2

JSR 52: A Standard Tag Library for JavaServer Pages 1.2 JSR-45: Debugging Support for Other Languages 1.0 Enterprise Application Technologies

Enterprise Application Technologies Enterprise Application Technologies Enterprise Application Technologies JSR 299: Contexts and Dependency Injection

for the Java EE Platform 1.0 JSR 330: Dependency Injection for Java JSR 318: Enterprise JavaBeans 3.1 (EJB Lite) JSR 317: Java Persistence API 2.0

JSR 250: Common Annotations for the Java Platform 1.1 JSR 907: Java Transaction API (JTA) 1.1

JSR 303: Bean Validation 1.0

JSR 914: Java Message Service (JMS) API 1.1 JSR 318: Enterprise JavaBeans 3.1

JSR 322: Java EE Connector Architecture 1.6 JSR 919: JavaMail 1.4

Tomcat

Tomcat

で提供されているで提供されているで提供されているで提供されているで提供されているで提供されているで提供されているで提供されている

API API Java EE full Profile

Liberty プロファイル プロファイル プロファイル プロファイル Liberty Liberty プロファイル プロファイル プロファイル プロファイル プロファイル プロファイル プロファイル プロファイル Liberty Liberty プロファイル プロファイル プロファイル プロファイル プロファイル プロファイル プロファイル プロファイル

Tomcatで提供されているのは,Java EE Web Profileで定義されているAPIのさらに一部のWeb Application Technology関連のAPIだけです。Libertyプロファイルは,Tomcatで提供されているAPI を含めたWeb Profile仕様全体,および追加のAPIをサポートしています。そのため,Tomcatで使用 していたアプリケーションについては,原則的にLibertyプロファイルへ移行して実行することができ ます。

(23)

© 2013 IBM Corporation

23 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

パフォーマンス(1) 起動速度およびメモリ使用量 ベンチマークソフト TradeLite を使用したテストでは,

Liberty プロファイルは,他の軽量アプリケーションサーバーに比

べると Tomcat と同じレベルの起動速度,メモリ使用量の少なさを

実現している

Intel Core 2 Duo CPU @ 2.16 GHz [2 cores] 2MB L2, 2GB RAM IBM JDK 7 sr4fp1ifix-20130404 used with Liberty

Oracle JDK 7 su21 used for other products

Tomcatを使用しているお客様は,その軽さ,メモリ使用量の少なさを理由にされていることがしばし ばあります。Libertyプロファイルを使用した場合,より多くの資源を必要とするのではないかという 懸念があります。

ですが,WASのLibertyプロファイルは,他の軽量ランタイムとよばれるコンテナ,JBossやGrassfish よりも少なく,Tomcatと同じレベルの起動の速さ,メモリ使用量の少なさを実現しています。

WAS V8.5.5 最新情報ワークショップ 23

(24)

© 2013 IBM Corporation

24 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

パフォーマンス(2) 起動速度およびメモリ使用量

EJB lite などを使用したベンチマークソフト DayTrader 3 でも,

起動速度,メモリ使用量について,

他の軽量アプリケーションサーバーよりよい成績を出している

– DayTrader 3 は Tomcat では稼働しない

Intel Core 2 Duo CPU @ 2.16 GHz [2 cores] 2MB L2, 2GB RAM IBM JDK 7 sr4fp1ifix-20130404 used with Liberty

Oracle JDK 7 su21 used for other products

この軽量ランタイムとの差は,ServletやJSPだけではない,EJB liteなどのJava EEの多くの機能を 使用したアプリケーションを実行した場合,さらに大きくなります。

(25)

© 2013 IBM Corporation

25 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

パフォーマンス(3) スループット

TradeLite で比較した場合, Liberty プロファイルは Tomcat よりも 高いスループットを実現する

DayTrader 3 で比較した場合, Liberty プロファイルは Glassfish と 同程度, JBoss よりも高いスループットを実現する

Intel Core 2 Duo CPU @ 2.16 GHz [2 cores] 2MB L2, 2GB RAM IBM JDK 7 sr4fp1ifix-20130404 used with Liberty

Oracle JDK 7 su21 used for other products

これだけの軽さを維持しつつ,Libertyプロファイルは本番での使用にも耐える十分なパフォーマン スを提供します。TradeLiteを使用したベンチマークではTomcatよりも4割以上高いスループットを実 現しますし,DayTrader 3を使用したベンチマークでは,JBossよりも5割以上高い結果を出していま す。GrassFishとは同程度のスループットとなっています。

このことから,Tomcatを置き換え,より高いパフォーマンスを実現できるプラットフォームとして,

Libertyプロファイルは魅力的な実行環境であると言えます。

WAS V8.5.5 最新情報ワークショップ 25

(26)

© 2013 IBM Corporation

26 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Liberty Core エディションで提供される JDK 以下のプラットフォームで,

Liberty プロファイルを実行するための IBM Java SKD 7 を提供

– Windows

– Linux ( Intel x86/x86-64, IBM Power, IBM System z ) – AIX

以下のプラットフォームで,

ベンダーから OEM 供給された Java SDK 7 をサポートつきで提供

– Solaris – HP-UX

TomcatからWAS Libertyプロファイルへ移行することのもう一つのメリットは,サポートがあるJDKが 同梱されていることです。

Javaアプリケーションを運用している多くの環境では,アプリケーションサーバーの障害と同程度の 頻度でJDK/JVMの障害が発生しています。JDK/JVMの障害についてはユーザーやコミュニティベ ースの対応が難しいため,ベンダーサポートが必須となります。

Windows,Linux,AIXのプラットフォームでは,IBMが独自に実装したJVM(J9 VM)を使用したJava SDKが同梱されています。高いパフォーマンスを誇り,充実した問題判別機能が実装された,ビジ ネスに最適のJavaランタイム環境です。また,SolarisおよびHP-UXについては,それぞれのベンダ ーからOEM提供されたJava SDKが提供されています。

これ以外のプラットフォームでLibertyプロファイルを実行する場合は,ユーザーが独自に入手した

(27)

© 2013 IBM Corporation

27 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Tomcat のバージョンと Servlet/JSP 仕様のバージョン

Tomcat 4 以降であれば大きな変更なく移行が可能

– Tomcat 3 からは国際化対応が必要

– Tomcat 4 からは JSP の仕様変更への対応が必要

Tomcat 3 Tomcat 4 Tomcat 5/5.5 Tomcat 6 Tomcat 7

Servlet 2.2 2.3 2.4 2.5 3.0

JSP 1.1 1.2 2.0 2.1 2.2

対応する J2EE/Java EE

J2EE 1.2 J2EE 1.3 JEE 1.4 Java EE 5 Java EE 6

Tomcatについても,過去のバージョンからの移行であれば,Servlet仕様,JSP仕様の変更に対応 した修正が必要となることがあります。Tomcat 5.5/5以降からの移行であれば大きな修正は必要あ りませんが,それ以前からの修正では,旧バージョンのWASからの移行と同程度の修正が必要と なります。

WAS V8.5.5 最新情報ワークショップ 27

(28)

© 2013 IBM Corporation

28 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

Application Server Migration Toolkit

マイグレーションツールでは,

Tomcat アプリケーションからの 移行での要修正箇所を検出可能

– 検出されるルールの例

• Tomcat

固有クラス

(BasicDataSource,Juliロギング等)の使用

不正確なリソース参照文字列の使用

Application Migration Tool

WAS V7.0 V6.0 & 6.1

V5.1

WebSphere Application Server

V8.5, V8, V7

Oracle WLS Oracle AS JBoss AS / EAP Tomcat

検出ルール クイックフィックス

Java 6 2

JSP 3 1

XML 10 8

Total 19 11

Migration Tool Version 3.5

で提供されている

Tomcat関連のルール

Tomcatからの移行に当たってもマイグレーションツールが使用できます。マイグレーションツール V5.3では,Servlet/JSP仕様の修正の検出のほか,TomcatからWASへの移行に当たって修正が必 要な箇所を検出するルールも実装されています。

Tomcat固有のクラスを使っている場合以外は致命的な修正点はほとんどなく,多くのアプリケーシ ョンでは,必要最小限の修正でWAS Libertyプロファイルへ移行することができます。

(29)

© 2013 IBM Corporation

29 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

まとめ

過去の WAS からの移行に当たっては,

アプリケーションが使用している API が

Liberty プロファイルで提供されているかの調査が必要です。

以前のバージョンの Liberty プロファイルからは,

上位互換が取られているためそのまま移行できます。

Tomcat からの置き換えとして, Liberty プロファイルは最適です。

WAS V8.5.5 最新情報ワークショップ 29

(30)

© 2013 IBM Corporation

30 WAS V8.5.5 WAS V8.5.5 最新情報ワークショップ最新情報ワークショップ

END

参照

関連したドキュメント

(吊り下げ用金具) ●取扱説明書 1 本体      1台. 2 アダプタ-   1個 3

They proved that if Y is a (real or complex) rearrangement-invariant nonatomic function space on [0, 1] isometric to L p [0, 1] for some 1 ≤ p &lt; ∞ then the isometric isomorphism

If the interval [0, 1] can be mapped continuously onto the square [0, 1] 2 , then after partitioning [0, 1] into 2 n+m congruent subintervals and [0, 1] 2 into 2 n+m congruent

Taking care of all above mentioned dates we want to create a discrete model of the evolution in time of the forest.. We denote by x 0 1 , x 0 2 and x 0 3 the initial number of

3-dimensional loally symmetri ontat metri manifold is of onstant urvature +1. or

○事 業 名 海と日本プロジェクト Sea級グルメスタジアム in 石川 ○実施日程・場所 令和元年 7月26日(金) 能登高校(石川県能登町) ○主 催

   遠くに住んでいる、家に入られることに抵抗感があるなどの 療養中の子どもへの直接支援の難しさを、 IT という手段を使えば

26‑1 ・ 2‑162 (香法 2 0 0