BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GlassFish Gemは、どうなるのか?JRuby Webアプリケーションをデプロイするための代替品

GlassFish Gemは、どうなるのか?JRuby Webアプリケーションをデプロイするための代替品

原文(投稿日:2010/04/21)へのリンク

Oracleが3月に GlassFish のロードマップ をリリースしたが、ひとつ大きく欠けていたのが、GlassFish gemに関する言及である。 Rails, Merb,そして Sinatra アプリケーションのgemベースのサーバは、JRubyプラットフォーム(例えば、 BitNamiの JRubyスタックの一部)用の人気のあるデプロイの選択肢となった。サーバは軽量で、 4.3MBの gemは、 GlassFish v3のカーネル、Grizzlyそして若干のユーティリティを含んでいるだけである。しかし、このサーバは、製品並みの品質を持つアプリケーションサーバで、1秒間に何千ものリクエスト 負荷を処理する、Sinatra アプリケーションをホストできることで知られている。gemによって、マルチスレッドモードで動作しているRailsユーザは、1つのサーバインスタンスで複数のスレッドを走らせることで、JVMをうまく活用できる。

3月初めに、jrubyユーザのメーリングリスト で、分かったのは、 GlassFish gemチームは、Sun から Oracle への移動がなく、恐らくこのプロジェクトは、中止された、ということである。我々がコメントを求めたとき、 Oracleは、言った:

我々は、引き続きコミュニティが GlassFish gemの開発を進めることを後押しし、このgemを進化させたいと思う人達の支援を続けます。

Engine Yard は、 GlassFish gemを 有償のJRubyサポートに含まれるかどうか明言していない。 JRuby Summer of Code ウィキ には、「 GlassFish gemをベースにした、「新しい早くて小さなサーバを開発するか、さもなければ、GF gemを引きとって、完全に分離し、それだけのプロジェクトを新設する」、という提案が載っている。

4月中旬に、 GlassFish gemプロジェクトのオーナーかつリード開発者のVivek Pandey氏 は、自分の時間を使って文書化したり、おそらく新しいバージョンのリリースに向かって開始する計画のあるリストを告知した。しかし Oracleは、この仕事をサポートしていないので、このプロジェクトは、彼のアルバイトにすぎない。「もしこのプロジェクトに手を貸してくれる人がいれば、すばらしいのだが。」

彼は、どのような貢献を望んでいるのだろうか?「バグ修正、(もしあれば)フィーチャの追加そしてリリースです。そして文書化と啓蒙ですね。コードベースは、大きくありません。」

リストに関するその後の議論の中には、このプロジェクトを前進させようという関心も起きている。

GlassFish gemの人気は、その使い勝手のよさから来ています。なぜ BitNamiは、JRubyスタックとして Tomcatと GlassFish gemの両方を提供しているのかを聞いたときに、 BitNamiの Daniel Liszka氏は、答えた:

Tomcatの方に馴染んでいる人のほうが、まだ多いですね。彼らに選択肢を与えたいのです。 GlassFishより TomcatにRuby on Rails をデプロイする方が難しいことは、別にして、何か他の理由で、 Tomcatを使う必要のある人達にも、デプロイを簡単にしたいと思っています。

Tomcatへのデプロイや GlassFish, JBoss, あるいは WebSphereなどの他の J2EEアプリケーションサーバへのデプロイは、Warblerを使って実現できる。gemが Rails, Merb, あるいは RackベースのアプリケーションからWARファイルを作る。 Warblerは、4月の始めに バージョン1.0 をリリースし、 Rails 3へのサポートを加えた。「 Rails 3が Warblerの作成したWARとうまく動いて非常にうれしい。私は、Rails 3 は、Java開発者がwebアプリケーションを作る時に考えるべき、傑出したフレームワークであると私は、考えているので。」と Engine Yardの Nick Sieger氏が言った。

Warbler は、もちろん他のサーバのような開発ツールではありませんが、デプロイツールです。[...]WARのデプロイは、既存のJavaショップでは、ずっと一般的ですから。

Warbler 1.0は、また今や、Bundlerによって、バンドルされたgemのパッケージ化をサポートしている。

JRubyの世界では、他のサーバも存在する。例えば、Torqueboxは、JBossをラップする。 JBossフェローの Bob McWhirter氏によると、

Torqueboxは、既存のエンタプライズ級の JBoss Javaアプリケーションサーバを目標としてあげ、JRuby を使って、その完全な能力を Rubyの世界に持ち込むことです。

この中には、例えば、Quartz ジョブスケジューラや HornetQメッセージ・ブローカをRubyの愛用者に馴染み安い方法で使えるようにすることも含んでいます。

Torqueboxは、 GlassFish gemよりはるかに重い:配布は、gemベースではなく、約 300MBもある(この中には、サーバに加えて完全な JRubyのインストレーションも含まれる)。 10MB未満のgemは、「私のロードマップに、webのみの機能で、あります。もちろん、それでJMSとの統合はできません。」

David Calavera氏の Trinidad は、 Apache Tomcatの上で走るgemベースのRackアプリケーションサーバだ。それを走らせるには、「Rackベースのアプリケーションのルートディレクトリを指して、単にコマンドを'jruby -S trinidad'と入力するだけです。」と言う。

大きな利点の1つは、非常に軽量だ、ということです。他のサーバがモノリシックなライブラリとして作られているのに、 Trinidadは、分散型です;コアは、15KB 以下で、必要なライブラリは、3MBぐらいです。
[...]
Trinidadは、完全に Rubyで書かれていて、たくさんのフィーチャを同じパッケージにまとめるのではなく、フィーチャを別個の拡張としてリリースできるのです。
[...]
Trinidadは、同じコンテナの中で、いくつものアプリケーションを走らせることができます。

最後の代替品は、 Fabio Kung氏の jetty-railsで、Jetty コンテナで Rails と Merbのアプリケーションを走らすことができます。このプロジェクトは、2009年6月以来アップデートされていないが、氏は、未だに将来、その改善を行うつもりでいる。

この記事に星をつける

おすすめ度
スタイル

BT