« Redmineが日本で急上昇している | トップページ | Redmineの日本語マニュアル »

2010/01/04

Rails検証報告書

日本OSS推進フォーラムという団体がRailsに関する調査結果を公開していたのでメモ。

【元ネタ】
日本OSS推進フォーラム

「RubyTF_Ruby_on_Rails検証報告書」 (PDF:975KB)

おそらくIPOの外郭団体のような立場で、日本の大手SIの技術者がRailsを調査したらしい。
その報告書を読むと、Railsは企業向けにそこそこ使えるが、スケールアップやセキュリティ、技術蓄積にやや難がある、とのこと。

報告書で興味を引いたのは、セキュリティに関する所。
リダイレクト、Web アプリケーション内リンクをSSLにする対応は特に問題なく非常に簡単。

Railsで特徴的なのは、CookieでHTTP セッションを管理できることだろう。
ここの仕組みが非常に分かりやすい。

Railsでは、HTTPセッションをシリアライズ化してCookieに書き込む。
この時、サーバーにもハッシュ値のキーが生成されてCookieのハッシュキーに埋め込まれる。
サーバーのハッシュ値のキーはOpenSSLで生成されるから、サーバーのキーが盗まれない限り、セキュリティは大丈夫だろうと予測できる。
但し、セッションに格納されたデータそのものは暗号化されていないので、個人情報をセッションオブジェクトに埋め込むのは危険。

この部分が重要と思ったのは、セッション管理はWebアプリの盲点だからだ。
Webアプリがデスクトップアプリのように使うには、セッション管理をデスクトップアプリのメモリ管理のように使わなければならないからだ。
セッションをクッキーに残せるならば、画面の状態をクッキーに保存しておけば、Webアプリの古くからの問題である「戻るボタン」「注文ボタンの2度押し」に対応するのは易しいだろう。

報告書にもあるように、この部分はJavaのセッション管理と大きく異なる。
Javaのセッション管理は逐一自分で作らないといけないから面倒だ。
Railsのセッション管理は非常にプログラミングしやすい。

他にはテスト。
JavaのDBUnitのように、テスト用データローダーはYaml・CSVなどに対応しているから、Modelの単体テストに使える。
又、複数のコントローラーを経由したテストもできるから、結合テストに近い操作も可能。
JavaのdjUnitのようなテストカバレッジも、RCovというツールで可能。
すなわち、Javaのテストユニットの機能はほぼ実現されている。

僕の感想は、Railsは丁度Strutsが出た頃に似ているなあ、ということ。
2000年代初頭、JavaによるWebシステム開発にどの技術者もSIも可能性を感じ、Webフレームワークが乱立していた。
そんな頃に、Javaで書かれたオープンソースのWebフレームワークStrutsが出現して、劇的に変化した。
Webフレームワークはこういう風に書けばいいのか、MVC2モデルはこういうことなのか、と感心した事がある。
Strutsも当初はバグ、スケールアップ、将来性など色々言われたけれど、今となってはJavaでは業界標準に近い。

Railsは頻繁にバージョンアップしていて、今も成長途中。
RedmineもRailsのキラーアプリとして非常に可能性がある。

|

« Redmineが日本で急上昇している | トップページ | Redmineの日本語マニュアル »

ソフトウェア」カテゴリの記事

ソフトウェア工学」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/49479/47204374

この記事へのトラックバック一覧です: Rails検証報告書:

« Redmineが日本で急上昇している | トップページ | Redmineの日本語マニュアル »