はじめに
Twitterは140文字以下の短いメッセージをつぶやきあうシンプルなサービスです。新しいコミニュケーションの形として利用している人も増えてきました。
Google App Engine(以下 GAE)についてはご存知の方が多いと思います、Googleが提供するクラウド環境で、ある規模までのアプリなら無料で使えます。また、GAEは単なるサーバ環境の提供ではなくスケーラビリティと信頼性が得られるアプリケーションの実行環境です。しかし使える機能やデータ管理の方式はGoogleの提供するSDKに従う必要があります。
GAEは2009年4月からは、Pythonに加えJavaがサポートされるようになりました。本連載の第1回目でふれたように、Rubyの処理系にはまつもと氏の作った処理系(MRIと呼ばれます)以外にも、Javaで作られた JRuby という処理系があります。JRuby はJavaVMの上で動くソフトなので、JRuby を使うとGAE上でRuby on Railsのアプリを動かす事ができるようになります。
またJRubyは、JavaVM上で動作するJavaで作られたアプリのクラスやメソッドを呼び出せるため、下の図のようにJavaで作られた既存のシステムと連携するアプリをRuby on Railsで構築できます。既に米国ではいくつかの実際のシステムで利用が始まっているようです。
このJRubyを活用しながら、今回と次回の2回でCurlリッチクライントとGAEを使ったTwitter風アプリを作っていきます。今回は、GAE上でTwitter風アプリを構築するための準備として、まずローカル環境でJRuby on Railsを使ったTwitter風アプリを構築していきます。
サンプルソースについて
こちらよりサンプルソースをダウンロードできます。なお、サンプルソース実行にあたってはライセンスファイル「curl-license-5.dat」が必要になります。Curl IDEなどに含まれているので、コピーして使用してください。
サンプルソースを実行するには、zipファイルを展開したディレクトリで以下のコマンドを実行して下さい(添付されているテストデータも読み込まれます)。
> jruby -S rake db:migrate > jruby -S rake db:fixtures:load > jruby -S script/server
これまで配布していたサンプルソースに誤りがありました。訂正してお詫びします。
JRubyで動かすにはconfig/database.yml ファイルには「jdbcsqlite3」を指定する必要がありました。config/database.ymlファイルの4行目を以下のように修正してください(※現在公開されているサンプルソースは修正済みです)。
#adapter: sqlite3 adapter: jdbcsqlite3
過去の連載について
JRuby環境の構築
JRubyの実行環境をローカルにインストールしてみましょう。JRubyの情報は「JRuby: Wiki: Home - Project Kenai」が詳しいです。Ruby on Railsについても詳しく書かれているので参考にしてください。ここではインストール方法を簡単に説明します。
1. Javaのインストール
JRubyは Java5以降で動作しますが、GAEのJava環境がJava6相当なので、ここではJava6をインストールします。Java SE ダウンロード - Sun Developer Network (SDN) から最新のJDK 6をインストールします。また、環境変数JAVA_HOMEを作成してインストールされたJDKのパス(例えば C:¥Program Files¥Java¥jdk1.6.0_15)を設定し、環境変数PATHにJDKのbinのパス(例えば C:¥Program Files¥Java¥jdk1.6.0_15¥bin)を追加します。
2. JRubyのインストール
JRuby: Wiki: Home - Project Kenaiから「Windows and Vista用 JRuby 1.3.1 Binary.zip」をダウンロードし、適当な場所に展開します(例えば C:¥)。また、環境変数PATHにJRubyのbinのパス(例えば C:¥jruby1.3.1¥bin)を追加します。
コマンドプロンプトで jruby -v が実行できればJava、JRubyのインストールは成功です。
3. Ruby on Railsのインストール
コマンドプロンプトで以下のコマンドを実行し、Railsや関連するソフトをインストールしてください。最新のRuby on Railsのバージョンは 2.3.3 ですが、GAEとの関連で 2.3.2 をインストールします。
> jruby -S gem install jruby-openssl --no-ri --no-rdoc > jruby -S gem install rails -v 2.3.2 --no-ri --no-rdoc > jruby -S gem install activerecord-jdbcsqlite3-adapter --no-ri --no-rdoc
本連載第1回で行ったRuby on Rails開発環境の構築を行っていない方は sqlite3.exe、 sqlite3.dll をダウンロードし、PATHが通っているディレクトリにインストールしてください。
上でgemコマンドを直接使うのではなく先頭にjruby -S を付けているのは、JRubyとRuby(MRI)の両方が入っている環境でコマンドやライブラリが混乱するのを回避するためです。