Java Web Start王国の滅亡
情報処理王国史 外典第二十六巻

Java Web Start王国の滅亡

「動くものに触れるな」の信仰と、その終焉

Java Web Start e-Gov

あなたの会社のシステムにも、「触れてはいけない領域」がある。バージョンが古い、担当者がいない、変えたら何かが壊れる——そんな理由で、何年も手つかずになっているシステムが。

2001年に生まれた「Java Web Start」は、日本の電子政府・金融・医療を支える縁の下の力持ちだった。そして2018年、静かに、誰の責任でもなく、滅んだ。

これは「動くものに触れるな」という組織の本能が、技術の進化と衝突したときの記録だ。悪者はいない。それでも、全員が困った。

この記事について
本記事は実際の技術的・社会的背景に基づいたブラックコメディ仕立ての読み物です。引用・参照はすべて実在の文献・発言・報道に基づきますが、語り口はフィクション的表現を含みます。
CH.01

ワンクリックの奇跡が生まれた朝

2001年、Sun MicrosystemsがJava Web Startをリリース。「インストール不要・クリック一発」という革命的な配布思想が、日本の行政・金融システムの礎となる。

1.1 インストールという名の壁

2001年3月。Sun Microsystemsは「Java Web Start 1.0」を世に送り出した。

それまでのJavaアプリケーションは、利用者が自力でインストールする必要があった。ダウンロードして、展開して、設定して、起動する。技術者ならまだしも、一般の事務職員にとってはハードルが高い。

1.2 ワンクリック革命

Java Web Startはその問題を解決した。ブラウザ上のリンクをクリックするだけで、Javaアプリが自動的にダウンロード・起動・アップデートされる。サーバー側でソフトを更新すれば、利用者側は何もしなくてよい。

「インストール不要、クリック一発、常に最新版」。この思想は行政と金融にとって特に魅力的だった。

【用語解説】Java Web Start(ジャバ・ウェブ・スタート)
JNLP(Java Network Launch Protocol)と呼ばれる形式のファイルを使い、ブラウザのリンクをクリックするだけでJavaアプリが自動ダウンロード・起動される仕組み。Sun Microsystemsが開発し、Java SE 5(2004年)からJDK(Java開発環境)に標準搭載された。「一度書けばどこでも動く(Write Once, Run Anywhere)」を掲げたJavaの思想を、配布の面でも実現しようとした試みだった。

CH.02

王国の建設 ― 電子政府の礎として

e-Japan戦略のもと、電子政府の申請システムがJava Web Startを採用。証券・医療・大学にも広がり、「Java Web Start王国」が形成される。

2.1 電子政府の主力兵器として

2000年代初頭、日本政府は「電子政府」の実現に本腰を入れ始めていた。e-Japan戦略(2001年)のもと、行政手続きのオンライン化が国家的目標となった。

その電子申請システムの基盤として選ばれたのが、Java Web Startだった。

「電子政府の総合窓口」e-Govは、社会保険・労働・税務など数百種類の行政手続きをオンラインで申請できるシステムとして整備された。その申請ソフトはJava Web Startで動くJavaアプリケーションとして提供されていた。利用者はe-Govにアクセスし、リンクをクリックする。するとJavaアプリが起動し、申請書を作成・送信できる——理屈の上では、そういう仕組みだった。

2.2 民間への波及

民間でも、Java Web Startは急速に普及した。証券会社のホームトレーディングシステム(HTS)、医療機関の電子カルテ閲覧ソフト、大学の履修登録システム、工場の生産管理ツール。「インストール不要でブラウザから起動できるアプリ」という特性は、社内外に多様な業務システムを展開する企業にとって理想的だった。

こうして「Java Web Start王国」は、電子政府・金融・医療・教育にまたがる、気づけば巨大な王国を形成していた。

【用語解説】HTS(ホームトレーディングシステム)
個人投資家が自宅のPCから株式・投資信託などを売買するためのソフトウェア。証券会社が提供する。2000年代、多くの証券会社がJava Web StartベースのHTSを提供しており、利用者はリンクをクリックするだけで起動できた。板情報のリアルタイム更新など、Webブラウザだけでは難しい機能を実現するのにJavaが重宝された。

CH.03

Oracle帝国の買収、そして静かな宣告

2010年のOracle買収以後、Javaの商業化が進む。2017年Java SE 9で「非推奨」の烙印が押されるが、現場は動じなかった。「まだ動く」という魔法の言葉のもとで。

3.1 帝国の交代

2010年。Sun MicrosystemsはOracle(オラクル)に買収される。

Java技術の所有者が変わった。Oracleはライセンス体系の整理を始める。この変化は、Java Web Start王国に対してすぐに影響をもたらさなかった。しかし王国の命運は、すでに遠くで決まりつつあった。

3.2 非推奨という名の死刑宣告

2017年9月。Java SE 9がリリースされた。そのリリースノートの中に、ひっそりと一行が記されていた。

「Java Web Start:非推奨(Deprecated)」

「非推奨」とは「将来削除する予定があるので、今後は使わないでください」という意味だ。即座に使えなくなるわけではない。だがその意味するところは明確だった——次の長期サポート版では削除する。

3.3 組織の鉄則「まだ動く」

この宣告を受け取った多くのシステム管理者は、それでも動じなかった。

「非推奨になっても、まだ動く」「うちのシステムはJava 8で動いているから関係ない」。そう、まだ動いていた。動いているものに触れる必要はない。動いているものは正しい。これは組織の鉄則だった。

【用語解説】LTS(長期サポートバージョン)
ソフトウェアのバージョンのうち、長期間にわたってセキュリティパッチや更新が提供されるもの。JavaではJava 8(2014年)、Java 11(2018年)、Java 17(2021年)などがLTSにあたる。業務システムはLTSに乗り換えるのが一般的だが、「今動いているものを変えない」文化との相性は最悪だった。

CH.04

2018年、二重の終末宣告

Java SE 11でJava Web Startが完全削除。さらにJava 8の無償商用サポートも2019年1月で終了。「残るも地獄、移行も地獄」の二択が日本中を直撃し、政府が異例の技術レポートを公表する。

4.1 削除という執行

2018年は、Java Web Start王国にとって「終末の年」となった。

1つ目の宣告:Java Web Startの削除(2018年9月)

Java SE 11がリリースされた。これが次のLTSバージョンだった。そしてリリースノートには「Java Web Start:削除済み」と書かれていた。非推奨から、ついに削除へ。Java 9でアナウンスされた死は、Java 11で執行された。

2つ目の宣告:Java SE 8無償サポートの終了(2019年1月)

Oracleは、Java SE 8の無償の商用サポートを2019年1月で終了すると発表した。それ以降のセキュリティパッチを受け取るには、有償のサポート契約を結ぶ必要がある。

4.2 残るも地獄、移行も地獄

2つの宣告の組み合わせは残酷だった。

  • Java 8に留まり続ければ → Java Web Startは使える。しかしセキュリティパッチが有償になる
  • Java 11以降に移行すれば → 無償のJavaが使える。しかしJava Web Startは使えない

どちらを選んでも、コストか機能かを失う。「動くものに触れるな」の鉄則を守った者は、静かに詰んでいた。

4.3 政府が動いた

この状況を認識した日本政府は動いた。2018年5月15日、内閣官房情報通信技術(IT)総合戦略室は「Javaのサポートポリシー変更等に関する技術レポート」を公表した。Java SE 8の無償サポート終了がシステム全体に与える影響を整理し、各府省・自治体・関係機関に対応を促す異例の技術文書だった。

「Java SE 8については、2019年1月以降、オラクルによる一般向けの無償アップデートの提供が終了する予定です。これにより、政府が整備・利用しているシステムにおけるJavaの利用について、速やかに対応方針を検討し、必要な措置を講じることが求められます。」
— 内閣官房情報通信技術(IT)総合戦略室「Javaのサポートポリシー変更等に関する技術レポート」(2018年5月15日)より要約

CH.05

e-Gov、奔走す ― 2018年11月の大移行

電子政府の申請窓口e-Govが、Java依存から.NET Frameworkへ移行。「インストール不要」という最大の利点が消え、現場には混乱が広がった。

5.1 決断の日

政府の電子申請システム、e-Govはこの問題に正面から向き合った。

2018年11月21日、e-Govは電子申請システムの大規模なシステム移行を実施した。Javaに依存する方式から、Microsoft .NET Frameworkをベースとした「クライアントアプリケーション」方式へと全面的に切り替えた。Javaアプレットで動いていたブラウザ内の申請画面は廃止。代わりに、ブラウザとは独立したデスクトップアプリケーション(e-Gov電子申請アプリ)をインストールして使う形式に変わった。

5.2 失われた利点と現場の混乱

「インストール不要、ブラウザで完結」というJava Web Startの最大の利点は、ここで失われた。

利用者には事前に通知が行われ、移行作業は計画的に進められた。しかし現場では混乱が起きた。「突然ログインできなくなった」「操作方法が分からない」「社内のITガイドラインと手順が変わった」。電子申請を担当する社会保険労務士や企業の総務担当者から、問い合わせが相次いだ。

「Java Pluginの廃止対応に伴う電子申請システムの方式変更が、2018年11月21日に実施されます。Javaに依存していた方式から、.NET Framework(4.7.1以降)をプラットフォームとするクライアントアプリケーション方式へ移行します。」
— e-Gov「Java Pluginの廃止対応に伴うe-Gov電子申請の方式変更等について」(2018年)より要約

CH.06

OpenWebStartという名の脱出口

Oracleが公開しなかったJava Web Startのコードを、世界のエンジニアが再実装。OpenWebStartが生まれるが、「技術的に解決可能」と「組織として対応できる」の間には、深い溝があった。

6.1 コードは公開されなかった

JavaのコードはOpenJDKとして公開されていた。しかしOracleはJava Web Startのコードを公開しなかった。OpenJDKにJava Web Startは含まれていない。

それでも世界中のエンジニアが代替技術を探した。

6.2 互換実装の誕生

RedHatが中心となって立ち上げたオープンソースプロジェクト「IcedTea-Web(アイスティー・ウェブ)」は、Java Web Startの互換実装を提供した。そしてスイスのKarakun AG社が、IcedTea-Webをベースに「OpenWebStart」をリリースした。OpenWebStartはWindowsにもMacにもLinuxにも対応した、Java Web Startの後継オープンソース実装だ。

【用語解説】OpenWebStart(オープン・ウェブスタート)
Java Web Startの機能をオープンソースで再実装したソフトウェア。スイスのKarakun AG社が中心となって開発し、IcedTea-Webプロジェクトをベースにしている。Java 11以降の環境でも、従来のJNLPファイルを使ってJavaアプリケーションを起動できる。無償で利用可能。

6.3 技術解決と組織対応の溝

しかし、この脱出口を使いこなせたのは、Javaの内部を理解できるエンジニアだけだった。

「Java 11に移行したいが、Java Web Startで動いている社内システムがある」「ベンダーに問い合わせたら、システム改修に半年と数百万円かかると言われた」「そのシステムを担当していたSEはすでに退職している」。現実の業務システムは、技術的な解決策があったとしても、組織的・予算的・人的な制約の中に埋まっていた。

あなたの組織に、「担当者が退職していてブラックボックス化しているシステム」はないだろうか。Java Web Startの問題は、そういったシステムが持つリスクの典型例だ。「動いているから大丈夫」は、いつか「動かなくなってから大騒ぎ」に変わる。

CH.07

王国の年代記

2001年の誕生から2019年の事実上の終焉まで、Java Web Start王国の18年間を年代記で辿る。
2001年3月 Java Web Start 1.0、Sun Microsystemsよりリリース(J2SE 1.3対応の独立配布版として)
2004年 Java SE 5(J2SE 5.0)に標準搭載。JDKとともに配布される形式に統合
2006年 Java SE 6でさらに統合・安定化。電子政府・金融システムへの本格採用が進む
2010年 OracleがSun Microsystemsを買収。JavaがOracle製品へ。ライセンス管理の変化が始まる
2014年 Java SE 8(LTS)リリース。多くの業務システムが採用し、事実上の「王国標準バージョン」となる
2017年9月 Java SE 9リリース。Java Web Startが「非推奨(Deprecated)」に指定。王国に死の宣告が届く
2018年5月15日 内閣官房IT総合戦略室、「Javaのサポートポリシー変更等に関する技術レポート」を公表。政府が危機を正式に認知
2018年9月 Java SE 11(LTS)リリース。Java Web Startが完全削除。18年間の歴史に終止符
2018年11月21日 e-Gov電子申請、JavaからMicrosoft .NET Frameworkベースへ全面移行。現場に混乱が広がる
2019年1月 Oracle Java SE 8の商用無償サポート終了。有償か、移行か、放置か——企業の選択が迫られる
2019年4月 Oracle JDKの商用利用が有償化。Java依存システムのコスト問題が顕在化
2019年 OpenWebStart公開(IcedTea-Webベース)。技術者たちによる互換実装が世に出るが、普及は限定的

CH.08

誰も悪くなかった

Oracle、政府、利用者、現場企業——全員の判断は合理的だった。それでも全員が困った。「誰も悪くない調整問題」という日本のITの病理を読み解く。

8.1 4者の合理性

この物語に、悪者はいない。

Oracleは悪くない。 Java Web Startは、ブラウザのプラグイン技術が軒並みセキュリティリスクとして廃止されていく流れの中(Flash、Silverlight、Java Applet……)、時代の必然として消えた。セキュリティの観点から廃止を決めたことは合理的な判断だった。

e-Govの開発者も悪くない。 2001年当時、Java Web Startは電子政府の理想的な実装技術だった。普及していた、安定していた、誰もが使えた。その技術を採用したことに誤りはない。

利用者も悪くない。 「動くシステムは触るな」は、組織のリスク管理として正しい。更新するたびに動かなくなるリスクがあるなら、現状維持が合理的だ。

システムを今も使い続けている企業も悪くない。 更改予算がない、対応できる技術者がいない、後継システムの仕様が固まらない——どれも嘘ではない理由だ。

8.2 それでも全員が困っていた

しかし全員が、静かに困っていた。

これが「誰も悪くない調整問題」の本質だ。個々の判断は合理的でも、全体として機能不全が生じる構造。これはJava Web Startだけの話ではない。日本のITシステムが抱える「動かないのに動き続けているシステム群」の共通病理だ。

王国は誰かによって滅ぼされたのではない。使われ続けることで、静かに自壊した。

「動くものに触れるな」という判断は、個人として正しい。しかし組織全体では、「誰もアップデートを担当しないまま時代が進む」という結果をもたらす。技術の陳腐化は、悪意ではなく惰性によって起きる。あなたの組織の「次のJava Web Start」は、今この瞬間も静かに老朽化しているかもしれない。

一撃もなかった。

誰も攻めてこなかった。

ただ、時代が前に進んだだけだった。

王国の民は、それでもしばらくの間、動かないサーバーの前で
リンクをクリックし続けた。

―― 起動 タイムアウト

参考・引用資料
・ 内閣官房情報通信技術(IT)総合戦略室「Javaのサポートポリシー変更等に関する技術レポート」(2018年5月15日)https://cio.go.jp/sites/default/files/uploads/documents/technique_report_java.pdf
・ e-Gov「Java Pluginの廃止対応に伴うe-Gov電子申請の方式変更等について」(2018年)https://www.e-gov.go.jp/shinsei/interface_api/2018/20180518131246.html
・ e-Gov「Java SE 8無償サポート終了対応について」https://www.e-gov.go.jp/help/shinsei/java_se8_eopu/index.html
・ Oracle「JDKの新しいリリース・モデル、および提供ライセンスについて」https://www.oracle.com/jp/technical-resources/article/java/ja-topics/jdk-release-model.html
・ Oracle Blogs「Extension of Oracle Java SE 8 Public Updates and Java Web Start support」blogs.oracle.com/java/
・ Java Web Start – Wikipedia(英語版)https://en.wikipedia.org/wiki/Java_Web_Start
・ IcedTea – Wikipedia(英語版)https://en.wikipedia.org/wiki/IcedTea