Java Web Start王国の滅亡
「動くものに触れるな」の信仰と、その終焉
あなたの会社のシステムにも、「触れてはいけない領域」がある。バージョンが古い、担当者がいない、変えたら何かが壊れる——そんな理由で、何年も手つかずになっているシステムが。
2001年に生まれた「Java Web Start」は、日本の電子政府・金融・医療を支える縁の下の力持ちだった。そして2018年、静かに、誰の責任でもなく、滅んだ。
これは「動くものに触れるな」という組織の本能が、技術の進化と衝突したときの記録だ。悪者はいない。それでも、全員が困った。
本記事は実際の技術的・社会的背景に基づいたブラックコメディ仕立ての読み物です。引用・参照はすべて実在の文献・発言・報道に基づきますが、語り口はフィクション的表現を含みます。
ワンクリックの奇跡が生まれた朝
1.1 インストールという名の壁
2001年3月。Sun Microsystemsは「Java Web Start 1.0」を世に送り出した。
それまでのJavaアプリケーションは、利用者が自力でインストールする必要があった。ダウンロードして、展開して、設定して、起動する。技術者ならまだしも、一般の事務職員にとってはハードルが高い。
1.2 ワンクリック革命
Java Web Startはその問題を解決した。ブラウザ上のリンクをクリックするだけで、Javaアプリが自動的にダウンロード・起動・アップデートされる。サーバー側でソフトを更新すれば、利用者側は何もしなくてよい。
「インストール不要、クリック一発、常に最新版」。この思想は行政と金融にとって特に魅力的だった。
王国の建設 ― 電子政府の礎として
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王国」は、電子政府・金融・医療・教育にまたがる、気づけば巨大な王国を形成していた。
Oracle帝国の買収、そして静かな宣告
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で動いているから関係ない」。そう、まだ動いていた。動いているものに触れる必要はない。動いているものは正しい。これは組織の鉄則だった。
2018年、二重の終末宣告
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の無償サポート終了がシステム全体に与える影響を整理し、各府省・自治体・関係機関に対応を促す異例の技術文書だった。
e-Gov、奔走す ― 2018年11月の大移行
5.1 決断の日
政府の電子申請システム、e-Govはこの問題に正面から向き合った。
2018年11月21日、e-Govは電子申請システムの大規模なシステム移行を実施した。Javaに依存する方式から、Microsoft .NET Frameworkをベースとした「クライアントアプリケーション」方式へと全面的に切り替えた。Javaアプレットで動いていたブラウザ内の申請画面は廃止。代わりに、ブラウザとは独立したデスクトップアプリケーション(e-Gov電子申請アプリ)をインストールして使う形式に変わった。
5.2 失われた利点と現場の混乱
「インストール不要、ブラウザで完結」というJava Web Startの最大の利点は、ここで失われた。
利用者には事前に通知が行われ、移行作業は計画的に進められた。しかし現場では混乱が起きた。「突然ログインできなくなった」「操作方法が分からない」「社内のITガイドラインと手順が変わった」。電子申請を担当する社会保険労務士や企業の総務担当者から、問い合わせが相次いだ。
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の後継オープンソース実装だ。
6.3 技術解決と組織対応の溝
しかし、この脱出口を使いこなせたのは、Javaの内部を理解できるエンジニアだけだった。
「Java 11に移行したいが、Java Web Startで動いている社内システムがある」「ベンダーに問い合わせたら、システム改修に半年と数百万円かかると言われた」「そのシステムを担当していたSEはすでに退職している」。現実の業務システムは、技術的な解決策があったとしても、組織的・予算的・人的な制約の中に埋まっていた。
王国の年代記
誰も悪くなかった
8.1 4者の合理性
この物語に、悪者はいない。
Oracleは悪くない。 Java Web Startは、ブラウザのプラグイン技術が軒並みセキュリティリスクとして廃止されていく流れの中(Flash、Silverlight、Java Applet……)、時代の必然として消えた。セキュリティの観点から廃止を決めたことは合理的な判断だった。
e-Govの開発者も悪くない。 2001年当時、Java Web Startは電子政府の理想的な実装技術だった。普及していた、安定していた、誰もが使えた。その技術を採用したことに誤りはない。
利用者も悪くない。 「動くシステムは触るな」は、組織のリスク管理として正しい。更新するたびに動かなくなるリスクがあるなら、現状維持が合理的だ。
システムを今も使い続けている企業も悪くない。 更改予算がない、対応できる技術者がいない、後継システムの仕様が固まらない——どれも嘘ではない理由だ。
8.2 それでも全員が困っていた
しかし全員が、静かに困っていた。
これが「誰も悪くない調整問題」の本質だ。個々の判断は合理的でも、全体として機能不全が生じる構造。これはJava Web Startだけの話ではない。日本のITシステムが抱える「動かないのに動き続けているシステム群」の共通病理だ。
王国は誰かによって滅ぼされたのではない。使われ続けることで、静かに自壊した。
一撃もなかった。
誰も攻めてこなかった。
ただ、時代が前に進んだだけだった。
王国の民は、それでもしばらくの間、動かないサーバーの前で
リンクをクリックし続けた。
―― 起動 タイムアウト