8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WebSphere Liberty/Open Liberty:2025年一年の新機能まとめ

Last updated at Posted at 2025-12-15

OSSのJava EE / Jakarta EE / MicroProfileの実行ランタイムであるOpen Liberty,およびその製品版であるWebSphere Libertyは,4週間ごとに新しいFixpackが公開されバージョンが更新されます。ことしは,1月のv25.0.0.1から12月のv25.0.0.12までの12の新しいバージョンが公開されました。

この記事では,2025年に公開されたFixpackでの新機能をまとめてご紹介します。

Libertyは,継続的シングルストリームで提供されており,メジャーバージョンアップによるFixpackストリームの切り替えはありません。単一のバージョン・ストリームとしてFixpackが提供され続けます。機能追加についても数年の一度のメジャーバージョンアップでとかではなく,それぞれのFixpackごとに,新機能が随時リリースされます。

それでも,ゼロマイグレーション・ポリシーによって,Fixpack適用時のアプリケーションや構成ファイルのマイグレーションは,原則として不要となっています。

MoRE (Modernized Runtime Extension for Java)

こちらはOpen Libertyではなく,製品版のWebSphere Libertyのみの新機能となります。

今年のLibertyの一番大きな新機能がMoREです。こちらは,従来型のWebSphere Application Server Network Deploymetエディション(WAS ND)で提供されていたND Cellによる統合管理を拡張し,Java 17で稼働するWebSphere Libertyサーバーを,その管理下に組み込むことができるようになる機能です。

image.png

ND Cellでは,Cell全体を管理するDeployment Managerが稼働するDmgr Nodeが中心となり,複数の従来型WAS(tWAS)が稼働するNodeを統合管理しています。各Nodeには,Node Agentが稼働していて,Development Managerと連携しつつ,Node内のアプリケーションサーバープロセスを管理しています。

MoREのFeature Packを適用することで,Libertyを稼働させるMoRE Nodeを新たに作成することができ,そこでNode Agent配下でLibertyを稼働させることができるようになります。Libertyは,Deployment Managerを経由して,管理コンソールやwsadminスクリプトで管理をすることができるます(tWASはJava 8しか対応していません)。

これにより,どうしても従来型のWAS NDの統合管理の利用を継続する必要があるお客様にも,Java 17が必要なプログラム(Spring Framework 6.x以降など)を実行することが可能になります。

MoREの詳細な構成方法については,IBMサイトのDocumentを参照ください。

新仕様への対応

Java 24サポート (v25.0.0.4) / Java 25サポート (v25.0.0.10)

Libertyでは,新しいJava SE仕様への対応は,おおよそ新仕様の公開後の翌月のFixpackで行っています。

Java 25は,2年に一度のLTS(Long Term Support)バージョンなので,広くバージョンの一つになるでしょう。

またLibertyでは10月に,Java 8対応を2026年のv26.0.0.9までとしていたものを,2028年のV28.0.0.12までの対応に延長しました。

現在,Java 8でLibertyをご利用いただいている方にとっては,移行の期限にさらに余裕ができましたが,LibertyやSemeru以外のJava技術でもJava 8対応の終了が続いていますので,着実な移行計画の推進をお願いします(たとえば,Libertyでも広く使われているビルドツールMavenでは,Maven 3.9.xまではJava 8での実行をサポートしていますが,次期のMaven 4.0ではJava 17移行が必要です)。

MicroProfile 7.1対応 (v25.0.0.8)

MicroProfile 7.1 は,2025年4月に公開された小規模なアップデートであり,二つの仕様のマイナーバージョンが更新されました。

Libertyでは,8月に公開されたv25.0.0.8より,MicroProfile 7.1に対応しています。

APIの機能強化

MicroProfile Telemetry 2.0で収集できる情報の強化 (v25.0.0.4/v25.0.0.5)

MicroProfile Telemetry 2.0は,OpenTelemetry標準に準拠したかたちで,分散トレースやメトリック,ログを取得できるようにする仕様です。

4月のv25.0.0.4では,Libertyが提要する情報ソースとして,Libertyの監査イベントを含めることができるようになりました。

利用するには,MicroProfile TelemetryとあわせてAuditフィーチャーを有効にします。これにより,sourceとしてauditが利用できるようになります。

server.xml
<featureManager>
   <feature>audit-2.0</feature>
   <feature>mpTelemetry-2.0</feature>
</featureManager>

<mpTelemetry source="audit"/>

また,5月のv25.0.0.5では,アクセスログについても送信できるようになりました。

server.xml
<featureManager>
    <feature>mpTelemetry-2.0</feature>
</featureManager>

<httpAccessLogging id="accessLogging"
    logFormat='%h %u %{t}W "%r" %s %b %D %{R}W'/>
<httpEndpoint id="defaultHttpEndpoint"
    httpPort="9080" httpsPort="9443"
    accessLoggingRef="accessLogging" />

<mpTelemetry accessLogFields="logFormat" source="accessLog"/>

詳細な構成方法などについては,OpenLiberty.ioの4月のBlog日本語)を参照してください。

MicroProfile Health 4.0のJava EEとの共存 (v25.0.0.6)

MicroProfile Healthは,アプリケーションが他のプログラム,たとえばOpenShiftやKubernetesなどのプラットフォームからの生存確認リクエストに対して,適切な応答を返すための仕様です。

最新のFeatureである,MicroProfile Health
4.0
mpHealth-4.0)は,Jakarta EEの名前空間(jakarta)に対応したバージョンであり,Java EEの名前空間(javax)である,Java EE 7/8のFeatureとは共存できませんでした。そのため,Java EEのアプリケーションからMicroProfile Healthを利用するためには,古いバージョンであるMicroProfile Health 3.1mpHealth-3.1)以前と組み合わせる必要がありました。

6月のv25.0.0.6から,mpHealth-4.0がJava EEのAPIと組合わせて利用することができるようになりました。Java EE 7/8のアプリケーションからも,最新の機能が利用できるようになります。

MicroProfile Healthの詳細な構成方法などについては,OpenLiberty.ioの6月のBlog日本語)などを参照してください。

コンテナ対応の強化

InstantOn対応Featureの追加(v25.0.0.1/v25.0.0.4)

Liberty InstantOnは,コンテナ環境でLibertyの起動を高速化する機能です。LinuxカーネルのCheckpoint/Restore In Userspace(CRIU)機能を使用して,起動済みのLibertyプロセスの状態をコンテナイメージ内のファイルに保存(Checkpoint)し,ファイルからプロセスを復帰(Restore)することで数十〜数百ミリ秒でのサーバーの起動を可能にします。Nativeアプリケーションにコンパイルする高速起動技術と異なり,InstantOnはJavaの全機能を利用できるという大きなメリットがあります。

InstantOnは,2023年の6月に正式版となり,現在icr.ioで公開されているOpen Libery/WebSpehre Libertyのオフィシャルイメージで利用が可能になっています。

1月のv25.0.0.1では,以下のFeatureがInstantOn環境で利用可能になりました。

4月のv25.0.0.4では,以下のFeatureが追加されています。

現在のInstantOn対応Featureの一覧は,こちらを参照ください。

サーバー構成

Webモジュール・クラスローダーの設定の追加 (v25.0.0.1)

EARにふくまれるWARファイルで,マニフェストClass-Path属性で指定されたJARファイルが,どのクラスローダーから読み込まれるかを構成することができるようになりました。

従来はWARのクラスローダーからロードされていましたが,他のアプリケーションサーバーからの移植性を高めるため,EARのクラスローダーからロードすることができるようになっています。

server.xml
<enterpriseApplication location="myApp.ear" 
    webModuleClassPathLoader="ear" />

<path>要素によるライブラリの構成 (v25.0.0.3)

Libertyで利用するJavaのライブラリを構成するには,<file>要素でJARファイルを指定するか,<folder>要素でJARが格納されたディレクトリを指定する必要がありました。

server.xml
    <library id="someLib">
       <!-- path to a jar -->
       <file name="libs/lib1.jar"/>
       <!-- path to a folder -->
       <folder dir="libs/lib2folder"/>
    </library>

これらを自動判定して,ファイルでもディレクトリでも指定できる<path>要素が追加されました。

server.xml
    <library id="someLib">
       <!-- path to a jar -->
       <path name="libs/lib1.jar"/>
       <!-- path to a folder -->
       <path name="libs/lib2folder"/>
    </library>

アプリケーション・クラスローダーのOverride (v25.0.0.10)

EARやWARなどのアプリケーションに含まれるクラスを,上書きする設定が可能になりました。

アプリケーションの追加設定で行われる<classloader>要素で,overrideLibraryRef属性の指定が可能になっています。この属性で指定されたライブラリの中のクラスは,アプリケーション内のクラスよりも優先して検索されるため,その内容を上書きすることが可能です。

アプリケーションを再構築することなく,緊急でクラスを入れ替える必要がある場合などに使用できます。

server.xml
<webApplication location="appThatNeedsFix.war">
    <classloader overrideLibraryRef="someImplFix"/>
</webApplication>

<library id="someImplFix">
     <path name="someImplFix.jar"/>
</library>

セキュリティ

FIPS 140-3対応 (v25.0.0.3/v25.0.0.12)

FIPS 140(Federal Information Processing Standard 140-3)とは,米国国立標準技術研究所(NIST)が策定した暗号モジュール(暗号化・復号を行うハードウェア・ソフトウェア部品)のセキュリティ要件に関する国際的な標準規格です。FIPS 140-3は,その最新版です。

Libertyは,v25.0.0.3でIBM Java 8との組み合わせで,v25.0.0.12ではさらにSemeru Runtimesの11.0.29, 17.0.17, 21.0.9, 25.0.1以降との組み合わせで,FIPS 140-3対応が可能になりました。

具体的なFIPS有効化の手順などについては,2025年12月のOpenLiberty.ioのブログを参照してください。

AES-256パスワードのサポート(v25.0.0.2/25.0.0.12)

Libertyの構成ファイルなどに記述するパスワードについては,XOR処理による難読化,AES 128bitによる暗号化がサポートされていました。

v25.0.0.2から,AES 256bitによる暗号化がサポートされました。securityUtility--encoding=aesを指定してパスワードをエンコーディングしたときの処理が256bitで行われます。互換性のためAES 128bitの対応も継続しており,--encoding=aes-128を指定すると,128bitで処理が行われます。

$ securityUtility encode --encoding=aes --key=myAESkey "superAES256password"

このコマンドで作成された文字列をLibertyでパスワードとして使用する際には,--keyで指定した文字列をWLP_PASSWORD_ENCRYPTION_KEY環境変数に設定するなどします。

このkeyに指定された文字列から,実際の暗号化処理に使用するAES鍵を生成するには,重い負荷のかかる処理を実行する必要があります。v25.0.0.12からは,この処理を事前に済ませ,Liberty起動時の負荷を軽減することができるようになりました。

$ securityUtility generateAESKey --key=myAESkey

で生成される文字列を,WLP_AES_ENCRYPTION_KEY環境変数に指定するなどします。

JWT BuilderでのECDH-ESのサポート (v25.0.0.9)

JSON Web Token 1.0jwt-1.0)Featureが拡張され,jwtBuilder の鍵管理アルゴリズムとして ECDH-ES(楕円曲線Diffie-Hellman鍵管理)をサポートするようになりました。

詳細については,2025年9月のOpenLiberty.ioのBlog日本語)を参照してください。

2025年のまとめ

2025年にかけては,MoREの開発に多くの開発リソースが投入されたため,その他の新機能は若干少なめです。ですが来年にかけては,また多くの更新がLibertyに対して行われる予定です。

これからも,Open Liberty/WebSphere Libertyは,従来のアプリケーションの継続利用も,新機能を活用したアプリケーションの開発も両立されつつ,発展を継続していく予定です。ご期待ください。

8
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?