TOPシステム開発> JSF登場以前の問題点
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

第1回:JSFの特長

著者:WINGSプロジェクト  佐藤治夫(株式会社ビープラウド)、
小泉守義

監修:山田祥寛   2006/7/14
前のページ  1  2
JSF登場以前の問題点

   これまでStruts、Turbine、Tapestryなど、さまざまなWebアプリケーションフレームワークが登場してきました。しかし、その一方で現在もWebアプリケーション開発は複雑で難しいと言われ続けています。

   それはなぜでしょうか。Webアプリケーション開発における問題点として次のような点を挙げることができます。

1. テキストベースの開発

   JSF以前のWebアプリケーションフレームワークは、GUIツールとの親和性が考慮されておらず、設定ファイルの作成やJSPタグの配置などをテキストエディタで行うのが当たり前でした。

   テキストベースの開発にも利点はありますが、記法を覚えるまでに学習が必要、全体の見通しが良くない、記述ミスを検出するのが難しいなどの欠点もあり、開発の敷居を高くしていました。


2. 開発者とデザイナーの分業の問題

   Webアプリケーション開発ではWebデザイナーと開発者の分業がしばしば問題となります。

   たとえばJSPのタグをHTMLに埋め込む場合、デザインツールでは見栄えを確認することができません。またJavaScriptなどのクライアントサイドのスクリプトを利用した高度なユーザーインターフェイスを実現する際には、JavaScriptのブラウザとの挙動に関する深い知識が必要とされるケースが存在するため、デザイナーにとって敷居の高いものとなりがちでした。

   このような問題があるため、デザイナーが作成したHTMLを開発者がJSP用に書き換えるという作業が日常的となっていました。


3. 多様なクライアントへの対応

   Webアプリケーションのクライアントは、PC上のブラウザ以外にも、携帯電話、PDA、リッチクライアントなどが挙げられます。

   これまでのWebアプリケーション開発では、これらのクライアントに対応させるための統一的な手法が確立されておらず、開発現場で独自の仕組みを作っているのが実情でした。

   そのため、アプリケーションがWebブラウザなど、特定のクライアントを前提とした作りになっていることも多く、クライアントが変わったり、増えたりすると、サーバーサイドのアプリケーションも作り代えなければならないという問題点を抱えているということがありました。


4. 標準仕様の不在

   これまで広く使われてきたフレームワークには標準仕様が存在せず、それぞれのフレームワークが独自の仕様で実装されていました。そのため、新しいフレームワークを使用する場合は、新しい仕様を一から学習する必要があり、導入コストが高くなっていました。


JSFの特長

   JSFは、前述したようなWebアプリケーション開発における問題点を解決する特長を備えています。


1. GUIツールとの親和性

   JSFの仕様は、GUIツールとの親和性を考慮して策定されています。具体的には、画面デザイン、画面遷移、部品のプロパティ設定などをGUIツールで設定できるようになっています。これにより、テキストベースの開発による欠点を解消できます。


2. UIコンポーネントの導入

   JSFでは、ユーザーインターフェイス上の構成要素をオブジェクトとして扱うことができる「UIコンポーネント」という概念が取り入れられており、ユーザーインターフェイスにおける共通部品を再利用できます。

   この共通コンポーネントを利用することで、ブラウザごとの挙動の違いやJavaScriptなどの複雑さが隠蔽され、開発者は複雑な知識を持つ必要がなくなります。また、従来のWebアプリケーションフレームワークでは実現されていなかった、イベント駆動型(注1)のプログラミングも可能となっています。

※注1: ページごとではなく、UI構成要素に対して行われたユーザーのイベント(ボタンが押された、テキストが変更されたなど)ごとに処理を割り当てることができる構造のことです。


3. デバイス非依存の実現

   JSFは、クライアント(デバイス)に依存しないコンポーネントモデルやイベントモデルを内部で構築し、それを通じてユーザーインターフェイスを管理しています。また、UIコンポーネントとクライアントを独立させるために、クライアントに依存したレスポンスを出力するレンダラ部分をコンポーネントから分離しています。

   このようにすることで、アプリケーション側では、デバイスの違いをほとんど意識せずにコンポーネントの操作を行うことが可能になり、Webブラウザに加え、他のクライアントにもアプリケーションの変更なしに対応できるようにすることを狙いとしています。


4. JSR標準

   JSFは、JCP(Java Community Process)と呼ばれるオープンな手続きによってJSR127として標準化が進められている規格です。

   JCPでは、Oracle、IBM、Borlandなどの大手ベンダが参加するExecutive Committeeの賛同によって規格が決定されるので、そこで認定されたJSFも業界標準としての資格を持っていると言えるでしょう。また、SunはEoDの実現に主眼を置いた次期J2EEの仕様としてJ2EE5.0を提唱しており、JSFはこのJ2EE5.0のコアAPIとして組み込まれる予定です。

   こうした標準化により、開発者はJSFの実装が変わっても、新たにフレームワークの仕様を学習する必要がなくなります。またツールベンダやコンポーネントベンダはJSFに対応したIDEやコンポーネントを提供しやすくなります。

前のページ  1  2


著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、小泉守義 監修:山田祥寛
著者プロフィール
著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、
小泉守義
監修:山田祥寛

WINGSプロジェクトは、有限会社WINGSプロジェクト(代表取締役山田祥寛)が運営するライティング・チーム。海外記事の翻訳から、主にサーバサイド分野の書籍/雑誌/Web記事の執筆、講演、アプリケーション開発などを幅広く手がける。2006年7月時点での登録メンバーは20名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募いただきたい。


INDEX
第1回:JSFの特長
  はじめに
JSF登場以前の問題点