WebSphere Application Server Traditional と Liberty の今とこれから

# はじめに
今年 1年活動してみて、まだまだ知られていないなーと思ったので、この機会にいま一度まとめてみたいと思います。
以下の内容は執筆日現在の最新の情報に基づいています。

# WebSphere Application Server Traditional
WebSphere Application Server Traditional (以後 tWAS) は 1998 年の年末に、日本での最初のバージョンとなる V1.1 を発表しました。以来 26年にわたり、様々なお客様のさまざまな業務を支えてきました。
みなさまもふだんよく使っている、あの Web サイトやあのアプリの裏側には tWAS がいるかもしれません。
この記事の執筆日現在、tWAS は V9.0.5 と V8.5.5 で IBM SDK, Java Technology Edition の V8 を使用している場合において、少なくとも 2030年までの標準サポートが表明されており、それ以降については決定していない、とされています。
詳しくは [少なくとも 2030 年までの標準サポートに関する記述の修正: IBMWebSphere Application Server V8.5.5、IBMWebSphere Application Server V9.0.5、IBMWebSphere Application Server for z/OS V8.5.5、および IBMWebSphere Application Server for z/OS V9.0.5](https://www.ibm.com/docs/ja/announcements/statement-service-websphere-application-server-v855-v905) をご参照下さい。

## tWAS が対応する Java SE / Java EE の最新バージョン
tWAS 9.0.5 は Java SE 8, Java EE 7 に対応しています。
tWAS 8.5.5 は Java SE 8, Java EE 6 に対応しています。
いずれも、これ以降のバージョンに対応する予定はありません。
Java SE 8 は 2014 年 (OpenJDK での General Availability (GA))、Java EE 7 は 2013年 (JSR 342 の Final Release) のリリースです。
一方、執筆日現在の Java SE の最新は 23 (LTS としては 21)、Java EE は Jakarta EE に移行して最新が 10 です。
この間、各仕様にはたくさんの新機能が追加されています。

# WebSphere Application Server Liberty / Open Liberty
WebSphere Application Server Liberty (以後 WAS Liberty) はクラウドネイティブな全く新しいランタイムとして、2012 年に誕生しました。当時は tWAS を「(WAS) Full プロファイル」と呼んでいたのに対し、この新しいランタイムを「Liberty プロファイル」と呼んでいました。
この記事の執筆日現在で最新の WAS Liberty 24.0.0.12 では、Java SE 21 (LTS の最新)、Jakarta EE 10 の最新スペックに対応していることはもちろん、MicroProfile 7 など、今後も最新の関連仕様に迅速に対応していきます。
WAS Liberty の基本的な知識につきましては、いろいろ公開されている中から直近のものとしまして以下を紹介します。
[日本WebSphereユーザーグループ: 20240604「Liberty Dojo：いまからでも遅くない！LibertyでエンタープライズJavaのモダナイズ」セミナー](https://community.ibm.com/community/user/wasdevops/viewdocument/20240604liberty-dojo-2024-1?CommunityKey=d6c93aa2-6e10-48da-96dc-3831da8ee185&tab=librarydocuments)
[日本WebSphereユーザーグループ: 20240618「Liberty Dojo 2024：Libertyの基本的な構成方法」セミナー](https://community.ibm.com/community/user/wasdevops/viewdocument/20240618liberty-dojo-2024-2?CommunityKey=d6c93aa2-6e10-48da-96dc-3831da8ee185&tab=librarydocuments)

## Open Liberty とは
[Open Liberty](https://openliberty.io) とは WAS Liberty の基になっているオープンソース・プロジェクトです。Open Liberty は開発・テストから本番環境まで無償で使用することができます。
Open Liberty の成果物を基に、IBM のライセンスとサポートをセットにした製品が WAS Liberty となります。また、Open Liberty に IBM のサポートを有償で追加することも可能になっています。
WAS Liberty と Open Liberty のバージョン番号は完全に一致しており、双方で利用可能な機能 (フィーチャー) を使用している限り、同じバージョンであればどちらでも同じアプリケーション、同じ構成ファイルで同じ動作を得ることができます。
WAS Liberty と Open Liberty では提供されているフィーチャーが一部異なります。詳しくは[こちら](https://www.ibm.com/docs/ja/was-liberty/base?topic=management-liberty-features)をご参照下さい。

# tWAS から WAS Liberty への移行
冒頭で「この記事の執筆日現在、tWAS は V9.0.5 と V8.5.5 で IBM SDK, Java Technology Edition の V8 を使用している場合において、少なくとも 2030年までの標準サポートが表明されており、それ以降については決定していない」ことをご紹介しました。
言い換えると、最短で 2030年で標準サポートが終了する可能性があることになります。このため、近年は tWAS をご利用の方々に WAS Liberty への移行をお勧めしています。

## tWAS から WAS Liberty への移行ツール
### Transformation Advisor
Transformation Advisor (以後 TA) は tWAS を含む Java EE サーバー環境をスキャンし、WAS Liberty  (など) への移行に必要な対応やアプリケーションの分析結果、Liberty への移行やコンテナ化の際に使用する構成ファイルのテンプレートを生成してくれるツールです。
TA の本体は [3種類の導入オプション](https://www.ibm.com/docs/ja/cta?topic=started-deployment-options)があり、いずれの場合も 90日間の試用が可能です。
以前は TA 本体とは別に分析対象の Java EE サーバー環境に Data Collector ツールをインストールしてスキャンを実行する必要がありましたが、[tWAS 9.0.5.14 以降及び 8.5.5.23 以降では wsadmin のコマンドでスキャンが可能になりました](https://community.ibm.com/community/user/wasdevops/blogs/ralph-sanders/2022/11/28/generating-a-transformation-advisor-data-collectio)。
TA のドキュメントは[こちら](https://www.ibm.com/docs/ja/cta)、内容が少し古いですが解説が[こちら](https://community.ibm.com/community/user/wasdevops/viewdocument/transformation-advisor?CommunityKey=d6c93aa2-6e10-48da-96dc-3831da8ee185&tab=librarydocuments)にあります。

### Migration Toolkit for Application Binaries (Binary Scanner)
Migration Toolkit for Application Binaries (以後 Binary Scanner) は、tWAS (など) から Liberty への*アプリケーション*の移行に特化した分析ツールです。
Binary Scanner は [Java SE 7 以降が導入された環境であれば動作します](https://www.ibm.com/docs/ja/wamt?topic=binaries-installing-migration-toolkit-application)。入手は[こちら](https://www.ibm.com/support/pages/migration-toolkit-application-binaries)から可能です。
使用方法は Binary Scanner 導入後、
``` 
java -jar binaryAppScanner.jar --help --all
```
とすると詳細なオプションの一覧が表示されます。
ドキュメントは[こちら](https://www.ibm.com/docs/ja/wamt?topic=migration-toolkit-application-binaries)です。

よくいただくお問い合わせとしまして「tWAS から Liberty へ移行するに際して、同時に Java SE 8 から Java SE 21 へ移行するに際して、変更点 / 要対応点の一覧を作成してアプリケーション開発者に提示したい」というものがあります。
不可能ではないかもしれませんが、API 仕様の変更をすべて理解して把握してもれなく一覧化することは相当に困難な作業と思います。
すべての変更点 / 要対応点の検出を保証するものではありませんが、Binary Scanner を使用する方がだいぶん楽ができるはず、と考えています。

# おわりに
WAS Liberty そのものについては[日本WebSphereユーザーグループ Webサイトのライブラリ](https://community.ibm.com/community/user/wasdevops/communities/community-home/all-news?communitykey=d6c93aa2-6e10-48da-96dc-3831da8ee185&LibraryFolderKey=&DefaultView=)にいろいろあるのをはじめ、多くの資料が公開されていますのでそれらをたぐって知識を深めるとよいと思います。
アプリケーションの移行については上で書きました Binary Scanner で、まずは現行アプリケーションの分析をしてみるのがお勧めです。

# 参考
上でご紹介したツールを含め、WAS Liberty への移行についてよくまとまっているページを紹介します。
[WebSphere Migration Knowledge Collection: Migrating to Liberty](https://www.ibm.com/support/pages/websphere-migration-knowledge-collection-migrating-liberty)