編集部注:読者の貴重なご指摘により一部コンテンツを削除・改編させていただきました。内容に不備があったことをお詫び申し上げます(2010年7月8日)
またリッチクライアントを実現する技術としてJavaScript/Ajaxという選択肢もあります。Javaで、JavaScript/Ajaxアプリケーションを開発するための技術として「GWT(Google Web Toolkit)」があります。グーグルが開発した、JavaでAjaxアプリケーションを開発するためのフレームワークです。
GWTは、GWT独自のコンパイラでJavaのクラスをWebブラウザがAjaxを表示するのに最適なJavaScriptやHTMLのコードに変換してくれます。これにより開発者は、ほとんどJavaだけでJavaScript/Ajaxアプリケーションを実装可能です。
ほかには「DWR(Direct Web Remoting)」というJavaとJavaScriptを連携して、Ajaxアプリケーションを開発できるフレームワークがあります。
JavaScript内で「クラス名.メソッド」と実装することでJavaのメソッドを呼び出すことができます。さらにDWRはSpring、Strutsなどのほかのフレームワークと連携する機能を最初から搭載している点も大きな特徴です。
.NETにも、AjaxなWebアプリケーションの開発に特化した「ASP.NET AJAX」というフレームワークがあります。ASP.NET AJAXはASP.NETの開発手法のままで、アプリケーションをAjaxアプリケーションとして開発できます。クロスブラウザ対応なども内部で自動的に対応してくれます。
ASP.NET AJAXの大きな特徴として「ASP.NET AJAX Control Toolkit」というAjaxに対応した主要なWebサーバコントロールが提供されています。これにより、JavaScriptのコーディング量が最小限に抑えられます。
またVisual StudioがjQueryを正式にサポートしたことも、生産性の向上につながるでしょう。
Javaはサーバサイドアプリケーション開発の技術として非常に普及しています。人気の理由としてはJava言語の特徴であるOSを自由に選べることや、Java EEにサーバサイドアプリケーション開発に必要な技術が標準化されていたこと、優秀な開発環境やミドルウェア(アプリケーションサーバ)が存在していたことなどが挙げられるでしょう。サーバサイドJavaは以下の複数の技術が組み合わさって実現されています。
Servletは、Javaプログラムがベースで、Webブラウザからのリクエストを受けて動作し、サーバ上で処理を行います。そして、処理結果を画面表示用のHTMLとして出力します。HTTP通信が可能であればサーブレットを使用できるため、携帯電話などのモバイルやほかのアプリケーションサーバをクライアントとすることもあります。
サーブレットを使用すると、プログラム内にHTMLタグが書き込まれます。これによりJavaプログラマがHTMLを使ってデザインを行い、逆にデザイナはJavaプログラムを触らなければなりません。そこで、JavaプログラムとHTMLを分離させるための技術としてJSPが生まれました。
HTMLの中に「<% 」「 %>」で囲んだタグを使用して、Javaプログラムを埋め込み、Javaプログラムの部分をサーバ上で処理し、結果をHTMLとして返してWebブラウザの画面に表示します。
サーブレットは手動でコンパイルしますが、JSPは初回実行時にTomcatなどのWebアプリケーションコンテナによって自動でコンパイルされサーブレットとして実行されます。さらに、このときコンパイルした内容を一時ファイルとして保存して2回目以降に利用しているため、パフォーマンス的にもサーブレットに劣りません。
また、ほとんどのアプリケーションサーバに実行前にコンパイルする「プリコンパイル」という機能がサポートされており、この機能により初回実行時のレスポンスタイムを短縮できます。
またJSP 2.0からは「EL式(Expression Language)」と呼ばれる埋め込み型の言語が導入され、よりシンプルにコーディングできるようになりました。
Javaでは、再利用可能なコンポーネントの開発を可能にするために「JavaBeans」という仕様が規定されています。
EJBはエンタープライズアプリケーションのサーバサイド技術で利用できるコンポーネント技術です。Java EEのサブセットとして規定されており、トランザクション機能、パーシステンス(永続化)機能、リモートアクセス機能などが提供されています。
EJBには、以下の種類があります。
図2にサーブレットとBeanとJSPの連携を示します。
一方.NETでは、Webアプリケーションの開発はVisual Studioを用いてASP.NETをベースとします。ASP.NETは動的Webサイト、Webアプリケーションを開発、運用するためのフレームワークです。ASP.NETを使用することでシンプルなWebサイトから企業システムなどの大規模アプリケーションまで同じ開発環境で構築可能です。
ASP.NETの特徴として以下のようなものがあります。
Visual Studioを利用してWebフォームと呼ばれるWebアプリケーションの外観を構成するUI要素に各種コントロールをドラッグ&ドロップするだけでWebページを開発できます。これによりHTMLなどのコードを書く手間を最小限に抑えられます。
Webフォームに設定したWebサーバコントロールの処理ロジックを、.NET Frameworkに対応しているC#やVisual Basicなどのプログラミング言語でWebページデザインと分離して開発できます。また、.NET Frameworkに用意されている豊富なクラスライブラリも使用できるため、生産性、保守性が向上します。
Java EEでは、サーバサイドの技術を完全に分離して開発するために、オブジェクト指向の「MVCモデル」という設計方法を採用しています。またサーバサイドJavaではMVCモデルを採用したフレームワークとしてApacheプロジェクトによって開発されているオープンソースのStrutsがあります。多くの採用実績やノウハウの蓄積により、デファクトスタンダードとして選択されています。
ASP.NETでもMVCモデルは採用されており、最新のASP.NET 4では「ASP.NET MVC」という新しいWebフレームワークが追加されました。これまでも拡張ライブラリとして利用できましたが、.NET Framework 4からは「ASP.NET MVC 2」として標準機能として搭載されています。
ASP.NET MVCでは、前述したWebサーバコントロールは使用しません。その代わり、Webページに「<%」「%>」で囲むブロックを埋め込んで開発します。
レガシーな方法ですが、ASP.NETによって出力されるコードに比べて可読性が上がり、スタイルシートで設計しやすいなどのメリットがあります。またアプリケーションを機能別に分けたことで単体テストも行いやすくなります。
Copyright © ITmedia, Inc. All Rights Reserved.