WebSphere Application Server V9 アナウンスメント・セミナー V9への移行 日本アイ・ビー・エム株式会社 クラウド・ソフトウェア事業部 アプリケーション・プラットフォーム 田中 孝清 アジェンダ この章ではWAS V8.5 Fullプロファイルや WAS 8.0以前から,WAS V9.0 traditionalへの マイグレーションを扱います Libertyプロファイルへの移行は扱いません マイグレーション概要 アプリケーションの移行 環境の移行 2 © 2016 IBM Corporation マイグレーション概要 3 © 2016 IBM Corporation マイグレーションのロードマップ 調査 計画 スキルの習得 開発環境 開発環境の更新 アプリケーションの マイグレーション 単体テスト 実行環境 実行環境のマイグレーション 実行環境のテスト 統合テスト サービス開始 調査 計画 スキル習得 開発環境 実行環境 アプリケーションの マイグレーション 実行環境の マイグレーション 単体テスト 環境のテスト 統合テスト サービス開始 4 © 2016 IBM Corporation 非推奨および削除となった機能・安定化された機能 削除された機能(Removed features) そのバージョンから使用できなくなった機能 使用している場合は,必ず移行が必要 非推奨となった機能(Deprecated features) 将来のバージョンで削除が予定される機能 使用している場合は,可能な限り移行を検討する 安定化された機能(Stabilized features) 将来のバージョンでの削除は予定されていないが, 代替機能があるため機能改善や新機能の追加は行われな いもの。 移行の必要はないが,代替機能の検討はおこなう 5 © 2016 IBM Corporation WAS V9で削除された主な機能 JavaServer Faces (JSF) 1.2機能を提供するSun参照実装 (RI) 使用している場合はJSF 2.2へ移行する Web 2.0 and Mobile Toolkit Dojo toolkit, WebDAV拡張,Commet対応等 Open Service Component Architecture (SCA)モデルの実行環境 Edge ComponentのLoad Balancer for IPv4 WAS V7以前に対する集中インストレーションマネージャー機能 一部のWebサーバーPlugin手動構成スクリプト WebSphere Customization Toolboxで構成を作成する HP-UX環境におけるGUIベースの WebSphere Customization Toolbox Communications Enabled Applications(CEA) WAS V7 Feature Pack for CEAで提供されていた機能 Common Event Infrastructure(CEI)および関連するAPI 6 © 2016 IBM Corporation WAS V9で非推奨となったAPI Java EE 7仕様で非推奨となったもの EJBのEntity Beanによる永続化 JAX-RPCによるSOAP通信 JAX-R / Java EE Application Deployment Asynchronous beans / CommonJ Concurrency Utilities for Java EE (JSR 236)へ移行 7 © 2016 IBM Corporation WAS V9で非推奨となった主なシステム管理機能 wsadminスクリプト(jython 2.7へ移行) jacl jython 2.1 SIBus(IBM MQへ移行) WAS V4形式のDataSource / DataSource MBean Lifecycle Managementを使用した LibertyプロファイルのWAS ND/ODRへの統合 IBM Support Assistant(ISA)Data Collectorによる 問題判別資料の収集(推奨がCollectorに戻りました) DMZ Secure Proxy Server 8 © 2016 IBM Corporation アプリケーションの移行 9 © 2016 IBM Corporation 対応しているJava EE / Java SE仕様 WAS V6.1 WAS V7.0 WAS V8.0 WAS V8.5 WAS V9.0 10 J2EE 1.4 Servlet 2.4/JSP 2.0 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 EE 6 Servlet 3.0/JSP 2.2 EJB 3.1 Java EE 7 Servlet 3.1/JSP 2.3 EJB 3.2 J2SE 5.0 Java SE 6 Java SE 6 Java SE 6 Java SE 7 Java SE 8 2016/1Qより Java SE 8 © 2016 IBM Corporation Java SE仕様のマイグレーション Java SE 8では,言語仕様レベルの大きな変更が行われた Project Lambda 過去二回(1.1→1.2および1.4→5.0)に匹敵する あるいは,それ以上のインパクトのある大変革 バイトコードレベル(コンパイル済みコード)では 上位互換は保証されている Java言語仕様 1st Edition JDK 1.0 1.1 Java言語仕様 2nd Edition J2SE 1.2 1.3 Java言語仕様 3rd (SE 7) Edition 1.4 J2SE 5.0 Java SE 6 7 Java言語仕様 Java SE 8 Edition Java SE 8 11 © 2016 IBM Corporation Java SE:Generics(総称型)への対応 汎用的なオブジェクトを扱うクラスにおいて, 扱うオブジェクトの型をパラメーターとして指定できる Java SE 5より導入 コンパイル時点での型の安全性の保証/型キャストの排除 コレクション・フレームワークをはじめとして 多くの標準APIが総称型を使用したものに変更 型を指定しないで使用するとコンパイル時に警告が出るように 既存のコードについては警告を無視すれば,稼働するコードは生成可 潜在的なバグを抑制するためにも,正しく型を指定することを推奨 Java SE 8のLambdaをはじめとする 新機能を使用する場合には総称型の仕様が前提 総称型で指定した型をもとに型推論がおこなわれるため 12 © 2016 IBM Corporation Java SE:Genericsを使用するように変更したコードの例 private HashMap hosts; // 型は指定しない public void init() throws IOException { hosts = new HashMap(); hosts.put("localhost", InetAddress.getLocalHost()); hosts.put("publicdns", "8.8.8.8"); // エラーとならない } public InetAddress getAddress(String hostname) { return (InetAddress)hosts.get(hostname); // キャストが必要 } 潜在的なバグ ClassCastExceptionが 発生する可能性 private HashMap<String, InetAddress> hosts; // 型を指定する public void init() throws IOException { hosts = new HashMap<String, InetAddress>(); hosts.put("localhost", InetAddress.getLocalHost()); hosts.put("publicdns", "8.8.8.8"); // コンパイルエラーとなる } public InetAddress getAddress(String hostname) { return hosts.get(hostname); // キャストは不要 } 13 © 2016 IBM Corporation Java SE:バージョン間の非互換への対応 コンパイルが正常に通った場合も,Java SEのバージョンが 上がることによりAPIの挙動がかわることがあります J2SE 5.0からJava SE 6への移行 極めて高いレベルで上位互換性がとられている 非互換の詳細については,以下の文書を参照 http://www.oracle.com/technetwork/java/javase/compatibility-137541.html Java SE 6からJava SE 7への移行 Exceptionをcatch節の中でRe-throwする際の言語仕様変更など軽微なもののみ 非互換の詳細については,以下の文章を参照 http://www.oracle.com/technetwork/java/javase/compatibility-417013.html Java SE 7からJava SE 8への移行 高いレベルで上位互換性がとられている クラスの構造などに,ある種の前提をおいているコードなどが動かないことも インターフェースは実装をもたない 同一のアノテーションが複数指定されることはない など 非互換の詳細については,以下の文章を参照 http://www.oracle.com/technetwork/jp/java/javase/overview/8-compatibilityguide-2156366-ja.html 14 © 2016 IBM Corporation Java EE仕様のマイグレーション(1) 基本的にJava EE 5以降アプリケーションであれば, Java EE仕様自体で上位互換が取られているため, WAS V9.0環境でも稼働する V9.0でサポートされているJava EE仕様については下記URLを参照 http://www.ibm.com/support/knowledgecenter/en/SSAW57_9.0.0/com.ibm. websphere.nd.multiplatform.doc /ae/rovr_specs.html WAS V9.0上ではJava EE 6/7仕様がサポートされており, Java EE 5のアプリケーションも稼働する J2EE 1.4/1.3/1.2のDD(デプロイメントディスクリプタ)を 持ったアプリケーションも,構成は成城に読み取られて稼働する 一部の仕様については,J2EE 1.3→1.4などで 動作変更になった部分があるために修正が必要なこともある 15 © 2016 IBM Corporation Java EE仕様のマイグレーション(2) Java EE 6 / 7の新機能を使用する場合には マイグレーションする 新仕様に対応した開発環境で, Java EE 6/7のアプリケーションとしてコンパイルする アプリケーションのコンパイル環境をあげた場合, メソッド追加などソースコードの修正が必要になるケースがある ユーザーが実装することを前提としたインターフェースは, 仕様のバージョンが上がってもほとんど変更されることはない コンテナが実装することを前提としたインターフェースは, 仕様のバージョンが上がると機能の追加がしばしば行われる 16 © 2016 IBM Corporation Java EE仕様のマイグレーション(3) Java EEで非推奨と指定された仕様については 可能な限り新しい仕様に変更する EJBのEntity Beanによる永続化 → JPAへ移行する JAX-RPCによるSOAP通信 → JAX-WSへ移行する JAX-R / Java EE Application Deployment → 使用しない(Java EE標準仕様では後継機能はない) JSF 1.2でWAS提供のSun Reference Implementation 1.2を 使用していた場合は,アプリケーション自身で実装を持つか, JSF 2.xへ移行する 17 © 2016 IBM Corporation マイグレーションに使用できるツール(1) WASの旧バージョンからの 移行を支援するツール 無償でダウンロードして使用することができる EclipseやRational Application Developerに 組み込んで使用 Rational Software Analyzerの技術を使用して Javaコード,JSP,デプロイメント記述子の調査 修正が必要な箇所をリストアップし 修正方法についてガイドを表示 Tomcat JBoss AS / EAP WebSphere Application Migration Tool WAS V7.0 V6.0 & 6.1 V5.1 Oracle AS WebLogic,JBoss,Oracle ASなどからの 移行を支援するツール 移行の負荷を大幅に削減 Oracle WLS Application Server Migration Toolkit Competive Application Migration Tool Application Migration Tool WebSphere Application Server V9.0, 8.5 https://www.ibm.com/developerworks/websphere/downloads/migtoolkit/ 18 © 2016 IBM Corporation マイグレーションに使用できるツール(2) Migration Toolkit for Application Binaries アプリケーションのバイナリ(EAR/WARファイル)を 直接調査して,使用しているAPIやクラスを検出する 移行が必要な仕様やクラスを簡便に調査できる WASdevからダウンロード可能 https://developer.ibm.com/wasdev/downloads/ 19 © 2016 IBM Corporation 実行環境の移行 20 © 2016 IBM Corporation 実行環境のマイグレーションの概要 システムトポロジー WAS 5.0以降では,管理概念は大きく変わってはいない WAS 7.0以降なら,基本的にはツールによる9.0への移行が可能 V6.0より前のバージョンからの移行では, HA機能への対応,プロファイルへの対応が必要 V6.1より前のバージョンからの移行では, 改良されたセキュリティ機能への対応が必要 パフォーマンス・パラメーター バージョン間で方式や意味が変わったものが多く, 再度のチューニングが必要 Javaヒープメモリサイズ・GC方式 各種タイムアウト時間 21 © 2016 IBM Corporation 異なるバージョンの共存 1つのCell内で V9.0, V8.5, V8.0, V7.0の ノードを混在することが可能 DMはより新しいバージョンで なければならない 旧ノードは異なるOSでも可能 V9 Deployment Manager V8 V9 NodeAgent NodeAgent V8 Application Server … V8 V9 Application Server Application Server V8 Node V8 Config Files 22 J2EE Apps (EARs) Config Files Java EE 6 Apps … V9 Application Server V9 Node Cell V7 Config Files Java EE 5 Apps © 2016 IBM Corporation WAS V7.0以降の環境からのマイグレーション ツールによるマイグレーションが可能 既存のV6,V7環境から構成情報を抜き出し,V8環境に取り込む 旧環境と同様の構成(スタンダード)にするか ポートを変更した構成(クローン)にするか選択が可能 クローンでは旧環境と共存も可能 スタンダードも旧環境は削除されていないので,切り戻すことも可能 Deployment Managerを含むトポロジーでの段階移行では使用が必須 導入されているアプリケーションを含めて移行するかどうかは 選択することが可能 23 © 2016 IBM Corporation WebSphere Application Server 24 © 2016 IBM Corporation
© Copyright 2024 ExpyDoc