今回のテーマは「Ruby on Rails」
2005年に登場し、世界中のWeb開発者を虜にしたフレームワーク、それが「Ruby on Rails」だ(初回バージョンは2004年)。2005年のバージョン1.0から開発は継続的に、情熱的に行われており、2007年にはバージョン2.0をリリース、現在はバージョン2.3が主流になっている。さらにRailsとは別で有名だったMerbを取り込んだバージョン3.0の開発も進められている。進化するスピードはまったく衰えることがない。
一年以上前のこの連載においてRuby on Railsをテーマにお送りしている。その当時はバージョン1.9のリリース直後だった。あれから15カ月以上が経過し、状況は変わってきている。そんな昨今のRails事情をWebアプリケーション、オープンソース・ソフトウェア(OSS)とともにご紹介したい。
今回紹介するOSS・Webアプリ
『Google App Engine on Java』 JRubyも動作するGAEのJavaサポート
『Herok』 Ruby on Rails向けクラウド環境
『ObjectiveResource』 iPhoneとRailsを連携させるライブラリ
『XTT』 「IN/OUT」的タイムトラッキング付きマイクロブログ
JRubyも動作するGoogle App EngineのJavaサポート
名称 | Google App Engine on Java |
---|---|
URL | http://code.google.com/intl/en/appengine/ |
『Google App Engine』といえば、Googleが提供するクラウドアプリケーションプラットフォームのことだが、最近ついにJavaがサポート言語に追加された。これまでPythonのみのサポートだったこともあり、日本でのGoogle App Engine人口はさほど多くなかったが、これで開発者の裾野が一気に広がることだろう。とくにJavaが動作するサーバ環境を用意するのは容易ではなかったので、Javaをメインとした開発者にとってはうれしいニュースだろう。
だがこの恩恵にあずかるのはJava開発者だけではない。RailsやRubyの開発者にとってもうれしいことに、JRuby on RailsがGoogle App Engine上で動作する。このような形になるとは思わなかったが、JRubyの魅力が急激に増したことだろう。
すでにJRuby on Railsを使ったブログシステムであるyarbl(Yet Another Ruby Blogの略)、GoogleのサービスをラッピングしたBeeuなどがソースコードを公開している。1,000ファイルまでしかファイルがアップロードできないといったような制限もあるため、こちらのブログ記事ではJRuby on Railsを動作させるための過程を細かく紹介してくれている。
1日6.5時間のCPU時間まで無料で使える、500MBまでのストレージは無料など、GAEにはサービスを手軽に立ち上げたい開発者にとって魅力的と言える仕組みが用意されている。Railsをはじめてみようと思う方も、JRuby on Railsを採用すれば手軽にはじめられることだろう。
Ruby on Rails向けクラウド環境
名称 | Heroku |
---|---|
URL | http://heroku.com/ |
『Heroku』は元々オンラインのRails開発環境を提供するサービスとしてスタートした。Webブラウザ上での開発は始めこそ面白がって使うのだが、慣れてくると面倒に感じてきてしまう。やはり開発は手元の慣れた環境で行ない、動作はオンライン上──というのが最適だろう。
その点はおそらくHerokuでも考えられてきたはずだ。元々のWebベースの開発環境は別サービス「Heroku Garden」に移り、HerokuはRails向けにクラウドサービスを提供するようになっている。これが非常に面白い。RubyGemsを使ってherokuをインストールし、GitでHerokuに対してプッシュ、デプロイができるのだ。
これはまるでGoogle App Engineのやり方と同じだ。ローカルで開発し、コマンドひとつでクラウド上にサーバが立ち上がる。独自ドメインを与えることもできる。サーバだのネットワークだのストレージだのはまったく気にする必要はない。バージョン管理システムを入れているだけあって、複数人で開発を行なうこともできる。
Railsの面倒な点はアプリケーションサーバであるためにあまり気軽に動かせない点だろう。最低でもVPS以上が必要になる。だが、Herokuを使えばそのような面倒からは解放され、システム開発に勤しむことができるはずだ。
iPhoneとRailsを連携させるライブラリ
名称 | ObjectiveResource |
---|---|
URL | http://iphoneonrails.com/ |
Railsの魅力のひとつがActiveResourceのサポートだろう。これによりRESTfulなサービスに対し、まるでデータベースを扱うようにデータ操作ができるようになる。そして同じような仕組みをiPhoneに提供するのが『ObjectiveResource』だ。ObjectiveResourceを使えば、RailsとiPhoneとをRESTを使って通信できるようになる。
iPhone向けのネイティブアプリケーションは単体で動作するもの(ゲームなど)もあるが、他のインターネットサービスと連携するものも少なくない。既存のWebサイトのフロントエンドとして動作したり、写真やブログ、マイクロブログをアップロードしたりするものなどだ。
そのようなWebサイトと連携するのに独自のやり方ではなくRESTfulを使うことで連携が容易になる。Railsであれば元々RESTfulが考慮されているので開発が容易、というわけだ。WebシステムをRailsで開発していて、今後iPhone向けのクライアントを開発しようと考えている場合にはぜひ見てほしいライブラリだ。
「IN/OUT」的タイムトラッキング付きマイクロブログ
名称 | XTT |
---|---|
URL | http://www.caboo.se/ |
Ruby on Railsの開発元・37signalsで使われている社内向けアプリケーションのひとつに「IN/OUT」がある。これは社内向けのマイクロブログのようなもので、すべき作業や今やっている作業をポストしていく。それを見た仲間が助言したり、依頼したりするのもIN/OUT上で行なうのだ。
IN/OUTは公開されたアプリケーションではないが、説明などはブログで見ることができる。そしてそのIN/OUTを元に、投稿とタイムトラッキング機能をつけたものが『XTT』だ。2008年末から更新が止まってしまっているが、一応動作はする。
XTTではプロジェクトを登録し、そのプロジェクトの作業前後に決められたポストを行なう。そのほか、作業中にコメントを投稿することもできる。そして作業が開始すると時間が計測され、その累積をグラフとして見ることができる。プロジェクトには他のユーザを誘うことができ、情報を共有できる。
XTTは「Twitter」などで知られるマイクロブログのゆるいつながりとコミュニケーション、タイムトラッキングを両立してくれる。同じ時間・同じ場所にいる必要がないので、自分が困っている点があればとりあえずポスとしておけばよい。そうすれば誰かがきっと助けてくれる。そんな便利なソフトウェアだ。
いかがでしたか?
Rails自体の進化が止まらないのと同じく、それを使ったソフトウェアやWebサービスにもユニークなものがどんどん生まれてくる。まさにオープンソースの力が創造性を誘発し、技術者を自由にしているかのようだ。日々面白いサービスが開発されているし、来年にはまた状況が変わっている可能性もある。その一端に関われば、その面白さが垣間見えるはずだ。
Webアプリケーションサーバであるためにサーバ環境の整備で敷居が高かった点は否めない。だがそれらを克服する技術、サービスも続々と登場している。Railsを知れば開発スピードは大幅に向上するはずだ、ぜひトライしてみよう。
著者プロフィール:MOONGIFT 中津川 篤司(なかつがわ あつし)
1978年生まれ。オープンソース紹介サイト「MOONGIFT」管理人。プログラマ、SE、ITマネージャを経て、オープンソースのビジネス活用を推進する。現在は独立し、Webサービスのコンサルティング、プロデュースを行う。