オラクル社のJavaサポートポリシー変更に対して (ご報告)

「Nexaweb Platform」 ご利用の皆さま

初版:2018年6月22日
改版:2018年9月3日
日本ネクサウェブ株式会社

オラクル社のJavaサポートポリシー変更に対して(ご報告)

弊社製品「Nexaweb Platform」をご愛顧いただき、ありがとうございます。
オラクル社のJavaサポートポリシー変更による影響に関して、「Nexaweb Platform」での対応についてご報告します。本ご報告は開発元である米国Nexaweb Inc.と連携しています。なお、弊社別製品である「nexacro platform」へのポリシー変更の影響はありません。

改版として「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.本資料に対するお問い合わせ

本資料に対するお問い合わせは、右記お問い合わせフォームにて文面の冒頭に
「オラクル社のJavaサポートポリシー変更について」とお書きください。

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

すべて英語版となります。日本語版ガイドページは2018年9月10日公開を予定しています。

 



Page Top