GlassFish Community 便り

GlassFish Advent Calendar 2013、1日目のエントリーです。このGlassFish Advent Calendar 2013はGlassFishとJava EEにまつわる様々な話題を本日12月1日から12月25日まで毎日誰かしらがブログ記事にして、リレーしてゆく(予定の)企画です。対象範囲がJava EE Advent Calendar 2013とかなりの部分で重複しているため、あわせてご覧いただくと面白いでしょう(今年はJava EEのAdvent Calendarが2倍読めるよ、やったね(ry というわけです)。

では、はじめましょう。


2013年はGlassFishにとって天国と地獄を双方とも経験した年となりました。天国の方は言うまでもなくJava EE 7とGlassFish 4のリリースです。GlassFish 4.0は最後まで目標の品質を達成できず、v4.0.1とv4.1という2つのマイルストーンを設定して積み残しを解決することにはなりましたが、3年ぶりのメジャーアップデートということで各方面から注目を浴びました。GlassFish 4はGlassFish v3の時に一新したアーキテクチャーをそのまま踏襲しており、Java EE 8へ先送りとなったクラウド機能もこのアーキテクチャー上での実装を前提としていたことから、いかに先進的かつ優れた基本設計であったかをうかがい知ることが出来るでしょう。

その他の嬉しいトピックについては、このAdvent Calendarで筆者が複数回を担当しているので、そちらの方で取り上げることにします。

一方、GlassFishにとっての地獄は、当初GlassFish 4.1から予定していたOracleによる商用サポートが打ち切りとなったことと、それによって引き起こされたといっても過言ではない混乱でしょう。GlassFish 3.1.xの商用サポートは継続するものの、商用サーバーとしてのGlassFishはその将来を絶たれたことになります。

重要なことなので強調しておきますが、GlassFish 3.1.xに対してはSustaining Supportが適用されるため、サポートそのものは無期限に提供されます。あくまでGlassFish 4.x以降に対するサポートが提供されないということです。とは言っても、Premier Support/Extended Support終了後は新規パッチが作成されないため、GlassFishに対する新規パッチの提供は2016年3月(Extended Supportを選択した場合は2019年3月)までとなります。

念のためOracleのサポート・ポリシーについて補足しておきます。Oracle DatabaseおよびFusion Middleware各製品は、各バージョンの最初のリリースから数えて5年間について新規パッチの提供、問い合わせ対応、バージョンアップなどの有償サポートが行われます。これをPremier Supportといいます。GlassFish 3.1.xの場合は、GlassFish 3.1.0がリリースされた2011年3月から5年間の2016年3月までが該当します(Solarisなどサポート体系が異なる製品もあるため、明らかな場合を除き必ず日本オラクル(Oracle Direct)または代理店等に確認しましょう。ちなみにDatabaseやFusion Middleware製品のサポート契約は購入と同時に行うのが鉄則です。後日サポート契約を行う場合には購入日に遡って料金を請求されるのでご注意ください)。Premier Supportが終了すると新規パッチは提供されなくなりますが、引き続きサポート料金を支払うことで既存パッチの提供、問い合わせ対応、バージョンアップなど一部のサポートが提供されます。これをSustaining Supportといい、ユーザーがサポート契約を終了するまで無期限に継続します。OracleとしてはPremier Supportが終了するまでに次のバージョンへ移行するようユーザーに促していますが(Oracle製品のバージョンアップ間隔はだいたい3年くらい)、Premier Support終了までに都合でバージョンアップができないユーザーに対して、最大3年間に限り割増料金でPremier Supportと同等のサポートを提供します。これがExtended Supportと呼ばれるものです。よくOracle製品のEoL(End of Life)としてExtended Supportの終了時期を挙げている情報源がありますが、それは正しい表現とは言えません。Oracle製品にはEoLという概念がなく、一般的なEoLに近いものとしてはPremier Supportが該当します。また、Microsoft製品のサポート期限とOracle製品のサポート期限を比較している情報源もありますが、それぞれの製品サポートに対する考え方が全く異なるため本来は直接比較できるものではありません。

Oracleでは商用サポートが必要な場合はGlassFishからWebLogicへ移行するようアナウンスしていますが、GlassFishとWebLogicのデプロイメント・デスクリプターの互換性は(Oracleのアナウンスに反して)完全ではなく、移行に関しては十分な検討とテストが必要となります。また、WebLogicはGlassFishより安価であるという意見もありますが、これも実は正しくないものです。Oracleの価格表を参照するとわかることですが、商用版GlassFishとOracle Web Tireの合計金額は、WebLogicのStandard Edition(Oracle Web Tireを含む)と同一価格です。ただし、WebLogic SEはクラスタ構成が取れないなどの制約事項があり、クラスタ機能もロード・バランシングも有するGlassFishと対等に比較してはいけないのです。もちろん、WebLogic SEにあってGlassFishにない機能もあります。とは言うものの、非常に大雑把に見れば、だいたい WebLogic SE < GlassFish < WebLogic EE となるでしょう。

本格的なGlassFishとWebLogicの比較については機会を改めるとして、今、GlassFishとそのコミュニティーはどうなっているのかをお伝えして本日の締めとしましょう。

GlassFish CommunityではJIRAによる課題管理を行っていて、閲覧そのものは無制限のため誰でも様子が確認できます。現在のtrunkはv4.0.1となっていますが、課題(主にバグ)のバックログがほとんど消化できていない状況にあります。一応、12月1日0時(日本時間)時点の課題数集計グラフを挙げますが、来年マイナー・アップデート版となるGlassFish 4.1のリリースが予定されているにもかかわらず、v4.1どころかバグフィックス版のv4.0.1すらリリースの見通しが立たない状況になっています。毎日グラフを眺めていて、夏の終わり頃からどうも雲行きが怪しくなっていたのですが、最近は特にひどいです。

glassfish-jira-20131201.png

GlassFish Communityは本来統制の取れた(悪く言えばお堅い)開発コミュニティーで、構成管理も几帳面に行われてきたのですが、v4.0.1以降Promoted Buildのリリースが滞りがちになり(GAの際にWeld連携で致命的なバグを抱えていたJerseyをはじめ課題が山積していたのは確かです)、最近ではイレギュラーなPromoted Build(と言っていいのか?)が作られる、Promoted Buildの命名規則で作られたNightly Buildが発生するなど、開発の基盤となっているところでも混乱が見られます。

Promoted Build:
http://dlc.sun.com.edgesuite.net/glassfish/4.0.1/promoted/

Nightly Build:
http://dlc.sun.com.edgesuite.net/glassfish/4.0.1/nightly/

(※閲覧時期により上記の問題は解決されている可能性があります)

上記のように開発ビルドのリリースに混乱が生じているため、開発ビルドから見た進捗状況を判断するのは難しい状況です。数少ない手がかり(MLやAquariumによるアナウンス、ソースファイル等)によると、12月1日時点で最新のPromoted Buildと断定できるものは、8月28日にリリースされたv4.0.1 build 3です。この時期のビルドにはJersey 2.2(かなりのバグフィックスを含む、らしい)がマージされており、Nightly Buildが作成されているbuild 4ではJersey 2.4.1のマージが行われる模様です。

v4.0.1については(実はv4.1も)正式版のリリース時期が決まっておらず、開発がこのままズルズルと遅延していく可能性が多分にあります。Adam Bienの言うように、開発をGitHubベースに移すなどの改革を行って、完全なコミュニティー主導に切り替える方が、GlassFishにとって良い方向に進むのかもしれません。

余談ですが、Adamは筆者と異なり今回のGlassFish 4.xの商用サポート取りやめを逆にチャンスと捉えているようです。


明日は先日WebLogic Channelにインタビュー記事も掲載されたキクタロー @kikutaro_ こと菊田さんが何か興味深い話題を提供してくださると思います。ではまた明後日お目にかかりましょう。