“RESTful”なRuby on Rails 2.0リリース

「Ruby on Rails 2.0」ではRESTサポートが強化され、セキュリティも改善されている。

» 2007年12月11日 11時29分 公開
[Darryl K. Taft,eWEEK]
eWEEK

 Web開発フレームワーク「Ruby on Rails」の待望のバージョン2がリリースされた。

 バージョン2がリリースされたのは12月7日。主要な強化機能としては、REST(Representational State Transfer)のサポート強化と、セキュリティの改善などが挙げられる。

 「Rails 2.0で気に入っているのは、RESTfulの原則を追求してアプリケーション開発が調和的になった点だ」とRuby on Rails作成者デビッド・ハイネマイヤー・ハンソン氏はeWEEKに語った。「これにより、アプリケーション開発が予測可能で、クリーンで、楽しめるものに感じられる。HTTPは常にそれを正しくやっていた。われわれWebアプリケーション開発者がそれを理解し、評価するのに少し時間がかかった」

 ハンソン氏は、米シカゴのWeb製品開発会社37signalsの開発者。同氏はRails 2.0の完成に1年を要したと語る。

 同氏は、4年間Railsフレームワークに取り組んでおり、それと同じくらいの期間、開発に参加している開発者の中核グループがあると語る。その過程で数百人が貢献してくれたという。「今回のリリースは、大規模なオープンソース開発の勝利だ」

 最新リリースには多数の新機能が盛り込まれているが、ハンソン氏は、Rails 2.0の作業の大半はRESTサポートの追加に費やされたと説明する。「RESTfulなライフスタイルにかなりの改良を加えた」

 さらに同氏はこうも語る。「RailsがSOAP(Simple Object Access Protocol)対RESTの議論で片方の側に付いたことは驚かれないだろう。統合のために絶対にSOAPを使わなければならない、というのでなければ、われわれはそうしないことを強く勧める」

 セキュリティ強化も大きな懸念事項だった。

 「導入してすぐに、もっと簡単にセキュアなアプリケーションを開発できるようにするのは常に喜ばしいことだ。Rails 2.0では、それをいろいろな面から実現している」とハンソン氏は自身のブログで述べている。「最も重要なのは、CSRF(クロスサイトリクエストフォージェリ)攻撃に対応する内蔵メカニズムを提供していることだ。すべてのフォームとAjaxリクエストに特別なトークンを含めることで、自分のアプリケーションの外部からのリクエストから防御できる。新しいRails 2.0アプリケーションではこれがすべてデフォルトでオンになる」

 ハンソン氏は、Rails 2.0はまた、開発者のXSS(クロスサイトスクリプティング)攻撃への対処を容易にしているのと同時に、ユーザーがHTMLをページに埋め込めるようにしていると説明する。「HTTPオンリーのcookieのサポートを追加した。これはまだすべてのブラウザでサポートされているわけではないが、設置されているところでは使える」

 Rails 2.0のAction PackはHTTPとの親和性を高めることを目指していると同氏は言う。「HTTP Basic認証と連係する新モジュールを追加した。これは、SSL経由のAPI認証を実行する素晴らしい方法だと分かっている」

 さらに、Rails 2.0は新しいリクエストプロファイラを備える。「実際に利用した場合のボトルネックがどこにあるのかを見つけ出すのは難しいこともある。だが、利用スクリプト全体を追跡して、その結果を報告できる新しいリクエストプロファイラで、それをずっと容易にした」とハンソン氏は言う。

 同氏は、Railsチームは、以前から軽量だった開発フレームワークを、Active Recordのコンポーネントなど幾つかのものを外すことでさらに軽くしたと語る。RailsのActive Recordは、ビジネスオブジェクトとデータベース表をつないで、ロジックとデータを1つのラッピングで表示できる持続的なドメインモデルを作り出す。

 「Active Recordをもう少し軽くするために、『acts as XYZ』機能を削除して、Rails SVN(サブバージョン)リポジトリの個々のプラグインに入れた。また、すべての商用データベースアダプタをそれぞれのgemに押し込んだ。だから、Railsは今、MySQL、SQLite、PostgreSQLのアダプタのみが入った状態で提供されている。これらは、われわれが簡単にテストでき、積極的にそうしているデータベースだ」(同氏)

 だからといって、商用データベースが置き去りにされているわけではないと同氏は言う。「むしろ、メインのRailsディストリビューションから独立したリリーススケジュールを自由に設定できるようになった」

 またRails 2.0の新たな点としては、「HTTPでたくさんのファイルをリクエストしなくても、JavaScriptとスタイルシートファイルを論理ユニットで構造化するのがずっと簡単になった」こともあると同氏は語っている。

関連キーワード

Ruby | フレームワーク | Ajax | API


Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ