タグ「Payara」が付けられているもの

Payara クイック・スタート・ガイド

この記事は Payara Advent Calendar 2016 の 3 日目です。昨日は「Payara の asadmin を日本語化する」です。

※本記事は 2017 年 5 月 8 日に改訂および英訳を行っていますので、そちらをご覧ください。

最近、私の周りで Payara ユーザーが増えてきました。その多くは GlassFish から移行してきた方々ですが、今後 Payara が最初の Java EE サーバーとなる方々も出てくるかと思います。そういった方々に向けて、Payara の実用レベルで最低限のセットアップをまとめておきます。

※なお、この記事はとある方へのメッセージです。該当する方は、察してください。

1. 開発環境向けスタートアップ・ガイド

1.1. Payara Server をダウンロードする

Payara Server をダウンロードします。http://www.payara.fish/downloads (多国語化版が欲しい場合は http://www.payara.fish/all_downloads) から無償で入手できます。ユーザー登録なども必要ありません。運用環境として Payara Micro を使用する場合でも、開発環境での作業は Payara Server で行った方が便利です。

Payara 4.1.1.164 の場合、基本的には以下のいずれかを選択することになります。

  • Payara 4.1.1.164 (Full) : payara-4.1.1.164.zip
  • Payara-Web 4.1.1.164 (Web Profile) : payara-web-4.1.1.164.zip
  • Payara-Minimal 4.1.1.164 (OSGI+JAXRS) : payara-minimal-4.1.1.164.zip
  • Payara-ML 4.1.1.164 (Multi-Language Full) : payara-ml-4.1.1.164.zip
  • Payara-Web-ML 4.1.1.164 (Multi-Language Web Profile) : payara-web-ml-4.1.1.164.zip

開発環境の場合は Full Platform の payara-4.1.1.164.zip を選択すると良いでしょう。必要に応じて (例えば、Payara Micro での運用を想定している場合など)、Maven の依存関係で javax:javax-ee-web:7.0 を設定して使用可能な API を Java EE Web Profile に制限する方法を採るのが現実的です。

1.2. Payara Server をインストールする

ダウンロードした payara-4.1.1.164.zip を展開します。展開先は自由に選べます (ただし Windows 環境では C:\Program Files などスペース入りのフォルダは避けた方が無難です)。管理者権限がある場合は、Windows では C:\ 以下に、Linux/Solaris では /opt 以下にそれぞれ展開すると分かりやすいです。展開後、Windows では C:\payara41 以下、Linux/Solaris では /opt/payara41 以下に Payara Server が配置されます。この状態でインストールは完了です。

管理者権限を持たない場合は、Windows では %USERPROFILE% (C:\Users\{ユーザー名}) 以下、Linux/Solaris では $HOME (/export/home/{ユーザー名} または /home/{ユーザー名}) 以下にそれぞれ展開すると良いでしょう。

1.3. IDE で Payara Server の設定を行う

Payara Server を IDE で制御できるように設定します。

1.3.1. Eclipse

Eclipse の場合は、Oracle Enterprise Pack for Eclipse (OEPE) に含まれる GlassFish Tools をインストールする必要があります (OEPE の他のプラグインが含まれていても問題ありません)。サーバーの種類として GlassFish 4 を選択し、サーバーのインストール先として C:\payara41\glassfish (Windows) または /opt/payara41/glassfish (Linux/Solaris) を選択します。Payara のインストール・ディレクトリ以下の glassfish サブディレクトリ (この場所が Payara のコアである Nucleus になります) まで指定する必要があることに注意してください。その他の設定項目は、既定値のままで良いでしょう。

1.3.2. NetBeans

NetBeans には GlassFish との統合機能が含まれているため、これを利用します。サービス - サーバー画面で、サーバー・インスタンスを追加します。サーバーの種類として GlassFish Server を選択し、サーバーのインストール先として C:\payara41 (Windows) または /opt/payara41 (Linux/Solaris) を入力します。その他の設定項目は、既定値のままで良いでしょう。なお、NetBeans にはサーバー・インスタンスがない場合にダウンロードしてインストールする機能も備わっていますが、Payara の場合には使用できません (GlassFish がダウンロードされるため)。

1.3.3. IntelliJ IDEA

IntelliJ IDEA には GlassFish との統合機能が含まれているため、これを利用します。Default Settings - Build, Execution, Deployment - Application Servers で Glassfish Server を選択します。Glassfish Home ディレクトリをたずねられますので、C:\payara41 (Windows) または /opt/payara41 (Linux/Solaris) を入力します。その他の設定項目は、既定値のままで良いでしょう。

1.4. Payara Server を開発環境として使用する

開発環境の Payara Server は、通常 IDE から起動、停止およびアプリケーションのデプロイを行います。Payara Server の直接操作については、以下の 3 点を押さえておけば大丈夫でしょう。

  • payara41/bin/asadmin start-domain で Payar Server を起動
  • payara41/bin/asadmin stop-domain で Payara Server を停止
  • Payara Server の起動中は管理コンソール http://localhost:4848/ で大抵の設定操作は可能

2. 運用環境向けスタートアップ・ガイド

2.1. Payara Server をダウンロードする

Payara Server をダウンロードします。http://www.payara.fish/downloads (多国語化版が欲しい場合は http://www.payara.fish/all_downloads) から無償で入手できます。ユーザー登録なども必要ありません。運用環境として Payara Micro を使用する場合でも、開発環境での作業は Payara Server で行った方が便利です。

Payara 4.1.1.164 の場合、基本的には以下のいずれかを選択することになります。

  • Payara 4.1.1.164 (Full) : payara-4.1.1.164.zip
  • Payara-Web 4.1.1.164 (Web Profile) : payara-web-4.1.1.164.zip
  • Payara-Minimal 4.1.1.164 (OSGI+JAXRS) : payara-minimal-4.1.1.164.zip
  • Payara-ML 4.1.1.164 (Multi-Language Full) : payara-ml-4.1.1.164.zip
  • Payara-Web-ML 4.1.1.164 (Multi-Language Web Profile) : payara-web-ml-4.1.1.164.zip

運用環境の場合は、まず Full Platform と Web Profile のどちらをインストールするかの判断が必要です (Payara-Minimal は Java EE の API をほぼ含まないため対象外とします)。多くの用途では Web Profile が第一選択肢となるでしょう。Web Profile にない API が必要となる場合は Full Platform をインストールします。

Web Profile については以下の資料をしてください。

Payara Server の設定操作は管理コンソールを中心に行うのが便利です。その際、日本語化された UI は何かと便利であるため、個人的には多国語版をお勧めしたいところです。以上のことから、運用環境ではその環境の特性を考慮した上で、特に要求がなければ多国語版 Web Profile : payara-ml-4.1.1.164.zip を選択すると良いでしょう。

2.2. Payara Server をインストールする

ダウンロードした Payara Server の ZIP アーカイブ (payara-ml-4.1.1.164.zip など) を展開します。展開先は自由に選べます (ただし Windows 環境では C:\Program Files などスペース入りのフォルダは避けた方が無難です)。管理者権限がある場合は、Windows では C:\ 以下に、Linux/Solaris では /opt 以下にそれぞれ展開すると分かりやすいです。展開後、Windows では C:\payara41 以下、Linux/Solaris では /opt/payara41 以下に Payara Server が配置されます。この状態でインストールは完了です。

2.3. Payara Server のリモートアクセスを有効にする

2.3.1. 管理パスワードの設定

Payara の既定では、管理パスワードが設定されていません。リモートアクセスを有効にするのに先立って、まず管理パスワードを設定する必要があります。管理パスワードの設定には asadmin change-admin-password コマンドを使用します。

ここでは、管理ユーザー名の決定と、管理パスワードの変更という 2 種類の操作を行います。入力項目は、以下の通りです。

  1. 管理ユーザー名: 既定の admin を使用する場合は空欄とします
  2. 現在の管理パスワード: 既定では管理パスワードは設定されていないため空欄とします
  3. 新しい管理パスワード: 管理パスワードを入力します
  4. 新しい管理パスワード: 入力した管理パスワードと同じものを確認のため入力します

最初に管理ユーザー名の設定があります。ここは見落としがちのため注意してください。

2.3.2. セキュア管理の有効化

リモートアクセスのためにセキュア管理 (HTTPS 通信) を有効化します。セキュア管理の有効化/無効化は Payara Server が起動している必要があるため、まず asadmin start-domain コマンドで Payara Server を起動します。

続いて、asadmin enable-secure-admin コマンドでセキュア管理を有効化します。その際には、先に設定した管理ユーザー名 (admin) と管理パスワードを入力する必要があります。

セキュア管理を有効化した後は、Payara Server を再起動する必要があります。Payara Server の停止と起動を組み合わせても良いのですが、再起動を行う asadmin restart-domain コマンドを使用した方が高速です。

2.4. Payara Server を運用環境として使用する

手っ取り早い方法は、起動コマンドの asadmin start-domain と停止コマンドの asadmin stop-domain だけ覚えて、後の操作は管理コンソール上で行うことです。リモートアクセス時の管理コンソールの URL は https://<hostname>:4848/ となり、起動時にユーザー名 & パスワードの認証があります (ユーザー名は既定では admin となります)。

リモートアクセスを有効にする際に、enable-secure-admin を設定していますが、これにより管理コンソールへのアクセスが HTTP から HTTPS (HTTP over SSL/TLS) に変更され、暗号化通信となります (GlassFish 3.1.2 あたりから管理コンソールへのリモートアクセスは HTTPS に限定されるようになっています)。Payara Server のインストール直後は電子証明書のチェーンが整備されていないため、ブラウザ側で一旦アクセスをブロックされますが、イントラネット上であるため無視してアクセスを強行してください。

3. Payara Micro スタートアップ・ガイド

3.1. Payara Micro をダウンロードする

3.1.1. Web サイトからのダウンロード

http://www.payara.fish/downloads から Payara Micro 164 (payara-micro-4.1.1.164.jar) をダウンロードします。ダウンロード後、ファイル名は必要に応じて変更しても構いません。

3.1.2. Maven 統合

Maven プロジェクトの pom.xml に以下の依存関係記述を追加します。これにより、Maven Central Repository から Payara Micro が自動的にダウンロードされ、プロジェクトに組み込まれます。

<dependencies>
  <groupId>fish.payara.extras</groupId>
  <artifactId>payara-micro</artifactId>
  <version>4.1.1.164</version>
</dependencies>

3.2. Payara Micro を運用環境として使用する

3.2.1. Payara Micro を通常実行する

まず、Web アプリケーションの WAR ファイルを用意します。ここでは WAR ファイルを webapp.war と仮定します。Web アプリケーションは基本的に Payara Server を使って開発することになるでしょう。

WAR ファイルが準備できたら、ターミナルから Payara Micro を起動します。

$ java -jar payara-micro-4.1.1.164.jar --deploy webapp.war

終了する場合は Ctrl + C を使います。

Payara Micro は既定で Hazelcast による自動クラスタリングが有効になっています (Payara Server では無効)。通常はそのままでも問題ありませんが、--noCluster オプションを付けて無効化することで、少しだけ起動を早めることができます。ただし、--noCluster オプションを使用すると、Hazelcast そのものが無効化されるため、自動クラスタリングだけでなく JCache も使えなくなってしまうことに注意してください。

$ java -jar payara-micro-4.1.1.164.jar --deploy webapp.war --noCluster

3.2.2. Uber Jar を作成して実行する

Payara Micro と WAR ファイルから Uber Jar を作成することもできます。ここでは、出力する Uber Jar の名前を webapp.jar と仮定します。

$ java -jar payara-micro-4.1.1.164.jar --deploy webapp.war --packageUberJar webapp.jar

作成後は、直接 Uber Jar を実行することになります。

java -jar webapp.jar

Payara Micro の Uber Jar は、実際には WAR ファイルを内包した Payara Micro です。Payara Micro の起動時オプションが使用できるほか、Ctrl + C で終了できる点も共通しています。

4. まとめ

Payara は日々進化を続けており、当初の「より良い GlassFish」から、本格的な商用 Java EE サーバーとなるべく様々な機能が追加されています。しかし、最小限の設定は決して多くなく、今回ご紹介した内容をもとに簡単な環境構築は可能です。

Payara の asadmin を日本語化する

この記事は Payara Advent Calendar 2016 の 2 日目です。昨日分は「そのプログラム、Payara なら動きますよ」です。

Payara には多国語化対応のパッケージが用意されています。それを利用すると GUI の管理コンソールが日本語表示になるなど、英語の苦手な日本人にとっては嬉しいものです。ダウンロードサイト上部のメニューから "All Downloads" をクリックすると (リンク先は http://www.payara.fish/all_downloads です) 多国語化対応パッケージを入手することができます。

多国語化対応パッケージで日本語化されるのは管理コンソールだけで、asadmin については日本語化されません。ただし、Payara を構成する JAR ファイルを手動で移動 (またはコピー) することで asadmin を強制的に日本語化する方法があります。以下に手順を示しますが、Payara の構成ファイルを操作するため動作しなくなる可能性もあります。あくまで自己責任でお願いします。

Step 1 : Payara Server を完全に停止した状態にする。

Step 2 : payara41/glassfish/modules に存在する以下の 3 ファイルを、payara41/glassfish/lib/asadmin に移動 (またはコピー) する。

  • cli-optional-l10n.jar
  • cluster-cli-l10n.jar
  • server-mgmt-l10n.jar

Step 3 : Payara Server を起動する。asadmin start-domain のメッセージが日本語化されているはず。

上記で移動 (またはコピー) した 3 ファイルは、本来 payara41/glassfish/lib/asadmin 以下に存在すべきファイルですが、Payara が GlassFish 4.0 から引きずっているバグ (公式にはバグと認められていない) により payara41/glassfish/modules 以下に配置されています。Payara を構成する JAR ファイルのうち末尾に "-l10n" が付加されているものは、付加されていないモジュールに対する多国語化パッチであり、モジュール本体と多国語化パッチが同じディレクトリ上に配置されることではじめてローカライズが行われる仕組みとなっています。上記 3 ファイルは asadmin の多国語化パッチですが、既定でモジュール本体とは異なるディレクトリにあるため、結果として asadmin のローカライズが行われない状態になっているのです。

このあたりのことは Payara (GlassFish) のモジュラー・システムが深く関わっています。参考までに、以前の発表資料 (20 分版) を添付します。


この件については、一度 Payara の国際化対応に関する Issue に関連づけて私が修正を試みたのですが、該当箇所のソースコードがスパゲティ状態でとうとう手が付けられませんでした (さすがにこの時ばかりは GlassFish 4.0 の開発時に該当箇所をいじった人間を恨みましたが...)。多分、今後もなかったことにされ続けることでしょう。

そのプログラム、Payara なら動きますよ

この記事は、Payara Advent Calendar 2016 初日の記事です。

私事で恐縮ですが、以前、Java 読書会 BOF の高橋さん (@boochnich) とお話しする機会がありまして、当時 Java 読書会で取り上げていた「Java EE 7 徹底入門」のサンプルが GlassFish 4.1 では動作せず、Payara ではなぜか動作したということを伺ったことがあります。著者側で動作確認を取ったはずのランタイムでサンプルプログラムが動作しないのはどうなのか、という話はさて置き、GlassFish 4.1 では動作しなかったプログラムが Payara では動作したという話は、日本 GlassFish ユーザー会の会長という立場上、よく耳にします。

お話し下さる皆様にはお伝えしていることですが、これらは十中八九 GlassFish 4.1 側のバグで、かつお使いの Payara では既に修正されていることに起因します。Payara の Issues はラベルによる分類が行われており、そのうち "upstream bug" が付けられた Issue については GlassFish 4.1 側のバグと断定されたものです。現時点で "upstream bug" は約 9 割が修正済みであり、これが GlassFish 4.1 で動かなかったプログラムが Payara では動く直接的な原因になっていると考えられます。なお、Payara Team では "upstream bug" について本家の GlassFish Community に報告はしているものの、最近は GlassFish のメンテナンスが停止しているため、修正されず放置されたままとなっています。

Payara は GlassFish 4.1 と共通のコードベースで開発されているため、サーバ固有の仕様に至るまでほぼ同じ振る舞いをします。また、四半期に 1 回の頻度で定期的にリリースされていることから、オリジナルの GlassFish 4.1 よりも良好なメンテナンス状態にあります。実は Java EE 7 の TCK を通していないという盲点はあるのですが、それに目をつぶれば「より良い GlassFish」として使用することができます。

Payara 164 リリース

Payara 164 (Payara 4.1.1.164) がリリースされました。これは 2016 年第 4 四半期 (すなわち 2016 年最後の) リリースとなります。今回は、Payara 164 の新機能を中心に速報レベルでご紹介します。詳細はリリース・ノートを参照してください。

参考まで、次回のリリースは 2017 年第 1 四半期の Payara 171 (Payara 4.1.1.171) となります。現時点では 2017 年 2 月リリースが目標です。

1. 新機能 (1) - Request Tracing Service

Payara 164 では、監視サービスに Request Tracing Service が加わります。Request Tracing Service は、Servlet のリクエストをトレースし、時間がかかっているリクエストをログ出力する機能です。既に Payara 163 にプレビュー版が搭載されていましたが、今回のリリースから正式版となります。

Request Tracing Service では、Servlet とそれに関連する以下の API / サービスが監視対象となります。

  • REST (JAX-RS エンドポイント)
  • Servlet (HTTP リクエスト操作)
  • SOAP Web サービス・リクエスト
  • WebSocket
  • EJB タイマーの実行
  • Message-Driven Bean によるインバウンド JMS メッセージ操作
  • JBatch ジョブの作成
  • Managed Executor による新しいタスクの実行

Request Tracing Service は Payara Server だけでなく、Payara Micro でも使用できます (設定方法は異なります)。Request Tracing Service の詳細についてはドキュメントを参照してください。

2. 新機能 (2) - 管理コンソールの Hazelcast クラスタ・メンバ一覧画面

Payara 163 までは、Hazelcast クラスタのメンバを確認するにはログを参照するしかありませんでした。Payara 164 では以下のような Hazelcast クラスタ・メンバ一覧画面が実装され、管理コンソール上から Hazelcast クラスタのメンバを確認できるようになりました。

hazelcast-cluster-members.png

(画面キャプチャは、当方の環境の都合で日本語版になっています。ご了承ください。)

3. コンポーネントの更新

Payara 164 では、以下のコンポーネントが更新されています。

  • Jersey 2.22.2
  • Hazelcast 3.7.1
  • Eclipselink 2.6.3
  • mail 1.5.6
  • btrace 1.2.3
  • Jackson 2.8.1
  • Grizzly 2.3.28
  • Weld 2.4.0.Final

4. その他

毎回のことですが、多数の小さな改善と不具合修正が行われています。Payara Micro の ROOT.war デプロイ時の挙動の不具合も修正済みです。


今回ご紹介した新機能は、12 月に実施する Payara Advent Calendar 2016 でも取り上げる予定です。

Payara Micro のクラスタリングを支える技術として Hazelcast が使用されていることは以前から折に触れていました。Hazelcast については私の不勉強から曖昧な表現しか出来なかったのですが、最近、かずひらさん (@kazuhira_r) が Hazelcast の詳細に関する素晴らしいエントリを公開してくださいました。Hazelcast の内部動作に興味がある方は、是非目を通してみてください。

唯一、気になる点としては Hazelcast クラスタを構成する際に同一ホスト上で構築していること。Hazelcast の仕組み上、ノード間の通信さえ出来ればホストが同一でもそうでなくても構わないのですが、個人的な興味として異なるホスト間で Hazelcast クラスタがきちんと構成されるかこの目で確かめておきたいという願望がありまして、今回少々試してみました。なお、私の環境下では現在 Windows 10 と Solaris 11.2 が若干数動作しており、大規模クラスタの検証が出来なかったことをお断りしておきます。

どちらかというと、Hazelcast Internal(ネットワーク編) の内容に近いですね。

今回は、手元の Windows 10 マシンで Payara Miro を起動した後、現状で 2 インスタンスを起動可能な Solaris 11.2 を追加してみた結果をレポートします。

最初のノード (Windows 10) を起動すると、以下のログ・メッセージが出力されます。最初のノード (192.168.184.67) がポート 5900 で待機している証拠ですね。

[2016-10-30T00:53:51.426+0900] [Payara Micro 4.1] [INFO] [] [com.hazelcast.cluster.impl.MulticastJoiner] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1477756431426] [levelValue: 800] [192.168.184.67]:5900 [development] [3.6.4]

Members [1] {
        Member [192.168.184.67]:5900 this
}

その後、2 番目のノード (192.168.184.89 ; Solaris 11.2) を追加すると、最初のノードのログに以下のメッセージが出力されます。2 番目のノードは 5901 で待機します。ここで注目したいのは、OS が異なっていても Hazelcast のクラスタ構築には何ら問題は発生しないということです。

[2016-10-30T00:54:21.092+0900] [Payara Micro 4.1] [INFO] [] [com.hazelcast.cluster.ClusterService] [tid: _ThreadID=39 _ThreadName=hz._hzInstance_1_development.generic-operation.thread-0] [timeMillis: 1477756461092] [levelValue: 800] [192.168.184.67]:5900 [development] [3.6.4]

Members [2] {
        Member [192.168.184.67]:5900 this
        Member [192.168.184.89]:5901

調子に乗って、3 番目のノード (192.168.184.8 ; Solaris 11.2) も追加してみました。最初のノードのログに以下のメッセージが追加されます。3 番目のノードも 5901 で待機します (なぜそうなるのかは宿題です)。

[2016-10-30T00:57:18.678+0900] [Payara Micro 4.1] [INFO] [] [com.hazelcast.cluster.ClusterService] [tid: _ThreadID=39 _ThreadName=hz._hzInstance_1_development.generic-operation.thread-0] [timeMillis: 1477756638678] [levelValue: 800] [192.168.184.67]:5900 [development] [3.6.4]

Members [3] {
        Member [192.168.184.67]:5900 this
        Member [192.168.184.89]:5901
        Member [192.168.184.8]:5901
}

ちなみに、Hazelcast のクラスタについても、他のクラスタにおける Master に相当するものはあり、それは最初に起動したノードとなります。詳細はかずひらさんのブログに詳しいですが、ノード起動後一定時間 Master を探索して見つからなければ自分自身が Master になるようです。

結論として、Payara Micro の Hazelcast クラスタは非常に良く動作しています。

これから Hazelcast の勉強を本格的に始めなければ...。

Payara のアプリケーション・ロギング

Payara Blog に "TROUBLESHOOTING YOUR JAVA EE APPLICATIONS" という記事が投稿されています。投稿者は Payara Team (開発メンバー) の Mike Croft です。

この記事では、主に Payara の管理コンソール (GUI) を用いたトラブルシューティングに必要な管理コンソール上でのログ設定と、Payara を JMX 経由で VisualVM からモニタリングする方法について取り上げています。また、Payara 4.1.1.161 から搭載された新機能「Slow SQL Logging」と「Healthcheck Service」の簡単な使い方についても触れています。

英文ですが、GlassFish/Payara のログ設定と JMX モニタリングのイントロダクション的な資料ですので、参考にされると良いかと思います。

An Interview With the Killerfish--Payara (ja)

この記事は、Adam Bien の了承を得て、An Interview With the Killerfish--Payara : Adam Bien's Weblog の内容を翻訳したものです。誤訳等がありましたら蓮沼 <k.hasunuma (at) coppermine.jp> までご連絡ください。


Q: C2B2 は既に GlassFish の商用サポートを提供していますが、www.payara.co の背景にはどのようなアイデアがあるのですか?

Payara は C2B2 にとって新しいイニシアティブです。既に私達は GlassFish を商用利用しているお客様に対して運用サポートとコンサルティングを提供しています。Payara については私達は全く異なる方針で進めます。私達は新しいアプリケーションサーバ、Payara を作り上げるために上流のオープンソースの GlassFish のコードベースを中核に用いています。

私達は Payara Server の中に新たな可能性を見いだしており、直近では Hazelcast の組み込みにより JSR 107 (訳注: JCache API、Java EE 8 に導入予定のキャッシュ技術の仕様) とデータグリッドを追加しました。私 (訳注: Steve Millidge、Payara の Founder 兼 Director) は先月、Payara と Hazelcast の Webinar を行いました: http://www.payara.co/javaee_applications_supercharged_ldquo_using_jc。私達はまた、Payara Micro を通じてクラウドやマイクロサービス環境へのデプロイ・シナリオについて研究しています。さらに私達は Chef、Puppet、Ansible、Docker、Kubernetes のようなツールと連携して広範囲な DevOps エコシステムと繋がっていくことを目指しています。

Q: Payara の活動について Oracle から何かフィードバックはありましたか?

私達は公式には Oracle から何もフィードバックを受けていません。何名かの社員は Oracle の Contributor Licensing Agreement に署名し、現在はコードを修正して上流の GlassFish チームに提供できる状態にあります。これらの修正のいくつかは現在の GlassFish の Nightly Build に含まれています。非公式には、私達は上流の GlassFish Project のエンジニアから支援と激励を受け、オープンソース精神に基づき彼らはとても良い貢献を私達にしてくれています。

Q: 私 (訳注: Adam Bien) は JavaOne 2014 以来 Payara を注目し続けていますが、GitHub のアカウントはとても活発ですね。何がきっかけになっているのでしょうか?

皆様は Payara や GlassFish をご利用頂いていて、また私達の活動が活発に見えているようです。そのため皆様からバグを報告して頂いたり、こうして欲しいという新しいアイデアをたくさん提案して頂いています。これが毎回のリリースにおいて欲しいものリストを作っていくきっかけになっています。Payara は四半期ごとにリリースしており、すべての開発を GitHub でオープンに行い、これらがすべての活動を生み出しています。私達は皆様からの質問、提案、意見を Twitter、StackOverflow、Facebook などからも頂きます。コミュニティは本当に活発で、その関心は確実に広がっています。私達はとても幸せに思っていますし、私達はすべての Payara と GlassFish のユーザーとのディスカッションを通じて励まされています!

Q: コミュニティは Payara の開発と関係していますか?

もちろんです!何人かは CLA (訳注: C2B2 の CLA を指し、前述の Oracle の CLA とは異なる) に署名しており、バグフィックスや変更のプルリクエストを送ってくれています。それらは Payara の最新のリリースに反映されています。コミュニティからの新しいアイデアもまた機能強化のベースとなっており、Payara Micro は Java EE アプリケーションをこうやって動かしたいというコミュニティからのアイデアの直接的な成果です。私達はコミュニティの貢献やアイデアに対して完全にオープンです。正直なところ、私達はすべてを自分達だけで考えることができません。ですから私達は他の人達の素晴らしい実装のアイデアにはとても敏感です。GitHub は参加する中心の場ではありますが、人々は Twitter やその他のソーシャルメディアで質問してくれたり、あるいはロンドンの Java EE & GlassFish User Group (詳細は http://www.meetup.com/GlassFish-User-Group/) のセッションに直接足を運んでくれています。

Q: どれくらいの GlassFish ユーザーが Payara に切り替えましたか?大雑把に教えて頂くことはできますか?

私達が知っているだけでも、いくつかの非常に有名な企業を含む皆様が Payara への切り替えを計画しているか、あるいは切り替えを完了しています。関心が広がり、いくつかの組織が切り替えを計画するスピードの素早さに私達は良い意味で驚いています。関心と需要は伸びており私達が Payara をよりよくしていく上での原動力のようなものになっています。

Q: Payara Micro Edition を実装する上でどのような困難がありましたか?

正直なところ、Payara Micro を最初にリリースするのはとても簡単でした。ご存じの方は多くないですが、GlassFish はずっと前から Embedded Edition を持っていました。私達は GlassFish Embedded と新しい Hazelcast 連携をビルドして Payara Micro の最初のバージョンを作りました。私達の仕事の多くはこの方法で GlassFish Embedded をパッケージングしたことです。より Java EE の能力を引き出し、完全な Web セッション・レプリケーションを 新しい Hazelcast 連携のおかげで Payara Micro の基本機能として動的クラスタを加えることができました。

私達にとって、Payara Micro は開発の始まりを示すものです。Java EE アプリケーションの新しいデプロイ方法、全く新しい形態 私は最近 Payara Micro について私達のブログに書きました http://www.payara.co/introducing_payara_micro。私達はエキサイティングな動きの中で Payara Micro を使うたくさんの素晴らしいアイデアを持っています。どうぞご期待ください。

Q: Payara を採用した素晴らしいプロジェクトはご存じですか?

私達は Payara を利用している、または利用を計画しているプロジェクトをいくつか知っています。例えば、SAAS 向け、POS (Point of Sale)、イントラネット、マイクロサービスです。近々、私達は既に集めたいくつかの成功談を Web サイトに掲載しますので是非ご覧ください。また、あなたが最近の dreamIT の記事のような素晴らしいプロジェクトに関するブログを続けて頂けるのでしたら、私達もさらにあなたのブログを注目していきたいと私は考えています。;-)

Q: Java EE に対するあなたの意見は何ですか?生産性ですか?どれくらいの顧客が使っているのですか?

Java EE が生産的か?もちろんです!NetBeans のような標準的な IDE をゼロからセットアップして、ほんのわずかなコードを書くだけでアプリケーションを作成できるのです。標準的な war ファイルを作成すれば、コマンドラインで java -jar payara-micro.jar -deploy your.war とするだけで実行できます。何がより生産的にしているか?複雑な依存性管理も、複雑なインストール作業も、ややこしい XML の設定ファイルも、もう要らないのです。私は 5 月 29 日にロンドンで開催される NetBeans Day で、45 分間を使って簡単な Java EE アプリケーションを開発し動作させることについてお話しする予定です。 https://blog.idrsolutions.com/2015/03/netbeans-day-uk-friday-29th-may-2015/

Q: 現在のリリース (訳注: Payara 4.1.152) の機能は何ですか?

最新のリリースでは Payara Micro を追加しました。これはフットプリントが小さい Payara で、事前にインストールすることなくコマンドラインから war ファイルを実行できるものです。それに加え、Payara Micro は Java EE Web Profile に加え、JBatch、Concurrency、JCache を利用するアプリケーションをサポートします。また、複数の Payara Micro インスタンス間での完全な Web セッション・レプリケーションを提供する自動クラスタも利用できます。

私達は GlassFish の Shoal ベースのクラスタリングを埋め込みデータグリッドの Hazelcast に置き換えています。Hazelcast は JCache サポートと動的クラスタ機能を提供します。私達は JBatch のパーシステンス・プロバイダの範囲を拡大し、MySQL、Oracle、DB2 をサポートのデータベースに追加しています。さらにいくつもの重大なバグの修正と、Jersey、Tyrus、Grizzly などの下位コンポーネントを多数アップデートしています。

Q: Payara で今後私達が期待できる素晴らしい機能は何ですか?

私達はいくつかの領域に焦点を当てています。

Payara Micro は Java EE アプリケーションをインストールし管理する全く新しい方法へと変化し、成長してゆきます。動的なクラウド環境や大規模なインストレーションを目標としています。私達の長期的なゴールは、1000 インスタンスの Payara Micro をクラウド上の 1 つのコンソールから管理できるようにすることです。私達はクラウド上の新しい管理コンソールを作り上げる際のモデルとして RTS (リアルタイムストラテジー) ゲームがたくさんの情報をどのようにユーザーの各ユニットのステータスに表示しているのかを参考にしています。

私達は管理のしやすさに焦点を当てており、トランザクション追跡と問題切り分けとオペレータに発生した事象を知らせる障害発見能力の構築を始めています。これらにより、もう何がおかしいのかを探り当てる作業は必要なくなります。

最後に、私達は Chef、Docker、Maven など Payara を取り巻くツールとともに DevOps エコシステムと連携することにも焦点を当てています。

Q: 商用サポートはどのくらいの価格ですか?どこかに価格表はありますか?

私達の商用サポートは CPU やコアの数、その他のパワー・ファクターではなく、単純に動作している Payara Server の数に基づいています。私達は商用サポートの価格設定を 3 種類用意しており、最も基本的なサポートについては小さなお店でもサポートを購入できるようサーバ当たり年間 $1,500 に設定しています。エンタープライズ・サポートでは 24 時間 365 日のスクリーン・シェアリング (訳注: RDP や SSH などを用いたリモート・アシスタンス) を含みこれをサーバ当たり年間 $5,000 で提供しています。Payara をあらゆる場所で動作させるため動作サーバ台数が固定でない組織のお客様を対象に無制限オプションも追加しています。もちろん、GitHub でのオープンソースのサポートも最大限やっていきたいと思っています。しかしながら、私達は皆様に商用サポートの購入をお勧めしたいのです。皆様がサポート費用として私達にお支払い頂いたお金はすべて、新しい Payara の素晴らしい機能へと再投資されることになるからです。提供するサポートの詳細を含む完全な価格表は http://www.payara.fish/support をご覧ください。

Steve、インタビューにご協力頂きありがとうございました。


今回は特に興味深いインタビュー記事だったため、記事の紹介だけでは伝えきれないと思い、取り急ぎ邦訳した次第です。

Thank you, Mr. Adam Bien!

C2B2 Blog の GlassFish 4 特集

イギリスでミドルウェアのコンサルティングとサポートを行っている C2B2 のブログに GlassFish 4 の概要を 4 回に渡って特集した記事がありますので、今回はそれをご紹介します。

  1. Getting Started with GlassFish 4
  2. GlassFish 4: Features for High Availability
  3. Glassfish 4 - Performance Tuning, Monitoring and Troubleshooting
  4. Glassfish 4 - Migrating to Glassfish

国内ではこのような特集はほぼ行われないため、とても貴重な情報と言えます。GlassFish 4.1 においてもほぼすべてが通用します。

C2B2 では GlassFish 4 の商用サポートを行っています。C2B2 は GlassFish 4 の商用サポート提供を表明した最初の企業であり、他にも欧州を中心に GlassFish 4 のサポートを行う企業が複数存在しています。

現在、C2B2 の GlassFish/Payara 部門は Payara Foundation に分社化され、別法人として活躍しています。