金宏 和實(かねひろ かずみ)
富山県高岡市 株式会社イーザー
 明けましておめでとうございます。不況の嵐が吹き荒れていて,とてもめでたくなんかないとお思いかもしれませんが,ソフトウエア開発者にとって,不況のときは,新しい技術を身に付け,ソフトウエア開発における守備範囲を広げるチャンスとも言えるのではないでしょうか。我々の仕事はなくなることはないでしょうから,前向きに行きましょう! 今年もよろしくお願いします。

 少し,古い話から始めましょう。筆者が就職した1980年代の初めの頃は,ホストコンピュータによるバッチ処理とダム端末(※)をつないだオンライン処理が行われていました(図1)。

(※)ダム端末は,ホストコンピュータが送信した文字を受け取り,表示する機能だけを持つ端末。通信機能と入力用キーボード,表示機能を持つが,インテリジェントな機能は持たない。
図1●アプリケーションの形態の変遷
図1●アプリケーションの形態の変遷

 次に,メーカー独自OSによるオフコンやミニコンが使われ出しました。その後,サーバー機とPCによるクライアント/サーバー(C/S)処理方式が主役の時代が続きました。C/S方式は,クライアント側のソフトウエアに凝ることができたので,高機能化と同時にクライアントのソフトウエアの肥大化を招きました。また,バージョンアップのたびのインストール作業や,依存関係のある他のソフトウエアの管理などメンテナンスの面倒さが指摘されました。

 Webアプリケーションでは,サーバーとやり取りするクライアントの実行環境にブラウザしか必要としないので,クライアント側の準備が簡単になりました。しかし,HTTPプロトコルを使ったWebサーバーとブラウザ間のデータのやり取りはホスト・オンライン処理に似ており,ページ単位でデータを送受信します。シンプルな分だけ,細かく画面の更新ができないので不便さを感じます。

 このWebアプリの操作性を向上させようとするのがAjaxであり,Microsoft SilverlightやAdobe AIRに代表されるRIA(リッチ・インターネット・アプリケーション)です。

 例えば,Adobe AIRはブラウザ上で動くのではありません。別途,実行環境をクライアントPCにインストールしてから実行しないといけませんが,C/S方式に戻っているわけではありません。歴史は繰り返しますが,ムダな部分はそぎ落とし,ネット上から小さなファイルをダウンロードし,短時間にインストールできるようになっています。また,RIAはサーバーともシームレスに連携して動作します。

 Ajaxを使ったWebアプリをRIAと呼ぶこともありますが,現在,主流であるWebアプリの機能を改善する決め手は,やはりAjaxです。

Ajaxとは

 Ajaxとは,Asynchronous JavaScript + XMLの略ですが,データをXMLに限定するものではありません。非同期(Asynchronous)にXMLHttpRequestクラスを中心にJavaScriptを使ってサーバーとクライアント間の通信を行い,ダイナミックにページの一部を書き換える技術です。XMLデータだけではなく,プレーンテキストやJSON形式(※)のデータを扱うことができます。

(※)JSON(ジェイソン)は,JavaScript Object Notationの略。JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ形式。

 Ajaxのメリットは,ページ全体をポストバックせずに,ブラウザに表示されているデータのうち,必要な部分だけを書き換えることができる点です。送信ボタンを押して,画面が切り替わるのをぼんやり待っている必要がありません。Google Mapsのようにスムーズにブラウザ上で情報が動きます。

 デメリットは,リクエストを発行しすぎると,回線上のトラフィックが増え,サーバーの負荷が高くなってしまうことです。ですから,何でもAjaxにすればよいというものではありません。

 また,通常,Ajaxを実現するにはサーバーサイドのプログラムだけでなく,クライアント側の処理もJavaScriptで複雑なプログラムを記述しなければならないので,開発者の負担が増えます。しかし開発者の負担は,ASP.NET AJAXを使うことで軽減できます。

ASP.NET AJAXの構成

 ASP.NET AJAXは,Microsoft AJAX LibraryとASP.NET AJAX Extensionsで構成されています(図2)。

図2●ASP.NET AJAXの構成
図2●ASP.NET AJAXの構成

 Microsoft AJAX LibraryはJavaScriptライブラリであり,クライアントサイドのフレームワークです。Microsoft AJAX Libraryは純然たるAjax用のJava Scriptライブラリですので,ASP.NETだけでなく,PHPやPerl,Javaなど他の言語,他の開発環境でも利用可能です。

 ASP.NET AJAX Extensionsはドラッグ&ドロップで利用できるサーバーコントロールです(画面1)。ASP.NET AJAX ExtensionsのコントロールはAjaxを実現するために,必要不可欠なもので構成されており,JavaScriptを記述することなくAjaxを実装できます。

 これらのサーバーコントロールはMicrosoft AJAX Libraryを利用して,Ajaxとしての機能を果たします。

 図2の一番下,ASP.NET AJAX Control Toolkitには,よりリッチなユーザーインタフェースを実現するためのコントロールが多く存在します(画面2)。ASP.NET AJAX Control Toolkitは別途ダウンロードして,インストールする必要があります(ダウンロードサイト)。

画面1●AJAX Extensions
画面1●AJAX Extensions
画面2●Control Toolkitをツールボックスに登録したところ(一部を表示)
画面2●Control Toolkitをツールボックスに登録したところ(一部を表示)