リッチで高度なWebアプリの開発技法Webアプリ開発の新基準(1/2 ページ)

Webアプリケーションは、次々と新技術が登場する技術革新の早い分野だ。しかし、新技術を使わなくてもWebアプリケーションは構築できる。新技術は何のためにあるのか? その解は開発効率の向上と、高度化するWebアプリケーションへの対応だ。

» 2005年10月03日 07時00分 公開
[大澤文孝,ITmedia]

 この記事では、Webアプリケーションの開発技法の移り変わりを見ながら、高度化するWebアプリケーションに対応するための工夫、そして、Webアプリケーションの開発にはどのような開発環境が望ましいのかを考えてみよう。

フレームワークが使われる理由

 近年では、Webアプリケーションの開発に、PHP、JSP、ASPといったスクリプト言語を使ったものから、Struts、Tapestry、JSF、ASP.NETといったフレームワークを使ったものへとシフトしてきている。まずは、これらの存在理由から考えてみよう。

 PHP、JSP、ASPといったスクリプト言語による開発の最大のメリットは、習得が容易で比較的手早く開発ができる点だ。これらのスクリプト言語ではHTMLページ内に特殊なタグを使ってスクリプトを埋め込み、Webページ単位で処理ロジックを実装していく。そのため、出力されるHTMLを想定しながら、1ページずつ構築できるという利点があるのだ。

 しかしその反面、Webページの数だけ処理ロジックが分散されるため、何十ページものWebページから構成されるWebアプリケーションではコードが散在、そして開発はもちろん、保守しづらくなってしまう。

ビューとロジックを分離するフレームワーク

 一方でStruts、Tapestry、JSF、ASP.NETといったフレームワークを使ったWebアプリケーション開発では、「クライアントに返すHTML」と「処理ロジック」とを完全に分離して開発する。具体的には、クライアントに返すHTMLのテンプレート(雛形)を「ビュー」として用意しておき、処理ロジックの実行結果を、ビューに埋め込んでクライアントに返すのだ。

 処理ロジックはコンポーネント(クラス)として実装され、Webページ間で共有したり、受け渡しすることもできる。ビューはロジックから分離されているため、後から変更することも容易だ。

 つまり従来のスクリプト言語を使った開発では「Webページ単位の開発」であったのに対し、フレームワークではページ単位ではなく、「Webアプリケーション全体の開発」になるということである。

 フレームワークを使えば、Webアプリケーション全体の構成――Webページの遷移、データ管理、ロジック管理――を一元化できるので、Webページが多く処理ロジックが複雑なWebアプリケーションが開発しやすくなる。また、処理ロジックがコンポーネント(クラス)化されるため、単体テストができ、デバッグもしやすくなるのだ。

 さらにStruts、Tapestry、JSF、ASP.NETといったフレームワークを採用すると、EclipseやVisual Studio .NETといった統合開発環境が使えるため、開発効率が上がるという点も見逃せない。

インタラクティブなUI実現のためのJavaScript復権

 Webアプリケーションのデメリットのひとつに、ユーザーインタフェースがテキストボックスやボタンといったHTML要素でしか表現できない点がある。

 近年では、この制限を撤廃したリッチなユーザーインタフェースを提供する試みも盛んだ。例えばユーザーインタフェースをJavaやMacromedia Flashで提供するといったものだ。

 そんな中で最近注目を集めているのが、JavaScriptとDynamic HTMLを使ったリッチなユーザーインタフェースの提供だ。JavaやMacromedia Flashは、プラグインとしてプレーヤー環境などを必要とするが、JavaScriptであればプラグインを必要とせず、しかも比較的軽量に動作する。

 近年JavaScriptによるユーザーインタフェース提供が脚光を浴びたのは、Google Mapsの影響だ。

JavaScriptでXML通信するAjax

 Google Mapsでは、JavaScriptとXML通信を組み合わせた「Ajax」(Asynchronous JavaScript+XML)と呼ぶ技術が使われている。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ