TOP
>
システム開発
> はじめに
徹底比較!!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のようになります。
図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 五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(
http://rubricks.org/
)のコミッタ。
INDEX
第2回:JSFとRailsで比較(前編)
はじめに
ルーティング
Railsのビュー
Railsのビュー/アクション連係