TOPシステム開発> はじめに




徹底比較!!Ruby on Rails vs Javaフレームワーク
徹底比較!!Ruby on Rails vs Javaフレームワーク

第2回:JSFとRailsで比較(前編)

著者:DTS  五座 淳一   2006/9/6
1   2  3  4  次のページ
はじめに

   第2〜3回のRailsと比較するJavaフレームワークは、「JavaEE標準」のプレゼンテーション層のフレームワークであるJSF(Java Server Faces)です。

   JSFは、JCP(Java Community Process)によって策定が行われている仕様であり、2004年3月に正式リリースされ、最新版はバージョン1.2となっています(2006年8月現在)。

   このJSFの仕様に準拠したフレームワークもいくつかリリースされています。中でもオープンソースであるApache MyFacesが有名です。

   多くのフレームワークで、プレゼンテーション層として提供している共通した機能は表1の通りです。今回はこれらの機能ごとに、JSFとRailsを比較していきます。

  • ルーティング
  • ビュー
  • ビュー/アクション連携
  • ビューヘルパー
  • バリデーション

表1:フレームワークが提供する機能(プレゼンテーション層)


アーキテクチャ

   機能ごとの比較をはじめるまえに、RailsとJSFのアーキテクチャを比較してみましょう。

   両フレームワークともMVCモデルを採用したアーキテクチャであり、MVCモデルを構成するそれぞれのコンポーネントと対応するレイヤは図1のようになります。

RailsとJSFのアーキテクチャ
図1:RailsとJSFのアーキテクチャ
(画像をクリックすると別ウィンドウに拡大図を表示します)


JSFのアーキテクチャ

   JSFはプレゼンテーション層のフレームワークです。ビジネス層やインテグレーション層には、EJB/Spring/Hibernateといったフレームワークを組み合わせて使用します。


Railsのアーキテクチャ

   Railsは、プレゼンテーション層からインテグレーション層までを網羅しています。

   とくにRailsのコントローラであるActionControllerは、Faces Servlet/Java Bean/Service Layerが扱う範囲までをサポートしています。


アーキテクチャの比較結果

   両フレームワークのアーキテクチャの大きな違いであるレイヤの扱いの違いからは、下記のようなメリットが生まれます。

JSF/レイヤを明確に分割したメリット
  • レイヤごとに分業しやすい
  • 変更による影響を他のコンポーネントが受けにくい
  • コードの再利用性が高い
  • 単体テストしやすい
Rails/レイヤを分割しないメリット
  • 記述量が少ない
  • シンプルなアーキテクチャ

表2:レイヤを分割するメリットと分割しないメリット

1   2  3  4  次のページ


株式会社DTS  五座 淳一氏
著者プロフィール
株式会社DTS  五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第2回:JSFとRailsで比較(前編)
はじめに
  ルーティング
  Railsのビュー
  Railsのビュー/アクション連係
徹底比較!!Ruby on Rails vs Javaフレームワーク
第1回 O/Rマッピング
第2回 JSFとRailsで比較(前編)
第3回 JSFとRailsで比較(後編)
第4回 DIコンテナとの比較
第5回 テストフレームワーク
第6回 RailsとGrailsの比較(前編)
第7回 RailsとGrailsの比較(後編)
Ruby on Rails入門
第1回 Railsが注目されている理由
第2回 すぐできるアプリケーション作成
第3回 アーキテクチャと検索機能の追加
第4回 Railsでテストをしてみよう
第5回 Ajaxアプリケーションの作成
第6回 プラグインでさらに生産性アップ
第7回 Linux環境で動作させよう