オラクル社のJavaサポートポリシー変更に対して (ご報告)
「Nexaweb Platform」 ご利用の皆さま
初版:2018年6月22日
改版:2018年9月3日
改版:2018年9月10日
日本ネクサウェブ株式会社
オラクル社のJavaサポートポリシー変更に対して(ご報告)
弊社製品「Nexaweb Platform」をご愛顧いただき、ありがとうございます。
オラクル社のJavaサポートポリシー変更による影響に関して、「Nexaweb Platform」での対応についてご報告します。本ご報告は開発元である米国Nexaweb Inc.と連携しています。なお、弊社別製品である「nexacro platform」は”Javascript”技術がベースであり、”Java”技術は利用しておりません。よって、ポリシー変更の影響はありません。
改版として「Java Web Startを代替する機能」を公開いたしました。詳細は文末をご覧ください。
記
1.「Nexaweb Platform」動作と、関係するオラクル社およびJavaの状況
(1)Nexaweb Platformの動作
弊社製品である「Nexaweb Platform(以降:Nexaweb)」を基盤としたアプリケーションは、Webブラウザ上で動作するJavaアプレットです。そのため、アプリケーション実行にはWebブラウザでのプラグインのサポートと、Oracleが提供するJavaプラグインが必要です。
(2)ブラウザベンダーの状況とオラクル社の対応
主要なWebブラウザベンダーは、標準ベースのプラグインサポートを取り除いたか、あるいは取り除くタイムラインを既に発表しているため、Javaのプラグインに影響を与えています。
結果、OracleはJava Standard Edition Development Kit 9でJavaブラウザ・プラグインを非推奨にし、Java 9でのJava Web Startのようなプラグイン・フリー技術への移行を推奨しました。
この発表を受け、日本ネクサウェブでは、NexawebアプリケーションをJava Web Startへ移行するガイドライン及び移行をスムーズに遂行していただくための、製品への機能追加を行いました。
しかし、オラクル社が「Oracle Java SEサポート・ロードマップ」を公開し、推奨していたJava Web Startによる解決策がロードマップから消滅しました。
【参考】
Oracle Java SE Support Roadmap(英語)
http://www.oracle.com/technetwork/java/javase/eol-135779.html
Oracle Java SEサポート・ロードマップ(日本語)
http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
【骨子】
ⅰ.Java Web Startテクノロジーは、Java 9以上のバージョンではサポートされません。
ⅱ.Java 9から Windows OS 向けの32bit Client JVMはサポートされません。
https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-7744EF96-5899-4FB2-B34E-86D49B2E89B6
ⅲ.JDKリリース・モデルを変更し、2年ごとにメジャー・バージョンを提供するのではなく、6ヶ月ごとに機能リリースを、3年ごとに「長期サポート(Long Term Support)」(LTS)を提供する予定です。
一連のオラクル社の方針変更の結果、Java 9以降のバージョンではJava Web Startテクノロジーを用いたJavaアプリケーションの起動手段は失われ、32bit版 Windows OS環境下でのJava実行環境は提供されなくなりました。
また、リリースモデルが変更されたことにより、Java 11以降のバージョンではオラクル社によって無償提供されるJavaは無くなりました。厳密には、以下のように変更されます。
- オラクル社によって無償提供される Javaが無くなるわけではなく、Java 10 まで無償提供されていた Oracle JDK のバイナリは無償提供されなくなります。
- Java 11 以降にオラクル社から提供されるのは、 Open JDK をオラクル社がビルドしたバイナリが提供されます。これは厳密にはOracle JDKのバイナリと同じではありません。
- Java 11 以降のOracle JDK のバイナリは、有償サポート契約を締結している顧客にのみ提供される予定です。
2.Nexawebに対する日本ネクサウェブのサポート方針
(1)サポート方針
オラクル社の方針を受け、継続してNexawebアプリケーションを稼働し続ける事が可能なように、以下の新しいサポートを提供します。
【Nexawebアプリケーション実行の選択肢】
ⅰ.Java 8以前(Java 8 を含む)を使用する方法(Java Applet/Java Web Start/Java Application)
オラクル社のサポートの有無にかかわらず、Nexawebアプリケーションは過去のJava上で動作することをサポートします。
※Java要因で技術的に解決できない問題を除き、サポート期間の切れたJava上でもNexawebアプリケーションの動作をサポートします。
ⅱ.Nexawebをデスクトップアプリケーション(Java Application)として実行する方法
ⅲ.Java Web Startを代替する方法
Java 11以上のバージョンでNexawebアプリケーションを使用する方法として、Java Web Startによる起動方法に変わる新しい起動方式を提供します。
a.アプリケーションの展開
アプリケーションの展開にはGetdown(https://github.com/threerings/getdown)ベースの配備機能を使用して、JNLPのようにNexawebアプリケーションをアップグレード
して起動する手段を提供します。
これは、Java Web StartのJNLPファイルの設定によるアプリケーションファイルのダウンロードとコンフィグレーションを代替する手段です。
b. Webランチャー
ユーザーがハイパーリンク(JSPまたはサーブレット)をクリックすると、関連するファイルによってアプリケーションが起動し、Getdownを開始して、Nexawebアプリケーションを起動させる手段を提供します。
これは、Java Web StartによるJNLPファイルへのハイパーリンククリック時の振る舞いを代替する手段です。
Nexawebはこれらを代替するために、新しく「a. アプリケーションの展開」と「b. Webランチャー」機能のクライアントマシンへのインストーラを提供する予定です。
インストーラは、Windows 実行ファイル(.exe)をインストールし、ファイルを関連付けます。
一方サーバー側では、Java Web Startと同様にNexawebImages.jarとNexaweb StandaloneClient.jarをWebContentディレクトリに追加する必要があります。また、Getdownの為のコンフィグレーションファイルが必要な場合もあります。
この代替手段は、以下のようなシーケンスによってNexawebアプリケーションをハイパーリンクから起動する方法になる予定です。
図:シーケンス
現在、「ⅲ. Java Web Startを代替する方法」についての機能開発を行っており、インストーラとドキュメント(英語版)は2018年9月3日(日本時間)までに提供可能となる予定です。
(2)サポートでの制約・注意事項
「(1)- ⅲ. Java Web Startを代替する方法」には現状以下の制約・注意事項があります。
A.) インストーラによる事前インストールが必要になります。
OSに対してインストール権限が必要になります。
クライアント側のJRE(JDK含む)のインストールおよび、JRE(orJDK)のバージョンアップ時にはアップグレードが必要になります。
B.) 新規拡張子の関連付けがインストーラによって行われます。
C.) JWS利用時と同様の既知の問題/制約事項があります。
https://nexaweb.jira.com/wiki/spaces/DevCenterJp/pages/103251974/Applet+Web+Start
D.) ブラウザーセッション情報(Cookieによる)を継承できない通信が発生する可能性があります。
具体的には、Getdown による JAR ファイル群のダウンロード時ですが、これはJava Web Start時でも同様です。
なお、Nexaweb Client から発生するリクエストは、 Nexaweb Platform 4.5.65 以上を使用する場合、 StandaloneClient に追加導入された Cookie 継承機能によって継承可能です。
3.Nexaweb Java(JDK)サポートポリシー
(1)対象JDK
従来通り、オラクル社のJDKはサポート対象です。ただし、Java 11以降はオラクル社から提供されるJDKは長期リリース(LTS)のみとなります。
NexawebではOracle JDK でカバーされない範囲をサポートするために、Oracle JDK(LTS)に加え、以下のJDKもサポート対象とします。
- AdoptOpenJDK(LTS)
https://adoptopenjdk.net/
AdoptOpenJDKは無償のLTSサポートを提供するJDKです。 - ZuluEnterprise(LTS)
https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-enterprise-java-support-options/
Open JDKの認定ビルドと商用サポートを提供するJDKです。64bit版に加え32bit版のビルドも提供されています。 - Open JDK(Oracle JDK のLTS対象バージョン)
現在、LTSは提供されていません。
(2)nonLTS版サポートについて
各JDKが提供するnonLTS版のサポートについて、現時点では以下の観点からサポート対象に含めません。
ⅰ.メジャーアップデートであること
nonLTS版は、セキュリティパッチ等のパッチや軽微な追加・変更を含むマイナーアップデートでは無く、機能追加や機能変更、機能削除などが行われるメジャーアップデートになります。
このため、Java 8内でのアップデートリリース(8u70 -> 8u121 など)とは大きく異なるため、Nexaweb製品だけでなく、ユーザーコーディングにも影響を及ぼすアップデートになる可能性があります。
ⅱ.サポート期間が短期間であること
nonLTS自体のサポート期間が、現在のリリース・モデルでは最長でも6ヶ月になります。
製品及びユーザーコーディングの検証を行い、必要に応じて対応を行った場合であってもJDK自体のサポートが最長6ヶ月で終了するため、サポートされたJDKを使用するためには6ヶ月サイクルでnonLTS版によるメジャーアップデートを繰り返すか、サポートが切れた状態で使用し続ける必要があります。
ⅲ.機能削除が行われる可能性があること
「ⅰ. メジャーアップデートであること」で記載のように、nonLTS版によるアップデートはメジャーアップデートに該当し、機能追加や機能変更、機能削除が行われます。
既に、 Java 9から Java 10のnonLTS アップデートによって削除されている機能があります。
機能削除が行われた場合、Nexawebに影響が生じる可能性があり、Nexawebでの対応版を提供してもJDK自体のサポート期間が残らない可能性があります。
特にNexawebでは、過去バージョンのJavaでも動作する(JVM 1.2 以上が最低要求)ことを保証するため、製品自体で使用しているJava APIのバージョンとして、1.2までのバージョンを使用し製品を構築しています。
この中には、現在のバージョンではDeprecated(非推奨)となっている機能も一部含まれています。これは、製品コンセプトとして古い環境下(MS JVM)での製品動作も保証するためです。
なお、過去のJava ではDeprecated機能を積極的には削除しておらず、削除する場合もメジャーアップデートに限定されていました。
nonLTS版はメジャーアップデートに該当するため、Deprecated機能が削除される可能性があり、削除された結果Nexawebに影響が生じた場合、Nexaweb側での対応に時間を要することが考えられJDKのサポート期間をさらに圧迫する可能性があります。
4.本資料に対するお問い合わせ
5.おわりに
日本ネクサウェブでは、動作環境であるJavaに対するオラクル社の変更が「Nexaweb Platform」をご利用の皆さまに対し、極力大きな影響を与えないよう考慮しサポートいたします。なお、本件に関わる情報は逐次公開いたします。
以上
改版情報
文書中の「2-(1)サポート方針 【Nexawebアプリケーション実行の選択肢】-ⅲ 『Java Web Startを代替する方法』」
を公開いたします。以下のリンクよりダウンロードできます。
■ダウンロードページ
https://nexaweb.jira.com/wiki/spaces/DevCenter/pages/22511759/Download
■ガイドページ(英語版)
https://nexaweb.jira.com/wiki/spaces/DevCenter/pages/339836929/Migration+to+Nexaweb+launcher
■ガイドページ(日本語版)
https://nexaweb.jira.com/wiki/spaces/DevCenterJp/pages/347766785/Nexaweb+Launcher