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のビュー/アクション連係