IBM Developer Japan Webサイトは2021年3月15日をもって終了となり、日本語コンテンツの一部は、オープンソースとして、提供予定です。 URLはこちら

WebSphere Liberty をオープン化

2017年9月19日、ついに WebSphere Liberty のオープンソース化 が発表されました。6年前に開発が始まった実績ある製品版 WebSphere Liberty のコードベースの中核が GitHub のオープンソース・プロジェクトとして提供されることになります。

また Open Liberty だけでなく、IBM J9 VM についてもコードベースの中核が Eclipse Open J9 として Eclipse Foundation に寄贈されオープンソース化されました。 Open Liberty と Eclipse Open J9 を組み合わせることで完全にオープンな Java スタックをご利用いただけます。

この記事では前編にて Open Liberty の概要、後編にて Open Liberty を Eclipse Open J9 と 組み合わせてサンプル・アプリケーションを実際に動かす手順をご紹介いたします。

1

Open Liberty とは

Open Liberty は Java のマイクロサービス、クラウド・ネイティブ・アプリケーションを構築・実行するのに理想的な軽量オープンソースの Java EE アプリケーション・サーバー・ランタイムです。製品版 WebSphere Liberty の特徴を受け継ぎ、以下のような特徴を持っています。

  • モジュール化されているため,必要な機能だけをメモリにロードできるようになっており軽量・高速であること。
  • デフォルトベースの構成を採用しており,構成が簡潔にできること。
  • 環境に依存しない構成が容易にできること。
  • 既存の環境をパッケージして他の環境に導入する機能が標準で含まれていること。

IBM はオープンスタンダード、オープンイノベーション、オープンソースに基づいて多くのユーザーが利用できるソフトウェア・ポートフォリオを作り上げるコミットメントをしています。Open Liberty は、IBM によるオープンソース・プロジェクトから製品版 WebSphere Liberty のサブセットとして、GitHub 上で提供されています。つまり WebSphere のポートフォリオを開発者が簡単に利用できるようにするという IBM のコミットメントを反映していると言えます。

2

製品版 WebSphere Liberty との違い

Open Liberty と製品版 WebSphere Liberty は、コードベースは同一ですが、提供形態、サポート、利用できるフィーチャーには違いがあるため、両者を比較しながら Open Liberty の特徴、注意点を述べていきます。

2a

提供形態

製品版は従来通り、IBM 経由で入手可能です。なお新規のお客様の場合、組織全体で Java ヒープ・サイズが 2GB までの使用範囲であれば本番環境も無償でご利用頂けます。開発環境向けには無償かつ上記の制限はなくご利用可能で、いずれも WASdev.net から入手頂けます。また製品版には IBM JDK も合わせて入手可能です。

Open Liberty は OpenLiberty.io から自由にダウンロード可能ですので、ダウンロードして unzip するだけで使えるようになります。また Docker Hub からは Docker イメージも提供していますので、Docker 環境があればイメージを pull して、run コマンドを実行するだけで使えるようになります。 例えばお手元の Mac / Windows PC などで Eclipse と Open Liberty を入れて開発・テストを実施し、結合テストでは Docker ベースの DevOps 環境で Docker イメージを利用する、などのユースケースが考えられます。

一方、JDK については、Open Liberty では IBM JDK が付随していません。IBM が 2017/11/6 時点無償で公開している JDK は Java 8 までのため、Java 9 をご利用されたい場合は別途 JDK の入手が必要です。 イントロダクションで述べたように IBM は Eclipse Open J9 を寄与しているため、そちらと組み合わせてご利用いただくことも、HotSpot VM をベースとした Open JDK をご利用いただくことも可能です。また、2017/11/6 時点の Open Liberty の Docker イメージでは IBM J9 VM ベースの JRE 1.8 が使われています。ただし今後更新される可能性がある点にご注意ください。

後編では Eclipse Open J9 を利用した手順を示します。

2b

サポート

製品版には IBM によるサポートが提供されます。一方 Open Liberty には IBM のサポートはないため、コミュニティ・ベースのサポートとなります。GitHub の Issues または Stack Overflow をご利用いただけます。また現時点、英語のみである点にご注意ください。Twitter 上でも情報発信されていますの是非フォローしてください。ドキュメントという観点では 2017/11/6 時点で OpenLiberty.io にガイド (英語) が一部出ているのみですが、コードベースは同じであるため、機能詳細を知る上での大部分は WebSphere Liberty のマニュアルである Knowledge Center にて代替いただくことができます。また、Open Liberty だけでなく、Eclipse Open J9 のサポートも同様にオープンソースの扱いとなります。

製品版と Open Liberty はコードベースが同じであるため、製品版へ簡単にシームレスに移行することが可能です。これにより IBM サポートを受けることができるようになります。

2c

フィーチャー

表 1 と表 2 に製品版と Open Liberty の違いをまとめています。表から分かるように、Open Liberty は Java EE 7 をフルにサポートし、さらに MicroProfile プログラミングモデルをサポートしています。よって Java EE 7 のアプリケーションだけでなく Java のマイクロサービス・アプリケーション を開発・実行するために必要な環境が揃っていると言えます。

より充実したセキュリティ機能や API が必要となる場合は製品版を利用する必要があります。Open Liberty では、製品版でご利用いただける WebSphere Liberty Repository で提供される拡張機能がご利用 できないことにご注意ください。これは製品版では提供されている、機能拡張に必要な featureManager コマンド、installUtility コマンドが、Open Liberty では提供されていないためです。そのため WebSphere Liberty Repository から拡張機能をオンラインでインストールすることも、入手したモジュールをオフラインでインストールすることもできないようになっています。

alt

alt

3

Open Liberty のライセンスと二次利用について

Open Liberty のソースコードは Eclipse Public License(EPL) v1 のもと提供され、GitHub からダウンロード可能です。EPL v1 は二次利用可能なライセンスで、派生物をオープンソースにする義務はありません。つまり Open Liberty を二次利用したい全ての開発者は、フィーチャーの拡張など含め、自由に開発し製品として販売することができます。オープンソース・プロジェクトに参加されたい場合は OpenLiberty.io ページの contribute からアクセスください。

4

おわりに

前編では Open Liberty の概要、製品版との違い、ライセンスについてご紹介しました。後編では Open Liberty と Eclipse Open J9 を実際に導入し、サンプル・アプリケーションを動かす手順をご紹介いたします。