JRuby on Railsの“真骨頂”とは?
本特集では前後編に分けて、今日脚光を浴びるJRuby on Rails on Railsアプリケーションを体感する方法を紹介します。前編の「Aptana RadRailsで始めるJRuby on Rails超入門」では、統合開発環境のAptana RadRails(以下、RadRails)を使い、ToDo管理アプリケーションを作成する過程を紹介しました。
後編ではJRuby on Railsの真骨頂として、JRuby on Railsアプリケーションをwarファイルにして、Javaのアプリケーションサーバ(以下、APサーバ)のTomcatにデプロイして実行する方法を紹介します。
編集部注:RubyとRuby on Railsそのものについて詳しく知りたい読者は、「Javaから見たRuby on Rails」をご参照願います。
Ruby on RailsをJavaサーバで動かす4つのメリット
まずは、JRuby on RailsをJavaのAPサーバ上で動かすメリットを考えてみましょう。その最大のメリットはJVM(Java仮想マシン)上で動作する点が挙げられます。JVMで実行することで、以下の4つのメリットを享受できます。
- JVMはエンタープライズ環境での動作実績も多く、非常に安定した実行環境を手に入れることができる
- JVM上でJRubyを実行する場合、AOT(Ahead Of Time)およびJIT(Just In Time)方式でコンパイルする。従って、コンパイル後はインタプリタ形式よりも高速に動作する(※注1)
- Javaの豊富な機能を使い、さまざまな拡張が可能
- JRuby on Railsが動作するAPサーバもTomcatやWebSphere上で動作確認が報告されている
- JDBCを使って対応DBを増やしたり、コネクションプールを利用してDB接続を高速・安定化できる
- JMX(Java Management Extensions)を使って、アプリケーションを監視する機能を加えることも可能
- JVMやJavaのAPサーバに対するノウハウを使い回せる
(流行しているとはいえ、やはり2008年7月現在ではRubyよりもJavaエンジニアの人口の方が多いでしょう。Javaエンジニアが日ごろから慣れ親しんだJVMであれば、チューニングやトラブル時の対応も迅速に行えるのではないでしょうか?)
※注1:Rubyでも最新版である1.9系からは仮想マシンであるYARV(Yet Another Ruby VM)が取り込まれて高速化を実現している(参考:「Ruby 1.9は1.8より平均5倍速い」、YARV笹田氏)
このように、JRuby on RailsをJavaのAPサーバ上で動作させることで、開発時にメリットの多いRubyと運用時にメリットの多いJavaのテクノロジを最大限に生かすことができます。
TomcatでJRuby on Railsを動かす準備
前編では、RadRailsだけでJRuby on Railsの環境を構築しました。後編では、JDK 6+Tomcat 6+Apache Derby(以下、Derby、Java製のDBでJDK 6に組み込まれている)を使い、JRuby on Railsを実行する方法を紹介します。必要なものは以下のとおりです。
公式サイトからダウンロードするソフトウェア
公式サイトからJDK 6とTomcat 6をダウンロードしてインストールしてください。
RubyGemsでダウンロードするソフトウェア
・warbler(後述)
・activerecord-jdbcderby-adapter
本稿で取り扱うRadRailsのバージョンは1.0.3です(2008年7月現在の最新バージョン)。皆さんの環境に合わせて、環境変数やライブラリのバージョンを読み替えてください。
RubyGemsはRubyのパッケージ管理ツールです。デファクトスタンダードであり、さまざまなパッケージをコマンド1つでダウンロードして追加できます。
ここでは、RadRailsの[RubyGems]ビューを使ってパッケージを追加します。追加するパッケージの詳細は後述します。RadRailsを起動して、[ウィンドウ]→[ビューの表示]→[RubyGems]を選択します。右下の[RubyGems]ビューの赤線で囲んだ追加ボタンを選択します(図1)。
ダウンロード可能なパッケージの一覧が表示されるので(図2)、「warbler 0.9.5」「activerecord-jdbcderby-adapter 0.7.2」「activerecord-jdbc-adapter 0.8」の3つをダウンロードしてください。これで自動的に依存関係を解決し、必要なパッケージをダウンロードできますが、以下のような注意点があります。
- RubyGemsの実行は環境によっては数分かかることがある
- 本稿でダウンロードして紹介するパッケージはいずれも最新版ではないので、注意
- ダウンロード後のパッケージは複数のバージョンが存在しないように注意。複数存在する場合、「warbler 0.9.5」「activerecord-jdbcderby-adapter 0.7.2」「activerecord-jdbc-adapter 0.8」以外のバージョンは削除すること(JRuby本体のバージョンとダウンロードするパッケージのバージョンの関係はかなりシビアです。RadRailsに同梱されるJRubyのバージョンが少し古いため、ダウンロードするパッケージも最新版ではなく、RadRailsのJRubyのバージョン(JRuby 1.1 RC2)にそろえる必要があります)
環境変数の設定
続いて、環境変数を設定します。環境変数「JAVA_HOME」を作成し、環境変数「Path」にJRubyとJavaを追加します。以下の環境変数を追加してください(以下のパスはWindows XPに対してRadRailsとJDKをデフォルト設定でインストールした場合のものです)。
- JAVA_HOME
C:\Program Files\Java\jdk1.6.0_06 - Path
C:\Program Files\Aptana\Aptana Studio\pluginsorg.jruby_1.1.0.5965_RC2p2\bin;
C:\Program Files\Java\jdk1.6.0_06\bin
DerbyのjarファイルをTomcatにコピー
最後に、DerbyのjarファイルをTomcatにコピーします。「C:\Program Files\Aptana\Aptana Studio\plugins\com.aptana.ide.libraries_1.1.1.003474\derbyclient.jar」をTomcatのインストールフォルダ配下の「lib」フォルダにコピーしてください。
これで準備は完了です。次ページでは、Warblerでwarのパッケージ化をして、いよいよTomcat on Railsを動かし始めます。
コラム 「JRuby on Railsの環境を一括構築! 便利なJRubyStackとは?」
本稿では比較的楽な方法でJRuby on Railsの環境を準備していますが、それでもいろいろなものをダウンロードしてそろえるのは骨が折れます。いま話題のJRuby on Railsをちょっと触ってみたいけど、Javaすらインストールしていないといった人におススメなのが、JRubyStackです。
JRubyStackはインストールパッケージをダウンロードして、インストーラでインストールするだけでJRuby on Railsに必要なソフトウェアをすべてインストールできます。
2008年7月現在、インストールできるソフトウェアスタックは以下のとおりです。
- JRuby 1.1 RC2
- Rails 2.0.2
- GlassFish gem 0.1.1-universal-java
- Warbler gem 0.9.3
- Apache Tomcat 5.5.25
- Subversion 1.4.6
- SQLite 3.5.1
- MySQL 5.0.45
Windows、Linux、Mac版の3種類がダウンロード可能です。
また、JRubyStackを開発しているBITNAMIでは、ほかにもLAMP環境が構築できる「LAMPStack」など手軽なインストーラを多数作成しています。手軽に環境を構築したいときに利用してみるのはいかがでしょうか?
Copyright © ITmedia, Inc. All Rights Reserved.